--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.