EFI_STATUS\r
EFIAPI\r
LegacyBootManagerLibConstructor (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
-)\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ )\r
{\r
EfiBootManagerRegisterLegacyBootSupport (\r
LegacyBmRefreshAllBootOption,\r
**/\r
UINT16\r
LegacyBmDeviceType (\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
)\r
{\r
- ASSERT ((DevicePathType (DevicePath) == BBS_DEVICE_PATH) &&\r
- (DevicePathSubType (DevicePath) == BBS_BBS_DP));\r
- return ((BBS_BBS_DEVICE_PATH *) DevicePath)->DeviceType;\r
+ ASSERT (\r
+ (DevicePathType (DevicePath) == BBS_DEVICE_PATH) &&\r
+ (DevicePathSubType (DevicePath) == BBS_BBS_DP)\r
+ );\r
+ return ((BBS_BBS_DEVICE_PATH *)DevicePath)->DeviceType;\r
}\r
\r
/**\r
**/\r
BOOLEAN\r
LegacyBmValidBbsEntry (\r
- IN BBS_TABLE *BbsEntry\r
+ IN BBS_TABLE *BbsEntry\r
)\r
{\r
switch (BbsEntry->BootPriority) {\r
**/\r
VOID\r
LegacyBmBuildLegacyDevNameString (\r
- IN BBS_TABLE *CurBBSEntry,\r
- IN UINTN Index,\r
- IN UINTN BufSize,\r
- OUT CHAR16 *BootString\r
+ IN BBS_TABLE *CurBBSEntry,\r
+ IN UINTN Index,\r
+ IN UINTN BufSize,\r
+ OUT CHAR16 *BootString\r
)\r
{\r
CHAR16 *Fmt;\r
CHAR16 StringBufferU[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
\r
switch (Index) {\r
- //\r
- // Primary Master\r
- //\r
- case 1:\r
- Fmt = L"Primary Master %s";\r
- break;\r
+ //\r
+ // Primary Master\r
+ //\r
+ case 1:\r
+ Fmt = L"Primary Master %s";\r
+ break;\r
\r
- //\r
- // Primary Slave\r
- //\r
- case 2:\r
- Fmt = L"Primary Slave %s";\r
- break;\r
+ //\r
+ // Primary Slave\r
+ //\r
+ case 2:\r
+ Fmt = L"Primary Slave %s";\r
+ break;\r
\r
- //\r
- // Secondary Master\r
- //\r
- case 3:\r
- Fmt = L"Secondary Master %s";\r
- break;\r
+ //\r
+ // Secondary Master\r
+ //\r
+ case 3:\r
+ Fmt = L"Secondary Master %s";\r
+ break;\r
\r
- //\r
- // Secondary Slave\r
- //\r
- case 4:\r
- Fmt = L"Secondary Slave %s";\r
- break;\r
+ //\r
+ // Secondary Slave\r
+ //\r
+ case 4:\r
+ Fmt = L"Secondary Slave %s";\r
+ break;\r
\r
- default:\r
- Fmt = L"%s";\r
- break;\r
+ default:\r
+ Fmt = L"%s";\r
+ break;\r
}\r
\r
switch (CurBBSEntry->DeviceType) {\r
- case BBS_FLOPPY:\r
- Type = L"Floppy";\r
- break;\r
-\r
- case BBS_HARDDISK:\r
- Type = L"Harddisk";\r
- break;\r
-\r
- case BBS_CDROM:\r
- Type = L"CDROM";\r
- break;\r
-\r
- case BBS_PCMCIA:\r
- Type = L"PCMCIAe";\r
- break;\r
-\r
- case BBS_USB:\r
- Type = L"USB";\r
- break;\r
-\r
- case BBS_EMBED_NETWORK:\r
- Type = L"Network";\r
- break;\r
-\r
- case BBS_BEV_DEVICE:\r
- Type = L"BEVe";\r
- break;\r
-\r
- case BBS_UNKNOWN:\r
- default:\r
- Type = L"Unknown";\r
- break;\r
+ case BBS_FLOPPY:\r
+ Type = L"Floppy";\r
+ break;\r
+\r
+ case BBS_HARDDISK:\r
+ Type = L"Harddisk";\r
+ break;\r
+\r
+ case BBS_CDROM:\r
+ Type = L"CDROM";\r
+ break;\r
+\r
+ case BBS_PCMCIA:\r
+ Type = L"PCMCIAe";\r
+ break;\r
+\r
+ case BBS_USB:\r
+ Type = L"USB";\r
+ break;\r
+\r
+ case BBS_EMBED_NETWORK:\r
+ Type = L"Network";\r
+ break;\r
+\r
+ case BBS_BEV_DEVICE:\r
+ Type = L"BEVe";\r
+ break;\r
+\r
+ case BBS_UNKNOWN:\r
+ default:\r
+ Type = L"Unknown";\r
+ break;\r
}\r
+\r
//\r
// If current BBS entry has its description then use it.\r
//\r
- StringDesc = (CHAR8 *) (((UINTN) CurBBSEntry->DescStringSegment << 4) + CurBBSEntry->DescStringOffset);\r
+ StringDesc = (CHAR8 *)(((UINTN)CurBBSEntry->DescStringSegment << 4) + CurBBSEntry->DescStringOffset);\r
if (NULL != StringDesc) {\r
//\r
// Only get first 32 characters, this is suggested by BBS spec\r
CopyMem (StringBufferA, StringDesc, LEGACY_BM_BOOT_DESCRIPTION_LENGTH);\r
StringBufferA[LEGACY_BM_BOOT_DESCRIPTION_LENGTH] = 0;\r
AsciiStrToUnicodeStrS (StringBufferA, StringBufferU, ARRAY_SIZE (StringBufferU));\r
- Fmt = L"%s";\r
- Type = StringBufferU;\r
+ Fmt = L"%s";\r
+ Type = StringBufferU;\r
}\r
\r
//\r
// BbsTable 16 entries are for onboard IDE.\r
// Set description string for SATA harddisks, Harddisk 0 ~ Harddisk 11\r
//\r
- if (Index >= 5 && Index <= 16 && (CurBBSEntry->DeviceType == BBS_HARDDISK || CurBBSEntry->DeviceType == BBS_CDROM)) {\r
+ if ((Index >= 5) && (Index <= 16) && ((CurBBSEntry->DeviceType == BBS_HARDDISK) || (CurBBSEntry->DeviceType == BBS_CDROM))) {\r
Fmt = L"%s %d";\r
UnicodeSPrint (BootString, BufSize, Fmt, Type, Index - 5);\r
} else {\r
**/\r
UINT16\r
LegacyBmFuzzyMatch (\r
- EFI_BOOT_MANAGER_LOAD_OPTION *BootOption,\r
- BBS_TABLE *BbsTable,\r
- UINT16 BbsCount,\r
- BOOLEAN *BbsIndexUsed\r
+ EFI_BOOT_MANAGER_LOAD_OPTION *BootOption,\r
+ BBS_TABLE *BbsTable,\r
+ UINT16 BbsCount,\r
+ BOOLEAN *BbsIndexUsed\r
)\r
{\r
- UINT16 Index;\r
- LEGACY_BM_BOOT_OPTION_BBS_DATA *BbsData;\r
- CHAR16 Description[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
+ UINT16 Index;\r
+ LEGACY_BM_BOOT_OPTION_BBS_DATA *BbsData;\r
+ CHAR16 Description[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
\r
- BbsData = (LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption->OptionalData;\r
+ BbsData = (LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption->OptionalData;\r
\r
//\r
// Directly check the BBS index stored in BootOption\r
//\r
if ((BbsData->BbsIndex < BbsCount) &&\r
- (LegacyBmDeviceType (BootOption->FilePath) == BbsTable[BbsData->BbsIndex].DeviceType)) {\r
+ (LegacyBmDeviceType (BootOption->FilePath) == BbsTable[BbsData->BbsIndex].DeviceType))\r
+ {\r
LegacyBmBuildLegacyDevNameString (\r
&BbsTable[BbsData->BbsIndex],\r
BbsData->BbsIndex,\r
//\r
for (Index = 0; Index < BbsCount; Index++) {\r
if (!LegacyBmValidBbsEntry (&BbsTable[Index]) ||\r
- (BbsTable[Index].DeviceType != LegacyBmDeviceType (BootOption->FilePath))) {\r
+ (BbsTable[Index].DeviceType != LegacyBmDeviceType (BootOption->FilePath)))\r
+ {\r
continue;\r
}\r
\r
**/\r
VOID\r
LegacyBmUpdateBbsIndex (\r
- LEGACY_DEV_ORDER_ENTRY *LegacyDevOrder,\r
- UINTN *LegacyDevOrderSize,\r
- UINT16 DeviceType,\r
- UINT16 OldBbsIndex,\r
- UINT16 NewBbsIndex // Delete entry if -1\r
+ LEGACY_DEV_ORDER_ENTRY *LegacyDevOrder,\r
+ UINTN *LegacyDevOrderSize,\r
+ UINT16 DeviceType,\r
+ UINT16 OldBbsIndex,\r
+ UINT16 NewBbsIndex // Delete entry if -1\r
)\r
{\r
- LEGACY_DEV_ORDER_ENTRY *Entry;\r
- UINTN Index;\r
+ LEGACY_DEV_ORDER_ENTRY *Entry;\r
+ UINTN Index;\r
\r
- ASSERT (((LegacyDevOrder == NULL) && (*LegacyDevOrderSize == 0)) ||\r
- ((LegacyDevOrder != NULL) && (*LegacyDevOrderSize != 0))\r
- );\r
+ ASSERT (\r
+ ((LegacyDevOrder == NULL) && (*LegacyDevOrderSize == 0)) ||\r
+ ((LegacyDevOrder != NULL) && (*LegacyDevOrderSize != 0))\r
+ );\r
\r
for (Entry = LegacyDevOrder;\r
- Entry < (LEGACY_DEV_ORDER_ENTRY *) ((UINT8 *) LegacyDevOrder + *LegacyDevOrderSize);\r
- Entry = (LEGACY_DEV_ORDER_ENTRY *) ((UINTN) Entry + sizeof (BBS_TYPE) + Entry->Length)\r
- ) {\r
+ Entry < (LEGACY_DEV_ORDER_ENTRY *)((UINT8 *)LegacyDevOrder + *LegacyDevOrderSize);\r
+ Entry = (LEGACY_DEV_ORDER_ENTRY *)((UINTN)Entry + sizeof (BBS_TYPE) + Entry->Length)\r
+ )\r
+ {\r
if (Entry->BbsType == DeviceType) {\r
for (Index = 0; Index < Entry->Length / sizeof (UINT16) - 1; Index++) {\r
if (Entry->Data[Index] == OldBbsIndex) {\r
- if (NewBbsIndex == (UINT16) -1) {\r
+ if (NewBbsIndex == (UINT16)-1) {\r
//\r
// Delete the old entry\r
//\r
CopyMem (\r
&Entry->Data[Index],\r
&Entry->Data[Index + 1],\r
- (UINT8 *) LegacyDevOrder + *LegacyDevOrderSize - (UINT8 *) &Entry->Data[Index + 1]\r
+ (UINT8 *)LegacyDevOrder + *LegacyDevOrderSize - (UINT8 *)&Entry->Data[Index + 1]\r
);\r
Entry->Length -= sizeof (UINT16);\r
- *LegacyDevOrderSize -= sizeof(UINT16);\r
+ *LegacyDevOrderSize -= sizeof (UINT16);\r
} else {\r
- Entry->Data[Index] = NewBbsIndex;\r
+ Entry->Data[Index] = NewBbsIndex;\r
}\r
+\r
break;\r
}\r
}\r
+\r
break;\r
}\r
}\r
BootOption = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);\r
for (Index = 0; Index < BootOptionCount; Index++) {\r
if ((DevicePathType (BootOption[Index].FilePath) == BBS_DEVICE_PATH) &&\r
- (DevicePathSubType (BootOption[Index].FilePath) == BBS_BBS_DP)) {\r
+ (DevicePathSubType (BootOption[Index].FilePath) == BBS_BBS_DP))\r
+ {\r
Status = EfiBootManagerDeleteLoadOptionVariable (BootOption[Index].OptionNumber, BootOption[Index].OptionType);\r
//\r
// Deleting variable with current variable implementation shouldn't fail.\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Delete all the invalid legacy boot options.\r
\r
UINTN LegacyDevOrderSize;\r
BOOLEAN *BbsIndexUsed;\r
\r
- HddCount = 0;\r
- BbsCount = 0;\r
- HddInfo = NULL;\r
- BbsTable = NULL;\r
+ HddCount = 0;\r
+ BbsCount = 0;\r
+ HddInfo = NULL;\r
+ BbsTable = NULL;\r
\r
- Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **) &LegacyBios);\r
+ Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **)&LegacyBios);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
return Status;\r
}\r
\r
- GetVariable2 (VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, (VOID **) &LegacyDevOrder, &LegacyDevOrderSize);\r
+ GetVariable2 (VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, (VOID **)&LegacyDevOrder, &LegacyDevOrderSize);\r
\r
BootOption = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);\r
\r
// Skip non legacy boot option\r
//\r
if ((DevicePathType (BootOption[Index].FilePath) != BBS_DEVICE_PATH) ||\r
- (DevicePathSubType (BootOption[Index].FilePath) != BBS_BBS_DP)) {\r
+ (DevicePathSubType (BootOption[Index].FilePath) != BBS_BBS_DP))\r
+ {\r
continue;\r
}\r
\r
BbsIndex = LegacyBmFuzzyMatch (&BootOption[Index], BbsTable, BbsCount, BbsIndexUsed);\r
if (BbsIndex == BbsCount) {\r
- DEBUG ((DEBUG_INFO, "[LegacyBds] Delete Boot Option Boot%04x: %s\n", (UINTN) BootOption[Index].OptionNumber, BootOption[Index].Description));\r
+ DEBUG ((DEBUG_INFO, "[LegacyBds] Delete Boot Option Boot%04x: %s\n", (UINTN)BootOption[Index].OptionNumber, BootOption[Index].Description));\r
//\r
// Delete entry from LegacyDevOrder\r
//\r
LegacyDevOrder,\r
&LegacyDevOrderSize,\r
LegacyBmDeviceType (BootOption[Index].FilePath),\r
- ((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption[Index].OptionalData)->BbsIndex,\r
- (UINT16) -1\r
+ ((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption[Index].OptionalData)->BbsIndex,\r
+ (UINT16)-1\r
);\r
EfiBootManagerDeleteLoadOptionVariable (BootOption[Index].OptionNumber, BootOption[Index].OptionType);\r
} else {\r
- if (((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption[Index].OptionalData)->BbsIndex != BbsIndex) {\r
- DEBUG ((DEBUG_INFO, "[LegacyBds] Update Boot Option Boot%04x: %s Bbs0x%04x->Bbs0x%04x\n", (UINTN) BootOption[Index].OptionNumber, BootOption[Index].Description,\r
- (UINTN) ((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption[Index].OptionalData)->BbsIndex, (UINTN) BbsIndex));\r
+ if (((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption[Index].OptionalData)->BbsIndex != BbsIndex) {\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "[LegacyBds] Update Boot Option Boot%04x: %s Bbs0x%04x->Bbs0x%04x\n",\r
+ (UINTN)BootOption[Index].OptionNumber,\r
+ BootOption[Index].Description,\r
+ (UINTN)((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption[Index].OptionalData)->BbsIndex,\r
+ (UINTN)BbsIndex\r
+ ));\r
//\r
// Update the BBS index in LegacyDevOrder\r
//\r
LegacyDevOrder,\r
&LegacyDevOrderSize,\r
LegacyBmDeviceType (BootOption[Index].FilePath),\r
- ((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption[Index].OptionalData)->BbsIndex,\r
+ ((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption[Index].OptionalData)->BbsIndex,\r
BbsIndex\r
);\r
\r
//\r
// Update the OptionalData in the Boot#### variable\r
//\r
- ((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption[Index].OptionalData)->BbsIndex = BbsIndex;\r
+ ((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption[Index].OptionalData)->BbsIndex = BbsIndex;\r
EfiBootManagerLoadOptionToVariable (&BootOption[Index]);\r
}\r
}\r
}\r
+\r
EfiBootManagerFreeLoadOptions (BootOption, BootOptionCount);\r
\r
if (LegacyDevOrder != NULL) {\r
\r
FreePool (LegacyDevOrder);\r
}\r
- FreePool(BbsIndexUsed);\r
+\r
+ FreePool (BbsIndexUsed);\r
return Status;\r
}\r
\r
IN UINT16 BbsIndex\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- CHAR16 Description[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
- CHAR8 HelpString[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
- UINTN StringLen;\r
+ EFI_STATUS Status;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ CHAR16 Description[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
+ CHAR8 HelpString[LEGACY_BM_BOOT_DESCRIPTION_LENGTH + 1];\r
+ UINTN StringLen;\r
LEGACY_BM_BOOT_OPTION_BBS_DATA *OptionalData;\r
- BBS_BBS_DEVICE_PATH *BbsNode;\r
+ BBS_BBS_DEVICE_PATH *BbsNode;\r
\r
if ((BootOption == NULL) || (BbsEntry == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
// Create the BBS device path with description string\r
//\r
UnicodeStrToAsciiStrS (Description, HelpString, sizeof (HelpString));\r
- StringLen = AsciiStrLen (HelpString);\r
+ StringLen = AsciiStrLen (HelpString);\r
DevicePath = AllocatePool (sizeof (BBS_BBS_DEVICE_PATH) + StringLen + END_DEVICE_PATH_LENGTH);\r
ASSERT (DevicePath != NULL);\r
\r
- BbsNode = (BBS_BBS_DEVICE_PATH *) DevicePath;\r
+ BbsNode = (BBS_BBS_DEVICE_PATH *)DevicePath;\r
SetDevicePathNodeLength (BbsNode, sizeof (BBS_BBS_DEVICE_PATH) + StringLen);\r
BbsNode->Header.Type = BBS_DEVICE_PATH;\r
BbsNode->Header.SubType = BBS_BBS_DP;\r
LOAD_OPTION_ACTIVE,\r
Description,\r
DevicePath,\r
- (UINT8 *) OptionalData,\r
+ (UINT8 *)OptionalData,\r
sizeof (LEGACY_BM_BOOT_OPTION_BBS_DATA)\r
);\r
FreePool (DevicePath);\r
**/\r
UINT16 *\r
LegacyBmFillDevOrderBuf (\r
- IN BBS_TABLE *BbsTable,\r
- IN BBS_TYPE BbsType,\r
- IN UINTN BbsCount,\r
- OUT UINT16 *Buf\r
+ IN BBS_TABLE *BbsTable,\r
+ IN BBS_TYPE BbsType,\r
+ IN UINTN BbsCount,\r
+ OUT UINT16 *Buf\r
)\r
{\r
- UINTN Index;\r
+ UINTN Index;\r
\r
for (Index = 0; Index < BbsCount; Index++) {\r
if (!LegacyBmValidBbsEntry (&BbsTable[Index])) {\r
continue;\r
}\r
\r
- *Buf = (UINT16) (Index & 0xFF);\r
+ *Buf = (UINT16)(Index & 0xFF);\r
Buf++;\r
}\r
\r
**/\r
EFI_STATUS\r
LegacyBmCreateDevOrder (\r
- IN BBS_TABLE *BbsTable,\r
- IN UINT16 BbsCount\r
+ IN BBS_TABLE *BbsTable,\r
+ IN UINT16 BbsCount\r
)\r
{\r
- UINTN Index;\r
- UINTN FDCount;\r
- UINTN HDCount;\r
- UINTN CDCount;\r
- UINTN NETCount;\r
- UINTN BEVCount;\r
- UINTN TotalSize;\r
- UINTN HeaderSize;\r
- LEGACY_DEV_ORDER_ENTRY *DevOrder;\r
- LEGACY_DEV_ORDER_ENTRY *DevOrderPtr;\r
- EFI_STATUS Status;\r
-\r
- FDCount = 0;\r
- HDCount = 0;\r
- CDCount = 0;\r
- NETCount = 0;\r
- BEVCount = 0;\r
- TotalSize = 0;\r
- HeaderSize = sizeof (BBS_TYPE) + sizeof (UINT16);\r
- DevOrder = NULL;\r
- Status = EFI_SUCCESS;\r
+ UINTN Index;\r
+ UINTN FDCount;\r
+ UINTN HDCount;\r
+ UINTN CDCount;\r
+ UINTN NETCount;\r
+ UINTN BEVCount;\r
+ UINTN TotalSize;\r
+ UINTN HeaderSize;\r
+ LEGACY_DEV_ORDER_ENTRY *DevOrder;\r
+ LEGACY_DEV_ORDER_ENTRY *DevOrderPtr;\r
+ EFI_STATUS Status;\r
+\r
+ FDCount = 0;\r
+ HDCount = 0;\r
+ CDCount = 0;\r
+ NETCount = 0;\r
+ BEVCount = 0;\r
+ TotalSize = 0;\r
+ HeaderSize = sizeof (BBS_TYPE) + sizeof (UINT16);\r
+ DevOrder = NULL;\r
+ Status = EFI_SUCCESS;\r
\r
//\r
// Count all boot devices\r
}\r
\r
switch (BbsTable[Index].DeviceType) {\r
- case BBS_FLOPPY:\r
- FDCount++;\r
- break;\r
+ case BBS_FLOPPY:\r
+ FDCount++;\r
+ break;\r
\r
- case BBS_HARDDISK:\r
- HDCount++;\r
- break;\r
+ case BBS_HARDDISK:\r
+ HDCount++;\r
+ break;\r
\r
- case BBS_CDROM:\r
- CDCount++;\r
- break;\r
+ case BBS_CDROM:\r
+ CDCount++;\r
+ break;\r
\r
- case BBS_EMBED_NETWORK:\r
- NETCount++;\r
- break;\r
+ case BBS_EMBED_NETWORK:\r
+ NETCount++;\r
+ break;\r
\r
- case BBS_BEV_DEVICE:\r
- BEVCount++;\r
- break;\r
+ case BBS_BEV_DEVICE:\r
+ BEVCount++;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
}\r
\r
if (NULL == DevOrder) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
- DevOrderPtr = DevOrder;\r
+\r
+ DevOrderPtr = DevOrder;\r
\r
DevOrderPtr->BbsType = BBS_FLOPPY;\r
- DevOrderPtr->Length = (UINT16) (sizeof (DevOrderPtr->Length) + FDCount * sizeof (UINT16));\r
- DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *) LegacyBmFillDevOrderBuf (BbsTable, BBS_FLOPPY, BbsCount, DevOrderPtr->Data);\r
+ DevOrderPtr->Length = (UINT16)(sizeof (DevOrderPtr->Length) + FDCount * sizeof (UINT16));\r
+ DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *)LegacyBmFillDevOrderBuf (BbsTable, BBS_FLOPPY, BbsCount, DevOrderPtr->Data);\r
\r
DevOrderPtr->BbsType = BBS_HARDDISK;\r
- DevOrderPtr->Length = (UINT16) (sizeof (UINT16) + HDCount * sizeof (UINT16));\r
- DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *) LegacyBmFillDevOrderBuf (BbsTable, BBS_HARDDISK, BbsCount, DevOrderPtr->Data);\r
+ DevOrderPtr->Length = (UINT16)(sizeof (UINT16) + HDCount * sizeof (UINT16));\r
+ DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *)LegacyBmFillDevOrderBuf (BbsTable, BBS_HARDDISK, BbsCount, DevOrderPtr->Data);\r
\r
DevOrderPtr->BbsType = BBS_CDROM;\r
- DevOrderPtr->Length = (UINT16) (sizeof (UINT16) + CDCount * sizeof (UINT16));\r
- DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *) LegacyBmFillDevOrderBuf (BbsTable, BBS_CDROM, BbsCount, DevOrderPtr->Data);\r
+ DevOrderPtr->Length = (UINT16)(sizeof (UINT16) + CDCount * sizeof (UINT16));\r
+ DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *)LegacyBmFillDevOrderBuf (BbsTable, BBS_CDROM, BbsCount, DevOrderPtr->Data);\r
\r
DevOrderPtr->BbsType = BBS_EMBED_NETWORK;\r
- DevOrderPtr->Length = (UINT16) (sizeof (UINT16) + NETCount * sizeof (UINT16));\r
- DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *) LegacyBmFillDevOrderBuf (BbsTable, BBS_EMBED_NETWORK, BbsCount, DevOrderPtr->Data);\r
+ DevOrderPtr->Length = (UINT16)(sizeof (UINT16) + NETCount * sizeof (UINT16));\r
+ DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *)LegacyBmFillDevOrderBuf (BbsTable, BBS_EMBED_NETWORK, BbsCount, DevOrderPtr->Data);\r
\r
DevOrderPtr->BbsType = BBS_BEV_DEVICE;\r
- DevOrderPtr->Length = (UINT16) (sizeof (UINT16) + BEVCount * sizeof (UINT16));\r
- DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *) LegacyBmFillDevOrderBuf (BbsTable, BBS_BEV_DEVICE, BbsCount, DevOrderPtr->Data);\r
+ DevOrderPtr->Length = (UINT16)(sizeof (UINT16) + BEVCount * sizeof (UINT16));\r
+ DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *)LegacyBmFillDevOrderBuf (BbsTable, BBS_BEV_DEVICE, BbsCount, DevOrderPtr->Data);\r
\r
- ASSERT (TotalSize == ((UINTN) DevOrderPtr - (UINTN) DevOrder));\r
+ ASSERT (TotalSize == ((UINTN)DevOrderPtr - (UINTN)DevOrder));\r
\r
//\r
// Save device order for legacy boot device to variable.\r
VOID\r
)\r
{\r
- LEGACY_DEV_ORDER_ENTRY *DevOrder;\r
- LEGACY_DEV_ORDER_ENTRY *NewDevOrder;\r
- LEGACY_DEV_ORDER_ENTRY *Ptr;\r
- LEGACY_DEV_ORDER_ENTRY *NewPtr;\r
- EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;\r
- EFI_STATUS Status;\r
- UINT16 HddCount;\r
- UINT16 BbsCount;\r
- HDD_INFO *LocalHddInfo;\r
- BBS_TABLE *LocalBbsTable;\r
- UINTN Index;\r
- UINTN Index2;\r
- UINTN *Idx;\r
- UINTN FDCount;\r
- UINTN HDCount;\r
- UINTN CDCount;\r
- UINTN NETCount;\r
- UINTN BEVCount;\r
- UINTN TotalSize;\r
- UINTN HeaderSize;\r
- UINT16 *NewFDPtr;\r
- UINT16 *NewHDPtr;\r
- UINT16 *NewCDPtr;\r
- UINT16 *NewNETPtr;\r
- UINT16 *NewBEVPtr;\r
- UINT16 *NewDevPtr;\r
- UINTN FDIndex;\r
- UINTN HDIndex;\r
- UINTN CDIndex;\r
- UINTN NETIndex;\r
- UINTN BEVIndex;\r
-\r
- Idx = NULL;\r
- FDCount = 0;\r
- HDCount = 0;\r
- CDCount = 0;\r
- NETCount = 0;\r
- BEVCount = 0;\r
- TotalSize = 0;\r
- HeaderSize = sizeof (BBS_TYPE) + sizeof (UINT16);\r
- FDIndex = 0;\r
- HDIndex = 0;\r
- CDIndex = 0;\r
- NETIndex = 0;\r
- BEVIndex = 0;\r
- NewDevPtr = NULL;\r
-\r
- Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **) &LegacyBios);\r
+ LEGACY_DEV_ORDER_ENTRY *DevOrder;\r
+ LEGACY_DEV_ORDER_ENTRY *NewDevOrder;\r
+ LEGACY_DEV_ORDER_ENTRY *Ptr;\r
+ LEGACY_DEV_ORDER_ENTRY *NewPtr;\r
+ EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;\r
+ EFI_STATUS Status;\r
+ UINT16 HddCount;\r
+ UINT16 BbsCount;\r
+ HDD_INFO *LocalHddInfo;\r
+ BBS_TABLE *LocalBbsTable;\r
+ UINTN Index;\r
+ UINTN Index2;\r
+ UINTN *Idx;\r
+ UINTN FDCount;\r
+ UINTN HDCount;\r
+ UINTN CDCount;\r
+ UINTN NETCount;\r
+ UINTN BEVCount;\r
+ UINTN TotalSize;\r
+ UINTN HeaderSize;\r
+ UINT16 *NewFDPtr;\r
+ UINT16 *NewHDPtr;\r
+ UINT16 *NewCDPtr;\r
+ UINT16 *NewNETPtr;\r
+ UINT16 *NewBEVPtr;\r
+ UINT16 *NewDevPtr;\r
+ UINTN FDIndex;\r
+ UINTN HDIndex;\r
+ UINTN CDIndex;\r
+ UINTN NETIndex;\r
+ UINTN BEVIndex;\r
+\r
+ Idx = NULL;\r
+ FDCount = 0;\r
+ HDCount = 0;\r
+ CDCount = 0;\r
+ NETCount = 0;\r
+ BEVCount = 0;\r
+ TotalSize = 0;\r
+ HeaderSize = sizeof (BBS_TYPE) + sizeof (UINT16);\r
+ FDIndex = 0;\r
+ HDIndex = 0;\r
+ CDIndex = 0;\r
+ NETIndex = 0;\r
+ BEVIndex = 0;\r
+ NewDevPtr = NULL;\r
+\r
+ Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **)&LegacyBios);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
return Status;\r
}\r
\r
- GetVariable2 (VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, (VOID **) &DevOrder, NULL);\r
+ GetVariable2 (VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, (VOID **)&DevOrder, NULL);\r
if (NULL == DevOrder) {\r
return LegacyBmCreateDevOrder (LocalBbsTable, BbsCount);\r
}\r
+\r
//\r
// First we figure out how many boot devices with same device type respectively\r
//\r
}\r
\r
switch (LocalBbsTable[Index].DeviceType) {\r
- case BBS_FLOPPY:\r
- FDCount++;\r
- break;\r
+ case BBS_FLOPPY:\r
+ FDCount++;\r
+ break;\r
\r
- case BBS_HARDDISK:\r
- HDCount++;\r
- break;\r
+ case BBS_HARDDISK:\r
+ HDCount++;\r
+ break;\r
\r
- case BBS_CDROM:\r
- CDCount++;\r
- break;\r
+ case BBS_CDROM:\r
+ CDCount++;\r
+ break;\r
\r
- case BBS_EMBED_NETWORK:\r
- NETCount++;\r
- break;\r
+ case BBS_EMBED_NETWORK:\r
+ NETCount++;\r
+ break;\r
\r
- case BBS_BEV_DEVICE:\r
- BEVCount++;\r
- break;\r
+ case BBS_BEV_DEVICE:\r
+ BEVCount++;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
}\r
\r
Ptr = DevOrder;\r
NewPtr = NewDevOrder;\r
NewPtr->BbsType = Ptr->BbsType;\r
- NewPtr->Length = (UINT16) (sizeof (UINT16) + FDCount * sizeof (UINT16));\r
+ NewPtr->Length = (UINT16)(sizeof (UINT16) + FDCount * sizeof (UINT16));\r
for (Index = 0; Index < Ptr->Length / sizeof (UINT16) - 1; Index++) {\r
if (!LegacyBmValidBbsEntry (&LocalBbsTable[Ptr->Data[Index] & 0xFF]) ||\r
- LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_FLOPPY\r
- ) {\r
+ (LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_FLOPPY)\r
+ )\r
+ {\r
continue;\r
}\r
\r
NewPtr->Data[FDIndex] = Ptr->Data[Index];\r
FDIndex++;\r
}\r
+\r
NewFDPtr = NewPtr->Data;\r
\r
//\r
// copy HD\r
//\r
- Ptr = (LEGACY_DEV_ORDER_ENTRY *) (&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
- NewPtr = (LEGACY_DEV_ORDER_ENTRY *) (&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
+ Ptr = (LEGACY_DEV_ORDER_ENTRY *)(&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
+ NewPtr = (LEGACY_DEV_ORDER_ENTRY *)(&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
NewPtr->BbsType = Ptr->BbsType;\r
- NewPtr->Length = (UINT16) (sizeof (UINT16) + HDCount * sizeof (UINT16));\r
+ NewPtr->Length = (UINT16)(sizeof (UINT16) + HDCount * sizeof (UINT16));\r
for (Index = 0; Index < Ptr->Length / sizeof (UINT16) - 1; Index++) {\r
if (!LegacyBmValidBbsEntry (&LocalBbsTable[Ptr->Data[Index] & 0xFF]) ||\r
- LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_HARDDISK\r
- ) {\r
+ (LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_HARDDISK)\r
+ )\r
+ {\r
continue;\r
}\r
\r
NewPtr->Data[HDIndex] = Ptr->Data[Index];\r
HDIndex++;\r
}\r
+\r
NewHDPtr = NewPtr->Data;\r
\r
//\r
// copy CD\r
//\r
- Ptr = (LEGACY_DEV_ORDER_ENTRY *) (&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
- NewPtr = (LEGACY_DEV_ORDER_ENTRY *) (&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
+ Ptr = (LEGACY_DEV_ORDER_ENTRY *)(&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
+ NewPtr = (LEGACY_DEV_ORDER_ENTRY *)(&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
NewPtr->BbsType = Ptr->BbsType;\r
- NewPtr->Length = (UINT16) (sizeof (UINT16) + CDCount * sizeof (UINT16));\r
+ NewPtr->Length = (UINT16)(sizeof (UINT16) + CDCount * sizeof (UINT16));\r
for (Index = 0; Index < Ptr->Length / sizeof (UINT16) - 1; Index++) {\r
if (!LegacyBmValidBbsEntry (&LocalBbsTable[Ptr->Data[Index] & 0xFF]) ||\r
- LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_CDROM\r
- ) {\r
+ (LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_CDROM)\r
+ )\r
+ {\r
continue;\r
}\r
\r
NewPtr->Data[CDIndex] = Ptr->Data[Index];\r
CDIndex++;\r
}\r
+\r
NewCDPtr = NewPtr->Data;\r
\r
//\r
// copy NET\r
//\r
- Ptr = (LEGACY_DEV_ORDER_ENTRY *) (&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
- NewPtr = (LEGACY_DEV_ORDER_ENTRY *) (&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
+ Ptr = (LEGACY_DEV_ORDER_ENTRY *)(&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
+ NewPtr = (LEGACY_DEV_ORDER_ENTRY *)(&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
NewPtr->BbsType = Ptr->BbsType;\r
- NewPtr->Length = (UINT16) (sizeof (UINT16) + NETCount * sizeof (UINT16));\r
+ NewPtr->Length = (UINT16)(sizeof (UINT16) + NETCount * sizeof (UINT16));\r
for (Index = 0; Index < Ptr->Length / sizeof (UINT16) - 1; Index++) {\r
if (!LegacyBmValidBbsEntry (&LocalBbsTable[Ptr->Data[Index] & 0xFF]) ||\r
- LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_EMBED_NETWORK\r
- ) {\r
+ (LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_EMBED_NETWORK)\r
+ )\r
+ {\r
continue;\r
}\r
\r
NewPtr->Data[NETIndex] = Ptr->Data[Index];\r
NETIndex++;\r
}\r
+\r
NewNETPtr = NewPtr->Data;\r
\r
//\r
// copy BEV\r
//\r
- Ptr = (LEGACY_DEV_ORDER_ENTRY *) (&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
- NewPtr = (LEGACY_DEV_ORDER_ENTRY *) (&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
+ Ptr = (LEGACY_DEV_ORDER_ENTRY *)(&Ptr->Data[Ptr->Length / sizeof (UINT16) - 1]);\r
+ NewPtr = (LEGACY_DEV_ORDER_ENTRY *)(&NewPtr->Data[NewPtr->Length / sizeof (UINT16) -1]);\r
NewPtr->BbsType = Ptr->BbsType;\r
- NewPtr->Length = (UINT16) (sizeof (UINT16) + BEVCount * sizeof (UINT16));\r
+ NewPtr->Length = (UINT16)(sizeof (UINT16) + BEVCount * sizeof (UINT16));\r
for (Index = 0; Index < Ptr->Length / sizeof (UINT16) - 1; Index++) {\r
if (!LegacyBmValidBbsEntry (&LocalBbsTable[Ptr->Data[Index] & 0xFF]) ||\r
- LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_BEV_DEVICE\r
- ) {\r
+ (LocalBbsTable[Ptr->Data[Index] & 0xFF].DeviceType != BBS_BEV_DEVICE)\r
+ )\r
+ {\r
continue;\r
}\r
\r
NewPtr->Data[BEVIndex] = Ptr->Data[Index];\r
BEVIndex++;\r
}\r
+\r
NewBEVPtr = NewPtr->Data;\r
\r
for (Index = 0; Index < BbsCount; Index++) {\r
}\r
\r
switch (LocalBbsTable[Index].DeviceType) {\r
- case BBS_FLOPPY:\r
- Idx = &FDIndex;\r
- NewDevPtr = NewFDPtr;\r
- break;\r
+ case BBS_FLOPPY:\r
+ Idx = &FDIndex;\r
+ NewDevPtr = NewFDPtr;\r
+ break;\r
\r
- case BBS_HARDDISK:\r
- Idx = &HDIndex;\r
- NewDevPtr = NewHDPtr;\r
- break;\r
+ case BBS_HARDDISK:\r
+ Idx = &HDIndex;\r
+ NewDevPtr = NewHDPtr;\r
+ break;\r
\r
- case BBS_CDROM:\r
- Idx = &CDIndex;\r
- NewDevPtr = NewCDPtr;\r
- break;\r
+ case BBS_CDROM:\r
+ Idx = &CDIndex;\r
+ NewDevPtr = NewCDPtr;\r
+ break;\r
\r
- case BBS_EMBED_NETWORK:\r
- Idx = &NETIndex;\r
- NewDevPtr = NewNETPtr;\r
- break;\r
+ case BBS_EMBED_NETWORK:\r
+ Idx = &NETIndex;\r
+ NewDevPtr = NewNETPtr;\r
+ break;\r
\r
- case BBS_BEV_DEVICE:\r
- Idx = &BEVIndex;\r
- NewDevPtr = NewBEVPtr;\r
- break;\r
+ case BBS_BEV_DEVICE:\r
+ Idx = &BEVIndex;\r
+ NewDevPtr = NewBEVPtr;\r
+ break;\r
\r
- default:\r
- Idx = NULL;\r
- break;\r
+ default:\r
+ Idx = NULL;\r
+ break;\r
}\r
+\r
//\r
// at this point we have copied those valid indexes to new buffer\r
// and we should check if there is any new appeared boot device\r
//\r
if (Idx != NULL) {\r
for (Index2 = 0; Index2 < *Idx; Index2++) {\r
- if ((NewDevPtr[Index2] & 0xFF) == (UINT16) Index) {\r
+ if ((NewDevPtr[Index2] & 0xFF) == (UINT16)Index) {\r
break;\r
}\r
}\r
break;\r
}\r
}\r
+\r
CopyMem (&NewDevPtr[Index2 + 1], &NewDevPtr[Index2], (*Idx - Index2) * sizeof (UINT16));\r
- NewDevPtr[Index2] = (UINT16) (Index & 0xFF);\r
+ NewDevPtr[Index2] = (UINT16)(Index & 0xFF);\r
(*Idx)++;\r
}\r
}\r
**/\r
EFI_STATUS\r
LegacyBmSetPriorityForSameTypeDev (\r
- IN UINT16 DeviceType,\r
- IN UINTN BbsIndex,\r
- IN OUT BBS_TABLE *LocalBbsTable,\r
- IN OUT UINT16 *Priority\r
+ IN UINT16 DeviceType,\r
+ IN UINTN BbsIndex,\r
+ IN OUT BBS_TABLE *LocalBbsTable,\r
+ IN OUT UINT16 *Priority\r
)\r
{\r
- LEGACY_DEV_ORDER_ENTRY *DevOrder;\r
- LEGACY_DEV_ORDER_ENTRY *DevOrderPtr;\r
- UINTN DevOrderSize;\r
- UINTN Index;\r
+ LEGACY_DEV_ORDER_ENTRY *DevOrder;\r
+ LEGACY_DEV_ORDER_ENTRY *DevOrderPtr;\r
+ UINTN DevOrderSize;\r
+ UINTN Index;\r
\r
- GetVariable2 (VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, (VOID **) &DevOrder, &DevOrderSize);\r
+ GetVariable2 (VAR_LEGACY_DEV_ORDER, &gEfiLegacyDevOrderVariableGuid, (VOID **)&DevOrder, &DevOrderSize);\r
if (NULL == DevOrder) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
DevOrderPtr = DevOrder;\r
- while ((UINT8 *) DevOrderPtr < (UINT8 *) DevOrder + DevOrderSize) {\r
+ while ((UINT8 *)DevOrderPtr < (UINT8 *)DevOrder + DevOrderSize) {\r
if (DevOrderPtr->BbsType == DeviceType) {\r
break;\r
}\r
\r
- DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *) ((UINTN) DevOrderPtr + sizeof (BBS_TYPE) + DevOrderPtr->Length);\r
+ DevOrderPtr = (LEGACY_DEV_ORDER_ENTRY *)((UINTN)DevOrderPtr + sizeof (BBS_TYPE) + DevOrderPtr->Length);\r
}\r
\r
- if ((UINT8 *) DevOrderPtr >= (UINT8 *) DevOrder + DevOrderSize) {\r
+ if ((UINT8 *)DevOrderPtr >= (UINT8 *)DevOrder + DevOrderSize) {\r
FreePool (DevOrder);\r
return EFI_NOT_FOUND;\r
}\r
\r
- if (BbsIndex != (UINTN) -1) {\r
+ if (BbsIndex != (UINTN)-1) {\r
//\r
// In case the BBS entry isn't valid because devices were plugged or removed.\r
//\r
FreePool (DevOrder);\r
return EFI_NOT_FOUND;\r
}\r
+\r
LocalBbsTable[BbsIndex].BootPriority = *Priority;\r
(*Priority)++;\r
}\r
+\r
//\r
// If the high byte of the DevIndex is 0xFF, it indicates that this device has been disabled.\r
//\r
\r
DEBUG (\r
(DEBUG_INFO,\r
- " %02x: %04x %02x/%02x/%02x %02x/%02x %04x %04x %04x:%04x\n",\r
- (UINTN) Index,\r
- (UINTN) LocalBbsTable[Index].BootPriority,\r
- (UINTN) LocalBbsTable[Index].Bus,\r
- (UINTN) LocalBbsTable[Index].Device,\r
- (UINTN) LocalBbsTable[Index].Function,\r
- (UINTN) LocalBbsTable[Index].Class,\r
- (UINTN) LocalBbsTable[Index].SubClass,\r
- (UINTN) LocalBbsTable[Index].DeviceType,\r
- (UINTN) * (UINT16 *) &LocalBbsTable[Index].StatusFlags,\r
- (UINTN) LocalBbsTable[Index].BootHandlerSegment,\r
- (UINTN) LocalBbsTable[Index].BootHandlerOffset,\r
- (UINTN) ((LocalBbsTable[Index].MfgStringSegment << 4) + LocalBbsTable[Index].MfgStringOffset),\r
- (UINTN) ((LocalBbsTable[Index].DescStringSegment << 4) + LocalBbsTable[Index].DescStringOffset))\r
+ " %02x: %04x %02x/%02x/%02x %02x/%02x %04x %04x %04x:%04x\n",\r
+ (UINTN)Index,\r
+ (UINTN)LocalBbsTable[Index].BootPriority,\r
+ (UINTN)LocalBbsTable[Index].Bus,\r
+ (UINTN)LocalBbsTable[Index].Device,\r
+ (UINTN)LocalBbsTable[Index].Function,\r
+ (UINTN)LocalBbsTable[Index].Class,\r
+ (UINTN)LocalBbsTable[Index].SubClass,\r
+ (UINTN)LocalBbsTable[Index].DeviceType,\r
+ (UINTN)*(UINT16 *)&LocalBbsTable[Index].StatusFlags,\r
+ (UINTN)LocalBbsTable[Index].BootHandlerSegment,\r
+ (UINTN)LocalBbsTable[Index].BootHandlerOffset,\r
+ (UINTN)((LocalBbsTable[Index].MfgStringSegment << 4) + LocalBbsTable[Index].MfgStringOffset),\r
+ (UINTN)((LocalBbsTable[Index].DescStringSegment << 4) + LocalBbsTable[Index].DescStringOffset))\r
);\r
}\r
\r
**/\r
EFI_STATUS\r
LegacyBmRefreshBbsTableForBoot (\r
- IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOption\r
+ IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOption\r
)\r
{\r
EFI_STATUS Status;\r
LocalBbsTable = NULL;\r
DevType = BBS_UNKNOWN;\r
\r
- Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **) &LegacyBios);\r
+ Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **)&LegacyBios);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
LocalBbsTable[Index].BootPriority = BBS_UNPRIORITIZED_ENTRY;\r
}\r
}\r
+\r
//\r
// boot priority always starts at 0\r
//\r
Priority = 0;\r
if ((DevicePathType (BootOption->FilePath) == BBS_DEVICE_PATH) &&\r
- (DevicePathSubType (BootOption->FilePath) == BBS_BBS_DP)) {\r
+ (DevicePathSubType (BootOption->FilePath) == BBS_BBS_DP))\r
+ {\r
//\r
// If BootOption stands for a legacy boot option, we prioritize the devices with the same type first.\r
//\r
DevType = LegacyBmDeviceType (BootOption->FilePath);\r
- BbsIndex = ((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOption->OptionalData)->BbsIndex;\r
- Status = LegacyBmSetPriorityForSameTypeDev (\r
- DevType,\r
- BbsIndex,\r
- LocalBbsTable,\r
- &Priority\r
- );\r
+ BbsIndex = ((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOption->OptionalData)->BbsIndex;\r
+ Status = LegacyBmSetPriorityForSameTypeDev (\r
+ DevType,\r
+ BbsIndex,\r
+ LocalBbsTable,\r
+ &Priority\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
}\r
+\r
//\r
// we have to set the boot priority for other BBS entries with different device types\r
//\r
- Option = EfiBootManagerGetLoadOptions (&OptionCount, LoadOptionTypeBoot);\r
- DeviceType = AllocatePool (sizeof (UINT16) * OptionCount);\r
+ Option = EfiBootManagerGetLoadOptions (&OptionCount, LoadOptionTypeBoot);\r
+ DeviceType = AllocatePool (sizeof (UINT16) * OptionCount);\r
ASSERT (DeviceType != NULL);\r
DeviceType[0] = DevType;\r
DeviceTypeCount = 1;\r
for (Index = 0; Index < OptionCount; Index++) {\r
if ((DevicePathType (Option[Index].FilePath) != BBS_DEVICE_PATH) ||\r
- (DevicePathSubType (Option[Index].FilePath) != BBS_BBS_DP)) {\r
+ (DevicePathSubType (Option[Index].FilePath) != BBS_BBS_DP))\r
+ {\r
continue;\r
}\r
\r
break;\r
}\r
}\r
+\r
if (DeviceTypeIndex < DeviceTypeCount) {\r
//\r
// We don't want to process twice for a device type\r
\r
Status = LegacyBmSetPriorityForSameTypeDev (\r
DevType,\r
- (UINTN) -1,\r
+ (UINTN)-1,\r
LocalBbsTable,\r
&Priority\r
);\r
}\r
+\r
EfiBootManagerFreeLoadOptions (Option, OptionCount);\r
\r
- DEBUG_CODE_BEGIN();\r
- LegacyBmPrintBbsTable (LocalBbsTable, BbsCount);\r
- DEBUG_CODE_END();\r
+ DEBUG_CODE_BEGIN ();\r
+ LegacyBmPrintBbsTable (LocalBbsTable, BbsCount);\r
+ DEBUG_CODE_END ();\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Boot the legacy system with the boot option.\r
\r
VOID\r
EFIAPI\r
LegacyBmBoot (\r
- IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOption\r
+ IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOption\r
)\r
{\r
EFI_STATUS Status;\r
EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;\r
\r
- Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **) &LegacyBios);\r
+ Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **)&LegacyBios);\r
if (EFI_ERROR (Status)) {\r
//\r
// If no LegacyBios protocol we do not support legacy boot\r
BootOption->Status = EFI_UNSUPPORTED;\r
return;\r
}\r
+\r
//\r
// Notes: if we separate the int 19, then we don't need to refresh BBS\r
//\r
\r
BootOption->Status = LegacyBios->LegacyBoot (\r
LegacyBios,\r
- (BBS_BBS_DEVICE_PATH *) BootOption->FilePath,\r
+ (BBS_BBS_DEVICE_PATH *)BootOption->FilePath,\r
BootOption->OptionalDataSize,\r
BootOption->OptionalData\r
);\r
**/\r
EFI_BOOT_MANAGER_LOAD_OPTION *\r
LegacyBmEnumerateAllBootOptions (\r
- UINTN *BootOptionCount\r
+ UINTN *BootOptionCount\r
)\r
{\r
EFI_STATUS Status;\r
*BootOptionCount = 0;\r
BbsCount = 0;\r
\r
- Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **) &LegacyBios);\r
+ Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **)&LegacyBios);\r
if (EFI_ERROR (Status)) {\r
return NULL;\r
}\r
**/\r
INTN\r
LegacyBmFindBootOption (\r
- IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Key,\r
- IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Array,\r
- IN UINTN Count\r
+ IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Key,\r
+ IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Array,\r
+ IN UINTN Count\r
)\r
{\r
- UINTN Index;\r
+ UINTN Index;\r
\r
for (Index = 0; Index < Count; Index++) {\r
if ((StrCmp (Key->Description, Array[Index].Description) == 0) &&\r
(CompareMem (Key->FilePath, Array[Index].FilePath, GetDevicePathSize (Key->FilePath)) == 0) &&\r
(Key->OptionalDataSize == Array[Index].OptionalDataSize) &&\r
- (CompareMem (Key->OptionalData, Array[Index].OptionalData, Key->OptionalDataSize) == 0)) {\r
- return (INTN) Index;\r
+ (CompareMem (Key->OptionalData, Array[Index].OptionalData, Key->OptionalDataSize) == 0))\r
+ {\r
+ return (INTN)Index;\r
}\r
}\r
\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;\r
- UINTN RootBridgeHandleCount;\r
- EFI_HANDLE *RootBridgeHandleBuffer;\r
- UINTN HandleCount;\r
- EFI_HANDLE *HandleBuffer;\r
- UINTN RootBridgeIndex;\r
- UINTN Index;\r
- UINTN Flags;\r
- EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions;\r
- UINTN BootOptionCount;\r
- EFI_BOOT_MANAGER_LOAD_OPTION *ExistingBootOptions;\r
- UINTN ExistingBootOptionCount;\r
-\r
- Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **) &LegacyBios);\r
+ EFI_STATUS Status;\r
+ EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;\r
+ UINTN RootBridgeHandleCount;\r
+ EFI_HANDLE *RootBridgeHandleBuffer;\r
+ UINTN HandleCount;\r
+ EFI_HANDLE *HandleBuffer;\r
+ UINTN RootBridgeIndex;\r
+ UINTN Index;\r
+ UINTN Flags;\r
+ EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions;\r
+ UINTN BootOptionCount;\r
+ EFI_BOOT_MANAGER_LOAD_OPTION *ExistingBootOptions;\r
+ UINTN ExistingBootOptionCount;\r
+\r
+ Status = gBS->LocateProtocol (&gEfiLegacyBiosProtocolGuid, NULL, (VOID **)&LegacyBios);\r
if (EFI_ERROR (Status)) {\r
LegacyBmDeleteAllBootOptions ();\r
return;\r
}\r
+\r
PERF_START (NULL, "LegacyBootOptionEnum", "BDS", 0);\r
\r
//\r
LegacyBmDeleteAllInvalidBootOptions ();\r
\r
ExistingBootOptions = EfiBootManagerGetLoadOptions (&ExistingBootOptionCount, LoadOptionTypeBoot);\r
- BootOptions = LegacyBmEnumerateAllBootOptions (&BootOptionCount);\r
+ BootOptions = LegacyBmEnumerateAllBootOptions (&BootOptionCount);\r
\r
for (Index = 0; Index < BootOptionCount; Index++) {\r
if (LegacyBmFindBootOption (&BootOptions[Index], ExistingBootOptions, ExistingBootOptionCount) == -1) {\r
- Status = EfiBootManagerAddLoadOptionVariable (&BootOptions[Index], (UINTN) -1);\r
+ Status = EfiBootManagerAddLoadOptionVariable (&BootOptions[Index], (UINTN)-1);\r
DEBUG ((\r
- DEBUG_INFO, "[LegacyBds] New Boot Option: Boot%04x Bbs0x%04x %s %r\n",\r
- (UINTN) BootOptions[Index].OptionNumber,\r
- (UINTN) ((LEGACY_BM_BOOT_OPTION_BBS_DATA *) BootOptions[Index].OptionalData)->BbsIndex,\r
+ DEBUG_INFO,\r
+ "[LegacyBds] New Boot Option: Boot%04x Bbs0x%04x %s %r\n",\r
+ (UINTN)BootOptions[Index].OptionNumber,\r
+ (UINTN)((LEGACY_BM_BOOT_OPTION_BBS_DATA *)BootOptions[Index].OptionalData)->BbsIndex,\r
BootOptions[Index].Description,\r
Status\r
));\r
}\r
\r
EfiBootManagerFreeLoadOptions (ExistingBootOptions, ExistingBootOptionCount);\r
- EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);\r
+ EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);\r
\r
//\r
// Failure to create LegacyDevOrder variable only impacts the boot order.\r
//\r
LegacyBmUpdateDevOrder ();\r
\r
- PERF_END (NULL, "LegacyBootOptionEnum", "BDS", 0);\r
+ PERF_END (NULL, "LegacyBootOptionEnum", "BDS", 0);\r
}\r