From d8d17375291f89d37cad43df36c11d9c132e23be Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Thu, 20 May 2021 22:18:35 +0200 Subject: Added BGA driver and generic FB wrapper --- kernel/features/fb.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 kernel/features/fb.c (limited to 'kernel/features/fb.c') diff --git a/kernel/features/fb.c b/kernel/features/fb.c new file mode 100644 index 0000000..08d99df --- /dev/null +++ b/kernel/features/fb.c @@ -0,0 +1,32 @@ +// MIT License, Copyright (c) 2021 Marvin Borner + +#include +#include +#include +#include +#include +#include + +#define FB_SIZE (generic->height * generic->pitch) + +u32 fb_map_buffer(struct page_dir *dir, struct fb_generic *generic) +{ + struct memory_range r = + virtual_alloc(dir, memory_range_around((u32)generic->fb, FB_SIZE), MEMORY_USER); + return r.base; +} + +CLEAR void fb_protect(struct fb_generic *generic) +{ + physical_set_used(memory_range_around((u32)generic->fb, FB_SIZE)); +} + +CLEAR void fb_install(void) +{ + if (bga_available()) + bga_install(); + else if (multiboot_vbe()) + vbe_install(multiboot_vbe()); + else + panic("No framebuffer driver found!\n"); +} -- cgit v1.2.3