diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-11 08:10:55 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-11 08:10:55 +0100 |
| commit | 0a2760d8a5ce09ae77cfc097ece4100579164f9d (patch) | |
| tree | 38be73d31c13aa0ac3a7883dfd22cc2b8208dbb9 /dev/Boot/src/HEL | |
| parent | c6d9cc48540b380583fc2bb8fcfe59a9113d0e19 (diff) | |
Many AHCI improvements and IPC tweaks.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Boot/src/HEL')
| -rw-r--r-- | dev/Boot/src/HEL/AMD64/BootEFI.cc | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/dev/Boot/src/HEL/AMD64/BootEFI.cc b/dev/Boot/src/HEL/AMD64/BootEFI.cc index a0f4c05e..84a4a777 100644 --- a/dev/Boot/src/HEL/AMD64/BootEFI.cc +++ b/dev/Boot/src/HEL/AMD64/BootEFI.cc @@ -196,17 +196,8 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, // Update handover file specific table and phyiscal start field. //-------------------------------------------------------------// - handover_hdr->f_BitMapStart = nullptr; /* Start of bitmap. */ - handover_hdr->f_BitMapSize = kHandoverBitMapSz; /* Size of bitmap. */ - - while (BS->AllocatePool(EfiLoaderData, handover_hdr->f_BitMapSize, &handover_hdr->f_BitMapStart) != kEfiOk) - { - if (handover_hdr->f_BitMapStart) - { - BS->FreePool(handover_hdr->f_BitMapStart); - handover_hdr->f_BitMapStart = nullptr; - } - } + handover_hdr->f_BitMapStart = (VoidPtr)struct_ptr[kDefaultMemoryMap].VirtualStart; /* Start of bitmap. */ + handover_hdr->f_BitMapSize = struct_ptr[kDefaultMemoryMap].NumberOfPages * sizeof(UIntPtr); /* Size of bitmap. */ handover_hdr->f_FirmwareCustomTables[0] = (VoidPtr)BS; handover_hdr->f_FirmwareCustomTables[1] = (VoidPtr)ST; @@ -224,6 +215,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, { syschk_thread = new Boot::BootThread(reader_syschk.Blob()); syschk_thread->SetName("BootZ: System Recovery Check"); + syschk_thread->Start(handover_hdr, NO); } #ifndef __AHCI__ @@ -276,13 +268,11 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, // Assign to global 'kHandoverHeader'. - WideChar kernel_path[256U] = {0}; + WideChar kernel_path[256U] = L"neoskrnl.exe"; UInt32 kernel_path_sz = 256U; if (ST->RuntimeServices->GetVariable(L"/props/boot_path", kEfiGlobalNamespaceVarGUID, nullptr, &kernel_path_sz, kernel_path) != kEfiOk) { - CopyMem(kernel_path, L"neoskrnl.exe", 13); - UInt32 attr = 0x00000001 | 0x00000002 | 0x00000004; ST->RuntimeServices->SetVariable(L"/props/boot_path", kEfiGlobalNamespaceVarGUID, &attr, &kernel_path_sz, kernel_path); } |
