BBN-Vax-TCP/bbnnet/mbuf.h

Compare this file to the similar file:
Show the results in this format:

#define NNETPAGES 256			/* maximum number of net pages */
#define PGSIZE 1024			/* size of a net page */
#define MSIZE 128                       /* size of an mbuf */
#define MHEAD (2+2*sizeof(struct mbuf *)) /* mbuf hdr length (not incl data) */
#define MLEN  (MSIZE-MHEAD)             /* mbuf max data length */
#define NMBPG (PGSIZE/MSIZE)            /* mbufs/page */

struct mbuf {                   /* message buffer */
	struct mbuf *m_next;		/* -> next msg buffer in chain */
	struct mbuf *m_act;		/* auxiliary mbuf pointer */
	unsigned char m_off;		/* offset in msg buf to curr. header */
	unsigned char m_len;		/* curr. data length in msg buf */
	unsigned char m_dat[MLEN];	/* data storage */
};

	/* vaddr to top of mbuf */
#define dtom(x)  ((struct mbuf *)((int)x & ~0x7f))      

struct pfree {                  /* free page table */
	unsigned char p_free;		/* # free bufs remaining in page */
	unsigned char p_off;		/* offset to next free buf in page */
	unsigned char p_next;		/* index of next free page entry */
	unsigned char p_prev;		/* index of prev free page entry */
};

	/* pfree index to ->page data */
#define pftom(x) ((struct mbuf *)((x << 10) + (int)netutl))  
	/* mbuf to pfree index */
#define mtopf(x) ((((int)x & ~0x3ff) - (int)netutl) >> 10)   
	/* mbuf to page offset */
#define mtoff(x) (((int)x & 0x3ff) >> 7)                

#ifdef KERNEL

struct pfree *freetab;                  /* ->free page table */
int nnetpages;
extern struct mbuf netutl[];            /* virtual address of net free mem */
extern struct pte Netmap[];             /* page tables to map Netutl */

struct mbuf *m_get();
struct mbuf *m_free();
int m_freem();
struct mbuf *m_adj();
struct host *h_find();
struct host *h_make();

#endif KERNEL