diff --git a/xtldr/includes/xtbl.h b/xtldr/includes/xtbl.h index 6c929ca..30a6bc3 100644 --- a/xtldr/includes/xtbl.h +++ b/xtldr/includes/xtbl.h @@ -74,11 +74,6 @@ BlGetVolumeDevicePath(IN PUCHAR SystemPath, OUT PEFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT PUCHAR *Path); -EFI_STATUS -BlGetXtLoaderProtocol(EFI_HANDLE ImageHandle, - PEFI_SYSTEM_TABLE SystemTable, - PXT_BOOT_LOADER_PROTOCOL *LoaderProtocol); - EFI_STATUS BlLoadEfiModules(); diff --git a/xtldr/modules/blproto.c b/xtldr/modules/blproto.c index 34f6dde..e99cca3 100644 --- a/xtldr/modules/blproto.c +++ b/xtldr/modules/blproto.c @@ -7,28 +7,18 @@ */ #include +#include /** * This routine locates and opens the XT boot loader protocol. * - * @param ImageHandle - * Firmware-allocated handle that identifies the image. - * - * @param SystemTable - * Provides the EFI system table. - * - * @param LoaderProtocol - * Supplies the address where a pointer to the bootloader protocol is returned. - * * @return This routine returns status code. * * @since XT 1.0 */ EFI_STATUS -BlGetXtLoaderProtocol(EFI_HANDLE ImageHandle, - PEFI_SYSTEM_TABLE SystemTable, - PXT_BOOT_LOADER_PROTOCOL *LoaderProtocol) +BlGetXtLoaderProtocol() { EFI_GUID Guid = XT_BOOT_LOADER_PROTOCOL_GUID; PEFI_HANDLE Handles = NULL; @@ -37,7 +27,7 @@ BlGetXtLoaderProtocol(EFI_HANDLE ImageHandle, UINT Index; /* Try to locate the handles */ - Status = SystemTable->BootServices->LocateHandleBuffer(ByProtocol, &Guid, NULL, &Count, &Handles); + Status = EfiSystemTable->BootServices->LocateHandleBuffer(ByProtocol, &Guid, NULL, &Count, &Handles); if(Status != STATUS_EFI_SUCCESS) { /* Unable to get handles */ @@ -51,23 +41,23 @@ BlGetXtLoaderProtocol(EFI_HANDLE ImageHandle, for(Index = 0; Index < Count; Index++) { /* Try to open protocol */ - Status = SystemTable->BootServices->OpenProtocol(Handles[Index], &Guid, (PVOID *)&LoaderProtocol, - ImageHandle, NULL, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL); + Status = EfiSystemTable->BootServices->OpenProtocol(Handles[Index], &Guid, (PVOID*)&EfiXtLdrProtocol, + EfiImageHandle, NULL, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL); /* Check if successfully opened the loader protocol */ if(Status == STATUS_EFI_SUCCESS) { - /* Protocol found */ + /* Protocol found and successfully opened */ break; } } } /* Free handles */ - SystemTable->BootServices->FreePool(Handles); + EfiSystemTable->BootServices->FreePool(Handles); /* Make sure the loaded protocol has been found */ - if(LoaderProtocol == NULL) + if(EfiXtLdrProtocol == NULL) { /* Protocol not found */ return STATUS_EFI_NOT_FOUND; diff --git a/xtldr/modules/dummy/dummy.c b/xtldr/modules/dummy/dummy.c index 071bb5d..b2f6d2c 100644 --- a/xtldr/modules/dummy/dummy.c +++ b/xtldr/modules/dummy/dummy.c @@ -7,6 +7,7 @@ */ #include +#include /* EFI Image Handle */ @@ -40,7 +41,7 @@ BlXtLoaderModuleMain(EFI_HANDLE ImageHandle, EfiSystemTable = SystemTable; /* Open the XTLDR protocol */ - BlGetXtLoaderProtocol(ImageHandle, SystemTable, &EfiXtLdrProtocol); + BlGetXtLoaderProtocol(); /* Print message and return success */ EfiXtLdrProtocol->EfiPrint(L"XTLDR dummy module initialized\n"); diff --git a/xtldr/xtldr.c b/xtldr/xtldr.c index 3bc6e80..e5b93ad 100644 --- a/xtldr/xtldr.c +++ b/xtldr/xtldr.c @@ -12,6 +12,9 @@ /* EFI Image Handle */ EFI_HANDLE EfiImageHandle; +/* XT Boot Loader protocol */ +XT_BOOT_LOADER_PROTOCOL EfiLdrProtocol; + /* EFI System Table */ PEFI_SYSTEM_TABLE EfiSystemTable; @@ -254,16 +257,15 @@ EFI_STATUS BlRegisterXtLoaderProtocol() { EFI_GUID Guid = XT_BOOT_LOADER_PROTOCOL_GUID; - XT_BOOT_LOADER_PROTOCOL LoaderProtocol; - EFI_HANDLE Handle; + EFI_HANDLE Handle = NULL; /* Set all routines available via loader protocol */ - LoaderProtocol.DbgPrint = BlDbgPrint; - LoaderProtocol.EfiPrint = BlEfiPrint; + EfiLdrProtocol.DbgPrint = BlDbgPrint; + EfiLdrProtocol.EfiPrint = BlEfiPrint; /* Register loader protocol */ BlDbgPrint(L"Registering XT loader protocol\n"); - return EfiSystemTable->BootServices->InstallProtocolInterface(&Handle, &Guid, EFI_NATIVE_INTERFACE, &LoaderProtocol); + return EfiSystemTable->BootServices->InstallProtocolInterface(&Handle, &Guid, EFI_NATIVE_INTERFACE, &EfiLdrProtocol); } /**