Changes in kernel/generic/src/ipc/irq.c [82d515e9:b7fd2a0] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/irq.c
r82d515e9 rb7fd2a0 78 78 } 79 79 80 static int ranges_map_and_apply(irq_pio_range_t *ranges, size_t rangecount,80 static errno_t ranges_map_and_apply(irq_pio_range_t *ranges, size_t rangecount, 81 81 irq_cmd_t *cmds, size_t cmdcount) 82 82 { … … 164 164 * 165 165 */ 166 static int code_check(irq_cmd_t *cmds, size_t cmdcount)166 static errno_t code_check(irq_cmd_t *cmds, size_t cmdcount) 167 167 { 168 168 for (size_t i = 0; i < cmdcount; i++) { … … 226 226 227 227 irq_code_t *code = malloc(sizeof(*code), 0); 228 int rc = copy_from_uspace(code, ucode, sizeof(*code));228 errno_t rc = copy_from_uspace(code, ucode, sizeof(*code)); 229 229 if (rc != EOK) 230 230 goto error; … … 308 308 * @param ucode Uspace pointer to top-half IRQ code. 309 309 * 310 * @return IRQ capability handle. 311 * @return Negative error code. 312 * 313 */ 314 int ipc_irq_subscribe(answerbox_t *box, inr_t inr, sysarg_t imethod, 315 irq_code_t *ucode) 310 * @param[out] uspace_handle Uspace pointer to IRQ capability handle 311 * 312 * @return Error code. 313 * 314 */ 315 errno_t ipc_irq_subscribe(answerbox_t *box, inr_t inr, sysarg_t imethod, 316 irq_code_t *ucode, cap_handle_t *uspace_handle) 316 317 { 317 318 if ((inr < 0) || (inr > last_inr)) … … 329 330 * Allocate and populate the IRQ kernel object. 330 331 */ 331 cap_handle_t handle = cap_alloc(TASK); 332 if (handle < 0) 333 return handle; 334 332 cap_handle_t handle; 333 errno_t rc = cap_alloc(TASK, &handle); 334 if (rc != EOK) 335 return rc; 336 337 rc = copy_to_uspace(uspace_handle, &handle, sizeof(cap_handle_t)); 338 if (rc != EOK) { 339 cap_free(TASK, handle); 340 return rc; 341 } 342 335 343 irq_t *irq = (irq_t *) slab_alloc(irq_cache, FRAME_ATOMIC); 336 344 if (!irq) { … … 371 379 cap_publish(TASK, handle, kobject); 372 380 373 return handle;381 return EOK; 374 382 } 375 383 … … 379 387 * @param handle IRQ capability handle. 380 388 * 381 * @return EOK on success or a negativeerror code.382 * 383 */ 384 int ipc_irq_unsubscribe(answerbox_t *box, int handle)389 * @return EOK on success or an error code. 390 * 391 */ 392 errno_t ipc_irq_unsubscribe(answerbox_t *box, int handle) 385 393 { 386 394 kobject_t *kobj = cap_unpublish(TASK, handle, KOBJECT_TYPE_IRQ);
Note:
See TracChangeset
for help on using the changeset viewer.