mirror of
https://github.com/sigmasternchen/seaboot
synced 2025-03-15 04:08:54 +00:00
changed structure; seperate types
This commit is contained in:
parent
20dab3655b
commit
325da7fe62
3 changed files with 35 additions and 28 deletions
|
@ -19,7 +19,7 @@ void intervalHandler() {
|
|||
fprintf(stderr, "interval count %d.\n", count);
|
||||
if (count > 4) {
|
||||
fprintf(stderr, "Provoking error.\n");
|
||||
boot.enableSignal(SHUTDOWN); // SHUTDOWN is not a signal
|
||||
boot.events.enableSignal(SHUTDOWN); // SHUTDOWN is not a signal
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,13 +29,13 @@ void init() {
|
|||
boot.mode = WAIT;
|
||||
boot.debug = true;
|
||||
|
||||
boot.addEventListener(SHUTDOWN, shutdownHandler);
|
||||
boot.addEventListener(SIGUSR1, eventHandler);
|
||||
boot.enableSignal(SIGUSR1);
|
||||
boot.events.addEventListener(SHUTDOWN, shutdownHandler);
|
||||
boot.events.addEventListener(SIGUSR1, eventHandler);
|
||||
boot.events.enableSignal(SIGUSR1);
|
||||
|
||||
timer_t timer = boot.createSignalTimer(SIGUSR1);
|
||||
boot.startTimer(timer, 5000);
|
||||
timer_t timer = boot.time.createSignalTimer(SIGUSR1);
|
||||
boot.time.startTimer(timer, 5000);
|
||||
|
||||
timer_t interval = boot.createThreadTimer(&intervalHandler);
|
||||
boot.startInterval(interval, 2000);
|
||||
timer_t interval = boot.time.createThreadTimer(&intervalHandler);
|
||||
boot.time.startInterval(interval, 2000);
|
||||
}
|
||||
|
|
|
@ -46,23 +46,22 @@ static void* allocate(size_t);
|
|||
static void* reallocate(void*, size_t);
|
||||
|
||||
struct boot boot = {
|
||||
.addEventListener = addEventListener,
|
||||
.removeEventListener = removeEventListener,
|
||||
.enableSignal = enableSignal,
|
||||
.disableSignal = disableSignal,
|
||||
.events.addEventListener = addEventListener,
|
||||
.events.removeEventListener = removeEventListener,
|
||||
.events.enableSignal = enableSignal,
|
||||
.events.disableSignal = disableSignal,
|
||||
|
||||
.getRealTime = getRealTime,
|
||||
.getRelativeTime = getRelativeTime,
|
||||
.getProcessTime = getProcessTime,
|
||||
.getThreadTime = getThreadTime,
|
||||
.timer = timer,
|
||||
|
||||
.createSignalTimer = createSignalTimer,
|
||||
.createThreadTimer = createThreadTimer,
|
||||
.startTimer = startTimer,
|
||||
.startInterval = startInterval,
|
||||
.stopTimer = stopTimer,
|
||||
.deleteTimer = deleteTimer,
|
||||
.time.getRealTime = getRealTime,
|
||||
.time.getRelativeTime = getRelativeTime,
|
||||
.time.getProcessTime = getProcessTime,
|
||||
.time.getThreadTime = getThreadTime,
|
||||
.time.timer = timer,
|
||||
.time.createSignalTimer = createSignalTimer,
|
||||
.time.createThreadTimer = createThreadTimer,
|
||||
.time.startTimer = startTimer,
|
||||
.time.startInterval = startInterval,
|
||||
.time.stopTimer = stopTimer,
|
||||
.time.deleteTimer = deleteTimer,
|
||||
|
||||
.allocate = allocate,
|
||||
.reallocate = reallocate,
|
||||
|
@ -200,7 +199,7 @@ nstime_t timer(void (*function)(void)) {
|
|||
return end - start;
|
||||
}
|
||||
|
||||
void timerHandler(union sigval target) {
|
||||
static void timerHandler(union sigval target) {
|
||||
debug("Timer handler: Starting target.\n");
|
||||
((void (*)(void))(target.sival_ptr))();
|
||||
}
|
||||
|
|
|
@ -65,14 +65,14 @@ typedef void (*eventListener_t)(event_t);
|
|||
typedef void (*init_t)(void);
|
||||
typedef void (*loop_t)(nstime_t);
|
||||
|
||||
extern struct boot {
|
||||
init_t init;
|
||||
loop_t loop;
|
||||
struct events {
|
||||
bool (*addEventListener)(event_t, eventListener_t);
|
||||
bool (*removeEventListener)(event_t, eventListener_t);
|
||||
bool (*enableSignal)(event_t);
|
||||
bool (*disableSignal)(event_t);
|
||||
};
|
||||
|
||||
struct time {
|
||||
nstime_t (*getRealTime)(void);
|
||||
nstime_t (*getRelativeTime)(void);
|
||||
nstime_t (*getProcessTime)(void);
|
||||
|
@ -85,6 +85,14 @@ extern struct boot {
|
|||
void (*startInterval)(timer_t, unsigned long);
|
||||
void (*stopTimer)(timer_t);
|
||||
void (*deleteTimer)(timer_t);
|
||||
};
|
||||
|
||||
extern struct boot {
|
||||
init_t init;
|
||||
loop_t loop;
|
||||
|
||||
struct events events;
|
||||
struct time time;
|
||||
|
||||
void* (*allocate)(size_t);
|
||||
void* (*reallocate)(void*, size_t);
|
||||
|
|
Loading…
Reference in a new issue