Changeset 01c3bb4 in mainline for uspace/drv


Ignore:
Timestamp:
2017-11-25T15:43:25Z (8 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ce4a21a0
Parents:
98cb5e0d
Message:

Convert call-handling syscalls to capabilities

This commit modifies the behavior of sys_ipc_wait_for_call() to return a
capability handle for requests. This capability handle can be used
either by sys_ipc_answer*() to answer the call or by sys_ipc_forward*()
to forward it further along. Answering or forwarding the call results in
destruction of the respective capability. For requests and
notifications, sys_ipc_wait_for_call() returns CAP_NIL and sets call
flags accordingly.

Location:
uspace/drv
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/audio/hdaudio/hdaudio.c

    r98cb5e0d r01c3bb4  
    5858static int hda_fun_offline(ddf_fun_t *fun);
    5959
    60 static void hdaudio_interrupt(ipc_callid_t, ipc_call_t *, ddf_dev_t *);
     60static void hdaudio_interrupt(ipc_call_t *, ddf_dev_t *);
    6161
    6262static driver_ops_t driver_ops = {
     
    368368}
    369369
    370 static void hdaudio_interrupt(ipc_callid_t iid, ipc_call_t *icall,
    371     ddf_dev_t *dev)
     370static void hdaudio_interrupt(ipc_call_t *icall, ddf_dev_t *dev)
    372371{
    373372        hda_t *hda = (hda_t *)ddf_dev_data_get(dev);
  • uspace/drv/audio/sb16/main.c

    r98cb5e0d r01c3bb4  
    7676}
    7777
    78 static void irq_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
     78static void irq_handler(ipc_call_t *call, ddf_dev_t *dev)
    7979{
    8080        sb16_t *sb16_dev = ddf_dev_data_get(dev);
  • uspace/drv/block/ahci/ahci.c

    r98cb5e0d r01c3bb4  
    890890/** AHCI interrupt handler.
    891891 *
    892  * @param iid   The IPC call id.
    893892 * @param icall The IPC call structure.
    894893 * @param dev   DDF device structure.
    895894 *
    896895 */
    897 static void ahci_interrupt(ipc_callid_t iid, ipc_call_t *icall, ddf_dev_t *dev)
     896static void ahci_interrupt(ipc_call_t *icall, ddf_dev_t *dev)
    898897{
    899898        ahci_dev_t *ahci = dev_ahci_dev(dev);
  • uspace/drv/block/ddisk/ddisk.c

    r98cb5e0d r01c3bb4  
    6464static void ddisk_bd_connection(ipc_callid_t, ipc_call_t *, void *);
    6565
    66 static void ddisk_irq_handler(ipc_callid_t, ipc_call_t *, ddf_dev_t *);
     66static void ddisk_irq_handler(ipc_call_t *, ddf_dev_t *);
    6767
    6868static driver_ops_t driver_ops = {
     
    176176};
    177177
    178 void ddisk_irq_handler(ipc_callid_t iid, ipc_call_t *icall, ddf_dev_t *dev)
     178void ddisk_irq_handler(ipc_call_t *icall, ddf_dev_t *dev)
    179179{
    180180        ddf_msg(LVL_DEBUG, "ddisk_irq_handler(), status=%" PRIx32,
  • uspace/drv/bus/adb/cuda_adb/cuda_adb.c

    r98cb5e0d r01c3bb4  
    5757static void cuda_dev_connection(ipc_callid_t, ipc_call_t *, void *);
    5858static int cuda_init(cuda_t *);
    59 static void cuda_irq_handler(ipc_callid_t, ipc_call_t *, void *);
     59static void cuda_irq_handler(ipc_call_t *, void *);
    6060
    6161static void cuda_irq_listen(cuda_t *);
     
    264264}
    265265
    266 static void cuda_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg)
     266static void cuda_irq_handler(ipc_call_t *call, void *arg)
    267267{
    268268        uint8_t rbuf[CUDA_RCV_BUF_SIZE];
  • uspace/drv/char/i8042/i8042.c

    r98cb5e0d r01c3bb4  
    122122 * Write new data to the corresponding buffer.
    123123 *
    124  * @param iid  Call id.
    125124 * @param call pointerr to call data.
    126125 * @param dev  Device that caued the interrupt.
    127126 *
    128127 */
    129 static void i8042_irq_handler(ipc_callid_t iid, ipc_call_t *call,
    130     ddf_dev_t *dev)
     128static void i8042_irq_handler(ipc_call_t *call, ddf_dev_t *dev)
    131129{
    132130        i8042_t *controller = ddf_dev_data_get(dev);
  • uspace/drv/char/msim-con/msim-con.c

    r98cb5e0d r01c3bb4  
    6262};
    6363
    64 static void msim_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg)
     64static void msim_irq_handler(ipc_call_t *call, void *arg)
    6565{
    6666        msim_con_t *con = (msim_con_t *) arg;
  • uspace/drv/char/ns8250/ns8250.c

    r98cb5e0d r01c3bb4  
    783783 *
    784784 */
    785 static inline void ns8250_interrupt_handler(ipc_callid_t iid, ipc_call_t *icall,
    786     ddf_dev_t *dev)
     785static inline void ns8250_interrupt_handler(ipc_call_t *icall, ddf_dev_t *dev)
    787786{
    788787        ns8250_t *ns = dev_ns8250(dev);
  • uspace/drv/char/pl050/pl050.c

    r98cb5e0d r01c3bb4  
    137137}
    138138
    139 static void pl050_interrupt(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
     139static void pl050_interrupt(ipc_call_t *call, ddf_dev_t *dev)
    140140{
    141141        pl050_t *pl050 = (pl050_t *)ddf_dev_data_get(dev);
  • uspace/drv/nic/e1k/e1k.c

    r98cb5e0d r01c3bb4  
    12371237/** Handle device interrupt
    12381238 *
    1239  * @param iid   IPC call id
    12401239 * @param icall IPC call structure
    12411240 * @param dev   E1000 device
    12421241 *
    12431242 */
    1244 static void e1000_interrupt_handler(ipc_callid_t iid, ipc_call_t *icall,
     1243static void e1000_interrupt_handler(ipc_call_t *icall,
    12451244    ddf_dev_t *dev)
    12461245{
  • uspace/drv/nic/ne2k/ne2k.c

    r98cb5e0d r01c3bb4  
    122122};
    123123
    124 static void ne2k_interrupt_handler(ipc_callid_t, ipc_call_t *, ddf_dev_t *);
     124static void ne2k_interrupt_handler(ipc_call_t *, ddf_dev_t *);
    125125
    126126static int ne2k_register_interrupt(nic_t *nic_data)
     
    239239}
    240240
    241 void ne2k_interrupt_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
     241void ne2k_interrupt_handler(ipc_call_t *call, ddf_dev_t *dev)
    242242{
    243243        nic_t *nic_data = DRIVER_DATA(dev);
    244244        ne2k_interrupt(nic_data, IRQ_GET_ISR(*call), IRQ_GET_TSR(*call));
    245        
    246         async_answer_0(iid, EOK);
    247245}
    248246
  • uspace/drv/nic/rtl8139/driver.c

    r98cb5e0d r01c3bb4  
    816816/** Handle device interrupt
    817817 *
    818  * @param iid    The IPC call id
    819818 * @param icall  The IPC call structure
    820819 * @param dev    The rtl8139 device
    821820 *
    822821 */
    823 static void rtl8139_interrupt_handler(ipc_callid_t iid, ipc_call_t *icall,
    824     ddf_dev_t *dev)
     822static void rtl8139_interrupt_handler(ipc_call_t *icall, ddf_dev_t *dev)
    825823{
    826824        assert(dev);
  • uspace/drv/nic/rtl8169/driver.c

    r98cb5e0d r01c3bb4  
    7272static int rtl8169_on_stopped(nic_t *nic_data);
    7373static void rtl8169_send_frame(nic_t *nic_data, void *data, size_t size);
    74 static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
    75     ddf_dev_t *dev);
     74static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev);
    7675static inline int rtl8169_register_int_handler(nic_t *nic_data);
    7776static inline void rtl8169_get_hwaddr(rtl8169_t *rtl8169, nic_address_t *addr);
     
    10321031}
    10331032
    1034 static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
    1035     ddf_dev_t *dev)
     1033static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev)
    10361034{
    10371035        assert(dev);
Note: See TracChangeset for help on using the changeset viewer.