-- BTreeSupportDefs   
-- May 23, 1980  2:01, PMB
-- 24-Jul-84 14:28:32, Hankins 
--  (removing Bravo formatting and changed internal name to match that of file)

BTreeSupportDefs: DEFINITIONS =

  BEGIN
  FileHandle: TYPE = RECORD [fileH: UNSPECIFIED];
  PageHandle: TYPE = RECORD [pageH: POINTER TO ARRAY OF WORD];
  PageNumber: TYPE = CARDINAL;

  ReadPage: PROCEDURE [fileH: FileHandle, pageN: PageNumber]
    RETURNS [pageH: PageHandle];  -- does allocation of main memory.

  UsePage: PROCEDURE [fileH: FileHandle, pageN: PageNumber]
    RETURNS [pageH: PageHandle];
  -- for when the page has no valid data.
  --  Avoids unnecessary disk read if < eof, works for 1 page > eof.  
  -- does not zero the page.

  WritePage: PROC [fileH: FileHandle, pageN: PageNumber, pageH: PageHandle];
  -- deallocates main memory.

  ReleasePage: PROCEDURE [pageH: PageHandle];
  -- for when page has not been dirtied

  SetLength: PROCEDURE [fileH: FileHandle, pageN: PageNumber];
  -- will be used by PruneBTree.

  PageSize: PROCEDURE RETURNS [nWords: CARDINAL];

  AllocateWords: PROCEDURE [nWords: CARDINAL] RETURNS [POINTER];

  FreeWords: PROCEDURE [POINTER];

  END.	

Edit Log
Change: May 13, 1980  1:04 PM: KK: interface changes  
	so the message system and Juniper can both use the btree package.