Home | History | Annotate | Download | only in bnu
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
     23 /*	  All Rights Reserved  	*/
     24 
     25 
     26 #ident	"%Z%%M%	%I%	%E% SMI"
     27 
     28 #ifndef _BNU_DK_H
     29 #define _BNU_DK_H
     30 
     31 #ifdef DIAL
     32 #define GLOBAL static
     33 #define EXTERN static
     34 #else
     35 #define EXTERN extern
     36 #define GLOBAL
     37 #endif
     38 
     39 /*
     40  *	DATAKIT VCS User Level definitions
     41  *		@(#)dk.h	2.13+BNU DKHOST 87/06/01
     42  *
     43  *	CommKit(R) Software - Datakit(R) VCS Interface Release
     44  */
     45 
     46 
     47 /*
     48  *	ioctl codes
     49  */
     50 
     51 #define	DKIODIAL	(('k'<<8)|0)	/* dial out */
     52 #define	DKIOCNEW	(('k'<<8)|1)	/* offer a service */
     53 #define	DKIOCREQ	(('k'<<8)|2)	/* request service (SU only) */
     54 #define	DKIORESET	(('k'<<8)|3)	/* reset interface */
     55 #define DKKMCSET	(('k'<<8)|4)	/* associate logical interface
     56 					   with physical KMC # */
     57 
     58 #define DKIOCSPL	(('s'<<8)|1)	/* splice two circuits together (SU only) */
     59 #define	DIOCSWAIT	(('s'<<8)|2)	/* wait for splice to take place */
     60 
     61 
     62 /*     driver control        */
     63 
     64 #define DIOCEXCL	(('d'<<8)|1)	/* exclusive use */
     65 #define DIOCNXCL	(('d'<<8)|2)	/* reset exclusive use */
     66 #define	DIOCRMODE	(('d'<<8)|3)	/* set receiver termination modes */
     67 #define	DIOCQQABO	(('d'<<8)|4)	/* inquire status of last read */
     68 #define	DIOCSIG		(('d'<<8)|5)	/* start short read, signal when done */
     69 
     70 #define	DIOCXCTL	(('d'<<8)|8)	/* send ctl envelope on next write */
     71 #define DIOCFLUSH	(('d'<<8)|9)	/* flush output */
     72 #define DIOCSETK	(('d'<<8)|10)	/* debug info from kmc xmit&recv */
     73 #define	DIOCQSTAT	(('d'<<8)|11)	/* return 3B hw/fw log data */
     74 #define	DIOCBSIZE	(('d'<<8)|12)	/* set URP block size */
     75 #define	DIOCTIME	(('d'<<8)|13)	/* set stagnation timeout value */
     76 #define	DIOCTRAP	(('d'<<8)|14)	/* activate trsave trace for channel */
     77 
     78 /*	interface memory read/write codes	 */
     79 
     80 #define	DIOCHWREAD	(('d'<<8)|15)	/* read interface RAM */
     81 #define	DIOCHWRITE	(('d'<<8)|16)	/* write interface RAM */
     82 
     83 /*	diagnostic control codes	*/
     84 
     85 #define	DIOCDKDGN	(('d'<<8)|17)	/* execute on-line diagnostics */
     86 #define	DIOCDGNSET	(('d'<<8)|18)	/* initialize diagnostic mode */
     87 #define	DIOCDGNCLR	(('d'<<8)|19)	/* clear diagnostic mode */
     88 
     89 /*	3b2/PE codes			*/
     90 #define TCDKIDLD	(('d'<<8)|20)	/* download the PE */
     91 #define TCDKIFCF	(('d'<<8)|21)	/* Force call to function */
     92 #define TCDKIRST	(('d'<<8)|22)	/* Reset the PE board */
     93 #define	TCDKISYSG	(('d'<<8)|23)	/*sysgen the PE board */
     94 
     95 /* Get info from driver */
     96 #define DIOCINFO	(('d'<<8)|24)	/* get chans per interface*/
     97 #define	TCDKIBUG	(('d'<<8)|25)	/*turn debug on on the PE board */
     98 #define	DIOOPEN 	(('d'<<8)|26)	/* inquire channel open status*/
     99 /*	special codes used by dkxstdio	*/
    100 
    101 #define	DXIOEXIT	(('D'<<8)|'T')	/* process exit code */
    102 
    103 /*
    104  *	structure returned from DIOCQQABO giving receive status
    105  */
    106 struct dkqqabo {
    107 	short	rcv_resid ;		/* residual length in buffer */
    108 	short	rcv_reason ;		/* set of bits giving reasons */
    109 	short	rcv_ctlchar ;		/* ctl char that finished block */
    110 } ;
    111 
    112 /*
    113  *   receive mode, and completion indicators
    114  *	also defined in sys/dkit.h
    115  */
    116 
    117 #ifndef DKR_FULL
    118 #define	DKR_FULL	01	/* buffer full, normal read done */
    119 #define	DKR_CNTL	02	/* read terminated on control character */
    120 #define	DKR_ABORT	010	/* receive aborted by higher level command */
    121 #define	DKR_BLOCK	040	/* end of block */
    122 #define	DKR_TIME	0100	/* end of time limit reached */
    123 #endif
    124 
    125 
    126 
    127 /*
    128  *	structure passed with ioctl to request a service
    129  *	actually used as a general-purpose struct to pass
    130  *	info from a kernel ioctl to user space.
    131  */
    132 struct diocreq {
    133 	short	req_traffic ;		/* traffic intensity generated */
    134 	short	req_1param ;		/* typ: service requested */
    135 	short	req_2param ;		/* parameter to server */
    136 } ;
    137 
    138 
    139 /*
    140  *	values returned from service request
    141  */
    142 #define	req_error	req_traffic
    143 #define	req_driver	req_traffic
    144 #define	req_chans	req_traffic
    145 #define	req_chmin	req_1param
    146 
    147 
    148 /*
    149  *	structure received by server when new connection made
    150  */
    151 struct mgrmsg {
    152 	short	m_chan ;		/* channel number of connection */
    153 	unsigned short	m_tstamp ;	/* time stamp of request */
    154 	char *	m_protocol ;		/* protocol options from user */
    155 	char *	m_origtype ;		/* type of originating device */
    156 	char *	m_parm ;		/* parameter string from user */
    157 	char *	m_uid ;			/* param from system/user, aka UID */
    158 	char *	m_dial ;		/* dial string entered */
    159 	char *	m_source ;		/* originator, as known to remote node */
    160 	char *	m_lname ;		/* originator, as known to local node */
    161 	char *	m_service ;		/* service type requested by user */
    162 	char *	m_lflag ;		/* L == call from local node,
    163 					 * R == call from a remote one.   */
    164 	char *	m_srcnode;		/* originating node (last segment)   */
    165 	char *	m_srcmod;		/* originating mod		     */
    166 	char *	m_srcchan;		/* originating channel		     */
    167 	char *	m_cflag;		/* call flag: F=first, P=previous    */
    168 	char *	m_errmsg ;		/* possible error msg if m_chan <= 0 */
    169 } ;
    170 
    171 
    172 
    173 /*
    174  *	routines declared in libdk.a
    175  */
    176 EXTERN char		*dknamer();
    177 EXTERN char		*dtnamer();
    178 EXTERN char		*dxnamer();
    179 EXTERN char		*dkfcanon(), *dktcanon();
    180 EXTERN char		*dkerr();
    181 EXTERN char		*maphost(), *miscfield();
    182 #ifndef DIAL
    183 EXTERN char		mh_hostname[];
    184 #endif
    185 EXTERN struct mgrmsg	*dkmgr();
    186 
    187 EXTERN int		dk_verbose, dk_errno;
    188 
    189 
    190 /*
    191  *	structure passed with ioctl to request a splice
    192  */
    193 struct diocspl {
    194 	short	spl_fdin;		/* the other file descriptor */
    195 	short	spl_un1used;
    196 	short	spl_un2used;
    197 } ;
    198 
    199 /*
    200  * Default file names
    201  */
    202 
    203 #define SRVTAB "/etc/dksrvtab"
    204 #define UIDTAB "/etc/dkuidtab"
    205 #define SRVLOG "/usr/adm/dksrvlog"
    206 #define HOSTAB "/etc/dkhosts"
    207 #define DOTAB  "/usr/lib/dkdotab"
    208 
    209 /*
    210  * Number of longs in the stat array returned by the firmware
    211  */
    212 #define	STATLEN	16
    213 
    214 #endif
    215