Ignore:
Timestamp:
2014-08-16T00:02:04Z (10 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)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.