Annotation of 43BSDTahoe/new/xns/examples/gap/GAP2.cr, revision 1.1

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.

unix.superglobalmegacorp.com

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