xref: /csrg-svn/sys/vax/datakit/dk.h (revision 45179)
138621Skarels /*
2*45179Skarels  *	@(#)dk.h	1.3 (Berkeley) 09/03/90
3*45179Skarels  *
438621Skarels  *	DATAKIT VCS User Level definitions
538621Skarels  *		@(#)dk.h	2.1 DKHOST 84/07/03
638621Skarels  */
738621Skarels 
838621Skarels 
938621Skarels /*
1038621Skarels  *	ioctl codes
1138621Skarels  */
1238621Skarels 
1338621Skarels /*
1438621Skarels  * Note: these take paramters, but the copyin-copyout must be handled in
1538621Skarels  * the driver.
1638621Skarels  */
1738625Skarels #define	DKIODIAL	_IO('k', 0) /* dial out */
1838625Skarels #define	DKIOCNEW	_IO('k', 1) /* offer a service */
1938625Skarels #define	DKIOCREQ	_IO('k', 2) /* request service (SU only) */
2038625Skarels #define	DKIOCSPL	_IO('s', 1) /* splice two circuits (SU only) */
2138625Skarels #define	DIOCSWAIT	_IO('s', 2) /* wait for splice to take place */
2238621Skarels 
2338621Skarels /*     driver control        */
2438621Skarels 
2538625Skarels #define DIOCEXCL	_IO('d', 1)	/* exclusive use */
2638625Skarels #define DIOCNXCL	_IO('d', 2)	/* reset exclusive use */
2738625Skarels #define	DIOCRMODE	_IOW('d', 3, short) /* set receiver termination modes */
2838625Skarels #define	DIOCQQABO	_IOR('d', 4, struct dkqqabo) /* inquire status of last read */
2938625Skarels #define	DIOCXCTL	_IOW('d', 8, short) /* send ctl envelope on next write */
3038625Skarels #define DIOCFLUSH	_IO('d', 9)	/* flush output */
3138625Skarels #define DIOCSETK	_IOW('d', 10, short) /* debug info from kmc xmit&recv */
3238625Skarels #define	DIOCXWIN	_IOW('d', 11, struct diocxwin)	/* Set window size */
3338625Skarels #define	KIOCINIT	_IO('d', 12)	/* Reinitialize transmitter */
3438625Skarels #define	DIOCRESET	_IOW('d', 13, short)	/* Reset a channel */
3538625Skarels #define	DIOCCTYPE	_IOW('d', 14, struct diocctype)	/* Set conn type */
3638625Skarels #define	DIOCINFO	_IOR('d', 15, struct diocinfo)	/* Get chan #, max # */
3738625Skarels #define	DIOCSTAT	_IOWR('d', 16, int)	/* Check if channel open */
3838621Skarels 
3938621Skarels /*	special codes used by dkxstdio	*/
4038625Skarels #define	DXIOEXIT	_IOW('D', 'T', int)  /* process exit code */
4138621Skarels 
4238621Skarels /*
4338621Skarels  *	structure returned from DIOCQQABO giving receive status
4438621Skarels  */
4538621Skarels struct dkqqabo {
4638621Skarels 	short	rcv_resid ;		/* residual length in buffer */
4738621Skarels 	short	rcv_reason ;		/* set of bits giving reasons */
4838621Skarels 	short	rcv_ctlchar ;		/* ctl char that finished block */
4938621Skarels } ;
5038621Skarels 
5138621Skarels /*
5238621Skarels  *   receive mode, and completion indicators
5338621Skarels  *	also defined in sys/dkit.h
5438621Skarels  */
5538621Skarels 
5638621Skarels #ifndef DKR_FULL
5738621Skarels #define	DKR_FULL	01	/* buffer full, normal read done */
5838621Skarels #define	DKR_CNTL	02	/* read terminated on control character */
5938621Skarels #define	DKR_ABORT	010	/* receive aborted by higher level command */
6038621Skarels #define	DKR_BLOCK	040	/* end of block */
6138621Skarels #define	DKR_TIME	0100	/* end of time limit reached */
6238621Skarels #endif
6338621Skarels 
6438621Skarels 
6538621Skarels 
6638621Skarels /*
6738621Skarels  *	structure passed with ioctl to request a service
6838621Skarels  */
6938621Skarels struct diocreq {
7038621Skarels 	short	req_traffic ;		/* traffic intensity generated */
7138621Skarels 	short	req_1param ;		/* typ:  service requested */
7238621Skarels 	short	req_2param ;		/* parameter to server */
7338621Skarels } ;
7438621Skarels 
7538621Skarels /*
7638621Skarels  *	structure passed to dial a number
7738621Skarels  */
7838621Skarels struct diocdial {
7938621Skarels 		struct	diocreq iocb;
80*45179Skarels 		char	dialstring[MLEN-sizeof (struct diocreq)];
8138621Skarels };
8238621Skarels 
8338621Skarels /*
8438621Skarels  * Structure passed to set URP limits
8538621Skarels  */
8638621Skarels struct diocxwin	{
8738621Skarels 	int		xwin_msgsize;	/* Size of one message */
8838621Skarels 	unsigned char	xwin_nmsg;	/* Number of outstanding messages */
8938621Skarels };
9038621Skarels 
9138621Skarels /*
9238621Skarels  * Structure passed to request configuration info
9338621Skarels  */
9438621Skarels struct diocinfo {
9538621Skarels 	short	dioc_nchan;		/* Number of channels configured */
9638621Skarels 	short	dioc_channum;		/* This channel number */
9738621Skarels 	short	dioc_commchan;		/* Common supervisory channel */
9838621Skarels };
9938621Skarels 
10038621Skarels /*
10138621Skarels  *	structure passed with ioctl to request a splice
10238621Skarels  */
10338621Skarels struct diocspl {
10438621Skarels 	short	spl_fdin;		/* the other file descriptor */
10538621Skarels 	short	spl_un1used;
10638621Skarels 	short	spl_un2used;
10738621Skarels } ;
10838621Skarels 
10938621Skarels struct diocctype {
11038621Skarels 	int	dct_type;		/* Annotation type */
111*45179Skarels 	char	dct_name[MLEN-sizeof (int)-1];	/* Connection type */
11238621Skarels };
11338621Skarels #define	DCT_DIAL	1		/* Dialstring uttered */
11438621Skarels #define	DCT_SERVE	2		/* Server name */
11538621Skarels #define	DCT_FROM	3		/* Connection source */
11638621Skarels 
11738621Skarels 
11838621Skarels /*
11938621Skarels  *	values returned from service request
12038621Skarels  */
12138621Skarels #define	req_error	req_traffic
12238621Skarels #define	req_driver	req_traffic
12338621Skarels 
12438621Skarels #ifndef KERNEL
12538621Skarels #include <sys/ioctl.h>
12638621Skarels /*
12738621Skarels  *	structure received by server when new connection made
12838621Skarels  */
12938621Skarels struct mgrmsg {
13038621Skarels 	short	m_chan ;		/* channel number of connection */
13138621Skarels 	unsigned short	m_tstamp ;	/* time stamp of request */
13238621Skarels 	char *	m_protocol ;		/* protocol options from user */
13338621Skarels 	char *	m_origtype ;		/* type of originating device */
13438621Skarels 	char *	m_parm ;		/* parameter string from user */
13538621Skarels 	char *	m_uid ;			/* param from system/user, aka UID */
13638621Skarels 	char *	m_dial ;		/* dial string entered */
13738621Skarels 	char *	m_source ;		/* originator, as known to remote node */
13838621Skarels 	char *	m_lname ;		/* originator, as known to local node */
13938621Skarels 	char *	m_service ;		/* service type requested by user */
14038621Skarels 	char *	m_lflag ;		/* L == call from local node,
14138621Skarels 					 * R == call from a remote one.   */
14238621Skarels 	char *	m_srcnode;		/* originating node (last segment)   */
14338621Skarels 	char *	m_srcmod;		/* originating mod		     */
14438621Skarels 	char *	m_srcchan;		/* originating channel		     */
14538621Skarels 	char *	m_cflag;		/* call flag: F=first, P=previous    */
14638621Skarels 	char *	m_errmsg ;		/* possible error msg if m_chan <= 0 */
14738621Skarels 	char *	m_baudrate ;		/* incoming terminal baud rate */
14838621Skarels } ;
14938621Skarels 
15038621Skarels 
15138621Skarels 
15238621Skarels /*
15338621Skarels  *	routines declared in libdk.a
15438621Skarels  */
15538621Skarels extern char		*dknamer();
15638621Skarels extern char		*dtnamer();
15738621Skarels extern char		*dxnamer();
15838621Skarels extern char		*dinamer();
15938621Skarels extern char		*dketcf();
16038621Skarels extern char		*dkfcanon(), *dktcanon();
16138621Skarels extern char		*dkerr();
16238621Skarels extern char		*maphost(), *miscfield();
16338621Skarels extern char		mh_hostname[];
16438621Skarels extern struct mgrmsg	*dkmgr();
16538621Skarels 
16638621Skarels extern int		dk_verbose, dk_errno;
16738621Skarels #endif KERNEL
16838621Skarels 
169