BBN-V6/h/imp.h

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

/* #define IMPPRTDEBUG 		/* set conditional compilation to generate debug stuff*/

int impdiag;	/* set non-zero to get printf messages */
		/* set >= 8 to get trace messages */

long    impi_host;      /* host taken from leader by impinput */
int	impi_sockt;	/* pts to sktp involved with imp read */
int     impi_con;       /* pointer to rawent jsq BBN 3-21-79 */
struct netbuf *impi_msg; /* pts to msg being built by imp read */

#ifndef BUFMOD
char	*impi_adr;	/* == last adr loaded into the input dev. reg.*/
#endif BUFMOD
#ifdef BUFMOD
char    *impi_adr;      /* in 64 byte units */
char    *impi_offset;
#endif BUFMOD

int	impi_mlen;	/* len of msg being built */
int	impi_flush;	/* if on indicates imp is being flushed */
int	impi_b_count;	/* number of bytes actually ead on last read */
int	impi_req_b;	/* number of bytes requested to be read (last) */
int	impi_d_end;	/* !=0 iff end-of-data test was true */
int	impi_l_end;	/* !=0 iff end-of-leader test was true */
int	impi_csr;	/* copy of input csr */

int	impo_csr;	/* copy of output csr */
int	impi_wcnt;


struct			/* struct for holding statistics on imp */
{
	char *i_flushes;	/* number of times imp flushed */
	char *i_leaderr;	/* number of imp leader errs */
	int	inpwcnt;
	int	error;
	int	inpendmsg;
	int	inpstat;
	int	outstat;
} imp_stat;

#ifndef SHORT
struct			/* struct read into on leader reads */
{
	char ndum;	/* dummy byte to keep on word bound */
	char nrcv;	/* permanently contains an ncp daemon rcv command */
	char nff;       /* new format flag */
	char dnet;      /* destination network */
	char lflgs;     /* leader flags */
	char type;	/* imp msg type */
	char htype;     /* handling type */
	char host;	/* indicates from what host */
	int  imp;       /* on what imp */
	char link;	/* indicates on what link */
	char subtype;	/* subtype field */
	int  mlength;   /* message length */
	char pad1;	/* pad char for host-host leader - must be zero */
	char bsize;	/* byte size of data coming in */
	int  bcnt;	/* num of bsize bytes coming in */
} imp;
#endif

#ifdef SHORT
struct			/* struct read into on leader reads */
{
	char ndum;	/* dummy byte to keep on word bound */
	char nrcv;	/* permanently contains an ncp daemon rcv command */
	char type;	/* imp msg type */
	char host;	/* indicates from what host */
	char link;	/* indicates on what link */
	char subtype;	/* subtype field */
	char pad1;	/* pad char for host-host leader - must be zero */
	char bsize;	/* byte size of data coming in */
	int  bcnt;	/* num of bsize bytes coming in */
} imp;
#endif

/* possible values for imp type field */
#define ih_stdmsg	00	/* standard data message */
#define ih_elead	01	/* err in leader */
#define ih_igodwn	02	/* imp going down */
#define ih_sideband	03	/* new side band data path */
#define ih_nop		04	/* nop */
#define ih_rfnm		05	/* request for next message */
#define ih_drea		06	/* reason host is dead */
#define ih_hstd		07	/* host or imp is dead */
#define ih_edata	 8	/* err in data */
#define ih_ictrans	 9	/* incomplete transmission */
#define ih_impup	10	/* imp is up */
/* following four needed by RMI code */
#define ih_rta          11      /* refused, try again */
#define ih_rwn          12      /* refused, will notify */
#define ih_rst          13      /* refused, still trying */
#define ih_ready        14      /* ready */
#define NUMHHOPS	13	/* largest legal host to host op code */

#ifndef SHORT
#define implilob        &imp.nff/* where actual leader starts in imp struct */
#endif
#ifdef SHORT
#define implilob        &imp.type
#endif

#define impllen ihllen          /* imp leader length in bytes */
#define hhllen          4       /* host-host leader length in bytes */

#ifndef BUFMOD
#define implread() impread(implilob, impllen + hhllen)
#endif BUFMOD

#ifdef BUFMOD
#define implread() impread( ( (implilob >> 6) & 01777 ), ( implilob & 077 ), impllen + hhllen )
#endif BUFMOD

#define toncpll         (impllen + 1)   /* for use in to_ncp arg */

#ifndef SHORT
struct  oimp                    /* struct for writing leaders to imp */
{
	char o_nff;       /* new format flag */
	char o_dnet;      /* destination network */
	char o_lflgs;     /* leader flags */
	char o_type;	/* imp msg type */
	char o_htype;     /* handling type */
	char o_host;	/* indicates from what host */
	int  o_imp;       /* on what imp */
	char o_link;	/* indicates on what link */
	char o_subtype;	/* subtype field */
	int  o_mlength;   /* message length */
	char o_pad1;		/* first pad character for hh leader */
	char o_bsize;		/* byte size of data to follow */
	int  o_bcnt;		/* number of bytes in above byte size */
	char o_pad2;		/* second pad char for hh leader */
}	oimp;
#endif

#ifdef SHORT
struct  oimp                    /* struct for writing leaders to imp */
{
	char o_type;		/* msg type */
	char o_host;		/* for what host */
	char o_link;		/* over what link */
	char o_subtype;		/* with what subtype */
	char o_pad1;		/* first pad character for hh leader */
	char o_bsize;		/* byte size of data to follow */
	int  o_bcnt;		/* number of bytes in above byte size */
	char o_pad2;		/* second pad char for hh leader */
}	oimp;
#endif

struct devtab	impotab;	/* imp output device */
struct buf	impobuf;	/* imp output buffer */


struct salloc		/* structure to lay over an allocate command */
{
	char a_op;
	char a_link;
	int  a_msgs;
	int  a_bitshi;
	int  a_bitslo;
};