| plan 9 kernel history: overview | file list | diff list |
1999/0715/pc/devlm78.c (diff list | history)
| pc/devlm78.c on 1999/0715 | ||
| 1999/0715 | #include "u.h" #include "../port/lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "io.h" #include "ureg.h" #include "../port/error.h" | |
| 1999/0708 | ||
| 1999/0715 | enum { | |
| 1999/0708 | Qdir, Qtemp, }; | |
| 1999/0715 | static Dirtab lm78dir[] = { "temp", { Qtemp, 0 }, 0, 0444, | |
| 1999/0708 | }; | |
| 1999/0715 | SMBus *lm78smbus; | |
| 1999/0708 | ||
| 1999/0715 | extern SMBus* piix4smbus(void); | |
| 1999/0708 | ||
| 1999/0715 | void | |
| 1999/0708 | lm78init(void) { | |
| 1999/0715 | lm78smbus = piix4smbus(); if(lm78smbus != nil) print("found piix4 smbus, base %lud\n", lm78smbus->base); | |
| 1999/0708 | } static Chan* | |
| 1999/0715 | lm78attach(char* spec) | |
| 1999/0708 | { | |
| 1999/0715 | return devattach('T', spec); | |
| 1999/0708 | } | |
| 1999/0715 | int | |
| 1999/0708 | lm78walk(Chan* c, char* name) { | |
| 1999/0715 | return devwalk(c, name, lm78dir, nelem(lm78dir), devgen); | |
| 1999/0708 | } static void | |
| 1999/0715 | lm78stat(Chan* c, char* dp) { devstat(c, dp, lm78dir, nelem(lm78dir), devgen); | |
| 1999/0708 | } static Chan* lm78open(Chan* c, int omode) { | |
| 1999/0715 | return devopen(c, omode, lm78dir, nelem(lm78dir), devgen); | |
| 1999/0708 | } static void | |
| 1999/0715 | lm78close(Chan*) | |
| 1999/0708 | { } | |
| 1999/0715 | enum | |
| 1999/0708 | { | |
| 1999/0715 | Linelen= 25, }; | |
| 1999/0708 | static long | |
| 1999/0715 | lm78read(Chan *c, void *a, long n, vlong offset) | |
| 1999/0708 | { switch(c->qid.path & ~CHDIR){ | |
| 1999/0715 | ||
| 1999/0708 | case Qdir: | |
| 1999/0715 | return devdirread(c, a, n, lm78dir, nelem(lm78dir), devgen); | |
| 1999/0708 | case Qtemp: | |
| 1999/0715 | error(Eperm); | |
| 1999/0708 | } | |
| 1999/0715 | return 0; | |
| 1999/0708 | } static long | |
| 1999/0715 | lm78write(Chan *c, void *a, long n, vlong offset) | |
| 1999/0708 | { | |
| 1999/0715 | error(Eperm); return 0; | |
| 1999/0708 | } Dev lm78devtab = { | |
| 1999/0715 | 'T', | |
| 1999/0708 | "lm78", | |
| 1999/0715 | devreset, | |
| 1999/0708 | lm78init, lm78attach, | |
| 1999/0715 | devclone, | |
| 1999/0708 | lm78walk, lm78stat, lm78open, | |
| 1999/0715 | devcreate, | |
| 1999/0708 | lm78close, lm78read, | |
| 1999/0715 | devbread, | |
| 1999/0708 | lm78write, | |
| 1999/0715 | devbwrite, devremove, devwstat, | |
| 1999/0708 | }; | |