interface 9P (* see: plan9.att.com? *) type Challenge = sequence of 8 byte; type AuthId = sequence of 28 byte; type AuthDom = sequence of 48 byte; type RSession = RECORD chal: Challenge; authid: AuthId; authdom: AuthDom; type server = object methods session(chal: Challeng): RSession raises EName; flush(oldTag@@) raise EName; attach(f: File, uid: UID, aname: Name28, ticket: Ticket72, auth: Auth13): record f: File, rauth: Auth13 end raise EName; type Quid = record file: integer, version: integer end; type File = object methods clone(newFile: File); clwalk(newFile: File, name: Name28): Quid; walk(name: Name28): Quid; open(mode: byte): Quid; create(name: Name28, perm: Byte4, mode: byte): Quid read(offset: hyper8, count: SHORT): record count: short end; exception Error: EName; type EName = sequence of 64 byte; Twrite tag[2] fid[2] offset[8] count[2] pad[1] data[count] Rwrite tag[2] fid[2] count[2] Tclunk tag[2] fid[2] Rclunk tag[2] fid[2] Tremove tag[2] fid[2] Rremove tag[2] fid[2] Tstat tag[2] fid[2] Rstat tag[2] fid[2] stat[116] Twstat tag[2] fid[2] stat[116] Rwstat tag[2] fid[2] *)