summaryrefslogtreecommitdiff
path: root/appl/acme/disk.m
blob: 66b2a2ba6a71a0be2f31939379684a709fae1546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Diskm : module {
	PATH : con "/dis/acme/disk.dis";

	init : fn(mods : ref Dat->Mods);

	Disk : adt {
		fd : ref Sys->FD;
		addr : int;		# length of temp file
		free : array of ref Dat->Block;

		init : fn() : ref Disk;
		new : fn(d : self ref Disk, n : int) : ref Dat->Block;
		release : fn(d : self ref Disk, b : ref Dat->Block);
		read : fn(d : self ref Disk, b : ref Dat->Block, s : ref Dat->Astring, n : int);
		write : fn(d : self ref Disk, b : ref Dat->Block, s : string, n : int) : ref Dat->Block;
	};

	tempfile: fn() : ref Sys->FD;
};