diff options
Diffstat (limited to 'dev/BootLoader/Modules')
| -rw-r--r-- | dev/BootLoader/Modules/NetBoot/Module.cc | 2 | ||||
| -rw-r--r-- | dev/BootLoader/Modules/NetBoot/build.json | 2 | ||||
| -rw-r--r-- | dev/BootLoader/Modules/SysChk/Module.cc | 33 |
3 files changed, 31 insertions, 6 deletions
diff --git a/dev/BootLoader/Modules/NetBoot/Module.cc b/dev/BootLoader/Modules/NetBoot/Module.cc index 1b4a4bb4..6277da70 100644 --- a/dev/BootLoader/Modules/NetBoot/Module.cc +++ b/dev/BootLoader/Modules/NetBoot/Module.cc @@ -10,7 +10,7 @@ #include <NetBoot.h> #include <BootKit/BootKit.h> -EXTERN_C Int32 main(Kernel::HEL::BootInfoHeader* Handover) +EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* Handover) { return kEfiOk; } diff --git a/dev/BootLoader/Modules/NetBoot/build.json b/dev/BootLoader/Modules/NetBoot/build.json index 3844f9cb..9df27b3c 100644 --- a/dev/BootLoader/Modules/NetBoot/build.json +++ b/dev/BootLoader/Modules/NetBoot/build.json @@ -11,7 +11,7 @@ "-fPIC", "-fno-rtti", "-fno-exceptions", - "-Wl,--subsystem=17,--image-base,0x1000000" + "-Wl,--subsystem=17,--image-base,0x10000000,-e,ModuleMain" ], "cpp_macros": [ "__MINOSKRNL__", diff --git a/dev/BootLoader/Modules/SysChk/Module.cc b/dev/BootLoader/Modules/SysChk/Module.cc index b0808fde..28b89859 100644 --- a/dev/BootLoader/Modules/SysChk/Module.cc +++ b/dev/BootLoader/Modules/SysChk/Module.cc @@ -8,15 +8,40 @@ */ #include <BootKit/BootKit.h> +#include <Modules/GfxMgr/FBMgr.h> +#include <Modules/GfxMgr/TextMgr.h> +#include <FirmwareKit/EFI.h> +#include <FirmwareKit/EFI/API.h> +#include <FirmwareKit/Handover.h> +#include <KernelKit/MSDOS.h> +#include <KernelKit/PE.h> +#include <KernelKit/PEF.h> +#include <NewKit/Macros.h> +#include <NewKit/Ref.h> +#include <BootKit/Thread.h> +#include <Modules/GfxMgr/FBMgr.h> EXTERN_C Int32 ModuleMain(Kernel::HEL::BootInfoHeader* Handover) { EfiSystemTable* system_table = (EfiSystemTable*)Handover->f_FirmwareCustomTables[1]; - system_table->ConOut->ClearScreen(system_table->ConOut); + EfiInputKey key{}; - system_table->ConOut->OutputString(system_table->ConOut, L"SYSCHK: CHECKING FOR VALID NEFS OR HPFS PARTITIONS...\r\n"); - system_table->ConOut->OutputString(system_table->ConOut, L"SYSCHK: GOOD TO GO!\r\n"); + system_table->ConIn->ReadKeyStroke(system_table->ConIn, &key); - return kEfiOk; + if (key.UnicodeChar == 'F' || + key.UnicodeChar == 'f') + { + UI::ui_draw_background(); + + fb_init(); + + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + + fb_fini(); + + return kEfiOk; + } + + return kEfiFail; } |
