Add the beginning of support for kernel graphics to bootloader.
* Load a font file off disk to pass to kernel * Expose a framebuffer to the kernel * Currently the kernel just paints the screen red
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include <efi.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef KERNEL_PHYS_ADDRESS
|
||||
#define KERNEL_PHYS_ADDRESS 0x100000
|
||||
@@ -13,8 +14,12 @@
|
||||
#define KERNEL_MEMTYPE 0x80000000
|
||||
#endif
|
||||
|
||||
#ifndef KERNEL_FONT_MEMTYPE
|
||||
#define KERNEL_FONT_MEMTYPE 0x80000001
|
||||
#endif
|
||||
|
||||
#ifndef KERNEL_DATA_MEMTYPE
|
||||
#define KERNEL_DATA_MEMTYPE 0x80000001
|
||||
#define KERNEL_DATA_MEMTYPE 0x80000002
|
||||
#endif
|
||||
|
||||
#ifndef KERNEL_DATA_PAGES
|
||||
@@ -25,9 +30,19 @@
|
||||
#define KERNEL_FILENAME L"kernel.bin"
|
||||
#endif
|
||||
|
||||
EFI_STATUS loader_load_kernel(
|
||||
EFI_BOOT_SERVICES *bootsvc,
|
||||
void **kernel_image,
|
||||
uint64_t *kernel_length,
|
||||
void **kernel_data,
|
||||
uint64_t *data_length);
|
||||
#ifndef KERNEL_FONT
|
||||
#define KERNEL_FONT L"screenfont.psf"
|
||||
#endif
|
||||
|
||||
struct loader_data {
|
||||
void *kernel_image;
|
||||
size_t kernel_image_length;
|
||||
|
||||
void *kernel_data;
|
||||
size_t kernel_data_length;
|
||||
|
||||
void *screen_font;
|
||||
size_t screen_font_length;
|
||||
};
|
||||
|
||||
EFI_STATUS loader_load_kernel(EFI_BOOT_SERVICES *bootsvc, struct loader_data *data);
|
||||
|
||||
Reference in New Issue
Block a user