# lib9p/idl/1992-9P0.9p - Definitions of 9P0 (Plan 9 1st ed) messages # # Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com> # SPDX-License-Identifier: AGPL-3.0-or-later # https://man.cat-v.org/plan_9_1st_ed/5/ version "9P0" # tag - identify a request/response pair num tag = 2 # file identifier - like a UNIX file-descriptor num fid = 2 # uni"Q"ue "ID"entification struct qid = "path[4] version[4]" # a nul-padded string struct name = 28*(txt[1]) msg Tmux = "typ[1,val=48] mux[2]" # Undocumented, but implemented by mux(3) / libmux.a #msg Rmux = "typ[1,val=49] illegal" msg Tnop = "typ[1,val=50] tag[tag,val=0xFFFF]" msg Rnop = "typ[1,val=51] tag[tag,val=0xFFFF]" msg Tsession = "typ[1,val=52] tag[tag,val=0xFFFF]" msg Rsession = "typ[1,val=53] tag[tag,val=0xFFFF]" #msg Terror = "typ[1,val=54] illegal" msg Rerror = "typ[1,val=55] tag[tag] ename[64]" msg Tflush = "typ[1,val=56] tag[tag] oldtag[tag]" msg Rflush = "typ[1,val=57] tag[tag]" msg Tattach = "typ[1,val=58] tag[tag] fid[fid] uid[28] aname[28] auth[28]" msg Rattach = "typ[1,val=59] tag[tag] fid[fid] qid[8]" msg Tclone = "typ[1,val=60] tag[tag] fid[fid] newfid[fid]" msg Rclone = "typ[1,val=61] tag[tag] fid[fid]" msg Twalk = "typ[1,val=62] tag[tag] fid[fid] name[28]" msg Rwalk = "typ[1,val=63] tag[tag] fid[fid] qid[8]" msg Topen = "typ[1,val=64] tag[tag] fid[fid] mode[1]" msg Ropen = "typ[1,val=65] tag[tag] fid[fid] qid[8]" msg Tcreate = "typ[1,val=66] tag[tag] fid[fid] name[28] perm[4] mode[1]" msg Rcreate = "typ[1,val=67] tag[tag] fid[fid] qid[8]" msg Tread = "typ[1,val=68] tag[tag] fid[fid] offset[8] count[2,max=8192]" msg Rread = "typ[1,val=69] tag[tag] fid[fid] count[2,max=8192] pad[1] count*(data[1])" msg Twrite = "typ[1,val=70] tag[tag] fid[fid] offset[8] count[2,max=8192] pad[1] count*(data[1])" msg Rwrite = "typ[1,val=71] tag[tag] fid[fid] count[2,max=8192]" msg Tclunk = "typ[1,val=72] tag[tag] fid[fid]" msg Rclunk = "typ[1,val=73] tag[tag] fid[fid]" msg Tremove = "typ[1,val=74] tag[tag] fid[fid]" msg Rremove = "typ[1,val=75] tag[tag] fid[fid]" msg Tstat = "typ[1,val=76] tag[tag] fid[fid]" msg Rstat = "typ[1,val=77] tag[tag] fid[fid] stat[116]" msg Twstat = "typ[1,val=78] tag[tag] fid[fid] stat[116]" msg Rwstat = "typ[1,val=79] tag[tag] fid[fid]" msg Tclwalk = "typ[1,val=80] tag[tag] fid[fid] newfid[fid] name[28]" msg Rclwalk = "typ[1,val=81] tag[tag] fid[fid] qid[8]" msg Tauth = "typ[1,val=82] tag[tag] fid[fid] uid[28] chal[36]" msg Rauth = "typ[1,val=83] tag[tag] fid[fid] chal[30]"