feat: cleanup init code, small other refactors
This commit is contained in:
@@ -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,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user