<<>> <> <> <> <> <> DIRECTORY BTree: TYPE USING [ ReferencePage, ReleasePage, Tree ], File: TYPE USING [ Capability, PageNumber ], System: TYPE USING [ Pulses ]; BTreeVM: CEDAR DEFINITIONS = BEGIN FilePagesPerPage: TYPE = [1..16]; CacheSize: TYPE = [8..255]; -- in BTree pages -- Handle: TYPE = REF VMObject; VMObject: TYPE; Open: PROC [ file: File.Capability, filePagesPerPage: FilePagesPerPage, cacheSize: CacheSize, base: File.PageNumber _ 0 ] RETURNS [ Handle ]; <> <<>> <> <<>> ReferencePage: BTree.ReferencePage; <> ReleasePage: BTree.ReleasePage; <> StartLongUpdate, EndLongUpdate: PROC [ h: Handle, tree: BTree.Tree ]; <> <<>> GetStats: PROC [ h: Handle ] RETURNS [hits, misses, reads, writes, cumChainLength: LONG CARDINAL, cumReadWriteTime: System.Pulses]; <> <<>> FlushCache: PROC [ h: Handle ]; <> <<>> <<>> <<>> CreatePackageRef: PRIVATE PROC [ h: Handle ]; DestroyPackageRef: PRIVATE PROC [ h: Handle ]; EnumeratePackageRefs: PRIVATE PROC [ p: PROC [ h: Handle ] ]; <<>> END.