Changeset 87b4baa in mainline for kernel/generic/src/ipc/irq.c
- Timestamp:
- 2010-12-17T20:16:46Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 424558a
- Parents:
- 463e734 (diff), bbc74af7 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/irq.c
r463e734 r87b4baa 42 42 * 43 43 * The structure of a notification message is as follows: 44 * - METHOD: method as registered by the SYS_IPC_REGISTER_IRQ syscall 44 * - IMETHOD: interface and method as registered by the SYS_IPC_REGISTER_IRQ 45 * syscall 45 46 * - ARG1: payload modified by a 'top-half' handler 46 47 * - ARG2: payload modified by a 'top-half' handler … … 49 50 * - ARG5: payload modified by a 'top-half' handler 50 51 * - in_phone_hash: interrupt counter (may be needed to assure correct order 51 * in multithreaded drivers)52 * in multithreaded drivers) 52 53 * 53 54 * Note on synchronization for ipc_irq_register(), ipc_irq_unregister(), … … 130 131 /** Register an answerbox as a receiving end for IRQ notifications. 131 132 * 132 * @param box Receiving answerbox. 133 * @param inr IRQ number. 134 * @param devno Device number. 135 * @param method Method to be associated with the notification. 136 * @param ucode Uspace pointer to top-half pseudocode. 133 * @param box Receiving answerbox. 134 * @param inr IRQ number. 135 * @param devno Device number. 136 * @param imethod Interface and method to be associated 137 * with the notification. 138 * @param ucode Uspace pointer to top-half pseudocode. 137 139 * 138 140 * @return EBADMEM, ENOENT or EEXISTS on failure or 0 on success. … … 140 142 */ 141 143 int ipc_irq_register(answerbox_t *box, inr_t inr, devno_t devno, 142 unative_tmethod, irq_code_t *ucode)143 { 144 unative_t key[] = {145 ( unative_t) inr,146 ( unative_t) devno144 sysarg_t imethod, irq_code_t *ucode) 145 { 146 sysarg_t key[] = { 147 (sysarg_t) inr, 148 (sysarg_t) devno 147 149 }; 148 150 … … 167 169 irq->notif_cfg.notify = true; 168 170 irq->notif_cfg.answerbox = box; 169 irq->notif_cfg. method =method;171 irq->notif_cfg.imethod = imethod; 170 172 irq->notif_cfg.code = code; 171 173 irq->notif_cfg.counter = 0; … … 213 215 int ipc_irq_unregister(answerbox_t *box, inr_t inr, devno_t devno) 214 216 { 215 unative_t key[] = {216 ( unative_t) inr,217 ( unative_t) devno217 sysarg_t key[] = { 218 (sysarg_t) inr, 219 (sysarg_t) devno 218 220 }; 219 221 … … 290 292 } 291 293 292 unative_t key[2];294 sysarg_t key[2]; 293 295 key[0] = irq->inr; 294 296 key[1] = irq->devno; … … 444 446 445 447 /* Set up args */ 446 IPC_SET_ METHOD(call->data, irq->notif_cfg.method);448 IPC_SET_IMETHOD(call->data, irq->notif_cfg.imethod); 447 449 IPC_SET_ARG1(call->data, irq->notif_cfg.scratch[1]); 448 450 IPC_SET_ARG2(call->data, irq->notif_cfg.scratch[2]); … … 465 467 * 466 468 */ 467 void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3,468 unative_t a4, unative_t a5)469 void ipc_irq_send_msg(irq_t *irq, sysarg_t a1, sysarg_t a2, sysarg_t a3, 470 sysarg_t a4, sysarg_t a5) 469 471 { 470 472 irq_spinlock_lock(&irq->lock, true); … … 481 483 call->priv = ++irq->notif_cfg.counter; 482 484 483 IPC_SET_ METHOD(call->data, irq->notif_cfg.method);485 IPC_SET_IMETHOD(call->data, irq->notif_cfg.imethod); 484 486 IPC_SET_ARG1(call->data, a1); 485 487 IPC_SET_ARG2(call->data, a2);
Note:
See TracChangeset
for help on using the changeset viewer.