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