summaryrefslogtreecommitdiff
path: root/device/ds_routines.c
diff options
context:
space:
mode:
Diffstat (limited to 'device/ds_routines.c')
-rw-r--r--device/ds_routines.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/device/ds_routines.c b/device/ds_routines.c
index 9d399ee..7a5dda5 100644
--- a/device/ds_routines.c
+++ b/device/ds_routines.c
@@ -325,9 +325,7 @@ experimental_device_intr_register (ipc_port_t master_port, int line,
#ifdef MACH_XEN
return D_INVALID_OPERATION;
#else /* MACH_XEN */
- extern int install_user_intr_handler (unsigned int line,
- unsigned long flags,
- ipc_port_t dest);
+ struct intr_entry *entry;
io_return_t ret;
/* Open must be called on the master device port. */
@@ -338,13 +336,13 @@ experimental_device_intr_register (ipc_port_t master_port, int line,
if (line < 0 || line >= 16)
return D_INVALID_OPERATION;
- ret = insert_intr_entry (line, receive_port);
+ ret = insert_intr_entry (line, receive_port, &entry);
if (ret)
return ret;
// TODO The original port should be replaced
// when the same device driver calls it again,
// in order to handle the case that the device driver crashes and restarts.
- ret = install_user_intr_handler (line, flags, receive_port);
+ ret = install_user_intr_handler (line, flags, entry);
/* If the port is installed successfully, increase its reference by 1.
* Thus, the port won't be destroyed after its task is terminated. */