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