5 #include "../port/lib.h"
10 #include "../port/error.h"
18 static Dirtab wddir[] = {
19 ".", { Qdir, 0, QTDIR }, 0, 0550,
20 "wdctl", { Qwdctl, 0 }, 0, 0660,
25 addwatchdog(Watchdog *watchdog)
28 print("addwatchdog: watchdog already installed\n");
39 return devattach('w', spec);
43 wdwalk(Chan *c, Chan *nc, char **name, int nname)
45 return devwalk(c, nc, name, nname, wddir, nelem(wddir), devgen);
49 wdstat(Chan *c, uchar *dp, int n)
51 return devstat(c, dp, n, wddir, nelem(wddir), devgen);
55 wdopen(Chan* c, int omode)
57 return devopen(c, omode, wddir, nelem(wddir), devgen);
66 wdread(Chan* c, void* a, long n, vlong off)
71 switch((ulong)c->qid.path){
73 return devdirread(c, a, n, wddir, nelem(wddir), devgen);
76 if(wd == nil || wd->stat == nil)
85 wd->stat(p, p + READSTR);
86 n = readstr(offset, a, n, p);
99 wdwrite(Chan* c, void* a, long n, vlong off)
104 switch((ulong)c->qid.path){
112 if(offset || n >= READSTR)
115 if((p = strchr(a, '\n')) != nil)
118 if(strncmp(a, "enable", n) == 0)
120 else if(strncmp(a, "disable", n) == 0)
122 else if(strncmp(a, "restart", n) == 0)