Annotation of 43BSD/contrib/xns/examples/gap/GAP3.cr, revision 1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.