BBN-V6/h/rawnet.h

#ifdef RMI
#define RAWDEV  ((253<<8)|0)    /* (-3, 0) device of /dev/net/rawmsg */
#define NCPLOMSG  (72*16)       /* one of these is assigned to */
#define RAWLOMSG  0             /* LOMSG by rawopen */
int     LOMSG;  /* LOMSG and HIMSG define the range of msgs useable */
#define HIMSG ((255*16)+15)   /* for raw messages, i.e., not used by ncp */
#define ELSEMSG ((255*16)+15)   /* if open, gets anything no others do */
#define RAWTSIZE 16         /* number of raw msgs open at once */
#define ROPENFLAGS (n_open|n_raw) /* flags for rawskt */
#define MAXMSG  (1008 + impllen) /* 1006 data + leader + 2 length word */
#define RAWPAD  4       /* MAXMSG + RAWPAD may be read when MAXMSG written */

struct rawparams {
	int     z_mode; /* 0, 1, or 2 as in mode on standard file opens */
	long    z_host; /* zero means anyhost */
	int     z_lomsg;      /* low end of range */
	int     z_himsg;     /* high end: if zero, set equal to lomsg */
};

#define UNSIGN  int
struct rawskt { /* goes over all inode completely if MSG is defined otherwise
		 * i_addr[0] */
#ifdef MSG
	int unused[5];                  /* these are not used by the net
					 * software. Should be tampered
					 * with only with care since they
					 * include fields that are
					 * referenced as inode fields. */
	int INS_cnt;                    /* unused */
	int *itab_p;                    /* pointer to itab, used by await */
#endif
	int     v_conent;   /* unused */
	int     v_bsize;    /* unused */
	UNSIGN  v_flags;        /* always ROPENFLAGS (see also net.h) */
	int     v_msgs;     /* unused */
	int     v_bytes;        /* left to transfer in current message */
	int     v_msgq;         /* message que */
	UNSIGN  v_qtotal;       /* bytes in msgq */
	UNSIGN  v_hiwat;    /* unused */
	char    *v_proc;        /* process currently (last) using socket */
};

struct rawentry {
	long    y_host;     /* host number */
	int     y_lomsg;    /* low end of msgrange */
	int     y_himsg;    /* high end */
	int     y_rawskt;   /* read or write rawskt of msg */
} r_rawtab[RAWTSIZE], w_rawtab[RAWTSIZE];  /* read and write raw tables */

		/* points to rawtab entry of read msg (ELSEMSG) which gets */
struct rawentry *elseentry;     /* all messages not claimed by other msgs */

long ZERO0L;    /* fake a long constant zero (initialized in rawmain.c) */
#endif