summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/man/2/tmdate7
-rw-r--r--sys/src/cmd/aux/acpi.c36
-rw-r--r--sys/src/cmd/ip/ftpd.c1
-rw-r--r--sys/src/cmd/syscall/mkfile21
-rwxr-xr-xsys/src/cmd/syscall/mktab.awk14
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, "};"
+}