Finish moving global variables into classes
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 34s
Builds / ExectOS (amd64, release) (push) Successful in 33s
Builds / ExectOS (i686, debug) (push) Successful in 29s
Builds / ExectOS (i686, release) (push) Successful in 27s

This commit is contained in:
2025-09-22 09:56:58 +02:00
parent 7791ca13e2
commit ed293c7e61
15 changed files with 275 additions and 719 deletions

60
xtldr/data.cc Normal file
View File

@@ -0,0 +1,60 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtldr/data.cc
* DESCRIPTION: XT Boot Loader global and static data
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
* Aiken Harris <harraiken91@gmail.com>
*/
#include <xtldr.hh>
/* XT Boot Loader menu list */
PLIST_ENTRY Configuration::BootMenuList = NULLPTR;
/* XT Boot Loader configuration list */
LIST_ENTRY Configuration::Config;
/* XT Boot Loader loaded configuration */
LIST_ENTRY Configuration::ConfigSections;
/* List of user-editable boot options */
PCWSTR Configuration::EditableConfigOptions[] = {
L"BootModules", L"SystemType", L"SystemPath",
L"KernelFile", L"InitrdFile", L"HalFile",
L"Parameters", NULLPTR
};
/* XT Boot Loader serial ports list */
ULONG Debug::ComPortList[COMPORT_COUNT] = COMPORT_ADDRESS;
/* A list of enabled debug ports */
ULONG Debug::EnabledDebugPorts;
/* XT Boot Loader serial port handle */
CPPORT Debug::SerialPort;
/* XT Boot Loader registered boot protocol list */
LIST_ENTRY Protocol::BootProtocols;
/* XT Boot Loader protocol */
XTBL_LOADER_PROTOCOL Protocol::LoaderProtocol;
/* XT Boot Loader loaded modules list */
LIST_ENTRY Protocol::LoadedModules;
/* List of available block devices */
LIST_ENTRY Volume::EfiBlockDevices;
/* Pointer to the boot menu callback routine */
PBL_XT_BOOT_MENU XtLoader::BootMenu = NULLPTR;
/* EFI Image Handle */
EFI_HANDLE XtLoader::EfiImageHandle;
/* EFI System Table */
PEFI_SYSTEM_TABLE XtLoader::EfiSystemTable;
/* XT Boot Loader status data */
XTBL_STATUS XtLoader::LoaderStatus = {0};