diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-09-22 21:26:21 -0600 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-09-22 21:26:21 -0600 |
commit | c3d212e15ce147f0b0ceaac7a50f9a44831aacb9 (patch) | |
tree | 63b101270a0e3801cd37c50378c9115c311c38bd | |
parent | d0ece36e8a041cb3d58194c18d736a0ef9105e75 (diff) |
wip
-rw-r--r-- | net9p_defs.txt | 97 |
1 files changed, 92 insertions, 5 deletions
diff --git a/net9p_defs.txt b/net9p_defs.txt index 3eba255..c3fcc9b 100644 --- a/net9p_defs.txt +++ b/net9p_defs.txt @@ -52,6 +52,8 @@ stat = "stat_size[2]" "file_owner_gid[s]" "file_last_modified_uid[s]" +stat.u = stat + "file_extension[s] file_owner_n_uid[4] file_owner_n_gid[4] file_last_modified_n_uid[4]" + # "9P2000" base protocol # https://ericvh.github.io/9p-rfc/rfc9p2000.html # https://github.com/ericvh/9p-rfc/blob/master/9p2000.xml @@ -61,21 +63,21 @@ stat = "stat_size[2]" # references. 100 = Tversion "max_msg_size[4] version[s]" 101 = Rversion "max_msg_size[4] version[s]" -102 = Tauth "afid[4] uname[s] aname[s]" +102 = Tauth "afid[4] uname[s] aname[s]" .u+="nxs_uname[4]" 103 = Rauth "aqid[q]" -104 = Tattach "fid[4] afid[4] uname[s] aname[s]" +104 = Tattach "fid[4] afid[4] uname[s] aname[s]" .u+="n_uname[4]" 105 = Rattach "qid[q]" #106 = Terror "illegal" -107 = Rerror "ename[s]" +107 = Rerror "ename[s]" .u+="errno[4]" 108 = Tflush "oldtag[2]" 109 = Rflush "" 110 = Twalk "fid[4] newfid[4] nwname[2] wname[s*nwname]" 111 = Rwalk "nwqid[2] wqid[q*nwqid]" 112 = Topen "fid[4] mode[1]" 113 = Ropen "qid[q] iounit[4]" -114 = Tcreate "fid[4] name[s] perm[4] mode[1]" +114 = Tcreate "fid[4] name[s] perm[4] mode[1]" .u+="extension[s]" 115 = Rcreate "qid[q] iounit[4]" -116 = Tread "fid[4] offset[8] count[4]" +116 = Tread "fid[4] offset[8] count[4]" # base="returns a sequence of "entries[stat*cnt]""; .L=can't read directories 117 = Rread "data[d]" 118 = Twrite "fid[4] offset[8] data[d]" 119 = Rwrite "count[4]" @@ -87,3 +89,88 @@ stat = "stat_size[2]" 125 = Rstat "stat[stat]" 126 = Twstat "fid[4] stat[stat]" 127 = Rwstat "" + +# "9P2000.u" Unix extension +# https://ericvh.github.io/9p-rfc/rfc9p2000.u.html +# https://github.com/ericvh/9p-rfc/blob/master/9p2000.u.xml +# +# (no new message type numbers) + +# "9P2000.L" Linux extension +# https://github.com/chaos/diod/blob/master/protocol.md +#6 = Tlerror "illegal" # analogous to 106=Terror +7 = Rlerror "ecode[4]" # analogous to 107=Rerror +8 = Tstatfs "TODO" +9 = Rstatfs "TODO" +12 = Tlopen "TODO" # analogous to 112=Topen +13 = Rlopen "TODO" # analogous to 113=Ropen +14 = Tlcreate "TODO" # analogous to 114=Tcreate +15 = Rlcreate "TODO" # analogous to 115=Rcreate +16 = Tsymlink "TODO" +17 = Rsymlink "TODO" +18 = Tmknod "TODO" +19 = Rmknod "TODO" +20 = Trename "TODO" +21 = Rrename "TODO" +22 = Treadlink "TODO" +23 = Rreadlink "TODO" +24 = Tgetattr "TODO" +25 = Rgetattr "TODO" +26 = Tsetattr "TODO" +27 = Rsetattr "TODO" +#... +30 = Txattrwalk "TODO" +31 = Rxattrwalk "TODO" +32 = Txattrcreate "TODO" +33 = Rxattrcreate "TODO" +#... +40 = Treaddir "TODO" +41 = Rreaddir "TODO" +#... +50 = Tfsync "TODO" +51 = Rfsync "TODO" +52 = Tlock "TODO" +53 = Rlock "TODO" +54 = Tgetlock "TODO" +55 = Rgetlock "TODO" +# ... +70 = Tlink "TODO" +71 = Rlink "TODO" +72 = Tmkdir "TODO" +73 = Tmkdir "TODO" +74 = Trenameat "TODO" +75 = Rrenameat "TODO" +76 = Tunlinkat "TODO" +77 = Runlinkat "TODO" + +# "9P2000.e" Erlang extension +# https://erlangonxen.org/more/9p2000e +# https://github.com/cloudozer/ling/blob/master/doc/9p2000e.md +# +# TODO + +# qid.types +QTDIR = 1<<7 +QTAPPEND = 1<<6 +QTEXCL = 1<<5 +QTMOUNT = 1<<4 # been around forever, but undocumented? +QTAUTH = 1<<3 +QTTMP = 1<<2 # added to Plan 9 2003-12 +QTSYMLINK = 1<<1 # .u +QTFILE = 1<<0 + +DMDIR = 1<<31 +DMAPPEND = 1<<30 +DMEXCL = 1<<29 +DMMOUNT = 1<<28 +DMAUTH = 1<<27 +DMTMP = 1<<26 +#25 +#24 +DMDEVICE = 1<<23 # .u +#22 +DMNAMEDPIPE = 1<<21 # .u +DMSOCKET = 1<<20 # .u +DMSETUID = 1<<19 # .u +DMSETGID = 1<<18 # .u + |