mbuf.h revision 28679
1/* 2 * Written by Toshiharu OHNO (tony-o@iij.ad.jp) 3 * 4 * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd. 5 * 6 * Redistribution and use in source and binary forms are permitted 7 * provided that the above copyright notice and this paragraph are 8 * duplicated in all such forms and that any documentation, 9 * advertising materials, and other materials related to such 10 * distribution and use acknowledge that the software was developed 11 * by the Internet Initiative Japan. The name of the 12 * IIJ may not be used to endorse or promote products derived 13 * from this software without specific prior written permission. 14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 15 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 16 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 17 * 18 * $Id: mbuf.h,v 1.5 1997/06/09 03:27:29 brian Exp $ 19 * 20 * TODO: 21 */ 22 23#ifndef _MBUF_H_ 24#define _MBUF_H_ 25 26struct mbuf { 27 u_char *base; /* pointer to top of buffer space */ 28 short size; /* size allocated from base */ 29 short offset; /* offset to start position */ 30 short cnt; /* available byte count in buffer */ 31 short type; 32 struct mbuf *next; /* link to next mbuf */ 33 struct mbuf *pnext; /* link to next packet */ 34}; 35 36struct mqueue { 37 struct mbuf *top; 38 struct mbuf *last; 39 int qlen; 40}; 41 42#define NULLBUFF ((struct mbuf *)0) 43 44#define MBUF_CTOP(bp) (bp->base + bp->offset) 45 46#define MB_ASYNC 1 47#define MB_FSM 2 48#define MB_HDLCOUT 3 49#define MB_IPIN 4 50#define MB_ECHO 5 51#define MB_LQR 6 52#define MB_MODEM 7 53#define MB_VJCOMP 8 54#define MB_LOG 9 55#define MB_IPQ 10 56#define MB_MAX MB_IPQ 57 58extern int plength(struct mbuf * bp); 59extern struct mbuf *mballoc(int cnt, int type); 60extern struct mbuf *mbfree(struct mbuf * bp); 61extern void pfree(struct mbuf * bp); 62extern void mbwrite(struct mbuf * bp, u_char * ptr, int cnt); 63extern struct mbuf *mbread(struct mbuf * bp, u_char * ptr, int cnt); 64extern void DumpBp(struct mbuf * bp); 65extern void Enqueue(struct mqueue * queue, struct mbuf * bp); 66extern struct mbuf *Dequeue(struct mqueue * queue); 67extern void LogMemory(); 68extern int ShowMemMap(); 69 70#endif 71