-/*! Trigger an event */
-#define DOEVENT(e) \
-do { \
- if ((e)->action == EVENT_SIGNAL) \
- sig_signal((e)->Ev.Sig.sig_proc, (e)->Sig.sig_bit); \
- else if ((e)->action == EVENT_SOFTINT) \
- (e)->Ev.Int.func((e)->Ev.Int.user_data); \
-} while (0)
-
-/*! Trigger an event (to be used inside interrupts) */
-#define DOEVENT_INTR(e) \
-do { \
- if ((e)->action == EVENT_SIGNAL) \
- _sig_signal((e)->Ev.Sig.sig_proc, (e)->Ev.Sig.sig_bit); \
- else if ((e)->action == EVENT_SOFTINT) \
- (e)->Ev.Int.func((e)->Ev.Int.user_data); \
-} while (0)
-
-#else /* !CONFIG_KERN_SIGNALS */
+/*! Same as event_initSignal(), but returns the initialized event */
+INLINE Event event_createSignal(struct Process* proc, sig_t bit)
+{
+ Event e;
+ e.action = EVENT_SIGNAL;
+ e.Ev.Sig.sig_proc = proc;
+ e.Ev.Sig.sig_bit = bit;
+ return e;
+}
+
+#endif