Home | History | Annotate | Download | only in el3_runtime

Lines Matching refs:event

10 #define __pubsub_start_sym(event)	__pubsub_##event##_start
11 #define __pubsub_end_sym(event) __pubsub_##event##_end
17 #define __pubsub_section(event) __pubsub_##event
21 * contexts. In linker context, this collects pubsub sections for each event,
24 #define REGISTER_PUBSUB_EVENT(event) \
25 __pubsub_start_sym(event) = .; \
26 KEEP(*(__pubsub_section(event))); \
27 __pubsub_end_sym(event) = .
38 #define __pubsub_section(event) __section("__pubsub_" #event)
41 * In compiler context, REGISTER_PUBSUB_EVENT declares the per-event symbols
44 #define REGISTER_PUBSUB_EVENT(event) \
45 extern pubsub_cb_t __pubsub_start_sym(event)[]; \
46 extern pubsub_cb_t __pubsub_end_sym(event)[]
49 * Have the function func called back when the specified event happens. This
53 #define SUBSCRIBE_TO_EVENT(event, func) \
54 pubsub_cb_t __cb_func_##func##event __pubsub_section(event) = func
57 * Iterate over subscribed handlers for a defined event. 'event' is the name of
58 * the event, and 'subscriber' a local variable of type 'pubsub_cb_t *'.
60 #define for_each_subscriber(event, subscriber) \
61 for (subscriber = __pubsub_start_sym(event); \
62 subscriber < __pubsub_end_sym(event); \
66 * Publish a defined event supplying an argument. All subscribed handlers are
69 #define PUBLISH_EVENT_ARG(event, arg) \
72 for_each_subscriber(event, subscriber) { \
77 /* Publish a defined event with NULL argument */
78 #define PUBLISH_EVENT(event) PUBLISH_EVENT_ARG(event, NULL)