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    
}; 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)