Annotation of 43BSD/contrib/xns/examples/gap/GAP2.cr, revision 1.1.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.