BSD 4_4 release
[unix-history] / usr / src / sys / vax / datakit / new / dkdr.h
/*
* DATAKIT VCS Data Structures for a DR-11C interface
* @(#)dkdr.h 1.1 Garage 84/03/27
*/
/*
* Structure for each Datakit channel
*/
struct dkchan {
short dk_state;
struct ifqueue dk_outq;
int (*dk_endfcn)();
caddr_t dk_endparm;
int (*dk_supfcn)(); /* who to tell of circuit supervision */
caddr_t dk_raddr; /* address of received data */
unsigned dk_rlen; /* length of pending receive */
short dk_rmode; /* possible completion modes */
unsigned dk_xlen; /* length of xmit */
struct mbuf *dk_curout; /* current buffer */
struct dkpkbufr *dk_rq; /* un-acked input */
struct dkpkbufr *dk_rb; /* un-checked input */
short dk_rblen; /* len of unchecked */
char dk_S; /* protocol parameters */
char dk_R;
char dk_X;
char dk_A;
char dk_C;
char dk_trmode;
char dk_rseq;
short dk_tail1;
short dk_tail2;
int dk_rejcnt; /* Reject messages received */
int dk_srejcnt; /* Reject messages sent */
int dk_ackrejcnt; /* Acks that cause retransmit */
int dk_enqcnt; /* ENQs sent */
};
/* Flags for dk_X */
#define XM_OFF ((char) 0xff) /* transmitter off */
#define XM_INIT ((char) 02) /* transmitter initialized */
#define XM_REJ ((char) 04) /* Sent REJ */
#define XM_ENQ ((char) 010) /* send ENQ next timeout */
/*
* Packet buffers
*/
struct dkpkbufr {
struct dkpkbufr *Pnext;
short Phibits;
char Pseq;
char Plen;
char Pdata[16];
};
/*
* Structure to save completion status until processed
*/
struct dkstat {
short k_type; /* type of completion status */
short k_chan; /* channel number */
short k_info1; /* misc info */
short k_info2;
};