1*38624Skarels /* 2*38624Skarels * DATAKIT VCS Data Structures for a DR-11C interface 3*38624Skarels * @(#)dkdr.h 1.1 Garage 84/03/27 4*38624Skarels */ 5*38624Skarels 6*38624Skarels /* 7*38624Skarels * Structure for each Datakit channel 8*38624Skarels */ 9*38624Skarels 10*38624Skarels struct dkchan { 11*38624Skarels short dk_state; 12*38624Skarels struct ifqueue dk_outq; 13*38624Skarels int (*dk_endfcn)(); 14*38624Skarels caddr_t dk_endparm; 15*38624Skarels int (*dk_supfcn)(); /* who to tell of circuit supervision */ 16*38624Skarels caddr_t dk_raddr; /* address of received data */ 17*38624Skarels unsigned dk_rlen; /* length of pending receive */ 18*38624Skarels short dk_rmode; /* possible completion modes */ 19*38624Skarels unsigned dk_xlen; /* length of xmit */ 20*38624Skarels struct mbuf *dk_curout; /* current buffer */ 21*38624Skarels struct dkpkbufr *dk_rq; /* un-acked input */ 22*38624Skarels struct dkpkbufr *dk_rb; /* un-checked input */ 23*38624Skarels short dk_rblen; /* len of unchecked */ 24*38624Skarels char dk_S; /* protocol parameters */ 25*38624Skarels char dk_R; 26*38624Skarels char dk_X; 27*38624Skarels char dk_A; 28*38624Skarels char dk_C; 29*38624Skarels char dk_trmode; 30*38624Skarels char dk_rseq; 31*38624Skarels short dk_tail1; 32*38624Skarels short dk_tail2; 33*38624Skarels int dk_rejcnt; /* Reject messages received */ 34*38624Skarels int dk_srejcnt; /* Reject messages sent */ 35*38624Skarels int dk_ackrejcnt; /* Acks that cause retransmit */ 36*38624Skarels int dk_enqcnt; /* ENQs sent */ 37*38624Skarels }; 38*38624Skarels 39*38624Skarels /* Flags for dk_X */ 40*38624Skarels #define XM_OFF ((char) 0xff) /* transmitter off */ 41*38624Skarels #define XM_INIT ((char) 02) /* transmitter initialized */ 42*38624Skarels #define XM_REJ ((char) 04) /* Sent REJ */ 43*38624Skarels #define XM_ENQ ((char) 010) /* send ENQ next timeout */ 44*38624Skarels 45*38624Skarels /* 46*38624Skarels * Packet buffers 47*38624Skarels */ 48*38624Skarels 49*38624Skarels struct dkpkbufr { 50*38624Skarels struct dkpkbufr *Pnext; 51*38624Skarels short Phibits; 52*38624Skarels char Pseq; 53*38624Skarels char Plen; 54*38624Skarels char Pdata[16]; 55*38624Skarels }; 56*38624Skarels 57*38624Skarels /* 58*38624Skarels * Structure to save completion status until processed 59*38624Skarels */ 60*38624Skarels 61*38624Skarels struct dkstat { 62*38624Skarels short k_type; /* type of completion status */ 63*38624Skarels short k_chan; /* channel number */ 64*38624Skarels short k_info1; /* misc info */ 65*38624Skarels short k_info2; 66*38624Skarels }; 67