RapunzelP1620V0.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Sirocco on September 18, 1986 4:52:38 pm PDT
DIRECTORY
CrRPC,
Rope;
RapunzelP1620V0: CEDAR DEFINITIONS ~ {
ROPE: TYPE ~ Rope.ROPE;
FaultCode: TYPE ~ MACHINE DEPENDENT {
nonexistent(1),
protection(2),
alignmentShort(3),
alignmentLong(4)
};
PeekLongResult: TYPE ~ RECORD [
value: CARD
];
PokeLong: PROC [h: CrRPC.Handle, address: CARD, arg: CARD];
PokeSeqLong: PROC [h: CrRPC.Handle, address: CARD, args: SeqLong];
SeqCmd: TYPE ~ REF SeqCmdObject;
SeqCmdObject: TYPE ~ MACHINE DEPENDENT RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Cmd
];
DoCmds: PROC [h: CrRPC.Handle, cmds: SeqCmd] RETURNS [results: SeqResult];
Long: TYPE ~ CARD;
Fault: ERROR [code: FaultCode, address: CARD];
PokeLongResult: TYPE ~ RECORD [];
Result: TYPE ~ RECORD [
SELECT type: OpCode FROM
peekShort => [peekShort: PeekShortResult],
pokeShort => [pokeShort: PokeShortResult],
peekLong => [peekLong: PeekLongResult],
pokeLong => [pokeLong: PokeLongResult]
ENDCASE
];
PeekSeqLong: PROC [h: CrRPC.Handle, address: CARD, count: CARDINAL] RETURNS [results: SeqLong];
PokeShort: PROC [h: CrRPC.Handle, address: CARD, arg: CARDINAL];
PeekShortResult: TYPE ~ RECORD [
value: CARDINAL
];
PeekLong: PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARD];
SeqLong: TYPE ~ REF SeqLongObject;
SeqLongObject: TYPE ~ MACHINE DEPENDENT RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARD
];
PokeLongCmd: TYPE ~ RECORD [
address: CARD,
value: CARD
];
PokeSeqShort: PROC [h: CrRPC.Handle, address: CARD, args: SeqShort];
PokeShortCmd: TYPE ~ RECORD [
address: CARD,
value: CARDINAL
];
PokeShortResult: TYPE ~ RECORD [];
SeqResult: TYPE ~ REF SeqResultObject;
SeqResultObject: TYPE ~ MACHINE DEPENDENT RECORD [
body: PACKED SEQUENCE length: CARDINAL OF Result
];
Cmd: TYPE ~ RECORD [
SELECT type: OpCode FROM
peekShort => [peekShort: PeekShortCmd],
pokeShort => [pokeShort: PokeShortCmd],
peekLong => [peekLong: PeekLongCmd],
pokeLong => [pokeLong: PokeLongCmd]
ENDCASE
];
OpCode: TYPE ~ MACHINE DEPENDENT {
peekShort(0),
pokeShort(1),
peekLong(2),
pokeLong(3)
};
PeekShort: PROC [h: CrRPC.Handle, address: CARD] RETURNS [result: CARDINAL];
PeekLongCmd: TYPE ~ RECORD [
address: CARD
];
PeekSeqShort: PROC [h: CrRPC.Handle, address: CARD, count: CARDINAL] RETURNS [results: SeqShort];
Address: TYPE ~ CARD;
Short: TYPE ~ CARDINAL;
PeekShortCmd: TYPE ~ RECORD [
address: CARD
];
SeqShort: TYPE ~ REF SeqShortObject;
SeqShortObject: TYPE ~ MACHINE DEPENDENT RECORD [
body: PACKED SEQUENCE length: CARDINAL OF CARDINAL
];
}...