|
|
1.1 root 1: -- $Header: GAP3.cr,v 2.0 85/11/21 07:22:56 jqj Exp $
2: -- $Log: GAP3.cr,v $
3: -- Revision 2.0 85/11/21 07:22:56 jqj
4: -- 4.3BSD standard release
5: --
6: -- Revision 1.1 85/11/20 14:09:06 jqj
7: -- Initial revision
8: --
9:
10: GAP: PROGRAM 3 VERSION 3 =
11: BEGIN
12:
13: DEPENDS UPON Authentication (14) VERSION 1;
14:
15: -- types --
16:
17: WaitTime: TYPE = CARDINAL; -- in seconds --
18:
19: SessionHandle: TYPE = ARRAY 2 OF UNSPECIFIED;
20:
21: CharLength: TYPE = {five(0), six(1), seven(2), eight(3)};
22:
23: Parity: TYPE = {none(0), odd(1), even(2), one(3), zero(4)};
24:
25: StopBits: TYPE = {oneStopBit(0), twoStopBits(1)};
26:
27: FlowControl: TYPE = RECORD [
28: type: {flowControlNone(0), xOnXOff(1)},
29: xOn: UNSPECIFIED,
30: xOFF: UNSPECIFIED ];
31:
32: BidReply: TYPE = {wack(0), nack(1), defaultBidReply(2)};
33:
34: ExtendedBoolean: TYPE = {true(0), false(1), defaultExtendedBoolean(2)};
35:
36: DeviceType: TYPE = {undefined(0), terminal(1), printer(2)};
37:
38: -- the following is sometimes called a SessionParamObject --
39: SessionParameterObject: TYPE = CHOICE OF {
40: xerox800(0) => RECORD [],
41: xerox850(1), xerox860(2) => RECORD [pollProc: UNSPECIFIED],
42: system6(3), cmcll(4), imb2770(5), ibm2770Host(6),
43: ibm6670(7), ibm6670Host(8) => RECORD [
44: sendBlocksize, receiveBlocksize: CARDINAL ],
45: ibm3270(9), ibm3270Host(10) => RECORD [],
46: oldTtyHost(11), oldTty(12) => RECORD [
47: charLength: CharLength,
48: parity: Parity,
49: stopBits: StopBits,
50: frameTimeout: CARDINAL ], -- in millisec --
51: otherSessionType(13) => RECORD [],
52: unknown(14) => RECORD [],
53: ibm2780(15), ibm2780Host(16),
54: ibm3780(17), ibm3780Host(18) => RECORD [
55: sendBlocksize, receiveBlocksize: CARDINAL ],
56: siemens9750(19), siemens9750Host(20) => RECORD [],
57: ttyHost(21), tty(22) => RECORD [
58: charLength: CharLength,
59: parity: Parity,
60: stopBits: StopBits,
61: frameTimeout: CARDINAL, -- in millisec --
62: flowControl: FlowControl ] };
63:
64: LineType: TYPE = {
65: bitSynchronous(0), byteSynchronous(1), asynchronous(2),
66: autoRecognition(3) };
67:
68: LineSpeed: TYPE = {
69: bps50(0), bps75(1), bps110(2), bps135(3), bps150(4),
70: bps300(5), bps600(6), bps1200(7), bps2400(8), bps3600(9),
71: bps4800(10), bps7200(11), bps9600(12),
72: bps19200(13), bps28800(14), bps38400(15), bps48000(16),
73: bps56000(17), bps57600(18)
74: };
75:
76: Duplexity: TYPE = {fullduplex(0), halfduplex(1)};
77:
78: CommParamObject: TYPE = RECORD [
79: accessDetail: CHOICE OF {
80: directConn(0) => RECORD [
81: duplex: Duplexity,
82: lineType: LineType,
83: lineSpeed: LineSpeed ],
84: dialConn(1) => RECORD [
85: duplex: Duplexity,
86: lineType: LineType,
87: lineSpeed: LineSpeed,
88: dialMode: {manualDial(0), autoDial(1)},
89: dialerNumber: CARDINAL,
90: retryCount: CARDINAL ] }
91: ];
92:
93: ReserveType: TYPE = { preemptNever(0), preemptAlways(1),
94: preemptInactive(2) };
95:
96: Resource: TYPE = ARRAY 2 OF UNSPECIFIED;
97:
98: LineControl: TYPE = { primary(0), secondary(1) };
99:
100: ControllerAddress: TYPE = CARDINAL;
101:
102: TerminalAddress: TYPE = CARDINAL;
103:
104: TransportObject: TYPE = CHOICE OF {
105: rs232c(0) => RECORD [ -- spec doesn't say (0) --
106: commParams: CommParamObject,
107: preemptOthers, preemptMe: ReserveType,
108: phoneNumber: STRING,
109: line: CHOICE OF { -- spec doesn't say (0) --
110: alreadyReserved(0) => RECORD [resource: Resource],
111: reserveNeeded(1) => RECORD [lineNumber: CARDINAL]
112: }
113: ],
114: bsc(1) => RECORD [
115: localTerminalID: STRING,
116: localSecurityID: STRING,
117: lineControl: LineControl,
118: authenticateProc: UNSPECIFIED,
119: bidReply: BidReply,
120: sendLineHoldingEOTs: ExtendedBoolean,
121: expectLineHoldingEOTs: ExtendedBoolean ],
122: teletype(2) => RECORD [],
123: polledBSCController(3), sdlcController(5) => RECORD [
124: hostControllerName: STRING,
125: controllerAddress: ControllerAddress,
126: portsOnController: CARDINAL ],
127: polledBSCTerminal(4), sdlcTerminal(6) => RECORD [
128: hostControllerName: STRING,
129: terminalAddress: TerminalAddress ],
130: service(7) => RECORD [
131: id: LONG CARDINAL ],
132: unused(8) => RECORD [],
133: polledBSCPrinter(9), sdlcPrinter(10) => RECORD [
134: hostControllerName: STRING,
135: printerAddress: TerminalAddress]
136: };
137:
138: -- Constants --
139:
140: infiniteTime: WaitTime = 177777B; -- LAST[CARDINAL] --
141:
142: NopPollProc: UNSPECIFIED = 0B;
143:
144: unspecifiedTerminalAddr: TerminalAddress = 177777B;
145:
146: -- Remote Errors --
147:
148: unimplemented: ERROR = 0;
149: noCommunicationHardware: ERROR = 1;
150: illegalTransport: ERROR = 2;
151: mediumConnectFailed: ERROR = 3;
152: badAddressFormat: ERROR = 4;
153: noDialingHardware: ERROR = 5;
154: dialingHardwareProblem: ERROR = 6;
155: transmissionMediumUnavailable: ERROR = 7;
156: inconsistentParams: ERROR = 8;
157: tooManyGateStreams: ERROR = 9;
158: bugInGAPCode: ERROR = 10;
159: gapNotExported: ERROR = 11;
160: gapCommunicationError: ERROR = 12;
161: controllerAlreadyExists: ERROR = 13;
162: controllerDoesNotExist: ERROR = 14;
163: terminalAddressInUse: ERROR = 15;
164: terminalAddressInvalid: ERROR = 16;
165: -- the following are guesses as to the ERROR numbers --
166: serviceTooBusy: ERROR = 17;
167: userNotAuthenticated: ERROR = 18;
168: userNotAuthorized: ERROR = 19;
169: serviceNotFound: ERROR = 20;
170:
171:
172: -- Remote procedures --
173:
174: Reset: PROCEDURE = 0;
175:
176: Create: PROCEDURE [
177: sessionParameterHandle: SessionParameterObject,
178: transportList: SEQUENCE OF TransportObject,
179: createTimeout: WaitTime,
180: credentials: Authentication.Credentials,
181: verifier: Authentication.Verifier ]
182: RETURNS [ session: SessionHandle ]
183: REPORTS [ badAddressFormat,
184: controllerAlreadyExists, controllerDoesNotExist,
185: dialingHardwareProblem,
186: illegalTransport, inconsistentParams,
187: mediumConnectFailed,
188: noCommunicationHardware, noDialingHardware,
189: terminalAddressInUse, terminalAddressInvalid,
190: tooManyGateStreams, transmissionMediumUnavailable,
191: serviceTooBusy, userNotAuthenticated, userNotAuthorized,
192: serviceNotFound ]
193: = 2;
194:
195: Delete: PROCEDURE [ session: SessionHandle ] = 3;
196:
197: END.
198:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.