diff options
Diffstat (limited to 'pcnet32/irq.c')
-rw-r--r-- | pcnet32/irq.c | 34 |
1 files changed, 34 insertions, 0 deletions
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 <error.h> + +#include <mach.h> +#include <hurd.h> + +#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"); +} |