Files
my-os-project2/kernel/term/term.c
2025-11-15 00:26:55 +01:00

54 lines
978 B
C

#include "flanterm.h"
#include "flanterm_backends/fb.h"
#include "spinlock/spinlock.h"
#include "bootinfo/bootinfo.h"
#include "term/term.h"
#include "font.h"
Term TERM;
void term_doinit(void *addr) {
TERM.ftctx = flanterm_fb_init(
NULL, // malloc
NULL, // free
addr, // fb addr
BOOT_INFO.fb->width,
BOOT_INFO.fb->height,
BOOT_INFO.fb->pitch,
BOOT_INFO.fb->red_mask_size,
BOOT_INFO.fb->red_mask_shift,
BOOT_INFO.fb->green_mask_size,
BOOT_INFO.fb->green_mask_shift,
BOOT_INFO.fb->blue_mask_size,
BOOT_INFO.fb->blue_mask_shift,
NULL, // canvas
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
FLORI_F16,
8,
16,
0,
0,
0,
0
);
}
void term_init(void *addr) {
term_doinit(addr);
spinlock_init(&TERM.spinlock);
}
void term_write_unsafe(const char *s, size_t len) {
flanterm_write(TERM.ftctx, s, len);
}
// For printf library
void putchar_(char c) {
term_write_unsafe(&c, 1);
}