Remove first load option for non-osx boot.

This commit is contained in:
jief666 2021-03-22 21:02:19 +03:00
parent 829fd040dc
commit 8ccbf5780a

View File

@ -205,7 +205,7 @@ bailout:
static EFI_STATUS StartEFILoadedImage(IN EFI_HANDLE ChildImageHandle, static EFI_STATUS StartEFILoadedImage(IN EFI_HANDLE ChildImageHandle,
IN CONST XString8Array& LoadOptions, IN CONST CHAR16 *LoadOptionsPrefix, IN CONST XString8Array& LoadOptions, IN CONST XStringW& LoadOptionsPrefix,
IN CONST XStringW& ImageTitle, IN CONST XStringW& ImageTitle,
OUT UINTN *ErrorInStep) OUT UINTN *ErrorInStep)
{ {
@ -234,10 +234,10 @@ static EFI_STATUS StartEFILoadedImage(IN EFI_HANDLE ChildImageHandle,
goto bailout_unload; goto bailout_unload;
} }
if (LoadOptionsPrefix != NULL) { if ( LoadOptionsPrefix.notEmpty() ) {
// NOTE: That last space is also added by the EFI shell and seems to be significant // NOTE: That last space is also added by the EFI shell and seems to be significant
// when passing options to Apple's boot.efi... // when passing options to Apple's boot.efi...
loadOptionsW = SWPrintf("%ls %s ", LoadOptionsPrefix, LoadOptions.ConcatAll(" "_XS8).c_str()); loadOptionsW = SWPrintf("%ls %s ", LoadOptionsPrefix.wc_str(), LoadOptions.ConcatAll(" "_XS8).c_str());
}else{ }else{
loadOptionsW = SWPrintf("%s ", LoadOptions.ConcatAll(" "_XS8).c_str()); // Jief : should we add a space ? Wasn't the case before big refactoring. Yes, a space required. loadOptionsW = SWPrintf("%s ", LoadOptions.ConcatAll(" "_XS8).c_str()); // Jief : should we add a space ? Wasn't the case before big refactoring. Yes, a space required.
} }
@ -318,7 +318,7 @@ static EFI_STATUS LoadEFIImage(IN EFI_DEVICE_PATH *DevicePath,
static EFI_STATUS StartEFIImage(IN EFI_DEVICE_PATH *DevicePath, static EFI_STATUS StartEFIImage(IN EFI_DEVICE_PATH *DevicePath,
IN CONST XString8Array& LoadOptions, IN CONST CHAR16 *LoadOptionsPrefix, IN CONST XString8Array& LoadOptions, IN CONST XStringW& LoadOptionsPrefix,
IN CONST XStringW& ImageTitle, IN CONST XStringW& ImageTitle,
OUT UINTN *ErrorInStep, OUT UINTN *ErrorInStep,
OUT EFI_HANDLE *NewImageHandle) OUT EFI_HANDLE *NewImageHandle)
@ -1594,7 +1594,7 @@ void LOADER_ENTRY::StartLoader()
// Basename(LoaderPath), Basename(LoaderPath), NULL, NULL); // Basename(LoaderPath), Basename(LoaderPath), NULL, NULL);
// DBG("StartEFILoadedImage\n"); // DBG("StartEFILoadedImage\n");
StartEFILoadedImage(ImageHandle, LoadOptions, Basename(LoaderPath.wc_str()), LoaderPath.basename(), NULL); StartEFILoadedImage(ImageHandle, LoadOptions, NullXStringW, LoaderPath.basename(), NULL);
} }
// Unlock boot screen // Unlock boot screen
if (EFI_ERROR(Status = UnlockBootScreen())) { if (EFI_ERROR(Status = UnlockBootScreen())) {
@ -1677,7 +1677,7 @@ void REFIT_MENU_ENTRY_LOADER_TOOL::StartTool()
egClearScreen(&MenuBackgroundPixel); egClearScreen(&MenuBackgroundPixel);
// assumes "Start <title>" as assigned below // assumes "Start <title>" as assigned below
BeginExternalScreen(OSFLAG_ISSET(Flags, OSFLAG_USEGRAPHICS)/*, &Entry->Title[6]*/); // Shouldn't we check that length of Title is at least 6 ? BeginExternalScreen(OSFLAG_ISSET(Flags, OSFLAG_USEGRAPHICS)/*, &Entry->Title[6]*/); // Shouldn't we check that length of Title is at least 6 ?
StartEFIImage(DevicePath, LoadOptions, Basename(LoaderPath.wc_str()), LoaderPath.basename(), NULL, NULL); StartEFIImage(DevicePath, LoadOptions, LoaderPath.basename(), LoaderPath.basename(), NULL, NULL);
FinishExternalScreen(); FinishExternalScreen();
} }
@ -1776,7 +1776,7 @@ static void ScanDriverDir(IN CONST CHAR16 *Path, OUT EFI_HANDLE **DriversToConne
#undef BOOLEAN_AT_INDEX #undef BOOLEAN_AT_INDEX
XStringW FileName = SWPrintf("%ls\\%ls\\%ls", self.getCloverDirFullPath().wc_str(), Path, DirEntry->FileName); XStringW FileName = SWPrintf("%ls\\%ls\\%ls", self.getCloverDirFullPath().wc_str(), Path, DirEntry->FileName);
Status = StartEFIImage(FileDevicePath(self.getSelfLoadedImage().DeviceHandle, FileName), NullXString8Array, DirEntry->FileName, XStringW().takeValueFrom(DirEntry->FileName), NULL, &DriverHandle); Status = StartEFIImage(FileDevicePath(self.getSelfLoadedImage().DeviceHandle, FileName), NullXString8Array, LStringW(DirEntry->FileName), XStringW().takeValueFrom(DirEntry->FileName), NULL, &DriverHandle);
if (EFI_ERROR(Status)) { if (EFI_ERROR(Status)) {
continue; continue;
} }