plan 9 kernel history: overview | file list | diff list

2002/0506/pc/psaux.c (diff list | history)

pc/psaux.c on 2002/0506
2002/0506    
/* 
 * Interface to raw PS/2 aux port. 
 * Used by user-level mouse daemon. 
 */ 
 
#include "u.h" 
#include "../port/lib.h" 
#include "mem.h" 
#include "dat.h" 
#include "fns.h" 
#include "../port/error.h" 
#include "io.h" 
 
#define Image	IMAGE 
#include <draw.h> 
#include <memdraw.h> 
#include <cursor.h> 
#include "screen.h" 
 
/* 
 * BUG: we ignore shift here. 
 * we need a more general solution, 
 * one that will also work for serial mice. 
 */ 
Queue *psauxq; 
 
static void 
psauxputc(int c, int) 
{ 
	uchar uc; 
 
	uc = c; 
	qproduce(psauxq, &uc, 1); 
} 
 
static long 
psauxread(Chan*, void *a, long n, vlong) 
{ 
	return qread(psauxq, a, n); 
} 
 
static long 
psauxwrite(Chan*, void *a, long n, vlong) 
{ 
	return i8042auxcmds(a, n); 
} 
 
void 
psauxlink(void) 
{ 
	psauxq = qopen(1024, 0, 0, 0); 
	if(psauxq == nil) 
		panic("psauxlink"); 
	qnoblock(psauxq, 1); 
	i8042auxenable(psauxputc); 
	addarchfile("psaux", DMEXCL|0660, psauxread, psauxwrite); 
} 


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