|
|
1.1 ! root 1: -- $Header: GAP2.cr,v 2.0 85/11/21 07:22:54 jqj Exp $ ! 2: -- $Log: GAP2.cr,v $ ! 3: -- Revision 2.0 85/11/21 07:22:54 jqj ! 4: -- 4.3BSD standard release ! 5: -- ! 6: -- Revision 1.1 85/11/20 14:09:05 jqj ! 7: -- Initial revision ! 8: -- ! 9: ! 10: GAP: PROGRAM 3 VERSION 2 = ! 11: BEGIN ! 12: ! 13: -- types -- ! 14: ! 15: WaitTime: TYPE = CARDINAL; -- in seconds -- ! 16: ! 17: SessionHandle: TYPE = ARRAY 2 OF UNSPECIFIED; ! 18: ! 19: CharLength: TYPE = {five(0), six(1), seven(2), eight(3)}; ! 20: ! 21: Parity: TYPE = {none(0), odd(1), even(2), one(3), zero(4)}; ! 22: ! 23: StopBits: TYPE = {oneStopBit(0), twoStopBits(1)}; ! 24: ! 25: -- the following is sometimes called a SessionParamObject -- ! 26: SessionParameterObject: TYPE = CHOICE OF { ! 27: xerox800(0) => RECORD [], -- spec doesn't say (0) -- ! 28: xerox850(1), xerox860(2) => RECORD [pollProc: UNSPECIFIED], ! 29: system6(3), cmcll(4), imb2770(5), ibm2770Host(6), ! 30: ibm6670(7), ibm6670Host(8) => RECORD [ ! 31: sendBlocksize, receiveBlocksize: CARDINAL ], ! 32: ibm3270(9), ibm3270Host(10) => RECORD [], ! 33: ttyHost(11), tty(12) => RECORD [ ! 34: charLength: CharLength, ! 35: parity: Parity, ! 36: stopBits: StopBits, ! 37: frameTimeout: CARDINAL ], -- in millisec -- ! 38: other(13) => RECORD [], ! 39: unknown(14) => RECORD [] }; ! 40: ! 41: ! 42: LineType: TYPE = { ! 43: bitSynchronous(0), byteSynchronous(1), asynchronous(2), ! 44: autoRecognition(3) }; ! 45: ! 46: LineSpeed: TYPE = { ! 47: bps50(0), bps75(1), bps110(2), bps135(3), bps150(4), ! 48: bps300(5), bps600(6), bps1200(7), bps2400(8), bps3600(9), ! 49: bps4800(10), bps7200(11), bps9600(12) }; ! 50: ! 51: Duplexity: TYPE = {fullduplex(0), halfduplex(1)}; ! 52: CommParamObject: TYPE = RECORD [ ! 53: duplex: Duplexity, ! 54: lineType: LineType, ! 55: lineSpeed: LineSpeed, ! 56: accessDetail: CHOICE OF { ! 57: directConn(0) => RECORD [], -- spec doesn't say (0) -- ! 58: dialConn(1) => RECORD [ -- spec doesn't say (1) -- ! 59: dialMode: {manualDial(0), autoDial(1)}, ! 60: dialerNumber: CARDINAL, ! 61: retryCount: CARDINAL ] } ! 62: ]; ! 63: ! 64: ReserveType: TYPE = { preemptNever(0), preemptAlways(1), ! 65: preemptInactive(2) }; ! 66: ! 67: Resource: TYPE = ARRAY 2 OF UNSPECIFIED; ! 68: ! 69: LineControl: TYPE = { primary(0), secondary(1) }; ! 70: ! 71: ControllerAddress: TYPE = CARDINAL; ! 72: ! 73: TerminalAddress: TYPE = CARDINAL; ! 74: ! 75: TransportObject: TYPE = CHOICE OF { ! 76: rs232c(0) => RECORD [ -- spec doesn't say (0) -- ! 77: commParams: CommParamObject, ! 78: preemptOthers, preemptMe: ReserveType, ! 79: phoneNumber: STRING, ! 80: line: CHOICE OF { -- spec doesn't say (0) -- ! 81: alreadyReserved(0) => RECORD [resource: Resource], ! 82: reserveNeeded(1) => RECORD [lineNumber: CARDINAL] ! 83: } ! 84: ], ! 85: bsc(1) => RECORD [ ! 86: localTerminalID: STRING, ! 87: localSecurityID: STRING, ! 88: lineControl: LineControl, ! 89: authenticateProc: UNSPECIFIED ], ! 90: teletype(2) => RECORD [], ! 91: -- I am very uncertain about (4) and (5) -- ! 92: polledBSCController(3), polledSDLCController(5) => RECORD [ ! 93: hostControllerName: STRING, ! 94: controllerAddress: ControllerAddress, ! 95: portsOnController: CARDINAL ], ! 96: polledBSCTerminal(4), polledSDLCTerminal(6) => RECORD [ ! 97: hostControllerName: STRING, ! 98: terminalAddress: TerminalAddress ] ! 99: }; ! 100: ! 101: CallBackType: TYPE = { callOnAutoRecognition(0), callOnActive(1), ! 102: dontCall(2) }; ! 103: ! 104: -- Constants -- ! 105: ! 106: infiniteTime: WaitTime = 177777B; -- LAST[CARDINAL] -- ! 107: ! 108: NopPollProc: UNSPECIFIED = 0B; ! 109: ! 110: unspecifiedTerminalAddr: TerminalAddress = 177777B; ! 111: ! 112: -- Remote Errors -- ! 113: ! 114: unimplemented: ERROR = 0; ! 115: noCommunicationHardware: ERROR = 1; ! 116: illegalTransport: ERROR = 2; ! 117: mediumConnectFailed: ERROR = 3; ! 118: badAddressFormat: ERROR = 4; ! 119: noDialingHardware: ERROR = 5; ! 120: dialingHardwareProblem: ERROR = 6; ! 121: transmissionMediumUnavailable: ERROR = 7; ! 122: inconsistentParams: ERROR = 8; ! 123: tooManyGateStreams: ERROR = 9; ! 124: bugInGAPCode: ERROR = 10; ! 125: gapNotExported: ERROR = 11; ! 126: gapCommunicationError: ERROR = 12; ! 127: controllerAlreadyExists: ERROR = 13; ! 128: controllerDoesNotExist: ERROR = 14; ! 129: terminalAddressInUse: ERROR = 15; ! 130: terminalAddressInvalid: ERROR = 16; ! 131: ! 132: ! 133: -- Remote procedures -- ! 134: ! 135: Reset: PROCEDURE = 0; ! 136: ! 137: IAmStillHere: PROCEDURE [ resource: Resource ] = 1; ! 138: ! 139: Create: PROCEDURE [ ! 140: sessionParameterHandle: SessionParameterObject, ! 141: transportList: SEQUENCE OF TransportObject, ! 142: createTimeout: WaitTime ] ! 143: RETURNS [ session: SessionHandle ] ! 144: REPORTS [ badAddressFormat, controllerAlreadyExists, ! 145: controllerDoesNotExist, dialingHardwareProblem, ! 146: illegalTransport, inconsistentParams, ! 147: mediumConnectFailed, ! 148: noCommunicationHardware, noDialingHardware, ! 149: terminalAddressInUse, terminalAddressInvalid, ! 150: tooManyGateStreams, transmissionMediumUnavailable ] ! 151: = 2; ! 152: ! 153: Delete: PROCEDURE [ session: SessionHandle ] = 3; ! 154: ! 155: Reserve: PROCEDURE [ ! 156: transport: TransportObject, ! 157: completionProcedure: UNSPECIFIED, ! 158: callBack: CallBackType ] ! 159: RETURNS [resource: Resource] ! 160: REPORTS [ ! 161: bugInGAPCode, gapCommunicationError, gapNotExported, ! 162: illegalTransport, inconsistentParams, noCommunicationHardware, ! 163: tooManyGateStreams, transmissionMediumUnavailable ] ! 164: = 4; ! 165: ! 166: AbortReserve: PROCEDURE [ resource: Resource ] = 5; ! 167: ! 168: UseMediumForOISCP: PROCEDURE [ transport: TransportObject ] = 8; ! 169: ! 170: END.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.