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