From b4b18e7a6947d79392d9a7adf0a0fc82652e16c2 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sat, 8 Jul 2023 22:04:37 -0300 Subject: [PATCH] term: getsize --- kernel-src/include/kernel/term.h | 1 + kernel-src/io/term.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/kernel-src/include/kernel/term.h b/kernel-src/include/kernel/term.h index 7e9ddfd7..06cbd1ca 100644 --- a/kernel-src/include/kernel/term.h +++ b/kernel-src/include/kernel/term.h @@ -4,5 +4,6 @@ void term_init(); void term_putchar(char c); void term_write(char *str, size_t count); +void term_getsize(size_t *x, size_t *y, size_t *fbx, size_t *fby); #endif diff --git a/kernel-src/io/term.c b/kernel-src/io/term.c index c8185149..0c5c7780 100644 --- a/kernel-src/io/term.c +++ b/kernel-src/io/term.c @@ -10,6 +10,7 @@ #include extern volatile struct limine_framebuffer_request fb_liminereq; +static size_t xs, ys, fbxs, fbys; // TODO make more efficient. works for now static void *internalalloc(size_t n) { @@ -28,6 +29,13 @@ void term_putchar(char c) { flanterm_write(term_ctx, &c, 1); } +void term_getsize(size_t *x, size_t *y, size_t *fbx, size_t *fby) { + *x = xs; + *y = ys; + *fbx = fbxs; + *fby = fbys; +} + void term_init() { __assert(fb_liminereq.response); __assert(fb_liminereq.response->framebuffer_count); @@ -41,5 +49,10 @@ void term_init() { NULL, NULL, NULL, &defaultbg, &defaultfg, NULL, NULL, NULL, 0, 0, 1, 1, 1, 0); + xs = term_ctx->cols; + ys = term_ctx->rows; + fbxs = fb->width; + fbys = fb->height; + __assert(term_ctx); }