Changeset 01c3bb4 in mainline for uspace/drv/char


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/char
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • 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);
Note: See TracChangeset for help on using the changeset viewer.