<> <> DIRECTORY PrincOps USING [wordsPerPage], VM USING [Interval, LogPageCount, PageCount, PageNumber, VMPartition, AddressForPageNumber]; CountedVM: CEDAR DEFINITIONS IMPORTS VM ~ BEGIN Handle: TYPE ~ REF Object; Object: TYPE ~ RECORD [interval: VM.Interval]; Allocate: PROCEDURE [words: INT, partition: VM.VMPartition _ normalVM, subRange: VM.Interval _ [0, 0], start: VM.PageNumber _ 0, alignment: VM.LogPageCount _ 0, in64K: BOOL _ FALSE] RETURNS [Handle]; <> <> Pointer: UNSAFE PROCEDURE [handle: Handle] RETURNS [LONG POINTER] ~ UNCHECKED INLINE {RETURN [VM.AddressForPageNumber[handle.interval.page]]}; <> Words: PROCEDURE [handle: Handle] RETURNS [INT] ~ INLINE {RETURN [handle.interval.count*PrincOps.wordsPerPage]}; <> END.