Commit | Line | Data |
---|---|---|
2596a09e WJ |
1 | /* ssap.h - include file for session users (SS-USER) */ |
2 | ||
3 | /* | |
4 | * $Header: /f/osi/h/RCS/ssap.h,v 7.2 91/02/22 09:25:09 mrose Interim $ | |
5 | * | |
6 | * | |
7 | * $Log: ssap.h,v $ | |
8 | * Revision 7.2 91/02/22 09:25:09 mrose | |
9 | * Interim 6.8 | |
10 | * | |
11 | * Revision 7.1 91/01/10 04:11:13 mrose | |
12 | * foo | |
13 | * | |
14 | * Revision 7.0 89/11/23 21:56:02 mrose | |
15 | * Release 6.0 | |
16 | * | |
17 | */ | |
18 | ||
19 | /* | |
20 | * NOTICE | |
21 | * | |
22 | * Acquisition, use, and distribution of this module and related | |
23 | * materials are subject to the restrictions of a license agreement. | |
24 | * Consult the Preface in the User's Manual for the full terms of | |
25 | * this agreement. | |
26 | * | |
27 | */ | |
28 | ||
29 | ||
30 | #ifndef _SSAP_ | |
31 | #define _SSAP_ | |
32 | ||
33 | #ifndef _MANIFEST_ | |
34 | #include "manifest.h" | |
35 | #endif | |
36 | #ifndef _GENERAL_ | |
37 | #include "general.h" | |
38 | #endif | |
39 | #ifndef _ISOADDRS_ | |
40 | #include "isoaddrs.h" | |
41 | #endif | |
42 | ||
43 | /* \f */ | |
44 | ||
45 | struct SSAPactid { /* Activity Identifier */ | |
46 | #define SID_DATA_SIZE 6 | |
47 | u_char sd_len; | |
48 | char sd_data[SID_DATA_SIZE]; | |
49 | }; | |
50 | ||
51 | struct SSAPref { /* SSAP reference */ | |
52 | /* USER reference */ | |
53 | #define SREF_USER_SIZE 64 | |
54 | u_char sr_ulen; | |
55 | char sr_udata[SREF_USER_SIZE]; | |
56 | ||
57 | /* COMMON reference */ | |
58 | #define SREF_COMM_SIZE 64 | |
59 | u_char sr_clen; | |
60 | char sr_cdata[SREF_COMM_SIZE]; | |
61 | ||
62 | /* ADDITIONAL reference */ | |
63 | #define SREF_ADDT_SIZE 4 | |
64 | u_char sr_alen; | |
65 | char sr_adata[SREF_ADDT_SIZE]; | |
66 | ||
67 | /* for S-ACTIVITY-RESUME */ | |
68 | u_char sr_vlen; | |
69 | char sr_vdata[SREF_USER_SIZE]; | |
70 | ||
71 | #define sr_calling sr_udata | |
72 | #define sr_calling_len sr_ulen | |
73 | #define sr_called sr_vdata | |
74 | #define sr_called_len sr_vlen | |
75 | }; | |
76 | ||
77 | /* \f */ | |
78 | ||
79 | struct SSAPstart { /* S-CONNECT.INDICATION */ | |
80 | int ss_sd; /* SESSION descriptor */ | |
81 | ||
82 | struct SSAPref ss_connect; /* session connection identifier */ | |
83 | ||
84 | struct SSAPaddr ss_calling; /* address of peer calling */ | |
85 | struct SSAPaddr ss_called; /* address of peer called */ | |
86 | ||
87 | int ss_requirements; /* session requirements */ | |
88 | int ss_settings; /* initial settings of tokens */ | |
89 | long ss_isn; /* initial serial number */ | |
90 | ||
91 | int ss_ssdusize; /* largest atomic SSDU */ | |
92 | ||
93 | struct QOStype ss_qos; /* quality of service */ | |
94 | ||
95 | /* initial DATA from peer */ | |
96 | #define SS_SIZE 512 | |
97 | int ss_cc; /* length */ | |
98 | char *ss_data; /* data */ | |
99 | }; | |
100 | #define SSFREE(ss) \ | |
101 | { \ | |
102 | if ((ss) -> ss_data) \ | |
103 | free ((ss) -> ss_data), (ss) -> ss_data = NULL; \ | |
104 | } | |
105 | ||
106 | ||
107 | struct SSAPconnect { /* S-CONNECT.CONFIRMATION */ | |
108 | int sc_sd; /* SESSION descriptor */ | |
109 | ||
110 | struct SSAPref sc_connect; /* session connection identifier */ | |
111 | ||
112 | struct SSAPaddr sc_responding;/* address of peer responding */ | |
113 | ||
114 | int sc_result; /* result */ | |
115 | #define SC_ACCEPT (-1) | |
116 | ||
117 | #define SC_BASE 0x80 /* reject by SSAP-provider */ | |
118 | #define SC_SSAPID (SC_BASE + 1) /* SSAP identifier unknown */ | |
119 | #define SC_SSUSER (SC_BASE + 2) /* SS-user not attached to SSAP */ | |
120 | #define SC_CONGEST (SC_BASE + 3) /* Congestion at SSAP */ | |
121 | #define SC_VERSION (SC_BASE + 4) /* Proposed protocol versions not | |
122 | supported */ | |
123 | ||
124 | /* begin UNOFFICIAL */ | |
125 | #define SC_ADDRESS (SC_BASE + 5) /* Address unknown */ | |
126 | #define SC_REFUSED (SC_BASE + 6) /* Connect request refused on this | |
127 | network connection */ | |
128 | #define SC_TRANSPORT (SC_BASE + 7) /* Transport disconnect */ | |
129 | #define SC_ABORT (SC_BASE + 8) /* Provider-initiated abort */ | |
130 | #define SC_PROTOCOL (SC_BASE + 9) /* Protocol error */ | |
131 | #define SC_PARAMETER (SC_BASE + 10) /* Invalid parameter */ | |
132 | #define SC_OPERATION (SC_BASE + 11) /* Invalid operation */ | |
133 | #define SC_TIMER (SC_BASE + 12) /* Timer expired */ | |
134 | #define SC_WAITING (SC_BASE + 13) /* Indications waiting */ | |
135 | /* end UNOFFICIAL */ | |
136 | ||
137 | /* reject by SSAP-user */ | |
138 | #define SC_NOTSPECIFIED 0 /* Reason not specified */ | |
139 | #define SC_CONGESTION 1 /* Temporary congestion */ | |
140 | #define SC_REJECTED 2 /* Rejected */ | |
141 | ||
142 | #ifdef notdef | |
143 | #define SC_FATAL(r) ((r) < SC_BASE || (r) < SC_PARAMETER) | |
144 | #define SC_OFFICIAL(r) ((r) < SC_BASE || (r) < SC_ADDRESS) | |
145 | #else | |
146 | #define SC_FATAL(r) ((r) < SC_PARAMETER) | |
147 | #define SC_OFFICIAL(r) ((r) < SC_ADDRESS) | |
148 | #endif | |
149 | ||
150 | int sc_requirements; /* session requirements */ | |
151 | int sc_settings; /* initial assignment of tokens */ | |
152 | int sc_please; /* tokens requested by SS-user | |
153 | (S-TOKEN-PLEASE.INDICATION) */ | |
154 | long sc_isn; /* initial serial number */ | |
155 | ||
156 | int sc_ssdusize; /* largest atomic SSDU */ | |
157 | ||
158 | struct QOStype sc_qos; /* quality of service */ | |
159 | ||
160 | /* initial DATA from peer */ | |
161 | #ifdef HPUX | |
162 | #undef SC_SIZE | |
163 | #endif | |
164 | #define SC_SIZE 512 | |
165 | int sc_cc; /* length */ | |
166 | char *sc_data; /* data */ | |
167 | char *sc_realdata; /* real head of data */ | |
168 | }; | |
169 | #define SCFREE(sc) \ | |
170 | { \ | |
171 | if ((sc) -> sc_realdata) \ | |
172 | free ((sc) -> sc_realdata), \ | |
173 | (sc) -> sc_realdata = (sc) -> sc_data = NULL; \ | |
174 | else \ | |
175 | if ((sc) -> sc_data) \ | |
176 | free ((sc) -> sc_data), (sc) -> sc_data = NULL; \ | |
177 | } | |
178 | ||
179 | ||
180 | /* SESSION requirements */ | |
181 | #define SR_HALFDUPLEX 0x0001 /* half-duplex */ | |
182 | #define SR_DUPLEX 0x0002 /* full-duplex */ | |
183 | #define SR_EXPEDITED 0x0004 /* expedited data transfer */ | |
184 | #define SR_MINORSYNC 0x0008 /* minor synchronize */ | |
185 | #define SR_MAJORSYNC 0x0010 /* major synchronize */ | |
186 | #define SR_RESYNC 0x0020 /* resynchronize */ | |
187 | #define SR_ACTIVITY 0x0040 /* activity management */ | |
188 | #define SR_NEGOTIATED 0x0080 /* negotiated release */ | |
189 | #define SR_CAPABILITY 0x0100 /* capability data transfer */ | |
190 | #define SR_EXCEPTIONS 0x0200 /* exceptions reporting */ | |
191 | #define SR_TYPEDATA 0x0400 /* typed data transfer */ | |
192 | #define SR_SYMMETRIC 0x0800 /* symmetric synchronize */ | |
193 | ||
194 | #define SR_RLS_EXISTS SR_NEGOTIATED | |
195 | #define SR_MAJ_EXISTS (SR_MAJORSYNC | SR_ACTIVITY) | |
196 | #define SR_ACT_EXISTS SR_ACTIVITY | |
197 | #define SR_MIN_EXISTS SR_MINORSYNC | |
198 | #define SR_DAT_EXISTS SR_HALFDUPLEX | |
199 | ||
200 | #define SR_TOKENS (SR_RLS_EXISTS | SR_MAJ_EXISTS | SR_ACT_EXISTS \ | |
201 | | SR_MIN_EXISTS | SR_DAT_EXISTS) | |
202 | ||
203 | #define SR_BASUBSET (SR_HALFDUPLEX | SR_TYPEDATA | SR_CAPABILITY \ | |
204 | | SR_MINORSYNC | SR_EXCEPTIONS | SR_ACTIVITY) | |
205 | #define SR_BCSUBSET (SR_HALFDUPLEX | SR_DUPLEX) | |
206 | #define SR_BSSUBSET (SR_NEGOTIATED | SR_HALFDUPLEX | SR_DUPLEX \ | |
207 | | SR_TYPEDATA | SR_MINORSYNC | SR_MAJORSYNC \ | |
208 | | SR_RESYNC) | |
209 | #define SR_MYREQUIRE (SR_BASUBSET | SR_BCSUBSET | SR_BSSUBSET \ | |
210 | | SR_EXPEDITED) | |
211 | #define SR_DEFAULT (SR_HALFDUPLEX | SR_MINORSYNC | SR_ACTIVITY \ | |
212 | | SR_CAPABILITY | SR_EXCEPTIONS) | |
213 | ||
214 | /* SESSION tokens */ | |
215 | #define ST_INIT_VALUE 0x00 /* initiator's side */ | |
216 | #define ST_RESP_VALUE 0x01 /* responder's side */ | |
217 | #define ST_CALL_VALUE 0x02 /* called SS-user's choice */ | |
218 | #define ST_RSVD_VALUE 0x03 /* reserved */ | |
219 | ||
220 | #define ST_MASK 0x03 | |
221 | ||
222 | #define ST_RLS_SHIFT 6 /* release token */ | |
223 | #define ST_MAJ_SHIFT 4 /* major/activity token */ | |
224 | #define ST_ACT_SHIFT ST_MAJ_SHIFT | |
225 | #define ST_MIN_SHIFT 2 /* synchronize-minor token */ | |
226 | #define ST_DAT_SHIFT 0 /* data token */ | |
227 | ||
228 | #define dotokens() \ | |
229 | { \ | |
230 | dotoken (SR_RLS_EXISTS, ST_RLS_SHIFT, ST_RLS_TOKEN, "release"); \ | |
231 | dotoken (SR_MAJ_EXISTS, ST_MAJ_SHIFT, ST_MAJ_TOKEN, "majorsync"); \ | |
232 | dotoken (SR_MIN_EXISTS, ST_MIN_SHIFT, ST_MIN_TOKEN, "minorsync"); \ | |
233 | dotoken (SR_DAT_EXISTS, ST_DAT_SHIFT, ST_DAT_TOKEN, "data"); \ | |
234 | } | |
235 | ||
236 | ||
237 | struct SSAPdata { /* S-READ.INDICATION */ | |
238 | int sx_type; /* type of indication */ | |
239 | #define SX_NORMAL 0x00 /* S-DATA.INDICATION */ | |
240 | #define SX_EXPEDITED 0x01 /* S-EXPEDITED-DATA.INDICATION */ | |
241 | #define SX_TYPED 0x02 /* S-TYPED-DATA.INDICATION */ | |
242 | #define SX_CAPDIND 0x03 /* S-CAPABILITY-DATA.INDICATION */ | |
243 | #define SX_CAPDCNF 0x04 /* S-CAPABILITY-DATA.CONFIRMATION */ | |
244 | ||
245 | #define SX_EXSIZE 14 /* EXPEDITED DATA (XSSDU) only */ | |
246 | #define SX_CDSIZE 512 /* CAPABILITY DATA only */ | |
247 | #define SX_CDASIZE 512 /* CAPABILITY DATA ACK only */ | |
248 | int sx_cc; /* total length */ | |
249 | struct qbuf sx_qbuf; /* chained data */ | |
250 | }; | |
251 | #define SXFREE(sx) QBFREE (&((sx) -> sx_qbuf)) | |
252 | ||
253 | ||
254 | struct SSAPtoken { /* S-{TOKEN-*,GIVE-CONTROL}.INDICATION */ | |
255 | int st_type; /* type of indication */ | |
256 | #define ST_GIVE 0x00 /* S-TOKEN-GIVE.INDICATION */ | |
257 | #define ST_PLEASE 0x01 /* S-TOKEN-PLEASE.INDICATION */ | |
258 | #define ST_CONTROL 0x02 /* S-GIVE-CONTROL.INDICATION */ | |
259 | ||
260 | u_char st_tokens; /* tokens offered/wanted */ | |
261 | #define ST_RLS_TOKEN (0x01 << ST_RLS_SHIFT) | |
262 | #define ST_MAJ_TOKEN (0x01 << ST_MAJ_SHIFT) | |
263 | #define ST_ACT_TOKEN (0x01 << ST_ACT_SHIFT) | |
264 | #define ST_MIN_TOKEN (0x01 << ST_MIN_SHIFT) | |
265 | #define ST_DAT_TOKEN (0x01 << ST_DAT_SHIFT) | |
266 | ||
267 | u_char st_owned; /* tokens owned by user */ | |
268 | ||
269 | #define ST_SIZE 512 /* PLEASE TOKEN only */ | |
270 | int st_cc; /* length */ | |
271 | char *st_data; /* data */ | |
272 | }; | |
273 | #define STFREE(st) \ | |
274 | { \ | |
275 | if ((st) -> st_data) \ | |
276 | free ((st) -> st_data), (st) -> st_data = NULL; \ | |
277 | } | |
278 | ||
279 | ||
280 | struct SSAPsync { /* S-*-SYNC.{INDICATION,CONFIRMATION} */ | |
281 | int sn_type; /* type of indication/confirmation */ | |
282 | #define SN_MAJORIND 0x00 /* S-MAJOR-SYNC.INDICATION */ | |
283 | #define SN_MAJORCNF 0x01 /* S-MAJOR-SYNC.CONFIRMATION */ | |
284 | #define SN_MINORIND 0x02 /* S-MINOR-SYNC.INDICATION */ | |
285 | #define SN_MINORCNF 0x03 /* S-MINOR-SYNC.CONFIRMATION */ | |
286 | #define SN_RESETIND 0x04 /* S-RESYNCHRONIZE.INDICATION */ | |
287 | #define SN_RESETCNF 0x05 /* S-RESYNCHRONIZE.CONFIRMATION */ | |
288 | ||
289 | int sn_options; /* options (!!) */ | |
290 | /* for S-MINOR-SYNC.INDICATION */ | |
291 | #define SYNC_CONFIRM 1 /* wants confirmation */ | |
292 | #define SYNC_NOCONFIRM 0 /* .. nope */ | |
293 | /* for S-RESYNCHRONIZE.INDICATION */ | |
294 | #define SYNC_RESTART 0 /* restart */ | |
295 | #define SYNC_ABANDON 1 /* abandon */ | |
296 | #define SYNC_SET 2 /* set */ | |
297 | ||
298 | long sn_ssn; /* serial number */ | |
299 | #define SERIAL_NONE (-1L) /* No SSN */ | |
300 | #define SERIAL_MIN 000000L /* the min SSN */ | |
301 | #define SERIAL_MAX 999998L /* the max SSN */ | |
302 | ||
303 | int sn_settings; /* new token settings (RESYNC only) */ | |
304 | ||
305 | /* sync data from peer */ | |
306 | #define SN_SIZE 512 | |
307 | int sn_cc; /* length */ | |
308 | char *sn_data; /* data */ | |
309 | }; | |
310 | #define SNFREE(sn) \ | |
311 | { \ | |
312 | if ((sn) -> sn_data) \ | |
313 | free ((sn) -> sn_data), (sn) -> sn_data = NULL; \ | |
314 | } | |
315 | ||
316 | ||
317 | struct SSAPactivity { /* S-ACTIVITY-*.{INDICATION,CONFIRMATION} */ | |
318 | int sv_type; /* type of indication/confirmation */ | |
319 | #define SV_START 0x00 /* S-ACTIVITY-START.INDICATION */ | |
320 | #define SV_RESUME 0x01 /* S-ACTIVITY-RESUME.INDICATION */ | |
321 | #define SV_INTRIND 0x02 /* S-ACTIVITY-INTERRUPT.INDICATION */ | |
322 | #define SV_INTRCNF 0x03 /* S-ACTIVITY-INTERRUPT.CONFIRMATION */ | |
323 | #define SV_DISCIND 0x04 /* S-ACTIVITY-DISCARD.INDICATION */ | |
324 | #define SV_DISCCNF 0x05 /* S-ACTIVITY-DISCARD.CONFIRMATION */ | |
325 | #define SV_ENDIND 0x06 /* S-ACTIVITY-END.INDICATION */ | |
326 | #define SV_ENDCNF 0x07 /* S-ACTIVITY-END.CONFIRMATION */ | |
327 | ||
328 | struct SSAPactid sv_id; /* START/RESUME activity identifier */ | |
329 | ||
330 | struct SSAPactid sv_oid; /* RESUME old activity identifier */ | |
331 | struct SSAPref sv_connect;/* old connection identifier */ | |
332 | ||
333 | long sv_ssn; /* RESUME/END Serial number */ | |
334 | ||
335 | int sv_reason; /* INTERRUPT/DISCARD */ | |
336 | /* same values as sp_reason */ | |
337 | ||
338 | /* activity DATA from peer */ | |
339 | #define SV_SIZE 512 | |
340 | int sv_cc; /* length */ | |
341 | char *sv_data; /* data */ | |
342 | }; | |
343 | #define SVFREE(sv) \ | |
344 | { \ | |
345 | if ((sv) -> sv_data) \ | |
346 | free ((sv) -> sv_data), (sv) -> sv_data = NULL; \ | |
347 | } | |
348 | ||
349 | ||
350 | struct SSAPreport { /* S-{U,P}-EXCEPTION-REPORT.INDICATION */ | |
351 | int sp_peer; /* T = S-U-EXCEPTION-REPORT.INDICATION: | |
352 | sp_reason/sp_data both meaningful | |
353 | NIL = S-P-EXCEPTION-REPORT.INDICATION: | |
354 | sp_reason == SP_NOREASON, or | |
355 | sp_reason == SP_PROTOCOL */ | |
356 | int sp_reason; | |
357 | #define SP_NOREASON 0 /* No specific reason stated */ | |
358 | #define SP_JEOPARDY 1 /* User receiving ability jeopardized */ | |
359 | #define SP_RSVD1 2 /* reserved */ | |
360 | #define SP_SEQUENCE 3 /* User sequence error */ | |
361 | #define SP_RSVD2 4 /* reserved */ | |
362 | #define SP_LOCAL 5 /* Local SS-user error */ | |
363 | #define SP_PROCEDURAL 6 /* Unrecoverable procedural error */ | |
364 | #define SP_DEMAND 128 /* Demand data token */ | |
365 | ||
366 | #define SP_PROTOCOL (-1) /* SS-provider protocol error */ | |
367 | ||
368 | /* report DATA from peer */ | |
369 | #define SP_SIZE 512 | |
370 | int sp_cc; /* length */ | |
371 | char *sp_data; /* data */ | |
372 | }; | |
373 | #define SPFREE(sp) \ | |
374 | { \ | |
375 | if ((sp) -> sp_data) \ | |
376 | free ((sp) -> sp_data), (sp) -> sp_data = NULL; \ | |
377 | } | |
378 | ||
379 | ||
380 | struct SSAPfinish { /* S-RELEASE.INDICATION */ | |
381 | /* release DATA from peer */ | |
382 | #define SF_SIZE 512 | |
383 | int sf_cc; /* length */ | |
384 | char *sf_data; /* data */ | |
385 | }; | |
386 | #define SFFREE(sf) \ | |
387 | { \ | |
388 | if ((sf) -> sf_data) \ | |
389 | free ((sf) -> sf_data), (sf) -> sf_data = NULL; \ | |
390 | } | |
391 | ||
392 | ||
393 | struct SSAPrelease { /* S-RELEASE.CONFIRMATION */ | |
394 | int sr_affirmative; /* T = connection released | |
395 | NIL = request refused */ | |
396 | ||
397 | /* release DATA from peer */ | |
398 | #define SR_SIZE 512 | |
399 | int sr_cc; /* length */ | |
400 | char *sr_data; /* data */ | |
401 | }; | |
402 | #define SRFREE(sr) \ | |
403 | { \ | |
404 | if ((sr) -> sr_data) \ | |
405 | free ((sr) -> sr_data), (sr) -> sr_data = NULL; \ | |
406 | } | |
407 | ||
408 | ||
409 | struct SSAPabort { /* S-{U,P}-ABORT.INDICATION */ | |
410 | int sa_peer; /* T = S-U-ABORT.INDICATION: | |
411 | sa_info/sa_cc is meaningful | |
412 | NIL = S-P-ABORT.INDICATION: | |
413 | sa_reason is meaningful, | |
414 | sa_data/sa_cc contains diagnostics */ | |
415 | ||
416 | int sa_reason; /* same codes as sc_result */ | |
417 | ||
418 | /* abort DATA from peer */ | |
419 | #define SA_SIZE 512 /* N.B.: the ISO DIS says 9, but we use | |
420 | 512 instead so ASE-level aborts will work | |
421 | reasonably */ | |
422 | int sa_cc; /* length */ | |
423 | char *sa_info; /* data (from the peer) */ | |
424 | char *sa_realinfo; /* real head of data */ | |
425 | char sa_data[512]; /* data (for messages from provider) */ | |
426 | }; | |
427 | #define SAFREE(sa) \ | |
428 | { \ | |
429 | if ((sa) -> sa_realinfo) \ | |
430 | free ((sa) -> sa_realinfo), (sa) -> sa_realinfo = NULL; \ | |
431 | } | |
432 | ||
433 | ||
434 | struct SSAPindication { | |
435 | int si_type; /* the union element present */ | |
436 | #define SI_DATA 0x00 | |
437 | #define SI_TOKEN 0x01 | |
438 | #define SI_SYNC 0x02 | |
439 | #define SI_ACTIVITY 0x03 | |
440 | #define SI_REPORT 0x04 | |
441 | #define SI_FINISH 0x05 | |
442 | #define SI_ABORT 0x06 | |
443 | ||
444 | union { | |
445 | struct SSAPdata si_un_data; | |
446 | struct SSAPtoken si_un_token; | |
447 | struct SSAPsync si_un_sync; | |
448 | struct SSAPactivity si_un_activity; | |
449 | struct SSAPreport si_un_report; | |
450 | struct SSAPfinish si_un_finish; | |
451 | struct SSAPabort si_un_abort; | |
452 | } si_un; | |
453 | #define si_data si_un.si_un_data | |
454 | #define si_token si_un.si_un_token | |
455 | #define si_sync si_un.si_un_sync | |
456 | #define si_activity si_un.si_un_activity | |
457 | #define si_report si_un.si_un_report | |
458 | #define si_finish si_un.si_un_finish | |
459 | #define si_abort si_un.si_un_abort | |
460 | }; | |
461 | ||
462 | /* \f */ | |
463 | ||
464 | extern char *ssapversion; | |
465 | ||
466 | ||
467 | int SExec (); /* SERVER only */ | |
468 | int SInit (); /* S-CONNECT.INDICATION */ | |
469 | ||
470 | int SConnResponse (); /* S-CONNECT.RESPONSE */ | |
471 | int SConnRequest (); /* S-CONNECT.REQUEST (backwards-compatible) */ | |
472 | #define SConnRequest(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \ | |
473 | SAsynConnRequest (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,0) | |
474 | int SAsynConnRequest (); /* S-(ASYN-)CONNECT.REQUEST */ | |
475 | int SAsynRetryRequest (); /* S-ASYN-RETRY.REQUEST (pseudo) */ | |
476 | int SDataRequest (); /* S-DATA.REQUEST */ | |
477 | int SSendRequest (); /* S-SEND.REQUEST (segmented) */ | |
478 | int SWriteRequest (); /* S-WRITE.REQUEST (pseudo) */ | |
479 | int SExpdRequest (); /* S-EXPEDITED-DATA.REQUEST */ | |
480 | int STypedRequest (); /* S-TYPED-DATA.REQUEST */ | |
481 | int SCapdRequest (); /* S-CAPABILITY-DATA.REQUEST */ | |
482 | int SCapdResponse (); /* S-CAPABILITY-DATA.RESPONSE */ | |
483 | int SReadRequest (); /* S-READ.REQUEST (pseudo) */ | |
484 | int SGTokenRequest (); /* S-TOKEN-GIVE.REQUEST */ | |
485 | int SPTokenRequest (); /* S-TOKEN-PLEASE.REQUEST */ | |
486 | int SGControlRequest (); /* S-CONTROL-GIVE.REQUEST */ | |
487 | int SMajSyncRequest (); /* S-MAJOR-SYNC.REQUEST */ | |
488 | int SMajSyncResponse (); /* S-MAJOR-SYNC.RESPONSE */ | |
489 | int SMinSyncRequest (); /* S-MINOR-SYNC.REQUEST */ | |
490 | int SMinSyncResponse (); /* S-MINOR-SYNC.RESPONSE */ | |
491 | int SReSyncRequest (); /* S-RESYNCHRONIZE.REQUEST */ | |
492 | int SReSyncResponse (); /* S-RESYNCHRONIZE.RESPONSE */ | |
493 | int SActStartRequest (); /* S-ACTIVITY-START.REQUEST */ | |
494 | int SActResumeRequest (); /* S-ACTIVITY-RESUME.REQUEST */ | |
495 | int SActIntrRequest (); /* S-ACTIVITY-INTERRUPT.REQUEST */ | |
496 | int SActIntrResponse (); /* S-ACTIVITY-INTERRUPT.RESPONSE */ | |
497 | int SActDiscRequest (); /* S-ACTIVITY-DISCARD.REQUEST */ | |
498 | int SActDiscResponse (); /* S-ACTIVITY-DISCARD.RESPONSE */ | |
499 | int SActEndRequest (); /* S-ACTIVITY-END.REQUEST */ | |
500 | int SActEndResponse (); /* S-ACTIVITY-END.RESPONSE */ | |
501 | int SUAbortRequest (); /* S-U-ABORT.REQUEST */ | |
502 | int SUReportRequest (); /* S-U-EXCEPTION-REPORT.REQUEST */ | |
503 | int SRelRequest (); /* S-RELEASE.REQUEST */ | |
504 | int SRelRetryRequest (); /* S-RELEASE-RETRY.REQUEST (pseudo) */ | |
505 | int SRelResponse (); /* S-RELEASE.RESPONSE */ | |
506 | ||
507 | int SSetIndications (); /* define vectors for INDICATION events */ | |
508 | int SSelectMask (); /* map session descriptors for select() */ | |
509 | ||
510 | char *SErrString (); /* return SSAP error code in string form */ | |
511 | ||
512 | #define SLocalHostName getlocalhost | |
513 | char *SLocalHostName (); /* return name of local host (sigh) */ | |
514 | #endif |