From 7ac0c47aac94b25977995388affb0fc836520256 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 30 Jun 2001 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 2001-06-30 --- pc/devlml.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/pc/devlml.c b/pc/devlml.c index 0d604c0c77a1ab08fed826441d32020a442f16e0..e1731543ca382e887e2bb5a697c910feb2a95204 100644 --- a/pc/devlml.c +++ b/pc/devlml.c @@ -28,9 +28,9 @@ enum{ }; static Dirtab lmldir[]={ -// name, qid, size, mode - "lmljpg", {Qjpg}, 0, 0444, -// "lmlraw", {Qraw}, 0, 0444, + ".", {Qdir, 0, QTDIR}, 0, DMDIR|0555, + "lmljpg", {Qjpg}, 0, 0444, +// "lmlraw", {Qraw}, 0, 0444, }; static CodeData * codeData; @@ -183,8 +183,7 @@ lmlreset(void) memset(&segbuf, 0, sizeof(segbuf)); segbuf.attr = SG_PHYSICAL; - segbuf.name = smalloc(NAMELEN); - snprint(segbuf.name, NAMELEN, "lmlmjpg"); + kstrdup(&segbuf.name, "lmlmjpg"); segbuf.pa = PADDR(codeData); segbuf.size = cdsize; if (addphysseg(&segbuf) == -1) { @@ -194,8 +193,7 @@ lmlreset(void) memset(&segreg, 0, sizeof(segreg)); segreg.attr = SG_PHYSICAL; - segreg.name = smalloc(NAMELEN); - snprint(segreg.name, NAMELEN, "lmlregs"); + kstrdup(&segreg.name, "lmlregs"); segreg.pa = (ulong)regpa; segreg.size = pcidev->mem[0].size; if (addphysseg(&segreg) == -1) { @@ -205,8 +203,7 @@ lmlreset(void) memset(&seggrab, 0, sizeof(seggrab)); seggrab.attr = SG_PHYSICAL; - seggrab.name = smalloc(NAMELEN); - snprint(seggrab.name, NAMELEN, "lmlgrab"); + kstrdup(&seggrab.name, "lmlgrab"); seggrab.pa = PADDR(grabbuf); seggrab.size = grablen; if (addphysseg(&seggrab) == -1) { @@ -226,23 +223,23 @@ lmlattach(char *spec) return devattach('V', spec); } -static int -lmlwalk(Chan *c, char *name) +static Walkqid* +lmlwalk(Chan *c, Chan *nc, char **name, int nname) { - return devwalk(c, name, lmldir, nelem(lmldir), devgen); + return devwalk(c, nc, name, nname, lmldir, nelem(lmldir), devgen); } -static void -lmlstat(Chan *c, char *dp) +static int +lmlstat(Chan *c, uchar *db, int n) { - devstat(c, dp, lmldir, nelem(lmldir), devgen); + return devstat(c, db, n, lmldir, nelem(lmldir), devgen); } static Chan* lmlopen(Chan *c, int omode) { c->aux = 0; - switch(c->qid.path){ + switch((ulong)c->qid.path){ case Qjpg: // allow one open if (jpgopens) @@ -266,7 +263,7 @@ lmlopen(Chan *c, int omode) { static void lmlclose(Chan *c) { - switch(c->qid.path){ + switch((ulong)c->qid.path){ case Qjpg: jpgopens = 0; break; @@ -275,7 +272,6 @@ lmlclose(Chan *c) { break; */ } - authclose(c); } static long @@ -283,8 +279,7 @@ lmlread(Chan *c, void *va, long n, vlong voff) { uchar *buf = va; long off = voff; - switch(c->qid.path & ~CHDIR){ - + switch((ulong)c->qid.path){ case Qdir: return devdirread(c, (char *)buf, n, lmldir, nelem(lmldir), devgen); case Qjpg: @@ -309,7 +304,6 @@ Dev lmldevtab = { lmlreset, devinit, lmlattach, - devclone, lmlwalk, lmlstat, lmlopen,