/* Basic message buffer structure */
struct mbuf {
	struct mbuf *next;	/* Links mbufs belonging to single packets */
	struct mbuf *anext;	/* Links packets on queues */
	int16 size;		/* Size of associated data buffer */
	char *data;		/* Active working pointers */
	int16 cnt;
};
typedef struct mbuf MBUF;
#define	NULLBUF	(struct mbuf *)0
#define	NULLBUFP (struct mbuf **)0
void enqueue(MBUF **, MBUF *),
  hex_dump(MBUF **),ascii_dump(MBUF **),append(MBUF **, MBUF *);
struct mbuf *alloc_mbuf(int16),*free_mbuf(MBUF *),*dequeue(MBUF **),
  *copy_p(MBUF *,int16 ),*free_p(MBUF *),*qdata(char *, int16 ),
	*pushdown(MBUF *, int16);
int16 pullup(MBUF **, char *,int16),
  dup_p(MBUF **, MBUF *,int16,int16),len_mbuf(MBUF *),
  dqdata(MBUF *,char *,unsigned),len_q(MBUF *);
int32 pull32(MBUF **);
int16 pull16(MBUF **);
char pullchar(MBUF **),*put16(char *,int16),*put32(char *,int32);
#define	AUDIT(bp)	audit(bp,__FILE__,__LINE__)

