diff options
| -rw-r--r-- | sys/src/9/pc/sdvirtio.c | 4 | ||||
| -rw-r--r-- | sys/src/9/port/devsd.c | 13 | ||||
| -rw-r--r-- | sys/src/cmd/file.c | 8 | ||||
| -rw-r--r-- | sys/src/games/galaxy/galaxy.c | 19 | ||||
| -rw-r--r-- | sys/src/games/galaxy/galaxy.h | 2 |
5 files changed, 32 insertions, 14 deletions
diff --git a/sys/src/9/pc/sdvirtio.c b/sys/src/9/pc/sdvirtio.c index 6bb6c1162..ecda11778 100644 --- a/sys/src/9/pc/sdvirtio.c +++ b/sys/src/9/pc/sdvirtio.c @@ -579,7 +579,7 @@ vioenable(SDev *sd) snprint(name, sizeof(name), "%s (%s)", sd->name, sd->ifc->name); intrenable(vd->pci->intl, viointerrupt, vd, vd->pci->tbdf, name); outb(vd->port+Status, inb(vd->port+Status) | DriverOk); - return 0; + return 1; } static int @@ -591,7 +591,7 @@ viodisable(SDev *sd) vd = sd->ctlr; snprint(name, sizeof(name), "%s (%s)", sd->name, sd->ifc->name); intrdisable(vd->pci->intl, viointerrupt, vd, vd->pci->tbdf, name); - return 0; + return 1; } static SDev* diff --git a/sys/src/9/port/devsd.c b/sys/src/9/port/devsd.c index 18684b3d7..5ea1d47b8 100644 --- a/sys/src/9/port/devsd.c +++ b/sys/src/9/port/devsd.c @@ -293,30 +293,31 @@ sdgetunit(SDev* sdev, int subno) qunlock(&sdev->unitlock); return nil; } + if((unit = malloc(sizeof(SDunit))) == nil){ qunlock(&sdev->unitlock); return nil; } sdev->unitflg[subno] = 1; - snprint(buf, sizeof buf, "%s%x", sdev->name, subno); kstrdup(&unit->name, buf); kstrdup(&unit->user, eve); unit->perm = 0555; unit->subno = subno; unit->dev = sdev; - - if(sdev->enabled == 0 && sdev->ifc->enable) - sdev->ifc->enable(sdev); - sdev->enabled = 1; + + if(sdev->enabled == 0) + sdev->enabled = sdev->ifc->enable == nil || sdev->ifc->enable(sdev); /* * No need to lock anything here as this is only * called before the unit is made available in the * sdunit[] array. */ - if(unit->dev->ifc->verify(unit) == 0){ + if(sdev->enabled == 0 || unit->dev->ifc->verify(unit) == 0){ qunlock(&sdev->unitlock); + free(unit->name); + free(unit->user); free(unit); return nil; } diff --git a/sys/src/cmd/file.c b/sys/src/cmd/file.c index 4c7ff421c..b64bb13a4 100644 --- a/sys/src/cmd/file.c +++ b/sys/src/cmd/file.c @@ -874,6 +874,14 @@ struct FILE_STRING "Extended module: ", "XM audio", 17, "audio/xm", "MThd", "midi audio", 4, "audio/midi", "MUS\x1a", "mus audio", 4, "audio/mus", + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\x00\x00\x00\xbb\x11\x22\x00\x44\xff\xff\xff\xff\xff\xff\xff\xff" + "\xaa\x99\x55\x66", "Xilinx bitstream (not byteswappped)", 52, OCTET, + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" + "\xbb\x00\x00\x00\x44\x00\x22\x11\xff\xff\xff\xff\xff\xff\xff\xff" + "\x66\x55\x99\xaa", "Xilinx bitstream (byteswappped)", 52, OCTET, 0,0,0,0 }; diff --git a/sys/src/games/galaxy/galaxy.c b/sys/src/games/galaxy/galaxy.c index 4be0334c6..faa4cf8ef 100644 --- a/sys/src/games/galaxy/galaxy.c +++ b/sys/src/games/galaxy/galaxy.c @@ -442,7 +442,7 @@ domenu(void) G *= z; break; case EXIT: - threadexitsall(nil); + quit(nil); break; } drawglxy(); @@ -496,14 +496,14 @@ kbdthread(void*) for(;;) { recv(realkc->c, &r); - if(r == Kdel) { - threadexitsall(nil); - } + if(r == Kdel) + quit(nil); + if(kc.c != nil) send(kc.c, &r); else switch(r) { case 'q': - threadexitsall(nil); + quit(nil); break; case 's': stats ^= 1; @@ -539,9 +539,16 @@ tovector(Point p) } void +quit(char *e) +{ + pause(0, 0); + threadexitsall(e); +} + +void usage(void) { - fprint(2, "Usage: %s [-t throttle] [-G gravity] [-ε smooth] [-i] [file]\n", argv0); + fprint(2, "Usage: %s [-t throttle] [-G gravity] [-ε smooth] [-p extraproc] [-i] [file]\n", argv0); threadexitsall("usage"); } diff --git a/sys/src/games/galaxy/galaxy.h b/sys/src/games/galaxy/galaxy.h index a09ab204c..9d51aa158 100644 --- a/sys/src/games/galaxy/galaxy.h +++ b/sys/src/games/galaxy/galaxy.h @@ -49,6 +49,8 @@ enum { BODY, }; +void quit(char*); + Image *randcol(void); Point topoint(Vector); Vector tovector(Point); |
