21 lines
541 B
C
21 lines
541 B
C
//
|
|
// Created by rick on 13-08-21.
|
|
//
|
|
|
|
#include <myke/util/init.h>
|
|
#include <stdio.h>
|
|
|
|
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(enum init_stage stage) {
|
|
for (size_t i = 0; i < NUM_DRIVERS; ++i) {
|
|
if (DRIVER(i)->stage != stage) continue;
|
|
if (stage > INIT_STAGE_EARLY_BOOT_0) {
|
|
printf("init %s\n", DRIVER(i)->name);
|
|
}
|
|
DRIVER(i)->init();
|
|
}
|
|
} |