|
|
1.1 root 1: /*
2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7: * Reserved. This file contains Original Code and/or Modifications of
8: * Original Code as defined in and that are subject to the Apple Public
9: * Source License Version 1.1 (the "License"). You may not use this file
10: * except in compliance with the License. Please obtain a copy of the
11: * License at http://www.apple.com/publicsource and read it before using
12: * this file.
13: *
14: * The Original Code and all software distributed under the License are
15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
19: * License for the specific language governing rights and limitations
20: * under the License.
21: *
22: * @APPLE_LICENSE_HEADER_END@
23: */
24:
25: /*
26: *
27: * ORIGINS: 82
28: *
29: * APPLE CONFIDENTIAL
30: * (C) COPYRIGHT Apple Computer, Inc. 1992-1996
31: * All Rights Reserved
32: *
33: */
34:
35: #ifndef __ADSP__
36: #define __ADSP__
37:
38: /* ADSP flags for read, write, and close routines */
39:
40: #define ADSP_EOM 0x01 /* Sent or received EOM with data */
41: #define ADSP_FLUSH 0x02 /* Send all data in send queue */
42: #define ADSP_WAIT 0x04 /* Graceful close, wait 'til snd queue emptys */
43:
44:
45: /* ADSP events to be fielded by the user event handler */
46:
47: #define ADSP_EV_ATTN 0x02 /* Attention data recvd. */
48: #define ADSP_EV_RESET 0x04 /* Forward reset recvd. */
49: #define ADSP_EV_CLOSE 0x08 /* Close advice recvd. */
50:
51:
52: /* ADSP packet control codes */
53:
54: #define ADSP_PROBEACK 0 /* Probe or acknowledgement */
55: #define ADSP_OPENCONREQUEST 1 /* Open connection request */
56: #define ADSP_OPENCONACK 2 /* Open connection acknowledgement */
57: #define ADSP_OPENCONREQACK 3 /* Open connection request + ack */
58: #define ADSP_OPENCONDENIAL 4 /* Open connection denial */
59: #define ADSP_CLOSEADVICE 5 /* Close connection advice */
60: #define ADSP_FORWARDRESET 6 /* Forward reset */
61: #define ADSP_FORWARDRESETACK 7 /* Forward reset acknowledgement */
62: #define ADSP_RETRANSADVICE 8 /* Retransmit advice */
63:
64:
65: /* Miscellaneous constants */
66:
67: #define ADSP_MAXDATA 572 /* Maximum data bytes in ADSP packet */
68: #define ADSP_MAXATTNDATA 570 /* Maximum data bytes in attn msg */
69: #define ADSP_DDPTYPE 7 /* DDP protocol type for ADSP */
70: #define ADSP_VERSION 0x0100 /* ADSP version */
71:
72:
73: /* Some additional ADSP error codes */
74:
75: #define EQUEWASEMP 10001
76: #define EONEENTQUE 10002
77: #define EQUEBLOCKED 10003
78: #define EFWDRESET 10004
79: #define EENDOFMSG 10005
80: #define EADDRNOTINUSE 10006
81:
82:
83:
84: /* Tuning Parameter Block */
85:
86: struct tpb {
87: unsigned Valid : 1; /* Tuning parameter block is valid */
88: unsigned short TransThresh; /* Transmit threshold */
89: unsigned TransTimerIntrvl; /* Transmit timer interval */
90: unsigned short SndWdwCloThresh; /* Send window closing threshold */
91: unsigned SndWdwCloIntrvl; /* Send window closed interval */
92: unsigned char SndWdwCloBckoff; /* Send window closed backoff rate */
93: unsigned ReTransIntrvl; /* Retransmit interval */
94: unsigned char ReTransBckoff; /* Retransmit backoff rate */
95: unsigned RestartIntrvl; /* Restart sender interval */
96: unsigned char RestartBckoff; /* Restart sender backoff rate */
97: unsigned SndQBufSize; /* Send queue buffer size */
98: unsigned short RcvQMaxSize; /* Maximum size of the receive queue */
99: unsigned short RcvQCpyThresh; /* Receive queue copy threshold */
100: unsigned FwdRstIntrvl; /* Forward reset interval */
101: unsigned char FwdRstBckoff; /* Forward reset backoff rate */
102: unsigned AttnIntrvl; /* Retransmit attn msg interval */
103: unsigned char AttnBckoff; /* Retransmit attn msg backoff rate */
104: unsigned OpenIntrvl; /* Retransmit open request interval */
105: unsigned char OpenMaxRetry; /* Open request maximum retrys */
106: unsigned char RetransThresh; /* Retransmit advice threshold */
107: unsigned ProbeRetryMax; /* Maximum number of probes */
108: unsigned SndByteCntMax; /* Maximum number bytes in send queue */
109: };
110:
111:
112: /* Tuning Parameter Tags */
113:
114: #define ADSP_TRANSTHRESH 1 /* Transmit threshold */
115: #define ADSP_TRANSTIMERINTRVL 2 /* Transmit timer interval */
116: #define ADSP_SNDWDWCLOTHRESH 3 /* Send window closing threshold */
117: #define ADSP_SNDWDWCLOINTRVL 4 /* Send window closed interval */
118: #define ADSP_SNDWDWCLOBCKOFF 5 /* Send window closed backoff rate */
119: #define ADSP_RETRANSINTRVL 6 /* Retransmit interval */
120: #define ADSP_RETRANSBCKOFF 7 /* Retransmit backoff rate */
121: #define ADSP_RESTARTINTRVL 8 /* Restart sender interval */
122: #define ADSP_RESTARTBCKOFF 9 /* Restart sender backoff rate */
123: #define ADSP_SNDQBUFSIZE 10 /* Send queue buffer size */
124: #define ADSP_RCVQMAXSIZE 11 /* Receive queue maximum size */
125: #define ADSP_RCVQCPYTHRESH 12 /* Receive queue copy threshold */
126: #define ADSP_FWDRSTINTRVL 13 /* Forward reset retransmit interval */
127: #define ADSP_FWDRSTBCKOFF 14 /* Forward reset backoff rate */
128: #define ADSP_ATTNINTRVL 15 /* Rexmit attention message interval */
129: #define ADSP_ATTNBCKOFF 16 /* Attention message backoff rate */
130: #define ADSP_OPENINTRVL 17 /* Retransmit open request interval */
131: #define ADSP_OPENMAXRETRY 18 /* Open request max retrys */
132: #define ADSP_RETRANSTHRESH 19 /* Retransmit advice threshold */
133: #define ADSP_PROBERETRYMAX 20
134: #define ADSP_SNDBYTECNTMAX 21
135:
136: #define TuneParamCnt 21 /* The number of tuning parameters */
137:
138: /* Connection Status Tags */
139:
140: #define ADSP_STATE 1 /* The connection state */
141: #define ADSP_SNDSEQ 2 /* Send sequence number */
142: #define ADSP_FIRSTRTMTSEQ 3 /* First retransmit sequence number */
143: #define ADSP_SNDWDWSEQ 4 /* Send window sequence number */
144: #define ADSP_RCVSEQ 5 /* Receive sequence number */
145: #define ADSP_ATTNSNDSEQ 6 /* Attn msg send sequence number */
146: #define ADSP_ATTNRCVSEQ 7 /* Attn msg receive sequence number */
147: #define ADSP_RCVWDW 8 /* Receive window size */
148: #define ADSP_ATTNMSGWAIT 9 /* Attn msg is in the receive queue */
149:
150: #define ConStatTagCnt 9 /* Number of connection status tags */
151:
152: #define ADSP_INVALID 0 /* Invalid connection control block */
153: #define ADSP_LISTEN 1 /* Waiting for an open con req */
154: #define ADSP_OPENING 2 /* No state info, sending open req */
155: #define ADSP_MYHALFOPEN 4 /* His state info, sending open req */
156: #define ADSP_HISHALFOPEN 8 /* He has my state info, sndng op req */
157: #define ADSP_OPEN 16 /* Connection is operational */
158: #define ADSP_TORNDOWN 32 /* Probe timer has expired 4 times */
159: #define ADSP_CLOSING 64 /* Client close, emptying send Queues */
160: #define ADSP_CLOSED 128 /* Close adv rcvd, emptying rcv Queues */
161:
162: /* Management Counters */
163:
164: #define ADSP_ATTNACKRCVD 1 /* Attn msg ack received */
165: #define ADSP_ATTNACKACPTD 2 /* Attn msg ack accepted */
166: #define ADSP_PROBERCVD 3 /* Probe received */
167: #define ADSP_ACKRCVD 4 /* Explicit ack msg received */
168: #define ADSP_FWDRSTRCVD 5 /* Forward reset received */
169: #define ADSP_FWDRSTACPTD 6 /* Forward reset accepted */
170: #define ADSP_FWDRSTACKRCVD 7 /* Forward reset ack received */
171: #define ADSP_FWDRSTACKACPTD 8 /* Forward reset ack accepted */
172: #define ADSP_ATTNRCVD 9 /* Attn msg received */
173: #define ADSP_ATTNACPTD 10 /* Attn msg accepted */
174: #define ADSP_DATARCVD 11 /* Data msg received */
175: #define ADSP_DATAACPTD 12 /* Data msg Accepted */
176: #define ADSP_ACKFIELDCHKD 13 /* Ack field checked */
177: #define ADSP_ACKNRSFIELDACPTD 14 /* Next receive seq field accepted */
178: #define ADSP_ACKSWSFIELDACPTD 15 /* Send window seq field accepted */
179: #define ADSP_ACKREQSTD 16 /* Ack requested */
180: #define ADSP_LOWMEM 17 /* Low memory */
181: #define ADSP_OPNREQEXP 18 /* Open request timer expired */
182: #define ADSP_PROBEEXP 19 /* Probe timer expired */
183: #define ADSP_FWDRSTEXP 20 /* Forward reset timer expired */
184: #define ADSP_ATTNEXP 21 /* Attention timer expired */
185: #define ADSP_TRANSEXP 22 /* Transmit timer expired */
186: #define ADSP_RETRANSEXP 23 /* Retransmit timer expired */
187: #define ADSP_SNDWDWCLOEXP 24 /* Send window closed timer expired */
188: #define ADSP_RESTARTEXP 25 /* Restart sender timer expired */
189: #define ADSP_RESLOWEXP 26 /* Resources are low timer expired */
190: #define ADSP_RETRANSRCVD 27 /* Retransmit advice received */
191:
192: #define InfoTagCnt 27
193:
194: /* Length of the parameter and status lists */
195:
196: #define ADSP_DEFLEN (TuneParamCnt * 6 + 1)
197: #define ADSP_STALEN (ConStatTagCnt * 6 + 1)
198: #define ADSP_INFOLEN (InfoTagCnt * 6 + 1)
199:
200: #endif /* __ADSP__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.