disk.m 544 B

12345678910111213141516171819
  1. Diskm : module {
  2. PATH : con "/dis/acme/disk.dis";
  3. init : fn(mods : ref Dat->Mods);
  4. Disk : adt {
  5. fd : ref Sys->FD;
  6. addr : int; # length of temp file
  7. free : array of ref Dat->Block;
  8. init : fn() : ref Disk;
  9. new : fn(d : self ref Disk, n : int) : ref Dat->Block;
  10. release : fn(d : self ref Disk, b : ref Dat->Block);
  11. read : fn(d : self ref Disk, b : ref Dat->Block, s : ref Dat->Astring, n : int);
  12. write : fn(d : self ref Disk, b : ref Dat->Block, s : string, n : int) : ref Dat->Block;
  13. };
  14. tempfile: fn() : ref Sys->FD;
  15. };