diff options
author | rsc <devnull@localhost> | 2005-09-13 01:37:14 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-09-13 01:37:14 +0000 |
commit | fb941e08c52162fb41a14732be1ab70f20b450e3 (patch) | |
tree | c317bd44e1ed4b5e7fa5854785fdfa6a40348a84 /src/lib9/convS2M.c | |
parent | b7eed2e0e14b980bed4ced80a357189a981d28bc (diff) | |
download | plan9port-fb941e08c52162fb41a14732be1ab70f20b450e3.tar.gz plan9port-fb941e08c52162fb41a14732be1ab70f20b450e3.tar.bz2 plan9port-fb941e08c52162fb41a14732be1ab70f20b450e3.zip |
Add 9P2000.u functions.
Diffstat (limited to 'src/lib9/convS2M.c')
-rw-r--r-- | src/lib9/convS2M.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/lib9/convS2M.c b/src/lib9/convS2M.c index 6e9d2719..c004babc 100644 --- a/src/lib9/convS2M.c +++ b/src/lib9/convS2M.c @@ -46,7 +46,7 @@ stringsz(char *s) } uint -sizeS2M(Fcall *f) +sizeS2Mu(Fcall *f, int dotu) { uint n; int i; @@ -141,6 +141,8 @@ sizeS2M(Fcall *f) case Rerror: n += stringsz(f->ename); + if(dotu) + n += BIT16SZ; break; case Rflush: @@ -198,7 +200,13 @@ sizeS2M(Fcall *f) } uint -convS2M(Fcall *f, uchar *ap, uint nap) +sizeS2M(Fcall *f) +{ + return sizeS2Mu(f, 0); +} + +uint +convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu) { uchar *p; uint i, size; @@ -331,6 +339,10 @@ convS2M(Fcall *f, uchar *ap, uint nap) case Rerror: p = pstring(p, f->ename); + if(dotu){ + PBIT16(p, f->errornum); + p += BIT16SZ; + } break; case Rflush: @@ -397,3 +409,9 @@ convS2M(Fcall *f, uchar *ap, uint nap) return 0; return size; } + +uint +convS2M(Fcall *f, uchar *ap, uint nap) +{ + return convS2Mu(f, ap, nap, 0); +} |