X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fmware%2Fevent.c;h=489014dbc1f73ff76e3a6e637bcccc2f1cfdb48c;hb=a0ba2de64a3964445b392a269ac820c03c5b8385;hp=c596e12fa4d591d3af461cf404997e94ff892f77;hpb=b3fe69febaf2e2e41937b0f0e0dfad9b5fcbc3a5;p=bertos.git diff --git a/bertos/mware/event.c b/bertos/mware/event.c index c596e12f..489014db 100644 --- a/bertos/mware/event.c +++ b/bertos/mware/event.c @@ -32,26 +32,48 @@ * * \brief Events handling implementation * - * \version $Id$ * * \author Giovanni Bajo */ #include "event.h" +#include "cfg/cfg_signal.h" +#include "cfg/cfg_timer.h" void event_hook_ignore(UNUSED_ARG(Event *, e)) { } -#if defined(CONFIG_KERN_SIGNALS) && CONFIG_KERN_SIGNALS +#if CONFIG_KERN_SIGNALS void event_hook_signal(Event *e) { sig_post((e)->Ev.Sig.sig_proc, (e)->Ev.Sig.sig_bit); } + +void event_hook_generic_signal(Event *e) +{ + sig_postSignal(&e->Ev.SigGen.sig, + e->Ev.SigGen.sig_proc, + EVENT_GENERIC_SIGNAL); +} #endif void event_hook_softint(Event *e) { e->Ev.Int.func(e->Ev.Int.user_data); } + +void event_hook_generic(Event *e) +{ + e->Ev.Gen.completed = true; + MEMORY_BARRIER; +} + +#if CONFIG_TIMER_EVENTS +void event_hook_generic_timeout(Event *e) +{ + e->Ev.Gen.completed = true; + MEMORY_BARRIER; +} +#endif