2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
32 * (C) COPYRIGHT Apple Computer, Inc. 1992-1996
37 #ifndef _NETAT_ADSP_H_
38 #define _NETAT_ADSP_H_
39 #include <sys/appleapiopts.h>
40 #include <netat/appletalk.h>
42 #ifdef __APPLE_API_OBSOLETE
44 /* ADSP flags for read, write, and close routines */
46 #define ADSP_EOM 0x01 /* Sent or received EOM with data */
47 #define ADSP_FLUSH 0x02 /* Send all data in send queue */
48 #define ADSP_WAIT 0x04 /* Graceful close, wait 'til snd queue emptys */
51 /* ADSP events to be fielded by the user event handler */
53 #define ADSP_EV_ATTN 0x02 /* Attention data recvd. */
54 #define ADSP_EV_RESET 0x04 /* Forward reset recvd. */
55 #define ADSP_EV_CLOSE 0x08 /* Close advice recvd. */
58 /* ADSP packet control codes */
60 #define ADSP_PROBEACK 0 /* Probe or acknowledgement */
61 #define ADSP_OPENCONREQUEST 1 /* Open connection request */
62 #define ADSP_OPENCONACK 2 /* Open connection acknowledgement */
63 #define ADSP_OPENCONREQACK 3 /* Open connection request + ack */
64 #define ADSP_OPENCONDENIAL 4 /* Open connection denial */
65 #define ADSP_CLOSEADVICE 5 /* Close connection advice */
66 #define ADSP_FORWARDRESET 6 /* Forward reset */
67 #define ADSP_FORWARDRESETACK 7 /* Forward reset acknowledgement */
68 #define ADSP_RETRANSADVICE 8 /* Retransmit advice */
71 /* Miscellaneous constants */
73 #define ADSP_MAXDATA 572 /* Maximum data bytes in ADSP packet */
74 #define ADSP_MAXATTNDATA 570 /* Maximum data bytes in attn msg */
75 #define ADSP_DDPTYPE 7 /* DDP protocol type for ADSP */
76 #define ADSP_VERSION 0x0100 /* ADSP version */
79 /* Some additional ADSP error codes */
81 #define EQUEWASEMP 10001
82 #define EONEENTQUE 10002
83 #define EQUEBLOCKED 10003
84 #define EFWDRESET 10004
85 #define EENDOFMSG 10005
86 #define EADDRNOTINUSE 10006
90 /* Tuning Parameter Block */
93 unsigned Valid
: 1; /* Tuning parameter block is valid */
94 unsigned short TransThresh
; /* Transmit threshold */
95 unsigned TransTimerIntrvl
; /* Transmit timer interval */
96 unsigned short SndWdwCloThresh
; /* Send window closing threshold */
97 unsigned SndWdwCloIntrvl
; /* Send window closed interval */
98 unsigned char SndWdwCloBckoff
; /* Send window closed backoff rate */
99 unsigned ReTransIntrvl
; /* Retransmit interval */
100 unsigned char ReTransBckoff
; /* Retransmit backoff rate */
101 unsigned RestartIntrvl
; /* Restart sender interval */
102 unsigned char RestartBckoff
; /* Restart sender backoff rate */
103 unsigned SndQBufSize
; /* Send queue buffer size */
104 unsigned short RcvQMaxSize
; /* Maximum size of the receive queue */
105 unsigned short RcvQCpyThresh
; /* Receive queue copy threshold */
106 unsigned FwdRstIntrvl
; /* Forward reset interval */
107 unsigned char FwdRstBckoff
; /* Forward reset backoff rate */
108 unsigned AttnIntrvl
; /* Retransmit attn msg interval */
109 unsigned char AttnBckoff
; /* Retransmit attn msg backoff rate */
110 unsigned OpenIntrvl
; /* Retransmit open request interval */
111 unsigned char OpenMaxRetry
; /* Open request maximum retrys */
112 unsigned char RetransThresh
; /* Retransmit advice threshold */
113 unsigned ProbeRetryMax
; /* Maximum number of probes */
114 unsigned SndByteCntMax
; /* Maximum number bytes in send queue */
118 /* Tuning Parameter Tags */
120 #define ADSP_TRANSTHRESH 1 /* Transmit threshold */
121 #define ADSP_TRANSTIMERINTRVL 2 /* Transmit timer interval */
122 #define ADSP_SNDWDWCLOTHRESH 3 /* Send window closing threshold */
123 #define ADSP_SNDWDWCLOINTRVL 4 /* Send window closed interval */
124 #define ADSP_SNDWDWCLOBCKOFF 5 /* Send window closed backoff rate */
125 #define ADSP_RETRANSINTRVL 6 /* Retransmit interval */
126 #define ADSP_RETRANSBCKOFF 7 /* Retransmit backoff rate */
127 #define ADSP_RESTARTINTRVL 8 /* Restart sender interval */
128 #define ADSP_RESTARTBCKOFF 9 /* Restart sender backoff rate */
129 #define ADSP_SNDQBUFSIZE 10 /* Send queue buffer size */
130 #define ADSP_RCVQMAXSIZE 11 /* Receive queue maximum size */
131 #define ADSP_RCVQCPYTHRESH 12 /* Receive queue copy threshold */
132 #define ADSP_FWDRSTINTRVL 13 /* Forward reset retransmit interval */
133 #define ADSP_FWDRSTBCKOFF 14 /* Forward reset backoff rate */
134 #define ADSP_ATTNINTRVL 15 /* Rexmit attention message interval */
135 #define ADSP_ATTNBCKOFF 16 /* Attention message backoff rate */
136 #define ADSP_OPENINTRVL 17 /* Retransmit open request interval */
137 #define ADSP_OPENMAXRETRY 18 /* Open request max retrys */
138 #define ADSP_RETRANSTHRESH 19 /* Retransmit advice threshold */
139 #define ADSP_PROBERETRYMAX 20
140 #define ADSP_SNDBYTECNTMAX 21
142 #define TuneParamCnt 21 /* The number of tuning parameters */
144 /* Connection Status Tags */
146 #define ADSP_STATE 1 /* The connection state */
147 #define ADSP_SNDSEQ 2 /* Send sequence number */
148 #define ADSP_FIRSTRTMTSEQ 3 /* First retransmit sequence number */
149 #define ADSP_SNDWDWSEQ 4 /* Send window sequence number */
150 #define ADSP_RCVSEQ 5 /* Receive sequence number */
151 #define ADSP_ATTNSNDSEQ 6 /* Attn msg send sequence number */
152 #define ADSP_ATTNRCVSEQ 7 /* Attn msg receive sequence number */
153 #define ADSP_RCVWDW 8 /* Receive window size */
154 #define ADSP_ATTNMSGWAIT 9 /* Attn msg is in the receive queue */
156 #define ConStatTagCnt 9 /* Number of connection status tags */
158 #define ADSP_INVALID 0 /* Invalid connection control block */
159 #define ADSP_LISTEN 1 /* Waiting for an open con req */
160 #define ADSP_OPENING 2 /* No state info, sending open req */
161 #define ADSP_MYHALFOPEN 4 /* His state info, sending open req */
162 #define ADSP_HISHALFOPEN 8 /* He has my state info, sndng op req */
163 #define ADSP_OPEN 16 /* Connection is operational */
164 #define ADSP_TORNDOWN 32 /* Probe timer has expired 4 times */
165 #define ADSP_CLOSING 64 /* Client close, emptying send Queues */
166 #define ADSP_CLOSED 128 /* Close adv rcvd, emptying rcv Queues */
168 /* Management Counters */
170 #define ADSP_ATTNACKRCVD 1 /* Attn msg ack received */
171 #define ADSP_ATTNACKACPTD 2 /* Attn msg ack accepted */
172 #define ADSP_PROBERCVD 3 /* Probe received */
173 #define ADSP_ACKRCVD 4 /* Explicit ack msg received */
174 #define ADSP_FWDRSTRCVD 5 /* Forward reset received */
175 #define ADSP_FWDRSTACPTD 6 /* Forward reset accepted */
176 #define ADSP_FWDRSTACKRCVD 7 /* Forward reset ack received */
177 #define ADSP_FWDRSTACKACPTD 8 /* Forward reset ack accepted */
178 #define ADSP_ATTNRCVD 9 /* Attn msg received */
179 #define ADSP_ATTNACPTD 10 /* Attn msg accepted */
180 #define ADSP_DATARCVD 11 /* Data msg received */
181 #define ADSP_DATAACPTD 12 /* Data msg Accepted */
182 #define ADSP_ACKFIELDCHKD 13 /* Ack field checked */
183 #define ADSP_ACKNRSFIELDACPTD 14 /* Next receive seq field accepted */
184 #define ADSP_ACKSWSFIELDACPTD 15 /* Send window seq field accepted */
185 #define ADSP_ACKREQSTD 16 /* Ack requested */
186 #define ADSP_LOWMEM 17 /* Low memory */
187 #define ADSP_OPNREQEXP 18 /* Open request timer expired */
188 #define ADSP_PROBEEXP 19 /* Probe timer expired */
189 #define ADSP_FWDRSTEXP 20 /* Forward reset timer expired */
190 #define ADSP_ATTNEXP 21 /* Attention timer expired */
191 #define ADSP_TRANSEXP 22 /* Transmit timer expired */
192 #define ADSP_RETRANSEXP 23 /* Retransmit timer expired */
193 #define ADSP_SNDWDWCLOEXP 24 /* Send window closed timer expired */
194 #define ADSP_RESTARTEXP 25 /* Restart sender timer expired */
195 #define ADSP_RESLOWEXP 26 /* Resources are low timer expired */
196 #define ADSP_RETRANSRCVD 27 /* Retransmit advice received */
198 #define InfoTagCnt 27
200 /* Length of the parameter and status lists */
202 #define ADSP_DEFLEN (TuneParamCnt * 6 + 1)
203 #define ADSP_STALEN (ConStatTagCnt * 6 + 1)
204 #define ADSP_INFOLEN (InfoTagCnt * 6 + 1)
210 #define controlErr -17 /*I/O System Errors*/
212 #define errENOBUFS -1281
213 #define errRefNum -1280 /* bad connection refNum */
214 #define errAborted -1279 /* control call was aborted */
215 #define errState -1278 /* bad connection state for this operation */
216 #define errOpening -1277 /* open connection request failed */
217 #define errAttention -1276 /* attention message too long */
218 #define errFwdReset -1275 /* read terminated by forward reset */
219 #define errDSPQueueSize -1274 /* DSP Read/Write Queue Too small */
220 #define errOpenDenied -1273 /* open connection request was denied */
224 #define dspInit 255 /* create a new connection end */
225 #define dspRemove 254 /* remove a connection end */
226 #define dspOpen 253 /* open a connection */
227 #define dspClose 252 /* close a connection */
228 #define dspCLInit 251 /* create a connection listener */
229 #define dspCLRemove 250 /* remove a connection listener */
230 #define dspCLListen 249 /* post a listener request */
231 #define dspCLDeny 248 /* deny an open connection request */
232 #define dspStatus 247 /* get status of connection end */
233 #define dspRead 246 /* read data from the connection */
234 #define dspWrite 245 /* write data on the connection */
235 #define dspAttention 244 /* send an attention message */
236 #define dspOptions 243 /* set connection end options */
237 #define dspReset 242 /* forward reset the connection */
238 #define dspNewCID 241 /* generate a cid for a connection end */
241 /* connection opening modes */
243 #define ocRequest 1 /* request a connection with remote */
244 #define ocPassive 2 /* wait for a connection request from remote */
245 #define ocAccept 3 /* accept request as delivered by listener */
246 #define ocEstablish 4 /* consider connection to be open */
249 /* connection end states */
251 #define sListening 1 /* for connection listeners */
252 #define sPassive 2 /* waiting for a connection request from remote */
253 #define sOpening 3 /* requesting a connection with remote */
254 #define sOpen 4 /* connection is open */
255 #define sClosing 5 /* connection is being torn down */
256 #define sClosed 6 /* connection end state is closed */
260 /* client event flags */
262 #define eClosed 0x80 /* received connection closed advice */
263 #define eTearDown 0x40 /* connection closed due to broken connection */
264 #define eAttention 0x20 /* received attention message */
265 #define eFwdReset 0x10 /* received forward reset advice */
267 /* miscellaneous constants */
269 #define attnBufSize 570 /* size of client attention buffer */
270 #define minDSPQueueSize 100 /* Minimum size of receive or send Queue */
271 #define defaultDSPQS 16384 /* random guess */
272 #define RecvQSize defaultDSPQS
273 #define SendQSize defaultDSPQS
275 /* *** Seems to be a problem in Mac OS X too *** */
276 /* Solaris defines u as (curproc->p_user)
282 typedef long (*ProcPtr
)(); /* XXX */
283 typedef ProcPtr
*ProcHandle
;
287 /* connection control block */
290 u_char
*ccbLink
; /* link to next ccb */
291 u_short refNum
; /* user reference number */
292 u_short state
; /* state of the connection end */
293 u_char userFlags
; /* flags for unsolicited connection events */
294 u_char localSocket
; /* socket number of this connection end */
295 at_inet_t remoteAddress
; /* internet address of remote end */
296 u_short attnCode
; /* attention code received */
297 u_short attnSize
; /* size of received attention data */
298 u_char
*attnPtr
; /* ptr to received attention data */
299 u_char reserved
[220]; /* for adsp internal use */
302 typedef struct TRCCB TRCCB
;
303 typedef TRCCB
*TPCCB
;
305 /* init connection end parameters */
307 struct TRinitParams
{
308 TPCCB ccbPtr
; /* pointer to connection control block */
309 ProcPtr userRoutine
; /* client routine to call on event */
310 u_char
*sendQueue
; /* client passed send queue buffer */
311 u_char
*recvQueue
; /* client passed receive queue buffer */
312 u_char
*attnPtr
; /* client passed receive attention buffer */
313 u_short sendQSize
; /* size of send queue (0..64K bytes) */
314 u_short recvQSize
; /* size of receive queue (0..64K bytes) */
315 u_char localSocket
; /* local socket number */
318 typedef struct TRinitParams TRinitParams
;
320 /* open connection parameters */
322 struct TRopenParams
{
323 u_short localCID
; /* local connection id */
324 u_short remoteCID
; /* remote connection id */
325 at_inet_t remoteAddress
; /* address of remote end */
326 at_inet_t filterAddress
; /* address filter */
327 unsigned long sendSeq
; /* local send sequence number */
328 u_long recvSeq
; /* receive sequence number */
329 u_long attnSendSeq
; /* attention send sequence number */
330 u_long attnRecvSeq
; /* attention receive sequence number */
331 u_short sendWindow
; /* send window size */
332 u_char ocMode
; /* open connection mode */
333 u_char ocInterval
; /* open connection request retry interval */
334 u_char ocMaximum
; /* open connection request retry maximum */
337 typedef struct TRopenParams TRopenParams
;
339 /* close connection parameters */
341 struct TRcloseParams
{
342 u_char abort
; /* abort connection immediately if non-zero */
345 typedef struct TRcloseParams TRcloseParams
;
347 /* client status parameter block */
349 struct TRstatusParams
{
350 TPCCB ccbPtr
; /* pointer to ccb */
351 u_short sendQPending
; /* pending bytes in send queue */
352 u_short sendQFree
; /* available buffer space in send queue */
353 u_short recvQPending
; /* pending bytes in receive queue */
354 u_short recvQFree
; /* available buffer space in receive queue */
357 typedef struct TRstatusParams TRstatusParams
;
359 /* read/write parameter block */
362 u_short reqCount
; /* requested number of bytes */
363 u_short actCount
; /* actual number of bytes */
364 u_char
*dataPtr
; /* pointer to data buffer */
365 u_char eom
; /* indicates logical end of message */
366 u_char flush
; /* send data now */
367 u_char dummy
[2]; /*### LD */
370 typedef struct TRioParams TRioParams
;
372 /* attention parameter block */
374 struct TRattnParams
{
375 u_short attnCode
; /* client attention code */
376 u_short attnSize
; /* size of attention data */
377 u_char
*attnData
; /* pointer to attention data */
378 u_char attnInterval
; /* retransmit timer in 10-tick intervals */
379 u_char dummy
[3]; /* ### LD */
382 typedef struct TRattnParams TRattnParams
;
384 /* client send option parameter block */
386 struct TRoptionParams
{
387 u_short sendBlocking
; /* quantum for data packets */
388 u_char sendTimer
; /* send timer in 10-tick intervals */
389 u_char rtmtTimer
; /* retransmit timer in 10-tick intervals */
390 u_char badSeqMax
; /* threshold for sending retransmit advice */
391 u_char useCheckSum
; /* use ddp packet checksum */
392 u_short filler
; /* ### LD */
393 int newPID
; /* ### Temp for backward compatibility 02/11/94 */
396 typedef struct TRoptionParams TRoptionParams
;
398 /* new cid parameters */
400 struct TRnewcidParams
{
401 u_short newcid
; /* new connection id returned */
404 typedef struct TRnewcidParams TRnewcidParams
;
407 TRinitParams initParams
; /* dspInit, dspCLInit */
408 TRopenParams openParams
; /* dspOpen, dspCLListen, dspCLDeny */
409 TRcloseParams closeParams
; /* dspClose, dspRemove */
410 TRioParams ioParams
; /* dspRead, dspWrite, dspAttnRead */
411 TRattnParams attnParams
; /* dspAttention */
412 TRstatusParams statusParams
; /* dspStatus */
413 TRoptionParams optionParams
; /* dspOptions */
414 TRnewcidParams newCIDParams
; /* dspNewCID */
417 /* ADSP CntrlParam ioQElement */
419 struct DSPParamBlock
{
424 ProcPtr ioCompletion
;
428 short ioCRefNum
; /* adsp driver refNum */
429 short csCode
; /* adsp driver control code */
430 long qStatus
; /* adsp internal use */
431 u_short ccbRefNum
; /* connection end refNum */
432 union adsp_command u
;
435 typedef struct DSPParamBlock DSPParamBlock
;
436 typedef DSPParamBlock
*DSPPBPtr
;
439 struct adspcmd
*qLink
;
453 union adsp_command u
;
456 /* from h/adsp_frames.h */
460 * LAP Frame Information
470 #define LAP_FRAME_LEN 3
472 #define MAX_FRAME_SIZE 603
475 #define LAP_DDPX 0x02
478 ua_short ddp_length
; /* length of ddp fields */
479 u_char ddp_dest
; /* destination socket */
480 u_char ddp_source
; /* source socket */
481 u_char ddp_type
; /* protocol type */
482 u_char ddp_data
[1]; /* data field */
485 #define DDPS_FRAME_LEN 5
486 #endif /* NOT_USED */
489 ua_short ddpx_length
; /* length and hop count */
490 ua_short ddpx_cksm
; /* checksum */
491 at_net ddpx_dnet
; /* destination network number */
492 at_net ddpx_snet
; /* source network number */
493 u_char ddpx_dnode
; /* destination node */
494 u_char ddpx_snode
; /* source node */
495 u_char ddpx_dest
; /* destination socket */
496 u_char ddpx_source
; /* source socket */
497 u_char ddpx_type
; /* protocol type */
498 u_char ddpx_data
[1]; /* data field */
501 #define DDPL_FRAME_LEN 13
505 u_char nbp_ctrl_cnt
; /* control and tuple count */
506 u_char nbp_id
; /* enquiry/reply id */
507 u_char nbp_data
[1]; /* tuple space */
510 #define NBP_TYPE_MASK 0xf0 /* mask of ctrl_cnt field */
511 #define NBP_CNT_MASK 0x0f /* mask for number of tuples */
512 #define NBP_BROADCAST 0x10 /* internet lookup */
513 #define NBP_LOOKUP 0x20 /* lookup request */
514 #define NBP_REPLY 0x30 /* response to lookup */
517 u_char atp_control
; /* control field */
518 u_char atp_map
; /* bitmap for acknowlegement */
519 ua_short atp_tid
; /* transaction id */
522 u_char b
[4]; /* user u_chars */
525 u_char atp_data
[1]; /* data field */
528 #define ATP_FRAME_LEN 8
530 #define ATP_TREQ 0x40 /* transaction request */
531 #define ATP_TRESP 0x80 /* response packet */
532 #define ATP_TREL 0xc0 /* transaction release packet */
533 #define ATP_XO 0x20 /* exactly once flag */
534 #define ATP_EOM 0x10 /* end of message flag */
535 #define ATP_STS 0x08 /* send transaction status */
537 #define ATP_TYPE(x) ((x)->atp_control & 0xc0)
551 u_char zip_command
; /* zip command number */
552 u_char flags
; /* Bit-mapped */
555 ZIP_1 o
; /* Packet has one net number */
556 ZIP_2 r
; /* Packet has cable range */
560 /* Flags in the ZIP GetNetInfo & NetInfoReply buffer */
562 #define ZIPF_BROADCAST 0x80
563 #define ZIPF_ZONE_INVALID 0x80
564 #define ZIPF_USE_BROADCAST 0x40
565 #define ZIPF_ONE_ZONE 0x20
567 #define ZIP_QUERY 1 /* ZIP Commands in zip frames */
569 #define ZIP_TAKEDOWN 3
570 #define ZIP_BRINGUP 4
571 #define ZIP_GETNETINFO 5
572 #define ZIP_NETINFOREPLY 6
575 #define ZIP_GETMYZONE 7 /* ZIP commands in atp user u_chars[0] */
576 #define ZIP_GETZONELIST 8
577 #define ZIP_GETLOCALZONES 9
578 #define ZIP_GETYOURZONE 10
581 * Response to Reponder Request type #1.
583 * The first 4 u_chars are actually the 4 ATP user u_chars
584 * Following this structure are 4 PASCAL strings:
585 * System Version String. (max 127)
586 * Finder Version String. (max 127)
587 * LaserWriter Version String. (max 127)
588 * AppleShare Version String. (max 24)
592 u_char UserU_Chars
[2];
593 ua_short ResponderVersion
;
594 ua_short AtalkVersion
;
599 ua_short ROM85Version
;
600 u_char ResponderLevel
;
601 u_char ResponderLink
;
604 #endif /* NOT_USED */
611 ua_long pktFirstByteSeq
;
612 ua_long pktNextRecvSeq
;
614 u_char descriptor
; /* Bit-Mapped */
616 } ADSP_FRAME
, *ADSP_FRAMEPtr
;
618 #define ADSP_FRAME_LEN 13
620 #define ADSP_CONTROL_BIT 0x80
621 #define ADSP_ACK_REQ_BIT 0x40
622 #define ADSP_EOM_BIT 0x20
623 #define ADSP_ATTENTION_BIT 0x10
624 #define ADSP_CONTROL_MASK 0x0F
626 #define ADSP_CTL_PROBE 0x00 /* Probe or acknowledgement */
627 #define ADSP_CTL_OREQ 0x01 /* Open Connection Request */
628 #define ADSP_CTL_OACK 0x02 /* Open Request acknowledgment */
629 #define ADSP_CTL_OREQACK 0x03 /* Open Request and acknowledgement */
630 #define ADSP_CTL_ODENY 0x04 /* Open Request denial */
631 #define ADSP_CTL_CLOSE 0x05 /* Close connection advice */
632 #define ADSP_CTL_FRESET 0x06 /* Forward Reset */
633 #define ADSP_CTL_FRESET_ACK 0x07 /* Forward Reset Acknowledgement */
634 #define ADSP_CTL_RETRANSMIT 0x08 /* Retransmit advice */
637 ua_short version
; /* Must be in network byte order */
638 ua_short dstCID
; /* */
639 ua_long pktAttnRecvSeq
; /* Must be in network byte order */
640 } ADSP_OPEN_DATA
, *ADSP_OPEN_DATAPtr
;
642 #define ADSP_OPEN_FRAME_LEN 8
644 #define ADSP_MAX_DATA_LEN 572
646 /* from h/adsp_ioctl.h */
649 * Defines that correspond to atlog.h in the N & C Appletalk
653 #define AT_MID_ADSP 212
655 /* Streams ioctl definitions */
657 #define ADSP_IOCTL(i) ((i>>8) == AT_MID_ADSP)
658 #define ADSPATTNREAD ((AT_MID_ADSP<<8) | 254) /* read attention data */
659 #define ADSPOPEN ((AT_MID_ADSP<<8) | 253) /* open a connection */
660 #define ADSPCLOSE ((AT_MID_ADSP<<8) | 252) /* close a connection */
661 #define ADSPCLINIT ((AT_MID_ADSP<<8) | 251) /* create a conn listener */
662 #define ADSPCLREMOVE ((AT_MID_ADSP<<8) | 250) /* remove a conn listener */
663 #define ADSPCLLISTEN ((AT_MID_ADSP<<8) | 249) /* post a listener request */
664 #define ADSPCLDENY ((AT_MID_ADSP<<8) | 248) /* deny an open connection request */
665 #define ADSPSTATUS ((AT_MID_ADSP<<8) | 247) /* get status of conn end */
666 #define ADSPREAD ((AT_MID_ADSP<<8) | 246) /* read data from conn */
667 #define ADSPWRITE ((AT_MID_ADSP<<8) | 245) /* write data on the conn */
668 #define ADSPATTENTION ((AT_MID_ADSP<<8) | 244) /* send attention message */
669 #define ADSPOPTIONS ((AT_MID_ADSP<<8) | 243) /* set conn end options */
670 #define ADSPRESET ((AT_MID_ADSP<<8) | 242) /* forward reset connection */
671 #define ADSPNEWCID ((AT_MID_ADSP<<8) | 241) /* generate a cid conn end */
672 #define ADSPBINDREQ ((AT_MID_ADSP<<8) | 240)
673 #define ADSPGETSOCK ((AT_MID_ADSP<<8) | 239)
674 #define ADSPGETPEER ((AT_MID_ADSP<<8) | 238)
676 #ifdef KERNEL_PRIVATE
678 /* from h/adsp_adsp.h */
680 /* Definitions from strgeneric.h (on AIX?) */
682 #define STR_PUTNEXT 1
683 #define STR_PUTBACK 2
684 #define STR_QTIME (HZ >> 3)
687 #define CCBPtr struct ccb *
688 extern int adspInit(CCBPtr sp
, struct adspcmd
*ap
);
689 extern int adspOpen(register CCBPtr sp
, register struct adspcmd
*pb
);
690 extern int adspCLListen( register CCBPtr sp
, register struct adspcmd
*pb
);
691 extern int adspClose(register CCBPtr sp
, register struct adspcmd
*pb
);
692 extern int adspCLDeny(struct adspcmd
*pb
, CCBPtr sp
);
693 extern int adspStatus(CCBPtr sp
, register struct adspcmd
*pb
);
694 extern int adspRead(register CCBPtr sp
, register struct adspcmd
*pb
);
695 extern int adspWrite(CCBPtr sp
, struct adspcmd
*pb
);
696 extern int adspAttention(register struct adspcmd
*pb
, register CCBPtr sp
);
697 extern int adspOptions(CCBPtr sp
, struct adspcmd
*pb
);
698 extern int adspReset(CCBPtr sp
, struct adspcmd
*pb
);
699 extern int adspNewCID(CCBPtr sp
, struct adspcmd
*pb
);
700 extern int adspPacket(gref_t
*gref
, gbuf_t
*mp
);
716 #endif /* KERNEL_PRIVATE */
717 #endif /* __APPLE_API_OBSOLETE */
718 #endif /* _NETAT_ADSP_H_ */