summaryrefslogtreecommitdiff
path: root/sys/src/cmd/5e/5e.c
diff options
context:
space:
mode:
authoraiju <aiju@phicode.de>2011-06-25 16:17:20 +0200
committeraiju <aiju@phicode.de>2011-06-25 16:17:20 +0200
commit0b22dfd1f69985aabc5af37dca8a217a1e6e54e9 (patch)
tree577216074a5edb2402525c2d219ad8a96af8f9d7 /sys/src/cmd/5e/5e.c
parentb4ae96bcb95e76293a81241bf6edebf27cab7e35 (diff)
5e: added note support
added wstat / fwstat / alarm
Diffstat (limited to 'sys/src/cmd/5e/5e.c')
-rw-r--r--sys/src/cmd/5e/5e.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/src/cmd/5e/5e.c b/sys/src/cmd/5e/5e.c
index b2f23674c..fb589e54c 100644
--- a/sys/src/cmd/5e/5e.c
+++ b/sys/src/cmd/5e/5e.c
@@ -67,6 +67,19 @@ suicide(char *fmt, ...)
abort();
}
+int
+notehandler(void *, char *note)
+{
+ if(strncmp(note, "sys:", 4) == 0)
+ return 0;
+
+ if(strncmp(note, "emu:", 4) == 0)
+ exits(note);
+
+ addnote(note);
+ return 1;
+}
+
void
main(int argc, char **argv)
{
@@ -90,9 +103,14 @@ main(int argc, char **argv)
initproc();
if(loadtext(argv[0], argc, argv) < 0)
sysfatal("%r");
+ atnotify(notehandler, 1);
for(;;) {
if(ultraverbose)
dump();
step();
+ while((P->notein - P->noteout) % NNOTE) {
+ donote(P->notes[P->noteout % NNOTE], 0);
+ ainc(&P->noteout);
+ }
}
}