Pure Erlang implementation of 9p2000 protocol
filesystem fs 9p2000 erlang 9p
at master 98 lines 1.8 kB view raw
1% SPDX-FileCopyrightText: 2025 Łukasz Niemier <~@hauleth.dev> 2% 3% SPDX-License-Identifier: Apache-2.0 4 5-define(version, ~"9P2000"). 6 7-define(notag, 16#FFFF). 8-define(nofid, 16#FFFFFFFF). 9 10-define(max_packet_size, 8168). 11 12-define(int, little-unsigned-unit:8). 13-define(len, 2/?int). 14 15-define(Tversion, 100). 16-define(Rversion, 101). 17 18-define(Tauth, 102). 19-define(Rauth, 103). 20 21-define(Tattach, 104). 22-define(Rattach, 105). 23 24-define(Rerror, 107). 25 26-define(Tflush, 108). 27-define(Rflush, 109). 28 29-define(Twalk, 110). 30-define(Rwalk, 111). 31 32-define(Topen, 112). 33-define(Ropen, 113). 34 35-define(Tcreate, 114). 36-define(Rcreate, 115). 37 38-define(Tread, 116). 39-define(Rread, 117). 40 41-define(Twrite, 118). 42-define(Rwrite, 119). 43 44-define(Tclunk, 120). 45-define(Rclunk, 121). 46 47-define(Tremove, 122). 48-define(Rremove, 123). 49 50-define(Tstat, 124). 51-define(Rstat, 125). 52 53-define(Twstat, 126). 54-define(Rwstat, 127). 55 56-record(qid, {type, version, path}). 57-record(fid, {qid, path, state}). 58 59-record(tversion, {max_packet_size, version}). 60-record(rversion, {max_packet_size, version}). 61 62-record(tauth, {afid, uname, aname}). 63-record(rauth, {aqid}). 64 65-record(rerror, {msg}). 66 67-record(tflush, {tag}). 68-record(rflush, {}). 69 70-record(tattach, {fid, afid, uname, aname}). 71-record(rattach, {qid}). 72 73-record(twalk, {fid, new_fid, names}). 74-record(rwalk, {qids}). 75 76-record(topen, {fid, mode}). 77-record(ropen, {qid, io_unit}). 78 79-record(tcreate, {fid, name, perm, mode}). 80-record(rcreate, {qid, io_unit}). 81 82-record(tread, {fid, offset, len}). 83-record(rread, {data}). 84 85-record(twrite, {fid, offset, data}). 86-record(rwrite, {len}). 87 88-record(tclunk, {fid}). 89-record(rclunk, {}). 90 91-record(tremove, {fid}). 92-record(rremove, {}). 93 94-record(tstat, {fid}). 95-record(rstat, {stat}). 96 97-record(twstat, {fid, stat}). 98-record(rwstat, {}).