commit 9d26dce77c16b353a5ee3cab945d7e420fc3ee76 from: Omar Polo date: Wed Dec 15 22:07:21 2021 UTC implement topen and tread commit - 571a81388989d4015da4f2dd8ebf303c65b1ea01 commit + 9d26dce77c16b353a5ee3cab945d7e420fc3ee76 blob - 8372ca49fab12a0706360717269a6025111e7a03 blob + a9054e8f2cca5fb025a378c89520b9010b0ce91b --- 9pclib.c +++ 9pclib.c @@ -71,6 +71,13 @@ write_str_auto(const char *str) } void +write_64(uint64_t x) +{ + x = htole64(x); + evbuffer_add(evb, &x, sizeof(x)); +} + +void write_32(uint32_t fid) { fid = htole32(fid); @@ -84,6 +91,12 @@ write_16(uint16_t tag) evbuffer_add(evb, &tag, sizeof(tag)); } +void +write_8(uint8_t x) +{ + evbuffer_add(evb, &x, sizeof(x)); +} + void @@ -160,3 +173,28 @@ twalk(uint32_t fid, uint32_t newfid, const char **wnam for (i = 0; i < nwname; ++i) write_str_auto(wnames[i]); } + +void +topen(uint32_t fid, uint8_t mode) +{ + uint32_t len; + + /* fid[4] mode[1] */ + len = sizeof(fid) + sizeof(mode); + write_hdr_auto(len, Topen); + write_fid(fid); + write_8(mode); +} + +void +tread(uint32_t fid, uint64_t off, uint32_t count) +{ + uint32_t len; + + /* fid[4] off[8] count[4] */ + len = sizeof(fid) + sizeof(off) + sizeof(count); + write_hdr_auto(len, Tread); + write_fid(fid); + write_off(off); + write_32(count); +} blob - 4f193f4e89d090541f949fd6cea3bd3ff6950dd5 blob + 96accaa0e329fa150af852aeff826ab2951443c6 --- 9pclib.h +++ 9pclib.h @@ -30,9 +30,12 @@ void write_hdr(uint32_t, uint8_t, uint16_t); void write_hdr_auto(uint32_t, uint8_t); void write_str(uint16_t, const char *); void write_str_auto(const char *); +void write_64(uint64_t); void write_32(uint32_t); void write_16(uint16_t); +void write_8(uint8_t); +#define write_off write_64 #define write_fid write_32 #define write_tag write_16 @@ -41,5 +44,7 @@ void tattach(uint32_t, uint32_t, const char *, const void tclunk(uint32_t); void tflush(uint16_t); void twalk(uint32_t, uint32_t, const char **, size_t); +void topen(uint32_t, uint8_t); +void tread(uint32_t, uint64_t, uint32_t); #endif