summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/kernel
diff options
context:
space:
mode:
authorschodet2003-05-01 21:16:54 +0000
committerschodet2003-05-01 21:16:54 +0000
commit1b94afd8e022967fa63827e686ee4431b0533f2b (patch)
treef77aa0edb1a8fb799518a9e7103f54d8457eb83c /2003/i/buzz/src/kernel
parentee0d232c6247e8570bd2a522de21626c1b00ab75 (diff)
Ajout de 2 ioctl.
Corections du problème intenable.
Diffstat (limited to '2003/i/buzz/src/kernel')
-rw-r--r--2003/i/buzz/src/kernel/pbus.c10
-rw-r--r--2003/i/buzz/src/kernel/pbus.h2
2 files changed, 10 insertions, 2 deletions
diff --git a/2003/i/buzz/src/kernel/pbus.c b/2003/i/buzz/src/kernel/pbus.c
index 277428a..b1c7025 100644
--- a/2003/i/buzz/src/kernel/pbus.c
+++ b/2003/i/buzz/src/kernel/pbus.c
@@ -295,12 +295,18 @@ pbusioctl(dev, cmd, addr, flag, proc)
PBUS_WAIT;
PBUS_WRITE_4(8,(parm->addr<<8)|PBUS_CLK|PBUS_RnW|sc->pbusinten);
break;
+ case PBUS_INTDISABLE:
+ sc->pbusinten=0;
+ PBUS_WRITE_4(8,0|PBUS_CLK|PBUS_RnW|sc->pbusinten);
+ break;
case PBUS_INTENABLE:
- sc->pbusinten=1;
+ sc->pbusinten=PBUS_INTEN;
PBUS_WRITE_4(8,0|PBUS_CLK|PBUS_RnW|sc->pbusinten);
break;
+ case PBUS_INTREAD:
+ parm->ints=(~(PBUS_READ_4(8)>>16))&0x1F;
+ break;
}
- parm->ints=(~(PBUS_READ_4(8)>>16))&0x1F;
}
if (minor(dev)==0) /* CAM */
diff --git a/2003/i/buzz/src/kernel/pbus.h b/2003/i/buzz/src/kernel/pbus.h
index 7b11499..62bd460 100644
--- a/2003/i/buzz/src/kernel/pbus.h
+++ b/2003/i/buzz/src/kernel/pbus.h
@@ -19,6 +19,8 @@ struct pbus_io
#define PBUS_READ _IOWR('R', 1, struct pbus_io)
#define PBUS_WRITE _IOWR('R', 2, struct pbus_io)
#define PBUS_INTENABLE _IO('R', 3)
+#define PBUS_INTDISABLE _IO('R', 4)
+#define PBUS_INTREAD _IOWR('R', 5, struct pbus_io)
#define CAM_SETFRAMESIZE _IOW('R', 10, unsigned long)
#endif