Changeset 8820544 in mainline for uspace/lib/c/include


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/lib/c/include
Files:
1 added
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/async.h

    r83f29e0 r8820544  
    4646#include <stdbool.h>
    4747#include <task.h>
     48#include <abi/ddi/irq.h>
     49#include <abi/ipc/event.h>
    4850
    4951typedef ipc_callid_t aid_t;
     
    6264typedef void (*async_client_conn_t)(ipc_callid_t, ipc_call_t *, void *);
    6365
    64 /** Interrupt handler */
    65 typedef void (*async_interrupt_handler_t)(ipc_callid_t, ipc_call_t *);
     66/** Notification handler */
     67typedef void (*async_notification_handler_t)(ipc_callid_t, ipc_call_t *,
     68    void *);
    6669
    6770/** Exchange management style
     
    155158
    156159extern void async_set_client_connection(async_client_conn_t);
    157 extern void async_set_interrupt_received(async_interrupt_handler_t);
    158 extern void async_set_interrupt_handler_stack_size(size_t);
     160extern void async_set_notification_handler_stack_size(size_t);
     161
     162extern int async_irq_subscribe(int, int, async_notification_handler_t, void *,
     163    const irq_code_t *);
     164extern int async_irq_unsubscribe(int, int);
     165
     166extern int async_event_subscribe(event_type_t, async_notification_handler_t,
     167    void *);
     168extern int async_event_task_subscribe(event_task_type_t,
     169    async_notification_handler_t, void *);
     170extern int async_event_unsubscribe(event_type_t);
     171extern int async_event_task_unsubscribe(event_task_type_t);
     172extern int async_event_unmask(event_type_t);
     173extern int async_event_task_unmask(event_task_type_t);
    159174
    160175/*
  • uspace/lib/c/include/ddi.h

    r83f29e0 r8820544  
    130130}
    131131
    132 extern int irq_register(int, int, int, const irq_code_t *);
    133 extern int irq_unregister(int, int);
    134 
    135132#endif
    136133
  • uspace/lib/c/include/ipc/event.h

    r83f29e0 r8820544  
    3333 */
    3434
    35 #ifndef LIBC_EVENT_H_
    36 #define LIBC_EVENT_H_
     35#ifndef LIBC_IPC_EVENT_H_
     36#define LIBC_IPC_EVENT_H_
    3737
    3838#include <abi/ipc/event.h>
    3939#include <libarch/types.h>
    4040
    41 extern int event_subscribe(event_type_t, sysarg_t);
    42 extern int event_task_subscribe(event_task_type_t, sysarg_t);
    43 extern int event_unmask(event_type_t);
    44 extern int event_task_unmask(event_task_type_t);
     41extern int ipc_event_subscribe(event_type_t, sysarg_t);
     42extern int ipc_event_task_subscribe(event_task_type_t, sysarg_t);
     43extern int ipc_event_unsubscribe(event_type_t);
     44extern int ipc_event_task_unsubscribe(event_task_type_t);
     45extern int ipc_event_unmask(event_type_t);
     46extern int ipc_event_task_unmask(event_task_type_t);
    4547
    4648#endif
Note: See TracChangeset for help on using the changeset viewer.