]> git.sur5r.net Git - openldap/blob - libraries/macintosh/tcp/TCPPB.h
Initial revision
[openldap] / libraries / macintosh / tcp / TCPPB.h
1 /*
2         File:           TCPPB.h
3
4         Copyright:      © 1984-1993 by Apple Computer, Inc., all rights reserved.
5
6         WARNING
7         This file was auto generated by the interfacer tool. Modifications
8         must be made to the master file.
9
10 */
11
12 #ifndef __TCPPB__
13 #define __TCPPB__
14
15 #ifndef __MACTCPCOMMONTYPES__
16 #include <MacTCPCommonTypes.h>
17 #endif
18
19 #define TCPCreate                       30
20 #define TCPPassiveOpen          31
21 #define TCPActiveOpen           32
22 #define TCPSend                         34
23 #define TCPNoCopyRcv            35
24 #define TCPRcvBfrReturn         36
25 #define TCPRcv                          37
26 #define TCPClose                        38
27 #define TCPAbort                        39
28 #define TCPStatus                       40
29 #define TCPExtendedStat         41
30 #define TCPRelease                      42
31 #define TCPGlobalInfo           43
32 #define TCPCtlMax                       49
33
34 enum TCPEventCode {
35         TCPClosing                              = 1,
36         TCPULPTimeout,
37         TCPTerminate,
38         TCPDataArrival,
39         TCPUrgent,
40         TCPICMPReceived,
41         lastEvent                               = 32767
42 };
43
44 typedef enum TCPEventCode TCPEventCode;
45
46 enum TCPTerminationReason {
47         TCPRemoteAbort                  = 2,
48         TCPNetworkFailure,
49         TCPSecPrecMismatch,
50         TCPULPTimeoutTerminate,
51         TCPULPAbort,
52         TCPULPClose,
53         TCPServiceError,
54         lastReason                              = 32767
55 };
56
57 // typedef TCPTerminationReason TCPTerminationReason;
58
59 typedef pascal void (*TCPNotifyProcPtr)(StreamPtr tcpStream, unsigned short eventCode, Ptr userDataPtr, unsigned short terminReason, struct ICMPReport *icmpMsg);
60
61 enum {
62         uppTCPNotifyProcInfo = kPascalStackBased
63                  | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(StreamPtr)))
64                  | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned short)))
65                  | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Ptr)))
66                  | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(unsigned short)))
67                  | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(struct ICMPReport*)))
68 };
69
70 #if USESROUTINEDESCRIPTORS
71 typedef UniversalProcPtr TCPNotifyUPP;
72
73 #define CallTCPNotifyProc(userRoutine, tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)                \
74                 CallUniversalProc((UniversalProcPtr)userRoutine, uppTCPNotifyProcInfo, tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)
75 #define NewTCPNotifyProc(userRoutine)           \
76                 (TCPNotifyUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppTCPNotifyProcInfo, GetCurrentISA())
77 #else
78 typedef TCPNotifyProcPtr TCPNotifyUPP;
79
80 #define CallTCPNotifyProc(userRoutine, tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)                \
81                 (*userRoutine)(tcpStream, eventCode, userDataPtr, terminReason, icmpMsg)
82 #define NewTCPNotifyProc(userRoutine)           \
83                 (TCPNotifyUPP)(userRoutine)
84 #endif
85
86 typedef TCPNotifyProcPtr TCPNotifyProc;
87
88 typedef void (*TCPIOCompletionProcPtr)(struct TCPiopb *iopb);
89
90 enum {
91         uppTCPIOCompletionProcInfo = kCStackBased
92                  | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(struct TCPiopb*)))
93 };
94
95 #if USESROUTINEDESCRIPTORS
96 typedef UniversalProcPtr TCPIOCompletionUPP;
97
98 #define CallTCPIOCompletionProc(userRoutine, iopb)              \
99                 CallUniversalProc((UniversalProcPtr)userRoutine, uppTCPIOCompletionProcInfo, iopb)
100 #define NewTCPIOCompletionProc(userRoutine)             \
101                 (TCPIOCompletionUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppTCPIOCompletionProcInfo, GetCurrentISA())
102 #else
103 typedef TCPIOCompletionProcPtr TCPIOCompletionUPP;
104
105 #define CallTCPIOCompletionProc(userRoutine, iopb)              \
106                 (*userRoutine)(iopb)
107 #define NewTCPIOCompletionProc(userRoutine)             \
108                 (TCPIOCompletionUPP)(userRoutine)
109 #endif
110
111 typedef TCPIOCompletionProcPtr TCPIOCompletionProc;
112
113 typedef unsigned short tcp_port;
114
115 typedef unsigned char byte;
116
117 enum  {                                 /* ValidityFlags */
118         timeoutValue                            = 0x80,
119         timeoutAction                           = 0x40,
120         typeOfService                           = 0x20,
121         precedence                                      = 0x10
122 };
123
124 enum  {                                 /* TOSFlags */
125         lowDelay                                        = 0x01,
126         throughPut                                      = 0x02,
127         reliability                                     = 0x04
128 };
129
130 #if defined(powerc) || defined (__powerc)
131 #pragma options align=mac68k
132 #endif
133 struct TCPCreatePB {
134         Ptr                                                     rcvBuff;
135         unsigned long                           rcvBuffLen;
136         TCPNotifyUPP                            notifyProc;
137         Ptr                                                     userDataPtr;
138 };
139 #if defined(powerc) || defined(__powerc)
140 #pragma options align=reset
141 #endif
142
143 typedef struct TCPCreatePB TCPCreatePB;
144
145 #if defined(powerc) || defined (__powerc)
146 #pragma options align=mac68k
147 #endif
148 struct TCPOpenPB {
149         byte                                            ulpTimeoutValue;
150         byte                                            ulpTimeoutAction;
151         byte                                            validityFlags;
152         byte                                            commandTimeoutValue;
153         ip_addr                                         remoteHost;
154         tcp_port                                        remotePort;
155         ip_addr                                         localHost;
156         tcp_port                                        localPort;
157         byte                                            tosFlags;
158         byte                                            precedence;
159         Boolean                                         dontFrag;
160         byte                                            timeToLive;
161         byte                                            security;
162         byte                                            optionCnt;
163         byte                                            options[40];
164         Ptr                                                     userDataPtr;
165 };
166 #if defined(powerc) || defined(__powerc)
167 #pragma options align=reset
168 #endif
169
170 typedef struct TCPOpenPB TCPOpenPB;
171
172 #if defined(powerc) || defined (__powerc)
173 #pragma options align=mac68k
174 #endif
175 struct TCPSendPB {
176         byte                                            ulpTimeoutValue;
177         byte                                            ulpTimeoutAction;
178         byte                                            validityFlags;
179         Boolean                                         pushFlag;
180         Boolean                                         urgentFlag;
181         Ptr                                                     wdsPtr;
182         unsigned long                           sendFree;
183         unsigned short                          sendLength;
184         Ptr                                                     userDataPtr;
185 };
186 #if defined(powerc) || defined(__powerc)
187 #pragma options align=reset
188 #endif
189
190 typedef struct TCPSendPB TCPSendPB;
191
192 #if defined(powerc) || defined (__powerc)
193 #pragma options align=mac68k
194 #endif
195 struct TCPReceivePB {
196         byte                                            commandTimeoutValue;
197         byte                                            filler;
198         Boolean                                         markFlag;
199         Boolean                                         urgentFlag;
200         Ptr                                                     rcvBuff;
201         unsigned short                          rcvBuffLen;
202         Ptr                                                     rdsPtr;
203         unsigned short                          rdsLength;
204         unsigned short                          secondTimeStamp;
205         Ptr                                                     userDataPtr;
206 };
207 #if defined(powerc) || defined(__powerc)
208 #pragma options align=reset
209 #endif
210
211 typedef struct TCPReceivePB TCPReceivePB;
212
213 #if defined(powerc) || defined (__powerc)
214 #pragma options align=mac68k
215 #endif
216 struct TCPClosePB {
217         byte                                            ulpTimeoutValue;
218         byte                                            ulpTimeoutAction;
219         byte                                            validityFlags;
220         Ptr                                                     userDataPtr;
221 };
222 #if defined(powerc) || defined(__powerc)
223 #pragma options align=reset
224 #endif
225
226 typedef struct TCPClosePB TCPClosePB;
227
228 #if defined(powerc) || defined (__powerc)
229 #pragma options align=mac68k
230 #endif
231 struct HistoBucket {
232         unsigned short                          value;
233         unsigned long                           counter;
234 };
235 #if defined(powerc) || defined(__powerc)
236 #pragma options align=reset
237 #endif
238
239 typedef struct HistoBucket HistoBucket;
240
241 #define NumOfHistoBuckets 7
242
243 #if defined(powerc) || defined (__powerc)
244 #pragma options align=mac68k
245 #endif
246 struct TCPConnectionStats {
247         unsigned long                           dataPktsRcvd;
248         unsigned long                           dataPktsSent;
249         unsigned long                           dataPktsResent;
250         unsigned long                           bytesRcvd;
251         unsigned long                           bytesRcvdDup;
252         unsigned long                           bytesRcvdPastWindow;
253         unsigned long                           bytesSent;
254         unsigned long                           bytesResent;
255         unsigned short                          numHistoBuckets;
256         struct HistoBucket                      sentSizeHisto[NumOfHistoBuckets];
257         unsigned short                          lastRTT;
258         unsigned short                          tmrSRTT;
259         unsigned short                          rttVariance;
260         unsigned short                          tmrRTO;
261         byte                                            sendTries;
262         byte                                            sourchQuenchRcvd;
263 };
264 #if defined(powerc) || defined(__powerc)
265 #pragma options align=reset
266 #endif
267
268 typedef struct TCPConnectionStats TCPConnectionStats;
269
270 #if defined(powerc) || defined (__powerc)
271 #pragma options align=mac68k
272 #endif
273 struct TCPStatusPB {
274         byte                                            ulpTimeoutValue;
275         byte                                            ulpTimeoutAction;
276         long                                            unused;
277         ip_addr                                         remoteHost;
278         tcp_port                                        remotePort;
279         ip_addr                                         localHost;
280         tcp_port                                        localPort;
281         byte                                            tosFlags;
282         byte                                            precedence;
283         byte                                            connectionState;
284         unsigned short                          sendWindow;
285         unsigned short                          rcvWindow;
286         unsigned short                          amtUnackedData;
287         unsigned short                          amtUnreadData;
288         Ptr                                                     securityLevelPtr;
289         unsigned long                           sendUnacked;
290         unsigned long                           sendNext;
291         unsigned long                           congestionWindow;
292         unsigned long                           rcvNext;
293         unsigned long                           srtt;
294         unsigned long                           lastRTT;
295         unsigned long                           sendMaxSegSize;
296         struct TCPConnectionStats       *connStatPtr;
297         Ptr                                                     userDataPtr;
298 };
299 #if defined(powerc) || defined(__powerc)
300 #pragma options align=reset
301 #endif
302
303 typedef struct TCPStatusPB TCPStatusPB;
304
305 #if defined(powerc) || defined (__powerc)
306 #pragma options align=mac68k
307 #endif
308 struct TCPAbortPB {
309         Ptr                                                     userDataPtr;
310 };
311 #if defined(powerc) || defined(__powerc)
312 #pragma options align=reset
313 #endif
314
315 typedef struct TCPAbortPB TCPAbortPB;
316
317 #if defined(powerc) || defined (__powerc)
318 #pragma options align=mac68k
319 #endif
320 struct TCPParam {
321         unsigned long                           tcpRtoA;
322         unsigned long                           tcpRtoMin;
323         unsigned long                           tcpRtoMax;
324         unsigned long                           tcpMaxSegSize;
325         unsigned long                           tcpMaxConn;
326         unsigned long                           tcpMaxWindow;
327 };
328 #if defined(powerc) || defined(__powerc)
329 #pragma options align=reset
330 #endif
331
332 typedef struct TCPParam TCPParam;
333
334 #if defined(powerc) || defined (__powerc)
335 #pragma options align=mac68k
336 #endif
337 struct TCPStats {
338         unsigned long                           tcpConnAttempts;
339         unsigned long                           tcpConnOpened;
340         unsigned long                           tcpConnAccepted;
341         unsigned long                           tcpConnClosed;
342         unsigned long                           tcpConnAborted;
343         unsigned long                           tcpOctetsIn;
344         unsigned long                           tcpOctetsOut;
345         unsigned long                           tcpOctetsInDup;
346         unsigned long                           tcpOctetsRetrans;
347         unsigned long                           tcpInputPkts;
348         unsigned long                           tcpOutputPkts;
349         unsigned long                           tcpDupPkts;
350         unsigned long                           tcpRetransPkts;
351 };
352 #if defined(powerc) || defined(__powerc)
353 #pragma options align=reset
354 #endif
355
356 typedef struct TCPStats TCPStats;
357
358 #if defined(powerc) || defined (__powerc)
359 #pragma options align=mac68k
360 #endif
361 struct TCPGlobalInfoPB {
362         struct TCPParam                         *tcpParamPtr;
363         struct TCPStats                         *tcpStatsPtr;
364         StreamPtr                                       *tcpCDBTable[1];
365         Ptr                                                     userDataPtr;
366         unsigned short                          maxTCPConnections;
367 };
368 #if defined(powerc) || defined(__powerc)
369 #pragma options align=reset
370 #endif
371
372 typedef struct TCPGlobalInfoPB TCPGlobalInfoPB;
373
374 #if defined(powerc) || defined (__powerc)
375 #pragma options align=mac68k
376 #endif
377 struct TCPiopb {
378         char                                            fill12[12];
379         TCPIOCompletionProc                     ioCompletion;
380         short                                           ioResult;
381         char                                            *ioNamePtr;
382         short                                           ioVRefNum;
383         short                                           ioCRefNum;
384         short                                           csCode;
385         StreamPtr                                       tcpStream;
386         union {
387                 struct TCPCreatePB                      create;
388                 struct TCPOpenPB                        open;
389                 struct TCPSendPB                        send;
390                 struct TCPReceivePB                     receive;
391                 struct TCPClosePB                       close;
392                 struct TCPAbortPB                       abort;
393                 struct TCPStatusPB                      status;
394                 struct TCPGlobalInfoPB          globalInfo;
395         } csParam;
396 };
397 #if defined(powerc) || defined(__powerc)
398 #pragma options align=reset
399 #endif
400
401 typedef struct TCPiopb TCPiopb;
402
403 #endif
404