// // Created by rick on 13-08-21. // #include #include extern struct init __start_init[]; extern struct init __stop_init[]; #define NUM_DRIVERS ((size_t)(__stop_init - __start_init)) #define DRIVER(i) ((__start_init) + (i)) void init_execute_all() { for (size_t i = 0; i < NUM_DRIVERS; ++i) { printf("init %s\n", DRIVER(i)->name); DRIVER(i)->init(); } }