Annotation of embedaddon/mpd/src/mbuf.h, revision 1.1
1.1 ! misho 1:
! 2: /*
! 3: * mbuf.c
! 4: *
! 5: * Written by Toshiharu OHNO <tony-o@iij.ad.jp>
! 6: * Copyright (c) 1993, Internet Initiative Japan, Inc. All rights reserved.
! 7: * See ``COPYRIGHT.iij''
! 8: *
! 9: * Rewritten by Archie Cobbs <archie@freebsd.org>
! 10: * Copyright (c) 1995-1999 Whistle Communications, Inc. All rights reserved.
! 11: * See ``COPYRIGHT.whistle''
! 12: */
! 13:
! 14: #ifndef _MBUF_H_
! 15: #define _MBUF_H_
! 16:
! 17: /*
! 18: * DEFINITIONS
! 19: */
! 20:
! 21: struct mpdmbuf {
! 22: int size; /* size allocated */
! 23: int offset; /* offset to start position */
! 24: int cnt; /* available byte count in buffer */
! 25: };
! 26:
! 27: typedef struct mpdmbuf *Mbuf;
! 28:
! 29: /* Macros */
! 30: #define MBDATAU(bp) ((u_char *)(bp) + sizeof(struct mpdmbuf) + (bp)->offset)
! 31: #define MBDATA(bp) ((bp) ? MBDATAU(bp) : NULL)
! 32: #define MBLEN(bp) ((bp) ? (bp)->cnt : 0)
! 33: #define MBSPACE(bp) ((bp) ? (bp)->size - (bp)->offset : 0)
! 34:
! 35: /* Types of allocated memory */
! 36: #define MB_AUTH "AUTH"
! 37: #define MB_CONS "CONSOLE"
! 38: #define MB_WEB "WEB"
! 39: #define MB_IFACE "IFACE"
! 40: #define MB_BUND "BUND"
! 41: #define MB_REP "REP"
! 42: #define MB_LINK "LINK"
! 43: #define MB_CHAT "CHAT"
! 44: #define MB_CMD "CMD"
! 45: #define MB_CMDL "CMDL"
! 46: #define MB_COMP "COMP"
! 47: #define MB_CRYPT "CRYPT"
! 48: #define MB_ECHO "ECHO"
! 49: #define MB_EVENT "EVENT"
! 50: #define MB_FSM "FSM"
! 51: #define MB_LOG "LOG"
! 52: #define MB_MP "MP"
! 53: #define MB_MBUF "MBUF"
! 54: #define MB_PHYS "PHYS"
! 55: #define MB_PPTP "PPTP"
! 56: #define MB_RADIUS "RADIUS"
! 57: #define MB_RADSRV "RADSRV"
! 58: #define MB_UTIL "UTIL"
! 59: #define MB_VJCOMP "VJCOMP"
! 60: #define MB_IPPOOL "IPPOOL"
! 61:
! 62: #ifndef __malloc_like
! 63: #define __malloc_like
! 64: #endif
! 65:
! 66: /*
! 67: * FUNCTIONS
! 68: */
! 69:
! 70: /* Replacements for malloc() & free() */
! 71:
! 72: extern void *Malloc(const char *type, size_t size) __malloc_like;
! 73: extern void *Mdup(const char *type, const void *src, size_t size) __malloc_like;
! 74: extern void *Mstrdup(const char *type, const void *src) __malloc_like;
! 75: extern void Freee(void *ptr);
! 76:
! 77: /* Mbuf manipulation */
! 78:
! 79: extern Mbuf mballoc(int size) __malloc_like;
! 80: extern void mbfree(Mbuf bp);
! 81: extern Mbuf mbread(Mbuf bp, void *ptr, int cnt);
! 82: extern int mbcopy(Mbuf bp, int offset, void *buf, int cnt);
! 83: extern Mbuf mbcopyback(Mbuf bp, int offset, const void *buf, int cnt);
! 84: extern Mbuf mbtrunc(Mbuf bp, int max);
! 85: extern Mbuf mbadj(Mbuf bp, int cnt);
! 86: extern Mbuf mbsplit(Mbuf bp, int cnt);
! 87:
! 88: /* Etc */
! 89:
! 90: extern int MemStat(Context ctx, int ac, char *av[], void *arg);
! 91: extern void DumpBp(Mbuf bp);
! 92:
! 93: #endif
! 94:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>