xref: /inferno-os/appl/cmd/install/arch.m (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1Arch : module
2{
3	PATH : con "/dis/install/arch.dis";
4
5	Ahdr : adt {
6		name : string;
7		modestr : string;
8		d : ref Sys->Dir;
9	};
10
11	Archive : adt {
12		b : ref Bufio->Iobuf;
13		nexthdr : int;
14		canseek : int;
15		pid : int;
16		hdr : ref Ahdr;
17		err : string;
18	};
19
20	init: fn(bio: Bufio);
21
22	openarch: fn(name : string) : ref Archive;
23	openarchfs: fn(name : string) : ref Archive;
24	openarchgz: fn(name : string) : (string, ref Sys->FD);
25	gethdr: fn(ar : ref Archive) : ref Ahdr;
26	getfile: fn(ar : ref Archive, bout : ref Bufio->Iobuf, n : int) : string;
27	drain: fn(ar : ref Archive, n : int) : int;
28	closearch: fn(ar : ref Archive);
29
30	puthdr: fn(b : ref Bufio->Iobuf, name : string, d : ref Sys->Dir);
31	putstring: fn(b : ref Bufio->Iobuf, s : string);
32	putfile: fn(b : ref Bufio->Iobuf, f : string, n : int) : string;
33	putend: fn(b : ref Bufio->Iobuf);
34
35	addperms: fn(p: int);
36};
37