Blame


1 fb1a36c0 2022-01-09 op include "consts.9ps"
2 fb1a36c0 2022-01-09 op
3 fb1a36c0 2022-01-09 op # 9p protocol
4 fb1a36c0 2022-01-09 op
5 fb1a36c0 2022-01-09 op proc version(msize, version) {
6 fb1a36c0 2022-01-09 op send(Tversion, notag, msize:u32, version:str)
7 fb1a36c0 2022-01-09 op }
8 fb1a36c0 2022-01-09 op
9 fb1a36c0 2022-01-09 op proc attach(fid, afid, uname, aname) {
10 fb1a36c0 2022-01-09 op send(Tattach, iota(), fid:u32, afid:u32, uname:str, aname:str)
11 fb1a36c0 2022-01-09 op }
12 fb1a36c0 2022-01-09 op
13 fb1a36c0 2022-01-09 op proc walk(fid, newfid, ...) {
14 fb1a36c0 2022-01-09 op send(Twalk, iota(), fid:u32, newfid:u32, vargs:u16, ...)
15 fb1a36c0 2022-01-09 op }
16 fb1a36c0 2022-01-09 op
17 fb1a36c0 2022-01-09 op proc open(fid, mode) {
18 fb1a36c0 2022-01-09 op send(Topen, iota(), fid:u32, mode:u8)
19 fb1a36c0 2022-01-09 op }
20 fb1a36c0 2022-01-09 op
21 fb1a36c0 2022-01-09 op proc clunk(fid) {
22 fb1a36c0 2022-01-09 op send(Tclunk, iota(), fid:u32)
23 fb1a36c0 2022-01-09 op }
24 fb1a36c0 2022-01-09 op
25 fb1a36c0 2022-01-09 op
26 fb1a36c0 2022-01-09 op
27 fb1a36c0 2022-01-09 op # useful functions
28 fb1a36c0 2022-01-09 op
29 fb1a36c0 2022-01-09 op proc mount(fid, path) {
30 fb1a36c0 2022-01-09 op version(msize, np2000)
31 fb1a36c0 2022-01-09 op
32 fb1a36c0 2022-01-09 op m = recv()
33 fb1a36c0 2022-01-09 op assert (
34 fb1a36c0 2022-01-09 op m.type == Rversion
35 fb1a36c0 2022-01-09 op m.tag == notag
36 fb1a36c0 2022-01-09 op m.msize <= msize
37 fb1a36c0 2022-01-09 op # m.version == version
38 fb1a36c0 2022-01-09 op )
39 fb1a36c0 2022-01-09 op
40 fb1a36c0 2022-01-09 op attach(fid, nofid, "op", path)
41 fb1a36c0 2022-01-09 op
42 fb1a36c0 2022-01-09 op m = recv()
43 fb1a36c0 2022-01-09 op assert (
44 fb1a36c0 2022-01-09 op m.type == Rattach
45 fb1a36c0 2022-01-09 op m.qid.type == QTDIR
46 fb1a36c0 2022-01-09 op )
47 fb1a36c0 2022-01-09 op }
48 fb1a36c0 2022-01-09 op
49 fb1a36c0 2022-01-09 op proc expect(t) {
50 fb1a36c0 2022-01-09 op m = recv()
51 fb1a36c0 2022-01-09 op assert m.type == t
52 fb1a36c0 2022-01-09 op }
53 fb1a36c0 2022-01-09 op
54 fb1a36c0 2022-01-09 op proc expect-error() {
55 fb1a36c0 2022-01-09 op m = recv()
56 fb1a36c0 2022-01-09 op assert m.type == Rerror
57 fb1a36c0 2022-01-09 op debug("got expected error", m)
58 fb1a36c0 2022-01-09 op }