|
|
1.1 root 1: /* rtpkt.h - include file for reliable transfer providers (RtS-PROVIDER) */
2:
3: /*
4: * $Header: /f/osi/h/RCS/rtpkt.h,v 7.0 89/11/23 21:55:58 mrose Rel $
5: *
6: *
7: * $Log: rtpkt.h,v $
8: * Revision 7.0 89/11/23 21:55:58 mrose
9: * Release 6.0
10: *
11: */
12:
13: /*
14: * NOTICE
15: *
16: * Acquisition, use, and distribution of this module and related
17: * materials are subject to the restrictions of a license agreement.
18: * Consult the Preface in the User's Manual for the full terms of
19: * this agreement.
20: *
21: */
22:
23:
24: #ifndef _RtSAP_
25: #include "rtsap.h" /* definitions for RtS-USERs */
26: #endif
27:
28: #include "acpkt.h" /* definitions for AcS-PROVIDERs */
29:
30: #ifndef _SSAP_
31: #include "ssap.h" /* definitions for SS-USERs */
32: #endif
33:
34: /* */
35:
36: #define rtsapPsig(acb, sd) \
37: { \
38: if ((acb = findacblk (sd)) == NULL) { \
39: (void) sigiomask (smask); \
40: return rtsaplose (rti, RTS_PARAMETER, NULLCP, \
41: "invalid association descriptor"); \
42: } \
43: if (!(acb -> acb_flags & ACB_RTS)) { \
44: (void) sigiomask (smask); \
45: return rtsaplose (rti, RTS_OPERATION, NULLCP, \
46: "not an association descriptor for RTS"); \
47: } \
48: if (!(acb -> acb_flags & ACB_CONN)) { \
49: (void) sigiomask (smask); \
50: return rtsaplose (rti, RTS_OPERATION, NULLCP, \
51: "association descriptor not connected"); \
52: } \
53: if (acb -> acb_flags & ACB_FINN) { \
54: (void) sigiomask (smask); \
55: return rtsaplose (rti, RTS_OPERATION, NULLCP, \
56: "association descriptor finishing"); \
57: } \
58: }
59:
60: #define rtsapFsig(acb, sd) \
61: { \
62: if ((acb = findacblk (sd)) == NULL) { \
63: (void) sigiomask (smask); \
64: return rtsaplose (rti, RTS_PARAMETER, NULLCP, \
65: "invalid association descriptor"); \
66: } \
67: if (!(acb -> acb_flags & ACB_RTS)) { \
68: (void) sigiomask (smask); \
69: return rtsaplose (rti, RTS_OPERATION, NULLCP, \
70: "not an association descriptor for RTS"); \
71: } \
72: if (!(acb -> acb_flags & ACB_CONN)) { \
73: (void) sigiomask (smask); \
74: return rtsaplose (rti, RTS_OPERATION, NULLCP, \
75: "association descriptor not connected"); \
76: } \
77: if (!(acb -> acb_flags & ACB_FINN)) { \
78: (void) sigiomask (smask); \
79: return rtsaplose (rti, RTS_OPERATION, NULLCP, \
80: "association descriptor not finishing"); \
81: } \
82: }
83:
84: #define missingP(p) \
85: { \
86: if (p == NULL) \
87: return rtsaplose (rti, RTS_PARAMETER, NULLCP, \
88: "mandatory parameter \"%s\" missing", "p"); \
89: }
90:
91:
92: #ifndef lint
93: #ifndef __STDC__
94: #define copyRtSAPdata(base,len,d) \
95: { \
96: register int i = len; \
97: if ((d -> d/* */_cc = min (i, sizeof d -> d/* */_data)) > 0) \
98: bcopy (base, d -> d/* */_data, d -> d/* */_cc); \
99: }
100: #else
101: #define copyRtSAPdata(base,len,d) \
102: { \
103: register int i = len; \
104: if ((d -> d##_cc = min (i, sizeof d -> d##_data)) > 0) \
105: bcopy (base, d -> d##_data, d -> d##_cc); \
106: }
107: #endif
108: #else
109: #define copyRtSAPdata(base,len,d) bcopy (base, (char *) d, len)
110: #endif
111:
112:
113: #define pylose() \
114: rtpktlose (acb, rti, RTS_PROTOCOL, NULLCP, "%s", PY_pepy)
115:
116:
117: /* would really prefer to determine DEFAULT_CKPOINT dynamically, but can't
118: since need to know it *before* doing the A-ASSOCIATE.REQUEST or
119: S-CONNECT.REQUEST... */
120:
121: #define DEFAULT_CKPOINT (65518 >> 10)
122: #define DEFAULT_WINDOW PCONN_WD_DFLT
123:
124:
125: #define RTS_MYREQUIRE (SR_EXCEPTIONS | SR_ACTIVITY | SR_HALFDUPLEX \
126: | SR_MINORSYNC)
127:
128:
129: #define RT_ASN "rtse pci version 1"
130:
131:
132: int rtpktlose (), rtsaplose ();
133:
134: /* */
135:
136: #define SetPS2RtService(acb) \
137: { \
138: (acb) -> acb_pturnrequest = rt2pspturn; \
139: (acb) -> acb_gturnrequest = rt2psgturn; \
140: (acb) -> acb_transferequest = rt2pstrans; \
141: (acb) -> acb_rtwaitrequest = rt2pswait; \
142: (acb) -> acb_rtsetindications = rt2psasync; \
143: (acb) -> acb_rtselectmask = rt2psmask; \
144: (acb) -> acb_rtpktlose = rt2pslose; \
145: }
146:
147: int acs2rtslose (), acs2rtsabort (), ps2rtslose ();
148: int rt2pspturn (), rt2psgturn (), rt2pstrans (), rt2pswait (),
149: rt2psasync (), rt2psmask (), rt2pslose ();
150:
151:
152: #define SetSS2RtService(acb) \
153: { \
154: (acb) -> acb_pturnrequest = rt2sspturn; \
155: (acb) -> acb_gturnrequest = rt2ssgturn; \
156: (acb) -> acb_transferequest = rt2sstrans; \
157: (acb) -> acb_rtwaitrequest = rt2sswait; \
158: (acb) -> acb_rtsetindications = rt2ssasync; \
159: (acb) -> acb_rtselectmask = rt2ssmask; \
160: (acb) -> acb_rtpktlose = rt2sslose; \
161: }
162:
163: int ss2rtslose (), ss2rtsabort ();
164: int rt2sspturn (), rt2ssgturn (), rt2sstrans (), rt2sswait (),
165: rt2ssasync (), rt2ssmask (), rt2sslose ();
166:
167: /* */
168: /* RTORQ apdu */
169: #define RTORQ_CKPOINT 0 /* checkpointSize tag */
170: #define RTORQ_CK_DFLT 0 /* default */
171: #define RTORQ_WINDOW 1 /* windowSize tag */
172: #define RTORQ_WD_DFLT 3 /* default */
173: #define RTORQ_DIALOGUE 2 /* dialogueMode tag */
174: #define RTORQ_DM_MONO 0 /* monologue */
175: #define RTORQ_DM_TWA 1 /* two-way alternate */
176: #define RTORQ_DM_DFLT RTORQ_DM_MONO
177: #define RTORQ_CONNDATA 3 /* connectionDataRQ tag */
178: #define RTORQ_CD_OPEN 0 /* open tag */
179: #define RTORQ_CD_RCVR 1 /* recover tag */
180:
181: /* RTOAC apdu */
182: #define RTOAC_CKPOINT 0 /* checkpointSize tag */
183: #define RTOAC_CK_DFLT 0 /* default */
184: #define RTOAC_WINDOW 1 /* windowSize tag */
185: #define RTOAC_WD_DFLT 3 /* default */
186: #define RTOAC_CONNDATA 2 /* connectionDataAC */
187: #define RTOAC_CD_OPEN 0 /* open tag */
188: #define RTOAC_CD_RCVR 1 /* recover tag */
189:
190: /* RTORJ apdu */
191: #define RTORJ_REFUSE 0 /* refuseReason tag */
192: #define RTORJ_USERDATA 1 /* userDataRJ */
193:
194: /* RTAB apdu */
195: #define RTAB_REASON 0 /* abortReason tag */
196: #define RTAB_REFLECT 1 /* relectedParameter tag */
197: #define RTAB_USERDATA 2 /* userDataAB */
198:
199: extern int rtsap_priority;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.