1*38621Skarels /* 2*38621Skarels * DATAKIT VCS User Level definitions 3*38621Skarels * @(#)dk.h 2.1 DKHOST 84/07/03 4*38621Skarels */ 5*38621Skarels 6*38621Skarels 7*38621Skarels /* 8*38621Skarels * ioctl codes 9*38621Skarels */ 10*38621Skarels 11*38621Skarels /* 12*38621Skarels * Note: these take paramters, but the copyin-copyout must be handled in 13*38621Skarels * the driver. 14*38621Skarels */ 15*38621Skarels #define DKIODIAL _IO(k, 0) /* dial out */ 16*38621Skarels #define DKIOCNEW _IO(k, 1) /* offer a service */ 17*38621Skarels #define DKIOCREQ _IO(k, 2) /* request service (SU only) */ 18*38621Skarels #define DKIOCSPL _IO(s, 1) /* splice two circuits (SU only) */ 19*38621Skarels #define DIOCSWAIT _IO(s, 2) /* wait for splice to take place */ 20*38621Skarels 21*38621Skarels /* driver control */ 22*38621Skarels 23*38621Skarels #define DIOCEXCL _IO(d, 1) /* exclusive use */ 24*38621Skarels #define DIOCNXCL _IO(d, 2) /* reset exclusive use */ 25*38621Skarels #define DIOCRMODE _IOW(d, 3, short) /* set receiver termination modes */ 26*38621Skarels #define DIOCQQABO _IOR(d, 4, struct dkqqabo) /* inquire status of last read */ 27*38621Skarels #define DIOCXCTL _IOW(d, 8, short) /* send ctl envelope on next write */ 28*38621Skarels #define DIOCFLUSH _IO(d, 9) /* flush output */ 29*38621Skarels #define DIOCSETK _IOW(d, 10, short) /* debug info from kmc xmit&recv */ 30*38621Skarels #define DIOCXWIN _IOW(d, 11, struct diocxwin) /* Set window size */ 31*38621Skarels #define KIOCINIT _IO(d, 12) /* Reinitialize transmitter */ 32*38621Skarels #define DIOCRESET _IOW(d, 13, short) /* Reset a channel */ 33*38621Skarels #define DIOCCTYPE _IOW(d, 14, struct diocctype) /* Set conn type */ 34*38621Skarels #define DIOCINFO _IOR(d, 15, struct diocinfo) /* Get chan #, max # */ 35*38621Skarels #define DIOCSTAT _IOWR(d, 16, int) /* Check if channel open */ 36*38621Skarels 37*38621Skarels /* special codes used by dkxstdio */ 38*38621Skarels #define DXIOEXIT _IOW(D, 'T', int) /* process exit code */ 39*38621Skarels 40*38621Skarels /* 41*38621Skarels * structure returned from DIOCQQABO giving receive status 42*38621Skarels */ 43*38621Skarels struct dkqqabo { 44*38621Skarels short rcv_resid ; /* residual length in buffer */ 45*38621Skarels short rcv_reason ; /* set of bits giving reasons */ 46*38621Skarels short rcv_ctlchar ; /* ctl char that finished block */ 47*38621Skarels } ; 48*38621Skarels 49*38621Skarels /* 50*38621Skarels * receive mode, and completion indicators 51*38621Skarels * also defined in sys/dkit.h 52*38621Skarels */ 53*38621Skarels 54*38621Skarels #ifndef DKR_FULL 55*38621Skarels #define DKR_FULL 01 /* buffer full, normal read done */ 56*38621Skarels #define DKR_CNTL 02 /* read terminated on control character */ 57*38621Skarels #define DKR_ABORT 010 /* receive aborted by higher level command */ 58*38621Skarels #define DKR_BLOCK 040 /* end of block */ 59*38621Skarels #define DKR_TIME 0100 /* end of time limit reached */ 60*38621Skarels #endif 61*38621Skarels 62*38621Skarels 63*38621Skarels 64*38621Skarels /* 65*38621Skarels * structure passed with ioctl to request a service 66*38621Skarels */ 67*38621Skarels struct diocreq { 68*38621Skarels short req_traffic ; /* traffic intensity generated */ 69*38621Skarels short req_1param ; /* typ: service requested */ 70*38621Skarels short req_2param ; /* parameter to server */ 71*38621Skarels } ; 72*38621Skarels 73*38621Skarels /* 74*38621Skarels * structure passed to dial a number 75*38621Skarels */ 76*38621Skarels struct diocdial { 77*38621Skarels struct diocreq iocb; 78*38621Skarels char dialstring[112-sizeof (struct diocreq)]; 79*38621Skarels }; 80*38621Skarels 81*38621Skarels /* 82*38621Skarels * Structure passed to set URP limits 83*38621Skarels */ 84*38621Skarels struct diocxwin { 85*38621Skarels int xwin_msgsize; /* Size of one message */ 86*38621Skarels unsigned char xwin_nmsg; /* Number of outstanding messages */ 87*38621Skarels }; 88*38621Skarels 89*38621Skarels /* 90*38621Skarels * Structure passed to request configuration info 91*38621Skarels */ 92*38621Skarels struct diocinfo { 93*38621Skarels short dioc_nchan; /* Number of channels configured */ 94*38621Skarels short dioc_channum; /* This channel number */ 95*38621Skarels short dioc_commchan; /* Common supervisory channel */ 96*38621Skarels }; 97*38621Skarels 98*38621Skarels /* 99*38621Skarels * structure passed with ioctl to request a splice 100*38621Skarels */ 101*38621Skarels struct diocspl { 102*38621Skarels short spl_fdin; /* the other file descriptor */ 103*38621Skarels short spl_un1used; 104*38621Skarels short spl_un2used; 105*38621Skarels } ; 106*38621Skarels 107*38621Skarels struct diocctype { 108*38621Skarels int dct_type; /* Annotation type */ 109*38621Skarels char dct_name[112-sizeof (int)-1]; /* Connection type */ 110*38621Skarels }; 111*38621Skarels #define DCT_DIAL 1 /* Dialstring uttered */ 112*38621Skarels #define DCT_SERVE 2 /* Server name */ 113*38621Skarels #define DCT_FROM 3 /* Connection source */ 114*38621Skarels 115*38621Skarels 116*38621Skarels /* 117*38621Skarels * values returned from service request 118*38621Skarels */ 119*38621Skarels #define req_error req_traffic 120*38621Skarels #define req_driver req_traffic 121*38621Skarels 122*38621Skarels #ifndef KERNEL 123*38621Skarels #include <sys/ioctl.h> 124*38621Skarels /* 125*38621Skarels * structure received by server when new connection made 126*38621Skarels */ 127*38621Skarels struct mgrmsg { 128*38621Skarels short m_chan ; /* channel number of connection */ 129*38621Skarels unsigned short m_tstamp ; /* time stamp of request */ 130*38621Skarels char * m_protocol ; /* protocol options from user */ 131*38621Skarels char * m_origtype ; /* type of originating device */ 132*38621Skarels char * m_parm ; /* parameter string from user */ 133*38621Skarels char * m_uid ; /* param from system/user, aka UID */ 134*38621Skarels char * m_dial ; /* dial string entered */ 135*38621Skarels char * m_source ; /* originator, as known to remote node */ 136*38621Skarels char * m_lname ; /* originator, as known to local node */ 137*38621Skarels char * m_service ; /* service type requested by user */ 138*38621Skarels char * m_lflag ; /* L == call from local node, 139*38621Skarels * R == call from a remote one. */ 140*38621Skarels char * m_srcnode; /* originating node (last segment) */ 141*38621Skarels char * m_srcmod; /* originating mod */ 142*38621Skarels char * m_srcchan; /* originating channel */ 143*38621Skarels char * m_cflag; /* call flag: F=first, P=previous */ 144*38621Skarels char * m_errmsg ; /* possible error msg if m_chan <= 0 */ 145*38621Skarels char * m_baudrate ; /* incoming terminal baud rate */ 146*38621Skarels } ; 147*38621Skarels 148*38621Skarels 149*38621Skarels 150*38621Skarels /* 151*38621Skarels * routines declared in libdk.a 152*38621Skarels */ 153*38621Skarels extern char *dknamer(); 154*38621Skarels extern char *dtnamer(); 155*38621Skarels extern char *dxnamer(); 156*38621Skarels extern char *dinamer(); 157*38621Skarels extern char *dketcf(); 158*38621Skarels extern char *dkfcanon(), *dktcanon(); 159*38621Skarels extern char *dkerr(); 160*38621Skarels extern char *maphost(), *miscfield(); 161*38621Skarels extern char mh_hostname[]; 162*38621Skarels extern struct mgrmsg *dkmgr(); 163*38621Skarels 164*38621Skarels extern int dk_verbose, dk_errno; 165*38621Skarels #endif KERNEL 166*38621Skarels 167