Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ipc/event.h

    r228e490 rc2cf033  
    3636#define KERN_EVENT_H_
    3737
    38 #include <ipc/event_types.h>
     38#include <abi/ipc/event.h>
    3939#include <typedefs.h>
    4040#include <synch/spinlock.h>
    4141#include <ipc/ipc.h>
     42
     43struct task;
     44
     45typedef void (*event_callback_t)(void *);
    4246
    4347/** Event notification structure. */
     
    5155        /** Counter. */
    5256        size_t counter;
     57       
     58        /** Masked flag. */
     59        bool masked;
     60        /** Unmask callback. */
     61        event_callback_t unmask_callback;
    5362} event_t;
    5463
    5564extern void event_init(void);
     65extern void event_task_init(struct task *);
     66extern void event_cleanup_answerbox(answerbox_t *);
     67extern void event_set_unmask_callback(event_type_t, event_callback_t);
     68extern void event_task_set_unmask_callback(struct task *, event_task_type_t,
     69    event_callback_t);
     70
     71#define event_notify_0(e, m) \
     72        event_notify((e), (m), 0, 0, 0, 0, 0)
     73#define event_notify_1(e, m, a1) \
     74        event_notify((e), (m), (a1), 0, 0, 0, 0)
     75#define event_notify_2(e, m, a1, a2) \
     76        event_notify((e), (m), (a1), (a2), 0, 0, 0)
     77#define event_notify_3(e, m, a1, a2, a3) \
     78        event_notify((e), (m), (a1), (a2), (a3), 0, 0)
     79#define event_notify_4(e, m, a1, a2, a3, a4) \
     80        event_notify((e), (m), (a1), (a2), (a3), (a4), 0)
     81#define event_notify_5(e, m, a1, a2, a3, a4, a5) \
     82        event_notify((e), (m), (a1), (a2), (a3), (a4), (a5))
     83
     84#define event_task_notify_0(t, e, m) \
     85        event_task_notify((t), (e), (m), 0, 0, 0, 0, 0)
     86#define event_task_notify_1(t, e, m, a1) \
     87        event_task_notify((t), (e), (m), (a1), 0, 0, 0, 0)
     88#define event_task_notify_2(t, e, m, a1, a2) \
     89        event_task_notify((t), (e), (m), (a1), (a2), 0, 0, 0)
     90#define event_task_notify_3(t, e, m, a1, a2, a3) \
     91        event_task_notify((t), (e), (m), (a1), (a2), (a3), 0, 0)
     92#define event_task_notify_4(t, e, m, a1, a2, a3, a4) \
     93        event_task_notify((t), (e), (m), (a1), (a2), (a3), (a4), 0)
     94#define event_task_notify_5(t, e, m, a1, a2, a3, a4, a5) \
     95        event_task_notify((t), (e), (m), (a1), (a2), (a3), (a4), (a5))
     96
     97extern int event_notify(event_type_t, bool, sysarg_t, sysarg_t, sysarg_t,
     98    sysarg_t, sysarg_t);
     99extern int event_task_notify(struct task *, event_task_type_t, bool, sysarg_t, sysarg_t,
     100    sysarg_t, sysarg_t, sysarg_t);
     101
    56102extern sysarg_t sys_event_subscribe(sysarg_t, sysarg_t);
    57 extern bool event_is_subscribed(event_type_t);
    58 extern void event_cleanup_answerbox(answerbox_t *);
    59 
    60 #define event_notify_0(e) \
    61         event_notify((e), 0, 0, 0, 0, 0)
    62 #define event_notify_1(e, a1) \
    63         event_notify((e), (a1), 0, 0, 0, 0)
    64 #define event_notify_2(e, a1, a2) \
    65         event_notify((e), (a1), (a2), 0, 0, 0)
    66 #define event_notify_3(e, a1, a2, a3) \
    67         event_notify((e), (a1), (a2), (a3), 0, 0)
    68 #define event_notify_4(e, a1, a2, a3, a4) \
    69         event_notify((e), (a1), (a2), (a3), (a4), 0)
    70 #define event_notify_5(e, a1, a2, a3, a4, a5) \
    71         event_notify((e), (a1), (a2), (a3), (a4), (a5))
    72 
    73 extern void event_notify(event_type_t, sysarg_t, sysarg_t, sysarg_t,
    74     sysarg_t, sysarg_t);
     103extern sysarg_t sys_event_unmask(sysarg_t);
    75104
    76105#endif
Note: See TracChangeset for help on using the changeset viewer.