diff options
-rw-r--r-- | sys/man/2/tmdate | 7 | ||||
-rw-r--r-- | sys/src/cmd/aux/acpi.c | 36 | ||||
-rw-r--r-- | sys/src/cmd/ip/ftpd.c | 1 | ||||
-rw-r--r-- | sys/src/cmd/syscall/mkfile | 21 | ||||
-rwxr-xr-x | sys/src/cmd/syscall/mktab.awk | 14 |
5 files changed, 57 insertions, 22 deletions
diff --git a/sys/man/2/tmdate b/sys/man/2/tmdate index ba5c4441a..a99da78c7 100644 --- a/sys/man/2/tmdate +++ b/sys/man/2/tmdate @@ -29,7 +29,7 @@ struct Tm { }; Tzone *tzload(char *name); -Tm *tmnow(Tm *tm, char *tz); +Tm *tmnow(Tm *tm, Tzone *tz); Tm *tmtime(Tm *tm, vlong abs, Tzone *tz); Tm *tmtimens(Tm *tm, vlong abs, int ns, Tzone *tz); Tm *tmparse(Tm *dst, char *fmt, char *tm, Tzone *zone, char **ep); @@ -222,14 +222,15 @@ Done with full, strict error checking. .IP .EX +#define Fmt "?WWW, ?MM ?DD hh:mm:ss ?Z YYYY" Tm a, b; char *e; -if(tmparse(&a, nil, "Tue Dec 10 12:36:00 PST 2019", &e) == nil) +if(tmparse(&a, Fmt, "Tue Dec 10 12:36:00 PST 2019", &e) == nil) sysfatal("failed to parse: %r"); if(*e != '\0') sysfatal("trailing junk %s", e); -if(tmparse(&b, nil, "Tue Dec 10 15:36:00 EST 2019", &e) == nil) +if(tmparse(&b, Fmt, "Tue Dec 10 15:36:00 EST 2019", &e) == nil) sysfatal("failed to parse: %r"); if(*e != '\0') sysfatal("trailing junk %s", e); diff --git a/sys/src/cmd/aux/acpi.c b/sys/src/cmd/aux/acpi.c index e5252022b..9bd5e38fc 100644 --- a/sys/src/cmd/aux/acpi.c +++ b/sys/src/cmd/aux/acpi.c @@ -84,6 +84,41 @@ Dfile dfile[] = { {{Qctl}, "ctl", 0666, ctlread, ctlwrite}, }; +static char* +eisaid(void *v) +{ + static char id[8]; + ulong b, l; + int i; + + if(amltag(v) == 's') + return v; + b = amlint(v); + for(l = 0, i=24; i>=0; i -= 8, b >>= 8) + l |= (b & 0xFF) << i; + id[7] = 0; + for(i=6; i>=3; i--, l >>= 4) + id[i] = "0123456789ABCDEF"[l & 0xF]; + for(i=2; i>=0; i--, l >>= 5) + id[i] = '@' + (l & 0x1F); + return id; +} + +static int +enumec(void *dot, void *) +{ + void *p; + char *id; + id = eisaid(amlval(amlwalk(dot, "^_HID"))); + if (id == nil || strcmp(id, "PNP0C09") != 0) + return 1; + p = amlwalk(dot, "^_REG"); + if (p != nil) { + amleval(p, "ii", 0x3, 1, nil); + } + return 1; +} + static int enumbat(void *dot, void *) { @@ -501,6 +536,7 @@ threadmain(int argc, char **argv) } close(fd); + amlenum(amlroot, "_HID", enumec, nil); amlenum(amlroot, "_BIF", enumbat, nil); amlenum(amlroot, "_PSL", enumtmp, nil); diff --git a/sys/src/cmd/ip/ftpd.c b/sys/src/cmd/ip/ftpd.c index f4ebbf68b..6661189e9 100644 --- a/sys/src/cmd/ip/ftpd.c +++ b/sys/src/cmd/ip/ftpd.c @@ -85,6 +85,7 @@ struct Cmd Cmd cmdtab[] = { { "abor", abortcmd, 0, }, + { "allo", nopcmd, 1, }, { "appe", appendcmd, 1, }, { "cdup", cdupcmd, 1, }, { "cwd", cwdcmd, 1, }, diff --git a/sys/src/cmd/syscall/mkfile b/sys/src/cmd/syscall/mkfile index 18985a0ec..73af87d0b 100644 --- a/sys/src/cmd/syscall/mkfile +++ b/sys/src/cmd/syscall/mkfile @@ -16,25 +16,8 @@ UPDATE=\ SYSCALL=/sys/src/libc/9syscall/sys.h -tab.h: $SYSCALL - awk ' - BEGIN{ print "enum{" } - { printf "%s, ", $2 } - END{ - print "READ, WRITE, NTAB" - print "};" - }' <$SYSCALL >$target - awk ' - BEGIN{ print "struct Call tab[] = {" } - { printf "[%s] \"%s\", (int(*)(...))%s,\n", - $2, tolower($2), tolower($2) - } - END{ - print "[READ] \"read\", (int(*)(...))read," - print "[WRITE] \"write\", (int(*)(...))write," - print "[NTAB] nil, 0" - print "};" - }' <$SYSCALL >>$target +tab.h: $SYSCALL mktab.awk + mktab.awk $SYSCALL >$target clean:V: rm -f *.[$OS] [$OS].out $TARG $HFILES diff --git a/sys/src/cmd/syscall/mktab.awk b/sys/src/cmd/syscall/mktab.awk new file mode 100755 index 000000000..ab8708022 --- /dev/null +++ b/sys/src/cmd/syscall/mktab.awk @@ -0,0 +1,14 @@ +#!/bin/awk -f +{ e = e $2 ", " + s = s sprintf("[%s] \"%s\", (int(*)(...))%s,\n", + $2, tolower($2), tolower($2)) +} +END{ + e = e "READ, WRITE, NTAB" + s = s "[READ] \"read\", (int(*)(...))read,\n" + s = s "[WRITE] \"write\", (int(*)(...))write,\n" + s = s "[NTAB] nil, 0\n" + + print "enum{", e, "};" + print "struct Call tab[] = {\n", s, "};" +} |