From 6c25f97b8e9171eb399d56549cded82d29d05924 Mon Sep 17 00:00:00 2001 From: Zheng Da Date: Sat, 14 Nov 2009 00:15:08 +0100 Subject: A working user-level pcnet32 driver. --- pcnet32/irq.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 pcnet32/irq.c (limited to 'pcnet32/irq.c') diff --git a/pcnet32/irq.c b/pcnet32/irq.c new file mode 100644 index 000000000..f82e8b11c --- /dev/null +++ b/pcnet32/irq.c @@ -0,0 +1,34 @@ +#include + +#include +#include + +#include "netdevice.h" +#include "device_U.h" +#include "irq.h" + +extern mach_port_t master_device; + +/* + * Install the irq in the kernel. + */ +int +request_irq (struct linux_device *dev, + void (*handler) (int), unsigned long flags) +{ + return device_intr_notify (master_device, dev->irq, dev->dev_id, + ports_get_right (dev), MACH_MSG_TYPE_MAKE_SEND); +} + +/* + * Deallocate an irq. + */ +void +free_irq (struct linux_device *dev) +{ + error_t err; + err = device_intr_notify (master_device, dev->irq, dev->dev_id, + MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND); + if (err) + error (0, err, "device_intr_notify"); +} -- cgit v1.2.3