Changeset 8820544 in mainline for uspace/srv/hw


Ignore:
Timestamp:
2014-08-16T00:02:04Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
35b8bfe, 8cd680c
Parents:
83f29e0
Message:

support for kernel notification multiplexing in the async framework

  • rename SYS_EVENT_* and SYS_IRQ_* syscalls to unify the terminology
  • add SYS_IPC_EVENT_UNSUBSCRIBE
  • remove IRQ handler multiplexing from DDF, the generic mechanism replaces it (unfortunatelly the order of arguments used by interrupt_handler_t needs to be permutated to align with the async framework conventions)
Location:
uspace/srv/hw
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hw/bus/cuda_adb/cuda_adb.c

    r83f29e0 r8820544  
    5555static void cuda_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg);
    5656static int cuda_init(void);
    57 static void cuda_irq_handler(ipc_callid_t iid, ipc_call_t *call);
     57static void cuda_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg);
    5858
    5959static void cuda_irq_listen(void);
     
    282282        cuda_irq_code.ranges[0].base = (uintptr_t) instance->cuda_physical;
    283283        cuda_irq_code.cmds[0].addr = (void *) &((cuda_t *) instance->cuda_physical)->ifr;
    284         async_set_interrupt_received(cuda_irq_handler);
    285         irq_register(10, device_assign_devno(), 0, &cuda_irq_code);
     284        async_irq_subscribe(10, device_assign_devno(), cuda_irq_handler, NULL,
     285            &cuda_irq_code);
    286286
    287287        /* Enable SR interrupt. */
     
    295295}
    296296
    297 static void cuda_irq_handler(ipc_callid_t iid, ipc_call_t *call)
     297static void cuda_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg)
    298298{
    299299        uint8_t rbuf[CUDA_RCV_BUF_SIZE];
  • uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart.c

    r83f29e0 r8820544  
    6868static s3c24xx_uart_t *uart;
    6969
    70 static void s3c24xx_uart_connection(ipc_callid_t iid, ipc_call_t *icall,
    71     void *arg);
    72 static void s3c24xx_uart_irq_handler(ipc_callid_t iid, ipc_call_t *call);
    73 static int s3c24xx_uart_init(s3c24xx_uart_t *uart);
    74 static void s3c24xx_uart_sendb(s3c24xx_uart_t *uart, uint8_t byte);
     70static void s3c24xx_uart_connection(ipc_callid_t, ipc_call_t *, void *);
     71static void s3c24xx_uart_irq_handler(ipc_callid_t, ipc_call_t *, void *);
     72static int s3c24xx_uart_init(s3c24xx_uart_t *);
     73static void s3c24xx_uart_sendb(s3c24xx_uart_t *, uint8_t);
    7574
    7675int main(int argc, char *argv[])
     
    150149}
    151150
    152 static void s3c24xx_uart_irq_handler(ipc_callid_t iid, ipc_call_t *call)
    153 {
    154         (void) iid; (void) call;
     151static void s3c24xx_uart_irq_handler(ipc_callid_t iid, ipc_call_t *call,
     152    void *arg)
     153{
     154        (void) iid;
     155        (void) call;
     156        (void) arg;
    155157
    156158        while ((pio_read_32(&uart->io->ufstat) & S3C24XX_UFSTAT_RX_COUNT) != 0) {
     
    192194            (void *) uart->paddr, inr);
    193195
    194         async_set_interrupt_received(s3c24xx_uart_irq_handler);
    195 
    196         irq_register(inr, device_assign_devno(), 0, &uart_irq_code);
     196        async_irq_subscribe(inr, device_assign_devno(), s3c24xx_uart_irq_handler,
     197            NULL, &uart_irq_code);
    197198
    198199        /* Enable FIFO, Tx trigger level: empty, Rx trigger level: 1 byte. */
Note: See TracChangeset for help on using the changeset viewer.