--File IntVMDefs.mesa
--March 4, 1980 4:00 PM
IntVMDefs: DEFINITIONS =
BEGIN
-- Virtual storage package for use by InterpreterStorage.mesa. Provides routines to allocate and free blocks in a large (24 bit address space) virtual memory.
VMAddr: TYPE = LONG CARDINAL;
NilVMAddr: VMAddr = LAST[LONG CARDINAL];
VMFull: ERROR;
InitVM: PROCEDURE RETURNS [BOOLEAN];
FinishVM: PROCEDURE RETURNS [BOOLEAN];
AllocateBlock: PROCEDURE [size: CARDINAL] RETURNS [VMAddr];
FreeBlock: PROCEDURE [block: VMAddr];
-- Put and Get word quantities from VM.
PutWord: PROCEDURE [where: VMAddr, val: UNSPECIFIED];
GetWord: PROCEDURE [where: VMAddr] RETURNS [UNSPECIFIED];
-- Put and Get long quantities from VM.
PutLong: PROCEDURE [where: VMAddr, val: LONG UNSPECIFIED];
GetLong: PROCEDURE [where: VMAddr] RETURNS [LONG UNSPECIFIED];
-- Put and Get block quantities from VM.
PutBlock: PROCEDURE [src: POINTER TO UNSPECIFIED, dest: VMAddr, size: CARDINAL];
GetBlock: PROCEDURE [src: VMAddr, dest: POINTER TO UNSPECIFIED, size: CARDINAL];
END.