feat: cleanup init code, small other refactors

This commit is contained in:
2021-09-01 21:43:21 +02:00
parent e693b12915
commit 073051c99e
21 changed files with 118 additions and 76 deletions

View File

@@ -9,12 +9,13 @@
#include <myke/libk/kprint.h>
#include <myke/tasks/task.h>
#include <myke/util/stream.h>
#include <myke/util/init.h>
#define MAX_HANDLERS 8
#define STREAM_SIZE (32*1024)
#define PRINT_BUFFER_SIZE 64
stream_t *kprint_stream;
stream_t *kprint_stream = NULL;
kprint_handler handlers[MAX_HANDLERS] = {0};
@@ -29,7 +30,11 @@ void kprint_register(kprint_handler handler) {
}
void kprint(const char *msg) {
stream_write(kprint_stream, (const uint8_t *) msg, strlen(msg));
if (kprint_stream == NULL) {
kprint_sync(msg);
} else {
stream_write(kprint_stream, (const uint8_t *) msg, strlen(msg));
}
}
void kprint_internal(const char *msg) {
@@ -65,4 +70,10 @@ void att_noreturn kprint_task(void *_) {
void kprint_start_task() {
task_spawn(kprint_task, NULL, "kprint");
}
}
INIT_FUNCTION(100) = {
.name = "kprint-task",
.stage = INIT_STAGE_PRE_TASKING,
.init = kprint_start_task,
};