Changeset e9d15d9 in mainline for uspace/drv/nic/rtl8139/driver.c


Ignore:
Timestamp:
2017-08-18T21:15:26Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
24abb85d
Parents:
1c85bae
Message:

Turn IRQ structures into kernel objects

ipc_irq_subscribe() now returns a capability for the underlying IRQ kernel
object. ipc_irq_unsubscribe() can now be done only with a valid IRQ capability.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/nic/rtl8139/driver.c

    r1c85bae re9d15d9  
    881881 *  @param nic_data  The driver data
    882882 *
    883  *  @return EOK if the handler was registered, negative error code otherwise
     883 *  @return IRQ capability if the handler was registered.
     884 *  @return Negative error code otherwise.
    884885 */
    885886inline static int rtl8139_register_int_handler(nic_t *nic_data)
     
    894895        rtl8139_irq_code.cmds[2].addr = rtl8139->io_addr + ISR;
    895896        rtl8139_irq_code.cmds[3].addr = rtl8139->io_addr + IMR;
    896         int rc = register_interrupt_handler(nic_get_ddf_dev(nic_data),
     897        int cap = register_interrupt_handler(nic_get_ddf_dev(nic_data),
    897898            rtl8139->irq, rtl8139_interrupt_handler, &rtl8139_irq_code);
    898899
    899900        RTL8139_IRQ_STRUCT_UNLOCK();
    900901
    901         return rc;
     902        return cap;
    902903}
    903904
     
    13211322
    13221323        /* Register interrupt handler */
    1323         rc = rtl8139_register_int_handler(nic_data);
    1324         if (rc != EOK)
     1324        int irq_cap = rtl8139_register_int_handler(nic_data);
     1325        if (irq_cap < 0) {
     1326                rc = irq_cap;
    13251327                goto err_pio;
     1328        }
    13261329
    13271330        fun = ddf_fun_create(nic_get_ddf_dev(nic_data), fun_exposed, "port0");
     
    13551358        ddf_fun_destroy(fun);
    13561359err_srv:
    1357         unregister_interrupt_handler(dev, rtl8139->irq);
     1360        unregister_interrupt_handler(dev, irq_cap);
    13581361err_pio:
    13591362        // rtl8139_pio_disable(dev);
Note: See TracChangeset for help on using the changeset viewer.