diff options
| author | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2025-12-28 12:27:31 +0300 |
|---|---|---|
| committer | Konstantin Kirik (snegovick) <snegovick@uprojects.org> | 2025-12-28 12:27:31 +0300 |
| commit | 78ee7d5717807e6ac779293d0d3c78341de6130a (patch) | |
| tree | a43e3b0f61318ac45e6d907c7cc5bad2c6d7f497 /os/cerf1110/devcerf.c | |
| parent | bdaf46cf45bbb59261da245d548a179d95a42768 (diff) | |
Move existing boards into subdits split per arch
Diffstat (limited to 'os/cerf1110/devcerf.c')
| -rw-r--r-- | os/cerf1110/devcerf.c | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/os/cerf1110/devcerf.c b/os/cerf1110/devcerf.c deleted file mode 100644 index 3c0fc999..00000000 --- a/os/cerf1110/devcerf.c +++ /dev/null @@ -1,128 +0,0 @@ -#include "u.h" -#include "../port/lib.h" -#include "mem.h" -#include "dat.h" -#include "fns.h" -#include "../port/error.h" - -#include "io.h" - - -enum{ - Qdir, - Qled, -}; - -static -Dirtab cerftab[]={ - ".", {Qdir, 0, QTDIR}, 0, 0555, - "cerfled", {Qled, 0}, 0, 0660, -}; - -static void -cerfinit(void) /* default in dev.c */ -{ - int s; - - s = splhi(); - GPIOREG->gpdr |= 0xF; - GPIOREG->gpsr = 1<<0; /* we're here */ - splx(s); -} - -static Chan* -cerfattach(char* spec) -{ - return devattach('T', spec); -} - -static Walkqid* -cerfwalk(Chan *c, Chan *nc, char **name, int nname) -{ - return devwalk(c, nc, name, nname, cerftab, nelem(cerftab), devgen); -} - -static int -cerfstat(Chan* c, uchar *db, int n) -{ - return devstat(c, db, n, cerftab, nelem(cerftab), devgen); -} - -static Chan* -cerfopen(Chan* c, int omode) -{ - return devopen(c, omode, cerftab, nelem(cerftab), devgen); -} - -static void -cerfclose(Chan* c) -{ - USED(c); -} - -static long -cerfread(Chan* c, void* a, long n, vlong offset) -{ - char buf[16]; - - switch((ulong)c->qid.path){ - case Qdir: - return devdirread(c, a, n, cerftab, nelem(cerftab), devgen); - case Qled: - snprint(buf, sizeof(buf), "%2.2lux", GPIOREG->gplr&0xF); - return readstr(offset, a, n, buf); - default: - n=0; - break; - } - return n; -} - -static long -cerfwrite(Chan* c, void* a, long n, vlong) -{ - char buf[16]; - ulong v; - - switch((ulong)c->qid.path){ - case Qled: - if(n >= sizeof(buf)) - n = sizeof(buf)-1; - memmove(buf, a, n); - buf[n] = 0; - v = GPIOREG->gplr & 0xF; - if(buf[0] == '+') - v |= strtoul(buf+1, nil, 0); - else if(buf[0] == '-') - v &= ~strtoul(buf+1, nil, 0); - else - v = strtoul(buf, nil, 0); - GPIOREG->gpsr = v & 0xF; - GPIOREG->gpcr = ~v & 0xF; - break; - default: - error(Ebadusefd); - } - return n; -} - -Dev cerfdevtab = { - 'T', - "cerf", - - devreset, - cerfinit, - devshutdown, - cerfattach, - cerfwalk, - cerfstat, - cerfopen, - devcreate, - cerfclose, - cerfread, - devbread, - cerfwrite, - devbwrite, - devremove, - devwstat, -}; |
