forked from lolo859/vystem
47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
// SPDX-License-Identifier: MPL-2.0
|
|
#ifndef SH_LIB_CONF_H
|
|
#define SH_LIB_CONF_H
|
|
#include "std/type.h"
|
|
#include "std/status.h"
|
|
#include "memory/page.h"
|
|
#include "memory/vmem_layout.h"
|
|
#include "devs/devs.h"
|
|
#define SH_CONF_BOOT_CONFIG_VA SH_VMEM_LAYOUT_BOOT_CONFIG_VA
|
|
// Framebuffer configuration
|
|
typedef struct __attribute__((aligned(8))) {
|
|
sh_bool fb_present;
|
|
sh_page_VIRTUAL_ADDRESS fb_pa;
|
|
sh_uint32 white_pixel_value;
|
|
sh_uint32 gray_pixel_value;
|
|
sh_uint64 size_in_bytes;
|
|
sh_uint32 fb_height;
|
|
sh_uint32 fb_width;
|
|
sh_uint16 text_x;
|
|
sh_uint16 text_y;
|
|
sh_uint16 text_width;
|
|
sh_uint16 text_height;
|
|
} sh_conf_FB_CONFIG;
|
|
// Boot config structure.
|
|
typedef struct __attribute__((aligned(8))) {
|
|
sh_uint8 sig_start[8];
|
|
sh_uint8 log_level;
|
|
sh_uint16 page_table_allocator_level;
|
|
sh_page_PHYSICAL_ADDRESS page_table_pool_pa;
|
|
sh_page_VIRTUAL_ADDRESS page_table_pool_va;
|
|
sh_bool test_benchmark;
|
|
sh_uint64 bench_iterations;
|
|
sh_bool log_disable_serial_port;
|
|
sh_bool disable_serial_port;
|
|
sh_uint16 log_ring_size;
|
|
sh_uint64 acpi_rsdp;
|
|
sh_uint8 acpi_ver;
|
|
sh_uint16 kbd_events_queue_capacity;
|
|
sh_conf_FB_CONFIG fb_config;
|
|
sh_uint8 sig_end[8];
|
|
} sh_conf_BOOT_CONFIG;
|
|
// Check and create boot config structure.
|
|
SH_STATUS sh_conf_get_boot_config(sh_conf_BOOT_CONFIG **config);
|
|
// Parse a configuration DevS query
|
|
SH_STATUS sh_conf_devs_query(char *sub_path,sh_devs_RESULT *result);
|
|
#endif
|