-- BFSDefs.Mesa  Edited by Sandman on June 30, 1980  4:48 PM 
-- Copyright  Xerox Corporation 1979, 1980

DIRECTORY
  AltoDefs USING [PageNumber],
  AltoFileDefs USING [CFA, CFP, DefaultSNBits, FP, SNBits, vDA],
  DiskDefs USING [CBptr, DiskRequest];

BFSDefs: DEFINITIONS =
  BEGIN OPEN AltoFileDefs, DiskDefs;

  PageNumber: TYPE = AltoDefs.PageNumber;

  ActOnPages: PROCEDURE [arg: POINTER TO update DiskRequest]
    RETURNS [page: PageNumber, bytes: CARDINAL];

  WritePages: PROCEDURE [arg: POINTER TO extend DiskRequest]
    RETURNS [page: PageNumber, bytes: CARDINAL];

  AssignPages: PROCEDURE [arg: POINTER TO update DiskRequest];

  RewritePages: PROCEDURE [arg: POINTER TO extend DiskRequest]
    RETURNS [page: PageNumber, bytes: CARDINAL];

  CreatePages: PROCEDURE [
    ca: POINTER, cfa: POINTER TO CFA, lastPage: PageNumber, lastBytes: CARDINAL];

  DeletePages: PROCEDURE [
    ca: POINTER, fp: POINTER TO FP, da: vDA, page: PageNumber];

  GetNextDA, CheckFreePage: PROCEDURE [cb: CBptr];

  CreateFile: PROCEDURE [
    name: STRING, fp, dirFP: POINTER TO FP, snBits: SNBits ← DefaultSNBits];

  MakeFP: PROCEDURE [fp: POINTER TO FP, cfp: POINTER TO CFP];

  MakeCFP: PROCEDURE [cfp: POINTER TO CFP, fp: POINTER TO FP];

  END.