123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- * 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);
- }
|