-- Copyright (C) 1984 by Xerox Corporation. All rights reserved. -- Stub file was translated on July 19, 1984 1:58:14 am PDT by Lupine of December 20, 1983 1:22:57 pm PST -- Source interface Multibus came from file Multibus.bcd, which was created on July 19, 1984 1:56:38 am PDT with version stamp 14#17#25044235147 from source of July 17, 1984 3:41:14 pm PDT. -- The RPC stub modules for Multibus are: -- MultibusRpcControl.mesa; -- MultibusRpcClientImpl.mesa; -- MultibusRpcBinderImpl.mesa; -- MultibusRpcServerImpl.mesa. -- The parameters for this translation are: -- Target language = Mesa -- Default parameter passing = VALUE -- Deallocate server heap arguments = TRUE -- Inline RpcServerImpl dispatcher stubs = TRUE -- Declare signals = TRUE -- Warn about short POINTER ("MDS") allocations = TRUE -- Maximum number of dynamic heap NEWs = 50, MDS NEWs = 50 -- Acceptable parameter protocols = VersionRange[1..1]. DIRECTORY Multibus, MesaRPC USING [defaultInterfaceName, EncryptionKey, InterfaceName, Principal, standardZones, VersionRange, Zones]; MultibusRpcControl: DEFINITIONS SHARES Multibus = BEGIN OPEN Multibus, RpcPublic: MesaRPC; -- Public RPC types and constants. InterfaceName: TYPE = RpcPublic.InterfaceName; VersionRange: TYPE = RpcPublic.VersionRange; Principal: TYPE = RpcPublic.Principal; EncryptionKey: TYPE = RpcPublic.EncryptionKey; Zones: TYPE = RpcPublic.Zones; defaultInterfaceName: InterfaceName = RpcPublic.defaultInterfaceName; standardZones: Zones = RpcPublic.standardZones; -- Standard remote binding routines. ImportInterface: PROCEDURE [ interfaceName: InterfaceName ← defaultInterfaceName, parameterStorage: Zones ← standardZones ]; UnimportInterface: PROCEDURE; ExportInterface: PROCEDURE [ interfaceName: InterfaceName ← defaultInterfaceName, user: Principal, password: EncryptionKey, parameterStorage: Zones ← standardZones ]; UnexportInterface: PROCEDURE; -- Dynamic instantiation and binding. ImportNewInterface: PROCEDURE [ interfaceName: InterfaceName ← defaultInterfaceName, parameterStorage: Zones ← standardZones ] RETURNS [interfaceRecord: InterfaceRecord]; UnimportNewInterface: PROCEDURE [interfaceRecord: InterfaceRecord]; -- NewInterfaceRecord is necessary for Cedar clients who want to -- manufacture a private interface instance, because -- RpcBindingImpl has finalization on type InterfaceRecord. NewInterfaceRecord: PROCEDURE RETURNS [interfaceRecord: InterfaceRecord]; InterfaceRecord: TYPE = LONG POINTER TO InterfaceRecordObject; InterfaceRecordObject: TYPE = RECORD [ Error: ERROR [reason: LONG STRING], Input: PROCEDURE [address: HANDLEIOAddress] RETURNS [word: UNSPECIFIED], Output: PROCEDURE [word: UNSPECIFIED, address: HANDLEIOAddress], RawRead: PROCEDURE [address: HANDLERawAddress] RETURNS [word: UNSPECIFIED], RawWrite: PROCEDURE [word: UNSPECIFIED, address: HANDLERawAddress], RawReadPage: PROCEDURE [address: HANDLERawAddress] RETURNS [page: Page], RawWritePage: PROCEDURE [page: Page, address: HANDLERawAddress], RawReadBlock: PROCEDURE [address: HANDLERawAddress] RETURNS [block: Block], RawWriteBlock: PROCEDURE [block: Block, address: HANDLERawAddress], lupineDetails: PRIVATE LONG POINTER TO LupineDetailsObject←NIL]; LupineDetailsObject: PRIVATE TYPE; -- Definitions for the stubs. LupineProtocolVersion: PUBLIC VersionRange = [first: 1, last: 1]; InterMdsCallsOnly: PUBLIC BOOLEAN = FALSE; ProcedureIndex: PRIVATE TYPE = MACHINE DEPENDENT { LupineUnusedIndex (0), LupineLastIndex (3), Input (4), Output (5), RawRead (6), RawWrite (7), RawReadPage (8), RawWritePage (9), RawReadBlock (10), RawWriteBlock (11)}; SignalIndex: PRIVATE TYPE = MACHINE DEPENDENT { LupineUnusedIndex (0), LupineLastIndex (3), Error (4)}; END. -- MultibusRpcControl.