Lines Matching full:event
13 #define __pubsub_start_sym(event) __pubsub_##event##_start argument
14 #define __pubsub_end_sym(event) __pubsub_##event##_end argument
15 #define __pubsub_section(event) __pubsub_##event argument
19 * contexts. In linker context, this collects pubsub sections for each event,
23 #define REGISTER_PUBSUB_EVENT(event) \ argument
24 __pubsub_start_sym(event) +0 FIXED \
26 *(__pubsub_section(event)) \
28 __pubsub_end_sym(event) +0 FIXED EMPTY 0 \
33 #define REGISTER_PUBSUB_EVENT(event) \ argument
34 __pubsub_start_sym(event) = .; \
35 KEEP(*(__pubsub_section(event))); \
36 __pubsub_end_sym(event) = .
50 #define __pubsub_start_sym(event) Load$$__pubsub_##event##_start$$Base argument
51 #define __pubsub_end_sym(event) Load$$__pubsub_##event##_end$$Base argument
53 #define __pubsub_start_sym(event) __pubsub_##event##_start argument
54 #define __pubsub_end_sym(event) __pubsub_##event##_end argument
57 #define __pubsub_section(event) __section("__pubsub_" #event) argument
60 * In compiler context, REGISTER_PUBSUB_EVENT declares the per-event symbols
63 #define REGISTER_PUBSUB_EVENT(event) \ argument
64 extern pubsub_cb_t __pubsub_start_sym(event)[]; \
65 extern pubsub_cb_t __pubsub_end_sym(event)[]
68 * Have the function func called back when the specified event happens. This
74 #define SUBSCRIBE_TO_EVENT(event, func) \ argument
75 extern pubsub_cb_t __cb_func_##func##event __pubsub_section(event); \
76 pubsub_cb_t __cb_func_##func##event __pubsub_section(event) = (func)
79 * Iterate over subscribed handlers for a defined event. 'event' is the name of
80 * the event, and 'subscriber' a local variable of type 'pubsub_cb_t *'.
82 #define for_each_subscriber(event, subscriber) \ argument
83 for (subscriber = __pubsub_start_sym(event); \
84 subscriber < __pubsub_end_sym(event); \
88 * Publish a defined event supplying an argument. All subscribed handlers are
91 #define PUBLISH_EVENT_ARG(event, arg) \ argument
94 for_each_subscriber(event, subscriber) { \
99 /* Publish a defined event with NULL argument */
100 #define PUBLISH_EVENT(event) PUBLISH_EVENT_ARG(event, NULL) argument