32 #ifndef PIOS_INITCALL_H
33 #define PIOS_INITCALL_H
46 #define MODULE_INITCALL(ifn, sfn) \
47 static void _add_init_fn(void) __attribute__((constructor)); \
48 static void _add_init_fn(void) { \
49 __module_initcall_end->fn_minit = (ifn); \
50 __module_initcall_end->fn_tinit = (sfn); \
51 __module_initcall_end++; \
54 #define MODULE_HIPRI_INITCALL(ifn, sfn) \
55 static void _add_init_fn(void) __attribute__((constructor)); \
56 static void _add_init_fn(void) { \
57 __module_hipriinitcall_end->fn_minit = (ifn); \
58 __module_hipriinitcall_end->fn_tinit = (sfn); \
59 __module_hipriinitcall_end++; \
62 #define MODULE_INITSYSTEM_DECLS \
63 static initmodule_t __module_initcalls[256]; \
64 static initmodule_t __module_hipriinitcalls[256]; \
65 initmodule_t *__module_initcall_start = __module_initcalls; \
66 initmodule_t *__module_initcall_end = __module_initcalls; \
67 initmodule_t *__module_hipriinitcall_start = __module_hipriinitcalls; \
68 initmodule_t *__module_hipriinitcall_end = __module_hipriinitcalls;
70 #define MODULE_INITIALISE_ALL(wdgfn) { \
71 for (initmodule_t *fn = __module_hipriinitcall_start; fn < __module_hipriinitcall_end; fn++) { \
76 for (initmodule_t *fn = __module_initcall_start; fn < __module_initcall_end; fn++) { \
83 #define MODULE_TASKCREATE_ALL { \
84 for (initmodule_t *fn = __module_hipriinitcall_start; fn < __module_hipriinitcall_end; fn++) { \
88 for (initmodule_t *fn = __module_initcall_start; fn < __module_initcall_end; fn++) { \
initmodule_t __module_initcall_start[]
initmodule_t * __module_hipriinitcall_end
int32_t(* initcall_t)(void)
initmodule_t * __module_hipriinitcall_start
initmodule_t __module_initcall_end[]