diff options
Diffstat (limited to 'appl/acme/styxaux.b')
| -rw-r--r-- | appl/acme/styxaux.b | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/appl/acme/styxaux.b b/appl/acme/styxaux.b new file mode 100644 index 00000000..efb7329b --- /dev/null +++ b/appl/acme/styxaux.b @@ -0,0 +1,174 @@ +implement Styxaux; + +include "sys.m"; + sys: Sys; +include "styx.m"; +include "styxaux.m"; + +Tmsg : import Styx; + +init() +{ +} + +msize(m: ref Tmsg): int +{ + pick fc := m { + Version => return fc.msize; + } + error("bad styx msize", m); + return 0; +} + +version(m: ref Tmsg): string +{ + pick fc := m { + Version => return fc.version; + } + error("bad styx version", m); + return nil; +} + +fid(m: ref Tmsg): int +{ + pick fc := m { + Readerror => return 0; + Version => return 0; + Flush => return 0; + Walk => return fc.fid; + Open => return fc.fid; + Create => return fc.fid; + Read => return fc.fid; + Write => return fc.fid; + Clunk => return fc.fid; + Remove => return fc.fid; + Stat => return fc.fid; + Wstat => return fc.fid; + Attach => return fc.fid; + } + error("bad styx fid", m); + return 0; +} + +uname(m: ref Tmsg): string +{ + pick fc := m { + Attach => return fc.uname; + } + error("bad styx uname", m); + return nil; +} + +aname(m: ref Tmsg): string +{ + pick fc := m { + Attach => return fc.aname; + } + error("bad styx aname", m); + return nil; +} + +newfid(m: ref Tmsg): int +{ + pick fc := m { + Walk => return fc.newfid; + } + error("bad styx newfd", m); + return 0; +} + +name(m: ref Tmsg): string +{ + pick fc := m { + Create => return fc.name; + } + error("bad styx name", m); + return nil; +} + +names(m: ref Tmsg): array of string +{ + pick fc := m { + Walk => return fc.names; + } + error("bad styx names", m); + return nil; +} + +mode(m: ref Tmsg): int +{ + pick fc := m { + Open => return fc.mode; + } + error("bad styx mode", m); + return 0; +} + +setmode(m: ref Tmsg, mode: int) +{ + pick fc := m { + Open => fc.mode = mode; + * => error("bad styx setmode", m); + } +} + +offset(m: ref Tmsg): big +{ + pick fc := m { + Read => return fc.offset; + Write => return fc.offset; + } + error("bad styx offset", m); + return big 0; +} + +count(m: ref Tmsg): int +{ + pick fc := m { + Read => return fc.count; + Write => return len fc.data; + } + error("bad styx count", m); + return 0; +} + +setcount(m: ref Tmsg, count: int) +{ + pick fc := m { + Read => fc.count = count; + * => error("bad styx setcount", m); + } +} + +oldtag(m: ref Tmsg): int +{ + pick fc := m { + Flush => return fc.oldtag; + } + error("bad styx oldtag", m); + return 0; +} + +data(m: ref Tmsg): array of byte +{ + pick fc := m { + Write => return fc.data; + } + error("bad styx data", m); + return nil; +} + +setdata(m: ref Tmsg, data: array of byte) +{ + pick fc := m { + Write => fc.data = data; + * => error("bad styx setdata", m); + } +} + +error(s: string, m: ref Tmsg) +{ + if(sys == nil) + sys = load Sys Sys->PATH; + sys->fprint(sys->fildes(2), "%s %d\n", s, tagof m); +} |
