summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Universal')
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatform.c75
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c249
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h194
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.c30
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.h100
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c1294
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/Aml.c366
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlChild.c54
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c154
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlOption.c208
-rw-r--r--MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c189
-rw-r--r--MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.c69
-rw-r--r--MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/IA32/SetIdtEntry.c37
-rw-r--r--MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c242
-rw-r--r--MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h22
-rw-r--r--MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c137
-rw-r--r--MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c190
-rw-r--r--MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c55
-rw-r--r--MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.c26
-rw-r--r--MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c4
-rw-r--r--MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c4
-rw-r--r--MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c110
-rw-r--r--MdeModulePkg/Universal/Acpi/S3SaveStateDxe/InternalS3SaveState.h34
-rw-r--r--MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c799
-rw-r--r--MdeModulePkg/Universal/Acpi/SmmS3SaveState/InternalSmmSaveState.h35
-rw-r--r--MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.c807
-rw-r--r--MdeModulePkg/Universal/BdsDxe/Bds.h30
-rw-r--r--MdeModulePkg/Universal/BdsDxe/BdsEntry.c314
-rw-r--r--MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c6
-rw-r--r--MdeModulePkg/Universal/BdsDxe/Language.c58
-rw-r--r--MdeModulePkg/Universal/BdsDxe/Language.h2
-rw-r--r--MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.c64
-rw-r--r--MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c144
-rw-r--r--MdeModulePkg/Universal/CapsulePei/Capsule.h92
-rw-r--r--MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c485
-rw-r--r--MdeModulePkg/Universal/CapsulePei/Common/CommonHeader.h62
-rw-r--r--MdeModulePkg/Universal/CapsulePei/UefiCapsule.c577
-rw-r--r--MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c147
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/Arm/CapsuleReset.c1
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCache.c5
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCacheNull.c3
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleReset.c1
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c130
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h2
-rw-r--r--MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c88
-rw-r--r--MdeModulePkg/Universal/Console/ConPlatformDxe/ComponentName.c19
-rw-r--r--MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c267
-rw-r--r--MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h47
-rw-r--r--MdeModulePkg/Universal/Console/ConSplitterDxe/ComponentName.c130
-rw-r--r--MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c1707
-rw-r--r--MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h537
-rw-r--r--MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterGraphics.c244
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsConsoleDxe/ComponentName.c19
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c934
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.h84
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsConsoleDxe/LaffStd.c731
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsOutputDxe/ComponentName.c24
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c249
-rw-r--r--MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.h23
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c23
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/ComponentName.c23
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c381
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h302
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c1543
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c604
-rw-r--r--MdeModulePkg/Universal/Console/TerminalDxe/Vtutf8.c262
-rw-r--r--MdeModulePkg/Universal/DebugPortDxe/ComponentName.c21
-rw-r--r--MdeModulePkg/Universal/DebugPortDxe/DebugPort.c292
-rw-r--r--MdeModulePkg/Universal/DebugPortDxe/DebugPort.h86
-rw-r--r--MdeModulePkg/Universal/DebugServicePei/DebugService.h17
-rw-r--r--MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c29
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/DebugSupport.c10
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/Ia32/DebugSupport.h70
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.c79
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.h2
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupportIa32.c26
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupport.h2
-rw-r--r--MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupportX64.c26
-rw-r--r--MdeModulePkg/Universal/DevicePathDxe/DevicePath.c35
-rw-r--r--MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c298
-rw-r--r--MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h113
-rw-r--r--MdeModulePkg/Universal/Disk/DiskIoDxe/ComponentName.c22
-rw-r--r--MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c330
-rw-r--r--MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.h120
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/ComponentName.c21
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c119
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c177
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c111
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c365
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h84
-rw-r--r--MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c399
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskBlockIo.c127
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c33
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskFileExplorer.c27
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.c371
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.h180
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskNVData.h22
-rw-r--r--MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c218
-rw-r--r--MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c20
-rw-r--r--MdeModulePkg/Universal/Disk/UdfDxe/File.c275
-rw-r--r--MdeModulePkg/Universal/Disk/UdfDxe/FileName.c126
-rw-r--r--MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c1478
-rw-r--r--MdeModulePkg/Universal/Disk/UdfDxe/Udf.c185
-rw-r--r--MdeModulePkg/Universal/Disk/UdfDxe/Udf.h347
-rw-r--r--MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.c247
-rw-r--r--MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.h48
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c3300
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.h329
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/InputHandler.c1736
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/Popup.c490
-rw-r--r--MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c1321
-rw-r--r--MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c415
-rw-r--r--MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h31
-rw-r--r--MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h16
-rw-r--r--MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c1556
-rw-r--r--MdeModulePkg/Universal/DriverSampleDxe/DriverSample.h44
-rw-r--r--MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h128
-rw-r--r--MdeModulePkg/Universal/EbcDxe/AArch64/EbcSupport.c182
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c48
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c164
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.h14
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBranch.c66
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreak.c49
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c139
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtIo.c51
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtPci.c41
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c19
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdHelp.c11
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c254
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdQuit.c8
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdRegister.c9
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdScope.c25
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdStep.c36
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdSymbol.c251
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.c302
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.h6
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h204
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.c1073
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.h8
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.c341
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.h86
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c253
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupport.h84
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportFile.c118
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportString.c278
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportUI.c508
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.c893
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.h72
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.c30
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h39
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcExecute.c1960
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcExecute.h25
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcInt.c527
-rw-r--r--MdeModulePkg/Universal/EbcDxe/EbcInt.h72
-rw-r--r--MdeModulePkg/Universal/EbcDxe/Ia32/EbcSupport.c285
-rw-r--r--MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c286
-rw-r--r--MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c296
-rw-r--r--MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c165
-rw-r--r--MdeModulePkg/Universal/EsrtDxe/EsrtImpl.h70
-rw-r--r--MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c68
-rw-r--r--MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDebugPrint.c40
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c339
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h193
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c55
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c177
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmCommon.h58
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.c189
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.h53
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.c8
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditionalMm.c28
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c326
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c193
-rw-r--r--MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c111
-rw-r--r--MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c9
-rw-r--r--MdeModulePkg/Universal/FvSimpleFileSystemDxe/ComponentName.c18
-rw-r--r--MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c309
-rw-r--r--MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemEntryPoint.c187
-rw-r--r--MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemInternal.h135
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c1825
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c3576
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/Database.c2443
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/Font.c1610
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h779
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c55
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/Image.c870
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ImageEx.c258
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/String.c1239
-rw-r--r--MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSample.c41
-rw-r--r--MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.c21
-rw-r--r--MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.h16
-rw-r--r--MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.c185
-rw-r--r--MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c155
-rw-r--r--MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.c295
-rw-r--r--MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.h66
-rw-r--r--MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c90
-rw-r--r--MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h26
-rw-r--r--MdeModulePkg/Universal/Metronome/Metronome.c6
-rw-r--r--MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounter.c52
-rw-r--r--MdeModulePkg/Universal/PCD/Dxe/Pcd.c357
-rw-r--r--MdeModulePkg/Universal/PCD/Dxe/Service.c935
-rw-r--r--MdeModulePkg/Universal/PCD/Dxe/Service.h293
-rw-r--r--MdeModulePkg/Universal/PCD/Pei/Pcd.c519
-rw-r--r--MdeModulePkg/Universal/PCD/Pei/Service.c420
-rw-r--r--MdeModulePkg/Universal/PCD/Pei/Service.h207
-rw-r--r--MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PciCfg2.c123
-rw-r--r--MdeModulePkg/Universal/PlatformDriOverrideDxe/InternalPlatDriOverrideDxe.h38
-rw-r--r--MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c753
-rw-r--r--MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideLib.c804
-rw-r--r--MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatOverMngr.h36
-rw-r--r--MdeModulePkg/Universal/PrintDxe/Print.c25
-rw-r--r--MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c84
-rw-r--r--MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h150
-rw-r--r--MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c73
-rw-r--r--MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h20
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.c90
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.h19
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.c118
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.h47
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.c44
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.h20
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c4
-rw-r--r--MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c4
-rw-r--r--MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c112
-rw-r--r--MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h35
-rw-r--r--MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c120
-rw-r--r--MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.h29
-rw-r--r--MdeModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.c44
-rw-r--r--MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.c43
-rw-r--r--MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.c116
-rw-r--r--MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h12
-rw-r--r--MdeModulePkg/Universal/SecurityStubDxe/SecurityStub.c57
-rw-r--r--MdeModulePkg/Universal/SerialDxe/SerialIo.c227
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Expression.c2627
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Expression.h29
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c2594
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c1075
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Setup.c2321
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Setup.h839
-rw-r--r--MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c641
-rw-r--r--MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h71
-rw-r--r--MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c308
-rw-r--r--MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c18
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Pei/MemoryStausCodeWorker.c31
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c50
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c10
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h30
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/MemoryStatusCodeWorker.c20
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c53
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c40
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h23
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Smm/MemoryStatusCodeWorker.c32
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c46
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.c11
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.h23
-rw-r--r--MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c4
-rw-r--r--MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c20
-rw-r--r--MdeModulePkg/Universal/Variable/Pei/Variable.c443
-rw-r--r--MdeModulePkg/Universal/Variable/Pei/Variable.h25
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c182
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/PrivilegePolymorphic.h15
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/Reclaim.c32
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/VariableLockRequestToLockUnitTest.c274
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockDxe.c65
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c173
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c21
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c1369
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h223
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c196
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableExLib.c104
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequestToLock.c28
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c99
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.h2
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.c300
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.h66
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c272
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.c101
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.h6
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c405
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.c606
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c4
-rw-r--r--MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c16
-rw-r--r--MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c11
-rw-r--r--MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.h3
283 files changed, 40978 insertions, 38181 deletions
diff --git a/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatform.c b/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatform.c
index 8d376af..8b58b9e 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatform.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatform.c
@@ -32,18 +32,18 @@
**/
EFI_STATUS
LocateFvInstanceWithTables (
- OUT EFI_FIRMWARE_VOLUME2_PROTOCOL **Instance
+ OUT EFI_FIRMWARE_VOLUME2_PROTOCOL **Instance
)
{
- EFI_STATUS Status;
- EFI_HANDLE *HandleBuffer;
- UINTN NumberOfHandles;
- EFI_FV_FILETYPE FileType;
- UINT32 FvStatus;
- EFI_FV_FILE_ATTRIBUTES Attributes;
- UINTN Size;
- UINTN Index;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *FvInstance;
+ EFI_STATUS Status;
+ EFI_HANDLE *HandleBuffer;
+ UINTN NumberOfHandles;
+ EFI_FV_FILETYPE FileType;
+ UINT32 FvStatus;
+ EFI_FV_FILE_ATTRIBUTES Attributes;
+ UINTN Size;
+ UINTN Index;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *FvInstance;
FvStatus = 0;
@@ -51,12 +51,12 @@ LocateFvInstanceWithTables (
// Locate protocol.
//
Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiFirmwareVolume2ProtocolGuid,
- NULL,
- &NumberOfHandles,
- &HandleBuffer
- );
+ ByProtocol,
+ &gEfiFirmwareVolume2ProtocolGuid,
+ NULL,
+ &NumberOfHandles,
+ &HandleBuffer
+ );
if (EFI_ERROR (Status)) {
//
// Defined errors at this time are not found and out of resources.
@@ -64,8 +64,6 @@ LocateFvInstanceWithTables (
return Status;
}
-
-
//
// Looking for FV with ACPI storage file
//
@@ -76,10 +74,10 @@ LocateFvInstanceWithTables (
// This should not fail because of LocateHandleBuffer
//
Status = gBS->HandleProtocol (
- HandleBuffer[Index],
- &gEfiFirmwareVolume2ProtocolGuid,
- (VOID**) &FvInstance
- );
+ HandleBuffer[Index],
+ &gEfiFirmwareVolume2ProtocolGuid,
+ (VOID **)&FvInstance
+ );
ASSERT_EFI_ERROR (Status);
//
@@ -87,7 +85,7 @@ LocateFvInstanceWithTables (
//
Status = FvInstance->ReadFile (
FvInstance,
- (EFI_GUID*)PcdGetPtr (PcdAcpiTableStorageFile),
+ (EFI_GUID *)PcdGetPtr (PcdAcpiTableStorageFile),
NULL,
&Size,
&FileType,
@@ -117,7 +115,6 @@ LocateFvInstanceWithTables (
return Status;
}
-
/**
This function calculates and updates an UINT8 checksum.
@@ -127,11 +124,11 @@ LocateFvInstanceWithTables (
**/
VOID
AcpiPlatformChecksum (
- IN UINT8 *Buffer,
- IN UINTN Size
+ IN UINT8 *Buffer,
+ IN UINTN Size
)
{
- UINTN ChecksumOffset;
+ UINTN ChecksumOffset;
ChecksumOffset = OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER, Checksum);
@@ -143,10 +140,9 @@ AcpiPlatformChecksum (
//
// Update checksum value
//
- Buffer[ChecksumOffset] = CalculateCheckSum8(Buffer, Size);
+ Buffer[ChecksumOffset] = CalculateCheckSum8 (Buffer, Size);
}
-
/**
Entrypoint of Acpi Platform driver.
@@ -161,8 +157,8 @@ AcpiPlatformChecksum (
EFI_STATUS
EFIAPI
AcpiPlatformEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -182,7 +178,7 @@ AcpiPlatformEntryPoint (
//
// Find the AcpiTable protocol
//
- Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID**)&AcpiTable);
+ Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID **)&AcpiTable);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -194,33 +190,33 @@ AcpiPlatformEntryPoint (
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Read tables from the storage file.
//
while (Status == EFI_SUCCESS) {
-
Status = FwVol->ReadSection (
FwVol,
- (EFI_GUID*)PcdGetPtr (PcdAcpiTableStorageFile),
+ (EFI_GUID *)PcdGetPtr (PcdAcpiTableStorageFile),
EFI_SECTION_RAW,
Instance,
- (VOID**) &CurrentTable,
+ (VOID **)&CurrentTable,
&Size,
&FvStatus
);
- if (!EFI_ERROR(Status)) {
+ if (!EFI_ERROR (Status)) {
//
// Add the table
//
TableHandle = 0;
- TableSize = ((EFI_ACPI_DESCRIPTION_HEADER *) CurrentTable)->Length;
+ TableSize = ((EFI_ACPI_DESCRIPTION_HEADER *)CurrentTable)->Length;
ASSERT (Size >= TableSize);
//
// Checksum ACPI table
//
- AcpiPlatformChecksum ((UINT8*)CurrentTable, TableSize);
+ AcpiPlatformChecksum ((UINT8 *)CurrentTable, TableSize);
//
// Install ACPI table
@@ -237,7 +233,7 @@ AcpiPlatformEntryPoint (
//
gBS->FreePool (CurrentTable);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -254,4 +250,3 @@ AcpiPlatformEntryPoint (
//
return EFI_REQUEST_UNLOAD_IMAGE;
}
-
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c
index 5019b49..bb258c9 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c
@@ -50,10 +50,10 @@ FindTableByBuffer (
IN VOID *Buffer
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
- LIST_ENTRY *CurrentLink;
- EFI_ACPI_TABLE_LIST *CurrentTableList;
- LIST_ENTRY *StartLink;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ LIST_ENTRY *CurrentLink;
+ EFI_ACPI_TABLE_LIST *CurrentTableList;
+ LIST_ENTRY *StartLink;
//
// Get the instance of the ACPI Table
@@ -69,7 +69,8 @@ FindTableByBuffer (
while (CurrentLink != StartLink) {
CurrentTableList = EFI_ACPI_TABLE_LIST_FROM_LINK (CurrentLink);
if (((UINTN)CurrentTableList->Table <= (UINTN)Buffer) &&
- ((UINTN)CurrentTableList->Table + CurrentTableList->TableSize > (UINTN)Buffer)) {
+ ((UINTN)CurrentTableList->Table + CurrentTableList->TableSize > (UINTN)Buffer))
+ {
//
// Good! Found Table.
//
@@ -96,7 +97,7 @@ SdtUpdateAmlChecksum (
IN VOID *Buffer
)
{
- EFI_ACPI_TABLE_LIST *CurrentTableList;
+ EFI_ACPI_TABLE_LIST *CurrentTableList;
CurrentTableList = FindTableByBuffer (Buffer);
if (CurrentTableList == NULL) {
@@ -123,11 +124,11 @@ SdtUpdateAmlChecksum (
**/
EFI_STATUS
SdtGetMaxAmlBufferSize (
- IN VOID *Buffer,
- OUT UINTN *MaxSize
+ IN VOID *Buffer,
+ OUT UINTN *MaxSize
)
{
- EFI_ACPI_TABLE_LIST *CurrentTableList;
+ EFI_ACPI_TABLE_LIST *CurrentTableList;
CurrentTableList = FindTableByBuffer (Buffer);
if (CurrentTableList == NULL) {
@@ -147,16 +148,16 @@ SdtGetMaxAmlBufferSize (
**/
VOID
SdtNotifyAcpiList (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN UINTN Handle
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN UINTN Handle
)
{
- EFI_ACPI_NOTIFY_LIST *CurrentNotifyList;
- LIST_ENTRY *CurrentLink;
- LIST_ENTRY *StartLink;
- EFI_ACPI_TABLE_LIST *Table;
- EFI_STATUS Status;
+ EFI_ACPI_NOTIFY_LIST *CurrentNotifyList;
+ LIST_ENTRY *CurrentLink;
+ LIST_ENTRY *StartLink;
+ EFI_ACPI_TABLE_LIST *Table;
+ EFI_STATUS Status;
//
// We should not use Table buffer, because it is user input buffer.
@@ -185,7 +186,7 @@ SdtNotifyAcpiList (
CurrentLink = CurrentLink->ForwardLink;
}
- return ;
+ return;
}
/**
@@ -215,33 +216,35 @@ SdtNotifyAcpiList (
**/
EFI_STATUS
SdtGetAcpiTable (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN UINTN Index,
- OUT EFI_ACPI_SDT_HEADER **Table,
- OUT EFI_ACPI_TABLE_VERSION *Version,
- OUT UINTN *TableKey
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN UINTN Index,
+ OUT EFI_ACPI_SDT_HEADER **Table,
+ OUT EFI_ACPI_TABLE_VERSION *Version,
+ OUT UINTN *TableKey
)
{
- UINTN TableIndex;
- LIST_ENTRY *CurrentLink;
- LIST_ENTRY *StartLink;
- EFI_ACPI_TABLE_LIST *CurrentTable;
+ UINTN TableIndex;
+ LIST_ENTRY *CurrentLink;
+ LIST_ENTRY *StartLink;
+ EFI_ACPI_TABLE_LIST *CurrentTable;
+
//
// Find the table
//
StartLink = &AcpiTableInstance->TableList;
CurrentLink = StartLink->ForwardLink;
- TableIndex = 0;
+ TableIndex = 0;
while (CurrentLink != StartLink) {
if (TableIndex == Index) {
break;
}
+
//
// Next one
//
CurrentLink = CurrentLink->ForwardLink;
- TableIndex ++;
+ TableIndex++;
}
if ((TableIndex != Index) || (CurrentLink == StartLink)) {
@@ -251,10 +254,10 @@ SdtGetAcpiTable (
//
// Get handle and version
//
- CurrentTable = EFI_ACPI_TABLE_LIST_FROM_LINK (CurrentLink);
- *TableKey = CurrentTable->Handle;
- *Version = CurrentTable->Version;
- *Table = (EFI_ACPI_SDT_HEADER *)CurrentTable->Table;
+ CurrentTable = EFI_ACPI_TABLE_LIST_FROM_LINK (CurrentLink);
+ *TableKey = CurrentTable->Handle;
+ *Version = CurrentTable->Version;
+ *Table = (EFI_ACPI_SDT_HEADER *)CurrentTable->Table;
return EFI_SUCCESS;
}
@@ -287,13 +290,13 @@ SdtGetAcpiTable (
EFI_STATUS
EFIAPI
GetAcpiTable2 (
- IN UINTN Index,
- OUT EFI_ACPI_SDT_HEADER **Table,
- OUT EFI_ACPI_TABLE_VERSION *Version,
- OUT UINTN *TableKey
+ IN UINTN Index,
+ OUT EFI_ACPI_SDT_HEADER **Table,
+ OUT EFI_ACPI_TABLE_VERSION *Version,
+ OUT UINTN *TableKey
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
ASSERT (Table != NULL);
ASSERT (Version != NULL);
@@ -307,7 +310,6 @@ GetAcpiTable2 (
return SdtGetAcpiTable (AcpiTableInstance, Index, Table, Version, TableKey);
}
-
/**
Register a callback when an ACPI table is installed.
@@ -317,11 +319,11 @@ GetAcpiTable2 (
**/
VOID
SdtRegisterNotify (
- IN EFI_ACPI_NOTIFICATION_FN Notification
+ IN EFI_ACPI_NOTIFICATION_FN Notification
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
- EFI_ACPI_NOTIFY_LIST *CurrentNotifyList;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ EFI_ACPI_NOTIFY_LIST *CurrentNotifyList;
//
// Get the instance of the ACPI Table
@@ -345,7 +347,7 @@ SdtRegisterNotify (
//
InsertTailList (&AcpiTableInstance->NotifyList, &CurrentNotifyList->Link);
- return ;
+ return;
}
/**
@@ -360,13 +362,13 @@ SdtRegisterNotify (
**/
EFI_STATUS
SdtUnregisterNotify (
- IN EFI_ACPI_NOTIFICATION_FN Notification
+ IN EFI_ACPI_NOTIFICATION_FN Notification
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
- EFI_ACPI_NOTIFY_LIST *CurrentNotifyList;
- LIST_ENTRY *CurrentLink;
- LIST_ENTRY *StartLink;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ EFI_ACPI_NOTIFY_LIST *CurrentNotifyList;
+ LIST_ENTRY *CurrentLink;
+ LIST_ENTRY *StartLink;
//
// Get the instance of the ACPI Table
@@ -418,8 +420,8 @@ SdtUnregisterNotify (
EFI_STATUS
EFIAPI
RegisterNotify (
- IN BOOLEAN Register,
- IN EFI_ACPI_NOTIFICATION_FN Notification
+ IN BOOLEAN Register,
+ IN EFI_ACPI_NOTIFICATION_FN Notification
)
{
//
@@ -454,14 +456,14 @@ RegisterNotify (
**/
EFI_STATUS
SdtOpenSdtTable (
- IN UINTN TableKey,
- OUT EFI_ACPI_HANDLE *Handle
+ IN UINTN TableKey,
+ OUT EFI_ACPI_HANDLE *Handle
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
- EFI_STATUS Status;
- EFI_ACPI_TABLE_LIST *Table;
- EFI_AML_HANDLE *AmlHandle;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ EFI_STATUS Status;
+ EFI_ACPI_TABLE_LIST *Table;
+ EFI_AML_HANDLE *AmlHandle;
//
// Get the instance of the ACPI Table
@@ -480,11 +482,11 @@ SdtOpenSdtTable (
return EFI_NOT_FOUND;
}
- AmlHandle = AllocatePool (sizeof(*AmlHandle));
+ AmlHandle = AllocatePool (sizeof (*AmlHandle));
ASSERT (AmlHandle != NULL);
AmlHandle->Signature = EFI_AML_ROOT_HANDLE_SIGNATURE;
- AmlHandle->Buffer = (VOID *)((UINTN)Table->Table + sizeof(EFI_ACPI_SDT_HEADER));
- AmlHandle->Size = Table->Table->Length - sizeof(EFI_ACPI_SDT_HEADER);
+ AmlHandle->Buffer = (VOID *)((UINTN)Table->Table + sizeof (EFI_ACPI_SDT_HEADER));
+ AmlHandle->Size = Table->Table->Length - sizeof (EFI_ACPI_SDT_HEADER);
AmlHandle->AmlByteEncoding = NULL;
AmlHandle->Modified = FALSE;
@@ -508,8 +510,8 @@ SdtOpenSdtTable (
EFI_STATUS
EFIAPI
OpenSdt (
- IN UINTN TableKey,
- OUT EFI_ACPI_HANDLE *Handle
+ IN UINTN TableKey,
+ OUT EFI_ACPI_HANDLE *Handle
)
{
if (Handle == NULL) {
@@ -533,13 +535,13 @@ OpenSdt (
**/
EFI_STATUS
SdtOpenEx (
- IN VOID *Buffer,
- IN UINTN BufferSize,
- OUT EFI_ACPI_HANDLE *Handle
+ IN VOID *Buffer,
+ IN UINTN BufferSize,
+ OUT EFI_ACPI_HANDLE *Handle
)
{
- AML_BYTE_ENCODING *AmlByteEncoding;
- EFI_AML_HANDLE *AmlHandle;
+ AML_BYTE_ENCODING *AmlByteEncoding;
+ EFI_AML_HANDLE *AmlHandle;
AmlByteEncoding = AmlSearchByOpByte (Buffer);
if (AmlByteEncoding == NULL) {
@@ -556,7 +558,7 @@ SdtOpenEx (
//
// Good, find it
//
- AmlHandle = AllocatePool (sizeof(*AmlHandle));
+ AmlHandle = AllocatePool (sizeof (*AmlHandle));
ASSERT (AmlHandle != NULL);
AmlHandle->Signature = EFI_AML_HANDLE_SIGNATURE;
@@ -589,19 +591,19 @@ SdtOpenEx (
EFI_STATUS
EFIAPI
Open (
- IN VOID *Buffer,
- OUT EFI_ACPI_HANDLE *Handle
+ IN VOID *Buffer,
+ OUT EFI_ACPI_HANDLE *Handle
)
{
- EFI_STATUS Status;
- UINTN MaxSize;
+ EFI_STATUS Status;
+ UINTN MaxSize;
MaxSize = 0;
//
// Check for invalid input parameters
//
- if (Buffer == NULL || Handle == NULL) {
+ if ((Buffer == NULL) || (Handle == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -624,11 +626,11 @@ Open (
EFI_STATUS
EFIAPI
Close (
- IN EFI_ACPI_HANDLE Handle
+ IN EFI_ACPI_HANDLE Handle
)
{
- EFI_AML_HANDLE *AmlHandle;
- EFI_STATUS Status;
+ EFI_AML_HANDLE *AmlHandle;
+ EFI_STATUS Status;
//
// Check for invalid input parameters
@@ -639,7 +641,8 @@ Close (
AmlHandle = (EFI_AML_HANDLE *)Handle;
if ((AmlHandle->Signature != EFI_AML_ROOT_HANDLE_SIGNATURE) &&
- (AmlHandle->Signature != EFI_AML_HANDLE_SIGNATURE)) {
+ (AmlHandle->Signature != EFI_AML_HANDLE_SIGNATURE))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -682,9 +685,9 @@ GetOption (
OUT UINTN *DataSize
)
{
- EFI_AML_HANDLE *AmlHandle;
- AML_BYTE_ENCODING *AmlByteEncoding;
- EFI_STATUS Status;
+ EFI_AML_HANDLE *AmlHandle;
+ AML_BYTE_ENCODING *AmlByteEncoding;
+ EFI_STATUS Status;
ASSERT (DataType != NULL);
ASSERT (Data != NULL);
@@ -740,10 +743,10 @@ GetOption (
EFI_STATUS
EFIAPI
SetOption (
- IN EFI_ACPI_HANDLE Handle,
- IN UINTN Index,
- IN CONST VOID *Data,
- IN UINTN DataSize
+ IN EFI_ACPI_HANDLE Handle,
+ IN UINTN Index,
+ IN CONST VOID *Data,
+ IN UINTN DataSize
)
{
EFI_AML_HANDLE *AmlHandle;
@@ -769,6 +772,7 @@ SetOption (
if (AmlHandle->Signature != EFI_AML_HANDLE_SIGNATURE) {
return EFI_INVALID_PARAMETER;
}
+
AmlByteEncoding = AmlHandle->AmlByteEncoding;
if (Index > AmlByteEncoding->MaxIndex) {
@@ -782,6 +786,7 @@ SetOption (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
if (DataType == EFI_ACPI_DATA_TYPE_NONE) {
return EFI_INVALID_PARAMETER;
}
@@ -813,14 +818,14 @@ SetOption (
EFI_STATUS
EFIAPI
GetChild (
- IN EFI_ACPI_HANDLE ParentHandle,
- IN OUT EFI_ACPI_HANDLE *Handle
+ IN EFI_ACPI_HANDLE ParentHandle,
+ IN OUT EFI_ACPI_HANDLE *Handle
)
{
- EFI_AML_HANDLE *AmlParentHandle;
- EFI_AML_HANDLE *AmlHandle;
- VOID *Buffer;
- EFI_STATUS Status;
+ EFI_AML_HANDLE *AmlParentHandle;
+ EFI_AML_HANDLE *AmlHandle;
+ VOID *Buffer;
+ EFI_STATUS Status;
ASSERT (Handle != NULL);
@@ -831,7 +836,7 @@ GetChild (
return EFI_INVALID_PARAMETER;
}
- AmlHandle = *Handle;
+ AmlHandle = *Handle;
if ((AmlHandle != NULL) && (AmlHandle->Signature != EFI_AML_HANDLE_SIGNATURE)) {
return EFI_INVALID_PARAMETER;
}
@@ -857,10 +862,12 @@ GetChild (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
if (Buffer == NULL) {
*Handle = NULL;
return EFI_SUCCESS;
}
+
return SdtOpenEx (Buffer, (UINTN)AmlParentHandle->Buffer + AmlParentHandle->Size - (UINTN)Buffer, Handle);
}
@@ -877,16 +884,16 @@ GetChild (
**/
EFI_STATUS
SdtFindPathFromNonRoot (
- IN EFI_ACPI_HANDLE HandleIn,
- IN UINT8 *AmlPath,
- OUT EFI_ACPI_HANDLE *HandleOut
+ IN EFI_ACPI_HANDLE HandleIn,
+ IN UINT8 *AmlPath,
+ OUT EFI_ACPI_HANDLE *HandleOut
)
{
- EFI_AML_HANDLE *AmlHandle;
- VOID *Buffer;
- EFI_STATUS Status;
+ EFI_AML_HANDLE *AmlHandle;
+ VOID *Buffer;
+ EFI_STATUS Status;
- Buffer = NULL;
+ Buffer = NULL;
AmlHandle = (EFI_AML_HANDLE *)HandleIn;
//
@@ -896,10 +903,12 @@ SdtFindPathFromNonRoot (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
if (Buffer == NULL) {
*HandleOut = NULL;
return EFI_SUCCESS;
}
+
return SdtOpenEx (Buffer, (UINTN)AmlHandle->Buffer + AmlHandle->Size - (UINTN)Buffer, HandleOut);
}
@@ -912,14 +921,14 @@ SdtFindPathFromNonRoot (
**/
EFI_AML_HANDLE *
SdtDuplicateHandle (
- IN EFI_AML_HANDLE *AmlHandle
+ IN EFI_AML_HANDLE *AmlHandle
)
{
EFI_AML_HANDLE *DstAmlHandle;
- DstAmlHandle = AllocatePool (sizeof(*DstAmlHandle));
+ DstAmlHandle = AllocatePool (sizeof (*DstAmlHandle));
ASSERT (DstAmlHandle != NULL);
- CopyMem (DstAmlHandle, (VOID *)AmlHandle, sizeof(*DstAmlHandle));
+ CopyMem (DstAmlHandle, (VOID *)AmlHandle, sizeof (*DstAmlHandle));
return DstAmlHandle;
}
@@ -937,17 +946,17 @@ SdtDuplicateHandle (
**/
EFI_STATUS
SdtFindPathFromRoot (
- IN EFI_ACPI_HANDLE HandleIn,
- IN UINT8 *AmlPath,
- OUT EFI_ACPI_HANDLE *HandleOut
+ IN EFI_ACPI_HANDLE HandleIn,
+ IN UINT8 *AmlPath,
+ OUT EFI_ACPI_HANDLE *HandleOut
)
{
- EFI_ACPI_HANDLE ChildHandle;
- EFI_AML_HANDLE *AmlHandle;
- EFI_STATUS Status;
- VOID *Buffer;
+ EFI_ACPI_HANDLE ChildHandle;
+ EFI_AML_HANDLE *AmlHandle;
+ EFI_STATUS Status;
+ VOID *Buffer;
- Buffer = NULL;
+ Buffer = NULL;
AmlHandle = (EFI_AML_HANDLE *)HandleIn;
//
@@ -983,7 +992,7 @@ SdtFindPathFromRoot (
// More child
//
AmlHandle = (EFI_AML_HANDLE *)ChildHandle;
- Status = AmlFindPath (AmlHandle, AmlPath, &Buffer, TRUE);
+ Status = AmlFindPath (AmlHandle, AmlPath, &Buffer, TRUE);
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
@@ -993,9 +1002,10 @@ SdtFindPathFromRoot (
// Great! Find it, open
//
Status = SdtOpenEx (Buffer, (UINTN)AmlHandle->Buffer + AmlHandle->Size - (UINTN)Buffer, HandleOut);
- if (!EFI_ERROR (Status)) {
+ if (!EFI_ERROR (Status)) {
return EFI_SUCCESS;
}
+
//
// Not success, try next one
//
@@ -1021,14 +1031,14 @@ SdtFindPathFromRoot (
EFI_STATUS
EFIAPI
FindPath (
- IN EFI_ACPI_HANDLE HandleIn,
- IN VOID *AcpiPath,
- OUT EFI_ACPI_HANDLE *HandleOut
+ IN EFI_ACPI_HANDLE HandleIn,
+ IN VOID *AcpiPath,
+ OUT EFI_ACPI_HANDLE *HandleOut
)
{
- EFI_AML_HANDLE *AmlHandle;
- EFI_STATUS Status;
- UINT8 *AmlPath;
+ EFI_AML_HANDLE *AmlHandle;
+ EFI_STATUS Status;
+ UINT8 *AmlPath;
//
// Check for invalid input parameters
@@ -1079,13 +1089,12 @@ FindPath (
**/
VOID
SdtAcpiTableAcpiSdtConstructor (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
)
{
-
InitializeListHead (&AcpiTableInstance->NotifyList);
- CopyMem (&AcpiTableInstance->AcpiSdtProtocol, &mAcpiSdtProtocolTemplate, sizeof(mAcpiSdtProtocolTemplate));
+ CopyMem (&AcpiTableInstance->AcpiSdtProtocol, &mAcpiSdtProtocolTemplate, sizeof (mAcpiSdtProtocolTemplate));
AcpiTableInstance->AcpiSdtProtocol.AcpiVersion = (EFI_ACPI_TABLE_VERSION)PcdGet32 (PcdAcpiExposedTableVersions);
- return ;
+ return;
}
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
index 1b26729..89eb535 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.h
@@ -16,7 +16,7 @@
//
// ACPI Notify Linked List Signature.
//
-#define EFI_ACPI_NOTIFY_LIST_SIGNATURE SIGNATURE_32 ('E', 'A', 'N', 'L')
+#define EFI_ACPI_NOTIFY_LIST_SIGNATURE SIGNATURE_32 ('E', 'A', 'N', 'L')
//
// ACPI Notify List Entry definition.
@@ -26,9 +26,9 @@
// Notification is the callback function.
//
typedef struct {
- UINT32 Signature;
- LIST_ENTRY Link;
- EFI_ACPI_NOTIFICATION_FN Notification;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ EFI_ACPI_NOTIFICATION_FN Notification;
} EFI_ACPI_NOTIFY_LIST;
//
@@ -36,13 +36,13 @@ typedef struct {
//
#define EFI_ACPI_NOTIFY_LIST_FROM_LINK(_link) CR (_link, EFI_ACPI_NOTIFY_LIST, Link, EFI_ACPI_NOTIFY_LIST_SIGNATURE)
-typedef struct _AML_BYTE_ENCODING AML_BYTE_ENCODING;
-typedef struct _EFI_AML_NODE_LIST EFI_AML_NODE_LIST;
+typedef struct _AML_BYTE_ENCODING AML_BYTE_ENCODING;
+typedef struct _EFI_AML_NODE_LIST EFI_AML_NODE_LIST;
//
// AML Node Linked List Signature.
//
-#define EFI_AML_NODE_LIST_SIGNATURE SIGNATURE_32 ('E', 'A', 'M', 'L')
+#define EFI_AML_NODE_LIST_SIGNATURE SIGNATURE_32 ('E', 'A', 'M', 'L')
//
// AML Node Linked List Entry definition.
@@ -58,14 +58,14 @@ typedef struct _EFI_AML_NODE_LIST EFI_AML_NODE_LIST;
//
struct _EFI_AML_NODE_LIST {
- UINT32 Signature;
- UINT8 Name[AML_NAME_SEG_SIZE];
- UINT8 *Buffer;
- UINTN Size;
- LIST_ENTRY Link;
- LIST_ENTRY Children;
- EFI_AML_NODE_LIST *Parent;
- AML_BYTE_ENCODING *AmlByteEncoding;
+ UINT32 Signature;
+ UINT8 Name[AML_NAME_SEG_SIZE];
+ UINT8 *Buffer;
+ UINTN Size;
+ LIST_ENTRY Link;
+ LIST_ENTRY Children;
+ EFI_AML_NODE_LIST *Parent;
+ AML_BYTE_ENCODING *AmlByteEncoding;
};
//
@@ -76,8 +76,8 @@ struct _EFI_AML_NODE_LIST {
//
// AML Handle Signature.
//
-#define EFI_AML_HANDLE_SIGNATURE SIGNATURE_32 ('E', 'A', 'H', 'S')
-#define EFI_AML_ROOT_HANDLE_SIGNATURE SIGNATURE_32 ('E', 'A', 'R', 'H')
+#define EFI_AML_HANDLE_SIGNATURE SIGNATURE_32 ('E', 'A', 'H', 'S')
+#define EFI_AML_ROOT_HANDLE_SIGNATURE SIGNATURE_32 ('E', 'A', 'R', 'H')
//
// AML Handle Entry definition.
@@ -88,50 +88,50 @@ struct _EFI_AML_NODE_LIST {
// Size is the total size of this ACPI node buffer.
//
typedef struct {
- UINT32 Signature;
- UINT8 *Buffer;
- UINTN Size;
- AML_BYTE_ENCODING *AmlByteEncoding;
- BOOLEAN Modified;
+ UINT32 Signature;
+ UINT8 *Buffer;
+ UINTN Size;
+ AML_BYTE_ENCODING *AmlByteEncoding;
+ BOOLEAN Modified;
} EFI_AML_HANDLE;
typedef UINT32 AML_OP_PARSE_INDEX;
-#define AML_OP_PARSE_INDEX_GET_OPCODE 0
-#define AML_OP_PARSE_INDEX_GET_TERM1 1
-#define AML_OP_PARSE_INDEX_GET_TERM2 2
-#define AML_OP_PARSE_INDEX_GET_TERM3 3
-#define AML_OP_PARSE_INDEX_GET_TERM4 4
-#define AML_OP_PARSE_INDEX_GET_TERM5 5
-#define AML_OP_PARSE_INDEX_GET_TERM6 6
-#define AML_OP_PARSE_INDEX_GET_SIZE (AML_OP_PARSE_INDEX)-1
+#define AML_OP_PARSE_INDEX_GET_OPCODE 0
+#define AML_OP_PARSE_INDEX_GET_TERM1 1
+#define AML_OP_PARSE_INDEX_GET_TERM2 2
+#define AML_OP_PARSE_INDEX_GET_TERM3 3
+#define AML_OP_PARSE_INDEX_GET_TERM4 4
+#define AML_OP_PARSE_INDEX_GET_TERM5 5
+#define AML_OP_PARSE_INDEX_GET_TERM6 6
+#define AML_OP_PARSE_INDEX_GET_SIZE (AML_OP_PARSE_INDEX)-1
typedef UINT32 AML_OP_PARSE_FORMAT;
-#define AML_NONE 0
-#define AML_OPCODE 1
-#define AML_UINT8 2
-#define AML_UINT16 3
-#define AML_UINT32 4
-#define AML_UINT64 5
-#define AML_NAME 6
-#define AML_STRING 7
-#define AML_OBJECT 8
+#define AML_NONE 0
+#define AML_OPCODE 1
+#define AML_UINT8 2
+#define AML_UINT16 3
+#define AML_UINT32 4
+#define AML_UINT64 5
+#define AML_NAME 6
+#define AML_STRING 7
+#define AML_OBJECT 8
typedef UINT32 AML_OP_ATTRIBUTE;
-#define AML_HAS_PKG_LENGTH 0x1 // It is ACPI attribute - if OpCode has PkgLength
-#define AML_IS_NAME_CHAR 0x2 // It is ACPI attribute - if this is NameChar
-#define AML_HAS_CHILD_OBJ 0x4 // it is ACPI attribute - if OpCode has Child Object.
-#define AML_IN_NAMESPACE 0x10000 // It is UEFI SDT attribute - if OpCode will be in NameSpace
+#define AML_HAS_PKG_LENGTH 0x1 // It is ACPI attribute - if OpCode has PkgLength
+#define AML_IS_NAME_CHAR 0x2 // It is ACPI attribute - if this is NameChar
+#define AML_HAS_CHILD_OBJ 0x4 // it is ACPI attribute - if OpCode has Child Object.
+#define AML_IN_NAMESPACE 0x10000 // It is UEFI SDT attribute - if OpCode will be in NameSpace
// NOTE; Not all OBJECT will be in NameSpace
// For example, BankField | CreateBitField | CreateByteField | CreateDWordField |
// CreateField | CreateQWordField | CreateWordField | Field | IndexField.
struct _AML_BYTE_ENCODING {
- UINT8 OpCode;
- UINT8 SubOpCode;
- AML_OP_PARSE_INDEX MaxIndex;
- AML_OP_PARSE_FORMAT Format[6];
- AML_OP_ATTRIBUTE Attribute;
+ UINT8 OpCode;
+ UINT8 SubOpCode;
+ AML_OP_PARSE_INDEX MaxIndex;
+ AML_OP_PARSE_FORMAT Format[6];
+ AML_OP_ATTRIBUTE Attribute;
};
//
@@ -167,10 +167,10 @@ struct _AML_BYTE_ENCODING {
EFI_STATUS
EFIAPI
GetAcpiTable2 (
- IN UINTN Index,
- OUT EFI_ACPI_SDT_HEADER **Table,
- OUT EFI_ACPI_TABLE_VERSION *Version,
- OUT UINTN *TableKey
+ IN UINTN Index,
+ OUT EFI_ACPI_SDT_HEADER **Table,
+ OUT EFI_ACPI_TABLE_VERSION *Version,
+ OUT UINTN *TableKey
);
/**
@@ -190,8 +190,8 @@ GetAcpiTable2 (
EFI_STATUS
EFIAPI
RegisterNotify (
- IN BOOLEAN Register,
- IN EFI_ACPI_NOTIFICATION_FN Notification
+ IN BOOLEAN Register,
+ IN EFI_ACPI_NOTIFICATION_FN Notification
);
/**
@@ -206,8 +206,8 @@ RegisterNotify (
EFI_STATUS
EFIAPI
OpenSdt (
- IN UINTN TableKey,
- OUT EFI_ACPI_HANDLE *Handle
+ IN UINTN TableKey,
+ OUT EFI_ACPI_HANDLE *Handle
);
/**
@@ -224,8 +224,8 @@ OpenSdt (
EFI_STATUS
EFIAPI
Open (
- IN VOID *Buffer,
- OUT EFI_ACPI_HANDLE *Handle
+ IN VOID *Buffer,
+ OUT EFI_ACPI_HANDLE *Handle
);
/**
@@ -239,7 +239,7 @@ Open (
EFI_STATUS
EFIAPI
Close (
- IN EFI_ACPI_HANDLE Handle
+ IN EFI_ACPI_HANDLE Handle
);
/**
@@ -284,10 +284,10 @@ GetOption (
EFI_STATUS
EFIAPI
SetOption (
- IN EFI_ACPI_HANDLE Handle,
- IN UINTN Index,
- IN CONST VOID *Data,
- IN UINTN DataSize
+ IN EFI_ACPI_HANDLE Handle,
+ IN UINTN Index,
+ IN CONST VOID *Data,
+ IN UINTN DataSize
);
/**
@@ -304,8 +304,8 @@ SetOption (
EFI_STATUS
EFIAPI
GetChild (
- IN EFI_ACPI_HANDLE ParentHandle,
- IN OUT EFI_ACPI_HANDLE *Handle
+ IN EFI_ACPI_HANDLE ParentHandle,
+ IN OUT EFI_ACPI_HANDLE *Handle
);
/**
@@ -322,9 +322,9 @@ GetChild (
EFI_STATUS
EFIAPI
FindPath (
- IN EFI_ACPI_HANDLE HandleIn,
- IN VOID *AcpiPath,
- OUT EFI_ACPI_HANDLE *HandleOut
+ IN EFI_ACPI_HANDLE HandleIn,
+ IN VOID *AcpiPath,
+ OUT EFI_ACPI_HANDLE *HandleOut
);
//
@@ -345,9 +345,9 @@ FindPath (
**/
EFI_STATUS
SdtOpenEx (
- IN VOID *Buffer,
- IN UINTN BufferSize,
- OUT EFI_ACPI_HANDLE *Handle
+ IN VOID *Buffer,
+ IN UINTN BufferSize,
+ OUT EFI_ACPI_HANDLE *Handle
);
//
@@ -365,8 +365,8 @@ SdtOpenEx (
**/
EFI_STATUS
AmlGetNameStringSize (
- IN UINT8 *Buffer,
- OUT UINTN *BufferSize
+ IN UINT8 *Buffer,
+ OUT UINTN *BufferSize
);
/**
@@ -379,8 +379,8 @@ AmlGetNameStringSize (
**/
UINTN
AmlGetPkgLength (
- IN UINT8 *Buffer,
- OUT UINTN *PkgLength
+ IN UINT8 *Buffer,
+ OUT UINTN *PkgLength
);
/**
@@ -404,7 +404,7 @@ AmlTypeToAcpiType (
**/
AML_BYTE_ENCODING *
AmlSearchByOpByte (
- IN UINT8 *OpByteBuffer
+ IN UINT8 *OpByteBuffer
);
/**
@@ -418,9 +418,9 @@ AmlSearchByOpByte (
**/
UINTN
AmlGetObjectSize (
- IN AML_BYTE_ENCODING *AmlByteEncoding,
- IN UINT8 *Buffer,
- IN UINTN MaxBufferSize
+ IN AML_BYTE_ENCODING *AmlByteEncoding,
+ IN UINT8 *Buffer,
+ IN UINTN MaxBufferSize
);
/**
@@ -432,7 +432,7 @@ AmlGetObjectSize (
**/
CHAR8 *
AmlGetObjectName (
- IN EFI_AML_HANDLE *AmlHandle
+ IN EFI_AML_HANDLE *AmlHandle
);
/**
@@ -451,11 +451,11 @@ AmlGetObjectName (
**/
EFI_STATUS
AmlParseOptionHandleCommon (
- IN EFI_AML_HANDLE *AmlHandle,
- IN AML_OP_PARSE_INDEX Index,
- OUT EFI_ACPI_DATA_TYPE *DataType,
- OUT VOID **Data,
- OUT UINTN *DataSize
+ IN EFI_AML_HANDLE *AmlHandle,
+ IN AML_OP_PARSE_INDEX Index,
+ OUT EFI_ACPI_DATA_TYPE *DataType,
+ OUT VOID **Data,
+ OUT UINTN *DataSize
);
/**
@@ -469,8 +469,8 @@ AmlParseOptionHandleCommon (
**/
EFI_STATUS
AmlGetOffsetAfterLastOption (
- IN EFI_AML_HANDLE *AmlHandle,
- OUT UINT8 **Buffer
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT UINT8 **Buffer
);
/**
@@ -486,9 +486,9 @@ AmlGetOffsetAfterLastOption (
**/
EFI_STATUS
AmlGetChildFromRoot (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN EFI_AML_HANDLE *AmlHandle,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT VOID **Buffer
);
/**
@@ -504,9 +504,9 @@ AmlGetChildFromRoot (
**/
EFI_STATUS
AmlGetChildFromNonRoot (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN EFI_AML_HANDLE *AmlHandle,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT VOID **Buffer
);
/**
@@ -519,7 +519,7 @@ AmlGetChildFromNonRoot (
**/
UINT8 *
AmlNameFromAslName (
- IN UINT8 *AslPath
+ IN UINT8 *AslPath
);
/**
@@ -550,7 +550,7 @@ AmlFindPath (
**/
VOID
AmlPrintNameString (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
);
/**
@@ -560,7 +560,7 @@ AmlPrintNameString (
**/
VOID
AmlPrintNameSeg (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
);
/**
@@ -573,7 +573,7 @@ AmlPrintNameSeg (
**/
BOOLEAN
AmlIsRootPath (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
);
#endif
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.c
index 1d91737..f50068d 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.c
@@ -14,8 +14,8 @@
//
// Handle to install ACPI Table Protocol
//
-EFI_HANDLE mHandle = NULL;
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_ACPI_TABLE_INSTANCE *mPrivateData = NULL;
+EFI_HANDLE mHandle = NULL;
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_ACPI_TABLE_INSTANCE *mPrivateData = NULL;
/**
Entry point of the ACPI table driver.
@@ -33,12 +33,12 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_ACPI_TABLE_INSTANCE *mPrivateData = NULL;
EFI_STATUS
EFIAPI
InitializeAcpiTableDxe (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_ACPI_TABLE_INSTANCE *PrivateData;
+ EFI_STATUS Status;
+ EFI_ACPI_TABLE_INSTANCE *PrivateData;
//
// Initialize our protocol
@@ -61,14 +61,14 @@ InitializeAcpiTableDxe (
//
if (FeaturePcdGet (PcdInstallAcpiSdtProtocol)) {
mPrivateData = PrivateData;
- Status = gBS->InstallMultipleProtocolInterfaces (
- &mHandle,
- &gEfiAcpiTableProtocolGuid,
- &PrivateData->AcpiTableProtocol,
- &gEfiAcpiSdtProtocolGuid,
- &mPrivateData->AcpiSdtProtocol,
- NULL
- );
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &mHandle,
+ &gEfiAcpiTableProtocolGuid,
+ &PrivateData->AcpiTableProtocol,
+ &gEfiAcpiSdtProtocolGuid,
+ &mPrivateData->AcpiSdtProtocol,
+ NULL
+ );
} else {
Status = gBS->InstallMultipleProtocolInterfaces (
&mHandle,
@@ -77,8 +77,8 @@ InitializeAcpiTableDxe (
NULL
);
}
+
ASSERT_EFI_ERROR (Status);
return Status;
}
-
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.h b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.h
index 0af2d11..9cfef3d 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.h
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.h
@@ -9,7 +9,6 @@
#ifndef _ACPI_TABLE_H_
#define _ACPI_TABLE_H_
-
#include <PiDxe.h>
#include <Protocol/AcpiTable.h>
@@ -37,7 +36,7 @@
//
// Great than or equal to 2.0.
//
-#define ACPI_TABLE_VERSION_GTE_2_0 (EFI_ACPI_TABLE_VERSION_2_0 | \
+#define ACPI_TABLE_VERSION_GTE_2_0 (EFI_ACPI_TABLE_VERSION_2_0 |\
EFI_ACPI_TABLE_VERSION_3_0 | \
EFI_ACPI_TABLE_VERSION_4_0 | \
EFI_ACPI_TABLE_VERSION_5_0)
@@ -48,7 +47,7 @@
//
// ACPI Table Linked List Signature.
//
-#define EFI_ACPI_TABLE_LIST_SIGNATURE SIGNATURE_32 ('E', 'A', 'T', 'L')
+#define EFI_ACPI_TABLE_LIST_SIGNATURE SIGNATURE_32 ('E', 'A', 'T', 'L')
//
// ACPI Table Linked List Entry definition.
@@ -65,13 +64,13 @@
// TRUE: Table points to TableSize bytes allocated using gBS->AllocatePool ()
//
typedef struct {
- UINT32 Signature;
- LIST_ENTRY Link;
- EFI_ACPI_TABLE_VERSION Version;
- EFI_ACPI_COMMON_HEADER *Table;
- UINTN TableSize;
- UINTN Handle;
- BOOLEAN PoolAllocation;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ EFI_ACPI_TABLE_VERSION Version;
+ EFI_ACPI_COMMON_HEADER *Table;
+ UINTN TableSize;
+ UINTN Handle;
+ BOOLEAN PoolAllocation;
} EFI_ACPI_TABLE_LIST;
//
@@ -82,7 +81,7 @@ typedef struct {
//
// The maximum number of tables this driver supports
//
-#define EFI_ACPI_MAX_NUM_TABLES 20
+#define EFI_ACPI_MAX_NUM_TABLES 20
//
// Protocol private structure definition
@@ -96,25 +95,25 @@ typedef struct {
// ACPI support protocol instance data structure
//
typedef struct {
- UINTN Signature;
- EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp1; // Pointer to RSD_PTR structure
- EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp3; // Pointer to RSD_PTR structure
- EFI_ACPI_DESCRIPTION_HEADER *Rsdt1; // Pointer to RSDT table header
- EFI_ACPI_DESCRIPTION_HEADER *Rsdt3; // Pointer to RSDT table header
- EFI_ACPI_DESCRIPTION_HEADER *Xsdt; // Pointer to XSDT table header
- EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt1; // Pointer to FADT table header
- EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt3; // Pointer to FADT table header
- EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs1; // Pointer to FACS table header
- EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs3; // Pointer to FACS table header
- EFI_ACPI_DESCRIPTION_HEADER *Dsdt1; // Pointer to DSDT table header
- EFI_ACPI_DESCRIPTION_HEADER *Dsdt3; // Pointer to DSDT table header
- LIST_ENTRY TableList;
- UINTN NumberOfTableEntries1; // Number of ACPI 1.0 tables
- UINTN NumberOfTableEntries3; // Number of ACPI 3.0 tables
- UINTN CurrentHandle;
- EFI_ACPI_TABLE_PROTOCOL AcpiTableProtocol;
- EFI_ACPI_SDT_PROTOCOL AcpiSdtProtocol;
- LIST_ENTRY NotifyList;
+ UINTN Signature;
+ EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp1; // Pointer to RSD_PTR structure
+ EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp3; // Pointer to RSD_PTR structure
+ EFI_ACPI_DESCRIPTION_HEADER *Rsdt1; // Pointer to RSDT table header
+ EFI_ACPI_DESCRIPTION_HEADER *Rsdt3; // Pointer to RSDT table header
+ EFI_ACPI_DESCRIPTION_HEADER *Xsdt; // Pointer to XSDT table header
+ EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt1; // Pointer to FADT table header
+ EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *Fadt3; // Pointer to FADT table header
+ EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs1; // Pointer to FACS table header
+ EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs3; // Pointer to FACS table header
+ EFI_ACPI_DESCRIPTION_HEADER *Dsdt1; // Pointer to DSDT table header
+ EFI_ACPI_DESCRIPTION_HEADER *Dsdt3; // Pointer to DSDT table header
+ LIST_ENTRY TableList;
+ UINTN NumberOfTableEntries1; // Number of ACPI 1.0 tables
+ UINTN NumberOfTableEntries3; // Number of ACPI 3.0 tables
+ UINTN CurrentHandle;
+ EFI_ACPI_TABLE_PROTOCOL AcpiTableProtocol;
+ EFI_ACPI_SDT_PROTOCOL AcpiSdtProtocol;
+ LIST_ENTRY NotifyList;
} EFI_ACPI_TABLE_INSTANCE;
//
@@ -143,10 +142,9 @@ typedef struct {
**/
EFI_STATUS
AcpiTableAcpiTableConstructor (
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
);
-
/**
Entry point of the ACPI table driver.
Creates and initializes an instance of the ACPI Table
@@ -163,8 +161,8 @@ AcpiTableAcpiTableConstructor (
EFI_STATUS
EFIAPI
InitializeAcpiTableDxe (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
/**
@@ -183,9 +181,9 @@ InitializeAcpiTableDxe (
**/
EFI_STATUS
FindTableByHandle (
- IN UINTN Handle,
- IN LIST_ENTRY *TableList,
- OUT EFI_ACPI_TABLE_LIST **Table
+ IN UINTN Handle,
+ IN LIST_ENTRY *TableList,
+ OUT EFI_ACPI_TABLE_LIST **Table
);
/**
@@ -201,9 +199,9 @@ FindTableByHandle (
**/
EFI_STATUS
AcpiPlatformChecksum (
- IN VOID *Buffer,
- IN UINTN Size,
- IN UINTN ChecksumOffset
+ IN VOID *Buffer,
+ IN UINTN Size,
+ IN UINTN ChecksumOffset
);
/**
@@ -215,9 +213,9 @@ AcpiPlatformChecksum (
**/
VOID
SdtNotifyAcpiList (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN UINTN Handle
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN UINTN Handle
);
/**
@@ -227,7 +225,7 @@ SdtNotifyAcpiList (
**/
VOID
SdtAcpiTableAcpiSdtConstructor (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
);
/**
@@ -257,17 +255,17 @@ SdtAcpiTableAcpiSdtConstructor (
**/
EFI_STATUS
SdtGetAcpiTable (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN UINTN Index,
- OUT EFI_ACPI_SDT_HEADER **Table,
- OUT EFI_ACPI_TABLE_VERSION *Version,
- OUT UINTN *TableKey
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN UINTN Index,
+ OUT EFI_ACPI_SDT_HEADER **Table,
+ OUT EFI_ACPI_TABLE_VERSION *Version,
+ OUT UINTN *TableKey
);
//
// export PrivateData symbol, because we need that in AcpiSdtProtol implementation
//
-extern EFI_HANDLE mHandle;
-extern EFI_ACPI_TABLE_INSTANCE *mPrivateData;
+extern EFI_HANDLE mHandle;
+extern EFI_ACPI_TABLE_INSTANCE *mPrivateData;
#endif
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
index 34d4a1c..e09bc9b 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableProtocol.c
@@ -14,13 +14,13 @@
//
// The maximum number of tables that pre-allocated.
//
-UINTN mEfiAcpiMaxNumTables = EFI_ACPI_MAX_NUM_TABLES;
+UINTN mEfiAcpiMaxNumTables = EFI_ACPI_MAX_NUM_TABLES;
//
// Allocation strategy to use for AllocatePages ().
// Runtime value depends on PcdExposedAcpiTableVersions.
//
-STATIC EFI_ALLOCATE_TYPE mAcpiTableAllocType;
+STATIC EFI_ALLOCATE_TYPE mAcpiTableAllocType;
/**
This function adds an ACPI table to the table list. It will detect FACS and
@@ -41,12 +41,12 @@ STATIC EFI_ALLOCATE_TYPE mAcpiTableAllocType;
**/
EFI_STATUS
AddTableToList (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN VOID *Table,
- IN BOOLEAN Checksum,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN BOOLEAN IsFromHob,
- OUT UINTN *Handle
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN VOID *Table,
+ IN BOOLEAN Checksum,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN BOOLEAN IsFromHob,
+ OUT UINTN *Handle
);
/**
@@ -63,9 +63,9 @@ AddTableToList (
**/
EFI_STATUS
RemoveTableFromList (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN UINTN Handle
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN UINTN Handle
);
/**
@@ -79,9 +79,9 @@ RemoveTableFromList (
**/
EFI_STATUS
AcpiPlatformChecksum (
- IN VOID *Buffer,
- IN UINTN Size,
- IN UINTN ChecksumOffset
+ IN VOID *Buffer,
+ IN UINTN Size,
+ IN UINTN ChecksumOffset
);
/**
@@ -94,7 +94,7 @@ AcpiPlatformChecksum (
**/
EFI_STATUS
ChecksumCommonTables (
- IN OUT EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ IN OUT EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
);
//
@@ -116,14 +116,14 @@ ChecksumCommonTables (
EFI_STATUS
EFIAPI
PublishTables (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN EFI_ACPI_TABLE_VERSION Version
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN EFI_ACPI_TABLE_VERSION Version
)
{
- EFI_STATUS Status;
- UINT32 *CurrentRsdtEntry;
- VOID *CurrentXsdtEntry;
- UINT64 Buffer64;
+ EFI_STATUS Status;
+ UINT32 *CurrentRsdtEntry;
+ VOID *CurrentXsdtEntry;
+ UINT64 Buffer64;
//
// Reorder tables as some operating systems don't seem to find the
@@ -134,19 +134,20 @@ PublishTables (
// Add FADT as the first entry
//
if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- CurrentRsdtEntry = (UINT32 *) ((UINT8 *) AcpiTableInstance->Rsdt1 + sizeof (EFI_ACPI_DESCRIPTION_HEADER));
- *CurrentRsdtEntry = (UINT32) (UINTN) AcpiTableInstance->Fadt1;
+ CurrentRsdtEntry = (UINT32 *)((UINT8 *)AcpiTableInstance->Rsdt1 + sizeof (EFI_ACPI_DESCRIPTION_HEADER));
+ *CurrentRsdtEntry = (UINT32)(UINTN)AcpiTableInstance->Fadt1;
- CurrentRsdtEntry = (UINT32 *) ((UINT8 *) AcpiTableInstance->Rsdt3 + sizeof (EFI_ACPI_DESCRIPTION_HEADER));
- *CurrentRsdtEntry = (UINT32) (UINTN) AcpiTableInstance->Fadt3;
+ CurrentRsdtEntry = (UINT32 *)((UINT8 *)AcpiTableInstance->Rsdt3 + sizeof (EFI_ACPI_DESCRIPTION_HEADER));
+ *CurrentRsdtEntry = (UINT32)(UINTN)AcpiTableInstance->Fadt3;
}
+
if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
- CurrentXsdtEntry = (VOID *) ((UINT8 *) AcpiTableInstance->Xsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER));
+ CurrentXsdtEntry = (VOID *)((UINT8 *)AcpiTableInstance->Xsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER));
//
// Add entry to XSDT, XSDT expects 64 bit pointers, but
// the table pointers in XSDT are not aligned on 8 byte boundary.
//
- Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Fadt3;
+ Buffer64 = (UINT64)(UINTN)AcpiTableInstance->Fadt3;
CopyMem (
CurrentXsdtEntry,
&Buffer64,
@@ -180,7 +181,6 @@ PublishTables (
return EFI_SUCCESS;
}
-
/**
Installs an ACPI table into the RSDT/XSDT.
Note that the ACPI table should be checksumed before installing it.
@@ -204,22 +204,23 @@ PublishTables (
EFI_STATUS
EFIAPI
InstallAcpiTable (
- IN EFI_ACPI_TABLE_PROTOCOL *This,
- IN VOID *AcpiTableBuffer,
- IN UINTN AcpiTableBufferSize,
- OUT UINTN *TableKey
+ IN EFI_ACPI_TABLE_PROTOCOL *This,
+ IN VOID *AcpiTableBuffer,
+ IN UINTN AcpiTableBufferSize,
+ OUT UINTN *TableKey
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
- EFI_STATUS Status;
- VOID *AcpiTableBufferConst;
- EFI_ACPI_TABLE_VERSION Version;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ EFI_STATUS Status;
+ VOID *AcpiTableBufferConst;
+ EFI_ACPI_TABLE_VERSION Version;
//
// Check for invalid input parameters
//
- if ((AcpiTableBuffer == NULL) || (TableKey == NULL)
- || (((EFI_ACPI_DESCRIPTION_HEADER *) AcpiTableBuffer)->Length != AcpiTableBufferSize)) {
+ if ( (AcpiTableBuffer == NULL) || (TableKey == NULL)
+ || (((EFI_ACPI_DESCRIPTION_HEADER *)AcpiTableBuffer)->Length != AcpiTableBufferSize))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -233,22 +234,23 @@ InstallAcpiTable (
//
// Install the ACPI table
//
- AcpiTableBufferConst = AllocateCopyPool (AcpiTableBufferSize,AcpiTableBuffer);
- *TableKey = 0;
- Status = AddTableToList (
- AcpiTableInstance,
- AcpiTableBufferConst,
- TRUE,
- Version,
- FALSE,
- TableKey
- );
+ AcpiTableBufferConst = AllocateCopyPool (AcpiTableBufferSize, AcpiTableBuffer);
+ *TableKey = 0;
+ Status = AddTableToList (
+ AcpiTableInstance,
+ AcpiTableBufferConst,
+ TRUE,
+ Version,
+ FALSE,
+ TableKey
+ );
if (!EFI_ERROR (Status)) {
Status = PublishTables (
AcpiTableInstance,
Version
);
}
+
FreePool (AcpiTableBufferConst);
//
@@ -267,7 +269,6 @@ InstallAcpiTable (
return Status;
}
-
/**
Removes an ACPI table from the RSDT/XSDT.
@@ -281,13 +282,13 @@ InstallAcpiTable (
EFI_STATUS
EFIAPI
UninstallAcpiTable (
- IN EFI_ACPI_TABLE_PROTOCOL *This,
- IN UINTN TableKey
+ IN EFI_ACPI_TABLE_PROTOCOL *This,
+ IN UINTN TableKey
)
{
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
- EFI_STATUS Status;
- EFI_ACPI_TABLE_VERSION Version;
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance;
+ EFI_STATUS Status;
+ EFI_ACPI_TABLE_VERSION Version;
//
// Get the instance of the ACPI table protocol
@@ -329,7 +330,7 @@ UninstallAcpiTable (
**/
EFI_STATUS
ReallocateAcpiTableBuffer (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
)
{
UINTN NewMaxTableNumber;
@@ -369,12 +370,12 @@ ReallocateAcpiTableBuffer (
// for convenience of implementation that we force memory below 4GB.
//
PageAddress = 0xFFFFFFFF;
- Status = gBS->AllocatePages (
- mAcpiTableAllocType,
- EfiACPIReclaimMemory,
- EFI_SIZE_TO_PAGES (TotalSize),
- &PageAddress
- );
+ Status = gBS->AllocatePages (
+ mAcpiTableAllocType,
+ EfiACPIReclaimMemory,
+ EFI_SIZE_TO_PAGES (TotalSize),
+ &PageAddress
+ );
} else {
Status = gBS->AllocatePool (
EfiACPIReclaimMemory,
@@ -393,22 +394,24 @@ ReallocateAcpiTableBuffer (
ZeroMem (Pointer, TotalSize);
- AcpiTableInstance->Rsdt1 = (EFI_ACPI_DESCRIPTION_HEADER *) Pointer;
+ AcpiTableInstance->Rsdt1 = (EFI_ACPI_DESCRIPTION_HEADER *)Pointer;
if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + NewMaxTableNumber * sizeof (UINT32));
- AcpiTableInstance->Rsdt3 = (EFI_ACPI_DESCRIPTION_HEADER *) Pointer;
- Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + NewMaxTableNumber * sizeof (UINT32));
+ Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + NewMaxTableNumber * sizeof (UINT32));
+ AcpiTableInstance->Rsdt3 = (EFI_ACPI_DESCRIPTION_HEADER *)Pointer;
+ Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + NewMaxTableNumber * sizeof (UINT32));
}
- AcpiTableInstance->Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) Pointer;
+
+ AcpiTableInstance->Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *)Pointer;
//
// Update RSDP to point to the new Rsdt and Xsdt address.
//
if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- AcpiTableInstance->Rsdp1->RsdtAddress = (UINT32) (UINTN) AcpiTableInstance->Rsdt1;
- AcpiTableInstance->Rsdp3->RsdtAddress = (UINT32) (UINTN) AcpiTableInstance->Rsdt3;
+ AcpiTableInstance->Rsdp1->RsdtAddress = (UINT32)(UINTN)AcpiTableInstance->Rsdt1;
+ AcpiTableInstance->Rsdp3->RsdtAddress = (UINT32)(UINTN)AcpiTableInstance->Rsdt3;
}
- CurrentData = (UINT64) (UINTN) AcpiTableInstance->Xsdt;
+
+ CurrentData = (UINT64)(UINTN)AcpiTableInstance->Xsdt;
CopyMem (&AcpiTableInstance->Rsdp3->XsdtAddress, &CurrentData, sizeof (UINT64));
//
@@ -418,6 +421,7 @@ ReallocateAcpiTableBuffer (
CopyMem (AcpiTableInstance->Rsdt1, TempPrivateData.Rsdt1, (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + mEfiAcpiMaxNumTables * sizeof (UINT32)));
CopyMem (AcpiTableInstance->Rsdt3, TempPrivateData.Rsdt3, (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + mEfiAcpiMaxNumTables * sizeof (UINT32)));
}
+
CopyMem (AcpiTableInstance->Xsdt, TempPrivateData.Xsdt, (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + mEfiAcpiMaxNumTables * sizeof (UINT64)));
if (mAcpiTableAllocType != AllocateAnyPages) {
@@ -434,8 +438,10 @@ ReallocateAcpiTableBuffer (
mEfiAcpiMaxNumTables * sizeof (UINT32);
}
- gBS->FreePages ((EFI_PHYSICAL_ADDRESS)(UINTN)TempPrivateData.Rsdt1,
- EFI_SIZE_TO_PAGES (TotalSize));
+ gBS->FreePages (
+ (EFI_PHYSICAL_ADDRESS)(UINTN)TempPrivateData.Rsdt1,
+ EFI_SIZE_TO_PAGES (TotalSize)
+ );
} else {
gBS->FreePool (TempPrivateData.Rsdt1);
}
@@ -456,14 +462,16 @@ ReallocateAcpiTableBuffer (
STATIC
VOID
FreeTableMemory (
- EFI_ACPI_TABLE_LIST *TableEntry
+ EFI_ACPI_TABLE_LIST *TableEntry
)
{
if (TableEntry->PoolAllocation) {
gBS->FreePool (TableEntry->Table);
} else {
- gBS->FreePages ((EFI_PHYSICAL_ADDRESS)(UINTN)TableEntry->Table,
- EFI_SIZE_TO_PAGES (TableEntry->TableSize));
+ gBS->FreePages (
+ (EFI_PHYSICAL_ADDRESS)(UINTN)TableEntry->Table,
+ EFI_SIZE_TO_PAGES (TableEntry->TableSize)
+ );
}
}
@@ -487,12 +495,12 @@ FreeTableMemory (
**/
EFI_STATUS
AddTableToList (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN VOID *Table,
- IN BOOLEAN Checksum,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN BOOLEAN IsFromHob,
- OUT UINTN *Handle
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN VOID *Table,
+ IN BOOLEAN Checksum,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN BOOLEAN IsFromHob,
+ OUT UINTN *Handle
)
{
EFI_STATUS Status;
@@ -526,8 +534,8 @@ AddTableToList (
//
// Determine table type and size
//
- CurrentTableSignature = ((EFI_ACPI_COMMON_HEADER *) Table)->Signature;
- CurrentTableSize = ((EFI_ACPI_COMMON_HEADER *) Table)->Length;
+ CurrentTableSignature = ((EFI_ACPI_COMMON_HEADER *)Table)->Signature;
+ CurrentTableSize = ((EFI_ACPI_COMMON_HEADER *)Table)->Length;
//
// Allocate a buffer for the table. All tables are allocated in the lower 32 bits of address space
@@ -538,15 +546,16 @@ AddTableToList (
// There is no architectural reason these should be below 4GB, it is purely
// for convenience of implementation that we force memory below 4GB.
//
- AllocPhysAddress = 0xFFFFFFFF;
- CurrentTableList->TableSize = CurrentTableSize;
- CurrentTableList->PoolAllocation = FALSE;
+ AllocPhysAddress = 0xFFFFFFFF;
+ CurrentTableList->TableSize = CurrentTableSize;
+ CurrentTableList->PoolAllocation = FALSE;
//
// Allocation memory type depends on the type of the table
//
if ((CurrentTableSignature == EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) ||
- (CurrentTableSignature == EFI_ACPI_4_0_UEFI_ACPI_DATA_TABLE_SIGNATURE)) {
+ (CurrentTableSignature == EFI_ACPI_4_0_UEFI_ACPI_DATA_TABLE_SIGNATURE))
+ {
//
// Allocate memory for the FACS. This structure must be aligned
// on a 64 byte boundary and must be ACPI NVS memory.
@@ -558,9 +567,9 @@ AddTableToList (
// SMM communication ACPI table.
//
ASSERT ((EFI_PAGE_SIZE % 64) == 0);
- if (IsFromHob){
+ if (IsFromHob) {
AllocPhysAddress = (UINTN)Table;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
} else {
Status = gBS->AllocatePages (
AllocateMaxAddress,
@@ -593,6 +602,7 @@ AddTableToList (
);
CurrentTableList->Table = (EFI_ACPI_COMMON_HEADER *)(UINTN)AllocPhysAddress;
}
+
//
// Check return value from memory alloc.
//
@@ -621,368 +631,396 @@ AddTableToList (
// Calculate the checksum if the table is not FACS.
//
switch (CurrentTableSignature) {
-
- case EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE:
- //
- // We don't add the FADT in the standard way because some
- // OS expect the FADT to be early in the table list.
- // So we always add it as the first element in the list.
- //
- AddToRsdt = FALSE;
-
- //
- // Check that the table has not been previously added.
- //
- if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0 && AcpiTableInstance->Fadt1 != NULL) ||
- ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0 && AcpiTableInstance->Fadt3 != NULL)
- ) {
- FreeTableMemory (CurrentTableList);
- gBS->FreePool (CurrentTableList);
- return EFI_ACCESS_DENIED;
- }
- //
- // Add the table to the appropriate table version
- //
- if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ case EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE:
//
- // Save a pointer to the table
+ // We don't add the FADT in the standard way because some
+ // OS expect the FADT to be early in the table list.
+ // So we always add it as the first element in the list.
//
- AcpiTableInstance->Fadt1 = (EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *) CurrentTableList->Table;
+ AddToRsdt = FALSE;
//
- // Update pointers in FADT. If tables don't exist this will put NULL pointers there.
+ // Check that the table has not been previously added.
//
- AcpiTableInstance->Fadt1->FirmwareCtrl = (UINT32) (UINTN) AcpiTableInstance->Facs1;
- AcpiTableInstance->Fadt1->Dsdt = (UINT32) (UINTN) AcpiTableInstance->Dsdt1;
+ if ((((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) && (AcpiTableInstance->Fadt1 != NULL)) ||
+ (((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) && (AcpiTableInstance->Fadt3 != NULL))
+ )
+ {
+ FreeTableMemory (CurrentTableList);
+ gBS->FreePool (CurrentTableList);
+ return EFI_ACCESS_DENIED;
+ }
//
- // RSDP OEM information is updated to match the FADT OEM information
+ // Add the table to the appropriate table version
//
- CopyMem (
- &AcpiTableInstance->Rsdp1->OemId,
- &AcpiTableInstance->Fadt1->Header.OemId,
- 6
- );
+ if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ //
+ // Save a pointer to the table
+ //
+ AcpiTableInstance->Fadt1 = (EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE *)CurrentTableList->Table;
- //
- // RSDT OEM information is updated to match the FADT OEM information.
- //
- CopyMem (
- &AcpiTableInstance->Rsdt1->OemId,
- &AcpiTableInstance->Fadt1->Header.OemId,
- 6
- );
+ //
+ // Update pointers in FADT. If tables don't exist this will put NULL pointers there.
+ //
+ AcpiTableInstance->Fadt1->FirmwareCtrl = (UINT32)(UINTN)AcpiTableInstance->Facs1;
+ AcpiTableInstance->Fadt1->Dsdt = (UINT32)(UINTN)AcpiTableInstance->Dsdt1;
- CopyMem (
- &AcpiTableInstance->Rsdt1->OemTableId,
- &AcpiTableInstance->Fadt1->Header.OemTableId,
- sizeof (UINT64)
- );
- AcpiTableInstance->Rsdt1->OemRevision = AcpiTableInstance->Fadt1->Header.OemRevision;
- }
+ //
+ // RSDP OEM information is updated to match the FADT OEM information
+ //
+ CopyMem (
+ &AcpiTableInstance->Rsdp1->OemId,
+ &AcpiTableInstance->Fadt1->Header.OemId,
+ 6
+ );
- if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
- //
- // Save a pointer to the table
- //
- AcpiTableInstance->Fadt3 = (EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *) CurrentTableList->Table;
+ //
+ // RSDT OEM information is updated to match the FADT OEM information.
+ //
+ CopyMem (
+ &AcpiTableInstance->Rsdt1->OemId,
+ &AcpiTableInstance->Fadt1->Header.OemId,
+ 6
+ );
- //
- // Update pointers in FADT. If tables don't exist this will put NULL pointers there.
- // Note: If the FIRMWARE_CTRL is non-zero, then X_FIRMWARE_CTRL must be zero, and
- // vice-versa.
- //
- if ((UINT64)(UINTN)AcpiTableInstance->Facs3 < BASE_4GB) {
- AcpiTableInstance->Fadt3->FirmwareCtrl = (UINT32) (UINTN) AcpiTableInstance->Facs3;
- ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));
- } else {
- Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Facs3;
CopyMem (
- &AcpiTableInstance->Fadt3->XFirmwareCtrl,
- &Buffer64,
+ &AcpiTableInstance->Rsdt1->OemTableId,
+ &AcpiTableInstance->Fadt1->Header.OemTableId,
sizeof (UINT64)
);
- AcpiTableInstance->Fadt3->FirmwareCtrl = 0;
+ AcpiTableInstance->Rsdt1->OemRevision = AcpiTableInstance->Fadt1->Header.OemRevision;
}
- if ((UINT64)(UINTN)AcpiTableInstance->Dsdt3 < BASE_4GB) {
- AcpiTableInstance->Fadt3->Dsdt = (UINT32) (UINTN) AcpiTableInstance->Dsdt3;
+
+ if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
//
- // Comment block "the caller installs the tables in "DSDT, FADT" order"
- // The below comments are also in "the caller installs the tables in "FADT, DSDT" order" comment block.
+ // Save a pointer to the table
//
- // The ACPI specification, up to and including revision 5.1 Errata A,
- // allows the DSDT and X_DSDT fields to be both set in the FADT.
- // (Obviously, this only makes sense if the DSDT address is representable in 4 bytes.)
- // Starting with 5.1 Errata B, specifically for Mantis 1393 <https://mantis.uefi.org/mantis/view.php?id=1393>,
- // the spec requires at most one of DSDT and X_DSDT fields to be set to a nonzero value,
- // but strangely an exception is 6.0 that has no this requirement.
+ AcpiTableInstance->Fadt3 = (EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)CurrentTableList->Table;
+
//
- // Here we do not make the DSDT and X_DSDT fields mutual exclusion conditionally
- // by checking FADT revision, but always set both DSDT and X_DSDT fields in the FADT
- // to have better compatibility as some OS may have assumption to only consume X_DSDT
- // field even the DSDT address is < 4G.
+ // Update pointers in FADT. If tables don't exist this will put NULL pointers there.
+ // Note: If the FIRMWARE_CTRL is non-zero, then X_FIRMWARE_CTRL must be zero, and
+ // vice-versa.
//
- Buffer64 = AcpiTableInstance->Fadt3->Dsdt;
- } else {
- AcpiTableInstance->Fadt3->Dsdt = 0;
- Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Dsdt3;
- }
- CopyMem (&AcpiTableInstance->Fadt3->XDsdt, &Buffer64, sizeof (UINT64));
+ if ((UINT64)(UINTN)AcpiTableInstance->Facs3 < BASE_4GB) {
+ AcpiTableInstance->Fadt3->FirmwareCtrl = (UINT32)(UINTN)AcpiTableInstance->Facs3;
+ ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));
+ } else {
+ Buffer64 = (UINT64)(UINTN)AcpiTableInstance->Facs3;
+ CopyMem (
+ &AcpiTableInstance->Fadt3->XFirmwareCtrl,
+ &Buffer64,
+ sizeof (UINT64)
+ );
+ AcpiTableInstance->Fadt3->FirmwareCtrl = 0;
+ }
- //
- // RSDP OEM information is updated to match the FADT OEM information
- //
- CopyMem (
- &AcpiTableInstance->Rsdp3->OemId,
- &AcpiTableInstance->Fadt3->Header.OemId,
- 6
- );
+ if ((UINT64)(UINTN)AcpiTableInstance->Dsdt3 < BASE_4GB) {
+ AcpiTableInstance->Fadt3->Dsdt = (UINT32)(UINTN)AcpiTableInstance->Dsdt3;
+ //
+ // Comment block "the caller installs the tables in "DSDT, FADT" order"
+ // The below comments are also in "the caller installs the tables in "FADT, DSDT" order" comment block.
+ //
+ // The ACPI specification, up to and including revision 5.1 Errata A,
+ // allows the DSDT and X_DSDT fields to be both set in the FADT.
+ // (Obviously, this only makes sense if the DSDT address is representable in 4 bytes.)
+ // Starting with 5.1 Errata B, specifically for Mantis 1393 <https://mantis.uefi.org/mantis/view.php?id=1393>,
+ // the spec requires at most one of DSDT and X_DSDT fields to be set to a nonzero value,
+ // but strangely an exception is 6.0 that has no this requirement.
+ //
+ // Here we do not make the DSDT and X_DSDT fields mutual exclusion conditionally
+ // by checking FADT revision, but always set both DSDT and X_DSDT fields in the FADT
+ // to have better compatibility as some OS may have assumption to only consume X_DSDT
+ // field even the DSDT address is < 4G.
+ //
+ Buffer64 = AcpiTableInstance->Fadt3->Dsdt;
+ } else {
+ AcpiTableInstance->Fadt3->Dsdt = 0;
+ Buffer64 = (UINT64)(UINTN)AcpiTableInstance->Dsdt3;
+ }
+
+ CopyMem (&AcpiTableInstance->Fadt3->XDsdt, &Buffer64, sizeof (UINT64));
+
+ //
+ // RSDP OEM information is updated to match the FADT OEM information
+ //
+ CopyMem (
+ &AcpiTableInstance->Rsdp3->OemId,
+ &AcpiTableInstance->Fadt3->Header.OemId,
+ 6
+ );
+
+ if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ //
+ // RSDT OEM information is updated to match FADT OEM information.
+ //
+ CopyMem (
+ &AcpiTableInstance->Rsdt3->OemId,
+ &AcpiTableInstance->Fadt3->Header.OemId,
+ 6
+ );
+ CopyMem (
+ &AcpiTableInstance->Rsdt3->OemTableId,
+ &AcpiTableInstance->Fadt3->Header.OemTableId,
+ sizeof (UINT64)
+ );
+ AcpiTableInstance->Rsdt3->OemRevision = AcpiTableInstance->Fadt3->Header.OemRevision;
+ }
- if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
//
- // RSDT OEM information is updated to match FADT OEM information.
+ // XSDT OEM information is updated to match FADT OEM information.
//
CopyMem (
- &AcpiTableInstance->Rsdt3->OemId,
+ &AcpiTableInstance->Xsdt->OemId,
&AcpiTableInstance->Fadt3->Header.OemId,
6
);
CopyMem (
- &AcpiTableInstance->Rsdt3->OemTableId,
+ &AcpiTableInstance->Xsdt->OemTableId,
&AcpiTableInstance->Fadt3->Header.OemTableId,
sizeof (UINT64)
);
- AcpiTableInstance->Rsdt3->OemRevision = AcpiTableInstance->Fadt3->Header.OemRevision;
+ AcpiTableInstance->Xsdt->OemRevision = AcpiTableInstance->Fadt3->Header.OemRevision;
}
//
- // XSDT OEM information is updated to match FADT OEM information.
+ // Checksum the table
//
- CopyMem (
- &AcpiTableInstance->Xsdt->OemId,
- &AcpiTableInstance->Fadt3->Header.OemId,
- 6
- );
- CopyMem (
- &AcpiTableInstance->Xsdt->OemTableId,
- &AcpiTableInstance->Fadt3->Header.OemTableId,
- sizeof (UINT64)
- );
- AcpiTableInstance->Xsdt->OemRevision = AcpiTableInstance->Fadt3->Header.OemRevision;
- }
- //
- // Checksum the table
- //
- if (Checksum) {
- AcpiPlatformChecksum (
- CurrentTableList->Table,
- CurrentTableList->Table->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
- }
- break;
-
- case EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE:
- //
- // Check that the table has not been previously added.
- //
- if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0 && AcpiTableInstance->Facs1 != NULL) ||
- ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0 && AcpiTableInstance->Facs3 != NULL)
- ) {
- FreeTableMemory (CurrentTableList);
- gBS->FreePool (CurrentTableList);
- return EFI_ACCESS_DENIED;
- }
- //
- // FACS is referenced by FADT and is not part of RSDT
- //
- AddToRsdt = FALSE;
+ if (Checksum) {
+ AcpiPlatformChecksum (
+ CurrentTableList->Table,
+ CurrentTableList->Table->Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
- //
- // Add the table to the appropriate table version
- //
- if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- //
- // Save a pointer to the table
- //
- AcpiTableInstance->Facs1 = (EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) CurrentTableList->Table;
+ break;
+ case EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE:
//
- // If FADT already exists, update table pointers.
+ // Check that the table has not been previously added.
//
- if (AcpiTableInstance->Fadt1 != NULL) {
- AcpiTableInstance->Fadt1->FirmwareCtrl = (UINT32) (UINTN) AcpiTableInstance->Facs1;
-
- //
- // Checksum FADT table
- //
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt1,
- AcpiTableInstance->Fadt1->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
+ if ((((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) && (AcpiTableInstance->Facs1 != NULL)) ||
+ (((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) && (AcpiTableInstance->Facs3 != NULL))
+ )
+ {
+ FreeTableMemory (CurrentTableList);
+ gBS->FreePool (CurrentTableList);
+ return EFI_ACCESS_DENIED;
}
- }
- if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
//
- // Save a pointer to the table
+ // FACS is referenced by FADT and is not part of RSDT
//
- AcpiTableInstance->Facs3 = (EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) CurrentTableList->Table;
+ AddToRsdt = FALSE;
//
- // If FADT already exists, update table pointers.
+ // Add the table to the appropriate table version
//
- if (AcpiTableInstance->Fadt3 != NULL) {
+ if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
//
- // Note: If the FIRMWARE_CTRL is non-zero, then X_FIRMWARE_CTRL must be zero, and
- // vice-versa.
+ // Save a pointer to the table
//
- if ((UINT64)(UINTN)AcpiTableInstance->Facs3 < BASE_4GB) {
- AcpiTableInstance->Fadt3->FirmwareCtrl = (UINT32) (UINTN) AcpiTableInstance->Facs3;
- ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));
- } else {
- Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Facs3;
- CopyMem (
- &AcpiTableInstance->Fadt3->XFirmwareCtrl,
- &Buffer64,
- sizeof (UINT64)
+ AcpiTableInstance->Facs1 = (EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)CurrentTableList->Table;
+
+ //
+ // If FADT already exists, update table pointers.
+ //
+ if (AcpiTableInstance->Fadt1 != NULL) {
+ AcpiTableInstance->Fadt1->FirmwareCtrl = (UINT32)(UINTN)AcpiTableInstance->Facs1;
+
+ //
+ // Checksum FADT table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt1,
+ AcpiTableInstance->Fadt1->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
- AcpiTableInstance->Fadt3->FirmwareCtrl = 0;
}
+ }
+ if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
//
- // Checksum FADT table
+ // Save a pointer to the table
//
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt3,
- AcpiTableInstance->Fadt3->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
- }
- }
+ AcpiTableInstance->Facs3 = (EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)CurrentTableList->Table;
- break;
+ //
+ // If FADT already exists, update table pointers.
+ //
+ if (AcpiTableInstance->Fadt3 != NULL) {
+ //
+ // Note: If the FIRMWARE_CTRL is non-zero, then X_FIRMWARE_CTRL must be zero, and
+ // vice-versa.
+ //
+ if ((UINT64)(UINTN)AcpiTableInstance->Facs3 < BASE_4GB) {
+ AcpiTableInstance->Fadt3->FirmwareCtrl = (UINT32)(UINTN)AcpiTableInstance->Facs3;
+ ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));
+ } else {
+ Buffer64 = (UINT64)(UINTN)AcpiTableInstance->Facs3;
+ CopyMem (
+ &AcpiTableInstance->Fadt3->XFirmwareCtrl,
+ &Buffer64,
+ sizeof (UINT64)
+ );
+ AcpiTableInstance->Fadt3->FirmwareCtrl = 0;
+ }
- case EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE:
- //
- // Check that the table has not been previously added.
- //
- if (((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0 && AcpiTableInstance->Dsdt1 != NULL) ||
- ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0 && AcpiTableInstance->Dsdt3 != NULL)
- ) {
- FreeTableMemory (CurrentTableList);
- gBS->FreePool (CurrentTableList);
- return EFI_ACCESS_DENIED;
- }
- //
- // DSDT is referenced by FADT and is not part of RSDT
- //
- AddToRsdt = FALSE;
+ //
+ // Checksum FADT table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt3,
+ AcpiTableInstance->Fadt3->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
+ }
- //
- // Add the table to the appropriate table version
- //
- if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- //
- // Save a pointer to the table
- //
- AcpiTableInstance->Dsdt1 = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTableList->Table;
+ break;
+ case EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE:
//
- // If FADT already exists, update table pointers.
+ // Check that the table has not been previously added.
//
- if (AcpiTableInstance->Fadt1 != NULL) {
- AcpiTableInstance->Fadt1->Dsdt = (UINT32) (UINTN) AcpiTableInstance->Dsdt1;
-
- //
- // Checksum FADT table
- //
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt1,
- AcpiTableInstance->Fadt1->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
+ if ((((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) && (AcpiTableInstance->Dsdt1 != NULL)) ||
+ (((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) && (AcpiTableInstance->Dsdt3 != NULL))
+ )
+ {
+ FreeTableMemory (CurrentTableList);
+ gBS->FreePool (CurrentTableList);
+ return EFI_ACCESS_DENIED;
}
- }
- if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
//
- // Save a pointer to the table
+ // DSDT is referenced by FADT and is not part of RSDT
//
- AcpiTableInstance->Dsdt3 = (EFI_ACPI_DESCRIPTION_HEADER *) CurrentTableList->Table;
+ AddToRsdt = FALSE;
//
- // If FADT already exists, update table pointers.
+ // Add the table to the appropriate table version
//
- if (AcpiTableInstance->Fadt3 != NULL) {
- if ((UINT64)(UINTN)AcpiTableInstance->Dsdt3 < BASE_4GB) {
- AcpiTableInstance->Fadt3->Dsdt = (UINT32) (UINTN) AcpiTableInstance->Dsdt3;
- //
- // Comment block "the caller installs the tables in "FADT, DSDT" order"
- // The below comments are also in "the caller installs the tables in "DSDT, FADT" order" comment block.
- //
- // The ACPI specification, up to and including revision 5.1 Errata A,
- // allows the DSDT and X_DSDT fields to be both set in the FADT.
- // (Obviously, this only makes sense if the DSDT address is representable in 4 bytes.)
- // Starting with 5.1 Errata B, specifically for Mantis 1393 <https://mantis.uefi.org/mantis/view.php?id=1393>,
- // the spec requires at most one of DSDT and X_DSDT fields to be set to a nonzero value,
- // but strangely an exception is 6.0 that has no this requirement.
+ if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ //
+ // Save a pointer to the table
+ //
+ AcpiTableInstance->Dsdt1 = (EFI_ACPI_DESCRIPTION_HEADER *)CurrentTableList->Table;
+
+ //
+ // If FADT already exists, update table pointers.
+ //
+ if (AcpiTableInstance->Fadt1 != NULL) {
+ AcpiTableInstance->Fadt1->Dsdt = (UINT32)(UINTN)AcpiTableInstance->Dsdt1;
+
//
- // Here we do not make the DSDT and X_DSDT fields mutual exclusion conditionally
- // by checking FADT revision, but always set both DSDT and X_DSDT fields in the FADT
- // to have better compatibility as some OS may have assumption to only consume X_DSDT
- // field even the DSDT address is < 4G.
+ // Checksum FADT table
//
- Buffer64 = AcpiTableInstance->Fadt3->Dsdt;
- } else {
- AcpiTableInstance->Fadt3->Dsdt = 0;
- Buffer64 = (UINT64) (UINTN) AcpiTableInstance->Dsdt3;
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt1,
+ AcpiTableInstance->Fadt1->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
}
- CopyMem (&AcpiTableInstance->Fadt3->XDsdt, &Buffer64, sizeof (UINT64));
+ }
+
+ if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
+ //
+ // Save a pointer to the table
+ //
+ AcpiTableInstance->Dsdt3 = (EFI_ACPI_DESCRIPTION_HEADER *)CurrentTableList->Table;
//
- // Checksum FADT table
+ // If FADT already exists, update table pointers.
//
+ if (AcpiTableInstance->Fadt3 != NULL) {
+ if ((UINT64)(UINTN)AcpiTableInstance->Dsdt3 < BASE_4GB) {
+ AcpiTableInstance->Fadt3->Dsdt = (UINT32)(UINTN)AcpiTableInstance->Dsdt3;
+ //
+ // Comment block "the caller installs the tables in "FADT, DSDT" order"
+ // The below comments are also in "the caller installs the tables in "DSDT, FADT" order" comment block.
+ //
+ // The ACPI specification, up to and including revision 5.1 Errata A,
+ // allows the DSDT and X_DSDT fields to be both set in the FADT.
+ // (Obviously, this only makes sense if the DSDT address is representable in 4 bytes.)
+ // Starting with 5.1 Errata B, specifically for Mantis 1393 <https://mantis.uefi.org/mantis/view.php?id=1393>,
+ // the spec requires at most one of DSDT and X_DSDT fields to be set to a nonzero value,
+ // but strangely an exception is 6.0 that has no this requirement.
+ //
+ // Here we do not make the DSDT and X_DSDT fields mutual exclusion conditionally
+ // by checking FADT revision, but always set both DSDT and X_DSDT fields in the FADT
+ // to have better compatibility as some OS may have assumption to only consume X_DSDT
+ // field even the DSDT address is < 4G.
+ //
+ Buffer64 = AcpiTableInstance->Fadt3->Dsdt;
+ } else {
+ AcpiTableInstance->Fadt3->Dsdt = 0;
+ Buffer64 = (UINT64)(UINTN)AcpiTableInstance->Dsdt3;
+ }
+
+ CopyMem (&AcpiTableInstance->Fadt3->XDsdt, &Buffer64, sizeof (UINT64));
+
+ //
+ // Checksum FADT table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt3,
+ AcpiTableInstance->Fadt3->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
+ }
+
+ //
+ // Checksum the table
+ //
+ if (Checksum) {
AcpiPlatformChecksum (
- AcpiTableInstance->Fadt3,
- AcpiTableInstance->Fadt3->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
+ CurrentTableList->Table,
+ CurrentTableList->Table->Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
}
- }
- //
- // Checksum the table
- //
- if (Checksum) {
- AcpiPlatformChecksum (
- CurrentTableList->Table,
- CurrentTableList->Table->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
- }
- break;
- default:
- //
- // Checksum the table
- //
- if (Checksum) {
- AcpiPlatformChecksum (
- CurrentTableList->Table,
- CurrentTableList->Table->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
- }
- break;
+ break;
+
+ default:
+ //
+ // Checksum the table
+ //
+ if (Checksum) {
+ AcpiPlatformChecksum (
+ CurrentTableList->Table,
+ CurrentTableList->Table->Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
+
+ break;
}
+
//
// Add the table to the current list of tables
//
@@ -1003,18 +1041,19 @@ AddTableToList (
Status = ReallocateAcpiTableBuffer (AcpiTableInstance);
ASSERT_EFI_ERROR (Status);
}
+
CurrentRsdtEntry = (UINT32 *)
- (
- (UINT8 *) AcpiTableInstance->Rsdt1 +
- sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
- AcpiTableInstance->NumberOfTableEntries1 *
- sizeof (UINT32)
- );
+ (
+ (UINT8 *)AcpiTableInstance->Rsdt1 +
+ sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
+ AcpiTableInstance->NumberOfTableEntries1 *
+ sizeof (UINT32)
+ );
//
// Add entry to the RSDT unless its the FACS or DSDT
//
- *CurrentRsdtEntry = (UINT32) (UINTN) CurrentTableList->Table;
+ *CurrentRsdtEntry = (UINT32)(UINTN)CurrentTableList->Table;
//
// Update RSDT length
@@ -1024,6 +1063,7 @@ AddTableToList (
AcpiTableInstance->NumberOfTableEntries1++;
}
}
+
//
// Add to ACPI 2.0/3.0 table tree
//
@@ -1043,17 +1083,17 @@ AddTableToList (
// If it becomes necessary to maintain separate table lists, changes will be required.
//
CurrentRsdtEntry = (UINT32 *)
- (
- (UINT8 *) AcpiTableInstance->Rsdt3 +
- sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
- AcpiTableInstance->NumberOfTableEntries3 *
- sizeof (UINT32)
- );
+ (
+ (UINT8 *)AcpiTableInstance->Rsdt3 +
+ sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
+ AcpiTableInstance->NumberOfTableEntries3 *
+ sizeof (UINT32)
+ );
//
// Add entry to the RSDT
//
- *CurrentRsdtEntry = (UINT32) (UINTN) CurrentTableList->Table;
+ *CurrentRsdtEntry = (UINT32)(UINTN)CurrentTableList->Table;
//
// Update RSDT length
@@ -1066,18 +1106,18 @@ AddTableToList (
// be 64 bit aligned resulting in a possible fault. Use CopyMem to update.
//
CurrentXsdtEntry = (VOID *)
- (
- (UINT8 *) AcpiTableInstance->Xsdt +
- sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
- AcpiTableInstance->NumberOfTableEntries3 *
- sizeof (UINT64)
- );
+ (
+ (UINT8 *)AcpiTableInstance->Xsdt +
+ sizeof (EFI_ACPI_DESCRIPTION_HEADER) +
+ AcpiTableInstance->NumberOfTableEntries3 *
+ sizeof (UINT64)
+ );
//
// Add entry to XSDT, XSDT expects 64 bit pointers, but
// the table pointers in XSDT are not aligned on 8 byte boundary.
//
- Buffer64 = (UINT64) (UINTN) CurrentTableList->Table;
+ Buffer64 = (UINT64)(UINTN)CurrentTableList->Table;
CopyMem (
CurrentXsdtEntry,
&Buffer64,
@@ -1097,7 +1137,6 @@ AddTableToList (
return EFI_SUCCESS;
}
-
/**
This function finds the table specified by the handle and returns a pointer to it.
If the handle is not found, EFI_NOT_FOUND is returned and the contents of Table are
@@ -1113,13 +1152,13 @@ AddTableToList (
**/
EFI_STATUS
FindTableByHandle (
- IN UINTN Handle,
- IN LIST_ENTRY *TableList,
- OUT EFI_ACPI_TABLE_LIST **Table
+ IN UINTN Handle,
+ IN LIST_ENTRY *TableList,
+ OUT EFI_ACPI_TABLE_LIST **Table
)
{
- LIST_ENTRY *CurrentLink;
- EFI_ACPI_TABLE_LIST *CurrentTable;
+ LIST_ENTRY *CurrentLink;
+ EFI_ACPI_TABLE_LIST *CurrentTable;
//
// Check for invalid input parameters
@@ -1143,13 +1182,13 @@ FindTableByHandle (
CurrentLink = CurrentLink->ForwardLink;
}
+
//
// Table not found
//
return EFI_NOT_FOUND;
}
-
/**
This function removes a basic table from the RSDT and/or XSDT.
For Acpi 1.0 tables, pass in the Rsdt.
@@ -1166,10 +1205,10 @@ FindTableByHandle (
**/
EFI_STATUS
RemoveTableFromRsdt (
- IN OUT EFI_ACPI_TABLE_LIST * Table,
- IN OUT UINTN *NumberOfTableEntries,
- IN OUT EFI_ACPI_DESCRIPTION_HEADER * Rsdt OPTIONAL,
- IN OUT EFI_ACPI_DESCRIPTION_HEADER * Xsdt OPTIONAL
+ IN OUT EFI_ACPI_TABLE_LIST *Table,
+ IN OUT UINTN *NumberOfTableEntries,
+ IN OUT EFI_ACPI_DESCRIPTION_HEADER *Rsdt OPTIONAL,
+ IN OUT EFI_ACPI_DESCRIPTION_HEADER *Xsdt OPTIONAL
)
{
UINT32 *CurrentRsdtEntry;
@@ -1193,16 +1232,17 @@ RemoveTableFromRsdt (
// If it becomes necessary to maintain separate table lists, changes will be required.
//
if (Rsdt != NULL) {
- CurrentRsdtEntry = (UINT32 *) ((UINT8 *) Rsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER) + Index * sizeof (UINT32));
+ CurrentRsdtEntry = (UINT32 *)((UINT8 *)Rsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER) + Index * sizeof (UINT32));
} else {
CurrentRsdtEntry = NULL;
}
+
if (Xsdt != NULL) {
//
// This pointer must not be directly dereferenced as the XSDT entries may not
// be 64 bit aligned resulting in a possible fault. Use CopyMem to update.
//
- CurrentXsdtEntry = (VOID *) ((UINT8 *) Xsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER) + Index * sizeof (UINT64));
+ CurrentXsdtEntry = (VOID *)((UINT8 *)Xsdt + sizeof (EFI_ACPI_DESCRIPTION_HEADER) + Index * sizeof (UINT64));
//
// Read the entry value out of the XSDT
@@ -1215,12 +1255,14 @@ RemoveTableFromRsdt (
CurrentXsdtEntry = 0;
CurrentTablePointer64 = 0;
}
+
//
// Check if we have found the corresponding entry in both RSDT and XSDT
//
- if (((Rsdt == NULL) || *CurrentRsdtEntry == (UINT32) (UINTN) Table->Table) &&
- ((Xsdt == NULL) || CurrentTablePointer64 == (UINT64) (UINTN) Table->Table)
- ) {
+ if (((Rsdt == NULL) || (*CurrentRsdtEntry == (UINT32)(UINTN)Table->Table)) &&
+ ((Xsdt == NULL) || (CurrentTablePointer64 == (UINT64)(UINTN)Table->Table))
+ )
+ {
//
// Found entry, so copy all following entries and shrink table
// We actually copy all + 1 to copy the initialized value of memory over
@@ -1230,10 +1272,12 @@ RemoveTableFromRsdt (
CopyMem (CurrentRsdtEntry, CurrentRsdtEntry + 1, (*NumberOfTableEntries - Index) * sizeof (UINT32));
Rsdt->Length = Rsdt->Length - sizeof (UINT32);
}
+
if (Xsdt != NULL) {
- CopyMem (CurrentXsdtEntry, ((UINT64 *) CurrentXsdtEntry) + 1, (*NumberOfTableEntries - Index) * sizeof (UINT64));
+ CopyMem (CurrentXsdtEntry, ((UINT64 *)CurrentXsdtEntry) + 1, (*NumberOfTableEntries - Index) * sizeof (UINT64));
Xsdt->Length = Xsdt->Length - sizeof (UINT64);
}
+
break;
} else if (Index + 1 == *NumberOfTableEntries) {
//
@@ -1242,6 +1286,7 @@ RemoveTableFromRsdt (
return EFI_INVALID_PARAMETER;
}
}
+
//
// Checksum the tables
//
@@ -1249,8 +1294,10 @@ RemoveTableFromRsdt (
AcpiPlatformChecksum (
Rsdt,
Rsdt->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
}
@@ -1258,10 +1305,13 @@ RemoveTableFromRsdt (
AcpiPlatformChecksum (
Xsdt,
Xsdt->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
}
+
//
// Decrement the number of tables
//
@@ -1270,7 +1320,6 @@ RemoveTableFromRsdt (
return EFI_SUCCESS;
}
-
/**
This function removes a table and frees any associated memory.
@@ -1283,13 +1332,13 @@ RemoveTableFromRsdt (
**/
EFI_STATUS
DeleteTable (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN OUT EFI_ACPI_TABLE_LIST *Table
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN OUT EFI_ACPI_TABLE_LIST *Table
)
{
- UINT32 CurrentTableSignature;
- BOOLEAN RemoveFromRsdt;
+ UINT32 CurrentTableSignature;
+ BOOLEAN RemoveFromRsdt;
//
// Check for invalid input parameters
@@ -1300,12 +1349,12 @@ DeleteTable (
//
// Init locals
//
- RemoveFromRsdt = TRUE;
+ RemoveFromRsdt = TRUE;
//
// Check for Table->Table
//
ASSERT (Table->Table != NULL);
- CurrentTableSignature = ((EFI_ACPI_COMMON_HEADER *) Table->Table)->Signature;
+ CurrentTableSignature = ((EFI_ACPI_COMMON_HEADER *)Table->Table)->Signature;
//
// Basic tasks to accomplish delete are:
@@ -1323,9 +1372,11 @@ DeleteTable (
if ((CurrentTableSignature == EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) ||
(CurrentTableSignature == EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE) ||
(CurrentTableSignature == EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE)
- ) {
+ )
+ {
RemoveFromRsdt = FALSE;
}
+
//
// We don't remove the FADT in the standard way because some
// OS expect the FADT to be early in the table list.
@@ -1390,119 +1441,130 @@ DeleteTable (
);
}
}
+
//
// Free the table, clean up any dependent tables and our private data pointers.
//
switch (Table->Table->Signature) {
+ case EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE:
+ if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ AcpiTableInstance->Fadt1 = NULL;
+ }
- case EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE:
- if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- AcpiTableInstance->Fadt1 = NULL;
- }
-
- if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
- AcpiTableInstance->Fadt3 = NULL;
- }
- break;
+ if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
+ AcpiTableInstance->Fadt3 = NULL;
+ }
- case EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE:
- if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- AcpiTableInstance->Facs1 = NULL;
+ break;
- //
- // Update FADT table pointers
- //
- if (AcpiTableInstance->Fadt1 != NULL) {
- AcpiTableInstance->Fadt1->FirmwareCtrl = 0;
+ case EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE:
+ if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ AcpiTableInstance->Facs1 = NULL;
//
- // Checksum table
+ // Update FADT table pointers
//
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt1,
- AcpiTableInstance->Fadt1->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
+ if (AcpiTableInstance->Fadt1 != NULL) {
+ AcpiTableInstance->Fadt1->FirmwareCtrl = 0;
+
+ //
+ // Checksum table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt1,
+ AcpiTableInstance->Fadt1->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
}
- }
-
- if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
- AcpiTableInstance->Facs3 = NULL;
- //
- // Update FADT table pointers
- //
- if (AcpiTableInstance->Fadt3 != NULL) {
- AcpiTableInstance->Fadt3->FirmwareCtrl = 0;
- ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));
+ if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
+ AcpiTableInstance->Facs3 = NULL;
//
- // Checksum table
+ // Update FADT table pointers
//
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt3,
- AcpiTableInstance->Fadt3->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
+ if (AcpiTableInstance->Fadt3 != NULL) {
+ AcpiTableInstance->Fadt3->FirmwareCtrl = 0;
+ ZeroMem (&AcpiTableInstance->Fadt3->XFirmwareCtrl, sizeof (UINT64));
+
+ //
+ // Checksum table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt3,
+ AcpiTableInstance->Fadt3->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
}
- }
- break;
- case EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE:
- if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- AcpiTableInstance->Dsdt1 = NULL;
+ break;
- //
- // Update FADT table pointers
- //
- if (AcpiTableInstance->Fadt1 != NULL) {
- AcpiTableInstance->Fadt1->Dsdt = 0;
+ case EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE:
+ if ((Version & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
+ AcpiTableInstance->Dsdt1 = NULL;
//
- // Checksum table
+ // Update FADT table pointers
//
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt1,
- AcpiTableInstance->Fadt1->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
+ if (AcpiTableInstance->Fadt1 != NULL) {
+ AcpiTableInstance->Fadt1->Dsdt = 0;
+
+ //
+ // Checksum table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt1,
+ AcpiTableInstance->Fadt1->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
}
- }
-
- if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
- AcpiTableInstance->Dsdt3 = NULL;
-
- //
- // Update FADT table pointers
- //
- if (AcpiTableInstance->Fadt3 != NULL) {
- AcpiTableInstance->Fadt3->Dsdt = 0;
- ZeroMem (&AcpiTableInstance->Fadt3->XDsdt, sizeof (UINT64));
+ if ((Version & ACPI_TABLE_VERSION_GTE_2_0) != 0) {
+ AcpiTableInstance->Dsdt3 = NULL;
//
- // Checksum table
+ // Update FADT table pointers
//
- AcpiPlatformChecksum (
- AcpiTableInstance->Fadt3,
- AcpiTableInstance->Fadt3->Header.Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
- );
+ if (AcpiTableInstance->Fadt3 != NULL) {
+ AcpiTableInstance->Fadt3->Dsdt = 0;
+ ZeroMem (&AcpiTableInstance->Fadt3->XDsdt, sizeof (UINT64));
+
+ //
+ // Checksum table
+ //
+ AcpiPlatformChecksum (
+ AcpiTableInstance->Fadt3,
+ AcpiTableInstance->Fadt3->Header.Length,
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
+ );
+ }
}
- }
- break;
- default:
- //
- // Do nothing
- //
- break;
+ break;
+
+ default:
+ //
+ // Do nothing
+ //
+ break;
}
}
+
//
// If no version is using this table anymore, remove and free list entry.
//
@@ -1514,13 +1576,13 @@ DeleteTable (
RemoveEntryList (&(Table->Link));
gBS->FreePool (Table);
}
+
//
// Done
//
return EFI_SUCCESS;
}
-
/**
This function finds and removes the table specified by the handle.
@@ -1535,15 +1597,15 @@ DeleteTable (
**/
EFI_STATUS
RemoveTableFromList (
- IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
- IN EFI_ACPI_TABLE_VERSION Version,
- IN UINTN Handle
+ IN EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance,
+ IN EFI_ACPI_TABLE_VERSION Version,
+ IN UINTN Handle
)
{
- EFI_ACPI_TABLE_LIST *Table;
- EFI_STATUS Status;
+ EFI_ACPI_TABLE_LIST *Table;
+ EFI_STATUS Status;
- Table = (EFI_ACPI_TABLE_LIST*) NULL;
+ Table = (EFI_ACPI_TABLE_LIST *)NULL;
//
// Check for invalid input parameters
@@ -1554,13 +1616,14 @@ RemoveTableFromList (
// Find the table
//
Status = FindTableByHandle (
- Handle,
- &AcpiTableInstance->TableList,
- &Table
- );
+ Handle,
+ &AcpiTableInstance->TableList,
+ &Table
+ );
if (EFI_ERROR (Status)) {
return EFI_NOT_FOUND;
}
+
//
// Remove the table
//
@@ -1568,13 +1631,13 @@ RemoveTableFromList (
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Completed successfully
//
return EFI_SUCCESS;
}
-
/**
This function calculates and updates an UINT8 checksum.
@@ -1587,13 +1650,13 @@ RemoveTableFromList (
**/
EFI_STATUS
AcpiPlatformChecksum (
- IN VOID *Buffer,
- IN UINTN Size,
- IN UINTN ChecksumOffset
+ IN VOID *Buffer,
+ IN UINTN Size,
+ IN UINTN ChecksumOffset
)
{
- UINT8 Sum;
- UINT8 *Ptr;
+ UINT8 Sum;
+ UINT8 *Ptr;
Sum = 0;
//
@@ -1610,18 +1673,18 @@ AcpiPlatformChecksum (
// add all content of buffer
//
while ((Size--) != 0) {
- Sum = (UINT8) (Sum + (*Ptr++));
+ Sum = (UINT8)(Sum + (*Ptr++));
}
+
//
// set checksum
//
Ptr = Buffer;
- Ptr[ChecksumOffset] = (UINT8) (0xff - Sum + 1);
+ Ptr[ChecksumOffset] = (UINT8)(0xff - Sum + 1);
return EFI_SUCCESS;
}
-
/**
Checksum all versions of the common tables, RSDP, RSDT, XSDT.
@@ -1632,7 +1695,7 @@ AcpiPlatformChecksum (
**/
EFI_STATUS
ChecksumCommonTables (
- IN OUT EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ IN OUT EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
)
{
//
@@ -1642,8 +1705,10 @@ ChecksumCommonTables (
AcpiPlatformChecksum (
AcpiTableInstance->Rsdp1,
sizeof (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER),
- OFFSET_OF (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER,
+ Checksum
+ )
);
}
@@ -1653,8 +1718,10 @@ ChecksumCommonTables (
AcpiPlatformChecksum (
AcpiTableInstance->Rsdp3,
sizeof (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER),
- OFFSET_OF (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER,
+ Checksum
+ )
);
//
@@ -1663,8 +1730,10 @@ ChecksumCommonTables (
AcpiPlatformChecksum (
AcpiTableInstance->Rsdp3,
sizeof (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER),
- OFFSET_OF (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER,
- ExtendedChecksum)
+ OFFSET_OF (
+ EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER,
+ ExtendedChecksum
+ )
);
if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
@@ -1674,15 +1743,19 @@ ChecksumCommonTables (
AcpiPlatformChecksum (
AcpiTableInstance->Rsdt1,
AcpiTableInstance->Rsdt1->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
AcpiPlatformChecksum (
AcpiTableInstance->Rsdt3,
AcpiTableInstance->Rsdt3->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
}
@@ -1692,8 +1765,10 @@ ChecksumCommonTables (
AcpiPlatformChecksum (
AcpiTableInstance->Xsdt,
AcpiTableInstance->Xsdt->Length,
- OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER,
- Checksum)
+ OFFSET_OF (
+ EFI_ACPI_DESCRIPTION_HEADER,
+ Checksum
+ )
);
return EFI_SUCCESS;
@@ -1711,7 +1786,7 @@ ChecksumCommonTables (
**/
EFI_STATUS
InstallAcpiTableFromHob (
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
)
{
EFI_HOB_GUID_TYPE *GuidHob;
@@ -1731,8 +1806,8 @@ InstallAcpiTableFromHob (
UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader;
TableKey = 0;
- Version = PcdGet32 (PcdAcpiExposedTableVersions);
- Status = EFI_SUCCESS;
+ Version = PcdGet32 (PcdAcpiExposedTableVersions);
+ Status = EFI_SUCCESS;
//
// HOB only contains the ACPI table in 2.0+ format.
//
@@ -1741,36 +1816,38 @@ InstallAcpiTableFromHob (
return EFI_NOT_FOUND;
}
- GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob);
+ GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *)GET_GUID_HOB_DATA (GuidHob);
if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) > GET_GUID_HOB_DATA_SIZE (GuidHob)) || (GenericHeader->Length > GET_GUID_HOB_DATA_SIZE (GuidHob))) {
return EFI_NOT_FOUND;
}
+
if (GenericHeader->Revision == UNIVERSAL_PAYLOAD_ACPI_TABLE_REVISION) {
//
// UNIVERSAL_PAYLOAD_ACPI_TABLE structure is used when Revision equals to UNIVERSAL_PAYLOAD_ACPI_TABLE_REVISION
//
- AcpiTableAdress = (UNIVERSAL_PAYLOAD_ACPI_TABLE *) GET_GUID_HOB_DATA (GuidHob);
+ AcpiTableAdress = (UNIVERSAL_PAYLOAD_ACPI_TABLE *)GET_GUID_HOB_DATA (GuidHob);
if (AcpiTableAdress->Header.Length < UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UNIVERSAL_PAYLOAD_ACPI_TABLE, Rsdp)) {
//
// Retrun if can't find the ACPI Info Hob with enough length
//
return EFI_NOT_FOUND;
}
- Rsdp = (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *) (UINTN) (AcpiTableAdress->Rsdp);
+
+ Rsdp = (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *)(UINTN)(AcpiTableAdress->Rsdp);
//
// An ACPI-compatible OS must use the XSDT if present.
// It shouldn't happen that XsdtAddress points beyond 4G range in 32-bit environment.
//
- ASSERT ((UINTN) Rsdp->XsdtAddress == Rsdp->XsdtAddress);
+ ASSERT ((UINTN)Rsdp->XsdtAddress == Rsdp->XsdtAddress);
EntrySize = sizeof (UINT64);
- Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->XsdtAddress;
+ Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Rsdp->XsdtAddress;
if (Rsdt == NULL) {
//
// XsdtAddress is zero, then we use Rsdt which has 32 bit entry
//
- Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->RsdtAddress;
+ Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)Rsdp->RsdtAddress;
EntrySize = sizeof (UINT32);
}
@@ -1780,33 +1857,34 @@ InstallAcpiTableFromHob (
Count = (Rsdt->Length - sizeof (EFI_ACPI_DESCRIPTION_HEADER)) / EntrySize;
- for (Index = 0; Index < Count; Index++){
+ for (Index = 0; Index < Count; Index++) {
ChildTableAddress = 0;
- CopyMem (&ChildTableAddress, (UINT8 *) (Rsdt + 1) + EntrySize * Index, EntrySize);
+ CopyMem (&ChildTableAddress, (UINT8 *)(Rsdt + 1) + EntrySize * Index, EntrySize);
//
// If the address is of UINT64 while this module runs at 32 bits,
// make sure the upper bits are all-zeros.
//
- ASSERT (ChildTableAddress == (UINTN) ChildTableAddress);
- if (ChildTableAddress != (UINTN) ChildTableAddress) {
+ ASSERT (ChildTableAddress == (UINTN)ChildTableAddress);
+ if (ChildTableAddress != (UINTN)ChildTableAddress) {
Status = EFI_ABORTED;
break;
}
- ChildTable = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) ChildTableAddress;
- Status = AddTableToList (AcpiTableInstance, ChildTable, TRUE, Version, TRUE, &TableKey);
+ ChildTable = (EFI_ACPI_DESCRIPTION_HEADER *)(UINTN)ChildTableAddress;
+ Status = AddTableToList (AcpiTableInstance, ChildTable, TRUE, Version, TRUE, &TableKey);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "InstallAcpiTableFromHob: Fail to add ACPI table at 0x%p\n", ChildTable));
ASSERT_EFI_ERROR (Status);
break;
}
- if (ChildTable->Signature == EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE){
+
+ if (ChildTable->Signature == EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE) {
//
// Add the FACS and DSDT tables if it is not NULL.
//
- if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *) ChildTable)->FirmwareCtrl != 0) {
- TableToInstall = (VOID *) (UINTN) ((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *) ChildTable)->FirmwareCtrl;
- Status = AddTableToList (AcpiTableInstance, TableToInstall, TRUE, Version, TRUE, &TableKey);
+ if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->FirmwareCtrl != 0) {
+ TableToInstall = (VOID *)(UINTN)((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->FirmwareCtrl;
+ Status = AddTableToList (AcpiTableInstance, TableToInstall, TRUE, Version, TRUE, &TableKey);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "InstallAcpiTableFromHob: Fail to add ACPI table FACS\n"));
ASSERT_EFI_ERROR (Status);
@@ -1814,9 +1892,9 @@ InstallAcpiTableFromHob (
}
}
- if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *) ChildTable)->Dsdt != 0) {
- TableToInstall = (VOID *) (UINTN) ((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *) ChildTable)->Dsdt;
- Status = AddTableToList (AcpiTableInstance, TableToInstall, TRUE, Version, TRUE, &TableKey);
+ if (((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->Dsdt != 0) {
+ TableToInstall = (VOID *)(UINTN)((EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE *)ChildTable)->Dsdt;
+ Status = AddTableToList (AcpiTableInstance, TableToInstall, TRUE, Version, TRUE, &TableKey);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "InstallAcpiTableFromHob: Fail to add ACPI table DSDT\n"));
ASSERT_EFI_ERROR (Status);
@@ -1857,7 +1935,7 @@ InstallAcpiTableFromHob (
**/
EFI_STATUS
AcpiTableAcpiTableConstructor (
- EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
+ EFI_ACPI_TABLE_INSTANCE *AcpiTableInstance
)
{
EFI_STATUS Status;
@@ -1883,7 +1961,7 @@ AcpiTableAcpiTableConstructor (
}
InitializeListHead (&AcpiTableInstance->TableList);
- AcpiTableInstance->CurrentHandle = 1;
+ AcpiTableInstance->CurrentHandle = 1;
AcpiTableInstance->AcpiTableProtocol.InstallAcpiTable = InstallAcpiTable;
AcpiTableInstance->AcpiTableProtocol.UninstallAcpiTable = UninstallAcpiTable;
@@ -1902,12 +1980,12 @@ AcpiTableAcpiTableConstructor (
if (mAcpiTableAllocType != AllocateAnyPages) {
PageAddress = 0xFFFFFFFF;
- Status = gBS->AllocatePages (
- mAcpiTableAllocType,
- EfiACPIReclaimMemory,
- EFI_SIZE_TO_PAGES (RsdpTableSize),
- &PageAddress
- );
+ Status = gBS->AllocatePages (
+ mAcpiTableAllocType,
+ EfiACPIReclaimMemory,
+ EFI_SIZE_TO_PAGES (RsdpTableSize),
+ &PageAddress
+ );
} else {
Status = gBS->AllocatePool (
EfiACPIReclaimMemory,
@@ -1923,13 +2001,15 @@ AcpiTableAcpiTableConstructor (
if (mAcpiTableAllocType != AllocateAnyPages) {
Pointer = (UINT8 *)(UINTN)PageAddress;
}
+
ZeroMem (Pointer, RsdpTableSize);
- AcpiTableInstance->Rsdp1 = (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER *) Pointer;
+ AcpiTableInstance->Rsdp1 = (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER *)Pointer;
if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
Pointer += sizeof (EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER);
}
- AcpiTableInstance->Rsdp3 = (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *) Pointer;
+
+ AcpiTableInstance->Rsdp3 = (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *)Pointer;
//
// Create RSDT, XSDT structures
@@ -1955,12 +2035,12 @@ AcpiTableAcpiTableConstructor (
// for convenience of implementation that we force memory below 4GB.
//
PageAddress = 0xFFFFFFFF;
- Status = gBS->AllocatePages (
- mAcpiTableAllocType,
- EfiACPIReclaimMemory,
- EFI_SIZE_TO_PAGES (TotalSize),
- &PageAddress
- );
+ Status = gBS->AllocatePages (
+ mAcpiTableAllocType,
+ EfiACPIReclaimMemory,
+ EFI_SIZE_TO_PAGES (TotalSize),
+ &PageAddress
+ );
} else {
Status = gBS->AllocatePool (
EfiACPIReclaimMemory,
@@ -1971,26 +2051,31 @@ AcpiTableAcpiTableConstructor (
if (EFI_ERROR (Status)) {
if (mAcpiTableAllocType != AllocateAnyPages) {
- gBS->FreePages ((EFI_PHYSICAL_ADDRESS)(UINTN)AcpiTableInstance->Rsdp1,
- EFI_SIZE_TO_PAGES (RsdpTableSize));
+ gBS->FreePages (
+ (EFI_PHYSICAL_ADDRESS)(UINTN)AcpiTableInstance->Rsdp1,
+ EFI_SIZE_TO_PAGES (RsdpTableSize)
+ );
} else {
gBS->FreePool (AcpiTableInstance->Rsdp1);
}
+
return EFI_OUT_OF_RESOURCES;
}
if (mAcpiTableAllocType != AllocateAnyPages) {
Pointer = (UINT8 *)(UINTN)PageAddress;
}
+
ZeroMem (Pointer, TotalSize);
- AcpiTableInstance->Rsdt1 = (EFI_ACPI_DESCRIPTION_HEADER *) Pointer;
+ AcpiTableInstance->Rsdt1 = (EFI_ACPI_DESCRIPTION_HEADER *)Pointer;
if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + EFI_ACPI_MAX_NUM_TABLES * sizeof (UINT32));
- AcpiTableInstance->Rsdt3 = (EFI_ACPI_DESCRIPTION_HEADER *) Pointer;
- Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + EFI_ACPI_MAX_NUM_TABLES * sizeof (UINT32));
+ Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + EFI_ACPI_MAX_NUM_TABLES * sizeof (UINT32));
+ AcpiTableInstance->Rsdt3 = (EFI_ACPI_DESCRIPTION_HEADER *)Pointer;
+ Pointer += (sizeof (EFI_ACPI_DESCRIPTION_HEADER) + EFI_ACPI_MAX_NUM_TABLES * sizeof (UINT32));
}
- AcpiTableInstance->Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) Pointer;
+
+ AcpiTableInstance->Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *)Pointer;
//
// Initialize RSDP
@@ -2000,18 +2085,19 @@ AcpiTableAcpiTableConstructor (
CopyMem (&AcpiTableInstance->Rsdp1->Signature, &CurrentData, sizeof (UINT64));
CopyMem (AcpiTableInstance->Rsdp1->OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (AcpiTableInstance->Rsdp1->OemId));
AcpiTableInstance->Rsdp1->Reserved = EFI_ACPI_RESERVED_BYTE;
- AcpiTableInstance->Rsdp1->RsdtAddress = (UINT32) (UINTN) AcpiTableInstance->Rsdt1;
+ AcpiTableInstance->Rsdp1->RsdtAddress = (UINT32)(UINTN)AcpiTableInstance->Rsdt1;
}
CurrentData = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE;
CopyMem (&AcpiTableInstance->Rsdp3->Signature, &CurrentData, sizeof (UINT64));
CopyMem (AcpiTableInstance->Rsdp3->OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (AcpiTableInstance->Rsdp3->OemId));
- AcpiTableInstance->Rsdp3->Revision = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION;
- AcpiTableInstance->Rsdp3->Length = sizeof (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER);
+ AcpiTableInstance->Rsdp3->Revision = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION;
+ AcpiTableInstance->Rsdp3->Length = sizeof (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER);
if ((PcdGet32 (PcdAcpiExposedTableVersions) & EFI_ACPI_TABLE_VERSION_1_0B) != 0) {
- AcpiTableInstance->Rsdp3->RsdtAddress = (UINT32) (UINTN) AcpiTableInstance->Rsdt3;
+ AcpiTableInstance->Rsdp3->RsdtAddress = (UINT32)(UINTN)AcpiTableInstance->Rsdt3;
}
- CurrentData = (UINT64) (UINTN) AcpiTableInstance->Xsdt;
+
+ CurrentData = (UINT64)(UINTN)AcpiTableInstance->Xsdt;
CopyMem (&AcpiTableInstance->Rsdp3->XsdtAddress, &CurrentData, sizeof (UINT64));
SetMem (AcpiTableInstance->Rsdp3->Reserved, 3, EFI_ACPI_RESERVED_BYTE);
@@ -2035,12 +2121,12 @@ AcpiTableAcpiTableConstructor (
//
// We always reserve first one for FADT
//
- AcpiTableInstance->NumberOfTableEntries1 = 1;
- AcpiTableInstance->Rsdt1->Length = AcpiTableInstance->Rsdt1->Length + sizeof(UINT32);
+ AcpiTableInstance->NumberOfTableEntries1 = 1;
+ AcpiTableInstance->Rsdt1->Length = AcpiTableInstance->Rsdt1->Length + sizeof (UINT32);
- AcpiTableInstance->Rsdt3->Signature = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE;
- AcpiTableInstance->Rsdt3->Length = sizeof (EFI_ACPI_DESCRIPTION_HEADER);
- AcpiTableInstance->Rsdt3->Revision = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION;
+ AcpiTableInstance->Rsdt3->Signature = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE;
+ AcpiTableInstance->Rsdt3->Length = sizeof (EFI_ACPI_DESCRIPTION_HEADER);
+ AcpiTableInstance->Rsdt3->Revision = EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION;
CopyMem (AcpiTableInstance->Rsdt3->OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (AcpiTableInstance->Rsdt3->OemId));
CurrentData = PcdGet64 (PcdAcpiDefaultOemTableId);
CopyMem (&AcpiTableInstance->Rsdt3->OemTableId, &CurrentData, sizeof (UINT64));
@@ -2050,26 +2136,27 @@ AcpiTableAcpiTableConstructor (
//
// We always reserve first one for FADT
//
- AcpiTableInstance->Rsdt3->Length = AcpiTableInstance->Rsdt3->Length + sizeof(UINT32);
+ AcpiTableInstance->Rsdt3->Length = AcpiTableInstance->Rsdt3->Length + sizeof (UINT32);
}
- AcpiTableInstance->NumberOfTableEntries3 = 1;
+
+ AcpiTableInstance->NumberOfTableEntries3 = 1;
//
// Initialize Xsdt
//
- AcpiTableInstance->Xsdt->Signature = EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE;
- AcpiTableInstance->Xsdt->Length = sizeof (EFI_ACPI_DESCRIPTION_HEADER);
- AcpiTableInstance->Xsdt->Revision = EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION;
+ AcpiTableInstance->Xsdt->Signature = EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE;
+ AcpiTableInstance->Xsdt->Length = sizeof (EFI_ACPI_DESCRIPTION_HEADER);
+ AcpiTableInstance->Xsdt->Revision = EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION;
CopyMem (AcpiTableInstance->Xsdt->OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (AcpiTableInstance->Xsdt->OemId));
CurrentData = PcdGet64 (PcdAcpiDefaultOemTableId);
CopyMem (&AcpiTableInstance->Xsdt->OemTableId, &CurrentData, sizeof (UINT64));
- AcpiTableInstance->Xsdt->OemRevision = PcdGet32 (PcdAcpiDefaultOemRevision);
- AcpiTableInstance->Xsdt->CreatorId = PcdGet32 (PcdAcpiDefaultCreatorId);
- AcpiTableInstance->Xsdt->CreatorRevision = PcdGet32 (PcdAcpiDefaultCreatorRevision);
+ AcpiTableInstance->Xsdt->OemRevision = PcdGet32 (PcdAcpiDefaultOemRevision);
+ AcpiTableInstance->Xsdt->CreatorId = PcdGet32 (PcdAcpiDefaultCreatorId);
+ AcpiTableInstance->Xsdt->CreatorRevision = PcdGet32 (PcdAcpiDefaultCreatorRevision);
//
// We always reserve first one for FADT
//
- AcpiTableInstance->Xsdt->Length = AcpiTableInstance->Xsdt->Length + sizeof(UINT64);
+ AcpiTableInstance->Xsdt->Length = AcpiTableInstance->Xsdt->Length + sizeof (UINT64);
ChecksumCommonTables (AcpiTableInstance);
@@ -2080,4 +2167,3 @@ AcpiTableAcpiTableConstructor (
//
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/Aml.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/Aml.c
index 3688056..2e16fef 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/Aml.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/Aml.c
@@ -9,151 +9,151 @@
#include "AcpiTable.h"
GLOBAL_REMOVE_IF_UNREFERENCED
-AML_BYTE_ENCODING mAmlByteEncoding[] = {
+AML_BYTE_ENCODING mAmlByteEncoding[] = {
// OpCode SubOpCode Num 1 2 3 4 5 6 Attribute
-/* ZeroOp - 0x00 */ {AML_ZERO_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* OneOp - 0x01 */ {AML_ONE_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* AliasOp - 0x06 */ {AML_ALIAS_OP, 0, 2, {AML_NAME, AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IN_NAMESPACE},
-/* NameOp - 0x08 */ {AML_NAME_OP, 0, 2, {AML_NAME, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IN_NAMESPACE},
-/* BytePrefix - 0x0A */ {AML_BYTE_PREFIX, 0, 1, {AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* WordPrefix - 0x0B */ {AML_WORD_PREFIX, 0, 1, {AML_UINT16, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* DWordPrefix - 0x0C */ {AML_DWORD_PREFIX, 0, 1, {AML_UINT32, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* StringPrefix - 0x0D */ {AML_STRING_PREFIX, 0, 1, {AML_STRING, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* QWordPrefix - 0x0E */ {AML_QWORD_PREFIX, 0, 1, {AML_UINT64, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ScopeOp - 0x10 */ {AML_SCOPE_OP, 0, 1, {AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE},
-/* BufferOp - 0x11 */ {AML_BUFFER_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH},
-/* PackageOp - 0x12 */ {AML_PACKAGE_OP, 0, 1, {AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ},
-/* VarPackageOp - 0x13 */ {AML_VAR_PACKAGE_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ},
-/* MethodOp - 0x14 */ {AML_METHOD_OP, 0, 2, {AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE},
-/* DualNamePrefix - 0x2F */ {AML_DUAL_NAME_PREFIX, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* MultiNamePrefix - 0x2F */ {AML_MULTI_NAME_PREFIX, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x41 */ {'A', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x42 */ {'B', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x43 */ {'C', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x44 */ {'D', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x45 */ {'E', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x46 */ {'F', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x47 */ {'G', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x48 */ {'H', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x49 */ {'I', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x4A */ {'J', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x4B */ {'K', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x4C */ {'L', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x4D */ {'M', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x4E */ {'N', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x4F */ {'O', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x50 */ {'P', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x51 */ {'Q', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x52 */ {'R', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x53 */ {'S', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x54 */ {'T', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x55 */ {'U', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x56 */ {'V', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x57 */ {'W', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x58 */ {'X', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x59 */ {'Y', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x5A */ {'Z', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* MutexOp - 0x5B 0x01 */ {AML_EXT_OP, AML_EXT_MUTEX_OP, 2, {AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IN_NAMESPACE},
-/* EventOp - 0x5B 0x02 */ {AML_EXT_OP, AML_EXT_EVENT_OP, 1, {AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IN_NAMESPACE},
-/* CondRefOfOp - 0x5B 0x12 */ {AML_EXT_OP, AML_EXT_COND_REF_OF_OP, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* CreateFieldOp - 0x5B 0x13 */ {AML_EXT_OP, AML_EXT_CREATE_FIELD_OP,4, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE}, 0},
-/* LoadTableOp - 0x5B 0x1F */ {AML_EXT_OP, AML_EXT_LOAD_TABLE_OP, 6, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT}, 0},
-/* LoadOp - 0x5B 0x20 */ {AML_EXT_OP, AML_EXT_LOAD_OP, 2, {AML_NAME, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* StallOp - 0x5B 0x21 */ {AML_EXT_OP, AML_EXT_STALL_OP, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* SleepOp - 0x5B 0x22 */ {AML_EXT_OP, AML_EXT_SLEEP_OP, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* AcquireOp - 0x5B 0x23 */ {AML_EXT_OP, AML_EXT_ACQUIRE_OP, 2, {AML_OBJECT, AML_UINT16, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* SignalOp - 0x5B 0x24 */ {AML_EXT_OP, AML_EXT_SIGNAL_OP, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* WaitOp - 0x5B 0x25 */ {AML_EXT_OP, AML_EXT_WAIT_OP, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ResetOp - 0x5B 0x26 */ {AML_EXT_OP, AML_EXT_RESET_OP, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ReleaseOp - 0x5B 0x27 */ {AML_EXT_OP, AML_EXT_RELEASE_OP, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* FromBCDOp - 0x5B 0x28 */ {AML_EXT_OP, AML_EXT_FROM_BCD_OP, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ToBCDOp - 0x5B 0x29 */ {AML_EXT_OP, AML_EXT_TO_BCD_OP, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* UnloadOp - 0x5B 0x2A */ {AML_EXT_OP, AML_EXT_UNLOAD_OP, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* RevisionOp - 0x5B 0x30 */ {AML_EXT_OP, AML_EXT_REVISION_OP, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* DebugOp - 0x5B 0x31 */ {AML_EXT_OP, AML_EXT_DEBUG_OP, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* FatalOp - 0x5B 0x32 */ {AML_EXT_OP, AML_EXT_FATAL_OP, 3, {AML_UINT8, AML_UINT32, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* TimerOp - 0x5B 0x33 */ {AML_EXT_OP, AML_EXT_TIMER_OP, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* OpRegionOp - 0x5B 0x80 */ {AML_EXT_OP, AML_EXT_REGION_OP, 4, {AML_NAME, AML_UINT8, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE}, AML_IN_NAMESPACE},
-/* FieldOp - 0x5B 0x81 */ {AML_EXT_OP, AML_EXT_FIELD_OP, 2, {AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH},
-/* DeviceOp - 0x5B 0x82 */ {AML_EXT_OP, AML_EXT_DEVICE_OP, 1, {AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE},
-/* ProcessorOp - 0x5B 0x83 */ {AML_EXT_OP, AML_EXT_PROCESSOR_OP, 4, {AML_NAME, AML_UINT8, AML_UINT32, AML_UINT8, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE},
-/* PowerResOp - 0x5B 0x84 */ {AML_EXT_OP, AML_EXT_POWER_RES_OP, 3, {AML_NAME, AML_UINT8, AML_UINT16, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE},
-/* ThermalZoneOp - 0x5B 0x85 */ {AML_EXT_OP, AML_EXT_THERMAL_ZONE_OP,1, {AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE},
-/* IndexFieldOp - 0x5B 0x86 */ {AML_EXT_OP, AML_EXT_INDEX_FIELD_OP, 3, {AML_NAME, AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH},
-/* BankFieldOp - 0x5B 0x87 */ {AML_EXT_OP, AML_EXT_BANK_FIELD_OP, 4, {AML_NAME, AML_NAME, AML_OBJECT, AML_UINT8, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH},
-/* DataRegionOp - 0x5B 0x88 */ {AML_EXT_OP, AML_EXT_DATA_REGION_OP, 4, {AML_NAME, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE}, AML_IN_NAMESPACE},
-/* RootChar - 0x5C */ {AML_ROOT_CHAR, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* ParentPrefixChar - 0x5E */ {AML_PARENT_PREFIX_CHAR, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* NameChar - 0x5F */ {'_', 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_IS_NAME_CHAR},
-/* Local0Op - 0x60 */ {AML_LOCAL0, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local1Op - 0x61 */ {AML_LOCAL1, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local2Op - 0x62 */ {AML_LOCAL2, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local3Op - 0x63 */ {AML_LOCAL3, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local4Op - 0x64 */ {AML_LOCAL4, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local5Op - 0x65 */ {AML_LOCAL5, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local6Op - 0x66 */ {AML_LOCAL6, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Local7Op - 0x67 */ {AML_LOCAL7, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg0Op - 0x68 */ {AML_ARG0, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg1Op - 0x69 */ {AML_ARG1, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg2Op - 0x6A */ {AML_ARG2, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg3Op - 0x6B */ {AML_ARG3, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg4Op - 0x6C */ {AML_ARG4, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg5Op - 0x6D */ {AML_ARG5, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* Arg6Op - 0x6E */ {AML_ARG6, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* StoreOp - 0x70 */ {AML_STORE_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* RefOfOp - 0x71 */ {AML_REF_OF_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* AddOp - 0x72 */ {AML_ADD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ConcatOp - 0x73 */ {AML_CONCAT_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* SubtractOp - 0x74 */ {AML_SUBTRACT_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* IncrementOp - 0x75 */ {AML_INCREMENT_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* DecrementOp - 0x76 */ {AML_DECREMENT_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* MultiplyOp - 0x77 */ {AML_MULTIPLY_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* DivideOp - 0x78 */ {AML_DIVIDE_OP, 0, 4, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE}, 0},
-/* ShiftLeftOp - 0x79 */ {AML_SHIFT_LEFT_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ShiftRightOp - 0x7A */ {AML_SHIFT_RIGHT_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* AndOp - 0x7B */ {AML_AND_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* NAndOp - 0x7C */ {AML_NAND_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* OrOp - 0x7D */ {AML_OR_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* NorOp - 0x7E */ {AML_NOR_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* XOrOp - 0x7F */ {AML_XOR_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* NotOp - 0x80 */ {AML_NOT_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* FindSetLeftBitOp - 0x81 */ {AML_FIND_SET_LEFT_BIT_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* FindSetRightBitOp - 0x82 */ {AML_FIND_SET_RIGHT_BIT_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* DerefOfOp - 0x83 */ {AML_DEREF_OF_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ConcatResOp - 0x84 */ {AML_CONCAT_RES_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ModOp - 0x85 */ {AML_MOD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* NotifyOp - 0x86 */ {AML_NOTIFY_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* SizeOfOp - 0x87 */ {AML_SIZE_OF_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* IndexOp - 0x88 */ {AML_INDEX_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* MatchOp - 0x89 */ {AML_MATCH_OP, 0, 6, {AML_OBJECT, AML_UINT8, AML_OBJECT, AML_UINT8, AML_OBJECT, AML_OBJECT}, 0},
-/* CreateDWordFieldOp - 0x8A */ {AML_CREATE_DWORD_FIELD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* CreateWordFieldOp - 0x8B */ {AML_CREATE_WORD_FIELD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* CreateByteFieldOp - 0x8C */ {AML_CREATE_BYTE_FIELD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* CreateBitFieldOp - 0x8D */ {AML_CREATE_BIT_FIELD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ObjectTypeOp - 0x8E */ {AML_OBJECT_TYPE_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* CreateQWordFieldOp - 0x8F */ {AML_CREATE_QWORD_FIELD_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* LAndOp - 0x90 */ {AML_LAND_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* LOrOp - 0x91 */ {AML_LOR_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* LNotOp - 0x92 */ {AML_LNOT_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* LEqualOp - 0x93 */ {AML_LEQUAL_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* LGreaterOp - 0x94 */ {AML_LGREATER_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* LLessOp - 0x95 */ {AML_LLESS_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ToBufferOp - 0x96 */ {AML_TO_BUFFER_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ToDecimalStringOp - 0x97 */ {AML_TO_DEC_STRING_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ToHexStringOp - 0x98 */ {AML_TO_HEX_STRING_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ToIntegerOp - 0x99 */ {AML_TO_INTEGER_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ToStringOp - 0x9C */ {AML_TO_STRING_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* CopyObjectOp - 0x9D */ {AML_COPY_OBJECT_OP, 0, 2, {AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* MidOp - 0x9E */ {AML_MID_OP, 0, 3, {AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ContinueOp - 0x9F */ {AML_CONTINUE_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* IfOp - 0xA0 */ {AML_IF_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ},
-/* ElseOp - 0xA1 */ {AML_ELSE_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ},
-/* WhileOp - 0xA2 */ {AML_WHILE_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ},
-/* NoopOp - 0xA3 */ {AML_NOOP_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* ReturnOp - 0xA4 */ {AML_RETURN_OP, 0, 1, {AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* BreakOp - 0xA5 */ {AML_BREAK_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* BreakPointOp - 0xCC */ {AML_BREAK_POINT_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
-/* OnesOp - 0xFF */ {AML_ONES_OP, 0, 0, {AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE}, 0},
+ /* ZeroOp - 0x00 */ { AML_ZERO_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* OneOp - 0x01 */ { AML_ONE_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* AliasOp - 0x06 */ { AML_ALIAS_OP, 0, 2, { AML_NAME, AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IN_NAMESPACE },
+ /* NameOp - 0x08 */ { AML_NAME_OP, 0, 2, { AML_NAME, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IN_NAMESPACE },
+ /* BytePrefix - 0x0A */ { AML_BYTE_PREFIX, 0, 1, { AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* WordPrefix - 0x0B */ { AML_WORD_PREFIX, 0, 1, { AML_UINT16, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* DWordPrefix - 0x0C */ { AML_DWORD_PREFIX, 0, 1, { AML_UINT32, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* StringPrefix - 0x0D */ { AML_STRING_PREFIX, 0, 1, { AML_STRING, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* QWordPrefix - 0x0E */ { AML_QWORD_PREFIX, 0, 1, { AML_UINT64, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ScopeOp - 0x10 */ { AML_SCOPE_OP, 0, 1, { AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE },
+ /* BufferOp - 0x11 */ { AML_BUFFER_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH },
+ /* PackageOp - 0x12 */ { AML_PACKAGE_OP, 0, 1, { AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ },
+ /* VarPackageOp - 0x13 */ { AML_VAR_PACKAGE_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ },
+ /* MethodOp - 0x14 */ { AML_METHOD_OP, 0, 2, { AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE },
+ /* DualNamePrefix - 0x2F */ { AML_DUAL_NAME_PREFIX, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* MultiNamePrefix - 0x2F */ { AML_MULTI_NAME_PREFIX, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x41 */ { 'A', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x42 */ { 'B', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x43 */ { 'C', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x44 */ { 'D', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x45 */ { 'E', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x46 */ { 'F', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x47 */ { 'G', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x48 */ { 'H', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x49 */ { 'I', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x4A */ { 'J', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x4B */ { 'K', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x4C */ { 'L', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x4D */ { 'M', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x4E */ { 'N', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x4F */ { 'O', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x50 */ { 'P', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x51 */ { 'Q', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x52 */ { 'R', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x53 */ { 'S', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x54 */ { 'T', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x55 */ { 'U', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x56 */ { 'V', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x57 */ { 'W', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x58 */ { 'X', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x59 */ { 'Y', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x5A */ { 'Z', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* MutexOp - 0x5B 0x01 */ { AML_EXT_OP, AML_EXT_MUTEX_OP, 2, { AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IN_NAMESPACE },
+ /* EventOp - 0x5B 0x02 */ { AML_EXT_OP, AML_EXT_EVENT_OP, 1, { AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IN_NAMESPACE },
+ /* CondRefOfOp - 0x5B 0x12 */ { AML_EXT_OP, AML_EXT_COND_REF_OF_OP, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* CreateFieldOp - 0x5B 0x13 */ { AML_EXT_OP, AML_EXT_CREATE_FIELD_OP, 4, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE }, 0 },
+ /* LoadTableOp - 0x5B 0x1F */ { AML_EXT_OP, AML_EXT_LOAD_TABLE_OP, 6, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT }, 0 },
+ /* LoadOp - 0x5B 0x20 */ { AML_EXT_OP, AML_EXT_LOAD_OP, 2, { AML_NAME, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* StallOp - 0x5B 0x21 */ { AML_EXT_OP, AML_EXT_STALL_OP, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* SleepOp - 0x5B 0x22 */ { AML_EXT_OP, AML_EXT_SLEEP_OP, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* AcquireOp - 0x5B 0x23 */ { AML_EXT_OP, AML_EXT_ACQUIRE_OP, 2, { AML_OBJECT, AML_UINT16, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* SignalOp - 0x5B 0x24 */ { AML_EXT_OP, AML_EXT_SIGNAL_OP, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* WaitOp - 0x5B 0x25 */ { AML_EXT_OP, AML_EXT_WAIT_OP, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ResetOp - 0x5B 0x26 */ { AML_EXT_OP, AML_EXT_RESET_OP, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ReleaseOp - 0x5B 0x27 */ { AML_EXT_OP, AML_EXT_RELEASE_OP, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* FromBCDOp - 0x5B 0x28 */ { AML_EXT_OP, AML_EXT_FROM_BCD_OP, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ToBCDOp - 0x5B 0x29 */ { AML_EXT_OP, AML_EXT_TO_BCD_OP, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* UnloadOp - 0x5B 0x2A */ { AML_EXT_OP, AML_EXT_UNLOAD_OP, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* RevisionOp - 0x5B 0x30 */ { AML_EXT_OP, AML_EXT_REVISION_OP, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* DebugOp - 0x5B 0x31 */ { AML_EXT_OP, AML_EXT_DEBUG_OP, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* FatalOp - 0x5B 0x32 */ { AML_EXT_OP, AML_EXT_FATAL_OP, 3, { AML_UINT8, AML_UINT32, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* TimerOp - 0x5B 0x33 */ { AML_EXT_OP, AML_EXT_TIMER_OP, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* OpRegionOp - 0x5B 0x80 */ { AML_EXT_OP, AML_EXT_REGION_OP, 4, { AML_NAME, AML_UINT8, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE }, AML_IN_NAMESPACE },
+ /* FieldOp - 0x5B 0x81 */ { AML_EXT_OP, AML_EXT_FIELD_OP, 2, { AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH },
+ /* DeviceOp - 0x5B 0x82 */ { AML_EXT_OP, AML_EXT_DEVICE_OP, 1, { AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE },
+ /* ProcessorOp - 0x5B 0x83 */ { AML_EXT_OP, AML_EXT_PROCESSOR_OP, 4, { AML_NAME, AML_UINT8, AML_UINT32, AML_UINT8, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE },
+ /* PowerResOp - 0x5B 0x84 */ { AML_EXT_OP, AML_EXT_POWER_RES_OP, 3, { AML_NAME, AML_UINT8, AML_UINT16, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE },
+ /* ThermalZoneOp - 0x5B 0x85 */ { AML_EXT_OP, AML_EXT_THERMAL_ZONE_OP, 1, { AML_NAME, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ | AML_IN_NAMESPACE },
+ /* IndexFieldOp - 0x5B 0x86 */ { AML_EXT_OP, AML_EXT_INDEX_FIELD_OP, 3, { AML_NAME, AML_NAME, AML_UINT8, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH },
+ /* BankFieldOp - 0x5B 0x87 */ { AML_EXT_OP, AML_EXT_BANK_FIELD_OP, 4, { AML_NAME, AML_NAME, AML_OBJECT, AML_UINT8, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH },
+ /* DataRegionOp - 0x5B 0x88 */ { AML_EXT_OP, AML_EXT_DATA_REGION_OP, 4, { AML_NAME, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE }, AML_IN_NAMESPACE },
+ /* RootChar - 0x5C */ { AML_ROOT_CHAR, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* ParentPrefixChar - 0x5E */ { AML_PARENT_PREFIX_CHAR, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* NameChar - 0x5F */ { '_', 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_IS_NAME_CHAR },
+ /* Local0Op - 0x60 */ { AML_LOCAL0, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local1Op - 0x61 */ { AML_LOCAL1, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local2Op - 0x62 */ { AML_LOCAL2, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local3Op - 0x63 */ { AML_LOCAL3, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local4Op - 0x64 */ { AML_LOCAL4, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local5Op - 0x65 */ { AML_LOCAL5, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local6Op - 0x66 */ { AML_LOCAL6, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Local7Op - 0x67 */ { AML_LOCAL7, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg0Op - 0x68 */ { AML_ARG0, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg1Op - 0x69 */ { AML_ARG1, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg2Op - 0x6A */ { AML_ARG2, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg3Op - 0x6B */ { AML_ARG3, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg4Op - 0x6C */ { AML_ARG4, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg5Op - 0x6D */ { AML_ARG5, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* Arg6Op - 0x6E */ { AML_ARG6, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* StoreOp - 0x70 */ { AML_STORE_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* RefOfOp - 0x71 */ { AML_REF_OF_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* AddOp - 0x72 */ { AML_ADD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ConcatOp - 0x73 */ { AML_CONCAT_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* SubtractOp - 0x74 */ { AML_SUBTRACT_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* IncrementOp - 0x75 */ { AML_INCREMENT_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* DecrementOp - 0x76 */ { AML_DECREMENT_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* MultiplyOp - 0x77 */ { AML_MULTIPLY_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* DivideOp - 0x78 */ { AML_DIVIDE_OP, 0, 4, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE }, 0 },
+ /* ShiftLeftOp - 0x79 */ { AML_SHIFT_LEFT_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ShiftRightOp - 0x7A */ { AML_SHIFT_RIGHT_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* AndOp - 0x7B */ { AML_AND_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* NAndOp - 0x7C */ { AML_NAND_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* OrOp - 0x7D */ { AML_OR_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* NorOp - 0x7E */ { AML_NOR_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* XOrOp - 0x7F */ { AML_XOR_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* NotOp - 0x80 */ { AML_NOT_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* FindSetLeftBitOp - 0x81 */ { AML_FIND_SET_LEFT_BIT_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* FindSetRightBitOp - 0x82 */ { AML_FIND_SET_RIGHT_BIT_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* DerefOfOp - 0x83 */ { AML_DEREF_OF_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ConcatResOp - 0x84 */ { AML_CONCAT_RES_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ModOp - 0x85 */ { AML_MOD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* NotifyOp - 0x86 */ { AML_NOTIFY_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* SizeOfOp - 0x87 */ { AML_SIZE_OF_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* IndexOp - 0x88 */ { AML_INDEX_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* MatchOp - 0x89 */ { AML_MATCH_OP, 0, 6, { AML_OBJECT, AML_UINT8, AML_OBJECT, AML_UINT8, AML_OBJECT, AML_OBJECT }, 0 },
+ /* CreateDWordFieldOp - 0x8A */ { AML_CREATE_DWORD_FIELD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* CreateWordFieldOp - 0x8B */ { AML_CREATE_WORD_FIELD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* CreateByteFieldOp - 0x8C */ { AML_CREATE_BYTE_FIELD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* CreateBitFieldOp - 0x8D */ { AML_CREATE_BIT_FIELD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ObjectTypeOp - 0x8E */ { AML_OBJECT_TYPE_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* CreateQWordFieldOp - 0x8F */ { AML_CREATE_QWORD_FIELD_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_NAME, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* LAndOp - 0x90 */ { AML_LAND_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* LOrOp - 0x91 */ { AML_LOR_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* LNotOp - 0x92 */ { AML_LNOT_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* LEqualOp - 0x93 */ { AML_LEQUAL_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* LGreaterOp - 0x94 */ { AML_LGREATER_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* LLessOp - 0x95 */ { AML_LLESS_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ToBufferOp - 0x96 */ { AML_TO_BUFFER_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ToDecimalStringOp - 0x97 */ { AML_TO_DEC_STRING_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ToHexStringOp - 0x98 */ { AML_TO_HEX_STRING_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ToIntegerOp - 0x99 */ { AML_TO_INTEGER_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ToStringOp - 0x9C */ { AML_TO_STRING_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* CopyObjectOp - 0x9D */ { AML_COPY_OBJECT_OP, 0, 2, { AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* MidOp - 0x9E */ { AML_MID_OP, 0, 3, { AML_OBJECT, AML_OBJECT, AML_OBJECT, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ContinueOp - 0x9F */ { AML_CONTINUE_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* IfOp - 0xA0 */ { AML_IF_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ },
+ /* ElseOp - 0xA1 */ { AML_ELSE_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ },
+ /* WhileOp - 0xA2 */ { AML_WHILE_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, AML_HAS_PKG_LENGTH | AML_HAS_CHILD_OBJ },
+ /* NoopOp - 0xA3 */ { AML_NOOP_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* ReturnOp - 0xA4 */ { AML_RETURN_OP, 0, 1, { AML_OBJECT, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* BreakOp - 0xA5 */ { AML_BREAK_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* BreakPointOp - 0xCC */ { AML_BREAK_POINT_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
+ /* OnesOp - 0xFF */ { AML_ONES_OP, 0, 0, { AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE, AML_NONE }, 0 },
};
GLOBAL_REMOVE_IF_UNREFERENCED
@@ -178,12 +178,12 @@ EFI_ACPI_DATA_TYPE mAmlTypeToAcpiType[] = {
**/
AML_BYTE_ENCODING *
AmlSearchByOpByte (
- IN UINT8 *OpByteBuffer
+ IN UINT8 *OpByteBuffer
)
{
- UINT8 OpCode;
- UINT8 SubOpCode;
- UINTN Index;
+ UINT8 OpCode;
+ UINT8 SubOpCode;
+ UINTN Index;
//
// Get OpCode and SubOpCode
@@ -198,7 +198,7 @@ AmlSearchByOpByte (
//
// Search the table
//
- for (Index = 0; Index < sizeof(mAmlByteEncoding)/sizeof(mAmlByteEncoding[0]); Index++) {
+ for (Index = 0; Index < sizeof (mAmlByteEncoding)/sizeof (mAmlByteEncoding[0]); Index++) {
if ((mAmlByteEncoding[Index].OpCode == OpCode) && (mAmlByteEncoding[Index].SubOpCode == SubOpCode)) {
return &mAmlByteEncoding[Index];
}
@@ -219,11 +219,12 @@ AmlTypeToAcpiType (
IN AML_OP_PARSE_FORMAT AmlType
)
{
- if (AmlType >= sizeof(mAmlTypeToAcpiType)/sizeof(mAmlTypeToAcpiType[0])) {
- ASSERT(FALSE);
+ if (AmlType >= sizeof (mAmlTypeToAcpiType)/sizeof (mAmlTypeToAcpiType[0])) {
+ ASSERT (FALSE);
return EFI_ACPI_DATA_TYPE_NONE;
}
- return mAmlTypeToAcpiType [AmlType];
+
+ return mAmlTypeToAcpiType[AmlType];
}
/**
@@ -236,14 +237,14 @@ AmlTypeToAcpiType (
**/
UINTN
AmlGetPkgLength (
- IN UINT8 *Buffer,
- OUT UINTN *PkgLength
+ IN UINT8 *Buffer,
+ OUT UINTN *PkgLength
)
{
- UINT8 LeadByte;
- UINT8 ByteCount;
- UINTN RealLength;
- UINTN Offset;
+ UINT8 LeadByte;
+ UINT8 ByteCount;
+ UINTN RealLength;
+ UINTN Offset;
//
// <bit 7-6: ByteData count that follows (0-3)>
@@ -261,36 +262,35 @@ AmlGetPkgLength (
// length is 2**28.
//
- LeadByte = *Buffer;
- ByteCount = (UINT8)((LeadByte >> 6) & 0x03);
- Offset = ByteCount + 1;
+ LeadByte = *Buffer;
+ ByteCount = (UINT8)((LeadByte >> 6) & 0x03);
+ Offset = ByteCount + 1;
RealLength = 0;
switch (ByteCount) {
- case 0:
- RealLength = (UINT32)LeadByte;
- break;
- case 1:
- RealLength = *(Buffer + 1);
- RealLength = (RealLength << 4) | (LeadByte & 0xF);
- break;
- case 2:
- RealLength = *(Buffer + 1);
- RealLength |= (UINTN)((*(Buffer + 2)) << 8);
- RealLength = (RealLength << 4) | (LeadByte & 0xF);
- break;
- case 3:
- RealLength = *(Buffer + 1);
- RealLength |= (UINTN)((*(Buffer + 2)) << 8);
- RealLength |= (UINTN)((*(Buffer + 3)) << 16);
- RealLength = (RealLength << 4) | (LeadByte & 0xF);
- break;
- default:
- ASSERT (0);
- break;
+ case 0:
+ RealLength = (UINT32)LeadByte;
+ break;
+ case 1:
+ RealLength = *(Buffer + 1);
+ RealLength = (RealLength << 4) | (LeadByte & 0xF);
+ break;
+ case 2:
+ RealLength = *(Buffer + 1);
+ RealLength |= (UINTN)((*(Buffer + 2)) << 8);
+ RealLength = (RealLength << 4) | (LeadByte & 0xF);
+ break;
+ case 3:
+ RealLength = *(Buffer + 1);
+ RealLength |= (UINTN)((*(Buffer + 2)) << 8);
+ RealLength |= (UINTN)((*(Buffer + 3)) << 16);
+ RealLength = (RealLength << 4) | (LeadByte & 0xF);
+ break;
+ default:
+ ASSERT (0);
+ break;
}
*PkgLength = RealLength;
return Offset;
}
-
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlChild.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlChild.c
index 5622718..0c15457 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlChild.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlChild.c
@@ -21,13 +21,13 @@
**/
EFI_STATUS
AmlGetChildFromObjectBuffer (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN UINT8 *CurrentBuffer,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN UINT8 *CurrentBuffer,
+ OUT VOID **Buffer
)
{
- AML_BYTE_ENCODING *AmlByteEncoding;
- UINTN DataSize;
+ AML_BYTE_ENCODING *AmlByteEncoding;
+ UINTN DataSize;
//
// Root is considered as SCOPE, which has TermList.
@@ -38,6 +38,7 @@ AmlGetChildFromObjectBuffer (
if (AmlByteEncoding == NULL) {
return EFI_INVALID_PARAMETER;
}
+
//
// NOTE: We need return everything, because user might need parse the returned object.
//
@@ -54,6 +55,7 @@ AmlGetChildFromObjectBuffer (
if (DataSize == 0) {
return EFI_INVALID_PARAMETER;
}
+
CurrentBuffer += DataSize;
}
@@ -77,12 +79,12 @@ AmlGetChildFromObjectBuffer (
**/
EFI_STATUS
AmlGetChildFromRoot (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN EFI_AML_HANDLE *AmlHandle,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT VOID **Buffer
)
{
- UINT8 *CurrentBuffer;
+ UINT8 *CurrentBuffer;
if (AmlHandle == NULL) {
//
@@ -109,9 +111,9 @@ AmlGetChildFromRoot (
**/
EFI_STATUS
AmlGetChildFromOptionList (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN EFI_AML_HANDLE *AmlHandle,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT VOID **Buffer
)
{
EFI_ACPI_DATA_TYPE DataType;
@@ -121,7 +123,7 @@ AmlGetChildFromOptionList (
EFI_STATUS Status;
AML_OP_PARSE_INDEX MaxTerm;
- Index = AML_OP_PARSE_INDEX_GET_TERM1;
+ Index = AML_OP_PARSE_INDEX_GET_TERM1;
MaxTerm = AmlParentHandle->AmlByteEncoding->MaxIndex;
while (Index <= MaxTerm) {
Status = AmlParseOptionHandleCommon (
@@ -134,6 +136,7 @@ AmlGetChildFromOptionList (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
if (DataType == EFI_ACPI_DATA_TYPE_NONE) {
//
// Not found
@@ -145,17 +148,19 @@ AmlGetChildFromOptionList (
// Find it, and Check Data
//
if ((DataType == EFI_ACPI_DATA_TYPE_CHILD) &&
- ((UINTN)AmlHandle->Buffer < (UINTN)Data)) {
+ ((UINTN)AmlHandle->Buffer < (UINTN)Data))
+ {
//
// Buffer < Data means current node is next one
//
*Buffer = Data;
return EFI_SUCCESS;
}
+
//
// Not Child
//
- Index ++;
+ Index++;
}
*Buffer = NULL;
@@ -175,13 +180,13 @@ AmlGetChildFromOptionList (
**/
EFI_STATUS
AmlGetChildFromObjectChildList (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN EFI_AML_HANDLE *AmlHandle,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT VOID **Buffer
)
{
- EFI_STATUS Status;
- UINT8 *CurrentBuffer;
+ EFI_STATUS Status;
+ UINT8 *CurrentBuffer;
CurrentBuffer = NULL;
@@ -242,12 +247,12 @@ AmlGetChildFromObjectChildList (
**/
EFI_STATUS
AmlGetChildFromNonRoot (
- IN EFI_AML_HANDLE *AmlParentHandle,
- IN EFI_AML_HANDLE *AmlHandle,
- OUT VOID **Buffer
+ IN EFI_AML_HANDLE *AmlParentHandle,
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT VOID **Buffer
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (AmlHandle == NULL) {
//
@@ -263,6 +268,7 @@ AmlGetChildFromNonRoot (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
if (*Buffer != NULL) {
return EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c
index d5d48f9..61c7273 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c
@@ -20,9 +20,9 @@
**/
EFI_STATUS
AmlConstructNodeList (
- IN EFI_AML_HANDLE *AmlHandle,
- IN EFI_AML_NODE_LIST *AmlRootNodeList,
- IN EFI_AML_NODE_LIST *AmlParentNodeList
+ IN EFI_AML_HANDLE *AmlHandle,
+ IN EFI_AML_NODE_LIST *AmlRootNodeList,
+ IN EFI_AML_NODE_LIST *AmlParentNodeList
);
/**
@@ -41,18 +41,18 @@ AmlCreateNode (
IN AML_BYTE_ENCODING *AmlByteEncoding
)
{
- EFI_AML_NODE_LIST *AmlNodeList;
+ EFI_AML_NODE_LIST *AmlNodeList;
- AmlNodeList = AllocatePool (sizeof(*AmlNodeList));
+ AmlNodeList = AllocatePool (sizeof (*AmlNodeList));
ASSERT (AmlNodeList != NULL);
AmlNodeList->Signature = EFI_AML_NODE_LIST_SIGNATURE;
CopyMem (AmlNodeList->Name, NameSeg, AML_NAME_SEG_SIZE);
- AmlNodeList->Buffer = NULL;
- AmlNodeList->Size = 0;
+ AmlNodeList->Buffer = NULL;
+ AmlNodeList->Size = 0;
InitializeListHead (&AmlNodeList->Link);
InitializeListHead (&AmlNodeList->Children);
- AmlNodeList->Parent = Parent;
+ AmlNodeList->Parent = Parent;
AmlNodeList->AmlByteEncoding = AmlByteEncoding;
return AmlNodeList;
@@ -69,15 +69,15 @@ AmlCreateNode (
**/
EFI_AML_NODE_LIST *
AmlFindNodeInThis (
- IN UINT8 *NameSeg,
- IN EFI_AML_NODE_LIST *AmlParentNodeList,
- IN BOOLEAN Create
+ IN UINT8 *NameSeg,
+ IN EFI_AML_NODE_LIST *AmlParentNodeList,
+ IN BOOLEAN Create
)
{
- EFI_AML_NODE_LIST *CurrentAmlNodeList;
- LIST_ENTRY *CurrentLink;
- LIST_ENTRY *StartLink;
- EFI_AML_NODE_LIST *AmlNodeList;
+ EFI_AML_NODE_LIST *CurrentAmlNodeList;
+ LIST_ENTRY *CurrentLink;
+ LIST_ENTRY *StartLink;
+ EFI_AML_NODE_LIST *AmlNodeList;
StartLink = &AmlParentNodeList->Children;
CurrentLink = StartLink->ForwardLink;
@@ -93,6 +93,7 @@ AmlFindNodeInThis (
//
return CurrentAmlNodeList;
}
+
CurrentLink = CurrentLink->ForwardLink;
}
@@ -124,17 +125,17 @@ AmlFindNodeInThis (
**/
EFI_AML_NODE_LIST *
AmlFindNodeInTheTree (
- IN UINT8 *NameString,
- IN EFI_AML_NODE_LIST *AmlRootNodeList,
- IN EFI_AML_NODE_LIST *AmlParentNodeList,
- IN BOOLEAN Create
+ IN UINT8 *NameString,
+ IN EFI_AML_NODE_LIST *AmlRootNodeList,
+ IN EFI_AML_NODE_LIST *AmlParentNodeList,
+ IN BOOLEAN Create
)
{
- UINT8 *Buffer;
- EFI_AML_NODE_LIST *AmlNodeList;
- EFI_AML_NODE_LIST *AmlCurrentNodeList;
- UINT8 Index;
- UINT8 SegCount;
+ UINT8 *Buffer;
+ EFI_AML_NODE_LIST *AmlNodeList;
+ EFI_AML_NODE_LIST *AmlCurrentNodeList;
+ UINT8 Index;
+ UINT8 SegCount;
Buffer = NameString;
@@ -143,7 +144,7 @@ AmlFindNodeInTheTree (
//
if (*Buffer == AML_ROOT_CHAR) {
AmlCurrentNodeList = AmlRootNodeList;
- Buffer += 1;
+ Buffer += 1;
} else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
AmlCurrentNodeList = AmlParentNodeList;
do {
@@ -155,6 +156,7 @@ AmlFindNodeInTheTree (
//
ASSERT (AmlCurrentNodeList == AmlRootNodeList);
}
+
Buffer += 1;
} while (*Buffer == AML_PARENT_PREFIX_CHAR);
} else {
@@ -165,12 +167,12 @@ AmlFindNodeInTheTree (
// Handle name segment
//
if (*Buffer == AML_DUAL_NAME_PREFIX) {
- Buffer += 1;
+ Buffer += 1;
SegCount = 2;
} else if (*Buffer == AML_MULTI_NAME_PREFIX) {
- Buffer += 1;
+ Buffer += 1;
SegCount = *Buffer;
- Buffer += 1;
+ Buffer += 1;
} else if (*Buffer == 0) {
//
// NULL name, only for Root
@@ -190,9 +192,10 @@ AmlFindNodeInTheTree (
if (AmlNodeList == NULL) {
return NULL;
}
+
AmlCurrentNodeList = AmlNodeList;
- Buffer += AML_NAME_SEG_SIZE;
- Index ++;
+ Buffer += AML_NAME_SEG_SIZE;
+ Index++;
} while (Index < SegCount);
return AmlNodeList;
@@ -211,14 +214,14 @@ AmlFindNodeInTheTree (
**/
EFI_AML_NODE_LIST *
AmlInsertNodeToTree (
- IN UINT8 *NameString,
- IN VOID *Buffer,
- IN UINTN Size,
- IN EFI_AML_NODE_LIST *AmlRootNodeList,
- IN EFI_AML_NODE_LIST *AmlParentNodeList
+ IN UINT8 *NameString,
+ IN VOID *Buffer,
+ IN UINTN Size,
+ IN EFI_AML_NODE_LIST *AmlRootNodeList,
+ IN EFI_AML_NODE_LIST *AmlParentNodeList
)
{
- EFI_AML_NODE_LIST *AmlNodeList;
+ EFI_AML_NODE_LIST *AmlNodeList;
AmlNodeList = AmlFindNodeInTheTree (
NameString,
@@ -243,10 +246,11 @@ AmlInsertNodeToTree (
// We need check if new one is SCOPE_OP, because SCOPE_OP just means namespace, not a real device.
// We should not return SCOPE_OP.
//
- AmlNodeList->Buffer = Buffer;
- AmlNodeList->Size = Size;
+ AmlNodeList->Buffer = Buffer;
+ AmlNodeList->Size = Size;
AmlNodeList->AmlByteEncoding = AmlSearchByOpByte (Buffer);
}
+
return AmlNodeList;
}
@@ -282,17 +286,17 @@ AmlInsertNodeToTree (
**/
EFI_STATUS
AmlConstructNodeListForChild (
- IN EFI_AML_HANDLE *AmlHandle,
- IN EFI_AML_NODE_LIST *AmlRootNodeList,
- IN EFI_AML_NODE_LIST *AmlParentNodeList
+ IN EFI_AML_HANDLE *AmlHandle,
+ IN EFI_AML_NODE_LIST *AmlRootNodeList,
+ IN EFI_AML_NODE_LIST *AmlParentNodeList
)
{
- AML_BYTE_ENCODING *AmlByteEncoding;
- UINT8 *Buffer;
- UINTN BufferSize;
- UINT8 *CurrentBuffer;
- EFI_AML_HANDLE *AmlChildHandle;
- EFI_STATUS Status;
+ AML_BYTE_ENCODING *AmlByteEncoding;
+ UINT8 *Buffer;
+ UINTN BufferSize;
+ UINT8 *CurrentBuffer;
+ EFI_AML_HANDLE *AmlChildHandle;
+ EFI_STATUS Status;
CurrentBuffer = NULL;
AmlChildHandle = NULL;
@@ -373,13 +377,13 @@ AmlConstructNodeListForChild (
**/
EFI_STATUS
AmlConstructNodeList (
- IN EFI_AML_HANDLE *AmlHandle,
- IN EFI_AML_NODE_LIST *AmlRootNodeList,
- IN EFI_AML_NODE_LIST *AmlParentNodeList
+ IN EFI_AML_HANDLE *AmlHandle,
+ IN EFI_AML_NODE_LIST *AmlRootNodeList,
+ IN EFI_AML_NODE_LIST *AmlParentNodeList
)
{
- VOID *NameString;
- EFI_AML_NODE_LIST *AmlNodeList;
+ VOID *NameString;
+ EFI_AML_NODE_LIST *AmlNodeList;
//
// 1. Check if there is need to construct node for this OpCode.
@@ -419,12 +423,12 @@ AmlConstructNodeList (
**/
VOID
AmlDestructNodeList (
- IN EFI_AML_NODE_LIST *AmlParentNodeList
+ IN EFI_AML_NODE_LIST *AmlParentNodeList
)
{
- EFI_AML_NODE_LIST *CurrentAmlNodeList;
- LIST_ENTRY *CurrentLink;
- LIST_ENTRY *StartLink;
+ EFI_AML_NODE_LIST *CurrentAmlNodeList;
+ LIST_ENTRY *CurrentLink;
+ LIST_ENTRY *StartLink;
//
// Get the children link
@@ -440,7 +444,7 @@ AmlDestructNodeList (
// Destruct the child's list recursively
//
CurrentAmlNodeList = EFI_AML_NODE_LIST_FROM_LINK (CurrentLink);
- CurrentLink = CurrentLink->ForwardLink;
+ CurrentLink = CurrentLink->ForwardLink;
//
// Remove this child from list and free the node
@@ -454,7 +458,7 @@ AmlDestructNodeList (
// Done.
//
FreePool (AmlParentNodeList);
- return ;
+ return;
}
/**
@@ -465,13 +469,13 @@ AmlDestructNodeList (
**/
VOID
AmlDumpNodeInfo (
- IN EFI_AML_NODE_LIST *AmlParentNodeList,
- IN UINTN Level
+ IN EFI_AML_NODE_LIST *AmlParentNodeList,
+ IN UINTN Level
)
{
- EFI_AML_NODE_LIST *CurrentAmlNodeList;
- volatile LIST_ENTRY *CurrentLink;
- UINTN Index;
+ EFI_AML_NODE_LIST *CurrentAmlNodeList;
+ volatile LIST_ENTRY *CurrentLink;
+ UINTN Index;
CurrentLink = AmlParentNodeList->Children.ForwardLink;
@@ -481,8 +485,10 @@ AmlDumpNodeInfo (
for (Index = 0; Index < Level; Index++) {
DEBUG ((DEBUG_ERROR, " "));
}
+
AmlPrintNameSeg (AmlParentNodeList->Name);
}
+
DEBUG ((DEBUG_ERROR, "\n"));
while (CurrentLink != &AmlParentNodeList->Children) {
@@ -491,7 +497,7 @@ AmlDumpNodeInfo (
CurrentLink = CurrentLink->ForwardLink;
}
- return ;
+ return;
}
/**
@@ -515,12 +521,12 @@ AmlFindPath (
IN BOOLEAN FromRoot
)
{
- EFI_AML_NODE_LIST *AmlRootNodeList;
- EFI_STATUS Status;
- EFI_AML_NODE_LIST *AmlNodeList;
- UINT8 RootNameSeg[AML_NAME_SEG_SIZE];
- EFI_AML_NODE_LIST *CurrentAmlNodeList;
- LIST_ENTRY *CurrentLink;
+ EFI_AML_NODE_LIST *AmlRootNodeList;
+ EFI_STATUS Status;
+ EFI_AML_NODE_LIST *AmlNodeList;
+ UINT8 RootNameSeg[AML_NAME_SEG_SIZE];
+ EFI_AML_NODE_LIST *CurrentAmlNodeList;
+ LIST_ENTRY *CurrentLink;
//
// 1. create tree
@@ -529,8 +535,8 @@ AmlFindPath (
//
// Create root handle
//
- RootNameSeg[0] = AML_ROOT_CHAR;
- RootNameSeg[1] = 0;
+ RootNameSeg[0] = AML_ROOT_CHAR;
+ RootNameSeg[1] = 0;
AmlRootNodeList = AmlCreateNode (RootNameSeg, NULL, AmlHandle->AmlByteEncoding);
Status = AmlConstructNodeList (
@@ -594,8 +600,8 @@ AmlFindPath (
}
*Buffer = NULL;
- Status = EFI_SUCCESS;
- if (AmlNodeList != NULL && AmlNodeList->Buffer != NULL) {
+ Status = EFI_SUCCESS;
+ if ((AmlNodeList != NULL) && (AmlNodeList->Buffer != NULL)) {
*Buffer = AmlNodeList->Buffer;
}
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlOption.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlOption.c
index d0374c5..fbcf340 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlOption.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlOption.c
@@ -25,95 +25,103 @@
**/
EFI_STATUS
AmlParseOptionTerm (
- IN AML_BYTE_ENCODING *AmlByteEncoding,
- IN UINT8 *Buffer,
- IN UINTN MaxBufferSize,
- IN AML_OP_PARSE_INDEX TermIndex,
- OUT EFI_ACPI_DATA_TYPE *DataType,
- OUT VOID **Data,
- OUT UINTN *DataSize
+ IN AML_BYTE_ENCODING *AmlByteEncoding,
+ IN UINT8 *Buffer,
+ IN UINTN MaxBufferSize,
+ IN AML_OP_PARSE_INDEX TermIndex,
+ OUT EFI_ACPI_DATA_TYPE *DataType,
+ OUT VOID **Data,
+ OUT UINTN *DataSize
)
{
- AML_BYTE_ENCODING *ChildAmlByteEncoding;
- EFI_STATUS Status;
+ AML_BYTE_ENCODING *ChildAmlByteEncoding;
+ EFI_STATUS Status;
if (DataType != NULL) {
*DataType = AmlTypeToAcpiType (AmlByteEncoding->Format[TermIndex - 1]);
}
+
if (Data != NULL) {
*Data = Buffer;
}
+
//
// Parse term according to AML type
//
switch (AmlByteEncoding->Format[TermIndex - 1]) {
- case AML_UINT8:
- *DataSize = sizeof(UINT8);
- break;
- case AML_UINT16:
- *DataSize = sizeof(UINT16);
- break;
- case AML_UINT32:
- *DataSize = sizeof(UINT32);
- break;
- case AML_UINT64:
- *DataSize = sizeof(UINT64);
- break;
- case AML_STRING:
- *DataSize = AsciiStrSize((CHAR8 *)Buffer);
- break;
- case AML_NAME:
- Status = AmlGetNameStringSize (Buffer, DataSize);
- if (EFI_ERROR (Status)) {
- return EFI_INVALID_PARAMETER;
- }
- break;
- case AML_OBJECT:
- ChildAmlByteEncoding = AmlSearchByOpByte (Buffer);
- if (ChildAmlByteEncoding == NULL) {
- return EFI_INVALID_PARAMETER;
- }
-
- //
- // NOTE: We need override DataType here, if there is a case the AML_OBJECT is AML_NAME.
- // We need convert type from EFI_ACPI_DATA_TYPE_CHILD to EFI_ACPI_DATA_TYPE_NAME_STRING.
- // We should not return CHILD because there is NO OpCode for NameString.
- //
- if ((ChildAmlByteEncoding->Attribute & AML_IS_NAME_CHAR) != 0) {
- if (DataType != NULL) {
- *DataType = AmlTypeToAcpiType (AML_NAME);
- }
+ case AML_UINT8:
+ *DataSize = sizeof (UINT8);
+ break;
+ case AML_UINT16:
+ *DataSize = sizeof (UINT16);
+ break;
+ case AML_UINT32:
+ *DataSize = sizeof (UINT32);
+ break;
+ case AML_UINT64:
+ *DataSize = sizeof (UINT64);
+ break;
+ case AML_STRING:
+ *DataSize = AsciiStrSize ((CHAR8 *)Buffer);
+ break;
+ case AML_NAME:
Status = AmlGetNameStringSize (Buffer, DataSize);
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
break;
- }
+ case AML_OBJECT:
+ ChildAmlByteEncoding = AmlSearchByOpByte (Buffer);
+ if (ChildAmlByteEncoding == NULL) {
+ return EFI_INVALID_PARAMETER;
+ }
- //
- // It is real AML_OBJECT
- //
- *DataSize = AmlGetObjectSize (
- ChildAmlByteEncoding,
- Buffer,
- MaxBufferSize
- );
- if (*DataSize == 0) {
- return EFI_INVALID_PARAMETER;
- }
- break;
- case AML_NONE:
+ //
+ // NOTE: We need override DataType here, if there is a case the AML_OBJECT is AML_NAME.
+ // We need convert type from EFI_ACPI_DATA_TYPE_CHILD to EFI_ACPI_DATA_TYPE_NAME_STRING.
+ // We should not return CHILD because there is NO OpCode for NameString.
+ //
+ if ((ChildAmlByteEncoding->Attribute & AML_IS_NAME_CHAR) != 0) {
+ if (DataType != NULL) {
+ *DataType = AmlTypeToAcpiType (AML_NAME);
+ }
+
+ Status = AmlGetNameStringSize (Buffer, DataSize);
+ if (EFI_ERROR (Status)) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ break;
+ }
+
+ //
+ // It is real AML_OBJECT
+ //
+ *DataSize = AmlGetObjectSize (
+ ChildAmlByteEncoding,
+ Buffer,
+ MaxBufferSize
+ );
+ if (*DataSize == 0) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ break;
+ case AML_NONE:
//
// No term
//
- case AML_OPCODE:
- default:
- ASSERT (FALSE);
- return EFI_INVALID_PARAMETER;
+ case AML_OPCODE:
+ default:
+ ASSERT (FALSE);
+ return EFI_INVALID_PARAMETER;
}
+
if (*DataSize > MaxBufferSize) {
return EFI_INVALID_PARAMETER;
}
+
return EFI_SUCCESS;
}
@@ -135,13 +143,13 @@ AmlParseOptionTerm (
**/
EFI_STATUS
AmlParseOptionCommon (
- IN AML_BYTE_ENCODING *AmlByteEncoding,
- IN UINT8 *Buffer,
- IN UINTN MaxBufferSize,
- IN AML_OP_PARSE_INDEX Index,
- OUT EFI_ACPI_DATA_TYPE *DataType,
- OUT VOID **Data,
- OUT UINTN *DataSize
+ IN AML_BYTE_ENCODING *AmlByteEncoding,
+ IN UINT8 *Buffer,
+ IN UINTN MaxBufferSize,
+ IN AML_OP_PARSE_INDEX Index,
+ OUT EFI_ACPI_DATA_TYPE *DataType,
+ OUT VOID **Data,
+ OUT UINTN *DataSize
)
{
UINT8 *CurrentBuffer;
@@ -163,6 +171,7 @@ AmlParseOptionCommon (
if (Index != AML_OP_PARSE_INDEX_GET_SIZE) {
return EFI_INVALID_PARAMETER;
}
+
//
// return NameString size
//
@@ -170,9 +179,11 @@ AmlParseOptionCommon (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
if (*DataSize > MaxBufferSize) {
return EFI_INVALID_PARAMETER;
}
+
return EFI_SUCCESS;
}
@@ -186,27 +197,31 @@ AmlParseOptionCommon (
//
if (Index != AML_OP_PARSE_INDEX_GET_SIZE) {
*DataType = EFI_ACPI_DATA_TYPE_OPCODE;
- *Data = (VOID *)CurrentBuffer;
+ *Data = (VOID *)CurrentBuffer;
}
+
if (*CurrentBuffer == AML_EXT_OP) {
OpLength = 2;
} else {
OpLength = 1;
}
+
*DataSize = OpLength;
if (Index == AML_OP_PARSE_INDEX_GET_OPCODE) {
return EFI_SUCCESS;
}
+
if (OpLength > MaxBufferSize) {
return EFI_INVALID_PARAMETER;
}
+
CurrentBuffer += OpLength;
//
// 2. Skip PkgLength field, if have
//
if ((AmlByteEncoding->Attribute & AML_HAS_PKG_LENGTH) != 0) {
- PkgOffset = AmlGetPkgLength(CurrentBuffer, &PkgLength);
+ PkgOffset = AmlGetPkgLength (CurrentBuffer, &PkgLength);
//
// Override MaxBufferSize if it is valid PkgLength
//
@@ -219,6 +234,7 @@ AmlParseOptionCommon (
PkgOffset = 0;
PkgLength = 0;
}
+
CurrentBuffer += PkgOffset;
//
@@ -250,7 +266,7 @@ AmlParseOptionCommon (
// Parse next one
//
CurrentBuffer += *DataSize;
- TermIndex ++;
+ TermIndex++;
}
//
@@ -259,6 +275,7 @@ AmlParseOptionCommon (
if ((UINTN)CurrentBuffer > (UINTN)Buffer + MaxBufferSize) {
return EFI_INVALID_PARAMETER;
}
+
if ((UINTN)CurrentBuffer == (UINTN)Buffer + MaxBufferSize) {
if (Index != AML_OP_PARSE_INDEX_GET_SIZE) {
return EFI_INVALID_PARAMETER;
@@ -289,23 +306,23 @@ AmlParseOptionCommon (
**/
UINTN
AmlGetObjectSize (
- IN AML_BYTE_ENCODING *AmlByteEncoding,
- IN UINT8 *Buffer,
- IN UINTN MaxBufferSize
+ IN AML_BYTE_ENCODING *AmlByteEncoding,
+ IN UINT8 *Buffer,
+ IN UINTN MaxBufferSize
)
{
- EFI_STATUS Status;
- UINTN DataSize;
+ EFI_STATUS Status;
+ UINTN DataSize;
Status = AmlParseOptionCommon (
- AmlByteEncoding,
- Buffer,
- MaxBufferSize,
- AML_OP_PARSE_INDEX_GET_SIZE,
- NULL,
- NULL,
- &DataSize
- );
+ AmlByteEncoding,
+ Buffer,
+ MaxBufferSize,
+ AML_OP_PARSE_INDEX_GET_SIZE,
+ NULL,
+ NULL,
+ &DataSize
+ );
if (EFI_ERROR (Status)) {
return 0;
} else {
@@ -322,7 +339,7 @@ AmlGetObjectSize (
**/
CHAR8 *
AmlGetObjectName (
- IN EFI_AML_HANDLE *AmlHandle
+ IN EFI_AML_HANDLE *AmlHandle
)
{
AML_BYTE_ENCODING *AmlByteEncoding;
@@ -346,6 +363,7 @@ AmlGetObjectName (
break;
}
}
+
ASSERT (TermIndex != 0);
//
@@ -361,6 +379,7 @@ AmlGetObjectName (
if (EFI_ERROR (Status)) {
return NULL;
}
+
ASSERT (DataType == EFI_ACPI_DATA_TYPE_NAME_STRING);
return NameString;
@@ -377,8 +396,8 @@ AmlGetObjectName (
**/
EFI_STATUS
AmlGetOffsetAfterLastOption (
- IN EFI_AML_HANDLE *AmlHandle,
- OUT UINT8 **Buffer
+ IN EFI_AML_HANDLE *AmlHandle,
+ OUT UINT8 **Buffer
)
{
EFI_ACPI_DATA_TYPE DataType;
@@ -408,6 +427,7 @@ AmlGetOffsetAfterLastOption (
if (DataType == EFI_ACPI_DATA_TYPE_OPCODE) {
*Buffer += AmlGetPkgLength (*Buffer, &DataSize);
}
+
return EFI_SUCCESS;
}
@@ -427,11 +447,11 @@ AmlGetOffsetAfterLastOption (
**/
EFI_STATUS
AmlParseOptionHandleCommon (
- IN EFI_AML_HANDLE *AmlHandle,
- IN AML_OP_PARSE_INDEX Index,
- OUT EFI_ACPI_DATA_TYPE *DataType,
- OUT VOID **Data,
- OUT UINTN *DataSize
+ IN EFI_AML_HANDLE *AmlHandle,
+ IN AML_OP_PARSE_INDEX Index,
+ OUT EFI_ACPI_DATA_TYPE *DataType,
+ OUT VOID **Data,
+ OUT UINTN *DataSize
)
{
return AmlParseOptionCommon (
diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c
index 96341b7..9f67770 100644
--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c
+++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c
@@ -18,7 +18,7 @@
**/
BOOLEAN
AmlIsRootPath (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
)
{
if ((Buffer[0] == AML_ROOT_CHAR) && (Buffer[1] == 0)) {
@@ -38,10 +38,10 @@ AmlIsRootPath (
**/
BOOLEAN
AmlIsLeadName (
- IN CHAR8 Ch
+ IN CHAR8 Ch
)
{
- if ((Ch == '_') || (Ch >= 'A' && Ch <= 'Z')) {
+ if ((Ch == '_') || ((Ch >= 'A') && (Ch <= 'Z'))) {
return TRUE;
} else {
return FALSE;
@@ -58,10 +58,10 @@ AmlIsLeadName (
**/
BOOLEAN
AmlIsName (
- IN CHAR8 Ch
+ IN CHAR8 Ch
)
{
- if (AmlIsLeadName (Ch) || (Ch >= '0' && Ch <= '9')) {
+ if (AmlIsLeadName (Ch) || ((Ch >= '0') && (Ch <= '9'))) {
return TRUE;
} else {
return FALSE;
@@ -78,18 +78,21 @@ AmlIsName (
**/
BOOLEAN
AmlIsNameSeg (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
)
{
UINTN Index;
+
if (!AmlIsLeadName (Buffer[0])) {
return FALSE;
}
+
for (Index = 1; Index < AML_NAME_SEG_SIZE; Index++) {
if (!AmlIsName (Buffer[Index])) {
return FALSE;
}
}
+
return TRUE;
}
@@ -104,13 +107,13 @@ AmlIsNameSeg (
**/
EFI_STATUS
AmlGetNameStringSize (
- IN UINT8 *Buffer,
- OUT UINTN *BufferSize
+ IN UINT8 *Buffer,
+ OUT UINTN *BufferSize
)
{
- UINTN SegCount;
- UINTN Length;
- UINTN Index;
+ UINTN SegCount;
+ UINTN Length;
+ UINTN Index;
Length = 0;
@@ -118,12 +121,12 @@ AmlGetNameStringSize (
// Parse root or parent prefix
//
if (*Buffer == AML_ROOT_CHAR) {
- Buffer ++;
- Length ++;
+ Buffer++;
+ Length++;
} else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
do {
- Buffer ++;
- Length ++;
+ Buffer++;
+ Length++;
} while (*Buffer == AML_PARENT_PREFIX_CHAR);
}
@@ -131,21 +134,21 @@ AmlGetNameStringSize (
// Parse name segment
//
if (*Buffer == AML_DUAL_NAME_PREFIX) {
- Buffer ++;
- Length ++;
+ Buffer++;
+ Length++;
SegCount = 2;
} else if (*Buffer == AML_MULTI_NAME_PREFIX) {
- Buffer ++;
- Length ++;
+ Buffer++;
+ Length++;
SegCount = *Buffer;
- Buffer ++;
- Length ++;
+ Buffer++;
+ Length++;
} else if (*Buffer == 0) {
//
// NULL Name, only for Root
//
SegCount = 0;
- Buffer --;
+ Buffer--;
if ((Length == 1) && (*Buffer == AML_ROOT_CHAR)) {
*BufferSize = 2;
return EFI_SUCCESS;
@@ -164,9 +167,10 @@ AmlGetNameStringSize (
if (!AmlIsNameSeg (Buffer)) {
return EFI_INVALID_PARAMETER;
}
+
Buffer += AML_NAME_SEG_SIZE;
Length += AML_NAME_SEG_SIZE;
- Index ++;
+ Index++;
} while (Index < SegCount);
*BufferSize = Length;
@@ -183,10 +187,10 @@ AmlGetNameStringSize (
**/
BOOLEAN
AmlIsAslLeadName (
- IN CHAR8 Ch
+ IN CHAR8 Ch
)
{
- if (AmlIsLeadName (Ch) || (Ch >= 'a' && Ch <= 'z')) {
+ if (AmlIsLeadName (Ch) || ((Ch >= 'a') && (Ch <= 'z'))) {
return TRUE;
} else {
return FALSE;
@@ -203,10 +207,10 @@ AmlIsAslLeadName (
**/
BOOLEAN
AmlIsAslName (
- IN CHAR8 Ch
+ IN CHAR8 Ch
)
{
- if (AmlIsAslLeadName (Ch) || (Ch >= '0' && Ch <= '9')) {
+ if (AmlIsAslLeadName (Ch) || ((Ch >= '0') && (Ch <= '9'))) {
return TRUE;
} else {
return FALSE;
@@ -222,11 +226,11 @@ AmlIsAslName (
**/
UINTN
AmlGetAslNameSegLength (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
)
{
- UINTN Length;
- UINTN Index;
+ UINTN Length;
+ UINTN Index;
if (*Buffer == 0) {
return 0;
@@ -237,20 +241,23 @@ AmlGetAslNameSegLength (
// 1st
//
if (AmlIsAslLeadName (*Buffer)) {
- Length ++;
- Buffer ++;
+ Length++;
+ Buffer++;
}
+
if ((*Buffer == 0) || (*Buffer == '.')) {
return Length;
}
+
//
// 2, 3, 4 name char
//
for (Index = 0; Index < 3; Index++) {
if (AmlIsAslName (*Buffer)) {
- Length ++;
- Buffer ++;
+ Length++;
+ Buffer++;
}
+
if ((*Buffer == 0) || (*Buffer == '.')) {
return Length;
}
@@ -274,27 +281,27 @@ AmlGetAslNameSegLength (
**/
UINTN
AmlGetAslNameStringSize (
- IN UINT8 *Buffer,
- OUT UINTN *Root,
- OUT UINTN *Parent,
- OUT UINTN *SegCount
+ IN UINT8 *Buffer,
+ OUT UINTN *Root,
+ OUT UINTN *Parent,
+ OUT UINTN *SegCount
)
{
- UINTN NameLength;
- UINTN TotalLength;
+ UINTN NameLength;
+ UINTN TotalLength;
- *Root = 0;
- *Parent = 0;
- *SegCount = 0;
+ *Root = 0;
+ *Parent = 0;
+ *SegCount = 0;
TotalLength = 0;
- NameLength = 0;
+ NameLength = 0;
if (*Buffer == AML_ROOT_CHAR) {
*Root = 1;
- Buffer ++;
+ Buffer++;
} else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
do {
- Buffer ++;
- (*Parent) ++;
+ Buffer++;
+ (*Parent)++;
} while (*Buffer == AML_PARENT_PREFIX_CHAR);
}
@@ -306,12 +313,14 @@ AmlGetAslNameStringSize (
if ((NameLength == 0) || (NameLength > AML_NAME_SEG_SIZE)) {
return 0;
}
- (*SegCount) ++;
+
+ (*SegCount)++;
Buffer += NameLength;
if (*Buffer == 0) {
break;
}
- Buffer ++;
+
+ Buffer++;
}
//
@@ -334,7 +343,7 @@ AmlGetAslNameStringSize (
//
// Add NULL char
//
- TotalLength ++;
+ TotalLength++;
return TotalLength;
}
@@ -348,15 +357,15 @@ AmlGetAslNameStringSize (
**/
VOID
AmlUpperCaseCopyMem (
- IN UINT8 *DstBuffer,
- IN UINT8 *SrcBuffer,
- IN UINTN Length
+ IN UINT8 *DstBuffer,
+ IN UINT8 *SrcBuffer,
+ IN UINTN Length
)
{
- UINTN Index;
+ UINTN Index;
for (Index = 0; Index < Length; Index++) {
- if (SrcBuffer[Index] >= 'a' && SrcBuffer[Index] <= 'z') {
+ if ((SrcBuffer[Index] >= 'a') && (SrcBuffer[Index] <= 'z')) {
DstBuffer[Index] = (UINT8)(SrcBuffer[Index] - 'a' + 'A');
} else {
DstBuffer[Index] = SrcBuffer[Index];
@@ -374,17 +383,17 @@ AmlUpperCaseCopyMem (
**/
UINT8 *
AmlNameFromAslName (
- IN UINT8 *AslPath
+ IN UINT8 *AslPath
)
{
- UINTN Root;
- UINTN Parent;
- UINTN SegCount;
- UINTN TotalLength;
- UINTN NameLength;
- UINT8 *Buffer;
- UINT8 *AmlPath;
- UINT8 *AmlBuffer;
+ UINTN Root;
+ UINTN Parent;
+ UINTN SegCount;
+ UINTN TotalLength;
+ UINTN NameLength;
+ UINT8 *Buffer;
+ UINT8 *AmlPath;
+ UINT8 *AmlBuffer;
TotalLength = AmlGetAslNameStringSize (AslPath, &Root, &Parent, &SegCount);
if (TotalLength == 0) {
@@ -395,19 +404,19 @@ AmlNameFromAslName (
ASSERT (AmlPath != NULL);
AmlBuffer = AmlPath;
- Buffer = AslPath;
+ Buffer = AslPath;
//
// Handle Root and Parent
//
if (Root == 1) {
*AmlBuffer = AML_ROOT_CHAR;
- AmlBuffer ++;
- Buffer ++;
+ AmlBuffer++;
+ Buffer++;
} else if (Parent > 0) {
SetMem (AmlBuffer, Parent, AML_PARENT_PREFIX_CHAR);
AmlBuffer += Parent;
- Buffer += Parent;
+ Buffer += Parent;
}
//
@@ -415,12 +424,12 @@ AmlNameFromAslName (
//
if (SegCount > 2) {
*AmlBuffer = AML_MULTI_NAME_PREFIX;
- AmlBuffer ++;
+ AmlBuffer++;
*AmlBuffer = (UINT8)SegCount;
- AmlBuffer ++;
+ AmlBuffer++;
} else if (SegCount == 2) {
*AmlBuffer = AML_DUAL_NAME_PREFIX;
- AmlBuffer ++;
+ AmlBuffer++;
}
//
@@ -431,12 +440,13 @@ AmlNameFromAslName (
ASSERT ((NameLength != 0) && (NameLength <= AML_NAME_SEG_SIZE));
AmlUpperCaseCopyMem (AmlBuffer, Buffer, NameLength);
SetMem (AmlBuffer + NameLength, AML_NAME_SEG_SIZE - NameLength, AML_NAME_CHAR__);
- Buffer += NameLength;
+ Buffer += NameLength;
AmlBuffer += AML_NAME_SEG_SIZE;
if (*Buffer == 0) {
break;
}
- Buffer ++;
+
+ Buffer++;
}
//
@@ -454,23 +464,26 @@ AmlNameFromAslName (
**/
VOID
AmlPrintNameSeg (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
)
{
DEBUG ((DEBUG_ERROR, "%c", Buffer[0]));
if ((Buffer[1] == '_') && (Buffer[2] == '_') && (Buffer[3] == '_')) {
- return ;
+ return;
}
+
DEBUG ((DEBUG_ERROR, "%c", Buffer[1]));
if ((Buffer[2] == '_') && (Buffer[3] == '_')) {
- return ;
+ return;
}
+
DEBUG ((DEBUG_ERROR, "%c", Buffer[2]));
if (Buffer[3] == '_') {
- return ;
+ return;
}
+
DEBUG ((DEBUG_ERROR, "%c", Buffer[3]));
- return ;
+ return;
}
/**
@@ -480,24 +493,24 @@ AmlPrintNameSeg (
**/
VOID
AmlPrintNameString (
- IN UINT8 *Buffer
+ IN UINT8 *Buffer
)
{
- UINT8 SegCount;
- UINT8 Index;
+ UINT8 SegCount;
+ UINT8 Index;
if (*Buffer == AML_ROOT_CHAR) {
//
// RootChar
//
- Buffer ++;
+ Buffer++;
DEBUG ((DEBUG_ERROR, "\\"));
} else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
//
// ParentPrefixChar
//
do {
- Buffer ++;
+ Buffer++;
DEBUG ((DEBUG_ERROR, "^"));
} while (*Buffer == AML_PARENT_PREFIX_CHAR);
}
@@ -506,20 +519,20 @@ AmlPrintNameString (
//
// DualName
//
- Buffer ++;
+ Buffer++;
SegCount = 2;
} else if (*Buffer == AML_MULTI_NAME_PREFIX) {
//
// MultiName
//
- Buffer ++;
+ Buffer++;
SegCount = *Buffer;
- Buffer ++;
+ Buffer++;
} else if (*Buffer == 0) {
//
// NULL Name
//
- return ;
+ return;
} else {
//
// NameSeg
@@ -535,5 +548,5 @@ AmlPrintNameString (
Buffer += AML_NAME_SEG_SIZE;
}
- return ;
+ return;
}
diff --git a/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.c b/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.c
index d16872e..57f15d4 100644
--- a/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.c
+++ b/MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.c
@@ -132,36 +132,36 @@ EFI_BOOT_LOGO_PROTOCOL mBootLogoProtocolTemplate = {
///
/// Boot Logo 2 Protocol instance
///
-EDKII_BOOT_LOGO2_PROTOCOL mBootLogo2ProtocolTemplate = {
+EDKII_BOOT_LOGO2_PROTOCOL mBootLogo2ProtocolTemplate = {
SetBootLogo2,
GetBootLogo2
};
EFI_EVENT mBootGraphicsReadyToBootEvent;
UINTN mBootGraphicsResourceTableKey = 0;
-BOOLEAN mIsLogoValid = FALSE;
-EFI_GRAPHICS_OUTPUT_BLT_PIXEL *mLogoBltBuffer = NULL;
-UINTN mLogoDestX = 0;
-UINTN mLogoDestY = 0;
-UINTN mLogoWidth = 0;
-UINTN mLogoHeight = 0;
-BOOLEAN mAcpiBgrtInstalled = FALSE;
-BOOLEAN mAcpiBgrtStatusChanged = FALSE;
-BOOLEAN mAcpiBgrtBufferChanged = FALSE;
+BOOLEAN mIsLogoValid = FALSE;
+EFI_GRAPHICS_OUTPUT_BLT_PIXEL *mLogoBltBuffer = NULL;
+UINTN mLogoDestX = 0;
+UINTN mLogoDestY = 0;
+UINTN mLogoWidth = 0;
+UINTN mLogoHeight = 0;
+BOOLEAN mAcpiBgrtInstalled = FALSE;
+BOOLEAN mAcpiBgrtStatusChanged = FALSE;
+BOOLEAN mAcpiBgrtBufferChanged = FALSE;
//
// ACPI Boot Graphics Resource Table template
//
-EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE mBootGraphicsResourceTableTemplate = {
+EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE mBootGraphicsResourceTableTemplate = {
{
EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE,
sizeof (EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE),
- EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION, // Revision
- 0x00, // Checksum will be updated at runtime
+ EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION, // Revision
+ 0x00, // Checksum will be updated at runtime
//
// It is expected that these values will be updated at EntryPoint.
//
- {0x00}, // OEM ID is a 6 bytes long field
+ { 0x00 }, // OEM ID is a 6 bytes long field
0x00, // OEM Table ID(8 bytes long)
0x00, // OEM Revision
0x00, // Creator ID
@@ -196,12 +196,12 @@ EFI_ACPI_5_0_BOOT_GRAPHICS_RESOURCE_TABLE mBootGraphicsResourceTableTemplate = {
EFI_STATUS
EFIAPI
SetBootLogo (
- IN EFI_BOOT_LOGO_PROTOCOL *This,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height
+ IN EFI_BOOT_LOGO_PROTOCOL *This,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height
)
{
//
@@ -250,7 +250,7 @@ SetBootLogo2 (
UINT32 Result32;
if (BltBuffer == NULL) {
- mIsLogoValid = FALSE;
+ mIsLogoValid = FALSE;
mAcpiBgrtStatusChanged = TRUE;
return EFI_SUCCESS;
}
@@ -258,7 +258,7 @@ SetBootLogo2 (
//
// Width and height are not allowed to be zero.
//
- if (Width == 0 || Height == 0) {
+ if ((Width == 0) || (Height == 0)) {
return EFI_INVALID_PARAMETER;
}
@@ -270,14 +270,17 @@ SetBootLogo2 (
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
Status = SafeUintnToUint32 (DestinationY, &Result32);
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
Status = SafeUintnToUint32 (Width, &Result32);
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
}
+
Status = SafeUintnToUint32 (Height, &Result32);
if (EFI_ERROR (Status)) {
return EFI_INVALID_PARAMETER;
@@ -295,6 +298,7 @@ SetBootLogo2 (
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
+
Status = SafeUintnMult (
BufferSize,
sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL),
@@ -382,8 +386,9 @@ GetBootLogo2 (
//
// Make sure none of the boot logo location parameters are NULL.
//
- if (BltBuffer == NULL || DestinationX == NULL || DestinationY == NULL ||
- Width == NULL || Height == NULL) {
+ if ((BltBuffer == NULL) || (DestinationX == NULL) || (DestinationY == NULL) ||
+ (Width == NULL) || (Height == NULL))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -425,7 +430,7 @@ BgrtReadyToBootEventNotify (
Status = gBS->LocateProtocol (
&gEfiAcpiTableProtocolGuid,
NULL,
- (VOID **) &AcpiTableProtocol
+ (VOID **)&AcpiTableProtocol
);
if (EFI_ERROR (Status)) {
return;
@@ -475,13 +480,13 @@ BgrtReadyToBootEventNotify (
// so the BMP image is allocated by TranslateGopBltToBmp().
//
ImageBuffer = NULL;
- Status = TranslateGopBltToBmp (
- mLogoBltBuffer,
- (UINT32)mLogoHeight,
- (UINT32)mLogoWidth,
- &ImageBuffer,
- &BmpSize
- );
+ Status = TranslateGopBltToBmp (
+ mLogoBltBuffer,
+ (UINT32)mLogoHeight,
+ (UINT32)mLogoWidth,
+ &ImageBuffer,
+ &BmpSize
+ );
if (EFI_ERROR (Status)) {
return;
}
diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/IA32/SetIdtEntry.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/IA32/SetIdtEntry.c
index 45c9b66..8f535af 100644
--- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/IA32/SetIdtEntry.c
+++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/IA32/SetIdtEntry.c
@@ -18,18 +18,18 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
SetIdtEntry (
- IN ACPI_S3_CONTEXT *AcpiS3Context
+ IN ACPI_S3_CONTEXT *AcpiS3Context
)
{
- IA32_IDT_GATE_DESCRIPTOR *IdtEntry;
- IA32_DESCRIPTOR *IdtDescriptor;
- UINTN S3DebugBuffer;
- EFI_STATUS Status;
+ IA32_IDT_GATE_DESCRIPTOR *IdtEntry;
+ IA32_DESCRIPTOR *IdtDescriptor;
+ UINTN S3DebugBuffer;
+ EFI_STATUS Status;
//
// Restore IDT for debug
//
- IdtDescriptor = (IA32_DESCRIPTOR *) (UINTN) (AcpiS3Context->IdtrProfile);
+ IdtDescriptor = (IA32_DESCRIPTOR *)(UINTN)(AcpiS3Context->IdtrProfile);
AsmWriteIdtr (IdtDescriptor);
//
@@ -39,17 +39,18 @@ SetIdtEntry (
ASSERT_EFI_ERROR (Status);
DEBUG_CODE_BEGIN ();
- //
- // Update IDT entry INT3 if the instruction is valid in it
- //
- S3DebugBuffer = (UINTN) (AcpiS3Context->S3DebugBufferAddress);
- if (*(UINTN *)S3DebugBuffer != (UINTN) -1) {
- IdtEntry = (IA32_IDT_GATE_DESCRIPTOR *)(IdtDescriptor->Base + (3 * sizeof (IA32_IDT_GATE_DESCRIPTOR)));
- IdtEntry->Bits.OffsetLow = (UINT16)S3DebugBuffer;
- IdtEntry->Bits.Selector = (UINT16)AsmReadCs ();
- IdtEntry->Bits.Reserved_0 = 0;
- IdtEntry->Bits.GateType = IA32_IDT_GATE_TYPE_INTERRUPT_32;
- IdtEntry->Bits.OffsetHigh = (UINT16)(S3DebugBuffer >> 16);
- }
+ //
+ // Update IDT entry INT3 if the instruction is valid in it
+ //
+ S3DebugBuffer = (UINTN)(AcpiS3Context->S3DebugBufferAddress);
+ if (*(UINTN *)S3DebugBuffer != (UINTN)-1) {
+ IdtEntry = (IA32_IDT_GATE_DESCRIPTOR *)(IdtDescriptor->Base + (3 * sizeof (IA32_IDT_GATE_DESCRIPTOR)));
+ IdtEntry->Bits.OffsetLow = (UINT16)S3DebugBuffer;
+ IdtEntry->Bits.Selector = (UINT16)AsmReadCs ();
+ IdtEntry->Bits.Reserved_0 = 0;
+ IdtEntry->Bits.GateType = IA32_IDT_GATE_TYPE_INTERRUPT_32;
+ IdtEntry->Bits.OffsetHigh = (UINT16)(S3DebugBuffer >> 16);
+ }
+
DEBUG_CODE_END ();
}
diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c
index 4ed2397..82481aa 100644
--- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c
+++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c
@@ -13,12 +13,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "ScriptExecute.h"
-EFI_GUID mBootScriptExecutorImageGuid = {
+EFI_GUID mBootScriptExecutorImageGuid = {
0x9a8d3433, 0x9fe8, 0x42b6, { 0x87, 0xb, 0x1e, 0x31, 0xc8, 0x4e, 0xbe, 0x3b }
};
-BOOLEAN mPage1GSupport = FALSE;
-UINT64 mAddressEncMask = 0;
+BOOLEAN mPage1GSupport = FALSE;
+UINT64 mAddressEncMask = 0;
/**
Entry function of Boot script exector. This function will be executed in
@@ -34,8 +34,8 @@ UINT64 mAddressEncMask = 0;
EFI_STATUS
EFIAPI
S3BootScriptExecutorEntryFunction (
- IN ACPI_S3_CONTEXT *AcpiS3Context,
- IN PEI_S3_RESUME_STATE *PeiS3ResumeState
+ IN ACPI_S3_CONTEXT *AcpiS3Context,
+ IN PEI_S3_RESUME_STATE *PeiS3ResumeState
)
{
EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs;
@@ -82,7 +82,7 @@ S3BootScriptExecutorEntryFunction (
//
// Get ACPI Table Address
//
- Facs = (EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) ((UINTN) (AcpiS3Context->AcpiFacsTable));
+ Facs = (EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)((UINTN)(AcpiS3Context->AcpiFacsTable));
//
// We need turn back to S3Resume - install boot script done ppi and report status code on S3resume.
@@ -102,13 +102,14 @@ S3BootScriptExecutorEntryFunction (
if ((Facs != NULL) &&
(Facs->Signature == EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) &&
- (Facs->FirmwareWakingVector != 0) ) {
+ (Facs->FirmwareWakingVector != 0))
+ {
//
// more step needed - because relative address is handled differently between X64 and IA32.
//
AsmTransferControl16Address = (UINTN)AsmTransferControl16;
- AsmFixAddress16 = (UINT32)AsmTransferControl16Address;
- AsmJmpAddr32 = (UINT32)((Facs->FirmwareWakingVector & 0xF) | ((Facs->FirmwareWakingVector & 0xFFFF0) << 12));
+ AsmFixAddress16 = (UINT32)AsmTransferControl16Address;
+ AsmJmpAddr32 = (UINT32)((Facs->FirmwareWakingVector & 0xF) | ((Facs->FirmwareWakingVector & 0xFFFF0) << 12));
}
AsmDisablePaging64 (
@@ -136,7 +137,7 @@ S3BootScriptExecutorEntryFunction (
//
// Never run to here
//
- CpuDeadLoop();
+ CpuDeadLoop ();
return EFI_UNSUPPORTED;
}
@@ -147,10 +148,11 @@ S3BootScriptExecutorEntryFunction (
//
// Switch to native waking vector
//
- TempStackTop = (UINTN)&TempStack + sizeof(TempStack);
+ TempStackTop = (UINTN)&TempStack + sizeof (TempStack);
if ((Facs->Version == EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION) &&
((Facs->Flags & EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F) != 0) &&
- ((Facs->OspmFlags & EFI_ACPI_4_0_OSPM_64BIT_WAKE__F) != 0)) {
+ ((Facs->OspmFlags & EFI_ACPI_4_0_OSPM_64BIT_WAKE__F) != 0))
+ {
//
// X64 long mode waking vector
//
@@ -164,7 +166,7 @@ S3BootScriptExecutorEntryFunction (
);
} else {
// Unsupported for 32bit DXE, 64bit OS vector
- DEBUG (( DEBUG_ERROR, "Unsupported for 32bit DXE transfer to 64bit OS waking vector!\r\n"));
+ DEBUG ((DEBUG_ERROR, "Unsupported for 32bit DXE transfer to 64bit OS waking vector!\r\n"));
ASSERT (FALSE);
}
} else {
@@ -200,7 +202,7 @@ S3BootScriptExecutorEntryFunction (
//
// Never run to here
//
- CpuDeadLoop();
+ CpuDeadLoop ();
return EFI_UNSUPPORTED;
}
@@ -215,28 +217,27 @@ S3BootScriptExecutorEntryFunction (
**/
VOID
RegisterMemoryProfileImage (
- IN EFI_GUID *FileName,
- IN PHYSICAL_ADDRESS ImageBase,
- IN UINT64 ImageSize,
- IN EFI_FV_FILETYPE FileType
+ IN EFI_GUID *FileName,
+ IN PHYSICAL_ADDRESS ImageBase,
+ IN UINT64 ImageSize,
+ IN EFI_FV_FILETYPE FileType
)
{
- EFI_STATUS Status;
- EDKII_MEMORY_PROFILE_PROTOCOL *ProfileProtocol;
- MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FilePath;
- UINT8 TempBuffer[sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH) + sizeof (EFI_DEVICE_PATH_PROTOCOL)];
+ EFI_STATUS Status;
+ EDKII_MEMORY_PROFILE_PROTOCOL *ProfileProtocol;
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FilePath;
+ UINT8 TempBuffer[sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH) + sizeof (EFI_DEVICE_PATH_PROTOCOL)];
if ((PcdGet8 (PcdMemoryProfilePropertyMask) & BIT0) != 0) {
-
FilePath = (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)TempBuffer;
- Status = gBS->LocateProtocol (&gEdkiiMemoryProfileGuid, NULL, (VOID **) &ProfileProtocol);
+ Status = gBS->LocateProtocol (&gEdkiiMemoryProfileGuid, NULL, (VOID **)&ProfileProtocol);
if (!EFI_ERROR (Status)) {
EfiInitializeFwVolDevicepathNode (FilePath, FileName);
SetDevicePathEndNode (FilePath + 1);
Status = ProfileProtocol->RegisterImage (
ProfileProtocol,
- (EFI_DEVICE_PATH_PROTOCOL *) FilePath,
+ (EFI_DEVICE_PATH_PROTOCOL *)FilePath,
ImageBase,
ImageSize,
FileType
@@ -259,15 +260,15 @@ ReadyToLockEventNotify (
IN VOID *Context
)
{
- EFI_STATUS Status;
- VOID *Interface;
- UINT8 *Buffer;
- UINTN BufferSize;
- EFI_HANDLE NewImageHandle;
- UINTN Pages;
- EFI_PHYSICAL_ADDRESS FfsBuffer;
- PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR MemDesc;
+ EFI_STATUS Status;
+ VOID *Interface;
+ UINT8 *Buffer;
+ UINTN BufferSize;
+ EFI_HANDLE NewImageHandle;
+ UINTN Pages;
+ EFI_PHYSICAL_ADDRESS FfsBuffer;
+ PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR MemDesc;
Status = gBS->LocateProtocol (&gEfiDxeSmmReadyToLockProtocolGuid, NULL, &Interface);
if (EFI_ERROR (Status)) {
@@ -278,22 +279,22 @@ ReadyToLockEventNotify (
// A workaround: Here we install a dummy handle
//
NewImageHandle = NULL;
- Status = gBS->InstallProtocolInterface (
- &NewImageHandle,
- &gEfiCallerIdGuid,
- EFI_NATIVE_INTERFACE,
- NULL
- );
+ Status = gBS->InstallProtocolInterface (
+ &NewImageHandle,
+ &gEfiCallerIdGuid,
+ EFI_NATIVE_INTERFACE,
+ NULL
+ );
ASSERT_EFI_ERROR (Status);
//
// Reload BootScriptExecutor image itself to RESERVED mem
//
- Status = GetSectionFromAnyFv (
+ Status = GetSectionFromAnyFv (
&gEfiCallerIdGuid,
EFI_SECTION_PE32,
0,
- (VOID **) &Buffer,
+ (VOID **)&Buffer,
&BufferSize
);
ASSERT_EFI_ERROR (Status);
@@ -305,24 +306,25 @@ ReadyToLockEventNotify (
Status = PeCoffLoaderGetImageInfo (&ImageContext);
ASSERT_EFI_ERROR (Status);
if (ImageContext.SectionAlignment > EFI_PAGE_SIZE) {
- Pages = EFI_SIZE_TO_PAGES ((UINTN) (ImageContext.ImageSize + ImageContext.SectionAlignment));
+ Pages = EFI_SIZE_TO_PAGES ((UINTN)(ImageContext.ImageSize + ImageContext.SectionAlignment));
} else {
- Pages = EFI_SIZE_TO_PAGES ((UINTN) ImageContext.ImageSize);
+ Pages = EFI_SIZE_TO_PAGES ((UINTN)ImageContext.ImageSize);
}
+
FfsBuffer = 0xFFFFFFFF;
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- EfiReservedMemoryType,
- Pages,
- &FfsBuffer
- );
+ Status = gBS->AllocatePages (
+ AllocateMaxAddress,
+ EfiReservedMemoryType,
+ Pages,
+ &FfsBuffer
+ );
ASSERT_EFI_ERROR (Status);
//
// Make sure that the buffer can be used to store code.
//
Status = gDS->GetMemorySpaceDescriptor (FfsBuffer, &MemDesc);
- if (!EFI_ERROR (Status) && (MemDesc.Attributes & EFI_MEMORY_XP) != 0) {
+ if (!EFI_ERROR (Status) && ((MemDesc.Attributes & EFI_MEMORY_XP) != 0)) {
gDS->SetMemorySpaceAttributes (
FfsBuffer,
EFI_PAGES_TO_SIZE (Pages),
@@ -365,7 +367,7 @@ ReadyToLockEventNotify (
EFI_FV_FILETYPE_DRIVER
);
- Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)(ImageContext.EntryPoint)) (NewImageHandle, gST);
+ Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)(ImageContext.EntryPoint))(NewImageHandle, gST);
ASSERT_EFI_ERROR (Status);
//
@@ -398,20 +400,20 @@ ReadyToLockEventNotify (
EFI_STATUS
EFIAPI
BootScriptExecutorEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- UINTN BufferSize;
- UINTN Pages;
- BOOT_SCRIPT_EXECUTOR_VARIABLE *EfiBootScriptExecutorVariable;
- EFI_PHYSICAL_ADDRESS BootScriptExecutorBuffer;
- EFI_STATUS Status;
- VOID *DevicePath;
- EFI_EVENT ReadyToLockEvent;
- VOID *Registration;
- UINT32 RegEax;
- UINT32 RegEdx;
+ UINTN BufferSize;
+ UINTN Pages;
+ BOOT_SCRIPT_EXECUTOR_VARIABLE *EfiBootScriptExecutorVariable;
+ EFI_PHYSICAL_ADDRESS BootScriptExecutorBuffer;
+ EFI_STATUS Status;
+ VOID *DevicePath;
+ EFI_EVENT ReadyToLockEvent;
+ VOID *Registration;
+ UINT32 RegEax;
+ UINT32 RegEdx;
if (!PcdGetBool (PcdAcpiS3Enable)) {
return EFI_UNSUPPORTED;
@@ -429,68 +431,68 @@ BootScriptExecutorEntryPoint (
//
Status = gBS->LocateProtocol (&gEfiCallerIdGuid, NULL, &DevicePath);
if (EFI_ERROR (Status)) {
- //
- // Create ReadyToLock event to reload BootScriptExecutor image
- // to RESERVED mem and save it to LockBox.
- //
- ReadyToLockEvent = EfiCreateProtocolNotifyEvent (
- &gEfiDxeSmmReadyToLockProtocolGuid,
- TPL_NOTIFY,
- ReadyToLockEventNotify,
- NULL,
- &Registration
- );
- ASSERT (ReadyToLockEvent != NULL);
- } else {
- //
- // the entry point is invoked after reloading. following code only run in RESERVED mem
- //
- if (PcdGetBool(PcdUse1GPageTable)) {
- AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
- if (RegEax >= 0x80000001) {
- AsmCpuid (0x80000001, NULL, NULL, NULL, &RegEdx);
- if ((RegEdx & BIT26) != 0) {
- mPage1GSupport = TRUE;
- }
+ //
+ // Create ReadyToLock event to reload BootScriptExecutor image
+ // to RESERVED mem and save it to LockBox.
+ //
+ ReadyToLockEvent = EfiCreateProtocolNotifyEvent (
+ &gEfiDxeSmmReadyToLockProtocolGuid,
+ TPL_NOTIFY,
+ ReadyToLockEventNotify,
+ NULL,
+ &Registration
+ );
+ ASSERT (ReadyToLockEvent != NULL);
+ } else {
+ //
+ // the entry point is invoked after reloading. following code only run in RESERVED mem
+ //
+ if (PcdGetBool (PcdUse1GPageTable)) {
+ AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
+ if (RegEax >= 0x80000001) {
+ AsmCpuid (0x80000001, NULL, NULL, NULL, &RegEdx);
+ if ((RegEdx & BIT26) != 0) {
+ mPage1GSupport = TRUE;
}
}
+ }
- BufferSize = sizeof (BOOT_SCRIPT_EXECUTOR_VARIABLE);
+ BufferSize = sizeof (BOOT_SCRIPT_EXECUTOR_VARIABLE);
- BootScriptExecutorBuffer = 0xFFFFFFFF;
- Pages = EFI_SIZE_TO_PAGES(BufferSize);
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- EfiReservedMemoryType,
- Pages,
- &BootScriptExecutorBuffer
- );
- ASSERT_EFI_ERROR (Status);
+ BootScriptExecutorBuffer = 0xFFFFFFFF;
+ Pages = EFI_SIZE_TO_PAGES (BufferSize);
+ Status = gBS->AllocatePages (
+ AllocateMaxAddress,
+ EfiReservedMemoryType,
+ Pages,
+ &BootScriptExecutorBuffer
+ );
+ ASSERT_EFI_ERROR (Status);
- EfiBootScriptExecutorVariable = (BOOT_SCRIPT_EXECUTOR_VARIABLE *)(UINTN)BootScriptExecutorBuffer;
- EfiBootScriptExecutorVariable->BootScriptExecutorEntrypoint = (UINTN) S3BootScriptExecutorEntryFunction ;
+ EfiBootScriptExecutorVariable = (BOOT_SCRIPT_EXECUTOR_VARIABLE *)(UINTN)BootScriptExecutorBuffer;
+ EfiBootScriptExecutorVariable->BootScriptExecutorEntrypoint = (UINTN)S3BootScriptExecutorEntryFunction;
- Status = SaveLockBox (
- &gEfiBootScriptExecutorVariableGuid,
- &BootScriptExecutorBuffer,
- sizeof(BootScriptExecutorBuffer)
- );
- ASSERT_EFI_ERROR (Status);
+ Status = SaveLockBox (
+ &gEfiBootScriptExecutorVariableGuid,
+ &BootScriptExecutorBuffer,
+ sizeof (BootScriptExecutorBuffer)
+ );
+ ASSERT_EFI_ERROR (Status);
- //
- // Additional step for BootScript integrity
- // Save BootScriptExecutor context
- //
- Status = SaveLockBox (
- &gEfiBootScriptExecutorContextGuid,
- EfiBootScriptExecutorVariable,
- sizeof(*EfiBootScriptExecutorVariable)
- );
- ASSERT_EFI_ERROR (Status);
-
- Status = SetLockBoxAttributes (&gEfiBootScriptExecutorContextGuid, LOCK_BOX_ATTRIBUTE_RESTORE_IN_PLACE);
- ASSERT_EFI_ERROR (Status);
- }
+ //
+ // Additional step for BootScript integrity
+ // Save BootScriptExecutor context
+ //
+ Status = SaveLockBox (
+ &gEfiBootScriptExecutorContextGuid,
+ EfiBootScriptExecutorVariable,
+ sizeof (*EfiBootScriptExecutorVariable)
+ );
+ ASSERT_EFI_ERROR (Status);
+
+ Status = SetLockBoxAttributes (&gEfiBootScriptExecutorContextGuid, LOCK_BOX_ATTRIBUTE_RESTORE_IN_PLACE);
+ ASSERT_EFI_ERROR (Status);
+ }
- return EFI_SUCCESS;
+ return EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h
index 14bb63f..0ea3822 100644
--- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h
+++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.h
@@ -10,6 +10,7 @@ Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef _BOOT_SCRIPT_EXECUTOR_H_
#define _BOOT_SCRIPT_EXECUTOR_H_
@@ -51,9 +52,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
AsmTransferControl (
- IN UINT32 S3WakingVector,
- IN UINT32 AcpiLowMemoryBase
+ IN UINT32 S3WakingVector,
+ IN UINT32 AcpiLowMemoryBase
);
+
/**
a 32bit ASM function to transfer control to OS.
@@ -62,9 +64,10 @@ AsmTransferControl (
**/
VOID
AsmTransferControl32 (
- IN UINT32 S3WakingVector,
- IN UINT32 AcpiLowMemoryBase
+ IN UINT32 S3WakingVector,
+ IN UINT32 AcpiLowMemoryBase
);
+
/**
a 16bit ASM function to transfer control to OS.
**/
@@ -72,6 +75,7 @@ VOID
AsmTransferControl16 (
VOID
);
+
/**
Set a IDT entry for interrupt vector 3 for debug purpose.
@@ -80,12 +84,12 @@ AsmTransferControl16 (
**/
VOID
SetIdtEntry (
- IN ACPI_S3_CONTEXT *AcpiS3Context
+ IN ACPI_S3_CONTEXT *AcpiS3Context
);
-extern UINT32 AsmFixAddress16;
-extern UINT32 AsmJmpAddr32;
-extern BOOLEAN mPage1GSupport;
-extern UINT64 mAddressEncMask;
+extern UINT32 AsmFixAddress16;
+extern UINT32 AsmJmpAddr32;
+extern BOOLEAN mPage1GSupport;
+extern UINT64 mAddressEncMask;
#endif //_BOOT_SCRIPT_EXECUTOR_H_
diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c
index afb2d5c..6b44f50 100644
--- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c
+++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/X64/SetIdtEntry.c
@@ -15,20 +15,20 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// 8 extra pages for PF handler.
//
-#define EXTRA_PAGE_TABLE_PAGES 8
+#define EXTRA_PAGE_TABLE_PAGES 8
-#define IA32_PG_P BIT0
-#define IA32_PG_RW BIT1
-#define IA32_PG_PS BIT7
+#define IA32_PG_P BIT0
+#define IA32_PG_RW BIT1
+#define IA32_PG_PS BIT7
-UINT64 mPhyMask;
-VOID *mOriginalHandler;
-UINTN mPageFaultBuffer;
-UINTN mPageFaultIndex = 0;
+UINT64 mPhyMask;
+VOID *mOriginalHandler;
+UINTN mPageFaultBuffer;
+UINTN mPageFaultIndex = 0;
//
// Store the uplink information for each page being used.
//
-UINT64 *mPageFaultUplink[EXTRA_PAGE_TABLE_PAGES];
+UINT64 *mPageFaultUplink[EXTRA_PAGE_TABLE_PAGES];
/**
Page fault handler.
@@ -48,41 +48,43 @@ PageFaultHandlerHook (
**/
VOID
HookPageFaultHandler (
- IN IA32_IDT_GATE_DESCRIPTOR *IdtEntry
+ IN IA32_IDT_GATE_DESCRIPTOR *IdtEntry
)
{
- UINT32 RegEax;
- UINT8 PhysicalAddressBits;
- UINTN PageFaultHandlerHookAddress;
+ UINT32 RegEax;
+ UINT8 PhysicalAddressBits;
+ UINTN PageFaultHandlerHookAddress;
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000008) {
AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);
- PhysicalAddressBits = (UINT8) RegEax;
+ PhysicalAddressBits = (UINT8)RegEax;
} else {
PhysicalAddressBits = 36;
}
- mPhyMask = LShiftU64 (1, PhysicalAddressBits) - 1;
+
+ mPhyMask = LShiftU64 (1, PhysicalAddressBits) - 1;
mPhyMask &= (1ull << 48) - SIZE_4KB;
//
// Set Page Fault entry to catch >4G access
//
PageFaultHandlerHookAddress = (UINTN)PageFaultHandlerHook;
- mOriginalHandler = (VOID *)(UINTN)(LShiftU64 (IdtEntry->Bits.OffsetUpper, 32) + IdtEntry->Bits.OffsetLow + (IdtEntry->Bits.OffsetHigh << 16));
- IdtEntry->Bits.OffsetLow = (UINT16)PageFaultHandlerHookAddress;
- IdtEntry->Bits.Selector = (UINT16)AsmReadCs ();
- IdtEntry->Bits.Reserved_0 = 0;
- IdtEntry->Bits.GateType = IA32_IDT_GATE_TYPE_INTERRUPT_32;
- IdtEntry->Bits.OffsetHigh = (UINT16)(PageFaultHandlerHookAddress >> 16);
- IdtEntry->Bits.OffsetUpper = (UINT32)(PageFaultHandlerHookAddress >> 32);
- IdtEntry->Bits.Reserved_1 = 0;
+ mOriginalHandler = (VOID *)(UINTN)(LShiftU64 (IdtEntry->Bits.OffsetUpper, 32) + IdtEntry->Bits.OffsetLow + (IdtEntry->Bits.OffsetHigh << 16));
+ IdtEntry->Bits.OffsetLow = (UINT16)PageFaultHandlerHookAddress;
+ IdtEntry->Bits.Selector = (UINT16)AsmReadCs ();
+ IdtEntry->Bits.Reserved_0 = 0;
+ IdtEntry->Bits.GateType = IA32_IDT_GATE_TYPE_INTERRUPT_32;
+ IdtEntry->Bits.OffsetHigh = (UINT16)(PageFaultHandlerHookAddress >> 16);
+ IdtEntry->Bits.OffsetUpper = (UINT32)(PageFaultHandlerHookAddress >> 32);
+ IdtEntry->Bits.Reserved_1 = 0;
if (mPage1GSupport) {
- mPageFaultBuffer = (UINTN)(AsmReadCr3 () & mPhyMask) + EFI_PAGES_TO_SIZE(2);
- }else {
- mPageFaultBuffer = (UINTN)(AsmReadCr3 () & mPhyMask) + EFI_PAGES_TO_SIZE(6);
+ mPageFaultBuffer = (UINTN)(AsmReadCr3 () & mPhyMask) + EFI_PAGES_TO_SIZE (2);
+ } else {
+ mPageFaultBuffer = (UINTN)(AsmReadCr3 () & mPhyMask) + EFI_PAGES_TO_SIZE (6);
}
+
ZeroMem (mPageFaultUplink, sizeof (mPageFaultUplink));
}
@@ -96,28 +98,32 @@ HookPageFaultHandler (
**/
BOOLEAN
IsLongModeWakingVector (
- IN ACPI_S3_CONTEXT *AcpiS3Context
+ IN ACPI_S3_CONTEXT *AcpiS3Context
)
{
EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs;
- Facs = (EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) ((UINTN) (AcpiS3Context->AcpiFacsTable));
+ Facs = (EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)((UINTN)(AcpiS3Context->AcpiFacsTable));
if ((Facs == NULL) ||
(Facs->Signature != EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) ||
- ((Facs->FirmwareWakingVector == 0) && (Facs->XFirmwareWakingVector == 0)) ) {
+ ((Facs->FirmwareWakingVector == 0) && (Facs->XFirmwareWakingVector == 0)))
+ {
// Something wrong with FACS
return FALSE;
}
+
if (Facs->XFirmwareWakingVector != 0) {
if ((Facs->Version == EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION) &&
((Facs->Flags & EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F) != 0) &&
- ((Facs->OspmFlags & EFI_ACPI_4_0_OSPM_64BIT_WAKE__F) != 0)) {
+ ((Facs->OspmFlags & EFI_ACPI_4_0_OSPM_64BIT_WAKE__F) != 0))
+ {
// Both BIOS and OS wants 64bit vector
if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {
return TRUE;
}
}
}
+
return FALSE;
}
@@ -129,18 +135,18 @@ IsLongModeWakingVector (
**/
VOID
SetIdtEntry (
- IN ACPI_S3_CONTEXT *AcpiS3Context
+ IN ACPI_S3_CONTEXT *AcpiS3Context
)
{
- IA32_IDT_GATE_DESCRIPTOR *IdtEntry;
- IA32_DESCRIPTOR *IdtDescriptor;
- UINTN S3DebugBuffer;
- EFI_STATUS Status;
+ IA32_IDT_GATE_DESCRIPTOR *IdtEntry;
+ IA32_DESCRIPTOR *IdtDescriptor;
+ UINTN S3DebugBuffer;
+ EFI_STATUS Status;
//
// Restore IDT for debug
//
- IdtDescriptor = (IA32_DESCRIPTOR *) (UINTN) (AcpiS3Context->IdtrProfile);
+ IdtDescriptor = (IA32_DESCRIPTOR *)(UINTN)(AcpiS3Context->IdtrProfile);
AsmWriteIdtr (IdtDescriptor);
//
@@ -150,20 +156,21 @@ SetIdtEntry (
ASSERT_EFI_ERROR (Status);
DEBUG_CODE_BEGIN ();
- //
- // Update IDT entry INT3 if the instruction is valid in it
- //
- S3DebugBuffer = (UINTN) (AcpiS3Context->S3DebugBufferAddress);
- if (*(UINTN *)S3DebugBuffer != (UINTN) -1) {
- IdtEntry = (IA32_IDT_GATE_DESCRIPTOR *)(IdtDescriptor->Base + (3 * sizeof (IA32_IDT_GATE_DESCRIPTOR)));
- IdtEntry->Bits.OffsetLow = (UINT16)S3DebugBuffer;
- IdtEntry->Bits.Selector = (UINT16)AsmReadCs ();
- IdtEntry->Bits.Reserved_0 = 0;
- IdtEntry->Bits.GateType = IA32_IDT_GATE_TYPE_INTERRUPT_32;
- IdtEntry->Bits.OffsetHigh = (UINT16)(S3DebugBuffer >> 16);
- IdtEntry->Bits.OffsetUpper = (UINT32)(S3DebugBuffer >> 32);
- IdtEntry->Bits.Reserved_1 = 0;
- }
+ //
+ // Update IDT entry INT3 if the instruction is valid in it
+ //
+ S3DebugBuffer = (UINTN)(AcpiS3Context->S3DebugBufferAddress);
+ if (*(UINTN *)S3DebugBuffer != (UINTN)-1) {
+ IdtEntry = (IA32_IDT_GATE_DESCRIPTOR *)(IdtDescriptor->Base + (3 * sizeof (IA32_IDT_GATE_DESCRIPTOR)));
+ IdtEntry->Bits.OffsetLow = (UINT16)S3DebugBuffer;
+ IdtEntry->Bits.Selector = (UINT16)AsmReadCs ();
+ IdtEntry->Bits.Reserved_0 = 0;
+ IdtEntry->Bits.GateType = IA32_IDT_GATE_TYPE_INTERRUPT_32;
+ IdtEntry->Bits.OffsetHigh = (UINT16)(S3DebugBuffer >> 16);
+ IdtEntry->Bits.OffsetUpper = (UINT32)(S3DebugBuffer >> 32);
+ IdtEntry->Bits.Reserved_1 = 0;
+ }
+
DEBUG_CODE_END ();
//
@@ -185,26 +192,27 @@ SetIdtEntry (
**/
VOID
AcquirePage (
- IN OUT UINT64 *Uplink
+ IN OUT UINT64 *Uplink
)
{
- UINTN Address;
+ UINTN Address;
Address = mPageFaultBuffer + EFI_PAGES_TO_SIZE (mPageFaultIndex);
- ZeroMem ((VOID *) Address, EFI_PAGES_TO_SIZE (1));
+ ZeroMem ((VOID *)Address, EFI_PAGES_TO_SIZE (1));
//
// Cut the previous uplink if it exists and wasn't overwritten.
//
if ((mPageFaultUplink[mPageFaultIndex] != NULL) &&
- ((*mPageFaultUplink[mPageFaultIndex] & ~mAddressEncMask & mPhyMask) == Address)) {
+ ((*mPageFaultUplink[mPageFaultIndex] & ~mAddressEncMask & mPhyMask) == Address))
+ {
*mPageFaultUplink[mPageFaultIndex] = 0;
}
//
// Link & Record the current uplink.
//
- *Uplink = Address | mAddressEncMask | IA32_PG_P | IA32_PG_RW;
+ *Uplink = Address | mAddressEncMask | IA32_PG_P | IA32_PG_RW;
mPageFaultUplink[mPageFaultIndex] = Uplink;
mPageFaultIndex = (mPageFaultIndex + 1) % EXTRA_PAGE_TABLE_PAGES;
@@ -223,9 +231,9 @@ PageFaultHandler (
VOID
)
{
- UINT64 *PageTable;
- UINT64 PFAddress;
- UINTN PTIndex;
+ UINT64 *PageTable;
+ UINT64 PFAddress;
+ UINTN PTIndex;
PFAddress = AsmReadCr2 ();
DEBUG ((DEBUG_INFO, "BootScript - PageFaultHandler: Cr2 - %lx\n", PFAddress));
@@ -233,17 +241,19 @@ PageFaultHandler (
if (PFAddress >= mPhyMask + SIZE_4KB) {
return FALSE;
}
+
PFAddress &= mPhyMask;
- PageTable = (UINT64*)(UINTN)(AsmReadCr3 () & mPhyMask);
+ PageTable = (UINT64 *)(UINTN)(AsmReadCr3 () & mPhyMask);
PTIndex = BitFieldRead64 (PFAddress, 39, 47);
// PML4E
if ((PageTable[PTIndex] & IA32_PG_P) == 0) {
AcquirePage (&PageTable[PTIndex]);
}
- PageTable = (UINT64*)(UINTN)(PageTable[PTIndex] & ~mAddressEncMask & mPhyMask);
- PTIndex = BitFieldRead64 (PFAddress, 30, 38);
+
+ PageTable = (UINT64 *)(UINTN)(PageTable[PTIndex] & ~mAddressEncMask & mPhyMask);
+ PTIndex = BitFieldRead64 (PFAddress, 30, 38);
// PDPTE
if (mPage1GSupport) {
PageTable[PTIndex] = ((PFAddress | mAddressEncMask) & ~((1ull << 30) - 1)) | IA32_PG_P | IA32_PG_RW | IA32_PG_PS;
@@ -251,8 +261,9 @@ PageFaultHandler (
if ((PageTable[PTIndex] & IA32_PG_P) == 0) {
AcquirePage (&PageTable[PTIndex]);
}
- PageTable = (UINT64*)(UINTN)(PageTable[PTIndex] & ~mAddressEncMask & mPhyMask);
- PTIndex = BitFieldRead64 (PFAddress, 21, 29);
+
+ PageTable = (UINT64 *)(UINTN)(PageTable[PTIndex] & ~mAddressEncMask & mPhyMask);
+ PTIndex = BitFieldRead64 (PFAddress, 21, 29);
// PD
PageTable[PTIndex] = ((PFAddress | mAddressEncMask) & ~((1ull << 21) - 1)) | IA32_PG_P | IA32_PG_RW | IA32_PG_PS;
}
diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c
index 5c20002..aa2c984 100644
--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c
+++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c
@@ -36,31 +36,31 @@
#include <Library/VariablePolicyHelperLib.h>
#include <Library/PerformanceLib.h>
-#define SMM_BOOT_RECORD_COMM_SIZE (OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data) + sizeof(SMM_BOOT_RECORD_COMMUNICATE))
+#define SMM_BOOT_RECORD_COMM_SIZE (OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data) + sizeof(SMM_BOOT_RECORD_COMMUNICATE))
-EFI_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
+EFI_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
-BOOLEAN mLockBoxReady = FALSE;
-EFI_EVENT mReadyToBootEvent;
-EFI_EVENT mLegacyBootEvent;
-static EFI_EVENT mExitBootServicesEvent;
-UINTN mFirmwarePerformanceTableTemplateKey = 0;
-BOOLEAN mDxeCoreReportStatusCodeEnable = FALSE;
+BOOLEAN mLockBoxReady = FALSE;
+EFI_EVENT mReadyToBootEvent;
+EFI_EVENT mLegacyBootEvent;
+static EFI_EVENT mExitBootServicesEvent;
+UINTN mFirmwarePerformanceTableTemplateKey = 0;
+BOOLEAN mDxeCoreReportStatusCodeEnable = FALSE;
-BOOT_PERFORMANCE_TABLE *mAcpiBootPerformanceTable = NULL;
-BOOT_PERFORMANCE_TABLE *mReceivedAcpiBootPerformanceTable = NULL;
-S3_PERFORMANCE_TABLE *mAcpiS3PerformanceTable = NULL;
+BOOT_PERFORMANCE_TABLE *mAcpiBootPerformanceTable = NULL;
+BOOT_PERFORMANCE_TABLE *mReceivedAcpiBootPerformanceTable = NULL;
+S3_PERFORMANCE_TABLE *mAcpiS3PerformanceTable = NULL;
FIRMWARE_PERFORMANCE_TABLE mFirmwarePerformanceTableTemplate = {
{
EFI_ACPI_5_0_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE,
sizeof (FIRMWARE_PERFORMANCE_TABLE),
- EFI_ACPI_5_0_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION, // Revision
- 0x00, // Checksum will be updated at runtime
+ EFI_ACPI_5_0_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION, // Revision
+ 0x00, // Checksum will be updated at runtime
//
// It is expected that these values will be updated at EntryPoint.
//
- {0x00}, // OEM ID is a 6 bytes long field
+ { 0x00 }, // OEM ID is a 6 bytes long field
0x00, // OEM Table ID(8 bytes long)
0x00, // OEM Revision
0x00, // Creator ID
@@ -71,7 +71,7 @@ FIRMWARE_PERFORMANCE_TABLE mFirmwarePerformanceTableTemplate = {
//
{
{
- EFI_ACPI_5_0_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER , // Type
+ EFI_ACPI_5_0_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER, // Type
sizeof (EFI_ACPI_5_0_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD), // Length
EFI_ACPI_5_0_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER // Revision
},
@@ -92,7 +92,7 @@ FIRMWARE_PERFORMANCE_TABLE mFirmwarePerformanceTableTemplate = {
}
};
-BOOT_PERFORMANCE_TABLE mBootPerformanceTableTemplate = {
+BOOT_PERFORMANCE_TABLE mBootPerformanceTableTemplate = {
{
EFI_ACPI_5_0_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE,
sizeof (BOOT_PERFORMANCE_TABLE)
@@ -115,7 +115,7 @@ BOOT_PERFORMANCE_TABLE mBootPerformanceTableTemplate = {
}
};
-S3_PERFORMANCE_TABLE mS3PerformanceTableTemplate = {
+S3_PERFORMANCE_TABLE mS3PerformanceTableTemplate = {
{
EFI_ACPI_5_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE,
sizeof (S3_PERFORMANCE_TABLE)
@@ -156,11 +156,11 @@ S3_PERFORMANCE_TABLE mS3PerformanceTableTemplate = {
**/
VOID
FpdtAcpiTableChecksum (
- IN UINT8 *Buffer,
- IN UINTN Size
+ IN UINT8 *Buffer,
+ IN UINTN Size
)
{
- UINTN ChecksumOffset;
+ UINTN ChecksumOffset;
ChecksumOffset = OFFSET_OF (EFI_ACPI_DESCRIPTION_HEADER, Checksum);
@@ -185,15 +185,15 @@ FpdtAcpiTableChecksum (
VOID
EFIAPI
FpdtAllocateS3PerformanceTableMemory (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- VOID *Interface;
- FIRMWARE_PERFORMANCE_VARIABLE PerformanceVariable;
- UINTN Size;
- EFI_PHYSICAL_ADDRESS S3PerformanceTablePointer;
+ EFI_STATUS Status;
+ VOID *Interface;
+ FIRMWARE_PERFORMANCE_VARIABLE PerformanceVariable;
+ UINTN Size;
+ EFI_PHYSICAL_ADDRESS S3PerformanceTablePointer;
if (mLockBoxReady && (mAcpiS3PerformanceTable != NULL)) {
//
@@ -220,7 +220,7 @@ FpdtAllocateS3PerformanceTableMemory (
// Try to allocate the same runtime buffer as last time boot.
//
ZeroMem (&PerformanceVariable, sizeof (PerformanceVariable));
- Size = sizeof (PerformanceVariable);
+ Size = sizeof (PerformanceVariable);
Status = gRT->GetVariable (
EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME,
&gEfiFirmwarePerformanceGuid,
@@ -236,18 +236,20 @@ FpdtAllocateS3PerformanceTableMemory (
&PerformanceVariable.S3PerformanceTablePointer
);
if (!EFI_ERROR (Status)) {
- mAcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *) (UINTN) PerformanceVariable.S3PerformanceTablePointer;
+ mAcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *)(UINTN)PerformanceVariable.S3PerformanceTablePointer;
}
}
+
if (mAcpiS3PerformanceTable == NULL) {
//
// Fail to allocate at specified address, continue to allocate at any address.
//
- mAcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *) AllocatePeiAccessiblePages (
- EfiReservedMemoryType,
- EFI_SIZE_TO_PAGES (sizeof (S3_PERFORMANCE_TABLE))
- );
+ mAcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *)AllocatePeiAccessiblePages (
+ EfiReservedMemoryType,
+ EFI_SIZE_TO_PAGES (sizeof (S3_PERFORMANCE_TABLE))
+ );
}
+
DEBUG ((DEBUG_INFO, "FPDT: ACPI S3 Performance Table address = 0x%x\n", mAcpiS3PerformanceTable));
if (mAcpiS3PerformanceTable != NULL) {
CopyMem (mAcpiS3PerformanceTable, &mS3PerformanceTableTemplate, sizeof (mS3PerformanceTableTemplate));
@@ -260,12 +262,12 @@ FpdtAllocateS3PerformanceTableMemory (
// If LockBox services has been ready and memory for FPDT S3 performance table has been allocated,
// save the pointer to LockBox for use in S3 resume.
//
- S3PerformanceTablePointer = (EFI_PHYSICAL_ADDRESS) (UINTN) mAcpiS3PerformanceTable;
- Status = SaveLockBox (
- &gFirmwarePerformanceS3PointerGuid,
- &S3PerformanceTablePointer,
- sizeof (EFI_PHYSICAL_ADDRESS)
- );
+ S3PerformanceTablePointer = (EFI_PHYSICAL_ADDRESS)(UINTN)mAcpiS3PerformanceTable;
+ Status = SaveLockBox (
+ &gFirmwarePerformanceS3PointerGuid,
+ &S3PerformanceTablePointer,
+ sizeof (EFI_PHYSICAL_ADDRESS)
+ );
ASSERT_EFI_ERROR (Status);
}
}
@@ -291,7 +293,7 @@ InstallFirmwarePerformanceDataTable (
//
// Get AcpiTable Protocol.
//
- Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID **) &AcpiTableProtocol);
+ Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID **)&AcpiTableProtocol);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -299,13 +301,13 @@ InstallFirmwarePerformanceDataTable (
//
// Get VariablePolicy Protocol.
//
- Status = gBS->LocateProtocol(&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID **)&VariablePolicyProtocol);
+ Status = gBS->LocateProtocol (&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID **)&VariablePolicyProtocol);
if (EFI_ERROR (Status)) {
return Status;
}
if (mReceivedAcpiBootPerformanceTable != NULL) {
- mAcpiBootPerformanceTable = mReceivedAcpiBootPerformanceTable;
+ mAcpiBootPerformanceTable = mReceivedAcpiBootPerformanceTable;
mAcpiBootPerformanceTable->BasicBoot.ResetEnd = mBootPerformanceTableTemplate.BasicBoot.ResetEnd;
} else {
//
@@ -313,7 +315,7 @@ InstallFirmwarePerformanceDataTable (
//
BootPerformanceDataSize = sizeof (BOOT_PERFORMANCE_TABLE);
ZeroMem (&PerformanceVariable, sizeof (PerformanceVariable));
- Size = sizeof (PerformanceVariable);
+ Size = sizeof (PerformanceVariable);
Status = gRT->GetVariable (
EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME,
&gEfiFirmwarePerformanceGuid,
@@ -329,57 +331,61 @@ InstallFirmwarePerformanceDataTable (
&PerformanceVariable.BootPerformanceTablePointer
);
if (!EFI_ERROR (Status)) {
- mAcpiBootPerformanceTable = (BOOT_PERFORMANCE_TABLE *) (UINTN) PerformanceVariable.BootPerformanceTablePointer;
+ mAcpiBootPerformanceTable = (BOOT_PERFORMANCE_TABLE *)(UINTN)PerformanceVariable.BootPerformanceTablePointer;
}
}
+
if (mAcpiBootPerformanceTable == NULL) {
//
// Fail to allocate at specified address, continue to allocate at any address.
//
- mAcpiBootPerformanceTable = (BOOT_PERFORMANCE_TABLE *) AllocatePeiAccessiblePages (
- EfiReservedMemoryType,
- EFI_SIZE_TO_PAGES (BootPerformanceDataSize)
- );
+ mAcpiBootPerformanceTable = (BOOT_PERFORMANCE_TABLE *)AllocatePeiAccessiblePages (
+ EfiReservedMemoryType,
+ EFI_SIZE_TO_PAGES (BootPerformanceDataSize)
+ );
}
+
DEBUG ((DEBUG_INFO, "FPDT: ACPI Boot Performance Table address = 0x%x\n", mAcpiBootPerformanceTable));
if (mAcpiBootPerformanceTable == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Fill Basic Boot record to Boot Performance Table.
//
CopyMem (mAcpiBootPerformanceTable, &mBootPerformanceTableTemplate, sizeof (mBootPerformanceTableTemplate));
}
- BootPerformanceDataSize = mAcpiBootPerformanceTable->Header.Length;
+
+ BootPerformanceDataSize = mAcpiBootPerformanceTable->Header.Length;
//
// Save Boot Performance Table address to Variable for use in S4 resume.
//
- PerformanceVariable.BootPerformanceTablePointer = (EFI_PHYSICAL_ADDRESS) (UINTN) mAcpiBootPerformanceTable;
+ PerformanceVariable.BootPerformanceTablePointer = (EFI_PHYSICAL_ADDRESS)(UINTN)mAcpiBootPerformanceTable;
//
// Update Boot Performance Table Pointer in template.
//
- mFirmwarePerformanceTableTemplate.BootPointerRecord.BootPerformanceTablePointer = (UINT64) (UINTN) mAcpiBootPerformanceTable;
+ mFirmwarePerformanceTableTemplate.BootPointerRecord.BootPerformanceTablePointer = (UINT64)(UINTN)mAcpiBootPerformanceTable;
//
// Save S3 Performance Table address to Variable for use in S4 resume.
//
- PerformanceVariable.S3PerformanceTablePointer = (EFI_PHYSICAL_ADDRESS) (UINTN) mAcpiS3PerformanceTable;
+ PerformanceVariable.S3PerformanceTablePointer = (EFI_PHYSICAL_ADDRESS)(UINTN)mAcpiS3PerformanceTable;
//
// Update S3 Performance Table Pointer in template.
//
- mFirmwarePerformanceTableTemplate.S3PointerRecord.S3PerformanceTablePointer = (UINT64) (UINTN) mAcpiS3PerformanceTable;
+ mFirmwarePerformanceTableTemplate.S3PointerRecord.S3PerformanceTablePointer = (UINT64)(UINTN)mAcpiS3PerformanceTable;
//
// Save Runtime Performance Table pointers to Variable.
// Don't check SetVariable return status. It doesn't impact FPDT table generation.
//
gRT->SetVariable (
- EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME,
- &gEfiFirmwarePerformanceGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- sizeof (PerformanceVariable),
- &PerformanceVariable
- );
+ EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME,
+ &gEfiFirmwarePerformanceGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ sizeof (PerformanceVariable),
+ &PerformanceVariable
+ );
//
// Lock the variable which stores the Performance Table pointers.
@@ -394,15 +400,15 @@ InstallFirmwarePerformanceDataTable (
VARIABLE_POLICY_NO_CANT_ATTR,
VARIABLE_POLICY_TYPE_LOCK_NOW
);
- if (EFI_ERROR(Status)) {
- DEBUG((DEBUG_ERROR, "[FirmwarePerformanceDxe] Error when lock variable %s, Status = %r\n", EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME, Status));
- ASSERT_EFI_ERROR(Status);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "[FirmwarePerformanceDxe] Error when lock variable %s, Status = %r\n", EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME, Status));
+ ASSERT_EFI_ERROR (Status);
}
//
// Publish Firmware Performance Data Table.
//
- FpdtAcpiTableChecksum ((UINT8 *) &mFirmwarePerformanceTableTemplate, mFirmwarePerformanceTableTemplate.Header.Length);
+ FpdtAcpiTableChecksum ((UINT8 *)&mFirmwarePerformanceTableTemplate, mFirmwarePerformanceTableTemplate.Header.Length);
Status = AcpiTableProtocol->InstallAcpiTable (
AcpiTableProtocol,
&mFirmwarePerformanceTableTemplate,
@@ -413,13 +419,16 @@ InstallFirmwarePerformanceDataTable (
if (mAcpiBootPerformanceTable != NULL) {
FreePages (mAcpiBootPerformanceTable, EFI_SIZE_TO_PAGES (BootPerformanceDataSize));
}
+
if (mAcpiS3PerformanceTable != NULL) {
FreePages (mAcpiS3PerformanceTable, EFI_SIZE_TO_PAGES (sizeof (S3_PERFORMANCE_TABLE)));
}
+
mAcpiBootPerformanceTable = NULL;
- mAcpiS3PerformanceTable = NULL;
+ mAcpiS3PerformanceTable = NULL;
return Status;
}
+
return EFI_SUCCESS;
}
@@ -445,11 +454,11 @@ InstallFirmwarePerformanceDataTable (
EFI_STATUS
EFIAPI
FpdtStatusCodeListenerDxe (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data
)
{
EFI_STATUS Status;
@@ -531,13 +540,13 @@ FpdtStatusCodeListenerDxe (
DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - OsLoaderStartImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderStartImageStart));
DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ExitBootServicesEntry = 0\n"));
DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ExitBootServicesExit = 0\n"));
- } else if (Data != NULL && CompareGuid (&Data->Type, &gEdkiiFpdtExtendedFirmwarePerformanceGuid)) {
+ } else if ((Data != NULL) && CompareGuid (&Data->Type, &gEdkiiFpdtExtendedFirmwarePerformanceGuid)) {
//
// Get the Boot performance table and then install it to ACPI table.
//
CopyMem (&mReceivedAcpiBootPerformanceTable, Data + 1, Data->Size);
InstallFirmwarePerformanceDataTable ();
- } else if (Data != NULL && CompareGuid (&Data->Type, &gEfiFirmwarePerformanceGuid)) {
+ } else if ((Data != NULL) && CompareGuid (&Data->Type, &gEfiFirmwarePerformanceGuid)) {
DEBUG ((DEBUG_ERROR, "FpdtStatusCodeListenerDxe: Performance data reported through gEfiFirmwarePerformanceGuid will not be collected by FirmwarePerformanceDataTableDxe\n"));
Status = EFI_UNSUPPORTED;
} else {
@@ -562,17 +571,18 @@ FpdtStatusCodeListenerDxe (
VOID
EFIAPI
FpdtEndOfDxeEventNotify (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
//
// When performance is enabled, the FPDT will be installed when DxeCorePerformanceLib report the data to FimwarePerformanceDxe.
// This is used to install the FPDT for the basic boot recods when performance infrastructure is not enabled.
//
- if ((PcdGet8(PcdPerformanceLibraryPropertyMask) & PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED) != 0) {
+ if ((PcdGet8 (PcdPerformanceLibraryPropertyMask) & PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED) != 0) {
return;
}
+
ASSERT (mReceivedAcpiBootPerformanceTable == NULL);
InstallFirmwarePerformanceDataTable ();
}
@@ -588,8 +598,8 @@ FpdtEndOfDxeEventNotify (
VOID
EFIAPI
FpdtExitBootServicesEventNotify (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
if (!mDxeCoreReportStatusCodeEnable) {
@@ -604,7 +614,7 @@ FpdtExitBootServicesEventNotify (
//
// Firmware Performance Data Table not installed, do nothing.
//
- return ;
+ return;
}
//
@@ -637,16 +647,16 @@ FpdtExitBootServicesEventNotify (
EFI_STATUS
EFIAPI
FirmwarePerformanceDxeEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_HOB_GUID_TYPE *GuidHob;
- FIRMWARE_SEC_PERFORMANCE *Performance;
- VOID *Registration;
- UINT64 OemTableId;
- EFI_EVENT EndOfDxeEvent;
+ EFI_STATUS Status;
+ EFI_HOB_GUID_TYPE *GuidHob;
+ FIRMWARE_SEC_PERFORMANCE *Performance;
+ VOID *Registration;
+ UINT64 OemTableId;
+ EFI_EVENT EndOfDxeEvent;
CopyMem (
mFirmwarePerformanceTableTemplate.Header.OemId,
@@ -655,14 +665,14 @@ FirmwarePerformanceDxeEntryPoint (
);
OemTableId = PcdGet64 (PcdAcpiDefaultOemTableId);
CopyMem (&mFirmwarePerformanceTableTemplate.Header.OemTableId, &OemTableId, sizeof (UINT64));
- mFirmwarePerformanceTableTemplate.Header.OemRevision = PcdGet32 (PcdAcpiDefaultOemRevision);
- mFirmwarePerformanceTableTemplate.Header.CreatorId = PcdGet32 (PcdAcpiDefaultCreatorId);
- mFirmwarePerformanceTableTemplate.Header.CreatorRevision = PcdGet32 (PcdAcpiDefaultCreatorRevision);
+ mFirmwarePerformanceTableTemplate.Header.OemRevision = PcdGet32 (PcdAcpiDefaultOemRevision);
+ mFirmwarePerformanceTableTemplate.Header.CreatorId = PcdGet32 (PcdAcpiDefaultCreatorId);
+ mFirmwarePerformanceTableTemplate.Header.CreatorRevision = PcdGet32 (PcdAcpiDefaultCreatorRevision);
//
// Get Report Status Code Handler Protocol.
//
- Status = gBS->LocateProtocol (&gEfiRscHandlerProtocolGuid, NULL, (VOID **) &mRscHandlerProtocol);
+ Status = gBS->LocateProtocol (&gEfiRscHandlerProtocolGuid, NULL, (VOID **)&mRscHandlerProtocol);
ASSERT_EFI_ERROR (Status);
//
@@ -702,7 +712,7 @@ FirmwarePerformanceDxeEntryPoint (
//
GuidHob = GetFirstGuidHob (&gEfiFirmwarePerformanceGuid);
if (GuidHob != NULL) {
- Performance = (FIRMWARE_SEC_PERFORMANCE *) GET_GUID_HOB_DATA (GuidHob);
+ Performance = (FIRMWARE_SEC_PERFORMANCE *)GET_GUID_HOB_DATA (GuidHob);
mBootPerformanceTableTemplate.BasicBoot.ResetEnd = Performance->ResetEnd;
} else {
//
diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c
index 6881466..2f2b2a8 100644
--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c
+++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c
@@ -51,12 +51,12 @@
EFI_STATUS
EFIAPI
FpdtStatusCodeListenerPei (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN CONST EFI_STATUS_CODE_DATA *Data
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN CONST EFI_STATUS_CODE_DATA *Data
)
{
EFI_STATUS Status;
@@ -80,7 +80,8 @@ FpdtStatusCodeListenerPei (
// Check whether status code is what we are interested in.
//
if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) != EFI_PROGRESS_CODE) ||
- (Value != (EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_PC_OS_WAKE))) {
+ (Value != (EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_PC_OS_WAKE)))
+ {
return EFI_UNSUPPORTED;
}
@@ -93,17 +94,18 @@ FpdtStatusCodeListenerPei (
// Update S3 Resume Performance Record.
//
S3PerformanceTablePointer = 0;
- VarSize = sizeof (EFI_PHYSICAL_ADDRESS);
- Status = RestoreLockBox (&gFirmwarePerformanceS3PointerGuid, &S3PerformanceTablePointer, &VarSize);
+ VarSize = sizeof (EFI_PHYSICAL_ADDRESS);
+ Status = RestoreLockBox (&gFirmwarePerformanceS3PointerGuid, &S3PerformanceTablePointer, &VarSize);
ASSERT_EFI_ERROR (Status);
- AcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *) (UINTN) S3PerformanceTablePointer;
+ AcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *)(UINTN)S3PerformanceTablePointer;
ASSERT (AcpiS3PerformanceTable != NULL);
if (AcpiS3PerformanceTable->Header.Signature != EFI_ACPI_5_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE) {
DEBUG ((DEBUG_ERROR, "FPDT S3 performance data in ACPI memory get corrupted\n"));
return EFI_ABORTED;
}
- AcpiS3ResumeRecord = &AcpiS3PerformanceTable->S3Resume;
+
+ AcpiS3ResumeRecord = &AcpiS3PerformanceTable->S3Resume;
AcpiS3ResumeRecord->FullResume = CurrentTime;
//
// Calculate average S3 resume time.
@@ -120,7 +122,7 @@ FpdtStatusCodeListenerPei (
// Update S3 Suspend Performance Record.
//
AcpiS3SuspendRecord = &AcpiS3PerformanceTable->S3Suspend;
- VarSize = sizeof (EFI_ACPI_5_0_FPDT_S3_SUSPEND_RECORD);
+ VarSize = sizeof (EFI_ACPI_5_0_FPDT_S3_SUSPEND_RECORD);
ZeroMem (&S3SuspendRecord, sizeof (EFI_ACPI_5_0_FPDT_S3_SUSPEND_RECORD));
Status = RestoreLockBox (
&gEfiFirmwarePerformanceGuid,
@@ -139,7 +141,7 @@ FpdtStatusCodeListenerPei (
&gEfiPeiReadOnlyVariable2PpiGuid,
0,
NULL,
- (VOID **) &VariableServices
+ (VOID **)&VariableServices
);
ASSERT_EFI_ERROR (Status);
@@ -147,27 +149,28 @@ FpdtStatusCodeListenerPei (
// Update S3 boot records into the basic boot performance table.
//
VarSize = sizeof (PerformanceVariable);
- Status = VariableServices->GetVariable (
- VariableServices,
- EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME,
- &gEfiFirmwarePerformanceGuid,
- NULL,
- &VarSize,
- &PerformanceVariable
- );
+ Status = VariableServices->GetVariable (
+ VariableServices,
+ EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME,
+ &gEfiFirmwarePerformanceGuid,
+ NULL,
+ &VarSize,
+ &PerformanceVariable
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- BootPerformanceTable = (UINT8*) (UINTN) PerformanceVariable.BootPerformanceTablePointer;
+
+ BootPerformanceTable = (UINT8 *)(UINTN)PerformanceVariable.BootPerformanceTablePointer;
//
// Dump PEI boot records
//
FirmwarePerformanceTablePtr = (BootPerformanceTable + sizeof (BOOT_PERFORMANCE_TABLE));
- GuidHob = GetFirstGuidHob (&gEdkiiFpdtExtendedFirmwarePerformanceGuid);
+ GuidHob = GetFirstGuidHob (&gEdkiiFpdtExtendedFirmwarePerformanceGuid);
while (GuidHob != NULL) {
FirmwarePerformanceData = GET_GUID_HOB_DATA (GuidHob);
- PeiPerformanceLogHeader = (FPDT_PEI_EXT_PERF_HEADER *) FirmwarePerformanceData;
+ PeiPerformanceLogHeader = (FPDT_PEI_EXT_PERF_HEADER *)FirmwarePerformanceData;
CopyMem (FirmwarePerformanceTablePtr, FirmwarePerformanceData + sizeof (FPDT_PEI_EXT_PERF_HEADER), (UINTN)(PeiPerformanceLogHeader->SizeOfAllEntries));
@@ -179,7 +182,7 @@ FpdtStatusCodeListenerPei (
//
// Update Table length.
//
- ((BOOT_PERFORMANCE_TABLE *) BootPerformanceTable)->Header.Length = (UINT32)((UINTN)FirmwarePerformanceTablePtr - (UINTN)BootPerformanceTable);
+ ((BOOT_PERFORMANCE_TABLE *)BootPerformanceTable)->Header.Length = (UINT32)((UINTN)FirmwarePerformanceTablePtr - (UINTN)BootPerformanceTable);
return EFI_SUCCESS;
}
@@ -213,7 +216,7 @@ FirmwarePerformancePeiEntryPoint (
&gEfiPeiRscHandlerPpiGuid,
0,
NULL,
- (VOID **) &RscHandler
+ (VOID **)&RscHandler
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.c
index 47db9a2..9046896 100644
--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.c
+++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.c
@@ -31,10 +31,9 @@
#include <Library/BaseMemoryLib.h>
#include "FirmwarePerformanceCommon.h"
-
-EFI_MM_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
-UINT64 mSuspendStartTime = 0;
-BOOLEAN mS3SuspendLockBoxSaved = FALSE;
+EFI_MM_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
+UINT64 mSuspendStartTime = 0;
+BOOLEAN mS3SuspendLockBoxSaved = FALSE;
/**
Report status code listener for MM. This is used to record the performance
@@ -58,11 +57,11 @@ BOOLEAN mS3SuspendLockBoxSaved = FALSE;
EFI_STATUS
EFIAPI
FpdtStatusCodeListenerMm (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data
)
{
EFI_STATUS Status;
@@ -76,13 +75,14 @@ FpdtStatusCodeListenerMm (
return EFI_UNSUPPORTED;
}
- if (Data != NULL && CompareGuid (&Data->Type, &gEfiFirmwarePerformanceGuid)) {
+ if ((Data != NULL) && CompareGuid (&Data->Type, &gEfiFirmwarePerformanceGuid)) {
DEBUG ((DEBUG_ERROR, "FpdtStatusCodeListenerMm: Performance data reported through gEfiFirmwarePerformanceGuid will not be collected by FirmwarePerformanceDataTableMm\n"));
return EFI_UNSUPPORTED;
}
if ((Value != PcdGet32 (PcdProgressCodeS3SuspendStart)) &&
- (Value != PcdGet32 (PcdProgressCodeS3SuspendEnd))) {
+ (Value != PcdGet32 (PcdProgressCodeS3SuspendEnd)))
+ {
return EFI_UNSUPPORTED;
}
@@ -142,7 +142,7 @@ FirmwarePerformanceCommonEntryPoint (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Get MM Report Status Code Handler Protocol.
@@ -150,7 +150,7 @@ FirmwarePerformanceCommonEntryPoint (
Status = gMmst->MmLocateProtocol (
&gEfiMmRscHandlerProtocolGuid,
NULL,
- (VOID **) &mRscHandlerProtocol
+ (VOID **)&mRscHandlerProtocol
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c
index be52d8c..b0a55a8 100644
--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c
+++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c
@@ -34,8 +34,8 @@
EFI_STATUS
EFIAPI
FirmwarePerformanceStandaloneMmEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_MM_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_MM_SYSTEM_TABLE *SystemTable
)
{
return FirmwarePerformanceCommonEntryPoint ();
diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c
index 5bd38b0..ccf9a86 100644
--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c
+++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c
@@ -34,8 +34,8 @@
EFI_STATUS
EFIAPI
FirmwarePerformanceSmmEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
return FirmwarePerformanceCommonEntryPoint ();
diff --git a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c
index 8df9d73..03f7a33 100644
--- a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c
+++ b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c
@@ -23,9 +23,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// 8 extra pages for PF handler.
//
-#define EXTRA_PAGE_TABLE_PAGES 8
+#define EXTRA_PAGE_TABLE_PAGES 8
-EFI_GUID mAcpiS3IdtrProfileGuid = {
+EFI_GUID mAcpiS3IdtrProfileGuid = {
0xdea652b0, 0xd587, 0x4c54, { 0xb5, 0xb4, 0xc6, 0x82, 0xe7, 0xa0, 0xaa, 0x3d }
};
@@ -40,29 +40,29 @@ EFI_GUID mAcpiS3IdtrProfileGuid = {
@return Allocated address for output.
**/
-VOID*
+VOID *
AllocateMemoryBelow4G (
- IN EFI_MEMORY_TYPE MemoryType,
- IN UINTN Size
+ IN EFI_MEMORY_TYPE MemoryType,
+ IN UINTN Size
)
{
UINTN Pages;
EFI_PHYSICAL_ADDRESS Address;
EFI_STATUS Status;
- VOID* Buffer;
+ VOID *Buffer;
- Pages = EFI_SIZE_TO_PAGES (Size);
+ Pages = EFI_SIZE_TO_PAGES (Size);
Address = 0xffffffff;
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- MemoryType,
- Pages,
- &Address
- );
+ Status = gBS->AllocatePages (
+ AllocateMaxAddress,
+ MemoryType,
+ Pages,
+ &Address
+ );
ASSERT_EFI_ERROR (Status);
- Buffer = (VOID *) (UINTN) Address;
+ Buffer = (VOID *)(UINTN)Address;
ZeroMem (Buffer, Size);
return Buffer;
@@ -79,18 +79,21 @@ AllocateMemoryBelow4G (
**/
BOOLEAN
IsLongModeWakingVectorSupport (
- IN EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs
+ IN EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs
)
{
if ((Facs == NULL) ||
- (Facs->Signature != EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE) ) {
+ (Facs->Signature != EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE))
+ {
//
// Something wrong with FACS.
//
return FALSE;
}
+
if ((Facs->Version == EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION) &&
- ((Facs->Flags & EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F) != 0)) {
+ ((Facs->Flags & EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F) != 0))
+ {
//
// BIOS supports 64bit waking vector.
//
@@ -98,6 +101,7 @@ IsLongModeWakingVectorSupport (
return TRUE;
}
}
+
return FALSE;
}
@@ -117,23 +121,23 @@ IsLongModeWakingVectorSupport (
**/
EFI_PHYSICAL_ADDRESS
S3AllocatePageTablesBuffer (
- IN BOOLEAN LongModeWakingVectorSupport
+ IN BOOLEAN LongModeWakingVectorSupport
)
{
if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {
- UINTN ExtraPageTablePages;
- UINT32 RegEax;
- UINT32 RegEdx;
- UINT8 PhysicalAddressBits;
- UINT32 NumberOfPml4EntriesNeeded;
- UINT32 NumberOfPdpEntriesNeeded;
- EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress;
- UINTN TotalPageTableSize;
- VOID *Hob;
- BOOLEAN Page1GSupport;
+ UINTN ExtraPageTablePages;
+ UINT32 RegEax;
+ UINT32 RegEdx;
+ UINT8 PhysicalAddressBits;
+ UINT32 NumberOfPml4EntriesNeeded;
+ UINT32 NumberOfPdpEntriesNeeded;
+ EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress;
+ UINTN TotalPageTableSize;
+ VOID *Hob;
+ BOOLEAN Page1GSupport;
Page1GSupport = FALSE;
- if (PcdGetBool(PcdUse1GPageTable)) {
+ if (PcdGetBool (PcdUse1GPageTable)) {
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000001) {
AsmCpuid (0x80000001, NULL, NULL, NULL, &RegEdx);
@@ -148,12 +152,12 @@ S3AllocatePageTablesBuffer (
//
Hob = GetFirstHob (EFI_HOB_TYPE_CPU);
if (Hob != NULL) {
- PhysicalAddressBits = ((EFI_HOB_CPU *) Hob)->SizeOfMemorySpace;
+ PhysicalAddressBits = ((EFI_HOB_CPU *)Hob)->SizeOfMemorySpace;
} else {
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000008) {
AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);
- PhysicalAddressBits = (UINT8) RegEax;
+ PhysicalAddressBits = (UINT8)RegEax;
} else {
PhysicalAddressBits = 36;
}
@@ -182,10 +186,10 @@ S3AllocatePageTablesBuffer (
//
if (PhysicalAddressBits <= 39 ) {
NumberOfPml4EntriesNeeded = 1;
- NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
+ NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
} else {
NumberOfPml4EntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 39));
- NumberOfPdpEntriesNeeded = 512;
+ NumberOfPdpEntriesNeeded = 512;
}
//
@@ -203,14 +207,14 @@ S3AllocatePageTablesBuffer (
//
// By architecture only one PageMapLevel4 exists - so lets allocate storage for it.
//
- S3NvsPageTableAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateMemoryBelow4G (EfiReservedMemoryType, EFI_PAGES_TO_SIZE(TotalPageTableSize));
+ S3NvsPageTableAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateMemoryBelow4G (EfiReservedMemoryType, EFI_PAGES_TO_SIZE (TotalPageTableSize));
ASSERT (S3NvsPageTableAddress != 0);
return S3NvsPageTableAddress;
} else {
//
// If DXE is running 32-bit mode, no need to establish page table.
//
- return (EFI_PHYSICAL_ADDRESS) 0;
+ return (EFI_PHYSICAL_ADDRESS)0;
}
}
@@ -244,29 +248,29 @@ AcpiS3ContextSaveOnEndOfDxe (
goto Done;
}
- AcpiS3Context = AllocateMemoryBelow4G (EfiReservedMemoryType, sizeof(*AcpiS3Context));
+ AcpiS3Context = AllocateMemoryBelow4G (EfiReservedMemoryType, sizeof (*AcpiS3Context));
ASSERT (AcpiS3Context != NULL);
AcpiS3ContextBuffer = (EFI_PHYSICAL_ADDRESS)(UINTN)AcpiS3Context;
//
// Get ACPI Table because we will save its position to variable
//
- Facs = (EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *) EfiLocateFirstAcpiTable (
- EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE
- );
- AcpiS3Context->AcpiFacsTable = (EFI_PHYSICAL_ADDRESS) (UINTN) Facs;
+ Facs = (EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)EfiLocateFirstAcpiTable (
+ EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE
+ );
+ AcpiS3Context->AcpiFacsTable = (EFI_PHYSICAL_ADDRESS)(UINTN)Facs;
ASSERT (AcpiS3Context->AcpiFacsTable != 0);
- IdtGate = AllocateMemoryBelow4G (EfiReservedMemoryType, sizeof(IA32_IDT_GATE_DESCRIPTOR) * 0x100 + sizeof(IA32_DESCRIPTOR));
- Idtr = (IA32_DESCRIPTOR *)(IdtGate + 0x100);
- Idtr->Base = (UINTN)IdtGate;
- Idtr->Limit = (UINT16)(sizeof(IA32_IDT_GATE_DESCRIPTOR) * 0x100 - 1);
+ IdtGate = AllocateMemoryBelow4G (EfiReservedMemoryType, sizeof (IA32_IDT_GATE_DESCRIPTOR) * 0x100 + sizeof (IA32_DESCRIPTOR));
+ Idtr = (IA32_DESCRIPTOR *)(IdtGate + 0x100);
+ Idtr->Base = (UINTN)IdtGate;
+ Idtr->Limit = (UINT16)(sizeof (IA32_IDT_GATE_DESCRIPTOR) * 0x100 - 1);
AcpiS3Context->IdtrProfile = (EFI_PHYSICAL_ADDRESS)(UINTN)Idtr;
Status = SaveLockBox (
&mAcpiS3IdtrProfileGuid,
(VOID *)(UINTN)Idtr,
- (UINTN)sizeof(IA32_DESCRIPTOR)
+ (UINTN)sizeof (IA32_DESCRIPTOR)
);
ASSERT_EFI_ERROR (Status);
@@ -291,24 +295,24 @@ AcpiS3ContextSaveOnEndOfDxe (
AcpiS3Context->S3DebugBufferAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateMemoryBelow4G (EfiReservedMemoryType, EFI_PAGE_SIZE);
SetMem ((VOID *)(UINTN)AcpiS3Context->S3DebugBufferAddress, EFI_PAGE_SIZE, 0xff);
- DEBUG((DEBUG_INFO, "AcpiS3Context: AcpiFacsTable is 0x%8x\n", AcpiS3Context->AcpiFacsTable));
- DEBUG((DEBUG_INFO, "AcpiS3Context: IdtrProfile is 0x%8x\n", AcpiS3Context->IdtrProfile));
- DEBUG((DEBUG_INFO, "AcpiS3Context: S3NvsPageTableAddress is 0x%8x\n", AcpiS3Context->S3NvsPageTableAddress));
- DEBUG((DEBUG_INFO, "AcpiS3Context: S3DebugBufferAddress is 0x%8x\n", AcpiS3Context->S3DebugBufferAddress));
- DEBUG((DEBUG_INFO, "AcpiS3Context: BootScriptStackBase is 0x%8x\n", AcpiS3Context->BootScriptStackBase));
- DEBUG((DEBUG_INFO, "AcpiS3Context: BootScriptStackSize is 0x%8x\n", AcpiS3Context->BootScriptStackSize));
+ DEBUG ((DEBUG_INFO, "AcpiS3Context: AcpiFacsTable is 0x%8x\n", AcpiS3Context->AcpiFacsTable));
+ DEBUG ((DEBUG_INFO, "AcpiS3Context: IdtrProfile is 0x%8x\n", AcpiS3Context->IdtrProfile));
+ DEBUG ((DEBUG_INFO, "AcpiS3Context: S3NvsPageTableAddress is 0x%8x\n", AcpiS3Context->S3NvsPageTableAddress));
+ DEBUG ((DEBUG_INFO, "AcpiS3Context: S3DebugBufferAddress is 0x%8x\n", AcpiS3Context->S3DebugBufferAddress));
+ DEBUG ((DEBUG_INFO, "AcpiS3Context: BootScriptStackBase is 0x%8x\n", AcpiS3Context->BootScriptStackBase));
+ DEBUG ((DEBUG_INFO, "AcpiS3Context: BootScriptStackSize is 0x%8x\n", AcpiS3Context->BootScriptStackSize));
Status = SaveLockBox (
&gEfiAcpiVariableGuid,
&AcpiS3ContextBuffer,
- sizeof(AcpiS3ContextBuffer)
+ sizeof (AcpiS3ContextBuffer)
);
ASSERT_EFI_ERROR (Status);
Status = SaveLockBox (
&gEfiAcpiS3ContextGuid,
(VOID *)(UINTN)AcpiS3Context,
- (UINTN)sizeof(*AcpiS3Context)
+ (UINTN)sizeof (*AcpiS3Context)
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/InternalS3SaveState.h b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/InternalS3SaveState.h
index a8dece4..8fb3f42 100644
--- a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/InternalS3SaveState.h
+++ b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/InternalS3SaveState.h
@@ -6,6 +6,7 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef _INTERNAL_S3_SAVE_STATE_H_
#define _INTERNAL_S3_SAVE_STATE_H_
#include <PiDxe.h>
@@ -67,10 +68,11 @@ AcpiS3ContextSaveOnEndOfDxe (
EFI_STATUS
EFIAPI
BootScriptWrite (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN UINTN OpCode,
...
);
+
/**
Insert a record into a specified Framework boot script table.
@@ -102,12 +104,13 @@ BootScriptWrite (
EFI_STATUS
EFIAPI
BootScriptInsert (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN UINTN OpCode,
...
);
+
/**
Find a label within the boot script table and, if not present, optionally create it.
@@ -137,12 +140,13 @@ BootScriptInsert (
EFI_STATUS
EFIAPI
BootScriptLabel (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN BOOLEAN CreateIfNotFound,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN CONST CHAR8 *Label
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN BOOLEAN CreateIfNotFound,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN CONST CHAR8 *Label
);
+
/**
Compare two positions in the boot script table and return their relative position.
@@ -162,10 +166,10 @@ BootScriptLabel (
EFI_STATUS
EFIAPI
BootScriptCompare (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
- OUT UINTN *RelativePosition
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
+ OUT UINTN *RelativePosition
);
#endif //_INTERNAL_S3_SAVE_STATE_H_
diff --git a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
index e342f73..c6e328d 100644
--- a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
+++ b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
@@ -8,13 +8,14 @@
**/
#include "InternalS3SaveState.h"
-EFI_HANDLE mHandle = NULL;
-EFI_S3_SAVE_STATE_PROTOCOL mS3SaveState = {
+EFI_HANDLE mHandle = NULL;
+EFI_S3_SAVE_STATE_PROTOCOL mS3SaveState = {
BootScriptWrite,
BootScriptInsert,
BootScriptLabel,
BootScriptCompare
- };
+};
+
/**
Internal function to add IO write opcode to the table.
@@ -27,21 +28,22 @@ EFI_S3_SAVE_STATE_PROTOCOL mS3SaveState = {
**/
EFI_STATUS
BootScriptWriteIoWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveIoWrite (Width, Address, Count, Buffer);
}
+
/**
Internal function to add IO read/write opcode to the table.
@@ -54,18 +56,18 @@ BootScriptWriteIoWrite (
**/
EFI_STATUS
BootScriptWriteIoReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveIoReadWrite (Width, Address, Data, DataMask);
}
@@ -82,18 +84,18 @@ BootScriptWriteIoReadWrite (
**/
EFI_STATUS
BootScriptWriteMemWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveMemWrite (Width, Address, Count, Buffer);
}
@@ -110,18 +112,18 @@ BootScriptWriteMemWrite (
**/
EFI_STATUS
BootScriptWriteMemReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveMemReadWrite (Width, Address, Data, DataMask);
}
@@ -138,18 +140,18 @@ BootScriptWriteMemReadWrite (
**/
EFI_STATUS
BootScriptWritePciCfgWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfgWrite (Width, Address, Count, Buffer);
}
@@ -166,21 +168,22 @@ BootScriptWritePciCfgWrite (
**/
EFI_STATUS
BootScriptWritePciCfgReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfgReadWrite (Width, Address, Data, DataMask);
}
+
/**
Internal function to add PciCfg2 write opcode to the table.
@@ -193,20 +196,20 @@ BootScriptWritePciCfgReadWrite (
**/
EFI_STATUS
BootScriptWritePciCfg2Write (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
- UINT16 Segment;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Segment = VA_ARG (Marker, UINT16);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
+ UINT16 Segment;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Segment = VA_ARG (Marker, UINT16);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfg2Write (Width, Segment, Address, Count, Buffer);
}
@@ -223,23 +226,24 @@ BootScriptWritePciCfg2Write (
**/
EFI_STATUS
BootScriptWritePciCfg2ReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT16 Segment;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Segment = VA_ARG (Marker, UINT16);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT16 Segment;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Segment = VA_ARG (Marker, UINT16);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfg2ReadWrite (Width, Segment, Address, Data, DataMask);
}
+
/**
Internal function to add smbus execute opcode to the table.
@@ -252,27 +256,28 @@ BootScriptWritePciCfg2ReadWrite (
**/
EFI_STATUS
BootScriptWriteSmbusExecute (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;
EFI_SMBUS_DEVICE_COMMAND Command;
EFI_SMBUS_OPERATION Operation;
BOOLEAN PecCheck;
- VOID *Buffer;
- UINTN *DataSize;
+ VOID *Buffer;
+ UINTN *DataSize;
UINTN SmBusAddress;
SlaveAddress.SmbusDeviceAddress = VA_ARG (Marker, UINTN);
Command = VA_ARG (Marker, EFI_SMBUS_DEVICE_COMMAND);
Operation = VA_ARG (Marker, EFI_SMBUS_OPERATION);
PecCheck = VA_ARG (Marker, BOOLEAN);
- SmBusAddress = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress,Command,0,PecCheck);
+ SmBusAddress = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress, Command, 0, PecCheck);
DataSize = VA_ARG (Marker, UINTN *);
Buffer = VA_ARG (Marker, VOID *);
return S3BootScriptSaveSmbusExecute (SmBusAddress, Operation, DataSize, Buffer);
}
+
/**
Internal function to add stall opcode to the table.
@@ -285,12 +290,12 @@ BootScriptWriteSmbusExecute (
**/
EFI_STATUS
BootScriptWriteStall (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- UINT32 Duration;
+ UINT32 Duration;
- Duration = VA_ARG (Marker, UINT32);
+ Duration = VA_ARG (Marker, UINT32);
return S3BootScriptSaveStall (Duration);
}
@@ -308,12 +313,12 @@ BootScriptWriteStall (
**/
EFI_STATUS
BootScriptWriteDispatch (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- VOID *EntryPoint;
+ VOID *EntryPoint;
- EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
return S3BootScriptSaveDispatch (EntryPoint);
}
@@ -329,11 +334,11 @@ BootScriptWriteDispatch (
**/
EFI_STATUS
BootScriptWriteMemPoll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
VOID *Data;
VOID *DataMask;
UINT64 Delay;
@@ -361,10 +366,10 @@ BootScriptWriteMemPoll (
//
// If Remainder is not zero, LoopTimes will be rounded up by 1.
//
- LoopTimes +=1;
+ LoopTimes += 1;
}
- return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);
+ return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);
}
/**
@@ -380,17 +385,18 @@ BootScriptWriteMemPoll (
**/
EFI_STATUS
BootScriptWriteDispatch2 (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- VOID *EntryPoint;
- VOID *Context;
+ VOID *EntryPoint;
+ VOID *Context;
- EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
- Context = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ Context = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
return S3BootScriptSaveDispatch2 (EntryPoint, Context);
}
+
/**
Internal function to add INFORAMTION opcode node to the table
list.
@@ -403,16 +409,17 @@ BootScriptWriteDispatch2 (
**/
EFI_STATUS
BootScriptWriteInformation (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
UINT32 InformationLength;
EFI_PHYSICAL_ADDRESS Information;
InformationLength = VA_ARG (Marker, UINT32);
- Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
- return S3BootScriptSaveInformation (InformationLength, (VOID*)(UINTN)Information);
+ Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ return S3BootScriptSaveInformation (InformationLength, (VOID *)(UINTN)Information);
}
+
/**
Internal function to add IO poll opcode node to the table
@param Marker The variable argument list to get the opcode
@@ -424,23 +431,24 @@ BootScriptWriteInformation (
**/
EFI_STATUS
BootScriptWriteIoPoll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- VOID *Data;
- VOID *DataMask;
- UINT64 Delay;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, VOID *);
- DataMask = VA_ARG (Marker, VOID *);
- Delay = (UINT64)VA_ARG (Marker, UINT64);
-
- return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ VOID *Data;
+ VOID *DataMask;
+ UINT64 Delay;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, VOID *);
+ DataMask = VA_ARG (Marker, VOID *);
+ Delay = (UINT64)VA_ARG (Marker, UINT64);
+
+ return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);
}
+
/**
Internal function to add PCI config poll opcode node to the table
@@ -453,24 +461,24 @@ BootScriptWriteIoPoll (
**/
EFI_STATUS
BootScriptWritePciConfigPoll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- VOID *Data;
- VOID *DataMask;
- UINT64 Delay;
-
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ VOID *Data;
+ VOID *DataMask;
+ UINT64 Delay;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, VOID *);
- DataMask = VA_ARG (Marker, VOID *);
- Delay = (UINT64)VA_ARG (Marker, UINT64);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, VOID *);
+ DataMask = VA_ARG (Marker, VOID *);
+ Delay = (UINT64)VA_ARG (Marker, UINT64);
- return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);
+ return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);
}
+
/**
Internal function to add PCI config 2 poll opcode node to the table
@@ -483,26 +491,25 @@ BootScriptWritePciConfigPoll (
**/
EFI_STATUS
BootScriptWritePciConfig2Poll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT16 Segment;
- UINT64 Address;
- VOID *Data;
- VOID *DataMask;
- UINT64 Delay;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Segment = VA_ARG (Marker, UINT16);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, VOID *);
- DataMask = VA_ARG (Marker, VOID *);
- Delay = (UINT64)VA_ARG (Marker, UINT64);
-
- return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);
-}
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT16 Segment;
+ UINT64 Address;
+ VOID *Data;
+ VOID *DataMask;
+ UINT64 Delay;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Segment = VA_ARG (Marker, UINT16);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, VOID *);
+ DataMask = VA_ARG (Marker, VOID *);
+ Delay = (UINT64)VA_ARG (Marker, UINT64);
+ return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);
+}
/**
Adds a record into S3 boot script table.
@@ -534,128 +541,129 @@ BootScriptWritePciConfig2Poll (
EFI_STATUS
EFIAPI
BootScriptWrite (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN UINTN OpCode,
...
)
{
- EFI_STATUS Status;
- VA_LIST Marker;
+ EFI_STATUS Status;
+ VA_LIST Marker;
+
//
// Build script according to opcode
//
switch (OpCode) {
-
- case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteSmbusExecute (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_STALL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteStall (Marker);
- VA_END (Marker);
-
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch2 (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteInformation (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2Write (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2ReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfigPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfig2Poll (Marker);
- VA_END (Marker);
- break;
-
- default:
- Status = EFI_INVALID_PARAMETER;
- break;
+ case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteSmbusExecute (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_STALL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteStall (Marker);
+ VA_END (Marker);
+
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch2 (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteInformation (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2Write (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2ReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfigPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfig2Poll (Marker);
+ VA_END (Marker);
+ break;
+
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ break;
}
return Status;
}
+
/**
Insert a record into a specified Framework boot script table.
@@ -687,133 +695,135 @@ BootScriptWrite (
EFI_STATUS
EFIAPI
BootScriptInsert (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN UINTN OpCode,
...
)
{
- EFI_STATUS Status;
- VA_LIST Marker;
+ EFI_STATUS Status;
+ VA_LIST Marker;
+
//
// Build script according to opcode
//
switch (OpCode) {
-
- case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteSmbusExecute (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_STALL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteStall (Marker);
- VA_END (Marker);
-
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch2 (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteInformation (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2Write (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2ReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfigPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfig2Poll (Marker);
- VA_END (Marker);
- break;
-
- default:
- Status = EFI_INVALID_PARAMETER;
- break;
+ case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteSmbusExecute (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_STALL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteStall (Marker);
+ VA_END (Marker);
+
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch2 (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteInformation (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2Write (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2ReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfigPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfig2Poll (Marker);
+ VA_END (Marker);
+ break;
+
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ break;
}
if (!EFI_ERROR (Status)) {
- Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, (VOID **)Position);
+ Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, (VOID **)Position);
}
+
return Status;
}
+
/**
Find a label within the boot script table and, if not present, optionally create it.
@@ -844,15 +854,16 @@ BootScriptInsert (
EFI_STATUS
EFIAPI
BootScriptLabel (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN BOOLEAN CreateIfNotFound,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN CONST CHAR8 *Label
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN BOOLEAN CreateIfNotFound,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN CONST CHAR8 *Label
)
{
return S3BootScriptLabel (BeforeOrAfter, CreateIfNotFound, (VOID **)Position, Label);
}
+
/**
Compare two positions in the boot script table and return their relative position.
@@ -873,14 +884,15 @@ BootScriptLabel (
EFI_STATUS
EFIAPI
BootScriptCompare (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
- OUT UINTN *RelativePosition
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
+ OUT UINTN *RelativePosition
)
{
return S3BootScriptCompare (Position1, Position2, RelativePosition);
}
+
/**
This routine is entry point of ScriptSave driver.
@@ -895,12 +907,12 @@ BootScriptCompare (
EFI_STATUS
EFIAPI
InitializeS3SaveState (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_EVENT EndOfDxeEvent;
+ EFI_STATUS Status;
+ EFI_EVENT EndOfDxeEvent;
if (!PcdGetBool (PcdAcpiS3Enable)) {
return EFI_UNSUPPORTED;
@@ -916,13 +928,10 @@ InitializeS3SaveState (
);
ASSERT_EFI_ERROR (Status);
- return gBS->InstallProtocolInterface (
- &mHandle,
- &gEfiS3SaveStateProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mS3SaveState
- );
-
+ return gBS->InstallProtocolInterface (
+ &mHandle,
+ &gEfiS3SaveStateProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mS3SaveState
+ );
}
-
-
diff --git a/MdeModulePkg/Universal/Acpi/SmmS3SaveState/InternalSmmSaveState.h b/MdeModulePkg/Universal/Acpi/SmmS3SaveState/InternalSmmSaveState.h
index afc41ed..3684007 100644
--- a/MdeModulePkg/Universal/Acpi/SmmS3SaveState/InternalSmmSaveState.h
+++ b/MdeModulePkg/Universal/Acpi/SmmS3SaveState/InternalSmmSaveState.h
@@ -6,6 +6,7 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef _INTERNAL_SMM_S3_SAVE_STATE_H_
#define _INTERNAL_SMM_S3_SAVE_STATE_H_
#include <PiDxe.h>
@@ -20,6 +21,7 @@
#include <Library/PcdLib.h>
#include <Library/SmbusLib.h>
#include <IndustryStandard/SmBus.h>
+
/**
Adds a record into S3 boot script table.
@@ -50,10 +52,11 @@
EFI_STATUS
EFIAPI
BootScriptWrite (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN UINTN OpCode,
...
);
+
/**
Insert a record into a specified Framework boot script table.
@@ -85,12 +88,13 @@ BootScriptWrite (
EFI_STATUS
EFIAPI
BootScriptInsert (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN UINTN OpCode,
...
);
+
/**
Find a label within the boot script table and, if not present, optionally create it.
@@ -120,12 +124,13 @@ BootScriptInsert (
EFI_STATUS
EFIAPI
BootScriptLabel (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN BOOLEAN CreateIfNotFound,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN CONST CHAR8 *Label
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN BOOLEAN CreateIfNotFound,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN CONST CHAR8 *Label
);
+
/**
Compare two positions in the boot script table and return their relative position.
@@ -145,10 +150,10 @@ BootScriptLabel (
EFI_STATUS
EFIAPI
BootScriptCompare (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
- OUT UINTN *RelativePosition
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
+ OUT UINTN *RelativePosition
);
#endif //_INTERNAL_SMM_S3_SAVE_STATE_H_
diff --git a/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.c b/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.c
index 601c821..bf5a2ae 100644
--- a/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.c
+++ b/MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.c
@@ -8,12 +8,13 @@
**/
#include "InternalSmmSaveState.h"
-EFI_S3_SMM_SAVE_STATE_PROTOCOL mS3SmmSaveState = {
- BootScriptWrite,
- BootScriptInsert,
- BootScriptLabel,
- BootScriptCompare
- };
+EFI_S3_SMM_SAVE_STATE_PROTOCOL mS3SmmSaveState = {
+ BootScriptWrite,
+ BootScriptInsert,
+ BootScriptLabel,
+ BootScriptCompare
+};
+
/**
Internal function to add IO write opcode to the table.
@@ -26,21 +27,22 @@ EFI_S3_SMM_SAVE_STATE_PROTOCOL mS3SmmSaveState = {
**/
EFI_STATUS
BootScriptWriteIoWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveIoWrite (Width, Address, Count, Buffer);
}
+
/**
Internal function to add IO read/write opcode to the table.
@@ -53,18 +55,18 @@ BootScriptWriteIoWrite (
**/
EFI_STATUS
BootScriptWriteIoReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveIoReadWrite (Width, Address, Data, DataMask);
}
@@ -81,18 +83,18 @@ BootScriptWriteIoReadWrite (
**/
EFI_STATUS
BootScriptWriteMemWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveMemWrite (Width, Address, Count, Buffer);
}
@@ -109,18 +111,18 @@ BootScriptWriteMemWrite (
**/
EFI_STATUS
BootScriptWriteMemReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSaveMemReadWrite (Width, Address, Data, DataMask);
}
@@ -137,18 +139,18 @@ BootScriptWriteMemReadWrite (
**/
EFI_STATUS
BootScriptWritePciCfgWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfgWrite (Width, Address, Count, Buffer);
}
@@ -165,21 +167,22 @@ BootScriptWritePciCfgWrite (
**/
EFI_STATUS
BootScriptWritePciCfgReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfgReadWrite (Width, Address, Data, DataMask);
}
+
/**
Internal function to add PciCfg2 write opcode to the table.
@@ -192,20 +195,20 @@ BootScriptWritePciCfgReadWrite (
**/
EFI_STATUS
BootScriptWritePciCfg2Write (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- UINTN Count;
- UINT8 *Buffer;
- UINT16 Segment;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Segment = VA_ARG (Marker, UINT16);
- Address = VA_ARG (Marker, UINT64);
- Count = VA_ARG (Marker, UINTN);
- Buffer = VA_ARG (Marker, UINT8 *);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ UINTN Count;
+ UINT8 *Buffer;
+ UINT16 Segment;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Segment = VA_ARG (Marker, UINT16);
+ Address = VA_ARG (Marker, UINT64);
+ Count = VA_ARG (Marker, UINTN);
+ Buffer = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfg2Write (Width, Segment, Address, Count, Buffer);
}
@@ -222,23 +225,24 @@ BootScriptWritePciCfg2Write (
**/
EFI_STATUS
BootScriptWritePciCfg2ReadWrite (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT16 Segment;
- UINT64 Address;
- UINT8 *Data;
- UINT8 *DataMask;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Segment = VA_ARG (Marker, UINT16);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, UINT8 *);
- DataMask = VA_ARG (Marker, UINT8 *);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT16 Segment;
+ UINT64 Address;
+ UINT8 *Data;
+ UINT8 *DataMask;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Segment = VA_ARG (Marker, UINT16);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, UINT8 *);
+ DataMask = VA_ARG (Marker, UINT8 *);
return S3BootScriptSavePciCfg2ReadWrite (Width, Segment, Address, Data, DataMask);
}
+
/**
Internal function to add smbus execute opcode to the table.
@@ -251,27 +255,28 @@ BootScriptWritePciCfg2ReadWrite (
**/
EFI_STATUS
BootScriptWriteSmbusExecute (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
EFI_SMBUS_DEVICE_ADDRESS SlaveAddress;
EFI_SMBUS_DEVICE_COMMAND Command;
EFI_SMBUS_OPERATION Operation;
BOOLEAN PecCheck;
- VOID *Buffer;
- UINTN *DataSize;
+ VOID *Buffer;
+ UINTN *DataSize;
UINTN SmBusAddress;
SlaveAddress.SmbusDeviceAddress = VA_ARG (Marker, UINTN);
Command = VA_ARG (Marker, EFI_SMBUS_DEVICE_COMMAND);
Operation = VA_ARG (Marker, EFI_SMBUS_OPERATION);
PecCheck = VA_ARG (Marker, BOOLEAN);
- SmBusAddress = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress,Command,0,PecCheck);
+ SmBusAddress = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress, Command, 0, PecCheck);
DataSize = VA_ARG (Marker, UINTN *);
Buffer = VA_ARG (Marker, VOID *);
return S3BootScriptSaveSmbusExecute (SmBusAddress, Operation, DataSize, Buffer);
}
+
/**
Internal function to add stall opcode to the table.
@@ -284,12 +289,12 @@ BootScriptWriteSmbusExecute (
**/
EFI_STATUS
BootScriptWriteStall (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- UINT32 Duration;
+ UINT32 Duration;
- Duration = VA_ARG (Marker, UINT32);
+ Duration = VA_ARG (Marker, UINT32);
return S3BootScriptSaveStall (Duration);
}
@@ -307,12 +312,12 @@ BootScriptWriteStall (
**/
EFI_STATUS
BootScriptWriteDispatch (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- VOID *EntryPoint;
+ VOID *EntryPoint;
- EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
return S3BootScriptSaveDispatch (EntryPoint);
}
@@ -328,16 +333,16 @@ BootScriptWriteDispatch (
**/
EFI_STATUS
BootScriptWriteMemPoll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
VOID *Data;
VOID *DataMask;
- UINT64 Delay;
- UINT64 LoopTimes;
- UINT32 Remainder;
+ UINT64 Delay;
+ UINT64 LoopTimes;
+ UINT32 Remainder;
Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
Address = VA_ARG (Marker, UINT64);
@@ -360,10 +365,10 @@ BootScriptWriteMemPoll (
//
// If Remainder is not zero, LoopTimes will be rounded up by 1.
//
- LoopTimes +=1;
+ LoopTimes += 1;
}
- return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);
+ return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);
}
/**
@@ -379,17 +384,18 @@ BootScriptWriteMemPoll (
**/
EFI_STATUS
BootScriptWriteDispatch2 (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- VOID *EntryPoint;
- VOID *Context;
+ VOID *EntryPoint;
+ VOID *Context;
- EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
- Context = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ Context = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
return S3BootScriptSaveDispatch2 (EntryPoint, Context);
}
+
/**
Internal function to add INFORAMTION opcode node to the table
list.
@@ -402,16 +408,17 @@ BootScriptWriteDispatch2 (
**/
EFI_STATUS
BootScriptWriteInformation (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
UINT32 InformationLength;
EFI_PHYSICAL_ADDRESS Information;
InformationLength = VA_ARG (Marker, UINT32);
- Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
- return S3BootScriptSaveInformation (InformationLength, (VOID*)(UINTN)Information);
+ Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);
+ return S3BootScriptSaveInformation (InformationLength, (VOID *)(UINTN)Information);
}
+
/**
Internal function to add IO poll opcode node to the table
@param Marker The variable argument list to get the opcode
@@ -423,23 +430,24 @@ BootScriptWriteInformation (
**/
EFI_STATUS
BootScriptWriteIoPoll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- VOID *Data;
- VOID *DataMask;
- UINT64 Delay;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, VOID *);
- DataMask = VA_ARG (Marker, VOID *);
- Delay = (UINT64)VA_ARG (Marker, UINT64);
-
- return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ VOID *Data;
+ VOID *DataMask;
+ UINT64 Delay;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, VOID *);
+ DataMask = VA_ARG (Marker, VOID *);
+ Delay = (UINT64)VA_ARG (Marker, UINT64);
+
+ return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);
}
+
/**
Internal function to add PCI config poll opcode node to the table
@@ -452,24 +460,24 @@ BootScriptWriteIoPoll (
**/
EFI_STATUS
BootScriptWritePciConfigPoll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT64 Address;
- VOID *Data;
- VOID *DataMask;
- UINT64 Delay;
-
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT64 Address;
+ VOID *Data;
+ VOID *DataMask;
+ UINT64 Delay;
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, VOID *);
- DataMask = VA_ARG (Marker, VOID *);
- Delay = (UINT64)VA_ARG (Marker, UINT64);
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, VOID *);
+ DataMask = VA_ARG (Marker, VOID *);
+ Delay = (UINT64)VA_ARG (Marker, UINT64);
- return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);
+ return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);
}
+
/**
Internal function to add PCI config 2 poll opcode node to the table
@@ -482,24 +490,24 @@ BootScriptWritePciConfigPoll (
**/
EFI_STATUS
BootScriptWritePciConfig2Poll (
- IN VA_LIST Marker
+ IN VA_LIST Marker
)
{
- S3_BOOT_SCRIPT_LIB_WIDTH Width;
- UINT16 Segment;
- UINT64 Address;
- VOID *Data;
- VOID *DataMask;
- UINT64 Delay;
-
- Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
- Segment = VA_ARG (Marker, UINT16);
- Address = VA_ARG (Marker, UINT64);
- Data = VA_ARG (Marker, VOID *);
- DataMask = VA_ARG (Marker, VOID *);
- Delay = (UINT64)VA_ARG (Marker, UINT64);
-
- return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);
+ S3_BOOT_SCRIPT_LIB_WIDTH Width;
+ UINT16 Segment;
+ UINT64 Address;
+ VOID *Data;
+ VOID *DataMask;
+ UINT64 Delay;
+
+ Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
+ Segment = VA_ARG (Marker, UINT16);
+ Address = VA_ARG (Marker, UINT64);
+ Data = VA_ARG (Marker, VOID *);
+ DataMask = VA_ARG (Marker, VOID *);
+ Delay = (UINT64)VA_ARG (Marker, UINT64);
+
+ return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);
}
/**
@@ -532,128 +540,129 @@ BootScriptWritePciConfig2Poll (
EFI_STATUS
EFIAPI
BootScriptWrite (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN UINTN OpCode,
...
)
{
- EFI_STATUS Status;
- VA_LIST Marker;
+ EFI_STATUS Status;
+ VA_LIST Marker;
+
//
// Build script according to opcode
//
switch (OpCode) {
-
- case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteSmbusExecute (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_STALL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteStall (Marker);
- VA_END (Marker);
-
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch2 (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteInformation (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2Write (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2ReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfigPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfig2Poll (Marker);
- VA_END (Marker);
- break;
-
- default:
- Status = EFI_INVALID_PARAMETER;
- break;
+ case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteSmbusExecute (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_STALL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteStall (Marker);
+ VA_END (Marker);
+
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch2 (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteInformation (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2Write (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2ReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfigPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfig2Poll (Marker);
+ VA_END (Marker);
+ break;
+
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ break;
}
return Status;
}
+
/**
Insert a record into a specified Framework boot script table.
@@ -685,133 +694,135 @@ BootScriptWrite (
EFI_STATUS
EFIAPI
BootScriptInsert (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN UINTN OpCode,
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN UINTN OpCode,
...
)
{
- EFI_STATUS Status;
- VA_LIST Marker;
+ EFI_STATUS Status;
+ VA_LIST Marker;
+
//
// Build script according to opcode
//
switch (OpCode) {
-
- case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfgReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteSmbusExecute (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_STALL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteStall (Marker);
- VA_END (Marker);
-
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteDispatch2 (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteInformation (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteMemPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2Write (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciCfg2ReadWrite (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWriteIoPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfigPoll (Marker);
- VA_END (Marker);
- break;
-
- case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
- VA_START (Marker, OpCode);
- Status = BootScriptWritePciConfig2Poll (Marker);
- VA_END (Marker);
- break;
-
- default:
- Status = EFI_INVALID_PARAMETER;
- break;
+ case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfgReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteSmbusExecute (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_STALL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteStall (Marker);
+ VA_END (Marker);
+
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteDispatch2 (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteInformation (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteMemPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2Write (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciCfg2ReadWrite (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWriteIoPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfigPoll (Marker);
+ VA_END (Marker);
+ break;
+
+ case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:
+ VA_START (Marker, OpCode);
+ Status = BootScriptWritePciConfig2Poll (Marker);
+ VA_END (Marker);
+ break;
+
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ break;
}
if (!EFI_ERROR (Status)) {
- Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, (VOID **)Position);
+ Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, (VOID **)Position);
}
+
return Status;
}
+
/**
Find a label within the boot script table and, if not present, optionally create it.
@@ -842,15 +853,16 @@ BootScriptInsert (
EFI_STATUS
EFIAPI
BootScriptLabel (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN BOOLEAN BeforeOrAfter,
- IN BOOLEAN CreateIfNotFound,
- IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
- IN CONST CHAR8 *Label
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN BOOLEAN BeforeOrAfter,
+ IN BOOLEAN CreateIfNotFound,
+ IN OUT EFI_S3_BOOT_SCRIPT_POSITION *Position OPTIONAL,
+ IN CONST CHAR8 *Label
)
{
return S3BootScriptLabel (BeforeOrAfter, CreateIfNotFound, (VOID **)Position, Label);
}
+
/**
Compare two positions in the boot script table and return their relative position.
@@ -871,14 +883,15 @@ BootScriptLabel (
EFI_STATUS
EFIAPI
BootScriptCompare (
- IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
- IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
- OUT UINTN *RelativePosition
+ IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position1,
+ IN EFI_S3_BOOT_SCRIPT_POSITION Position2,
+ OUT UINTN *RelativePosition
)
{
return S3BootScriptCompare (Position1, Position2, RelativePosition);
}
+
/**
This routine is entry point of ScriptSave driver.
@@ -893,21 +906,21 @@ BootScriptCompare (
EFI_STATUS
EFIAPI
InitializeSmmS3SaveState (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_HANDLE Handle;
+ EFI_HANDLE Handle;
if (!PcdGetBool (PcdAcpiS3Enable)) {
return EFI_UNSUPPORTED;
}
- Handle = NULL;
- return gSmst->SmmInstallProtocolInterface (
- &Handle,
- &gEfiS3SmmSaveStateProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mS3SmmSaveState
- );
+ Handle = NULL;
+ return gSmst->SmmInstallProtocolInterface (
+ &Handle,
+ &gEfiS3SmmSaveStateProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mS3SmmSaveState
+ );
}
diff --git a/MdeModulePkg/Universal/BdsDxe/Bds.h b/MdeModulePkg/Universal/BdsDxe/Bds.h
index 8454804..2b20fec 100644
--- a/MdeModulePkg/Universal/BdsDxe/Bds.h
+++ b/MdeModulePkg/Universal/BdsDxe/Bds.h
@@ -37,15 +37,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/PlatformBootManagerLib.h>
#if !defined (EFI_REMOVABLE_MEDIA_FILE_NAME)
- #if defined (MDE_CPU_EBC)
- //
- // Uefi specification only defines the default boot file name for IA32, X64
- // and IPF processor, so need define boot file name for EBC architecture here.
- //
- #define EFI_REMOVABLE_MEDIA_FILE_NAME L"\\EFI\\BOOT\\BOOTEBC.EFI"
- #else
- #error "Can not determine the default boot file name for unknown processor type!"
- #endif
+ #if defined (MDE_CPU_EBC)
+//
+// Uefi specification only defines the default boot file name for IA32, X64
+// and IPF processor, so need define boot file name for EBC architecture here.
+//
+#define EFI_REMOVABLE_MEDIA_FILE_NAME L"\\EFI\\BOOT\\BOOTEBC.EFI"
+ #else
+ #error "Can not determine the default boot file name for unknown processor type!"
+ #endif
#endif
/**
@@ -59,7 +59,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
VOID
EFIAPI
BdsEntry (
- IN EFI_BDS_ARCH_PROTOCOL *This
+ IN EFI_BDS_ARCH_PROTOCOL *This
);
/**
@@ -97,11 +97,11 @@ BdsEntry (
**/
EFI_STATUS
BdsDxeSetVariableAndReportStatusCodeOnError (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
);
#endif
diff --git a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c
index f705316..766dde3 100644
--- a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c
+++ b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c
@@ -17,7 +17,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "HwErrRecSupport.h"
#include <Library/VariablePolicyHelperLib.h>
-#define SET_BOOT_OPTION_SUPPORT_KEY_COUNT(a, c) { \
+#define SET_BOOT_OPTION_SUPPORT_KEY_COUNT(a, c) { \
(a) = ((a) & ~EFI_BOOT_OPTION_SUPPORT_COUNT) | (((c) << LowBitSet32 (EFI_BOOT_OPTION_SUPPORT_COUNT)) & EFI_BOOT_OPTION_SUPPORT_COUNT); \
}
@@ -31,7 +31,7 @@ EFI_BDS_ARCH_PROTOCOL gBds = {
//
// gConnectConInEvent - Event which is signaled when ConIn connection is required
//
-EFI_EVENT gConnectConInEvent = NULL;
+EFI_EVENT gConnectConInEvent = NULL;
///
/// The read-only variables defined in UEFI Spec.
@@ -42,9 +42,9 @@ CHAR16 *mReadOnlyVariables[] = {
EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME,
EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME,
EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME
- };
+};
-CHAR16 *mBdsLoadOptionName[] = {
+CHAR16 *mBdsLoadOptionName[] = {
L"Driver",
L"SysPrep",
L"Boot",
@@ -62,11 +62,11 @@ CHAR16 *mBdsLoadOptionName[] = {
VOID
EFIAPI
BdsDxeOnConnectConInCallBack (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// When Osloader call ReadKeyStroke to signal this event
@@ -81,6 +81,7 @@ BdsDxeOnConnectConInCallBack (
DEBUG ((DEBUG_WARN, "[Bds] Connect ConIn failed - %r!!!\n", Status));
}
}
+
/**
Notify function for event group EFI_EVENT_GROUP_READY_TO_BOOT. This is used to
check whether there is remaining deferred load images.
@@ -92,40 +93,40 @@ BdsDxeOnConnectConInCallBack (
VOID
EFIAPI
CheckDeferredLoadImageOnReadyToBoot (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *DeferredImage;
- UINTN HandleCount;
- EFI_HANDLE *Handles;
- UINTN Index;
- UINTN ImageIndex;
- EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath;
- VOID *Image;
- UINTN ImageSize;
- BOOLEAN BootOption;
- CHAR16 *DevicePathStr;
+ EFI_STATUS Status;
+ EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *DeferredImage;
+ UINTN HandleCount;
+ EFI_HANDLE *Handles;
+ UINTN Index;
+ UINTN ImageIndex;
+ EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath;
+ VOID *Image;
+ UINTN ImageSize;
+ BOOLEAN BootOption;
+ CHAR16 *DevicePathStr;
//
// Find all the deferred image load protocols.
//
HandleCount = 0;
- Handles = NULL;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiDeferredImageLoadProtocolGuid,
- NULL,
- &HandleCount,
- &Handles
- );
+ Handles = NULL;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiDeferredImageLoadProtocolGuid,
+ NULL,
+ &HandleCount,
+ &Handles
+ );
if (EFI_ERROR (Status)) {
return;
}
for (Index = 0; Index < HandleCount; Index++) {
- Status = gBS->HandleProtocol (Handles[Index], &gEfiDeferredImageLoadProtocolGuid, (VOID **) &DeferredImage);
+ Status = gBS->HandleProtocol (Handles[Index], &gEfiDeferredImageLoadProtocolGuid, (VOID **)&DeferredImage);
if (EFI_ERROR (Status)) {
continue;
}
@@ -135,16 +136,17 @@ CheckDeferredLoadImageOnReadyToBoot (
// Load all the deferred images in this protocol instance.
//
Status = DeferredImage->GetImageInfo (
- DeferredImage,
- ImageIndex,
- &ImageDevicePath,
- (VOID **) &Image,
- &ImageSize,
- &BootOption
- );
+ DeferredImage,
+ ImageIndex,
+ &ImageDevicePath,
+ (VOID **)&Image,
+ &ImageSize,
+ &BootOption
+ );
if (EFI_ERROR (Status)) {
break;
}
+
DevicePathStr = ConvertDevicePathToText (ImageDevicePath, FALSE, FALSE);
DEBUG ((DEBUG_LOAD, "[Bds] Image was deferred but not loaded: %s.\n", DevicePathStr));
if (DevicePathStr != NULL) {
@@ -152,6 +154,7 @@ CheckDeferredLoadImageOnReadyToBoot (
}
}
}
+
if (Handles != NULL) {
FreePool (Handles);
}
@@ -172,19 +175,21 @@ CheckDeferredLoadImageOnReadyToBoot (
EFI_STATUS
EFIAPI
BdsInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
EFI_HANDLE Handle;
+
//
// Install protocol interface
//
Handle = NULL;
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiBdsArchProtocolGuid, &gBds,
+ &gEfiBdsArchProtocolGuid,
+ &gBds,
NULL
);
ASSERT_EFI_ERROR (Status);
@@ -203,7 +208,7 @@ BdsInitialize (
&Event
);
ASSERT_EFI_ERROR (Status);
- );
+ );
return Status;
}
@@ -219,8 +224,8 @@ BdsInitialize (
**/
EFI_STATUS
BdsWaitForSingleEvent (
- IN EFI_EVENT Event,
- IN UINT64 Timeout OPTIONAL
+ IN EFI_EVENT Event,
+ IN UINT64 Timeout OPTIONAL
)
{
UINTN Index;
@@ -280,15 +285,14 @@ BdsReadKeys (
VOID
)
{
- EFI_STATUS Status;
- EFI_INPUT_KEY Key;
+ EFI_STATUS Status;
+ EFI_INPUT_KEY Key;
if (PcdGetBool (PcdConInConnectOnDemand)) {
return;
}
while (gST->ConIn != NULL) {
-
Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
if (EFI_ERROR (Status)) {
@@ -309,17 +313,17 @@ BdsReadKeys (
**/
VOID
BdsWait (
- IN EFI_EVENT HotkeyTriggered
+ IN EFI_EVENT HotkeyTriggered
)
{
- EFI_STATUS Status;
- UINT16 TimeoutRemain;
+ EFI_STATUS Status;
+ UINT16 TimeoutRemain;
DEBUG ((DEBUG_INFO, "[Bds]BdsWait ...Zzzzzzzzzzzz...\n"));
TimeoutRemain = PcdGet16 (PcdPlatformBootTimeOut);
while (TimeoutRemain != 0) {
- DEBUG ((DEBUG_INFO, "[Bds]BdsWait(%d)..Zzzz...\n", (UINTN) TimeoutRemain));
+ DEBUG ((DEBUG_INFO, "[Bds]BdsWait(%d)..Zzzz...\n", (UINTN)TimeoutRemain));
PlatformBootManagerWaitCallback (TimeoutRemain);
BdsReadKeys (); // BUGBUG: Only reading can signal HotkeyTriggered
@@ -350,9 +354,10 @@ BdsWait (
// Note that the (TimeoutRemain == 0) condition excludes
// PcdPlatformBootTimeOut=0xFFFF, and that's deliberate.
//
- if (PcdGet16 (PcdPlatformBootTimeOut) != 0 && TimeoutRemain == 0) {
+ if ((PcdGet16 (PcdPlatformBootTimeOut) != 0) && (TimeoutRemain == 0)) {
PlatformBootManagerWaitCallback (0);
}
+
DEBUG ((DEBUG_INFO, "[Bds]Exit the waiting!\n"));
}
@@ -368,12 +373,12 @@ BdsWait (
**/
BOOLEAN
BootBootOptions (
- IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions,
- IN UINTN BootOptionCount,
- IN EFI_BOOT_MANAGER_LOAD_OPTION *BootManagerMenu OPTIONAL
+ IN EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions,
+ IN UINTN BootOptionCount,
+ IN EFI_BOOT_MANAGER_LOAD_OPTION *BootManagerMenu OPTIONAL
)
{
- UINTN Index;
+ UINTN Index;
//
// Report Status Code to indicate BDS starts attempting booting from the UEFI BootOrder list.
@@ -420,7 +425,7 @@ BootBootOptions (
}
}
- return (BOOLEAN) (Index < BootOptionCount);
+ return (BOOLEAN)(Index < BootOptionCount);
}
/**
@@ -431,14 +436,14 @@ BootBootOptions (
**/
VOID
ProcessLoadOptions (
- IN EFI_BOOT_MANAGER_LOAD_OPTION *LoadOptions,
- IN UINTN LoadOptionCount
+ IN EFI_BOOT_MANAGER_LOAD_OPTION *LoadOptions,
+ IN UINTN LoadOptionCount
)
{
- EFI_STATUS Status;
- UINTN Index;
- BOOLEAN ReconnectAll;
- EFI_BOOT_MANAGER_LOAD_OPTION_TYPE LoadOptionType;
+ EFI_STATUS Status;
+ UINTN Index;
+ BOOLEAN ReconnectAll;
+ EFI_BOOT_MANAGER_LOAD_OPTION_TYPE LoadOptionType;
ReconnectAll = FALSE;
LoadOptionType = LoadOptionTypeMax;
@@ -453,6 +458,7 @@ ProcessLoadOptions (
if (Index == 0) {
LoadOptionType = LoadOptions[Index].OptionType;
}
+
ASSERT (LoadOptionType == LoadOptions[Index].OptionType);
ASSERT (LoadOptionType != LoadOptionTypeBoot);
@@ -467,7 +473,8 @@ ProcessLoadOptions (
// Stop processing if any PlatformRecovery#### returns success.
//
if ((LoadOptions[Index].Status == EFI_SUCCESS) &&
- (LoadOptionType == LoadOptionTypePlatformRecovery)) {
+ (LoadOptionType == LoadOptionTypePlatformRecovery))
+ {
break;
}
@@ -475,7 +482,8 @@ ProcessLoadOptions (
// Only set ReconnectAll flag when the load option executes successfully.
//
if (!EFI_ERROR (LoadOptions[Index].Status) &&
- (LoadOptions[Index].Attributes & LOAD_OPTION_FORCE_RECONNECT) != 0) {
+ ((LoadOptions[Index].Attributes & LOAD_OPTION_FORCE_RECONNECT) != 0))
+ {
ReconnectAll = TRUE;
}
}
@@ -486,7 +494,7 @@ ProcessLoadOptions (
// then all of the EFI drivers in the system will be disconnected and
// reconnected after the last driver load option is processed.
//
- if (ReconnectAll && LoadOptionType == LoadOptionTypeDriver) {
+ if (ReconnectAll && (LoadOptionType == LoadOptionTypeDriver)) {
EfiBootManagerDisconnectAll ();
EfiBootManagerConnectAll ();
}
@@ -503,14 +511,14 @@ ProcessLoadOptions (
**/
VOID
BdsFormalizeConsoleVariable (
- IN CHAR16 *VariableName
+ IN CHAR16 *VariableName
)
{
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
UINTN VariableSize;
EFI_STATUS Status;
- GetEfiGlobalVariable2 (VariableName, (VOID **) &DevicePath, &VariableSize);
+ GetEfiGlobalVariable2 (VariableName, (VOID **)&DevicePath, &VariableSize);
if ((DevicePath != NULL) && !IsDevicePathValid (DevicePath, VariableSize)) {
Status = gRT->SetVariable (
VariableName,
@@ -546,12 +554,12 @@ BdsFormalizeOSIndicationVariable (
VOID
)
{
- EFI_STATUS Status;
- UINT64 OsIndicationSupport;
- UINT64 OsIndication;
- UINTN DataSize;
- UINT32 Attributes;
- EFI_BOOT_MANAGER_LOAD_OPTION BootManagerMenu;
+ EFI_STATUS Status;
+ UINT64 OsIndicationSupport;
+ UINT64 OsIndication;
+ UINTN DataSize;
+ UINT32 Attributes;
+ EFI_BOOT_MANAGER_LOAD_OPTION BootManagerMenu;
//
// OS indicater support variable
@@ -568,7 +576,7 @@ BdsFormalizeOSIndicationVariable (
OsIndicationSupport |= EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY;
}
- if (PcdGetBool(PcdCapsuleOnDiskSupport)) {
+ if (PcdGetBool (PcdCapsuleOnDiskSupport)) {
OsIndicationSupport |= EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED;
}
@@ -576,7 +584,7 @@ BdsFormalizeOSIndicationVariable (
EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME,
&gEfiGlobalVariableGuid,
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
- sizeof(UINT64),
+ sizeof (UINT64),
&OsIndicationSupport
);
//
@@ -592,15 +600,15 @@ BdsFormalizeOSIndicationVariable (
// 3. OsIndication attribute inconsistence
//
OsIndication = 0;
- Attributes = 0;
- DataSize = sizeof(UINT64);
- Status = gRT->GetVariable (
- EFI_OS_INDICATIONS_VARIABLE_NAME,
- &gEfiGlobalVariableGuid,
- &Attributes,
- &DataSize,
- &OsIndication
- );
+ Attributes = 0;
+ DataSize = sizeof (UINT64);
+ Status = gRT->GetVariable (
+ EFI_OS_INDICATIONS_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ &Attributes,
+ &DataSize,
+ &OsIndication
+ );
if (Status == EFI_NOT_FOUND) {
return;
}
@@ -608,8 +616,8 @@ BdsFormalizeOSIndicationVariable (
if ((DataSize != sizeof (OsIndication)) ||
((OsIndication & ~OsIndicationSupport) != 0) ||
(Attributes != (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE))
- ){
-
+ )
+ {
DEBUG ((DEBUG_ERROR, "[Bds] Unformalized OsIndications variable exists. Delete it\n"));
Status = gRT->SetVariable (
EFI_OS_INDICATIONS_VARIABLE_NAME,
@@ -621,7 +629,7 @@ BdsFormalizeOSIndicationVariable (
//
// Deleting variable with current variable implementation shouldn't fail.
//
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
}
}
@@ -691,14 +699,14 @@ BdsEntry (
//
// Insert the performance probe
//
- PERF_CROSSMODULE_END("DXE");
- PERF_CROSSMODULE_BEGIN("BDS");
+ PERF_CROSSMODULE_END ("DXE");
+ PERF_CROSSMODULE_BEGIN ("BDS");
DEBUG ((DEBUG_INFO, "[Bds] Entry...\n"));
//
// Fill in FirmwareVendor and FirmwareRevision from PCDs
//
- FirmwareVendor = (CHAR16 *) PcdGetPtr (PcdFirmwareVendor);
+ FirmwareVendor = (CHAR16 *)PcdGetPtr (PcdFirmwareVendor);
gST->FirmwareVendor = AllocateRuntimeCopyPool (StrSize (FirmwareVendor), FirmwareVendor);
ASSERT (gST->FirmwareVendor != NULL);
gST->FirmwareRevision = PcdGet32 (PcdFirmwareRevision);
@@ -707,7 +715,7 @@ BdsEntry (
// Fixup Tasble CRC after we updated Firmware Vendor and Revision
//
gST->Hdr.CRC32 = 0;
- gBS->CalculateCrc32 ((VOID *) gST, sizeof (EFI_SYSTEM_TABLE), &gST->Hdr.CRC32);
+ gBS->CalculateCrc32 ((VOID *)gST, sizeof (EFI_SYSTEM_TABLE), &gST->Hdr.CRC32);
//
// Validate Variable.
@@ -717,11 +725,11 @@ BdsEntry (
//
// Mark the read-only variables if the Variable Lock protocol exists
//
- Status = gBS->LocateProtocol(&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID**)&VariablePolicy);
- DEBUG((DEBUG_INFO, "[BdsDxe] Locate Variable Policy protocol - %r\n", Status));
+ Status = gBS->LocateProtocol (&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID **)&VariablePolicy);
+ DEBUG ((DEBUG_INFO, "[BdsDxe] Locate Variable Policy protocol - %r\n", Status));
if (!EFI_ERROR (Status)) {
for (Index = 0; Index < ARRAY_SIZE (mReadOnlyVariables); Index++) {
- Status = RegisterBasicVariablePolicy(
+ Status = RegisterBasicVariablePolicy (
VariablePolicy,
&gEfiGlobalVariableGuid,
mReadOnlyVariables[Index],
@@ -731,7 +739,7 @@ BdsEntry (
VARIABLE_POLICY_NO_CANT_ATTR,
VARIABLE_POLICY_TYPE_LOCK_NOW
);
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
}
}
@@ -764,6 +772,7 @@ BdsEntry (
BootOptionSupport |= EFI_BOOT_OPTION_SUPPORT_KEY;
SET_BOOT_OPTION_SUPPORT_KEY_COUNT (BootOptionSupport, 3);
}
+
Status = gRT->SetVariable (
EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME,
&gEfiGlobalVariableGuid,
@@ -780,11 +789,12 @@ BdsEntry (
// Cache the "BootNext" NV variable before calling any PlatformBootManagerLib APIs
// This could avoid the "BootNext" set by PlatformBootManagerLib be consumed in this boot.
//
- GetEfiGlobalVariable2 (EFI_BOOT_NEXT_VARIABLE_NAME, (VOID **) &BootNext, &DataSize);
+ GetEfiGlobalVariable2 (EFI_BOOT_NEXT_VARIABLE_NAME, (VOID **)&BootNext, &DataSize);
if (DataSize != sizeof (UINT16)) {
if (BootNext != NULL) {
FreePool (BootNext);
}
+
BootNext = NULL;
}
@@ -798,6 +808,7 @@ BdsEntry (
DEBUG ((DEBUG_ERROR, "Fail to allocate memory for default boot file path. Unable to boot.\n"));
CpuDeadLoop ();
}
+
Status = EfiBootManagerInitializeLoadOption (
&PlatformDefaultBootOption,
LoadOptionNumberUnassigned,
@@ -827,12 +838,15 @@ BdsEntry (
break;
}
}
+
PlatformDefaultBootOption.OptionNumber = Index;
- Status = EfiBootManagerLoadOptionToVariable (&PlatformDefaultBootOption);
+ Status = EfiBootManagerLoadOptionToVariable (&PlatformDefaultBootOption);
ASSERT_EFI_ERROR (Status);
}
+
EfiBootManagerFreeLoadOptions (LoadOptions, LoadOptionCount);
}
+
FreePool (FilePath);
//
@@ -869,9 +883,9 @@ BdsEntry (
// > Signal ReadyToLock event
// > Authentication action: 1. connect Auth devices; 2. Identify auto logon user.
//
- PERF_INMODULE_BEGIN("PlatformBootManagerBeforeConsole");
+ PERF_INMODULE_BEGIN ("PlatformBootManagerBeforeConsole");
PlatformBootManagerBeforeConsole ();
- PERF_INMODULE_END("PlatformBootManagerBeforeConsole");
+ PERF_INMODULE_END ("PlatformBootManagerBeforeConsole");
//
// Initialize hotkey service
@@ -888,7 +902,7 @@ BdsEntry (
//
// Connect consoles
//
- PERF_INMODULE_BEGIN("EfiBootManagerConnectAllDefaultConsoles");
+ PERF_INMODULE_BEGIN ("EfiBootManagerConnectAllDefaultConsoles");
if (PcdGetBool (PcdConInConnectOnDemand)) {
EfiBootManagerConnectConsoleVariable (ConOut);
EfiBootManagerConnectConsoleVariable (ErrOut);
@@ -898,7 +912,8 @@ BdsEntry (
} else {
EfiBootManagerConnectAllDefaultConsoles ();
}
- PERF_INMODULE_END("EfiBootManagerConnectAllDefaultConsoles");
+
+ PERF_INMODULE_END ("EfiBootManagerConnectAllDefaultConsoles");
//
// Do the platform specific action after the console is ready
@@ -911,9 +926,9 @@ BdsEntry (
// > Dispatch aditional option roms
// > Special boot: e.g.: USB boot, enter UI
//
- PERF_INMODULE_BEGIN("PlatformBootManagerAfterConsole");
+ PERF_INMODULE_BEGIN ("PlatformBootManagerAfterConsole");
PlatformBootManagerAfterConsole ();
- PERF_INMODULE_END("PlatformBootManagerAfterConsole");
+ PERF_INMODULE_END ("PlatformBootManagerAfterConsole");
//
// If any component set PcdTestKeyUsed to TRUE because use of a test key
@@ -930,39 +945,44 @@ BdsEntry (
// Boot to Boot Manager Menu when EFI_OS_INDICATIONS_BOOT_TO_FW_UI is set. Skip HotkeyBoot
//
DataSize = sizeof (UINT64);
- Status = gRT->GetVariable (
- EFI_OS_INDICATIONS_VARIABLE_NAME,
- &gEfiGlobalVariableGuid,
- NULL,
- &DataSize,
- &OsIndication
- );
+ Status = gRT->GetVariable (
+ EFI_OS_INDICATIONS_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ NULL,
+ &DataSize,
+ &OsIndication
+ );
if (EFI_ERROR (Status)) {
OsIndication = 0;
}
DEBUG_CODE_BEGIN ();
- EFI_BOOT_MANAGER_LOAD_OPTION_TYPE LoadOptionType;
- DEBUG ((DEBUG_INFO, "[Bds]OsIndication: %016x\n", OsIndication));
- DEBUG ((DEBUG_INFO, "[Bds]=============Begin Load Options Dumping ...=============\n"));
- for (LoadOptionType = 0; LoadOptionType < LoadOptionTypeMax; LoadOptionType++) {
+ EFI_BOOT_MANAGER_LOAD_OPTION_TYPE LoadOptionType;
+
+ DEBUG ((DEBUG_INFO, "[Bds]OsIndication: %016x\n", OsIndication));
+ DEBUG ((DEBUG_INFO, "[Bds]=============Begin Load Options Dumping ...=============\n"));
+ for (LoadOptionType = 0; LoadOptionType < LoadOptionTypeMax; LoadOptionType++) {
+ DEBUG ((
+ DEBUG_INFO,
+ " %s Options:\n",
+ mBdsLoadOptionName[LoadOptionType]
+ ));
+ LoadOptions = EfiBootManagerGetLoadOptions (&LoadOptionCount, LoadOptionType);
+ for (Index = 0; Index < LoadOptionCount; Index++) {
DEBUG ((
- DEBUG_INFO, " %s Options:\n",
- mBdsLoadOptionName[LoadOptionType]
+ DEBUG_INFO,
+ " %s%04x: %s \t\t 0x%04x\n",
+ mBdsLoadOptionName[LoadOptionType],
+ LoadOptions[Index].OptionNumber,
+ LoadOptions[Index].Description,
+ LoadOptions[Index].Attributes
));
- LoadOptions = EfiBootManagerGetLoadOptions (&LoadOptionCount, LoadOptionType);
- for (Index = 0; Index < LoadOptionCount; Index++) {
- DEBUG ((
- DEBUG_INFO, " %s%04x: %s \t\t 0x%04x\n",
- mBdsLoadOptionName[LoadOptionType],
- LoadOptions[Index].OptionNumber,
- LoadOptions[Index].Description,
- LoadOptions[Index].Attributes
- ));
- }
- EfiBootManagerFreeLoadOptions (LoadOptions, LoadOptionCount);
}
- DEBUG ((DEBUG_INFO, "[Bds]=============End Load Options Dumping=============\n"));
+
+ EfiBootManagerFreeLoadOptions (LoadOptions, LoadOptionCount);
+ }
+
+ DEBUG ((DEBUG_INFO, "[Bds]=============End Load Options Dumping=============\n"));
DEBUG_CODE_END ();
//
@@ -970,20 +990,20 @@ BdsEntry (
//
BootManagerMenuStatus = EfiBootManagerGetBootManagerMenu (&BootManagerMenu);
- BootFwUi = (BOOLEAN) ((OsIndication & EFI_OS_INDICATIONS_BOOT_TO_FW_UI) != 0);
- PlatformRecovery = (BOOLEAN) ((OsIndication & EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY) != 0);
+ BootFwUi = (BOOLEAN)((OsIndication & EFI_OS_INDICATIONS_BOOT_TO_FW_UI) != 0);
+ PlatformRecovery = (BOOLEAN)((OsIndication & EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY) != 0);
//
// Clear EFI_OS_INDICATIONS_BOOT_TO_FW_UI to acknowledge OS
//
if (BootFwUi || PlatformRecovery) {
- OsIndication &= ~((UINT64) (EFI_OS_INDICATIONS_BOOT_TO_FW_UI | EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY));
- Status = gRT->SetVariable (
- EFI_OS_INDICATIONS_VARIABLE_NAME,
- &gEfiGlobalVariableGuid,
- EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- sizeof(UINT64),
- &OsIndication
- );
+ OsIndication &= ~((UINT64)(EFI_OS_INDICATIONS_BOOT_TO_FW_UI | EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY));
+ Status = gRT->SetVariable (
+ EFI_OS_INDICATIONS_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
+ sizeof (UINT64),
+ &OsIndication
+ );
//
// Changing the content without increasing its size with current variable implementation shouldn't fail.
//
@@ -1054,7 +1074,8 @@ BdsEntry (
EfiBootManagerFreeLoadOption (&LoadOption);
if ((LoadOption.Status == EFI_SUCCESS) &&
(BootManagerMenuStatus != EFI_NOT_FOUND) &&
- (LoadOption.OptionNumber != BootManagerMenu.OptionNumber)) {
+ (LoadOption.OptionNumber != BootManagerMenu.OptionNumber))
+ {
//
// Boot to Boot Manager Menu upon EFI_SUCCESS
// Exception: Do not boot again when the BootNext points to Boot Manager Menu.
@@ -1090,6 +1111,7 @@ BdsEntry (
EfiBootManagerProcessLoadOption (&PlatformDefaultBootOption);
}
}
+
EfiBootManagerFreeLoadOption (&PlatformDefaultBootOption);
DEBUG ((DEBUG_ERROR, "[Bds] Unable to boot!\n"));
@@ -1132,11 +1154,11 @@ BdsEntry (
**/
EFI_STATUS
BdsDxeSetVariableAndReportStatusCodeOnError (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
EFI_STATUS Status;
@@ -1151,7 +1173,7 @@ BdsDxeSetVariableAndReportStatusCodeOnError (
Data
);
if (EFI_ERROR (Status)) {
- NameSize = StrSize (VariableName);
+ NameSize = StrSize (VariableName);
SetVariableStatus = AllocatePool (sizeof (EDKII_SET_VARIABLE_STATUS) + NameSize + DataSize);
if (SetVariableStatus != NULL) {
CopyGuid (&SetVariableStatus->Guid, VendorGuid);
@@ -1159,8 +1181,8 @@ BdsDxeSetVariableAndReportStatusCodeOnError (
SetVariableStatus->DataSize = DataSize;
SetVariableStatus->SetStatus = Status;
SetVariableStatus->Attributes = Attributes;
- CopyMem (SetVariableStatus + 1, VariableName, NameSize);
- CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data, DataSize);
+ CopyMem (SetVariableStatus + 1, VariableName, NameSize);
+ CopyMem (((UINT8 *)(SetVariableStatus + 1)) + NameSize, Data, DataSize);
REPORT_STATUS_CODE_EX (
EFI_ERROR_CODE,
diff --git a/MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c b/MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c
index 6e74119..26b99ba 100644
--- a/MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c
+++ b/MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c
@@ -20,8 +20,8 @@ InitializeHwErrRecSupport (
VOID
)
{
- EFI_STATUS Status;
- UINT16 HardwareErrorRecordLevel;
+ EFI_STATUS Status;
+ UINT16 HardwareErrorRecordLevel;
HardwareErrorRecordLevel = PcdGet16 (PcdHardwareErrorRecordLevel);
@@ -37,6 +37,6 @@ InitializeHwErrRecSupport (
sizeof (UINT16),
&HardwareErrorRecordLevel
);
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
}
}
diff --git a/MdeModulePkg/Universal/BdsDxe/Language.c b/MdeModulePkg/Universal/BdsDxe/Language.c
index 03aa055..8724b13 100644
--- a/MdeModulePkg/Universal/BdsDxe/Language.c
+++ b/MdeModulePkg/Universal/BdsDxe/Language.c
@@ -7,7 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "Bds.h"
-#define ISO_639_2_ENTRY_SIZE 3
+#define ISO_639_2_ENTRY_SIZE 3
/**
Check if lang is in supported language codes according to language string.
@@ -37,15 +37,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
-IsLangInSupportedLangCodes(
- IN CHAR8 *SupportedLang,
- IN CHAR8 *Lang,
- IN BOOLEAN Iso639Language
+IsLangInSupportedLangCodes (
+ IN CHAR8 *SupportedLang,
+ IN CHAR8 *Lang,
+ IN BOOLEAN Iso639Language
)
{
- UINTN Index;
- UINTN CompareLength;
- UINTN LanguageLength;
+ UINTN Index;
+ UINTN CompareLength;
+ UINTN LanguageLength;
if (Iso639Language) {
CompareLength = ISO_639_2_ENTRY_SIZE;
@@ -57,31 +57,38 @@ IsLangInSupportedLangCodes(
return TRUE;
}
}
+
return FALSE;
} else {
//
// Compare RFC4646 language code
//
- for (LanguageLength = 0; Lang[LanguageLength] != '\0'; LanguageLength++);
+ for (LanguageLength = 0; Lang[LanguageLength] != '\0'; LanguageLength++) {
+ }
- for (; *SupportedLang != '\0'; SupportedLang += CompareLength) {
+ for ( ; *SupportedLang != '\0'; SupportedLang += CompareLength) {
//
// Skip ';' characters in SupportedLang
//
- for (; *SupportedLang != '\0' && *SupportedLang == ';'; SupportedLang++);
+ for ( ; *SupportedLang != '\0' && *SupportedLang == ';'; SupportedLang++) {
+ }
+
//
// Determine the length of the next language code in SupportedLang
//
- for (CompareLength = 0; SupportedLang[CompareLength] != '\0' && SupportedLang[CompareLength] != ';'; CompareLength++);
+ for (CompareLength = 0; SupportedLang[CompareLength] != '\0' && SupportedLang[CompareLength] != ';'; CompareLength++) {
+ }
if ((CompareLength == LanguageLength) &&
- (AsciiStrnCmp (Lang, SupportedLang, CompareLength) == 0)) {
+ (AsciiStrnCmp (Lang, SupportedLang, CompareLength) == 0))
+ {
//
// Successfully find the Lang string in SupportedLang string.
//
return TRUE;
}
}
+
return FALSE;
}
}
@@ -100,18 +107,18 @@ IsLangInSupportedLangCodes(
**/
VOID
InitializeLangVariable (
- IN CHAR16 *LangName,
- IN CHAR8 *SupportedLang,
- IN CHAR8 *DefaultLang,
- IN BOOLEAN Iso639Language
+ IN CHAR16 *LangName,
+ IN CHAR8 *SupportedLang,
+ IN CHAR8 *DefaultLang,
+ IN BOOLEAN Iso639Language
)
{
- CHAR8 *Lang;
+ CHAR8 *Lang;
//
// Find current Lang or PlatformLang from EFI Variable.
//
- GetEfiGlobalVariable2 (LangName, (VOID **) &Lang, NULL);
+ GetEfiGlobalVariable2 (LangName, (VOID **)&Lang, NULL);
//
// If Lang or PlatformLang variable is not found,
@@ -146,14 +153,14 @@ InitializeLangVariable (
**/
VOID
InitializeLanguage (
- BOOLEAN LangCodesSettingRequired
+ BOOLEAN LangCodesSettingRequired
)
{
EFI_STATUS Status;
CHAR8 *LangCodes;
CHAR8 *PlatformLangCodes;
- LangCodes = (CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultLangCodes);
+ LangCodes = (CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultLangCodes);
PlatformLangCodes = (CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultPlatformLangCodes);
if (LangCodesSettingRequired) {
if (!FeaturePcdGet (PcdUefiVariableDefaultLangDeprecate)) {
@@ -170,7 +177,7 @@ InitializeLanguage (
//
// Platform needs to make sure setting volatile variable before calling 3rd party code shouldn't fail.
//
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
}
Status = gRT->SetVariable (
@@ -183,14 +190,15 @@ InitializeLanguage (
//
// Platform needs to make sure setting volatile variable before calling 3rd party code shouldn't fail.
//
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
}
if (!FeaturePcdGet (PcdUefiVariableDefaultLangDeprecate)) {
//
// UEFI 2.1 depricated this variable so we support turning it off
//
- InitializeLangVariable (L"Lang", LangCodes, (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultLang), TRUE);
+ InitializeLangVariable (L"Lang", LangCodes, (CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultLang), TRUE);
}
- InitializeLangVariable (L"PlatformLang", PlatformLangCodes, (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang), FALSE);
+
+ InitializeLangVariable (L"PlatformLang", PlatformLangCodes, (CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultPlatformLang), FALSE);
}
diff --git a/MdeModulePkg/Universal/BdsDxe/Language.h b/MdeModulePkg/Universal/BdsDxe/Language.h
index 647730f..e6a5601 100644
--- a/MdeModulePkg/Universal/BdsDxe/Language.h
+++ b/MdeModulePkg/Universal/BdsDxe/Language.h
@@ -18,7 +18,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
InitializeLanguage (
- BOOLEAN LangCodesSettingRequired
+ BOOLEAN LangCodesSettingRequired
);
#endif // _LANGUAGE_H_
diff --git a/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.c b/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.c
index ff45e4f..2c671f1 100644
--- a/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.c
+++ b/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.c
@@ -18,7 +18,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/UefiBootManagerLib.h>
-CHAR16 mNetworkDeviceList[] = L"_NDL";
+CHAR16 mNetworkDeviceList[] = L"_NDL";
/**
Connect all the system drivers to controllers and create the network device list in NV storage.
@@ -32,29 +32,30 @@ ConnectAllAndCreateNetworkDeviceList (
VOID
)
{
- EFI_STATUS Status;
- EFI_HANDLE *Handles;
- UINTN HandleCount;
- EFI_DEVICE_PATH_PROTOCOL *SingleDevice;
- EFI_DEVICE_PATH_PROTOCOL *Devices;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EFI_STATUS Status;
+ EFI_HANDLE *Handles;
+ UINTN HandleCount;
+ EFI_DEVICE_PATH_PROTOCOL *SingleDevice;
+ EFI_DEVICE_PATH_PROTOCOL *Devices;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
EfiBootManagerConnectAll ();
Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiManagedNetworkServiceBindingProtocolGuid, NULL, &HandleCount, &Handles);
if (EFI_ERROR (Status)) {
- Handles = NULL;
+ Handles = NULL;
HandleCount = 0;
}
Devices = NULL;
while (HandleCount-- != 0) {
- Status = gBS->HandleProtocol (Handles[HandleCount], &gEfiDevicePathProtocolGuid, (VOID **) &SingleDevice);
+ Status = gBS->HandleProtocol (Handles[HandleCount], &gEfiDevicePathProtocolGuid, (VOID **)&SingleDevice);
if (EFI_ERROR (Status) || (SingleDevice == NULL)) {
continue;
}
+
TempDevicePath = Devices;
- Devices = AppendDevicePathInstance (Devices, SingleDevice);
+ Devices = AppendDevicePathInstance (Devices, SingleDevice);
if (TempDevicePath != NULL) {
FreePool (TempDevicePath);
}
@@ -89,24 +90,26 @@ ConnectNetwork (
VOID
)
{
- EFI_STATUS Status;
- BOOLEAN OneConnected;
- EFI_DEVICE_PATH_PROTOCOL *Devices;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
- EFI_DEVICE_PATH_PROTOCOL *SingleDevice;
- UINTN Size;
+ EFI_STATUS Status;
+ BOOLEAN OneConnected;
+ EFI_DEVICE_PATH_PROTOCOL *Devices;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *SingleDevice;
+ UINTN Size;
OneConnected = FALSE;
- GetVariable2 (mNetworkDeviceList, &gEfiCallerIdGuid, (VOID **) &Devices, NULL);
+ GetVariable2 (mNetworkDeviceList, &gEfiCallerIdGuid, (VOID **)&Devices, NULL);
TempDevicePath = Devices;
while (TempDevicePath != NULL) {
SingleDevice = GetNextDevicePathInstance (&TempDevicePath, &Size);
- Status = EfiBootManagerConnectDevicePath (SingleDevice, NULL);
+ Status = EfiBootManagerConnectDevicePath (SingleDevice, NULL);
if (!EFI_ERROR (Status)) {
OneConnected = TRUE;
}
+
FreePool (SingleDevice);
}
+
if (Devices != NULL) {
FreePool (Devices);
}
@@ -148,13 +151,13 @@ ConnectNetwork (
EFI_STATUS
EFIAPI
BootManagerPolicyConnectDevicePath (
- IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This,
- IN EFI_DEVICE_PATH *DevicePath,
- IN BOOLEAN Recursive
+ IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This,
+ IN EFI_DEVICE_PATH *DevicePath,
+ IN BOOLEAN Recursive
)
{
- EFI_STATUS Status;
- EFI_HANDLE Controller;
+ EFI_STATUS Status;
+ EFI_HANDLE Controller;
if (EfiGetCurrentTpl () != TPL_APPLICATION) {
return EFI_UNSUPPORTED;
@@ -173,8 +176,10 @@ BootManagerPolicyConnectDevicePath (
Status = gBS->ConnectController (Controller, NULL, DevicePath, FALSE);
}
}
+
return Status;
}
+
/**
Connect a class of devices using the platform Boot Manager policy.
@@ -221,8 +226,8 @@ BootManagerPolicyConnectDevicePath (
EFI_STATUS
EFIAPI
BootManagerPolicyConnectDeviceClass (
- IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This,
- IN EFI_GUID *Class
+ IN EFI_BOOT_MANAGER_POLICY_PROTOCOL *This,
+ IN EFI_GUID *Class
)
{
if (EfiGetCurrentTpl () != TPL_APPLICATION) {
@@ -264,18 +269,19 @@ EFI_BOOT_MANAGER_POLICY_PROTOCOL mBootManagerPolicy = {
EFI_STATUS
EFIAPI
BootManagerPolicyInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_HANDLE Handle;
+ EFI_HANDLE Handle;
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiBootManagerPolicyProtocolGuid);
Handle = NULL;
return gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiBootManagerPolicyProtocolGuid, &mBootManagerPolicy,
+ &gEfiBootManagerPolicyProtocolGuid,
+ &mBootManagerPolicy,
NULL
);
}
diff --git a/MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c b/MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c
index aedbc66..0ea4fb3 100644
--- a/MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c
+++ b/MdeModulePkg/Universal/CapsuleOnDiskLoadPei/CapsuleOnDiskLoadPei.c
@@ -58,15 +58,15 @@
EFI_STATUS
EFIAPI
LoadCapsuleOnDisk (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EDKII_PEI_CAPSULE_ON_DISK_PPI *This
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EDKII_PEI_CAPSULE_ON_DISK_PPI *This
);
-static EDKII_PEI_CAPSULE_ON_DISK_PPI mCapsuleOnDiskPpi = {
+static EDKII_PEI_CAPSULE_ON_DISK_PPI mCapsuleOnDiskPpi = {
LoadCapsuleOnDisk
};
-static EFI_PEI_PPI_DESCRIPTOR mCapsuleOnDiskPpiList = {
+static EFI_PEI_PPI_DESCRIPTOR mCapsuleOnDiskPpiList = {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEdkiiPeiCapsuleOnDiskPpiGuid,
&mCapsuleOnDiskPpi
@@ -84,21 +84,21 @@ static EFI_PEI_PPI_DESCRIPTOR mCapsuleOnDiskPpiList = {
static
BOOLEAN
CheckCapsuleFromRam (
- IN CONST EFI_PEI_SERVICES **PeiServices
+ IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
- PEI_CAPSULE_PPI *Capsule;
+ EFI_STATUS Status;
+ PEI_CAPSULE_PPI *Capsule;
Status = PeiServicesLocatePpi (
&gEfiPeiCapsulePpiGuid,
0,
NULL,
- (VOID **) &Capsule
+ (VOID **)&Capsule
);
- if (!EFI_ERROR(Status)) {
+ if (!EFI_ERROR (Status)) {
Status = Capsule->CheckCapsuleUpdate ((EFI_PEI_SERVICES **)PeiServices);
- if (!EFI_ERROR(Status)) {
+ if (!EFI_ERROR (Status)) {
return TRUE;
}
}
@@ -119,20 +119,20 @@ IsCapsuleOnDiskMode (
VOID
)
{
- EFI_STATUS Status;
- UINTN Size;
- EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
- BOOLEAN CodRelocInfo;
+ EFI_STATUS Status;
+ UINTN Size;
+ EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
+ BOOLEAN CodRelocInfo;
Status = PeiServicesLocatePpi (
&gEfiPeiReadOnlyVariable2PpiGuid,
0,
NULL,
- (VOID **) &PPIVariableServices
+ (VOID **)&PPIVariableServices
);
ASSERT_EFI_ERROR (Status);
- Size = sizeof (BOOLEAN);
+ Size = sizeof (BOOLEAN);
Status = PPIVariableServices->GetVariable (
PPIVariableServices,
COD_RELOCATION_INFO_VAR_NAME,
@@ -142,8 +142,8 @@ IsCapsuleOnDiskMode (
&CodRelocInfo
);
- if (EFI_ERROR (Status) || Size != sizeof(BOOLEAN) || !CodRelocInfo) {
- DEBUG (( DEBUG_ERROR, "Error Get CodRelocationInfo variable %r!\n", Status));
+ if (EFI_ERROR (Status) || (Size != sizeof (BOOLEAN)) || !CodRelocInfo) {
+ DEBUG ((DEBUG_ERROR, "Error Get CodRelocationInfo variable %r!\n", Status));
return FALSE;
}
@@ -169,37 +169,42 @@ IsCapsuleOnDiskMode (
static
EFI_STATUS
RetrieveRelocatedCapsule (
- IN UINT8 *RelocCapsuleBuf,
- IN UINTN RelocCapsuleTotalSize
+ IN UINT8 *RelocCapsuleBuf,
+ IN UINTN RelocCapsuleTotalSize
)
{
- UINTN Index;
- UINT8 *CapsuleDataBufEnd;
- UINT8 *CapsulePtr;
- UINT32 CapsuleSize;
- UINT64 TotalImageSize;
- UINTN CapsuleNum;
+ UINTN Index;
+ UINT8 *CapsuleDataBufEnd;
+ UINT8 *CapsulePtr;
+ UINT32 CapsuleSize;
+ UINT64 TotalImageSize;
+ UINTN CapsuleNum;
//
// Temp file contains at least 2 capsule (including 1 capsule name capsule) & 1 UINT64
//
- if (RelocCapsuleTotalSize < sizeof(UINT64) + sizeof(EFI_CAPSULE_HEADER) * 2) {
+ if (RelocCapsuleTotalSize < sizeof (UINT64) + sizeof (EFI_CAPSULE_HEADER) * 2) {
return EFI_INVALID_PARAMETER;
}
- CopyMem(&TotalImageSize, RelocCapsuleBuf, sizeof(UINT64));
+ CopyMem (&TotalImageSize, RelocCapsuleBuf, sizeof (UINT64));
- DEBUG ((DEBUG_INFO, "ProcessRelocatedCapsule CapsuleBuf %x TotalCapSize %lx\n",
- RelocCapsuleBuf, TotalImageSize));
+ DEBUG ((
+ DEBUG_INFO,
+ "ProcessRelocatedCapsule CapsuleBuf %x TotalCapSize %lx\n",
+ RelocCapsuleBuf,
+ TotalImageSize
+ ));
- RelocCapsuleBuf += sizeof(UINT64);
+ RelocCapsuleBuf += sizeof (UINT64);
//
// TempCaspule file length check
//
- if (MAX_ADDRESS - TotalImageSize <= sizeof(UINT64) ||
- (UINT64)RelocCapsuleTotalSize != TotalImageSize + sizeof(UINT64) ||
- (UINTN)(MAX_ADDRESS - (PHYSICAL_ADDRESS)(UINTN)RelocCapsuleBuf) <= TotalImageSize) {
+ if ((MAX_ADDRESS - TotalImageSize <= sizeof (UINT64)) ||
+ ((UINT64)RelocCapsuleTotalSize != TotalImageSize + sizeof (UINT64)) ||
+ ((UINTN)(MAX_ADDRESS - (PHYSICAL_ADDRESS)(UINTN)RelocCapsuleBuf) <= TotalImageSize))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -212,14 +217,16 @@ RetrieveRelocatedCapsule (
CapsuleNum = 0;
while (CapsulePtr < CapsuleDataBufEnd) {
- if ((CapsuleDataBufEnd - CapsulePtr) < sizeof(EFI_CAPSULE_HEADER) ||
- ((EFI_CAPSULE_HEADER *)CapsulePtr)->CapsuleImageSize < sizeof(EFI_CAPSULE_HEADER) ||
- (UINTN)(MAX_ADDRESS - (PHYSICAL_ADDRESS)(UINTN)CapsulePtr) < ((EFI_CAPSULE_HEADER *)CapsulePtr)->CapsuleImageSize
- ) {
+ if (((CapsuleDataBufEnd - CapsulePtr) < sizeof (EFI_CAPSULE_HEADER)) ||
+ (((EFI_CAPSULE_HEADER *)CapsulePtr)->CapsuleImageSize < sizeof (EFI_CAPSULE_HEADER)) ||
+ ((UINTN)(MAX_ADDRESS - (PHYSICAL_ADDRESS)(UINTN)CapsulePtr) < ((EFI_CAPSULE_HEADER *)CapsulePtr)->CapsuleImageSize)
+ )
+ {
break;
}
+
CapsulePtr += ((EFI_CAPSULE_HEADER *)CapsulePtr)->CapsuleImageSize;
- CapsuleNum ++;
+ CapsuleNum++;
}
if (CapsulePtr != CapsuleDataBufEnd) {
@@ -242,7 +249,7 @@ RetrieveRelocatedCapsule (
CapsuleSize = ((EFI_CAPSULE_HEADER *)CapsulePtr)->CapsuleImageSize;
BuildCvHob ((EFI_PHYSICAL_ADDRESS)(UINTN)CapsulePtr, CapsuleSize);
- DEBUG((DEBUG_INFO, "Capsule saved in address %x size %x\n", CapsulePtr, CapsuleSize));
+ DEBUG ((DEBUG_INFO, "Capsule saved in address %x size %x\n", CapsulePtr, CapsuleSize));
CapsulePtr += CapsuleSize;
Index++;
@@ -270,22 +277,22 @@ InitializeCapsuleOnDiskLoad (
UINTN BootMode;
UINTN FileNameSize;
- BootMode = GetBootModeHob();
- ASSERT(BootMode == BOOT_ON_FLASH_UPDATE);
+ BootMode = GetBootModeHob ();
+ ASSERT (BootMode == BOOT_ON_FLASH_UPDATE);
//
// If there are capsules provisioned in memory, quit.
// Only one capsule resource is accept, CapsuleOnRam's priority is higher than CapsuleOnDisk.
//
- if (CheckCapsuleFromRam(PeiServices)) {
- DEBUG((DEBUG_ERROR, "Capsule On Memory Detected! Quit.\n"));
+ if (CheckCapsuleFromRam (PeiServices)) {
+ DEBUG ((DEBUG_ERROR, "Capsule On Memory Detected! Quit.\n"));
return EFI_ABORTED;
}
DEBUG_CODE_BEGIN ();
- VOID *CapsuleOnDiskModePpi;
+ VOID *CapsuleOnDiskModePpi;
- if (!IsCapsuleOnDiskMode()){
+ if (!IsCapsuleOnDiskMode ()) {
return EFI_NOT_FOUND;
}
@@ -298,17 +305,18 @@ InitializeCapsuleOnDiskLoad (
NULL,
(VOID **)&CapsuleOnDiskModePpi
);
- if (EFI_ERROR(Status)) {
- DEBUG((DEBUG_ERROR, "Locate CapsuleOnDiskModePpi error %x\n", Status));
- return Status;
- }
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "Locate CapsuleOnDiskModePpi error %x\n", Status));
+ return Status;
+ }
+
DEBUG_CODE_END ();
Status = PeiServicesInstallPpi (&mCapsuleOnDiskPpiList);
ASSERT_EFI_ERROR (Status);
FileNameSize = PcdGetSize (PcdCoDRelocationFileName);
- Status = PcdSetPtrS (PcdRecoveryFileName, &FileNameSize, (VOID *) PcdGetPtr(PcdCoDRelocationFileName));
+ Status = PcdSetPtrS (PcdRecoveryFileName, &FileNameSize, (VOID *)PcdGetPtr (PcdCoDRelocationFileName));
ASSERT_EFI_ERROR (Status);
return Status;
@@ -329,8 +337,8 @@ InitializeCapsuleOnDiskLoad (
EFI_STATUS
EFIAPI
LoadCapsuleOnDisk (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EDKII_PEI_CAPSULE_ON_DISK_PPI *This
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EDKII_PEI_CAPSULE_ON_DISK_PPI *This
)
{
EFI_STATUS Status;
@@ -359,14 +367,16 @@ LoadCapsuleOnDisk (
(EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_EC_RECOVERY_PPI_NOT_FOUND)
);
}
+
break;
}
+
NumberRecoveryCapsules = 0;
- Status = DeviceRecoveryPpi->GetNumberRecoveryCapsules (
- (EFI_PEI_SERVICES **)PeiServices,
- DeviceRecoveryPpi,
- &NumberRecoveryCapsules
- );
+ Status = DeviceRecoveryPpi->GetNumberRecoveryCapsules (
+ (EFI_PEI_SERVICES **)PeiServices,
+ DeviceRecoveryPpi,
+ &NumberRecoveryCapsules
+ );
DEBUG ((DEBUG_INFO, "LoadCapsuleOnDisk - GetNumberRecoveryCapsules (%d) - %r\n", NumberRecoveryCapsules, Status));
if (EFI_ERROR (Status)) {
continue;
@@ -374,13 +384,13 @@ LoadCapsuleOnDisk (
for (CapsuleInstance = 1; CapsuleInstance <= NumberRecoveryCapsules; CapsuleInstance++) {
CapsuleSize = 0;
- Status = DeviceRecoveryPpi->GetRecoveryCapsuleInfo (
- (EFI_PEI_SERVICES **)PeiServices,
- DeviceRecoveryPpi,
- CapsuleInstance,
- &CapsuleSize,
- &CapsuleType
- );
+ Status = DeviceRecoveryPpi->GetRecoveryCapsuleInfo (
+ (EFI_PEI_SERVICES **)PeiServices,
+ DeviceRecoveryPpi,
+ CapsuleInstance,
+ &CapsuleSize,
+ &CapsuleType
+ );
DEBUG ((DEBUG_INFO, "LoadCapsuleOnDisk - GetRecoveryCapsuleInfo (%d - %x) - %r\n", CapsuleInstance, CapsuleSize, Status));
if (EFI_ERROR (Status)) {
break;
@@ -405,14 +415,14 @@ LoadCapsuleOnDisk (
);
DEBUG ((DEBUG_INFO, "LoadCapsuleOnDisk - LoadRecoveryCapsule (%d) - %r\n", CapsuleInstance, Status));
if (EFI_ERROR (Status)) {
- FreePages (CapsuleBuffer, EFI_SIZE_TO_PAGES(CapsuleSize));
+ FreePages (CapsuleBuffer, EFI_SIZE_TO_PAGES (CapsuleSize));
break;
}
//
// Capsule Update Mode, Split relocated Capsule buffer into different capsule vehical hobs.
//
- Status = RetrieveRelocatedCapsule(CapsuleBuffer, CapsuleSize);
+ Status = RetrieveRelocatedCapsule (CapsuleBuffer, CapsuleSize);
break;
}
diff --git a/MdeModulePkg/Universal/CapsulePei/Capsule.h b/MdeModulePkg/Universal/CapsulePei/Capsule.h
index 3d9cab0..c16f83a 100644
--- a/MdeModulePkg/Universal/CapsulePei/Capsule.h
+++ b/MdeModulePkg/Universal/CapsulePei/Capsule.h
@@ -36,7 +36,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifdef MDE_CPU_IA32
-#pragma pack(1)
+ #pragma pack(1)
//
// Page-Map Level-4 Offset (PML4) and
@@ -45,18 +45,18 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
typedef union {
struct {
- UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
- UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
- UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
- UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
- UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
- UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
- UINT64 Reserved:1; // Reserved
- UINT64 MustBeZero:2; // Must Be Zero
- UINT64 Available:3; // Available for use by system software
- UINT64 PageTableBaseAddress:40; // Page Table Base Address
- UINT64 AvabilableHigh:11; // Available for use by system software
- UINT64 Nx:1; // No Execute bit
+ UINT64 Present : 1; // 0 = Not present in memory, 1 = Present in memory
+ UINT64 ReadWrite : 1; // 0 = Read-Only, 1= Read/Write
+ UINT64 UserSupervisor : 1; // 0 = Supervisor, 1=User
+ UINT64 WriteThrough : 1; // 0 = Write-Back caching, 1=Write-Through caching
+ UINT64 CacheDisabled : 1; // 0 = Cached, 1=Non-Cached
+ UINT64 Accessed : 1; // 0 = Not accessed, 1 = Accessed (set by CPU)
+ UINT64 Reserved : 1; // Reserved
+ UINT64 MustBeZero : 2; // Must Be Zero
+ UINT64 Available : 3; // Available for use by system software
+ UINT64 PageTableBaseAddress : 40; // Page Table Base Address
+ UINT64 AvabilableHigh : 11; // Available for use by system software
+ UINT64 Nx : 1; // No Execute bit
} Bits;
UINT64 Uint64;
} PAGE_MAP_AND_DIRECTORY_POINTER;
@@ -66,21 +66,21 @@ typedef union {
//
typedef union {
struct {
- UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
- UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
- UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
- UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
- UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
- UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
- UINT64 Dirty:1; // 0 = Not Dirty, 1 = written by processor on access to page
- UINT64 MustBe1:1; // Must be 1
- UINT64 Global:1; // 0 = Not global page, 1 = global page TLB not cleared on CR3 write
- UINT64 Available:3; // Available for use by system software
- UINT64 PAT:1; //
- UINT64 MustBeZero:8; // Must be zero;
- UINT64 PageTableBaseAddress:31; // Page Table Base Address
- UINT64 AvabilableHigh:11; // Available for use by system software
- UINT64 Nx:1; // 0 = Execute Code, 1 = No Code Execution
+ UINT64 Present : 1; // 0 = Not present in memory, 1 = Present in memory
+ UINT64 ReadWrite : 1; // 0 = Read-Only, 1= Read/Write
+ UINT64 UserSupervisor : 1; // 0 = Supervisor, 1=User
+ UINT64 WriteThrough : 1; // 0 = Write-Back caching, 1=Write-Through caching
+ UINT64 CacheDisabled : 1; // 0 = Cached, 1=Non-Cached
+ UINT64 Accessed : 1; // 0 = Not accessed, 1 = Accessed (set by CPU)
+ UINT64 Dirty : 1; // 0 = Not Dirty, 1 = written by processor on access to page
+ UINT64 MustBe1 : 1; // Must be 1
+ UINT64 Global : 1; // 0 = Not global page, 1 = global page TLB not cleared on CR3 write
+ UINT64 Available : 3; // Available for use by system software
+ UINT64 PAT : 1; //
+ UINT64 MustBeZero : 8; // Must be zero;
+ UINT64 PageTableBaseAddress : 31; // Page Table Base Address
+ UINT64 AvabilableHigh : 11; // Available for use by system software
+ UINT64 Nx : 1; // 0 = Execute Code, 1 = No Code Execution
} Bits;
UINT64 Uint64;
} PAGE_TABLE_ENTRY;
@@ -90,32 +90,32 @@ typedef union {
//
typedef union {
struct {
- UINT64 Present:1; // 0 = Not present in memory, 1 = Present in memory
- UINT64 ReadWrite:1; // 0 = Read-Only, 1= Read/Write
- UINT64 UserSupervisor:1; // 0 = Supervisor, 1=User
- UINT64 WriteThrough:1; // 0 = Write-Back caching, 1=Write-Through caching
- UINT64 CacheDisabled:1; // 0 = Cached, 1=Non-Cached
- UINT64 Accessed:1; // 0 = Not accessed, 1 = Accessed (set by CPU)
- UINT64 Dirty:1; // 0 = Not Dirty, 1 = written by processor on access to page
- UINT64 MustBe1:1; // Must be 1
- UINT64 Global:1; // 0 = Not global page, 1 = global page TLB not cleared on CR3 write
- UINT64 Available:3; // Available for use by system software
- UINT64 PAT:1; //
- UINT64 MustBeZero:17; // Must be zero;
- UINT64 PageTableBaseAddress:22; // Page Table Base Address
- UINT64 AvabilableHigh:11; // Available for use by system software
- UINT64 Nx:1; // 0 = Execute Code, 1 = No Code Execution
+ UINT64 Present : 1; // 0 = Not present in memory, 1 = Present in memory
+ UINT64 ReadWrite : 1; // 0 = Read-Only, 1= Read/Write
+ UINT64 UserSupervisor : 1; // 0 = Supervisor, 1=User
+ UINT64 WriteThrough : 1; // 0 = Write-Back caching, 1=Write-Through caching
+ UINT64 CacheDisabled : 1; // 0 = Cached, 1=Non-Cached
+ UINT64 Accessed : 1; // 0 = Not accessed, 1 = Accessed (set by CPU)
+ UINT64 Dirty : 1; // 0 = Not Dirty, 1 = written by processor on access to page
+ UINT64 MustBe1 : 1; // Must be 1
+ UINT64 Global : 1; // 0 = Not global page, 1 = global page TLB not cleared on CR3 write
+ UINT64 Available : 3; // Available for use by system software
+ UINT64 PAT : 1; //
+ UINT64 MustBeZero : 17; // Must be zero;
+ UINT64 PageTableBaseAddress : 22; // Page Table Base Address
+ UINT64 AvabilableHigh : 11; // Available for use by system software
+ UINT64 Nx : 1; // 0 = Execute Code, 1 = No Code Execution
} Bits;
UINT64 Uint64;
} PAGE_TABLE_1G_ENTRY;
-#pragma pack()
+ #pragma pack()
typedef
EFI_STATUS
(*COALESCE_ENTRY) (
- SWITCH_32_TO_64_CONTEXT *EntrypointContext,
- SWITCH_64_TO_32_CONTEXT *ReturnContext
+ SWITCH_32_TO_64_CONTEXT *EntrypointContext,
+ SWITCH_64_TO_32_CONTEXT *ReturnContext
);
#endif
diff --git a/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c b/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
index 468eea5..aab35dc 100644
--- a/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
+++ b/MdeModulePkg/Universal/CapsulePei/Common/CapsuleCoalesce.c
@@ -27,7 +27,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "CommonHeader.h"
-#define MIN_COALESCE_ADDR (1024 * 1024)
+#define MIN_COALESCE_ADDR (1024 * 1024)
/**
Given a pointer to the capsule block list, info on the available system
@@ -47,10 +47,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
UINT8 *
FindFreeMem (
- EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
- UINT8 *MemBase,
- UINTN MemSize,
- UINTN DataSize
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
+ UINT8 *MemBase,
+ UINTN MemSize,
+ UINTN DataSize
);
/**
@@ -74,11 +74,11 @@ FindFreeMem (
**/
EFI_CAPSULE_BLOCK_DESCRIPTOR *
RelocateBlockDescriptors (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
- IN UINTN NumDescriptors,
- IN UINT8 *MemBase,
- IN UINTN MemSize
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
+ IN UINTN NumDescriptors,
+ IN UINT8 *MemBase,
+ IN UINTN MemSize
);
/**
@@ -92,7 +92,7 @@ RelocateBlockDescriptors (
**/
BOOLEAN
IsCapsuleCorrupted (
- IN EFI_CAPSULE_HEADER *CapsuleHeader
+ IN EFI_CAPSULE_HEADER *CapsuleHeader
);
/**
@@ -109,10 +109,10 @@ IsCapsuleCorrupted (
**/
BOOLEAN
IsOverlapped (
- UINT8 *Buff1,
- UINTN Size1,
- UINT8 *Buff2,
- UINTN Size2
+ UINT8 *Buff1,
+ UINTN Size1,
+ UINT8 *Buff2,
+ UINTN Size2
);
/**
@@ -131,10 +131,10 @@ IsOverlapped (
**/
EFI_STATUS
GetCapsuleInfo (
- IN EFI_CAPSULE_BLOCK_DESCRIPTOR *Desc,
- IN OUT UINTN *NumDescriptors OPTIONAL,
- IN OUT UINTN *CapsuleSize OPTIONAL,
- IN OUT UINTN *CapsuleNumber OPTIONAL
+ IN EFI_CAPSULE_BLOCK_DESCRIPTOR *Desc,
+ IN OUT UINTN *NumDescriptors OPTIONAL,
+ IN OUT UINTN *CapsuleSize OPTIONAL,
+ IN OUT UINTN *CapsuleNumber OPTIONAL
);
/**
@@ -155,24 +155,24 @@ GetCapsuleInfo (
**/
UINT8 *
FindFreeMem (
- EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
- UINT8 *MemBase,
- UINTN MemSize,
- UINTN DataSize
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
+ UINT8 *MemBase,
+ UINTN MemSize,
+ UINTN DataSize
)
{
- UINTN Size;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *CurrDesc;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *TempDesc;
- UINT8 *MemEnd;
- BOOLEAN Failed;
+ UINTN Size;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *CurrDesc;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *TempDesc;
+ UINT8 *MemEnd;
+ BOOLEAN Failed;
//
// Need at least enough to copy the data to at the end of the buffer, so
// say the end is less the data size for easy comparisons here.
//
- MemEnd = MemBase + MemSize - DataSize;
- CurrDesc = BlockList;
+ MemEnd = MemBase + MemSize - DataSize;
+ CurrDesc = BlockList;
//
// Go through all the descriptor blocks and see if any obstruct the range
//
@@ -180,50 +180,54 @@ FindFreeMem (
//
// Get the size of this block list and see if it's in the way
//
- Failed = FALSE;
- TempDesc = CurrDesc;
- Size = sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
+ Failed = FALSE;
+ TempDesc = CurrDesc;
+ Size = sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
while (TempDesc->Length != 0) {
Size += sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
TempDesc++;
}
- if (IsOverlapped (MemBase, DataSize, (UINT8 *) CurrDesc, Size)) {
+ if (IsOverlapped (MemBase, DataSize, (UINT8 *)CurrDesc, Size)) {
//
// Set our new base to the end of this block list and start all over
//
- MemBase = (UINT8 *) CurrDesc + Size;
- CurrDesc = BlockList;
+ MemBase = (UINT8 *)CurrDesc + Size;
+ CurrDesc = BlockList;
if (MemBase > MemEnd) {
return NULL;
}
Failed = TRUE;
}
+
//
// Now go through all the blocks and make sure none are in the way
//
while ((CurrDesc->Length != 0) && (!Failed)) {
- if (IsOverlapped (MemBase, DataSize, (UINT8 *) (UINTN) CurrDesc->Union.DataBlock, (UINTN) CurrDesc->Length)) {
+ if (IsOverlapped (MemBase, DataSize, (UINT8 *)(UINTN)CurrDesc->Union.DataBlock, (UINTN)CurrDesc->Length)) {
//
// Set our new base to the end of this block and start all over
//
- Failed = TRUE;
- MemBase = (UINT8 *) ((UINTN) CurrDesc->Union.DataBlock) + CurrDesc->Length;
- CurrDesc = BlockList;
+ Failed = TRUE;
+ MemBase = (UINT8 *)((UINTN)CurrDesc->Union.DataBlock) + CurrDesc->Length;
+ CurrDesc = BlockList;
if (MemBase > MemEnd) {
return NULL;
}
}
+
CurrDesc++;
}
+
//
// Normal continuation -- jump to next block descriptor list
//
if (!Failed) {
- CurrDesc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) CurrDesc->Union.ContinuationPointer;
+ CurrDesc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)CurrDesc->Union.ContinuationPointer;
}
}
+
return MemBase;
}
@@ -241,12 +245,12 @@ FindFreeMem (
**/
BOOLEAN
ValidateCapsuleByMemoryResource (
- IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
- IN EFI_PHYSICAL_ADDRESS Address,
- IN UINT64 Size
+ IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
+ IN EFI_PHYSICAL_ADDRESS Address,
+ IN UINT64 Size
)
{
- UINTN Index;
+ UINTN Index;
//
// Sanity Check
@@ -273,10 +277,17 @@ ValidateCapsuleByMemoryResource (
for (Index = 0; MemoryResource[Index].ResourceLength != 0; Index++) {
if ((Address >= MemoryResource[Index].PhysicalStart) &&
- ((Address + Size) <= (MemoryResource[Index].PhysicalStart + MemoryResource[Index].ResourceLength))) {
- DEBUG ((DEBUG_INFO, "Address(0x%lx) Size(0x%lx) in MemoryResource[0x%x] - Start(0x%lx) Length(0x%lx)\n",
- Address, Size,
- Index, MemoryResource[Index].PhysicalStart, MemoryResource[Index].ResourceLength));
+ ((Address + Size) <= (MemoryResource[Index].PhysicalStart + MemoryResource[Index].ResourceLength)))
+ {
+ DEBUG ((
+ DEBUG_INFO,
+ "Address(0x%lx) Size(0x%lx) in MemoryResource[0x%x] - Start(0x%lx) Length(0x%lx)\n",
+ Address,
+ Size,
+ Index,
+ MemoryResource[Index].PhysicalStart,
+ MemoryResource[Index].ResourceLength
+ ));
return TRUE;
}
}
@@ -297,14 +308,14 @@ ValidateCapsuleByMemoryResource (
**/
EFI_CAPSULE_BLOCK_DESCRIPTOR *
ValidateCapsuleIntegrity (
- IN EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
- IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource
+ IN EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
+ IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource
)
{
- EFI_CAPSULE_HEADER *CapsuleHeader;
- UINT64 CapsuleSize;
- UINTN CapsuleCount;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *Ptr;
+ EFI_CAPSULE_HEADER *CapsuleHeader;
+ UINT64 CapsuleSize;
+ UINTN CapsuleCount;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *Ptr;
DEBUG ((DEBUG_INFO, "ValidateCapsuleIntegrity\n"));
@@ -321,20 +332,20 @@ ValidateCapsuleIntegrity (
//
CapsuleSize = 0;
CapsuleCount = 0;
- Ptr = BlockList;
+ Ptr = BlockList;
- if (!ValidateCapsuleByMemoryResource (MemoryResource, (EFI_PHYSICAL_ADDRESS) (UINTN) Ptr, sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
+ if (!ValidateCapsuleByMemoryResource (MemoryResource, (EFI_PHYSICAL_ADDRESS)(UINTN)Ptr, sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
return NULL;
}
DEBUG ((DEBUG_INFO, "Ptr - 0x%p\n", Ptr));
DEBUG ((DEBUG_INFO, "Ptr->Length - 0x%lx\n", Ptr->Length));
DEBUG ((DEBUG_INFO, "Ptr->Union - 0x%lx\n", Ptr->Union.ContinuationPointer));
- while ((Ptr->Length != 0) || (Ptr->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
+ while ((Ptr->Length != 0) || (Ptr->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL)) {
//
// Make sure the descriptor is aligned at UINT64 in memory
//
- if ((UINTN) Ptr & (sizeof(UINT64) - 1)) {
+ if ((UINTN)Ptr & (sizeof (UINT64) - 1)) {
DEBUG ((DEBUG_ERROR, "ERROR: BlockList address failed alignment check\n"));
return NULL;
}
@@ -344,10 +355,11 @@ ValidateCapsuleIntegrity (
// Descriptor points to another list of block descriptors somewhere
// else.
//
- Ptr = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) Ptr->Union.ContinuationPointer;
- if (!ValidateCapsuleByMemoryResource (MemoryResource, (EFI_PHYSICAL_ADDRESS) (UINTN) Ptr, sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
+ Ptr = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)Ptr->Union.ContinuationPointer;
+ if (!ValidateCapsuleByMemoryResource (MemoryResource, (EFI_PHYSICAL_ADDRESS)(UINTN)Ptr, sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
return NULL;
}
+
DEBUG ((DEBUG_INFO, "Ptr(C) - 0x%p\n", Ptr));
DEBUG ((DEBUG_INFO, "Ptr->Length - 0x%lx\n", Ptr->Length));
DEBUG ((DEBUG_INFO, "Ptr->Union - 0x%lx\n", Ptr->Union.ContinuationPointer));
@@ -357,21 +369,22 @@ ValidateCapsuleIntegrity (
}
//
- //To enhance the reliability of check-up, the first capsule's header is checked here.
- //More reliabilities check-up will do later.
+ // To enhance the reliability of check-up, the first capsule's header is checked here.
+ // More reliabilities check-up will do later.
//
if (CapsuleSize == 0) {
//
- //Move to the first capsule to check its header.
+ // Move to the first capsule to check its header.
//
- CapsuleHeader = (EFI_CAPSULE_HEADER*)((UINTN)Ptr->Union.DataBlock);
+ CapsuleHeader = (EFI_CAPSULE_HEADER *)((UINTN)Ptr->Union.DataBlock);
//
// Sanity check
//
- if (Ptr->Length < sizeof(EFI_CAPSULE_HEADER)) {
+ if (Ptr->Length < sizeof (EFI_CAPSULE_HEADER)) {
DEBUG ((DEBUG_ERROR, "ERROR: Ptr->Length(0x%lx) < sizeof(EFI_CAPSULE_HEADER)\n", Ptr->Length));
return NULL;
}
+
//
// Make sure HeaderSize field is valid
//
@@ -379,10 +392,12 @@ ValidateCapsuleIntegrity (
DEBUG ((DEBUG_ERROR, "ERROR: CapsuleHeader->HeaderSize(0x%x) > CapsuleHeader->CapsuleImageSize(0x%x)\n", CapsuleHeader->HeaderSize, CapsuleHeader->CapsuleImageSize));
return NULL;
}
+
if (IsCapsuleCorrupted (CapsuleHeader)) {
return NULL;
}
- CapsuleCount ++;
+
+ CapsuleCount++;
CapsuleSize = CapsuleHeader->CapsuleImageSize;
}
@@ -400,9 +415,10 @@ ValidateCapsuleIntegrity (
// Move to next BLOCK descriptor
//
Ptr++;
- if (!ValidateCapsuleByMemoryResource (MemoryResource, (EFI_PHYSICAL_ADDRESS) (UINTN) Ptr, sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
+ if (!ValidateCapsuleByMemoryResource (MemoryResource, (EFI_PHYSICAL_ADDRESS)(UINTN)Ptr, sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
return NULL;
}
+
DEBUG ((DEBUG_INFO, "Ptr(B) - 0x%p\n", Ptr));
DEBUG ((DEBUG_INFO, "Ptr->Length - 0x%lx\n", Ptr->Length));
DEBUG ((DEBUG_INFO, "Ptr->Union - 0x%lx\n", Ptr->Union.ContinuationPointer));
@@ -449,20 +465,20 @@ ValidateCapsuleIntegrity (
**/
EFI_CAPSULE_BLOCK_DESCRIPTOR *
RelocateBlockDescriptors (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
- IN UINTN NumDescriptors,
- IN UINT8 *MemBase,
- IN UINTN MemSize
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_CAPSULE_BLOCK_DESCRIPTOR *BlockList,
+ IN UINTN NumDescriptors,
+ IN UINT8 *MemBase,
+ IN UINTN MemSize
)
{
- EFI_CAPSULE_BLOCK_DESCRIPTOR *NewBlockList;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *CurrBlockDescHead;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *TempBlockDesc;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *PrevBlockDescTail;
- UINTN BufferSize;
- UINT8 *RelocBuffer;
- UINTN BlockListSize;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *NewBlockList;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *CurrBlockDescHead;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *TempBlockDesc;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *PrevBlockDescTail;
+ UINTN BufferSize;
+ UINT8 *RelocBuffer;
+ UINTN BlockListSize;
//
// Get the info on the blocks and descriptors. Since we're going to move
@@ -471,8 +487,8 @@ RelocateBlockDescriptors (
// a terminator. (Already done by caller, no check is needed.)
//
- BufferSize = NumDescriptors * sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
- NewBlockList = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) MemBase;
+ BufferSize = NumDescriptors * sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
+ NewBlockList = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)MemBase;
if (MemSize < BufferSize) {
return NULL;
}
@@ -483,45 +499,48 @@ RelocateBlockDescriptors (
// Go through all the blocks and make sure none are in the way
//
TempBlockDesc = BlockList;
- while (TempBlockDesc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL) {
+ while (TempBlockDesc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL) {
if (TempBlockDesc->Length == 0) {
//
// Next block of descriptors
//
- TempBlockDesc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) TempBlockDesc->Union.ContinuationPointer;
+ TempBlockDesc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)TempBlockDesc->Union.ContinuationPointer;
} else {
//
// If the capsule data pointed to by this descriptor is in the way,
// move it.
//
if (IsOverlapped (
- (UINT8 *) NewBlockList,
+ (UINT8 *)NewBlockList,
BufferSize,
- (UINT8 *) (UINTN) TempBlockDesc->Union.DataBlock,
- (UINTN) TempBlockDesc->Length
- )) {
+ (UINT8 *)(UINTN)TempBlockDesc->Union.DataBlock,
+ (UINTN)TempBlockDesc->Length
+ ))
+ {
//
// Relocate the block
//
- RelocBuffer = FindFreeMem (BlockList, MemBase, MemSize, (UINTN) TempBlockDesc->Length);
+ RelocBuffer = FindFreeMem (BlockList, MemBase, MemSize, (UINTN)TempBlockDesc->Length);
if (RelocBuffer == NULL) {
return NULL;
}
- CopyMem ((VOID *) RelocBuffer, (VOID *) (UINTN) TempBlockDesc->Union.DataBlock, (UINTN) TempBlockDesc->Length);
+ CopyMem ((VOID *)RelocBuffer, (VOID *)(UINTN)TempBlockDesc->Union.DataBlock, (UINTN)TempBlockDesc->Length);
DEBUG ((DEBUG_INFO, "Capsule relocate descriptors from/to/size 0x%lX 0x%lX 0x%lX\n", TempBlockDesc->Union.DataBlock, (UINT64)(UINTN)RelocBuffer, TempBlockDesc->Length));
- TempBlockDesc->Union.DataBlock = (EFI_PHYSICAL_ADDRESS) (UINTN) RelocBuffer;
+ TempBlockDesc->Union.DataBlock = (EFI_PHYSICAL_ADDRESS)(UINTN)RelocBuffer;
}
+
TempBlockDesc++;
}
}
+
//
// Now go through all the block descriptors to make sure that they're not
// in the memory region we want to copy them to.
//
CurrBlockDescHead = BlockList;
PrevBlockDescTail = NULL;
- while ((CurrBlockDescHead != NULL) && (CurrBlockDescHead->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
+ while ((CurrBlockDescHead != NULL) && (CurrBlockDescHead->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL)) {
//
// Get the size of this list then see if it overlaps our low region
//
@@ -533,11 +552,12 @@ RelocateBlockDescriptors (
}
if (IsOverlapped (
- (UINT8 *) NewBlockList,
+ (UINT8 *)NewBlockList,
BufferSize,
- (UINT8 *) CurrBlockDescHead,
+ (UINT8 *)CurrBlockDescHead,
BlockListSize
- )) {
+ ))
+ {
//
// Overlaps, so move it out of the way
//
@@ -545,44 +565,48 @@ RelocateBlockDescriptors (
if (RelocBuffer == NULL) {
return NULL;
}
- CopyMem ((VOID *) RelocBuffer, (VOID *) CurrBlockDescHead, BlockListSize);
+
+ CopyMem ((VOID *)RelocBuffer, (VOID *)CurrBlockDescHead, BlockListSize);
DEBUG ((DEBUG_INFO, "Capsule reloc descriptor block #2\n"));
//
// Point the previous block's next point to this copied version. If
// the tail pointer is null, then this is the first descriptor block.
//
if (PrevBlockDescTail == NULL) {
- BlockList = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) RelocBuffer;
+ BlockList = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)RelocBuffer;
} else {
- PrevBlockDescTail->Union.DataBlock = (EFI_PHYSICAL_ADDRESS) (UINTN) RelocBuffer;
+ PrevBlockDescTail->Union.DataBlock = (EFI_PHYSICAL_ADDRESS)(UINTN)RelocBuffer;
}
}
+
//
// Save our new tail and jump to the next block list
//
PrevBlockDescTail = TempBlockDesc;
- CurrBlockDescHead = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) TempBlockDesc->Union.ContinuationPointer;
+ CurrBlockDescHead = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)TempBlockDesc->Union.ContinuationPointer;
}
+
//
// Cleared out low memory. Now copy the descriptors down there.
//
TempBlockDesc = BlockList;
CurrBlockDescHead = NewBlockList;
- while ((TempBlockDesc != NULL) && (TempBlockDesc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
+ while ((TempBlockDesc != NULL) && (TempBlockDesc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL)) {
if (TempBlockDesc->Length != 0) {
CurrBlockDescHead->Union.DataBlock = TempBlockDesc->Union.DataBlock;
- CurrBlockDescHead->Length = TempBlockDesc->Length;
+ CurrBlockDescHead->Length = TempBlockDesc->Length;
CurrBlockDescHead++;
TempBlockDesc++;
} else {
- TempBlockDesc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) TempBlockDesc->Union.ContinuationPointer;
+ TempBlockDesc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)TempBlockDesc->Union.ContinuationPointer;
}
}
+
//
// Null terminate
//
- CurrBlockDescHead->Union.ContinuationPointer = (EFI_PHYSICAL_ADDRESS) (UINTN) NULL;
- CurrBlockDescHead->Length = 0;
+ CurrBlockDescHead->Union.ContinuationPointer = (EFI_PHYSICAL_ADDRESS)(UINTN)NULL;
+ CurrBlockDescHead->Length = 0;
return NewBlockList;
}
@@ -600,10 +624,10 @@ RelocateBlockDescriptors (
**/
BOOLEAN
IsOverlapped (
- UINT8 *Buff1,
- UINTN Size1,
- UINT8 *Buff2,
- UINTN Size2
+ UINT8 *Buff1,
+ UINTN Size1,
+ UINT8 *Buff2,
+ UINTN Size2
)
{
//
@@ -633,33 +657,33 @@ IsOverlapped (
**/
EFI_STATUS
GetCapsuleInfo (
- IN EFI_CAPSULE_BLOCK_DESCRIPTOR *Desc,
- IN OUT UINTN *NumDescriptors OPTIONAL,
- IN OUT UINTN *CapsuleSize OPTIONAL,
- IN OUT UINTN *CapsuleNumber OPTIONAL
+ IN EFI_CAPSULE_BLOCK_DESCRIPTOR *Desc,
+ IN OUT UINTN *NumDescriptors OPTIONAL,
+ IN OUT UINTN *CapsuleSize OPTIONAL,
+ IN OUT UINTN *CapsuleNumber OPTIONAL
)
{
- UINTN Count;
- UINTN Size;
- UINTN Number;
- UINTN ThisCapsuleImageSize;
- EFI_CAPSULE_HEADER *CapsuleHeader;
+ UINTN Count;
+ UINTN Size;
+ UINTN Number;
+ UINTN ThisCapsuleImageSize;
+ EFI_CAPSULE_HEADER *CapsuleHeader;
DEBUG ((DEBUG_INFO, "GetCapsuleInfo enter\n"));
ASSERT (Desc != NULL);
- Count = 0;
- Size = 0;
- Number = 0;
+ Count = 0;
+ Size = 0;
+ Number = 0;
ThisCapsuleImageSize = 0;
- while (Desc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL) {
+ while (Desc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL) {
if (Desc->Length == 0) {
//
// Descriptor points to another list of block descriptors somewhere
//
- Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) Desc->Union.ContinuationPointer;
+ Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)Desc->Union.ContinuationPointer;
} else {
//
// Sanity Check
@@ -670,18 +694,19 @@ GetCapsuleInfo (
DEBUG ((DEBUG_ERROR, "ERROR: Desc->Length(0x%lx) >= (MAX_ADDRESS - Size(0x%x))\n", Desc->Length, Size));
return EFI_OUT_OF_RESOURCES;
}
- Size += (UINTN) Desc->Length;
+
+ Size += (UINTN)Desc->Length;
Count++;
//
// See if this is first capsule's header
//
if (ThisCapsuleImageSize == 0) {
- CapsuleHeader = (EFI_CAPSULE_HEADER*)((UINTN)Desc->Union.DataBlock);
+ CapsuleHeader = (EFI_CAPSULE_HEADER *)((UINTN)Desc->Union.DataBlock);
//
// This has been checked in ValidateCapsuleIntegrity()
//
- Number ++;
+ Number++;
ThisCapsuleImageSize = CapsuleHeader->CapsuleImageSize;
}
@@ -697,6 +722,7 @@ GetCapsuleInfo (
Desc++;
}
}
+
//
// If no descriptors, then fail
//
@@ -736,21 +762,23 @@ GetCapsuleInfo (
**/
BOOLEAN
IsCapsuleCorrupted (
- IN EFI_CAPSULE_HEADER *CapsuleHeader
+ IN EFI_CAPSULE_HEADER *CapsuleHeader
)
{
//
- //A capsule to be updated across a system reset should contain CAPSULE_FLAGS_PERSIST_ACROSS_RESET.
+ // A capsule to be updated across a system reset should contain CAPSULE_FLAGS_PERSIST_ACROSS_RESET.
//
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_PERSIST_ACROSS_RESET) == 0) {
return TRUE;
}
+
//
- //Make sure the flags combination is supported by the platform.
+ // Make sure the flags combination is supported by the platform.
//
if ((CapsuleHeader->Flags & (CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE)) == CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) {
return TRUE;
}
+
if ((CapsuleHeader->Flags & (CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_INITIATE_RESET)) == CAPSULE_FLAGS_INITIATE_RESET) {
return TRUE;
}
@@ -786,31 +814,32 @@ CapsuleTestPatternPreCoalesce (
//
// Find first data descriptor
//
- while ((Desc->Length == 0) && (Desc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
- Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) Desc->Union.ContinuationPointer;
+ while ((Desc->Length == 0) && (Desc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL)) {
+ Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)Desc->Union.ContinuationPointer;
}
if (Desc->Union.ContinuationPointer == 0) {
- return ;
+ return;
}
+
//
// First one better be long enough to at least hold the test signature
//
if (Desc->Length < sizeof (UINT32)) {
DEBUG ((DEBUG_INFO, "Capsule test pattern pre-coalesce punted #1\n"));
- return ;
+ return;
}
- TestPtr = (UINT32 *) (UINTN) Desc->Union.DataBlock;
+ TestPtr = (UINT32 *)(UINTN)Desc->Union.DataBlock;
//
// 0x54534554 "TEST"
//
if (*TestPtr != 0x54534554) {
- return ;
+ return;
}
TestCounter = 0;
- TestSize = (UINT32) Desc->Length - 2 * sizeof (UINT32);
+ TestSize = (UINT32)Desc->Length - 2 * sizeof (UINT32);
//
// Skip over the signature and the size fields in the pattern data header
//
@@ -818,29 +847,31 @@ CapsuleTestPatternPreCoalesce (
while (1) {
if ((TestSize & 0x03) != 0) {
DEBUG ((DEBUG_INFO, "Capsule test pattern pre-coalesce punted #2\n"));
- return ;
+ return;
}
while (TestSize > 0) {
if (*TestPtr != TestCounter) {
DEBUG ((DEBUG_INFO, "Capsule test pattern pre-coalesce failed data corruption check\n"));
- return ;
+ return;
}
TestSize -= sizeof (UINT32);
TestCounter++;
TestPtr++;
}
+
Desc++;
- while ((Desc->Length == 0) && (Desc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
- Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *) (UINTN) Desc->Union.ContinuationPointer;
+ while ((Desc->Length == 0) && (Desc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL)) {
+ Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)Desc->Union.ContinuationPointer;
}
- if (Desc->Union.ContinuationPointer == (EFI_PHYSICAL_ADDRESS) (UINTN) NULL) {
- return ;
+ if (Desc->Union.ContinuationPointer == (EFI_PHYSICAL_ADDRESS)(UINTN)NULL) {
+ return;
}
- TestSize = (UINT32) Desc->Length;
- TestPtr = (UINT32 *) (UINTN) Desc->Union.DataBlock;
+
+ TestSize = (UINT32)Desc->Length;
+ TestPtr = (UINT32 *)(UINTN)Desc->Union.DataBlock;
}
}
@@ -857,22 +888,22 @@ CapsuleTestPatternPreCoalesce (
**/
EFI_STATUS
BuildCapsuleDescriptors (
- IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
- IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
- OUT EFI_CAPSULE_BLOCK_DESCRIPTOR **BlockDescriptorList
+ IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
+ IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
+ OUT EFI_CAPSULE_BLOCK_DESCRIPTOR **BlockDescriptorList
)
{
- UINTN Index;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *LastBlock;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *TempBlock;
- EFI_CAPSULE_BLOCK_DESCRIPTOR *HeadBlock;
+ UINTN Index;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *LastBlock;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *TempBlock;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *HeadBlock;
DEBUG ((DEBUG_INFO, "BuildCapsuleDescriptors enter\n"));
- LastBlock = NULL;
- HeadBlock = NULL;
- TempBlock = NULL;
- Index = 0;
+ LastBlock = NULL;
+ HeadBlock = NULL;
+ TempBlock = NULL;
+ Index = 0;
while (BlockListBuffer[Index] != 0) {
//
@@ -900,13 +931,15 @@ BuildCapsuleDescriptors (
} else {
DEBUG ((DEBUG_ERROR, "ERROR: BlockListBuffer[Index](0x%lx) < MAX_ADDRESS\n", BlockListBuffer[Index]));
}
- Index ++;
+
+ Index++;
}
if (HeadBlock != NULL) {
*BlockDescriptorList = HeadBlock;
return EFI_SUCCESS;
}
+
return EFI_NOT_FOUND;
}
@@ -984,11 +1017,11 @@ CapsuleImageBase-->+---------------------------+
EFI_STATUS
EFIAPI
CapsuleDataCoalesce (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
- IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
- IN OUT VOID **MemoryBase,
- IN OUT UINTN *MemorySize
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
+ IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
+ IN OUT VOID **MemoryBase,
+ IN OUT UINTN *MemorySize
)
{
VOID *NewCapsuleBase;
@@ -1038,7 +1071,7 @@ CapsuleDataCoalesce (
DEBUG_CODE (
CapsuleTestPatternPreCoalesce (PeiServices, BlockList);
- );
+ );
//
// Get the size of our descriptors and the capsule size. GetCapsuleInfo()
@@ -1049,6 +1082,7 @@ CapsuleDataCoalesce (
if (EFI_ERROR (Status)) {
return Status;
}
+
DEBUG ((DEBUG_INFO, "CapsuleSize - 0x%x\n", CapsuleSize));
DEBUG ((DEBUG_INFO, "CapsuleNumber - 0x%x\n", CapsuleNumber));
DEBUG ((DEBUG_INFO, "NumDescriptors - 0x%x\n", NumDescriptors));
@@ -1056,7 +1090,7 @@ CapsuleDataCoalesce (
return EFI_NOT_FOUND;
}
- if (CapsuleNumber - 1 >= (MAX_ADDRESS - (sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + sizeof(UINT64))) / sizeof(UINT64)) {
+ if (CapsuleNumber - 1 >= (MAX_ADDRESS - (sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + sizeof (UINT64))) / sizeof (UINT64)) {
DEBUG ((DEBUG_ERROR, "ERROR: CapsuleNumber - 0x%x\n", CapsuleNumber));
return EFI_BUFFER_TOO_SMALL;
}
@@ -1067,42 +1101,44 @@ CapsuleDataCoalesce (
// trashing anything.
//
PrivateData.Signature = EFI_CAPSULE_PEIM_PRIVATE_DATA_SIGNATURE;
- PrivateData.CapsuleAllImageSize = (UINT64) CapsuleSize;
- PrivateData.CapsuleNumber = (UINT64) CapsuleNumber;
+ PrivateData.CapsuleAllImageSize = (UINT64)CapsuleSize;
+ PrivateData.CapsuleNumber = (UINT64)CapsuleNumber;
PrivateData.CapsuleOffset[0] = 0;
//
// NOTE: Only data in sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) is valid, CapsuleOffset field is uninitialized at this moment.
// The code sets partial length here for Descriptor.Length check, but later it will use full length to reserve those PrivateData region.
//
- PrivateDataDesc[0].Union.DataBlock = (EFI_PHYSICAL_ADDRESS) (UINTN) &PrivateData;
- PrivateDataDesc[0].Length = sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA);
- PrivateDataDesc[1].Union.DataBlock = (EFI_PHYSICAL_ADDRESS) (UINTN) BlockList;
- PrivateDataDesc[1].Length = 0;
+ PrivateDataDesc[0].Union.DataBlock = (EFI_PHYSICAL_ADDRESS)(UINTN)&PrivateData;
+ PrivateDataDesc[0].Length = sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA);
+ PrivateDataDesc[1].Union.DataBlock = (EFI_PHYSICAL_ADDRESS)(UINTN)BlockList;
+ PrivateDataDesc[1].Length = 0;
//
// Add PrivateDataDesc[0] in beginning, as it is new descriptor. PrivateDataDesc[1] is NOT needed.
// In addition, one NULL terminator is added in the end. See RelocateBlockDescriptors().
//
- NumDescriptors += 2;
+ NumDescriptors += 2;
//
// Sanity check
//
- if (CapsuleSize >= (MAX_ADDRESS - (sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64) + sizeof(UINT64)))) {
+ if (CapsuleSize >= (MAX_ADDRESS - (sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64) + sizeof (UINT64)))) {
DEBUG ((DEBUG_ERROR, "ERROR: CapsuleSize - 0x%x\n", CapsuleSize));
return EFI_BUFFER_TOO_SMALL;
}
+
//
// Need add sizeof(UINT64) for PrivateData alignment
//
- CapsuleSize += sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64) + sizeof(UINT64);
- BlockList = PrivateDataDesc;
+ CapsuleSize += sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64) + sizeof (UINT64);
+ BlockList = PrivateDataDesc;
//
// Sanity check
//
- if (NumDescriptors >= (MAX_ADDRESS / sizeof(EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
+ if (NumDescriptors >= (MAX_ADDRESS / sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR))) {
DEBUG ((DEBUG_ERROR, "ERROR: NumDescriptors - 0x%x\n", NumDescriptors));
return EFI_BUFFER_TOO_SMALL;
}
- DescriptorsSize = NumDescriptors * sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
+
+ DescriptorsSize = NumDescriptors * sizeof (EFI_CAPSULE_BLOCK_DESCRIPTOR);
//
// Sanity check
//
@@ -1115,14 +1151,14 @@ CapsuleDataCoalesce (
// Don't go below some min address. If the base is below it,
// then move it up and adjust the size accordingly.
//
- DEBUG ((DEBUG_INFO, "Capsule Memory range from 0x%8X to 0x%8X\n", (UINTN) *MemoryBase, (UINTN)*MemoryBase + *MemorySize));
- if ((UINTN)*MemoryBase < (UINTN) MIN_COALESCE_ADDR) {
- if (((UINTN)*MemoryBase + *MemorySize) < (UINTN) MIN_COALESCE_ADDR) {
+ DEBUG ((DEBUG_INFO, "Capsule Memory range from 0x%8X to 0x%8X\n", (UINTN)*MemoryBase, (UINTN)*MemoryBase + *MemorySize));
+ if ((UINTN)*MemoryBase < (UINTN)MIN_COALESCE_ADDR) {
+ if (((UINTN)*MemoryBase + *MemorySize) < (UINTN)MIN_COALESCE_ADDR) {
DEBUG ((DEBUG_ERROR, "ERROR: *MemoryBase + *MemorySize - 0x%x\n", (UINTN)*MemoryBase + *MemorySize));
return EFI_BUFFER_TOO_SMALL;
} else {
- *MemorySize = *MemorySize - ((UINTN) MIN_COALESCE_ADDR - (UINTN) *MemoryBase);
- *MemoryBase = (VOID *) (UINTN) MIN_COALESCE_ADDR;
+ *MemorySize = *MemorySize - ((UINTN)MIN_COALESCE_ADDR - (UINTN)*MemoryBase);
+ *MemoryBase = (VOID *)(UINTN)MIN_COALESCE_ADDR;
}
}
@@ -1133,7 +1169,7 @@ CapsuleDataCoalesce (
FreeMemBase = *MemoryBase;
FreeMemSize = *MemorySize;
- DEBUG ((DEBUG_INFO, "Capsule Free Memory from 0x%8X to 0x%8X\n", (UINTN) FreeMemBase, (UINTN) FreeMemBase + FreeMemSize));
+ DEBUG ((DEBUG_INFO, "Capsule Free Memory from 0x%8X to 0x%8X\n", (UINTN)FreeMemBase, (UINTN)FreeMemBase + FreeMemSize));
//
// Relocate all the block descriptors to low memory to make further
@@ -1150,14 +1186,14 @@ CapsuleDataCoalesce (
//
// Take the top of memory for the capsule. UINT64 align up.
//
- DestPtr = FreeMemBase + FreeMemSize - CapsuleSize;
- DestPtr = (UINT8 *) (((UINTN)DestPtr + sizeof (UINT64) - 1) & ~(sizeof (UINT64) - 1));
- FreeMemBase = (UINT8 *) BlockList + DescriptorsSize;
- FreeMemSize = (UINTN) DestPtr - (UINTN) FreeMemBase;
- NewCapsuleBase = (VOID *) DestPtr;
- CapsuleImageBase = (UINT8 *)NewCapsuleBase + sizeof(EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64);
+ DestPtr = FreeMemBase + FreeMemSize - CapsuleSize;
+ DestPtr = (UINT8 *)(((UINTN)DestPtr + sizeof (UINT64) - 1) & ~(sizeof (UINT64) - 1));
+ FreeMemBase = (UINT8 *)BlockList + DescriptorsSize;
+ FreeMemSize = (UINTN)DestPtr - (UINTN)FreeMemBase;
+ NewCapsuleBase = (VOID *)DestPtr;
+ CapsuleImageBase = (UINT8 *)NewCapsuleBase + sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64);
- PrivateDataPtr = (EFI_CAPSULE_PEIM_PRIVATE_DATA *) NewCapsuleBase;
+ PrivateDataPtr = (EFI_CAPSULE_PEIM_PRIVATE_DATA *)NewCapsuleBase;
//
// Move all the blocks to the top (high) of memory.
@@ -1165,17 +1201,18 @@ CapsuleDataCoalesce (
// were coalesced when they were relocated, so we can just ++ the pointer.
//
CurrentBlockDesc = BlockList;
- while ((CurrentBlockDesc->Length != 0) || (CurrentBlockDesc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS) (UINTN) NULL)) {
+ while ((CurrentBlockDesc->Length != 0) || (CurrentBlockDesc->Union.ContinuationPointer != (EFI_PHYSICAL_ADDRESS)(UINTN)NULL)) {
if (CapsuleTimes == 0) {
//
// The first entry is the block descriptor for EFI_CAPSULE_PEIM_PRIVATE_DATA.
// CapsuleOffset field is uninitialized at this time. No need copy it, but need to reserve for future use.
//
ASSERT (CurrentBlockDesc->Union.DataBlock == (UINT64)(UINTN)&PrivateData);
- DestLength = sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64);
+ DestLength = sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64);
} else {
DestLength = (UINTN)CurrentBlockDesc->Length;
}
+
//
// See if any of the remaining capsule blocks are in the way
//
@@ -1185,47 +1222,55 @@ CapsuleDataCoalesce (
// Is this block in the way of where we want to copy the current descriptor to?
//
if (IsOverlapped (
- (UINT8 *) DestPtr,
- (UINTN) DestLength,
- (UINT8 *) (UINTN) TempBlockDesc->Union.DataBlock,
- (UINTN) TempBlockDesc->Length
- )) {
+ (UINT8 *)DestPtr,
+ (UINTN)DestLength,
+ (UINT8 *)(UINTN)TempBlockDesc->Union.DataBlock,
+ (UINTN)TempBlockDesc->Length
+ ))
+ {
//
// Relocate the block
//
- RelocPtr = FindFreeMem (BlockList, FreeMemBase, FreeMemSize, (UINTN) TempBlockDesc->Length);
+ RelocPtr = FindFreeMem (BlockList, FreeMemBase, FreeMemSize, (UINTN)TempBlockDesc->Length);
if (RelocPtr == NULL) {
return EFI_BUFFER_TOO_SMALL;
}
- CopyMem ((VOID *) RelocPtr, (VOID *) (UINTN) TempBlockDesc->Union.DataBlock, (UINTN) TempBlockDesc->Length);
- DEBUG ((DEBUG_INFO, "Capsule reloc data block from 0x%8X to 0x%8X with size 0x%8X\n",
- (UINTN) TempBlockDesc->Union.DataBlock, (UINTN) RelocPtr, (UINTN) TempBlockDesc->Length));
+ CopyMem ((VOID *)RelocPtr, (VOID *)(UINTN)TempBlockDesc->Union.DataBlock, (UINTN)TempBlockDesc->Length);
+ DEBUG ((
+ DEBUG_INFO,
+ "Capsule reloc data block from 0x%8X to 0x%8X with size 0x%8X\n",
+ (UINTN)TempBlockDesc->Union.DataBlock,
+ (UINTN)RelocPtr,
+ (UINTN)TempBlockDesc->Length
+ ));
- TempBlockDesc->Union.DataBlock = (EFI_PHYSICAL_ADDRESS) (UINTN) RelocPtr;
+ TempBlockDesc->Union.DataBlock = (EFI_PHYSICAL_ADDRESS)(UINTN)RelocPtr;
}
+
//
// Next descriptor
//
TempBlockDesc++;
}
+
//
// Ok, we made it through. Copy the block.
// we just support greping one capsule from the lists of block descs list.
//
- CapsuleTimes ++;
+ CapsuleTimes++;
//
- //Skip the first block descriptor that filled with EFI_CAPSULE_PEIM_PRIVATE_DATA
+ // Skip the first block descriptor that filled with EFI_CAPSULE_PEIM_PRIVATE_DATA
//
if (CapsuleTimes > 1) {
//
- //For every capsule entry point, check its header to determine whether to relocate it.
- //If it is invalid, skip it and move on to the next capsule. If it is valid, relocate it.
+ // For every capsule entry point, check its header to determine whether to relocate it.
+ // If it is invalid, skip it and move on to the next capsule. If it is valid, relocate it.
//
if (CapsuleBeginFlag) {
- CapsuleBeginFlag = FALSE;
- CapsuleHeader = (EFI_CAPSULE_HEADER*)(UINTN)CurrentBlockDesc->Union.DataBlock;
- SizeLeft = CapsuleHeader->CapsuleImageSize;
+ CapsuleBeginFlag = FALSE;
+ CapsuleHeader = (EFI_CAPSULE_HEADER *)(UINTN)CurrentBlockDesc->Union.DataBlock;
+ SizeLeft = CapsuleHeader->CapsuleImageSize;
//
// No more check here is needed, because IsCapsuleCorrupted() already in ValidateCapsuleIntegrity()
@@ -1249,15 +1294,21 @@ CapsuleDataCoalesce (
//
ASSERT (CurrentBlockDesc->Length <= SizeLeft);
- CopyMem ((VOID *) DestPtr, (VOID *) (UINTN) (CurrentBlockDesc->Union.DataBlock), (UINTN)CurrentBlockDesc->Length);
- DEBUG ((DEBUG_INFO, "Capsule coalesce block no.0x%lX from 0x%lX to 0x%lX with size 0x%lX\n",(UINT64)CapsuleTimes,
- CurrentBlockDesc->Union.DataBlock, (UINT64)(UINTN)DestPtr, CurrentBlockDesc->Length));
- DestPtr += CurrentBlockDesc->Length;
+ CopyMem ((VOID *)DestPtr, (VOID *)(UINTN)(CurrentBlockDesc->Union.DataBlock), (UINTN)CurrentBlockDesc->Length);
+ DEBUG ((
+ DEBUG_INFO,
+ "Capsule coalesce block no.0x%lX from 0x%lX to 0x%lX with size 0x%lX\n",
+ (UINT64)CapsuleTimes,
+ CurrentBlockDesc->Union.DataBlock,
+ (UINT64)(UINTN)DestPtr,
+ CurrentBlockDesc->Length
+ ));
+ DestPtr += CurrentBlockDesc->Length;
SizeLeft -= CurrentBlockDesc->Length;
if (SizeLeft == 0) {
//
- //Here is the end of the current capsule image.
+ // Here is the end of the current capsule image.
//
CapsuleBeginFlag = TRUE;
}
@@ -1268,20 +1319,22 @@ CapsuleDataCoalesce (
//
ASSERT (CurrentBlockDesc->Length == sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA));
ASSERT ((UINTN)DestPtr == (UINTN)NewCapsuleBase);
- CopyMem ((VOID *) DestPtr, (VOID *) (UINTN) CurrentBlockDesc->Union.DataBlock, (UINTN) CurrentBlockDesc->Length);
- DestPtr += sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64);
+ CopyMem ((VOID *)DestPtr, (VOID *)(UINTN)CurrentBlockDesc->Union.DataBlock, (UINTN)CurrentBlockDesc->Length);
+ DestPtr += sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64);
}
+
//
- //Walk through the block descriptor list.
+ // Walk through the block descriptor list.
//
CurrentBlockDesc++;
}
+
//
// We return the base of memory we want reserved, and the size.
// The memory peim should handle it appropriately from there.
//
- *MemorySize = (UINTN) CapsuleSize;
- *MemoryBase = (VOID *) NewCapsuleBase;
+ *MemorySize = (UINTN)CapsuleSize;
+ *MemoryBase = (VOID *)NewCapsuleBase;
ASSERT (PrivateDataPtr->Signature == EFI_CAPSULE_PEIM_PRIVATE_DATA_SIGNATURE);
ASSERT (PrivateDataPtr->CapsuleAllImageSize == CapsuleImageSize);
diff --git a/MdeModulePkg/Universal/CapsulePei/Common/CommonHeader.h b/MdeModulePkg/Universal/CapsulePei/Common/CommonHeader.h
index 695520a..1ad2bcb 100644
--- a/MdeModulePkg/Universal/CapsulePei/Common/CommonHeader.h
+++ b/MdeModulePkg/Universal/CapsulePei/Common/CommonHeader.h
@@ -14,22 +14,22 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// 8 extra pages for PF handler.
//
-#define EXTRA_PAGE_TABLE_PAGES 8
+#define EXTRA_PAGE_TABLE_PAGES 8
-#define PAGING_1G_ADDRESS_MASK_64 0x000FFFFFC0000000ull
+#define PAGING_1G_ADDRESS_MASK_64 0x000FFFFFC0000000ull
//
// This capsule PEIM puts its private data at the start of the
// coalesced capsule. Here's the structure definition.
//
-#define EFI_CAPSULE_PEIM_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('C', 'a', 'p', 'P')
+#define EFI_CAPSULE_PEIM_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('C', 'a', 'p', 'P')
#pragma pack(1)
typedef struct {
- UINT64 Signature;
- UINT64 CapsuleAllImageSize;
- UINT64 CapsuleNumber;
- UINT64 CapsuleOffset[1];
+ UINT64 Signature;
+ UINT64 CapsuleAllImageSize;
+ UINT64 CapsuleNumber;
+ UINT64 CapsuleOffset[1];
} EFI_CAPSULE_PEIM_PRIVATE_DATA;
#pragma pack()
@@ -37,34 +37,34 @@ typedef struct {
///
/// The physical start address of the resource region.
///
- EFI_PHYSICAL_ADDRESS PhysicalStart;
+ EFI_PHYSICAL_ADDRESS PhysicalStart;
///
/// The number of bytes of the resource region.
///
- UINT64 ResourceLength;
+ UINT64 ResourceLength;
} MEMORY_RESOURCE_DESCRIPTOR;
-#define CAPSULE_TEST_SIGNATURE SIGNATURE_32('T', 'E', 'S', 'T')
+#define CAPSULE_TEST_SIGNATURE SIGNATURE_32('T', 'E', 'S', 'T')
#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
-#pragma pack(1)
+ #pragma pack(1)
typedef struct {
- EFI_PHYSICAL_ADDRESS EntryPoint;
- EFI_PHYSICAL_ADDRESS StackBufferBase;
- UINT64 StackBufferLength;
- EFI_PHYSICAL_ADDRESS JumpBuffer;
- EFI_PHYSICAL_ADDRESS BlockListAddr;
- EFI_PHYSICAL_ADDRESS MemoryResource;
- EFI_PHYSICAL_ADDRESS MemoryBase64Ptr;
- EFI_PHYSICAL_ADDRESS MemorySize64Ptr;
- BOOLEAN Page1GSupport;
- UINT64 AddressEncMask;
+ EFI_PHYSICAL_ADDRESS EntryPoint;
+ EFI_PHYSICAL_ADDRESS StackBufferBase;
+ UINT64 StackBufferLength;
+ EFI_PHYSICAL_ADDRESS JumpBuffer;
+ EFI_PHYSICAL_ADDRESS BlockListAddr;
+ EFI_PHYSICAL_ADDRESS MemoryResource;
+ EFI_PHYSICAL_ADDRESS MemoryBase64Ptr;
+ EFI_PHYSICAL_ADDRESS MemorySize64Ptr;
+ BOOLEAN Page1GSupport;
+ UINT64 AddressEncMask;
} SWITCH_32_TO_64_CONTEXT;
typedef struct {
- UINT16 ReturnCs;
- EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
- UINT64 ReturnStatus;
+ UINT16 ReturnCs;
+ EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
+ UINT64 ReturnStatus;
//
// NOTICE:
// Be careful about the Base field of IA32_DESCRIPTOR
@@ -72,9 +72,9 @@ typedef struct {
// To extend new field for this structure, add it to
// right before this Gdtr field.
//
- IA32_DESCRIPTOR Gdtr;
+ IA32_DESCRIPTOR Gdtr;
} SWITCH_64_TO_32_CONTEXT;
-#pragma pack()
+ #pragma pack()
#endif
/**
@@ -105,11 +105,11 @@ typedef struct {
EFI_STATUS
EFIAPI
CapsuleDataCoalesce (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
- IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
- IN OUT VOID **MemoryBase,
- IN OUT UINTN *MemorySize
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PHYSICAL_ADDRESS *BlockListBuffer,
+ IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
+ IN OUT VOID **MemoryBase,
+ IN OUT UINTN *MemorySize
);
#endif
diff --git a/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c b/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
index 51afab7..ef60d4e 100644
--- a/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
+++ b/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c
@@ -10,33 +10,50 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Capsule.h"
-#define DEFAULT_SG_LIST_HEADS (20)
+#define DEFAULT_SG_LIST_HEADS (20)
#ifdef MDE_CPU_IA32
//
// Global Descriptor Table (GDT)
//
-GLOBAL_REMOVE_IF_UNREFERENCED IA32_SEGMENT_DESCRIPTOR mGdtEntries[] = {
-/* selector { Global Segment Descriptor } */
-/* 0x00 */ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, //null descriptor
-/* 0x08 */ {{0xffff, 0, 0, 0x3, 1, 0, 1, 0xf, 0, 0, 1, 1, 0}}, //linear data segment descriptor
-/* 0x10 */ {{0xffff, 0, 0, 0xf, 1, 0, 1, 0xf, 0, 0, 1, 1, 0}}, //linear code segment descriptor
-/* 0x18 */ {{0xffff, 0, 0, 0x3, 1, 0, 1, 0xf, 0, 0, 1, 1, 0}}, //system data segment descriptor
-/* 0x20 */ {{0xffff, 0, 0, 0xb, 1, 0, 1, 0xf, 0, 0, 1, 1, 0}}, //system code segment descriptor
-/* 0x28 */ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, //spare segment descriptor
-/* 0x30 */ {{0xffff, 0, 0, 0x3, 1, 0, 1, 0xf, 0, 0, 1, 1, 0}}, //system data segment descriptor
-/* 0x38 */ {{0xffff, 0, 0, 0xb, 1, 0, 1, 0xf, 0, 1, 0, 1, 0}}, //system code segment descriptor
-/* 0x40 */ {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, //spare segment descriptor
+GLOBAL_REMOVE_IF_UNREFERENCED IA32_SEGMENT_DESCRIPTOR mGdtEntries[] = {
+ /* selector { Global Segment Descriptor } */
+ /* 0x00 */ {
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ }, // null descriptor
+ /* 0x08 */ {
+ { 0xffff, 0, 0, 0x3, 1, 0, 1, 0xf, 0, 0, 1, 1, 0 }
+ }, // linear data segment descriptor
+ /* 0x10 */ {
+ { 0xffff, 0, 0, 0xf, 1, 0, 1, 0xf, 0, 0, 1, 1, 0 }
+ }, // linear code segment descriptor
+ /* 0x18 */ {
+ { 0xffff, 0, 0, 0x3, 1, 0, 1, 0xf, 0, 0, 1, 1, 0 }
+ }, // system data segment descriptor
+ /* 0x20 */ {
+ { 0xffff, 0, 0, 0xb, 1, 0, 1, 0xf, 0, 0, 1, 1, 0 }
+ }, // system code segment descriptor
+ /* 0x28 */ {
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ }, // spare segment descriptor
+ /* 0x30 */ {
+ { 0xffff, 0, 0, 0x3, 1, 0, 1, 0xf, 0, 0, 1, 1, 0 }
+ }, // system data segment descriptor
+ /* 0x38 */ {
+ { 0xffff, 0, 0, 0xb, 1, 0, 1, 0xf, 0, 1, 0, 1, 0 }
+ }, // system code segment descriptor
+ /* 0x40 */ {
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ }, // spare segment descriptor
};
//
// IA32 Gdt register
//
-GLOBAL_REMOVE_IF_UNREFERENCED CONST IA32_DESCRIPTOR mGdt = {
+GLOBAL_REMOVE_IF_UNREFERENCED CONST IA32_DESCRIPTOR mGdt = {
sizeof (mGdtEntries) - 1,
- (UINTN) mGdtEntries
- };
-
+ (UINTN)mGdtEntries
+};
/**
The function will check if 1G page is supported.
@@ -50,12 +67,12 @@ IsPage1GSupport (
VOID
)
{
- UINT32 RegEax;
- UINT32 RegEdx;
- BOOLEAN Page1GSupport;
+ UINT32 RegEax;
+ UINT32 RegEdx;
+ BOOLEAN Page1GSupport;
Page1GSupport = FALSE;
- if (PcdGetBool(PcdUse1GPageTable)) {
+ if (PcdGetBool (PcdUse1GPageTable)) {
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000001) {
AsmCpuid (0x80000001, NULL, NULL, NULL, &RegEdx);
@@ -78,14 +95,14 @@ IsPage1GSupport (
**/
UINTN
CalculatePageTableSize (
- IN BOOLEAN Page1GSupport
+ IN BOOLEAN Page1GSupport
)
{
- UINTN ExtraPageTablePages;
- UINTN TotalPagesNum;
- UINT8 PhysicalAddressBits;
- UINT32 NumberOfPml4EntriesNeeded;
- UINT32 NumberOfPdpEntriesNeeded;
+ UINTN ExtraPageTablePages;
+ UINTN TotalPagesNum;
+ UINT8 PhysicalAddressBits;
+ UINT32 NumberOfPml4EntriesNeeded;
+ UINT32 NumberOfPdpEntriesNeeded;
//
// Create 4G page table by default,
@@ -99,10 +116,10 @@ CalculatePageTableSize (
//
if (PhysicalAddressBits <= 39 ) {
NumberOfPml4EntriesNeeded = 1;
- NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
+ NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
} else {
NumberOfPml4EntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 39));
- NumberOfPdpEntriesNeeded = 512;
+ NumberOfPdpEntriesNeeded = 512;
}
if (!Page1GSupport) {
@@ -110,6 +127,7 @@ CalculatePageTableSize (
} else {
TotalPagesNum = NumberOfPml4EntriesNeeded + 1;
}
+
TotalPagesNum += ExtraPageTablePages;
return EFI_PAGES_TO_SIZE (TotalPagesNum);
@@ -125,24 +143,24 @@ CalculatePageTableSize (
**/
VOID
Create4GPageTables (
- IN EFI_PHYSICAL_ADDRESS PageTablesAddress,
- IN BOOLEAN Page1GSupport
+ IN EFI_PHYSICAL_ADDRESS PageTablesAddress,
+ IN BOOLEAN Page1GSupport
)
{
- UINT8 PhysicalAddressBits;
- EFI_PHYSICAL_ADDRESS PageAddress;
- UINTN IndexOfPml4Entries;
- UINTN IndexOfPdpEntries;
- UINTN IndexOfPageDirectoryEntries;
- UINT32 NumberOfPml4EntriesNeeded;
- UINT32 NumberOfPdpEntriesNeeded;
- PAGE_MAP_AND_DIRECTORY_POINTER *PageMapLevel4Entry;
- PAGE_MAP_AND_DIRECTORY_POINTER *PageMap;
- PAGE_MAP_AND_DIRECTORY_POINTER *PageDirectoryPointerEntry;
- PAGE_TABLE_ENTRY *PageDirectoryEntry;
- UINTN BigPageAddress;
- PAGE_TABLE_1G_ENTRY *PageDirectory1GEntry;
- UINT64 AddressEncMask;
+ UINT8 PhysicalAddressBits;
+ EFI_PHYSICAL_ADDRESS PageAddress;
+ UINTN IndexOfPml4Entries;
+ UINTN IndexOfPdpEntries;
+ UINTN IndexOfPageDirectoryEntries;
+ UINT32 NumberOfPml4EntriesNeeded;
+ UINT32 NumberOfPdpEntriesNeeded;
+ PAGE_MAP_AND_DIRECTORY_POINTER *PageMapLevel4Entry;
+ PAGE_MAP_AND_DIRECTORY_POINTER *PageMap;
+ PAGE_MAP_AND_DIRECTORY_POINTER *PageDirectoryPointerEntry;
+ PAGE_TABLE_ENTRY *PageDirectoryEntry;
+ UINTN BigPageAddress;
+ PAGE_TABLE_1G_ENTRY *PageDirectory1GEntry;
+ UINT64 AddressEncMask;
//
// Make sure AddressEncMask is contained to smallest supported address field.
@@ -160,21 +178,21 @@ Create4GPageTables (
//
if (PhysicalAddressBits <= 39 ) {
NumberOfPml4EntriesNeeded = 1;
- NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
+ NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
} else {
NumberOfPml4EntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 39));
- NumberOfPdpEntriesNeeded = 512;
+ NumberOfPdpEntriesNeeded = 512;
}
//
// Pre-allocate big pages to avoid later allocations.
//
- BigPageAddress = (UINTN) PageTablesAddress;
+ BigPageAddress = (UINTN)PageTablesAddress;
//
// By architecture only one PageMapLevel4 exists - so lets allocate storage for it.
//
- PageMap = (VOID *) BigPageAddress;
+ PageMap = (VOID *)BigPageAddress;
BigPageAddress += SIZE_4KB;
PageMapLevel4Entry = PageMap;
@@ -184,27 +202,27 @@ Create4GPageTables (
// Each PML4 entry points to a page of Page Directory Pointer entires.
// So lets allocate space for them and fill them in in the IndexOfPdpEntries loop.
//
- PageDirectoryPointerEntry = (VOID *) BigPageAddress;
- BigPageAddress += SIZE_4KB;
+ PageDirectoryPointerEntry = (VOID *)BigPageAddress;
+ BigPageAddress += SIZE_4KB;
//
// Make a PML4 Entry
//
- PageMapLevel4Entry->Uint64 = (UINT64)(UINTN)PageDirectoryPointerEntry | AddressEncMask;
+ PageMapLevel4Entry->Uint64 = (UINT64)(UINTN)PageDirectoryPointerEntry | AddressEncMask;
PageMapLevel4Entry->Bits.ReadWrite = 1;
- PageMapLevel4Entry->Bits.Present = 1;
+ PageMapLevel4Entry->Bits.Present = 1;
if (Page1GSupport) {
- PageDirectory1GEntry = (VOID *) PageDirectoryPointerEntry;
+ PageDirectory1GEntry = (VOID *)PageDirectoryPointerEntry;
for (IndexOfPageDirectoryEntries = 0; IndexOfPageDirectoryEntries < 512; IndexOfPageDirectoryEntries++, PageDirectory1GEntry++, PageAddress += SIZE_1GB) {
//
// Fill in the Page Directory entries
//
- PageDirectory1GEntry->Uint64 = (UINT64)PageAddress | AddressEncMask;
+ PageDirectory1GEntry->Uint64 = (UINT64)PageAddress | AddressEncMask;
PageDirectory1GEntry->Bits.ReadWrite = 1;
- PageDirectory1GEntry->Bits.Present = 1;
- PageDirectory1GEntry->Bits.MustBe1 = 1;
+ PageDirectory1GEntry->Bits.Present = 1;
+ PageDirectory1GEntry->Bits.MustBe1 = 1;
}
} else {
for (IndexOfPdpEntries = 0; IndexOfPdpEntries < NumberOfPdpEntriesNeeded; IndexOfPdpEntries++, PageDirectoryPointerEntry++) {
@@ -212,31 +230,31 @@ Create4GPageTables (
// Each Directory Pointer entries points to a page of Page Directory entires.
// So allocate space for them and fill them in in the IndexOfPageDirectoryEntries loop.
//
- PageDirectoryEntry = (VOID *) BigPageAddress;
- BigPageAddress += SIZE_4KB;
+ PageDirectoryEntry = (VOID *)BigPageAddress;
+ BigPageAddress += SIZE_4KB;
//
// Fill in a Page Directory Pointer Entries
//
- PageDirectoryPointerEntry->Uint64 = (UINT64)(UINTN)PageDirectoryEntry | AddressEncMask;
+ PageDirectoryPointerEntry->Uint64 = (UINT64)(UINTN)PageDirectoryEntry | AddressEncMask;
PageDirectoryPointerEntry->Bits.ReadWrite = 1;
- PageDirectoryPointerEntry->Bits.Present = 1;
+ PageDirectoryPointerEntry->Bits.Present = 1;
for (IndexOfPageDirectoryEntries = 0; IndexOfPageDirectoryEntries < 512; IndexOfPageDirectoryEntries++, PageDirectoryEntry++, PageAddress += SIZE_2MB) {
//
// Fill in the Page Directory entries
//
- PageDirectoryEntry->Uint64 = (UINT64)PageAddress | AddressEncMask;
+ PageDirectoryEntry->Uint64 = (UINT64)PageAddress | AddressEncMask;
PageDirectoryEntry->Bits.ReadWrite = 1;
- PageDirectoryEntry->Bits.Present = 1;
- PageDirectoryEntry->Bits.MustBe1 = 1;
+ PageDirectoryEntry->Bits.Present = 1;
+ PageDirectoryEntry->Bits.MustBe1 = 1;
}
}
- for (; IndexOfPdpEntries < 512; IndexOfPdpEntries++, PageDirectoryPointerEntry++) {
+ for ( ; IndexOfPdpEntries < 512; IndexOfPdpEntries++, PageDirectoryPointerEntry++) {
ZeroMem (
PageDirectoryPointerEntry,
- sizeof(PAGE_MAP_AND_DIRECTORY_POINTER)
+ sizeof (PAGE_MAP_AND_DIRECTORY_POINTER)
);
}
}
@@ -245,7 +263,7 @@ Create4GPageTables (
//
// For the PML4 entries we are not using fill in a null entry.
//
- for (; IndexOfPml4Entries < 512; IndexOfPml4Entries++, PageMapLevel4Entry++) {
+ for ( ; IndexOfPml4Entries < 512; IndexOfPml4Entries++, PageMapLevel4Entry++) {
ZeroMem (
PageMapLevel4Entry,
sizeof (PAGE_MAP_AND_DIRECTORY_POINTER)
@@ -294,21 +312,20 @@ ReturnFunction (
**/
EFI_STATUS
Thunk32To64 (
- EFI_PHYSICAL_ADDRESS PageTableAddress,
- SWITCH_32_TO_64_CONTEXT *Context,
- SWITCH_64_TO_32_CONTEXT *ReturnContext
+ EFI_PHYSICAL_ADDRESS PageTableAddress,
+ SWITCH_32_TO_64_CONTEXT *Context,
+ SWITCH_64_TO_32_CONTEXT *ReturnContext
)
{
- UINTN SetJumpFlag;
- EFI_STATUS Status;
+ UINTN SetJumpFlag;
+ EFI_STATUS Status;
//
// Save return address, LongJump will return here then
//
- SetJumpFlag = SetJump ((BASE_LIBRARY_JUMP_BUFFER *) (UINTN) Context->JumpBuffer);
+ SetJumpFlag = SetJump ((BASE_LIBRARY_JUMP_BUFFER *)(UINTN)Context->JumpBuffer);
if (SetJumpFlag == 0) {
-
//
// Build 4G Page Tables.
//
@@ -322,7 +339,7 @@ Thunk32To64 (
//
// Write CR3
//
- AsmWriteCr3 ((UINTN) PageTableAddress);
+ AsmWriteCr3 ((UINTN)PageTableAddress);
DEBUG ((
DEBUG_INFO,
@@ -340,10 +357,10 @@ Thunk32To64 (
// Transfer to long mode
//
AsmEnablePaging64 (
- 0x38,
- (UINT64) Context->EntryPoint,
- (UINT64)(UINTN) Context,
- (UINT64)(UINTN) ReturnContext,
+ 0x38,
+ (UINT64)Context->EntryPoint,
+ (UINT64)(UINTN)Context,
+ (UINT64)(UINTN)ReturnContext,
Context->StackBufferBase + Context->StackBufferLength
);
}
@@ -352,8 +369,8 @@ Thunk32To64 (
// Convert to 32-bit Status and return
//
Status = EFI_SUCCESS;
- if ((UINTN) ReturnContext->ReturnStatus != 0) {
- Status = ENCODE_ERROR ((UINTN) ReturnContext->ReturnStatus);
+ if ((UINTN)ReturnContext->ReturnStatus != 0) {
+ Status = ENCODE_ERROR ((UINTN)ReturnContext->ReturnStatus);
}
return Status;
@@ -375,31 +392,31 @@ Thunk32To64 (
**/
EFI_STATUS
ModeSwitch (
- IN EFI_CAPSULE_LONG_MODE_BUFFER *LongModeBuffer,
- IN COALESCE_ENTRY CoalesceEntry,
- IN EFI_PHYSICAL_ADDRESS BlockListAddr,
- IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
- IN OUT VOID **MemoryBase,
- IN OUT UINTN *MemorySize
+ IN EFI_CAPSULE_LONG_MODE_BUFFER *LongModeBuffer,
+ IN COALESCE_ENTRY CoalesceEntry,
+ IN EFI_PHYSICAL_ADDRESS BlockListAddr,
+ IN MEMORY_RESOURCE_DESCRIPTOR *MemoryResource,
+ IN OUT VOID **MemoryBase,
+ IN OUT UINTN *MemorySize
)
{
- EFI_STATUS Status;
- EFI_PHYSICAL_ADDRESS MemoryBase64;
- UINT64 MemorySize64;
- EFI_PHYSICAL_ADDRESS MemoryEnd64;
- SWITCH_32_TO_64_CONTEXT Context;
- SWITCH_64_TO_32_CONTEXT ReturnContext;
- BASE_LIBRARY_JUMP_BUFFER JumpBuffer;
- EFI_PHYSICAL_ADDRESS ReservedRangeBase;
- EFI_PHYSICAL_ADDRESS ReservedRangeEnd;
- BOOLEAN Page1GSupport;
+ EFI_STATUS Status;
+ EFI_PHYSICAL_ADDRESS MemoryBase64;
+ UINT64 MemorySize64;
+ EFI_PHYSICAL_ADDRESS MemoryEnd64;
+ SWITCH_32_TO_64_CONTEXT Context;
+ SWITCH_64_TO_32_CONTEXT ReturnContext;
+ BASE_LIBRARY_JUMP_BUFFER JumpBuffer;
+ EFI_PHYSICAL_ADDRESS ReservedRangeBase;
+ EFI_PHYSICAL_ADDRESS ReservedRangeEnd;
+ BOOLEAN Page1GSupport;
ZeroMem (&Context, sizeof (SWITCH_32_TO_64_CONTEXT));
ZeroMem (&ReturnContext, sizeof (SWITCH_64_TO_32_CONTEXT));
- MemoryBase64 = (UINT64) (UINTN) *MemoryBase;
- MemorySize64 = (UINT64) (UINTN) *MemorySize;
- MemoryEnd64 = MemoryBase64 + MemorySize64;
+ MemoryBase64 = (UINT64)(UINTN)*MemoryBase;
+ MemorySize64 = (UINT64)(UINTN)*MemorySize;
+ MemoryEnd64 = MemoryBase64 + MemorySize64;
Page1GSupport = IsPage1GSupport ();
@@ -426,8 +443,9 @@ ModeSwitch (
return EFI_OUT_OF_RESOURCES;
}
} else if (ReservedRangeBase < MemoryEnd64) {
- if (ReservedRangeEnd < MemoryEnd64 &&
- ReservedRangeBase - MemoryBase64 < MemoryEnd64 - ReservedRangeEnd) {
+ if ((ReservedRangeEnd < MemoryEnd64) &&
+ (ReservedRangeBase - MemoryBase64 < MemoryEnd64 - ReservedRangeEnd))
+ {
MemoryBase64 = ReservedRangeEnd;
} else {
MemorySize64 = (UINT64)(UINTN)(ReservedRangeBase - MemoryBase64);
@@ -437,26 +455,26 @@ ModeSwitch (
//
// Initialize context jumping to 64-bit enviroment
//
- Context.JumpBuffer = (EFI_PHYSICAL_ADDRESS)(UINTN)&JumpBuffer;
- Context.StackBufferBase = LongModeBuffer->StackBaseAddress;
- Context.StackBufferLength = LongModeBuffer->StackSize;
- Context.EntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)CoalesceEntry;
- Context.BlockListAddr = BlockListAddr;
- Context.MemoryResource = (EFI_PHYSICAL_ADDRESS)(UINTN)MemoryResource;
- Context.MemoryBase64Ptr = (EFI_PHYSICAL_ADDRESS)(UINTN)&MemoryBase64;
- Context.MemorySize64Ptr = (EFI_PHYSICAL_ADDRESS)(UINTN)&MemorySize64;
- Context.Page1GSupport = Page1GSupport;
- Context.AddressEncMask = PcdGet64 (PcdPteMemoryEncryptionAddressOrMask) & PAGING_1G_ADDRESS_MASK_64;
+ Context.JumpBuffer = (EFI_PHYSICAL_ADDRESS)(UINTN)&JumpBuffer;
+ Context.StackBufferBase = LongModeBuffer->StackBaseAddress;
+ Context.StackBufferLength = LongModeBuffer->StackSize;
+ Context.EntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)CoalesceEntry;
+ Context.BlockListAddr = BlockListAddr;
+ Context.MemoryResource = (EFI_PHYSICAL_ADDRESS)(UINTN)MemoryResource;
+ Context.MemoryBase64Ptr = (EFI_PHYSICAL_ADDRESS)(UINTN)&MemoryBase64;
+ Context.MemorySize64Ptr = (EFI_PHYSICAL_ADDRESS)(UINTN)&MemorySize64;
+ Context.Page1GSupport = Page1GSupport;
+ Context.AddressEncMask = PcdGet64 (PcdPteMemoryEncryptionAddressOrMask) & PAGING_1G_ADDRESS_MASK_64;
//
// Prepare data for return back
//
- ReturnContext.ReturnCs = 0x10;
- ReturnContext.ReturnEntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)ReturnFunction;
+ ReturnContext.ReturnCs = 0x10;
+ ReturnContext.ReturnEntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)ReturnFunction;
//
// Will save the return status of processing capsule
//
- ReturnContext.ReturnStatus = 0;
+ ReturnContext.ReturnStatus = 0;
//
// Save original GDT
@@ -466,12 +484,11 @@ ModeSwitch (
Status = Thunk32To64 (LongModeBuffer->PageTableAddress, &Context, &ReturnContext);
if (!EFI_ERROR (Status)) {
- *MemoryBase = (VOID *) (UINTN) MemoryBase64;
- *MemorySize = (UINTN) MemorySize64;
+ *MemoryBase = (VOID *)(UINTN)MemoryBase64;
+ *MemorySize = (UINTN)MemorySize64;
}
return Status;
-
}
/**
@@ -486,18 +503,18 @@ ModeSwitch (
**/
EFI_STATUS
FindCapsuleCoalesceImage (
- OUT EFI_PHYSICAL_ADDRESS *CoalesceImageEntryPoint,
- OUT UINT16 *CoalesceImageMachineType
+ OUT EFI_PHYSICAL_ADDRESS *CoalesceImageEntryPoint,
+ OUT UINT16 *CoalesceImageMachineType
)
{
- EFI_STATUS Status;
- UINTN Instance;
- EFI_PEI_LOAD_FILE_PPI *LoadFile;
- EFI_PEI_FV_HANDLE VolumeHandle;
- EFI_PEI_FILE_HANDLE FileHandle;
- EFI_PHYSICAL_ADDRESS CoalesceImageAddress;
- UINT64 CoalesceImageSize;
- UINT32 AuthenticationState;
+ EFI_STATUS Status;
+ UINTN Instance;
+ EFI_PEI_LOAD_FILE_PPI *LoadFile;
+ EFI_PEI_FV_HANDLE VolumeHandle;
+ EFI_PEI_FILE_HANDLE FileHandle;
+ EFI_PHYSICAL_ADDRESS CoalesceImageAddress;
+ UINT64 CoalesceImageSize;
+ UINT32 AuthenticationState;
Instance = 0;
@@ -506,9 +523,10 @@ FindCapsuleCoalesceImage (
if (EFI_ERROR (Status)) {
return Status;
}
- Status = PeiServicesFfsFindFileByName (PcdGetPtr(PcdCapsuleCoalesceFile), VolumeHandle, &FileHandle);
+
+ Status = PeiServicesFfsFindFileByName (PcdGetPtr (PcdCapsuleCoalesceFile), VolumeHandle, &FileHandle);
if (!EFI_ERROR (Status)) {
- Status = PeiServicesLocatePpi (&gEfiPeiLoadFilePpiGuid, 0, NULL, (VOID **) &LoadFile);
+ Status = PeiServicesLocatePpi (&gEfiPeiLoadFilePpiGuid, 0, NULL, (VOID **)&LoadFile);
ASSERT_EFI_ERROR (Status);
Status = LoadFile->LoadFile (
@@ -523,7 +541,8 @@ FindCapsuleCoalesceImage (
DEBUG ((DEBUG_ERROR, "Unable to find PE32 section in CapsuleX64 image ffs %r!\n", Status));
return Status;
}
- *CoalesceImageMachineType = PeCoffLoaderGetMachineType ((VOID *) (UINTN) CoalesceImageAddress);
+
+ *CoalesceImageMachineType = PeCoffLoaderGetMachineType ((VOID *)(UINTN)CoalesceImageAddress);
break;
} else {
continue;
@@ -544,22 +563,22 @@ FindCapsuleCoalesceImage (
**/
EFI_STATUS
GetLongModeContext (
- OUT EFI_CAPSULE_LONG_MODE_BUFFER *LongModeBuffer
+ OUT EFI_CAPSULE_LONG_MODE_BUFFER *LongModeBuffer
)
{
- EFI_STATUS Status;
- UINTN Size;
- EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
+ EFI_STATUS Status;
+ UINTN Size;
+ EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
Status = PeiServicesLocatePpi (
&gEfiPeiReadOnlyVariable2PpiGuid,
0,
NULL,
- (VOID **) &PPIVariableServices
+ (VOID **)&PPIVariableServices
);
ASSERT_EFI_ERROR (Status);
- Size = sizeof (EFI_CAPSULE_LONG_MODE_BUFFER);
+ Size = sizeof (EFI_CAPSULE_LONG_MODE_BUFFER);
Status = PPIVariableServices->GetVariable (
PPIVariableServices,
EFI_CAPSULE_LONG_MODE_BUFFER_NAME,
@@ -569,13 +588,16 @@ GetLongModeContext (
LongModeBuffer
);
if (EFI_ERROR (Status)) {
- DEBUG (( DEBUG_ERROR, "Error Get LongModeBuffer variable %r!\n", Status));
+ DEBUG ((DEBUG_ERROR, "Error Get LongModeBuffer variable %r!\n", Status));
}
+
return Status;
}
+
#endif
#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
+
/**
Get physical address bits.
@@ -587,21 +609,21 @@ GetPhysicalAddressBits (
VOID
)
{
- UINT32 RegEax;
- UINT8 PhysicalAddressBits;
- VOID *Hob;
+ UINT32 RegEax;
+ UINT8 PhysicalAddressBits;
+ VOID *Hob;
//
// Get physical address bits supported.
//
Hob = GetFirstHob (EFI_HOB_TYPE_CPU);
if (Hob != NULL) {
- PhysicalAddressBits = ((EFI_HOB_CPU *) Hob)->SizeOfMemorySpace;
+ PhysicalAddressBits = ((EFI_HOB_CPU *)Hob)->SizeOfMemorySpace;
} else {
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000008) {
AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);
- PhysicalAddressBits = (UINT8) RegEax;
+ PhysicalAddressBits = (UINT8)RegEax;
} else {
PhysicalAddressBits = 36;
}
@@ -617,6 +639,7 @@ GetPhysicalAddressBits (
return PhysicalAddressBits;
}
+
#endif
/**
@@ -627,14 +650,14 @@ GetPhysicalAddressBits (
**/
VOID
SortMemoryResourceDescriptor (
- IN OUT MEMORY_RESOURCE_DESCRIPTOR *MemoryResource
+ IN OUT MEMORY_RESOURCE_DESCRIPTOR *MemoryResource
)
{
- MEMORY_RESOURCE_DESCRIPTOR *MemoryResourceEntry;
- MEMORY_RESOURCE_DESCRIPTOR *NextMemoryResourceEntry;
- MEMORY_RESOURCE_DESCRIPTOR TempMemoryResource;
+ MEMORY_RESOURCE_DESCRIPTOR *MemoryResourceEntry;
+ MEMORY_RESOURCE_DESCRIPTOR *NextMemoryResourceEntry;
+ MEMORY_RESOURCE_DESCRIPTOR TempMemoryResource;
- MemoryResourceEntry = MemoryResource;
+ MemoryResourceEntry = MemoryResource;
NextMemoryResourceEntry = MemoryResource + 1;
while (MemoryResourceEntry->ResourceLength != 0) {
while (NextMemoryResourceEntry->ResourceLength != 0) {
@@ -660,22 +683,23 @@ SortMemoryResourceDescriptor (
**/
VOID
MergeMemoryResourceDescriptor (
- IN OUT MEMORY_RESOURCE_DESCRIPTOR *MemoryResource
+ IN OUT MEMORY_RESOURCE_DESCRIPTOR *MemoryResource
)
{
- MEMORY_RESOURCE_DESCRIPTOR *MemoryResourceEntry;
- MEMORY_RESOURCE_DESCRIPTOR *NewMemoryResourceEntry;
- MEMORY_RESOURCE_DESCRIPTOR *NextMemoryResourceEntry;
- MEMORY_RESOURCE_DESCRIPTOR *MemoryResourceEnd;
+ MEMORY_RESOURCE_DESCRIPTOR *MemoryResourceEntry;
+ MEMORY_RESOURCE_DESCRIPTOR *NewMemoryResourceEntry;
+ MEMORY_RESOURCE_DESCRIPTOR *NextMemoryResourceEntry;
+ MEMORY_RESOURCE_DESCRIPTOR *MemoryResourceEnd;
- MemoryResourceEntry = MemoryResource;
+ MemoryResourceEntry = MemoryResource;
NewMemoryResourceEntry = MemoryResource;
while (MemoryResourceEntry->ResourceLength != 0) {
CopyMem (NewMemoryResourceEntry, MemoryResourceEntry, sizeof (MEMORY_RESOURCE_DESCRIPTOR));
NextMemoryResourceEntry = MemoryResourceEntry + 1;
while ((NextMemoryResourceEntry->ResourceLength != 0) &&
- (NextMemoryResourceEntry->PhysicalStart == (MemoryResourceEntry->PhysicalStart + MemoryResourceEntry->ResourceLength))) {
+ (NextMemoryResourceEntry->PhysicalStart == (MemoryResourceEntry->PhysicalStart + MemoryResourceEntry->ResourceLength)))
+ {
MemoryResourceEntry->ResourceLength += NextMemoryResourceEntry->ResourceLength;
if (NewMemoryResourceEntry != MemoryResourceEntry) {
NewMemoryResourceEntry->ResourceLength += NextMemoryResourceEntry->ResourceLength;
@@ -684,7 +708,7 @@ MergeMemoryResourceDescriptor (
NextMemoryResourceEntry = NextMemoryResourceEntry + 1;
}
- MemoryResourceEntry = NextMemoryResourceEntry;
+ MemoryResourceEntry = NextMemoryResourceEntry;
NewMemoryResourceEntry = NewMemoryResourceEntry + 1;
}
@@ -708,69 +732,80 @@ BuildMemoryResourceDescriptor (
VOID
)
{
- EFI_PEI_HOB_POINTERS Hob;
- UINTN Index;
- EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
- MEMORY_RESOURCE_DESCRIPTOR *MemoryResource;
- EFI_STATUS Status;
+ EFI_PEI_HOB_POINTERS Hob;
+ UINTN Index;
+ EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
+ MEMORY_RESOURCE_DESCRIPTOR *MemoryResource;
+ EFI_STATUS Status;
//
// Get the count of memory resource descriptor.
//
- Index = 0;
+ Index = 0;
Hob.Raw = GetFirstHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR);
while (Hob.Raw != NULL) {
- ResourceDescriptor = (EFI_HOB_RESOURCE_DESCRIPTOR *) Hob.Raw;
+ ResourceDescriptor = (EFI_HOB_RESOURCE_DESCRIPTOR *)Hob.Raw;
if (ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
Index++;
}
+
Hob.Raw = GET_NEXT_HOB (Hob);
Hob.Raw = GetNextHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, Hob.Raw);
}
if (Index == 0) {
DEBUG ((DEBUG_INFO | DEBUG_WARN, "No memory resource descriptor reported in HOB list before capsule Coalesce\n"));
-#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
+ #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
//
// Allocate memory to hold memory resource descriptor,
// include extra one NULL terminate memory resource descriptor.
//
- Status = PeiServicesAllocatePool ((1 + 1) * sizeof (MEMORY_RESOURCE_DESCRIPTOR), (VOID **) &MemoryResource);
+ Status = PeiServicesAllocatePool ((1 + 1) * sizeof (MEMORY_RESOURCE_DESCRIPTOR), (VOID **)&MemoryResource);
ASSERT_EFI_ERROR (Status);
ZeroMem (MemoryResource, (1 + 1) * sizeof (MEMORY_RESOURCE_DESCRIPTOR));
- MemoryResource[0].PhysicalStart = 0;
+ MemoryResource[0].PhysicalStart = 0;
MemoryResource[0].ResourceLength = LShiftU64 (1, GetPhysicalAddressBits ());
- DEBUG ((DEBUG_INFO, "MemoryResource[0x0] - Start(0x%0lx) Length(0x%0lx)\n",
- MemoryResource[0x0].PhysicalStart, MemoryResource[0x0].ResourceLength));
+ DEBUG ((
+ DEBUG_INFO,
+ "MemoryResource[0x0] - Start(0x%0lx) Length(0x%0lx)\n",
+ MemoryResource[0x0].PhysicalStart,
+ MemoryResource[0x0].ResourceLength
+ ));
return MemoryResource;
-#else
+ #else
return NULL;
-#endif
+ #endif
}
//
// Allocate memory to hold memory resource descriptor,
// include extra one NULL terminate memory resource descriptor.
//
- Status = PeiServicesAllocatePool ((Index + 1) * sizeof (MEMORY_RESOURCE_DESCRIPTOR), (VOID **) &MemoryResource);
+ Status = PeiServicesAllocatePool ((Index + 1) * sizeof (MEMORY_RESOURCE_DESCRIPTOR), (VOID **)&MemoryResource);
ASSERT_EFI_ERROR (Status);
ZeroMem (MemoryResource, (Index + 1) * sizeof (MEMORY_RESOURCE_DESCRIPTOR));
//
// Get the content of memory resource descriptor.
//
- Index = 0;
+ Index = 0;
Hob.Raw = GetFirstHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR);
while (Hob.Raw != NULL) {
- ResourceDescriptor = (EFI_HOB_RESOURCE_DESCRIPTOR *) Hob.Raw;
+ ResourceDescriptor = (EFI_HOB_RESOURCE_DESCRIPTOR *)Hob.Raw;
if (ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
- DEBUG ((DEBUG_INFO, "MemoryResource[0x%x] - Start(0x%0lx) Length(0x%0lx)\n",
- Index, ResourceDescriptor->PhysicalStart, ResourceDescriptor->ResourceLength));
- MemoryResource[Index].PhysicalStart = ResourceDescriptor->PhysicalStart;
+ DEBUG ((
+ DEBUG_INFO,
+ "MemoryResource[0x%x] - Start(0x%0lx) Length(0x%0lx)\n",
+ Index,
+ ResourceDescriptor->PhysicalStart,
+ ResourceDescriptor->ResourceLength
+ ));
+ MemoryResource[Index].PhysicalStart = ResourceDescriptor->PhysicalStart;
MemoryResource[Index].ResourceLength = ResourceDescriptor->ResourceLength;
Index++;
}
+
Hob.Raw = GET_NEXT_HOB (Hob);
Hob.Raw = GetNextHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, Hob.Raw);
}
@@ -804,19 +839,19 @@ AreCapsulesStaged (
VOID
)
{
- EFI_STATUS Status;
- UINTN Size;
- EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
- EFI_PHYSICAL_ADDRESS CapsuleDataPtr64;
+ EFI_STATUS Status;
+ UINTN Size;
+ EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
+ EFI_PHYSICAL_ADDRESS CapsuleDataPtr64;
CapsuleDataPtr64 = 0;
- Status = PeiServicesLocatePpi(
- &gEfiPeiReadOnlyVariable2PpiGuid,
- 0,
- NULL,
- (VOID **)&PPIVariableServices
- );
+ Status = PeiServicesLocatePpi (
+ &gEfiPeiReadOnlyVariable2PpiGuid,
+ 0,
+ NULL,
+ (VOID **)&PPIVariableServices
+ );
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Failed to find ReadOnlyVariable2PPI\n"));
@@ -826,7 +861,7 @@ AreCapsulesStaged (
//
// Check for Update capsule
//
- Size = sizeof (CapsuleDataPtr64);
+ Size = sizeof (CapsuleDataPtr64);
Status = PPIVariableServices->GetVariable (
PPIVariableServices,
EFI_CAPSULE_VARIABLE_NAME,
@@ -857,23 +892,23 @@ AreCapsulesStaged (
**/
EFI_STATUS
GetScatterGatherHeadEntries (
- OUT UINTN *ListLength,
- OUT EFI_PHYSICAL_ADDRESS **HeadList
+ OUT UINTN *ListLength,
+ OUT EFI_PHYSICAL_ADDRESS **HeadList
)
{
- EFI_STATUS Status;
- UINTN Size;
- UINTN Index;
- UINTN TempIndex;
- UINTN ValidIndex;
- BOOLEAN Flag;
- CHAR16 CapsuleVarName[30];
- CHAR16 *TempVarName;
- EFI_PHYSICAL_ADDRESS CapsuleDataPtr64;
- EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
- EFI_PHYSICAL_ADDRESS *TempList;
- EFI_PHYSICAL_ADDRESS *EnlargedTempList;
- UINTN TempListLength;
+ EFI_STATUS Status;
+ UINTN Size;
+ UINTN Index;
+ UINTN TempIndex;
+ UINTN ValidIndex;
+ BOOLEAN Flag;
+ CHAR16 CapsuleVarName[30];
+ CHAR16 *TempVarName;
+ EFI_PHYSICAL_ADDRESS CapsuleDataPtr64;
+ EFI_PEI_READ_ONLY_VARIABLE2_PPI *PPIVariableServices;
+ EFI_PHYSICAL_ADDRESS *TempList;
+ EFI_PHYSICAL_ADDRESS *EnlargedTempList;
+ UINTN TempListLength;
Index = 0;
TempVarName = NULL;
@@ -889,14 +924,14 @@ GetScatterGatherHeadEntries (
}
*ListLength = 0;
- *HeadList = NULL;
+ *HeadList = NULL;
Status = PeiServicesLocatePpi (
- &gEfiPeiReadOnlyVariable2PpiGuid,
- 0,
- NULL,
- (VOID **)&PPIVariableServices
- );
+ &gEfiPeiReadOnlyVariable2PpiGuid,
+ 0,
+ NULL,
+ (VOID **)&PPIVariableServices
+ );
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Failed to find ReadOnlyVariable2PPI\n"));
@@ -907,9 +942,9 @@ GetScatterGatherHeadEntries (
// Allocate memory for sg list head
//
TempListLength = DEFAULT_SG_LIST_HEADS * sizeof (EFI_PHYSICAL_ADDRESS);
- TempList = AllocateZeroPool (TempListLength);
+ TempList = AllocateZeroPool (TempListLength);
if (TempList == NULL) {
- DEBUG((DEBUG_ERROR, "Failed to allocate memory\n"));
+ DEBUG ((DEBUG_ERROR, "Failed to allocate memory\n"));
return EFI_OUT_OF_RESOURCES;
}
@@ -928,7 +963,8 @@ GetScatterGatherHeadEntries (
0
);
}
- Size = sizeof (CapsuleDataPtr64);
+
+ Size = sizeof (CapsuleDataPtr64);
Status = PPIVariableServices->GetVariable (
PPIVariableServices,
CapsuleVarName,
@@ -942,6 +978,7 @@ GetScatterGatherHeadEntries (
if (Status != EFI_NOT_FOUND) {
DEBUG ((DEBUG_ERROR, "Unexpected error getting Capsule Update variable. Status = %r\n"));
}
+
break;
}
@@ -955,6 +992,7 @@ GetScatterGatherHeadEntries (
break;
}
}
+
if (Flag) {
Index++;
continue;
@@ -969,9 +1007,10 @@ GetScatterGatherHeadEntries (
DEBUG ((DEBUG_ERROR, "Fail to allocate memory!\n"));
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (EnlargedTempList, TempList, TempListLength);
FreePool (TempList);
- TempList = EnlargedTempList;
+ TempList = EnlargedTempList;
TempListLength *= 2;
}
@@ -1025,24 +1064,25 @@ GetScatterGatherHeadEntries (
EFI_STATUS
EFIAPI
CapsuleCoalesce (
- IN EFI_PEI_SERVICES **PeiServices,
- IN OUT VOID **MemoryBase,
- IN OUT UINTN *MemorySize
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN OUT VOID **MemoryBase,
+ IN OUT UINTN *MemorySize
)
{
- EFI_STATUS Status;
- EFI_BOOT_MODE BootMode;
- UINTN ListLength;
- EFI_PHYSICAL_ADDRESS *VariableArrayAddress;
- MEMORY_RESOURCE_DESCRIPTOR *MemoryResource;
-#ifdef MDE_CPU_IA32
- UINT16 CoalesceImageMachineType;
- EFI_PHYSICAL_ADDRESS CoalesceImageEntryPoint;
- COALESCE_ENTRY CoalesceEntry;
- EFI_CAPSULE_LONG_MODE_BUFFER LongModeBuffer;
-#endif
-
- ListLength = 0;
+ EFI_STATUS Status;
+ EFI_BOOT_MODE BootMode;
+ UINTN ListLength;
+ EFI_PHYSICAL_ADDRESS *VariableArrayAddress;
+ MEMORY_RESOURCE_DESCRIPTOR *MemoryResource;
+
+ #ifdef MDE_CPU_IA32
+ UINT16 CoalesceImageMachineType;
+ EFI_PHYSICAL_ADDRESS CoalesceImageEntryPoint;
+ COALESCE_ENTRY CoalesceEntry;
+ EFI_CAPSULE_LONG_MODE_BUFFER LongModeBuffer;
+ #endif
+
+ ListLength = 0;
VariableArrayAddress = NULL;
//
@@ -1060,14 +1100,14 @@ CapsuleCoalesce (
// Get SG list entries
//
Status = GetScatterGatherHeadEntries (&ListLength, &VariableArrayAddress);
- if (EFI_ERROR (Status) || VariableArrayAddress == NULL) {
+ if (EFI_ERROR (Status) || (VariableArrayAddress == NULL)) {
DEBUG ((DEBUG_ERROR, "%a failed to get Scatter Gather List Head Entries. Status = %r\n", __FUNCTION__, Status));
goto Done;
}
MemoryResource = BuildMemoryResourceDescriptor ();
-#ifdef MDE_CPU_IA32
+ #ifdef MDE_CPU_IA32
if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) {
//
// Switch to 64-bit mode to process capsule data when:
@@ -1077,7 +1117,7 @@ CapsuleCoalesce (
// In 64-bit mode, we can process capsule data above 4GB.
//
CoalesceImageEntryPoint = 0;
- Status = GetLongModeContext (&LongModeBuffer);
+ Status = GetLongModeContext (&LongModeBuffer);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Fail to find the variable for long mode context!\n"));
Status = EFI_NOT_FOUND;
@@ -1090,21 +1130,23 @@ CapsuleCoalesce (
Status = EFI_NOT_FOUND;
goto Done;
}
+
ASSERT (CoalesceImageEntryPoint != 0);
- CoalesceEntry = (COALESCE_ENTRY) (UINTN) CoalesceImageEntryPoint;
- Status = ModeSwitch (&LongModeBuffer, CoalesceEntry, (EFI_PHYSICAL_ADDRESS)(UINTN)VariableArrayAddress, MemoryResource, MemoryBase, MemorySize);
+ CoalesceEntry = (COALESCE_ENTRY)(UINTN)CoalesceImageEntryPoint;
+ Status = ModeSwitch (&LongModeBuffer, CoalesceEntry, (EFI_PHYSICAL_ADDRESS)(UINTN)VariableArrayAddress, MemoryResource, MemoryBase, MemorySize);
} else {
//
// Capsule is processed in IA32 mode.
//
Status = CapsuleDataCoalesce (PeiServices, (EFI_PHYSICAL_ADDRESS *)(UINTN)VariableArrayAddress, MemoryResource, MemoryBase, MemorySize);
}
-#else
+
+ #else
//
// Process capsule directly.
//
Status = CapsuleDataCoalesce (PeiServices, (EFI_PHYSICAL_ADDRESS *)(UINTN)VariableArrayAddress, MemoryResource, MemoryBase, MemorySize);
-#endif
+ #endif
DEBUG ((DEBUG_INFO, "Capsule Coalesce Status = %r!\n", Status));
@@ -1136,7 +1178,7 @@ Done:
EFI_STATUS
EFIAPI
CheckCapsuleUpdate (
- IN EFI_PEI_SERVICES **PeiServices
+ IN EFI_PEI_SERVICES **PeiServices
)
{
if (AreCapsulesStaged ()) {
@@ -1145,6 +1187,7 @@ CheckCapsuleUpdate (
return EFI_NOT_FOUND;
}
}
+
/**
This function will look at a capsule and determine if it's a test pattern.
If it is, then it will verify it and emit an error message if corruption is detected.
@@ -1159,14 +1202,14 @@ CheckCapsuleUpdate (
**/
BOOLEAN
CapsuleTestPattern (
- IN EFI_PEI_SERVICES **PeiServices,
- IN VOID *CapsuleBase
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN VOID *CapsuleBase
)
{
- UINT32 *TestPtr;
- UINT32 TestCounter;
- UINT32 TestSize;
- BOOLEAN RetValue;
+ UINT32 *TestPtr;
+ UINT32 TestCounter;
+ UINT32 TestSize;
+ BOOLEAN RetValue;
RetValue = FALSE;
@@ -1174,7 +1217,7 @@ CapsuleTestPattern (
// Look at the capsule data and determine if it's a test pattern. If it
// is, then test it now.
//
- TestPtr = (UINT32 *) CapsuleBase;
+ TestPtr = (UINT32 *)CapsuleBase;
//
// 0x54534554 "TEST"
//
@@ -1185,7 +1228,7 @@ CapsuleTestPattern (
//
// Skip over the signature and the size fields in the pattern data header
//
- TestPtr += 2;
+ TestPtr += 2;
TestCounter = 0;
while (TestSize > 0) {
if (*TestPtr != TestCounter) {
@@ -1224,32 +1267,35 @@ CapsuleTestPattern (
EFI_STATUS
EFIAPI
CreateState (
- IN EFI_PEI_SERVICES **PeiServices,
- IN VOID *CapsuleBase,
- IN UINTN CapsuleSize
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN VOID *CapsuleBase,
+ IN UINTN CapsuleSize
)
{
- EFI_STATUS Status;
- EFI_CAPSULE_PEIM_PRIVATE_DATA *PrivateData;
- UINTN Size;
- EFI_PHYSICAL_ADDRESS NewBuffer;
- UINTN CapsuleNumber;
- UINT32 Index;
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
-
- PrivateData = (EFI_CAPSULE_PEIM_PRIVATE_DATA *) CapsuleBase;
+ EFI_STATUS Status;
+ EFI_CAPSULE_PEIM_PRIVATE_DATA *PrivateData;
+ UINTN Size;
+ EFI_PHYSICAL_ADDRESS NewBuffer;
+ UINTN CapsuleNumber;
+ UINT32 Index;
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ UINT64 Length;
+
+ PrivateData = (EFI_CAPSULE_PEIM_PRIVATE_DATA *)CapsuleBase;
if (PrivateData->Signature != EFI_CAPSULE_PEIM_PRIVATE_DATA_SIGNATURE) {
return EFI_VOLUME_CORRUPTED;
}
+
if (PrivateData->CapsuleAllImageSize >= MAX_ADDRESS) {
DEBUG ((DEBUG_ERROR, "CapsuleAllImageSize too big - 0x%lx\n", PrivateData->CapsuleAllImageSize));
return EFI_OUT_OF_RESOURCES;
}
+
if (PrivateData->CapsuleNumber >= MAX_ADDRESS) {
DEBUG ((DEBUG_ERROR, "CapsuleNumber too big - 0x%lx\n", PrivateData->CapsuleNumber));
return EFI_OUT_OF_RESOURCES;
}
+
//
// Capsule Number and Capsule Offset is in the tail of Capsule data.
//
@@ -1268,11 +1314,12 @@ CreateState (
DEBUG ((DEBUG_ERROR, "AllocatePages Failed!\n"));
return Status;
}
+
//
// Copy to our new buffer for DXE
//
- DEBUG ((DEBUG_INFO, "Capsule copy from 0x%8X to 0x%8X with size 0x%8X\n", (UINTN)((UINT8 *)PrivateData + sizeof(EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64)), (UINTN) NewBuffer, Size));
- CopyMem ((VOID *) (UINTN) NewBuffer, (VOID *) (UINTN) ((UINT8 *)PrivateData + sizeof(EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof(UINT64)), Size);
+ DEBUG ((DEBUG_INFO, "Capsule copy from 0x%8X to 0x%8X with size 0x%8X\n", (UINTN)((UINT8 *)PrivateData + sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64)), (UINTN)NewBuffer, Size));
+ CopyMem ((VOID *)(UINTN)NewBuffer, (VOID *)(UINTN)((UINT8 *)PrivateData + sizeof (EFI_CAPSULE_PEIM_PRIVATE_DATA) + (CapsuleNumber - 1) * sizeof (UINT64)), Size);
//
// Check for test data pattern. If it is the test pattern, then we'll
// test it and still create the HOB so that it can be used to verify
@@ -1281,15 +1328,15 @@ CreateState (
// corrupted so nothing will happen.
//
DEBUG_CODE (
- CapsuleTestPattern (PeiServices, (VOID *) (UINTN) NewBuffer);
- );
+ CapsuleTestPattern (PeiServices, (VOID *)(UINTN)NewBuffer);
+ );
//
// Build the UEFI Capsule Hob for each capsule image.
//
- for (Index = 0; Index < CapsuleNumber; Index ++) {
+ for (Index = 0; Index < CapsuleNumber; Index++) {
BaseAddress = NewBuffer + PrivateData->CapsuleOffset[Index];
- Length = ((EFI_CAPSULE_HEADER *)((UINTN) BaseAddress))->CapsuleImageSize;
+ Length = ((EFI_CAPSULE_HEADER *)((UINTN)BaseAddress))->CapsuleImageSize;
BuildCvHob (BaseAddress, Length);
}
@@ -1297,16 +1344,16 @@ CreateState (
return EFI_SUCCESS;
}
-CONST EFI_PEI_CAPSULE_PPI mCapsulePpi = {
+CONST EFI_PEI_CAPSULE_PPI mCapsulePpi = {
CapsuleCoalesce,
CheckCapsuleUpdate,
CreateState
};
-CONST EFI_PEI_PPI_DESCRIPTOR mUefiPpiListCapsule = {
+CONST EFI_PEI_PPI_DESCRIPTOR mUefiPpiListCapsule = {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiPeiCapsulePpiGuid,
- (EFI_PEI_CAPSULE_PPI *) &mCapsulePpi
+ (EFI_PEI_CAPSULE_PPI *)&mCapsulePpi
};
/**
diff --git a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
index 2270491..05941f9 100644
--- a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
+++ b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c
@@ -14,28 +14,28 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/DebugAgentLib.h>
#include "CommonHeader.h"
-#define EXCEPTION_VECTOR_NUMBER 0x22
+#define EXCEPTION_VECTOR_NUMBER 0x22
-#define IA32_PG_P BIT0
-#define IA32_PG_RW BIT1
-#define IA32_PG_PS BIT7
+#define IA32_PG_P BIT0
+#define IA32_PG_RW BIT1
+#define IA32_PG_PS BIT7
typedef struct _PAGE_FAULT_CONTEXT {
- BOOLEAN Page1GSupport;
- UINT64 PhyMask;
- UINTN PageFaultBuffer;
- UINTN PageFaultIndex;
- UINT64 AddressEncMask;
+ BOOLEAN Page1GSupport;
+ UINT64 PhyMask;
+ UINTN PageFaultBuffer;
+ UINTN PageFaultIndex;
+ UINT64 AddressEncMask;
//
// Store the uplink information for each page being used.
//
- UINT64 *PageFaultUplink[EXTRA_PAGE_TABLE_PAGES];
- VOID *OriginalHandler;
+ UINT64 *PageFaultUplink[EXTRA_PAGE_TABLE_PAGES];
+ VOID *OriginalHandler;
} PAGE_FAULT_CONTEXT;
typedef struct _PAGE_FAULT_IDT_TABLE {
- PAGE_FAULT_CONTEXT PageFaultContext;
- IA32_IDT_GATE_DESCRIPTOR IdtEntryTable[EXCEPTION_VECTOR_NUMBER];
+ PAGE_FAULT_CONTEXT PageFaultContext;
+ IA32_IDT_GATE_DESCRIPTOR IdtEntryTable[EXCEPTION_VECTOR_NUMBER];
} PAGE_FAULT_IDT_TABLE;
/**
@@ -57,22 +57,23 @@ PageFaultHandlerHook (
**/
VOID
HookPageFaultHandler (
- IN OUT IA32_IDT_GATE_DESCRIPTOR *IdtEntry,
- IN OUT PAGE_FAULT_CONTEXT *PageFaultContext
+ IN OUT IA32_IDT_GATE_DESCRIPTOR *IdtEntry,
+ IN OUT PAGE_FAULT_CONTEXT *PageFaultContext
)
{
- UINT32 RegEax;
- UINT8 PhysicalAddressBits;
- UINTN PageFaultHandlerHookAddress;
+ UINT32 RegEax;
+ UINT8 PhysicalAddressBits;
+ UINTN PageFaultHandlerHookAddress;
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000008) {
AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);
- PhysicalAddressBits = (UINT8) RegEax;
+ PhysicalAddressBits = (UINT8)RegEax;
} else {
PhysicalAddressBits = 36;
}
- PageFaultContext->PhyMask = LShiftU64 (1, PhysicalAddressBits) - 1;
+
+ PageFaultContext->PhyMask = LShiftU64 (1, PhysicalAddressBits) - 1;
PageFaultContext->PhyMask &= (1ull << 48) - SIZE_4KB;
//
@@ -89,10 +90,11 @@ HookPageFaultHandler (
IdtEntry->Bits.Reserved_1 = 0;
if (PageFaultContext->Page1GSupport) {
- PageFaultContext->PageFaultBuffer = (UINTN)(AsmReadCr3 () & PageFaultContext->PhyMask) + EFI_PAGES_TO_SIZE(2);
- }else {
- PageFaultContext->PageFaultBuffer = (UINTN)(AsmReadCr3 () & PageFaultContext->PhyMask) + EFI_PAGES_TO_SIZE(6);
+ PageFaultContext->PageFaultBuffer = (UINTN)(AsmReadCr3 () & PageFaultContext->PhyMask) + EFI_PAGES_TO_SIZE (2);
+ } else {
+ PageFaultContext->PageFaultBuffer = (UINTN)(AsmReadCr3 () & PageFaultContext->PhyMask) + EFI_PAGES_TO_SIZE (6);
}
+
PageFaultContext->PageFaultIndex = 0;
ZeroMem (PageFaultContext->PageFaultUplink, sizeof (PageFaultContext->PageFaultUplink));
}
@@ -106,15 +108,15 @@ HookPageFaultHandler (
**/
VOID
AcquirePage (
- IN OUT PAGE_FAULT_CONTEXT *PageFaultContext,
- IN OUT UINT64 *Uplink
+ IN OUT PAGE_FAULT_CONTEXT *PageFaultContext,
+ IN OUT UINT64 *Uplink
)
{
- UINTN Address;
- UINT64 AddressEncMask;
+ UINTN Address;
+ UINT64 AddressEncMask;
Address = PageFaultContext->PageFaultBuffer + EFI_PAGES_TO_SIZE (PageFaultContext->PageFaultIndex);
- ZeroMem ((VOID *) Address, EFI_PAGES_TO_SIZE (1));
+ ZeroMem ((VOID *)Address, EFI_PAGES_TO_SIZE (1));
AddressEncMask = PageFaultContext->AddressEncMask;
@@ -122,14 +124,15 @@ AcquirePage (
// Cut the previous uplink if it exists and wasn't overwritten.
//
if ((PageFaultContext->PageFaultUplink[PageFaultContext->PageFaultIndex] != NULL) &&
- ((*PageFaultContext->PageFaultUplink[PageFaultContext->PageFaultIndex] & ~AddressEncMask & PageFaultContext->PhyMask) == Address)) {
+ ((*PageFaultContext->PageFaultUplink[PageFaultContext->PageFaultIndex] & ~AddressEncMask & PageFaultContext->PhyMask) == Address))
+ {
*PageFaultContext->PageFaultUplink[PageFaultContext->PageFaultIndex] = 0;
}
//
// Link & Record the current uplink.
//
- *Uplink = Address | AddressEncMask | IA32_PG_P | IA32_PG_RW;
+ *Uplink = Address | AddressEncMask | IA32_PG_P | IA32_PG_RW;
PageFaultContext->PageFaultUplink[PageFaultContext->PageFaultIndex] = Uplink;
PageFaultContext->PageFaultIndex = (PageFaultContext->PageFaultIndex + 1) % EXTRA_PAGE_TABLE_PAGES;
@@ -148,24 +151,24 @@ PageFaultHandler (
VOID
)
{
- IA32_DESCRIPTOR Idtr;
- PAGE_FAULT_CONTEXT *PageFaultContext;
- UINT64 PhyMask;
- UINT64 *PageTable;
- UINT64 PFAddress;
- UINTN PTIndex;
- UINT64 AddressEncMask;
+ IA32_DESCRIPTOR Idtr;
+ PAGE_FAULT_CONTEXT *PageFaultContext;
+ UINT64 PhyMask;
+ UINT64 *PageTable;
+ UINT64 PFAddress;
+ UINTN PTIndex;
+ UINT64 AddressEncMask;
//
// Get the IDT Descriptor.
//
- AsmReadIdtr ((IA32_DESCRIPTOR *) &Idtr);
+ AsmReadIdtr ((IA32_DESCRIPTOR *)&Idtr);
//
// Then get page fault context by IDT Descriptor.
//
- PageFaultContext = (PAGE_FAULT_CONTEXT *) (UINTN) (Idtr.Base - sizeof (PAGE_FAULT_CONTEXT));
- PhyMask = PageFaultContext->PhyMask;
- AddressEncMask = PageFaultContext->AddressEncMask;
+ PageFaultContext = (PAGE_FAULT_CONTEXT *)(UINTN)(Idtr.Base - sizeof (PAGE_FAULT_CONTEXT));
+ PhyMask = PageFaultContext->PhyMask;
+ AddressEncMask = PageFaultContext->AddressEncMask;
PFAddress = AsmReadCr2 ();
DEBUG ((DEBUG_ERROR, "CapsuleX64 - PageFaultHandler: Cr2 - %lx\n", PFAddress));
@@ -173,17 +176,19 @@ PageFaultHandler (
if (PFAddress >= PhyMask + SIZE_4KB) {
return PageFaultContext->OriginalHandler;
}
+
PFAddress &= PhyMask;
- PageTable = (UINT64*)(UINTN)(AsmReadCr3 () & PhyMask);
+ PageTable = (UINT64 *)(UINTN)(AsmReadCr3 () & PhyMask);
PTIndex = BitFieldRead64 (PFAddress, 39, 47);
// PML4E
if ((PageTable[PTIndex] & IA32_PG_P) == 0) {
AcquirePage (PageFaultContext, &PageTable[PTIndex]);
}
- PageTable = (UINT64*)(UINTN)(PageTable[PTIndex] & ~AddressEncMask & PhyMask);
- PTIndex = BitFieldRead64 (PFAddress, 30, 38);
+
+ PageTable = (UINT64 *)(UINTN)(PageTable[PTIndex] & ~AddressEncMask & PhyMask);
+ PTIndex = BitFieldRead64 (PFAddress, 30, 38);
// PDPTE
if (PageFaultContext->Page1GSupport) {
PageTable[PTIndex] = ((PFAddress | AddressEncMask) & ~((1ull << 30) - 1)) | IA32_PG_P | IA32_PG_RW | IA32_PG_PS;
@@ -191,8 +196,9 @@ PageFaultHandler (
if ((PageTable[PTIndex] & IA32_PG_P) == 0) {
AcquirePage (PageFaultContext, &PageTable[PTIndex]);
}
- PageTable = (UINT64*)(UINTN)(PageTable[PTIndex] & ~AddressEncMask & PhyMask);
- PTIndex = BitFieldRead64 (PFAddress, 21, 29);
+
+ PageTable = (UINT64 *)(UINTN)(PageTable[PTIndex] & ~AddressEncMask & PhyMask);
+ PTIndex = BitFieldRead64 (PFAddress, 21, 29);
// PD
PageTable[PTIndex] = ((PFAddress | AddressEncMask) & ~((1ull << 21) - 1)) | IA32_PG_P | IA32_PG_RW | IA32_PG_PS;
}
@@ -200,7 +206,6 @@ PageFaultHandler (
return NULL;
}
-
/**
The X64 entrypoint is used to process capsule in long mode then
return to 32-bit protected mode.
@@ -214,28 +219,28 @@ PageFaultHandler (
EFI_STATUS
EFIAPI
_ModuleEntryPoint (
- SWITCH_32_TO_64_CONTEXT *EntrypointContext,
- SWITCH_64_TO_32_CONTEXT *ReturnContext
-)
+ SWITCH_32_TO_64_CONTEXT *EntrypointContext,
+ SWITCH_64_TO_32_CONTEXT *ReturnContext
+ )
{
- EFI_STATUS Status;
- IA32_DESCRIPTOR Ia32Idtr;
- IA32_DESCRIPTOR X64Idtr;
- PAGE_FAULT_IDT_TABLE PageFaultIdtTable;
- IA32_IDT_GATE_DESCRIPTOR *IdtEntry;
+ EFI_STATUS Status;
+ IA32_DESCRIPTOR Ia32Idtr;
+ IA32_DESCRIPTOR X64Idtr;
+ PAGE_FAULT_IDT_TABLE PageFaultIdtTable;
+ IA32_IDT_GATE_DESCRIPTOR *IdtEntry;
//
// Save the IA32 IDT Descriptor
//
- AsmReadIdtr ((IA32_DESCRIPTOR *) &Ia32Idtr);
+ AsmReadIdtr ((IA32_DESCRIPTOR *)&Ia32Idtr);
//
// Setup X64 IDT table
//
ZeroMem (PageFaultIdtTable.IdtEntryTable, sizeof (IA32_IDT_GATE_DESCRIPTOR) * EXCEPTION_VECTOR_NUMBER);
- X64Idtr.Base = (UINTN) PageFaultIdtTable.IdtEntryTable;
- X64Idtr.Limit = (UINT16) (sizeof (IA32_IDT_GATE_DESCRIPTOR) * EXCEPTION_VECTOR_NUMBER - 1);
- AsmWriteIdtr ((IA32_DESCRIPTOR *) &X64Idtr);
+ X64Idtr.Base = (UINTN)PageFaultIdtTable.IdtEntryTable;
+ X64Idtr.Limit = (UINT16)(sizeof (IA32_IDT_GATE_DESCRIPTOR) * EXCEPTION_VECTOR_NUMBER - 1);
+ AsmWriteIdtr ((IA32_DESCRIPTOR *)&X64Idtr);
//
// Setup the default CPU exception handlers
@@ -246,25 +251,25 @@ _ModuleEntryPoint (
//
// Hook page fault handler to handle >4G request.
//
- PageFaultIdtTable.PageFaultContext.Page1GSupport = EntrypointContext->Page1GSupport;
+ PageFaultIdtTable.PageFaultContext.Page1GSupport = EntrypointContext->Page1GSupport;
PageFaultIdtTable.PageFaultContext.AddressEncMask = EntrypointContext->AddressEncMask;
- IdtEntry = (IA32_IDT_GATE_DESCRIPTOR *) (X64Idtr.Base + (14 * sizeof (IA32_IDT_GATE_DESCRIPTOR)));
+ IdtEntry = (IA32_IDT_GATE_DESCRIPTOR *)(X64Idtr.Base + (14 * sizeof (IA32_IDT_GATE_DESCRIPTOR)));
HookPageFaultHandler (IdtEntry, &(PageFaultIdtTable.PageFaultContext));
//
// Initialize Debug Agent to support source level debug
//
- InitializeDebugAgent (DEBUG_AGENT_INIT_THUNK_PEI_IA32TOX64, (VOID *) &Ia32Idtr, NULL);
+ InitializeDebugAgent (DEBUG_AGENT_INIT_THUNK_PEI_IA32TOX64, (VOID *)&Ia32Idtr, NULL);
//
// Call CapsuleDataCoalesce to process capsule.
//
Status = CapsuleDataCoalesce (
NULL,
- (EFI_PHYSICAL_ADDRESS *) (UINTN) EntrypointContext->BlockListAddr,
- (MEMORY_RESOURCE_DESCRIPTOR *) (UINTN) EntrypointContext->MemoryResource,
- (VOID **) (UINTN) EntrypointContext->MemoryBase64Ptr,
- (UINTN *) (UINTN) EntrypointContext->MemorySize64Ptr
+ (EFI_PHYSICAL_ADDRESS *)(UINTN)EntrypointContext->BlockListAddr,
+ (MEMORY_RESOURCE_DESCRIPTOR *)(UINTN)EntrypointContext->MemoryResource,
+ (VOID **)(UINTN)EntrypointContext->MemoryBase64Ptr,
+ (UINTN *)(UINTN)EntrypointContext->MemorySize64Ptr
);
ReturnContext->ReturnStatus = Status;
@@ -284,17 +289,17 @@ _ModuleEntryPoint (
//
// Restore IA32 IDT table
//
- AsmWriteIdtr ((IA32_DESCRIPTOR *) &Ia32Idtr);
+ AsmWriteIdtr ((IA32_DESCRIPTOR *)&Ia32Idtr);
//
// Finish to coalesce capsule, and return to 32-bit mode.
//
AsmDisablePaging64 (
ReturnContext->ReturnCs,
- (UINT32) ReturnContext->ReturnEntryPoint,
- (UINT32) (UINTN) EntrypointContext,
- (UINT32) (UINTN) ReturnContext,
- (UINT32) (EntrypointContext->StackBufferBase + EntrypointContext->StackBufferLength)
+ (UINT32)ReturnContext->ReturnEntryPoint,
+ (UINT32)(UINTN)EntrypointContext,
+ (UINT32)(UINTN)ReturnContext,
+ (UINT32)(EntrypointContext->StackBufferBase + EntrypointContext->StackBufferLength)
);
//
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/Arm/CapsuleReset.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/Arm/CapsuleReset.c
index e05f14d..b974d60 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/Arm/CapsuleReset.c
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/Arm/CapsuleReset.c
@@ -33,4 +33,3 @@ IsPersistAcrossResetCapsuleSupported (
//
return FeaturePcdGet (PcdSupportUpdateCapsuleReset) && !EfiAtRuntime ();
}
-
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCache.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCache.c
index 3c96851..5eab31d 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCache.c
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCache.c
@@ -24,10 +24,10 @@
**/
VOID
CapsuleCacheWriteBack (
- IN EFI_PHYSICAL_ADDRESS ScatterGatherList
+ IN EFI_PHYSICAL_ADDRESS ScatterGatherList
)
{
- EFI_CAPSULE_BLOCK_DESCRIPTOR *Desc;
+ EFI_CAPSULE_BLOCK_DESCRIPTOR *Desc;
if (!EfiAtRuntime ()) {
Desc = (EFI_CAPSULE_BLOCK_DESCRIPTOR *)(UINTN)ScatterGatherList;
@@ -54,4 +54,3 @@ CapsuleCacheWriteBack (
);
}
}
-
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCacheNull.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCacheNull.c
index edff757..b795928 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCacheNull.c
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleCacheNull.c
@@ -25,8 +25,7 @@
**/
VOID
CapsuleCacheWriteBack (
- IN EFI_PHYSICAL_ADDRESS ScatterGatherList
+ IN EFI_PHYSICAL_ADDRESS ScatterGatherList
)
{
}
-
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleReset.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleReset.c
index 732a3c9..f3cb6d5 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleReset.c
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleReset.c
@@ -26,4 +26,3 @@ IsPersistAcrossResetCapsuleSupported (
{
return FeaturePcdGet (PcdSupportUpdateCapsuleReset);
}
-
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c
index 2fba22d..50968a8 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.c
@@ -19,10 +19,10 @@ EFI_HANDLE mNewHandle = NULL;
//
// The times of calling UpdateCapsule ()
//
-UINTN mTimes = 0;
+UINTN mTimes = 0;
-UINT32 mMaxSizePopulateCapsule = 0;
-UINT32 mMaxSizeNonPopulateCapsule = 0;
+UINT32 mMaxSizePopulateCapsule = 0;
+UINT32 mMaxSizeNonPopulateCapsule = 0;
/**
Passes capsules to the firmware with both virtual and physical mapping. Depending on the intended
@@ -58,24 +58,24 @@ UINT32 mMaxSizeNonPopulateCapsule = 0;
EFI_STATUS
EFIAPI
UpdateCapsule (
- IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
- IN UINTN CapsuleCount,
- IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
+ IN UINTN CapsuleCount,
+ IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL
)
{
- UINTN ArrayNumber;
- EFI_STATUS Status;
- EFI_CAPSULE_HEADER *CapsuleHeader;
- BOOLEAN NeedReset;
- BOOLEAN InitiateReset;
- CHAR16 CapsuleVarName[30];
- CHAR16 *TempVarName;
+ UINTN ArrayNumber;
+ EFI_STATUS Status;
+ EFI_CAPSULE_HEADER *CapsuleHeader;
+ BOOLEAN NeedReset;
+ BOOLEAN InitiateReset;
+ CHAR16 CapsuleVarName[30];
+ CHAR16 *TempVarName;
//
// Check if platform support Capsule In RAM or not.
// Platform could choose to drop CapsulePei/CapsuleX64 and do not support Capsule In RAM.
//
- if (!PcdGetBool(PcdCapsuleInRamSupport)) {
+ if (!PcdGetBool (PcdCapsuleInRamSupport)) {
return EFI_UNSUPPORTED;
}
@@ -100,6 +100,7 @@ UpdateCapsule (
if ((CapsuleHeader->Flags & (CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE)) == CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) {
return EFI_INVALID_PARAMETER;
}
+
//
// A capsule which has the CAPSULE_FLAGS_INITIATE_RESET flag must have
// CAPSULE_FLAGS_PERSIST_ACROSS_RESET set in its header as well.
@@ -111,9 +112,10 @@ UpdateCapsule (
//
// Check FMP capsule flag
//
- if (CompareGuid(&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)
- && (CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0 ) {
- return EFI_INVALID_PARAMETER;
+ if ( CompareGuid (&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)
+ && ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0))
+ {
+ return EFI_INVALID_PARAMETER;
}
//
@@ -121,7 +123,7 @@ UpdateCapsule (
//
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) == 0) {
Status = SupportCapsuleImage (CapsuleHeader);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
}
@@ -131,7 +133,7 @@ UpdateCapsule (
// Walk through all capsules, record whether there is a capsule needs reset
// or initiate reset. And then process capsules which has no reset flag directly.
//
- for (ArrayNumber = 0; ArrayNumber < CapsuleCount ; ArrayNumber++) {
+ for (ArrayNumber = 0; ArrayNumber < CapsuleCount; ArrayNumber++) {
CapsuleHeader = CapsuleHeaderArray[ArrayNumber];
//
// Here should be in the boot-time for non-reset capsule image
@@ -141,9 +143,10 @@ UpdateCapsule (
if (EfiAtRuntime () && !FeaturePcdGet (PcdSupportProcessCapsuleAtRuntime)) {
Status = EFI_OUT_OF_RESOURCES;
} else {
- Status = ProcessCapsuleImage(CapsuleHeader);
+ Status = ProcessCapsuleImage (CapsuleHeader);
}
- if (EFI_ERROR(Status)) {
+
+ if (EFI_ERROR (Status)) {
return Status;
}
} else {
@@ -166,7 +169,7 @@ UpdateCapsule (
// ScatterGatherList is only referenced if the capsules are defined to persist across
// system reset.
//
- if (ScatterGatherList == (EFI_PHYSICAL_ADDRESS) (UINTN) NULL) {
+ if (ScatterGatherList == (EFI_PHYSICAL_ADDRESS)(UINTN)NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -183,7 +186,7 @@ UpdateCapsule (
// Construct variable name CapsuleUpdateData, CapsuleUpdateData1, CapsuleUpdateData2...
// if user calls UpdateCapsule multiple times.
//
- StrCpyS (CapsuleVarName, sizeof(CapsuleVarName)/sizeof(CHAR16), EFI_CAPSULE_VARIABLE_NAME);
+ StrCpyS (CapsuleVarName, sizeof (CapsuleVarName)/sizeof (CHAR16), EFI_CAPSULE_VARIABLE_NAME);
TempVarName = CapsuleVarName + StrLen (CapsuleVarName);
if (mTimes > 0) {
UnicodeValueToStringS (
@@ -205,22 +208,23 @@ UpdateCapsule (
&gEfiCapsuleVendorGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS,
sizeof (UINTN),
- (VOID *) &ScatterGatherList
+ (VOID *)&ScatterGatherList
);
if (!EFI_ERROR (Status)) {
- //
- // Variable has been set successfully, increase variable index.
- //
- mTimes++;
- if(InitiateReset) {
- //
- // Firmware that encounters a capsule which has the CAPSULE_FLAGS_INITIATE_RESET Flag set in its header
- // will initiate a reset of the platform which is compatible with the passed-in capsule request and will
- // not return back to the caller.
- //
- EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
- }
+ //
+ // Variable has been set successfully, increase variable index.
+ //
+ mTimes++;
+ if (InitiateReset) {
+ //
+ // Firmware that encounters a capsule which has the CAPSULE_FLAGS_INITIATE_RESET Flag set in its header
+ // will initiate a reset of the platform which is compatible with the passed-in capsule request and will
+ // not return back to the caller.
+ //
+ EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
+ }
}
+
return Status;
}
@@ -248,16 +252,16 @@ UpdateCapsule (
EFI_STATUS
EFIAPI
QueryCapsuleCapabilities (
- IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
- IN UINTN CapsuleCount,
- OUT UINT64 *MaxiumCapsuleSize,
- OUT EFI_RESET_TYPE *ResetType
+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,
+ IN UINTN CapsuleCount,
+ OUT UINT64 *MaxiumCapsuleSize,
+ OUT EFI_RESET_TYPE *ResetType
)
{
- EFI_STATUS Status;
- UINTN ArrayNumber;
- EFI_CAPSULE_HEADER *CapsuleHeader;
- BOOLEAN NeedReset;
+ EFI_STATUS Status;
+ UINTN ArrayNumber;
+ EFI_CAPSULE_HEADER *CapsuleHeader;
+ BOOLEAN NeedReset;
//
// Capsule Count can't be less than one.
@@ -269,7 +273,7 @@ QueryCapsuleCapabilities (
//
// Check whether input parameter is valid
//
- if ((MaxiumCapsuleSize == NULL) ||(ResetType == NULL)) {
+ if ((MaxiumCapsuleSize == NULL) || (ResetType == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -285,6 +289,7 @@ QueryCapsuleCapabilities (
if ((CapsuleHeader->Flags & (CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE)) == CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) {
return EFI_INVALID_PARAMETER;
}
+
//
// A capsule which has the CAPSULE_FLAGS_INITIATE_RESET flag must have
// CAPSULE_FLAGS_PERSIST_ACROSS_RESET set in its header as well.
@@ -296,9 +301,10 @@ QueryCapsuleCapabilities (
//
// Check FMP capsule flag
//
- if (CompareGuid(&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)
- && (CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0 ) {
- return EFI_INVALID_PARAMETER;
+ if ( CompareGuid (&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)
+ && ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0))
+ {
+ return EFI_INVALID_PARAMETER;
}
//
@@ -306,7 +312,7 @@ QueryCapsuleCapabilities (
//
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) == 0) {
Status = SupportCapsuleImage (CapsuleHeader);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
}
@@ -315,7 +321,7 @@ QueryCapsuleCapabilities (
//
// Find out whether there is any capsule defined to persist across system reset.
//
- for (ArrayNumber = 0; ArrayNumber < CapsuleCount ; ArrayNumber++) {
+ for (ArrayNumber = 0; ArrayNumber < CapsuleCount; ArrayNumber++) {
CapsuleHeader = CapsuleHeaderArray[ArrayNumber];
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_PERSIST_ACROSS_RESET) != 0) {
NeedReset = TRUE;
@@ -325,25 +331,25 @@ QueryCapsuleCapabilities (
if (NeedReset) {
//
- //Check if the platform supports update capsule across a system reset
+ // Check if the platform supports update capsule across a system reset
//
if (!IsPersistAcrossResetCapsuleSupported ()) {
return EFI_UNSUPPORTED;
}
- *ResetType = EfiResetWarm;
- *MaxiumCapsuleSize = (UINT64) mMaxSizePopulateCapsule;
+
+ *ResetType = EfiResetWarm;
+ *MaxiumCapsuleSize = (UINT64)mMaxSizePopulateCapsule;
} else {
//
// For non-reset capsule image.
//
- *ResetType = EfiResetCold;
- *MaxiumCapsuleSize = (UINT64) mMaxSizeNonPopulateCapsule;
+ *ResetType = EfiResetCold;
+ *MaxiumCapsuleSize = (UINT64)mMaxSizeNonPopulateCapsule;
}
return EFI_SUCCESS;
}
-
/**
This code installs UEFI capsule runtime service.
@@ -357,14 +363,14 @@ QueryCapsuleCapabilities (
EFI_STATUS
EFIAPI
CapsuleServiceInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
- mMaxSizePopulateCapsule = PcdGet32(PcdMaxSizePopulateCapsule);
- mMaxSizeNonPopulateCapsule = PcdGet32(PcdMaxSizeNonPopulateCapsule);
+ mMaxSizePopulateCapsule = PcdGet32 (PcdMaxSizePopulateCapsule);
+ mMaxSizeNonPopulateCapsule = PcdGet32 (PcdMaxSizeNonPopulateCapsule);
//
// When PEI phase is IA32, DXE phase is X64, it is possible that capsule data are
@@ -378,8 +384,8 @@ CapsuleServiceInitialize (
//
// Install capsule runtime services into UEFI runtime service tables.
//
- gRT->UpdateCapsule = UpdateCapsule;
- gRT->QueryCapsuleCapabilities = QueryCapsuleCapabilities;
+ gRT->UpdateCapsule = UpdateCapsule;
+ gRT->QueryCapsuleCapabilities = QueryCapsuleCapabilities;
//
// Install the Capsule Architectural Protocol on a new handle
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h
index 069df3c..c671626 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleService.h
@@ -64,7 +64,7 @@ IsPersistAcrossResetCapsuleSupported (
**/
VOID
CapsuleCacheWriteBack (
- IN EFI_PHYSICAL_ADDRESS ScatterGatherList
+ IN EFI_PHYSICAL_ADDRESS ScatterGatherList
);
#endif
diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c
index eab24e4..dab297d 100644
--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c
+++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c
@@ -28,7 +28,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// 8 extra pages for PF handler.
//
-#define EXTRA_PAGE_TABLE_PAGES 8
+#define EXTRA_PAGE_TABLE_PAGES 8
/**
Allocate EfiReservedMemoryType below 4G memory address.
@@ -40,28 +40,28 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
@return Allocated Address for output.
**/
-VOID*
+VOID *
AllocateReservedMemoryBelow4G (
- IN UINTN Size
+ IN UINTN Size
)
{
UINTN Pages;
EFI_PHYSICAL_ADDRESS Address;
EFI_STATUS Status;
- VOID* Buffer;
+ VOID *Buffer;
- Pages = EFI_SIZE_TO_PAGES (Size);
+ Pages = EFI_SIZE_TO_PAGES (Size);
Address = 0xffffffff;
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- EfiReservedMemoryType,
- Pages,
- &Address
- );
+ Status = gBS->AllocatePages (
+ AllocateMaxAddress,
+ EfiReservedMemoryType,
+ Pages,
+ &Address
+ );
ASSERT_EFI_ERROR (Status);
- Buffer = (VOID *) (UINTN) Address;
+ Buffer = (VOID *)(UINTN)Address;
ZeroMem (Buffer, Size);
return Buffer;
@@ -77,16 +77,17 @@ AllocateReservedMemoryBelow4G (
VOID
EFIAPI
VariableLockCapsuleLongModeBufferVariable (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
EFI_STATUS Status;
EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock;
+
//
// Mark EFI_CAPSULE_LONG_MODE_BUFFER_NAME variable to read-only if the Variable Lock protocol exists
//
- Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **) &VariableLock);
+ Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **)&VariableLock);
if (!EFI_ERROR (Status)) {
Status = VariableLock->RequestToLock (VariableLock, EFI_CAPSULE_LONG_MODE_BUFFER_NAME, &gEfiCapsuleVendorGuid);
ASSERT_EFI_ERROR (Status);
@@ -104,23 +105,23 @@ PrepareContextForCapsulePei (
VOID
)
{
- UINTN ExtraPageTablePages;
- UINT32 RegEax;
- UINT32 RegEdx;
- UINTN TotalPagesNum;
- UINT8 PhysicalAddressBits;
- UINT32 NumberOfPml4EntriesNeeded;
- UINT32 NumberOfPdpEntriesNeeded;
- BOOLEAN Page1GSupport;
- EFI_CAPSULE_LONG_MODE_BUFFER LongModeBuffer;
- EFI_STATUS Status;
- VOID *Registration;
+ UINTN ExtraPageTablePages;
+ UINT32 RegEax;
+ UINT32 RegEdx;
+ UINTN TotalPagesNum;
+ UINT8 PhysicalAddressBits;
+ UINT32 NumberOfPml4EntriesNeeded;
+ UINT32 NumberOfPdpEntriesNeeded;
+ BOOLEAN Page1GSupport;
+ EFI_CAPSULE_LONG_MODE_BUFFER LongModeBuffer;
+ EFI_STATUS Status;
+ VOID *Registration;
//
// Calculate the size of page table, allocate the memory.
//
Page1GSupport = FALSE;
- if (PcdGetBool(PcdUse1GPageTable)) {
+ if (PcdGetBool (PcdUse1GPageTable)) {
AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
if (RegEax >= 0x80000001) {
AsmCpuid (0x80000001, NULL, NULL, NULL, &RegEdx);
@@ -142,10 +143,10 @@ PrepareContextForCapsulePei (
//
if (PhysicalAddressBits <= 39 ) {
NumberOfPml4EntriesNeeded = 1;
- NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
+ NumberOfPdpEntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 30));
} else {
NumberOfPml4EntriesNeeded = (UINT32)LShiftU64 (1, (PhysicalAddressBits - 39));
- NumberOfPdpEntriesNeeded = 512;
+ NumberOfPdpEntriesNeeded = 512;
}
if (!Page1GSupport) {
@@ -153,6 +154,7 @@ PrepareContextForCapsulePei (
} else {
TotalPagesNum = NumberOfPml4EntriesNeeded + 1;
}
+
TotalPagesNum += ExtraPageTablePages;
DEBUG ((DEBUG_INFO, "CapsuleRuntimeDxe X64 TotalPagesNum - 0x%x pages\n", TotalPagesNum));
@@ -174,20 +176,20 @@ PrepareContextForCapsulePei (
&LongModeBuffer
);
if (!EFI_ERROR (Status)) {
- //
- // Register callback function upon VariableLockProtocol
- // to lock EFI_CAPSULE_LONG_MODE_BUFFER_NAME variable to avoid malicious code to update it.
- //
- EfiCreateProtocolNotifyEvent (
- &gEdkiiVariableLockProtocolGuid,
- TPL_CALLBACK,
- VariableLockCapsuleLongModeBufferVariable,
- NULL,
- &Registration
- );
+ //
+ // Register callback function upon VariableLockProtocol
+ // to lock EFI_CAPSULE_LONG_MODE_BUFFER_NAME variable to avoid malicious code to update it.
+ //
+ EfiCreateProtocolNotifyEvent (
+ &gEdkiiVariableLockProtocolGuid,
+ TPL_CALLBACK,
+ VariableLockCapsuleLongModeBufferVariable,
+ NULL,
+ &Registration
+ );
} else {
- DEBUG ((DEBUG_ERROR, "FATAL ERROR: CapsuleLongModeBuffer cannot be saved: %r. Capsule in PEI may fail!\n", Status));
- gBS->FreePages (LongModeBuffer.StackBaseAddress, EFI_SIZE_TO_PAGES (LongModeBuffer.StackSize));
+ DEBUG ((DEBUG_ERROR, "FATAL ERROR: CapsuleLongModeBuffer cannot be saved: %r. Capsule in PEI may fail!\n", Status));
+ gBS->FreePages (LongModeBuffer.StackBaseAddress, EFI_SIZE_TO_PAGES (LongModeBuffer.StackSize));
}
}
@@ -200,7 +202,7 @@ SaveLongModeContext (
VOID
)
{
- if ((FeaturePcdGet(PcdSupportUpdateCapsuleReset)) && (FeaturePcdGet (PcdDxeIplSwitchToLongMode))) {
+ if ((FeaturePcdGet (PcdSupportUpdateCapsuleReset)) && (FeaturePcdGet (PcdDxeIplSwitchToLongMode))) {
//
// Allocate memory for Capsule IA32 PEIM, it will create page table to transfer to long mode to access capsule above 4GB.
//
diff --git a/MdeModulePkg/Universal/Console/ConPlatformDxe/ComponentName.c b/MdeModulePkg/Universal/Console/ConPlatformDxe/ComponentName.c
index 6930fae..bdac833 100644
--- a/MdeModulePkg/Universal/Console/ConPlatformDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Console/ConPlatformDxe/ComponentName.c
@@ -20,14 +20,13 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponent
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConPlatformComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConPlatformComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ConPlatformComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ConPlatformComponentNameGetControllerName,
"en"
};
-
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConPlatformDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConPlatformDriverNameTable[] = {
{
"eng;en",
L"Platform Console Management Driver"
@@ -150,11 +149,11 @@ ConPlatformComponentNameGetDriverName (
EFI_STATUS
EFIAPI
ConPlatformComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
diff --git a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c
index 46e7688..700ea9d 100644
--- a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c
+++ b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c
@@ -9,8 +9,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "ConPlatform.h"
-
-EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding = {
ConPlatformTextInDriverBindingSupported,
ConPlatformTextInDriverBindingStart,
ConPlatformTextInDriverBindingStop,
@@ -19,7 +18,7 @@ EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding = {
NULL
};
-EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding = {
ConPlatformTextOutDriverBindingSupported,
ConPlatformTextOutDriverBindingStart,
ConPlatformTextOutDriverBindingStop,
@@ -42,12 +41,12 @@ EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding = {
**/
EFI_STATUS
EFIAPI
-InitializeConPlatform(
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+InitializeConPlatform (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = EfiLibInstallDriverBindingComponentName2 (
ImageHandle,
@@ -72,7 +71,6 @@ InitializeConPlatform(
return EFI_SUCCESS;
}
-
/**
Test to see if EFI_SIMPLE_TEXT_INPUT_PROTOCOL is supported on ControllerHandle.
@@ -100,7 +98,6 @@ ConPlatformTextInDriverBindingSupported (
);
}
-
/**
Test to see if EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL is supported on ControllerHandle.
@@ -128,7 +125,6 @@ ConPlatformTextOutDriverBindingSupported (
);
}
-
/**
Test to see if the specified protocol is supported on ControllerHandle.
@@ -165,13 +161,14 @@ ConPlatformDriverBindingSupported (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Test to see if this device supports the specified Protocol.
//
Status = gBS->OpenProtocol (
ControllerHandle,
ProtocolGuid,
- (VOID **) &Interface,
+ (VOID **)&Interface,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -211,15 +208,15 @@ ConPlatformDriverBindingSupported (
EFI_STATUS
EFIAPI
ConPlatformTextInDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
- BOOLEAN IsInConInVariable;
+ EFI_STATUS Status;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
+ BOOLEAN IsInConInVariable;
//
// Get the Device Path Protocol so the environment variables can be updated
@@ -227,7 +224,7 @@ ConPlatformTextInDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath,
+ (VOID **)&DevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -235,13 +232,14 @@ ConPlatformTextInDriverBindingStart (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Open the Simple Text Input Protocol BY_DRIVER
//
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSimpleTextInProtocolGuid,
- (VOID **) &TextIn,
+ (VOID **)&TextIn,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -249,15 +247,16 @@ ConPlatformTextInDriverBindingStart (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Check if the device path is in ConIn Variable
//
IsInConInVariable = FALSE;
- Status = ConPlatformUpdateDeviceVariable (
- L"ConIn",
- DevicePath,
- Check
- );
+ Status = ConPlatformUpdateDeviceVariable (
+ L"ConIn",
+ DevicePath,
+ Check
+ );
if (!EFI_ERROR (Status)) {
IsInConInVariable = TRUE;
}
@@ -316,9 +315,9 @@ ConPlatformTextInDriverBindingStart (
EFI_STATUS
EFIAPI
ConPlatformTextOutDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
@@ -336,7 +335,7 @@ ConPlatformTextOutDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath,
+ (VOID **)&DevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -344,13 +343,14 @@ ConPlatformTextOutDriverBindingStart (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Open the Simple Text Output Protocol BY_DRIVER
//
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSimpleTextOutProtocolGuid,
- (VOID **) &TextOut,
+ (VOID **)&TextOut,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -358,25 +358,26 @@ ConPlatformTextOutDriverBindingStart (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Check if the device path is in ConOut & ErrOut Variable
//
IsInConOutVariable = FALSE;
- Status = ConPlatformUpdateDeviceVariable (
- L"ConOut",
- DevicePath,
- Check
- );
+ Status = ConPlatformUpdateDeviceVariable (
+ L"ConOut",
+ DevicePath,
+ Check
+ );
if (!EFI_ERROR (Status)) {
IsInConOutVariable = TRUE;
}
IsInErrOutVariable = FALSE;
- Status = ConPlatformUpdateDeviceVariable (
- L"ErrOut",
- DevicePath,
- Check
- );
+ Status = ConPlatformUpdateDeviceVariable (
+ L"ErrOut",
+ DevicePath,
+ Check
+ );
if (!EFI_ERROR (Status)) {
IsInErrOutVariable = TRUE;
}
@@ -407,13 +408,14 @@ ConPlatformTextOutDriverBindingStart (
//
if (IsInConOutVariable) {
NeedClose = FALSE;
- Status = gBS->InstallMultipleProtocolInterfaces (
- &ControllerHandle,
- &gEfiConsoleOutDeviceGuid,
- NULL,
- NULL
- );
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &ControllerHandle,
+ &gEfiConsoleOutDeviceGuid,
+ NULL,
+ NULL
+ );
}
+
//
// If the device path is an instance in the ErrOut environment variable,
// then install EfiStandardErrorDeviceGuid onto ControllerHandle
@@ -472,7 +474,7 @@ ConPlatformTextInDriverBindingStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath,
+ (VOID **)&DevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -513,7 +515,6 @@ ConPlatformTextInDriverBindingStop (
return EFI_SUCCESS;
}
-
/**
Stop this driver on ControllerHandle by removing Console Out Devcice GUID
and closing the Simple Text Output protocol on ControllerHandle.
@@ -546,7 +547,7 @@ ConPlatformTextOutDriverBindingStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath,
+ (VOID **)&DevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -586,16 +587,15 @@ ConPlatformTextOutDriverBindingStop (
// Close the Simple Text Output Protocol
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiSimpleTextOutProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiSimpleTextOutProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return EFI_SUCCESS;
}
-
/**
Uninstall the specified protocol.
@@ -631,7 +631,7 @@ ConPlatformUnInstallProtocol (
);
}
- return ;
+ return;
}
/**
@@ -650,15 +650,15 @@ ConPlatformUnInstallProtocol (
**/
VOID *
ConPlatformGetVariable (
- IN CHAR16 *Name
+ IN CHAR16 *Name
)
{
EFI_STATUS Status;
VOID *Buffer;
UINTN BufferSize;
- BufferSize = 0;
- Buffer = NULL;
+ BufferSize = 0;
+ Buffer = NULL;
//
// Test to see if the variable exists. If it doesn't, return NULL.
@@ -679,6 +679,7 @@ ConPlatformGetVariable (
if (Buffer == NULL) {
return NULL;
}
+
//
// Read variable into the allocated buffer.
//
@@ -722,9 +723,10 @@ IsGopSibling (
EFI_DEVICE_PATH_PROTOCOL *NodeRight;
for (NodeLeft = Left; !IsDevicePathEndType (NodeLeft); NodeLeft = NextDevicePathNode (NodeLeft)) {
- if ((DevicePathType (NodeLeft) == ACPI_DEVICE_PATH && DevicePathSubType (NodeLeft) == ACPI_ADR_DP) ||
- (DevicePathType (NodeLeft) == HARDWARE_DEVICE_PATH && DevicePathSubType (NodeLeft) == HW_CONTROLLER_DP &&
- DevicePathType (NextDevicePathNode (NodeLeft)) == ACPI_DEVICE_PATH && DevicePathSubType (NextDevicePathNode (NodeLeft)) == ACPI_ADR_DP)) {
+ if (((DevicePathType (NodeLeft) == ACPI_DEVICE_PATH) && (DevicePathSubType (NodeLeft) == ACPI_ADR_DP)) ||
+ ((DevicePathType (NodeLeft) == HARDWARE_DEVICE_PATH) && (DevicePathSubType (NodeLeft) == HW_CONTROLLER_DP) &&
+ (DevicePathType (NextDevicePathNode (NodeLeft)) == ACPI_DEVICE_PATH) && (DevicePathSubType (NextDevicePathNode (NodeLeft)) == ACPI_ADR_DP)))
+ {
break;
}
}
@@ -734,9 +736,10 @@ IsGopSibling (
}
for (NodeRight = Right; !IsDevicePathEndType (NodeRight); NodeRight = NextDevicePathNode (NodeRight)) {
- if ((DevicePathType (NodeRight) == ACPI_DEVICE_PATH && DevicePathSubType (NodeRight) == ACPI_ADR_DP) ||
- (DevicePathType (NodeRight) == HARDWARE_DEVICE_PATH && DevicePathSubType (NodeRight) == HW_CONTROLLER_DP &&
- DevicePathType (NextDevicePathNode (NodeRight)) == ACPI_DEVICE_PATH && DevicePathSubType (NextDevicePathNode (NodeRight)) == ACPI_ADR_DP)) {
+ if (((DevicePathType (NodeRight) == ACPI_DEVICE_PATH) && (DevicePathSubType (NodeRight) == ACPI_ADR_DP)) ||
+ ((DevicePathType (NodeRight) == HARDWARE_DEVICE_PATH) && (DevicePathSubType (NodeRight) == HW_CONTROLLER_DP) &&
+ (DevicePathType (NextDevicePathNode (NodeRight)) == ACPI_DEVICE_PATH) && (DevicePathSubType (NextDevicePathNode (NodeRight)) == ACPI_ADR_DP)))
+ {
break;
}
}
@@ -745,11 +748,11 @@ IsGopSibling (
return FALSE;
}
- if (((UINTN) NodeLeft - (UINTN) Left) != ((UINTN) NodeRight - (UINTN) Right)) {
+ if (((UINTN)NodeLeft - (UINTN)Left) != ((UINTN)NodeRight - (UINTN)Right)) {
return FALSE;
}
- return (BOOLEAN) (CompareMem (Left, Right, (UINTN) NodeLeft - (UINTN) Left) == 0);
+ return (BOOLEAN)(CompareMem (Left, Right, (UINTN)NodeLeft - (UINTN)Left) == 0);
}
/**
@@ -765,8 +768,8 @@ IsGopSibling (
**/
BOOLEAN
MatchUsbClass (
- IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN USB_CLASS_DEVICE_PATH *UsbClass
+ IN EFI_USB_IO_PROTOCOL *UsbIo,
+ IN USB_CLASS_DEVICE_PATH *UsbClass
)
{
EFI_STATUS Status;
@@ -777,7 +780,8 @@ MatchUsbClass (
UINT8 DeviceProtocol;
if ((DevicePathType (UsbClass) != MESSAGING_DEVICE_PATH) ||
- (DevicePathSubType (UsbClass) != MSG_USB_CLASS_DP)){
+ (DevicePathSubType (UsbClass) != MSG_USB_CLASS_DP))
+ {
return FALSE;
}
@@ -790,12 +794,14 @@ MatchUsbClass (
}
if ((UsbClass->VendorId != 0xffff) &&
- (UsbClass->VendorId != DevDesc.IdVendor)) {
+ (UsbClass->VendorId != DevDesc.IdVendor))
+ {
return FALSE;
}
if ((UsbClass->ProductId != 0xffff) &&
- (UsbClass->ProductId != DevDesc.IdProduct)) {
+ (UsbClass->ProductId != DevDesc.IdProduct))
+ {
return FALSE;
}
@@ -821,17 +827,20 @@ MatchUsbClass (
// Check Class, SubClass and Protocol.
//
if ((UsbClass->DeviceClass != 0xff) &&
- (UsbClass->DeviceClass != DeviceClass)) {
+ (UsbClass->DeviceClass != DeviceClass))
+ {
return FALSE;
}
if ((UsbClass->DeviceSubClass != 0xff) &&
- (UsbClass->DeviceSubClass != DeviceSubClass)) {
+ (UsbClass->DeviceSubClass != DeviceSubClass))
+ {
return FALSE;
}
if ((UsbClass->DeviceProtocol != 0xff) &&
- (UsbClass->DeviceProtocol != DeviceProtocol)) {
+ (UsbClass->DeviceProtocol != DeviceProtocol))
+ {
return FALSE;
}
@@ -851,23 +860,24 @@ MatchUsbClass (
**/
BOOLEAN
MatchUsbWwid (
- IN EFI_USB_IO_PROTOCOL *UsbIo,
- IN USB_WWID_DEVICE_PATH *UsbWwid
+ IN EFI_USB_IO_PROTOCOL *UsbIo,
+ IN USB_WWID_DEVICE_PATH *UsbWwid
)
{
- EFI_STATUS Status;
- EFI_USB_DEVICE_DESCRIPTOR DevDesc;
- EFI_USB_INTERFACE_DESCRIPTOR IfDesc;
- UINT16 *LangIdTable;
- UINT16 TableSize;
- UINT16 Index;
- CHAR16 *CompareStr;
- UINTN CompareLen;
- CHAR16 *SerialNumberStr;
- UINTN Length;
+ EFI_STATUS Status;
+ EFI_USB_DEVICE_DESCRIPTOR DevDesc;
+ EFI_USB_INTERFACE_DESCRIPTOR IfDesc;
+ UINT16 *LangIdTable;
+ UINT16 TableSize;
+ UINT16 Index;
+ CHAR16 *CompareStr;
+ UINTN CompareLen;
+ CHAR16 *SerialNumberStr;
+ UINTN Length;
if ((DevicePathType (UsbWwid) != MESSAGING_DEVICE_PATH) ||
- (DevicePathSubType (UsbWwid) != MSG_USB_WWID_DP)) {
+ (DevicePathSubType (UsbWwid) != MSG_USB_WWID_DP))
+ {
return FALSE;
}
@@ -878,8 +888,10 @@ MatchUsbWwid (
if (EFI_ERROR (Status)) {
return FALSE;
}
+
if ((DevDesc.IdVendor != UsbWwid->VendorId) ||
- (DevDesc.IdProduct != UsbWwid->ProductId)) {
+ (DevDesc.IdProduct != UsbWwid->ProductId))
+ {
return FALSE;
}
@@ -890,6 +902,7 @@ MatchUsbWwid (
if (EFI_ERROR (Status)) {
return FALSE;
}
+
if (IfDesc.InterfaceNumber != UsbWwid->InterfaceNumber) {
return FALSE;
}
@@ -904,9 +917,9 @@ MatchUsbWwid (
//
// Get all supported languages.
//
- TableSize = 0;
+ TableSize = 0;
LangIdTable = NULL;
- Status = UsbIo->UsbGetSupportedLanguages (UsbIo, &LangIdTable, &TableSize);
+ Status = UsbIo->UsbGetSupportedLanguages (UsbIo, &LangIdTable, &TableSize);
if (EFI_ERROR (Status) || (TableSize == 0) || (LangIdTable == NULL)) {
return FALSE;
}
@@ -914,7 +927,7 @@ MatchUsbWwid (
//
// Serial number in USB WWID device path is the last 64-or-less UTF-16 characters.
//
- CompareStr = (CHAR16 *) (UINTN) (UsbWwid + 1);
+ CompareStr = (CHAR16 *)(UINTN)(UsbWwid + 1);
CompareLen = (DevicePathNodeLength (UsbWwid) - sizeof (USB_WWID_DEVICE_PATH)) / sizeof (CHAR16);
if (CompareStr[CompareLen - 1] == L'\0') {
CompareLen--;
@@ -925,19 +938,20 @@ MatchUsbWwid (
//
for (Index = 0; Index < TableSize / sizeof (UINT16); Index++) {
SerialNumberStr = NULL;
- Status = UsbIo->UsbGetStringDescriptor (
- UsbIo,
- LangIdTable[Index],
- DevDesc.StrSerialNumber,
- &SerialNumberStr
- );
+ Status = UsbIo->UsbGetStringDescriptor (
+ UsbIo,
+ LangIdTable[Index],
+ DevDesc.StrSerialNumber,
+ &SerialNumberStr
+ );
if (EFI_ERROR (Status) || (SerialNumberStr == NULL)) {
continue;
}
Length = StrLen (SerialNumberStr);
if ((Length >= CompareLen) &&
- (CompareMem (SerialNumberStr + Length - CompareLen, CompareStr, CompareLen * sizeof (CHAR16)) == 0)) {
+ (CompareMem (SerialNumberStr + Length - CompareLen, CompareStr, CompareLen * sizeof (CHAR16)) == 0))
+ {
FreePool (SerialNumberStr);
return TRUE;
}
@@ -971,13 +985,15 @@ MatchUsbShortformDevicePath (
EFI_HANDLE Handle;
for ( ShortformNode = ShortformPath
- ; !IsDevicePathEnd (ShortformNode)
- ; ShortformNode = NextDevicePathNode (ShortformNode)
- ) {
+ ; !IsDevicePathEnd (ShortformNode)
+ ; ShortformNode = NextDevicePathNode (ShortformNode)
+ )
+ {
if ((DevicePathType (ShortformNode) == MESSAGING_DEVICE_PATH) &&
((DevicePathSubType (ShortformNode) == MSG_USB_CLASS_DP) ||
(DevicePathSubType (ShortformNode) == MSG_USB_WWID_DP))
- ) {
+ )
+ {
break;
}
}
@@ -992,15 +1008,17 @@ MatchUsbShortformDevicePath (
//
// Compare the parent device path when the ShortformPath doesn't start with short-form node.
//
- ParentDevicePathSize = (UINTN) ShortformNode - (UINTN) ShortformPath;
+ ParentDevicePathSize = (UINTN)ShortformNode - (UINTN)ShortformPath;
RemainingDevicePath = FullPath;
Status = gBS->LocateDevicePath (&gEfiUsbIoProtocolGuid, &RemainingDevicePath, &Handle);
if (EFI_ERROR (Status)) {
return FALSE;
}
+
if (ParentDevicePathSize != 0) {
- if ((ParentDevicePathSize > (UINTN) RemainingDevicePath - (UINTN) FullPath) ||
- (CompareMem (FullPath, ShortformPath, ParentDevicePathSize) != 0)) {
+ if ((ParentDevicePathSize > (UINTN)RemainingDevicePath - (UINTN)FullPath) ||
+ (CompareMem (FullPath, ShortformPath, ParentDevicePathSize) != 0))
+ {
return FALSE;
}
}
@@ -1008,10 +1026,10 @@ MatchUsbShortformDevicePath (
//
// Compar the USB layer.
//
- Status = gBS->HandleProtocol(
+ Status = gBS->HandleProtocol (
Handle,
&gEfiUsbIoProtocolGuid,
- (VOID **) &UsbIo
+ (VOID **)&UsbIo
);
ASSERT_EFI_ERROR (Status);
@@ -1071,15 +1089,16 @@ ConPlatformMatchDevicePaths (
TempDevicePath1 = NULL;
- DevicePath = Multi;
- DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size);
+ DevicePath = Multi;
+ DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size);
//
// Search for the match of 'Single' in 'Multi'
//
while (DevicePathInst != NULL) {
if ((CompareMem (Single, DevicePathInst, Size) == 0) ||
- IsGopSibling (Single, DevicePathInst) || MatchUsbShortformDevicePath (Single, DevicePathInst)) {
+ IsGopSibling (Single, DevicePathInst) || MatchUsbShortformDevicePath (Single, DevicePathInst))
+ {
if (!Delete) {
//
// If Delete is FALSE, return EFI_SUCCESS if Single is found in Multi.
@@ -1100,6 +1119,7 @@ ConPlatformMatchDevicePaths (
if (TempDevicePath1 != NULL) {
FreePool (TempDevicePath1);
}
+
TempDevicePath1 = TempDevicePath2;
}
}
@@ -1134,9 +1154,9 @@ ConPlatformMatchDevicePaths (
**/
EFI_STATUS
ConPlatformUpdateDeviceVariable (
- IN CHAR16 *VariableName,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN CONPLATFORM_VAR_OPERATION Operation
+ IN CHAR16 *VariableName,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN CONPLATFORM_VAR_OPERATION Operation
)
{
EFI_STATUS Status;
@@ -1176,10 +1196,11 @@ ConPlatformUpdateDeviceVariable (
return Status;
}
+
//
// We reach here to append a device path that does not exist in variable.
//
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
NewVariableDevicePath = AppendDevicePathInstance (
VariableDevicePath,
DevicePath
@@ -1187,7 +1208,6 @@ ConPlatformUpdateDeviceVariable (
if (NewVariableDevicePath == NULL) {
Status = EFI_OUT_OF_RESOURCES;
}
-
} else {
//
// We reach here to remove DevicePath from the environment variable that
@@ -1239,22 +1259,23 @@ ConPlatformUpdateDeviceVariable (
**/
BOOLEAN
ConPlatformUpdateGopCandidate (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
- EFI_STATUS Status;
- EFI_HANDLE PciHandle;
- EFI_HANDLE GopHandle;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EFI_STATUS Status;
+ EFI_HANDLE PciHandle;
+ EFI_HANDLE GopHandle;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
//
// Check whether it's a GOP device.
//
TempDevicePath = DevicePath;
- Status = gBS->LocateDevicePath (&gEfiGraphicsOutputProtocolGuid, &TempDevicePath, &GopHandle);
+ Status = gBS->LocateDevicePath (&gEfiGraphicsOutputProtocolGuid, &TempDevicePath, &GopHandle);
if (EFI_ERROR (Status)) {
return FALSE;
}
+
//
// Get the parent PciIo handle in order to find all the children
//
@@ -1262,10 +1283,12 @@ ConPlatformUpdateGopCandidate (
if (EFI_ERROR (Status)) {
return FALSE;
}
+
TempDevicePath = EfiBootManagerGetGopDevicePath (PciHandle);
if (TempDevicePath != NULL) {
ConPlatformUpdateDeviceVariable (L"ConOutDev", TempDevicePath, Append);
ConPlatformUpdateDeviceVariable (L"ErrOutDev", TempDevicePath, Append);
}
+
return TRUE;
}
diff --git a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h
index f11af21..f63b25c 100644
--- a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h
+++ b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h
@@ -36,13 +36,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Driver Binding Externs
//
-extern EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2;
-extern EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2;
-
+extern EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2;
+extern EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2;
typedef enum {
Check,
@@ -129,9 +128,9 @@ ConPlatformTextOutDriverBindingSupported (
EFI_STATUS
EFIAPI
ConPlatformTextInDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Handle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -156,9 +155,9 @@ ConPlatformTextInDriverBindingStart (
EFI_STATUS
EFIAPI
ConPlatformTextOutDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Handle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Handle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -235,7 +234,7 @@ ConPlatformUnInstallProtocol (
**/
VOID *
ConPlatformGetVariable (
- IN CHAR16 *Name
+ IN CHAR16 *Name
);
/**
@@ -282,14 +281,15 @@ ConPlatformMatchDevicePaths (
**/
EFI_STATUS
ConPlatformUpdateDeviceVariable (
- IN CHAR16 *VariableName,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN CONPLATFORM_VAR_OPERATION Operation
+ IN CHAR16 *VariableName,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN CONPLATFORM_VAR_OPERATION Operation
);
//
// EFI Component Name Functions
//
+
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -332,7 +332,6 @@ ConPlatformComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -394,11 +393,11 @@ ConPlatformComponentNameGetDriverName (
EFI_STATUS
EFIAPI
ConPlatformComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
/**
@@ -413,7 +412,7 @@ ConPlatformComponentNameGetControllerName (
**/
BOOLEAN
ConPlatformUpdateGopCandidate (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
#endif
diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ComponentName.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ComponentName.c
index 72c01ec..fd9c00c 100644
--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ComponentName.c
@@ -20,13 +20,12 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterConInComp
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterConInComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ConSplitterComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ConSplitterConInComponentNameGetControllerName,
"en"
};
-
//
// EFI Component Name Protocol
//
@@ -39,16 +38,16 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterSimplePoi
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterSimplePointerComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ConSplitterComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ConSplitterSimplePointerComponentNameGetControllerName,
"en"
};
//
// EFI Component Name Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName = {
ConSplitterComponentNameGetDriverName,
ConSplitterAbsolutePointerComponentNameGetControllerName,
"eng"
@@ -57,9 +56,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePo
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterAbsolutePointerComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ConSplitterComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ConSplitterAbsolutePointerComponentNameGetControllerName,
"en"
};
@@ -75,13 +74,12 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterConOutCom
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterConOutComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ConSplitterComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ConSplitterConOutComponentNameGetControllerName,
"en"
};
-
//
// EFI Component Name Protocol
//
@@ -94,17 +92,16 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterStdErrCom
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterStdErrComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ConSplitterComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ConSplitterStdErrComponentNameGetControllerName,
"en"
};
-
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterDriverNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"Console Splitter Driver"
+ (CHAR16 *)L"Console Splitter Driver"
},
{
NULL,
@@ -112,10 +109,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterDriverNameTab
}
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConInControllerNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConInControllerNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"Primary Console Input Device"
+ (CHAR16 *)L"Primary Console Input Device"
},
{
NULL,
@@ -123,10 +120,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConInControll
}
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterSimplePointerControllerNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterSimplePointerControllerNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"Primary Simple Pointer Device"
+ (CHAR16 *)L"Primary Simple Pointer Device"
},
{
NULL,
@@ -134,7 +131,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterSimplePointer
}
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterAbsolutePointerControllerNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterAbsolutePointerControllerNameTable[] = {
{
"eng;en",
(CHAR16 *)L"Primary Absolute Pointer Device"
@@ -145,10 +142,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterAbsolutePoint
}
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConOutControllerNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConOutControllerNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"Primary Console Output Device"
+ (CHAR16 *)L"Primary Console Output Device"
},
{
NULL,
@@ -156,10 +153,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConOutControl
}
};
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterStdErrControllerNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterStdErrControllerNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"Primary Standard Error Device"
+ (CHAR16 *)L"Primary Standard Error Device"
},
{
NULL,
@@ -252,14 +249,14 @@ ConSplitterComponentNameGetDriverName (
**/
EFI_STATUS
ConSplitterTestControllerHandles (
- IN CONST EFI_HANDLE ControllerHandle,
- IN CONST EFI_HANDLE DriverBindingHandle,
- IN CONST EFI_GUID *ProtocolGuid,
- IN EFI_HANDLE ChildHandle,
- IN CONST EFI_GUID *ConsumsedGuid
+ IN CONST EFI_HANDLE ControllerHandle,
+ IN CONST EFI_HANDLE DriverBindingHandle,
+ IN CONST EFI_GUID *ProtocolGuid,
+ IN EFI_HANDLE ChildHandle,
+ IN CONST EFI_GUID *ConsumsedGuid
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// here ChildHandle is not an Optional parameter.
@@ -363,14 +360,14 @@ ConSplitterTestControllerHandles (
EFI_STATUS
EFIAPI
ConSplitterConInComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = ConSplitterTestControllerHandles (
ControllerHandle,
@@ -463,14 +460,14 @@ ConSplitterConInComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = ConSplitterTestControllerHandles (
ControllerHandle,
@@ -492,7 +489,6 @@ ConSplitterSimplePointerComponentNameGetControllerName (
);
}
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by an EFI Driver.
@@ -540,14 +536,14 @@ ConSplitterSimplePointerComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = ConSplitterTestControllerHandles (
ControllerHandle,
@@ -640,14 +636,14 @@ ConSplitterAbsolutePointerComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterConOutComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = ConSplitterTestControllerHandles (
ControllerHandle,
@@ -740,14 +736,14 @@ ConSplitterConOutComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterStdErrComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = ConSplitterTestControllerHandles (
ControllerHandle,
diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
index 114c46a..8b5e62e 100644
--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
+++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
@@ -35,33 +35,33 @@ BOOLEAN mConInIsConnect = FALSE;
//
GLOBAL_REMOVE_IF_UNREFERENCED TEXT_IN_SPLITTER_PRIVATE_DATA mConIn = {
TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE,
- (EFI_HANDLE) NULL,
+ (EFI_HANDLE)NULL,
{
ConSplitterTextInReset,
ConSplitterTextInReadKeyStroke,
- (EFI_EVENT) NULL
+ (EFI_EVENT)NULL
},
0,
- (EFI_SIMPLE_TEXT_INPUT_PROTOCOL **) NULL,
+ (EFI_SIMPLE_TEXT_INPUT_PROTOCOL **)NULL,
0,
{
ConSplitterTextInResetEx,
ConSplitterTextInReadKeyStrokeEx,
- (EFI_EVENT) NULL,
+ (EFI_EVENT)NULL,
ConSplitterTextInSetState,
ConSplitterTextInRegisterKeyNotify,
ConSplitterTextInUnregisterKeyNotify
},
0,
- (EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL **) NULL,
+ (EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL **)NULL,
0,
{
- (LIST_ENTRY *) NULL,
- (LIST_ENTRY *) NULL
+ (LIST_ENTRY *)NULL,
+ (LIST_ENTRY *)NULL
},
- (EFI_KEY_DATA *) NULL,
+ (EFI_KEY_DATA *)NULL,
0,
0,
FALSE,
@@ -69,8 +69,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_IN_SPLITTER_PRIVATE_DATA mConIn = {
{
ConSplitterSimplePointerReset,
ConSplitterSimplePointerGetState,
- (EFI_EVENT) NULL,
- (EFI_SIMPLE_POINTER_MODE *) NULL
+ (EFI_EVENT)NULL,
+ (EFI_SIMPLE_POINTER_MODE *)NULL
},
{
0x10000,
@@ -80,14 +80,14 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_IN_SPLITTER_PRIVATE_DATA mConIn = {
TRUE
},
0,
- (EFI_SIMPLE_POINTER_PROTOCOL **) NULL,
+ (EFI_SIMPLE_POINTER_PROTOCOL **)NULL,
0,
{
ConSplitterAbsolutePointerReset,
ConSplitterAbsolutePointerGetState,
- (EFI_EVENT) NULL,
- (EFI_ABSOLUTE_POINTER_MODE *) NULL
+ (EFI_EVENT)NULL,
+ (EFI_ABSOLUTE_POINTER_MODE *)NULL
},
{
0, // AbsoluteMinX
@@ -99,7 +99,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_IN_SPLITTER_PRIVATE_DATA mConIn = {
0 // Attributes
},
0,
- (EFI_ABSOLUTE_POINTER_PROTOCOL **) NULL,
+ (EFI_ABSOLUTE_POINTER_PROTOCOL **)NULL,
0,
FALSE,
@@ -107,11 +107,10 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_IN_SPLITTER_PRIVATE_DATA mConIn = {
FALSE
};
-
//
// Uga Draw Protocol Private Data template
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UGA_DRAW_PROTOCOL mUgaDrawProtocolTemplate = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UGA_DRAW_PROTOCOL mUgaDrawProtocolTemplate = {
ConSplitterUgaDrawGetMode,
ConSplitterUgaDrawSetMode,
ConSplitterUgaDrawBlt
@@ -120,20 +119,19 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UGA_DRAW_PROTOCOL mUgaDrawProtocolTemplate = {
//
// Graphics Output Protocol Private Data template
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_GRAPHICS_OUTPUT_PROTOCOL mGraphicsOutputProtocolTemplate = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_GRAPHICS_OUTPUT_PROTOCOL mGraphicsOutputProtocolTemplate = {
ConSplitterGraphicsOutputQueryMode,
ConSplitterGraphicsOutputSetMode,
ConSplitterGraphicsOutputBlt,
NULL
};
-
//
// Text Out Splitter Private Data template
//
-GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
+GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE,
- (EFI_HANDLE) NULL,
+ (EFI_HANDLE)NULL,
{
ConSplitterTextOutReset,
ConSplitterTextOutOutputString,
@@ -144,7 +142,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
ConSplitterTextOutClearScreen,
ConSplitterTextOutSetCursorPosition,
ConSplitterTextOutEnableCursor,
- (EFI_SIMPLE_TEXT_OUTPUT_MODE *) NULL
+ (EFI_SIMPLE_TEXT_OUTPUT_MODE *)NULL
},
{
1,
@@ -171,25 +169,25 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
NULL,
NULL
},
- (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *) NULL,
+ (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *)NULL,
0,
0,
0,
- (TEXT_OUT_AND_GOP_DATA *) NULL,
+ (TEXT_OUT_AND_GOP_DATA *)NULL,
0,
- (TEXT_OUT_SPLITTER_QUERY_DATA *) NULL,
+ (TEXT_OUT_SPLITTER_QUERY_DATA *)NULL,
0,
- (INT32 *) NULL,
+ (INT32 *)NULL,
FALSE
};
//
// Standard Error Text Out Splitter Data Template
//
-GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
+GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE,
- (EFI_HANDLE) NULL,
+ (EFI_HANDLE)NULL,
{
ConSplitterTextOutReset,
ConSplitterTextOutOutputString,
@@ -200,7 +198,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
ConSplitterTextOutClearScreen,
ConSplitterTextOutSetCursorPosition,
ConSplitterTextOutEnableCursor,
- (EFI_SIMPLE_TEXT_OUTPUT_MODE *) NULL
+ (EFI_SIMPLE_TEXT_OUTPUT_MODE *)NULL
},
{
1,
@@ -227,23 +225,23 @@ GLOBAL_REMOVE_IF_UNREFERENCED TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
NULL,
NULL
},
- (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *) NULL,
+ (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *)NULL,
0,
0,
0,
- (TEXT_OUT_AND_GOP_DATA *) NULL,
+ (TEXT_OUT_AND_GOP_DATA *)NULL,
0,
- (TEXT_OUT_SPLITTER_QUERY_DATA *) NULL,
+ (TEXT_OUT_SPLITTER_QUERY_DATA *)NULL,
0,
- (INT32 *) NULL,
+ (INT32 *)NULL,
FALSE
};
//
// Driver binding instance for Console Input Device
//
-EFI_DRIVER_BINDING_PROTOCOL gConSplitterConInDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConSplitterConInDriverBinding = {
ConSplitterConInDriverBindingSupported,
ConSplitterConInDriverBindingStart,
ConSplitterConInDriverBindingStop,
@@ -255,7 +253,7 @@ EFI_DRIVER_BINDING_PROTOCOL gConSplitterConInDriverBinding = {
//
// Driver binding instance for Console Out device
//
-EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding = {
ConSplitterConOutDriverBindingSupported,
ConSplitterConOutDriverBindingStart,
ConSplitterConOutDriverBindingStop,
@@ -267,7 +265,7 @@ EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding = {
//
// Driver binding instance for Standard Error device
//
-EFI_DRIVER_BINDING_PROTOCOL gConSplitterStdErrDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConSplitterStdErrDriverBinding = {
ConSplitterStdErrDriverBindingSupported,
ConSplitterStdErrDriverBindingStart,
ConSplitterStdErrDriverBindingStop,
@@ -279,7 +277,7 @@ EFI_DRIVER_BINDING_PROTOCOL gConSplitterStdErrDriverBinding = {
//
// Driver binding instance for Simple Pointer protocol
//
-EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding = {
ConSplitterSimplePointerDriverBindingSupported,
ConSplitterSimplePointerDriverBindingStart,
ConSplitterSimplePointerDriverBindingStop,
@@ -291,7 +289,7 @@ EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding = {
//
// Driver binding instance for Absolute Pointer protocol
//
-EFI_DRIVER_BINDING_PROTOCOL gConSplitterAbsolutePointerDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gConSplitterAbsolutePointerDriverBinding = {
ConSplitterAbsolutePointerDriverBindingSupported,
ConSplitterAbsolutePointerDriverBindingStart,
ConSplitterAbsolutePointerDriverBindingStop,
@@ -313,13 +311,14 @@ EFI_DRIVER_BINDING_PROTOCOL gConSplitterAbsolutePointerDriverBinding =
EFI_STATUS
EFIAPI
ToggleStateSyncKeyNotify (
- IN EFI_KEY_DATA *KeyData
+ IN EFI_KEY_DATA *KeyData
)
{
- UINTN Index;
+ UINTN Index;
if (((KeyData->KeyState.KeyToggleState & KEY_STATE_VALID_EXPOSED) == KEY_STATE_VALID_EXPOSED) &&
- (KeyData->KeyState.KeyToggleState != mConIn.PhysicalKeyToggleState)) {
+ (KeyData->KeyState.KeyToggleState != mConIn.PhysicalKeyToggleState))
+ {
//
// There is toggle state change, sync to other console input devices.
//
@@ -329,6 +328,7 @@ ToggleStateSyncKeyNotify (
&KeyData->KeyState.KeyToggleState
);
}
+
mConIn.PhysicalKeyToggleState = KeyData->KeyState.KeyToggleState;
DEBUG ((DEBUG_INFO, "Current toggle state is 0x%02x\n", mConIn.PhysicalKeyToggleState));
}
@@ -347,8 +347,8 @@ ToggleStateSyncInitialization (
IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private
)
{
- EFI_KEY_DATA KeyData;
- VOID *NotifyHandle;
+ EFI_KEY_DATA KeyData;
+ VOID *NotifyHandle;
//
// Initialize PhysicalKeyToggleState that will be synced to new console
@@ -368,9 +368,9 @@ ToggleStateSyncInitialization (
//
// Register key notify for toggle state sync.
//
- KeyData.Key.ScanCode = SCAN_NULL;
- KeyData.Key.UnicodeChar = CHAR_NULL;
- KeyData.KeyState.KeyShiftState = 0;
+ KeyData.Key.ScanCode = SCAN_NULL;
+ KeyData.Key.UnicodeChar = CHAR_NULL;
+ KeyData.KeyState.KeyShiftState = 0;
KeyData.KeyState.KeyToggleState = 0;
Private->TextInEx.RegisterKeyNotify (
&Private->TextInEx,
@@ -391,7 +391,7 @@ ToggleStateSyncReInitialization (
IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private
)
{
- UINTN Index;
+ UINTN Index;
//
// Reinitialize PhysicalKeyToggleState that will be synced to new console
@@ -433,12 +433,12 @@ ToggleStateSyncReInitialization (
**/
EFI_STATUS
EFIAPI
-ConSplitterDriverEntry(
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ConSplitterDriverEntry (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Install driver model protocol(s).
@@ -496,8 +496,10 @@ ConSplitterDriverEntry(
//
// Either Graphics Output protocol or UGA Draw protocol must be supported.
//
- ASSERT (FeaturePcdGet (PcdConOutGopSupport) ||
- FeaturePcdGet (PcdConOutUgaSupport));
+ ASSERT (
+ FeaturePcdGet (PcdConOutGopSupport) ||
+ FeaturePcdGet (PcdConOutUgaSupport)
+ );
//
// The driver creates virtual handles for ConIn, ConOut, StdErr.
@@ -526,10 +528,11 @@ ConSplitterDriverEntry(
// Update the EFI System Table with new virtual console
// and update the pointer to Simple Text Input protocol.
//
- gST->ConsoleInHandle = mConIn.VirtualHandle;
- gST->ConIn = &mConIn.TextIn;
+ gST->ConsoleInHandle = mConIn.VirtualHandle;
+ gST->ConIn = &mConIn.TextIn;
}
}
+
//
// Create virtual device handle for ConOut Splitter
//
@@ -549,7 +552,6 @@ ConSplitterDriverEntry(
gST->ConsoleOutHandle = mConOut.VirtualHandle;
gST->ConOut = &mConOut.TextOut;
}
-
}
//
@@ -568,8 +570,8 @@ ConSplitterDriverEntry(
// Update the EFI System Table with new virtual console
// and update the pointer to Text Output protocol.
//
- gST->StandardErrorHandle = mStdErr.VirtualHandle;
- gST->StdErr = &mStdErr.TextOut;
+ gST->StandardErrorHandle = mStdErr.VirtualHandle;
+ gST->StdErr = &mStdErr.TextOut;
}
}
@@ -578,13 +580,12 @@ ConSplitterDriverEntry(
//
gST->Hdr.CRC32 = 0;
gBS->CalculateCrc32 (
- (UINT8 *) &gST->Hdr,
- gST->Hdr.HeaderSize,
- &gST->Hdr.CRC32
- );
+ (UINT8 *)&gST->Hdr,
+ gST->Hdr.HeaderSize,
+ &gST->Hdr.CRC32
+ );
return EFI_SUCCESS;
-
}
/**
@@ -600,7 +601,7 @@ ConSplitterDriverEntry(
**/
EFI_STATUS
ConSplitterTextInConstructor (
- TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate
+ TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate
)
{
EFI_STATUS Status;
@@ -610,10 +611,10 @@ ConSplitterTextInConstructor (
// Allocate buffer for Simple Text Input device
//
Status = ConSplitterGrowBuffer (
- sizeof (EFI_SIMPLE_TEXT_INPUT_PROTOCOL *),
- &ConInPrivate->TextInListCount,
- (VOID **) &ConInPrivate->TextInList
- );
+ sizeof (EFI_SIMPLE_TEXT_INPUT_PROTOCOL *),
+ &ConInPrivate->TextInListCount,
+ (VOID **)&ConInPrivate->TextInList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
@@ -634,11 +635,11 @@ ConSplitterTextInConstructor (
// Allocate buffer for KeyQueue
//
TextInExListCount = ConInPrivate->TextInExListCount;
- Status = ConSplitterGrowBuffer (
- sizeof (EFI_KEY_DATA),
- &TextInExListCount,
- (VOID **) &ConInPrivate->KeyQueue
- );
+ Status = ConSplitterGrowBuffer (
+ sizeof (EFI_KEY_DATA),
+ &TextInExListCount,
+ (VOID **)&ConInPrivate->KeyQueue
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
@@ -649,11 +650,12 @@ ConSplitterTextInConstructor (
Status = ConSplitterGrowBuffer (
sizeof (EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *),
&ConInPrivate->TextInExListCount,
- (VOID **) &ConInPrivate->TextInExList
+ (VOID **)&ConInPrivate->TextInExList
);
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Create Event to wait for a key Ex
//
@@ -675,23 +677,24 @@ ConSplitterTextInConstructor (
// Allocate buffer for Absolute Pointer device
//
Status = ConSplitterGrowBuffer (
- sizeof (EFI_ABSOLUTE_POINTER_PROTOCOL *),
- &ConInPrivate->AbsolutePointerListCount,
- (VOID **) &ConInPrivate->AbsolutePointerList
- );
+ sizeof (EFI_ABSOLUTE_POINTER_PROTOCOL *),
+ &ConInPrivate->AbsolutePointerListCount,
+ (VOID **)&ConInPrivate->AbsolutePointerList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Create Event to wait for device input for Absolute pointer device
//
Status = gBS->CreateEvent (
- EVT_NOTIFY_WAIT,
- TPL_NOTIFY,
- ConSplitterAbsolutePointerWaitForInput,
- ConInPrivate,
- &ConInPrivate->AbsolutePointer.WaitForInput
- );
+ EVT_NOTIFY_WAIT,
+ TPL_NOTIFY,
+ ConSplitterAbsolutePointerWaitForInput,
+ ConInPrivate,
+ &ConInPrivate->AbsolutePointer.WaitForInput
+ );
ASSERT_EFI_ERROR (Status);
ConInPrivate->SimplePointer.Mode = &ConInPrivate->SimplePointerMode;
@@ -699,13 +702,14 @@ ConSplitterTextInConstructor (
// Allocate buffer for Simple Pointer device
//
Status = ConSplitterGrowBuffer (
- sizeof (EFI_SIMPLE_POINTER_PROTOCOL *),
- &ConInPrivate->PointerListCount,
- (VOID **) &ConInPrivate->PointerList
- );
+ sizeof (EFI_SIMPLE_POINTER_PROTOCOL *),
+ &ConInPrivate->PointerListCount,
+ (VOID **)&ConInPrivate->PointerList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Create Event to wait for device input for Simple pointer device
//
@@ -744,10 +748,10 @@ ConSplitterTextInConstructor (
**/
EFI_STATUS
ConSplitterTextOutConstructor (
- TEXT_OUT_SPLITTER_PRIVATE_DATA *ConOutPrivate
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *ConOutPrivate
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
//
@@ -756,6 +760,7 @@ ConSplitterTextOutConstructor (
if (FeaturePcdGet (PcdConOutUgaSupport)) {
CopyMem (&ConOutPrivate->UgaDraw, &mUgaDrawProtocolTemplate, sizeof (EFI_UGA_DRAW_PROTOCOL));
}
+
if (FeaturePcdGet (PcdConOutGopSupport)) {
CopyMem (&ConOutPrivate->GraphicsOutput, &mGraphicsOutputProtocolTemplate, sizeof (EFI_GRAPHICS_OUTPUT_PROTOCOL));
}
@@ -774,21 +779,22 @@ ConSplitterTextOutConstructor (
// Allocate buffer for Console Out device
//
Status = ConSplitterGrowBuffer (
- sizeof (TEXT_OUT_AND_GOP_DATA),
- &ConOutPrivate->TextOutListCount,
- (VOID **) &ConOutPrivate->TextOutList
- );
+ sizeof (TEXT_OUT_AND_GOP_DATA),
+ &ConOutPrivate->TextOutListCount,
+ (VOID **)&ConOutPrivate->TextOutList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Allocate buffer for Text Out query data
//
Status = ConSplitterGrowBuffer (
- sizeof (TEXT_OUT_SPLITTER_QUERY_DATA),
- &ConOutPrivate->TextOutQueryDataCount,
- (VOID **) &ConOutPrivate->TextOutQueryData
- );
+ sizeof (TEXT_OUT_SPLITTER_QUERY_DATA),
+ &ConOutPrivate->TextOutQueryDataCount,
+ (VOID **)&ConOutPrivate->TextOutQueryData
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
@@ -796,17 +802,17 @@ ConSplitterTextOutConstructor (
//
// Setup the default console to 80 x 25 and mode to 0
//
- ConOutPrivate->TextOutQueryData[0].Columns = 80;
- ConOutPrivate->TextOutQueryData[0].Rows = 25;
+ ConOutPrivate->TextOutQueryData[0].Columns = 80;
+ ConOutPrivate->TextOutQueryData[0].Rows = 25;
TextOutSetMode (ConOutPrivate, 0);
-
if (FeaturePcdGet (PcdConOutUgaSupport)) {
//
// Setup the UgaDraw to 800 x 600 x 32 bits per pixel, 60Hz.
//
ConSplitterUgaDrawSetMode (&ConOutPrivate->UgaDraw, 800, 600, 32, 60);
}
+
if (FeaturePcdGet (PcdConOutGopSupport)) {
//
// Setup resource for mode information in Graphics Output Protocol interface
@@ -814,9 +820,11 @@ ConSplitterTextOutConstructor (
if ((ConOutPrivate->GraphicsOutput.Mode = AllocateZeroPool (sizeof (EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE))) == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
if ((ConOutPrivate->GraphicsOutput.Mode->Info = AllocateZeroPool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION))) == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Setup the DevNullGraphicsOutput to 800 x 600 x 32 bits per pixel
// DevNull will be updated to user-defined mode after driver has started.
@@ -824,12 +832,13 @@ ConSplitterTextOutConstructor (
if ((ConOutPrivate->GraphicsOutputModeBuffer = AllocateZeroPool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION))) == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Info = &ConOutPrivate->GraphicsOutputModeBuffer[0];
- Info->Version = 0;
+
+ Info = &ConOutPrivate->GraphicsOutputModeBuffer[0];
+ Info->Version = 0;
Info->HorizontalResolution = 800;
- Info->VerticalResolution = 600;
- Info->PixelFormat = PixelBltOnly;
- Info->PixelsPerScanLine = 800;
+ Info->VerticalResolution = 600;
+ Info->PixelFormat = PixelBltOnly;
+ Info->PixelsPerScanLine = 800;
CopyMem (ConOutPrivate->GraphicsOutput.Mode->Info, Info, sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
ConOutPrivate->GraphicsOutput.Mode->SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
@@ -837,7 +846,7 @@ ConSplitterTextOutConstructor (
// Initialize the following items, theset items remain unchanged in GraphicsOutput->SetMode()
// GraphicsOutputMode->FrameBufferBase, GraphicsOutputMode->FrameBufferSize
//
- ConOutPrivate->GraphicsOutput.Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) (UINTN) NULL;
+ ConOutPrivate->GraphicsOutput.Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS)(UINTN)NULL;
ConOutPrivate->GraphicsOutput.Mode->FrameBufferSize = 0;
ConOutPrivate->GraphicsOutput.Mode->MaxMode = 1;
@@ -851,7 +860,6 @@ ConSplitterTextOutConstructor (
return EFI_SUCCESS;
}
-
/**
Test to see if the specified protocol could be supported on the specified device.
@@ -866,9 +874,9 @@ ConSplitterTextOutConstructor (
**/
EFI_STATUS
ConSplitterSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_GUID *Guid
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_GUID *Guid
)
{
EFI_STATUS Status;
@@ -877,10 +885,11 @@ ConSplitterSupported (
//
// Make sure the Console Splitter does not attempt to attach to itself
//
- if (ControllerHandle == mConIn.VirtualHandle ||
- ControllerHandle == mConOut.VirtualHandle ||
- ControllerHandle == mStdErr.VirtualHandle
- ) {
+ if ((ControllerHandle == mConIn.VirtualHandle) ||
+ (ControllerHandle == mConOut.VirtualHandle) ||
+ (ControllerHandle == mStdErr.VirtualHandle)
+ )
+ {
return EFI_UNSUPPORTED;
}
@@ -901,11 +910,11 @@ ConSplitterSupported (
}
gBS->CloseProtocol (
- ControllerHandle,
- Guid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ Guid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return EFI_SUCCESS;
}
@@ -925,16 +934,16 @@ ConSplitterSupported (
EFI_STATUS
EFIAPI
ConSplitterConInDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
return ConSplitterSupported (
- This,
- ControllerHandle,
- &gEfiConsoleInDeviceGuid
- );
+ This,
+ ControllerHandle,
+ &gEfiConsoleInDeviceGuid
+ );
}
/**
@@ -952,16 +961,16 @@ ConSplitterConInDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
return ConSplitterSupported (
- This,
- ControllerHandle,
- &gEfiSimplePointerProtocolGuid
- );
+ This,
+ ControllerHandle,
+ &gEfiSimplePointerProtocolGuid
+ );
}
/**
@@ -979,19 +988,18 @@ ConSplitterSimplePointerDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
return ConSplitterSupported (
- This,
- ControllerHandle,
- &gEfiAbsolutePointerProtocolGuid
- );
+ This,
+ ControllerHandle,
+ &gEfiAbsolutePointerProtocolGuid
+ );
}
-
/**
Test to see if Console Out Device could be supported on the Controller.
@@ -1007,16 +1015,16 @@ ConSplitterAbsolutePointerDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterConOutDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
return ConSplitterSupported (
- This,
- ControllerHandle,
- &gEfiConsoleOutDeviceGuid
- );
+ This,
+ ControllerHandle,
+ &gEfiConsoleOutDeviceGuid
+ );
}
/**
@@ -1034,19 +1042,18 @@ ConSplitterConOutDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterStdErrDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
return ConSplitterSupported (
- This,
- ControllerHandle,
- &gEfiStandardErrorDeviceGuid
- );
+ This,
+ ControllerHandle,
+ &gEfiStandardErrorDeviceGuid
+ );
}
-
/**
Start ConSplitter on devcie handle by opening Console Device Guid on device handle
and the console virtual handle. And Get the console interface on controller handle.
@@ -1066,12 +1073,12 @@ ConSplitterStdErrDriverBindingSupported (
**/
EFI_STATUS
ConSplitterStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ConSplitterVirtualHandle,
- IN EFI_GUID *DeviceGuid,
- IN EFI_GUID *InterfaceGuid,
- OUT VOID **Interface
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ConSplitterVirtualHandle,
+ IN EFI_GUID *DeviceGuid,
+ IN EFI_GUID *InterfaceGuid,
+ OUT VOID **Interface
)
{
EFI_STATUS Status;
@@ -1111,13 +1118,13 @@ ConSplitterStart (
// Open InterfaceGuid on the virtual handle.
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- InterfaceGuid,
- Interface,
- This->DriverBindingHandle,
- ConSplitterVirtualHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ ControllerHandle,
+ InterfaceGuid,
+ Interface,
+ This->DriverBindingHandle,
+ ConSplitterVirtualHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (!EFI_ERROR (Status)) {
return EFI_SUCCESS;
@@ -1127,27 +1134,26 @@ ConSplitterStart (
// close the DeviceGuid on ConSplitter VirtualHandle.
//
gBS->CloseProtocol (
- ControllerHandle,
- DeviceGuid,
- This->DriverBindingHandle,
- ConSplitterVirtualHandle
- );
+ ControllerHandle,
+ DeviceGuid,
+ This->DriverBindingHandle,
+ ConSplitterVirtualHandle
+ );
Err:
//
// close the DeviceGuid on ControllerHandle.
//
gBS->CloseProtocol (
- ControllerHandle,
- DeviceGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ DeviceGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return Status;
}
-
/**
Start Console In Consplitter on device handle.
@@ -1163,27 +1169,27 @@ Err:
EFI_STATUS
EFIAPI
ConSplitterConInDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx;
+ EFI_STATUS Status;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx;
//
// Start ConSplitter on ControllerHandle, and create the virtual
// aggregated console device on first call Start for a SimpleTextIn handle.
//
Status = ConSplitterStart (
- This,
- ControllerHandle,
- mConIn.VirtualHandle,
- &gEfiConsoleInDeviceGuid,
- &gEfiSimpleTextInProtocolGuid,
- (VOID **) &TextIn
- );
+ This,
+ ControllerHandle,
+ mConIn.VirtualHandle,
+ &gEfiConsoleInDeviceGuid,
+ &gEfiSimpleTextInProtocolGuid,
+ (VOID **)&TextIn
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1199,7 +1205,7 @@ ConSplitterConInDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSimpleTextInputExProtocolGuid,
- (VOID **) &TextInEx,
+ (VOID **)&TextInEx,
This->DriverBindingHandle,
mConIn.VirtualHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1215,7 +1221,6 @@ ConSplitterConInDriverBindingStart (
return Status;
}
-
/**
Start Simple Pointer Consplitter on device handle.
@@ -1231,26 +1236,26 @@ ConSplitterConInDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer;
+ EFI_STATUS Status;
+ EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer;
//
// Start ConSplitter on ControllerHandle, and create the virtual
// aggregated console device on first call Start for a SimplePointer handle.
//
Status = ConSplitterStart (
- This,
- ControllerHandle,
- mConIn.VirtualHandle,
- &gEfiSimplePointerProtocolGuid,
- &gEfiSimplePointerProtocolGuid,
- (VOID **) &SimplePointer
- );
+ This,
+ ControllerHandle,
+ mConIn.VirtualHandle,
+ &gEfiSimplePointerProtocolGuid,
+ &gEfiSimplePointerProtocolGuid,
+ (VOID **)&SimplePointer
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1261,7 +1266,6 @@ ConSplitterSimplePointerDriverBindingStart (
return ConSplitterSimplePointerAddDevice (&mConIn, SimplePointer);
}
-
/**
Start Absolute Pointer Consplitter on device handle.
@@ -1277,13 +1281,13 @@ ConSplitterSimplePointerDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer;
+ EFI_STATUS Status;
+ EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer;
//
// Start ConSplitter on ControllerHandle, and create the virtual
@@ -1295,7 +1299,7 @@ ConSplitterAbsolutePointerDriverBindingStart (
mConIn.VirtualHandle,
&gEfiAbsolutePointerProtocolGuid,
&gEfiAbsolutePointerProtocolGuid,
- (VOID **) &AbsolutePointer
+ (VOID **)&AbsolutePointer
);
if (EFI_ERROR (Status)) {
@@ -1308,7 +1312,6 @@ ConSplitterAbsolutePointerDriverBindingStart (
return ConSplitterAbsolutePointerAddDevice (&mConIn, AbsolutePointer);
}
-
/**
Start Console Out Consplitter on device handle.
@@ -1324,30 +1327,30 @@ ConSplitterAbsolutePointerDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterConOutDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ EFI_STATUS Status;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
//
// Start ConSplitter on ControllerHandle, and create the virtual
// aggregated console device on first call Start for a ConsoleOut handle.
//
Status = ConSplitterStart (
- This,
- ControllerHandle,
- mConOut.VirtualHandle,
- &gEfiConsoleOutDeviceGuid,
- &gEfiSimpleTextOutProtocolGuid,
- (VOID **) &TextOut
- );
+ This,
+ ControllerHandle,
+ mConOut.VirtualHandle,
+ &gEfiConsoleOutDeviceGuid,
+ &gEfiSimpleTextOutProtocolGuid,
+ (VOID **)&TextOut
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1360,7 +1363,7 @@ ConSplitterConOutDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiGraphicsOutputProtocolGuid,
- (VOID **) &GraphicsOutput,
+ (VOID **)&GraphicsOutput,
This->DriverBindingHandle,
mConOut.VirtualHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1373,7 +1376,7 @@ ConSplitterConOutDriverBindingStart (
gBS->OpenProtocol (
ControllerHandle,
&gEfiUgaDrawProtocolGuid,
- (VOID **) &UgaDraw,
+ (VOID **)&UgaDraw,
This->DriverBindingHandle,
mConOut.VirtualHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1402,7 +1405,8 @@ ConSplitterConOutDriverBindingStart (
if (EFI_ERROR (Status)) {
return Status;
}
- ASSERT ( SizeOfInfo <= sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
+
+ ASSERT (SizeOfInfo <= sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
mConOut.UgaHorizontalResolution = Info->HorizontalResolution;
mConOut.UgaVerticalResolution = Info->VerticalResolution;
@@ -1410,22 +1414,20 @@ ConSplitterConOutDriverBindingStart (
mConOut.UgaRefreshRate = 60;
FreePool (Info);
-
} else if (UgaDraw != NULL) {
Status = UgaDraw->GetMode (
- UgaDraw,
- &mConOut.UgaHorizontalResolution,
- &mConOut.UgaVerticalResolution,
- &mConOut.UgaColorDepth,
- &mConOut.UgaRefreshRate
- );
+ UgaDraw,
+ &mConOut.UgaHorizontalResolution,
+ &mConOut.UgaVerticalResolution,
+ &mConOut.UgaColorDepth,
+ &mConOut.UgaRefreshRate
+ );
}
}
return Status;
}
-
/**
Start Standard Error Consplitter on device handle.
@@ -1441,9 +1443,9 @@ ConSplitterConOutDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterStdErrDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
@@ -1454,13 +1456,13 @@ ConSplitterStdErrDriverBindingStart (
// aggregated console device on first call Start for a StandardError handle.
//
Status = ConSplitterStart (
- This,
- ControllerHandle,
- mStdErr.VirtualHandle,
- &gEfiStandardErrorDeviceGuid,
- &gEfiSimpleTextOutProtocolGuid,
- (VOID **) &TextOut
- );
+ This,
+ ControllerHandle,
+ mStdErr.VirtualHandle,
+ &gEfiStandardErrorDeviceGuid,
+ &gEfiSimpleTextOutProtocolGuid,
+ (VOID **)&TextOut
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1481,7 +1483,6 @@ ConSplitterStdErrDriverBindingStart (
return Status;
}
-
/**
Stop ConSplitter on device handle by closing Console Device Guid on device handle
and the console virtual handle.
@@ -1500,12 +1501,12 @@ ConSplitterStdErrDriverBindingStart (
**/
EFI_STATUS
ConSplitterStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ConSplitterVirtualHandle,
- IN EFI_GUID *DeviceGuid,
- IN EFI_GUID *InterfaceGuid,
- IN VOID **Interface
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ConSplitterVirtualHandle,
+ IN EFI_GUID *DeviceGuid,
+ IN EFI_GUID *InterfaceGuid,
+ IN VOID **Interface
)
{
EFI_STATUS Status;
@@ -1521,27 +1522,27 @@ ConSplitterStop (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// close the protocol referred.
//
gBS->CloseProtocol (
- ControllerHandle,
- DeviceGuid,
- This->DriverBindingHandle,
- ConSplitterVirtualHandle
- );
+ ControllerHandle,
+ DeviceGuid,
+ This->DriverBindingHandle,
+ ConSplitterVirtualHandle
+ );
gBS->CloseProtocol (
- ControllerHandle,
- DeviceGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ DeviceGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return EFI_SUCCESS;
}
-
/**
Stop Console In ConSplitter on ControllerHandle by closing Console In Device GUID.
@@ -1558,15 +1559,15 @@ ConSplitterStop (
EFI_STATUS
EFIAPI
ConSplitterConInDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- EFI_STATUS Status;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx;
+ EFI_STATUS Status;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx;
if (NumberOfChildren == 0) {
return EFI_SUCCESS;
@@ -1575,7 +1576,7 @@ ConSplitterConInDriverBindingStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSimpleTextInputExProtocolGuid,
- (VOID **) &TextInEx,
+ (VOID **)&TextInEx,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -1595,13 +1596,13 @@ ConSplitterConInDriverBindingStop (
// Close Simple Text In protocol on controller handle and virtual handle.
//
Status = ConSplitterStop (
- This,
- ControllerHandle,
- mConIn.VirtualHandle,
- &gEfiConsoleInDeviceGuid,
- &gEfiSimpleTextInProtocolGuid,
- (VOID **) &TextIn
- );
+ This,
+ ControllerHandle,
+ mConIn.VirtualHandle,
+ &gEfiConsoleInDeviceGuid,
+ &gEfiSimpleTextInProtocolGuid,
+ (VOID **)&TextIn
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1612,7 +1613,6 @@ ConSplitterConInDriverBindingStop (
return ConSplitterTextInDeleteDevice (&mConIn, TextIn);
}
-
/**
Stop Simple Pointer protocol ConSplitter on ControllerHandle by closing
Simple Pointer protocol.
@@ -1630,14 +1630,14 @@ ConSplitterConInDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- EFI_STATUS Status;
- EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer;
+ EFI_STATUS Status;
+ EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer;
if (NumberOfChildren == 0) {
return EFI_SUCCESS;
@@ -1647,13 +1647,13 @@ ConSplitterSimplePointerDriverBindingStop (
// Close Simple Pointer protocol on controller handle and virtual handle.
//
Status = ConSplitterStop (
- This,
- ControllerHandle,
- mConIn.VirtualHandle,
- &gEfiSimplePointerProtocolGuid,
- &gEfiSimplePointerProtocolGuid,
- (VOID **) &SimplePointer
- );
+ This,
+ ControllerHandle,
+ mConIn.VirtualHandle,
+ &gEfiSimplePointerProtocolGuid,
+ &gEfiSimplePointerProtocolGuid,
+ (VOID **)&SimplePointer
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1664,7 +1664,6 @@ ConSplitterSimplePointerDriverBindingStop (
return ConSplitterSimplePointerDeleteDevice (&mConIn, SimplePointer);
}
-
/**
Stop Absolute Pointer protocol ConSplitter on ControllerHandle by closing
Absolute Pointer protocol.
@@ -1682,14 +1681,14 @@ ConSplitterSimplePointerDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- EFI_STATUS Status;
- EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer;
+ EFI_STATUS Status;
+ EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer;
if (NumberOfChildren == 0) {
return EFI_SUCCESS;
@@ -1704,7 +1703,7 @@ ConSplitterAbsolutePointerDriverBindingStop (
mConIn.VirtualHandle,
&gEfiAbsolutePointerProtocolGuid,
&gEfiAbsolutePointerProtocolGuid,
- (VOID **) &AbsolutePointer
+ (VOID **)&AbsolutePointer
);
if (EFI_ERROR (Status)) {
return Status;
@@ -1716,7 +1715,6 @@ ConSplitterAbsolutePointerDriverBindingStop (
return ConSplitterAbsolutePointerDeleteDevice (&mConIn, AbsolutePointer);
}
-
/**
Stop Console Out ConSplitter on device handle by closing Console Out Devcie GUID.
@@ -1733,10 +1731,10 @@ ConSplitterAbsolutePointerDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterConOutDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
@@ -1750,13 +1748,13 @@ ConSplitterConOutDriverBindingStop (
// Close Absolute Pointer protocol on controller handle and virtual handle.
//
Status = ConSplitterStop (
- This,
- ControllerHandle,
- mConOut.VirtualHandle,
- &gEfiConsoleOutDeviceGuid,
- &gEfiSimpleTextOutProtocolGuid,
- (VOID **) &TextOut
- );
+ This,
+ ControllerHandle,
+ mConOut.VirtualHandle,
+ &gEfiConsoleOutDeviceGuid,
+ &gEfiSimpleTextOutProtocolGuid,
+ (VOID **)&TextOut
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1767,7 +1765,6 @@ ConSplitterConOutDriverBindingStop (
return ConSplitterTextOutDeleteDevice (&mConOut, TextOut);
}
-
/**
Stop Standard Error ConSplitter on ControllerHandle by closing Standard Error GUID.
@@ -1784,10 +1781,10 @@ ConSplitterConOutDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterStdErrDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
@@ -1801,23 +1798,23 @@ ConSplitterStdErrDriverBindingStop (
// Close Standard Error Device on controller handle and virtual handle.
//
Status = ConSplitterStop (
- This,
- ControllerHandle,
- mStdErr.VirtualHandle,
- &gEfiStandardErrorDeviceGuid,
- &gEfiSimpleTextOutProtocolGuid,
- (VOID **) &TextOut
- );
+ This,
+ ControllerHandle,
+ mStdErr.VirtualHandle,
+ &gEfiStandardErrorDeviceGuid,
+ &gEfiSimpleTextOutProtocolGuid,
+ (VOID **)&TextOut
+ );
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Delete this console error out device's data structures.
//
return ConSplitterTextOutDeleteDevice (&mStdErr, TextOut);
}
-
/**
Take the passed in Buffer of size ElementSize and grow the buffer
by CONSOLE_SPLITTER_ALLOC_UNIT * ElementSize bytes.
@@ -1835,9 +1832,9 @@ ConSplitterStdErrDriverBindingStop (
**/
EFI_STATUS
ConSplitterGrowBuffer (
- IN UINTN ElementSize,
- IN OUT UINTN *Count,
- IN OUT VOID **Buffer
+ IN UINTN ElementSize,
+ IN OUT UINTN *Count,
+ IN OUT VOID **Buffer
)
{
VOID *Ptr;
@@ -1855,12 +1852,12 @@ ConSplitterGrowBuffer (
if (Ptr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
*Count += CONSOLE_SPLITTER_ALLOC_UNIT;
*Buffer = Ptr;
return EFI_SUCCESS;
}
-
/**
Add Text Input Device in Consplitter Text Input list.
@@ -1884,14 +1881,15 @@ ConSplitterTextInAddDevice (
//
if (Private->CurrentNumberOfConsoles >= Private->TextInListCount) {
Status = ConSplitterGrowBuffer (
- sizeof (EFI_SIMPLE_TEXT_INPUT_PROTOCOL *),
- &Private->TextInListCount,
- (VOID **) &Private->TextInList
- );
+ sizeof (EFI_SIMPLE_TEXT_INPUT_PROTOCOL *),
+ &Private->TextInListCount,
+ (VOID **)&Private->TextInList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
}
+
//
// Add the new text-in device data structure into the Text In List.
//
@@ -1906,7 +1904,6 @@ ConSplitterTextInAddDevice (
return EFI_SUCCESS;
}
-
/**
Remove Text Input Device from Consplitter Text Input list.
@@ -1923,14 +1920,15 @@ ConSplitterTextInDeleteDevice (
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn
)
{
- UINTN Index;
+ UINTN Index;
+
//
// Remove the specified text-in device data structure from the Text In List,
// and rearrange the remaining data structures in the Text In List.
//
for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {
if (Private->TextInList[Index] == TextIn) {
- for (; Index < Private->CurrentNumberOfConsoles - 1; Index++) {
+ for ( ; Index < Private->CurrentNumberOfConsoles - 1; Index++) {
Private->TextInList[Index] = Private->TextInList[Index + 1];
}
@@ -1954,8 +1952,8 @@ ConSplitterTextInDeleteDevice (
**/
EFI_STATUS
ConSplitterTextInExAddDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
)
{
EFI_STATUS Status;
@@ -1974,7 +1972,7 @@ ConSplitterTextInExAddDevice (
Status = ConSplitterGrowBuffer (
sizeof (EFI_HANDLE),
&TextInExListCount,
- (VOID **) &CurrentNotify->NotifyHandleList
+ (VOID **)&CurrentNotify->NotifyHandleList
);
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
@@ -1982,20 +1980,20 @@ ConSplitterTextInExAddDevice (
}
TextInExListCount = Private->TextInExListCount;
- Status = ConSplitterGrowBuffer (
- sizeof (EFI_KEY_DATA),
- &TextInExListCount,
- (VOID **) &Private->KeyQueue
- );
+ Status = ConSplitterGrowBuffer (
+ sizeof (EFI_KEY_DATA),
+ &TextInExListCount,
+ (VOID **)&Private->KeyQueue
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
Status = ConSplitterGrowBuffer (
- sizeof (EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *),
- &Private->TextInExListCount,
- (VOID **) &Private->TextInExList
- );
+ sizeof (EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *),
+ &Private->TextInExListCount,
+ (VOID **)&Private->TextInExList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2006,12 +2004,12 @@ ConSplitterTextInExAddDevice (
//
for (Link = Private->NotifyList.ForwardLink; Link != &Private->NotifyList; Link = Link->ForwardLink) {
CurrentNotify = TEXT_IN_EX_SPLITTER_NOTIFY_FROM_THIS (Link);
- Status = TextInEx->RegisterKeyNotify (
- TextInEx,
- &CurrentNotify->KeyData,
- CurrentNotify->KeyNotificationFn,
- &CurrentNotify->NotifyHandleList[Private->CurrentNumberOfExConsoles]
- );
+ Status = TextInEx->RegisterKeyNotify (
+ TextInEx,
+ &CurrentNotify->KeyData,
+ CurrentNotify->KeyNotificationFn,
+ &CurrentNotify->NotifyHandleList[Private->CurrentNumberOfExConsoles]
+ );
if (EFI_ERROR (Status)) {
for (Link = Link->BackLink; Link != &Private->NotifyList; Link = Link->BackLink) {
CurrentNotify = TEXT_IN_EX_SPLITTER_NOTIFY_FROM_THIS (Link);
@@ -2020,6 +2018,7 @@ ConSplitterTextInExAddDevice (
CurrentNotify->NotifyHandleList[Private->CurrentNumberOfExConsoles]
);
}
+
return Status;
}
}
@@ -2055,18 +2054,19 @@ ConSplitterTextInExAddDevice (
**/
EFI_STATUS
ConSplitterTextInExDeleteDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
)
{
- UINTN Index;
+ UINTN Index;
+
//
// Remove the specified text-in device data structure from the Text Input Ex List,
// and rearrange the remaining data structures in the Text In List.
//
for (Index = 0; Index < Private->CurrentNumberOfExConsoles; Index++) {
if (Private->TextInExList[Index] == TextInEx) {
- for (; Index < Private->CurrentNumberOfExConsoles - 1; Index++) {
+ for ( ; Index < Private->CurrentNumberOfExConsoles - 1; Index++) {
Private->TextInExList[Index] = Private->TextInExList[Index + 1];
}
@@ -2078,7 +2078,6 @@ ConSplitterTextInExDeleteDevice (
return EFI_NOT_FOUND;
}
-
/**
Add Simple Pointer Device in Consplitter Simple Pointer list.
@@ -2091,8 +2090,8 @@ ConSplitterTextInExDeleteDevice (
**/
EFI_STATUS
ConSplitterSimplePointerAddDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
)
{
EFI_STATUS Status;
@@ -2102,14 +2101,15 @@ ConSplitterSimplePointerAddDevice (
//
if (Private->CurrentNumberOfPointers >= Private->PointerListCount) {
Status = ConSplitterGrowBuffer (
- sizeof (EFI_SIMPLE_POINTER_PROTOCOL *),
- &Private->PointerListCount,
- (VOID **) &Private->PointerList
- );
+ sizeof (EFI_SIMPLE_POINTER_PROTOCOL *),
+ &Private->PointerListCount,
+ (VOID **)&Private->PointerList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
}
+
//
// Add the new text-in device data structure into the Simple Pointer List.
//
@@ -2119,7 +2119,6 @@ ConSplitterSimplePointerAddDevice (
return EFI_SUCCESS;
}
-
/**
Remove Simple Pointer Device from Consplitter Simple Pointer list.
@@ -2132,18 +2131,19 @@ ConSplitterSimplePointerAddDevice (
**/
EFI_STATUS
ConSplitterSimplePointerDeleteDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
)
{
- UINTN Index;
+ UINTN Index;
+
//
// Remove the specified text-in device data structure from the Simple Pointer List,
// and rearrange the remaining data structures in the Text In List.
//
for (Index = 0; Index < Private->CurrentNumberOfPointers; Index++) {
if (Private->PointerList[Index] == SimplePointer) {
- for (; Index < Private->CurrentNumberOfPointers - 1; Index++) {
+ for ( ; Index < Private->CurrentNumberOfPointers - 1; Index++) {
Private->PointerList[Index] = Private->PointerList[Index + 1];
}
@@ -2155,7 +2155,6 @@ ConSplitterSimplePointerDeleteDevice (
return EFI_NOT_FOUND;
}
-
/**
Add Absolute Pointer Device in Consplitter Absolute Pointer list.
@@ -2168,8 +2167,8 @@ ConSplitterSimplePointerDeleteDevice (
**/
EFI_STATUS
ConSplitterAbsolutePointerAddDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
)
{
EFI_STATUS Status;
@@ -2179,14 +2178,15 @@ ConSplitterAbsolutePointerAddDevice (
//
if (Private->CurrentNumberOfAbsolutePointers >= Private->AbsolutePointerListCount) {
Status = ConSplitterGrowBuffer (
- sizeof (EFI_ABSOLUTE_POINTER_PROTOCOL *),
- &Private->AbsolutePointerListCount,
- (VOID **) &Private->AbsolutePointerList
- );
+ sizeof (EFI_ABSOLUTE_POINTER_PROTOCOL *),
+ &Private->AbsolutePointerListCount,
+ (VOID **)&Private->AbsolutePointerList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
}
+
//
// Add the new text-in device data structure into the Absolute Pointer List.
//
@@ -2196,7 +2196,6 @@ ConSplitterAbsolutePointerAddDevice (
return EFI_SUCCESS;
}
-
/**
Remove Absolute Pointer Device from Consplitter Absolute Pointer list.
@@ -2209,18 +2208,19 @@ ConSplitterAbsolutePointerAddDevice (
**/
EFI_STATUS
ConSplitterAbsolutePointerDeleteDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
)
{
- UINTN Index;
+ UINTN Index;
+
//
// Remove the specified text-in device data structure from the Absolute Pointer List,
// and rearrange the remaining data structures from the Absolute Pointer List.
//
for (Index = 0; Index < Private->CurrentNumberOfAbsolutePointers; Index++) {
if (Private->AbsolutePointerList[Index] == AbsolutePointer) {
- for (; Index < Private->CurrentNumberOfAbsolutePointers - 1; Index++) {
+ for ( ; Index < Private->CurrentNumberOfAbsolutePointers - 1; Index++) {
Private->AbsolutePointerList[Index] = Private->AbsolutePointerList[Index + 1];
}
@@ -2248,15 +2248,15 @@ ConSplitterGrowMapTable (
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private
)
{
- UINTN Size;
- UINTN NewSize;
- UINTN TotalSize;
- INT32 *TextOutModeMap;
- INT32 *OldTextOutModeMap;
- INT32 *SrcAddress;
- INT32 Index;
- UINTN OldStepSize;
- UINTN NewStepSize;
+ UINTN Size;
+ UINTN NewSize;
+ UINTN TotalSize;
+ INT32 *TextOutModeMap;
+ INT32 *OldTextOutModeMap;
+ INT32 *SrcAddress;
+ INT32 Index;
+ UINTN OldStepSize;
+ UINTN NewStepSize;
NewSize = Private->TextOutListCount * sizeof (INT32);
OldTextOutModeMap = Private->TextOutModeMap;
@@ -2265,7 +2265,7 @@ ConSplitterGrowMapTable (
//
// Allocate new buffer for Text Out List.
//
- TextOutModeMap = AllocatePool (TotalSize);
+ TextOutModeMap = AllocatePool (TotalSize);
if (TextOutModeMap == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2290,11 +2290,10 @@ ConSplitterGrowMapTable (
// QueryDataCount
//
if (OldTextOutModeMap != NULL) {
-
Size = Private->CurrentNumberOfConsoles * sizeof (INT32);
Index = 0;
SrcAddress = OldTextOutModeMap;
- NewStepSize = NewSize / sizeof(INT32);
+ NewStepSize = NewSize / sizeof (INT32);
// If Private->CurrentNumberOfConsoles is not zero and OldTextOutModeMap
// is not NULL, it indicates that the original TextOutModeMap is not enough
// for the new console devices and has been enlarged by CONSOLE_SPLITTER_ALLOC_UNIT columns.
@@ -2316,6 +2315,7 @@ ConSplitterGrowMapTable (
SrcAddress += OldStepSize;
Index++;
}
+
//
// Free the old buffer
//
@@ -2325,7 +2325,6 @@ ConSplitterGrowMapTable (
return EFI_SUCCESS;
}
-
/**
Add new device's output mode to console splitter's mode list.
@@ -2338,8 +2337,8 @@ ConSplitterGrowMapTable (
**/
EFI_STATUS
ConSplitterAddOutputMode (
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
)
{
EFI_STATUS Status;
@@ -2347,23 +2346,24 @@ ConSplitterAddOutputMode (
INT32 Mode;
UINTN Index;
- MaxMode = TextOut->Mode->MaxMode;
- Private->TextOutMode.MaxMode = MaxMode;
+ MaxMode = TextOut->Mode->MaxMode;
+ Private->TextOutMode.MaxMode = MaxMode;
//
// Grow the buffer if query data buffer is not large enough to
// hold all the mode supported by the first console.
//
- while (MaxMode > (INT32) Private->TextOutQueryDataCount) {
+ while (MaxMode > (INT32)Private->TextOutQueryDataCount) {
Status = ConSplitterGrowBuffer (
- sizeof (TEXT_OUT_SPLITTER_QUERY_DATA),
- &Private->TextOutQueryDataCount,
- (VOID **) &Private->TextOutQueryData
- );
+ sizeof (TEXT_OUT_SPLITTER_QUERY_DATA),
+ &Private->TextOutQueryDataCount,
+ (VOID **)&Private->TextOutQueryData
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
}
+
//
// Allocate buffer for the output mode map
//
@@ -2371,6 +2371,7 @@ ConSplitterAddOutputMode (
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// As the first textout device, directly add the mode in to QueryData
// and at the same time record the mapping between QueryData and TextOut.
@@ -2379,19 +2380,20 @@ ConSplitterAddOutputMode (
Index = 0;
while (Mode < MaxMode) {
Status = TextOut->QueryMode (
- TextOut,
- Mode,
- &Private->TextOutQueryData[Mode].Columns,
- &Private->TextOutQueryData[Mode].Rows
- );
+ TextOut,
+ Mode,
+ &Private->TextOutQueryData[Mode].Columns,
+ &Private->TextOutQueryData[Mode].Rows
+ );
//
// If mode 1 (80x50) is not supported, make sure mode 1 in TextOutQueryData
// is clear to 0x0.
//
- if ((EFI_ERROR(Status)) && (Mode == 1)) {
+ if ((EFI_ERROR (Status)) && (Mode == 1)) {
Private->TextOutQueryData[Mode].Columns = 0;
- Private->TextOutQueryData[Mode].Rows = 0;
+ Private->TextOutQueryData[Mode].Rows = 0;
}
+
Private->TextOutModeMap[Index] = Mode;
Mode++;
Index += Private->TextOutListCount;
@@ -2418,20 +2420,20 @@ ConSplitterAddOutputMode (
**/
VOID
ConSplitterGetIntersection (
- IN INT32 *TextOutModeMap,
- IN INT32 *NewlyAddedMap,
- IN UINTN MapStepSize,
- IN UINTN NewMapStepSize,
- IN OUT INT32 *MaxMode,
- IN OUT INT32 *CurrentMode
+ IN INT32 *TextOutModeMap,
+ IN INT32 *NewlyAddedMap,
+ IN UINTN MapStepSize,
+ IN UINTN NewMapStepSize,
+ IN OUT INT32 *MaxMode,
+ IN OUT INT32 *CurrentMode
)
{
- INT32 Index;
- INT32 *CurrentMapEntry;
- INT32 *NextMapEntry;
- INT32 *NewMapEntry;
- INT32 CurrentMaxMode;
- INT32 Mode;
+ INT32 Index;
+ INT32 *CurrentMapEntry;
+ INT32 *NextMapEntry;
+ INT32 *NewMapEntry;
+ INT32 CurrentMaxMode;
+ INT32 Mode;
//
// According to EFI/UEFI spec, mode 0 and mode 1 have been reserved
@@ -2443,8 +2445,8 @@ ConSplitterGetIntersection (
NextMapEntry = CurrentMapEntry;
NewMapEntry = &NewlyAddedMap[NewMapStepSize * 2];
- CurrentMaxMode = *MaxMode;
- Mode = *CurrentMode;
+ CurrentMaxMode = *MaxMode;
+ Mode = *CurrentMode;
while (Index < CurrentMaxMode) {
if (*NewMapEntry == -1) {
@@ -2457,6 +2459,7 @@ ConSplitterGetIntersection (
} else if (Index < *CurrentMode) {
Mode--;
}
+
(*MaxMode)--;
} else {
if (CurrentMapEntry != NextMapEntry) {
@@ -2473,7 +2476,7 @@ ConSplitterGetIntersection (
*CurrentMode = Mode;
- return ;
+ return;
}
/**
@@ -2485,8 +2488,8 @@ ConSplitterGetIntersection (
**/
VOID
ConSplitterSyncOutputMode (
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
)
{
INT32 CurrentMaxMode;
@@ -2504,32 +2507,34 @@ ConSplitterSyncOutputMode (
//
// Must make sure that current mode won't change even if mode number changes
//
- CurrentMaxMode = Private->TextOutMode.MaxMode;
- TextOutModeMap = Private->TextOutModeMap;
- StepSize = Private->TextOutListCount;
- TextOutQueryData = Private->TextOutQueryData;
+ CurrentMaxMode = Private->TextOutMode.MaxMode;
+ TextOutModeMap = Private->TextOutModeMap;
+ StepSize = Private->TextOutListCount;
+ TextOutQueryData = Private->TextOutQueryData;
//
// Query all the mode that the newly added TextOut supports
//
- Mode = 0;
- MapTable = TextOutModeMap + Private->CurrentNumberOfConsoles;
+ Mode = 0;
+ MapTable = TextOutModeMap + Private->CurrentNumberOfConsoles;
while (Mode < TextOut->Mode->MaxMode) {
Status = TextOut->QueryMode (TextOut, Mode, &Columns, &Rows);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
if (Mode == 1) {
//
// If mode 1 (80x50) is not supported, make sure mode 1 in TextOutQueryData
// is clear to 0x0.
//
- MapTable[StepSize] = Mode;
+ MapTable[StepSize] = Mode;
TextOutQueryData[Mode].Columns = 0;
- TextOutQueryData[Mode].Rows = 0;
+ TextOutQueryData[Mode].Rows = 0;
}
+
Mode++;
continue;
}
+
//
// Search the intersection map and QueryData database to see if they intersects
//
@@ -2540,10 +2545,13 @@ ConSplitterSyncOutputMode (
MapTable[Index * StepSize] = Mode;
break;
}
+
Index++;
}
+
Mode++;
}
+
//
// Now search the TextOutModeMap table to find the intersection of supported
// mode between ConSplitter and the newly added device.
@@ -2557,10 +2565,9 @@ ConSplitterSyncOutputMode (
&Private->TextOutMode.Mode
);
- return ;
+ return;
}
-
/**
Sync output device between ConOut and StdErr output.
@@ -2627,32 +2634,33 @@ ConSplitterGetIntersectionBetweenConOutAndStrErr (
if (!FoundTheSameTextOut) {
return EFI_SUCCESS;
}
+
//
// Must make sure that current mode won't change even if mode number changes
//
- ConOutMaxMode = mConOut.TextOutMode.MaxMode;
- ConOutModeMap = mConOut.TextOutModeMap;
- ConOutStepSize = mConOut.TextOutListCount;
- ConOutQueryData = mConOut.TextOutQueryData;
+ ConOutMaxMode = mConOut.TextOutMode.MaxMode;
+ ConOutModeMap = mConOut.TextOutModeMap;
+ ConOutStepSize = mConOut.TextOutListCount;
+ ConOutQueryData = mConOut.TextOutQueryData;
- StdErrMaxMode = mStdErr.TextOutMode.MaxMode;
- StdErrModeMap = mStdErr.TextOutModeMap;
- StdErrStepSize = mStdErr.TextOutListCount;
- StdErrQueryData = mStdErr.TextOutQueryData;
+ StdErrMaxMode = mStdErr.TextOutMode.MaxMode;
+ StdErrModeMap = mStdErr.TextOutModeMap;
+ StdErrStepSize = mStdErr.TextOutListCount;
+ StdErrQueryData = mStdErr.TextOutQueryData;
//
// Allocate the map table and set the map table's index to -1.
//
- ConOutMapTableSize = ConOutMaxMode * sizeof (INT32);
- ConOutMapTable = AllocateZeroPool (ConOutMapTableSize);
+ ConOutMapTableSize = ConOutMaxMode * sizeof (INT32);
+ ConOutMapTable = AllocateZeroPool (ConOutMapTableSize);
if (ConOutMapTable == NULL) {
return EFI_OUT_OF_RESOURCES;
}
SetMem (ConOutMapTable, ConOutMapTableSize, 0xFF);
- StdErrMapTableSize = StdErrMaxMode * sizeof (INT32);
- StdErrMapTable = AllocateZeroPool (StdErrMapTableSize);
+ StdErrMapTableSize = StdErrMaxMode * sizeof (INT32);
+ StdErrMapTable = AllocateZeroPool (StdErrMapTableSize);
if (StdErrMapTable == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2668,7 +2676,7 @@ ConSplitterGetIntersectionBetweenConOutAndStrErr (
//
// Search the intersection map and QueryData database to see if they intersect
//
- Index = 0;
+ Index = 0;
ConOutMode = *(ConOutModeMap + Mode * ConOutStepSize);
ConOutRows = ConOutQueryData[ConOutMode].Rows;
ConOutColumns = ConOutQueryData[ConOutMode].Columns;
@@ -2687,6 +2695,7 @@ ConSplitterGetIntersectionBetweenConOutAndStrErr (
Mode++;
}
+
//
// Now search the TextOutModeMap table to find the intersection of supported
// mode between ConSplitter and the newly added device.
@@ -2723,7 +2732,6 @@ ConSplitterGetIntersectionBetweenConOutAndStrErr (
return EFI_SUCCESS;
}
-
/**
Add Graphics Output modes into Consplitter Text Out list.
@@ -2742,22 +2750,22 @@ ConSplitterAddGraphicsOutputMode (
IN EFI_UGA_DRAW_PROTOCOL *UgaDraw
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN CurrentIndex;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Mode;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
- EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *CurrentGraphicsOutputMode;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *ModeBuffer;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *MatchedMode;
- UINTN NumberIndex;
- BOOLEAN Match;
- BOOLEAN AlreadyExist;
- UINT32 UgaHorizontalResolution;
- UINT32 UgaVerticalResolution;
- UINT32 UgaColorDepth;
- UINT32 UgaRefreshRate;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN CurrentIndex;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Mode;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *CurrentGraphicsOutputMode;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *ModeBuffer;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *MatchedMode;
+ UINTN NumberIndex;
+ BOOLEAN Match;
+ BOOLEAN AlreadyExist;
+ UINT32 UgaHorizontalResolution;
+ UINT32 UgaVerticalResolution;
+ UINT32 UgaColorDepth;
+ UINT32 UgaRefreshRate;
ASSERT (GraphicsOutput != NULL || UgaDraw != NULL);
@@ -2778,43 +2786,45 @@ ConSplitterAddGraphicsOutputMode (
if (GraphicsOutput != NULL) {
if (Private->CurrentNumberOfGraphicsOutput == 0) {
- //
- // This is the first Graphics Output device added
- //
- CurrentGraphicsOutputMode->MaxMode = GraphicsOutput->Mode->MaxMode;
- CurrentGraphicsOutputMode->Mode = GraphicsOutput->Mode->Mode;
- CopyMem (CurrentGraphicsOutputMode->Info, GraphicsOutput->Mode->Info, GraphicsOutput->Mode->SizeOfInfo);
- CurrentGraphicsOutputMode->SizeOfInfo = GraphicsOutput->Mode->SizeOfInfo;
- CurrentGraphicsOutputMode->FrameBufferBase = GraphicsOutput->Mode->FrameBufferBase;
- CurrentGraphicsOutputMode->FrameBufferSize = GraphicsOutput->Mode->FrameBufferSize;
+ //
+ // This is the first Graphics Output device added
+ //
+ CurrentGraphicsOutputMode->MaxMode = GraphicsOutput->Mode->MaxMode;
+ CurrentGraphicsOutputMode->Mode = GraphicsOutput->Mode->Mode;
+ CopyMem (CurrentGraphicsOutputMode->Info, GraphicsOutput->Mode->Info, GraphicsOutput->Mode->SizeOfInfo);
+ CurrentGraphicsOutputMode->SizeOfInfo = GraphicsOutput->Mode->SizeOfInfo;
+ CurrentGraphicsOutputMode->FrameBufferBase = GraphicsOutput->Mode->FrameBufferBase;
+ CurrentGraphicsOutputMode->FrameBufferSize = GraphicsOutput->Mode->FrameBufferSize;
- //
- // Allocate resource for the private mode buffer
- //
- ModeBuffer = AllocatePool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION) * GraphicsOutput->Mode->MaxMode);
- if (ModeBuffer == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
- FreePool (Private->GraphicsOutputModeBuffer);
- Private->GraphicsOutputModeBuffer = ModeBuffer;
+ //
+ // Allocate resource for the private mode buffer
+ //
+ ModeBuffer = AllocatePool (sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION) * GraphicsOutput->Mode->MaxMode);
+ if (ModeBuffer == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
+
+ FreePool (Private->GraphicsOutputModeBuffer);
+ Private->GraphicsOutputModeBuffer = ModeBuffer;
+ //
+ // Store all supported display modes to the private mode buffer
+ //
+ Mode = ModeBuffer;
+ for (Index = 0; Index < GraphicsOutput->Mode->MaxMode; Index++) {
//
- // Store all supported display modes to the private mode buffer
+ // The Info buffer would be allocated by callee
//
- Mode = ModeBuffer;
- for (Index = 0; Index < GraphicsOutput->Mode->MaxMode; Index++) {
- //
- // The Info buffer would be allocated by callee
- //
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) Index, &SizeOfInfo, &Info);
- if (EFI_ERROR (Status)) {
- return Status;
- }
- ASSERT ( SizeOfInfo <= sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
- CopyMem (Mode, Info, SizeOfInfo);
- Mode++;
- FreePool (Info);
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)Index, &SizeOfInfo, &Info);
+ if (EFI_ERROR (Status)) {
+ return Status;
}
+
+ ASSERT (SizeOfInfo <= sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
+ CopyMem (Mode, Info, SizeOfInfo);
+ Mode++;
+ FreePool (Info);
+ }
} else {
//
// Check intersection of display mode
@@ -2825,7 +2835,7 @@ ConSplitterAddGraphicsOutputMode (
}
MatchedMode = ModeBuffer;
- Mode = &Private->GraphicsOutputModeBuffer[0];
+ Mode = &Private->GraphicsOutputModeBuffer[0];
for (Index = 0; Index < CurrentGraphicsOutputMode->MaxMode; Index++) {
Match = FALSE;
@@ -2833,12 +2843,14 @@ ConSplitterAddGraphicsOutputMode (
//
// The Info buffer would be allocated by callee
//
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) NumberIndex, &SizeOfInfo, &Info);
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)NumberIndex, &SizeOfInfo, &Info);
if (EFI_ERROR (Status)) {
return Status;
}
+
if ((Info->HorizontalResolution == Mode->HorizontalResolution) &&
- (Info->VerticalResolution == Mode->VerticalResolution)) {
+ (Info->VerticalResolution == Mode->VerticalResolution))
+ {
//
// If GOP device supports one mode in current mode buffer,
// it will be added into matched mode buffer
@@ -2847,6 +2859,7 @@ ConSplitterAddGraphicsOutputMode (
FreePool (Info);
break;
}
+
FreePool (Info);
}
@@ -2858,7 +2871,8 @@ ConSplitterAddGraphicsOutputMode (
//
for (Info = ModeBuffer; Info < MatchedMode; Info++) {
if ((Info->HorizontalResolution == Mode->HorizontalResolution) &&
- (Info->VerticalResolution == Mode->VerticalResolution)) {
+ (Info->VerticalResolution == Mode->VerticalResolution))
+ {
AlreadyExist = TRUE;
break;
}
@@ -2870,7 +2884,7 @@ ConSplitterAddGraphicsOutputMode (
//
// Physical frame buffer is no longer available, change PixelFormat to PixelBltOnly
//
- MatchedMode->Version = 0;
+ MatchedMode->Version = 0;
MatchedMode->PixelFormat = PixelBltOnly;
ZeroMem (&MatchedMode->PixelInformation, sizeof (EFI_PIXEL_BITMASK));
@@ -2890,11 +2904,11 @@ ConSplitterAddGraphicsOutputMode (
//
// Physical frame buffer is no longer available when there are more than one physical GOP devices
//
- CurrentGraphicsOutputMode->MaxMode = (UINT32) (((UINTN) MatchedMode - (UINTN) ModeBuffer) / sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
+ CurrentGraphicsOutputMode->MaxMode = (UINT32)(((UINTN)MatchedMode - (UINTN)ModeBuffer) / sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
CurrentGraphicsOutputMode->Info->PixelFormat = PixelBltOnly;
ZeroMem (&CurrentGraphicsOutputMode->Info->PixelInformation, sizeof (EFI_PIXEL_BITMASK));
- CurrentGraphicsOutputMode->SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
- CurrentGraphicsOutputMode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) (UINTN) NULL;
+ CurrentGraphicsOutputMode->SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
+ CurrentGraphicsOutputMode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS)(UINTN)NULL;
CurrentGraphicsOutputMode->FrameBufferSize = 0;
}
@@ -2904,11 +2918,13 @@ ConSplitterAddGraphicsOutputMode (
for (Index = 0; Index < CurrentGraphicsOutputMode->MaxMode; Index++) {
Mode = &Private->GraphicsOutputModeBuffer[Index];
if ((Mode->HorizontalResolution == GraphicsOutput->Mode->Info->HorizontalResolution) &&
- (Mode->VerticalResolution == GraphicsOutput->Mode->Info->VerticalResolution)) {
+ (Mode->VerticalResolution == GraphicsOutput->Mode->Info->VerticalResolution))
+ {
CurrentIndex = Index;
break;
}
}
+
if (Index >= CurrentGraphicsOutputMode->MaxMode) {
//
// if user defined mode is not found, set to default mode 800x600
@@ -2934,15 +2950,15 @@ ConSplitterAddGraphicsOutputMode (
&UgaRefreshRate
);
- CurrentGraphicsOutputMode->MaxMode = 1;
- Info = CurrentGraphicsOutputMode->Info;
- Info->Version = 0;
+ CurrentGraphicsOutputMode->MaxMode = 1;
+ Info = CurrentGraphicsOutputMode->Info;
+ Info->Version = 0;
Info->HorizontalResolution = UgaHorizontalResolution;
Info->VerticalResolution = UgaVerticalResolution;
Info->PixelFormat = PixelBltOnly;
Info->PixelsPerScanLine = UgaHorizontalResolution;
CurrentGraphicsOutputMode->SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
- CurrentGraphicsOutputMode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) (UINTN) NULL;
+ CurrentGraphicsOutputMode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS)(UINTN)NULL;
CurrentGraphicsOutputMode->FrameBufferSize = 0;
//
@@ -2961,6 +2977,7 @@ Done:
if (GraphicsOutput != NULL) {
Private->CurrentNumberOfGraphicsOutput++;
}
+
if (UgaDraw != NULL) {
Private->CurrentNumberOfUgaDraw++;
}
@@ -2972,26 +2989,31 @@ Done:
Mode = &Private->GraphicsOutputModeBuffer[CurrentIndex];
if ((GraphicsOutput != NULL) &&
(Mode->HorizontalResolution == CurrentGraphicsOutputMode->Info->HorizontalResolution) &&
- (Mode->VerticalResolution == CurrentGraphicsOutputMode->Info->VerticalResolution)) {
- CurrentGraphicsOutputMode->Mode = (UINT32) CurrentIndex;
+ (Mode->VerticalResolution == CurrentGraphicsOutputMode->Info->VerticalResolution))
+ {
+ CurrentGraphicsOutputMode->Mode = (UINT32)CurrentIndex;
if ((Mode->HorizontalResolution != GraphicsOutput->Mode->Info->HorizontalResolution) ||
- (Mode->VerticalResolution != GraphicsOutput->Mode->Info->VerticalResolution)) {
+ (Mode->VerticalResolution != GraphicsOutput->Mode->Info->VerticalResolution))
+ {
//
// If all existing video device has been set to common mode, only set new GOP device to
// the common mode
//
- for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex ++) {
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) NumberIndex, &SizeOfInfo, &Info);
+ for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex++) {
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)NumberIndex, &SizeOfInfo, &Info);
if (EFI_ERROR (Status)) {
return Status;
}
+
if ((Info->HorizontalResolution == Mode->HorizontalResolution) && (Info->VerticalResolution == Mode->VerticalResolution)) {
FreePool (Info);
break;
}
+
FreePool (Info);
}
- Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32) NumberIndex);
+
+ Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32)NumberIndex);
}
} else {
//
@@ -3001,14 +3023,14 @@ Done:
//
// Graphics console can ensure all GOP devices have the same mode which can be taken as current mode.
//
- Status = Private->GraphicsOutput.SetMode (&Private->GraphicsOutput, (UINT32) CurrentIndex);
- if (EFI_ERROR(Status)) {
+ Status = Private->GraphicsOutput.SetMode (&Private->GraphicsOutput, (UINT32)CurrentIndex);
+ if (EFI_ERROR (Status)) {
//
// If user defined mode is not valid for display device, set to the default mode 800x600.
//
(Private->GraphicsOutputModeBuffer[0]).HorizontalResolution = 800;
(Private->GraphicsOutputModeBuffer[0]).VerticalResolution = 600;
- Status = Private->GraphicsOutput.SetMode (&Private->GraphicsOutput, 0);
+ Status = Private->GraphicsOutput.SetMode (&Private->GraphicsOutput, 0);
}
}
@@ -3041,10 +3063,10 @@ ConsplitterSetConsoleOutMode (
CONSOLE_OUT_MODE MaxModeInfo;
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;
- PreferMode = 0xFF;
- BaseMode = 0xFF;
- TextOut = &Private->TextOut;
- MaxMode = (UINTN) (TextOut->Mode->MaxMode);
+ PreferMode = 0xFF;
+ BaseMode = 0xFF;
+ TextOut = &Private->TextOut;
+ MaxMode = (UINTN)(TextOut->Mode->MaxMode);
MaxModeInfo.Column = 0;
MaxModeInfo.Row = 0;
@@ -3056,12 +3078,12 @@ ConsplitterSetConsoleOutMode (
//
for (Mode = 0; Mode < MaxMode; Mode++) {
Status = TextOut->QueryMode (TextOut, Mode, &Col, &Row);
- if (!EFI_ERROR(Status)) {
+ if (!EFI_ERROR (Status)) {
if ((ModeInfo.Column != 0) && (ModeInfo.Row != 0)) {
//
// Use user defined column and row
//
- if (Col == ModeInfo.Column && Row == ModeInfo.Row) {
+ if ((Col == ModeInfo.Column) && (Row == ModeInfo.Row)) {
PreferMode = Mode;
}
} else {
@@ -3070,12 +3092,13 @@ ConsplitterSetConsoleOutMode (
// find and set the highest text mode.
//
if ((Col >= MaxModeInfo.Column) && (Row >= MaxModeInfo.Row)) {
- MaxModeInfo.Column = Col;
- MaxModeInfo.Row = Row;
- PreferMode = Mode;
+ MaxModeInfo.Column = Col;
+ MaxModeInfo.Row = Row;
+ PreferMode = Mode;
}
}
- if (Col == 80 && Row == 25) {
+
+ if ((Col == 80) && (Row == 25)) {
BaseMode = Mode;
}
}
@@ -3085,23 +3108,22 @@ ConsplitterSetConsoleOutMode (
// Set prefer mode to Text Out devices.
//
Status = TextOut->SetMode (TextOut, PreferMode);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
//
// if current mode setting is failed, default 80x25 mode will be set.
//
Status = TextOut->SetMode (TextOut, BaseMode);
- ASSERT(!EFI_ERROR(Status));
+ ASSERT (!EFI_ERROR (Status));
Status = PcdSet32S (PcdConOutColumn, 80);
- ASSERT(!EFI_ERROR(Status));
+ ASSERT (!EFI_ERROR (Status));
Status = PcdSet32S (PcdConOutRow, 25);
- ASSERT(!EFI_ERROR(Status));
+ ASSERT (!EFI_ERROR (Status));
}
- return ;
+ return;
}
-
/**
Add Text Output Device in Consplitter Text Output list.
@@ -3116,23 +3138,23 @@ ConsplitterSetConsoleOutMode (
**/
EFI_STATUS
ConSplitterTextOutAddDevice (
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut,
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
- IN EFI_UGA_DRAW_PROTOCOL *UgaDraw
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut,
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
+ IN EFI_UGA_DRAW_PROTOCOL *UgaDraw
)
{
- EFI_STATUS Status;
- UINTN CurrentNumOfConsoles;
- INT32 MaxMode;
- UINT32 UgaHorizontalResolution;
- UINT32 UgaVerticalResolution;
- UINT32 UgaColorDepth;
- UINT32 UgaRefreshRate;
- TEXT_OUT_AND_GOP_DATA *TextAndGop;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
- EFI_STATUS DeviceStatus;
+ EFI_STATUS Status;
+ UINTN CurrentNumOfConsoles;
+ INT32 MaxMode;
+ UINT32 UgaHorizontalResolution;
+ UINT32 UgaVerticalResolution;
+ UINT32 UgaColorDepth;
+ UINT32 UgaRefreshRate;
+ TEXT_OUT_AND_GOP_DATA *TextAndGop;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ EFI_STATUS DeviceStatus;
Status = EFI_SUCCESS;
CurrentNumOfConsoles = Private->CurrentNumberOfConsoles;
@@ -3143,13 +3165,14 @@ ConSplitterTextOutAddDevice (
//
while (CurrentNumOfConsoles >= Private->TextOutListCount) {
Status = ConSplitterGrowBuffer (
- sizeof (TEXT_OUT_AND_GOP_DATA),
- &Private->TextOutListCount,
- (VOID **) &Private->TextOutList
- );
+ sizeof (TEXT_OUT_AND_GOP_DATA),
+ &Private->TextOutListCount,
+ (VOID **)&Private->TextOutList
+ );
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Also need to reallocate the TextOutModeMap table
//
@@ -3159,7 +3182,7 @@ ConSplitterTextOutAddDevice (
}
}
- TextAndGop = &Private->TextOutList[CurrentNumOfConsoles];
+ TextAndGop = &Private->TextOutList[CurrentNumOfConsoles];
TextAndGop->TextOut = TextOut;
TextAndGop->GraphicsOutput = GraphicsOutput;
@@ -3183,7 +3206,7 @@ ConSplitterTextOutAddDevice (
//
ConSplitterGetIntersectionBetweenConOutAndStrErr ();
- MaxMode = Private->TextOutMode.MaxMode;
+ MaxMode = Private->TextOutMode.MaxMode;
ASSERT (MaxMode >= 1);
DeviceStatus = EFI_DEVICE_ERROR;
@@ -3205,50 +3228,52 @@ ConSplitterTextOutAddDevice (
if (EFI_ERROR (Status)) {
return Status;
}
- ASSERT ( SizeOfInfo <= sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
+
+ ASSERT (SizeOfInfo <= sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION));
UgaHorizontalResolution = Info->HorizontalResolution;
UgaVerticalResolution = Info->VerticalResolution;
FreePool (Info);
-
} else if (UgaDraw != NULL) {
Status = UgaDraw->GetMode (
- UgaDraw,
- &UgaHorizontalResolution,
- &UgaVerticalResolution,
- &UgaColorDepth,
- &UgaRefreshRate
- );
+ UgaDraw,
+ &UgaHorizontalResolution,
+ &UgaVerticalResolution,
+ &UgaColorDepth,
+ &UgaRefreshRate
+ );
if (!EFI_ERROR (Status) && EFI_ERROR (DeviceStatus)) {
//
// if GetMode is successfully and UGA device hasn't been set, set it
//
Status = ConSplitterUgaDrawSetMode (
- &Private->UgaDraw,
- UgaHorizontalResolution,
- UgaVerticalResolution,
- UgaColorDepth,
- UgaRefreshRate
- );
+ &Private->UgaDraw,
+ UgaHorizontalResolution,
+ UgaVerticalResolution,
+ UgaColorDepth,
+ UgaRefreshRate
+ );
}
+
//
// If GetMode/SetMode is failed, set to 800x600 mode
//
- if(EFI_ERROR (Status)) {
+ if (EFI_ERROR (Status)) {
Status = ConSplitterUgaDrawSetMode (
- &Private->UgaDraw,
- 800,
- 600,
- 32,
- 60
- );
+ &Private->UgaDraw,
+ 800,
+ 600,
+ 32,
+ 60
+ );
}
}
}
if (((!EFI_ERROR (DeviceStatus)) || (!EFI_ERROR (Status))) &&
- ((Private->CurrentNumberOfGraphicsOutput + Private->CurrentNumberOfUgaDraw) == 1)) {
+ ((Private->CurrentNumberOfGraphicsOutput + Private->CurrentNumberOfUgaDraw) == 1))
+ {
if (!FeaturePcdGet (PcdConOutGopSupport)) {
//
// If Graphics Outpurt protocol not supported, UGA Draw protocol is installed
@@ -3298,7 +3323,6 @@ ConSplitterTextOutAddDevice (
return Status;
}
-
/**
Remove Text Out Device in Consplitter Text Out list.
@@ -3311,30 +3335,32 @@ ConSplitterTextOutAddDevice (
**/
EFI_STATUS
ConSplitterTextOutDeleteDevice (
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
)
{
- INT32 Index;
- UINTN CurrentNumOfConsoles;
- TEXT_OUT_AND_GOP_DATA *TextOutList;
- EFI_STATUS Status;
+ INT32 Index;
+ UINTN CurrentNumOfConsoles;
+ TEXT_OUT_AND_GOP_DATA *TextOutList;
+ EFI_STATUS Status;
//
// Remove the specified text-out device data structure from the Text out List,
// and rearrange the remaining data structures in the Text out List.
//
- CurrentNumOfConsoles = Private->CurrentNumberOfConsoles;
- Index = (INT32) CurrentNumOfConsoles - 1;
- TextOutList = Private->TextOutList;
+ CurrentNumOfConsoles = Private->CurrentNumberOfConsoles;
+ Index = (INT32)CurrentNumOfConsoles - 1;
+ TextOutList = Private->TextOutList;
while (Index >= 0) {
if (TextOutList->TextOut == TextOut) {
if (TextOutList->UgaDraw != NULL) {
Private->CurrentNumberOfUgaDraw--;
}
+
if (TextOutList->GraphicsOutput != NULL) {
Private->CurrentNumberOfGraphicsOutput--;
}
+
CopyMem (TextOutList, TextOutList + 1, sizeof (TEXT_OUT_AND_GOP_DATA) * Index);
CurrentNumOfConsoles--;
break;
@@ -3343,6 +3369,7 @@ ConSplitterTextOutDeleteDevice (
Index--;
TextOutList++;
}
+
//
// The specified TextOut is not managed by the ConSplitter driver
//
@@ -3369,13 +3396,13 @@ ConSplitterTextOutDeleteDevice (
);
} else {
Status = gBS->UninstallMultipleProtocolInterfaces (
- Private->VirtualHandle,
- &gEfiUgaDrawProtocolGuid,
- &Private->UgaDraw,
- &gEfiGraphicsOutputProtocolGuid,
- &Private->GraphicsOutput,
- NULL
- );
+ Private->VirtualHandle,
+ &gEfiUgaDrawProtocolGuid,
+ &Private->UgaDraw,
+ &gEfiGraphicsOutputProtocolGuid,
+ &Private->GraphicsOutput,
+ NULL
+ );
}
}
@@ -3383,14 +3410,15 @@ ConSplitterTextOutDeleteDevice (
//
// If the number of consoles is zero, reset all parameters
//
- Private->CurrentNumberOfConsoles = 0;
- Private->TextOutMode.MaxMode = 1;
- Private->TextOutQueryData[0].Columns = 80;
- Private->TextOutQueryData[0].Rows = 25;
+ Private->CurrentNumberOfConsoles = 0;
+ Private->TextOutMode.MaxMode = 1;
+ Private->TextOutQueryData[0].Columns = 80;
+ Private->TextOutQueryData[0].Rows = 25;
TextOutSetMode (Private, 0);
return EFI_SUCCESS;
}
+
//
// Max Mode is really an intersection of the QueryMode command to all
// devices. So we must copy the QueryMode of the first device to
@@ -3413,10 +3441,10 @@ ConSplitterTextOutDeleteDevice (
//
// Now add one by one
//
- Index = 1;
+ Index = 1;
Private->CurrentNumberOfConsoles = 1;
TextOutList++;
- while ((UINTN) Index < CurrentNumOfConsoles) {
+ while ((UINTN)Index < CurrentNumOfConsoles) {
ConSplitterSyncOutputMode (Private, TextOutList->TextOut);
Index++;
Private->CurrentNumberOfConsoles++;
@@ -3428,7 +3456,6 @@ ConSplitterTextOutDeleteDevice (
return Status;
}
-
/**
Reset the input device and optionally run diagnostics
@@ -3447,23 +3474,23 @@ ConSplitterTextInReset (
IN BOOLEAN ExtendedVerification
)
{
- EFI_STATUS Status;
- EFI_STATUS ReturnStatus;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ EFI_STATUS ReturnStatus;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
- Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
+ Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
- Private->KeyEventSignalState = FALSE;
+ Private->KeyEventSignalState = FALSE;
//
// return the worst status met
//
for (Index = 0, ReturnStatus = EFI_SUCCESS; Index < Private->CurrentNumberOfConsoles; Index++) {
Status = Private->TextInList[Index]->Reset (
- Private->TextInList[Index],
- ExtendedVerification
- );
+ Private->TextInList[Index],
+ ExtendedVerification
+ );
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
}
@@ -3492,13 +3519,14 @@ ConSplitterTextInReset (
**/
EFI_STATUS
ConSplitterTextInExDequeueKey (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- OUT EFI_KEY_DATA *KeyData
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ OUT EFI_KEY_DATA *KeyData
)
{
if (Private->CurrentNumberOfKeys == 0) {
return EFI_NOT_FOUND;
}
+
//
// Return the first saved key.
//
@@ -3528,8 +3556,8 @@ ConSplitterTextInExDequeueKey (
EFI_STATUS
EFIAPI
ConSplitterTextInPrivateReadKeyStroke (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- OUT EFI_INPUT_KEY *Key
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ OUT EFI_INPUT_KEY *Key
)
{
EFI_STATUS Status;
@@ -3544,14 +3572,15 @@ ConSplitterTextInPrivateReadKeyStroke (
if (EFI_ERROR (Status)) {
break;
}
+
if ((KeyData.Key.ScanCode != CHAR_NULL) || (KeyData.Key.UnicodeChar != SCAN_NULL)) {
CopyMem (Key, &KeyData.Key, sizeof (EFI_INPUT_KEY));
return Status;
}
}
- Key->UnicodeChar = 0;
- Key->ScanCode = SCAN_NULL;
+ Key->UnicodeChar = 0;
+ Key->ScanCode = SCAN_NULL;
//
// if no physical console input device exists, return EFI_NOT_READY;
@@ -3560,9 +3589,9 @@ ConSplitterTextInPrivateReadKeyStroke (
//
for (Index = 0; Index < Private->CurrentNumberOfConsoles;) {
Status = Private->TextInList[Index]->ReadKeyStroke (
- Private->TextInList[Index],
- &KeyData.Key
- );
+ Private->TextInList[Index],
+ &KeyData.Key
+ );
if (!EFI_ERROR (Status)) {
//
// If it is not partial keystorke, return the key. Otherwise, continue
@@ -3583,8 +3612,6 @@ ConSplitterTextInPrivateReadKeyStroke (
return EFI_NOT_READY;
}
-
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existence of a keystroke via WaitForEvent () call.
@@ -3605,7 +3632,7 @@ ConSplitterTextInReadKeyStroke (
OUT EFI_INPUT_KEY *Key
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
@@ -3623,7 +3650,6 @@ ConSplitterTextInReadKeyStroke (
return ConSplitterTextInPrivateReadKeyStroke (Private, Key);
}
-
/**
This event aggregates all the events of the ConIn devices in the spliter.
@@ -3638,22 +3664,22 @@ ConSplitterTextInReadKeyStroke (
VOID
EFIAPI
ConSplitterTextInWaitForKey (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
- Private = (TEXT_IN_SPLITTER_PRIVATE_DATA *) Context;
+ Private = (TEXT_IN_SPLITTER_PRIVATE_DATA *)Context;
if (Private->KeyEventSignalState) {
//
// If KeyEventSignalState is flagged before, and not cleared by Reset() or ReadKeyStroke()
//
gBS->SignalEvent (Event);
- return ;
+ return;
}
//
@@ -3668,8 +3694,6 @@ ConSplitterTextInWaitForKey (
}
}
-
-
/**
Test if the key has been registered on input device.
@@ -3693,27 +3717,29 @@ IsKeyRegistered (
ASSERT (RegsiteredData != NULL && InputData != NULL);
if ((RegsiteredData->Key.ScanCode != InputData->Key.ScanCode) ||
- (RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar)) {
+ (RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar))
+ {
return FALSE;
}
//
// Assume KeyShiftState/KeyToggleState = 0 in Registered key data means these state could be ignored.
//
- if (RegsiteredData->KeyState.KeyShiftState != 0 &&
- RegsiteredData->KeyState.KeyShiftState != InputData->KeyState.KeyShiftState) {
+ if ((RegsiteredData->KeyState.KeyShiftState != 0) &&
+ (RegsiteredData->KeyState.KeyShiftState != InputData->KeyState.KeyShiftState))
+ {
return FALSE;
}
- if (RegsiteredData->KeyState.KeyToggleState != 0 &&
- RegsiteredData->KeyState.KeyToggleState != InputData->KeyState.KeyToggleState) {
+
+ if ((RegsiteredData->KeyState.KeyToggleState != 0) &&
+ (RegsiteredData->KeyState.KeyToggleState != InputData->KeyState.KeyToggleState))
+ {
return FALSE;
}
return TRUE;
-
}
-
/**
Reset the input device and optionally run diagnostics
@@ -3732,14 +3758,14 @@ ConSplitterTextInResetEx (
IN BOOLEAN ExtendedVerification
)
{
- EFI_STATUS Status;
- EFI_STATUS ReturnStatus;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ EFI_STATUS ReturnStatus;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
- Private = TEXT_IN_EX_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
+ Private = TEXT_IN_EX_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
- Private->KeyEventSignalState = FALSE;
+ Private->KeyEventSignalState = FALSE;
//
// return the worst status met
@@ -3763,10 +3789,8 @@ ConSplitterTextInResetEx (
}
return ReturnStatus;
-
}
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existence of a keystroke via WaitForEvent () call.
@@ -3786,16 +3810,15 @@ ConSplitterTextInResetEx (
EFI_STATUS
EFIAPI
ConSplitterTextInReadKeyStrokeEx (
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
- OUT EFI_KEY_DATA *KeyData
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ OUT EFI_KEY_DATA *KeyData
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- EFI_STATUS Status;
- UINTN Index;
- EFI_KEY_STATE KeyState;
- EFI_KEY_DATA CurrentKeyData;
-
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ UINTN Index;
+ EFI_KEY_STATE KeyState;
+ EFI_KEY_DATA CurrentKeyData;
if (KeyData == NULL) {
return EFI_INVALID_PARAMETER;
@@ -3821,6 +3844,7 @@ ConSplitterTextInReadKeyStrokeEx (
if (!EFI_ERROR (Status)) {
return Status;
}
+
ASSERT (Private->CurrentNumberOfKeys == 0);
ZeroMem (&KeyState, sizeof (KeyState));
@@ -3846,6 +3870,7 @@ ConSplitterTextInReadKeyStrokeEx (
if ((CurrentKeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0) {
KeyState.KeyShiftState |= CurrentKeyData.KeyState.KeyShiftState;
}
+
if ((CurrentKeyData.KeyState.KeyToggleState & EFI_TOGGLE_STATE_VALID) != 0) {
KeyState.KeyToggleState |= CurrentKeyData.KeyState.KeyToggleState;
}
@@ -3859,7 +3884,8 @@ ConSplitterTextInReadKeyStrokeEx (
//
if ((Private->VirtualKeyStateExported) ||
(CurrentKeyData.Key.ScanCode != CHAR_NULL) ||
- (CurrentKeyData.Key.UnicodeChar != SCAN_NULL)) {
+ (CurrentKeyData.Key.UnicodeChar != SCAN_NULL))
+ {
CopyMem (
&Private->KeyQueue[Private->CurrentNumberOfKeys],
&CurrentKeyData,
@@ -3893,7 +3919,6 @@ ConSplitterTextInReadKeyStrokeEx (
return EFI_NOT_READY;
}
-
/**
Set certain state for the input device.
@@ -3916,10 +3941,10 @@ ConSplitterTextInSetState (
IN EFI_KEY_TOGGLE_STATE *KeyToggleState
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- EFI_STATUS Status;
- UINTN Index;
- EFI_KEY_TOGGLE_STATE PhysicalKeyToggleState;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ UINTN Index;
+ EFI_KEY_TOGGLE_STATE PhysicalKeyToggleState;
if (KeyToggleState == NULL) {
return EFI_INVALID_PARAMETER;
@@ -3957,10 +3982,8 @@ ConSplitterTextInSetState (
Private->VirtualKeyStateExported = (((*KeyToggleState) & EFI_KEY_STATE_EXPOSED) != 0);
return EFI_SUCCESS;
-
}
-
/**
Register a notification function for a particular keystroke for the input device.
@@ -3992,15 +4015,14 @@ ConSplitterTextInRegisterKeyNotify (
OUT VOID **NotifyHandle
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- EFI_STATUS Status;
- UINTN Index;
- TEXT_IN_EX_SPLITTER_NOTIFY *NewNotify;
- LIST_ENTRY *Link;
- TEXT_IN_EX_SPLITTER_NOTIFY *CurrentNotify;
-
-
- if (KeyData == NULL || NotifyHandle == NULL || KeyNotificationFunction == NULL) {
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ UINTN Index;
+ TEXT_IN_EX_SPLITTER_NOTIFY *NewNotify;
+ LIST_ENTRY *Link;
+ TEXT_IN_EX_SPLITTER_NOTIFY *CurrentNotify;
+
+ if ((KeyData == NULL) || (NotifyHandle == NULL) || (KeyNotificationFunction == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -4022,15 +4044,17 @@ ConSplitterTextInRegisterKeyNotify (
//
// Allocate resource to save the notification function
//
- NewNotify = (TEXT_IN_EX_SPLITTER_NOTIFY *) AllocateZeroPool (sizeof (TEXT_IN_EX_SPLITTER_NOTIFY));
+ NewNotify = (TEXT_IN_EX_SPLITTER_NOTIFY *)AllocateZeroPool (sizeof (TEXT_IN_EX_SPLITTER_NOTIFY));
if (NewNotify == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- NewNotify->NotifyHandleList = (VOID **) AllocateZeroPool (sizeof (VOID *) * Private->TextInExListCount);
+
+ NewNotify->NotifyHandleList = (VOID **)AllocateZeroPool (sizeof (VOID *) * Private->TextInExListCount);
if (NewNotify->NotifyHandleList == NULL) {
gBS->FreePool (NewNotify);
return EFI_OUT_OF_RESOURCES;
}
+
NewNotify->Signature = TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE;
NewNotify->KeyNotificationFn = KeyNotificationFunction;
CopyMem (&NewNotify->KeyData, KeyData, sizeof (EFI_KEY_DATA));
@@ -4056,6 +4080,7 @@ ConSplitterTextInRegisterKeyNotify (
NewNotify->NotifyHandleList[Index]
);
}
+
gBS->FreePool (NewNotify->NotifyHandleList);
gBS->FreePool (NewNotify);
return Status;
@@ -4064,13 +4089,11 @@ ConSplitterTextInRegisterKeyNotify (
InsertTailList (&Private->NotifyList, &NewNotify->NotifyEntry);
- *NotifyHandle = NewNotify;
+ *NotifyHandle = NewNotify;
return EFI_SUCCESS;
-
}
-
/**
Remove a registered notification function from a particular keystroke.
@@ -4090,10 +4113,10 @@ ConSplitterTextInUnregisterKeyNotify (
IN VOID *NotificationHandle
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
- TEXT_IN_EX_SPLITTER_NOTIFY *CurrentNotify;
- LIST_ENTRY *Link;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
+ TEXT_IN_EX_SPLITTER_NOTIFY *CurrentNotify;
+ LIST_ENTRY *Link;
if (NotificationHandle == NULL) {
return EFI_INVALID_PARAMETER;
@@ -4110,6 +4133,7 @@ ConSplitterTextInUnregisterKeyNotify (
CurrentNotify->NotifyHandleList[Index]
);
}
+
RemoveEntryList (&CurrentNotify->NotifyEntry);
gBS->FreePool (CurrentNotify->NotifyHandleList);
@@ -4124,7 +4148,6 @@ ConSplitterTextInUnregisterKeyNotify (
return EFI_INVALID_PARAMETER;
}
-
/**
Reset the input device and optionally run diagnostics
@@ -4139,22 +4162,23 @@ ConSplitterTextInUnregisterKeyNotify (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerReset (
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_POINTER_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
- EFI_STATUS Status;
- EFI_STATUS ReturnStatus;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ EFI_STATUS ReturnStatus;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
- Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_SIMPLE_POINTER_THIS (This);
+ Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_SIMPLE_POINTER_THIS (This);
- Private->InputEventSignalState = FALSE;
+ Private->InputEventSignalState = FALSE;
if (Private->CurrentNumberOfPointers == 0) {
return EFI_SUCCESS;
}
+
//
// return the worst status met
//
@@ -4171,7 +4195,6 @@ ConSplitterSimplePointerReset (
return ReturnStatus;
}
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existence of a keystroke via WaitForEvent () call.
@@ -4188,8 +4211,8 @@ ConSplitterSimplePointerReset (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerPrivateGetState (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN OUT EFI_SIMPLE_POINTER_STATE *State
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN OUT EFI_SIMPLE_POINTER_STATE *State
)
{
EFI_STATUS Status;
@@ -4197,11 +4220,11 @@ ConSplitterSimplePointerPrivateGetState (
UINTN Index;
EFI_SIMPLE_POINTER_STATE CurrentState;
- State->RelativeMovementX = 0;
- State->RelativeMovementY = 0;
- State->RelativeMovementZ = 0;
- State->LeftButton = FALSE;
- State->RightButton = FALSE;
+ State->RelativeMovementX = 0;
+ State->RelativeMovementY = 0;
+ State->RelativeMovementZ = 0;
+ State->LeftButton = FALSE;
+ State->RightButton = FALSE;
//
// if no physical console input device exists, return EFI_NOT_READY;
@@ -4210,7 +4233,6 @@ ConSplitterSimplePointerPrivateGetState (
//
ReturnStatus = EFI_NOT_READY;
for (Index = 0; Index < Private->CurrentNumberOfPointers; Index++) {
-
Status = Private->PointerList[Index]->GetState (
Private->PointerList[Index],
&CurrentState
@@ -4228,16 +4250,16 @@ ConSplitterSimplePointerPrivateGetState (
State->RightButton = TRUE;
}
- if (CurrentState.RelativeMovementX != 0 && Private->PointerList[Index]->Mode->ResolutionX != 0) {
- State->RelativeMovementX += (CurrentState.RelativeMovementX * (INT32) Private->SimplePointerMode.ResolutionX) / (INT32) Private->PointerList[Index]->Mode->ResolutionX;
+ if ((CurrentState.RelativeMovementX != 0) && (Private->PointerList[Index]->Mode->ResolutionX != 0)) {
+ State->RelativeMovementX += (CurrentState.RelativeMovementX * (INT32)Private->SimplePointerMode.ResolutionX) / (INT32)Private->PointerList[Index]->Mode->ResolutionX;
}
- if (CurrentState.RelativeMovementY != 0 && Private->PointerList[Index]->Mode->ResolutionY != 0) {
- State->RelativeMovementY += (CurrentState.RelativeMovementY * (INT32) Private->SimplePointerMode.ResolutionY) / (INT32) Private->PointerList[Index]->Mode->ResolutionY;
+ if ((CurrentState.RelativeMovementY != 0) && (Private->PointerList[Index]->Mode->ResolutionY != 0)) {
+ State->RelativeMovementY += (CurrentState.RelativeMovementY * (INT32)Private->SimplePointerMode.ResolutionY) / (INT32)Private->PointerList[Index]->Mode->ResolutionY;
}
- if (CurrentState.RelativeMovementZ != 0 && Private->PointerList[Index]->Mode->ResolutionZ != 0) {
- State->RelativeMovementZ += (CurrentState.RelativeMovementZ * (INT32) Private->SimplePointerMode.ResolutionZ) / (INT32) Private->PointerList[Index]->Mode->ResolutionZ;
+ if ((CurrentState.RelativeMovementZ != 0) && (Private->PointerList[Index]->Mode->ResolutionZ != 0)) {
+ State->RelativeMovementZ += (CurrentState.RelativeMovementZ * (INT32)Private->SimplePointerMode.ResolutionZ) / (INT32)Private->PointerList[Index]->Mode->ResolutionZ;
}
} else if (Status == EFI_DEVICE_ERROR) {
ReturnStatus = EFI_DEVICE_ERROR;
@@ -4247,7 +4269,6 @@ ConSplitterSimplePointerPrivateGetState (
return ReturnStatus;
}
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existance of a keystroke via WaitForEvent () call.
@@ -4264,11 +4285,11 @@ ConSplitterSimplePointerPrivateGetState (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerGetState (
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,
- IN OUT EFI_SIMPLE_POINTER_STATE *State
+ IN EFI_SIMPLE_POINTER_PROTOCOL *This,
+ IN OUT EFI_SIMPLE_POINTER_STATE *State
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_SIMPLE_POINTER_THIS (This);
@@ -4277,7 +4298,6 @@ ConSplitterSimplePointerGetState (
return ConSplitterSimplePointerPrivateGetState (Private, State);
}
-
/**
This event aggregates all the events of the ConIn devices in the spliter.
If any events of physical ConIn devices are signaled, signal the ConIn
@@ -4291,23 +4311,24 @@ ConSplitterSimplePointerGetState (
VOID
EFIAPI
ConSplitterSimplePointerWaitForInput (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
- Private = (TEXT_IN_SPLITTER_PRIVATE_DATA *) Context;
+ Private = (TEXT_IN_SPLITTER_PRIVATE_DATA *)Context;
//
// if InputEventSignalState is flagged before, and not cleared by Reset() or ReadKeyStroke()
//
if (Private->InputEventSignalState) {
gBS->SignalEvent (Event);
- return ;
+ return;
}
+
//
// if any physical console input device has key input, signal the event.
//
@@ -4334,14 +4355,14 @@ ConSplitterSimplePointerWaitForInput (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerReset (
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
- EFI_STATUS Status;
- EFI_STATUS ReturnStatus;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ EFI_STATUS ReturnStatus;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_ABSOLUTE_POINTER_THIS (This);
@@ -4350,6 +4371,7 @@ ConSplitterAbsolutePointerReset (
if (Private->CurrentNumberOfAbsolutePointers == 0) {
return EFI_SUCCESS;
}
+
//
// return the worst status met
//
@@ -4366,7 +4388,6 @@ ConSplitterAbsolutePointerReset (
return ReturnStatus;
}
-
/**
Retrieves the current state of a pointer device.
@@ -4389,32 +4410,32 @@ ConSplitterAbsolutePointerGetState (
IN OUT EFI_ABSOLUTE_POINTER_STATE *State
)
{
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- EFI_STATUS Status;
- EFI_STATUS ReturnStatus;
- UINTN Index;
- EFI_ABSOLUTE_POINTER_STATE CurrentState;
- UINT64 MinX;
- UINT64 MinY;
- UINT64 MinZ;
- UINT64 MaxX;
- UINT64 MaxY;
- UINT64 MaxZ;
- UINT64 VirtualMinX;
- UINT64 VirtualMinY;
- UINT64 VirtualMinZ;
- UINT64 VirtualMaxX;
- UINT64 VirtualMaxY;
- UINT64 VirtualMaxZ;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ EFI_STATUS ReturnStatus;
+ UINTN Index;
+ EFI_ABSOLUTE_POINTER_STATE CurrentState;
+ UINT64 MinX;
+ UINT64 MinY;
+ UINT64 MinZ;
+ UINT64 MaxX;
+ UINT64 MaxY;
+ UINT64 MaxZ;
+ UINT64 VirtualMinX;
+ UINT64 VirtualMinY;
+ UINT64 VirtualMinZ;
+ UINT64 VirtualMaxX;
+ UINT64 VirtualMaxY;
+ UINT64 VirtualMaxZ;
Private = TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_ABSOLUTE_POINTER_THIS (This);
Private->AbsoluteInputEventSignalState = FALSE;
- State->CurrentX = 0;
- State->CurrentY = 0;
- State->CurrentZ = 0;
- State->ActiveButtons = 0;
+ State->CurrentX = 0;
+ State->CurrentY = 0;
+ State->CurrentZ = 0;
+ State->ActiveButtons = 0;
VirtualMinX = Private->AbsolutePointerMode.AbsoluteMinX;
VirtualMinY = Private->AbsolutePointerMode.AbsoluteMinY;
@@ -4430,7 +4451,6 @@ ConSplitterAbsolutePointerGetState (
//
ReturnStatus = EFI_NOT_READY;
for (Index = 0; Index < Private->CurrentNumberOfAbsolutePointers; Index++) {
-
Status = Private->AbsolutePointerList[Index]->GetState (
Private->AbsolutePointerList[Index],
&CurrentState
@@ -4452,7 +4472,7 @@ ConSplitterAbsolutePointerGetState (
//
// Rescale to Con Splitter virtual Absolute Pointer's resolution.
//
- if (!(MinX == 0 && MaxX == 0)) {
+ if (!((MinX == 0) && (MaxX == 0))) {
State->CurrentX = VirtualMinX + DivU64x64Remainder (
MultU64x64 (
CurrentState.CurrentX,
@@ -4462,7 +4482,8 @@ ConSplitterAbsolutePointerGetState (
NULL
);
}
- if (!(MinY == 0 && MaxY == 0)) {
+
+ if (!((MinY == 0) && (MaxY == 0))) {
State->CurrentY = VirtualMinY + DivU64x64Remainder (
MultU64x64 (
CurrentState.CurrentY,
@@ -4472,7 +4493,8 @@ ConSplitterAbsolutePointerGetState (
NULL
);
}
- if (!(MinZ == 0 && MaxZ == 0)) {
+
+ if (!((MinZ == 0) && (MaxZ == 0))) {
State->CurrentZ = VirtualMinZ + DivU64x64Remainder (
MultU64x64 (
CurrentState.CurrentZ,
@@ -4482,7 +4504,6 @@ ConSplitterAbsolutePointerGetState (
NULL
);
}
-
} else if (Status == EFI_DEVICE_ERROR) {
ReturnStatus = EFI_DEVICE_ERROR;
}
@@ -4491,7 +4512,6 @@ ConSplitterAbsolutePointerGetState (
return ReturnStatus;
}
-
/**
This event aggregates all the events of the pointer devices in the splitter.
If any events of physical pointer devices are signaled, signal the pointer
@@ -4505,15 +4525,15 @@ ConSplitterAbsolutePointerGetState (
VOID
EFIAPI
ConSplitterAbsolutePointerWaitForInput (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
+ EFI_STATUS Status;
+ TEXT_IN_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
- Private = (TEXT_IN_SPLITTER_PRIVATE_DATA *) Context;
+ Private = (TEXT_IN_SPLITTER_PRIVATE_DATA *)Context;
//
// if AbsoluteInputEventSignalState is flagged before,
@@ -4521,8 +4541,9 @@ ConSplitterAbsolutePointerWaitForInput (
//
if (Private->AbsoluteInputEventSignalState) {
gBS->SignalEvent (Event);
- return ;
+ return;
}
+
//
// if any physical console input device has key input, signal the event.
//
@@ -4535,7 +4556,6 @@ ConSplitterAbsolutePointerWaitForInput (
}
}
-
/**
Reset the text output device hardware and optionally run diagnostics
@@ -4551,8 +4571,8 @@ ConSplitterAbsolutePointerWaitForInput (
EFI_STATUS
EFIAPI
ConSplitterTextOutReset (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
EFI_STATUS Status;
@@ -4585,7 +4605,6 @@ ConSplitterTextOutReset (
return ReturnStatus;
}
-
/**
Write a Unicode string to the output device.
@@ -4608,8 +4627,8 @@ ConSplitterTextOutReset (
EFI_STATUS
EFIAPI
ConSplitterTextOutOutputString (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN CHAR16 *WString
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN CHAR16 *WString
)
{
EFI_STATUS Status;
@@ -4621,7 +4640,7 @@ ConSplitterTextOutOutputString (
This->SetAttribute (This, This->Mode->Attribute);
- Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
+ Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
//
// return the worst status met
@@ -4650,37 +4669,40 @@ ConSplitterTextOutOutputString (
&MaxColumn,
&MaxRow
);
- for (; *WString != CHAR_NULL; WString++) {
+ for ( ; *WString != CHAR_NULL; WString++) {
switch (*WString) {
- case CHAR_BACKSPACE:
- if (Private->TextOutMode.CursorColumn == 0 && Private->TextOutMode.CursorRow > 0) {
- Private->TextOutMode.CursorRow--;
- Private->TextOutMode.CursorColumn = (INT32) (MaxColumn - 1);
- } else if (Private->TextOutMode.CursorColumn > 0) {
- Private->TextOutMode.CursorColumn--;
- }
- break;
+ case CHAR_BACKSPACE:
+ if ((Private->TextOutMode.CursorColumn == 0) && (Private->TextOutMode.CursorRow > 0)) {
+ Private->TextOutMode.CursorRow--;
+ Private->TextOutMode.CursorColumn = (INT32)(MaxColumn - 1);
+ } else if (Private->TextOutMode.CursorColumn > 0) {
+ Private->TextOutMode.CursorColumn--;
+ }
- case CHAR_LINEFEED:
- if (Private->TextOutMode.CursorRow < (INT32) (MaxRow - 1)) {
- Private->TextOutMode.CursorRow++;
- }
- break;
+ break;
- case CHAR_CARRIAGE_RETURN:
- Private->TextOutMode.CursorColumn = 0;
- break;
+ case CHAR_LINEFEED:
+ if (Private->TextOutMode.CursorRow < (INT32)(MaxRow - 1)) {
+ Private->TextOutMode.CursorRow++;
+ }
- default:
- if (Private->TextOutMode.CursorColumn < (INT32) (MaxColumn - 1)) {
- Private->TextOutMode.CursorColumn++;
- } else {
+ break;
+
+ case CHAR_CARRIAGE_RETURN:
Private->TextOutMode.CursorColumn = 0;
- if (Private->TextOutMode.CursorRow < (INT32) (MaxRow - 1)) {
- Private->TextOutMode.CursorRow++;
+ break;
+
+ default:
+ if (Private->TextOutMode.CursorColumn < (INT32)(MaxColumn - 1)) {
+ Private->TextOutMode.CursorColumn++;
+ } else {
+ Private->TextOutMode.CursorColumn = 0;
+ if (Private->TextOutMode.CursorRow < (INT32)(MaxRow - 1)) {
+ Private->TextOutMode.CursorRow++;
+ }
}
- }
- break;
+
+ break;
}
}
}
@@ -4688,7 +4710,6 @@ ConSplitterTextOutOutputString (
return ReturnStatus;
}
-
/**
Verifies that all characters in a Unicode string can be output to the
target device.
@@ -4707,8 +4728,8 @@ ConSplitterTextOutOutputString (
EFI_STATUS
EFIAPI
ConSplitterTextOutTestString (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN CHAR16 *WString
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN CHAR16 *WString
)
{
EFI_STATUS Status;
@@ -4730,6 +4751,7 @@ ConSplitterTextOutTestString (
ReturnStatus = Status;
}
}
+
//
// There is no DevNullTextOutTestString () since a Unicode buffer would
// always return EFI_SUCCESS.
@@ -4738,7 +4760,6 @@ ConSplitterTextOutTestString (
return ReturnStatus;
}
-
/**
Returns information for an available text mode that the output device(s)
supports.
@@ -4759,10 +4780,10 @@ ConSplitterTextOutTestString (
EFI_STATUS
EFIAPI
ConSplitterTextOutQueryMode (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN ModeNumber,
- OUT UINTN *Columns,
- OUT UINTN *Rows
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN ModeNumber,
+ OUT UINTN *Columns,
+ OUT UINTN *Rows
)
{
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
@@ -4775,11 +4796,11 @@ ConSplitterTextOutQueryMode (
// Check whether param ModeNumber is valid.
// ModeNumber should be within range 0 ~ MaxMode - 1.
//
- if ( (ModeNumber > (UINTN)(((UINT32)-1)>>1)) ) {
+ if ((ModeNumber > (UINTN)(((UINT32)-1)>>1))) {
return EFI_UNSUPPORTED;
}
- if ((INT32) ModeNumber >= This->Mode->MaxMode) {
+ if ((INT32)ModeNumber >= This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
@@ -4792,19 +4813,17 @@ ConSplitterTextOutQueryMode (
*Columns = Private->TextOutQueryData[CurrentMode].Columns;
*Rows = Private->TextOutQueryData[CurrentMode].Rows;
} else {
- *Columns = Private->TextOutQueryData[ModeNumber].Columns;
- *Rows = Private->TextOutQueryData[ModeNumber].Rows;
+ *Columns = Private->TextOutQueryData[ModeNumber].Columns;
+ *Rows = Private->TextOutQueryData[ModeNumber].Rows;
}
- if (*Columns <= 0 && *Rows <= 0) {
+ if ((*Columns <= 0) && (*Rows <= 0)) {
return EFI_UNSUPPORTED;
-
}
return EFI_SUCCESS;
}
-
/**
Sets the output device(s) to a specified mode.
@@ -4820,8 +4839,8 @@ ConSplitterTextOutQueryMode (
EFI_STATUS
EFIAPI
ConSplitterTextOutSetMode (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN ModeNumber
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN ModeNumber
)
{
EFI_STATUS Status;
@@ -4836,19 +4855,21 @@ ConSplitterTextOutSetMode (
// Check whether param ModeNumber is valid.
// ModeNumber should be within range 0 ~ MaxMode - 1.
//
- if ( (ModeNumber > (UINTN)(((UINT32)-1)>>1)) ) {
+ if ((ModeNumber > (UINTN)(((UINT32)-1)>>1))) {
return EFI_UNSUPPORTED;
}
- if ((INT32) ModeNumber >= This->Mode->MaxMode) {
+ if ((INT32)ModeNumber >= This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
+
//
// If the mode is being set to the curent mode, then just clear the screen and return.
//
- if (Private->TextOutMode.Mode == (INT32) ModeNumber) {
+ if (Private->TextOutMode.Mode == (INT32)ModeNumber) {
return ConSplitterTextOutClearScreen (This);
}
+
//
// return the worst status met
//
@@ -4858,7 +4879,8 @@ ConSplitterTextOutSetMode (
// While adding a console out device do not set same mode again for the same device.
//
if ((!Private->AddingConOutDevice) ||
- (TextOutModeMap[Index] != Private->TextOutList[Index].TextOut->Mode->Mode)) {
+ (TextOutModeMap[Index] != Private->TextOutList[Index].TextOut->Mode->Mode))
+ {
Status = Private->TextOutList[Index].TextOut->SetMode (
Private->TextOutList[Index].TextOut,
TextOutModeMap[Index]
@@ -4877,7 +4899,6 @@ ConSplitterTextOutSetMode (
return ReturnStatus;
}
-
/**
Sets the background and foreground colors for the OutputString () and
ClearScreen () functions.
@@ -4898,8 +4919,8 @@ ConSplitterTextOutSetMode (
EFI_STATUS
EFIAPI
ConSplitterTextOutSetAttribute (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN Attribute
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN Attribute
)
{
EFI_STATUS Status;
@@ -4929,12 +4950,11 @@ ConSplitterTextOutSetAttribute (
}
}
- Private->TextOutMode.Attribute = (INT32) Attribute;
+ Private->TextOutMode.Attribute = (INT32)Attribute;
return ReturnStatus;
}
-
/**
Clears the output device(s) display to the currently selected background
color.
@@ -4950,7 +4970,7 @@ ConSplitterTextOutSetAttribute (
EFI_STATUS
EFIAPI
ConSplitterTextOutClearScreen (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
)
{
EFI_STATUS Status;
@@ -4975,14 +4995,13 @@ ConSplitterTextOutClearScreen (
// been checked in ConSplitterTextOutSetCursorPosition. And (0, 0) should
// always be supported.
//
- Private->TextOutMode.CursorColumn = 0;
- Private->TextOutMode.CursorRow = 0;
+ Private->TextOutMode.CursorColumn = 0;
+ Private->TextOutMode.CursorRow = 0;
Private->TextOutMode.CursorVisible = TRUE;
return ReturnStatus;
}
-
/**
Sets the current coordinates of the cursor position
@@ -5005,9 +5024,9 @@ ConSplitterTextOutClearScreen (
EFI_STATUS
EFIAPI
ConSplitterTextOutSetCursorPosition (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN Column,
- IN UINTN Row
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN Column,
+ IN UINTN Row
)
{
EFI_STATUS Status;
@@ -5020,9 +5039,9 @@ ConSplitterTextOutSetCursorPosition (
INT32 ModeNumber;
INT32 CurrentMode;
- Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
- TextOutModeMap = NULL;
- ModeNumber = Private->TextOutMode.Mode;
+ Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
+ TextOutModeMap = NULL;
+ ModeNumber = Private->TextOutMode.Mode;
//
// Get current MaxColumn and MaxRow from intersection map
@@ -5037,9 +5056,10 @@ ConSplitterTextOutSetCursorPosition (
MaxColumn = Private->TextOutQueryData[CurrentMode].Columns;
MaxRow = Private->TextOutQueryData[CurrentMode].Rows;
- if (Column >= MaxColumn || Row >= MaxRow) {
+ if ((Column >= MaxColumn) || (Row >= MaxRow)) {
return EFI_UNSUPPORTED;
}
+
//
// return the worst status met
//
@@ -5059,13 +5079,12 @@ ConSplitterTextOutSetCursorPosition (
// been checked in ConSplitterTextOutSetCursorPosition. And (0, 0) should
// always be supported.
//
- Private->TextOutMode.CursorColumn = (INT32) Column;
- Private->TextOutMode.CursorRow = (INT32) Row;
+ Private->TextOutMode.CursorColumn = (INT32)Column;
+ Private->TextOutMode.CursorRow = (INT32)Row;
return ReturnStatus;
}
-
/**
Makes the cursor visible or invisible
@@ -5083,8 +5102,8 @@ ConSplitterTextOutSetCursorPosition (
EFI_STATUS
EFIAPI
ConSplitterTextOutEnableCursor (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN Visible
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN BOOLEAN Visible
)
{
EFI_STATUS Status;
diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
index ccfd39c..a1fe747 100644
--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
+++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
@@ -41,60 +41,57 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Driver Binding Externs
//
-extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConInDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConInComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2;
-extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterSimplePointerComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2;
-extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterAbsolutePointerDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2;
-extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConOutComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2;
-extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterStdErrDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterStdErrComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2;
-
+extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConInDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConInComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2;
+extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterSimplePointerComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2;
+extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterAbsolutePointerDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2;
+extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConOutComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2;
+extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterStdErrDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterStdErrComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2;
//
// These definitions were in the old Hii protocol, but are not in the new UEFI
// version. So they are defined locally.
//
-#define UNICODE_NARROW_CHAR 0xFFF0
-#define UNICODE_WIDE_CHAR 0xFFF1
-
+#define UNICODE_NARROW_CHAR 0xFFF0
+#define UNICODE_WIDE_CHAR 0xFFF1
//
// Private Data Structures
//
#define CONSOLE_SPLITTER_ALLOC_UNIT 32
-
typedef struct {
- UINTN Column;
- UINTN Row;
+ UINTN Column;
+ UINTN Row;
} CONSOLE_OUT_MODE;
typedef struct {
- UINTN Columns;
- UINTN Rows;
+ UINTN Columns;
+ UINTN Rows;
} TEXT_OUT_SPLITTER_QUERY_DATA;
-#define KEY_STATE_VALID_EXPOSED (EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED)
+#define KEY_STATE_VALID_EXPOSED (EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED)
-#define TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE SIGNATURE_32 ('T', 'i', 'S', 'n')
+#define TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE SIGNATURE_32 ('T', 'i', 'S', 'n')
//
// Private data for Text In Ex Splitter Notify
//
typedef struct _TEXT_IN_EX_SPLITTER_NOTIFY {
- UINTN Signature;
- VOID **NotifyHandleList;
- EFI_KEY_DATA KeyData;
- EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
- LIST_ENTRY NotifyEntry;
+ UINTN Signature;
+ VOID **NotifyHandleList;
+ EFI_KEY_DATA KeyData;
+ EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
+ LIST_ENTRY NotifyEntry;
} TEXT_IN_EX_SPLITTER_NOTIFY;
#define TEXT_IN_EX_SPLITTER_NOTIFY_FROM_THIS(a) \
@@ -104,55 +101,54 @@ typedef struct _TEXT_IN_EX_SPLITTER_NOTIFY {
TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE \
)
-#define TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('T', 'i', 'S', 'p')
+#define TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('T', 'i', 'S', 'p')
//
// Private data for the Console In splitter
//
typedef struct {
- UINT64 Signature;
- EFI_HANDLE VirtualHandle;
-
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL TextIn;
- UINTN CurrentNumberOfConsoles;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL **TextInList;
- UINTN TextInListCount;
-
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL TextInEx;
- UINTN CurrentNumberOfExConsoles;
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL **TextInExList;
- UINTN TextInExListCount;
- LIST_ENTRY NotifyList;
- EFI_KEY_DATA *KeyQueue;
- UINTN CurrentNumberOfKeys;
+ UINT64 Signature;
+ EFI_HANDLE VirtualHandle;
+
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL TextIn;
+ UINTN CurrentNumberOfConsoles;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL **TextInList;
+ UINTN TextInListCount;
+
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL TextInEx;
+ UINTN CurrentNumberOfExConsoles;
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL **TextInExList;
+ UINTN TextInExListCount;
+ LIST_ENTRY NotifyList;
+ EFI_KEY_DATA *KeyQueue;
+ UINTN CurrentNumberOfKeys;
//
// It will be initialized and synced between console input devices
// for toggle state sync.
//
- EFI_KEY_TOGGLE_STATE PhysicalKeyToggleState;
+ EFI_KEY_TOGGLE_STATE PhysicalKeyToggleState;
//
// It will be initialized and used to record if virtual KeyState
// has been required to be exposed.
//
- BOOLEAN VirtualKeyStateExported;
-
-
- EFI_SIMPLE_POINTER_PROTOCOL SimplePointer;
- EFI_SIMPLE_POINTER_MODE SimplePointerMode;
- UINTN CurrentNumberOfPointers;
- EFI_SIMPLE_POINTER_PROTOCOL **PointerList;
- UINTN PointerListCount;
-
- EFI_ABSOLUTE_POINTER_PROTOCOL AbsolutePointer;
- EFI_ABSOLUTE_POINTER_MODE AbsolutePointerMode;
- UINTN CurrentNumberOfAbsolutePointers;
- EFI_ABSOLUTE_POINTER_PROTOCOL **AbsolutePointerList;
- UINTN AbsolutePointerListCount;
- BOOLEAN AbsoluteInputEventSignalState;
-
- BOOLEAN KeyEventSignalState;
- BOOLEAN InputEventSignalState;
- EFI_EVENT ConnectConInEvent;
+ BOOLEAN VirtualKeyStateExported;
+
+ EFI_SIMPLE_POINTER_PROTOCOL SimplePointer;
+ EFI_SIMPLE_POINTER_MODE SimplePointerMode;
+ UINTN CurrentNumberOfPointers;
+ EFI_SIMPLE_POINTER_PROTOCOL **PointerList;
+ UINTN PointerListCount;
+
+ EFI_ABSOLUTE_POINTER_PROTOCOL AbsolutePointer;
+ EFI_ABSOLUTE_POINTER_MODE AbsolutePointerMode;
+ UINTN CurrentNumberOfAbsolutePointers;
+ EFI_ABSOLUTE_POINTER_PROTOCOL **AbsolutePointerList;
+ UINTN AbsolutePointerListCount;
+ BOOLEAN AbsoluteInputEventSignalState;
+
+ BOOLEAN KeyEventSignalState;
+ BOOLEAN InputEventSignalState;
+ EFI_EVENT ConnectConInEvent;
} TEXT_IN_SPLITTER_PRIVATE_DATA;
#define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \
@@ -182,44 +178,42 @@ typedef struct {
TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \
)
-
#define TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('T', 'o', 'S', 'p')
typedef struct {
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;
} TEXT_OUT_AND_GOP_DATA;
//
// Private data for the Console Out splitter
//
typedef struct {
- UINT64 Signature;
- EFI_HANDLE VirtualHandle;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL TextOut;
- EFI_SIMPLE_TEXT_OUTPUT_MODE TextOutMode;
-
- EFI_UGA_DRAW_PROTOCOL UgaDraw;
- UINT32 UgaHorizontalResolution;
- UINT32 UgaVerticalResolution;
- UINT32 UgaColorDepth;
- UINT32 UgaRefreshRate;
-
- EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *GraphicsOutputModeBuffer;
- UINTN CurrentNumberOfGraphicsOutput;
- UINTN CurrentNumberOfUgaDraw;
-
- UINTN CurrentNumberOfConsoles;
- TEXT_OUT_AND_GOP_DATA *TextOutList;
- UINTN TextOutListCount;
- TEXT_OUT_SPLITTER_QUERY_DATA *TextOutQueryData;
- UINTN TextOutQueryDataCount;
- INT32 *TextOutModeMap;
-
- BOOLEAN AddingConOutDevice;
-
+ UINT64 Signature;
+ EFI_HANDLE VirtualHandle;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL TextOut;
+ EFI_SIMPLE_TEXT_OUTPUT_MODE TextOutMode;
+
+ EFI_UGA_DRAW_PROTOCOL UgaDraw;
+ UINT32 UgaHorizontalResolution;
+ UINT32 UgaVerticalResolution;
+ UINT32 UgaColorDepth;
+ UINT32 UgaRefreshRate;
+
+ EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *GraphicsOutputModeBuffer;
+ UINTN CurrentNumberOfGraphicsOutput;
+ UINTN CurrentNumberOfUgaDraw;
+
+ UINTN CurrentNumberOfConsoles;
+ TEXT_OUT_AND_GOP_DATA *TextOutList;
+ UINTN TextOutListCount;
+ TEXT_OUT_SPLITTER_QUERY_DATA *TextOutQueryData;
+ UINTN TextOutQueryDataCount;
+ INT32 *TextOutModeMap;
+
+ BOOLEAN AddingConOutDevice;
} TEXT_OUT_SPLITTER_PRIVATE_DATA;
#define TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \
@@ -272,8 +266,8 @@ typedef struct {
EFI_STATUS
EFIAPI
ConSplitterDriverEntry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
/**
@@ -289,7 +283,7 @@ ConSplitterDriverEntry (
**/
EFI_STATUS
ConSplitterTextInConstructor (
- TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate
+ TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate
);
/**
@@ -304,10 +298,9 @@ ConSplitterTextInConstructor (
**/
EFI_STATUS
ConSplitterTextOutConstructor (
- TEXT_OUT_SPLITTER_PRIVATE_DATA *ConOutPrivate
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *ConOutPrivate
);
-
/**
Test to see if Console In Device could be supported on the Controller.
@@ -323,9 +316,9 @@ ConSplitterTextOutConstructor (
EFI_STATUS
EFIAPI
ConSplitterConInDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -343,9 +336,9 @@ ConSplitterConInDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -363,9 +356,9 @@ ConSplitterSimplePointerDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterConOutDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -383,9 +376,9 @@ ConSplitterConOutDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterStdErrDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -403,9 +396,9 @@ ConSplitterStdErrDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterConInDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -423,9 +416,9 @@ ConSplitterConInDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -443,9 +436,9 @@ ConSplitterSimplePointerDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterConOutDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -463,9 +456,9 @@ ConSplitterConOutDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterStdErrDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -484,10 +477,10 @@ ConSplitterStdErrDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterConInDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
/**
@@ -507,10 +500,10 @@ ConSplitterConInDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
/**
@@ -529,10 +522,10 @@ ConSplitterSimplePointerDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterConOutDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
/**
@@ -551,13 +544,12 @@ ConSplitterConOutDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterStdErrDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
-
/**
Test to see if Absolute Pointer protocol could be supported on the Controller.
@@ -573,9 +565,9 @@ ConSplitterStdErrDriverBindingStop (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -593,9 +585,9 @@ ConSplitterAbsolutePointerDriverBindingSupported (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -615,10 +607,10 @@ ConSplitterAbsolutePointerDriverBindingStart (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
/**
@@ -633,8 +625,8 @@ ConSplitterAbsolutePointerDriverBindingStop (
**/
EFI_STATUS
ConSplitterAbsolutePointerAddDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
);
/**
@@ -649,15 +641,14 @@ ConSplitterAbsolutePointerAddDevice (
**/
EFI_STATUS
ConSplitterAbsolutePointerDeleteDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer
);
//
// Absolute Pointer protocol interfaces
//
-
/**
Resets the pointer device hardware.
@@ -672,11 +663,10 @@ ConSplitterAbsolutePointerDeleteDevice (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerReset (
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
-
/**
Retrieves the current state of a pointer device.
@@ -713,8 +703,8 @@ ConSplitterAbsolutePointerGetState (
VOID
EFIAPI
ConSplitterAbsolutePointerWaitForInput (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
/**
@@ -764,7 +754,6 @@ ConSplitterComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -836,14 +825,13 @@ ConSplitterComponentNameGetDriverName (
EFI_STATUS
EFIAPI
ConSplitterConInComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -915,11 +903,11 @@ ConSplitterConInComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
/**
@@ -969,11 +957,11 @@ ConSplitterSimplePointerComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterAbsolutePointerComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
/**
@@ -1047,14 +1035,13 @@ ConSplitterAbsolutePointerComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterConOutComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -1126,14 +1113,13 @@ ConSplitterConOutComponentNameGetControllerName (
EFI_STATUS
EFIAPI
ConSplitterStdErrComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
//
// TextIn Constructor/Destructor functions
//
@@ -1186,8 +1172,8 @@ ConSplitterTextInDeleteDevice (
**/
EFI_STATUS
ConSplitterSimplePointerAddDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
);
/**
@@ -1202,8 +1188,8 @@ ConSplitterSimplePointerAddDevice (
**/
EFI_STATUS
ConSplitterSimplePointerDeleteDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer
);
//
@@ -1224,10 +1210,10 @@ ConSplitterSimplePointerDeleteDevice (
**/
EFI_STATUS
ConSplitterTextOutAddDevice (
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut,
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
- IN EFI_UGA_DRAW_PROTOCOL *UgaDraw
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut,
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
+ IN EFI_UGA_DRAW_PROTOCOL *UgaDraw
);
/**
@@ -1242,8 +1228,8 @@ ConSplitterTextOutAddDevice (
**/
EFI_STATUS
ConSplitterTextOutDeleteDevice (
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut
);
//
@@ -1300,8 +1286,8 @@ ConSplitterTextInReadKeyStroke (
**/
EFI_STATUS
ConSplitterTextInExAddDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
);
/**
@@ -1316,8 +1302,8 @@ ConSplitterTextInExAddDevice (
**/
EFI_STATUS
ConSplitterTextInExDeleteDevice (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx
);
//
@@ -1342,7 +1328,6 @@ ConSplitterTextInResetEx (
IN BOOLEAN ExtendedVerification
);
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existance of a keystroke via WaitForEvent () call.
@@ -1362,11 +1347,10 @@ ConSplitterTextInResetEx (
EFI_STATUS
EFIAPI
ConSplitterTextInReadKeyStrokeEx (
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
- OUT EFI_KEY_DATA *KeyData
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ OUT EFI_KEY_DATA *KeyData
);
-
/**
Set certain state for the input device.
@@ -1389,7 +1373,6 @@ ConSplitterTextInSetState (
IN EFI_KEY_TOGGLE_STATE *KeyToggleState
);
-
/**
Register a notification function for a particular keystroke for the input device.
@@ -1421,7 +1404,6 @@ ConSplitterTextInRegisterKeyNotify (
OUT VOID **NotifyHandle
);
-
/**
Remove a registered notification function from a particular keystroke.
@@ -1456,11 +1438,10 @@ ConSplitterTextInUnregisterKeyNotify (
VOID
EFIAPI
ConSplitterTextInWaitForKey (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existance of a keystroke via WaitForEvent () call.
@@ -1477,8 +1458,8 @@ ConSplitterTextInWaitForKey (
EFI_STATUS
EFIAPI
ConSplitterTextInPrivateReadKeyStroke (
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
- OUT EFI_INPUT_KEY *Key
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,
+ OUT EFI_INPUT_KEY *Key
);
/**
@@ -1495,8 +1476,8 @@ ConSplitterTextInPrivateReadKeyStroke (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerReset (
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_POINTER_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
/**
@@ -1515,8 +1496,8 @@ ConSplitterSimplePointerReset (
EFI_STATUS
EFIAPI
ConSplitterSimplePointerGetState (
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,
- IN OUT EFI_SIMPLE_POINTER_STATE *State
+ IN EFI_SIMPLE_POINTER_PROTOCOL *This,
+ IN OUT EFI_SIMPLE_POINTER_STATE *State
);
/**
@@ -1532,8 +1513,8 @@ ConSplitterSimplePointerGetState (
VOID
EFIAPI
ConSplitterSimplePointerWaitForInput (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
//
@@ -1555,8 +1536,8 @@ ConSplitterSimplePointerWaitForInput (
EFI_STATUS
EFIAPI
ConSplitterTextOutReset (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
/**
@@ -1581,8 +1562,8 @@ ConSplitterTextOutReset (
EFI_STATUS
EFIAPI
ConSplitterTextOutOutputString (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN CHAR16 *WString
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN CHAR16 *WString
);
/**
@@ -1603,8 +1584,8 @@ ConSplitterTextOutOutputString (
EFI_STATUS
EFIAPI
ConSplitterTextOutTestString (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN CHAR16 *WString
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN CHAR16 *WString
);
/**
@@ -1627,10 +1608,10 @@ ConSplitterTextOutTestString (
EFI_STATUS
EFIAPI
ConSplitterTextOutQueryMode (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN ModeNumber,
- OUT UINTN *Columns,
- OUT UINTN *Rows
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN ModeNumber,
+ OUT UINTN *Columns,
+ OUT UINTN *Rows
);
/**
@@ -1648,8 +1629,8 @@ ConSplitterTextOutQueryMode (
EFI_STATUS
EFIAPI
ConSplitterTextOutSetMode (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN ModeNumber
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN ModeNumber
);
/**
@@ -1672,8 +1653,8 @@ ConSplitterTextOutSetMode (
EFI_STATUS
EFIAPI
ConSplitterTextOutSetAttribute (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN Attribute
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN Attribute
);
/**
@@ -1691,7 +1672,7 @@ ConSplitterTextOutSetAttribute (
EFI_STATUS
EFIAPI
ConSplitterTextOutClearScreen (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
);
/**
@@ -1716,12 +1697,11 @@ ConSplitterTextOutClearScreen (
EFI_STATUS
EFIAPI
ConSplitterTextOutSetCursorPosition (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN UINTN Column,
- IN UINTN Row
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN UINTN Column,
+ IN UINTN Row
);
-
/**
Makes the cursor visible or invisible
@@ -1739,8 +1719,8 @@ ConSplitterTextOutSetCursorPosition (
EFI_STATUS
EFIAPI
ConSplitterTextOutEnableCursor (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN Visible
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN BOOLEAN Visible
);
/**
@@ -1760,9 +1740,9 @@ ConSplitterTextOutEnableCursor (
**/
EFI_STATUS
ConSplitterGrowBuffer (
- IN UINTN ElementSize,
- IN OUT UINTN *Count,
- IN OUT VOID **Buffer
+ IN UINTN ElementSize,
+ IN OUT UINTN *Count,
+ IN OUT VOID **Buffer
);
/**
@@ -1806,8 +1786,8 @@ ConSplitterGraphicsOutputQueryMode (
EFI_STATUS
EFIAPI
ConSplitterGraphicsOutputSetMode (
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL * This,
- IN UINT32 ModeNumber
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ IN UINT32 ModeNumber
);
/**
@@ -1859,19 +1839,18 @@ ConSplitterGraphicsOutputSetMode (
EFI_STATUS
EFIAPI
ConSplitterGraphicsOutputBlt (
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
- IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
- IN UINTN SourceX,
- IN UINTN SourceY,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height,
- IN UINTN Delta OPTIONAL
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
+ IN UINTN SourceX,
+ IN UINTN SourceY,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN UINTN Delta OPTIONAL
);
-
/**
Return the current video mode information.
@@ -1889,11 +1868,11 @@ ConSplitterGraphicsOutputBlt (
EFI_STATUS
EFIAPI
ConSplitterUgaDrawGetMode (
- IN EFI_UGA_DRAW_PROTOCOL *This,
- OUT UINT32 *HorizontalResolution,
- OUT UINT32 *VerticalResolution,
- OUT UINT32 *ColorDepth,
- OUT UINT32 *RefreshRate
+ IN EFI_UGA_DRAW_PROTOCOL *This,
+ OUT UINT32 *HorizontalResolution,
+ OUT UINT32 *VerticalResolution,
+ OUT UINT32 *ColorDepth,
+ OUT UINT32 *RefreshRate
);
/**
@@ -1913,11 +1892,11 @@ ConSplitterUgaDrawGetMode (
EFI_STATUS
EFIAPI
ConSplitterUgaDrawSetMode (
- IN EFI_UGA_DRAW_PROTOCOL *This,
- IN UINT32 HorizontalResolution,
- IN UINT32 VerticalResolution,
- IN UINT32 ColorDepth,
- IN UINT32 RefreshRate
+ IN EFI_UGA_DRAW_PROTOCOL *This,
+ IN UINT32 HorizontalResolution,
+ IN UINT32 VerticalResolution,
+ IN UINT32 ColorDepth,
+ IN UINT32 RefreshRate
);
/**
@@ -1972,16 +1951,16 @@ ConSplitterUgaDrawSetMode (
EFI_STATUS
EFIAPI
ConSplitterUgaDrawBlt (
- IN EFI_UGA_DRAW_PROTOCOL *This,
- IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
- IN EFI_UGA_BLT_OPERATION BltOperation,
- IN UINTN SourceX,
- IN UINTN SourceY,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height,
- IN UINTN Delta OPTIONAL
+ IN EFI_UGA_DRAW_PROTOCOL *This,
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN UINTN SourceX,
+ IN UINTN SourceY,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN UINTN Delta OPTIONAL
);
/**
diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterGraphics.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterGraphics.c
index 9fcf3e9..64ad567 100644
--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterGraphics.c
+++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterGraphics.c
@@ -9,8 +9,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "ConSplitter.h"
-
-CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };
+CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };
/**
Returns information for an available graphics mode that the graphics device
@@ -42,7 +41,7 @@ ConSplitterGraphicsOutputQueryMode (
EFI_STATUS Status;
UINTN Index;
- if (This == NULL || Info == NULL || SizeOfInfo == NULL || ModeNumber >= This->Mode->MaxMode) {
+ if ((This == NULL) || (Info == NULL) || (SizeOfInfo == NULL) || (ModeNumber >= This->Mode->MaxMode)) {
return EFI_INVALID_PARAMETER;
}
@@ -69,7 +68,7 @@ ConSplitterGraphicsOutputQueryMode (
//
// If only one physical GOP device exist, return its information.
//
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) ModeNumber, SizeOfInfo, Info);
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)ModeNumber, SizeOfInfo, Info);
return Status;
} else {
//
@@ -80,6 +79,7 @@ ConSplitterGraphicsOutputQueryMode (
if (*Info == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
*SizeOfInfo = sizeof (EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
CopyMem (*Info, &Private->GraphicsOutputModeBuffer[ModeNumber], *SizeOfInfo);
}
@@ -87,7 +87,6 @@ ConSplitterGraphicsOutputQueryMode (
return EFI_SUCCESS;
}
-
/**
Set the video device into the specified mode and clears the visible portions of
the output display to black.
@@ -104,31 +103,31 @@ ConSplitterGraphicsOutputQueryMode (
EFI_STATUS
EFIAPI
ConSplitterGraphicsOutputSetMode (
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL * This,
- IN UINT32 ModeNumber
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ IN UINT32 ModeNumber
)
{
- EFI_STATUS Status;
- TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
- EFI_STATUS ReturnStatus;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Mode;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *PhysicalGraphicsOutput;
- UINTN NumberIndex;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_STATUS Status;
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
+ EFI_STATUS ReturnStatus;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Mode;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *PhysicalGraphicsOutput;
+ UINTN NumberIndex;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
if (ModeNumber >= This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
Private = GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
- Mode = &Private->GraphicsOutputModeBuffer[ModeNumber];
+ Mode = &Private->GraphicsOutputModeBuffer[ModeNumber];
- ReturnStatus = EFI_SUCCESS;
- GraphicsOutput = NULL;
+ ReturnStatus = EFI_SUCCESS;
+ GraphicsOutput = NULL;
PhysicalGraphicsOutput = NULL;
//
// return the worst status met
@@ -140,19 +139,21 @@ ConSplitterGraphicsOutputSetMode (
//
// Find corresponding ModeNumber of this GraphicsOutput instance
//
- for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex ++) {
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) NumberIndex, &SizeOfInfo, &Info);
+ for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex++) {
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)NumberIndex, &SizeOfInfo, &Info);
if (EFI_ERROR (Status)) {
return Status;
}
+
if ((Info->HorizontalResolution == Mode->HorizontalResolution) && (Info->VerticalResolution == Mode->VerticalResolution)) {
FreePool (Info);
break;
}
+
FreePool (Info);
}
- Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32) NumberIndex);
+ Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32)NumberIndex);
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
}
@@ -180,7 +181,7 @@ ConSplitterGraphicsOutputSetMode (
// If only one physical GOP device exist, copy physical information to consplitter.
//
CopyMem (This->Mode->Info, PhysicalGraphicsOutput->Mode->Info, PhysicalGraphicsOutput->Mode->SizeOfInfo);
- This->Mode->SizeOfInfo = PhysicalGraphicsOutput->Mode->SizeOfInfo;
+ This->Mode->SizeOfInfo = PhysicalGraphicsOutput->Mode->SizeOfInfo;
This->Mode->FrameBufferBase = PhysicalGraphicsOutput->Mode->FrameBufferBase;
This->Mode->FrameBufferSize = PhysicalGraphicsOutput->Mode->FrameBufferSize;
} else {
@@ -194,8 +195,6 @@ ConSplitterGraphicsOutputSetMode (
return ReturnStatus;
}
-
-
/**
The following table defines actions for BltOperations.
@@ -245,16 +244,16 @@ ConSplitterGraphicsOutputSetMode (
EFI_STATUS
EFIAPI
ConSplitterGraphicsOutputBlt (
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
- IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
- IN UINTN SourceX,
- IN UINTN SourceY,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height,
- IN UINTN Delta OPTIONAL
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
+ IN UINTN SourceX,
+ IN UINTN SourceY,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN UINTN Delta OPTIONAL
)
{
EFI_STATUS Status;
@@ -264,7 +263,7 @@ ConSplitterGraphicsOutputBlt (
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- if (This == NULL || ((UINTN) BltOperation) >= EfiGraphicsOutputBltOperationMax) {
+ if ((This == NULL) || (((UINTN)BltOperation) >= EfiGraphicsOutputBltOperationMax)) {
return EFI_INVALID_PARAMETER;
}
@@ -279,17 +278,17 @@ ConSplitterGraphicsOutputBlt (
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;
if (GraphicsOutput != NULL) {
Status = GraphicsOutput->Blt (
- GraphicsOutput,
- BltBuffer,
- BltOperation,
- SourceX,
- SourceY,
- DestinationX,
- DestinationY,
- Width,
- Height,
- Delta
- );
+ GraphicsOutput,
+ BltBuffer,
+ BltOperation,
+ SourceX,
+ SourceY,
+ DestinationX,
+ DestinationY,
+ Width,
+ Height,
+ Delta
+ );
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
} else if (BltOperation == EfiBltVideoToBltBuffer) {
@@ -301,19 +300,19 @@ ConSplitterGraphicsOutputBlt (
}
UgaDraw = Private->TextOutList[Index].UgaDraw;
- if (UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
+ if ((UgaDraw != NULL) && FeaturePcdGet (PcdUgaConsumeSupport)) {
Status = UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) BltBuffer,
- (EFI_UGA_BLT_OPERATION) BltOperation,
- SourceX,
- SourceY,
- DestinationX,
- DestinationY,
- Width,
- Height,
- Delta
- );
+ UgaDraw,
+ (EFI_UGA_PIXEL *)BltBuffer,
+ (EFI_UGA_BLT_OPERATION)BltOperation,
+ SourceX,
+ SourceY,
+ DestinationX,
+ DestinationY,
+ Width,
+ Height,
+ Delta
+ );
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
} else if (BltOperation == EfiBltVideoToBltBuffer) {
@@ -345,11 +344,11 @@ ConSplitterGraphicsOutputBlt (
EFI_STATUS
EFIAPI
ConSplitterUgaDrawGetMode (
- IN EFI_UGA_DRAW_PROTOCOL *This,
- OUT UINT32 *HorizontalResolution,
- OUT UINT32 *VerticalResolution,
- OUT UINT32 *ColorDepth,
- OUT UINT32 *RefreshRate
+ IN EFI_UGA_DRAW_PROTOCOL *This,
+ OUT UINT32 *HorizontalResolution,
+ OUT UINT32 *VerticalResolution,
+ OUT UINT32 *ColorDepth,
+ OUT UINT32 *RefreshRate
)
{
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
@@ -357,13 +356,15 @@ ConSplitterUgaDrawGetMode (
if ((HorizontalResolution == NULL) ||
(VerticalResolution == NULL) ||
(RefreshRate == NULL) ||
- (ColorDepth == NULL)) {
+ (ColorDepth == NULL))
+ {
return EFI_INVALID_PARAMETER;
}
+
//
// retrieve private data
//
- Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
+ Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
*HorizontalResolution = Private->UgaHorizontalResolution;
*VerticalResolution = Private->UgaVerticalResolution;
@@ -373,7 +374,6 @@ ConSplitterUgaDrawGetMode (
return EFI_SUCCESS;
}
-
/**
Set the current video mode information.
@@ -391,22 +391,22 @@ ConSplitterUgaDrawGetMode (
EFI_STATUS
EFIAPI
ConSplitterUgaDrawSetMode (
- IN EFI_UGA_DRAW_PROTOCOL *This,
- IN UINT32 HorizontalResolution,
- IN UINT32 VerticalResolution,
- IN UINT32 ColorDepth,
- IN UINT32 RefreshRate
+ IN EFI_UGA_DRAW_PROTOCOL *This,
+ IN UINT32 HorizontalResolution,
+ IN UINT32 VerticalResolution,
+ IN UINT32 ColorDepth,
+ IN UINT32 RefreshRate
)
{
- EFI_STATUS Status;
- TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
- UINTN Index;
- EFI_STATUS ReturnStatus;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- UINTN NumberIndex;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_STATUS Status;
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
+ UINTN Index;
+ EFI_STATUS ReturnStatus;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ UINTN NumberIndex;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
@@ -415,47 +415,48 @@ ConSplitterUgaDrawSetMode (
//
// Update the Mode data
//
- Private->UgaHorizontalResolution = HorizontalResolution;
- Private->UgaVerticalResolution = VerticalResolution;
- Private->UgaColorDepth = ColorDepth;
- Private->UgaRefreshRate = RefreshRate;
+ Private->UgaHorizontalResolution = HorizontalResolution;
+ Private->UgaVerticalResolution = VerticalResolution;
+ Private->UgaColorDepth = ColorDepth;
+ Private->UgaRefreshRate = RefreshRate;
//
// return the worst status met
//
for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {
-
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;
if (GraphicsOutput != NULL) {
//
// Find corresponding ModeNumber of this GraphicsOutput instance
//
- for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex ++) {
- Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32) NumberIndex, &SizeOfInfo, &Info);
+ for (NumberIndex = 0; NumberIndex < GraphicsOutput->Mode->MaxMode; NumberIndex++) {
+ Status = GraphicsOutput->QueryMode (GraphicsOutput, (UINT32)NumberIndex, &SizeOfInfo, &Info);
if (EFI_ERROR (Status)) {
return Status;
}
+
if ((Info->HorizontalResolution == HorizontalResolution) && (Info->VerticalResolution == VerticalResolution)) {
FreePool (Info);
break;
}
+
FreePool (Info);
}
- Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32) NumberIndex);
+ Status = GraphicsOutput->SetMode (GraphicsOutput, (UINT32)NumberIndex);
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
}
- } else if (FeaturePcdGet (PcdUgaConsumeSupport)){
+ } else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
UgaDraw = Private->TextOutList[Index].UgaDraw;
if (UgaDraw != NULL) {
Status = UgaDraw->SetMode (
- UgaDraw,
- HorizontalResolution,
- VerticalResolution,
- ColorDepth,
- RefreshRate
- );
+ UgaDraw,
+ HorizontalResolution,
+ VerticalResolution,
+ ColorDepth,
+ RefreshRate
+ );
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
}
@@ -466,7 +467,6 @@ ConSplitterUgaDrawSetMode (
return ReturnStatus;
}
-
/**
Blt a rectangle of pixels on the graphics screen.
@@ -519,16 +519,16 @@ ConSplitterUgaDrawSetMode (
EFI_STATUS
EFIAPI
ConSplitterUgaDrawBlt (
- IN EFI_UGA_DRAW_PROTOCOL *This,
- IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
- IN EFI_UGA_BLT_OPERATION BltOperation,
- IN UINTN SourceX,
- IN UINTN SourceY,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height,
- IN UINTN Delta OPTIONAL
+ IN EFI_UGA_DRAW_PROTOCOL *This,
+ IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_UGA_BLT_OPERATION BltOperation,
+ IN UINTN SourceX,
+ IN UINTN SourceY,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN UINTN Delta OPTIONAL
)
{
EFI_STATUS Status;
@@ -547,17 +547,17 @@ ConSplitterUgaDrawBlt (
GraphicsOutput = Private->TextOutList[Index].GraphicsOutput;
if (GraphicsOutput != NULL) {
Status = GraphicsOutput->Blt (
- GraphicsOutput,
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) BltBuffer,
- (EFI_GRAPHICS_OUTPUT_BLT_OPERATION) BltOperation,
- SourceX,
- SourceY,
- DestinationX,
- DestinationY,
- Width,
- Height,
- Delta
- );
+ GraphicsOutput,
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)BltBuffer,
+ (EFI_GRAPHICS_OUTPUT_BLT_OPERATION)BltOperation,
+ SourceX,
+ SourceY,
+ DestinationX,
+ DestinationY,
+ Width,
+ Height,
+ Delta
+ );
if (EFI_ERROR (Status)) {
ReturnStatus = Status;
} else if (BltOperation == EfiUgaVideoToBltBuffer) {
@@ -568,7 +568,7 @@ ConSplitterUgaDrawBlt (
}
}
- if (Private->TextOutList[Index].UgaDraw != NULL && FeaturePcdGet (PcdUgaConsumeSupport)) {
+ if ((Private->TextOutList[Index].UgaDraw != NULL) && FeaturePcdGet (PcdUgaConsumeSupport)) {
Status = Private->TextOutList[Index].UgaDraw->Blt (
Private->TextOutList[Index].UgaDraw,
BltBuffer,
@@ -613,7 +613,7 @@ TextOutSetMode (
// been checked in ConSplitterTextOutSetCursorPosition. And (0, 0) should
// always be supported.
//
- Private->TextOutMode.Mode = (INT32) ModeNumber;
+ Private->TextOutMode.Mode = (INT32)ModeNumber;
Private->TextOutMode.CursorColumn = 0;
Private->TextOutMode.CursorRow = 0;
Private->TextOutMode.CursorVisible = TRUE;
diff --git a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/ComponentName.c b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/ComponentName.c
index 0e63040..bbb9ac2 100644
--- a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/ComponentName.c
@@ -20,14 +20,13 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gGraphicsConsoleCompo
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gGraphicsConsoleComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) GraphicsConsoleComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) GraphicsConsoleComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gGraphicsConsoleComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)GraphicsConsoleComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)GraphicsConsoleComponentNameGetControllerName,
"en"
};
-
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mGraphicsConsoleDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mGraphicsConsoleDriverNameTable[] = {
{
"eng;en",
(CHAR16 *)L"Graphics Console Driver"
@@ -165,11 +164,11 @@ GraphicsConsoleComponentNameGetDriverName (
EFI_STATUS
EFIAPI
GraphicsConsoleComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
diff --git a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
index 50c4d71..8f0cba9 100644
--- a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
+++ b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
@@ -11,10 +11,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Graphics Console Device Private Data template
//
-GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate = {
+GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate = {
GRAPHICS_CONSOLE_DEV_SIGNATURE,
- (EFI_GRAPHICS_OUTPUT_PROTOCOL *) NULL,
- (EFI_UGA_DRAW_PROTOCOL *) NULL,
+ (EFI_GRAPHICS_OUTPUT_PROTOCOL *)NULL,
+ (EFI_UGA_DRAW_PROTOCOL *)NULL,
{
GraphicsConsoleConOutReset,
GraphicsConsoleConOutOutputString,
@@ -25,69 +25,71 @@ GRAPHICS_CONSOLE_DEV mGraphicsConsoleDevTemplate = {
GraphicsConsoleConOutClearScreen,
GraphicsConsoleConOutSetCursorPosition,
GraphicsConsoleConOutEnableCursor,
- (EFI_SIMPLE_TEXT_OUTPUT_MODE *) NULL
+ (EFI_SIMPLE_TEXT_OUTPUT_MODE *)NULL
},
{
0,
-1,
- EFI_TEXT_ATTR(EFI_LIGHTGRAY, EFI_BLACK),
+ EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK),
0,
0,
FALSE
},
- (GRAPHICS_CONSOLE_MODE_DATA *) NULL,
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) NULL
+ (GRAPHICS_CONSOLE_MODE_DATA *)NULL,
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)NULL
};
-GRAPHICS_CONSOLE_MODE_DATA mGraphicsConsoleModeData[] = {
- {100, 31},
+GRAPHICS_CONSOLE_MODE_DATA mGraphicsConsoleModeData[] = {
+ { 100, 31 },
//
// New modes can be added here.
// The last entry is specific for full screen mode.
//
- {0, 0}
+ { 0, 0 }
};
-EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
-EFI_HII_FONT_PROTOCOL *mHiiFont;
-EFI_HII_HANDLE mHiiHandle;
-VOID *mHiiRegistration;
+EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
+EFI_HII_FONT_PROTOCOL *mHiiFont;
+EFI_HII_HANDLE mHiiHandle;
+VOID *mHiiRegistration;
-EFI_GUID mFontPackageListGuid = {0xf5f219d3, 0x7006, 0x4648, {0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad}};
+EFI_GUID mFontPackageListGuid = {
+ 0xf5f219d3, 0x7006, 0x4648, { 0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad }
+};
-CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };
+CHAR16 mCrLfString[3] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };
-EFI_GRAPHICS_OUTPUT_BLT_PIXEL mGraphicsEfiColors[16] = {
+EFI_GRAPHICS_OUTPUT_BLT_PIXEL mGraphicsEfiColors[16] = {
//
// B G R reserved
//
- {0x00, 0x00, 0x00, 0x00}, // BLACK
- {0x98, 0x00, 0x00, 0x00}, // LIGHTBLUE
- {0x00, 0x98, 0x00, 0x00}, // LIGHGREEN
- {0x98, 0x98, 0x00, 0x00}, // LIGHCYAN
- {0x00, 0x00, 0x98, 0x00}, // LIGHRED
- {0x98, 0x00, 0x98, 0x00}, // MAGENTA
- {0x00, 0x98, 0x98, 0x00}, // BROWN
- {0x98, 0x98, 0x98, 0x00}, // LIGHTGRAY
- {0x30, 0x30, 0x30, 0x00}, // DARKGRAY - BRIGHT BLACK
- {0xff, 0x00, 0x00, 0x00}, // BLUE
- {0x00, 0xff, 0x00, 0x00}, // LIME
- {0xff, 0xff, 0x00, 0x00}, // CYAN
- {0x00, 0x00, 0xff, 0x00}, // RED
- {0xff, 0x00, 0xff, 0x00}, // FUCHSIA
- {0x00, 0xff, 0xff, 0x00}, // YELLOW
- {0xff, 0xff, 0xff, 0x00} // WHITE
+ { 0x00, 0x00, 0x00, 0x00 }, // BLACK
+ { 0x98, 0x00, 0x00, 0x00 }, // LIGHTBLUE
+ { 0x00, 0x98, 0x00, 0x00 }, // LIGHGREEN
+ { 0x98, 0x98, 0x00, 0x00 }, // LIGHCYAN
+ { 0x00, 0x00, 0x98, 0x00 }, // LIGHRED
+ { 0x98, 0x00, 0x98, 0x00 }, // MAGENTA
+ { 0x00, 0x98, 0x98, 0x00 }, // BROWN
+ { 0x98, 0x98, 0x98, 0x00 }, // LIGHTGRAY
+ { 0x30, 0x30, 0x30, 0x00 }, // DARKGRAY - BRIGHT BLACK
+ { 0xff, 0x00, 0x00, 0x00 }, // BLUE
+ { 0x00, 0xff, 0x00, 0x00 }, // LIME
+ { 0xff, 0xff, 0x00, 0x00 }, // CYAN
+ { 0x00, 0x00, 0xff, 0x00 }, // RED
+ { 0xff, 0x00, 0xff, 0x00 }, // FUCHSIA
+ { 0x00, 0xff, 0xff, 0x00 }, // YELLOW
+ { 0xff, 0xff, 0xff, 0x00 } // WHITE
};
-EFI_NARROW_GLYPH mCursorGlyph = {
+EFI_NARROW_GLYPH mCursorGlyph = {
0x0000,
0x00,
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF }
+ { 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF }
};
-CHAR16 SpaceStr[] = { NARROW_CHAR, ' ', 0 };
+CHAR16 SpaceStr[] = { NARROW_CHAR, ' ', 0 };
-EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {
GraphicsConsoleControllerDriverSupported,
GraphicsConsoleControllerDriverStart,
GraphicsConsoleControllerDriverStop,
@@ -115,15 +117,15 @@ EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding = {
EFI_STATUS
EFIAPI
GraphicsConsoleControllerDriverSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_STATUS Status;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
GraphicsOutput = NULL;
UgaDraw = NULL;
@@ -133,7 +135,7 @@ GraphicsConsoleControllerDriverSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiGraphicsOutputProtocolGuid,
- (VOID **) &GraphicsOutput,
+ (VOID **)&GraphicsOutput,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -146,12 +148,13 @@ GraphicsConsoleControllerDriverSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiUgaDrawProtocolGuid,
- (VOID **) &UgaDraw,
+ (VOID **)&UgaDraw,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
}
+
if (EFI_ERROR (Status)) {
return Status;
}
@@ -164,18 +167,18 @@ GraphicsConsoleControllerDriverSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath,
+ (VOID **)&DevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
if (!EFI_ERROR (Status)) {
gBS->CloseProtocol (
- Controller,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
} else {
goto Error;
}
@@ -191,19 +194,20 @@ GraphicsConsoleControllerDriverSupported (
Error:
if (GraphicsOutput != NULL) {
gBS->CloseProtocol (
- Controller,
- &gEfiGraphicsOutputProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiGraphicsOutputProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
gBS->CloseProtocol (
- Controller,
- &gEfiUgaDrawProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiUgaDrawProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
}
+
return Status;
}
@@ -225,11 +229,11 @@ Error:
**/
EFI_STATUS
InitializeGraphicsConsoleTextMode (
- IN UINT32 HorizontalResolution,
- IN UINT32 VerticalResolution,
- IN UINT32 GopModeNumber,
- OUT UINTN *TextModeCount,
- OUT GRAPHICS_CONSOLE_MODE_DATA **TextModeData
+ IN UINT32 HorizontalResolution,
+ IN UINT32 VerticalResolution,
+ IN UINT32 GopModeNumber,
+ OUT UINTN *TextModeCount,
+ OUT GRAPHICS_CONSOLE_MODE_DATA **TextModeData
)
{
UINTN Index;
@@ -298,6 +302,7 @@ InitializeGraphicsConsoleTextMode (
NewModeBuffer[ValidCount].DeltaX = (HorizontalResolution - (80 * EFI_GLYPH_WIDTH)) >> 1;
NewModeBuffer[ValidCount].DeltaY = (VerticalResolution - (50 * EFI_GLYPH_HEIGHT)) >> 1;
}
+
NewModeBuffer[ValidCount].GopWidth = HorizontalResolution;
NewModeBuffer[ValidCount].GopHeight = VerticalResolution;
NewModeBuffer[ValidCount].GopModeNumber = GopModeNumber;
@@ -308,21 +313,25 @@ InitializeGraphicsConsoleTextMode (
//
for (Index = 0; Index < Count; Index++) {
if ((ModeBuffer[Index].Columns == 0) || (ModeBuffer[Index].Rows == 0) ||
- (ModeBuffer[Index].Columns > MaxColumns) || (ModeBuffer[Index].Rows > MaxRows)) {
+ (ModeBuffer[Index].Columns > MaxColumns) || (ModeBuffer[Index].Rows > MaxRows))
+ {
//
// Skip the pre-defined mode which is invalid or exceeds the max column and row.
//
continue;
}
+
for (ValidIndex = 0; ValidIndex < ValidCount; ValidIndex++) {
if ((ModeBuffer[Index].Columns == NewModeBuffer[ValidIndex].Columns) &&
- (ModeBuffer[Index].Rows == NewModeBuffer[ValidIndex].Rows)) {
+ (ModeBuffer[Index].Rows == NewModeBuffer[ValidIndex].Rows))
+ {
//
// Skip the duplicated mode.
//
break;
}
}
+
if (ValidIndex == ValidCount) {
NewModeBuffer[ValidCount].Columns = ModeBuffer[Index].Columns;
NewModeBuffer[ValidCount].Rows = ModeBuffer[Index].Rows;
@@ -336,10 +345,16 @@ InitializeGraphicsConsoleTextMode (
}
DEBUG_CODE_BEGIN ();
- for (Index = 0; Index < ValidCount; Index++) {
- DEBUG ((DEBUG_INFO, "Graphics - Mode %d, Column = %d, Row = %d\n",
- Index, NewModeBuffer[Index].Columns, NewModeBuffer[Index].Rows));
- }
+ for (Index = 0; Index < ValidCount; Index++) {
+ DEBUG ((
+ DEBUG_INFO,
+ "Graphics - Mode %d, Column = %d, Row = %d\n",
+ Index,
+ NewModeBuffer[Index].Columns,
+ NewModeBuffer[Index].Rows
+ ));
+ }
+
DEBUG_CODE_END ();
//
@@ -367,29 +382,29 @@ InitializeGraphicsConsoleTextMode (
EFI_STATUS
EFIAPI
GraphicsConsoleControllerDriverStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- GRAPHICS_CONSOLE_DEV *Private;
- UINT32 HorizontalResolution;
- UINT32 VerticalResolution;
- UINT32 ColorDepth;
- UINT32 RefreshRate;
- UINT32 ModeIndex;
- UINTN MaxMode;
- UINT32 ModeNumber;
- EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
- INT32 PreferMode;
- INT32 Index;
- UINTN Column;
- UINTN Row;
- UINTN DefaultColumn;
- UINTN DefaultRow;
+ EFI_STATUS Status;
+ GRAPHICS_CONSOLE_DEV *Private;
+ UINT32 HorizontalResolution;
+ UINT32 VerticalResolution;
+ UINT32 ColorDepth;
+ UINT32 RefreshRate;
+ UINT32 ModeIndex;
+ UINTN MaxMode;
+ UINT32 ModeNumber;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ INT32 PreferMode;
+ INT32 Index;
+ UINTN Column;
+ UINTN Row;
+ UINTN DefaultColumn;
+ UINTN DefaultRow;
ModeNumber = 0;
@@ -409,17 +424,17 @@ GraphicsConsoleControllerDriverStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiGraphicsOutputProtocolGuid,
- (VOID **) &Private->GraphicsOutput,
+ (VOID **)&Private->GraphicsOutput,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
- if (EFI_ERROR(Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
+ if (EFI_ERROR (Status) && FeaturePcdGet (PcdUgaConsumeSupport)) {
Status = gBS->OpenProtocol (
Controller,
&gEfiUgaDrawProtocolGuid,
- (VOID **) &Private->UgaDraw,
+ (VOID **)&Private->UgaDraw,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -430,8 +445,8 @@ GraphicsConsoleControllerDriverStart (
goto Error;
}
- HorizontalResolution = PcdGet32 (PcdVideoHorizontalResolution);
- VerticalResolution = PcdGet32 (PcdVideoVerticalResolution);
+ HorizontalResolution = PcdGet32 (PcdVideoHorizontalResolution);
+ VerticalResolution = PcdGet32 (PcdVideoVerticalResolution);
if (Private->GraphicsOutput != NULL) {
//
@@ -447,21 +462,24 @@ GraphicsConsoleControllerDriverStart (
for (ModeIndex = 0; ModeIndex < MaxMode; ModeIndex++) {
Status = Private->GraphicsOutput->QueryMode (
- Private->GraphicsOutput,
- ModeIndex,
- &SizeOfInfo,
- &Info
- );
+ Private->GraphicsOutput,
+ ModeIndex,
+ &SizeOfInfo,
+ &Info
+ );
if (!EFI_ERROR (Status)) {
if ((Info->HorizontalResolution > HorizontalResolution) ||
- ((Info->HorizontalResolution == HorizontalResolution) && (Info->VerticalResolution > VerticalResolution))) {
+ ((Info->HorizontalResolution == HorizontalResolution) && (Info->VerticalResolution > VerticalResolution)))
+ {
HorizontalResolution = Info->HorizontalResolution;
VerticalResolution = Info->VerticalResolution;
ModeNumber = ModeIndex;
}
+
FreePool (Info);
}
}
+
if ((HorizontalResolution == 0x0) || (VerticalResolution == 0x0)) {
Status = EFI_UNSUPPORTED;
goto Error;
@@ -471,34 +489,35 @@ GraphicsConsoleControllerDriverStart (
// Use user-defined resolution
//
Status = CheckModeSupported (
- Private->GraphicsOutput,
- HorizontalResolution,
- VerticalResolution,
- &ModeNumber
- );
+ Private->GraphicsOutput,
+ HorizontalResolution,
+ VerticalResolution,
+ &ModeNumber
+ );
if (EFI_ERROR (Status)) {
//
// if not supporting current mode, try 800x600 which is required by UEFI/EFI spec
//
HorizontalResolution = 800;
VerticalResolution = 600;
- Status = CheckModeSupported (
- Private->GraphicsOutput,
- HorizontalResolution,
- VerticalResolution,
- &ModeNumber
- );
+ Status = CheckModeSupported (
+ Private->GraphicsOutput,
+ HorizontalResolution,
+ VerticalResolution,
+ &ModeNumber
+ );
Mode = Private->GraphicsOutput->Mode;
- if (EFI_ERROR (Status) && Mode->MaxMode != 0) {
+ if (EFI_ERROR (Status) && (Mode->MaxMode != 0)) {
//
// If set default mode failed or device doesn't support default mode, then get the current mode information
//
HorizontalResolution = Mode->Info->HorizontalResolution;
- VerticalResolution = Mode->Info->VerticalResolution;
- ModeNumber = Mode->Mode;
+ VerticalResolution = Mode->Info->VerticalResolution;
+ ModeNumber = Mode->Mode;
}
}
}
+
if (ModeNumber != Private->GraphicsOutput->Mode->Mode) {
//
// Current graphics mode is not set or is not set to the mode which we have found,
@@ -516,34 +535,34 @@ GraphicsConsoleControllerDriverStart (
//
// At first try to set user-defined resolution
//
- ColorDepth = 32;
- RefreshRate = 60;
- Status = Private->UgaDraw->SetMode (
- Private->UgaDraw,
- HorizontalResolution,
- VerticalResolution,
- ColorDepth,
- RefreshRate
- );
+ ColorDepth = 32;
+ RefreshRate = 60;
+ Status = Private->UgaDraw->SetMode (
+ Private->UgaDraw,
+ HorizontalResolution,
+ VerticalResolution,
+ ColorDepth,
+ RefreshRate
+ );
if (EFI_ERROR (Status)) {
//
// Try to set 800*600 which is required by UEFI/EFI spec
//
Status = Private->UgaDraw->SetMode (
- Private->UgaDraw,
- 800,
- 600,
- ColorDepth,
- RefreshRate
- );
+ Private->UgaDraw,
+ 800,
+ 600,
+ ColorDepth,
+ RefreshRate
+ );
if (EFI_ERROR (Status)) {
Status = Private->UgaDraw->GetMode (
- Private->UgaDraw,
- &HorizontalResolution,
- &VerticalResolution,
- &ColorDepth,
- &RefreshRate
- );
+ Private->UgaDraw,
+ &HorizontalResolution,
+ &VerticalResolution,
+ &ColorDepth,
+ &RefreshRate
+ );
if (EFI_ERROR (Status)) {
goto Error;
}
@@ -571,32 +590,35 @@ GraphicsConsoleControllerDriverStart (
//
// Update the maximum number of modes
//
- Private->SimpleTextOutputMode.MaxMode = (INT32) MaxMode;
+ Private->SimpleTextOutputMode.MaxMode = (INT32)MaxMode;
//
// Initialize the Mode of graphics console devices
//
- PreferMode = -1;
+ PreferMode = -1;
DefaultColumn = PcdGet32 (PcdConOutColumn);
- DefaultRow = PcdGet32 (PcdConOutRow);
- Column = 0;
- Row = 0;
+ DefaultRow = PcdGet32 (PcdConOutRow);
+ Column = 0;
+ Row = 0;
for (Index = 0; Index < (INT32)MaxMode; Index++) {
- if (DefaultColumn != 0 && DefaultRow != 0) {
+ if ((DefaultColumn != 0) && (DefaultRow != 0)) {
if ((Private->ModeData[Index].Columns == DefaultColumn) &&
- (Private->ModeData[Index].Rows == DefaultRow)) {
+ (Private->ModeData[Index].Rows == DefaultRow))
+ {
PreferMode = Index;
break;
}
} else {
if ((Private->ModeData[Index].Columns > Column) &&
- (Private->ModeData[Index].Rows > Row)) {
- Column = Private->ModeData[Index].Columns;
- Row = Private->ModeData[Index].Rows;
+ (Private->ModeData[Index].Rows > Row))
+ {
+ Column = Private->ModeData[Index].Columns;
+ Row = Private->ModeData[Index].Rows;
PreferMode = Index;
}
}
}
+
Private->SimpleTextOutput.Mode->Mode = (INT32)PreferMode;
DEBUG ((DEBUG_INFO, "Graphics Console Started, Mode: %d\n", PreferMode));
@@ -669,10 +691,10 @@ Error:
EFI_STATUS
EFIAPI
GraphicsConsoleControllerDriverStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
@@ -682,7 +704,7 @@ GraphicsConsoleControllerDriverStop (
Status = gBS->OpenProtocol (
Controller,
&gEfiSimpleTextOutProtocolGuid,
- (VOID **) &SimpleTextOutput,
+ (VOID **)&SimpleTextOutput,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -705,18 +727,18 @@ GraphicsConsoleControllerDriverStop (
//
if (Private->GraphicsOutput != NULL) {
gBS->CloseProtocol (
- Controller,
- &gEfiGraphicsOutputProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiGraphicsOutputProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
gBS->CloseProtocol (
- Controller,
- &gEfiUgaDrawProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiUgaDrawProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
}
if (Private->LineBuffer != NULL) {
@@ -763,27 +785,29 @@ CheckModeSupported (
OUT UINT32 *CurrentModeNumber
)
{
- UINT32 ModeNumber;
- EFI_STATUS Status;
- UINTN SizeOfInfo;
- EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
- UINT32 MaxMode;
+ UINT32 ModeNumber;
+ EFI_STATUS Status;
+ UINTN SizeOfInfo;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ UINT32 MaxMode;
Status = EFI_SUCCESS;
MaxMode = GraphicsOutput->Mode->MaxMode;
for (ModeNumber = 0; ModeNumber < MaxMode; ModeNumber++) {
Status = GraphicsOutput->QueryMode (
- GraphicsOutput,
- ModeNumber,
- &SizeOfInfo,
- &Info
- );
+ GraphicsOutput,
+ ModeNumber,
+ &SizeOfInfo,
+ &Info
+ );
if (!EFI_ERROR (Status)) {
if ((Info->HorizontalResolution == HorizontalResolution) &&
- (Info->VerticalResolution == VerticalResolution)) {
+ (Info->VerticalResolution == VerticalResolution))
+ {
if ((GraphicsOutput->Mode->Info->HorizontalResolution == HorizontalResolution) &&
- (GraphicsOutput->Mode->Info->VerticalResolution == VerticalResolution)) {
+ (GraphicsOutput->Mode->Info->VerticalResolution == VerticalResolution))
+ {
//
// If video device has been set to this mode, we do not need to SetMode again
//
@@ -797,6 +821,7 @@ CheckModeSupported (
}
}
}
+
FreePool (Info);
}
}
@@ -809,7 +834,6 @@ CheckModeSupported (
return Status;
}
-
/**
Locate HII Database protocol and HII Font protocol.
@@ -826,12 +850,12 @@ EfiLocateHiiProtocol (
{
EFI_STATUS Status;
- Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &mHiiDatabase);
+ Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **)&mHiiDatabase);
if (EFI_ERROR (Status)) {
return Status;
}
- Status = gBS->LocateProtocol (&gEfiHiiFontProtocolGuid, NULL, (VOID **) &mHiiFont);
+ Status = gBS->LocateProtocol (&gEfiHiiFontProtocolGuid, NULL, (VOID **)&mHiiFont);
return Status;
}
@@ -864,16 +888,17 @@ GraphicsConsoleConOutReset (
IN BOOLEAN ExtendedVerification
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
+
Status = This->SetMode (This, 0);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = This->SetAttribute (This, EFI_TEXT_ATTR (This->Mode->Attribute & 0x0F, EFI_BACKGROUND_BLACK));
return Status;
}
-
/**
Write a Unicode string to the output device.
@@ -903,25 +928,25 @@ GraphicsConsoleConOutOutputString (
IN CHAR16 *WString
)
{
- GRAPHICS_CONSOLE_DEV *Private;
+ GRAPHICS_CONSOLE_DEV *Private;
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- INTN Mode;
- UINTN MaxColumn;
- UINTN MaxRow;
- UINTN Width;
- UINTN Height;
- UINTN Delta;
- EFI_STATUS Status;
- BOOLEAN Warning;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ INTN Mode;
+ UINTN MaxColumn;
+ UINTN MaxRow;
+ UINTN Width;
+ UINTN Height;
+ UINTN Delta;
+ EFI_STATUS Status;
+ BOOLEAN Warning;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
- UINTN DeltaX;
- UINTN DeltaY;
- UINTN Count;
- UINTN Index;
- INT32 OriginAttribute;
- EFI_TPL OldTpl;
+ UINTN DeltaX;
+ UINTN DeltaY;
+ UINTN Count;
+ UINTN Index;
+ INT32 OriginAttribute;
+ EFI_TPL OldTpl;
if (This->Mode->Mode == -1) {
//
@@ -936,15 +961,15 @@ GraphicsConsoleConOutOutputString (
//
// Current mode
//
- Mode = This->Mode->Mode;
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
+ Mode = This->Mode->Mode;
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
GraphicsOutput = Private->GraphicsOutput;
- UgaDraw = Private->UgaDraw;
+ UgaDraw = Private->UgaDraw;
MaxColumn = Private->ModeData[Mode].Columns;
MaxRow = Private->ModeData[Mode].Rows;
- DeltaX = (UINTN) Private->ModeData[Mode].DeltaX;
- DeltaY = (UINTN) Private->ModeData[Mode].DeltaY;
+ DeltaX = (UINTN)Private->ModeData[Mode].DeltaX;
+ DeltaY = (UINTN)Private->ModeData[Mode].DeltaY;
Width = MaxColumn * EFI_GLYPH_WIDTH;
Height = (MaxRow - 1) * EFI_GLYPH_HEIGHT;
Delta = Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
@@ -964,19 +989,18 @@ GraphicsConsoleConOutOutputString (
OriginAttribute = This->Mode->Attribute;
while (*WString != L'\0') {
-
if (*WString == CHAR_BACKSPACE) {
//
// If the cursor is at the left edge of the display, then move the cursor
// one row up.
//
- if (This->Mode->CursorColumn == 0 && This->Mode->CursorRow > 0) {
+ if ((This->Mode->CursorColumn == 0) && (This->Mode->CursorRow > 0)) {
This->Mode->CursorRow--;
- This->Mode->CursorColumn = (INT32) (MaxColumn - 1);
+ This->Mode->CursorColumn = (INT32)(MaxColumn - 1);
This->OutputString (This, SpaceStr);
FlushCursor (This);
This->Mode->CursorRow--;
- This->Mode->CursorColumn = (INT32) (MaxColumn - 1);
+ This->Mode->CursorColumn = (INT32)(MaxColumn - 1);
} else if (This->Mode->CursorColumn > 0) {
//
// If the cursor is not at the left edge of the display, then move the cursor
@@ -989,102 +1013,95 @@ GraphicsConsoleConOutOutputString (
}
WString++;
-
} else if (*WString == CHAR_LINEFEED) {
//
// If the cursor is at the bottom of the display, then scroll the display one
// row, and do not update the cursor position. Otherwise, move the cursor
// down one row.
//
- if (This->Mode->CursorRow == (INT32) (MaxRow - 1)) {
+ if (This->Mode->CursorRow == (INT32)(MaxRow - 1)) {
if (GraphicsOutput != NULL) {
//
// Scroll Screen Up One Row
//
GraphicsOutput->Blt (
- GraphicsOutput,
- NULL,
- EfiBltVideoToVideo,
- DeltaX,
- DeltaY + EFI_GLYPH_HEIGHT,
- DeltaX,
- DeltaY,
- Width,
- Height,
- Delta
- );
+ GraphicsOutput,
+ NULL,
+ EfiBltVideoToVideo,
+ DeltaX,
+ DeltaY + EFI_GLYPH_HEIGHT,
+ DeltaX,
+ DeltaY,
+ Width,
+ Height,
+ Delta
+ );
//
// Print Blank Line at last line
//
GraphicsOutput->Blt (
- GraphicsOutput,
- &Background,
- EfiBltVideoFill,
- 0,
- 0,
- DeltaX,
- DeltaY + Height,
- Width,
- EFI_GLYPH_HEIGHT,
- Delta
- );
+ GraphicsOutput,
+ &Background,
+ EfiBltVideoFill,
+ 0,
+ 0,
+ DeltaX,
+ DeltaY + Height,
+ Width,
+ EFI_GLYPH_HEIGHT,
+ Delta
+ );
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
//
// Scroll Screen Up One Row
//
UgaDraw->Blt (
- UgaDraw,
- NULL,
- EfiUgaVideoToVideo,
- DeltaX,
- DeltaY + EFI_GLYPH_HEIGHT,
- DeltaX,
- DeltaY,
- Width,
- Height,
- Delta
- );
+ UgaDraw,
+ NULL,
+ EfiUgaVideoToVideo,
+ DeltaX,
+ DeltaY + EFI_GLYPH_HEIGHT,
+ DeltaX,
+ DeltaY,
+ Width,
+ Height,
+ Delta
+ );
//
// Print Blank Line at last line
//
UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) (UINTN) &Background,
- EfiUgaVideoFill,
- 0,
- 0,
- DeltaX,
- DeltaY + Height,
- Width,
- EFI_GLYPH_HEIGHT,
- Delta
- );
+ UgaDraw,
+ (EFI_UGA_PIXEL *)(UINTN)&Background,
+ EfiUgaVideoFill,
+ 0,
+ 0,
+ DeltaX,
+ DeltaY + Height,
+ Width,
+ EFI_GLYPH_HEIGHT,
+ Delta
+ );
}
} else {
This->Mode->CursorRow++;
}
WString++;
-
} else if (*WString == CHAR_CARRIAGE_RETURN) {
//
// Move the cursor to the beginning of the current row.
//
This->Mode->CursorColumn = 0;
WString++;
-
} else if (*WString == WIDE_CHAR) {
-
This->Mode->Attribute |= EFI_WIDE_ATTRIBUTE;
WString++;
-
} else if (*WString == NARROW_CHAR) {
-
- This->Mode->Attribute &= (~ (UINT32) EFI_WIDE_ATTRIBUTE);
+ This->Mode->Attribute &= (~(UINT32)EFI_WIDE_ATTRIBUTE);
WString++;
-
} else {
//
// Print the character at the current cursor position and move the cursor
@@ -1100,14 +1117,16 @@ GraphicsConsoleConOutOutputString (
// Count is used to determine how many characters are used regardless of their attributes
//
for (Count = 0, Index = 0; (This->Mode->CursorColumn + Index) < MaxColumn; Count++, Index++) {
- if (WString[Count] == CHAR_NULL ||
- WString[Count] == CHAR_BACKSPACE ||
- WString[Count] == CHAR_LINEFEED ||
- WString[Count] == CHAR_CARRIAGE_RETURN ||
- WString[Count] == WIDE_CHAR ||
- WString[Count] == NARROW_CHAR) {
+ if ((WString[Count] == CHAR_NULL) ||
+ (WString[Count] == CHAR_BACKSPACE) ||
+ (WString[Count] == CHAR_LINEFEED) ||
+ (WString[Count] == CHAR_CARRIAGE_RETURN) ||
+ (WString[Count] == WIDE_CHAR) ||
+ (WString[Count] == NARROW_CHAR))
+ {
break;
}
+
//
// Is the wide attribute on?
//
@@ -1132,17 +1151,18 @@ GraphicsConsoleConOutOutputString (
if (EFI_ERROR (Status)) {
Warning = TRUE;
}
+
//
// At the end of line, output carriage return and line feed
//
- WString += Count;
- This->Mode->CursorColumn += (INT32) Index;
- if (This->Mode->CursorColumn > (INT32) MaxColumn) {
+ WString += Count;
+ This->Mode->CursorColumn += (INT32)Index;
+ if (This->Mode->CursorColumn > (INT32)MaxColumn) {
This->Mode->CursorColumn -= 2;
This->OutputString (This, SpaceStr);
}
- if (This->Mode->CursorColumn >= (INT32) MaxColumn) {
+ if (This->Mode->CursorColumn >= (INT32)MaxColumn) {
FlushCursor (This);
This->OutputString (This, mCrLfString);
FlushCursor (This);
@@ -1160,7 +1180,6 @@ GraphicsConsoleConOutOutputString (
gBS->RestoreTPL (OldTpl);
return Status;
-
}
/**
@@ -1189,10 +1208,10 @@ GraphicsConsoleConOutTestString (
IN CHAR16 *WString
)
{
- EFI_STATUS Status;
- UINT16 Count;
+ EFI_STATUS Status;
+ UINT16 Count;
- EFI_IMAGE_OUTPUT *Blt;
+ EFI_IMAGE_OUTPUT *Blt;
Blt = NULL;
Count = 0;
@@ -1209,6 +1228,7 @@ GraphicsConsoleConOutTestString (
FreePool (Blt);
Blt = NULL;
}
+
Count++;
if (EFI_ERROR (Status)) {
@@ -1219,7 +1239,6 @@ GraphicsConsoleConOutTestString (
return EFI_SUCCESS;
}
-
/**
Returns information for an available text mode that the output device(s)
supports
@@ -1250,22 +1269,21 @@ GraphicsConsoleConOutQueryMode (
EFI_STATUS Status;
EFI_TPL OldTpl;
- if (ModeNumber >= (UINTN) This->Mode->MaxMode) {
+ if (ModeNumber >= (UINTN)This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
Status = EFI_SUCCESS;
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
- *Columns = Private->ModeData[ModeNumber].Columns;
- *Rows = Private->ModeData[ModeNumber].Rows;
+ *Columns = Private->ModeData[ModeNumber].Columns;
+ *Rows = Private->ModeData[ModeNumber].Rows;
- if (*Columns <= 0 || *Rows <= 0) {
+ if ((*Columns <= 0) || (*Rows <= 0)) {
Status = EFI_UNSUPPORTED;
goto Done;
-
}
Done:
@@ -1273,7 +1291,6 @@ Done:
return Status;
}
-
/**
Sets the output device(s) to a specified mode.
@@ -1296,35 +1313,35 @@ GraphicsConsoleConOutSetMode (
IN UINTN ModeNumber
)
{
- EFI_STATUS Status;
- GRAPHICS_CONSOLE_DEV *Private;
- GRAPHICS_CONSOLE_MODE_DATA *ModeData;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *NewLineBuffer;
- UINT32 HorizontalResolution;
- UINT32 VerticalResolution;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- UINT32 ColorDepth;
- UINT32 RefreshRate;
- EFI_TPL OldTpl;
+ EFI_STATUS Status;
+ GRAPHICS_CONSOLE_DEV *Private;
+ GRAPHICS_CONSOLE_MODE_DATA *ModeData;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *NewLineBuffer;
+ UINT32 HorizontalResolution;
+ UINT32 VerticalResolution;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ UINT32 ColorDepth;
+ UINT32 RefreshRate;
+ EFI_TPL OldTpl;
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
GraphicsOutput = Private->GraphicsOutput;
- UgaDraw = Private->UgaDraw;
+ UgaDraw = Private->UgaDraw;
//
// Make sure the requested mode number is supported
//
- if (ModeNumber >= (UINTN) This->Mode->MaxMode) {
+ if (ModeNumber >= (UINTN)This->Mode->MaxMode) {
Status = EFI_UNSUPPORTED;
goto Done;
}
- ModeData = &(Private->ModeData[ModeNumber]);
+ ModeData = &(Private->ModeData[ModeNumber]);
- if (ModeData->Columns <= 0 && ModeData->Rows <= 0) {
+ if ((ModeData->Columns <= 0) && (ModeData->Rows <= 0)) {
Status = EFI_UNSUPPORTED;
goto Done;
}
@@ -1336,7 +1353,7 @@ GraphicsConsoleConOutSetMode (
//
// If the new mode is the same as the old mode, then just return EFI_SUCCESS
//
- if ((INT32) ModeNumber == This->Mode->Mode) {
+ if ((INT32)ModeNumber == This->Mode->Mode) {
//
// Clear the current text window on the current graphics console
//
@@ -1344,6 +1361,7 @@ GraphicsConsoleConOutSetMode (
Status = EFI_SUCCESS;
goto Done;
}
+
//
// Otherwise, the size of the text console and/or the GOP/UGA mode will be changed,
// so erase the cursor, and free the LineBuffer for the current mode
@@ -1389,17 +1407,17 @@ GraphicsConsoleConOutSetMode (
// The current graphics mode is correct, so simply clear the entire display
//
Status = GraphicsOutput->Blt (
- GraphicsOutput,
- &mGraphicsEfiColors[0],
- EfiBltVideoFill,
- 0,
- 0,
- 0,
- 0,
- ModeData->GopWidth,
- ModeData->GopHeight,
- 0
- );
+ GraphicsOutput,
+ &mGraphicsEfiColors[0],
+ EfiBltVideoFill,
+ 0,
+ 0,
+ 0,
+ 0,
+ ModeData->GopWidth,
+ ModeData->GopHeight,
+ 0
+ );
}
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
//
@@ -1412,7 +1430,7 @@ GraphicsConsoleConOutSetMode (
&ColorDepth,
&RefreshRate
);
- if (EFI_ERROR (Status) || HorizontalResolution != ModeData->GopWidth || VerticalResolution != ModeData->GopHeight) {
+ if (EFI_ERROR (Status) || (HorizontalResolution != ModeData->GopWidth) || (VerticalResolution != ModeData->GopHeight)) {
//
// Either no graphics mode is currently set, or it is set to the wrong resolution, so set the new graphics mode
//
@@ -1435,7 +1453,7 @@ GraphicsConsoleConOutSetMode (
//
Status = UgaDraw->Blt (
UgaDraw,
- (EFI_UGA_PIXEL *) (UINTN) &mGraphicsEfiColors[0],
+ (EFI_UGA_PIXEL *)(UINTN)&mGraphicsEfiColors[0],
EfiUgaVideoFill,
0,
0,
@@ -1451,13 +1469,13 @@ GraphicsConsoleConOutSetMode (
//
// The new mode is valid, so commit the mode change
//
- This->Mode->Mode = (INT32) ModeNumber;
+ This->Mode->Mode = (INT32)ModeNumber;
//
// Move the text cursor to the upper left hand corner of the display and flush it
//
- This->Mode->CursorColumn = 0;
- This->Mode->CursorRow = 0;
+ This->Mode->CursorColumn = 0;
+ This->Mode->CursorRow = 0;
FlushCursor (This);
@@ -1468,7 +1486,6 @@ Done:
return Status;
}
-
/**
Sets the background and foreground colors for the OutputString () and
ClearScreen () functions.
@@ -1492,13 +1509,13 @@ GraphicsConsoleConOutSetAttribute (
IN UINTN Attribute
)
{
- EFI_TPL OldTpl;
+ EFI_TPL OldTpl;
if ((Attribute | 0x7F) != 0x7F) {
return EFI_UNSUPPORTED;
}
- if ((INT32) Attribute == This->Mode->Attribute) {
+ if ((INT32)Attribute == This->Mode->Attribute) {
return EFI_SUCCESS;
}
@@ -1506,7 +1523,7 @@ GraphicsConsoleConOutSetAttribute (
FlushCursor (This);
- This->Mode->Attribute = (INT32) Attribute;
+ This->Mode->Attribute = (INT32)Attribute;
FlushCursor (This);
@@ -1515,7 +1532,6 @@ GraphicsConsoleConOutSetAttribute (
return EFI_SUCCESS;
}
-
/**
Clears the output device(s) display to the currently selected background
color.
@@ -1535,14 +1551,14 @@ GraphicsConsoleConOutClearScreen (
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
)
{
- EFI_STATUS Status;
- GRAPHICS_CONSOLE_DEV *Private;
- GRAPHICS_CONSOLE_MODE_DATA *ModeData;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
- EFI_TPL OldTpl;
+ EFI_STATUS Status;
+ GRAPHICS_CONSOLE_DEV *Private;
+ GRAPHICS_CONSOLE_MODE_DATA *ModeData;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
+ EFI_TPL OldTpl;
if (This->Mode->Mode == -1) {
//
@@ -1553,29 +1569,29 @@ GraphicsConsoleConOutClearScreen (
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
GraphicsOutput = Private->GraphicsOutput;
- UgaDraw = Private->UgaDraw;
- ModeData = &(Private->ModeData[This->Mode->Mode]);
+ UgaDraw = Private->UgaDraw;
+ ModeData = &(Private->ModeData[This->Mode->Mode]);
GetTextColors (This, &Foreground, &Background);
if (GraphicsOutput != NULL) {
Status = GraphicsOutput->Blt (
- GraphicsOutput,
- &Background,
- EfiBltVideoFill,
- 0,
- 0,
- 0,
- 0,
- ModeData->GopWidth,
- ModeData->GopHeight,
- 0
- );
+ GraphicsOutput,
+ &Background,
+ EfiBltVideoFill,
+ 0,
+ 0,
+ 0,
+ 0,
+ ModeData->GopWidth,
+ ModeData->GopHeight,
+ 0
+ );
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
Status = UgaDraw->Blt (
UgaDraw,
- (EFI_UGA_PIXEL *) (UINTN) &Background,
+ (EFI_UGA_PIXEL *)(UINTN)&Background,
EfiUgaVideoFill,
0,
0,
@@ -1589,8 +1605,8 @@ GraphicsConsoleConOutClearScreen (
Status = EFI_UNSUPPORTED;
}
- This->Mode->CursorColumn = 0;
- This->Mode->CursorRow = 0;
+ This->Mode->CursorColumn = 0;
+ This->Mode->CursorRow = 0;
FlushCursor (This);
@@ -1599,7 +1615,6 @@ GraphicsConsoleConOutClearScreen (
return Status;
}
-
/**
Sets the current coordinates of the cursor position.
@@ -1643,23 +1658,23 @@ GraphicsConsoleConOutSetCursorPosition (
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
- ModeData = &(Private->ModeData[This->Mode->Mode]);
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
+ ModeData = &(Private->ModeData[This->Mode->Mode]);
if ((Column >= ModeData->Columns) || (Row >= ModeData->Rows)) {
Status = EFI_UNSUPPORTED;
goto Done;
}
- if ((This->Mode->CursorColumn == (INT32) Column) && (This->Mode->CursorRow == (INT32) Row)) {
+ if ((This->Mode->CursorColumn == (INT32)Column) && (This->Mode->CursorRow == (INT32)Row)) {
Status = EFI_SUCCESS;
goto Done;
}
FlushCursor (This);
- This->Mode->CursorColumn = (INT32) Column;
- This->Mode->CursorRow = (INT32) Row;
+ This->Mode->CursorColumn = (INT32)Column;
+ This->Mode->CursorRow = (INT32)Row;
FlushCursor (This);
@@ -1669,7 +1684,6 @@ Done:
return Status;
}
-
/**
Makes the cursor visible or invisible.
@@ -1691,7 +1705,7 @@ GraphicsConsoleConOutEnableCursor (
IN BOOLEAN Visible
)
{
- EFI_TPL OldTpl;
+ EFI_TPL OldTpl;
if (This->Mode->Mode == -1) {
//
@@ -1731,7 +1745,7 @@ GetTextColors (
{
INTN Attribute;
- Attribute = This->Mode->Attribute & 0x7F;
+ Attribute = This->Mode->Attribute & 0x7F;
*Foreground = mGraphicsEfiColors[Attribute & 0x0f];
*Background = mGraphicsEfiColors[Attribute >> 4];
@@ -1759,40 +1773,42 @@ DrawUnicodeWeightAtCursorN (
IN UINTN Count
)
{
- EFI_STATUS Status;
- GRAPHICS_CONSOLE_DEV *Private;
- EFI_IMAGE_OUTPUT *Blt;
- EFI_STRING String;
- EFI_FONT_DISPLAY_INFO *FontInfo;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- EFI_HII_ROW_INFO *RowInfoArray;
- UINTN RowInfoArraySize;
+ EFI_STATUS Status;
+ GRAPHICS_CONSOLE_DEV *Private;
+ EFI_IMAGE_OUTPUT *Blt;
+ EFI_STRING String;
+ EFI_FONT_DISPLAY_INFO *FontInfo;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_HII_ROW_INFO *RowInfoArray;
+ UINTN RowInfoArraySize;
Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
- Blt = (EFI_IMAGE_OUTPUT *) AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
+ Blt = (EFI_IMAGE_OUTPUT *)AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
if (Blt == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Blt->Width = (UINT16) (Private->ModeData[This->Mode->Mode].GopWidth);
- Blt->Height = (UINT16) (Private->ModeData[This->Mode->Mode].GopHeight);
+ Blt->Width = (UINT16)(Private->ModeData[This->Mode->Mode].GopWidth);
+ Blt->Height = (UINT16)(Private->ModeData[This->Mode->Mode].GopHeight);
String = AllocateCopyPool ((Count + 1) * sizeof (CHAR16), UnicodeWeight);
if (String == NULL) {
FreePool (Blt);
return EFI_OUT_OF_RESOURCES;
}
+
//
// Set the end character
//
*(String + Count) = L'\0';
- FontInfo = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (sizeof (EFI_FONT_DISPLAY_INFO));
+ FontInfo = (EFI_FONT_DISPLAY_INFO *)AllocateZeroPool (sizeof (EFI_FONT_DISPLAY_INFO));
if (FontInfo == NULL) {
FreePool (Blt);
FreePool (String);
return EFI_OUT_OF_RESOURCES;
}
+
//
// Get current foreground and background colors.
//
@@ -1816,13 +1832,12 @@ DrawUnicodeWeightAtCursorN (
NULL,
NULL
);
-
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
//
// If Graphics Output protocol cannot be found and PcdUgaConsumeSupport enabled,
// using UGA Draw protocol to draw.
//
- ASSERT (Private->UgaDraw!= NULL);
+ ASSERT (Private->UgaDraw != NULL);
UgaDraw = Private->UgaDraw;
@@ -1839,17 +1854,17 @@ DrawUnicodeWeightAtCursorN (
// we ask StringToImage to print the string to blt buffer, then blt to device using UgaDraw.
//
Status = mHiiFont->StringToImage (
- mHiiFont,
- EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_IGNORE_LINE_BREAK,
- String,
- FontInfo,
- &Blt,
- This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,
- This->Mode->CursorRow * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,
- &RowInfoArray,
- &RowInfoArraySize,
- NULL
- );
+ mHiiFont,
+ EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_IGNORE_LINE_BREAK,
+ String,
+ FontInfo,
+ &Blt,
+ This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,
+ This->Mode->CursorRow * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,
+ &RowInfoArray,
+ &RowInfoArraySize,
+ NULL
+ );
if (!EFI_ERROR (Status)) {
//
@@ -1860,7 +1875,7 @@ DrawUnicodeWeightAtCursorN (
Status = UgaDraw->Blt (
UgaDraw,
- (EFI_UGA_PIXEL *) Blt->Image.Bitmap,
+ (EFI_UGA_PIXEL *)Blt->Image.Bitmap,
EfiUgaBltBufferToVideo,
This->Mode->CursorColumn * EFI_GLYPH_WIDTH + Private->ModeData[This->Mode->Mode].DeltaX,
(This->Mode->CursorRow) * EFI_GLYPH_HEIGHT + Private->ModeData[This->Mode->Mode].DeltaY,
@@ -1881,12 +1896,15 @@ DrawUnicodeWeightAtCursorN (
if (Blt != NULL) {
FreePool (Blt);
}
+
if (String != NULL) {
FreePool (String);
}
+
if (FontInfo != NULL) {
FreePool (FontInfo);
}
+
return Status;
}
@@ -1908,17 +1926,17 @@ FlushCursor (
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
)
{
- GRAPHICS_CONSOLE_DEV *Private;
- EFI_SIMPLE_TEXT_OUTPUT_MODE *CurrentMode;
- INTN GlyphX;
- INTN GlyphY;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];
- UINTN PosX;
- UINTN PosY;
+ GRAPHICS_CONSOLE_DEV *Private;
+ EFI_SIMPLE_TEXT_OUTPUT_MODE *CurrentMode;
+ INTN GlyphX;
+ INTN GlyphY;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Foreground;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Background;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION BltChar[EFI_GLYPH_HEIGHT][EFI_GLYPH_WIDTH];
+ UINTN PosX;
+ UINTN PosY;
CurrentMode = This->Mode;
@@ -1926,9 +1944,9 @@ FlushCursor (
return EFI_SUCCESS;
}
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
+ Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);
GraphicsOutput = Private->GraphicsOutput;
- UgaDraw = Private->UgaDraw;
+ UgaDraw = Private->UgaDraw;
//
// In this driver, only narrow character was supported.
@@ -1936,34 +1954,34 @@ FlushCursor (
//
// Blt a character to the screen
//
- GlyphX = (CurrentMode->CursorColumn * EFI_GLYPH_WIDTH) + Private->ModeData[CurrentMode->Mode].DeltaX;
- GlyphY = (CurrentMode->CursorRow * EFI_GLYPH_HEIGHT) + Private->ModeData[CurrentMode->Mode].DeltaY;
+ GlyphX = (CurrentMode->CursorColumn * EFI_GLYPH_WIDTH) + Private->ModeData[CurrentMode->Mode].DeltaX;
+ GlyphY = (CurrentMode->CursorRow * EFI_GLYPH_HEIGHT) + Private->ModeData[CurrentMode->Mode].DeltaY;
if (GraphicsOutput != NULL) {
GraphicsOutput->Blt (
- GraphicsOutput,
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) BltChar,
- EfiBltVideoToBltBuffer,
- GlyphX,
- GlyphY,
- 0,
- 0,
- EFI_GLYPH_WIDTH,
- EFI_GLYPH_HEIGHT,
- EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- );
+ GraphicsOutput,
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)BltChar,
+ EfiBltVideoToBltBuffer,
+ GlyphX,
+ GlyphY,
+ 0,
+ 0,
+ EFI_GLYPH_WIDTH,
+ EFI_GLYPH_HEIGHT,
+ EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+ );
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) (UINTN) BltChar,
- EfiUgaVideoToBltBuffer,
- GlyphX,
- GlyphY,
- 0,
- 0,
- EFI_GLYPH_WIDTH,
- EFI_GLYPH_HEIGHT,
- EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)
- );
+ UgaDraw,
+ (EFI_UGA_PIXEL *)(UINTN)BltChar,
+ EfiUgaVideoToBltBuffer,
+ GlyphX,
+ GlyphY,
+ 0,
+ 0,
+ EFI_GLYPH_WIDTH,
+ EFI_GLYPH_HEIGHT,
+ EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)
+ );
}
GetTextColors (This, &Foreground.Pixel, &Background.Pixel);
@@ -1981,30 +1999,30 @@ FlushCursor (
if (GraphicsOutput != NULL) {
GraphicsOutput->Blt (
- GraphicsOutput,
- (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *) BltChar,
- EfiBltBufferToVideo,
- 0,
- 0,
- GlyphX,
- GlyphY,
- EFI_GLYPH_WIDTH,
- EFI_GLYPH_HEIGHT,
- EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- );
+ GraphicsOutput,
+ (EFI_GRAPHICS_OUTPUT_BLT_PIXEL *)BltChar,
+ EfiBltBufferToVideo,
+ 0,
+ 0,
+ GlyphX,
+ GlyphY,
+ EFI_GLYPH_WIDTH,
+ EFI_GLYPH_HEIGHT,
+ EFI_GLYPH_WIDTH * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
+ );
} else if (FeaturePcdGet (PcdUgaConsumeSupport)) {
UgaDraw->Blt (
- UgaDraw,
- (EFI_UGA_PIXEL *) (UINTN) BltChar,
- EfiUgaBltBufferToVideo,
- 0,
- 0,
- GlyphX,
- GlyphY,
- EFI_GLYPH_WIDTH,
- EFI_GLYPH_HEIGHT,
- EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)
- );
+ UgaDraw,
+ (EFI_UGA_PIXEL *)(UINTN)BltChar,
+ EfiUgaBltBufferToVideo,
+ 0,
+ 0,
+ GlyphX,
+ GlyphY,
+ EFI_GLYPH_WIDTH,
+ EFI_GLYPH_HEIGHT,
+ EFI_GLYPH_WIDTH * sizeof (EFI_UGA_PIXEL)
+ );
}
return EFI_SUCCESS;
@@ -2021,16 +2039,16 @@ FlushCursor (
VOID
EFIAPI
RegisterFontPackage (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimplifiedFont;
- UINT32 PackageLength;
- UINT8 *Package;
- UINT8 *Location;
- EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
+ EFI_STATUS Status;
+ EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimplifiedFont;
+ UINT32 PackageLength;
+ UINT8 *Package;
+ UINT8 *Location;
+ EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
//
// Locate HII Database Protocol
@@ -2038,7 +2056,7 @@ RegisterFontPackage (
Status = gBS->LocateProtocol (
&gEfiHiiDatabaseProtocolGuid,
NULL,
- (VOID **) &HiiDatabase
+ (VOID **)&HiiDatabase
);
if (EFI_ERROR (Status)) {
return;
@@ -2061,17 +2079,17 @@ RegisterFontPackage (
// | |
// +--------------------------------+
- PackageLength = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + mNarrowFontSize + 4;
- Package = AllocateZeroPool (PackageLength);
+ PackageLength = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR) + mNarrowFontSize + 4;
+ Package = AllocateZeroPool (PackageLength);
ASSERT (Package != NULL);
- WriteUnaligned32((UINT32 *) Package,PackageLength);
- SimplifiedFont = (EFI_HII_SIMPLE_FONT_PACKAGE_HDR *) (Package + 4);
- SimplifiedFont->Header.Length = (UINT32) (PackageLength - 4);
+ WriteUnaligned32 ((UINT32 *)Package, PackageLength);
+ SimplifiedFont = (EFI_HII_SIMPLE_FONT_PACKAGE_HDR *)(Package + 4);
+ SimplifiedFont->Header.Length = (UINT32)(PackageLength - 4);
SimplifiedFont->Header.Type = EFI_HII_PACKAGE_SIMPLE_FONTS;
- SimplifiedFont->NumberOfNarrowGlyphs = (UINT16) (mNarrowFontSize / sizeof (EFI_NARROW_GLYPH));
+ SimplifiedFont->NumberOfNarrowGlyphs = (UINT16)(mNarrowFontSize / sizeof (EFI_NARROW_GLYPH));
- Location = (UINT8 *) (&SimplifiedFont->NumberOfWideGlyphs + 1);
+ Location = (UINT8 *)(&SimplifiedFont->NumberOfWideGlyphs + 1);
CopyMem (Location, gUsStdNarrowGlyphData, mNarrowFontSize);
//
@@ -2100,11 +2118,11 @@ RegisterFontPackage (
EFI_STATUS
EFIAPI
InitializeGraphicsConsole (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Register notify function on HII Database Protocol to add font package.
diff --git a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.h b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.h
index 11d254b..e4abad4 100644
--- a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.h
+++ b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.h
@@ -29,17 +29,16 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Protocol/HiiFont.h>
#include <Protocol/HiiDatabase.h>
-
extern EFI_COMPONENT_NAME_PROTOCOL gGraphicsConsoleComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gGraphicsConsoleComponentName2;
extern EFI_DRIVER_BINDING_PROTOCOL gGraphicsConsoleDriverBinding;
extern EFI_NARROW_GLYPH gUsStdNarrowGlyphData[];
-extern UINT32 mNarrowFontSize;
+extern UINT32 mNarrowFontSize;
typedef union {
- EFI_NARROW_GLYPH NarrowGlyph;
- EFI_WIDE_GLYPH WideGlyph;
+ EFI_NARROW_GLYPH NarrowGlyph;
+ EFI_WIDE_GLYPH WideGlyph;
} GLYPH_UNION;
//
@@ -48,32 +47,32 @@ typedef union {
#define GRAPHICS_CONSOLE_DEV_SIGNATURE SIGNATURE_32 ('g', 's', 't', 'o')
typedef struct {
- UINTN Columns;
- UINTN Rows;
- INTN DeltaX;
- INTN DeltaY;
- UINT32 GopWidth;
- UINT32 GopHeight;
- UINT32 GopModeNumber;
+ UINTN Columns;
+ UINTN Rows;
+ INTN DeltaX;
+ INTN DeltaY;
+ UINT32 GopWidth;
+ UINT32 GopHeight;
+ UINT32 GopModeNumber;
} GRAPHICS_CONSOLE_MODE_DATA;
typedef struct {
- UINTN Signature;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
- EFI_UGA_DRAW_PROTOCOL *UgaDraw;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput;
- EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode;
- GRAPHICS_CONSOLE_MODE_DATA *ModeData;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LineBuffer;
+ UINTN Signature;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ EFI_UGA_DRAW_PROTOCOL *UgaDraw;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput;
+ EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode;
+ GRAPHICS_CONSOLE_MODE_DATA *ModeData;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *LineBuffer;
} GRAPHICS_CONSOLE_DEV;
#define GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS(a) \
CR (a, GRAPHICS_CONSOLE_DEV, SimpleTextOutput, GRAPHICS_CONSOLE_DEV_SIGNATURE)
-
//
// EFI Component Name Functions
//
+
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -121,7 +120,6 @@ GraphicsConsoleComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -193,14 +191,13 @@ GraphicsConsoleComponentNameGetDriverName (
EFI_STATUS
EFIAPI
GraphicsConsoleComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
/**
Reset the text output device hardware and optionally run diagnostics.
@@ -222,8 +219,8 @@ GraphicsConsoleComponentNameGetControllerName (
EFI_STATUS
EFIAPI
GraphicsConsoleConOutReset (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
/**
@@ -307,7 +304,6 @@ GraphicsConsoleConOutQueryMode (
OUT UINTN *Rows
);
-
/**
Sets the output device(s) to a specified mode.
@@ -399,7 +395,6 @@ GraphicsConsoleConOutSetCursorPosition (
IN UINTN Row
);
-
/**
Makes the cursor visible or invisible.
@@ -438,12 +433,11 @@ GraphicsConsoleConOutEnableCursor (
EFI_STATUS
EFIAPI
GraphicsConsoleControllerDriverSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
-
/**
Start this driver on Controller by opening Graphics Output protocol or
UGA Draw protocol, and installing Simple Text Out protocol on Controller.
@@ -461,9 +455,9 @@ GraphicsConsoleControllerDriverSupported (
EFI_STATUS
EFIAPI
GraphicsConsoleControllerDriverStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -487,13 +481,12 @@ GraphicsConsoleControllerDriverStart (
EFI_STATUS
EFIAPI
GraphicsConsoleControllerDriverStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
-
/**
Locate HII Database protocol and HII Font protocol.
@@ -508,7 +501,6 @@ EfiLocateHiiProtocol (
VOID
);
-
/**
Gets Graphics Console device's foreground color and background color.
@@ -586,9 +578,9 @@ FlushCursor (
EFI_STATUS
CheckModeSupported (
EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,
- IN UINT32 HorizontalResolution,
- IN UINT32 VerticalResolution,
- OUT UINT32 *CurrentModeNumber
+ IN UINT32 HorizontalResolution,
+ IN UINT32 VerticalResolution,
+ OUT UINT32 *CurrentModeNumber
);
#endif
diff --git a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/LaffStd.c b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/LaffStd.c
index 7071552..1f7fe4c 100644
--- a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/LaffStd.c
+++ b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/LaffStd.c
@@ -8,264 +8,503 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "GraphicsConsole.h"
-
-
EFI_NARROW_GLYPH gUsStdNarrowGlyphData[] = {
//
// Unicode glyphs from 0x20 to 0x7e are the same as ASCII characters 0x20 to 0x7e
//
- { 0x0020, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x0021, 0x00, {0x00,0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x0022, 0x00, {0x00,0x00,0x00,0x6C,0x6C,0x6C,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x0023, 0x00, {0x00,0x00,0x00,0x00,0x6C,0x6C,0x6C,0xFE,0x6C,0x6C,0x6C,0xFE,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00}},
- { 0x0024, 0x00, {0x00,0x00,0x18,0x18,0x7C,0xC6,0xC6,0x60,0x38,0x0C,0x06,0xC6,0xC6,0x7C,0x18,0x18,0x00,0x00,0x00}},
- { 0x0025, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0x0C,0x0C,0x18,0x18,0x30,0x30,0x60,0x60,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x0026, 0x00, {0x00,0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x76,0xDC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x0027, 0x00, {0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x0028, 0x00, {0x00,0x00,0x00,0x06,0x0C,0x0C,0x18,0x18,0x18,0x18,0x18,0x18,0x0C,0x0C,0x06,0x00,0x00,0x00,0x00}},
- { 0x0029, 0x00, {0x00,0x00,0x00,0xC0,0x60,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0x60,0xC0,0x00,0x00,0x00,0x00}},
- { 0x002a, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x38,0xFE,0x38,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x002b, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x002c, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00,0x00}},
- { 0x002d, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x002e, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00}},
- { 0x002f, 0x00, {0x00,0x00,0x00,0x06,0x06,0x0C,0x0C,0x18,0x18,0x30,0x30,0x60,0x60,0xC0,0xC0,0x00,0x00,0x00,0x00}},
- { 0x0030, 0x00, {0x00,0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0xD6,0xD6,0xC6,0xC6,0xC6,0x6C,0x38,0x00,0x00,0x00,0x00}},
- { 0x0031, 0x00, {0x00,0x00,0x00,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00}},
- { 0x0032, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0x06,0x06,0x06,0x0C,0x18,0x30,0x60,0xC0,0xC2,0xFE,0x00,0x00,0x00,0x00}},
- { 0x0033, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0x06,0x06,0x06,0x3C,0x06,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0034, 0x00, {0x00,0x00,0x00,0x1C,0x1C,0x3C,0x3C,0x6C,0x6C,0xCC,0xFE,0x0C,0x0C,0x0C,0x1E,0x00,0x00,0x00,0x00}},
- { 0x0035, 0x00, {0x00,0x00,0x00,0xFE,0xC0,0xC0,0xC0,0xC0,0xFC,0x06,0x06,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0036, 0x00, {0x00,0x00,0x00,0x3C,0x60,0xC0,0xC0,0xC0,0xFC,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0037, 0x00, {0x00,0x00,0x00,0xFE,0xC6,0x06,0x06,0x06,0x0C,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x0038, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0039, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x06,0x06,0x06,0x0C,0x78,0x00,0x00,0x00,0x00}},
- { 0x003a, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00}},
- { 0x003b, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00}},
- { 0x003c, 0x00, {0x00,0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00}},
- { 0x003d, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x003e, 0x00, {0x00,0x00,0x00,0x00,0xC0,0x60,0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x60,0xC0,0x00,0x00,0x00,0x00}},
- { 0x003f, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0xC6,0x0C,0x0C,0x18,0x18,0x18,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x0040, 0x00, {0x00,0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xDE,0xDE,0xDE,0xDC,0xC0,0xC0,0x7E,0x00,0x00,0x00,0x00}},
+ { 0x0020, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0021, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0022, 0x00, { 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0023, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0024, 0x00, { 0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C, 0x06, 0xC6, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00 }
+ },
+ { 0x0025, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0026, 0x00, { 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x76, 0xDC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0027, 0x00, { 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0028, 0x00, { 0x00, 0x00, 0x00, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0029, 0x00, { 0x00, 0x00, 0x00, 0xC0, 0x60, 0x60, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x002a, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x38, 0xFE, 0x38, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x002b, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x002c, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x002d, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x002e, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x002f, 0x00, { 0x00, 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0030, 0x00, { 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0031, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0032, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xC2, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0033, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x06, 0x3C, 0x06, 0x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0034, 0x00, { 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x3C, 0x3C, 0x6C, 0x6C, 0xCC, 0xFE, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0035, 0x00, { 0x00, 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0x06, 0x06, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0036, 0x00, { 0x00, 0x00, 0x00, 0x3C, 0x60, 0xC0, 0xC0, 0xC0, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0037, 0x00, { 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0038, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0039, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x003a, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x003b, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x003c, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x003d, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x003e, 0x00, { 0x00, 0x00, 0x00, 0x00, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x003f, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0040, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xDE, 0xDE, 0xDE, 0xDC, 0xC0, 0xC0, 0x7E, 0x00, 0x00, 0x00, 0x00 }
+ },
- { 0x0041, 0x00, {0x00,0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
+ { 0x0041, 0x00, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
- { 0x0042, 0x00, {0x00,0x00,0x00,0xFC,0x66,0x66,0x66,0x66,0x7C,0x66,0x66,0x66,0x66,0x66,0xFC,0x00,0x00,0x00,0x00}},
- { 0x0043, 0x00, {0x00,0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x00,0x00,0x00,0x00}},
- { 0x0044, 0x00, {0x00,0x00,0x00,0xF8,0x6C,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x6C,0xF8,0x00,0x00,0x00,0x00}},
- { 0x0045, 0x00, {0x00,0x00,0x00,0xFE,0x66,0x62,0x60,0x68,0x78,0x68,0x60,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00}},
- { 0x0046, 0x00, {0x00,0x00,0x00,0xFE,0x66,0x62,0x60,0x64,0x7C,0x64,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00}},
- { 0x0047, 0x00, {0x00,0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xDE,0xC6,0xC6,0xC6,0x66,0x3C,0x00,0x00,0x00,0x00}},
- { 0x0048, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x0049, 0x00, {0x00,0x00,0x00,0xFC,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xFC,0x00,0x00,0x00,0x00}},
- { 0x004a, 0x00, {0x00,0x00,0x00,0x1E,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00,0x00,0x00,0x00}},
- { 0x004b, 0x00, {0x00,0x00,0x00,0xE6,0x66,0x6C,0x6C,0x78,0x70,0x78,0x6C,0x6C,0x66,0x66,0xE6,0x00,0x00,0x00,0x00}},
- { 0x004c, 0x00, {0x00,0x00,0x00,0xF0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00}},
- { 0x004d, 0x00, {0x00,0x00,0x00,0xC6,0xEE,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x004e, 0x00, {0x00,0x00,0x00,0xC6,0xE6,0xF6,0xF6,0xF6,0xDE,0xCE,0xCE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x004f, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0050, 0x00, {0x00,0x00,0x00,0xFC,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00}},
- { 0x0051, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0x7C,0x1C,0x0E,0x00,0x00}},
- { 0x0052, 0x00, {0x00,0x00,0x00,0xFC,0x66,0x66,0x66,0x66,0x7C,0x78,0x6C,0x6C,0x66,0x66,0xE6,0x00,0x00,0x00,0x00}},
- { 0x0053, 0x00, {0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x60,0x38,0x0C,0x06,0x06,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0054, 0x00, {0x00,0x00,0x00,0xFC,0xFC,0xB4,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00}},
- { 0x0055, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0056, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x10,0x00,0x00,0x00,0x00}},
- { 0x0057, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xD6,0xD6,0xD6,0xFE,0x6C,0x6C,0x00,0x00,0x00,0x00}},
- { 0x0058, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0xC6,0x6C,0x6C,0x38,0x6C,0x6C,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x0059, 0x00, {0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00}},
- { 0x005a, 0x00, {0x00,0x00,0x00,0xFE,0xC6,0x86,0x0C,0x0C,0x18,0x30,0x60,0xC0,0xC2,0xC6,0xFE,0x00,0x00,0x00,0x00}},
- { 0x005b, 0x00, {0x00,0x00,0x00,0x1E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1E,0x00,0x00,0x00,0x00}},
- { 0x005c, 0x00, {0x00,0x00,0x00,0xC0,0xC0,0x60,0x60,0x30,0x30,0x18,0x18,0x0C,0x0C,0x06,0x06,0x00,0x00,0x00,0x00}},
- { 0x005d, 0x00, {0x00,0x00,0x00,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0x00,0x00,0x00,0x00}},
- { 0x005e, 0x00, {0x00,0x00,0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x005f, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00}},
- { 0x0060, 0x00, {0x00,0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x0061, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x0062, 0x00, {0x00,0x00,0x00,0xE0,0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0063, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC0,0xC0,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0064, 0x00, {0x00,0x00,0x00,0x1C,0x0C,0x0C,0x0C,0x3C,0x6C,0xCC,0xCC,0xCC,0xCC,0xCC,0x7E,0x00,0x00,0x00,0x00}},
- { 0x0065, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0066, 0x00, {0x00,0x00,0x00,0x1E,0x33,0x30,0x30,0x30,0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00}},
- { 0x0067, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0xCC,0x78,0x00}},
- { 0x0068, 0x00, {0x00,0x00,0x00,0xE0,0x60,0x60,0x60,0x7C,0x76,0x66,0x66,0x66,0x66,0x66,0xE6,0x00,0x00,0x00,0x00}},
- { 0x0069, 0x00, {0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x006a, 0x00, {0x00,0x00,0x00,0x0C,0x0C,0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x6C,0x38,0x00}},
- { 0x006b, 0x00, {0x00,0x00,0x00,0xE0,0x60,0x60,0x66,0x6C,0x78,0x70,0x78,0x6C,0x6C,0x66,0xE6,0x00,0x00,0x00,0x00}},
- { 0x006c, 0x00, {0x00,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x006d, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0xEE,0xFE,0xD6,0xD6,0xD6,0xD6,0xD6,0x00,0x00,0x00,0x00}},
- { 0x006e, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00}},
- { 0x006f, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0070, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00}},
- { 0x0071, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x7C,0x0C,0x0C,0x1E,0x00}},
- { 0x0072, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDC,0x66,0x60,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00}},
- { 0x0073, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC0,0x7C,0x06,0x06,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x0074, 0x00, {0x00,0x00,0x00,0x10,0x30,0x30,0x30,0xFC,0x30,0x30,0x30,0x30,0x30,0x36,0x1C,0x00,0x00,0x00,0x00}},
- { 0x0075, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x0076, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00,0x00,0x00,0x00}},
- { 0x0077, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xC6,0xD6,0xD6,0xFE,0xEE,0x6C,0x00,0x00,0x00,0x00}},
- { 0x0078, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x6C,0x6C,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x0079, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0xF8,0x00}},
- { 0x007a, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x86,0x0C,0x18,0x30,0x60,0xC0,0xFE,0x00,0x00,0x00,0x00}},
- { 0x007b, 0x00, {0x00,0x00,0x00,0x0E,0x18,0x18,0x18,0x18,0x30,0x18,0x18,0x18,0x18,0x18,0x0E,0x00,0x00,0x00,0x00}},
- { 0x007c, 0x00, {0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x007d, 0x00, {0x00,0x00,0x00,0xE0,0x30,0x30,0x30,0x30,0x18,0x30,0x30,0x30,0x30,0x30,0xE0,0x00,0x00,0x00,0x00}},
- { 0x007e, 0x00, {0x00,0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
+ { 0x0042, 0x00, { 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0043, 0x00, { 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0044, 0x00, { 0x00, 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0045, 0x00, { 0x00, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0046, 0x00, { 0x00, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x64, 0x7C, 0x64, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0047, 0x00, { 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xDE, 0xC6, 0xC6, 0xC6, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0048, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0049, 0x00, { 0x00, 0x00, 0x00, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x004a, 0x00, { 0x00, 0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x004b, 0x00, { 0x00, 0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x004c, 0x00, { 0x00, 0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x004d, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xEE, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x004e, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xF6, 0xF6, 0xDE, 0xCE, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x004f, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0050, 0x00, { 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0051, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0x7C, 0x1C, 0x0E, 0x00, 0x00 }
+ },
+ { 0x0052, 0x00, { 0x00, 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0053, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x60, 0x38, 0x0C, 0x06, 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0054, 0x00, { 0x00, 0x00, 0x00, 0xFC, 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0055, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0056, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0057, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xD6, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0058, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x6C, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0059, 0x00, { 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x005a, 0x00, { 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x005b, 0x00, { 0x00, 0x00, 0x00, 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x005c, 0x00, { 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x005d, 0x00, { 0x00, 0x00, 0x00, 0xF0, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x005e, 0x00, { 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x005f, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0060, 0x00, { 0x00, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0061, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0062, 0x00, { 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0063, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0064, 0x00, { 0x00, 0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7E, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0065, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0066, 0x00, { 0x00, 0x00, 0x00, 0x1E, 0x33, 0x30, 0x30, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0067, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00 }
+ },
+ { 0x0068, 0x00, { 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x60, 0x7C, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0069, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x006a, 0x00, { 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x6C, 0x38, 0x00 }
+ },
+ { 0x006b, 0x00, { 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x006c, 0x00, { 0x00, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x006d, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xEE, 0xFE, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x006e, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x006f, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0070, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00 }
+ },
+ { 0x0071, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00 }
+ },
+ { 0x0072, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x60, 0x60, 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0073, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x7C, 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0074, 0x00, { 0x00, 0x00, 0x00, 0x10, 0x30, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0075, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0076, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0077, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6, 0xFE, 0xEE, 0x6C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0078, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x38, 0x6C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x0079, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00 }
+ },
+ { 0x007a, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x86, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x007b, 0x00, { 0x00, 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x30, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x007c, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x007d, 0x00, { 0x00, 0x00, 0x00, 0xE0, 0x30, 0x30, 0x30, 0x30, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0xE0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x007e, 0x00, { 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
- { 0x00a0, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00a1, 0x00, {0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x3C,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00}},
- { 0x00a2, 0x00, {0x00,0x00,0x00,0x00,0x18,0x18,0x7C,0xC6,0xC0,0xC0,0xC0,0xC6,0x7C,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x00a3, 0x00, {0x00,0x00,0x00,0x38,0x6C,0x64,0x60,0x60,0xF0,0x60,0x60,0x60,0x60,0xE6,0xFC,0x00,0x00,0x00,0x00}},
- { 0x00a4, 0x00, {0x00,0x00,0x18,0x00,0x00,0x00,0xC6,0x7C,0xC6,0xC6,0xC6,0xC6,0x7C,0xC6,0x00,0x00,0x00,0x00,0x00}},
- { 0x00a5, 0x00, {0x00,0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18,0x7E,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x00a6, 0x00, {0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00}},
- { 0x00a7, 0x00, {0x00,0x00,0x18,0x7C,0xC6,0x60,0x38,0x6C,0xC6,0xC6,0x6C,0x38,0x0C,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00a8, 0x00, {0x00,0x00,0x00,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00a9, 0x00, {0x00,0x00,0x00,0x00,0x7C,0x82,0x9A,0xA2,0xA2,0xA2,0x9A,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00aa, 0x00, {0x00,0x00,0x00,0x00,0x3C,0x6C,0x6C,0x6C,0x3E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00ab, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x6C,0xD8,0x6C,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00ac, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00ad, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00ae, 0x00, {0x00,0x00,0x00,0x00,0x7C,0x82,0xB2,0xAA,0xAA,0xB2,0xAA,0xAA,0x82,0x7C,0x00,0x00,0x00,0x00,0x00}},
- { 0x00af, 0x00, {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b0, 0x00, {0x00,0x00,0x00,0x38,0x6C,0x6C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b1, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b2, 0x00, {0x00,0x00,0x00,0x3C,0x66,0x0C,0x18,0x32,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b3, 0x00, {0x00,0x00,0x00,0x7C,0x06,0x3C,0x06,0x06,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b4, 0x00, {0x00,0x00,0x00,0x0C,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b5, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xC0,0x00}},
- { 0x00b6, 0x00, {0x00,0x00,0x00,0x7F,0xDB,0xDB,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x00,0x00,0x00,0x00}},
- { 0x00b7, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00b8, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0x78,0x00,0x00,0x00}},
- { 0x00b9, 0x00, {0x00,0x00,0x00,0x18,0x38,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00ba, 0x00, {0x00,0x00,0x00,0x00,0x38,0x6C,0x6C,0x6C,0x38,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00bb, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD8,0x6C,0x36,0x6C,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00bc, 0x00, {0x00,0x00,0x00,0x60,0xE0,0x62,0x66,0x6C,0x18,0x30,0x66,0xCE,0x9A,0x3F,0x06,0x06,0x00,0x00,0x00}},
- { 0x00bd, 0x00, {0x00,0x00,0x00,0x60,0xE0,0x62,0x66,0x6C,0x18,0x30,0x60,0xDC,0x86,0x0C,0x18,0x3E,0x00,0x00,0x00}},
- { 0x00be, 0x00, {0x00,0x00,0x00,0xE0,0x30,0x62,0x36,0xEC,0x18,0x30,0x66,0xCE,0x9A,0x3F,0x06,0x06,0x00,0x00,0x00}},
- { 0x00bf, 0x00, {0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x60,0x60,0xC0,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00c0, 0x00, {0x60,0x30,0x18,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00c1, 0x00, {0x18,0x30,0x60,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00c2, 0x00, {0x10,0x38,0x6C,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00c3, 0x00, {0x76,0xDC,0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00c4, 0x00, {0xCC,0xCC,0x00,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00c5, 0x00, {0x38,0x6C,0x38,0x00,0x10,0x38,0x6C,0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00c6, 0x00, {0x00,0x00,0x00,0x00,0x3E,0x6C,0xCC,0xCC,0xCC,0xFE,0xCC,0xCC,0xCC,0xCC,0xCE,0x00,0x00,0x00,0x00}},
- { 0x00c7, 0x00, {0x00,0x00,0x00,0x3C,0x66,0xC2,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC2,0x66,0x3C,0x18,0x70,0x00,0x00}},
- { 0x00c8, 0x00, {0x60,0x30,0x18,0x00,0xFE,0x66,0x62,0x60,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00}},
- { 0x00c9, 0x00, {0x18,0x30,0x60,0x00,0xFE,0x66,0x62,0x60,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00}},
- { 0x00ca, 0x00, {0x10,0x38,0x6C,0x00,0xFE,0x66,0x62,0x60,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00}},
- { 0x00cb, 0x00, {0xCC,0xCC,0x00,0x00,0xFE,0x66,0x62,0x60,0x68,0x78,0x68,0x60,0x62,0x66,0xFE,0x00,0x00,0x00,0x00}},
- { 0x00cc, 0x00, {0x60,0x30,0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00cd, 0x00, {0x18,0x30,0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00ce, 0x00, {0x10,0x38,0x6C,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00cf, 0x00, {0xCC,0xCC,0x00,0x00,0x3C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00d0, 0x00, {0x00,0x00,0x00,0xF8,0x6C,0x66,0x66,0x66,0xF6,0x66,0x66,0x66,0x66,0x6C,0xF8,0x00,0x00,0x00,0x00}},
- { 0x00d1, 0x00, {0x76,0xDC,0x00,0x00,0xC6,0xE6,0xE6,0xF6,0xF6,0xDE,0xDE,0xCE,0xCE,0xC6,0xC6,0x00,0x00,0x00,0x00}},
- { 0x00d2, 0x00, {0x60,0x30,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00d3, 0x00, {0x18,0x30,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00d4, 0x00, {0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00d5, 0x00, {0x76,0xDC,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00d6, 0x00, {0xCC,0xCC,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00d7, 0x00, {0x10,0x28,0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x6C,0x6C,0xC6,0x00,0x00,0x00,0x00,0x00}},
- { 0x00d8, 0x00, {0x00,0x00,0x00,0x7C,0xCE,0xCE,0xDE,0xD6,0xD6,0xD6,0xD6,0xF6,0xE6,0xE6,0x7C,0x40,0x00,0x00,0x00}},
- { 0x00d9, 0x00, {0x60,0x30,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00da, 0x00, {0x18,0x30,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00db, 0x00, {0x10,0x38,0x6C,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00dc, 0x00, {0xCC,0xCC,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00dd, 0x00, {0x18,0x30,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00de, 0x00, {0x00,0x00,0x10,0x00,0xF0,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x7C,0x60,0xF0,0x00,0x00,0x00,0x00}},
- { 0x00df, 0x00, {0x00,0x00,0x00,0x78,0xCC,0xCC,0xCC,0xCC,0xD8,0xCC,0xC6,0xC6,0xC6,0xC6,0xCC,0x00,0x00,0x00,0x00}},
- { 0x00e0, 0x00, {0x00,0x30,0x30,0x60,0x30,0x18,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00e1, 0x00, {0x00,0x00,0x00,0x18,0x30,0x60,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00e2, 0x00, {0x00,0x00,0x00,0x10,0x38,0x6C,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00e3, 0x00, {0x00,0x00,0x00,0x00,0x76,0xDC,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00e4, 0x00, {0x00,0x00,0x00,0xCC,0xCC,0x00,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00e5, 0x00, {0x00,0x00,0x00,0x38,0x6C,0x38,0x00,0x78,0x0C,0x0C,0x7C,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00e6, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x36,0x36,0x7E,0xD8,0xD8,0xD8,0x6E,0x00,0x00,0x00,0x00}},
- { 0x00e7, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xC6,0xC0,0xC0,0xC0,0xC0,0xC6,0x7C,0x18,0x70,0x00,0x00}},
- { 0x00e8, 0x00, {0x00,0x00,0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00e9, 0x00, {0x00,0x00,0x00,0x0C,0x18,0x30,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00ea, 0x00, {0x00,0x00,0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00eb, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xFE,0xC0,0xC0,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00ec, 0x00, {0x00,0x00,0x00,0x60,0x30,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00ed, 0x00, {0x00,0x00,0x00,0x0C,0x18,0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00ee, 0x00, {0x00,0x00,0x00,0x18,0x3C,0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00ef, 0x00, {0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00f0, 0x00, {0x00,0x00,0x00,0x34,0x18,0x2C,0x0C,0x06,0x3E,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00}},
- { 0x00f1, 0x00, {0x00,0x00,0x00,0x00,0x76,0xDC,0x00,0xDC,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00}},
- { 0x00f2, 0x00, {0x00,0x00,0x00,0x60,0x30,0x18,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00f3, 0x00, {0x00,0x00,0x00,0x18,0x30,0x60,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00f4, 0x00, {0x00,0x00,0x00,0x10,0x38,0x6C,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00f5, 0x00, {0x00,0x00,0x00,0x00,0x76,0xDC,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00f6, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00f7, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x7E,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { 0x00f8, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xCE,0xDE,0xD6,0xF6,0xE6,0xC6,0x7C,0x00,0x00,0x00,0x00}},
- { 0x00f9, 0x00, {0x00,0x00,0x00,0x60,0x30,0x18,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00fa, 0x00, {0x00,0x00,0x00,0x18,0x30,0x60,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00fb, 0x00, {0x00,0x00,0x00,0x30,0x78,0xCC,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00fc, 0x00, {0x00,0x00,0x00,0xCC,0xCC,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x76,0x00,0x00,0x00,0x00}},
- { 0x00fd, 0x00, {0x00,0x00,0x00,0x0C,0x18,0x30,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0xF8,0x00}},
- { 0x00fe, 0x00, {0x00,0x00,0x00,0xE0,0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00}},
- { 0x00ff, 0x00, {0x00,0x00,0x00,0xC6,0xC6,0x00,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00}},
+ { 0x00a0, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a1, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a2, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a3, 0x00, { 0x00, 0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0x60, 0xF0, 0x60, 0x60, 0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a4, 0x00, { 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xC6, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a5, 0x00, { 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a6, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a7, 0x00, { 0x00, 0x00, 0x18, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a8, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00a9, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x7C, 0x82, 0x9A, 0xA2, 0xA2, 0xA2, 0x9A, 0x82, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00aa, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x3C, 0x6C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ab, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6C, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ac, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ad, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ae, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x7C, 0x82, 0xB2, 0xAA, 0xAA, 0xB2, 0xAA, 0xAA, 0x82, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00af, 0x00, { 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b0, 0x00, { 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b1, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b2, 0x00, { 0x00, 0x00, 0x00, 0x3C, 0x66, 0x0C, 0x18, 0x32, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b3, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0x06, 0x3C, 0x06, 0x06, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b4, 0x00, { 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b5, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00 }
+ },
+ { 0x00b6, 0x00, { 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b7, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b8, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x78, 0x00, 0x00, 0x00 }
+ },
+ { 0x00b9, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ba, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00bb, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00bc, 0x00, { 0x00, 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0x6C, 0x18, 0x30, 0x66, 0xCE, 0x9A, 0x3F, 0x06, 0x06, 0x00, 0x00, 0x00 }
+ },
+ { 0x00bd, 0x00, { 0x00, 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0x6C, 0x18, 0x30, 0x60, 0xDC, 0x86, 0x0C, 0x18, 0x3E, 0x00, 0x00, 0x00 }
+ },
+ { 0x00be, 0x00, { 0x00, 0x00, 0x00, 0xE0, 0x30, 0x62, 0x36, 0xEC, 0x18, 0x30, 0x66, 0xCE, 0x9A, 0x3F, 0x06, 0x06, 0x00, 0x00, 0x00 }
+ },
+ { 0x00bf, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0x60, 0xC0, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c0, 0x00, { 0x60, 0x30, 0x18, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c1, 0x00, { 0x18, 0x30, 0x60, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c2, 0x00, { 0x10, 0x38, 0x6C, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c3, 0x00, { 0x76, 0xDC, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c4, 0x00, { 0xCC, 0xCC, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c5, 0x00, { 0x38, 0x6C, 0x38, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c6, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xCC, 0xFE, 0xCC, 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c7, 0x00, { 0x00, 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC2, 0x66, 0x3C, 0x18, 0x70, 0x00, 0x00 }
+ },
+ { 0x00c8, 0x00, { 0x60, 0x30, 0x18, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00c9, 0x00, { 0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ca, 0x00, { 0x10, 0x38, 0x6C, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00cb, 0x00, { 0xCC, 0xCC, 0x00, 0x00, 0xFE, 0x66, 0x62, 0x60, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00cc, 0x00, { 0x60, 0x30, 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00cd, 0x00, { 0x18, 0x30, 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ce, 0x00, { 0x10, 0x38, 0x6C, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00cf, 0x00, { 0xCC, 0xCC, 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d0, 0x00, { 0x00, 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0xF6, 0x66, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d1, 0x00, { 0x76, 0xDC, 0x00, 0x00, 0xC6, 0xE6, 0xE6, 0xF6, 0xF6, 0xDE, 0xDE, 0xCE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d2, 0x00, { 0x60, 0x30, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d3, 0x00, { 0x18, 0x30, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d4, 0x00, { 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d5, 0x00, { 0x76, 0xDC, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d6, 0x00, { 0xCC, 0xCC, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d7, 0x00, { 0x10, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x38, 0x6C, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d8, 0x00, { 0x00, 0x00, 0x00, 0x7C, 0xCE, 0xCE, 0xDE, 0xD6, 0xD6, 0xD6, 0xD6, 0xF6, 0xE6, 0xE6, 0x7C, 0x40, 0x00, 0x00, 0x00 }
+ },
+ { 0x00d9, 0x00, { 0x60, 0x30, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00da, 0x00, { 0x18, 0x30, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00db, 0x00, { 0x10, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00dc, 0x00, { 0xCC, 0xCC, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00dd, 0x00, { 0x18, 0x30, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00de, 0x00, { 0x00, 0x00, 0x10, 0x00, 0xF0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00df, 0x00, { 0x00, 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xD8, 0xCC, 0xC6, 0xC6, 0xC6, 0xC6, 0xCC, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e0, 0x00, { 0x00, 0x30, 0x30, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e1, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e2, 0x00, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e3, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e4, 0x00, { 0x00, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e5, 0x00, { 0x00, 0x00, 0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e6, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0x36, 0x36, 0x7E, 0xD8, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e7, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, 0xC6, 0x7C, 0x18, 0x70, 0x00, 0x00 }
+ },
+ { 0x00e8, 0x00, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00e9, 0x00, { 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ea, 0x00, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00eb, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xFE, 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ec, 0x00, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ed, 0x00, { 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ee, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00ef, 0x00, { 0x00, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f0, 0x00, { 0x00, 0x00, 0x00, 0x34, 0x18, 0x2C, 0x0C, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f1, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f2, 0x00, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f3, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f4, 0x00, { 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f5, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f6, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f7, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f8, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xCE, 0xDE, 0xD6, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00f9, 0x00, { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00fa, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00fb, 0x00, { 0x00, 0x00, 0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00fc, 0x00, { 0x00, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { 0x00fd, 0x00, { 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00 }
+ },
+ { 0x00fe, 0x00, { 0x00, 0x00, 0x00, 0xE0, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00 }
+ },
+ { 0x00ff, 0x00, { 0x00, 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00 }
+ },
- { (CHAR16)BOXDRAW_HORIZONTAL, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_VERTICAL, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOWN_RIGHT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOWN_LEFT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_UP_RIGHT, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_UP_LEFT, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_VERTICAL_RIGHT, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_VERTICAL_LEFT, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOWN_HORIZONTAL, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_UP_HORIZONTAL, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_VERTICAL_HORIZONTAL, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOUBLE_HORIZONTAL, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_DOUBLE_VERTICAL, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOWN_RIGHT_DOUBLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOWN_DOUBLE_RIGHT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOUBLE_DOWN_RIGHT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOWN_LEFT_DOUBLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOWN_DOUBLE_LEFT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOUBLE_DOWN_LEFT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_UP_RIGHT_DOUBLE, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_UP_DOUBLE_RIGHT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_DOUBLE_UP_RIGHT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_UP_LEFT_DOUBLE, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_UP_DOUBLE_LEFT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_DOUBLE_UP_LEFT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_VERTICAL_RIGHT_DOUBLE, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_VERTICAL_DOUBLE_RIGHT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOUBLE_VERTICAL_RIGHT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_VERTICAL_LEFT_DOUBLE, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_VERTICAL_DOUBLE_LEFT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOUBLE_VERTICAL_LEFT, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF6,0x06,0xF6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOWN_HORIZONTAL_DOUBLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_DOWN_DOUBLE_HORIZONTAL, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOUBLE_DOWN_HORIZONTAL, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_UP_HORIZONTAL_DOUBLE, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_UP_DOUBLE_HORIZONTAL, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_DOUBLE_UP_HORIZONTAL, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE, 0x00, {0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18}},
- { (CHAR16)BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xFF,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
- { (CHAR16)BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL, 0x00, {0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xF7,0x00,0xF7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36}},
+ { (CHAR16)BOXDRAW_HORIZONTAL, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_RIGHT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_LEFT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_UP_RIGHT, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_UP_LEFT, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_RIGHT, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_LEFT, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_HORIZONTAL, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_UP_HORIZONTAL, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_HORIZONTAL, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_HORIZONTAL, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_VERTICAL, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_RIGHT_DOUBLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_DOUBLE_RIGHT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_DOWN_RIGHT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_LEFT_DOUBLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_DOUBLE_LEFT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_DOWN_LEFT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_UP_RIGHT_DOUBLE, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_UP_DOUBLE_RIGHT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_UP_RIGHT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_UP_LEFT_DOUBLE, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_UP_DOUBLE_LEFT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_UP_LEFT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_RIGHT_DOUBLE, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_DOUBLE_RIGHT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_VERTICAL_RIGHT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_LEFT_DOUBLE, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_DOUBLE_LEFT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_VERTICAL_LEFT, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_HORIZONTAL_DOUBLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_DOWN_DOUBLE_HORIZONTAL, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_DOWN_HORIZONTAL, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_UP_HORIZONTAL_DOUBLE, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_UP_DOUBLE_HORIZONTAL, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_UP_HORIZONTAL, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE, 0x00, { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }
+ },
+ { (CHAR16)BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
+ { (CHAR16)BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL, 0x00, { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }
+ },
- { (CHAR16)BLOCKELEMENT_FULL_BLOCK, 0x00, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}},
- { (CHAR16)BLOCKELEMENT_LIGHT_SHADE, 0x00, {0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22}},
+ { (CHAR16)BLOCKELEMENT_FULL_BLOCK, 0x00, { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+ },
+ { (CHAR16)BLOCKELEMENT_LIGHT_SHADE, 0x00, { 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22 }
+ },
- { (CHAR16)GEOMETRICSHAPE_RIGHT_TRIANGLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF8,0xFE,0xF8,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)GEOMETRICSHAPE_LEFT_TRIANGLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0x06,0x0E,0x1E,0x3E,0xFE,0x3E,0x1E,0x0E,0x06,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)GEOMETRICSHAPE_UP_TRIANGLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x7C,0x7C,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)GEOMETRICSHAPE_DOWN_TRIANGLE, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x7C,0x7C,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00}},
+ { (CHAR16)GEOMETRICSHAPE_RIGHT_TRIANGLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)GEOMETRICSHAPE_LEFT_TRIANGLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1E, 0x3E, 0xFE, 0x3E, 0x1E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)GEOMETRICSHAPE_UP_TRIANGLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C, 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)GEOMETRICSHAPE_DOWN_TRIANGLE, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
- { (CHAR16)ARROW_UP, 0x00, {0x00,0x00,0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)ARROW_DOWN, 0x00, {0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)ARROW_LEFT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x60,0xFE,0xFE,0x60,0x60,0x20,0x00,0x00,0x00,0x00,0x00,0x00}},
- { (CHAR16)ARROW_RIGHT, 0x00, {0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x0C,0xFE,0xFE,0x0C,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00}},
+ { (CHAR16)ARROW_UP, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)ARROW_DOWN, 0x00, { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)ARROW_LEFT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x60, 0xFE, 0xFE, 0x60, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
+ { (CHAR16)ARROW_RIGHT, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0xFE, 0xFE, 0x0C, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ },
- { 0x0000, 0x00, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} //EOL
+ { 0x0000, 0x00, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+ } // EOL
};
// Get available Unicode glyphs narrow fonts(8*19 pixels) size.
-UINT32 mNarrowFontSize = sizeof (gUsStdNarrowGlyphData);
-
+UINT32 mNarrowFontSize = sizeof (gUsStdNarrowGlyphData);
diff --git a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/ComponentName.c b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/ComponentName.c
index 7b7f568..f6ec1fc 100644
--- a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/ComponentName.c
@@ -10,14 +10,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <PiDxe.h>
#include <Library/UefiLib.h>
-extern EFI_COMPONENT_NAME_PROTOCOL mGraphicsOutputComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL mGraphicsOutputComponentName2;
+extern EFI_COMPONENT_NAME_PROTOCOL mGraphicsOutputComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL mGraphicsOutputComponentName2;
//
// Driver name table for GraphicsOutput module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mGraphicsOutputDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mGraphicsOutputDriverNameTable[] = {
{
"eng;en",
L"Generic Graphics Output Driver"
@@ -80,7 +80,7 @@ GraphicsOutputComponentNameGetDriverName (
This->SupportedLanguages,
mGraphicsOutputDriverNameTable,
DriverName,
- (BOOLEAN) (This == &mGraphicsOutputComponentName)
+ (BOOLEAN)(This == &mGraphicsOutputComponentName)
);
}
@@ -155,11 +155,11 @@ GraphicsOutputComponentNameGetDriverName (
EFI_STATUS
EFIAPI
GraphicsOutputComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
@@ -177,8 +177,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL mGraphicsOutputCompon
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL mGraphicsOutputComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) GraphicsOutputComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) GraphicsOutputComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL mGraphicsOutputComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)GraphicsOutputComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)GraphicsOutputComponentNameGetControllerName,
"en"
};
diff --git a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c
index 84172c1..2259d6d 100644
--- a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c
+++ b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c
@@ -8,7 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "GraphicsOutput.h"
-CONST ACPI_ADR_DEVICE_PATH mGraphicsOutputAdrNode = {
+CONST ACPI_ADR_DEVICE_PATH mGraphicsOutputAdrNode = {
{
ACPI_DEVICE_PATH,
ACPI_ADR_DP,
@@ -17,7 +17,7 @@ CONST ACPI_ADR_DEVICE_PATH mGraphicsOutputAdrNode = {
ACPI_DISPLAY_ADR (1, 0, 0, 1, 0, ACPI_ADR_DISPLAY_TYPE_VGA, 0, 0)
};
-EFI_PEI_GRAPHICS_DEVICE_INFO_HOB mDefaultGraphicsDeviceInfo = {
+EFI_PEI_GRAPHICS_DEVICE_INFO_HOB mDefaultGraphicsDeviceInfo = {
MAX_UINT16, MAX_UINT16, MAX_UINT16, MAX_UINT16, MAX_UINT8, MAX_UINT8
};
@@ -25,7 +25,7 @@ EFI_PEI_GRAPHICS_DEVICE_INFO_HOB mDefaultGraphicsDeviceInfo = {
// The driver should only start on one graphics controller.
// So a global flag is used to remember that the driver is already started.
//
-BOOLEAN mDriverStarted = FALSE;
+BOOLEAN mDriverStarted = FALSE;
/**
Returns information for an available graphics mode that the graphics device
@@ -50,7 +50,7 @@ GraphicsOutputQueryMode (
OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info
)
{
- if (This == NULL || Info == NULL || SizeOfInfo == NULL || ModeNumber >= This->Mode->MaxMode) {
+ if ((This == NULL) || (Info == NULL) || (SizeOfInfo == NULL) || (ModeNumber >= This->Mode->MaxMode)) {
return EFI_INVALID_PARAMETER;
}
@@ -74,13 +74,13 @@ GraphicsOutputQueryMode (
EFI_STATUS
EFIAPI
GraphicsOutputSetMode (
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
- IN UINT32 ModeNumber
-)
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ IN UINT32 ModeNumber
+ )
{
- RETURN_STATUS Status;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black;
- GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
+ RETURN_STATUS Status;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black;
+ GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
if (ModeNumber >= This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
@@ -88,17 +88,19 @@ GraphicsOutputSetMode (
Private = GRAPHICS_OUTPUT_PRIVATE_FROM_THIS (This);
- Black.Blue = 0;
- Black.Green = 0;
- Black.Red = 0;
+ Black.Blue = 0;
+ Black.Green = 0;
+ Black.Red = 0;
Black.Reserved = 0;
Status = FrameBufferBlt (
Private->FrameBufferBltLibConfigure,
&Black,
EfiBltVideoFill,
- 0, 0,
- 0, 0,
+ 0,
+ 0,
+ 0,
+ 0,
This->Mode->Info->HorizontalResolution,
This->Mode->Info->VerticalResolution,
0
@@ -132,21 +134,21 @@ GraphicsOutputSetMode (
EFI_STATUS
EFIAPI
GraphicsOutputBlt (
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
- IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
- IN UINTN SourceX,
- IN UINTN SourceY,
- IN UINTN DestinationX,
- IN UINTN DestinationY,
- IN UINTN Width,
- IN UINTN Height,
- IN UINTN Delta OPTIONAL
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
+ IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
+ IN UINTN SourceX,
+ IN UINTN SourceY,
+ IN UINTN DestinationX,
+ IN UINTN DestinationY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN UINTN Delta OPTIONAL
)
{
- RETURN_STATUS Status;
- EFI_TPL Tpl;
- GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
+ RETURN_STATUS Status;
+ EFI_TPL Tpl;
+ GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
Private = GRAPHICS_OUTPUT_PRIVATE_FROM_THIS (This);
//
@@ -154,13 +156,17 @@ GraphicsOutputBlt (
// We would not want a timer based event (Cursor, ...) to come in while we are
// doing this operation.
//
- Tpl = gBS->RaiseTPL (TPL_NOTIFY);
+ Tpl = gBS->RaiseTPL (TPL_NOTIFY);
Status = FrameBufferBlt (
Private->FrameBufferBltLibConfigure,
BltBuffer,
BltOperation,
- SourceX, SourceY,
- DestinationX, DestinationY, Width, Height,
+ SourceX,
+ SourceY,
+ DestinationX,
+ DestinationY,
+ Width,
+ Height,
Delta
);
gBS->RestoreTPL (Tpl);
@@ -168,7 +174,7 @@ GraphicsOutputBlt (
return RETURN_ERROR (Status) ? EFI_INVALID_PARAMETER : EFI_SUCCESS;
}
-CONST GRAPHICS_OUTPUT_PRIVATE_DATA mGraphicsOutputInstanceTemplate = {
+CONST GRAPHICS_OUTPUT_PRIVATE_DATA mGraphicsOutputInstanceTemplate = {
GRAPHICS_OUTPUT_PRIVATE_DATA_SIGNATURE, // Signature
NULL, // GraphicsOutputHandle
{
@@ -206,14 +212,14 @@ CONST GRAPHICS_OUTPUT_PRIVATE_DATA mGraphicsOutputInstanceTemplate = {
EFI_STATUS
EFIAPI
GraphicsOutputDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_PCI_IO_PROTOCOL *PciIo;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_STATUS Status;
+ EFI_PCI_IO_PROTOCOL *PciIo;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
//
// Since there is only one GraphicsInfo HOB, the driver only manages one video device.
@@ -228,7 +234,7 @@ GraphicsOutputDriverBindingSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiPciIoProtocolGuid,
- (VOID **) &PciIo,
+ (VOID **)&PciIo,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -236,9 +242,11 @@ GraphicsOutputDriverBindingSupported (
if (Status == EFI_ALREADY_STARTED) {
Status = EFI_SUCCESS;
}
+
if (EFI_ERROR (Status)) {
return Status;
}
+
gBS->CloseProtocol (
Controller,
&gEfiPciIoProtocolGuid,
@@ -252,7 +260,7 @@ GraphicsOutputDriverBindingSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath,
+ (VOID **)&DevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -260,9 +268,11 @@ GraphicsOutputDriverBindingSupported (
if (Status == EFI_ALREADY_STARTED) {
Status = EFI_SUCCESS;
}
+
if (EFI_ERROR (Status)) {
return Status;
}
+
gBS->CloseProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
@@ -272,7 +282,8 @@ GraphicsOutputDriverBindingSupported (
if ((RemainingDevicePath == NULL) ||
IsDevicePathEnd (RemainingDevicePath) ||
- CompareMem (RemainingDevicePath, &mGraphicsOutputAdrNode, sizeof (mGraphicsOutputAdrNode)) == 0) {
+ (CompareMem (RemainingDevicePath, &mGraphicsOutputAdrNode, sizeof (mGraphicsOutputAdrNode)) == 0))
+ {
return EFI_SUCCESS;
} else {
return EFI_INVALID_PARAMETER;
@@ -293,29 +304,29 @@ GraphicsOutputDriverBindingSupported (
EFI_STATUS
EFIAPI
GraphicsOutputDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- RETURN_STATUS ReturnStatus;
- GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
- EFI_PCI_IO_PROTOCOL *PciIo;
- EFI_DEVICE_PATH *PciDevicePath;
- PCI_TYPE00 Pci;
- UINT8 Index;
- EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Resources;
- VOID *HobStart;
- EFI_PEI_GRAPHICS_INFO_HOB *GraphicsInfo;
- EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *DeviceInfo;
- EFI_PHYSICAL_ADDRESS FrameBufferBase;
+ EFI_STATUS Status;
+ RETURN_STATUS ReturnStatus;
+ GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
+ EFI_PCI_IO_PROTOCOL *PciIo;
+ EFI_DEVICE_PATH *PciDevicePath;
+ PCI_TYPE00 Pci;
+ UINT8 Index;
+ EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Resources;
+ VOID *HobStart;
+ EFI_PEI_GRAPHICS_INFO_HOB *GraphicsInfo;
+ EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *DeviceInfo;
+ EFI_PHYSICAL_ADDRESS FrameBufferBase;
FrameBufferBase = 0;
HobStart = GetFirstGuidHob (&gEfiGraphicsInfoHobGuid);
ASSERT ((HobStart != NULL) && (GET_GUID_HOB_DATA_SIZE (HobStart) == sizeof (EFI_PEI_GRAPHICS_INFO_HOB)));
- GraphicsInfo = (EFI_PEI_GRAPHICS_INFO_HOB *) (GET_GUID_HOB_DATA (HobStart));
+ GraphicsInfo = (EFI_PEI_GRAPHICS_INFO_HOB *)(GET_GUID_HOB_DATA (HobStart));
HobStart = GetFirstGuidHob (&gEfiGraphicsDeviceInfoHobGuid);
if ((HobStart == NULL) || (GET_GUID_HOB_DATA_SIZE (HobStart) < sizeof (*DeviceInfo))) {
@@ -325,15 +336,21 @@ GraphicsOutputDriverBindingStart (
DeviceInfo = &mDefaultGraphicsDeviceInfo;
DEBUG ((DEBUG_INFO, "[%a]: GraphicsDeviceInfo HOB doesn't exist!\n", gEfiCallerBaseName));
} else {
- DeviceInfo = (EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *) (GET_GUID_HOB_DATA (HobStart));
- DEBUG ((DEBUG_INFO, "[%a]: GraphicsDeviceInfo HOB:\n"
- " VendorId = %04x, DeviceId = %04x,\n"
- " RevisionId = %02x, BarIndex = %x,\n"
- " SubsystemVendorId = %04x, SubsystemId = %04x\n",
- gEfiCallerBaseName,
- DeviceInfo->VendorId, DeviceInfo->DeviceId,
- DeviceInfo->RevisionId, DeviceInfo->BarIndex,
- DeviceInfo->SubsystemVendorId, DeviceInfo->SubsystemId));
+ DeviceInfo = (EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *)(GET_GUID_HOB_DATA (HobStart));
+ DEBUG ((
+ DEBUG_INFO,
+ "[%a]: GraphicsDeviceInfo HOB:\n"
+ " VendorId = %04x, DeviceId = %04x,\n"
+ " RevisionId = %02x, BarIndex = %x,\n"
+ " SubsystemVendorId = %04x, SubsystemId = %04x\n",
+ gEfiCallerBaseName,
+ DeviceInfo->VendorId,
+ DeviceInfo->DeviceId,
+ DeviceInfo->RevisionId,
+ DeviceInfo->BarIndex,
+ DeviceInfo->SubsystemVendorId,
+ DeviceInfo->SubsystemId
+ ));
}
//
@@ -342,7 +359,7 @@ GraphicsOutputDriverBindingStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiPciIoProtocolGuid,
- (VOID **) &PciIo,
+ (VOID **)&PciIo,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -350,12 +367,13 @@ GraphicsOutputDriverBindingStart (
if (Status == EFI_ALREADY_STARTED) {
Status = EFI_SUCCESS;
}
+
ASSERT_EFI_ERROR (Status);
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
- (VOID **) &PciDevicePath,
+ (VOID **)&PciDevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -363,6 +381,7 @@ GraphicsOutputDriverBindingStart (
if (Status == EFI_ALREADY_STARTED) {
Status = EFI_SUCCESS;
}
+
ASSERT_EFI_ERROR (Status);
//
@@ -371,13 +390,14 @@ GraphicsOutputDriverBindingStart (
Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint8, 0, sizeof (Pci), &Pci);
if (!EFI_ERROR (Status)) {
if (!IS_PCI_DISPLAY (&Pci) || (
- ((DeviceInfo->VendorId != MAX_UINT16) && (DeviceInfo->VendorId != Pci.Hdr.VendorId)) ||
- ((DeviceInfo->DeviceId != MAX_UINT16) && (DeviceInfo->DeviceId != Pci.Hdr.DeviceId)) ||
- ((DeviceInfo->RevisionId != MAX_UINT8) && (DeviceInfo->RevisionId != Pci.Hdr.RevisionID)) ||
- ((DeviceInfo->SubsystemVendorId != MAX_UINT16) && (DeviceInfo->SubsystemVendorId != Pci.Device.SubsystemVendorID)) ||
- ((DeviceInfo->SubsystemId != MAX_UINT16) && (DeviceInfo->SubsystemId != Pci.Device.SubsystemID))
+ ((DeviceInfo->VendorId != MAX_UINT16) && (DeviceInfo->VendorId != Pci.Hdr.VendorId)) ||
+ ((DeviceInfo->DeviceId != MAX_UINT16) && (DeviceInfo->DeviceId != Pci.Hdr.DeviceId)) ||
+ ((DeviceInfo->RevisionId != MAX_UINT8) && (DeviceInfo->RevisionId != Pci.Hdr.RevisionID)) ||
+ ((DeviceInfo->SubsystemVendorId != MAX_UINT16) && (DeviceInfo->SubsystemVendorId != Pci.Device.SubsystemVendorID)) ||
+ ((DeviceInfo->SubsystemId != MAX_UINT16) && (DeviceInfo->SubsystemId != Pci.Device.SubsystemID))
+ )
)
- ) {
+ {
//
// It's not a video device, or device infomation doesn't match.
//
@@ -393,21 +413,30 @@ GraphicsOutputDriverBindingStart (
if ((DeviceInfo->BarIndex != MAX_UINT8) && (DeviceInfo->BarIndex != Index)) {
continue;
}
- Status = PciIo->GetBarAttributes (PciIo, Index, NULL, (VOID**) &Resources);
+
+ Status = PciIo->GetBarAttributes (PciIo, Index, NULL, (VOID **)&Resources);
if (!EFI_ERROR (Status)) {
- DEBUG ((DEBUG_INFO, "[%a]: BAR[%d]: Base = %lx, Length = %lx\n",
- gEfiCallerBaseName, Index, Resources->AddrRangeMin, Resources->AddrLen));
+ DEBUG ((
+ DEBUG_INFO,
+ "[%a]: BAR[%d]: Base = %lx, Length = %lx\n",
+ gEfiCallerBaseName,
+ Index,
+ Resources->AddrRangeMin,
+ Resources->AddrLen
+ ));
if ((Resources->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR) &&
- (Resources->Len == (UINT16) (sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3)) &&
+ (Resources->Len == (UINT16)(sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3)) &&
(Resources->ResType == ACPI_ADDRESS_SPACE_TYPE_MEM) &&
(Resources->AddrLen >= GraphicsInfo->FrameBufferSize)
- ) {
+ )
+ {
FrameBufferBase = Resources->AddrRangeMin;
DEBUG ((DEBUG_INFO, "[%a]: ... matched!\n", gEfiCallerBaseName));
break;
}
}
}
+
if (Index == MAX_PCI_BAR) {
Status = EFI_UNSUPPORTED;
}
@@ -430,7 +459,7 @@ GraphicsOutputDriverBindingStart (
Private->GraphicsOutputMode.FrameBufferBase = FrameBufferBase;
Private->GraphicsOutputMode.FrameBufferSize = GraphicsInfo->FrameBufferSize;
- Private->GraphicsOutputMode.Info = &GraphicsInfo->GraphicsMode;
+ Private->GraphicsOutputMode.Info = &GraphicsInfo->GraphicsMode;
//
// Fix up Mode pointer in GraphicsOutput
@@ -463,7 +492,7 @@ GraphicsOutputDriverBindingStart (
// Create the FrameBufferBltLib configuration.
//
ReturnStatus = FrameBufferBltConfigure (
- (VOID *) (UINTN) Private->GraphicsOutput.Mode->FrameBufferBase,
+ (VOID *)(UINTN)Private->GraphicsOutput.Mode->FrameBufferBase,
Private->GraphicsOutput.Mode->Info,
Private->FrameBufferBltLibConfigure,
&Private->FrameBufferBltLibConfigureSize
@@ -472,19 +501,20 @@ GraphicsOutputDriverBindingStart (
Private->FrameBufferBltLibConfigure = AllocatePool (Private->FrameBufferBltLibConfigureSize);
if (Private->FrameBufferBltLibConfigure != NULL) {
ReturnStatus = FrameBufferBltConfigure (
- (VOID *) (UINTN) Private->GraphicsOutput.Mode->FrameBufferBase,
+ (VOID *)(UINTN)Private->GraphicsOutput.Mode->FrameBufferBase,
Private->GraphicsOutput.Mode->Info,
Private->FrameBufferBltLibConfigure,
&Private->FrameBufferBltLibConfigureSize
);
}
}
+
if (RETURN_ERROR (ReturnStatus)) {
Status = EFI_OUT_OF_RESOURCES;
goto RestorePciAttributes;
}
- Private->DevicePath = AppendDevicePathNode (PciDevicePath, (EFI_DEVICE_PATH_PROTOCOL *) &mGraphicsOutputAdrNode);
+ Private->DevicePath = AppendDevicePathNode (PciDevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&mGraphicsOutputAdrNode);
if (Private->DevicePath == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto RestorePciAttributes;
@@ -492,8 +522,10 @@ GraphicsOutputDriverBindingStart (
Status = gBS->InstallMultipleProtocolInterfaces (
&Private->GraphicsOutputHandle,
- &gEfiGraphicsOutputProtocolGuid, &Private->GraphicsOutput,
- &gEfiDevicePathProtocolGuid, Private->DevicePath,
+ &gEfiGraphicsOutputProtocolGuid,
+ &Private->GraphicsOutput,
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
NULL
);
@@ -501,7 +533,7 @@ GraphicsOutputDriverBindingStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiPciIoProtocolGuid,
- (VOID **) &Private->PciIo,
+ (VOID **)&Private->PciIo,
This->DriverBindingHandle,
Private->GraphicsOutputHandle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -511,8 +543,10 @@ GraphicsOutputDriverBindingStart (
} else {
gBS->UninstallMultipleProtocolInterfaces (
Private->GraphicsOutputHandle,
- &gEfiGraphicsOutputProtocolGuid, &Private->GraphicsOutput,
- &gEfiDevicePathProtocolGuid, Private->DevicePath,
+ &gEfiGraphicsOutputProtocolGuid,
+ &Private->GraphicsOutput,
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
NULL
);
}
@@ -537,9 +571,11 @@ FreeMemory:
if (Private->DevicePath != NULL) {
FreePool (Private->DevicePath);
}
+
if (Private->FrameBufferBltLibConfigure != NULL) {
FreePool (Private->FrameBufferBltLibConfigure);
}
+
FreePool (Private);
}
}
@@ -566,6 +602,7 @@ CloseProtocols:
Controller
);
}
+
return Status;
}
@@ -584,18 +621,17 @@ CloseProtocols:
EFI_STATUS
EFIAPI
GraphicsOutputDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- EFI_STATUS Status;
- EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
- GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop;
+ GRAPHICS_OUTPUT_PRIVATE_DATA *Private;
if (NumberOfChildren == 0) {
-
//
// Close the PCI I/O Protocol
//
@@ -621,7 +657,7 @@ GraphicsOutputDriverBindingStop (
Status = gBS->OpenProtocol (
ChildHandleBuffer[0],
&gEfiGraphicsOutputProtocolGuid,
- (VOID **) &Gop,
+ (VOID **)&Gop,
This->DriverBindingHandle,
ChildHandleBuffer[0],
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -644,8 +680,10 @@ GraphicsOutputDriverBindingStop (
//
Status = gBS->UninstallMultipleProtocolInterfaces (
Private->GraphicsOutputHandle,
- &gEfiGraphicsOutputProtocolGuid, &Private->GraphicsOutput,
- &gEfiDevicePathProtocolGuid, Private->DevicePath,
+ &gEfiGraphicsOutputProtocolGuid,
+ &Private->GraphicsOutput,
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
NULL
);
if (!EFI_ERROR (Status)) {
@@ -667,17 +705,18 @@ GraphicsOutputDriverBindingStop (
Status = gBS->OpenProtocol (
Controller,
&gEfiPciIoProtocolGuid,
- (VOID **) &Private->PciIo,
+ (VOID **)&Private->PciIo,
This->DriverBindingHandle,
Private->GraphicsOutputHandle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
);
ASSERT_EFI_ERROR (Status);
}
+
return Status;
}
-EFI_DRIVER_BINDING_PROTOCOL mGraphicsOutputDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL mGraphicsOutputDriverBinding = {
GraphicsOutputDriverBindingSupported,
GraphicsOutputDriverBindingStart,
GraphicsOutputDriverBindingStop,
@@ -702,12 +741,12 @@ EFI_DRIVER_BINDING_PROTOCOL mGraphicsOutputDriverBinding = {
EFI_STATUS
EFIAPI
InitializeGraphicsOutput (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- VOID *HobStart;
+ EFI_STATUS Status;
+ VOID *HobStart;
HobStart = GetFirstGuidHob (&gEfiGraphicsInfoHobGuid);
diff --git a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.h b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.h
index a40768b..b8a46df 100644
--- a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.h
+++ b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.h
@@ -6,6 +6,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef _GRAPHICS_OUTPUT_DXE_H_
#define _GRAPHICS_OUTPUT_DXE_H_
#include <PiDxe.h>
@@ -33,21 +34,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define MAX_PCI_BAR 6
typedef struct {
- UINT32 Signature;
- EFI_HANDLE GraphicsOutputHandle;
- EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;
- EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE GraphicsOutputMode;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_PCI_IO_PROTOCOL *PciIo;
- UINT64 PciAttributes;
- FRAME_BUFFER_CONFIGURE *FrameBufferBltLibConfigure;
- UINTN FrameBufferBltLibConfigureSize;
+ UINT32 Signature;
+ EFI_HANDLE GraphicsOutputHandle;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE GraphicsOutputMode;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_PCI_IO_PROTOCOL *PciIo;
+ UINT64 PciAttributes;
+ FRAME_BUFFER_CONFIGURE *FrameBufferBltLibConfigure;
+ UINTN FrameBufferBltLibConfigureSize;
} GRAPHICS_OUTPUT_PRIVATE_DATA;
#define GRAPHICS_OUTPUT_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('g', 'g', 'o', 'p')
#define GRAPHICS_OUTPUT_PRIVATE_FROM_THIS(a) \
CR(a, GRAPHICS_OUTPUT_PRIVATE_DATA, GraphicsOutput, GRAPHICS_OUTPUT_PRIVATE_DATA_SIGNATURE)
-extern EFI_COMPONENT_NAME_PROTOCOL mGraphicsOutputComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL mGraphicsOutputComponentName2;
+extern EFI_COMPONENT_NAME_PROTOCOL mGraphicsOutputComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL mGraphicsOutputComponentName2;
#endif
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c b/MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c
index f117d90..0acd8cf 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c
@@ -6,7 +6,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Terminal.h"
/**
@@ -18,10 +17,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
AnsiRawDataToUnicode (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
)
{
- UINT8 RawData;
+ UINT8 RawData;
//
// pop the raw data out from the raw fifo,
@@ -29,10 +28,9 @@ AnsiRawDataToUnicode (
// the unicode into unicode fifo, until the raw fifo is empty.
//
while (!IsRawFiFoEmpty (TerminalDevice) && !IsUnicodeFiFoFull (TerminalDevice)) {
-
RawFiFoRemoveOneKey (TerminalDevice, &RawData);
- UnicodeFiFoInsertOneKey (TerminalDevice, (UINT16) RawData);
+ UnicodeFiFoInsertOneKey (TerminalDevice, (UINT16)RawData);
}
}
@@ -49,22 +47,21 @@ AnsiRawDataToUnicode (
**/
EFI_STATUS
AnsiTestString (
- IN TERMINAL_DEV *TerminalDevice,
- IN CHAR16 *WString
+ IN TERMINAL_DEV *TerminalDevice,
+ IN CHAR16 *WString
)
{
- CHAR8 GraphicChar;
+ CHAR8 GraphicChar;
//
// support three kind of character:
// valid ascii, valid efi control char, valid text graphics.
//
- for (; *WString != CHAR_NULL; WString++) {
-
+ for ( ; *WString != CHAR_NULL; WString++) {
if ( !(TerminalIsValidAscii (*WString) ||
- TerminalIsValidEfiCntlChar (*WString) ||
- TerminalIsValidTextGraphics (*WString, &GraphicChar, NULL) )) {
-
+ TerminalIsValidEfiCntlChar (*WString) ||
+ TerminalIsValidTextGraphics (*WString, &GraphicChar, NULL)))
+ {
return EFI_UNSUPPORTED;
}
}
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/ComponentName.c b/MdeModulePkg/Universal/Console/TerminalDxe/ComponentName.c
index c06d21b..5c983ef 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/ComponentName.c
@@ -20,17 +20,16 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gTerminalComponentNam
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gTerminalComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) TerminalComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) TerminalComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gTerminalComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)TerminalComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)TerminalComponentNameGetControllerName,
"en"
};
-
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mTerminalDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mTerminalDriverNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"Serial Terminal Driver"
+ (CHAR16 *)L"Serial Terminal Driver"
},
{
NULL,
@@ -165,11 +164,11 @@ TerminalComponentNameGetDriverName (
EFI_STATUS
EFIAPI
TerminalComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
EFI_STATUS Status;
@@ -210,7 +209,7 @@ TerminalComponentNameGetControllerName (
Status = gBS->OpenProtocol (
ChildHandle,
&gEfiSimpleTextOutProtocolGuid,
- (VOID **) &SimpleTextOutput,
+ (VOID **)&SimpleTextOutput,
gTerminalDriverBinding.DriverBindingHandle,
ChildHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
index 89d6e72..e2d779c 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c
@@ -7,13 +7,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Terminal.h"
//
// Globals
//
-EFI_DRIVER_BINDING_PROTOCOL gTerminalDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gTerminalDriverBinding = {
TerminalDriverBindingSupported,
TerminalDriverBindingStart,
TerminalDriverBindingStop,
@@ -22,7 +21,6 @@ EFI_DRIVER_BINDING_PROTOCOL gTerminalDriverBinding = {
NULL
};
-
EFI_GUID *mTerminalType[] = {
&gEfiPcAnsiGuid,
&gEfiVT100Guid,
@@ -35,8 +33,7 @@ EFI_GUID *mTerminalType[] = {
&gEdkiiSCOTermGuid
};
-
-CHAR16 *mSerialConsoleNames[] = {
+CHAR16 *mSerialConsoleNames[] = {
L"PC-ANSI Serial Console",
L"VT-100 Serial Console",
L"VT-100+ Serial Console",
@@ -71,16 +68,16 @@ TERMINAL_DEV mTerminalDevTemplate = {
TerminalConOutEnableCursor,
NULL
},
- { // SimpleTextOutputMode
- 1, // MaxMode
- 0, // Mode
- EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK), // Attribute
- 0, // CursorColumn
- 0, // CursorRow
- TRUE // CursorVisible
+ { // SimpleTextOutputMode
+ 1, // MaxMode
+ 0, // Mode
+ EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK), // Attribute
+ 0, // CursorColumn
+ 0, // CursorRow
+ TRUE // CursorVisible
},
NULL, // TerminalConsoleModeData
- 0, // SerialInTimeOut
+ 0, // SerialInTimeOut
NULL, // RawFifo
NULL, // UnicodeFiFo
@@ -93,9 +90,9 @@ TERMINAL_DEV mTerminalDevTemplate = {
INPUT_STATE_DEFAULT,
RESET_STATE_DEFAULT,
{
- 0,
- 0,
- 0
+ 0,
+ 0,
+ 0
},
0,
FALSE,
@@ -114,10 +111,10 @@ TERMINAL_DEV mTerminalDevTemplate = {
NULL // KeyNotifyProcessEvent
};
-TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = {
- {80, 25},
- {80, 50},
- {100, 31},
+TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = {
+ { 80, 25 },
+ { 80, 50 },
+ { 100, 31 },
//
// New modes can be added here.
//
@@ -132,16 +129,17 @@ TERMINAL_CONSOLE_MODE_DATA mTerminalConsoleModeData[] = {
**/
TERMINAL_TYPE
TerminalTypeFromGuid (
- IN EFI_GUID *Guid
-)
+ IN EFI_GUID *Guid
+ )
{
- TERMINAL_TYPE Type;
+ TERMINAL_TYPE Type;
for (Type = 0; Type < ARRAY_SIZE (mTerminalType); Type++) {
if (CompareGuid (Guid, mTerminalType[Type])) {
break;
}
}
+
return Type;
}
@@ -161,9 +159,9 @@ TerminalTypeFromGuid (
EFI_STATUS
EFIAPI
TerminalDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
@@ -185,15 +183,15 @@ TerminalDriverBindingSupported (
// If RemainingDevicePath isn't the End of Device Path Node,
// check its validation
//
- Node = (VENDOR_DEVICE_PATH *) RemainingDevicePath;
-
- if (Node->Header.Type != MESSAGING_DEVICE_PATH ||
- Node->Header.SubType != MSG_VENDOR_DP ||
- DevicePathNodeLength(&Node->Header) != sizeof(VENDOR_DEVICE_PATH)) {
+ Node = (VENDOR_DEVICE_PATH *)RemainingDevicePath;
+ if ((Node->Header.Type != MESSAGING_DEVICE_PATH) ||
+ (Node->Header.SubType != MSG_VENDOR_DP) ||
+ (DevicePathNodeLength (&Node->Header) != sizeof (VENDOR_DEVICE_PATH)))
+ {
return EFI_UNSUPPORTED;
-
}
+
//
// only supports PC ANSI, VT100, VT100+, VT-UTF8, TtyTerm
// Linux, XtermR6, VT400 and SCO terminal types
@@ -203,6 +201,7 @@ TerminalDriverBindingSupported (
}
}
}
+
//
// Open the IO Abstraction(s) needed to perform the supported test
// The Controller must support the Serial I/O Protocol.
@@ -212,7 +211,7 @@ TerminalDriverBindingSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiSerialIoProtocolGuid,
- (VOID **) &SerialIo,
+ (VOID **)&SerialIo,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -229,11 +228,11 @@ TerminalDriverBindingSupported (
// Close the I/O Abstraction(s) used to perform the supported test
//
gBS->CloseProtocol (
- Controller,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
//
// Open the EFI Device Path protocol needed to perform the supported test
@@ -241,7 +240,7 @@ TerminalDriverBindingSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
- (VOID **) &ParentDevicePath,
+ (VOID **)&ParentDevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -258,16 +257,15 @@ TerminalDriverBindingSupported (
// Close protocol, don't use device path protocol in the Support() function
//
gBS->CloseProtocol (
- Controller,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
return Status;
}
-
/**
Free notify functions list.
@@ -279,14 +277,15 @@ TerminalDriverBindingSupported (
**/
EFI_STATUS
TerminalFreeNotifyList (
- IN OUT LIST_ENTRY *ListHead
+ IN OUT LIST_ENTRY *ListHead
)
{
- TERMINAL_CONSOLE_IN_EX_NOTIFY *NotifyNode;
+ TERMINAL_CONSOLE_IN_EX_NOTIFY *NotifyNode;
if (ListHead == NULL) {
return EFI_INVALID_PARAMETER;
}
+
while (!IsListEmpty (ListHead)) {
NotifyNode = CR (
ListHead->ForwardLink,
@@ -314,8 +313,8 @@ TerminalFreeNotifyList (
**/
TERMINAL_CONSOLE_MODE_DATA *
InitializeTerminalConsoleTextMode (
- OUT INT32 *TextModeCount
-)
+ OUT INT32 *TextModeCount
+ )
{
TERMINAL_CONSOLE_MODE_DATA *TextModeData;
@@ -325,14 +324,22 @@ InitializeTerminalConsoleTextMode (
if (TextModeData == NULL) {
return NULL;
}
+
*TextModeCount = ARRAY_SIZE (mTerminalConsoleModeData);
DEBUG_CODE_BEGIN ();
- INT32 Index;
- for (Index = 0; Index < *TextModeCount; Index++) {
- DEBUG ((DEBUG_INFO, "Terminal - Mode %d, Column = %d, Row = %d\n",
- Index, TextModeData[Index].Columns, TextModeData[Index].Rows));
- }
+ INT32 Index;
+
+ for (Index = 0; Index < *TextModeCount; Index++) {
+ DEBUG ((
+ DEBUG_INFO,
+ "Terminal - Mode %d, Column = %d, Row = %d\n",
+ Index,
+ TextModeData[Index].Columns,
+ TextModeData[Index].Rows
+ ));
+ }
+
DEBUG_CODE_END ();
return TextModeData;
}
@@ -344,10 +351,10 @@ InitializeTerminalConsoleTextMode (
**/
VOID
StopTerminalStateMachine (
- TERMINAL_DEV *TerminalDevice
+ TERMINAL_DEV *TerminalDevice
)
{
- EFI_TPL OriginalTpl;
+ EFI_TPL OriginalTpl;
OriginalTpl = gBS->RaiseTPL (TPL_NOTIFY);
@@ -364,10 +371,11 @@ StopTerminalStateMachine (
**/
VOID
StartTerminalStateMachine (
- TERMINAL_DEV *TerminalDevice
+ TERMINAL_DEV *TerminalDevice
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
+
Status = gBS->CreateEvent (
EVT_TIMER | EVT_NOTIFY_SIGNAL,
TPL_NOTIFY,
@@ -407,13 +415,13 @@ EFI_STATUS
InitializeControllerNameTable (
TERMINAL_TYPE TerminalType,
EFI_UNICODE_STRING_TABLE **ControllerNameTable
-)
+ )
{
EFI_STATUS Status;
EFI_UNICODE_STRING_TABLE *Table;
ASSERT (TerminalType < ARRAY_SIZE (mTerminalType));
- Table = NULL;
+ Table = NULL;
Status = AddUnicodeString2 (
"eng",
gTerminalComponentName.SupportedLanguages,
@@ -433,9 +441,11 @@ InitializeControllerNameTable (
FreeUnicodeStringTable (Table);
}
}
+
if (!EFI_ERROR (Status)) {
*ControllerNameTable = Table;
}
+
return Status;
}
@@ -458,26 +468,26 @@ InitializeControllerNameTable (
EFI_STATUS
EFIAPI
TerminalDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- EFI_SERIAL_IO_PROTOCOL *SerialIo;
- EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
- EFI_DEVICE_PATH_PROTOCOL *Vendor;
- EFI_HANDLE SerialIoHandle;
- EFI_SERIAL_IO_MODE *Mode;
- UINTN SerialInTimeOut;
- TERMINAL_DEV *TerminalDevice;
- UINT8 TerminalType;
- EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfoBuffer;
- UINTN EntryCount;
- UINTN Index;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOutput;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL *SimpleTextInput;
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;
+ EFI_STATUS Status;
+ EFI_SERIAL_IO_PROTOCOL *SerialIo;
+ EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *Vendor;
+ EFI_HANDLE SerialIoHandle;
+ EFI_SERIAL_IO_MODE *Mode;
+ UINTN SerialInTimeOut;
+ TERMINAL_DEV *TerminalDevice;
+ UINT8 TerminalType;
+ EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfoBuffer;
+ UINTN EntryCount;
+ UINTN Index;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOutput;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *SimpleTextInput;
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;
//
// Get the Device Path Protocol to build the device path of the child device
@@ -485,7 +495,7 @@ TerminalDriverBindingStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
- (VOID **) &ParentDevicePath,
+ (VOID **)&ParentDevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -501,7 +511,7 @@ TerminalDriverBindingStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiSerialIoProtocolGuid,
- (VOID **) &SerialIo,
+ (VOID **)&SerialIo,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -529,7 +539,6 @@ TerminalDriverBindingStart (
}
if (Status == EFI_ALREADY_STARTED) {
-
if (RemainingDevicePath == NULL) {
//
// If RemainingDevicePath is NULL or is the End of Device Path Node
@@ -554,14 +563,14 @@ TerminalDriverBindingStart (
Status = gBS->OpenProtocol (
OpenInfoBuffer[Index].ControllerHandle,
&gEfiSimpleTextInProtocolGuid,
- (VOID **) &SimpleTextInput,
+ (VOID **)&SimpleTextInput,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
if (!EFI_ERROR (Status)) {
TerminalDevice = TERMINAL_CON_IN_DEV_FROM_THIS (SimpleTextInput);
- TerminalType = TerminalTypeFromGuid (&((VENDOR_DEVICE_PATH *) RemainingDevicePath)->Guid);
+ TerminalType = TerminalTypeFromGuid (&((VENDOR_DEVICE_PATH *)RemainingDevicePath)->Guid);
ASSERT (TerminalType < ARRAY_SIZE (mTerminalType));
if (TerminalDevice->TerminalType != TerminalType) {
Status = InitializeControllerNameTable (TerminalType, &ControllerNameTable);
@@ -573,7 +582,7 @@ TerminalDriverBindingStart (
Vendor = TerminalDevice->DevicePath;
Status = gBS->LocateDevicePath (&gEfiSerialIoProtocolGuid, &Vendor, &SerialIoHandle);
ASSERT_EFI_ERROR (Status);
- CopyGuid (&((VENDOR_DEVICE_PATH *) Vendor)->Guid, mTerminalType[TerminalType]);
+ CopyGuid (&((VENDOR_DEVICE_PATH *)Vendor)->Guid, mTerminalType[TerminalType]);
Status = gBS->ReinstallProtocolInterface (
TerminalDevice->Handle,
&gEfiDevicePathProtocolGuid,
@@ -589,17 +598,20 @@ TerminalDriverBindingStart (
//
// Restore the device path on failure
//
- CopyGuid (&((VENDOR_DEVICE_PATH *) Vendor)->Guid, mTerminalType[TerminalDevice->TerminalType]);
+ CopyGuid (&((VENDOR_DEVICE_PATH *)Vendor)->Guid, mTerminalType[TerminalDevice->TerminalType]);
FreeUnicodeStringTable (ControllerNameTable);
}
}
}
}
+
break;
}
}
+
FreePool (OpenInfoBuffer);
}
+
return Status;
}
@@ -626,8 +638,9 @@ TerminalDriverBindingStart (
// If RemainingDevicePath isn't the End of Device Path Node,
// Use the RemainingDevicePath to determine the terminal type
//
- TerminalDevice->TerminalType = TerminalTypeFromGuid (&((VENDOR_DEVICE_PATH *) RemainingDevicePath)->Guid);
+ TerminalDevice->TerminalType = TerminalTypeFromGuid (&((VENDOR_DEVICE_PATH *)RemainingDevicePath)->Guid);
}
+
ASSERT (TerminalDevice->TerminalType < ARRAY_SIZE (mTerminalType));
TerminalDevice->SerialIo = SerialIo;
@@ -682,14 +695,17 @@ TerminalDriverBindingStart (
if (TerminalDevice->RawFiFo == NULL) {
goto FreeResources;
}
+
TerminalDevice->UnicodeFiFo = AllocateZeroPool (sizeof (UNICODE_FIFO));
if (TerminalDevice->UnicodeFiFo == NULL) {
goto FreeResources;
}
+
TerminalDevice->EfiKeyFiFo = AllocateZeroPool (sizeof (EFI_KEY_FIFO));
if (TerminalDevice->EfiKeyFiFo == NULL) {
goto FreeResources;
}
+
TerminalDevice->EfiKeyFiFoForNotify = AllocateZeroPool (sizeof (EFI_KEY_FIFO));
if (TerminalDevice->EfiKeyFiFoForNotify == NULL) {
goto FreeResources;
@@ -702,17 +718,17 @@ TerminalDriverBindingStart (
SerialInTimeOut = 0;
if (Mode->BaudRate != 0) {
- SerialInTimeOut = (1 + Mode->DataBits + Mode->StopBits) * 2 * 1000000 / (UINTN) Mode->BaudRate;
+ SerialInTimeOut = (1 + Mode->DataBits + Mode->StopBits) * 2 * 1000000 / (UINTN)Mode->BaudRate;
}
Status = TerminalDevice->SerialIo->SetAttributes (
TerminalDevice->SerialIo,
Mode->BaudRate,
Mode->ReceiveFifoDepth,
- (UINT32) SerialInTimeOut,
- (EFI_PARITY_TYPE) (Mode->Parity),
- (UINT8) Mode->DataBits,
- (EFI_STOP_BITS_TYPE) (Mode->StopBits)
+ (UINT32)SerialInTimeOut,
+ (EFI_PARITY_TYPE)(Mode->Parity),
+ (UINT8)Mode->DataBits,
+ (EFI_STOP_BITS_TYPE)(Mode->StopBits)
);
if (EFI_ERROR (Status)) {
//
@@ -728,26 +744,28 @@ TerminalDriverBindingStart (
}
SimpleTextOutput = &TerminalDevice->SimpleTextOutput;
- SimpleTextInput = &TerminalDevice->SimpleInput;
+ SimpleTextInput = &TerminalDevice->SimpleInput;
//
// Initialize SimpleTextOut instance
//
- SimpleTextOutput->Mode = &TerminalDevice->SimpleTextOutputMode;
+ SimpleTextOutput->Mode = &TerminalDevice->SimpleTextOutputMode;
TerminalDevice->TerminalConsoleModeData = InitializeTerminalConsoleTextMode (
- &SimpleTextOutput->Mode->MaxMode
- );
+ &SimpleTextOutput->Mode->MaxMode
+ );
if (TerminalDevice->TerminalConsoleModeData == NULL) {
goto FreeResources;
}
+
//
// For terminal devices, cursor is always visible
//
SimpleTextOutput->Mode->CursorVisible = TRUE;
- Status = SimpleTextOutput->SetAttribute (SimpleTextOutput, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
+ Status = SimpleTextOutput->SetAttribute (SimpleTextOutput, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
if (!EFI_ERROR (Status)) {
Status = SimpleTextOutput->Reset (SimpleTextOutput, FALSE);
}
+
if (EFI_ERROR (Status)) {
goto ReportError;
}
@@ -762,17 +780,21 @@ TerminalDriverBindingStart (
Status = gBS->InstallMultipleProtocolInterfaces (
&TerminalDevice->Handle,
- &gEfiSimpleTextInProtocolGuid, &TerminalDevice->SimpleInput,
- &gEfiSimpleTextInputExProtocolGuid, &TerminalDevice->SimpleInputEx,
- &gEfiSimpleTextOutProtocolGuid, &TerminalDevice->SimpleTextOutput,
- &gEfiDevicePathProtocolGuid, TerminalDevice->DevicePath,
+ &gEfiSimpleTextInProtocolGuid,
+ &TerminalDevice->SimpleInput,
+ &gEfiSimpleTextInputExProtocolGuid,
+ &TerminalDevice->SimpleInputEx,
+ &gEfiSimpleTextOutProtocolGuid,
+ &TerminalDevice->SimpleTextOutput,
+ &gEfiDevicePathProtocolGuid,
+ TerminalDevice->DevicePath,
NULL
);
if (!EFI_ERROR (Status)) {
Status = gBS->OpenProtocol (
Controller,
&gEfiSerialIoProtocolGuid,
- (VOID **) &TerminalDevice->SerialIo,
+ (VOID **)&TerminalDevice->SerialIo,
This->DriverBindingHandle,
TerminalDevice->Handle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -795,9 +817,11 @@ FreeResources:
if (TerminalDevice->SimpleInput.WaitForKey != NULL) {
gBS->CloseEvent (TerminalDevice->SimpleInput.WaitForKey);
}
+
if (TerminalDevice->SimpleInputEx.WaitForKeyEx != NULL) {
gBS->CloseEvent (TerminalDevice->SimpleInputEx.WaitForKeyEx);
}
+
if (TerminalDevice->KeyNotifyProcessEvent != NULL) {
gBS->CloseEvent (TerminalDevice->KeyNotifyProcessEvent);
}
@@ -805,12 +829,15 @@ FreeResources:
if (TerminalDevice->RawFiFo != NULL) {
FreePool (TerminalDevice->RawFiFo);
}
+
if (TerminalDevice->UnicodeFiFo != NULL) {
FreePool (TerminalDevice->UnicodeFiFo);
}
+
if (TerminalDevice->EfiKeyFiFo != NULL) {
FreePool (TerminalDevice->EfiKeyFiFo);
}
+
if (TerminalDevice->EfiKeyFiFoForNotify != NULL) {
FreePool (TerminalDevice->EfiKeyFiFoForNotify);
}
@@ -875,10 +902,10 @@ CloseProtocols:
EFI_STATUS
EFIAPI
TerminalDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
@@ -900,7 +927,7 @@ TerminalDriverBindingStop (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
- (VOID **) &ParentDevicePath,
+ (VOID **)&ParentDevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -916,18 +943,18 @@ TerminalDriverBindingStop (
TerminalRemoveConsoleDevVariable (EFI_ERR_OUT_DEV_VARIABLE_NAME, ParentDevicePath);
gBS->CloseProtocol (
- Controller,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
gBS->CloseProtocol (
- Controller,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- Controller
- );
+ Controller,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ Controller
+ );
return EFI_SUCCESS;
}
@@ -935,25 +962,23 @@ TerminalDriverBindingStop (
AllChildrenStopped = TRUE;
for (Index = 0; Index < NumberOfChildren; Index++) {
-
Status = gBS->OpenProtocol (
ChildHandleBuffer[Index],
&gEfiSimpleTextOutProtocolGuid,
- (VOID **) &SimpleTextOutput,
+ (VOID **)&SimpleTextOutput,
This->DriverBindingHandle,
ChildHandleBuffer[Index],
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
if (!EFI_ERROR (Status)) {
-
TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (SimpleTextOutput);
gBS->CloseProtocol (
- Controller,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- ChildHandleBuffer[Index]
- );
+ Controller,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ ChildHandleBuffer[Index]
+ );
Status = gBS->UninstallMultipleProtocolInterfaces (
ChildHandleBuffer[Index],
@@ -969,15 +994,14 @@ TerminalDriverBindingStop (
);
if (EFI_ERROR (Status)) {
gBS->OpenProtocol (
- Controller,
- &gEfiSerialIoProtocolGuid,
- (VOID **) &SerialIo,
- This->DriverBindingHandle,
- ChildHandleBuffer[Index],
- EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
- );
+ Controller,
+ &gEfiSerialIoProtocolGuid,
+ (VOID **)&SerialIo,
+ This->DriverBindingHandle,
+ ChildHandleBuffer[Index],
+ EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
+ );
} else {
-
FreeUnicodeStringTable (TerminalDevice->ControllerNameTable);
StopTerminalStateMachine (TerminalDevice);
gBS->CloseEvent (TerminalDevice->SimpleInput.WaitForKey);
@@ -1023,8 +1047,8 @@ MatchDevicePaths (
EFI_DEVICE_PATH_PROTOCOL *DevicePathInst;
UINTN Size;
- DevicePath = Multi;
- DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size);
+ DevicePath = Multi;
+ DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size);
//
// Search for the match of 'Single' in 'Multi'
//
@@ -1058,23 +1082,24 @@ TerminalUpdateConsoleDevVariable (
IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath
)
{
- EFI_STATUS Status;
- UINTN NameSize;
- UINTN VariableSize;
- TERMINAL_TYPE TerminalType;
- EFI_DEVICE_PATH_PROTOCOL *Variable;
- EFI_DEVICE_PATH_PROTOCOL *NewVariable;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
- EDKII_SET_VARIABLE_STATUS *SetVariableStatus;
+ EFI_STATUS Status;
+ UINTN NameSize;
+ UINTN VariableSize;
+ TERMINAL_TYPE TerminalType;
+ EFI_DEVICE_PATH_PROTOCOL *Variable;
+ EFI_DEVICE_PATH_PROTOCOL *NewVariable;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EDKII_SET_VARIABLE_STATUS *SetVariableStatus;
//
// Get global variable and its size according to the name given.
//
- Status = GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, NULL);
+ Status = GetEfiGlobalVariable2 (VariableName, (VOID **)&Variable, NULL);
if (Status == EFI_NOT_FOUND) {
Status = EFI_SUCCESS;
Variable = NULL;
}
+
if (EFI_ERROR (Status)) {
return;
}
@@ -1092,13 +1117,13 @@ TerminalUpdateConsoleDevVariable (
if (Variable != NULL) {
FreePool (Variable);
}
+
Variable = NewVariable;
}
}
FreePool (TempDevicePath);
}
-
}
VariableSize = GetDevicePathSize (Variable);
@@ -1112,7 +1137,7 @@ TerminalUpdateConsoleDevVariable (
);
if (EFI_ERROR (Status)) {
- NameSize = StrSize (VariableName);
+ NameSize = StrSize (VariableName);
SetVariableStatus = AllocatePool (sizeof (EDKII_SET_VARIABLE_STATUS) + NameSize + VariableSize);
if (SetVariableStatus != NULL) {
CopyGuid (&SetVariableStatus->Guid, &gEfiGlobalVariableGuid);
@@ -1120,8 +1145,8 @@ TerminalUpdateConsoleDevVariable (
SetVariableStatus->DataSize = VariableSize;
SetVariableStatus->SetStatus = Status;
SetVariableStatus->Attributes = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS;
- CopyMem (SetVariableStatus + 1, VariableName, NameSize);
- CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Variable, VariableSize);
+ CopyMem (SetVariableStatus + 1, VariableName, NameSize);
+ CopyMem (((UINT8 *)(SetVariableStatus + 1)) + NameSize, Variable, VariableSize);
REPORT_STATUS_CODE_EX (
EFI_ERROR_CODE,
@@ -1139,10 +1164,9 @@ TerminalUpdateConsoleDevVariable (
FreePool (Variable);
- return ;
+ return;
}
-
/**
Remove terminal device path from Console Device Environment Variables.
@@ -1169,19 +1193,19 @@ TerminalRemoveConsoleDevVariable (
EFI_DEVICE_PATH_PROTOCOL *SavedNewVariable;
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
- Instance = NULL;
+ Instance = NULL;
//
// Get global variable and its size according to the name given.
//
- GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, NULL);
+ GetEfiGlobalVariable2 (VariableName, (VOID **)&Variable, NULL);
if (Variable == NULL) {
- return ;
+ return;
}
- FoundOne = FALSE;
- OriginalVariable = Variable;
- NewVariable = NULL;
+ FoundOne = FALSE;
+ OriginalVariable = Variable;
+ NewVariable = NULL;
//
// Get first device path instance from Variable
@@ -1189,8 +1213,9 @@ TerminalRemoveConsoleDevVariable (
Instance = GetNextDevicePathInstance (&Variable, &InstanceSize);
if (Instance == NULL) {
FreePool (OriginalVariable);
- return ;
+ return;
}
+
//
// Loop through all the device path instances of Variable
//
@@ -1200,7 +1225,6 @@ TerminalRemoveConsoleDevVariable (
//
Match = FALSE;
for (TerminalType = 0; TerminalType < ARRAY_SIZE (mTerminalType); TerminalType++) {
-
SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath);
//
@@ -1208,23 +1232,25 @@ TerminalRemoveConsoleDevVariable (
//
if (TempDevicePath != NULL) {
if (CompareMem (Instance, TempDevicePath, InstanceSize) == 0) {
- Match = TRUE;
- FoundOne = TRUE;
+ Match = TRUE;
+ FoundOne = TRUE;
}
FreePool (TempDevicePath);
}
}
+
//
// If a match was not found, then keep the current device path instance
//
if (!Match) {
- SavedNewVariable = NewVariable;
- NewVariable = AppendDevicePathInstance (NewVariable, Instance);
+ SavedNewVariable = NewVariable;
+ NewVariable = AppendDevicePathInstance (NewVariable, Instance);
if (SavedNewVariable != NULL) {
FreePool (SavedNewVariable);
}
}
+
//
// Get next device path instance from Variable
//
@@ -1254,7 +1280,7 @@ TerminalRemoveConsoleDevVariable (
FreePool (NewVariable);
}
- return ;
+ return;
}
/**
@@ -1271,9 +1297,9 @@ TerminalRemoveConsoleDevVariable (
**/
EFI_STATUS
SetTerminalDevicePath (
- IN TERMINAL_TYPE TerminalType,
- IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
- OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath
+ IN TERMINAL_TYPE TerminalType,
+ IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
+ OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath
)
{
VENDOR_DEVICE_PATH Node;
@@ -1290,7 +1316,7 @@ SetTerminalDevicePath (
//
*TerminalDevicePath = AppendDevicePathNode (
ParentDevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *) &Node
+ (EFI_DEVICE_PATH_PROTOCOL *)&Node
);
if (*TerminalDevicePath == NULL) {
return EFI_OUT_OF_RESOURCES;
@@ -1311,12 +1337,12 @@ SetTerminalDevicePath (
**/
EFI_STATUS
EFIAPI
-InitializeTerminal(
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+InitializeTerminal (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Install driver model protocol(s).
@@ -1348,10 +1374,10 @@ InitializeTerminal(
**/
BOOLEAN
IsHotPlugDevice (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
- EFI_DEVICE_PATH_PROTOCOL *CheckDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *CheckDevicePath;
CheckDevicePath = DevicePath;
while (!IsDevicePathEnd (CheckDevicePath)) {
@@ -1359,16 +1385,19 @@ IsHotPlugDevice (
// Check device whether is hot plug device or not throught Device Path
//
if ((DevicePathType (CheckDevicePath) == MESSAGING_DEVICE_PATH) &&
- (DevicePathSubType (CheckDevicePath) == MSG_USB_DP ||
- DevicePathSubType (CheckDevicePath) == MSG_USB_CLASS_DP ||
- DevicePathSubType (CheckDevicePath) == MSG_USB_WWID_DP)) {
+ ((DevicePathSubType (CheckDevicePath) == MSG_USB_DP) ||
+ (DevicePathSubType (CheckDevicePath) == MSG_USB_CLASS_DP) ||
+ (DevicePathSubType (CheckDevicePath) == MSG_USB_WWID_DP)))
+ {
//
// If Device is USB device
//
return TRUE;
}
+
if ((DevicePathType (CheckDevicePath) == HARDWARE_DEVICE_PATH) &&
- (DevicePathSubType (CheckDevicePath) == HW_PCCARD_DP)) {
+ (DevicePathSubType (CheckDevicePath) == HW_PCCARD_DP))
+ {
//
// If Device is PCCard
//
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h
index dfe9882..4238f84 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h
@@ -10,7 +10,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _TERMINAL_H_
#define _TERMINAL_H_
-
#include <Uefi.h>
#include <Guid/GlobalVariable.h>
@@ -36,44 +35,43 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/PcdLib.h>
#include <Library/BaseLib.h>
-
-#define RAW_FIFO_MAX_NUMBER 255
-#define FIFO_MAX_NUMBER 128
+#define RAW_FIFO_MAX_NUMBER 255
+#define FIFO_MAX_NUMBER 128
typedef struct {
- UINT8 Head;
- UINT8 Tail;
- UINT8 Data[RAW_FIFO_MAX_NUMBER + 1];
+ UINT8 Head;
+ UINT8 Tail;
+ UINT8 Data[RAW_FIFO_MAX_NUMBER + 1];
} RAW_DATA_FIFO;
typedef struct {
- UINT8 Head;
- UINT8 Tail;
- UINT16 Data[FIFO_MAX_NUMBER + 1];
+ UINT8 Head;
+ UINT8 Tail;
+ UINT16 Data[FIFO_MAX_NUMBER + 1];
} UNICODE_FIFO;
typedef struct {
- UINT8 Head;
- UINT8 Tail;
- EFI_INPUT_KEY Data[FIFO_MAX_NUMBER + 1];
+ UINT8 Head;
+ UINT8 Tail;
+ EFI_INPUT_KEY Data[FIFO_MAX_NUMBER + 1];
} EFI_KEY_FIFO;
typedef struct {
- UINTN Columns;
- UINTN Rows;
+ UINTN Columns;
+ UINTN Rows;
} TERMINAL_CONSOLE_MODE_DATA;
-#define KEYBOARD_TIMER_INTERVAL 200000 // 0.02s
+#define KEYBOARD_TIMER_INTERVAL 200000 // 0.02s
#define TERMINAL_DEV_SIGNATURE SIGNATURE_32 ('t', 'm', 'n', 'l')
-#define TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('t', 'm', 'e', 'n')
+#define TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('t', 'm', 'e', 'n')
typedef struct _TERMINAL_CONSOLE_IN_EX_NOTIFY {
- UINTN Signature;
- EFI_KEY_DATA KeyData;
- EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
- LIST_ENTRY NotifyEntry;
+ UINTN Signature;
+ EFI_KEY_DATA KeyData;
+ EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
+ LIST_ENTRY NotifyEntry;
} TERMINAL_CONSOLE_IN_EX_NOTIFY;
typedef enum {
@@ -89,27 +87,27 @@ typedef enum {
} TERMINAL_TYPE;
typedef struct {
- UINTN Signature;
- EFI_HANDLE Handle;
- TERMINAL_TYPE TerminalType;
- EFI_SERIAL_IO_PROTOCOL *SerialIo;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleInput;
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput;
- EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode;
- TERMINAL_CONSOLE_MODE_DATA *TerminalConsoleModeData;
- UINTN SerialInTimeOut;
- RAW_DATA_FIFO *RawFiFo;
- UNICODE_FIFO *UnicodeFiFo;
- EFI_KEY_FIFO *EfiKeyFiFo;
- EFI_KEY_FIFO *EfiKeyFiFoForNotify;
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;
- EFI_EVENT TimerEvent;
- EFI_EVENT TwoSecondTimeOut;
- UINT32 InputState;
- UINT32 ResetState;
- UINT16 TtyEscapeStr[3];
- INTN TtyEscapeIndex;
+ UINTN Signature;
+ EFI_HANDLE Handle;
+ TERMINAL_TYPE TerminalType;
+ EFI_SERIAL_IO_PROTOCOL *SerialIo;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleInput;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput;
+ EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode;
+ TERMINAL_CONSOLE_MODE_DATA *TerminalConsoleModeData;
+ UINTN SerialInTimeOut;
+ RAW_DATA_FIFO *RawFiFo;
+ UNICODE_FIFO *UnicodeFiFo;
+ EFI_KEY_FIFO *EfiKeyFiFo;
+ EFI_KEY_FIFO *EfiKeyFiFoForNotify;
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;
+ EFI_EVENT TimerEvent;
+ EFI_EVENT TwoSecondTimeOut;
+ UINT32 InputState;
+ UINT32 ResetState;
+ UINT16 TtyEscapeStr[3];
+ INTN TtyEscapeIndex;
//
// Esc could not be output to the screen by user,
@@ -118,57 +116,57 @@ typedef struct {
// This boolean is used by the terminal driver only
// to indicate whether the Esc could be sent or not.
//
- BOOLEAN OutputEscChar;
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL SimpleInputEx;
- LIST_ENTRY NotifyList;
- EFI_EVENT KeyNotifyProcessEvent;
+ BOOLEAN OutputEscChar;
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL SimpleInputEx;
+ LIST_ENTRY NotifyList;
+ EFI_EVENT KeyNotifyProcessEvent;
} TERMINAL_DEV;
-#define INPUT_STATE_DEFAULT 0x00
-#define INPUT_STATE_ESC 0x01
-#define INPUT_STATE_CSI 0x02
-#define INPUT_STATE_LEFTOPENBRACKET 0x04
-#define INPUT_STATE_O 0x08
-#define INPUT_STATE_2 0x10
-#define INPUT_STATE_LEFTOPENBRACKET_TTY 0x20
-#define INPUT_STATE_1 0x40
-#define INPUT_STATE_LEFTOPENBRACKET_2ND 0x80
-
-#define RESET_STATE_DEFAULT 0x00
-#define RESET_STATE_ESC_R 0x01
-#define RESET_STATE_ESC_R_ESC_R 0x02
-
-#define TERMINAL_CON_IN_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleInput, TERMINAL_DEV_SIGNATURE)
-#define TERMINAL_CON_OUT_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleTextOutput, TERMINAL_DEV_SIGNATURE)
+#define INPUT_STATE_DEFAULT 0x00
+#define INPUT_STATE_ESC 0x01
+#define INPUT_STATE_CSI 0x02
+#define INPUT_STATE_LEFTOPENBRACKET 0x04
+#define INPUT_STATE_O 0x08
+#define INPUT_STATE_2 0x10
+#define INPUT_STATE_LEFTOPENBRACKET_TTY 0x20
+#define INPUT_STATE_1 0x40
+#define INPUT_STATE_LEFTOPENBRACKET_2ND 0x80
+
+#define RESET_STATE_DEFAULT 0x00
+#define RESET_STATE_ESC_R 0x01
+#define RESET_STATE_ESC_R_ESC_R 0x02
+
+#define TERMINAL_CON_IN_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleInput, TERMINAL_DEV_SIGNATURE)
+#define TERMINAL_CON_OUT_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleTextOutput, TERMINAL_DEV_SIGNATURE)
#define TERMINAL_CON_IN_EX_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleInputEx, TERMINAL_DEV_SIGNATURE)
typedef union {
- UINT8 Utf8_1;
- UINT8 Utf8_2[2];
- UINT8 Utf8_3[3];
+ UINT8 Utf8_1;
+ UINT8 Utf8_2[2];
+ UINT8 Utf8_3[3];
} UTF8_CHAR;
-#define LEFTOPENBRACKET 0x5b // '['
-#define ACAP 0x41
-#define BCAP 0x42
-#define CCAP 0x43
-#define DCAP 0x44
-
-#define BACKSPACE 8
-#define ESC 27
-#define CSI 0x9B
-#define DEL 127
-#define BRIGHT_CONTROL_OFFSET 2
-#define FOREGROUND_CONTROL_OFFSET 6
-#define BACKGROUND_CONTROL_OFFSET 11
-#define ROW_OFFSET 2
-#define COLUMN_OFFSET 5
-#define FW_BACK_OFFSET 2
+#define LEFTOPENBRACKET 0x5b // '['
+#define ACAP 0x41
+#define BCAP 0x42
+#define CCAP 0x43
+#define DCAP 0x44
+
+#define BACKSPACE 8
+#define ESC 27
+#define CSI 0x9B
+#define DEL 127
+#define BRIGHT_CONTROL_OFFSET 2
+#define FOREGROUND_CONTROL_OFFSET 6
+#define BACKGROUND_CONTROL_OFFSET 11
+#define ROW_OFFSET 2
+#define COLUMN_OFFSET 5
+#define FW_BACK_OFFSET 2
typedef struct {
- UINT16 Unicode;
- CHAR8 PcAnsi;
- CHAR8 Ascii;
+ UINT16 Unicode;
+ CHAR8 PcAnsi;
+ CHAR8 Ascii;
} UNICODE_TO_CHAR;
//
@@ -191,8 +189,8 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gTerminalComponentName2;
EFI_STATUS
EFIAPI
InitializeTerminal (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
/**
@@ -210,11 +208,10 @@ InitializeTerminal (
EFI_STATUS
EFIAPI
TerminalConInReset (
- IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
-
/**
Implements EFI_SIMPLE_TEXT_INPUT_PROTOCOL.ReadKeyStroke().
@@ -266,8 +263,8 @@ IsKeyRegistered (
VOID
EFIAPI
TerminalConInWaitForKeyEx (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
//
@@ -311,8 +308,8 @@ TerminalConInResetEx (
EFI_STATUS
EFIAPI
TerminalConInReadKeyStrokeEx (
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
- OUT EFI_KEY_DATA *KeyData
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ OUT EFI_KEY_DATA *KeyData
);
/**
@@ -399,8 +396,8 @@ TerminalConInUnregisterKeyNotify (
VOID
EFIAPI
TerminalConInWaitForKey (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
/**
@@ -421,8 +418,8 @@ TerminalConInWaitForKey (
EFI_STATUS
EFIAPI
TerminalConOutReset (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
/**
@@ -609,9 +606,9 @@ TerminalConOutEnableCursor (
EFI_STATUS
EFIAPI
TerminalDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -633,12 +630,11 @@ TerminalDriverBindingSupported (
EFI_STATUS
EFIAPI
TerminalDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
-
/**
Stop this driver on Controller by closing Simple Text In, Simple Text
In Ex, Simple Text Out protocol, and removing parent device path from
@@ -657,10 +653,10 @@ TerminalDriverBindingStart (
EFI_STATUS
EFIAPI
TerminalDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
/**
@@ -674,7 +670,7 @@ TerminalDriverBindingStop (
**/
EFI_STATUS
TerminalFreeNotifyList (
- IN OUT LIST_ENTRY *ListHead
+ IN OUT LIST_ENTRY *ListHead
);
/**
@@ -724,7 +720,6 @@ TerminalComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -796,14 +791,13 @@ TerminalComponentNameGetDriverName (
EFI_STATUS
EFIAPI
TerminalComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
//
// internal functions
//
@@ -866,9 +860,9 @@ TerminalRemoveConsoleDevVariable (
**/
EFI_STATUS
SetTerminalDevicePath (
- IN TERMINAL_TYPE TerminalType,
- IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
- OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath
+ IN TERMINAL_TYPE TerminalType,
+ IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
+ OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath
);
/**
@@ -963,8 +957,8 @@ IsRawFiFoFull (
**/
BOOLEAN
EfiKeyFiFoForNotifyInsertOneKey (
- EFI_KEY_FIFO *EfiKeyFiFo,
- EFI_INPUT_KEY *Input
+ EFI_KEY_FIFO *EfiKeyFiFo,
+ EFI_INPUT_KEY *Input
);
/**
@@ -979,8 +973,8 @@ EfiKeyFiFoForNotifyInsertOneKey (
**/
BOOLEAN
EfiKeyFiFoForNotifyRemoveOneKey (
- EFI_KEY_FIFO *EfiKeyFiFo,
- EFI_INPUT_KEY *Output
+ EFI_KEY_FIFO *EfiKeyFiFo,
+ EFI_INPUT_KEY *Output
);
/**
@@ -994,7 +988,7 @@ EfiKeyFiFoForNotifyRemoveOneKey (
**/
BOOLEAN
IsEfiKeyFiFoForNotifyEmpty (
- IN EFI_KEY_FIFO *EfiKeyFiFo
+ IN EFI_KEY_FIFO *EfiKeyFiFo
);
/**
@@ -1008,7 +1002,7 @@ IsEfiKeyFiFoForNotifyEmpty (
**/
BOOLEAN
IsEfiKeyFiFoForNotifyFull (
- EFI_KEY_FIFO *EfiKeyFiFo
+ EFI_KEY_FIFO *EfiKeyFiFo
);
/**
@@ -1024,8 +1018,8 @@ IsEfiKeyFiFoForNotifyFull (
**/
BOOLEAN
EfiKeyFiFoInsertOneKey (
- TERMINAL_DEV *TerminalDevice,
- EFI_INPUT_KEY *Key
+ TERMINAL_DEV *TerminalDevice,
+ EFI_INPUT_KEY *Key
);
/**
@@ -1040,8 +1034,8 @@ EfiKeyFiFoInsertOneKey (
**/
BOOLEAN
EfiKeyFiFoRemoveOneKey (
- TERMINAL_DEV *TerminalDevice,
- EFI_INPUT_KEY *Output
+ TERMINAL_DEV *TerminalDevice,
+ EFI_INPUT_KEY *Output
);
/**
@@ -1085,8 +1079,8 @@ IsEfiKeyFiFoFull (
**/
BOOLEAN
UnicodeFiFoInsertOneKey (
- TERMINAL_DEV *TerminalDevice,
- UINT16 Input
+ TERMINAL_DEV *TerminalDevice,
+ UINT16 Input
);
/**
@@ -1132,7 +1126,6 @@ IsUnicodeFiFoFull (
TERMINAL_DEV *TerminalDevice
);
-
/**
Translate raw data into Unicode (according to different encode), and
translate Unicode into key information. (according to different standard).
@@ -1142,7 +1135,7 @@ IsUnicodeFiFoFull (
**/
VOID
TranslateRawDataToEfiKey (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
);
//
@@ -1158,7 +1151,7 @@ TranslateRawDataToEfiKey (
**/
VOID
AnsiRawDataToUnicode (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
);
/**
@@ -1248,7 +1241,7 @@ Putty function key map:
**/
VOID
UnicodeToEfiKey (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
);
/**
@@ -1264,8 +1257,8 @@ UnicodeToEfiKey (
**/
EFI_STATUS
AnsiTestString (
- IN TERMINAL_DEV *TerminalDevice,
- IN CHAR16 *WString
+ IN TERMINAL_DEV *TerminalDevice,
+ IN CHAR16 *WString
);
//
@@ -1281,7 +1274,7 @@ AnsiTestString (
**/
VOID
VTUTF8RawDataToUnicode (
- IN TERMINAL_DEV *VtUtf8Device
+ IN TERMINAL_DEV *VtUtf8Device
);
/**
@@ -1295,8 +1288,8 @@ VTUTF8RawDataToUnicode (
**/
EFI_STATUS
VTUTF8TestString (
- IN TERMINAL_DEV *TerminalDevice,
- IN CHAR16 *WString
+ IN TERMINAL_DEV *TerminalDevice,
+ IN CHAR16 *WString
);
/**
@@ -1317,9 +1310,9 @@ VTUTF8TestString (
**/
VOID
UnicodeToUtf8 (
- IN CHAR16 Unicode,
- OUT UTF8_CHAR *Utf8Char,
- OUT UINT8 *ValidBytes
+ IN CHAR16 Unicode,
+ OUT UTF8_CHAR *Utf8Char,
+ OUT UINT8 *ValidBytes
);
/**
@@ -1333,9 +1326,9 @@ UnicodeToUtf8 (
**/
VOID
GetOneValidUtf8Char (
- IN TERMINAL_DEV *Utf8Device,
- OUT UTF8_CHAR *Utf8Char,
- OUT UINT8 *ValidBytes
+ IN TERMINAL_DEV *Utf8Device,
+ OUT UTF8_CHAR *Utf8Char,
+ OUT UINT8 *ValidBytes
);
/**
@@ -1355,9 +1348,9 @@ GetOneValidUtf8Char (
**/
VOID
Utf8ToUnicode (
- IN UTF8_CHAR Utf8Char,
- IN UINT8 ValidBytes,
- OUT CHAR16 *UnicodeChar
+ IN UTF8_CHAR Utf8Char,
+ IN UINT8 ValidBytes,
+ OUT CHAR16 *UnicodeChar
);
//
@@ -1425,7 +1418,7 @@ TerminalIsValidEfiCntlChar (
**/
BOOLEAN
IsHotPlugDevice (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
/**
@@ -1437,11 +1430,10 @@ IsHotPlugDevice (
VOID
EFIAPI
TerminalConInTimerHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
-
/**
Process key notify.
@@ -1451,8 +1443,8 @@ TerminalConInTimerHandler (
VOID
EFIAPI
KeyNotifyProcessHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
#endif
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
index 4d6ede4..2286264 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c
@@ -10,7 +10,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Terminal.h"
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existence of a keystroke via WaitForEvent () call.
@@ -27,8 +26,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
ReadKeyStrokeWorker (
- IN TERMINAL_DEV *TerminalDevice,
- OUT EFI_KEY_DATA *KeyData
+ IN TERMINAL_DEV *TerminalDevice,
+ OUT EFI_KEY_DATA *KeyData
)
{
if (KeyData == NULL) {
@@ -43,7 +42,6 @@ ReadKeyStrokeWorker (
}
return EFI_SUCCESS;
-
}
/**
@@ -84,9 +82,9 @@ TerminalConInReset (
//
// Make all the internal buffer empty for keys
//
- TerminalDevice->RawFiFo->Head = TerminalDevice->RawFiFo->Tail;
- TerminalDevice->UnicodeFiFo->Head = TerminalDevice->UnicodeFiFo->Tail;
- TerminalDevice->EfiKeyFiFo->Head = TerminalDevice->EfiKeyFiFo->Tail;
+ TerminalDevice->RawFiFo->Head = TerminalDevice->RawFiFo->Tail;
+ TerminalDevice->UnicodeFiFo->Head = TerminalDevice->UnicodeFiFo->Tail;
+ TerminalDevice->EfiKeyFiFo->Head = TerminalDevice->EfiKeyFiFo->Tail;
TerminalDevice->EfiKeyFiFoForNotify->Head = TerminalDevice->EfiKeyFiFoForNotify->Tail;
if (EFI_ERROR (Status)) {
@@ -127,7 +125,7 @@ TerminalConInReadKeyStroke (
//
// get TERMINAL_DEV from "This" parameter.
//
- TerminalDevice = TERMINAL_CON_IN_DEV_FROM_THIS (This);
+ TerminalDevice = TERMINAL_CON_IN_DEV_FROM_THIS (This);
Status = ReadKeyStrokeWorker (TerminalDevice, &KeyData);
if (EFI_ERROR (Status)) {
@@ -137,7 +135,6 @@ TerminalConInReadKeyStroke (
CopyMem (Key, &KeyData.Key, sizeof (EFI_INPUT_KEY));
return EFI_SUCCESS;
-
}
/**
@@ -165,15 +162,14 @@ IsKeyRegistered (
ASSERT (RegsiteredData != NULL && InputData != NULL);
if ((RegsiteredData->Key.ScanCode != InputData->Key.ScanCode) ||
- (RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar)) {
+ (RegsiteredData->Key.UnicodeChar != InputData->Key.UnicodeChar))
+ {
return FALSE;
}
return TRUE;
}
-
-
/**
Event notification function for EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.WaitForKeyEx event
Signal the event if there is key available
@@ -185,8 +181,8 @@ IsKeyRegistered (
VOID
EFIAPI
TerminalConInWaitForKeyEx (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
TerminalConInWaitForKey (Event, Context);
@@ -214,8 +210,8 @@ TerminalConInResetEx (
IN BOOLEAN ExtendedVerification
)
{
- EFI_STATUS Status;
- TERMINAL_DEV *TerminalDevice;
+ EFI_STATUS Status;
+ TERMINAL_DEV *TerminalDevice;
TerminalDevice = TERMINAL_CON_IN_EX_DEV_FROM_THIS (This);
@@ -225,10 +221,8 @@ TerminalConInResetEx (
}
return EFI_SUCCESS;
-
}
-
/**
Reads the next keystroke from the input device. The WaitForKey Event can
be used to test for existence of a keystroke via WaitForEvent () call.
@@ -248,11 +242,11 @@ TerminalConInResetEx (
EFI_STATUS
EFIAPI
TerminalConInReadKeyStrokeEx (
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
- OUT EFI_KEY_DATA *KeyData
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,
+ OUT EFI_KEY_DATA *KeyData
)
{
- TERMINAL_DEV *TerminalDevice;
+ TERMINAL_DEV *TerminalDevice;
if (KeyData == NULL) {
return EFI_INVALID_PARAMETER;
@@ -261,10 +255,8 @@ TerminalConInReadKeyStrokeEx (
TerminalDevice = TERMINAL_CON_IN_EX_DEV_FROM_THIS (This);
return ReadKeyStrokeWorker (TerminalDevice, KeyData);
-
}
-
/**
Set certain state for the input device.
@@ -298,7 +290,6 @@ TerminalConInSetState (
return EFI_SUCCESS;
}
-
/**
Register a notification function for a particular keystroke for the input device.
@@ -330,13 +321,13 @@ TerminalConInRegisterKeyNotify (
OUT VOID **NotifyHandle
)
{
- TERMINAL_DEV *TerminalDevice;
- TERMINAL_CONSOLE_IN_EX_NOTIFY *NewNotify;
- LIST_ENTRY *Link;
- LIST_ENTRY *NotifyList;
- TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
+ TERMINAL_DEV *TerminalDevice;
+ TERMINAL_CONSOLE_IN_EX_NOTIFY *NewNotify;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *NotifyList;
+ TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
- if (KeyData == NULL || NotifyHandle == NULL || KeyNotificationFunction == NULL) {
+ if ((KeyData == NULL) || (NotifyHandle == NULL) || (KeyNotificationFunction == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -346,7 +337,7 @@ TerminalConInRegisterKeyNotify (
// Return EFI_SUCCESS if the (KeyData, NotificationFunction) is already registered.
//
NotifyList = &TerminalDevice->NotifyList;
- for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList,Link); Link = GetNextNode (NotifyList,Link)) {
+ for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList, Link); Link = GetNextNode (NotifyList, Link)) {
CurrentNotify = CR (
Link,
TERMINAL_CONSOLE_IN_EX_NOTIFY,
@@ -364,7 +355,7 @@ TerminalConInRegisterKeyNotify (
//
// Allocate resource to save the notification function
//
- NewNotify = (TERMINAL_CONSOLE_IN_EX_NOTIFY *) AllocateZeroPool (sizeof (TERMINAL_CONSOLE_IN_EX_NOTIFY));
+ NewNotify = (TERMINAL_CONSOLE_IN_EX_NOTIFY *)AllocateZeroPool (sizeof (TERMINAL_CONSOLE_IN_EX_NOTIFY));
if (NewNotify == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -374,12 +365,11 @@ TerminalConInRegisterKeyNotify (
CopyMem (&NewNotify->KeyData, KeyData, sizeof (EFI_KEY_DATA));
InsertTailList (&TerminalDevice->NotifyList, &NewNotify->NotifyEntry);
- *NotifyHandle = NewNotify;
+ *NotifyHandle = NewNotify;
return EFI_SUCCESS;
}
-
/**
Remove a registered notification function from a particular keystroke.
@@ -399,10 +389,10 @@ TerminalConInUnregisterKeyNotify (
IN VOID *NotificationHandle
)
{
- TERMINAL_DEV *TerminalDevice;
- LIST_ENTRY *Link;
- TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
- LIST_ENTRY *NotifyList;
+ TERMINAL_DEV *TerminalDevice;
+ LIST_ENTRY *Link;
+ TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
+ LIST_ENTRY *NotifyList;
if (NotificationHandle == NULL) {
return EFI_INVALID_PARAMETER;
@@ -411,7 +401,7 @@ TerminalConInUnregisterKeyNotify (
TerminalDevice = TERMINAL_CON_IN_EX_DEV_FROM_THIS (This);
NotifyList = &TerminalDevice->NotifyList;
- for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList,Link); Link = GetNextNode (NotifyList,Link)) {
+ for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList, Link); Link = GetNextNode (NotifyList, Link)) {
CurrentNotify = CR (
Link,
TERMINAL_CONSOLE_IN_EX_NOTIFY,
@@ -444,37 +434,36 @@ TerminalConInUnregisterKeyNotify (
**/
VOID
TranslateRawDataToEfiKey (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
)
{
switch (TerminalDevice->TerminalType) {
+ case TerminalTypePcAnsi:
+ case TerminalTypeVt100:
+ case TerminalTypeVt100Plus:
+ case TerminalTypeTtyTerm:
+ case TerminalTypeLinux:
+ case TerminalTypeXtermR6:
+ case TerminalTypeVt400:
+ case TerminalTypeSCO:
+ AnsiRawDataToUnicode (TerminalDevice);
+ UnicodeToEfiKey (TerminalDevice);
+ break;
- case TerminalTypePcAnsi:
- case TerminalTypeVt100:
- case TerminalTypeVt100Plus:
- case TerminalTypeTtyTerm:
- case TerminalTypeLinux:
- case TerminalTypeXtermR6:
- case TerminalTypeVt400:
- case TerminalTypeSCO:
- AnsiRawDataToUnicode (TerminalDevice);
- UnicodeToEfiKey (TerminalDevice);
- break;
-
- case TerminalTypeVtUtf8:
- //
- // Process all the raw data in the RawFIFO,
- // put the processed key into UnicodeFIFO.
- //
- VTUTF8RawDataToUnicode (TerminalDevice);
+ case TerminalTypeVtUtf8:
+ //
+ // Process all the raw data in the RawFIFO,
+ // put the processed key into UnicodeFIFO.
+ //
+ VTUTF8RawDataToUnicode (TerminalDevice);
- //
- // Translate all the Unicode data in the UnicodeFIFO to Efi key,
- // then put into EfiKeyFIFO.
- //
- UnicodeToEfiKey (TerminalDevice);
+ //
+ // Translate all the Unicode data in the UnicodeFIFO to Efi key,
+ // then put into EfiKeyFIFO.
+ //
+ UnicodeToEfiKey (TerminalDevice);
- break;
+ break;
}
}
@@ -489,16 +478,15 @@ TranslateRawDataToEfiKey (
VOID
EFIAPI
TerminalConInWaitForKey (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
//
// Someone is waiting on the keystroke event, if there's
// a key pending, signal the event
//
- if (!IsEfiKeyFiFoEmpty ((TERMINAL_DEV *) Context)) {
-
+ if (!IsEfiKeyFiFoEmpty ((TERMINAL_DEV *)Context)) {
gBS->SignalEvent (Event);
}
}
@@ -512,8 +500,8 @@ TerminalConInWaitForKey (
VOID
EFIAPI
TerminalConInTimerHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
EFI_STATUS Status;
@@ -524,12 +512,13 @@ TerminalConInTimerHandler (
EFI_SERIAL_IO_PROTOCOL *SerialIo;
UINTN SerialInTimeOut;
- TerminalDevice = (TERMINAL_DEV *) Context;
+ TerminalDevice = (TERMINAL_DEV *)Context;
- SerialIo = TerminalDevice->SerialIo;
+ SerialIo = TerminalDevice->SerialIo;
if (SerialIo == NULL) {
- return ;
+ return;
}
+
//
// if current timeout value for serial device is not identical with
// the value saved in TERMINAL_DEV structure, then recalculate the
@@ -537,24 +526,23 @@ TerminalConInTimerHandler (
//
Mode = SerialIo->Mode;
if (Mode->Timeout != TerminalDevice->SerialInTimeOut) {
-
SerialInTimeOut = 0;
if (Mode->BaudRate != 0) {
//
// According to BAUD rate to calculate the timeout value.
//
- SerialInTimeOut = (1 + Mode->DataBits + Mode->StopBits) * 2 * 1000000 / (UINTN) Mode->BaudRate;
+ SerialInTimeOut = (1 + Mode->DataBits + Mode->StopBits) * 2 * 1000000 / (UINTN)Mode->BaudRate;
}
Status = SerialIo->SetAttributes (
- SerialIo,
- Mode->BaudRate,
- Mode->ReceiveFifoDepth,
- (UINT32) SerialInTimeOut,
- (EFI_PARITY_TYPE) (Mode->Parity),
- (UINT8) Mode->DataBits,
- (EFI_STOP_BITS_TYPE) (Mode->StopBits)
- );
+ SerialIo,
+ Mode->BaudRate,
+ Mode->ReceiveFifoDepth,
+ (UINT32)SerialInTimeOut,
+ (EFI_PARITY_TYPE)(Mode->Parity),
+ (UINT8)Mode->DataBits,
+ (EFI_STOP_BITS_TYPE)(Mode->StopBits)
+ );
if (EFI_ERROR (Status)) {
TerminalDevice->SerialInTimeOut = 0;
@@ -562,6 +550,7 @@ TerminalConInTimerHandler (
TerminalDevice->SerialInTimeOut = SerialInTimeOut;
}
}
+
//
// Check whether serial buffer is empty.
// Skip the key transfer loop only if the SerialIo protocol instance
@@ -574,7 +563,6 @@ TerminalConInTimerHandler (
// and insert the byte stream into RawFIFO.
//
while (!IsRawFiFoFull (TerminalDevice)) {
-
Status = GetOneKeyFromSerial (TerminalDevice->SerialIo, &Input);
if (EFI_ERROR (Status)) {
@@ -585,6 +573,7 @@ TerminalConInTimerHandler (
TerminalDevice->DevicePath
);
}
+
break;
}
@@ -608,20 +597,20 @@ TerminalConInTimerHandler (
VOID
EFIAPI
KeyNotifyProcessHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- BOOLEAN HasKey;
- TERMINAL_DEV *TerminalDevice;
- EFI_INPUT_KEY Key;
- EFI_KEY_DATA KeyData;
- LIST_ENTRY *Link;
- LIST_ENTRY *NotifyList;
- TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
- EFI_TPL OldTpl;
+ BOOLEAN HasKey;
+ TERMINAL_DEV *TerminalDevice;
+ EFI_INPUT_KEY Key;
+ EFI_KEY_DATA KeyData;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *NotifyList;
+ TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
+ EFI_TPL OldTpl;
- TerminalDevice = (TERMINAL_DEV *) Context;
+ TerminalDevice = (TERMINAL_DEV *)Context;
//
// Invoke notification functions.
@@ -643,6 +632,7 @@ KeyNotifyProcessHandler (
if (!HasKey) {
break;
}
+
for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList, Link); Link = GetNextNode (NotifyList, Link)) {
CurrentNotify = CR (Link, TERMINAL_CONSOLE_IN_EX_NOTIFY, NotifyEntry, TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE);
if (IsKeyRegistered (&CurrentNotify->KeyData, &KeyData)) {
@@ -679,16 +669,14 @@ GetOneKeyFromSerial (
//
// Read one key from serial I/O device.
//
- Status = SerialIo->Read (SerialIo, &Size, Output);
+ Status = SerialIo->Read (SerialIo, &Size, Output);
if (EFI_ERROR (Status)) {
-
if (Status == EFI_TIMEOUT) {
return EFI_NOT_READY;
}
return EFI_DEVICE_ERROR;
-
}
if (*Output == 0) {
@@ -711,11 +699,11 @@ GetOneKeyFromSerial (
**/
BOOLEAN
RawFiFoInsertOneKey (
- TERMINAL_DEV *TerminalDevice,
- UINT8 Input
+ TERMINAL_DEV *TerminalDevice,
+ UINT8 Input
)
{
- UINT8 Tail;
+ UINT8 Tail;
Tail = TerminalDevice->RawFiFo->Tail;
@@ -726,9 +714,9 @@ RawFiFoInsertOneKey (
return FALSE;
}
- TerminalDevice->RawFiFo->Data[Tail] = Input;
+ TerminalDevice->RawFiFo->Data[Tail] = Input;
- TerminalDevice->RawFiFo->Tail = (UINT8) ((Tail + 1) % (RAW_FIFO_MAX_NUMBER + 1));
+ TerminalDevice->RawFiFo->Tail = (UINT8)((Tail + 1) % (RAW_FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -749,7 +737,7 @@ RawFiFoRemoveOneKey (
UINT8 *Output
)
{
- UINT8 Head;
+ UINT8 Head;
Head = TerminalDevice->RawFiFo->Head;
@@ -761,9 +749,9 @@ RawFiFoRemoveOneKey (
return FALSE;
}
- *Output = TerminalDevice->RawFiFo->Data[Head];
+ *Output = TerminalDevice->RawFiFo->Data[Head];
- TerminalDevice->RawFiFo->Head = (UINT8) ((Head + 1) % (RAW_FIFO_MAX_NUMBER + 1));
+ TerminalDevice->RawFiFo->Head = (UINT8)((Head + 1) % (RAW_FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -803,14 +791,13 @@ IsRawFiFoFull (
TERMINAL_DEV *TerminalDevice
)
{
- UINT8 Tail;
- UINT8 Head;
+ UINT8 Tail;
+ UINT8 Head;
- Tail = TerminalDevice->RawFiFo->Tail;
- Head = TerminalDevice->RawFiFo->Head;
+ Tail = TerminalDevice->RawFiFo->Tail;
+ Head = TerminalDevice->RawFiFo->Head;
if (((Tail + 1) % (RAW_FIFO_MAX_NUMBER + 1)) == Head) {
-
return TRUE;
}
@@ -830,11 +817,11 @@ IsRawFiFoFull (
**/
BOOLEAN
EfiKeyFiFoForNotifyInsertOneKey (
- EFI_KEY_FIFO *EfiKeyFiFo,
- EFI_INPUT_KEY *Input
+ EFI_KEY_FIFO *EfiKeyFiFo,
+ EFI_INPUT_KEY *Input
)
{
- UINT8 Tail;
+ UINT8 Tail;
Tail = EfiKeyFiFo->Tail;
@@ -847,7 +834,7 @@ EfiKeyFiFoForNotifyInsertOneKey (
CopyMem (&EfiKeyFiFo->Data[Tail], Input, sizeof (EFI_INPUT_KEY));
- EfiKeyFiFo->Tail = (UINT8) ((Tail + 1) % (FIFO_MAX_NUMBER + 1));
+ EfiKeyFiFo->Tail = (UINT8)((Tail + 1) % (FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -864,11 +851,11 @@ EfiKeyFiFoForNotifyInsertOneKey (
**/
BOOLEAN
EfiKeyFiFoForNotifyRemoveOneKey (
- EFI_KEY_FIFO *EfiKeyFiFo,
- EFI_INPUT_KEY *Output
+ EFI_KEY_FIFO *EfiKeyFiFo,
+ EFI_INPUT_KEY *Output
)
{
- UINT8 Head;
+ UINT8 Head;
Head = EfiKeyFiFo->Head;
ASSERT (Head < FIFO_MAX_NUMBER + 1);
@@ -884,7 +871,7 @@ EfiKeyFiFoForNotifyRemoveOneKey (
CopyMem (Output, &EfiKeyFiFo->Data[Head], sizeof (EFI_INPUT_KEY));
- EfiKeyFiFo->Head = (UINT8) ((Head + 1) % (FIFO_MAX_NUMBER + 1));
+ EfiKeyFiFo->Head = (UINT8)((Head + 1) % (FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -900,7 +887,7 @@ EfiKeyFiFoForNotifyRemoveOneKey (
**/
BOOLEAN
IsEfiKeyFiFoForNotifyEmpty (
- EFI_KEY_FIFO *EfiKeyFiFo
+ EFI_KEY_FIFO *EfiKeyFiFo
)
{
if (EfiKeyFiFo->Head == EfiKeyFiFo->Tail) {
@@ -921,11 +908,11 @@ IsEfiKeyFiFoForNotifyEmpty (
**/
BOOLEAN
IsEfiKeyFiFoForNotifyFull (
- EFI_KEY_FIFO *EfiKeyFiFo
+ EFI_KEY_FIFO *EfiKeyFiFo
)
{
- UINT8 Tail;
- UINT8 Head;
+ UINT8 Tail;
+ UINT8 Head;
Tail = EfiKeyFiFo->Tail;
Head = EfiKeyFiFo->Head;
@@ -950,15 +937,15 @@ IsEfiKeyFiFoForNotifyFull (
**/
BOOLEAN
EfiKeyFiFoInsertOneKey (
- TERMINAL_DEV *TerminalDevice,
- EFI_INPUT_KEY *Key
+ TERMINAL_DEV *TerminalDevice,
+ EFI_INPUT_KEY *Key
)
{
- UINT8 Tail;
- LIST_ENTRY *Link;
- LIST_ENTRY *NotifyList;
- TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
- EFI_KEY_DATA KeyData;
+ UINT8 Tail;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *NotifyList;
+ TERMINAL_CONSOLE_IN_EX_NOTIFY *CurrentNotify;
+ EFI_KEY_DATA KeyData;
Tail = TerminalDevice->EfiKeyFiFo->Tail;
@@ -970,7 +957,7 @@ EfiKeyFiFoInsertOneKey (
// Signal KeyNotify process event if this key pressed matches any key registered.
//
NotifyList = &TerminalDevice->NotifyList;
- for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList,Link); Link = GetNextNode (NotifyList,Link)) {
+ for (Link = GetFirstNode (NotifyList); !IsNull (NotifyList, Link); Link = GetNextNode (NotifyList, Link)) {
CurrentNotify = CR (
Link,
TERMINAL_CONSOLE_IN_EX_NOTIFY,
@@ -988,6 +975,7 @@ EfiKeyFiFoInsertOneKey (
break;
}
}
+
if (IsEfiKeyFiFoFull (TerminalDevice)) {
//
// Efi Key FIFO is full
@@ -997,7 +985,7 @@ EfiKeyFiFoInsertOneKey (
CopyMem (&TerminalDevice->EfiKeyFiFo->Data[Tail], Key, sizeof (EFI_INPUT_KEY));
- TerminalDevice->EfiKeyFiFo->Tail = (UINT8) ((Tail + 1) % (FIFO_MAX_NUMBER + 1));
+ TerminalDevice->EfiKeyFiFo->Tail = (UINT8)((Tail + 1) % (FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -1014,11 +1002,11 @@ EfiKeyFiFoInsertOneKey (
**/
BOOLEAN
EfiKeyFiFoRemoveOneKey (
- TERMINAL_DEV *TerminalDevice,
- EFI_INPUT_KEY *Output
+ TERMINAL_DEV *TerminalDevice,
+ EFI_INPUT_KEY *Output
)
{
- UINT8 Head;
+ UINT8 Head;
Head = TerminalDevice->EfiKeyFiFo->Head;
ASSERT (Head < FIFO_MAX_NUMBER + 1);
@@ -1034,7 +1022,7 @@ EfiKeyFiFoRemoveOneKey (
CopyMem (Output, &TerminalDevice->EfiKeyFiFo->Data[Head], sizeof (EFI_INPUT_KEY));
- TerminalDevice->EfiKeyFiFo->Head = (UINT8) ((Head + 1) % (FIFO_MAX_NUMBER + 1));
+ TerminalDevice->EfiKeyFiFo->Head = (UINT8)((Head + 1) % (FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -1074,14 +1062,13 @@ IsEfiKeyFiFoFull (
TERMINAL_DEV *TerminalDevice
)
{
- UINT8 Tail;
- UINT8 Head;
+ UINT8 Tail;
+ UINT8 Head;
- Tail = TerminalDevice->EfiKeyFiFo->Tail;
- Head = TerminalDevice->EfiKeyFiFo->Head;
+ Tail = TerminalDevice->EfiKeyFiFo->Tail;
+ Head = TerminalDevice->EfiKeyFiFo->Head;
if (((Tail + 1) % (FIFO_MAX_NUMBER + 1)) == Head) {
-
return TRUE;
}
@@ -1101,16 +1088,15 @@ IsEfiKeyFiFoFull (
**/
BOOLEAN
UnicodeFiFoInsertOneKey (
- TERMINAL_DEV *TerminalDevice,
- UINT16 Input
+ TERMINAL_DEV *TerminalDevice,
+ UINT16 Input
)
{
- UINT8 Tail;
+ UINT8 Tail;
Tail = TerminalDevice->UnicodeFiFo->Tail;
ASSERT (Tail < FIFO_MAX_NUMBER + 1);
-
if (IsUnicodeFiFoFull (TerminalDevice)) {
//
// Unicode FIFO is full
@@ -1118,9 +1104,9 @@ UnicodeFiFoInsertOneKey (
return FALSE;
}
- TerminalDevice->UnicodeFiFo->Data[Tail] = Input;
+ TerminalDevice->UnicodeFiFo->Data[Tail] = Input;
- TerminalDevice->UnicodeFiFo->Tail = (UINT8) ((Tail + 1) % (FIFO_MAX_NUMBER + 1));
+ TerminalDevice->UnicodeFiFo->Tail = (UINT8)((Tail + 1) % (FIFO_MAX_NUMBER + 1));
return TRUE;
}
@@ -1140,14 +1126,14 @@ UnicodeFiFoRemoveOneKey (
UINT16 *Output
)
{
- UINT8 Head;
+ UINT8 Head;
Head = TerminalDevice->UnicodeFiFo->Head;
ASSERT (Head < FIFO_MAX_NUMBER + 1);
*Output = TerminalDevice->UnicodeFiFo->Data[Head];
- TerminalDevice->UnicodeFiFo->Head = (UINT8) ((Head + 1) % (FIFO_MAX_NUMBER + 1));
+ TerminalDevice->UnicodeFiFo->Head = (UINT8)((Head + 1) % (FIFO_MAX_NUMBER + 1));
}
/**
@@ -1185,21 +1171,19 @@ IsUnicodeFiFoFull (
TERMINAL_DEV *TerminalDevice
)
{
- UINT8 Tail;
- UINT8 Head;
+ UINT8 Tail;
+ UINT8 Head;
- Tail = TerminalDevice->UnicodeFiFo->Tail;
- Head = TerminalDevice->UnicodeFiFo->Head;
+ Tail = TerminalDevice->UnicodeFiFo->Tail;
+ Head = TerminalDevice->UnicodeFiFo->Head;
if (((Tail + 1) % (FIFO_MAX_NUMBER + 1)) == Head) {
-
return TRUE;
}
return FALSE;
}
-
/**
Update the Unicode characters from a terminal input device into EFI Keys FIFO.
@@ -1208,11 +1192,11 @@ IsUnicodeFiFoFull (
**/
VOID
UnicodeToEfiKeyFlushState (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
)
{
- EFI_INPUT_KEY Key;
- UINT32 InputState;
+ EFI_INPUT_KEY Key;
+ UINT32 InputState;
InputState = TerminalDevice->InputState;
@@ -1254,15 +1238,14 @@ UnicodeToEfiKeyFlushState (
// Cancel the timer.
//
gBS->SetTimer (
- TerminalDevice->TwoSecondTimeOut,
- TimerCancel,
- 0
- );
+ TerminalDevice->TwoSecondTimeOut,
+ TimerCancel,
+ 0
+ );
TerminalDevice->InputState = INPUT_STATE_DEFAULT;
}
-
/**
Converts a stream of Unicode characters from a terminal input device into EFI Keys that
can be read through the Simple Input Protocol.
@@ -1353,14 +1336,14 @@ Putty function key map:
**/
VOID
UnicodeToEfiKey (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
)
{
- EFI_STATUS Status;
- EFI_STATUS TimerStatus;
- UINT16 UnicodeChar;
- EFI_INPUT_KEY Key;
- BOOLEAN SetDefaultResetState;
+ EFI_STATUS Status;
+ EFI_STATUS TimerStatus;
+ UINT16 UnicodeChar;
+ EFI_INPUT_KEY Key;
+ BOOLEAN SetDefaultResetState;
TimerStatus = gBS->CheckEvent (TerminalDevice->TwoSecondTimeOut);
@@ -1370,7 +1353,6 @@ UnicodeToEfiKey (
}
while (!IsUnicodeFiFoEmpty (TerminalDevice) && !IsEfiKeyFiFoFull (TerminalDevice)) {
-
if (TerminalDevice->InputState != INPUT_STATE_DEFAULT) {
//
// Check to see if the 2 seconds timer has expired
@@ -1390,666 +1372,714 @@ UnicodeToEfiKey (
SetDefaultResetState = TRUE;
switch (TerminalDevice->InputState) {
- case INPUT_STATE_DEFAULT:
+ case INPUT_STATE_DEFAULT:
- break;
+ break;
- case INPUT_STATE_ESC:
+ case INPUT_STATE_ESC:
- if (UnicodeChar == LEFTOPENBRACKET) {
- TerminalDevice->InputState |= INPUT_STATE_LEFTOPENBRACKET;
- TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- continue;
- }
+ if (UnicodeChar == LEFTOPENBRACKET) {
+ TerminalDevice->InputState |= INPUT_STATE_LEFTOPENBRACKET;
+ TerminalDevice->ResetState = RESET_STATE_DEFAULT;
+ continue;
+ }
- if (UnicodeChar == 'O' && (TerminalDevice->TerminalType == TerminalTypeVt100 ||
- TerminalDevice->TerminalType == TerminalTypeTtyTerm ||
- TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt100Plus)) {
- TerminalDevice->InputState |= INPUT_STATE_O;
- TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- continue;
- }
+ if ((UnicodeChar == 'O') && ((TerminalDevice->TerminalType == TerminalTypeVt100) ||
+ (TerminalDevice->TerminalType == TerminalTypeTtyTerm) ||
+ (TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt100Plus)))
+ {
+ TerminalDevice->InputState |= INPUT_STATE_O;
+ TerminalDevice->ResetState = RESET_STATE_DEFAULT;
+ continue;
+ }
- Key.ScanCode = SCAN_NULL;
+ Key.ScanCode = SCAN_NULL;
+
+ if ((TerminalDevice->TerminalType == TerminalTypeVt100Plus) ||
+ (TerminalDevice->TerminalType == TerminalTypeVtUtf8))
+ {
+ switch (UnicodeChar) {
+ case '1':
+ Key.ScanCode = SCAN_F1;
+ break;
+ case '2':
+ Key.ScanCode = SCAN_F2;
+ break;
+ case '3':
+ Key.ScanCode = SCAN_F3;
+ break;
+ case '4':
+ Key.ScanCode = SCAN_F4;
+ break;
+ case '5':
+ Key.ScanCode = SCAN_F5;
+ break;
+ case '6':
+ Key.ScanCode = SCAN_F6;
+ break;
+ case '7':
+ Key.ScanCode = SCAN_F7;
+ break;
+ case '8':
+ Key.ScanCode = SCAN_F8;
+ break;
+ case '9':
+ Key.ScanCode = SCAN_F9;
+ break;
+ case '0':
+ Key.ScanCode = SCAN_F10;
+ break;
+ case '!':
+ Key.ScanCode = SCAN_F11;
+ break;
+ case '@':
+ Key.ScanCode = SCAN_F12;
+ break;
+ case 'h':
+ Key.ScanCode = SCAN_HOME;
+ break;
+ case 'k':
+ Key.ScanCode = SCAN_END;
+ break;
+ case '+':
+ Key.ScanCode = SCAN_INSERT;
+ break;
+ case '-':
+ Key.ScanCode = SCAN_DELETE;
+ break;
+ case '/':
+ Key.ScanCode = SCAN_PAGE_DOWN;
+ break;
+ case '?':
+ Key.ScanCode = SCAN_PAGE_UP;
+ break;
+ default:
+ break;
+ }
+ }
- if (TerminalDevice->TerminalType == TerminalTypeVt100Plus ||
- TerminalDevice->TerminalType == TerminalTypeVtUtf8) {
switch (UnicodeChar) {
- case '1':
- Key.ScanCode = SCAN_F1;
- break;
- case '2':
- Key.ScanCode = SCAN_F2;
- break;
- case '3':
- Key.ScanCode = SCAN_F3;
- break;
- case '4':
- Key.ScanCode = SCAN_F4;
- break;
- case '5':
- Key.ScanCode = SCAN_F5;
- break;
- case '6':
- Key.ScanCode = SCAN_F6;
- break;
- case '7':
- Key.ScanCode = SCAN_F7;
- break;
- case '8':
- Key.ScanCode = SCAN_F8;
- break;
- case '9':
- Key.ScanCode = SCAN_F9;
- break;
- case '0':
- Key.ScanCode = SCAN_F10;
- break;
- case '!':
- Key.ScanCode = SCAN_F11;
- break;
- case '@':
- Key.ScanCode = SCAN_F12;
- break;
- case 'h':
- Key.ScanCode = SCAN_HOME;
- break;
- case 'k':
- Key.ScanCode = SCAN_END;
- break;
- case '+':
- Key.ScanCode = SCAN_INSERT;
- break;
- case '-':
- Key.ScanCode = SCAN_DELETE;
- break;
- case '/':
- Key.ScanCode = SCAN_PAGE_DOWN;
- break;
- case '?':
- Key.ScanCode = SCAN_PAGE_UP;
- break;
- default :
- break;
+ case 'R':
+ if (TerminalDevice->ResetState == RESET_STATE_DEFAULT) {
+ TerminalDevice->ResetState = RESET_STATE_ESC_R;
+ SetDefaultResetState = FALSE;
+ } else if (TerminalDevice->ResetState == RESET_STATE_ESC_R_ESC_R) {
+ gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
+ }
+
+ Key.ScanCode = SCAN_NULL;
+ break;
+ case 'r':
+ if (TerminalDevice->ResetState == RESET_STATE_ESC_R) {
+ TerminalDevice->ResetState = RESET_STATE_ESC_R_ESC_R;
+ SetDefaultResetState = FALSE;
+ }
+
+ Key.ScanCode = SCAN_NULL;
+ break;
+ default:
+ break;
}
- }
- switch (UnicodeChar) {
- case 'R':
- if (TerminalDevice->ResetState == RESET_STATE_DEFAULT) {
- TerminalDevice->ResetState = RESET_STATE_ESC_R;
- SetDefaultResetState = FALSE;
- } else if (TerminalDevice->ResetState == RESET_STATE_ESC_R_ESC_R) {
- gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
+ if (SetDefaultResetState) {
+ TerminalDevice->ResetState = RESET_STATE_DEFAULT;
}
- Key.ScanCode = SCAN_NULL;
- break;
- case 'r':
- if (TerminalDevice->ResetState == RESET_STATE_ESC_R) {
- TerminalDevice->ResetState = RESET_STATE_ESC_R_ESC_R;
- SetDefaultResetState = FALSE;
+
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
}
- Key.ScanCode = SCAN_NULL;
- break;
- default :
+
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+
break;
- }
- if (SetDefaultResetState) {
+ case INPUT_STATE_ESC | INPUT_STATE_O:
+
TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- }
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
- UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
+ Key.ScanCode = SCAN_NULL;
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {
+ switch (UnicodeChar) {
+ case 'P':
+ Key.ScanCode = SCAN_F1;
+ break;
+ case 'Q':
+ Key.ScanCode = SCAN_F2;
+ break;
+ case 'w':
+ Key.ScanCode = SCAN_F3;
+ break;
+ case 'x':
+ Key.ScanCode = SCAN_F4;
+ break;
+ case 't':
+ Key.ScanCode = SCAN_F5;
+ break;
+ case 'u':
+ Key.ScanCode = SCAN_F6;
+ break;
+ case 'q':
+ Key.ScanCode = SCAN_F7;
+ break;
+ case 'r':
+ Key.ScanCode = SCAN_F8;
+ break;
+ case 'p':
+ Key.ScanCode = SCAN_F9;
+ break;
+ case 'M':
+ Key.ScanCode = SCAN_F10;
+ break;
+ default:
+ break;
+ }
+ } else if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
+ /* Also accept VT100 escape codes for F1-F4, HOME and END for TTY term */
+ switch (UnicodeChar) {
+ case 'P':
+ Key.ScanCode = SCAN_F1;
+ break;
+ case 'Q':
+ Key.ScanCode = SCAN_F2;
+ break;
+ case 'R':
+ Key.ScanCode = SCAN_F3;
+ break;
+ case 'S':
+ Key.ScanCode = SCAN_F4;
+ break;
+ case 'H':
+ Key.ScanCode = SCAN_HOME;
+ break;
+ case 'F':
+ Key.ScanCode = SCAN_END;
+ break;
+ }
+ } else if (TerminalDevice->TerminalType == TerminalTypeVt100Plus) {
+ switch (UnicodeChar) {
+ case 'P':
+ Key.ScanCode = SCAN_F1;
+ break;
+ case 'Q':
+ Key.ScanCode = SCAN_F2;
+ break;
+ case 'R':
+ Key.ScanCode = SCAN_F3;
+ break;
+ case 'S':
+ Key.ScanCode = SCAN_F4;
+ break;
+ case 'T':
+ Key.ScanCode = SCAN_F5;
+ break;
+ case 'U':
+ Key.ScanCode = SCAN_F6;
+ break;
+ case 'V':
+ Key.ScanCode = SCAN_F7;
+ break;
+ case 'W':
+ Key.ScanCode = SCAN_F8;
+ break;
+ case 'X':
+ Key.ScanCode = SCAN_F9;
+ break;
+ case 'Y':
+ Key.ScanCode = SCAN_F10;
+ break;
+ case 'Z':
+ Key.ScanCode = SCAN_F11;
+ break;
+ case '[':
+ Key.ScanCode = SCAN_F12;
+ break;
+ }
+ } else if (TerminalDevice->TerminalType == TerminalTypeXtermR6) {
+ switch (UnicodeChar) {
+ case 'P':
+ Key.ScanCode = SCAN_F1;
+ break;
+ case 'Q':
+ Key.ScanCode = SCAN_F2;
+ break;
+ case 'R':
+ Key.ScanCode = SCAN_F3;
+ break;
+ case 'S':
+ Key.ScanCode = SCAN_F4;
+ break;
+ }
+ }
- break;
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
+ }
- case INPUT_STATE_ESC | INPUT_STATE_O:
+ UnicodeToEfiKeyFlushState (TerminalDevice);
- TerminalDevice->ResetState = RESET_STATE_DEFAULT;
+ break;
- Key.ScanCode = SCAN_NULL;
+ case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET:
- if (TerminalDevice->TerminalType == TerminalTypeVt100) {
- switch (UnicodeChar) {
- case 'P':
- Key.ScanCode = SCAN_F1;
- break;
- case 'Q':
- Key.ScanCode = SCAN_F2;
- break;
- case 'w':
- Key.ScanCode = SCAN_F3;
- break;
- case 'x':
- Key.ScanCode = SCAN_F4;
- break;
- case 't':
- Key.ScanCode = SCAN_F5;
- break;
- case 'u':
- Key.ScanCode = SCAN_F6;
- break;
- case 'q':
- Key.ScanCode = SCAN_F7;
- break;
- case 'r':
- Key.ScanCode = SCAN_F8;
- break;
- case 'p':
- Key.ScanCode = SCAN_F9;
- break;
- case 'M':
- Key.ScanCode = SCAN_F10;
- break;
- default :
- break;
- }
- } else if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
- /* Also accept VT100 escape codes for F1-F4, HOME and END for TTY term */
- switch (UnicodeChar) {
- case 'P':
- Key.ScanCode = SCAN_F1;
- break;
- case 'Q':
- Key.ScanCode = SCAN_F2;
- break;
- case 'R':
- Key.ScanCode = SCAN_F3;
- break;
- case 'S':
- Key.ScanCode = SCAN_F4;
- break;
- case 'H':
- Key.ScanCode = SCAN_HOME;
- break;
- case 'F':
- Key.ScanCode = SCAN_END;
- break;
+ if ((UnicodeChar == '1') && ((TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt400) ||
+ (TerminalDevice->TerminalType == TerminalTypeLinux)))
+ {
+ TerminalDevice->InputState |= INPUT_STATE_1;
+ continue;
}
- } else if (TerminalDevice->TerminalType == TerminalTypeVt100Plus) {
- switch (UnicodeChar) {
- case 'P':
- Key.ScanCode = SCAN_F1;
- break;
- case 'Q':
- Key.ScanCode = SCAN_F2;
- break;
- case 'R':
- Key.ScanCode = SCAN_F3;
- break;
- case 'S':
- Key.ScanCode = SCAN_F4;
- break;
- case 'T':
- Key.ScanCode = SCAN_F5;
- break;
- case 'U':
- Key.ScanCode = SCAN_F6;
- break;
- case 'V':
- Key.ScanCode = SCAN_F7;
- break;
- case 'W':
- Key.ScanCode = SCAN_F8;
- break;
- case 'X':
- Key.ScanCode = SCAN_F9;
- break;
- case 'Y':
- Key.ScanCode = SCAN_F10;
- break;
- case 'Z':
- Key.ScanCode = SCAN_F11;
- break;
- case '[':
- Key.ScanCode = SCAN_F12;
- break;
+
+ if ((UnicodeChar == '2') && ((TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt400) ||
+ (TerminalDevice->TerminalType == TerminalTypeLinux)))
+ {
+ TerminalDevice->InputState |= INPUT_STATE_2;
+ continue;
}
- } else if (TerminalDevice->TerminalType == TerminalTypeXtermR6) {
- switch (UnicodeChar) {
- case 'P':
- Key.ScanCode = SCAN_F1;
- break;
- case 'Q':
- Key.ScanCode = SCAN_F2;
- break;
- case 'R':
- Key.ScanCode = SCAN_F3;
- break;
- case 'S':
- Key.ScanCode = SCAN_F4;
- break;
+
+ if ((UnicodeChar == LEFTOPENBRACKET) && (TerminalDevice->TerminalType == TerminalTypeLinux)) {
+ TerminalDevice->InputState |= INPUT_STATE_LEFTOPENBRACKET_2ND;
+ continue;
}
- }
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
- UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
+ TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ Key.ScanCode = SCAN_NULL;
- break;
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt100) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt100Plus) ||
+ (TerminalDevice->TerminalType == TerminalTypeVtUtf8) ||
+ (TerminalDevice->TerminalType == TerminalTypeTtyTerm) ||
+ (TerminalDevice->TerminalType == TerminalTypeLinux) ||
+ (TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt400) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ switch (UnicodeChar) {
+ case 'A':
+ Key.ScanCode = SCAN_UP;
+ break;
+ case 'B':
+ Key.ScanCode = SCAN_DOWN;
+ break;
+ case 'C':
+ Key.ScanCode = SCAN_RIGHT;
+ break;
+ case 'D':
+ Key.ScanCode = SCAN_LEFT;
+ break;
+ case 'H':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt100) ||
+ (TerminalDevice->TerminalType == TerminalTypeTtyTerm))
+ {
+ Key.ScanCode = SCAN_HOME;
+ }
- case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET:
+ break;
+ case 'F':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeTtyTerm))
+ {
+ Key.ScanCode = SCAN_END;
+ }
- if (UnicodeChar == '1' && (TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt400 ||
- TerminalDevice->TerminalType == TerminalTypeLinux)) {
- TerminalDevice->InputState |= INPUT_STATE_1;
- continue;
- }
+ break;
+ case 'K':
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {
+ Key.ScanCode = SCAN_END;
+ }
- if (UnicodeChar == '2' && (TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt400 ||
- TerminalDevice->TerminalType == TerminalTypeLinux)) {
- TerminalDevice->InputState |= INPUT_STATE_2;
- continue;
- }
+ break;
+ case 'L':
+ case '@':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt100))
+ {
+ Key.ScanCode = SCAN_INSERT;
+ }
- if (UnicodeChar == LEFTOPENBRACKET && TerminalDevice->TerminalType == TerminalTypeLinux) {
- TerminalDevice->InputState |= INPUT_STATE_LEFTOPENBRACKET_2ND;
- continue;
- }
+ break;
+ case 'X':
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {
+ Key.ScanCode = SCAN_DELETE;
+ } else if (TerminalDevice->TerminalType == TerminalTypeSCO) {
+ Key.ScanCode = SCAN_F12;
+ }
- TerminalDevice->ResetState = RESET_STATE_DEFAULT;
+ break;
+ case 'P':
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {
+ Key.ScanCode = SCAN_DELETE;
+ } else if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F4;
+ }
- Key.ScanCode = SCAN_NULL;
-
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeVt100 ||
- TerminalDevice->TerminalType == TerminalTypeVt100Plus ||
- TerminalDevice->TerminalType == TerminalTypeVtUtf8 ||
- TerminalDevice->TerminalType == TerminalTypeTtyTerm ||
- TerminalDevice->TerminalType == TerminalTypeLinux ||
- TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt400 ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- switch (UnicodeChar) {
- case 'A':
- Key.ScanCode = SCAN_UP;
- break;
- case 'B':
- Key.ScanCode = SCAN_DOWN;
- break;
- case 'C':
- Key.ScanCode = SCAN_RIGHT;
- break;
- case 'D':
- Key.ScanCode = SCAN_LEFT;
- break;
- case 'H':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeVt100 ||
- TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
- Key.ScanCode = SCAN_HOME;
- }
- break;
- case 'F':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
- Key.ScanCode = SCAN_END;
- }
- break;
- case 'K':
- if (TerminalDevice->TerminalType == TerminalTypeVt100) {
- Key.ScanCode = SCAN_END;
- }
- break;
- case 'L':
- case '@':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeVt100) {
- Key.ScanCode = SCAN_INSERT;
- }
- break;
- case 'X':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {
- Key.ScanCode = SCAN_DELETE;
- } else if (TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F12;
- }
- break;
- case 'P':
- if (TerminalDevice->TerminalType == TerminalTypeVt100) {
- Key.ScanCode = SCAN_DELETE;
- } else if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F4;
- }
- break;
- case 'I':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {
- Key.ScanCode = SCAN_PAGE_UP;
- }
- break;
- case 'V':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F10;
- }
- break;
- case '?':
- if (TerminalDevice->TerminalType == TerminalTypeVt100) {
- Key.ScanCode = SCAN_PAGE_UP;
- }
- break;
- case 'G':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {
- Key.ScanCode = SCAN_PAGE_DOWN;
- }
- break;
- case 'U':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F9;
- }
- break;
- case '/':
- if (TerminalDevice->TerminalType == TerminalTypeVt100) {
- Key.ScanCode = SCAN_PAGE_DOWN;
- }
- break;
- case 'M':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F1;
- }
- break;
- case 'N':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F2;
- }
- break;
- case 'O':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F3;
- }
- break;
- case 'Q':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F5;
- }
- break;
- case 'R':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F6;
- }
- break;
- case 'S':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F7;
- }
- break;
- case 'T':
- if (TerminalDevice->TerminalType == TerminalTypePcAnsi ||
- TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F8;
- }
- break;
- case 'W':
- if (TerminalDevice->TerminalType == TerminalTypeSCO) {
- Key.ScanCode = SCAN_F11;
- }
- break;
- default :
- break;
- }
- }
+ break;
+ case 'I':
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {
+ Key.ScanCode = SCAN_PAGE_UP;
+ }
- /*
- * The VT220 escape codes that the TTY terminal accepts all have
- * numeric codes, and there are no ambiguous prefixes shared with
- * other terminal types.
- */
- if (TerminalDevice->TerminalType == TerminalTypeTtyTerm &&
- Key.ScanCode == SCAN_NULL &&
- UnicodeChar >= '0' &&
- UnicodeChar <= '9') {
- TerminalDevice->TtyEscapeStr[0] = UnicodeChar;
- TerminalDevice->TtyEscapeIndex = 1;
- TerminalDevice->InputState |= INPUT_STATE_LEFTOPENBRACKET_TTY;
- continue;
- }
+ break;
+ case 'V':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F10;
+ }
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
- UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
+ break;
+ case '?':
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {
+ Key.ScanCode = SCAN_PAGE_UP;
+ }
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ break;
+ case 'G':
+ if (TerminalDevice->TerminalType == TerminalTypePcAnsi) {
+ Key.ScanCode = SCAN_PAGE_DOWN;
+ }
- break;
+ break;
+ case 'U':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F9;
+ }
- case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_1:
+ break;
+ case '/':
+ if (TerminalDevice->TerminalType == TerminalTypeVt100) {
+ Key.ScanCode = SCAN_PAGE_DOWN;
+ }
- TerminalDevice->ResetState = RESET_STATE_DEFAULT;
+ break;
+ case 'M':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F1;
+ }
- Key.ScanCode = SCAN_NULL;
+ break;
+ case 'N':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F2;
+ }
- if (TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt400 ||
- TerminalDevice->TerminalType == TerminalTypeLinux) {
- switch (UnicodeChar) {
- case '1':
- if (TerminalDevice->TerminalType == TerminalTypeVt400) {
- Key.ScanCode = SCAN_F1;
- }
- break;
- case '2':
- if (TerminalDevice->TerminalType == TerminalTypeVt400) {
- Key.ScanCode = SCAN_F2;
- }
- break;
- case '3':
- if (TerminalDevice->TerminalType == TerminalTypeVt400) {
- Key.ScanCode = SCAN_F3;
- }
- break;
- case '4':
- if (TerminalDevice->TerminalType == TerminalTypeVt400) {
- Key.ScanCode = SCAN_F4;
- }
- break;
- case '5':
- if (TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt400) {
- Key.ScanCode = SCAN_F5;
+ break;
+ case 'O':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F3;
+ }
+
+ break;
+ case 'Q':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F5;
+ }
+
+ break;
+ case 'R':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F6;
+ }
+
+ break;
+ case 'S':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F7;
+ }
+
+ break;
+ case 'T':
+ if ((TerminalDevice->TerminalType == TerminalTypePcAnsi) ||
+ (TerminalDevice->TerminalType == TerminalTypeSCO))
+ {
+ Key.ScanCode = SCAN_F8;
+ }
+
+ break;
+ case 'W':
+ if (TerminalDevice->TerminalType == TerminalTypeSCO) {
+ Key.ScanCode = SCAN_F11;
+ }
+
+ break;
+ default:
+ break;
}
- break;
- case '7':
- Key.ScanCode = SCAN_F6;
- break;
- case '8':
- Key.ScanCode = SCAN_F7;
- break;
- case '9':
- Key.ScanCode = SCAN_F8;
- break;
}
- }
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ /*
+ * The VT220 escape codes that the TTY terminal accepts all have
+ * numeric codes, and there are no ambiguous prefixes shared with
+ * other terminal types.
+ */
+ if ((TerminalDevice->TerminalType == TerminalTypeTtyTerm) &&
+ (Key.ScanCode == SCAN_NULL) &&
+ (UnicodeChar >= '0') &&
+ (UnicodeChar <= '9'))
+ {
+ TerminalDevice->TtyEscapeStr[0] = UnicodeChar;
+ TerminalDevice->TtyEscapeIndex = 1;
+ TerminalDevice->InputState |= INPUT_STATE_LEFTOPENBRACKET_TTY;
+ continue;
+ }
+
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
+ }
+
UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ break;
- break;
+ case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_1:
- case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_2:
+ TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
- Key.ScanCode = SCAN_NULL;
- if (TerminalDevice->TerminalType == TerminalTypeXtermR6 ||
- TerminalDevice->TerminalType == TerminalTypeVt400 ||
- TerminalDevice->TerminalType == TerminalTypeLinux) {
- switch (UnicodeChar) {
- case '0':
- Key.ScanCode = SCAN_F9;
- break;
- case '1':
- Key.ScanCode = SCAN_F10;
- break;
- case '3':
- Key.ScanCode = SCAN_F11;
- break;
- case '4':
- Key.ScanCode = SCAN_F12;
- break;
- }
- }
+ Key.ScanCode = SCAN_NULL;
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
- UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
+ if ((TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt400) ||
+ (TerminalDevice->TerminalType == TerminalTypeLinux))
+ {
+ switch (UnicodeChar) {
+ case '1':
+ if (TerminalDevice->TerminalType == TerminalTypeVt400) {
+ Key.ScanCode = SCAN_F1;
+ }
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ break;
+ case '2':
+ if (TerminalDevice->TerminalType == TerminalTypeVt400) {
+ Key.ScanCode = SCAN_F2;
+ }
- break;
+ break;
+ case '3':
+ if (TerminalDevice->TerminalType == TerminalTypeVt400) {
+ Key.ScanCode = SCAN_F3;
+ }
- case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_LEFTOPENBRACKET_2ND:
+ break;
+ case '4':
+ if (TerminalDevice->TerminalType == TerminalTypeVt400) {
+ Key.ScanCode = SCAN_F4;
+ }
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
- Key.ScanCode = SCAN_NULL;
+ break;
+ case '5':
+ if ((TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt400))
+ {
+ Key.ScanCode = SCAN_F5;
+ }
- if (TerminalDevice->TerminalType == TerminalTypeLinux) {
- switch (UnicodeChar) {
- case 'A':
- Key.ScanCode = SCAN_F1;
- break;
- case 'B':
- Key.ScanCode = SCAN_F2;
- break;
- case 'C':
- Key.ScanCode = SCAN_F3;
- break;
- case 'D':
- Key.ScanCode = SCAN_F4;
- break;
- case 'E':
- Key.ScanCode = SCAN_F5;
- break;
+ break;
+ case '7':
+ Key.ScanCode = SCAN_F6;
+ break;
+ case '8':
+ Key.ScanCode = SCAN_F7;
+ break;
+ case '9':
+ Key.ScanCode = SCAN_F8;
+ break;
+ }
}
- }
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
+ }
+
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+
+ break;
+
+ case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_2:
+
TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ Key.ScanCode = SCAN_NULL;
+ if ((TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
+ (TerminalDevice->TerminalType == TerminalTypeVt400) ||
+ (TerminalDevice->TerminalType == TerminalTypeLinux))
+ {
+ switch (UnicodeChar) {
+ case '0':
+ Key.ScanCode = SCAN_F9;
+ break;
+ case '1':
+ Key.ScanCode = SCAN_F10;
+ break;
+ case '3':
+ Key.ScanCode = SCAN_F11;
+ break;
+ case '4':
+ Key.ScanCode = SCAN_F12;
+ break;
+ }
+ }
+
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
+ }
+
UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ break;
- break;
+ case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_LEFTOPENBRACKET_2ND:
- case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_LEFTOPENBRACKET_TTY:
- /*
- * Here we handle the VT220 escape codes that we accept. This
- * state is only used by the TTY terminal type.
- */
- Key.ScanCode = SCAN_NULL;
- if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ Key.ScanCode = SCAN_NULL;
- if (UnicodeChar == '~' && TerminalDevice->TtyEscapeIndex <= 2) {
- UINT16 EscCode;
- TerminalDevice->TtyEscapeStr[TerminalDevice->TtyEscapeIndex] = 0; /* Terminate string */
- EscCode = (UINT16) StrDecimalToUintn(TerminalDevice->TtyEscapeStr);
- switch (EscCode) {
- case 2:
- Key.ScanCode = SCAN_INSERT;
+ if (TerminalDevice->TerminalType == TerminalTypeLinux) {
+ switch (UnicodeChar) {
+ case 'A':
+ Key.ScanCode = SCAN_F1;
break;
- case 3:
- Key.ScanCode = SCAN_DELETE;
+ case 'B':
+ Key.ScanCode = SCAN_F2;
break;
- case 5:
- Key.ScanCode = SCAN_PAGE_UP;
+ case 'C':
+ Key.ScanCode = SCAN_F3;
break;
- case 6:
- Key.ScanCode = SCAN_PAGE_DOWN;
+ case 'D':
+ Key.ScanCode = SCAN_F4;
+ break;
+ case 'E':
+ Key.ScanCode = SCAN_F5;
break;
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- Key.ScanCode = SCAN_F1 + EscCode - 11;
- break;
- case 17:
- case 18:
- case 19:
- case 20:
- case 21:
- Key.ScanCode = SCAN_F6 + EscCode - 17;
- break;
- case 23:
- case 24:
- Key.ScanCode = SCAN_F11 + EscCode - 23;
- break;
- default:
- break;
}
- } else if (TerminalDevice->TtyEscapeIndex == 1){
- /* 2 character escape code */
- TerminalDevice->TtyEscapeStr[TerminalDevice->TtyEscapeIndex++] = UnicodeChar;
- continue;
}
- else {
- DEBUG ((DEBUG_ERROR, "Unexpected state in escape2\n"));
+
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
}
- }
- TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- if (Key.ScanCode != SCAN_NULL) {
- Key.UnicodeChar = 0;
- EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
- TerminalDevice->InputState = INPUT_STATE_DEFAULT;
UnicodeToEfiKeyFlushState (TerminalDevice);
- continue;
- }
- UnicodeToEfiKeyFlushState (TerminalDevice);
- break;
+ break;
- default:
- //
- // Invalid state. This should never happen.
- //
- ASSERT (FALSE);
+ case INPUT_STATE_ESC | INPUT_STATE_LEFTOPENBRACKET | INPUT_STATE_LEFTOPENBRACKET_TTY:
+ /*
+ * Here we handle the VT220 escape codes that we accept. This
+ * state is only used by the TTY terminal type.
+ */
+ Key.ScanCode = SCAN_NULL;
+ if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
+ if ((UnicodeChar == '~') && (TerminalDevice->TtyEscapeIndex <= 2)) {
+ UINT16 EscCode;
+ TerminalDevice->TtyEscapeStr[TerminalDevice->TtyEscapeIndex] = 0; /* Terminate string */
+ EscCode = (UINT16)StrDecimalToUintn (TerminalDevice->TtyEscapeStr);
+ switch (EscCode) {
+ case 2:
+ Key.ScanCode = SCAN_INSERT;
+ break;
+ case 3:
+ Key.ScanCode = SCAN_DELETE;
+ break;
+ case 5:
+ Key.ScanCode = SCAN_PAGE_UP;
+ break;
+ case 6:
+ Key.ScanCode = SCAN_PAGE_DOWN;
+ break;
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ Key.ScanCode = SCAN_F1 + EscCode - 11;
+ break;
+ case 17:
+ case 18:
+ case 19:
+ case 20:
+ case 21:
+ Key.ScanCode = SCAN_F6 + EscCode - 17;
+ break;
+ case 23:
+ case 24:
+ Key.ScanCode = SCAN_F11 + EscCode - 23;
+ break;
+ default:
+ break;
+ }
+ } else if (TerminalDevice->TtyEscapeIndex == 1) {
+ /* 2 character escape code */
+ TerminalDevice->TtyEscapeStr[TerminalDevice->TtyEscapeIndex++] = UnicodeChar;
+ continue;
+ } else {
+ DEBUG ((DEBUG_ERROR, "Unexpected state in escape2\n"));
+ }
+ }
- UnicodeToEfiKeyFlushState (TerminalDevice);
+ TerminalDevice->ResetState = RESET_STATE_DEFAULT;
- break;
+ if (Key.ScanCode != SCAN_NULL) {
+ Key.UnicodeChar = 0;
+ EfiKeyFiFoInsertOneKey (TerminalDevice, &Key);
+ TerminalDevice->InputState = INPUT_STATE_DEFAULT;
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ continue;
+ }
+
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+ break;
+
+ default:
+ //
+ // Invalid state. This should never happen.
+ //
+ ASSERT (FALSE);
+
+ UnicodeToEfiKeyFlushState (TerminalDevice);
+
+ break;
}
if (UnicodeChar == ESC) {
@@ -2061,7 +2091,7 @@ UnicodeToEfiKey (
}
if (TerminalDevice->InputState != INPUT_STATE_DEFAULT) {
- Status = gBS->SetTimer(
+ Status = gBS->SetTimer (
TerminalDevice->TwoSecondTimeOut,
TimerRelative,
(UINT64)20000000
@@ -2078,8 +2108,7 @@ UnicodeToEfiKey (
if (TerminalDevice->TerminalType == TerminalTypeTtyTerm) {
Key.ScanCode = SCAN_NULL;
Key.UnicodeChar = CHAR_BACKSPACE;
- }
- else {
+ } else {
Key.ScanCode = SCAN_DELETE;
Key.UnicodeChar = 0;
}
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
index 4959677..7809869 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
@@ -16,69 +16,69 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
//
UNICODE_TO_CHAR UnicodeToPcAnsiOrAscii[] = {
- { BOXDRAW_HORIZONTAL, 0xc4, L'-' },
- { BOXDRAW_VERTICAL, 0xb3, L'|' },
- { BOXDRAW_DOWN_RIGHT, 0xda, L'/' },
+ { BOXDRAW_HORIZONTAL, 0xc4, L'-' },
+ { BOXDRAW_VERTICAL, 0xb3, L'|' },
+ { BOXDRAW_DOWN_RIGHT, 0xda, L'/' },
{ BOXDRAW_DOWN_LEFT, 0xbf, L'\\' },
{ BOXDRAW_UP_RIGHT, 0xc0, L'\\' },
- { BOXDRAW_UP_LEFT, 0xd9, L'/' },
- { BOXDRAW_VERTICAL_RIGHT, 0xc3, L'|' },
- { BOXDRAW_VERTICAL_LEFT, 0xb4, L'|' },
- { BOXDRAW_DOWN_HORIZONTAL, 0xc2, L'+' },
- { BOXDRAW_UP_HORIZONTAL, 0xc1, L'+' },
- { BOXDRAW_VERTICAL_HORIZONTAL, 0xc5, L'+' },
- { BOXDRAW_DOUBLE_HORIZONTAL, 0xcd, L'-' },
- { BOXDRAW_DOUBLE_VERTICAL, 0xba, L'|' },
- { BOXDRAW_DOWN_RIGHT_DOUBLE, 0xd5, L'/' },
- { BOXDRAW_DOWN_DOUBLE_RIGHT, 0xd6, L'/' },
- { BOXDRAW_DOUBLE_DOWN_RIGHT, 0xc9, L'/' },
+ { BOXDRAW_UP_LEFT, 0xd9, L'/' },
+ { BOXDRAW_VERTICAL_RIGHT, 0xc3, L'|' },
+ { BOXDRAW_VERTICAL_LEFT, 0xb4, L'|' },
+ { BOXDRAW_DOWN_HORIZONTAL, 0xc2, L'+' },
+ { BOXDRAW_UP_HORIZONTAL, 0xc1, L'+' },
+ { BOXDRAW_VERTICAL_HORIZONTAL, 0xc5, L'+' },
+ { BOXDRAW_DOUBLE_HORIZONTAL, 0xcd, L'-' },
+ { BOXDRAW_DOUBLE_VERTICAL, 0xba, L'|' },
+ { BOXDRAW_DOWN_RIGHT_DOUBLE, 0xd5, L'/' },
+ { BOXDRAW_DOWN_DOUBLE_RIGHT, 0xd6, L'/' },
+ { BOXDRAW_DOUBLE_DOWN_RIGHT, 0xc9, L'/' },
{ BOXDRAW_DOWN_LEFT_DOUBLE, 0xb8, L'\\' },
{ BOXDRAW_DOWN_DOUBLE_LEFT, 0xb7, L'\\' },
{ BOXDRAW_DOUBLE_DOWN_LEFT, 0xbb, L'\\' },
{ BOXDRAW_UP_RIGHT_DOUBLE, 0xd4, L'\\' },
{ BOXDRAW_UP_DOUBLE_RIGHT, 0xd3, L'\\' },
{ BOXDRAW_DOUBLE_UP_RIGHT, 0xc8, L'\\' },
- { BOXDRAW_UP_LEFT_DOUBLE, 0xbe, L'/' },
- { BOXDRAW_UP_DOUBLE_LEFT, 0xbd, L'/' },
- { BOXDRAW_DOUBLE_UP_LEFT, 0xbc, L'/' },
- { BOXDRAW_VERTICAL_RIGHT_DOUBLE, 0xc6, L'|' },
- { BOXDRAW_VERTICAL_DOUBLE_RIGHT, 0xc7, L'|' },
- { BOXDRAW_DOUBLE_VERTICAL_RIGHT, 0xcc, L'|' },
- { BOXDRAW_VERTICAL_LEFT_DOUBLE, 0xb5, L'|' },
- { BOXDRAW_VERTICAL_DOUBLE_LEFT, 0xb6, L'|' },
- { BOXDRAW_DOUBLE_VERTICAL_LEFT, 0xb9, L'|' },
- { BOXDRAW_DOWN_HORIZONTAL_DOUBLE, 0xd1, L'+' },
- { BOXDRAW_DOWN_DOUBLE_HORIZONTAL, 0xd2, L'+' },
- { BOXDRAW_DOUBLE_DOWN_HORIZONTAL, 0xcb, L'+' },
- { BOXDRAW_UP_HORIZONTAL_DOUBLE, 0xcf, L'+' },
- { BOXDRAW_UP_DOUBLE_HORIZONTAL, 0xd0, L'+' },
- { BOXDRAW_DOUBLE_UP_HORIZONTAL, 0xca, L'+' },
- { BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE, 0xd8, L'+' },
- { BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL, 0xd7, L'+' },
- { BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL, 0xce, L'+' },
-
- { BLOCKELEMENT_FULL_BLOCK, 0xdb, L'*' },
- { BLOCKELEMENT_LIGHT_SHADE, 0xb0, L'+' },
-
- { GEOMETRICSHAPE_UP_TRIANGLE, '^', L'^' },
- { GEOMETRICSHAPE_RIGHT_TRIANGLE, '>', L'>' },
- { GEOMETRICSHAPE_DOWN_TRIANGLE, 'v', L'v' },
- { GEOMETRICSHAPE_LEFT_TRIANGLE, '<', L'<' },
-
- { ARROW_LEFT, '<', L'<' },
- { ARROW_UP, '^', L'^' },
- { ARROW_RIGHT, '>', L'>' },
- { ARROW_DOWN, 'v', L'v' },
+ { BOXDRAW_UP_LEFT_DOUBLE, 0xbe, L'/' },
+ { BOXDRAW_UP_DOUBLE_LEFT, 0xbd, L'/' },
+ { BOXDRAW_DOUBLE_UP_LEFT, 0xbc, L'/' },
+ { BOXDRAW_VERTICAL_RIGHT_DOUBLE, 0xc6, L'|' },
+ { BOXDRAW_VERTICAL_DOUBLE_RIGHT, 0xc7, L'|' },
+ { BOXDRAW_DOUBLE_VERTICAL_RIGHT, 0xcc, L'|' },
+ { BOXDRAW_VERTICAL_LEFT_DOUBLE, 0xb5, L'|' },
+ { BOXDRAW_VERTICAL_DOUBLE_LEFT, 0xb6, L'|' },
+ { BOXDRAW_DOUBLE_VERTICAL_LEFT, 0xb9, L'|' },
+ { BOXDRAW_DOWN_HORIZONTAL_DOUBLE, 0xd1, L'+' },
+ { BOXDRAW_DOWN_DOUBLE_HORIZONTAL, 0xd2, L'+' },
+ { BOXDRAW_DOUBLE_DOWN_HORIZONTAL, 0xcb, L'+' },
+ { BOXDRAW_UP_HORIZONTAL_DOUBLE, 0xcf, L'+' },
+ { BOXDRAW_UP_DOUBLE_HORIZONTAL, 0xd0, L'+' },
+ { BOXDRAW_DOUBLE_UP_HORIZONTAL, 0xca, L'+' },
+ { BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE, 0xd8, L'+' },
+ { BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL, 0xd7, L'+' },
+ { BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL, 0xce, L'+' },
+
+ { BLOCKELEMENT_FULL_BLOCK, 0xdb, L'*' },
+ { BLOCKELEMENT_LIGHT_SHADE, 0xb0, L'+' },
+
+ { GEOMETRICSHAPE_UP_TRIANGLE, '^', L'^' },
+ { GEOMETRICSHAPE_RIGHT_TRIANGLE, '>', L'>' },
+ { GEOMETRICSHAPE_DOWN_TRIANGLE, 'v', L'v' },
+ { GEOMETRICSHAPE_LEFT_TRIANGLE, '<', L'<' },
+
+ { ARROW_LEFT, '<', L'<' },
+ { ARROW_UP, '^', L'^' },
+ { ARROW_RIGHT, '>', L'>' },
+ { ARROW_DOWN, 'v', L'v' },
{ 0x0000, 0x00, L'\0' }
};
-CHAR16 mSetModeString[] = { ESC, '[', '=', '3', 'h', 0 };
-CHAR16 mSetAttributeString[] = { ESC, '[', '0', 'm', ESC, '[', '4', '0', 'm', ESC, '[', '4', '0', 'm', 0 };
-CHAR16 mClearScreenString[] = { ESC, '[', '2', 'J', 0 };
-CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 };
-CHAR16 mCursorForwardString[] = { ESC, '[', '0', '0', 'C', 0 };
-CHAR16 mCursorBackwardString[] = { ESC, '[', '0', '0', 'D', 0 };
+CHAR16 mSetModeString[] = { ESC, '[', '=', '3', 'h', 0 };
+CHAR16 mSetAttributeString[] = { ESC, '[', '0', 'm', ESC, '[', '4', '0', 'm', ESC, '[', '4', '0', 'm', 0 };
+CHAR16 mClearScreenString[] = { ESC, '[', '2', 'J', 0 };
+CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 };
+CHAR16 mCursorForwardString[] = { ESC, '[', '0', '0', 'C', 0 };
+CHAR16 mCursorBackwardString[] = { ESC, '[', '0', '0', 'D', 0 };
//
// Body of the ConOut functions
@@ -147,7 +147,6 @@ TerminalConOutReset (
return Status;
}
-
/**
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString().
@@ -172,26 +171,26 @@ TerminalConOutOutputString (
IN CHAR16 *WString
)
{
- TERMINAL_DEV *TerminalDevice;
- EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;
- UINTN MaxColumn;
- UINTN MaxRow;
- UINTN Length;
- UTF8_CHAR Utf8Char;
- CHAR8 GraphicChar;
- CHAR8 AsciiChar;
- EFI_STATUS Status;
- UINT8 ValidBytes;
- CHAR8 CrLfStr[2];
+ TERMINAL_DEV *TerminalDevice;
+ EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;
+ UINTN MaxColumn;
+ UINTN MaxRow;
+ UINTN Length;
+ UTF8_CHAR Utf8Char;
+ CHAR8 GraphicChar;
+ CHAR8 AsciiChar;
+ EFI_STATUS Status;
+ UINT8 ValidBytes;
+ CHAR8 CrLfStr[2];
//
// flag used to indicate whether condition happens which will cause
// return EFI_WARN_UNKNOWN_GLYPH
//
- BOOLEAN Warning;
+ BOOLEAN Warning;
- ValidBytes = 0;
- Warning = FALSE;
- AsciiChar = 0;
+ ValidBytes = 0;
+ Warning = FALSE;
+ AsciiChar = 0;
//
// get Terminal device data structure pointer.
@@ -214,137 +213,134 @@ TerminalConOutOutputString (
&MaxRow
);
- for (; *WString != CHAR_NULL; WString++) {
-
+ for ( ; *WString != CHAR_NULL; WString++) {
switch (TerminalDevice->TerminalType) {
-
- case TerminalTypePcAnsi:
- case TerminalTypeVt100:
- case TerminalTypeVt100Plus:
- case TerminalTypeTtyTerm:
- case TerminalTypeLinux:
- case TerminalTypeXtermR6:
- case TerminalTypeVt400:
- case TerminalTypeSCO:
-
- if (!TerminalIsValidTextGraphics (*WString, &GraphicChar, &AsciiChar)) {
- //
- // If it's not a graphic character convert Unicode to ASCII.
- //
- GraphicChar = (CHAR8) *WString;
-
- if (!(TerminalIsValidAscii (GraphicChar) || TerminalIsValidEfiCntlChar (GraphicChar))) {
+ case TerminalTypePcAnsi:
+ case TerminalTypeVt100:
+ case TerminalTypeVt100Plus:
+ case TerminalTypeTtyTerm:
+ case TerminalTypeLinux:
+ case TerminalTypeXtermR6:
+ case TerminalTypeVt400:
+ case TerminalTypeSCO:
+
+ if (!TerminalIsValidTextGraphics (*WString, &GraphicChar, &AsciiChar)) {
//
- // when this driver use the OutputString to output control string,
- // TerminalDevice->OutputEscChar is set to let the Esc char
- // to be output to the terminal emulation software.
+ // If it's not a graphic character convert Unicode to ASCII.
//
- if ((GraphicChar == 27) && TerminalDevice->OutputEscChar) {
- GraphicChar = 27;
- } else {
- GraphicChar = '?';
- Warning = TRUE;
+ GraphicChar = (CHAR8)*WString;
+
+ if (!(TerminalIsValidAscii (GraphicChar) || TerminalIsValidEfiCntlChar (GraphicChar))) {
+ //
+ // when this driver use the OutputString to output control string,
+ // TerminalDevice->OutputEscChar is set to let the Esc char
+ // to be output to the terminal emulation software.
+ //
+ if ((GraphicChar == 27) && TerminalDevice->OutputEscChar) {
+ GraphicChar = 27;
+ } else {
+ GraphicChar = '?';
+ Warning = TRUE;
+ }
}
- }
-
- AsciiChar = GraphicChar;
- }
+ AsciiChar = GraphicChar;
+ }
- if (TerminalDevice->TerminalType != TerminalTypePcAnsi) {
- GraphicChar = AsciiChar;
- }
+ if (TerminalDevice->TerminalType != TerminalTypePcAnsi) {
+ GraphicChar = AsciiChar;
+ }
- Length = 1;
+ Length = 1;
- Status = TerminalDevice->SerialIo->Write (
- TerminalDevice->SerialIo,
- &Length,
- &GraphicChar
- );
+ Status = TerminalDevice->SerialIo->Write (
+ TerminalDevice->SerialIo,
+ &Length,
+ &GraphicChar
+ );
- if (EFI_ERROR (Status)) {
- goto OutputError;
- }
+ if (EFI_ERROR (Status)) {
+ goto OutputError;
+ }
- break;
+ break;
+
+ case TerminalTypeVtUtf8:
+ UnicodeToUtf8 (*WString, &Utf8Char, &ValidBytes);
+ Length = ValidBytes;
+ Status = TerminalDevice->SerialIo->Write (
+ TerminalDevice->SerialIo,
+ &Length,
+ (UINT8 *)&Utf8Char
+ );
+ if (EFI_ERROR (Status)) {
+ goto OutputError;
+ }
- case TerminalTypeVtUtf8:
- UnicodeToUtf8 (*WString, &Utf8Char, &ValidBytes);
- Length = ValidBytes;
- Status = TerminalDevice->SerialIo->Write (
- TerminalDevice->SerialIo,
- &Length,
- (UINT8 *) &Utf8Char
- );
- if (EFI_ERROR (Status)) {
- goto OutputError;
- }
- break;
+ break;
}
+
//
// Update cursor position.
//
switch (*WString) {
+ case CHAR_BACKSPACE:
+ if (Mode->CursorColumn > 0) {
+ Mode->CursorColumn--;
+ }
- case CHAR_BACKSPACE:
- if (Mode->CursorColumn > 0) {
- Mode->CursorColumn--;
- }
- break;
-
- case CHAR_LINEFEED:
- if (Mode->CursorRow < (INT32) (MaxRow - 1)) {
- Mode->CursorRow++;
- }
- break;
-
- case CHAR_CARRIAGE_RETURN:
- Mode->CursorColumn = 0;
- break;
-
- default:
- if (Mode->CursorColumn < (INT32) (MaxColumn - 1)) {
-
- Mode->CursorColumn++;
-
- } else {
+ break;
- Mode->CursorColumn = 0;
- if (Mode->CursorRow < (INT32) (MaxRow - 1)) {
+ case CHAR_LINEFEED:
+ if (Mode->CursorRow < (INT32)(MaxRow - 1)) {
Mode->CursorRow++;
}
- if (TerminalDevice->TerminalType == TerminalTypeTtyTerm &&
- !TerminalDevice->OutputEscChar) {
- //
- // We've written the last character on the line. The
- // terminal doesn't actually wrap its cursor until we print
- // the next character, but the driver thinks it has wrapped
- // already. Print CR LF to synchronize the terminal with
- // the driver, but only if we're not in the middle of
- // printing an escape sequence.
- //
- CrLfStr[0] = '\r';
- CrLfStr[1] = '\n';
+ break;
- Length = sizeof(CrLfStr);
-
- Status = TerminalDevice->SerialIo->Write (
- TerminalDevice->SerialIo,
- &Length,
- CrLfStr
- );
+ case CHAR_CARRIAGE_RETURN:
+ Mode->CursorColumn = 0;
+ break;
+
+ default:
+ if (Mode->CursorColumn < (INT32)(MaxColumn - 1)) {
+ Mode->CursorColumn++;
+ } else {
+ Mode->CursorColumn = 0;
+ if (Mode->CursorRow < (INT32)(MaxRow - 1)) {
+ Mode->CursorRow++;
+ }
- if (EFI_ERROR (Status)) {
- goto OutputError;
+ if ((TerminalDevice->TerminalType == TerminalTypeTtyTerm) &&
+ !TerminalDevice->OutputEscChar)
+ {
+ //
+ // We've written the last character on the line. The
+ // terminal doesn't actually wrap its cursor until we print
+ // the next character, but the driver thinks it has wrapped
+ // already. Print CR LF to synchronize the terminal with
+ // the driver, but only if we're not in the middle of
+ // printing an escape sequence.
+ //
+ CrLfStr[0] = '\r';
+ CrLfStr[1] = '\n';
+
+ Length = sizeof (CrLfStr);
+
+ Status = TerminalDevice->SerialIo->Write (
+ TerminalDevice->SerialIo,
+ &Length,
+ CrLfStr
+ );
+
+ if (EFI_ERROR (Status)) {
+ goto OutputError;
+ }
}
}
- }
- break;
-
- };
+ break;
+ }
}
if (Warning) {
@@ -363,7 +359,6 @@ OutputError:
return EFI_DEVICE_ERROR;
}
-
/**
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.TestString().
@@ -395,27 +390,25 @@ TerminalConOutTestString (
TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);
switch (TerminalDevice->TerminalType) {
+ case TerminalTypePcAnsi:
+ case TerminalTypeVt100:
+ case TerminalTypeVt100Plus:
+ case TerminalTypeTtyTerm:
+ Status = AnsiTestString (TerminalDevice, WString);
+ break;
- case TerminalTypePcAnsi:
- case TerminalTypeVt100:
- case TerminalTypeVt100Plus:
- case TerminalTypeTtyTerm:
- Status = AnsiTestString (TerminalDevice, WString);
- break;
-
- case TerminalTypeVtUtf8:
- Status = VTUTF8TestString (TerminalDevice, WString);
- break;
+ case TerminalTypeVtUtf8:
+ Status = VTUTF8TestString (TerminalDevice, WString);
+ break;
- default:
- Status = EFI_UNSUPPORTED;
- break;
+ default:
+ Status = EFI_UNSUPPORTED;
+ break;
}
return Status;
}
-
/**
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode().
@@ -442,7 +435,7 @@ TerminalConOutQueryMode (
{
TERMINAL_DEV *TerminalDevice;
- if (ModeNumber >= (UINTN) This->Mode->MaxMode) {
+ if (ModeNumber >= (UINTN)This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
@@ -450,13 +443,12 @@ TerminalConOutQueryMode (
// Get Terminal device data structure pointer.
//
TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);
- *Columns = TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns;
- *Rows = TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows;
+ *Columns = TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns;
+ *Rows = TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows;
return EFI_SUCCESS;
}
-
/**
Implements EFI_SIMPLE_TEXT_OUT.SetMode().
@@ -487,14 +479,14 @@ TerminalConOutSetMode (
//
TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);
- if (ModeNumber >= (UINTN) This->Mode->MaxMode) {
+ if (ModeNumber >= (UINTN)This->Mode->MaxMode) {
return EFI_UNSUPPORTED;
}
//
// Set the current mode
//
- This->Mode->Mode = (INT32) ModeNumber;
+ This->Mode->Mode = (INT32)ModeNumber;
This->ClearScreen (This);
@@ -506,18 +498,16 @@ TerminalConOutSetMode (
return EFI_DEVICE_ERROR;
}
- This->Mode->Mode = (INT32) ModeNumber;
+ This->Mode->Mode = (INT32)ModeNumber;
- Status = This->ClearScreen (This);
+ Status = This->ClearScreen (This);
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
return EFI_SUCCESS;
-
}
-
/**
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute().
@@ -564,7 +554,7 @@ TerminalConOutSetAttribute (
// Skip outputting the command string for the same attribute
// It improves the terminal performance significantly
//
- if (This->Mode->Attribute == (INT32) Attribute) {
+ if (This->Mode->Attribute == (INT32)Attribute) {
return EFI_SUCCESS;
}
@@ -573,103 +563,102 @@ TerminalConOutSetAttribute (
// understandable foreground color
//
switch (Attribute & 0x07) {
+ case EFI_BLACK:
+ ForegroundControl = 30;
+ break;
- case EFI_BLACK:
- ForegroundControl = 30;
- break;
-
- case EFI_BLUE:
- ForegroundControl = 34;
- break;
-
- case EFI_GREEN:
- ForegroundControl = 32;
- break;
+ case EFI_BLUE:
+ ForegroundControl = 34;
+ break;
- case EFI_CYAN:
- ForegroundControl = 36;
- break;
+ case EFI_GREEN:
+ ForegroundControl = 32;
+ break;
- case EFI_RED:
- ForegroundControl = 31;
- break;
+ case EFI_CYAN:
+ ForegroundControl = 36;
+ break;
- case EFI_MAGENTA:
- ForegroundControl = 35;
- break;
+ case EFI_RED:
+ ForegroundControl = 31;
+ break;
- case EFI_BROWN:
- ForegroundControl = 33;
- break;
+ case EFI_MAGENTA:
+ ForegroundControl = 35;
+ break;
- default:
+ case EFI_BROWN:
+ ForegroundControl = 33;
+ break;
- case EFI_LIGHTGRAY:
- ForegroundControl = 37;
- break;
+ default:
+ case EFI_LIGHTGRAY:
+ ForegroundControl = 37;
+ break;
}
+
//
// bit4 of the Attribute indicates bright control
// of terminal emulator.
//
- BrightControl = (UINT8) ((Attribute >> 3) & 1);
+ BrightControl = (UINT8)((Attribute >> 3) & 1);
//
// convert Attribute value to terminal emulator
// understandable background color.
//
switch ((Attribute >> 4) & 0x07) {
+ case EFI_BLACK:
+ BackgroundControl = 40;
+ break;
- case EFI_BLACK:
- BackgroundControl = 40;
- break;
-
- case EFI_BLUE:
- BackgroundControl = 44;
- break;
+ case EFI_BLUE:
+ BackgroundControl = 44;
+ break;
- case EFI_GREEN:
- BackgroundControl = 42;
- break;
+ case EFI_GREEN:
+ BackgroundControl = 42;
+ break;
- case EFI_CYAN:
- BackgroundControl = 46;
- break;
+ case EFI_CYAN:
+ BackgroundControl = 46;
+ break;
- case EFI_RED:
- BackgroundControl = 41;
- break;
+ case EFI_RED:
+ BackgroundControl = 41;
+ break;
- case EFI_MAGENTA:
- BackgroundControl = 45;
- break;
+ case EFI_MAGENTA:
+ BackgroundControl = 45;
+ break;
- case EFI_BROWN:
- BackgroundControl = 43;
- break;
+ case EFI_BROWN:
+ BackgroundControl = 43;
+ break;
- default:
+ default:
- case EFI_LIGHTGRAY:
- BackgroundControl = 47;
- break;
+ case EFI_LIGHTGRAY:
+ BackgroundControl = 47;
+ break;
}
+
//
// terminal emulator's control sequence to set attributes
//
- mSetAttributeString[BRIGHT_CONTROL_OFFSET] = (CHAR16) ('0' + BrightControl);
- mSetAttributeString[FOREGROUND_CONTROL_OFFSET + 0] = (CHAR16) ('0' + (ForegroundControl / 10));
- mSetAttributeString[FOREGROUND_CONTROL_OFFSET + 1] = (CHAR16) ('0' + (ForegroundControl % 10));
- mSetAttributeString[BACKGROUND_CONTROL_OFFSET + 0] = (CHAR16) ('0' + (BackgroundControl / 10));
- mSetAttributeString[BACKGROUND_CONTROL_OFFSET + 1] = (CHAR16) ('0' + (BackgroundControl % 10));
+ mSetAttributeString[BRIGHT_CONTROL_OFFSET] = (CHAR16)('0' + BrightControl);
+ mSetAttributeString[FOREGROUND_CONTROL_OFFSET + 0] = (CHAR16)('0' + (ForegroundControl / 10));
+ mSetAttributeString[FOREGROUND_CONTROL_OFFSET + 1] = (CHAR16)('0' + (ForegroundControl % 10));
+ mSetAttributeString[BACKGROUND_CONTROL_OFFSET + 0] = (CHAR16)('0' + (BackgroundControl / 10));
+ mSetAttributeString[BACKGROUND_CONTROL_OFFSET + 1] = (CHAR16)('0' + (BackgroundControl % 10));
//
// save current column and row
// for future scrolling back use.
//
- SavedColumn = This->Mode->CursorColumn;
- SavedRow = This->Mode->CursorRow;
+ SavedColumn = This->Mode->CursorColumn;
+ SavedRow = This->Mode->CursorRow;
TerminalDevice->OutputEscChar = TRUE;
Status = This->OutputString (This, mSetAttributeString);
@@ -678,19 +667,18 @@ TerminalConOutSetAttribute (
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
+
//
// scroll back to saved cursor position.
//
- This->Mode->CursorColumn = SavedColumn;
- This->Mode->CursorRow = SavedRow;
+ This->Mode->CursorColumn = SavedColumn;
+ This->Mode->CursorRow = SavedRow;
- This->Mode->Attribute = (INT32) Attribute;
+ This->Mode->Attribute = (INT32)Attribute;
return EFI_SUCCESS;
-
}
-
/**
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.ClearScreen().
It clears the ANSI terminal's display to the
@@ -730,7 +718,6 @@ TerminalConOutClearScreen (
return Status;
}
-
/**
Implements EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition().
@@ -752,12 +739,12 @@ TerminalConOutSetCursorPosition (
IN UINTN Row
)
{
- EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;
- UINTN MaxColumn;
- UINTN MaxRow;
- EFI_STATUS Status;
- TERMINAL_DEV *TerminalDevice;
- CHAR16 *String;
+ EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;
+ UINTN MaxColumn;
+ UINTN MaxRow;
+ EFI_STATUS Status;
+ TERMINAL_DEV *TerminalDevice;
+ CHAR16 *String;
TerminalDevice = TERMINAL_CON_OUT_DEV_FROM_THIS (This);
@@ -770,18 +757,19 @@ TerminalConOutSetCursorPosition (
// get geometry of current mode
//
Status = This->QueryMode (
- This,
- Mode->Mode,
- &MaxColumn,
- &MaxRow
- );
+ This,
+ Mode->Mode,
+ &MaxColumn,
+ &MaxRow
+ );
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
- if (Column >= MaxColumn || Row >= MaxRow) {
+ if ((Column >= MaxColumn) || (Row >= MaxRow)) {
return EFI_UNSUPPORTED;
}
+
//
// control sequence to move the cursor
//
@@ -789,48 +777,46 @@ TerminalConOutSetCursorPosition (
// within the current line if possible, and don't output anyting if
// it isn't necessary.
//
- if (TerminalDevice->TerminalType == TerminalTypeTtyTerm &&
- (UINTN)Mode->CursorRow == Row) {
+ if ((TerminalDevice->TerminalType == TerminalTypeTtyTerm) &&
+ ((UINTN)Mode->CursorRow == Row))
+ {
if ((UINTN)Mode->CursorColumn > Column) {
- mCursorBackwardString[FW_BACK_OFFSET + 0] = (CHAR16) ('0' + ((Mode->CursorColumn - Column) / 10));
- mCursorBackwardString[FW_BACK_OFFSET + 1] = (CHAR16) ('0' + ((Mode->CursorColumn - Column) % 10));
- String = mCursorBackwardString;
- }
- else if (Column > (UINTN)Mode->CursorColumn) {
- mCursorForwardString[FW_BACK_OFFSET + 0] = (CHAR16) ('0' + ((Column - Mode->CursorColumn) / 10));
- mCursorForwardString[FW_BACK_OFFSET + 1] = (CHAR16) ('0' + ((Column - Mode->CursorColumn) % 10));
- String = mCursorForwardString;
- }
- else {
+ mCursorBackwardString[FW_BACK_OFFSET + 0] = (CHAR16)('0' + ((Mode->CursorColumn - Column) / 10));
+ mCursorBackwardString[FW_BACK_OFFSET + 1] = (CHAR16)('0' + ((Mode->CursorColumn - Column) % 10));
+ String = mCursorBackwardString;
+ } else if (Column > (UINTN)Mode->CursorColumn) {
+ mCursorForwardString[FW_BACK_OFFSET + 0] = (CHAR16)('0' + ((Column - Mode->CursorColumn) / 10));
+ mCursorForwardString[FW_BACK_OFFSET + 1] = (CHAR16)('0' + ((Column - Mode->CursorColumn) % 10));
+ String = mCursorForwardString;
+ } else {
String = L""; // No cursor motion necessary
}
- }
- else {
- mSetCursorPositionString[ROW_OFFSET + 0] = (CHAR16) ('0' + ((Row + 1) / 10));
- mSetCursorPositionString[ROW_OFFSET + 1] = (CHAR16) ('0' + ((Row + 1) % 10));
- mSetCursorPositionString[COLUMN_OFFSET + 0] = (CHAR16) ('0' + ((Column + 1) / 10));
- mSetCursorPositionString[COLUMN_OFFSET + 1] = (CHAR16) ('0' + ((Column + 1) % 10));
- String = mSetCursorPositionString;
+ } else {
+ mSetCursorPositionString[ROW_OFFSET + 0] = (CHAR16)('0' + ((Row + 1) / 10));
+ mSetCursorPositionString[ROW_OFFSET + 1] = (CHAR16)('0' + ((Row + 1) % 10));
+ mSetCursorPositionString[COLUMN_OFFSET + 0] = (CHAR16)('0' + ((Column + 1) / 10));
+ mSetCursorPositionString[COLUMN_OFFSET + 1] = (CHAR16)('0' + ((Column + 1) % 10));
+ String = mSetCursorPositionString;
}
- TerminalDevice->OutputEscChar = TRUE;
- Status = This->OutputString (This, String);
+ TerminalDevice->OutputEscChar = TRUE;
+ Status = This->OutputString (This, String);
TerminalDevice->OutputEscChar = FALSE;
if (EFI_ERROR (Status)) {
return EFI_DEVICE_ERROR;
}
+
//
// update current cursor position
// in the Mode data structure.
//
- Mode->CursorColumn = (INT32) Column;
- Mode->CursorRow = (INT32) Row;
+ Mode->CursorColumn = (INT32)Column;
+ Mode->CursorRow = (INT32)Row;
return EFI_SUCCESS;
}
-
/**
Implements SIMPLE_TEXT_OUTPUT.EnableCursor().
@@ -858,7 +844,6 @@ TerminalConOutEnableCursor (
return EFI_SUCCESS;
}
-
/**
Detects if a Unicode char is for Box Drawing text graphics.
@@ -878,7 +863,7 @@ TerminalIsValidTextGraphics (
OUT CHAR8 *Ascii OPTIONAL
)
{
- UNICODE_TO_CHAR *Table;
+ UNICODE_TO_CHAR *Table;
if ((((Graphic & 0xff00) != 0x2500) && ((Graphic & 0xff00) != 0x2100))) {
//
@@ -946,12 +931,13 @@ TerminalIsValidEfiCntlChar (
//
// only support four control characters.
//
- if (CharC == CHAR_NULL ||
- CharC == CHAR_BACKSPACE ||
- CharC == CHAR_LINEFEED ||
- CharC == CHAR_CARRIAGE_RETURN ||
- CharC == CHAR_TAB
- ) {
+ if ((CharC == CHAR_NULL) ||
+ (CharC == CHAR_BACKSPACE) ||
+ (CharC == CHAR_LINEFEED) ||
+ (CharC == CHAR_CARRIAGE_RETURN) ||
+ (CharC == CHAR_TAB)
+ )
+ {
return TRUE;
}
diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Vtutf8.c b/MdeModulePkg/Universal/Console/TerminalDxe/Vtutf8.c
index 9cf52d9..bd3d906 100644
--- a/MdeModulePkg/Universal/Console/TerminalDxe/Vtutf8.c
+++ b/MdeModulePkg/Universal/Console/TerminalDxe/Vtutf8.c
@@ -17,12 +17,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
VTUTF8RawDataToUnicode (
- IN TERMINAL_DEV *TerminalDevice
+ IN TERMINAL_DEV *TerminalDevice
)
{
- UTF8_CHAR Utf8Char;
- UINT8 ValidBytes;
- UINT16 UnicodeChar;
+ UTF8_CHAR Utf8Char;
+ UINT8 ValidBytes;
+ UINT16 UnicodeChar;
ValidBytes = 0;
//
@@ -31,14 +31,13 @@ VTUTF8RawDataToUnicode (
// the unicode into unicode fifo, until the raw fifo is empty.
//
while (!IsRawFiFoEmpty (TerminalDevice) && !IsUnicodeFiFoFull (TerminalDevice)) {
-
GetOneValidUtf8Char (TerminalDevice, &Utf8Char, &ValidBytes);
- if (ValidBytes < 1 || ValidBytes > 3) {
+ if ((ValidBytes < 1) || (ValidBytes > 3)) {
continue;
}
- Utf8ToUnicode (Utf8Char, ValidBytes, (CHAR16 *) &UnicodeChar);
+ Utf8ToUnicode (Utf8Char, ValidBytes, (CHAR16 *)&UnicodeChar);
UnicodeFiFoInsertOneKey (TerminalDevice, UnicodeChar);
}
@@ -55,14 +54,14 @@ VTUTF8RawDataToUnicode (
**/
VOID
GetOneValidUtf8Char (
- IN TERMINAL_DEV *Utf8Device,
- OUT UTF8_CHAR *Utf8Char,
- OUT UINT8 *ValidBytes
+ IN TERMINAL_DEV *Utf8Device,
+ OUT UTF8_CHAR *Utf8Char,
+ OUT UINT8 *ValidBytes
)
{
- UINT8 Temp;
- UINT8 Index;
- BOOLEAN FetchFlag;
+ UINT8 Temp;
+ UINT8 Index;
+ BOOLEAN FetchFlag;
Temp = 0;
Index = 0;
@@ -75,88 +74,82 @@ GetOneValidUtf8Char (
*ValidBytes = 0;
while (!IsRawFiFoEmpty (Utf8Device)) {
-
RawFiFoRemoveOneKey (Utf8Device, &Temp);
switch (*ValidBytes) {
+ case 0:
+ if ((Temp & 0x80) == 0) {
+ //
+ // one-byte utf8 char
+ //
+ *ValidBytes = 1;
- case 0:
- if ((Temp & 0x80) == 0) {
- //
- // one-byte utf8 char
- //
- *ValidBytes = 1;
+ Utf8Char->Utf8_1 = Temp;
- Utf8Char->Utf8_1 = Temp;
+ FetchFlag = FALSE;
+ } else if ((Temp & 0xe0) == 0xc0) {
+ //
+ // two-byte utf8 char
+ //
+ *ValidBytes = 2;
- FetchFlag = FALSE;
+ Utf8Char->Utf8_2[1] = Temp;
+ } else if ((Temp & 0xf0) == 0xe0) {
+ //
+ // three-byte utf8 char
+ //
+ *ValidBytes = 3;
- } else if ((Temp & 0xe0) == 0xc0) {
- //
- // two-byte utf8 char
- //
- *ValidBytes = 2;
+ Utf8Char->Utf8_3[2] = Temp;
- Utf8Char->Utf8_2[1] = Temp;
+ Index++;
+ } else {
+ //
+ // reset *ValidBytes to zero, let valid utf8 char search restart
+ //
+ *ValidBytes = 0;
+ }
- } else if ((Temp & 0xf0) == 0xe0) {
+ break;
+
+ case 2:
//
- // three-byte utf8 char
+ // two-byte utf8 char go on
//
- *ValidBytes = 3;
+ if ((Temp & 0xc0) == 0x80) {
+ Utf8Char->Utf8_2[0] = Temp;
- Utf8Char->Utf8_3[2] = Temp;
+ FetchFlag = FALSE;
+ } else {
+ *ValidBytes = 0;
+ }
- Index++;
+ break;
- } else {
+ case 3:
//
- // reset *ValidBytes to zero, let valid utf8 char search restart
+ // three-byte utf8 char go on
//
- *ValidBytes = 0;
- }
-
- break;
-
- case 2:
- //
- // two-byte utf8 char go on
- //
- if ((Temp & 0xc0) == 0x80) {
-
- Utf8Char->Utf8_2[0] = Temp;
-
- FetchFlag = FALSE;
-
- } else {
-
- *ValidBytes = 0;
- }
- break;
-
- case 3:
- //
- // three-byte utf8 char go on
- //
- if ((Temp & 0xc0) == 0x80) {
- if (Index == 1) {
- Utf8Char->Utf8_3[1] = Temp;
- Index++;
+ if ((Temp & 0xc0) == 0x80) {
+ if (Index == 1) {
+ Utf8Char->Utf8_3[1] = Temp;
+ Index++;
+ } else {
+ Utf8Char->Utf8_3[0] = Temp;
+ FetchFlag = FALSE;
+ }
} else {
- Utf8Char->Utf8_3[0] = Temp;
- FetchFlag = FALSE;
+ //
+ // reset *ValidBytes and Index to zero, let valid utf8 char search restart
+ //
+ *ValidBytes = 0;
+ Index = 0;
}
- } else {
- //
- // reset *ValidBytes and Index to zero, let valid utf8 char search restart
- //
- *ValidBytes = 0;
- Index = 0;
- }
- break;
- default:
- break;
+ break;
+
+ default:
+ break;
}
if (!FetchFlag) {
@@ -164,7 +157,7 @@ GetOneValidUtf8Char (
}
}
- return ;
+ return;
}
/**
@@ -184,16 +177,16 @@ GetOneValidUtf8Char (
**/
VOID
Utf8ToUnicode (
- IN UTF8_CHAR Utf8Char,
- IN UINT8 ValidBytes,
- OUT CHAR16 *UnicodeChar
+ IN UTF8_CHAR Utf8Char,
+ IN UINT8 ValidBytes,
+ OUT CHAR16 *UnicodeChar
)
{
- UINT8 UnicodeByte0;
- UINT8 UnicodeByte1;
- UINT8 Byte0;
- UINT8 Byte1;
- UINT8 Byte2;
+ UINT8 UnicodeByte0;
+ UINT8 UnicodeByte1;
+ UINT8 Byte0;
+ UINT8 Byte1;
+ UINT8 Byte2;
*UnicodeChar = 0;
@@ -202,42 +195,42 @@ Utf8ToUnicode (
// up to 3 bytes utf8 code is supported.
//
switch (ValidBytes) {
- case 1:
- //
- // one-byte utf8 code
- //
- *UnicodeChar = (UINT16) Utf8Char.Utf8_1;
- break;
+ case 1:
+ //
+ // one-byte utf8 code
+ //
+ *UnicodeChar = (UINT16)Utf8Char.Utf8_1;
+ break;
- case 2:
- //
- // two-byte utf8 code
- //
- Byte0 = Utf8Char.Utf8_2[0];
- Byte1 = Utf8Char.Utf8_2[1];
+ case 2:
+ //
+ // two-byte utf8 code
+ //
+ Byte0 = Utf8Char.Utf8_2[0];
+ Byte1 = Utf8Char.Utf8_2[1];
- UnicodeByte0 = (UINT8) ((Byte1 << 6) | (Byte0 & 0x3f));
- UnicodeByte1 = (UINT8) ((Byte1 >> 2) & 0x07);
- *UnicodeChar = (UINT16) (UnicodeByte0 | (UnicodeByte1 << 8));
- break;
+ UnicodeByte0 = (UINT8)((Byte1 << 6) | (Byte0 & 0x3f));
+ UnicodeByte1 = (UINT8)((Byte1 >> 2) & 0x07);
+ *UnicodeChar = (UINT16)(UnicodeByte0 | (UnicodeByte1 << 8));
+ break;
- case 3:
- //
- // three-byte utf8 code
- //
- Byte0 = Utf8Char.Utf8_3[0];
- Byte1 = Utf8Char.Utf8_3[1];
- Byte2 = Utf8Char.Utf8_3[2];
+ case 3:
+ //
+ // three-byte utf8 code
+ //
+ Byte0 = Utf8Char.Utf8_3[0];
+ Byte1 = Utf8Char.Utf8_3[1];
+ Byte2 = Utf8Char.Utf8_3[2];
- UnicodeByte0 = (UINT8) ((Byte1 << 6) | (Byte0 & 0x3f));
- UnicodeByte1 = (UINT8) ((Byte2 << 4) | ((Byte1 >> 2) & 0x0f));
- *UnicodeChar = (UINT16) (UnicodeByte0 | (UnicodeByte1 << 8));
+ UnicodeByte0 = (UINT8)((Byte1 << 6) | (Byte0 & 0x3f));
+ UnicodeByte1 = (UINT8)((Byte2 << 4) | ((Byte1 >> 2) & 0x0f));
+ *UnicodeChar = (UINT16)(UnicodeByte0 | (UnicodeByte1 << 8));
- default:
- break;
+ default:
+ break;
}
- return ;
+ return;
}
/**
@@ -258,48 +251,45 @@ Utf8ToUnicode (
**/
VOID
UnicodeToUtf8 (
- IN CHAR16 Unicode,
- OUT UTF8_CHAR *Utf8Char,
- OUT UINT8 *ValidBytes
+ IN CHAR16 Unicode,
+ OUT UTF8_CHAR *Utf8Char,
+ OUT UINT8 *ValidBytes
)
{
- UINT8 UnicodeByte0;
- UINT8 UnicodeByte1;
+ UINT8 UnicodeByte0;
+ UINT8 UnicodeByte1;
+
//
// translate unicode to utf8 code
//
- UnicodeByte0 = (UINT8) Unicode;
- UnicodeByte1 = (UINT8) (Unicode >> 8);
+ UnicodeByte0 = (UINT8)Unicode;
+ UnicodeByte1 = (UINT8)(Unicode >> 8);
if (Unicode < 0x0080) {
-
- Utf8Char->Utf8_1 = (UINT8) (UnicodeByte0 & 0x7f);
- *ValidBytes = 1;
-
+ Utf8Char->Utf8_1 = (UINT8)(UnicodeByte0 & 0x7f);
+ *ValidBytes = 1;
} else if (Unicode < 0x0800) {
//
// byte sequence: high -> low
// Utf8_2[0], Utf8_2[1]
//
- Utf8Char->Utf8_2[1] = (UINT8) ((UnicodeByte0 & 0x3f) + 0x80);
- Utf8Char->Utf8_2[0] = (UINT8) ((((UnicodeByte1 << 2) + (UnicodeByte0 >> 6)) & 0x1f) + 0xc0);
-
- *ValidBytes = 2;
+ Utf8Char->Utf8_2[1] = (UINT8)((UnicodeByte0 & 0x3f) + 0x80);
+ Utf8Char->Utf8_2[0] = (UINT8)((((UnicodeByte1 << 2) + (UnicodeByte0 >> 6)) & 0x1f) + 0xc0);
+ *ValidBytes = 2;
} else {
//
// byte sequence: high -> low
// Utf8_3[0], Utf8_3[1], Utf8_3[2]
//
- Utf8Char->Utf8_3[2] = (UINT8) ((UnicodeByte0 & 0x3f) + 0x80);
- Utf8Char->Utf8_3[1] = (UINT8) ((((UnicodeByte1 << 2) + (UnicodeByte0 >> 6)) & 0x3f) + 0x80);
- Utf8Char->Utf8_3[0] = (UINT8) (((UnicodeByte1 >> 4) & 0x0f) + 0xe0);
+ Utf8Char->Utf8_3[2] = (UINT8)((UnicodeByte0 & 0x3f) + 0x80);
+ Utf8Char->Utf8_3[1] = (UINT8)((((UnicodeByte1 << 2) + (UnicodeByte0 >> 6)) & 0x3f) + 0x80);
+ Utf8Char->Utf8_3[0] = (UINT8)(((UnicodeByte1 >> 4) & 0x0f) + 0xe0);
- *ValidBytes = 3;
+ *ValidBytes = 3;
}
}
-
/**
Check if input string is valid VT-UTF8 string.
@@ -311,8 +301,8 @@ UnicodeToUtf8 (
**/
EFI_STATUS
VTUTF8TestString (
- IN TERMINAL_DEV *TerminalDevice,
- IN CHAR16 *WString
+ IN TERMINAL_DEV *TerminalDevice,
+ IN CHAR16 *WString
)
{
//
diff --git a/MdeModulePkg/Universal/DebugPortDxe/ComponentName.c b/MdeModulePkg/Universal/DebugPortDxe/ComponentName.c
index 69915b8..324d83a 100644
--- a/MdeModulePkg/Universal/DebugPortDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/DebugPortDxe/ComponentName.c
@@ -20,17 +20,16 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gDebugPortComponentNa
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDebugPortComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) DebugPortComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) DebugPortComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDebugPortComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)DebugPortComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)DebugPortComponentNameGetControllerName,
"en"
};
-
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDebugPortDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDebugPortDriverNameTable[] = {
{
"eng;en",
- (CHAR16 *) L"DebugPort Driver"
+ (CHAR16 *)L"DebugPort Driver"
},
{
NULL,
@@ -165,11 +164,11 @@ DebugPortComponentNameGetDriverName (
EFI_STATUS
EFIAPI
DebugPortComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
diff --git a/MdeModulePkg/Universal/DebugPortDxe/DebugPort.c b/MdeModulePkg/Universal/DebugPortDxe/DebugPort.c
index 172c1cb..f79ad04 100644
--- a/MdeModulePkg/Universal/DebugPortDxe/DebugPort.c
+++ b/MdeModulePkg/Universal/DebugPortDxe/DebugPort.c
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Globals
//
-EFI_DRIVER_BINDING_PROTOCOL gDebugPortDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gDebugPortDriverBinding = {
DebugPortSupported,
DebugPortStart,
DebugPortStop,
@@ -23,25 +23,25 @@ EFI_DRIVER_BINDING_PROTOCOL gDebugPortDriverBinding = {
NULL
};
-DEBUGPORT_DEVICE mDebugPortDevice = {
+DEBUGPORT_DEVICE mDebugPortDevice = {
DEBUGPORT_DEVICE_SIGNATURE,
- (EFI_HANDLE) 0,
- (EFI_HANDLE) 0,
- (EFI_DEVICE_PATH_PROTOCOL *) NULL,
+ (EFI_HANDLE)0,
+ (EFI_HANDLE)0,
+ (EFI_DEVICE_PATH_PROTOCOL *)NULL,
{
DebugPortReset,
DebugPortWrite,
DebugPortRead,
DebugPortPoll
},
- (EFI_HANDLE) 0,
- (EFI_SERIAL_IO_PROTOCOL *) NULL,
+ (EFI_HANDLE)0,
+ (EFI_SERIAL_IO_PROTOCOL *)NULL,
DEBUGPORT_UART_DEFAULT_BAUDRATE,
DEBUGPORT_UART_DEFAULT_FIFO_DEPTH,
DEBUGPORT_UART_DEFAULT_TIMEOUT,
- (EFI_PARITY_TYPE) DEBUGPORT_UART_DEFAULT_PARITY,
+ (EFI_PARITY_TYPE)DEBUGPORT_UART_DEFAULT_PARITY,
DEBUGPORT_UART_DEFAULT_DATA_BITS,
- (EFI_STOP_BITS_TYPE) DEBUGPORT_UART_DEFAULT_STOP_BITS
+ (EFI_STOP_BITS_TYPE)DEBUGPORT_UART_DEFAULT_STOP_BITS
};
/**
@@ -59,7 +59,7 @@ GetDebugPortVariable (
EFI_DEVICE_PATH_PROTOCOL *DebugPortVariable;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- GetVariable2 (EFI_DEBUGPORT_VARIABLE_NAME, &gEfiDebugPortVariableGuid, (VOID **) &DebugPortVariable, &DataSize);
+ GetVariable2 (EFI_DEBUGPORT_VARIABLE_NAME, &gEfiDebugPortVariableGuid, (VOID **)&DebugPortVariable, &DataSize);
if (DebugPortVariable == NULL) {
return NULL;
}
@@ -75,25 +75,25 @@ GetDebugPortVariable (
} else {
CopyMem (
&mDebugPortDevice.BaudRate,
- &((UART_DEVICE_PATH *) DevicePath)->BaudRate,
- sizeof (((UART_DEVICE_PATH *) DevicePath)->BaudRate)
+ &((UART_DEVICE_PATH *)DevicePath)->BaudRate,
+ sizeof (((UART_DEVICE_PATH *)DevicePath)->BaudRate)
);
mDebugPortDevice.ReceiveFifoDepth = DEBUGPORT_UART_DEFAULT_FIFO_DEPTH;
mDebugPortDevice.Timeout = DEBUGPORT_UART_DEFAULT_TIMEOUT;
CopyMem (
&mDebugPortDevice.Parity,
- &((UART_DEVICE_PATH *) DevicePath)->Parity,
- sizeof (((UART_DEVICE_PATH *) DevicePath)->Parity)
+ &((UART_DEVICE_PATH *)DevicePath)->Parity,
+ sizeof (((UART_DEVICE_PATH *)DevicePath)->Parity)
);
CopyMem (
&mDebugPortDevice.DataBits,
- &((UART_DEVICE_PATH *) DevicePath)->DataBits,
- sizeof (((UART_DEVICE_PATH *) DevicePath)->DataBits)
+ &((UART_DEVICE_PATH *)DevicePath)->DataBits,
+ sizeof (((UART_DEVICE_PATH *)DevicePath)->DataBits)
);
CopyMem (
&mDebugPortDevice.StopBits,
- &((UART_DEVICE_PATH *) DevicePath)->StopBits,
- sizeof (((UART_DEVICE_PATH *) DevicePath)->StopBits)
+ &((UART_DEVICE_PATH *)DevicePath)->StopBits,
+ sizeof (((UART_DEVICE_PATH *)DevicePath)->StopBits)
);
return DebugPortVariable;
}
@@ -117,11 +117,11 @@ GetDebugPortVariable (
EFI_STATUS
EFIAPI
InitializeDebugPortDriver (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Install driver model protocol(s).
@@ -163,9 +163,9 @@ InitializeDebugPortDriver (
EFI_STATUS
EFIAPI
DebugPortSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
@@ -179,9 +179,10 @@ DebugPortSupported (
// Check to see that there's not a debugport protocol already published,
// since only one standard UART serial port could be supported by this driver.
//
- if (gBS->LocateProtocol (&gEfiDebugPortProtocolGuid, NULL, (VOID **) &DebugPortInterface) != EFI_NOT_FOUND) {
+ if (gBS->LocateProtocol (&gEfiDebugPortProtocolGuid, NULL, (VOID **)&DebugPortInterface) != EFI_NOT_FOUND) {
return EFI_UNSUPPORTED;
}
+
//
// Read DebugPort variable to determine debug port selection and parameters
//
@@ -195,25 +196,25 @@ DebugPortSupported (
// device path only. Otherwise, it's a mismatch and EFI_UNSUPPORTED is returned.
//
DevicePath = DebugPortVariable;
- Status = gBS->LocateDevicePath (
- &gEfiSerialIoProtocolGuid,
- &DevicePath,
- &TempHandle
- );
+ Status = gBS->LocateDevicePath (
+ &gEfiSerialIoProtocolGuid,
+ &DevicePath,
+ &TempHandle
+ );
- if (Status == EFI_SUCCESS && TempHandle != ControllerHandle) {
+ if ((Status == EFI_SUCCESS) && (TempHandle != ControllerHandle)) {
Status = EFI_UNSUPPORTED;
}
- if (Status == EFI_SUCCESS &&
- (DevicePath->Type != MESSAGING_DEVICE_PATH ||
- DevicePath->SubType != MSG_VENDOR_DP ||
- *((UINT16 *) DevicePath->Length) != sizeof (DEBUGPORT_DEVICE_PATH))) {
-
+ if ((Status == EFI_SUCCESS) &&
+ ((DevicePath->Type != MESSAGING_DEVICE_PATH) ||
+ (DevicePath->SubType != MSG_VENDOR_DP) ||
+ (*((UINT16 *)DevicePath->Length) != sizeof (DEBUGPORT_DEVICE_PATH))))
+ {
Status = EFI_UNSUPPORTED;
}
- if (Status == EFI_SUCCESS && !CompareGuid (&gEfiDebugPortDevicePathGuid, (GUID *) (DevicePath + 1))) {
+ if ((Status == EFI_SUCCESS) && !CompareGuid (&gEfiDebugPortDevicePathGuid, (GUID *)(DevicePath + 1))) {
Status = EFI_UNSUPPORTED;
}
@@ -226,7 +227,7 @@ DebugPortSupported (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSerialIoProtocolGuid,
- (VOID **) &SerialIo,
+ (VOID **)&SerialIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER | EFI_OPEN_PROTOCOL_EXCLUSIVE
@@ -262,9 +263,9 @@ DebugPortSupported (
EFI_STATUS
EFIAPI
DebugPortStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
@@ -275,7 +276,7 @@ DebugPortStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSerialIoProtocolGuid,
- (VOID **) &mDebugPortDevice.SerialIoBinding,
+ (VOID **)&mDebugPortDevice.SerialIoBinding,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER | EFI_OPEN_PROTOCOL_EXCLUSIVE
@@ -290,36 +291,36 @@ DebugPortStart (
// Initialize the Serial Io interface...
//
Status = mDebugPortDevice.SerialIoBinding->SetAttributes (
- mDebugPortDevice.SerialIoBinding,
- mDebugPortDevice.BaudRate,
- mDebugPortDevice.ReceiveFifoDepth,
- mDebugPortDevice.Timeout,
- mDebugPortDevice.Parity,
- mDebugPortDevice.DataBits,
- mDebugPortDevice.StopBits
- );
+ mDebugPortDevice.SerialIoBinding,
+ mDebugPortDevice.BaudRate,
+ mDebugPortDevice.ReceiveFifoDepth,
+ mDebugPortDevice.Timeout,
+ mDebugPortDevice.Parity,
+ mDebugPortDevice.DataBits,
+ mDebugPortDevice.StopBits
+ );
if (EFI_ERROR (Status)) {
- mDebugPortDevice.BaudRate = 0;
- mDebugPortDevice.Parity = DefaultParity;
- mDebugPortDevice.DataBits = 0;
- mDebugPortDevice.StopBits = DefaultStopBits;
- mDebugPortDevice.ReceiveFifoDepth = 0;
- Status = mDebugPortDevice.SerialIoBinding->SetAttributes (
- mDebugPortDevice.SerialIoBinding,
- mDebugPortDevice.BaudRate,
- mDebugPortDevice.ReceiveFifoDepth,
- mDebugPortDevice.Timeout,
- mDebugPortDevice.Parity,
- mDebugPortDevice.DataBits,
- mDebugPortDevice.StopBits
- );
+ mDebugPortDevice.BaudRate = 0;
+ mDebugPortDevice.Parity = DefaultParity;
+ mDebugPortDevice.DataBits = 0;
+ mDebugPortDevice.StopBits = DefaultStopBits;
+ mDebugPortDevice.ReceiveFifoDepth = 0;
+ Status = mDebugPortDevice.SerialIoBinding->SetAttributes (
+ mDebugPortDevice.SerialIoBinding,
+ mDebugPortDevice.BaudRate,
+ mDebugPortDevice.ReceiveFifoDepth,
+ mDebugPortDevice.Timeout,
+ mDebugPortDevice.Parity,
+ mDebugPortDevice.DataBits,
+ mDebugPortDevice.StopBits
+ );
if (EFI_ERROR (Status)) {
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return Status;
}
}
@@ -329,8 +330,8 @@ DebugPortStart (
//
// Create device path instance for DebugPort
//
- DebugPortDP.Header.Type = MESSAGING_DEVICE_PATH;
- DebugPortDP.Header.SubType = MSG_VENDOR_DP;
+ DebugPortDP.Header.Type = MESSAGING_DEVICE_PATH;
+ DebugPortDP.Header.SubType = MSG_VENDOR_DP;
SetDevicePathNodeLength (&(DebugPortDP.Header), sizeof (DebugPortDP));
CopyGuid (&DebugPortDP.Guid, &gEfiDebugPortDevicePathGuid);
@@ -340,10 +341,11 @@ DebugPortStart (
SetDevicePathEndNode (Dp1);
}
- mDebugPortDevice.DebugPortDevicePath = AppendDevicePathNode (Dp1, (EFI_DEVICE_PATH_PROTOCOL *) &DebugPortDP);
+ mDebugPortDevice.DebugPortDevicePath = AppendDevicePathNode (Dp1, (EFI_DEVICE_PATH_PROTOCOL *)&DebugPortDP);
if (mDebugPortDevice.DebugPortDevicePath == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Publish DebugPort and Device Path protocols
//
@@ -358,20 +360,21 @@ DebugPortStart (
if (EFI_ERROR (Status)) {
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return Status;
}
+
//
// Connect debugport child to serial io
//
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSerialIoProtocolGuid,
- (VOID **) &mDebugPortDevice.SerialIoBinding,
+ (VOID **)&mDebugPortDevice.SerialIoBinding,
This->DriverBindingHandle,
mDebugPortDevice.DebugPortDeviceHandle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -379,11 +382,11 @@ DebugPortStart (
if (EFI_ERROR (Status)) {
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return Status;
}
@@ -407,10 +410,10 @@ DebugPortStart (
EFI_STATUS
EFIAPI
DebugPortStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
@@ -420,20 +423,20 @@ DebugPortStop (
// Close the bus driver
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiSerialIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiSerialIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
mDebugPortDevice.SerialIoBinding = NULL;
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
FreePool (mDebugPortDevice.DebugPortDevicePath);
@@ -452,6 +455,7 @@ DebugPortStop (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Unpublish our protocols (DevicePath, DebugPort)
//
@@ -466,13 +470,13 @@ DebugPortStop (
if (EFI_ERROR (Status)) {
gBS->OpenProtocol (
- ControllerHandle,
- &gEfiSerialIoProtocolGuid,
- (VOID **) &mDebugPortDevice.SerialIoBinding,
- This->DriverBindingHandle,
- mDebugPortDevice.DebugPortDeviceHandle,
- EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
- );
+ ControllerHandle,
+ &gEfiSerialIoProtocolGuid,
+ (VOID **)&mDebugPortDevice.SerialIoBinding,
+ This->DriverBindingHandle,
+ mDebugPortDevice.DebugPortDeviceHandle,
+ EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
+ );
} else {
mDebugPortDevice.DebugPortDeviceHandle = NULL;
}
@@ -497,11 +501,11 @@ DebugPortStop (
EFI_STATUS
EFIAPI
DebugPortReset (
- IN EFI_DEBUGPORT_PROTOCOL *This
+ IN EFI_DEBUGPORT_PROTOCOL *This
)
{
- UINTN BufferSize;
- UINTN BitBucket;
+ UINTN BufferSize;
+ UINTN BitBucket;
while (This->Poll (This) == EFI_SUCCESS) {
BufferSize = 1;
@@ -528,10 +532,10 @@ DebugPortReset (
EFI_STATUS
EFIAPI
DebugPortRead (
- IN EFI_DEBUGPORT_PROTOCOL *This,
- IN UINT32 Timeout,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_DEBUGPORT_PROTOCOL *This,
+ IN UINT32 Timeout,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
)
{
DEBUGPORT_DEVICE *DebugPortDevice;
@@ -545,10 +549,10 @@ DebugPortRead (
do {
Status = DebugPortDevice->SerialIoBinding->Read (
- DebugPortDevice->SerialIoBinding,
- &LocalBufferSize,
- BufferPtr
- );
+ DebugPortDevice->SerialIoBinding,
+ &LocalBufferSize,
+ BufferPtr
+ );
if (Status == EFI_TIMEOUT) {
if (Timeout > DEBUGPORT_UART_DEFAULT_TIMEOUT) {
Timeout -= DEBUGPORT_UART_DEFAULT_TIMEOUT;
@@ -559,11 +563,11 @@ DebugPortRead (
break;
}
- BufferPtr += LocalBufferSize;
- LocalBufferSize = *BufferSize - (BufferPtr - (UINT8 *) Buffer);
+ BufferPtr += LocalBufferSize;
+ LocalBufferSize = *BufferSize - (BufferPtr - (UINT8 *)Buffer);
} while (LocalBufferSize != 0 && Timeout > 0);
- *BufferSize = (UINTN) BufferPtr - (UINTN) Buffer;
+ *BufferSize = (UINTN)BufferPtr - (UINTN)Buffer;
return Status;
}
@@ -586,10 +590,10 @@ DebugPortRead (
EFI_STATUS
EFIAPI
DebugPortWrite (
- IN EFI_DEBUGPORT_PROTOCOL *This,
- IN UINT32 Timeout,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_DEBUGPORT_PROTOCOL *This,
+ IN UINT32 Timeout,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
DEBUGPORT_DEVICE *DebugPortDevice;
@@ -601,7 +605,7 @@ DebugPortWrite (
Status = EFI_SUCCESS;
DebugPortDevice = DEBUGPORT_DEVICE_FROM_THIS (This);
- WriteSize = 8;
+ WriteSize = 8;
for (Position = 0; Position < *BufferSize && !EFI_ERROR (Status); Position += WriteSize) {
DebugPortDevice->SerialIoBinding->GetControl (
DebugPortDevice->SerialIoBinding,
@@ -612,10 +616,10 @@ DebugPortWrite (
}
Status = DebugPortDevice->SerialIoBinding->Write (
- DebugPortDevice->SerialIoBinding,
- &WriteSize,
- &((UINT8 *) Buffer)[Position]
- );
+ DebugPortDevice->SerialIoBinding,
+ &WriteSize,
+ &((UINT8 *)Buffer)[Position]
+ );
}
*BufferSize = Position;
@@ -638,7 +642,7 @@ DebugPortWrite (
EFI_STATUS
EFIAPI
DebugPortPoll (
- IN EFI_DEBUGPORT_PROTOCOL *This
+ IN EFI_DEBUGPORT_PROTOCOL *This
)
{
EFI_STATUS Status;
@@ -648,9 +652,9 @@ DebugPortPoll (
DebugPortDevice = DEBUGPORT_DEVICE_FROM_THIS (This);
Status = DebugPortDevice->SerialIoBinding->GetControl (
- DebugPortDevice->SerialIoBinding,
- &SerialControl
- );
+ DebugPortDevice->SerialIoBinding,
+ &SerialControl
+ );
if (!EFI_ERROR (Status)) {
if ((SerialControl & EFI_SERIAL_INPUT_BUFFER_EMPTY) != 0) {
@@ -677,7 +681,7 @@ DebugPortPoll (
EFI_STATUS
EFIAPI
ImageUnloadHandler (
- EFI_HANDLE ImageHandle
+ EFI_HANDLE ImageHandle
)
{
EFI_STATUS Status;
@@ -705,14 +709,17 @@ ImageUnloadHandler (
if (ComponentName2 == NULL) {
Status = gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
- &gEfiDriverBindingProtocolGuid, &gDebugPortDriverBinding,
+ &gEfiDriverBindingProtocolGuid,
+ &gDebugPortDriverBinding,
NULL
);
} else {
Status = gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
- &gEfiDriverBindingProtocolGuid, &gDebugPortDriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
+ &gEfiDriverBindingProtocolGuid,
+ &gDebugPortDriverBinding,
+ &gEfiComponentName2ProtocolGuid,
+ ComponentName2,
NULL
);
}
@@ -720,16 +727,21 @@ ImageUnloadHandler (
if (ComponentName2 == NULL) {
Status = gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
- &gEfiDriverBindingProtocolGuid, &gDebugPortDriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
+ &gEfiDriverBindingProtocolGuid,
+ &gDebugPortDriverBinding,
+ &gEfiComponentNameProtocolGuid,
+ ComponentName,
NULL
);
} else {
Status = gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
- &gEfiDriverBindingProtocolGuid, &gDebugPortDriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
+ &gEfiDriverBindingProtocolGuid,
+ &gDebugPortDriverBinding,
+ &gEfiComponentNameProtocolGuid,
+ ComponentName,
+ &gEfiComponentName2ProtocolGuid,
+ ComponentName2,
NULL
);
}
diff --git a/MdeModulePkg/Universal/DebugPortDxe/DebugPort.h b/MdeModulePkg/Universal/DebugPortDxe/DebugPort.h
index 12fca8e..48be8ef 100644
--- a/MdeModulePkg/Universal/DebugPortDxe/DebugPort.h
+++ b/MdeModulePkg/Universal/DebugPortDxe/DebugPort.h
@@ -9,7 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef __DEBUGPORT_H__
#define __DEBUGPORT_H__
-
#include <Uefi.h>
#include <Protocol/DevicePath.h>
@@ -30,9 +29,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Driver Binding Externs
//
-extern EFI_DRIVER_BINDING_PROTOCOL gDebugPortDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gDebugPortComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gDebugPortComponentName2;
+extern EFI_DRIVER_BINDING_PROTOCOL gDebugPortDriverBinding;
+extern EFI_COMPONENT_NAME_PROTOCOL gDebugPortComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gDebugPortComponentName2;
//
// local type definitions
@@ -60,21 +59,21 @@ typedef struct {
EFI_STOP_BITS_TYPE StopBits;
} DEBUGPORT_DEVICE;
-#define DEBUGPORT_DEVICE_FROM_THIS(a) CR (a, DEBUGPORT_DEVICE, DebugPortInterface, DEBUGPORT_DEVICE_SIGNATURE)
+#define DEBUGPORT_DEVICE_FROM_THIS(a) CR (a, DEBUGPORT_DEVICE, DebugPortInterface, DEBUGPORT_DEVICE_SIGNATURE)
-#define EFI_ACPI_PC_COMPORT_HID EISA_PNP_ID (0x0500)
-#define EFI_ACPI_16550UART_HID EISA_PNP_ID (0x0501)
+#define EFI_ACPI_PC_COMPORT_HID EISA_PNP_ID (0x0500)
+#define EFI_ACPI_16550UART_HID EISA_PNP_ID (0x0501)
-#define DEBUGPORT_UART_DEFAULT_BAUDRATE 115200
-#define DEBUGPORT_UART_DEFAULT_PARITY 0
-#define DEBUGPORT_UART_DEFAULT_FIFO_DEPTH 16
-#define DEBUGPORT_UART_DEFAULT_TIMEOUT 50000 ///< 5 ms
-#define DEBUGPORT_UART_DEFAULT_DATA_BITS 8
-#define DEBUGPORT_UART_DEFAULT_STOP_BITS 1
+#define DEBUGPORT_UART_DEFAULT_BAUDRATE 115200
+#define DEBUGPORT_UART_DEFAULT_PARITY 0
+#define DEBUGPORT_UART_DEFAULT_FIFO_DEPTH 16
+#define DEBUGPORT_UART_DEFAULT_TIMEOUT 50000///< 5 ms
+#define DEBUGPORT_UART_DEFAULT_DATA_BITS 8
+#define DEBUGPORT_UART_DEFAULT_STOP_BITS 1
-#define DEBUGPORT_DRIVER_VERSION 1
+#define DEBUGPORT_DRIVER_VERSION 1
-#define IS_UART_DEVICEPATH(dp) (DevicePathType (dp) == MESSAGING_DEVICE_PATH && DevicePathSubType (dp) == MSG_UART_DP)
+#define IS_UART_DEVICEPATH(dp) (DevicePathType (dp) == MESSAGING_DEVICE_PATH && DevicePathSubType (dp) == MSG_UART_DP)
/**
Debug Port Driver entry point.
@@ -94,8 +93,8 @@ typedef struct {
EFI_STATUS
EFIAPI
InitializeDebugPortDriver (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
/**
@@ -122,9 +121,9 @@ InitializeDebugPortDriver (
EFI_STATUS
EFIAPI
DebugPortSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -144,9 +143,9 @@ DebugPortSupported (
EFI_STATUS
EFIAPI
DebugPortStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -166,15 +165,16 @@ DebugPortStart (
EFI_STATUS
EFIAPI
DebugPortStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE Controller,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE Controller,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
//
// EFI Component Name Functions
//
+
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -222,7 +222,6 @@ DebugPortComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -294,14 +293,13 @@ DebugPortComponentNameGetDriverName (
EFI_STATUS
EFIAPI
DebugPortComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
/**
DebugPort protocol member function. Calls SerialIo:GetControl to flush buffer.
We cannot call SerialIo:SetAttributes because it uses pool services, which use
@@ -318,7 +316,7 @@ DebugPortComponentNameGetControllerName (
EFI_STATUS
EFIAPI
DebugPortReset (
- IN EFI_DEBUGPORT_PROTOCOL *This
+ IN EFI_DEBUGPORT_PROTOCOL *This
);
/**
@@ -338,10 +336,10 @@ DebugPortReset (
EFI_STATUS
EFIAPI
DebugPortRead (
- IN EFI_DEBUGPORT_PROTOCOL *This,
- IN UINT32 Timeout,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_DEBUGPORT_PROTOCOL *This,
+ IN UINT32 Timeout,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
);
/**
@@ -362,10 +360,10 @@ DebugPortRead (
EFI_STATUS
EFIAPI
DebugPortWrite (
- IN EFI_DEBUGPORT_PROTOCOL *This,
- IN UINT32 Timeout,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_DEBUGPORT_PROTOCOL *This,
+ IN UINT32 Timeout,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
/**
@@ -384,7 +382,7 @@ DebugPortWrite (
EFI_STATUS
EFIAPI
DebugPortPoll (
- IN EFI_DEBUGPORT_PROTOCOL *This
+ IN EFI_DEBUGPORT_PROTOCOL *This
);
#endif
diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugService.h b/MdeModulePkg/Universal/DebugServicePei/DebugService.h
index e81b9cd..7fe7565 100644
--- a/MdeModulePkg/Universal/DebugServicePei/DebugService.h
+++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.h
@@ -6,6 +6,7 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef __DEBUG_SERVICE_H__
#define __DEBUG_SERVICE_H__
@@ -22,10 +23,10 @@
**/
VOID
EFIAPI
-PeiDebugBPrint(
- IN UINTN ErrorLevel,
- IN CONST CHAR8 *Format,
- IN BASE_LIST Marker
+PeiDebugBPrint (
+ IN UINTN ErrorLevel,
+ IN CONST CHAR8 *Format,
+ IN BASE_LIST Marker
);
/**
@@ -41,10 +42,10 @@ PeiDebugBPrint(
**/
VOID
EFIAPI
-PeiDebugAssert(
- IN CONST CHAR8 *FileName,
- IN UINTN LineNumber,
- IN CONST CHAR8 *Description
+PeiDebugAssert (
+ IN CONST CHAR8 *FileName,
+ IN UINTN LineNumber,
+ IN CONST CHAR8 *Description
);
#endif
diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c
index 6d08f51..b340727 100644
--- a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c
+++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c
@@ -17,12 +17,12 @@
#include "DebugService.h"
-EDKII_DEBUG_PPI mDebugPpi = {
+EDKII_DEBUG_PPI mDebugPpi = {
PeiDebugBPrint,
PeiDebugAssert
};
-EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi = {
+EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi = {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEdkiiDebugPpiGuid,
(VOID *)&mDebugPpi
@@ -39,13 +39,13 @@ EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi = {
**/
VOID
EFIAPI
-PeiDebugBPrint(
- IN UINTN ErrorLevel,
- IN CONST CHAR8 *Format,
- IN BASE_LIST Marker
+PeiDebugBPrint (
+ IN UINTN ErrorLevel,
+ IN CONST CHAR8 *Format,
+ IN BASE_LIST Marker
)
{
- DebugBPrint(ErrorLevel, Format, Marker);
+ DebugBPrint (ErrorLevel, Format, Marker);
}
/**
@@ -61,13 +61,13 @@ PeiDebugBPrint(
**/
VOID
EFIAPI
-PeiDebugAssert(
- IN CONST CHAR8 *FileName,
- IN UINTN LineNumber,
- IN CONST CHAR8 *Description
+PeiDebugAssert (
+ IN CONST CHAR8 *FileName,
+ IN UINTN LineNumber,
+ IN CONST CHAR8 *Description
)
{
- DebugAssert(FileName, LineNumber, Description);
+ DebugAssert (FileName, LineNumber, Description);
}
/**
@@ -85,10 +85,9 @@ PeiDebugAssert(
EFI_STATUS
EFIAPI
DebugSerivceInitialize (
- IN EFI_PEI_FILE_HANDLE FileHandle,
- IN CONST EFI_PEI_SERVICES **PeiServices
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
)
{
return PeiServicesInstallPpi (&mDebugServicePpi);
}
-
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/DebugSupport.c b/MdeModulePkg/Universal/DebugSupportDxe/DebugSupport.c
index 1a03ba4..349a932 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/DebugSupport.c
+++ b/MdeModulePkg/Universal/DebugSupportDxe/DebugSupport.c
@@ -16,7 +16,6 @@ EFI_DEBUG_SUPPORT_PROTOCOL mDebugSupportProtocolInterface = {
InvalidateInstructionCache
};
-
/**
Debug Support Driver entry point.
@@ -34,8 +33,8 @@ EFI_DEBUG_SUPPORT_PROTOCOL mDebugSupportProtocolInterface = {
EFI_STATUS
EFIAPI
InitializeDebugSupportDriver (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_LOADED_IMAGE_PROTOCOL *LoadedImageProtocolPtr;
@@ -63,7 +62,7 @@ InitializeDebugSupportDriver (
Status = gBS->OpenProtocol (
HandlePtr[NumHandles],
&gEfiDebugSupportProtocolGuid,
- (VOID **) &DebugSupportProtocolPtr,
+ (VOID **)&DebugSupportProtocolPtr,
ImageHandle,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -77,6 +76,7 @@ InitializeDebugSupportDriver (
goto ErrExit;
}
} while (NumHandles > 0);
+
FreePool (HandlePtr);
}
@@ -86,7 +86,7 @@ InitializeDebugSupportDriver (
Status = gBS->OpenProtocol (
ImageHandle,
&gEfiLoadedImageProtocolGuid,
- (VOID **) &LoadedImageProtocolPtr,
+ (VOID **)&LoadedImageProtocolPtr,
ImageHandle,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/DebugSupport.h b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/DebugSupport.h
index 9f88fab..cf12a2a 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/DebugSupport.h
+++ b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/DebugSupport.h
@@ -21,8 +21,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/UefiBootServicesTableLib.h>
#include <Library/BaseLib.h>
-#define NUM_IDT_ENTRIES 0x78
-#define SYSTEM_TIMER_VECTOR 0x68
+#define NUM_IDT_ENTRIES 0x78
+#define SYSTEM_TIMER_VECTOR 0x68
typedef
VOID
@@ -32,20 +32,22 @@ VOID
typedef
VOID
-(EFIAPI *CALLBACK_FUNC) (
+(EFIAPI *CALLBACK_FUNC)(
);
typedef struct {
- IA32_IDT_GATE_DESCRIPTOR OrigDesc;
- DEBUG_PROC OrigVector;
- IA32_IDT_GATE_DESCRIPTOR NewDesc;
- DEBUG_PROC StubEntry;
- CALLBACK_FUNC RegisteredCallback;
+ IA32_IDT_GATE_DESCRIPTOR OrigDesc;
+ DEBUG_PROC OrigVector;
+ IA32_IDT_GATE_DESCRIPTOR NewDesc;
+ DEBUG_PROC StubEntry;
+ CALLBACK_FUNC RegisteredCallback;
} IDT_ENTRY;
-extern UINT8 InterruptEntryStub[];
-extern UINT32 StubSize;
-extern VOID (*OrigVector) (VOID);
+extern UINT8 InterruptEntryStub[];
+extern UINT32 StubSize;
+extern VOID (*OrigVector) (
+ VOID
+ );
extern IDT_ENTRY *IdtEntryTable;
extern IA32_IDT_GATE_DESCRIPTOR NullDesc;
@@ -79,8 +81,8 @@ FxStorSupport (
**/
VOID
Vect2Desc (
- IA32_IDT_GATE_DESCRIPTOR * DestDesc,
- VOID (*Vector) (VOID)
+ IA32_IDT_GATE_DESCRIPTOR *DestDesc,
+ VOID ( *Vector )(VOID)
);
/**
@@ -113,7 +115,7 @@ PlInitializeDebugSupportDriver (
EFI_STATUS
EFIAPI
PlUnloadDebugSupportDriver (
- IN EFI_HANDLE ImageHandle
+ IN EFI_HANDLE ImageHandle
);
/**
@@ -132,8 +134,8 @@ PlUnloadDebugSupportDriver (
EFI_STATUS
EFIAPI
GetMaximumProcessorIndex (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- OUT UINTN *MaxProcessorIndex
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ OUT UINTN *MaxProcessorIndex
);
/**
@@ -153,9 +155,9 @@ GetMaximumProcessorIndex (
EFI_STATUS
EFIAPI
RegisterPeriodicCallback (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN EFI_PERIODIC_CALLBACK PeriodicCallback
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN EFI_PERIODIC_CALLBACK PeriodicCallback
);
/**
@@ -178,10 +180,10 @@ RegisterPeriodicCallback (
EFI_STATUS
EFIAPI
RegisterExceptionCallback (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN EFI_EXCEPTION_CALLBACK ExceptionCallback,
- IN EFI_EXCEPTION_TYPE ExceptionType
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN EFI_EXCEPTION_CALLBACK ExceptionCallback,
+ IN EFI_EXCEPTION_TYPE ExceptionType
);
/**
@@ -200,10 +202,10 @@ RegisterExceptionCallback (
EFI_STATUS
EFIAPI
InvalidateInstructionCache (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN VOID *Start,
- IN UINT64 Length
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN VOID *Start,
+ IN UINT64 Length
);
/**
@@ -219,8 +221,8 @@ InvalidateInstructionCache (
**/
VOID
CreateEntryStub (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- OUT VOID **Stub
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ OUT VOID **Stub
);
/**
@@ -256,8 +258,8 @@ GetInterruptHandleFromIdt (
**/
EFI_STATUS
ManageIdtEntryTable (
- CALLBACK_FUNC NewCallback,
- EFI_EXCEPTION_TYPE ExceptionType
+ CALLBACK_FUNC NewCallback,
+ EFI_EXCEPTION_TYPE ExceptionType
);
/**
@@ -274,8 +276,8 @@ ManageIdtEntryTable (
**/
VOID
HookEntry (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN CALLBACK_FUNC NewCallback
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN CALLBACK_FUNC NewCallback
);
/**
@@ -286,7 +288,7 @@ HookEntry (
**/
VOID
UnhookEntry (
- IN EFI_EXCEPTION_TYPE ExceptionType
+ IN EFI_EXCEPTION_TYPE ExceptionType
);
#endif
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.c b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.c
index afea3a2..40fe74d 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.c
+++ b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.c
@@ -11,7 +11,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// This the global main table to keep track of the interrupts
//
-IDT_ENTRY *IdtEntryTable = NULL;
+IDT_ENTRY *IdtEntryTable = NULL;
/**
Read IDT Gate Descriptor from IDT Table.
@@ -26,13 +26,13 @@ ReadIdtGateDescriptor (
OUT IA32_IDT_GATE_DESCRIPTOR *IdtGateDescriptor
)
{
- IA32_DESCRIPTOR IdtrValue;
- IA32_IDT_GATE_DESCRIPTOR *IdtTable;
+ IA32_DESCRIPTOR IdtrValue;
+ IA32_IDT_GATE_DESCRIPTOR *IdtTable;
- AsmReadIdtr (&IdtrValue);
- IdtTable = (IA32_IDT_GATE_DESCRIPTOR *) IdtrValue.Base;
+ AsmReadIdtr (&IdtrValue);
+ IdtTable = (IA32_IDT_GATE_DESCRIPTOR *)IdtrValue.Base;
- CopyMem ((VOID *) IdtGateDescriptor, (VOID *) &(IdtTable)[Vector], sizeof (IA32_IDT_GATE_DESCRIPTOR));
+ CopyMem ((VOID *)IdtGateDescriptor, (VOID *)&(IdtTable)[Vector], sizeof (IA32_IDT_GATE_DESCRIPTOR));
}
/**
@@ -48,13 +48,13 @@ WriteIdtGateDescriptor (
IA32_IDT_GATE_DESCRIPTOR *IdtGateDescriptor
)
{
- IA32_DESCRIPTOR IdtrValue;
- IA32_IDT_GATE_DESCRIPTOR *IdtTable;
+ IA32_DESCRIPTOR IdtrValue;
+ IA32_IDT_GATE_DESCRIPTOR *IdtTable;
- AsmReadIdtr (&IdtrValue);
- IdtTable = (IA32_IDT_GATE_DESCRIPTOR *) IdtrValue.Base;
+ AsmReadIdtr (&IdtrValue);
+ IdtTable = (IA32_IDT_GATE_DESCRIPTOR *)IdtrValue.Base;
- CopyMem ((VOID *) &(IdtTable)[Vector], (VOID *) IdtGateDescriptor, sizeof (IA32_IDT_GATE_DESCRIPTOR));
+ CopyMem ((VOID *)&(IdtTable)[Vector], (VOID *)IdtGateDescriptor, sizeof (IA32_IDT_GATE_DESCRIPTOR));
}
/**
@@ -71,13 +71,13 @@ WriteIdtGateDescriptor (
**/
VOID
HookEntry (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN CALLBACK_FUNC NewCallback
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN CALLBACK_FUNC NewCallback
)
{
- BOOLEAN OldIntFlagState;
+ BOOLEAN OldIntFlagState;
- CreateEntryStub (ExceptionType, (VOID **) &IdtEntryTable[ExceptionType].StubEntry);
+ CreateEntryStub (ExceptionType, (VOID **)&IdtEntryTable[ExceptionType].StubEntry);
//
// Disables CPU interrupts and returns the previous interrupt state
@@ -91,7 +91,7 @@ HookEntry (
//
// stores orignal interrupt handle
//
- IdtEntryTable[ExceptionType].OrigVector = (DEBUG_PROC) GetInterruptHandleFromIdt (&(IdtEntryTable[ExceptionType].OrigDesc));
+ IdtEntryTable[ExceptionType].OrigVector = (DEBUG_PROC)GetInterruptHandleFromIdt (&(IdtEntryTable[ExceptionType].OrigDesc));
//
// encodes new IDT Gate descriptor by stub entry
@@ -112,7 +112,7 @@ HookEntry (
//
SetInterruptState (OldIntFlagState);
- return ;
+ return;
}
/**
@@ -123,10 +123,10 @@ HookEntry (
**/
VOID
UnhookEntry (
- IN EFI_EXCEPTION_TYPE ExceptionType
+ IN EFI_EXCEPTION_TYPE ExceptionType
)
{
- BOOLEAN OldIntFlagState;
+ BOOLEAN OldIntFlagState;
//
// Disables CPU interrupts and returns the previous interrupt state
@@ -143,7 +143,7 @@ UnhookEntry (
//
SetInterruptState (OldIntFlagState);
- return ;
+ return;
}
/**
@@ -162,8 +162,8 @@ UnhookEntry (
EFI_STATUS
EFIAPI
GetMaximumProcessorIndex (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- OUT UINTN *MaxProcessorIndex
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ OUT UINTN *MaxProcessorIndex
)
{
*MaxProcessorIndex = 0;
@@ -187,9 +187,9 @@ GetMaximumProcessorIndex (
EFI_STATUS
EFIAPI
RegisterPeriodicCallback (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN EFI_PERIODIC_CALLBACK PeriodicCallback
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN EFI_PERIODIC_CALLBACK PeriodicCallback
)
{
return ManageIdtEntryTable (PeriodicCallback, SYSTEM_TIMER_VECTOR);
@@ -215,16 +215,15 @@ RegisterPeriodicCallback (
EFI_STATUS
EFIAPI
RegisterExceptionCallback (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN EFI_EXCEPTION_CALLBACK ExceptionCallback,
- IN EFI_EXCEPTION_TYPE ExceptionType
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN EFI_EXCEPTION_CALLBACK ExceptionCallback,
+ IN EFI_EXCEPTION_TYPE ExceptionType
)
{
return ManageIdtEntryTable (ExceptionCallback, ExceptionType);
}
-
/**
Invalidates processor instruction cache for a memory range. Subsequent execution in this range
causes a fresh memory fetch to retrieve code to be executed.
@@ -241,10 +240,10 @@ RegisterExceptionCallback (
EFI_STATUS
EFIAPI
InvalidateInstructionCache (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN VOID *Start,
- IN UINT64 Length
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN VOID *Start,
+ IN UINT64 Length
)
{
AsmWbinvd ();
@@ -263,8 +262,8 @@ InvalidateInstructionCache (
**/
VOID
InterruptDistrubutionHub (
- EFI_EXCEPTION_TYPE ExceptionType,
- EFI_SYSTEM_CONTEXT_IA32 *ContextRecord
+ EFI_EXCEPTION_TYPE ExceptionType,
+ EFI_SYSTEM_CONTEXT_IA32 *ContextRecord
)
{
if (IdtEntryTable[ExceptionType].RegisteredCallback != NULL) {
@@ -290,7 +289,7 @@ InterruptDistrubutionHub (
EFI_STATUS
EFIAPI
PlUnloadDebugSupportDriver (
- IN EFI_HANDLE ImageHandle
+ IN EFI_HANDLE ImageHandle
)
{
EFI_EXCEPTION_TYPE ExceptionType;
@@ -341,8 +340,8 @@ PlInitializeDebugSupportDriver (
return EFI_OUT_OF_RESOURCES;
}
- for (ExceptionType = 0; ExceptionType < NUM_IDT_ENTRIES; ExceptionType ++) {
- IdtEntryTable[ExceptionType].StubEntry = (DEBUG_PROC) (UINTN) AllocatePool (StubSize);
+ for (ExceptionType = 0; ExceptionType < NUM_IDT_ENTRIES; ExceptionType++) {
+ IdtEntryTable[ExceptionType].StubEntry = (DEBUG_PROC)(UINTN)AllocatePool (StubSize);
if (IdtEntryTable[ExceptionType].StubEntry == NULL) {
goto ErrorCleanup;
}
@@ -352,6 +351,7 @@ PlInitializeDebugSupportDriver (
//
CopyMem ((VOID *)(UINTN)IdtEntryTable[ExceptionType].StubEntry, InterruptEntryStub, StubSize);
}
+
return EFI_SUCCESS;
ErrorCleanup:
@@ -361,6 +361,7 @@ ErrorCleanup:
FreePool ((VOID *)(UINTN)IdtEntryTable[ExceptionType].StubEntry);
}
}
+
FreePool (IdtEntryTable);
return EFI_OUT_OF_RESOURCES;
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.h b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.h
index ed7d98c..c3f0d96 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.h
+++ b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupport.h
@@ -11,6 +11,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Ia32/DebugSupport.h"
-#define EFI_ISA IsaIa32
+#define EFI_ISA IsaIa32
#endif
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupportIa32.c b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupportIa32.c
index 37c3306..0201427 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupportIa32.c
+++ b/MdeModulePkg/Universal/DebugSupportDxe/Ia32/PlDebugSupportIa32.c
@@ -8,7 +8,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "PlDebugSupport.h"
-IA32_IDT_GATE_DESCRIPTOR NullDesc = {{0}};
+IA32_IDT_GATE_DESCRIPTOR NullDesc = {
+ { 0 }
+};
/**
Get Interrupt Handle from IDT Gate Descriptor.
@@ -23,14 +25,14 @@ GetInterruptHandleFromIdt (
IN IA32_IDT_GATE_DESCRIPTOR *IdtGateDescriptor
)
{
- UINTN InterruptHandle;
+ UINTN InterruptHandle;
//
// InterruptHandle 0-15 : OffsetLow
// InterruptHandle 16-31 : OffsetHigh
//
- ((UINT16 *) &InterruptHandle)[0] = (UINT16) IdtGateDescriptor->Bits.OffsetLow;
- ((UINT16 *) &InterruptHandle)[1] = (UINT16) IdtGateDescriptor->Bits.OffsetHigh;
+ ((UINT16 *)&InterruptHandle)[0] = (UINT16)IdtGateDescriptor->Bits.OffsetLow;
+ ((UINT16 *)&InterruptHandle)[1] = (UINT16)IdtGateDescriptor->Bits.OffsetHigh;
return InterruptHandle;
}
@@ -48,11 +50,11 @@ GetInterruptHandleFromIdt (
**/
VOID
CreateEntryStub (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- OUT VOID **Stub
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ OUT VOID **Stub
)
{
- UINT8 *StubCopy;
+ UINT8 *StubCopy;
StubCopy = *Stub;
@@ -72,14 +74,14 @@ CreateEntryStub (
//
// poke in the exception type so the second push pushes the exception type
//
- StubCopy[0x0c] = (UINT8) ExceptionType;
+ StubCopy[0x0c] = (UINT8)ExceptionType;
//
// fixup the jump target to point to the common entry
//
- *(UINT32 *) &StubCopy[0x0e] = (UINT32) CommonIdtEntry - (UINT32) &StubCopy[StubSize];
+ *(UINT32 *)&StubCopy[0x0e] = (UINT32)CommonIdtEntry - (UINT32)&StubCopy[StubSize];
- return ;
+ return;
}
/**
@@ -101,8 +103,8 @@ CreateEntryStub (
**/
EFI_STATUS
ManageIdtEntryTable (
- CALLBACK_FUNC NewCallback,
- EFI_EXCEPTION_TYPE ExceptionType
+ CALLBACK_FUNC NewCallback,
+ EFI_EXCEPTION_TYPE ExceptionType
)
{
EFI_STATUS Status;
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupport.h b/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupport.h
index b3743fc..5ea09da 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupport.h
+++ b/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupport.h
@@ -11,6 +11,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Ia32/DebugSupport.h"
-#define EFI_ISA IsaX64
+#define EFI_ISA IsaX64
#endif
diff --git a/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupportX64.c b/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupportX64.c
index 1e40873..8d7b63a 100644
--- a/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupportX64.c
+++ b/MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupportX64.c
@@ -8,7 +8,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "PlDebugSupport.h"
-IA32_IDT_GATE_DESCRIPTOR NullDesc = {{0,0}};
+IA32_IDT_GATE_DESCRIPTOR NullDesc = {
+ { 0, 0 }
+};
/**
Get Interrupt Handle from IDT Gate Descriptor.
@@ -23,16 +25,16 @@ GetInterruptHandleFromIdt (
IN IA32_IDT_GATE_DESCRIPTOR *IdtGateDecriptor
)
{
- UINTN InterruptHandle;
+ UINTN InterruptHandle;
//
// InterruptHandle 0-15 : OffsetLow
// InterruptHandle 16-31 : OffsetHigh
// InterruptHandle 32-63 : OffsetUpper
//
- InterruptHandle = ((UINTN) IdtGateDecriptor->Bits.OffsetLow) |
- (((UINTN) IdtGateDecriptor->Bits.OffsetHigh) << 16) |
- (((UINTN) IdtGateDecriptor->Bits.OffsetUpper) << 32) ;
+ InterruptHandle = ((UINTN)IdtGateDecriptor->Bits.OffsetLow) |
+ (((UINTN)IdtGateDecriptor->Bits.OffsetHigh) << 16) |
+ (((UINTN)IdtGateDecriptor->Bits.OffsetUpper) << 32);
return InterruptHandle;
}
@@ -50,11 +52,11 @@ GetInterruptHandleFromIdt (
**/
VOID
CreateEntryStub (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- OUT VOID **Stub
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ OUT VOID **Stub
)
{
- UINT8 *StubCopy;
+ UINT8 *StubCopy;
StubCopy = *Stub;
@@ -72,12 +74,12 @@ CreateEntryStub (
//
// poke in the exception type so the second push pushes the exception type
//
- StubCopy[0x1] = (UINT8) ExceptionType;
+ StubCopy[0x1] = (UINT8)ExceptionType;
//
// fixup the jump target to point to the common entry
//
- *(UINT32 *) &StubCopy[0x3] = (UINT32)((UINTN) CommonIdtEntry - (UINTN) &StubCopy[StubSize]);
+ *(UINT32 *)&StubCopy[0x3] = (UINT32)((UINTN)CommonIdtEntry - (UINTN)&StubCopy[StubSize]);
return;
}
@@ -102,8 +104,8 @@ CreateEntryStub (
**/
EFI_STATUS
ManageIdtEntryTable (
- CALLBACK_FUNC NewCallback,
- EFI_EXCEPTION_TYPE ExceptionType
+ CALLBACK_FUNC NewCallback,
+ EFI_EXCEPTION_TYPE ExceptionType
)
{
EFI_STATUS Status;
diff --git a/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c b/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c
index cba2149..1fcfef6 100644
--- a/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c
+++ b/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c
@@ -16,7 +16,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/DevicePathLib.h>
#include <Library/PcdLib.h>
-GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePathUtilities = {
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePathUtilities = {
GetDevicePathSize,
DuplicateDevicePath,
AppendDevicePath,
@@ -27,12 +27,12 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePa
CreateDeviceNode
};
-GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_TO_TEXT_PROTOCOL mDevicePathToText = {
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_TO_TEXT_PROTOCOL mDevicePathToText = {
ConvertDeviceNodeToText,
ConvertDevicePathToText
};
-GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePathFromText = {
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePathFromText = {
ConvertTextToDeviceNode,
ConvertTextToDevicePath
};
@@ -53,8 +53,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePa
EFI_STATUS
EFIAPI
DevicePathEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -66,16 +66,21 @@ DevicePathEntryPoint (
if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) {
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,
- &gEfiDevicePathToTextProtocolGuid, &mDevicePathToText,
- &gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText,
+ &gEfiDevicePathUtilitiesProtocolGuid,
+ &mDevicePathUtilities,
+ &gEfiDevicePathToTextProtocolGuid,
+ &mDevicePathToText,
+ &gEfiDevicePathFromTextProtocolGuid,
+ &mDevicePathFromText,
NULL
);
} else {
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,
- &gEfiDevicePathToTextProtocolGuid, &mDevicePathToText,
+ &gEfiDevicePathUtilitiesProtocolGuid,
+ &mDevicePathUtilities,
+ &gEfiDevicePathToTextProtocolGuid,
+ &mDevicePathToText,
NULL
);
}
@@ -83,17 +88,21 @@ DevicePathEntryPoint (
if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) {
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,
- &gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText,
+ &gEfiDevicePathUtilitiesProtocolGuid,
+ &mDevicePathUtilities,
+ &gEfiDevicePathFromTextProtocolGuid,
+ &mDevicePathFromText,
NULL
);
} else {
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,
+ &gEfiDevicePathUtilitiesProtocolGuid,
+ &mDevicePathUtilities,
NULL
);
}
}
+
return Status;
}
diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
index 242dbf8..6a84f9e 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c
@@ -9,9 +9,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "PeiCdExpress.h"
-PEI_CD_EXPRESS_PRIVATE_DATA *mPrivateData = NULL;
-CHAR8 *mRecoveryFileName;
-UINTN mRecoveryFileNameSize;
+PEI_CD_EXPRESS_PRIVATE_DATA *mPrivateData = NULL;
+CHAR8 *mRecoveryFileName;
+UINTN mRecoveryFileNameSize;
/**
Installs the Device Recovery Module PPI, Initialize BlockIo Ppi
@@ -27,12 +27,12 @@ UINTN mRecoveryFileNameSize;
EFI_STATUS
EFIAPI
CdExpressPeimEntry (
- IN EFI_PEI_FILE_HANDLE FileHandle,
- IN CONST EFI_PEI_SERVICES **PeiServices
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
- PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData;
+ EFI_STATUS Status;
+ PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData;
if (!EFI_ERROR (PeiServicesRegisterForShadow (FileHandle))) {
return EFI_SUCCESS;
@@ -43,13 +43,14 @@ CdExpressPeimEntry (
return EFI_OUT_OF_RESOURCES;
}
- mRecoveryFileNameSize = PcdGetSize(PcdRecoveryFileName) / sizeof(CHAR16);
- mRecoveryFileName = AllocatePool(mRecoveryFileNameSize);
+ mRecoveryFileNameSize = PcdGetSize (PcdRecoveryFileName) / sizeof (CHAR16);
+ mRecoveryFileName = AllocatePool (mRecoveryFileNameSize);
if (mRecoveryFileName == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Status = UnicodeStrToAsciiStrS(PcdGetPtr(PcdRecoveryFileName), mRecoveryFileName, mRecoveryFileNameSize);
- if (EFI_ERROR(Status)) {
+
+ Status = UnicodeStrToAsciiStrS (PcdGetPtr (PcdRecoveryFileName), mRecoveryFileName, mRecoveryFileNameSize);
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -57,23 +58,23 @@ CdExpressPeimEntry (
// Initialize Private Data (to zero, as is required by subsequent operations)
//
ZeroMem (PrivateData, sizeof (*PrivateData));
- PrivateData->Signature = PEI_CD_EXPRESS_PRIVATE_DATA_SIGNATURE;
+ PrivateData->Signature = PEI_CD_EXPRESS_PRIVATE_DATA_SIGNATURE;
- PrivateData->BlockBuffer = AllocatePages (EFI_SIZE_TO_PAGES (PEI_CD_BLOCK_SIZE));
+ PrivateData->BlockBuffer = AllocatePages (EFI_SIZE_TO_PAGES (PEI_CD_BLOCK_SIZE));
if (PrivateData->BlockBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
PrivateData->CapsuleCount = 0;
- Status = UpdateBlocksAndVolumes (PrivateData, TRUE);
- Status = UpdateBlocksAndVolumes (PrivateData, FALSE);
+ Status = UpdateBlocksAndVolumes (PrivateData, TRUE);
+ Status = UpdateBlocksAndVolumes (PrivateData, FALSE);
//
// Installs Ppi
//
- PrivateData->DeviceRecoveryPpi.GetNumberRecoveryCapsules = GetNumberRecoveryCapsules;
- PrivateData->DeviceRecoveryPpi.GetRecoveryCapsuleInfo = GetRecoveryCapsuleInfo;
- PrivateData->DeviceRecoveryPpi.LoadRecoveryCapsule = LoadRecoveryCapsule;
+ PrivateData->DeviceRecoveryPpi.GetNumberRecoveryCapsules = GetNumberRecoveryCapsules;
+ PrivateData->DeviceRecoveryPpi.GetRecoveryCapsuleInfo = GetRecoveryCapsuleInfo;
+ PrivateData->DeviceRecoveryPpi.LoadRecoveryCapsule = LoadRecoveryCapsule;
PrivateData->PpiDescriptor.Flags = (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST);
PrivateData->PpiDescriptor.Guid = &gEfiPeiDeviceRecoveryModulePpiGuid;
@@ -83,6 +84,7 @@ CdExpressPeimEntry (
if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// PrivateData is allocated now, set it to the module variable
//
@@ -93,21 +95,20 @@ CdExpressPeimEntry (
//
PrivateData->NotifyDescriptor.Flags =
(
- EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK
+ EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK
);
- PrivateData->NotifyDescriptor.Guid = &gEfiPeiVirtualBlockIoPpiGuid;
- PrivateData->NotifyDescriptor.Notify = BlockIoNotifyEntry;
+ PrivateData->NotifyDescriptor.Guid = &gEfiPeiVirtualBlockIoPpiGuid;
+ PrivateData->NotifyDescriptor.Notify = BlockIoNotifyEntry;
PrivateData->NotifyDescriptor2.Flags =
(
- EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK |
- EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST
+ EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK |
+ EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST
);
- PrivateData->NotifyDescriptor2.Guid = &gEfiPeiVirtualBlockIo2PpiGuid;
- PrivateData->NotifyDescriptor2.Notify = BlockIoNotifyEntry;
+ PrivateData->NotifyDescriptor2.Guid = &gEfiPeiVirtualBlockIo2PpiGuid;
+ PrivateData->NotifyDescriptor2.Notify = BlockIoNotifyEntry;
return PeiServicesNotifyPpi (&PrivateData->NotifyDescriptor);
-
}
/**
@@ -151,8 +152,8 @@ BlockIoNotifyEntry (
**/
EFI_STATUS
UpdateBlocksAndVolumes (
- IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
- IN BOOLEAN BlockIo2
+ IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
+ IN BOOLEAN BlockIo2
)
{
EFI_STATUS Status;
@@ -176,19 +177,20 @@ UpdateBlocksAndVolumes (
for (BlockIoPpiInstance = 0; BlockIoPpiInstance < PEI_CD_EXPRESS_MAX_BLOCK_IO_PPI; BlockIoPpiInstance++) {
if (BlockIo2) {
Status = PeiServicesLocatePpi (
- &gEfiPeiVirtualBlockIo2PpiGuid,
- BlockIoPpiInstance,
- &TempPpiDescriptor,
- (VOID **) &BlockIo2Ppi
- );
+ &gEfiPeiVirtualBlockIo2PpiGuid,
+ BlockIoPpiInstance,
+ &TempPpiDescriptor,
+ (VOID **)&BlockIo2Ppi
+ );
} else {
Status = PeiServicesLocatePpi (
- &gEfiPeiVirtualBlockIoPpiGuid,
- BlockIoPpiInstance,
- &TempPpiDescriptor,
- (VOID **) &BlockIoPpi
- );
+ &gEfiPeiVirtualBlockIoPpiGuid,
+ BlockIoPpiInstance,
+ &TempPpiDescriptor,
+ (VOID **)&BlockIoPpi
+ );
}
+
if (EFI_ERROR (Status)) {
//
// Done with all Block Io Ppis
@@ -196,7 +198,7 @@ UpdateBlocksAndVolumes (
break;
}
- PeiServices = (EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();
+ PeiServices = (EFI_PEI_SERVICES **)GetPeiServicesTablePointer ();
if (BlockIo2) {
Status = BlockIo2Ppi->GetNumberOfBlockDevices (
PeiServices,
@@ -205,18 +207,20 @@ UpdateBlocksAndVolumes (
);
} else {
Status = BlockIoPpi->GetNumberOfBlockDevices (
- PeiServices,
- BlockIoPpi,
- &NumberBlockDevices
- );
+ PeiServices,
+ BlockIoPpi,
+ &NumberBlockDevices
+ );
}
+
if (EFI_ERROR (Status) || (NumberBlockDevices == 0)) {
continue;
}
+
//
// Just retrieve the first block, should emulate all blocks.
//
- for (IndexBlockDevice = 1; IndexBlockDevice <= NumberBlockDevices && PrivateData->CapsuleCount < PEI_CD_EXPRESS_MAX_CAPSULE_NUMBER; IndexBlockDevice ++) {
+ for (IndexBlockDevice = 1; IndexBlockDevice <= NumberBlockDevices && PrivateData->CapsuleCount < PEI_CD_EXPRESS_MAX_CAPSULE_NUMBER; IndexBlockDevice++) {
if (BlockIo2) {
Status = BlockIo2Ppi->GetBlockDeviceMediaInfo (
PeiServices,
@@ -226,28 +230,32 @@ UpdateBlocksAndVolumes (
);
if (EFI_ERROR (Status) ||
!Media2.MediaPresent ||
- ((Media2.InterfaceType != MSG_ATAPI_DP) && (Media2.InterfaceType != MSG_USB_DP)) ||
+ ((Media2.InterfaceType != MSG_ATAPI_DP) && (Media2.InterfaceType != MSG_USB_DP)) ||
(Media2.BlockSize != PEI_CD_BLOCK_SIZE)
- ) {
+ )
+ {
continue;
}
+
DEBUG ((DEBUG_INFO, "PeiCdExpress InterfaceType is %d\n", Media2.InterfaceType));
DEBUG ((DEBUG_INFO, "PeiCdExpress MediaPresent is %d\n", Media2.MediaPresent));
DEBUG ((DEBUG_INFO, "PeiCdExpress BlockSize is 0x%x\n", Media2.BlockSize));
} else {
Status = BlockIoPpi->GetBlockDeviceMediaInfo (
- PeiServices,
- BlockIoPpi,
- IndexBlockDevice,
- &Media
- );
+ PeiServices,
+ BlockIoPpi,
+ IndexBlockDevice,
+ &Media
+ );
if (EFI_ERROR (Status) ||
!Media.MediaPresent ||
- ((Media.DeviceType != IdeCDROM) && (Media.DeviceType != UsbMassStorage)) ||
+ ((Media.DeviceType != IdeCDROM) && (Media.DeviceType != UsbMassStorage)) ||
(Media.BlockSize != PEI_CD_BLOCK_SIZE)
- ) {
+ )
+ {
continue;
}
+
DEBUG ((DEBUG_INFO, "PeiCdExpress DeviceType is %d\n", Media.DeviceType));
DEBUG ((DEBUG_INFO, "PeiCdExpress MediaPresent is %d\n", Media.MediaPresent));
DEBUG ((DEBUG_INFO, "PeiCdExpress BlockSize is 0x%x\n", Media.BlockSize));
@@ -260,8 +268,9 @@ UpdateBlocksAndVolumes (
if (BlockIo2) {
PrivateData->CapsuleData[PrivateData->CapsuleCount].BlockIo2 = BlockIo2Ppi;
} else {
- PrivateData->CapsuleData[PrivateData->CapsuleCount].BlockIo = BlockIoPpi;
+ PrivateData->CapsuleData[PrivateData->CapsuleCount].BlockIo = BlockIoPpi;
}
+
Status = FindRecoveryCapsules (PrivateData);
DEBUG ((DEBUG_INFO, "Status is %d\n", Status));
@@ -271,7 +280,6 @@ UpdateBlocksAndVolumes (
PrivateData->CapsuleCount++;
}
-
}
return EFI_SUCCESS;
@@ -289,7 +297,7 @@ UpdateBlocksAndVolumes (
EFI_STATUS
EFIAPI
FindRecoveryCapsules (
- IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData
+ IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData
)
{
EFI_STATUS Status;
@@ -307,10 +315,10 @@ FindRecoveryCapsules (
UINTN OriginalLBA;
UINTN IndexBlockDevice;
- Buffer = PrivateData->BlockBuffer;
- BufferSize = PEI_CD_BLOCK_SIZE;
+ Buffer = PrivateData->BlockBuffer;
+ BufferSize = PEI_CD_BLOCK_SIZE;
- Lba = 16;
+ Lba = 16;
//
// The volume descriptor starts on Lba 16
//
@@ -326,29 +334,30 @@ FindRecoveryCapsules (
SetMem (Buffer, BufferSize, 0);
if (BlockIo2Ppi != NULL) {
Status = BlockIo2Ppi->ReadBlocks (
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
- BlockIo2Ppi,
- IndexBlockDevice,
- Lba,
- BufferSize,
- Buffer
- );
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),
+ BlockIo2Ppi,
+ IndexBlockDevice,
+ Lba,
+ BufferSize,
+ Buffer
+ );
} else {
Status = BlockIoPpi->ReadBlocks (
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
- BlockIoPpi,
- IndexBlockDevice,
- Lba,
- BufferSize,
- Buffer
- );
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),
+ BlockIoPpi,
+ IndexBlockDevice,
+ Lba,
+ BufferSize,
+ Buffer
+ );
}
+
if (EFI_ERROR (Status)) {
return Status;
}
- StandardID = (UINT8 *) (Buffer + PEI_CD_EXPRESS_STANDARD_ID_OFFSET);
- if (!StringCmp (StandardID, (UINT8 *) PEI_CD_STANDARD_ID, PEI_CD_EXPRESS_STANDARD_ID_SIZE, TRUE)) {
+ StandardID = (UINT8 *)(Buffer + PEI_CD_EXPRESS_STANDARD_ID_OFFSET);
+ if (!StringCmp (StandardID, (UINT8 *)PEI_CD_STANDARD_ID, PEI_CD_EXPRESS_STANDARD_ID_SIZE, TRUE)) {
break;
}
@@ -357,7 +366,7 @@ FindRecoveryCapsules (
StartOfVolume = FALSE;
}
- Type = *(UINT8 *) (Buffer + PEI_CD_EXPRESS_VOLUME_TYPE_OFFSET);
+ Type = *(UINT8 *)(Buffer + PEI_CD_EXPRESS_VOLUME_TYPE_OFFSET);
if (Type == PEI_CD_EXPRESS_VOLUME_TYPE_TERMINATOR) {
if (VolumeSpaceSize == 0) {
break;
@@ -374,12 +383,12 @@ FindRecoveryCapsules (
continue;
}
- VolumeSpaceSize = *(UINT32 *) (Buffer + PEI_CD_EXPRESS_VOLUME_SPACE_OFFSET);
+ VolumeSpaceSize = *(UINT32 *)(Buffer + PEI_CD_EXPRESS_VOLUME_SPACE_OFFSET);
- RoorDirRecord = (PEI_CD_EXPRESS_DIR_FILE_RECORD *) (Buffer + PEI_CD_EXPRESS_ROOT_DIR_RECORD_OFFSET);
- RootDirLBA = RoorDirRecord->LocationOfExtent[0];
+ RoorDirRecord = (PEI_CD_EXPRESS_DIR_FILE_RECORD *)(Buffer + PEI_CD_EXPRESS_ROOT_DIR_RECORD_OFFSET);
+ RootDirLBA = RoorDirRecord->LocationOfExtent[0];
- Status = RetrieveCapsuleFileFromRoot (PrivateData, BlockIoPpi, BlockIo2Ppi, IndexBlockDevice, RootDirLBA);
+ Status = RetrieveCapsuleFileFromRoot (PrivateData, BlockIoPpi, BlockIo2Ppi, IndexBlockDevice, RootDirLBA);
if (!EFI_ERROR (Status)) {
//
// Just look for the first primary descriptor
@@ -410,11 +419,11 @@ FindRecoveryCapsules (
EFI_STATUS
EFIAPI
RetrieveCapsuleFileFromRoot (
- IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
- IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *BlockIoPpi,
- IN EFI_PEI_RECOVERY_BLOCK_IO2_PPI *BlockIo2Ppi,
- IN UINTN IndexBlockDevice,
- IN UINT32 Lba
+ IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
+ IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *BlockIoPpi,
+ IN EFI_PEI_RECOVERY_BLOCK_IO2_PPI *BlockIo2Ppi,
+ IN UINTN IndexBlockDevice,
+ IN UINT32 Lba
)
{
EFI_STATUS Status;
@@ -423,40 +432,42 @@ RetrieveCapsuleFileFromRoot (
PEI_CD_EXPRESS_DIR_FILE_RECORD *FileRecord;
UINTN Index;
- Buffer = PrivateData->BlockBuffer;
- BufferSize = PEI_CD_BLOCK_SIZE;
+ Buffer = PrivateData->BlockBuffer;
+ BufferSize = PEI_CD_BLOCK_SIZE;
SetMem (Buffer, BufferSize, 0);
if (BlockIo2Ppi != NULL) {
Status = BlockIo2Ppi->ReadBlocks (
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
- BlockIo2Ppi,
- IndexBlockDevice,
- Lba,
- BufferSize,
- Buffer
- );
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),
+ BlockIo2Ppi,
+ IndexBlockDevice,
+ Lba,
+ BufferSize,
+ Buffer
+ );
} else {
Status = BlockIoPpi->ReadBlocks (
- (EFI_PEI_SERVICES **) GetPeiServicesTablePointer (),
- BlockIoPpi,
- IndexBlockDevice,
- Lba,
- BufferSize,
- Buffer
- );
+ (EFI_PEI_SERVICES **)GetPeiServicesTablePointer (),
+ BlockIoPpi,
+ IndexBlockDevice,
+ Lba,
+ BufferSize,
+ Buffer
+ );
}
+
if (EFI_ERROR (Status)) {
return Status;
}
while (1) {
- FileRecord = (PEI_CD_EXPRESS_DIR_FILE_RECORD *) Buffer;
+ FileRecord = (PEI_CD_EXPRESS_DIR_FILE_RECORD *)Buffer;
if (FileRecord->Length == 0) {
break;
}
+
//
// Not intend to check other flag now
//
@@ -481,12 +492,12 @@ RetrieveCapsuleFileFromRoot (
continue;
}
- PrivateData->CapsuleData[PrivateData->CapsuleCount].CapsuleStartLBA = FileRecord->LocationOfExtent[0];
+ PrivateData->CapsuleData[PrivateData->CapsuleCount].CapsuleStartLBA = FileRecord->LocationOfExtent[0];
PrivateData->CapsuleData[PrivateData->CapsuleCount].CapsuleBlockAlignedSize =
(
- FileRecord->DataLength[0] /
- PEI_CD_BLOCK_SIZE +
- 1
+ FileRecord->DataLength[0] /
+ PEI_CD_BLOCK_SIZE +
+ 1
) *
PEI_CD_BLOCK_SIZE;
PrivateData->CapsuleData[PrivateData->CapsuleCount].CapsuleSize = FileRecord->DataLength[0];
@@ -523,12 +534,12 @@ RetrieveCapsuleFileFromRoot (
EFI_STATUS
EFIAPI
GetNumberRecoveryCapsules (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
- OUT UINTN *NumberRecoveryCapsules
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
+ OUT UINTN *NumberRecoveryCapsules
)
{
- PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData;
+ PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData;
PrivateData = PEI_CD_EXPRESS_PRIVATE_DATA_FROM_THIS (This);
UpdateBlocksAndVolumes (PrivateData, TRUE);
@@ -570,16 +581,16 @@ GetNumberRecoveryCapsules (
EFI_STATUS
EFIAPI
GetRecoveryCapsuleInfo (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
- IN UINTN CapsuleInstance,
- OUT UINTN *Size,
- OUT EFI_GUID *CapsuleType
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
+ IN UINTN CapsuleInstance,
+ OUT UINTN *Size,
+ OUT EFI_GUID *CapsuleType
)
{
- PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData;
- UINTN NumberRecoveryCapsules;
- EFI_STATUS Status;
+ PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData;
+ UINTN NumberRecoveryCapsules;
+ EFI_STATUS Status;
Status = GetNumberRecoveryCapsules (PeiServices, This, &NumberRecoveryCapsules);
@@ -625,10 +636,10 @@ GetRecoveryCapsuleInfo (
EFI_STATUS
EFIAPI
LoadRecoveryCapsule (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
- IN UINTN CapsuleInstance,
- OUT VOID *Buffer
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
+ IN UINTN CapsuleInstance,
+ OUT VOID *Buffer
)
{
EFI_STATUS Status;
@@ -653,23 +664,24 @@ LoadRecoveryCapsule (
if (BlockIo2Ppi != NULL) {
Status = BlockIo2Ppi->ReadBlocks (
- PeiServices,
- BlockIo2Ppi,
- PrivateData->CapsuleData[CapsuleInstance - 1].IndexBlock,
- PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleStartLBA,
- PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleBlockAlignedSize,
- Buffer
- );
+ PeiServices,
+ BlockIo2Ppi,
+ PrivateData->CapsuleData[CapsuleInstance - 1].IndexBlock,
+ PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleStartLBA,
+ PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleBlockAlignedSize,
+ Buffer
+ );
} else {
Status = BlockIoPpi->ReadBlocks (
- PeiServices,
- BlockIoPpi,
- PrivateData->CapsuleData[CapsuleInstance - 1].IndexBlock,
- PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleStartLBA,
- PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleBlockAlignedSize,
- Buffer
- );
+ PeiServices,
+ BlockIoPpi,
+ PrivateData->CapsuleData[CapsuleInstance - 1].IndexBlock,
+ PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleStartLBA,
+ PrivateData->CapsuleData[CapsuleInstance - 1].CapsuleBlockAlignedSize,
+ Buffer
+ );
}
+
return Status;
}
@@ -687,14 +699,14 @@ LoadRecoveryCapsule (
**/
BOOLEAN
StringCmp (
- IN UINT8 *Source1,
- IN UINT8 *Source2,
- IN UINTN Size,
- IN BOOLEAN CaseSensitive
+ IN UINT8 *Source1,
+ IN UINT8 *Source2,
+ IN UINTN Size,
+ IN BOOLEAN CaseSensitive
)
{
- UINTN Index;
- UINT8 Dif;
+ UINTN Index;
+ UINT8 Dif;
for (Index = 0; Index < Size; Index++) {
if (Source1[Index] == Source2[Index]) {
@@ -702,7 +714,7 @@ StringCmp (
}
if (!CaseSensitive) {
- Dif = (UINT8) ((Source1[Index] > Source2[Index]) ? (Source1[Index] - Source2[Index]) : (Source2[Index] - Source1[Index]));
+ Dif = (UINT8)((Source1[Index] > Source2[Index]) ? (Source1[Index] - Source2[Index]) : (Source2[Index] - Source1[Index]));
if (Dif == ('a' - 'A')) {
continue;
}
diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h
index 513f070..e5b9c1e 100644
--- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h
+++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.h
@@ -10,7 +10,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _PEI_CD_EXPRESS_H_
#define _PEI_CD_EXPRESS_H_
-
#include <PiPei.h>
#include <Ppi/BlockIo.h>
@@ -26,44 +25,42 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/PeiServicesLib.h>
#include <Library/MemoryAllocationLib.h>
-
#pragma pack(1)
-#define PEI_CD_EXPRESS_MAX_BLOCK_IO_PPI 8
-#define PEI_CD_EXPRESS_MAX_CAPSULE_NUMBER 16
+#define PEI_CD_EXPRESS_MAX_BLOCK_IO_PPI 8
+#define PEI_CD_EXPRESS_MAX_CAPSULE_NUMBER 16
-#define PEI_CD_BLOCK_SIZE 0x800
-#define PEI_MEMMORY_PAGE_SIZE 0x1000
+#define PEI_CD_BLOCK_SIZE 0x800
+#define PEI_MEMMORY_PAGE_SIZE 0x1000
//
// Following are defined according to ISO-9660 specification
//
-#define PEI_CD_STANDARD_ID "CD001"
-#define PEI_CD_EXPRESS_STANDARD_ID_SIZE 5
+#define PEI_CD_STANDARD_ID "CD001"
+#define PEI_CD_EXPRESS_STANDARD_ID_SIZE 5
-#define PEI_CD_EXPRESS_VOLUME_TYPE_OFFSET 0
-#define PEI_CD_EXPRESS_STANDARD_ID_OFFSET 1
-#define PEI_CD_EXPRESS_VOLUME_SPACE_OFFSET 80
-#define PEI_CD_EXPRESS_ROOT_DIR_RECORD_OFFSET 156
+#define PEI_CD_EXPRESS_VOLUME_TYPE_OFFSET 0
+#define PEI_CD_EXPRESS_STANDARD_ID_OFFSET 1
+#define PEI_CD_EXPRESS_VOLUME_SPACE_OFFSET 80
+#define PEI_CD_EXPRESS_ROOT_DIR_RECORD_OFFSET 156
-#define PEI_CD_EXPRESS_VOLUME_TYPE_PRIMARY 1
-#define PEI_CD_EXPRESS_VOLUME_TYPE_TERMINATOR 255
+#define PEI_CD_EXPRESS_VOLUME_TYPE_PRIMARY 1
+#define PEI_CD_EXPRESS_VOLUME_TYPE_TERMINATOR 255
#define PEI_CD_EXPRESS_DIR_FILE_REC_FLAG_ISDIR 0x02
typedef struct {
- UINTN CapsuleStartLBA;
- UINTN CapsuleSize;
- UINTN CapsuleBlockAlignedSize;
- UINTN IndexBlock;
- EFI_PEI_RECOVERY_BLOCK_IO_PPI *BlockIo;
- EFI_PEI_RECOVERY_BLOCK_IO2_PPI *BlockIo2;
+ UINTN CapsuleStartLBA;
+ UINTN CapsuleSize;
+ UINTN CapsuleBlockAlignedSize;
+ UINTN IndexBlock;
+ EFI_PEI_RECOVERY_BLOCK_IO_PPI *BlockIo;
+ EFI_PEI_RECOVERY_BLOCK_IO2_PPI *BlockIo2;
} PEI_CD_EXPRESS_CAPSULE_DATA;
-#define PEI_CD_EXPRESS_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('p', 'c', 'd', 'e')
+#define PEI_CD_EXPRESS_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('p', 'c', 'd', 'e')
typedef struct {
-
UINTN Signature;
EFI_PEI_DEVICE_RECOVERY_MODULE_PPI DeviceRecoveryPpi;
EFI_PEI_PPI_DESCRIPTOR PpiDescriptor;
@@ -73,7 +70,6 @@ typedef struct {
UINT8 *BlockBuffer;
UINTN CapsuleCount;
PEI_CD_EXPRESS_CAPSULE_DATA CapsuleData[PEI_CD_EXPRESS_MAX_CAPSULE_NUMBER];
-
} PEI_CD_EXPRESS_PRIVATE_DATA;
#define PEI_CD_EXPRESS_PRIVATE_DATA_FROM_THIS(a) \
@@ -84,17 +80,17 @@ typedef struct {
)
typedef struct {
- UINT8 Length;
- UINT8 ExtendedAttributeRecordLength;
- UINT32 LocationOfExtent[2];
- UINT32 DataLength[2];
- UINT8 DateTime[7];
- UINT8 Flag;
- UINT8 FileUnitSize;
- UINT8 InterleaveGapSize;
- UINT32 VolumeSequenceNumber;
- UINT8 FileIDLength;
- UINT8 FileID[1];
+ UINT8 Length;
+ UINT8 ExtendedAttributeRecordLength;
+ UINT32 LocationOfExtent[2];
+ UINT32 DataLength[2];
+ UINT8 DateTime[7];
+ UINT8 Flag;
+ UINT8 FileUnitSize;
+ UINT8 InterleaveGapSize;
+ UINT32 VolumeSequenceNumber;
+ UINT8 FileIDLength;
+ UINT8 FileID[1];
} PEI_CD_EXPRESS_DIR_FILE_RECORD;
/**
@@ -129,8 +125,8 @@ BlockIoNotifyEntry (
**/
EFI_STATUS
UpdateBlocksAndVolumes (
- IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
- IN BOOLEAN BlockIo2
+ IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
+ IN BOOLEAN BlockIo2
);
/**
@@ -159,9 +155,9 @@ UpdateBlocksAndVolumes (
EFI_STATUS
EFIAPI
GetNumberRecoveryCapsules (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
- OUT UINTN *NumberRecoveryCapsules
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
+ OUT UINTN *NumberRecoveryCapsules
);
/**
@@ -192,11 +188,11 @@ GetNumberRecoveryCapsules (
EFI_STATUS
EFIAPI
GetRecoveryCapsuleInfo (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
- IN UINTN CapsuleInstance,
- OUT UINTN *Size,
- OUT EFI_GUID *CapsuleType
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
+ IN UINTN CapsuleInstance,
+ OUT UINTN *Size,
+ OUT EFI_GUID *CapsuleType
);
/**
@@ -221,10 +217,10 @@ GetRecoveryCapsuleInfo (
EFI_STATUS
EFIAPI
LoadRecoveryCapsule (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
- IN UINTN CapsuleInstance,
- OUT VOID *Buffer
+ IN EFI_PEI_SERVICES **PeiServices,
+ IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
+ IN UINTN CapsuleInstance,
+ OUT VOID *Buffer
);
/**
@@ -239,7 +235,7 @@ LoadRecoveryCapsule (
EFI_STATUS
EFIAPI
FindRecoveryCapsules (
- IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData
+ IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData
);
/**
@@ -259,14 +255,13 @@ FindRecoveryCapsules (
EFI_STATUS
EFIAPI
RetrieveCapsuleFileFromRoot (
- IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
- IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *BlockIoPpi,
- IN EFI_PEI_RECOVERY_BLOCK_IO2_PPI *BlockIo2Ppi,
- IN UINTN IndexBlockDevice,
- IN UINT32 Lba
+ IN OUT PEI_CD_EXPRESS_PRIVATE_DATA *PrivateData,
+ IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *BlockIoPpi,
+ IN EFI_PEI_RECOVERY_BLOCK_IO2_PPI *BlockIo2Ppi,
+ IN UINTN IndexBlockDevice,
+ IN UINT32 Lba
);
-
/**
This function compares two ASCII strings in case sensitive/insensitive way.
@@ -281,10 +276,10 @@ RetrieveCapsuleFileFromRoot (
**/
BOOLEAN
StringCmp (
- IN UINT8 *Source1,
- IN UINT8 *Source2,
- IN UINTN Size,
- IN BOOLEAN CaseSensitive
+ IN UINT8 *Source1,
+ IN UINT8 *Source2,
+ IN UINTN Size,
+ IN BOOLEAN CaseSensitive
);
#pragma pack()
diff --git a/MdeModulePkg/Universal/Disk/DiskIoDxe/ComponentName.c b/MdeModulePkg/Universal/Disk/DiskIoDxe/ComponentName.c
index ba6e427..a6f31ed 100644
--- a/MdeModulePkg/Universal/Disk/DiskIoDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Disk/DiskIoDxe/ComponentName.c
@@ -20,9 +20,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) DiskIoComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) DiskIoComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)DiskIoComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)DiskIoComponentNameGetControllerName,
"en"
};
@@ -30,7 +30,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2
// Driver name table for DiskIo module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDiskIoDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDiskIoDriverNameTable[] = {
{
"eng;en",
(CHAR16 *)L"Generic Disk I/O Driver"
@@ -41,8 +41,6 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDiskIoDriverNameTable[]
}
};
-
-
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -99,8 +97,6 @@ DiskIoComponentNameGetDriverName (
);
}
-
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -172,11 +168,11 @@ DiskIoComponentNameGetDriverName (
EFI_STATUS
EFIAPI
DiskIoComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
diff --git a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c
index bc43d92..38af39f 100644
--- a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c
+++ b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c
@@ -19,7 +19,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Driver binding protocol implementation for DiskIo driver.
//
-EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = {
DiskIoDriverBindingSupported,
DiskIoDriverBindingStart,
DiskIoDriverBindingStop,
@@ -32,7 +32,7 @@ EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = {
// Template for DiskIo private data structure.
// The pointer to BlockIo protocol interface is assigned dynamically.
//
-DISK_IO_PRIVATE_DATA gDiskIoPrivateDataTemplate = {
+DISK_IO_PRIVATE_DATA gDiskIoPrivateDataTemplate = {
DISK_IO_PRIVATE_DATA_SIGNATURE,
{
EFI_DISK_IO_PROTOCOL_REVISION,
@@ -69,8 +69,8 @@ DiskIoDriverBindingSupported (
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
)
{
- EFI_STATUS Status;
- EFI_BLOCK_IO_PROTOCOL *BlockIo;
+ EFI_STATUS Status;
+ EFI_BLOCK_IO_PROTOCOL *BlockIo;
//
// Open the IO Abstraction(s) needed to perform the supported test.
@@ -78,7 +78,7 @@ DiskIoDriverBindingSupported (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiBlockIoProtocolGuid,
- (VOID **) &BlockIo,
+ (VOID **)&BlockIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -99,7 +99,6 @@ DiskIoDriverBindingSupported (
return EFI_SUCCESS;
}
-
/**
Start this driver on ControllerHandle by opening a Block IO protocol and
installing a Disk IO protocol on ControllerHandle.
@@ -136,7 +135,7 @@ DiskIoDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiBlockIoProtocolGuid,
- (VOID **) &gDiskIoPrivateDataTemplate.BlockIo,
+ (VOID **)&gDiskIoPrivateDataTemplate.BlockIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -148,7 +147,7 @@ DiskIoDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiBlockIo2ProtocolGuid,
- (VOID **) &gDiskIoPrivateDataTemplate.BlockIo2,
+ (VOID **)&gDiskIoPrivateDataTemplate.BlockIo2,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -169,10 +168,12 @@ DiskIoDriverBindingStart (
//
// The BlockSize and IoAlign of BlockIo and BlockIo2 should equal.
//
- ASSERT ((Instance->BlockIo2 == NULL) ||
- ((Instance->BlockIo->Media->IoAlign == Instance->BlockIo2->Media->IoAlign) &&
- (Instance->BlockIo->Media->BlockSize == Instance->BlockIo2->Media->BlockSize)
- ));
+ ASSERT (
+ (Instance->BlockIo2 == NULL) ||
+ ((Instance->BlockIo->Media->IoAlign == Instance->BlockIo2->Media->IoAlign) &&
+ (Instance->BlockIo->Media->BlockSize == Instance->BlockIo2->Media->BlockSize)
+ )
+ );
InitializeListHead (&Instance->TaskQueue);
EfiInitializeLock (&Instance->TaskQueueLock, TPL_NOTIFY);
@@ -191,21 +192,24 @@ DiskIoDriverBindingStart (
if (Instance->BlockIo2 != NULL) {
Status = gBS->InstallMultipleProtocolInterfaces (
&ControllerHandle,
- &gEfiDiskIoProtocolGuid, &Instance->DiskIo,
- &gEfiDiskIo2ProtocolGuid, &Instance->DiskIo2,
+ &gEfiDiskIoProtocolGuid,
+ &Instance->DiskIo,
+ &gEfiDiskIo2ProtocolGuid,
+ &Instance->DiskIo2,
NULL
);
} else {
Status = gBS->InstallMultipleProtocolInterfaces (
&ControllerHandle,
- &gEfiDiskIoProtocolGuid, &Instance->DiskIo,
+ &gEfiDiskIoProtocolGuid,
+ &Instance->DiskIo,
NULL
);
}
ErrorExit:
if (EFI_ERROR (Status)) {
- if (Instance != NULL && Instance->SharedWorkingBuffer != NULL) {
+ if ((Instance != NULL) && (Instance->SharedWorkingBuffer != NULL)) {
FreeAlignedPages (
Instance->SharedWorkingBuffer,
EFI_SIZE_TO_PAGES (PcdGet32 (PcdDiskIoDataBufferBlockNum) * Instance->BlockIo->Media->BlockSize)
@@ -246,17 +250,17 @@ ErrorExit1:
EFI_STATUS
EFIAPI
DiskIoDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- EFI_STATUS Status;
- EFI_DISK_IO_PROTOCOL *DiskIo;
- EFI_DISK_IO2_PROTOCOL *DiskIo2;
- DISK_IO_PRIVATE_DATA *Instance;
- BOOLEAN AllTaskDone;
+ EFI_STATUS Status;
+ EFI_DISK_IO_PROTOCOL *DiskIo;
+ EFI_DISK_IO2_PROTOCOL *DiskIo2;
+ DISK_IO_PRIVATE_DATA *Instance;
+ BOOLEAN AllTaskDone;
//
// Get our context back.
@@ -264,7 +268,7 @@ DiskIoDriverBindingStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDiskIoProtocolGuid,
- (VOID **) &DiskIo,
+ (VOID **)&DiskIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -272,10 +276,11 @@ DiskIoDriverBindingStop (
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDiskIo2ProtocolGuid,
- (VOID **) &DiskIo2,
+ (VOID **)&DiskIo2,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -295,21 +300,25 @@ DiskIoDriverBindingStop (
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = gBS->UninstallMultipleProtocolInterfaces (
ControllerHandle,
- &gEfiDiskIoProtocolGuid, &Instance->DiskIo,
- &gEfiDiskIo2ProtocolGuid, &Instance->DiskIo2,
+ &gEfiDiskIoProtocolGuid,
+ &Instance->DiskIo,
+ &gEfiDiskIo2ProtocolGuid,
+ &Instance->DiskIo2,
NULL
);
} else {
Status = gBS->UninstallMultipleProtocolInterfaces (
ControllerHandle,
- &gEfiDiskIoProtocolGuid, &Instance->DiskIo,
+ &gEfiDiskIoProtocolGuid,
+ &Instance->DiskIo,
NULL
);
}
- if (!EFI_ERROR (Status)) {
+ if (!EFI_ERROR (Status)) {
do {
EfiAcquireLock (&Instance->TaskQueueLock);
AllTaskDone = IsListEmpty (&Instance->TaskQueue);
@@ -344,7 +353,6 @@ DiskIoDriverBindingStop (
return Status;
}
-
/**
Destroy the sub task.
@@ -355,15 +363,16 @@ DiskIoDriverBindingStop (
**/
LIST_ENTRY *
DiskIoDestroySubtask (
- IN DISK_IO_PRIVATE_DATA *Instance,
- IN DISK_IO_SUBTASK *Subtask
+ IN DISK_IO_PRIVATE_DATA *Instance,
+ IN DISK_IO_SUBTASK *Subtask
)
{
- LIST_ENTRY *Link;
+ LIST_ENTRY *Link;
if (Subtask->Task != NULL) {
EfiAcquireLock (&Subtask->Task->SubtasksLock);
}
+
Link = RemoveEntryList (&Subtask->Link);
if (Subtask->Task != NULL) {
EfiReleaseLock (&Subtask->Task->SubtasksLock);
@@ -378,10 +387,12 @@ DiskIoDestroySubtask (
: EFI_SIZE_TO_PAGES (Subtask->Length)
);
}
+
if (Subtask->BlockIo2Token.Event != NULL) {
gBS->CloseEvent (Subtask->BlockIo2Token.Event);
}
}
+
FreePool (Subtask);
return Link;
@@ -396,8 +407,8 @@ DiskIoDestroySubtask (
VOID
EFIAPI
DiskIo2OnReadWriteComplete (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
DISK_IO_SUBTASK *Subtask;
@@ -405,7 +416,7 @@ DiskIo2OnReadWriteComplete (
EFI_STATUS TransactionStatus;
DISK_IO_PRIVATE_DATA *Instance;
- Subtask = (DISK_IO_SUBTASK *) Context;
+ Subtask = (DISK_IO_SUBTASK *)Context;
TransactionStatus = Subtask->BlockIo2Token.TransactionStatus;
Task = Subtask->Task;
Instance = Task->Instance;
@@ -416,7 +427,8 @@ DiskIo2OnReadWriteComplete (
if ((Subtask->WorkingBuffer != NULL) && !EFI_ERROR (TransactionStatus) &&
(Task->Token != NULL) && !Subtask->Write
- ) {
+ )
+ {
CopyMem (Subtask->Buffer, Subtask->WorkingBuffer + Subtask->Offset, Subtask->Length);
}
@@ -454,22 +466,23 @@ DiskIo2OnReadWriteComplete (
**/
DISK_IO_SUBTASK *
DiskIoCreateSubtask (
- IN BOOLEAN Write,
- IN UINT64 Lba,
- IN UINT32 Offset,
- IN UINTN Length,
- IN VOID *WorkingBuffer OPTIONAL,
- IN VOID *Buffer,
- IN BOOLEAN Blocking
+ IN BOOLEAN Write,
+ IN UINT64 Lba,
+ IN UINT32 Offset,
+ IN UINTN Length,
+ IN VOID *WorkingBuffer OPTIONAL,
+ IN VOID *Buffer,
+ IN BOOLEAN Blocking
)
{
- DISK_IO_SUBTASK *Subtask;
- EFI_STATUS Status;
+ DISK_IO_SUBTASK *Subtask;
+ EFI_STATUS Status;
Subtask = AllocateZeroPool (sizeof (DISK_IO_SUBTASK));
if (Subtask == NULL) {
return NULL;
}
+
Subtask->Signature = DISK_IO_SUBTASK_SIGNATURE;
Subtask->Write = Write;
Subtask->Lba = Lba;
@@ -491,10 +504,16 @@ DiskIoCreateSubtask (
return NULL;
}
}
+
DEBUG ((
DEBUG_BLKIO,
" %c:Lba/Offset/Length/WorkingBuffer/Buffer = %016lx/%08x/%08x/%08x/%08x\n",
- Write ? 'W': 'R', Lba, Offset, Length, WorkingBuffer, Buffer
+ Write ? 'W' : 'R',
+ Lba,
+ Offset,
+ Length,
+ WorkingBuffer,
+ Buffer
));
return Subtask;
@@ -527,18 +546,18 @@ DiskIoCreateSubtaskList (
IN OUT LIST_ENTRY *Subtasks
)
{
- UINT32 BlockSize;
- UINT32 IoAlign;
- UINT64 Lba;
- UINT64 OverRunLba;
- UINT32 UnderRun;
- UINT32 OverRun;
- UINT8 *BufferPtr;
- UINTN Length;
- UINTN DataBufferSize;
- DISK_IO_SUBTASK *Subtask;
- VOID *WorkingBuffer;
- LIST_ENTRY *Link;
+ UINT32 BlockSize;
+ UINT32 IoAlign;
+ UINT64 Lba;
+ UINT64 OverRunLba;
+ UINT32 UnderRun;
+ UINT32 OverRun;
+ UINT8 *BufferPtr;
+ UINTN Length;
+ UINTN DataBufferSize;
+ DISK_IO_SUBTASK *Subtask;
+ VOID *WorkingBuffer;
+ LIST_ENTRY *Link;
DEBUG ((DEBUG_BLKIO, "DiskIo: Create subtasks for task: Offset/BufferSize/Buffer = %016lx/%08x/%08x\n", Offset, BufferSize, Buffer));
@@ -549,7 +568,7 @@ DiskIoCreateSubtaskList (
}
Lba = DivU64x32Remainder (Offset, BlockSize, &UnderRun);
- BufferPtr = (UINT8 *) Buffer;
+ BufferPtr = (UINT8 *)Buffer;
//
// Special handling for zero BufferSize
@@ -559,6 +578,7 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
return TRUE;
}
@@ -573,6 +593,7 @@ DiskIoCreateSubtaskList (
goto Done;
}
}
+
if (Write) {
//
// A half write operation can be splitted to a blocking block-read and half write operation
@@ -582,6 +603,7 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
}
@@ -589,12 +611,13 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
BufferPtr += Length;
Offset += Length;
BufferSize -= Length;
- Lba ++;
+ Lba++;
}
OverRunLba = Lba + DivU64x32Remainder (BufferSize, BlockSize, &OverRun);
@@ -609,6 +632,7 @@ DiskIoCreateSubtaskList (
goto Done;
}
}
+
if (Write) {
//
// A half write operation can be splitted to a blocking block-read and half write operation
@@ -618,6 +642,7 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
}
@@ -625,6 +650,7 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
}
@@ -637,25 +663,26 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
BufferPtr += BufferSize;
Offset += BufferSize;
BufferSize -= BufferSize;
-
} else {
if (Blocking) {
//
// Use the allocated buffer instead of the original buffer
// to avoid alignment issue.
//
- for (; Lba < OverRunLba; Lba += PcdGet32 (PcdDiskIoDataBufferBlockNum)) {
+ for ( ; Lba < OverRunLba; Lba += PcdGet32 (PcdDiskIoDataBufferBlockNum)) {
DataBufferSize = MIN (BufferSize, PcdGet32 (PcdDiskIoDataBufferBlockNum) * BlockSize);
Subtask = DiskIoCreateSubtask (Write, Lba, 0, DataBufferSize, SharedWorkingBuffer, BufferPtr, Blocking);
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
BufferPtr += DataBufferSize;
@@ -677,6 +704,7 @@ DiskIoCreateSubtaskList (
if (Subtask == NULL) {
goto Done;
}
+
InsertTailList (Subtasks, &Subtask->Link);
}
@@ -697,8 +725,9 @@ Done:
//
for (Link = GetFirstNode (Subtasks); !IsNull (Subtasks, Link); ) {
Subtask = CR (Link, DISK_IO_SUBTASK, Link, DISK_IO_SUBTASK_SIGNATURE);
- Link = DiskIoDestroySubtask (Instance, Subtask);
+ Link = DiskIoDestroySubtask (Instance, Subtask);
}
+
return FALSE;
}
@@ -714,7 +743,7 @@ Done:
EFI_STATUS
EFIAPI
DiskIo2Cancel (
- IN EFI_DISK_IO2_PROTOCOL *This
+ IN EFI_DISK_IO2_PROTOCOL *This
)
{
DISK_IO_PRIVATE_DATA *Instance;
@@ -726,9 +755,10 @@ DiskIo2Cancel (
EfiAcquireLock (&Instance->TaskQueueLock);
for (Link = GetFirstNode (&Instance->TaskQueue)
- ; !IsNull (&Instance->TaskQueue, Link)
- ; Link = GetNextNode (&Instance->TaskQueue, Link)
- ) {
+ ; !IsNull (&Instance->TaskQueue, Link)
+ ; Link = GetNextNode (&Instance->TaskQueue, Link)
+ )
+ {
Task = CR (Link, DISK_IO2_TASK, Link, DISK_IO2_TASK_SIGNATURE);
if (Task->Token != NULL) {
@@ -756,12 +786,12 @@ DiskIo2Cancel (
**/
BOOLEAN
DiskIo2RemoveCompletedTask (
- IN DISK_IO_PRIVATE_DATA *Instance
+ IN DISK_IO_PRIVATE_DATA *Instance
)
{
- BOOLEAN QueueEmpty;
- LIST_ENTRY *Link;
- DISK_IO2_TASK *Task;
+ BOOLEAN QueueEmpty;
+ LIST_ENTRY *Link;
+ DISK_IO2_TASK *Task;
QueueEmpty = TRUE;
@@ -773,10 +803,11 @@ DiskIo2RemoveCompletedTask (
ASSERT (Task->Token == NULL);
FreePool (Task);
} else {
- Link = GetNextNode (&Instance->TaskQueue, Link);
+ Link = GetNextNode (&Instance->TaskQueue, Link);
QueueEmpty = FALSE;
}
}
+
EfiReleaseLock (&Instance->TaskQueueLock);
return QueueEmpty;
@@ -797,41 +828,42 @@ DiskIo2RemoveCompletedTask (
**/
EFI_STATUS
DiskIo2ReadWriteDisk (
- IN DISK_IO_PRIVATE_DATA *Instance,
- IN BOOLEAN Write,
- IN UINT32 MediaId,
- IN UINT64 Offset,
- IN EFI_DISK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- IN UINT8 *Buffer
+ IN DISK_IO_PRIVATE_DATA *Instance,
+ IN BOOLEAN Write,
+ IN UINT32 MediaId,
+ IN UINT64 Offset,
+ IN EFI_DISK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ IN UINT8 *Buffer
)
{
- EFI_STATUS Status;
- EFI_BLOCK_IO_PROTOCOL *BlockIo;
- EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
- EFI_BLOCK_IO_MEDIA *Media;
- LIST_ENTRY *Link;
- LIST_ENTRY *NextLink;
- LIST_ENTRY Subtasks;
- DISK_IO_SUBTASK *Subtask;
- DISK_IO2_TASK *Task;
- EFI_TPL OldTpl;
- BOOLEAN Blocking;
- BOOLEAN SubtaskBlocking;
- LIST_ENTRY *SubtasksPtr;
-
- Task = NULL;
- BlockIo = Instance->BlockIo;
- BlockIo2 = Instance->BlockIo2;
- Media = BlockIo->Media;
- Status = EFI_SUCCESS;
- Blocking = (BOOLEAN) ((Token == NULL) || (Token->Event == NULL));
+ EFI_STATUS Status;
+ EFI_BLOCK_IO_PROTOCOL *BlockIo;
+ EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
+ EFI_BLOCK_IO_MEDIA *Media;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *NextLink;
+ LIST_ENTRY Subtasks;
+ DISK_IO_SUBTASK *Subtask;
+ DISK_IO2_TASK *Task;
+ EFI_TPL OldTpl;
+ BOOLEAN Blocking;
+ BOOLEAN SubtaskBlocking;
+ LIST_ENTRY *SubtasksPtr;
+
+ Task = NULL;
+ BlockIo = Instance->BlockIo;
+ BlockIo2 = Instance->BlockIo2;
+ Media = BlockIo->Media;
+ Status = EFI_SUCCESS;
+ Blocking = (BOOLEAN)((Token == NULL) || (Token->Event == NULL));
if (Blocking) {
//
// Wait till pending async task is completed.
//
- while (!DiskIo2RemoveCompletedTask (Instance));
+ while (!DiskIo2RemoveCompletedTask (Instance)) {
+ }
SubtasksPtr = &Subtasks;
} else {
@@ -858,15 +890,18 @@ DiskIo2ReadWriteDisk (
if (Task != NULL) {
FreePool (Task);
}
+
return EFI_OUT_OF_RESOURCES;
}
+
ASSERT (!IsListEmpty (SubtasksPtr));
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
for ( Link = GetFirstNode (SubtasksPtr), NextLink = GetNextNode (SubtasksPtr, Link)
- ; !IsNull (SubtasksPtr, Link)
- ; Link = NextLink, NextLink = GetNextNode (SubtasksPtr, NextLink)
- ) {
+ ; !IsNull (SubtasksPtr, Link)
+ ; Link = NextLink, NextLink = GetNextNode (SubtasksPtr, NextLink)
+ )
+ {
Subtask = CR (Link, DISK_IO_SUBTASK, Link, DISK_IO_SUBTASK_SIGNATURE);
Subtask->Task = Task;
SubtaskBlocking = Subtask->Blocking;
@@ -902,7 +937,6 @@ DiskIo2ReadWriteDisk (
(Subtask->WorkingBuffer != NULL) ? Subtask->WorkingBuffer : Subtask->Buffer
);
}
-
} else {
//
// Read
@@ -951,7 +985,7 @@ DiskIo2ReadWriteDisk (
//
if (EFI_ERROR (Status)) {
while (!IsNull (SubtasksPtr, NextLink)) {
- Subtask = CR (NextLink, DISK_IO_SUBTASK, Link, DISK_IO_SUBTASK_SIGNATURE);
+ Subtask = CR (NextLink, DISK_IO_SUBTASK, Link, DISK_IO_SUBTASK_SIGNATURE);
NextLink = DiskIoDestroySubtask (Instance, Subtask);
}
}
@@ -1008,17 +1042,22 @@ DiskIo2ReadWriteDisk (
EFI_STATUS
EFIAPI
DiskIo2ReadDiskEx (
- IN EFI_DISK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN UINT64 Offset,
- IN OUT EFI_DISK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_DISK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN UINT64 Offset,
+ IN OUT EFI_DISK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
)
{
return DiskIo2ReadWriteDisk (
DISK_IO_PRIVATE_DATA_FROM_DISK_IO2 (This),
- FALSE, MediaId, Offset, Token, BufferSize, (UINT8 *) Buffer
+ FALSE,
+ MediaId,
+ Offset,
+ Token,
+ BufferSize,
+ (UINT8 *)Buffer
);
}
@@ -1047,17 +1086,22 @@ DiskIo2ReadDiskEx (
EFI_STATUS
EFIAPI
DiskIo2WriteDiskEx (
- IN EFI_DISK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN UINT64 Offset,
- IN OUT EFI_DISK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_DISK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN UINT64 Offset,
+ IN OUT EFI_DISK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
return DiskIo2ReadWriteDisk (
DISK_IO_PRIVATE_DATA_FROM_DISK_IO2 (This),
- TRUE, MediaId, Offset, Token, BufferSize, (UINT8 *) Buffer
+ TRUE,
+ MediaId,
+ Offset,
+ Token,
+ BufferSize,
+ (UINT8 *)Buffer
);
}
@@ -1070,15 +1114,15 @@ DiskIo2WriteDiskEx (
VOID
EFIAPI
DiskIo2OnFlushComplete (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- DISK_IO2_FLUSH_TASK *Task;
+ DISK_IO2_FLUSH_TASK *Task;
gBS->CloseEvent (Event);
- Task = (DISK_IO2_FLUSH_TASK *) Context;
+ Task = (DISK_IO2_FLUSH_TASK *)Context;
ASSERT (Task->Signature == DISK_IO2_FLUSH_TASK_SIGNATURE);
Task->Token->TransactionStatus = Task->BlockIo2Token.TransactionStatus;
gBS->SignalEvent (Task->Token->Event);
@@ -1104,13 +1148,13 @@ DiskIo2OnFlushComplete (
EFI_STATUS
EFIAPI
DiskIo2FlushDiskEx (
- IN EFI_DISK_IO2_PROTOCOL *This,
- IN OUT EFI_DISK_IO2_TOKEN *Token
+ IN EFI_DISK_IO2_PROTOCOL *This,
+ IN OUT EFI_DISK_IO2_TOKEN *Token
)
{
- EFI_STATUS Status;
- DISK_IO2_FLUSH_TASK *Task;
- DISK_IO_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ DISK_IO2_FLUSH_TASK *Task;
+ DISK_IO_PRIVATE_DATA *Private;
Private = DISK_IO_PRIVATE_DATA_FROM_DISK_IO2 (This);
@@ -1131,9 +1175,10 @@ DiskIo2FlushDiskEx (
FreePool (Task);
return Status;
}
+
Task->Signature = DISK_IO2_FLUSH_TASK_SIGNATURE;
Task->Token = Token;
- Status = Private->BlockIo2->FlushBlocksEx (Private->BlockIo2, &Task->BlockIo2Token);
+ Status = Private->BlockIo2->FlushBlocksEx (Private->BlockIo2, &Task->BlockIo2Token);
if (EFI_ERROR (Status)) {
gBS->CloseEvent (Task->BlockIo2Token.Event);
FreePool (Task);
@@ -1180,11 +1225,15 @@ DiskIoReadDisk (
{
return DiskIo2ReadWriteDisk (
DISK_IO_PRIVATE_DATA_FROM_DISK_IO (This),
- FALSE, MediaId, Offset, NULL, BufferSize, (UINT8 *) Buffer
+ FALSE,
+ MediaId,
+ Offset,
+ NULL,
+ BufferSize,
+ (UINT8 *)Buffer
);
}
-
/**
Writes BufferSize bytes from Buffer into Offset.
Writes may require a read modify write to support writes that are not
@@ -1222,7 +1271,12 @@ DiskIoWriteDisk (
{
return DiskIo2ReadWriteDisk (
DISK_IO_PRIVATE_DATA_FROM_DISK_IO (This),
- TRUE, MediaId, Offset, NULL, BufferSize, (UINT8 *) Buffer
+ TRUE,
+ MediaId,
+ Offset,
+ NULL,
+ BufferSize,
+ (UINT8 *)Buffer
);
}
@@ -1239,11 +1293,11 @@ DiskIoWriteDisk (
EFI_STATUS
EFIAPI
InitializeDiskIo (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Install driver model protocol(s).
diff --git a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.h b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.h
index 3207b9f..13edb5f 100644
--- a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.h
+++ b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.h
@@ -26,60 +26,60 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define DISK_IO_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('d', 's', 'k', 'I')
typedef struct {
- UINT32 Signature;
+ UINT32 Signature;
- EFI_DISK_IO_PROTOCOL DiskIo;
- EFI_DISK_IO2_PROTOCOL DiskIo2;
- EFI_BLOCK_IO_PROTOCOL *BlockIo;
- EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
+ EFI_DISK_IO_PROTOCOL DiskIo;
+ EFI_DISK_IO2_PROTOCOL DiskIo2;
+ EFI_BLOCK_IO_PROTOCOL *BlockIo;
+ EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
- UINT8 *SharedWorkingBuffer;
+ UINT8 *SharedWorkingBuffer;
- EFI_LOCK TaskQueueLock;
- LIST_ENTRY TaskQueue;
+ EFI_LOCK TaskQueueLock;
+ LIST_ENTRY TaskQueue;
} DISK_IO_PRIVATE_DATA;
-#define DISK_IO_PRIVATE_DATA_FROM_DISK_IO(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo, DISK_IO_PRIVATE_DATA_SIGNATURE)
-#define DISK_IO_PRIVATE_DATA_FROM_DISK_IO2(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo2, DISK_IO_PRIVATE_DATA_SIGNATURE)
+#define DISK_IO_PRIVATE_DATA_FROM_DISK_IO(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo, DISK_IO_PRIVATE_DATA_SIGNATURE)
+#define DISK_IO_PRIVATE_DATA_FROM_DISK_IO2(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo2, DISK_IO_PRIVATE_DATA_SIGNATURE)
-#define DISK_IO2_TASK_SIGNATURE SIGNATURE_32 ('d', 'i', 'a', 't')
+#define DISK_IO2_TASK_SIGNATURE SIGNATURE_32 ('d', 'i', 'a', 't')
typedef struct {
- UINT32 Signature;
- LIST_ENTRY Link; /// < link to other task
- EFI_LOCK SubtasksLock;
- LIST_ENTRY Subtasks; /// < header of subtasks
- EFI_DISK_IO2_TOKEN *Token;
- DISK_IO_PRIVATE_DATA *Instance;
+ UINT32 Signature;
+ LIST_ENTRY Link; /// < link to other task
+ EFI_LOCK SubtasksLock;
+ LIST_ENTRY Subtasks; /// < header of subtasks
+ EFI_DISK_IO2_TOKEN *Token;
+ DISK_IO_PRIVATE_DATA *Instance;
} DISK_IO2_TASK;
-#define DISK_IO2_FLUSH_TASK_SIGNATURE SIGNATURE_32 ('d', 'i', 'f', 't')
+#define DISK_IO2_FLUSH_TASK_SIGNATURE SIGNATURE_32 ('d', 'i', 'f', 't')
typedef struct {
- UINT32 Signature;
- EFI_BLOCK_IO2_TOKEN BlockIo2Token;
- EFI_DISK_IO2_TOKEN *Token;
+ UINT32 Signature;
+ EFI_BLOCK_IO2_TOKEN BlockIo2Token;
+ EFI_DISK_IO2_TOKEN *Token;
} DISK_IO2_FLUSH_TASK;
-#define DISK_IO_SUBTASK_SIGNATURE SIGNATURE_32 ('d', 'i', 's', 't')
+#define DISK_IO_SUBTASK_SIGNATURE SIGNATURE_32 ('d', 'i', 's', 't')
typedef struct {
//
// UnderRun: Offset != 0, Length < BlockSize
// OverRun: Offset == 0, Length < BlockSize
// Middle: Offset is block aligned, Length is multiple of block size
//
- UINT32 Signature;
- LIST_ENTRY Link;
- BOOLEAN Write;
- UINT64 Lba;
- UINT32 Offset;
- UINTN Length;
- UINT8 *WorkingBuffer; /// < NULL indicates using "Buffer" directly
- UINT8 *Buffer;
- BOOLEAN Blocking;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ BOOLEAN Write;
+ UINT64 Lba;
+ UINT32 Offset;
+ UINTN Length;
+ UINT8 *WorkingBuffer; /// < NULL indicates using "Buffer" directly
+ UINT8 *Buffer;
+ BOOLEAN Blocking;
//
// Following fields are for DiskIo2
//
- DISK_IO2_TASK *Task;
- EFI_BLOCK_IO2_TOKEN BlockIo2Token;
+ DISK_IO2_TASK *Task;
+ EFI_BLOCK_IO2_TOKEN BlockIo2Token;
} DISK_IO_SUBTASK;
//
@@ -93,6 +93,7 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2;
// Prototypes
// Driver model protocol interface
//
+
/**
Test to see if this driver supports ControllerHandle.
@@ -153,15 +154,16 @@ DiskIoDriverBindingStart (
EFI_STATUS
EFIAPI
DiskIoDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
//
// Disk I/O Protocol Interface
//
+
/**
Read BufferSize bytes from Offset into Buffer.
Reads may support reads that are not aligned on
@@ -230,7 +232,6 @@ DiskIoWriteDisk (
IN VOID *Buffer
);
-
/**
Terminate outstanding asynchronous requests to a device.
@@ -243,7 +244,7 @@ DiskIoWriteDisk (
EFI_STATUS
EFIAPI
DiskIo2Cancel (
- IN EFI_DISK_IO2_PROTOCOL *This
+ IN EFI_DISK_IO2_PROTOCOL *This
);
/**
@@ -271,12 +272,12 @@ DiskIo2Cancel (
EFI_STATUS
EFIAPI
DiskIo2ReadDiskEx (
- IN EFI_DISK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN UINT64 Offset,
- IN OUT EFI_DISK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_DISK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN UINT64 Offset,
+ IN OUT EFI_DISK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
);
/**
@@ -304,12 +305,12 @@ DiskIo2ReadDiskEx (
EFI_STATUS
EFIAPI
DiskIo2WriteDiskEx (
- IN EFI_DISK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN UINT64 Offset,
- IN EFI_DISK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_DISK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN UINT64 Offset,
+ IN EFI_DISK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
/**
@@ -330,13 +331,14 @@ DiskIo2WriteDiskEx (
EFI_STATUS
EFIAPI
DiskIo2FlushDiskEx (
- IN EFI_DISK_IO2_PROTOCOL *This,
- IN OUT EFI_DISK_IO2_TOKEN *Token
+ IN EFI_DISK_IO2_PROTOCOL *This,
+ IN OUT EFI_DISK_IO2_TOKEN *Token
);
//
// EFI Component Name Functions
//
+
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -384,7 +386,6 @@ DiskIoComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -456,12 +457,11 @@ DiskIoComponentNameGetDriverName (
EFI_STATUS
EFIAPI
DiskIoComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
#endif
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/ComponentName.c b/MdeModulePkg/Universal/Disk/PartitionDxe/ComponentName.c
index 7d1031f..fd27a84 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/ComponentName.c
@@ -20,9 +20,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gPartitionComponentNa
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPartitionComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) PartitionComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) PartitionComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPartitionComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)PartitionComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)PartitionComponentNameGetControllerName,
"en"
};
@@ -30,7 +30,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gPartitionComponentNa
// Driver name table for Partition module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPartitionDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPartitionDriverNameTable[] = {
{
"eng;en",
L"Partition Driver(MBR/GPT/El Torito)"
@@ -41,8 +41,6 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mPartitionDriverNameTable
}
};
-
-
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -99,7 +97,6 @@ PartitionComponentNameGetDriverName (
);
}
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -171,11 +168,11 @@ PartitionComponentNameGetDriverName (
EFI_STATUS
EFIAPI
PartitionComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
index e2b028f..977ded8 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c
@@ -7,10 +7,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Partition.h"
-
/**
Install child handles if the Handle supports El Torito format.
@@ -57,10 +55,10 @@ PartitionInstallElToritoChildHandles (
UINT32 VolSpaceSize;
EFI_PARTITION_INFO_PROTOCOL PartitionInfo;
- Found = EFI_NOT_FOUND;
- Media = BlockIo->Media;
+ Found = EFI_NOT_FOUND;
+ Media = BlockIo->Media;
- VolSpaceSize = 0;
+ VolSpaceSize = 0;
//
// CD_ROM has the fixed block size as 2048 bytes (SIZE_2KB)
@@ -79,7 +77,7 @@ PartitionInstallElToritoChildHandles (
return EFI_NOT_FOUND;
}
- Catalog = (ELTORITO_CATALOG *) VolDescriptor;
+ Catalog = (ELTORITO_CATALOG *)VolDescriptor;
//
// Loop: handle one volume descriptor per time
@@ -87,7 +85,8 @@ PartitionInstallElToritoChildHandles (
//
for (VolDescriptorOffset = SIZE_32KB;
VolDescriptorOffset <= MultU64x32 (Media->LastBlock, Media->BlockSize);
- VolDescriptorOffset += SIZE_2KB) {
+ VolDescriptorOffset += SIZE_2KB)
+ {
Status = DiskIo->ReadDisk (
DiskIo,
Media->MediaId,
@@ -99,17 +98,20 @@ PartitionInstallElToritoChildHandles (
Found = Status;
break;
}
+
//
// Check for valid volume descriptor signature
//
- if (VolDescriptor->Unknown.Type == CDVOL_TYPE_END ||
- CompareMem (VolDescriptor->Unknown.Id, CDVOL_ID, sizeof (VolDescriptor->Unknown.Id)) != 0
- ) {
+ if ((VolDescriptor->Unknown.Type == CDVOL_TYPE_END) ||
+ (CompareMem (VolDescriptor->Unknown.Id, CDVOL_ID, sizeof (VolDescriptor->Unknown.Id)) != 0)
+ )
+ {
//
// end of Volume descriptor list
//
break;
}
+
//
// Read the Volume Space Size from Primary Volume Descriptor 81-88 byte,
// the 32-bit numerical values is stored in Both-byte orders
@@ -117,12 +119,14 @@ PartitionInstallElToritoChildHandles (
if (VolDescriptor->PrimaryVolume.Type == CDVOL_TYPE_CODED) {
VolSpaceSize = VolDescriptor->PrimaryVolume.VolSpaceSize[0];
}
+
//
// Is it an El Torito volume descriptor?
//
if (CompareMem (VolDescriptor->BootRecordVolume.SystemId, CDVOL_ELTORITO_ID, sizeof (CDVOL_ELTORITO_ID) - 1) != 0) {
continue;
}
+
//
// Read in the boot El Torito boot catalog
// The LBA unit used by El Torito boot catalog is 2KB unit
@@ -144,17 +148,18 @@ PartitionInstallElToritoChildHandles (
DEBUG ((DEBUG_ERROR, "EltCheckDevice: error reading catalog %r\n", Status));
continue;
}
+
//
// We don't care too much about the Catalog header's contents, but we do want
// to make sure it looks like a Catalog header
//
- if (Catalog->Catalog.Indicator != ELTORITO_ID_CATALOG || Catalog->Catalog.Id55AA != 0xAA55) {
+ if ((Catalog->Catalog.Indicator != ELTORITO_ID_CATALOG) || (Catalog->Catalog.Id55AA != 0xAA55)) {
DEBUG ((DEBUG_ERROR, "EltCheckBootCatalog: El Torito boot catalog header IDs not correct\n"));
continue;
}
Check = 0;
- CheckBuffer = (UINT16 *) Catalog;
+ CheckBuffer = (UINT16 *)Catalog;
for (Index = 0; Index < sizeof (ELTORITO_CATALOG) / sizeof (UINT16); Index += 1) {
Check += CheckBuffer[Index];
}
@@ -174,45 +179,45 @@ PartitionInstallElToritoChildHandles (
//
// Check this entry
//
- if (Catalog->Boot.Indicator != ELTORITO_ID_SECTION_BOOTABLE || Catalog->Boot.Lba == 0) {
+ if ((Catalog->Boot.Indicator != ELTORITO_ID_SECTION_BOOTABLE) || (Catalog->Boot.Lba == 0)) {
continue;
}
- SubBlockSize = 512;
- SectorCount = Catalog->Boot.SectorCount;
+ SubBlockSize = 512;
+ SectorCount = Catalog->Boot.SectorCount;
switch (Catalog->Boot.MediaType) {
-
- case ELTORITO_NO_EMULATION:
- SubBlockSize = Media->BlockSize;
- break;
-
- case ELTORITO_HARD_DISK:
- break;
-
- case ELTORITO_12_DISKETTE:
- SectorCount = 0x50 * 0x02 * 0x0F;
- break;
-
- case ELTORITO_14_DISKETTE:
- SectorCount = 0x50 * 0x02 * 0x12;
- break;
-
- case ELTORITO_28_DISKETTE:
- SectorCount = 0x50 * 0x02 * 0x24;
- break;
-
- default:
- DEBUG ((DEBUG_INIT, "EltCheckDevice: unsupported El Torito boot media type %x\n", Catalog->Boot.MediaType));
- SectorCount = 0;
- SubBlockSize = Media->BlockSize;
- break;
+ case ELTORITO_NO_EMULATION:
+ SubBlockSize = Media->BlockSize;
+ break;
+
+ case ELTORITO_HARD_DISK:
+ break;
+
+ case ELTORITO_12_DISKETTE:
+ SectorCount = 0x50 * 0x02 * 0x0F;
+ break;
+
+ case ELTORITO_14_DISKETTE:
+ SectorCount = 0x50 * 0x02 * 0x12;
+ break;
+
+ case ELTORITO_28_DISKETTE:
+ SectorCount = 0x50 * 0x02 * 0x24;
+ break;
+
+ default:
+ DEBUG ((DEBUG_INIT, "EltCheckDevice: unsupported El Torito boot media type %x\n", Catalog->Boot.MediaType));
+ SectorCount = 0;
+ SubBlockSize = Media->BlockSize;
+ break;
}
+
//
// Create child device handle
//
- CdDev.Header.Type = MEDIA_DEVICE_PATH;
- CdDev.Header.SubType = MEDIA_CDROM_DP;
+ CdDev.Header.Type = MEDIA_DEVICE_PATH;
+ CdDev.Header.SubType = MEDIA_CDROM_DP;
SetDevicePathNodeLength (&CdDev.Header, sizeof (CdDev));
if (Index == 1) {
@@ -222,7 +227,7 @@ PartitionInstallElToritoChildHandles (
BootEntry = 0;
}
- CdDev.BootEntry = (UINT32) BootEntry;
+ CdDev.BootEntry = (UINT32)BootEntry;
BootEntry++;
CdDev.PartitionStart = Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize);
if (SectorCount < 2) {
@@ -249,20 +254,20 @@ PartitionInstallElToritoChildHandles (
PartitionInfo.Type = PARTITION_TYPE_OTHER;
Status = PartitionInstallChildHandle (
- This,
- Handle,
- DiskIo,
- DiskIo2,
- BlockIo,
- BlockIo2,
- DevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *) &CdDev,
- &PartitionInfo,
- Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize),
- Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize) + CdDev.PartitionSize - 1,
- SubBlockSize,
- NULL
- );
+ This,
+ Handle,
+ DiskIo,
+ DiskIo2,
+ BlockIo,
+ BlockIo2,
+ DevicePath,
+ (EFI_DEVICE_PATH_PROTOCOL *)&CdDev,
+ &PartitionInfo,
+ Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize),
+ Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize) + CdDev.PartitionSize - 1,
+ SubBlockSize,
+ NULL
+ );
if (!EFI_ERROR (Status)) {
Found = EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
index e985bd2..5bcf94d 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c
@@ -19,7 +19,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Partition.h"
/**
@@ -65,7 +64,6 @@ PartitionCheckGptEntryArrayCRC (
IN EFI_PARTITION_TABLE_HEADER *PartHeader
);
-
/**
Restore Partition Table to its alternate place
(Primary -> Backup or Backup -> Primary).
@@ -85,7 +83,6 @@ PartitionRestoreGptTable (
IN EFI_PARTITION_TABLE_HEADER *PartHeader
);
-
/**
This routine will check GPT partition entry and return entry status.
@@ -106,7 +103,6 @@ PartitionCheckGptEntry (
OUT EFI_PARTITION_ENTRY_STATUS *PEntryStatus
);
-
/**
Checks the CRC32 value in the table header.
@@ -125,7 +121,6 @@ PartitionCheckCrcAltSize (
IN OUT EFI_TABLE_HEADER *Hdr
);
-
/**
Checks the CRC32 value in the table header.
@@ -142,7 +137,6 @@ PartitionCheckCrc (
IN OUT EFI_TABLE_HEADER *Hdr
);
-
/**
Updates the CRC32 value in the table header.
@@ -156,7 +150,6 @@ PartitionSetCrcAltSize (
IN OUT EFI_TABLE_HEADER *Hdr
);
-
/**
Updates the CRC32 value in the table header.
@@ -165,7 +158,7 @@ PartitionSetCrcAltSize (
**/
VOID
PartitionSetCrc (
- IN OUT EFI_TABLE_HEADER *Hdr
+ IN OUT EFI_TABLE_HEADER *Hdr
);
/**
@@ -221,9 +214,9 @@ PartitionInstallGptChildHandles (
PartEntry = NULL;
PEntryStatus = NULL;
- BlockSize = BlockIo->Media->BlockSize;
- LastBlock = BlockIo->Media->LastBlock;
- MediaId = BlockIo->Media->MediaId;
+ BlockSize = BlockIo->Media->BlockSize;
+ LastBlock = BlockIo->Media->LastBlock;
+ MediaId = BlockIo->Media->MediaId;
DEBUG ((DEBUG_INFO, " BlockSize : %d \n", BlockSize));
DEBUG ((DEBUG_INFO, " LastBlock : %lx \n", LastBlock));
@@ -264,12 +257,14 @@ PartitionInstallGptChildHandles (
// Verify that the Protective MBR is valid
//
for (Index = 0; Index < MAX_MBR_PARTITIONS; Index++) {
- if (ProtectiveMbr->Partition[Index].OSIndicator == PMBR_GPT_PARTITION &&
- UNPACK_UINT32 (ProtectiveMbr->Partition[Index].StartingLBA) == 1
- ) {
+ if ((ProtectiveMbr->Partition[Index].OSIndicator == PMBR_GPT_PARTITION) &&
+ (UNPACK_UINT32 (ProtectiveMbr->Partition[Index].StartingLBA) == 1)
+ )
+ {
break;
}
}
+
if (Index == MAX_MBR_PARTITIONS) {
goto Done;
}
@@ -317,7 +312,6 @@ PartitionInstallGptChildHandles (
if (PartitionValidGptTable (BlockIo, DiskIo, PrimaryHeader->AlternateLBA, BackupHeader)) {
DEBUG ((DEBUG_INFO, " Restore backup partition table success\n"));
}
-
}
DEBUG ((DEBUG_INFO, " Valid primary and Valid backup partition table\n"));
@@ -334,7 +328,7 @@ PartitionInstallGptChildHandles (
Status = DiskIo->ReadDisk (
DiskIo,
MediaId,
- MultU64x32(PrimaryHeader->PartitionEntryLBA, BlockSize),
+ MultU64x32 (PrimaryHeader->PartitionEntryLBA, BlockSize),
PrimaryHeader->NumberOfPartitionEntries * (PrimaryHeader->SizeOfPartitionEntry),
PartEntry
);
@@ -368,12 +362,13 @@ PartitionInstallGptChildHandles (
// Create child device handles
//
for (Index = 0; Index < PrimaryHeader->NumberOfPartitionEntries; Index++) {
- Entry = (EFI_PARTITION_ENTRY *) ((UINT8 *) PartEntry + Index * PrimaryHeader->SizeOfPartitionEntry);
+ Entry = (EFI_PARTITION_ENTRY *)((UINT8 *)PartEntry + Index * PrimaryHeader->SizeOfPartitionEntry);
if (CompareGuid (&Entry->PartitionTypeGUID, &gEfiPartTypeUnusedGuid) ||
PEntryStatus[Index].OutOfRange ||
PEntryStatus[Index].Overlap ||
PEntryStatus[Index].OsSpecific
- ) {
+ )
+ {
//
// Don't use null EFI Partition Entries, Invalid Partition Entries or OS specific
// partition Entries
@@ -382,15 +377,15 @@ PartitionInstallGptChildHandles (
}
ZeroMem (&HdDev, sizeof (HdDev));
- HdDev.Header.Type = MEDIA_DEVICE_PATH;
- HdDev.Header.SubType = MEDIA_HARDDRIVE_DP;
+ HdDev.Header.Type = MEDIA_DEVICE_PATH;
+ HdDev.Header.SubType = MEDIA_HARDDRIVE_DP;
SetDevicePathNodeLength (&HdDev.Header, sizeof (HdDev));
- HdDev.PartitionNumber = (UINT32) Index + 1;
- HdDev.MBRType = MBR_TYPE_EFI_PARTITION_TABLE_HEADER;
- HdDev.SignatureType = SIGNATURE_TYPE_GUID;
- HdDev.PartitionStart = Entry->StartingLBA;
- HdDev.PartitionSize = Entry->EndingLBA - Entry->StartingLBA + 1;
+ HdDev.PartitionNumber = (UINT32)Index + 1;
+ HdDev.MBRType = MBR_TYPE_EFI_PARTITION_TABLE_HEADER;
+ HdDev.SignatureType = SIGNATURE_TYPE_GUID;
+ HdDev.PartitionStart = Entry->StartingLBA;
+ HdDev.PartitionSize = Entry->EndingLBA - Entry->StartingLBA + 1;
CopyMem (HdDev.Signature, &Entry->UniquePartitionGUID, sizeof (EFI_GUID));
ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL));
@@ -399,12 +394,13 @@ PartitionInstallGptChildHandles (
if (CompareGuid (&Entry->PartitionTypeGUID, &gEfiPartTypeSystemPartGuid)) {
PartitionInfo.System = 1;
}
+
CopyMem (&PartitionInfo.Info.Gpt, Entry, sizeof (EFI_PARTITION_ENTRY));
- DEBUG ((DEBUG_INFO, " Index : %d\n", (UINT32) Index));
- DEBUG ((DEBUG_INFO, " Start LBA : %lx\n", (UINT64) HdDev.PartitionStart));
- DEBUG ((DEBUG_INFO, " End LBA : %lx\n", (UINT64) Entry->EndingLBA));
- DEBUG ((DEBUG_INFO, " Partition size: %lx\n", (UINT64) HdDev.PartitionSize));
+ DEBUG ((DEBUG_INFO, " Index : %d\n", (UINT32)Index));
+ DEBUG ((DEBUG_INFO, " Start LBA : %lx\n", (UINT64)HdDev.PartitionStart));
+ DEBUG ((DEBUG_INFO, " End LBA : %lx\n", (UINT64)Entry->EndingLBA));
+ DEBUG ((DEBUG_INFO, " Partition size: %lx\n", (UINT64)HdDev.PartitionSize));
DEBUG ((DEBUG_INFO, " Start : %lx", MultU64x32 (Entry->StartingLBA, BlockSize)));
DEBUG ((DEBUG_INFO, " End : %lx\n", MultU64x32 (Entry->EndingLBA, BlockSize)));
@@ -416,7 +412,7 @@ PartitionInstallGptChildHandles (
BlockIo,
BlockIo2,
DevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *) &HdDev,
+ (EFI_DEVICE_PATH_PROTOCOL *)&HdDev,
&PartitionInfo,
Entry->StartingLBA,
Entry->EndingLBA,
@@ -431,15 +427,19 @@ Done:
if (ProtectiveMbr != NULL) {
FreePool (ProtectiveMbr);
}
+
if (PrimaryHeader != NULL) {
FreePool (PrimaryHeader);
}
+
if (BackupHeader != NULL) {
FreePool (BackupHeader);
}
+
if (PartEntry != NULL) {
FreePool (PartEntry);
}
+
if (PEntryStatus != NULL) {
FreePool (PEntryStatus);
}
@@ -484,6 +484,7 @@ PartitionValidGptTable (
DEBUG ((DEBUG_ERROR, "Allocate pool error\n"));
return FALSE;
}
+
//
// Read the EFI Partition Table Header
//
@@ -501,9 +502,10 @@ PartitionValidGptTable (
if ((PartHdr->Header.Signature != EFI_PTAB_HEADER_ID) ||
!PartitionCheckCrc (BlockSize, &PartHdr->Header) ||
- PartHdr->MyLBA != Lba ||
+ (PartHdr->MyLBA != Lba) ||
(PartHdr->SizeOfPartitionEntry < sizeof (EFI_PARTITION_ENTRY))
- ) {
+ )
+ {
DEBUG ((DEBUG_INFO, "Invalid efi partition table header\n"));
FreePool (PartHdr);
return FALSE;
@@ -562,20 +564,20 @@ PartitionCheckGptEntryArrayCRC (
}
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32(PartHeader->PartitionEntryLBA, BlockIo->Media->BlockSize),
- PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry,
- Ptr
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (PartHeader->PartitionEntryLBA, BlockIo->Media->BlockSize),
+ PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry,
+ Ptr
+ );
if (EFI_ERROR (Status)) {
FreePool (Ptr);
return FALSE;
}
- Size = PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry;
+ Size = PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry;
- Status = gBS->CalculateCrc32 (Ptr, Size, &Crc);
+ Status = gBS->CalculateCrc32 (Ptr, Size, &Crc);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "CheckPEntryArrayCRC: Crc calculation failed\n"));
FreePool (Ptr);
@@ -584,10 +586,9 @@ PartitionCheckGptEntryArrayCRC (
FreePool (Ptr);
- return (BOOLEAN) (PartHeader->PartitionEntryArrayCRC32 == Crc);
+ return (BOOLEAN)(PartHeader->PartitionEntryArrayCRC32 == Crc);
}
-
/**
Restore Partition Table to its alternate place
(Primary -> Backup or Backup -> Primary).
@@ -614,13 +615,13 @@ PartitionRestoreGptTable (
UINT8 *Ptr;
UINT32 MediaId;
- PartHdr = NULL;
- Ptr = NULL;
+ PartHdr = NULL;
+ Ptr = NULL;
BlockSize = BlockIo->Media->BlockSize;
MediaId = BlockIo->Media->MediaId;
- PartHdr = AllocateZeroPool (BlockSize);
+ PartHdr = AllocateZeroPool (BlockSize);
if (PartHdr == NULL) {
DEBUG ((DEBUG_ERROR, "Allocate pool error\n"));
@@ -628,20 +629,20 @@ PartitionRestoreGptTable (
}
PEntryLBA = (PartHeader->MyLBA == PRIMARY_PART_HEADER_LBA) ? \
- (PartHeader->LastUsableLBA + 1) : \
- (PRIMARY_PART_HEADER_LBA + 1);
+ (PartHeader->LastUsableLBA + 1) : \
+ (PRIMARY_PART_HEADER_LBA + 1);
CopyMem (PartHdr, PartHeader, sizeof (EFI_PARTITION_TABLE_HEADER));
- PartHdr->MyLBA = PartHeader->AlternateLBA;
- PartHdr->AlternateLBA = PartHeader->MyLBA;
- PartHdr->PartitionEntryLBA = PEntryLBA;
- PartitionSetCrc ((EFI_TABLE_HEADER *) PartHdr);
+ PartHdr->MyLBA = PartHeader->AlternateLBA;
+ PartHdr->AlternateLBA = PartHeader->MyLBA;
+ PartHdr->PartitionEntryLBA = PEntryLBA;
+ PartitionSetCrc ((EFI_TABLE_HEADER *)PartHdr);
Status = DiskIo->WriteDisk (
DiskIo,
MediaId,
- MultU64x32 (PartHdr->MyLBA, (UINT32) BlockSize),
+ MultU64x32 (PartHdr->MyLBA, (UINT32)BlockSize),
BlockSize,
PartHdr
);
@@ -657,23 +658,23 @@ PartitionRestoreGptTable (
}
Status = DiskIo->ReadDisk (
- DiskIo,
- MediaId,
- MultU64x32(PartHeader->PartitionEntryLBA, (UINT32) BlockSize),
- PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry,
- Ptr
- );
+ DiskIo,
+ MediaId,
+ MultU64x32 (PartHeader->PartitionEntryLBA, (UINT32)BlockSize),
+ PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry,
+ Ptr
+ );
if (EFI_ERROR (Status)) {
goto Done;
}
Status = DiskIo->WriteDisk (
- DiskIo,
- MediaId,
- MultU64x32(PEntryLBA, (UINT32) BlockSize),
- PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry,
- Ptr
- );
+ DiskIo,
+ MediaId,
+ MultU64x32 (PEntryLBA, (UINT32)BlockSize),
+ PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry,
+ Ptr
+ );
Done:
FreePool (PartHdr);
@@ -717,19 +718,20 @@ PartitionCheckGptEntry (
DEBUG ((DEBUG_INFO, " start check partition entries\n"));
for (Index1 = 0; Index1 < PartHeader->NumberOfPartitionEntries; Index1++) {
- Entry = (EFI_PARTITION_ENTRY *) ((UINT8 *) PartEntry + Index1 * PartHeader->SizeOfPartitionEntry);
+ Entry = (EFI_PARTITION_ENTRY *)((UINT8 *)PartEntry + Index1 * PartHeader->SizeOfPartitionEntry);
if (CompareGuid (&Entry->PartitionTypeGUID, &gEfiPartTypeUnusedGuid)) {
continue;
}
StartingLBA = Entry->StartingLBA;
EndingLBA = Entry->EndingLBA;
- if (StartingLBA > EndingLBA ||
- StartingLBA < PartHeader->FirstUsableLBA ||
- StartingLBA > PartHeader->LastUsableLBA ||
- EndingLBA < PartHeader->FirstUsableLBA ||
- EndingLBA > PartHeader->LastUsableLBA
- ) {
+ if ((StartingLBA > EndingLBA) ||
+ (StartingLBA < PartHeader->FirstUsableLBA) ||
+ (StartingLBA > PartHeader->LastUsableLBA) ||
+ (EndingLBA < PartHeader->FirstUsableLBA) ||
+ (EndingLBA > PartHeader->LastUsableLBA)
+ )
+ {
PEntryStatus[Index1].OutOfRange = TRUE;
continue;
}
@@ -742,17 +744,17 @@ PartitionCheckGptEntry (
}
for (Index2 = Index1 + 1; Index2 < PartHeader->NumberOfPartitionEntries; Index2++) {
- Entry = (EFI_PARTITION_ENTRY *) ((UINT8 *) PartEntry + Index2 * PartHeader->SizeOfPartitionEntry);
+ Entry = (EFI_PARTITION_ENTRY *)((UINT8 *)PartEntry + Index2 * PartHeader->SizeOfPartitionEntry);
if (CompareGuid (&Entry->PartitionTypeGUID, &gEfiPartTypeUnusedGuid)) {
continue;
}
- if (Entry->EndingLBA >= StartingLBA && Entry->StartingLBA <= EndingLBA) {
+ if ((Entry->EndingLBA >= StartingLBA) && (Entry->StartingLBA <= EndingLBA)) {
//
// This region overlaps with the Index1'th region
//
- PEntryStatus[Index1].Overlap = TRUE;
- PEntryStatus[Index2].Overlap = TRUE;
+ PEntryStatus[Index1].Overlap = TRUE;
+ PEntryStatus[Index2].Overlap = TRUE;
continue;
}
}
@@ -761,7 +763,6 @@ PartitionCheckGptEntry (
DEBUG ((DEBUG_INFO, " End check partition entries\n"));
}
-
/**
Updates the CRC32 value in the table header.
@@ -770,13 +771,12 @@ PartitionCheckGptEntry (
**/
VOID
PartitionSetCrc (
- IN OUT EFI_TABLE_HEADER *Hdr
+ IN OUT EFI_TABLE_HEADER *Hdr
)
{
PartitionSetCrcAltSize (Hdr->HeaderSize, Hdr);
}
-
/**
Updates the CRC32 value in the table header.
@@ -793,11 +793,10 @@ PartitionSetCrcAltSize (
UINT32 Crc;
Hdr->CRC32 = 0;
- gBS->CalculateCrc32 ((UINT8 *) Hdr, Size, &Crc);
+ gBS->CalculateCrc32 ((UINT8 *)Hdr, Size, &Crc);
Hdr->CRC32 = Crc;
}
-
/**
Checks the CRC32 value in the table header.
@@ -817,7 +816,6 @@ PartitionCheckCrc (
return PartitionCheckCrcAltSize (MaxSize, Hdr->HeaderSize, Hdr);
}
-
/**
Checks the CRC32 value in the table header.
@@ -853,17 +851,19 @@ PartitionCheckCrcAltSize (
DEBUG ((DEBUG_ERROR, "CheckCrc32: Size > MaxSize\n"));
return FALSE;
}
+
//
// clear old crc from header
//
- OrgCrc = Hdr->CRC32;
- Hdr->CRC32 = 0;
+ OrgCrc = Hdr->CRC32;
+ Hdr->CRC32 = 0;
- Status = gBS->CalculateCrc32 ((UINT8 *) Hdr, Size, &Crc);
+ Status = gBS->CalculateCrc32 ((UINT8 *)Hdr, Size, &Crc);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "CheckCrc32: Crc calculation failed\n"));
return FALSE;
}
+
//
// set results
//
@@ -873,10 +873,11 @@ PartitionCheckCrcAltSize (
// return status
//
DEBUG_CODE_BEGIN ();
- if (OrgCrc != Crc) {
- DEBUG ((DEBUG_ERROR, "CheckCrc32: Crc check failed\n"));
- }
+ if (OrgCrc != Crc) {
+ DEBUG ((DEBUG_ERROR, "CheckCrc32: Crc check failed\n"));
+ }
+
DEBUG_CODE_END ();
- return (BOOLEAN) (OrgCrc == Crc);
+ return (BOOLEAN)(OrgCrc == Crc);
}
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
index df25a93..0f8dc54 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c
@@ -32,26 +32,27 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
PartitionValidMbr (
- IN MASTER_BOOT_RECORD *Mbr,
- IN EFI_LBA LastLba
+ IN MASTER_BOOT_RECORD *Mbr,
+ IN EFI_LBA LastLba
)
{
- UINT32 StartingLBA;
- UINT32 EndingLBA;
- UINT32 NewEndingLBA;
- INTN Index1;
- INTN Index2;
- BOOLEAN MbrValid;
+ UINT32 StartingLBA;
+ UINT32 EndingLBA;
+ UINT32 NewEndingLBA;
+ INTN Index1;
+ INTN Index2;
+ BOOLEAN MbrValid;
if (Mbr->Signature != MBR_SIGNATURE) {
return FALSE;
}
+
//
// The BPB also has this signature, so it can not be used alone.
//
MbrValid = FALSE;
for (Index1 = 0; Index1 < MAX_MBR_PARTITIONS; Index1++) {
- if (Mbr->Partition[Index1].OSIndicator == 0x00 || UNPACK_UINT32 (Mbr->Partition[Index1].SizeInLBA) == 0) {
+ if ((Mbr->Partition[Index1].OSIndicator == 0x00) || (UNPACK_UINT32 (Mbr->Partition[Index1].SizeInLBA) == 0)) {
continue;
}
@@ -71,18 +72,18 @@ PartitionValidMbr (
// with INT 13h
//
- DEBUG((DEBUG_INFO, "PartitionValidMbr: Bad MBR partition size EndingLBA(%1x) > LastLBA(%1x)\n", EndingLBA, LastLba));
+ DEBUG ((DEBUG_INFO, "PartitionValidMbr: Bad MBR partition size EndingLBA(%1x) > LastLBA(%1x)\n", EndingLBA, LastLba));
return FALSE;
}
for (Index2 = Index1 + 1; Index2 < MAX_MBR_PARTITIONS; Index2++) {
- if (Mbr->Partition[Index2].OSIndicator == 0x00 || UNPACK_UINT32 (Mbr->Partition[Index2].SizeInLBA) == 0) {
+ if ((Mbr->Partition[Index2].OSIndicator == 0x00) || (UNPACK_UINT32 (Mbr->Partition[Index2].SizeInLBA) == 0)) {
continue;
}
NewEndingLBA = UNPACK_UINT32 (Mbr->Partition[Index2].StartingLBA) + UNPACK_UINT32 (Mbr->Partition[Index2].SizeInLBA) - 1;
- if (NewEndingLBA >= StartingLBA && UNPACK_UINT32 (Mbr->Partition[Index2].StartingLBA) <= EndingLBA) {
+ if ((NewEndingLBA >= StartingLBA) && (UNPACK_UINT32 (Mbr->Partition[Index2].StartingLBA) <= EndingLBA)) {
//
// This region overlaps with the Index1'th region
//
@@ -90,13 +91,13 @@ PartitionValidMbr (
}
}
}
+
//
// None of the regions overlapped so MBR is O.K.
//
return MbrValid;
}
-
/**
Install child handles if the Handle supports MBR format.
@@ -138,14 +139,14 @@ PartitionInstallMbrChildHandles (
EFI_LBA LastSector;
EFI_PARTITION_INFO_PROTOCOL PartitionInfo;
- Found = EFI_NOT_FOUND;
+ Found = EFI_NOT_FOUND;
- BlockSize = BlockIo->Media->BlockSize;
- MediaId = BlockIo->Media->MediaId;
- LastSector = DivU64x32 (
- MultU64x32 (BlockIo->Media->LastBlock + 1, BlockSize),
- MBR_SIZE
- ) - 1;
+ BlockSize = BlockIo->Media->BlockSize;
+ MediaId = BlockIo->Media->MediaId;
+ LastSector = DivU64x32 (
+ MultU64x32 (BlockIo->Media->LastBlock + 1, BlockSize),
+ MBR_SIZE
+ ) - 1;
//
// Ensure the block size can hold the MBR
@@ -170,9 +171,11 @@ PartitionInstallMbrChildHandles (
Found = Status;
goto Done;
}
+
if (!PartitionValidMbr (Mbr, LastSector)) {
goto Done;
}
+
//
// We have a valid mbr - add each partition
//
@@ -183,14 +186,15 @@ PartitionInstallMbrChildHandles (
ZeroMem (&ParentHdDev, sizeof (ParentHdDev));
DevicePathNode = DevicePath;
while (!IsDevicePathEnd (DevicePathNode)) {
- LastDevicePathNode = DevicePathNode;
- DevicePathNode = NextDevicePathNode (DevicePathNode);
+ LastDevicePathNode = DevicePathNode;
+ DevicePathNode = NextDevicePathNode (DevicePathNode);
}
if (LastDevicePathNode != NULL) {
- if (DevicePathType (LastDevicePathNode) == MEDIA_DEVICE_PATH &&
- DevicePathSubType (LastDevicePathNode) == MEDIA_HARDDRIVE_DP
- ) {
+ if ((DevicePathType (LastDevicePathNode) == MEDIA_DEVICE_PATH) &&
+ (DevicePathSubType (LastDevicePathNode) == MEDIA_HARDDRIVE_DP)
+ )
+ {
CopyMem (&ParentHdDev, LastDevicePathNode, sizeof (ParentHdDev));
} else {
LastDevicePathNode = NULL;
@@ -198,18 +202,18 @@ PartitionInstallMbrChildHandles (
}
ZeroMem (&HdDev, sizeof (HdDev));
- HdDev.Header.Type = MEDIA_DEVICE_PATH;
- HdDev.Header.SubType = MEDIA_HARDDRIVE_DP;
+ HdDev.Header.Type = MEDIA_DEVICE_PATH;
+ HdDev.Header.SubType = MEDIA_HARDDRIVE_DP;
SetDevicePathNodeLength (&HdDev.Header, sizeof (HdDev));
- HdDev.MBRType = MBR_TYPE_PCAT;
- HdDev.SignatureType = SIGNATURE_TYPE_MBR;
+ HdDev.MBRType = MBR_TYPE_PCAT;
+ HdDev.SignatureType = SIGNATURE_TYPE_MBR;
if (LastDevicePathNode == NULL) {
//
// This is a MBR, add each partition
//
for (Index = 0; Index < MAX_MBR_PARTITIONS; Index++) {
- if (Mbr->Partition[Index].OSIndicator == 0x00 || UNPACK_UINT32 (Mbr->Partition[Index].SizeInLBA) == 0) {
+ if ((Mbr->Partition[Index].OSIndicator == 0x00) || (UNPACK_UINT32 (Mbr->Partition[Index].SizeInLBA) == 0)) {
//
// Don't use null MBR entries
//
@@ -237,23 +241,24 @@ PartitionInstallMbrChildHandles (
if (Mbr->Partition[Index].OSIndicator == EFI_PARTITION) {
PartitionInfo.System = 1;
}
+
CopyMem (&PartitionInfo.Info.Mbr, &Mbr->Partition[Index], sizeof (MBR_PARTITION_RECORD));
Status = PartitionInstallChildHandle (
- This,
- Handle,
- DiskIo,
- DiskIo2,
- BlockIo,
- BlockIo2,
- DevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *) &HdDev,
- &PartitionInfo,
- HdDev.PartitionStart,
- HdDev.PartitionStart + HdDev.PartitionSize - 1,
- MBR_SIZE,
- ((Mbr->Partition[Index].OSIndicator == EFI_PARTITION) ? &gEfiPartTypeSystemPartGuid: NULL)
- );
+ This,
+ Handle,
+ DiskIo,
+ DiskIo2,
+ BlockIo,
+ BlockIo2,
+ DevicePath,
+ (EFI_DEVICE_PATH_PROTOCOL *)&HdDev,
+ &PartitionInfo,
+ HdDev.PartitionStart,
+ HdDev.PartitionStart + HdDev.PartitionSize - 1,
+ MBR_SIZE,
+ ((Mbr->Partition[Index].OSIndicator == EFI_PARTITION) ? &gEfiPartTypeSystemPartGuid : NULL)
+ );
if (!EFI_ERROR (Status)) {
Found = EFI_SUCCESS;
@@ -268,7 +273,6 @@ PartitionInstallMbrChildHandles (
ExtMbrStartingLba = 0;
do {
-
Status = DiskIo->ReadDisk (
DiskIo,
MediaId,
@@ -286,22 +290,25 @@ PartitionInstallMbrChildHandles (
}
if ((Mbr->Partition[0].OSIndicator == EXTENDED_DOS_PARTITION) ||
- (Mbr->Partition[0].OSIndicator == EXTENDED_WINDOWS_PARTITION)) {
+ (Mbr->Partition[0].OSIndicator == EXTENDED_WINDOWS_PARTITION))
+ {
ExtMbrStartingLba = UNPACK_UINT32 (Mbr->Partition[0].StartingLBA);
continue;
}
+
HdDev.PartitionNumber = ++Index;
HdDev.PartitionStart = UNPACK_UINT32 (Mbr->Partition[0].StartingLBA) + ExtMbrStartingLba + ParentHdDev.PartitionStart;
HdDev.PartitionSize = UNPACK_UINT32 (Mbr->Partition[0].SizeInLBA);
if ((HdDev.PartitionStart + HdDev.PartitionSize - 1 >= ParentHdDev.PartitionStart + ParentHdDev.PartitionSize) ||
- (HdDev.PartitionStart <= ParentHdDev.PartitionStart)) {
+ (HdDev.PartitionStart <= ParentHdDev.PartitionStart))
+ {
break;
}
//
// The signature in EBR(Extended Boot Record) should always be 0.
//
- *((UINT32 *) &HdDev.Signature[0]) = 0;
+ *((UINT32 *)&HdDev.Signature[0]) = 0;
ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL));
PartitionInfo.Revision = EFI_PARTITION_INFO_PROTOCOL_REVISION;
@@ -309,6 +316,7 @@ PartitionInstallMbrChildHandles (
if (Mbr->Partition[0].OSIndicator == EFI_PARTITION) {
PartitionInfo.System = 1;
}
+
CopyMem (&PartitionInfo.Info.Mbr, &Mbr->Partition[0], sizeof (MBR_PARTITION_RECORD));
Status = PartitionInstallChildHandle (
@@ -319,12 +327,12 @@ PartitionInstallMbrChildHandles (
BlockIo,
BlockIo2,
DevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *) &HdDev,
+ (EFI_DEVICE_PATH_PROTOCOL *)&HdDev,
&PartitionInfo,
HdDev.PartitionStart - ParentHdDev.PartitionStart,
HdDev.PartitionStart - ParentHdDev.PartitionStart + HdDev.PartitionSize - 1,
MBR_SIZE,
- ((Mbr->Partition[0].OSIndicator == EFI_PARTITION) ? &gEfiPartTypeSystemPartGuid: NULL)
+ ((Mbr->Partition[0].OSIndicator == EFI_PARTITION) ? &gEfiPartTypeSystemPartGuid : NULL)
);
if (!EFI_ERROR (Status)) {
Found = EFI_SUCCESS;
@@ -332,7 +340,8 @@ PartitionInstallMbrChildHandles (
if ((Mbr->Partition[1].OSIndicator != EXTENDED_DOS_PARTITION) &&
(Mbr->Partition[1].OSIndicator != EXTENDED_WINDOWS_PARTITION)
- ) {
+ )
+ {
break;
}
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
index aebc8a1..bc89559 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
@@ -10,13 +10,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Partition.h"
//
// Partition Driver Global Variables.
//
-EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = {
PartitionDriverBindingSupported,
PartitionDriverBindingStart,
PartitionDriverBindingStop,
@@ -44,7 +43,7 @@ EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = {
// Note: UDF is using a same method as booting from CD-ROM, so put it along
// with CD-ROM check.
//
-PARTITION_DETECT_ROUTINE mPartitionDetectRoutineTable[] = {
+PARTITION_DETECT_ROUTINE mPartitionDetectRoutineTable[] = {
PartitionInstallGptChildHandles,
PartitionInstallUdfChildHandles,
PartitionInstallMbrChildHandles,
@@ -92,10 +91,11 @@ PartitionDriverBindingSupported (
// If RemainingDevicePath isn't the End of Device Path Node,
// check its validation
//
- Node = (EFI_DEV_PATH *) RemainingDevicePath;
- if (Node->DevPath.Type != MEDIA_DEVICE_PATH ||
- Node->DevPath.SubType != MEDIA_HARDDRIVE_DP ||
- DevicePathNodeLength (&Node->DevPath) != sizeof (HARDDRIVE_DEVICE_PATH)) {
+ Node = (EFI_DEV_PATH *)RemainingDevicePath;
+ if ((Node->DevPath.Type != MEDIA_DEVICE_PATH) ||
+ (Node->DevPath.SubType != MEDIA_HARDDRIVE_DP) ||
+ (DevicePathNodeLength (&Node->DevPath) != sizeof (HARDDRIVE_DEVICE_PATH)))
+ {
return EFI_UNSUPPORTED;
}
}
@@ -107,7 +107,7 @@ PartitionDriverBindingSupported (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDiskIoProtocolGuid,
- (VOID **) &DiskIo,
+ (VOID **)&DiskIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -115,9 +115,11 @@ PartitionDriverBindingSupported (
if (Status == EFI_ALREADY_STARTED) {
return EFI_SUCCESS;
}
+
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Close the I/O Abstraction(s) used to perform the supported test
//
@@ -134,7 +136,7 @@ PartitionDriverBindingSupported (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &ParentDevicePath,
+ (VOID **)&ParentDevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -151,11 +153,11 @@ PartitionDriverBindingSupported (
// Close protocol, don't use device path protocol in the Support() function
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
//
// Open the IO Abstraction(s) needed to perform the supported test
@@ -207,7 +209,7 @@ PartitionDriverBindingStart (
EFI_TPL OldTpl;
BlockIo2 = NULL;
- OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
+ OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
//
// Check RemainingDevicePath validation
//
@@ -229,7 +231,7 @@ PartitionDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiBlockIoProtocolGuid,
- (VOID **) &BlockIo,
+ (VOID **)&BlockIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -241,7 +243,7 @@ PartitionDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiBlockIo2ProtocolGuid,
- (VOID **) &BlockIo2,
+ (VOID **)&BlockIo2,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -256,12 +258,12 @@ PartitionDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &ParentDevicePath,
+ (VOID **)&ParentDevicePath,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
- if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {
+ if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
goto Exit;
}
@@ -271,18 +273,18 @@ PartitionDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDiskIoProtocolGuid,
- (VOID **) &DiskIo,
+ (VOID **)&DiskIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
- if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {
+ if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
goto Exit;
}
@@ -291,12 +293,12 @@ PartitionDriverBindingStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiDiskIo2ProtocolGuid,
- (VOID **) &DiskIo2,
+ (VOID **)&DiskIo2,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
- if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {
+ if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
DiskIo2 = NULL;
}
@@ -306,7 +308,8 @@ PartitionDriverBindingStart (
Status = EFI_UNSUPPORTED;
MediaPresent = BlockIo->Media->MediaPresent;
if (BlockIo->Media->MediaPresent ||
- (BlockIo->Media->RemovableMedia && !BlockIo->Media->LogicalPartition)) {
+ (BlockIo->Media->RemovableMedia && !BlockIo->Media->LogicalPartition))
+ {
//
// Try for GPT, then legacy MBR partition types, and then UDF and El Torito.
// If the media supports a given partition type install child handles to
@@ -314,21 +317,23 @@ PartitionDriverBindingStart (
//
Routine = &mPartitionDetectRoutineTable[0];
while (*Routine != NULL) {
- Status = (*Routine) (
- This,
- ControllerHandle,
- DiskIo,
- DiskIo2,
- BlockIo,
- BlockIo2,
- ParentDevicePath
- );
- if (!EFI_ERROR (Status) || Status == EFI_MEDIA_CHANGED || Status == EFI_NO_MEDIA) {
+ Status = (*Routine)(
+ This,
+ ControllerHandle,
+ DiskIo,
+ DiskIo2,
+ BlockIo,
+ BlockIo2,
+ ParentDevicePath
+ );
+ if (!EFI_ERROR (Status) || (Status == EFI_MEDIA_CHANGED) || (Status == EFI_NO_MEDIA)) {
break;
}
+
Routine++;
}
}
+
//
// In the case that the driver is already started (OpenStatus == EFI_ALREADY_STARTED),
// the DevicePathProtocol and the DiskIoProtocol are not actually opened by the
@@ -343,14 +348,15 @@ PartitionDriverBindingStart (
//
if (EFI_ERROR (Status) &&
!EFI_ERROR (OpenStatus) &&
- Status != EFI_MEDIA_CHANGED &&
- !(MediaPresent && Status == EFI_NO_MEDIA)) {
+ (Status != EFI_MEDIA_CHANGED) &&
+ !(MediaPresent && (Status == EFI_NO_MEDIA)))
+ {
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
//
// Close Parent DiskIo2 if has.
//
@@ -362,11 +368,11 @@ PartitionDriverBindingStart (
);
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
}
Exit:
@@ -391,10 +397,10 @@ Exit:
EFI_STATUS
EFIAPI
PartitionDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
@@ -408,7 +414,7 @@ PartitionDriverBindingStop (
BlockIo = NULL;
BlockIo2 = NULL;
- Private = NULL;
+ Private = NULL;
if (NumberOfChildren == 0) {
//
@@ -417,7 +423,7 @@ PartitionDriverBindingStop (
// bus driver. Hence, additional check is needed here.
//
if (HasChildren (ControllerHandle)) {
- DEBUG((DEBUG_ERROR, "PartitionDriverBindingStop: Still has child.\n"));
+ DEBUG ((DEBUG_ERROR, "PartitionDriverBindingStop: Still has child.\n"));
return EFI_DEVICE_ERROR;
}
@@ -425,11 +431,11 @@ PartitionDriverBindingStop (
// Close the bus driver
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
//
// Close Parent BlockIO2 if has.
//
@@ -441,11 +447,11 @@ PartitionDriverBindingStop (
);
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return EFI_SUCCESS;
}
@@ -454,7 +460,7 @@ PartitionDriverBindingStop (
gBS->OpenProtocol (
ChildHandleBuffer[Index],
&gEfiBlockIoProtocolGuid,
- (VOID **) &BlockIo,
+ (VOID **)&BlockIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -465,13 +471,12 @@ PartitionDriverBindingStop (
gBS->OpenProtocol (
ChildHandleBuffer[Index],
&gEfiBlockIo2ProtocolGuid,
- (VOID **) &BlockIo2,
+ (VOID **)&BlockIo2,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
-
Private = PARTITION_DEVICE_FROM_BLOCK_IO_THIS (BlockIo);
if (Private->InStop) {
//
@@ -480,13 +485,14 @@ PartitionDriverBindingStop (
//
break;
}
+
Private->InStop = TRUE;
BlockIo->FlushBlocks (BlockIo);
if (BlockIo2 != NULL) {
Status = BlockIo2->FlushBlocksEx (BlockIo2, NULL);
- DEBUG((DEBUG_ERROR, "PartitionDriverBindingStop: FlushBlocksEx returned with %r\n", Status));
+ DEBUG ((DEBUG_ERROR, "PartitionDriverBindingStop: FlushBlocksEx returned with %r\n", Status));
} else {
Status = EFI_SUCCESS;
}
@@ -518,33 +524,33 @@ PartitionDriverBindingStop (
//
if (Status != EFI_MEDIA_CHANGED) {
Status = gBS->UninstallMultipleProtocolInterfaces (
- ChildHandleBuffer[Index],
- &gEfiDevicePathProtocolGuid,
- Private->DevicePath,
- &gEfiBlockIoProtocolGuid,
- &Private->BlockIo,
- &gEfiBlockIo2ProtocolGuid,
- &Private->BlockIo2,
- &gEfiPartitionInfoProtocolGuid,
- &Private->PartitionInfo,
- TypeGuid,
- NULL,
- NULL
- );
+ ChildHandleBuffer[Index],
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
+ &gEfiBlockIoProtocolGuid,
+ &Private->BlockIo,
+ &gEfiBlockIo2ProtocolGuid,
+ &Private->BlockIo2,
+ &gEfiPartitionInfoProtocolGuid,
+ &Private->PartitionInfo,
+ TypeGuid,
+ NULL,
+ NULL
+ );
}
} else {
Status = gBS->UninstallMultipleProtocolInterfaces (
- ChildHandleBuffer[Index],
- &gEfiDevicePathProtocolGuid,
- Private->DevicePath,
- &gEfiBlockIoProtocolGuid,
- &Private->BlockIo,
- &gEfiPartitionInfoProtocolGuid,
- &Private->PartitionInfo,
- TypeGuid,
- NULL,
- NULL
- );
+ ChildHandleBuffer[Index],
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
+ &gEfiBlockIoProtocolGuid,
+ &Private->BlockIo,
+ &gEfiPartitionInfoProtocolGuid,
+ &Private->PartitionInfo,
+ TypeGuid,
+ NULL,
+ NULL
+ );
}
if (EFI_ERROR (Status)) {
@@ -552,7 +558,7 @@ PartitionDriverBindingStop (
gBS->OpenProtocol (
ControllerHandle,
&gEfiDiskIoProtocolGuid,
- (VOID **) &DiskIo,
+ (VOID **)&DiskIo,
This->DriverBindingHandle,
ChildHandleBuffer[Index],
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -577,7 +583,6 @@ PartitionDriverBindingStop (
return EFI_SUCCESS;
}
-
/**
Reset the Block Device.
@@ -601,9 +606,9 @@ PartitionReset (
Private = PARTITION_DEVICE_FROM_BLOCK_IO_THIS (This);
return Private->ParentBlockIo->Reset (
- Private->ParentBlockIo,
- ExtendedVerification
- );
+ Private->ParentBlockIo,
+ ExtendedVerification
+ );
}
/**
@@ -621,13 +626,13 @@ PartitionReset (
**/
EFI_STATUS
ProbeMediaStatus (
- IN EFI_DISK_IO_PROTOCOL *DiskIo,
- IN UINT32 MediaId,
- IN EFI_STATUS DefaultStatus
+ IN EFI_DISK_IO_PROTOCOL *DiskIo,
+ IN UINT32 MediaId,
+ IN EFI_STATUS DefaultStatus
)
{
- EFI_STATUS Status;
- UINT8 Buffer[1];
+ EFI_STATUS Status;
+ UINT8 Buffer[1];
//
// Read 1 byte from offset 0 to check if the MediaId is still valid.
@@ -635,10 +640,11 @@ ProbeMediaStatus (
// allocate a buffer from the pool. The destination buffer for the
// data is in the stack.
//
- Status = DiskIo->ReadDisk (DiskIo, MediaId, 0, 1, (VOID*)Buffer);
+ Status = DiskIo->ReadDisk (DiskIo, MediaId, 0, 1, (VOID *)Buffer);
if ((Status == EFI_NO_MEDIA) || (Status == EFI_MEDIA_CHANGED)) {
return Status;
}
+
return DefaultStatus;
}
@@ -684,6 +690,7 @@ PartitionReadBlocks (
if (Offset + BufferSize > Private->End) {
return ProbeMediaStatus (Private->DiskIo, MediaId, EFI_INVALID_PARAMETER);
}
+
//
// Because some kinds of partition have different block size from their parent
// device, we call the Disk IO protocol on the parent device, not the Block IO
@@ -719,7 +726,7 @@ PartitionWriteBlocks (
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
- IN VOID *Buffer
+ IN VOID *Buffer
)
{
PARTITION_PRIVATE_DATA *Private;
@@ -735,6 +742,7 @@ PartitionWriteBlocks (
if (Offset + BufferSize > Private->End) {
return ProbeMediaStatus (Private->DiskIo, MediaId, EFI_INVALID_PARAMETER);
}
+
//
// Because some kinds of partition have different block size from their parent
// device, we call the Disk IO protocol on the parent device, not the Block IO
@@ -743,7 +751,6 @@ PartitionWriteBlocks (
return Private->DiskIo->WriteDisk (Private->DiskIo, MediaId, Offset, BufferSize, Buffer);
}
-
/**
Flush the parent Block Device.
@@ -782,13 +789,13 @@ PartitionFlushBlocks (
**/
EFI_STATUS
ProbeMediaStatusEx (
- IN EFI_DISK_IO2_PROTOCOL *DiskIo2,
- IN UINT32 MediaId,
- IN EFI_STATUS DefaultStatus
+ IN EFI_DISK_IO2_PROTOCOL *DiskIo2,
+ IN UINT32 MediaId,
+ IN EFI_STATUS DefaultStatus
)
{
- EFI_STATUS Status;
- UINT8 Buffer[1];
+ EFI_STATUS Status;
+ UINT8 Buffer[1];
//
// Read 1 byte from offset 0 to check if the MediaId is still valid.
@@ -796,10 +803,11 @@ ProbeMediaStatusEx (
// allocate a buffer from the pool. The destination buffer for the
// data is in the stack.
//
- Status = DiskIo2->ReadDiskEx (DiskIo2, MediaId, 0, NULL, 1, (VOID*)Buffer);
+ Status = DiskIo2->ReadDiskEx (DiskIo2, MediaId, 0, NULL, 1, (VOID *)Buffer);
if ((Status == EFI_NO_MEDIA) || (Status == EFI_MEDIA_CHANGED)) {
return Status;
}
+
return DefaultStatus;
}
@@ -817,8 +825,8 @@ ProbeMediaStatusEx (
EFI_STATUS
EFIAPI
PartitionResetEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
PARTITION_PRIVATE_DATA *Private;
@@ -840,13 +848,13 @@ PartitionResetEx (
VOID
EFIAPI
PartitionOnAccessComplete (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- PARTITION_ACCESS_TASK *Task;
+ PARTITION_ACCESS_TASK *Task;
- Task = (PARTITION_ACCESS_TASK *) Context;
+ Task = (PARTITION_ACCESS_TASK *)Context;
gBS->CloseEvent (Event);
@@ -865,11 +873,11 @@ PartitionOnAccessComplete (
**/
PARTITION_ACCESS_TASK *
PartitionCreateAccessTask (
- IN EFI_BLOCK_IO2_TOKEN *Token
+ IN EFI_BLOCK_IO2_TOKEN *Token
)
{
- EFI_STATUS Status;
- PARTITION_ACCESS_TASK *Task;
+ EFI_STATUS Status;
+ PARTITION_ACCESS_TASK *Task;
Task = AllocatePool (sizeof (*Task));
if (Task == NULL) {
@@ -929,12 +937,12 @@ PartitionCreateAccessTask (
EFI_STATUS
EFIAPI
PartitionReadBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
)
{
EFI_STATUS Status;
@@ -1005,12 +1013,12 @@ PartitionReadBlocksEx (
EFI_STATUS
EFIAPI
PartitionWriteBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
EFI_STATUS Status;
@@ -1043,6 +1051,7 @@ PartitionWriteBlocksEx (
} else {
Status = Private->DiskIo2->WriteDiskEx (Private->DiskIo2, MediaId, Offset, NULL, BufferSize, Buffer);
}
+
return Status;
}
@@ -1071,8 +1080,8 @@ PartitionWriteBlocksEx (
EFI_STATUS
EFIAPI
PartitionFlushBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token
)
{
EFI_STATUS Status;
@@ -1095,10 +1104,10 @@ PartitionFlushBlocksEx (
} else {
Status = Private->DiskIo2->FlushDiskEx (Private->DiskIo2, NULL);
}
+
return Status;
}
-
/**
Create a child handle for a logical block device that represents the
bytes Start to End of the Parent Block IO device.
@@ -1147,60 +1156,60 @@ PartitionInstallChildHandle (
return EFI_OUT_OF_RESOURCES;
}
- Private->Signature = PARTITION_PRIVATE_DATA_SIGNATURE;
+ Private->Signature = PARTITION_PRIVATE_DATA_SIGNATURE;
- Private->Start = MultU64x32 (Start, ParentBlockIo->Media->BlockSize);
- Private->End = MultU64x32 (End + 1, ParentBlockIo->Media->BlockSize);
+ Private->Start = MultU64x32 (Start, ParentBlockIo->Media->BlockSize);
+ Private->End = MultU64x32 (End + 1, ParentBlockIo->Media->BlockSize);
- Private->BlockSize = BlockSize;
- Private->ParentBlockIo = ParentBlockIo;
- Private->ParentBlockIo2 = ParentBlockIo2;
- Private->DiskIo = ParentDiskIo;
- Private->DiskIo2 = ParentDiskIo2;
+ Private->BlockSize = BlockSize;
+ Private->ParentBlockIo = ParentBlockIo;
+ Private->ParentBlockIo2 = ParentBlockIo2;
+ Private->DiskIo = ParentDiskIo;
+ Private->DiskIo2 = ParentDiskIo2;
//
// Set the BlockIO into Private Data.
//
Private->BlockIo.Revision = ParentBlockIo->Revision;
- Private->BlockIo.Media = &Private->Media;
+ Private->BlockIo.Media = &Private->Media;
CopyMem (Private->BlockIo.Media, ParentBlockIo->Media, sizeof (EFI_BLOCK_IO_MEDIA));
- Private->BlockIo.Reset = PartitionReset;
- Private->BlockIo.ReadBlocks = PartitionReadBlocks;
- Private->BlockIo.WriteBlocks = PartitionWriteBlocks;
- Private->BlockIo.FlushBlocks = PartitionFlushBlocks;
+ Private->BlockIo.Reset = PartitionReset;
+ Private->BlockIo.ReadBlocks = PartitionReadBlocks;
+ Private->BlockIo.WriteBlocks = PartitionWriteBlocks;
+ Private->BlockIo.FlushBlocks = PartitionFlushBlocks;
//
// Set the BlockIO2 into Private Data.
//
if (Private->DiskIo2 != NULL) {
ASSERT (Private->ParentBlockIo2 != NULL);
- Private->BlockIo2.Media = &Private->Media2;
+ Private->BlockIo2.Media = &Private->Media2;
CopyMem (Private->BlockIo2.Media, ParentBlockIo2->Media, sizeof (EFI_BLOCK_IO_MEDIA));
- Private->BlockIo2.Reset = PartitionResetEx;
- Private->BlockIo2.ReadBlocksEx = PartitionReadBlocksEx;
- Private->BlockIo2.WriteBlocksEx = PartitionWriteBlocksEx;
- Private->BlockIo2.FlushBlocksEx = PartitionFlushBlocksEx;
+ Private->BlockIo2.Reset = PartitionResetEx;
+ Private->BlockIo2.ReadBlocksEx = PartitionReadBlocksEx;
+ Private->BlockIo2.WriteBlocksEx = PartitionWriteBlocksEx;
+ Private->BlockIo2.FlushBlocksEx = PartitionFlushBlocksEx;
}
- Private->Media.IoAlign = 0;
+ Private->Media.IoAlign = 0;
Private->Media.LogicalPartition = TRUE;
- Private->Media.LastBlock = DivU64x32 (
- MultU64x32 (
- End - Start + 1,
- ParentBlockIo->Media->BlockSize
- ),
- BlockSize
- ) - 1;
+ Private->Media.LastBlock = DivU64x32 (
+ MultU64x32 (
+ End - Start + 1,
+ ParentBlockIo->Media->BlockSize
+ ),
+ BlockSize
+ ) - 1;
- Private->Media.BlockSize = (UINT32) BlockSize;
+ Private->Media.BlockSize = (UINT32)BlockSize;
- Private->Media2.IoAlign = 0;
+ Private->Media2.IoAlign = 0;
Private->Media2.LogicalPartition = TRUE;
- Private->Media2.LastBlock = Private->Media.LastBlock;
- Private->Media2.BlockSize = (UINT32) BlockSize;
+ Private->Media2.LastBlock = Private->Media.LastBlock;
+ Private->Media2.BlockSize = (UINT32)BlockSize;
//
// Per UEFI Spec, LowestAlignedLba, LogicalBlocksPerPhysicalBlock and OptimalTransferLengthGranularity must be 0
@@ -1217,7 +1226,7 @@ PartitionInstallChildHandle (
}
}
- Private->DevicePath = AppendDevicePathNode (ParentDevicePath, DevicePathNode);
+ Private->DevicePath = AppendDevicePathNode (ParentDevicePath, DevicePathNode);
if (Private->DevicePath == NULL) {
FreePool (Private);
@@ -1230,7 +1239,7 @@ PartitionInstallChildHandle (
CopyMem (&Private->PartitionInfo, PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL));
if (TypeGuid != NULL) {
- CopyGuid(&(Private->TypeGuid), TypeGuid);
+ CopyGuid (&(Private->TypeGuid), TypeGuid);
} else {
ZeroMem ((VOID *)&(Private->TypeGuid), sizeof (EFI_GUID));
}
@@ -1276,7 +1285,7 @@ PartitionInstallChildHandle (
Status = gBS->OpenProtocol (
ParentHandle,
&gEfiDiskIoProtocolGuid,
- (VOID **) &ParentDiskIo,
+ (VOID **)&ParentDiskIo,
This->DriverBindingHandle,
Private->Handle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -1298,7 +1307,6 @@ PartitionInstallChildHandle (
return Status;
}
-
/**
The user Entry Point for module Partition. The user code starts with this function.
@@ -1312,11 +1320,11 @@ PartitionInstallChildHandle (
EFI_STATUS
EFIAPI
InitializePartition (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Install driver model protocol(s).
@@ -1331,11 +1339,9 @@ InitializePartition (
);
ASSERT_EFI_ERROR (Status);
-
return Status;
}
-
/**
Test to see if there is any child on ControllerHandle.
@@ -1347,7 +1353,7 @@ InitializePartition (
**/
BOOLEAN
HasChildren (
- IN EFI_HANDLE ControllerHandle
+ IN EFI_HANDLE ControllerHandle
)
{
EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenInfoBuffer;
@@ -1368,7 +1374,8 @@ HasChildren (
break;
}
}
+
FreePool (OpenInfoBuffer);
- return (BOOLEAN) (Index < EntryCount);
+ return (BOOLEAN)(Index < EntryCount);
}
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
index a633950..100aa4c 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
@@ -41,36 +41,35 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
#define PARTITION_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('P', 'a', 'r', 't')
typedef struct {
- UINT64 Signature;
-
- EFI_HANDLE Handle;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_BLOCK_IO_PROTOCOL BlockIo;
- EFI_BLOCK_IO2_PROTOCOL BlockIo2;
- EFI_BLOCK_IO_MEDIA Media;
- EFI_BLOCK_IO_MEDIA Media2;//For BlockIO2
- EFI_PARTITION_INFO_PROTOCOL PartitionInfo;
-
- EFI_DISK_IO_PROTOCOL *DiskIo;
- EFI_DISK_IO2_PROTOCOL *DiskIo2;
- EFI_BLOCK_IO_PROTOCOL *ParentBlockIo;
- EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2;
- UINT64 Start;
- UINT64 End;
- UINT32 BlockSize;
- BOOLEAN InStop;
-
- EFI_GUID TypeGuid;
-
+ UINT64 Signature;
+
+ EFI_HANDLE Handle;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_BLOCK_IO_PROTOCOL BlockIo;
+ EFI_BLOCK_IO2_PROTOCOL BlockIo2;
+ EFI_BLOCK_IO_MEDIA Media;
+ EFI_BLOCK_IO_MEDIA Media2;// For BlockIO2
+ EFI_PARTITION_INFO_PROTOCOL PartitionInfo;
+
+ EFI_DISK_IO_PROTOCOL *DiskIo;
+ EFI_DISK_IO2_PROTOCOL *DiskIo2;
+ EFI_BLOCK_IO_PROTOCOL *ParentBlockIo;
+ EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2;
+ UINT64 Start;
+ UINT64 End;
+ UINT32 BlockSize;
+ BOOLEAN InStop;
+
+ EFI_GUID TypeGuid;
} PARTITION_PRIVATE_DATA;
typedef struct {
- EFI_DISK_IO2_TOKEN DiskIo2Token;
- EFI_BLOCK_IO2_TOKEN *BlockIo2Token;
+ EFI_DISK_IO2_TOKEN DiskIo2Token;
+ EFI_BLOCK_IO2_TOKEN *BlockIo2Token;
} PARTITION_ACCESS_TASK;
-#define PARTITION_DEVICE_FROM_BLOCK_IO_THIS(a) CR (a, PARTITION_PRIVATE_DATA, BlockIo, PARTITION_PRIVATE_DATA_SIGNATURE)
-#define PARTITION_DEVICE_FROM_BLOCK_IO2_THIS(a) CR (a, PARTITION_PRIVATE_DATA, BlockIo2, PARTITION_PRIVATE_DATA_SIGNATURE)
+#define PARTITION_DEVICE_FROM_BLOCK_IO_THIS(a) CR (a, PARTITION_PRIVATE_DATA, BlockIo, PARTITION_PRIVATE_DATA_SIGNATURE)
+#define PARTITION_DEVICE_FROM_BLOCK_IO2_THIS(a) CR (a, PARTITION_PRIVATE_DATA, BlockIo2, PARTITION_PRIVATE_DATA_SIGNATURE)
//
// Global Variables
@@ -82,7 +81,7 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gPartitionComponentName2;
//
// Extract INT32 from char array
//
-#define UNPACK_INT32(a) (INT32)( (((UINT8 *) a)[0] << 0) | \
+#define UNPACK_INT32(a) (INT32)( (((UINT8 *) a)[0] << 0) | \
(((UINT8 *) a)[1] << 8) | \
(((UINT8 *) a)[2] << 16) | \
(((UINT8 *) a)[3] << 24) )
@@ -90,24 +89,24 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gPartitionComponentName2;
//
// Extract UINT32 from char array
//
-#define UNPACK_UINT32(a) (UINT32)( (((UINT8 *) a)[0] << 0) | \
+#define UNPACK_UINT32(a) (UINT32)( (((UINT8 *) a)[0] << 0) | \
(((UINT8 *) a)[1] << 8) | \
(((UINT8 *) a)[2] << 16) | \
(((UINT8 *) a)[3] << 24) )
-
//
// GPT Partition Entry Status
//
typedef struct {
- BOOLEAN OutOfRange;
- BOOLEAN Overlap;
- BOOLEAN OsSpecific;
+ BOOLEAN OutOfRange;
+ BOOLEAN Overlap;
+ BOOLEAN OsSpecific;
} EFI_PARTITION_ENTRY_STATUS;
//
// Function Prototypes
//
+
/**
Test to see if this driver supports ControllerHandle. Any ControllerHandle
than contains a BlockIo and DiskIo protocol can be supported.
@@ -170,15 +169,16 @@ PartitionDriverBindingStart (
EFI_STATUS
EFIAPI
PartitionDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
//
// EFI Component Name Functions
//
+
/**
Retrieves a Unicode string that is the user readable name of the driver.
@@ -226,7 +226,6 @@ PartitionComponentNameGetDriverName (
OUT CHAR16 **DriverName
);
-
/**
Retrieves a Unicode string that is the user readable name of the controller
that is being managed by a driver.
@@ -298,14 +297,13 @@ PartitionComponentNameGetDriverName (
EFI_STATUS
EFIAPI
PartitionComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
-
/**
Create a child handle for a logical block device that represents the
bytes Start to End of the Parent Block IO device.
@@ -356,7 +354,7 @@ PartitionInstallChildHandle (
**/
BOOLEAN
HasChildren (
- IN EFI_HANDLE ControllerHandle
+ IN EFI_HANDLE ControllerHandle
);
/**
diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
index 3bf89a1..098e4fe 100644
--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
+++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c
@@ -18,7 +18,7 @@
#include "Partition.h"
-#define MAX_CORRECTION_BLOCKS_NUM 512u
+#define MAX_CORRECTION_BLOCKS_NUM 512u
//
// C5BD4D42-1A76-4996-8956-73CDA326CD0A
@@ -29,25 +29,27 @@
}
typedef struct {
- VENDOR_DEVICE_PATH DevicePath;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH DevicePath;
+ EFI_DEVICE_PATH_PROTOCOL End;
} UDF_DEVICE_PATH;
//
// Vendor-Defined Device Path GUID for UDF file system
//
-EFI_GUID gUdfDevPathGuid = EFI_UDF_DEVICE_PATH_GUID;
+EFI_GUID gUdfDevPathGuid = EFI_UDF_DEVICE_PATH_GUID;
//
// Vendor-Defined Media Device Path for UDF file system
//
-UDF_DEVICE_PATH gUdfDevicePath = {
- { { MEDIA_DEVICE_PATH, MEDIA_VENDOR_DP,
- { sizeof (VENDOR_DEVICE_PATH), 0 } },
+UDF_DEVICE_PATH gUdfDevicePath = {
+ {
+ { MEDIA_DEVICE_PATH, MEDIA_VENDOR_DP,
+ { sizeof (VENDOR_DEVICE_PATH), 0 }
+ },
EFI_UDF_DEVICE_PATH_GUID
},
- { END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
- { sizeof (EFI_DEVICE_PATH_PROTOCOL), 0 }
+ { END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
+ { sizeof (EFI_DEVICE_PATH_PROTOCOL), 0 }
}
};
@@ -99,10 +101,10 @@ FindAnchorVolumeDescriptorPointer (
// That said, we define a magic number of 512 blocks to be used as correction
// when attempting to find AVDP and define last block number.
//
- BlockSize = BlockIo->Media->BlockSize;
- EndLBA = BlockIo->Media->LastBlock;
+ BlockSize = BlockIo->Media->BlockSize;
+ EndLBA = BlockIo->Media->LastBlock;
*LastRecordedBlock = EndLBA;
- AvdpsCount = 0;
+ AvdpsCount = 0;
//
// Check if the block size of the underlying media can hold the data of an
@@ -122,12 +124,12 @@ FindAnchorVolumeDescriptorPointer (
// Find AVDP at block 256
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (256, BlockSize),
- sizeof (*AnchorPoint),
- AnchorPoint
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (256, BlockSize),
+ sizeof (*AnchorPoint),
+ AnchorPoint
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -146,12 +148,12 @@ FindAnchorVolumeDescriptorPointer (
// Find AVDP at block N - 256
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 ((UINT64)EndLBA - 256, BlockSize),
- sizeof (*AnchorPoint),
- AnchorPoint
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 ((UINT64)EndLBA - 256, BlockSize),
+ sizeof (*AnchorPoint),
+ AnchorPoint
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -159,10 +161,15 @@ FindAnchorVolumeDescriptorPointer (
//
// Check if read block is a valid AVDP descriptor
//
- if (DescriptorTag->TagIdentifier == UdfAnchorVolumeDescriptorPointer &&
- ++AvdpsCount == 2) {
- DEBUG ((DEBUG_INFO, "%a: found AVDP at block %Ld\n", __FUNCTION__,
- EndLBA - 256));
+ if ((DescriptorTag->TagIdentifier == UdfAnchorVolumeDescriptorPointer) &&
+ (++AvdpsCount == 2))
+ {
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: found AVDP at block %Ld\n",
+ __FUNCTION__,
+ EndLBA - 256
+ ));
return EFI_SUCCESS;
}
@@ -177,12 +184,12 @@ FindAnchorVolumeDescriptorPointer (
// Find AVDP at block N
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 ((UINT64)EndLBA, BlockSize),
- sizeof (*AnchorPoint),
- AnchorPoint
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 ((UINT64)EndLBA, BlockSize),
+ sizeof (*AnchorPoint),
+ AnchorPoint
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -213,12 +220,12 @@ FindAnchorVolumeDescriptorPointer (
// Read consecutive MAX_CORRECTION_BLOCKS_NUM disk blocks
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 ((UINT64)EndLBA - MAX_CORRECTION_BLOCKS_NUM, BlockSize),
- Size,
- AnchorPoints
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 ((UINT64)EndLBA - MAX_CORRECTION_BLOCKS_NUM, BlockSize),
+ Size,
+ AnchorPoints
+ );
if (EFI_ERROR (Status)) {
goto Out_Free;
}
@@ -241,10 +248,19 @@ FindAnchorVolumeDescriptorPointer (
// Calculate last recorded block number
//
LastAvdpBlockNum = EndLBA - (MAX_CORRECTION_BLOCKS_NUM - Index);
- DEBUG ((DEBUG_WARN, "%a: found AVDP at block %Ld\n", __FUNCTION__,
- LastAvdpBlockNum));
- DEBUG ((DEBUG_WARN, "%a: correcting last block from %Ld to %Ld\n",
- __FUNCTION__, EndLBA, LastAvdpBlockNum));
+ DEBUG ((
+ DEBUG_WARN,
+ "%a: found AVDP at block %Ld\n",
+ __FUNCTION__,
+ LastAvdpBlockNum
+ ));
+ DEBUG ((
+ DEBUG_WARN,
+ "%a: correcting last block from %Ld to %Ld\n",
+ __FUNCTION__,
+ EndLBA,
+ LastAvdpBlockNum
+ ));
//
// Save read AVDP from last block
//
@@ -253,7 +269,7 @@ FindAnchorVolumeDescriptorPointer (
// Set last recorded block number
//
*LastRecordedBlock = LastAvdpBlockNum;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
break;
}
}
@@ -280,49 +296,60 @@ FindUdfVolumeIdentifiers (
IN EFI_DISK_IO_PROTOCOL *DiskIo
)
{
- EFI_STATUS Status;
- UINT64 Offset;
- UINT64 EndDiskOffset;
- CDROM_VOLUME_DESCRIPTOR VolDescriptor;
- CDROM_VOLUME_DESCRIPTOR TerminatingVolDescriptor;
+ EFI_STATUS Status;
+ UINT64 Offset;
+ UINT64 EndDiskOffset;
+ CDROM_VOLUME_DESCRIPTOR VolDescriptor;
+ CDROM_VOLUME_DESCRIPTOR TerminatingVolDescriptor;
ZeroMem ((VOID *)&TerminatingVolDescriptor, sizeof (CDROM_VOLUME_DESCRIPTOR));
//
// Start Volume Recognition Sequence
//
- EndDiskOffset = MultU64x32 (BlockIo->Media->LastBlock,
- BlockIo->Media->BlockSize);
+ EndDiskOffset = MultU64x32 (
+ BlockIo->Media->LastBlock,
+ BlockIo->Media->BlockSize
+ );
for (Offset = UDF_VRS_START_OFFSET; Offset < EndDiskOffset;
- Offset += UDF_LOGICAL_SECTOR_SIZE) {
+ Offset += UDF_LOGICAL_SECTOR_SIZE)
+ {
//
// Check if block device has a Volume Structure Descriptor and an Extended
// Area.
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- Offset,
- sizeof (CDROM_VOLUME_DESCRIPTOR),
- (VOID *)&VolDescriptor
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ Offset,
+ sizeof (CDROM_VOLUME_DESCRIPTOR),
+ (VOID *)&VolDescriptor
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- if (CompareMem ((VOID *)VolDescriptor.Unknown.Id,
- (VOID *)UDF_BEA_IDENTIFIER,
- sizeof (VolDescriptor.Unknown.Id)) == 0) {
+ if (CompareMem (
+ (VOID *)VolDescriptor.Unknown.Id,
+ (VOID *)UDF_BEA_IDENTIFIER,
+ sizeof (VolDescriptor.Unknown.Id)
+ ) == 0)
+ {
break;
}
- if ((CompareMem ((VOID *)VolDescriptor.Unknown.Id,
- (VOID *)CDVOL_ID,
- sizeof (VolDescriptor.Unknown.Id)) != 0) ||
- (CompareMem ((VOID *)&VolDescriptor,
- (VOID *)&TerminatingVolDescriptor,
- sizeof (CDROM_VOLUME_DESCRIPTOR)) == 0)) {
+ if ((CompareMem (
+ (VOID *)VolDescriptor.Unknown.Id,
+ (VOID *)CDVOL_ID,
+ sizeof (VolDescriptor.Unknown.Id)
+ ) != 0) ||
+ (CompareMem (
+ (VOID *)&VolDescriptor,
+ (VOID *)&TerminatingVolDescriptor,
+ sizeof (CDROM_VOLUME_DESCRIPTOR)
+ ) == 0))
+ {
return EFI_NOT_FOUND;
}
}
@@ -336,22 +363,27 @@ FindUdfVolumeIdentifiers (
}
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- Offset,
- sizeof (CDROM_VOLUME_DESCRIPTOR),
- (VOID *)&VolDescriptor
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ Offset,
+ sizeof (CDROM_VOLUME_DESCRIPTOR),
+ (VOID *)&VolDescriptor
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- if ((CompareMem ((VOID *)VolDescriptor.Unknown.Id,
- (VOID *)UDF_NSR2_IDENTIFIER,
- sizeof (VolDescriptor.Unknown.Id)) != 0) &&
- (CompareMem ((VOID *)VolDescriptor.Unknown.Id,
- (VOID *)UDF_NSR3_IDENTIFIER,
- sizeof (VolDescriptor.Unknown.Id)) != 0)) {
+ if ((CompareMem (
+ (VOID *)VolDescriptor.Unknown.Id,
+ (VOID *)UDF_NSR2_IDENTIFIER,
+ sizeof (VolDescriptor.Unknown.Id)
+ ) != 0) &&
+ (CompareMem (
+ (VOID *)VolDescriptor.Unknown.Id,
+ (VOID *)UDF_NSR3_IDENTIFIER,
+ sizeof (VolDescriptor.Unknown.Id)
+ ) != 0))
+ {
return EFI_NOT_FOUND;
}
@@ -364,19 +396,22 @@ FindUdfVolumeIdentifiers (
}
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- Offset,
- sizeof (CDROM_VOLUME_DESCRIPTOR),
- (VOID *)&VolDescriptor
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ Offset,
+ sizeof (CDROM_VOLUME_DESCRIPTOR),
+ (VOID *)&VolDescriptor
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- if (CompareMem ((VOID *)VolDescriptor.Unknown.Id,
- (VOID *)UDF_TEA_IDENTIFIER,
- sizeof (VolDescriptor.Unknown.Id)) != 0) {
+ if (CompareMem (
+ (VOID *)VolDescriptor.Unknown.Id,
+ (VOID *)UDF_TEA_IDENTIFIER,
+ sizeof (VolDescriptor.Unknown.Id)
+ ) != 0)
+ {
return EFI_NOT_FOUND;
}
@@ -395,22 +430,22 @@ FindUdfVolumeIdentifiers (
**/
BOOLEAN
IsLogicalVolumeDescriptorSupported (
- UDF_LOGICAL_VOLUME_DESCRIPTOR *LogicalVolDesc
+ UDF_LOGICAL_VOLUME_DESCRIPTOR *LogicalVolDesc
)
{
//
// Check for a valid UDF revision range
//
switch (LogicalVolDesc->DomainIdentifier.Suffix.Domain.UdfRevision) {
- case 0x0102:
- case 0x0150:
- case 0x0200:
- case 0x0201:
- case 0x0250:
- case 0x0260:
- break;
- default:
- return FALSE;
+ case 0x0102:
+ case 0x0150:
+ case 0x0200:
+ case 0x0201:
+ case 0x0250:
+ case 0x0260:
+ break;
+ default:
+ return FALSE;
}
//
@@ -419,6 +454,7 @@ IsLogicalVolumeDescriptorSupported (
if (LogicalVolDesc->NumberOfPartitionMaps > 1) {
return FALSE;
}
+
//
// UDF 1.02 revision supports only Type 1 (Physical) partitions, but
// let's check it any way.
@@ -426,8 +462,9 @@ IsLogicalVolumeDescriptorSupported (
// PartitionMap[0] -> type
// PartitionMap[1] -> length (in bytes)
//
- if (LogicalVolDesc->PartitionMaps[0] != 1 ||
- LogicalVolDesc->PartitionMaps[1] != 6) {
+ if ((LogicalVolDesc->PartitionMaps[0] != 1) ||
+ (LogicalVolDesc->PartitionMaps[1] != 6))
+ {
return FALSE;
}
@@ -475,7 +512,7 @@ FindLogicalVolumeLocation (
UDF_DESCRIPTOR_TAG *DescriptorTag;
BlockSize = BlockIo->Media->BlockSize;
- ExtentAd = &AnchorPoint->MainVolumeDescriptorSequenceExtent;
+ ExtentAd = &AnchorPoint->MainVolumeDescriptorSequenceExtent;
//
// UDF 2.60, 2.2.3.1 struct MainVolumeDescriptorSequenceExtent
@@ -486,7 +523,7 @@ FindLogicalVolumeLocation (
// Also make sure it does not exceed maximum number of blocks in the disk.
//
SeqBlocksNum = DivU64x32 ((UINT64)ExtentAd->ExtentLength, BlockSize);
- if (SeqBlocksNum < 16 || (EFI_LBA)SeqBlocksNum > LastRecordedBlock + 1) {
+ if ((SeqBlocksNum < 16) || ((EFI_LBA)SeqBlocksNum > LastRecordedBlock + 1)) {
return EFI_VOLUME_CORRUPTED;
}
@@ -494,8 +531,9 @@ FindLogicalVolumeLocation (
// Check for valid Volume Descriptor Sequence starting block number
//
SeqStartBlock = (UINT64)ExtentAd->ExtentLocation;
- if (SeqStartBlock > LastRecordedBlock ||
- SeqStartBlock + SeqBlocksNum - 1 > LastRecordedBlock) {
+ if ((SeqStartBlock > LastRecordedBlock) ||
+ (SeqStartBlock + SeqBlocksNum - 1 > LastRecordedBlock))
+ {
return EFI_VOLUME_CORRUPTED;
}
@@ -509,24 +547,24 @@ FindLogicalVolumeLocation (
return EFI_OUT_OF_RESOURCES;
}
- SeqEndBlock = SeqStartBlock + SeqBlocksNum;
+ SeqEndBlock = SeqStartBlock + SeqBlocksNum;
StopSequence = FALSE;
- LvdsCount = 0;
- Status = EFI_VOLUME_CORRUPTED;
+ LvdsCount = 0;
+ Status = EFI_VOLUME_CORRUPTED;
//
// Start Main Volume Descriptor Sequence
//
- for (; SeqStartBlock < SeqEndBlock && !StopSequence; SeqStartBlock++) {
+ for ( ; SeqStartBlock < SeqEndBlock && !StopSequence; SeqStartBlock++) {
//
// Read disk block
//
Status = BlockIo->ReadBlocks (
- BlockIo,
- BlockIo->Media->MediaId,
- SeqStartBlock,
- BlockSize,
- Buffer
- );
+ BlockIo,
+ BlockIo->Media->MediaId,
+ SeqStartBlock,
+ BlockSize,
+ Buffer
+ );
if (EFI_ERROR (Status)) {
goto Out_Free;
}
@@ -548,50 +586,51 @@ FindLogicalVolumeLocation (
// Space Descriptors.
//
switch (DescriptorTag->TagIdentifier) {
- case UdfPrimaryVolumeDescriptor:
- case UdfImplemenationUseVolumeDescriptor:
- case UdfPartitionDescriptor:
- case UdfUnallocatedSpaceDescriptor:
- break;
-
- case UdfLogicalVolumeDescriptor:
- LogicalVolDesc = Buffer;
-
- //
- // Check for existence of a single LVD and whether it is supported by
- // current EDK2 UDF file system implementation.
- //
- if (++LvdsCount > 1 ||
- !IsLogicalVolumeDescriptorSupported (LogicalVolDesc)) {
- Status = EFI_UNSUPPORTED;
+ case UdfPrimaryVolumeDescriptor:
+ case UdfImplemenationUseVolumeDescriptor:
+ case UdfPartitionDescriptor:
+ case UdfUnallocatedSpaceDescriptor:
+ break;
+
+ case UdfLogicalVolumeDescriptor:
+ LogicalVolDesc = Buffer;
+
+ //
+ // Check for existence of a single LVD and whether it is supported by
+ // current EDK2 UDF file system implementation.
+ //
+ if ((++LvdsCount > 1) ||
+ !IsLogicalVolumeDescriptorSupported (LogicalVolDesc))
+ {
+ Status = EFI_UNSUPPORTED;
+ StopSequence = TRUE;
+ }
+
+ break;
+
+ case UdfTerminatingDescriptor:
+ //
+ // Stop the sequence when we find a Terminating Descriptor
+ // (aka Unallocated Sector), se we don't have to walk all the unallocated
+ // area unnecessarily.
+ //
StopSequence = TRUE;
- }
-
- break;
-
- case UdfTerminatingDescriptor:
- //
- // Stop the sequence when we find a Terminating Descriptor
- // (aka Unallocated Sector), se we don't have to walk all the unallocated
- // area unnecessarily.
- //
- StopSequence = TRUE;
- break;
-
- default:
- //
- // An invalid Volume Descriptor has been found in the sequece. Volume is
- // corrupted.
- //
- Status = EFI_VOLUME_CORRUPTED;
- goto Out_Free;
+ break;
+
+ default:
+ //
+ // An invalid Volume Descriptor has been found in the sequece. Volume is
+ // corrupted.
+ //
+ Status = EFI_VOLUME_CORRUPTED;
+ goto Out_Free;
}
}
//
// Check if LVD was found
//
- if (!EFI_ERROR (Status) && LvdsCount == 1) {
+ if (!EFI_ERROR (Status) && (LvdsCount == 1)) {
*MainVdsStartBlock = GuardMainVdsStartBlock;
//
// We do not need to read either LVD or PD descriptors to know the last
@@ -654,11 +693,11 @@ FindUdfFileSystem (
// Find Anchor Volume Descriptor Pointer
//
Status = FindAnchorVolumeDescriptorPointer (
- BlockIo,
- DiskIo,
- &AnchorPoint,
- &LastRecordedBlock
- );
+ BlockIo,
+ DiskIo,
+ &AnchorPoint,
+ &LastRecordedBlock
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -667,13 +706,13 @@ FindUdfFileSystem (
// Find Logical Volume location
//
Status = FindLogicalVolumeLocation (
- BlockIo,
- DiskIo,
- &AnchorPoint,
- LastRecordedBlock,
- (UINT64 *)StartingLBA,
- (UINT64 *)EndingLBA
- );
+ BlockIo,
+ DiskIo,
+ &AnchorPoint,
+ LastRecordedBlock,
+ (UINT64 *)StartingLBA,
+ (UINT64 *)EndingLBA
+ );
return Status;
}
@@ -714,7 +753,7 @@ PartitionInstallUdfChildHandles (
EFI_LBA EndingLBA;
BOOLEAN ChildCreated;
- Media = BlockIo->Media;
+ Media = BlockIo->Media;
ChildCreated = FALSE;
//
@@ -760,26 +799,26 @@ PartitionInstallUdfChildHandles (
//
ZeroMem (&PartitionInfo, sizeof (EFI_PARTITION_INFO_PROTOCOL));
PartitionInfo.Revision = EFI_PARTITION_INFO_PROTOCOL_REVISION;
- PartitionInfo.Type = PARTITION_TYPE_OTHER;
+ PartitionInfo.Type = PARTITION_TYPE_OTHER;
//
// Install partition child handle for UDF file system
//
Status = PartitionInstallChildHandle (
- This,
- Handle,
- DiskIo,
- DiskIo2,
- BlockIo,
- BlockIo2,
- DevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *)&gUdfDevicePath,
- &PartitionInfo,
- StartingLBA,
- EndingLBA,
- Media->BlockSize,
- NULL
- );
+ This,
+ Handle,
+ DiskIo,
+ DiskIo2,
+ BlockIo,
+ BlockIo2,
+ DevicePath,
+ (EFI_DEVICE_PATH_PROTOCOL *)&gUdfDevicePath,
+ &PartitionInfo,
+ StartingLBA,
+ EndingLBA,
+ Media->BlockSize,
+ NULL
+ );
if (EFI_ERROR (Status)) {
return (ChildCreated ? EFI_SUCCESS : Status);
}
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskBlockIo.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskBlockIo.c
index 13f81ba..4fbbb1f 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskBlockIo.c
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskBlockIo.c
@@ -14,7 +14,7 @@
//
EFI_BLOCK_IO_PROTOCOL mRamDiskBlockIoTemplate = {
EFI_BLOCK_IO_PROTOCOL_REVISION,
- (EFI_BLOCK_IO_MEDIA *) 0,
+ (EFI_BLOCK_IO_MEDIA *)0,
RamDiskBlkIoReset,
RamDiskBlkIoReadBlocks,
RamDiskBlkIoWriteBlocks,
@@ -26,14 +26,13 @@ EFI_BLOCK_IO_PROTOCOL mRamDiskBlockIoTemplate = {
// for newly registered RAM disks
//
EFI_BLOCK_IO2_PROTOCOL mRamDiskBlockIo2Template = {
- (EFI_BLOCK_IO_MEDIA *) 0,
+ (EFI_BLOCK_IO_MEDIA *)0,
RamDiskBlkIo2Reset,
RamDiskBlkIo2ReadBlocksEx,
RamDiskBlkIo2WriteBlocksEx,
RamDiskBlkIo2FlushBlocksEx
};
-
/**
Initialize the BlockIO & BlockIO2 protocol of a RAM disk device.
@@ -42,13 +41,13 @@ EFI_BLOCK_IO2_PROTOCOL mRamDiskBlockIo2Template = {
**/
VOID
RamDiskInitBlockIo (
- IN RAM_DISK_PRIVATE_DATA *PrivateData
+ IN RAM_DISK_PRIVATE_DATA *PrivateData
)
{
- EFI_BLOCK_IO_PROTOCOL *BlockIo;
- EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
- EFI_BLOCK_IO_MEDIA *Media;
- UINT32 Remainder;
+ EFI_BLOCK_IO_PROTOCOL *BlockIo;
+ EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
+ EFI_BLOCK_IO_MEDIA *Media;
+ UINT32 Remainder;
BlockIo = &PrivateData->BlockIo;
BlockIo2 = &PrivateData->BlockIo2;
@@ -67,18 +66,19 @@ RamDiskInitBlockIo (
for (Media->BlockSize = RAM_DISK_DEFAULT_BLOCK_SIZE;
Media->BlockSize >= 1;
- Media->BlockSize = Media->BlockSize >> 1) {
+ Media->BlockSize = Media->BlockSize >> 1)
+ {
Media->LastBlock = DivU64x32Remainder (PrivateData->Size, Media->BlockSize, &Remainder) - 1;
if (Remainder == 0) {
break;
}
}
+
ASSERT (Media->BlockSize != 0);
return;
}
-
/**
Reset the Block Device.
@@ -93,14 +93,13 @@ RamDiskInitBlockIo (
EFI_STATUS
EFIAPI
RamDiskBlkIoReset (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
return EFI_SUCCESS;
}
-
/**
Read BufferSize bytes from Lba into Buffer.
@@ -129,15 +128,15 @@ RamDiskBlkIoReset (
EFI_STATUS
EFIAPI
RamDiskBlkIoReadBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
)
{
- RAM_DISK_PRIVATE_DATA *PrivateData;
- UINTN NumberOfBlocks;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ UINTN NumberOfBlocks;
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO (This);
@@ -175,7 +174,6 @@ RamDiskBlkIoReadBlocks (
return EFI_SUCCESS;
}
-
/**
Write BufferSize bytes from Lba into Buffer.
@@ -204,15 +202,15 @@ RamDiskBlkIoReadBlocks (
EFI_STATUS
EFIAPI
RamDiskBlkIoWriteBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
- RAM_DISK_PRIVATE_DATA *PrivateData;
- UINTN NumberOfBlocks;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ UINTN NumberOfBlocks;
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO (This);
@@ -254,7 +252,6 @@ RamDiskBlkIoWriteBlocks (
return EFI_SUCCESS;
}
-
/**
Flush the Block Device.
@@ -269,13 +266,12 @@ RamDiskBlkIoWriteBlocks (
EFI_STATUS
EFIAPI
RamDiskBlkIoFlushBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This
+ IN EFI_BLOCK_IO_PROTOCOL *This
)
{
return EFI_SUCCESS;
}
-
/**
Resets the block device hardware.
@@ -290,14 +286,13 @@ RamDiskBlkIoFlushBlocks (
EFI_STATUS
EFIAPI
RamDiskBlkIo2Reset (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
return EFI_SUCCESS;
}
-
/**
Reads the requested number of blocks from the device.
@@ -334,26 +329,26 @@ RamDiskBlkIo2Reset (
EFI_STATUS
EFIAPI
RamDiskBlkIo2ReadBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
)
{
- RAM_DISK_PRIVATE_DATA *PrivateData;
- EFI_STATUS Status;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ EFI_STATUS Status;
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO2 (This);
Status = RamDiskBlkIoReadBlocks (
- &PrivateData->BlockIo,
- MediaId,
- Lba,
- BufferSize,
- Buffer
- );
+ &PrivateData->BlockIo,
+ MediaId,
+ Lba,
+ BufferSize,
+ Buffer
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -369,7 +364,6 @@ RamDiskBlkIo2ReadBlocksEx (
return EFI_SUCCESS;
}
-
/**
Writes a specified number of blocks to the device.
@@ -405,26 +399,26 @@ RamDiskBlkIo2ReadBlocksEx (
EFI_STATUS
EFIAPI
RamDiskBlkIo2WriteBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
- RAM_DISK_PRIVATE_DATA *PrivateData;
- EFI_STATUS Status;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ EFI_STATUS Status;
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO2 (This);
Status = RamDiskBlkIoWriteBlocks (
- &PrivateData->BlockIo,
- MediaId,
- Lba,
- BufferSize,
- Buffer
- );
+ &PrivateData->BlockIo,
+ MediaId,
+ Lba,
+ BufferSize,
+ Buffer
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -440,7 +434,6 @@ RamDiskBlkIo2WriteBlocksEx (
return EFI_SUCCESS;
}
-
/**
Flushes all modified data to a physical block device.
@@ -463,11 +456,11 @@ RamDiskBlkIo2WriteBlocksEx (
EFI_STATUS
EFIAPI
RamDiskBlkIo2FlushBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token
)
{
- RAM_DISK_PRIVATE_DATA *PrivateData;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO2 (This);
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c
index 1ecf8da..82184c1 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c
@@ -34,7 +34,6 @@ LIST_ENTRY RegisteredRamDisks;
EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol = NULL;
EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol = NULL;
-
/**
Check whether EFI_ACPI_TABLE_PROTOCOL and EFI_ACPI_SDT_PROTOCOL are produced.
If both protocols are produced, publish all the reserved memory type RAM
@@ -48,13 +47,13 @@ EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol = NULL;
VOID
EFIAPI
RamDiskAcpiCheck (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Entry;
- RAM_DISK_PRIVATE_DATA *PrivateData;
+ EFI_STATUS Status;
+ LIST_ENTRY *Entry;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
gBS->CloseEvent (Event);
@@ -99,7 +98,6 @@ RamDiskAcpiCheck (
}
}
-
/**
The entry point for RamDiskDxe driver.
@@ -116,14 +114,14 @@ RamDiskAcpiCheck (
EFI_STATUS
EFIAPI
RamDiskDxeEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
- VOID *DummyInterface;
- EFI_EVENT Event;
+ EFI_STATUS Status;
+ RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
+ VOID *DummyInterface;
+ EFI_EVENT Event;
//
// If already started, return.
@@ -194,7 +192,6 @@ ErrorExit:
return Status;
}
-
/**
Unload the RamDiskDxe driver and its configuration form.
@@ -208,16 +205,16 @@ ErrorExit:
EFI_STATUS
EFIAPI
RamDiskDxeUnload (
- IN EFI_HANDLE ImageHandle
+ IN EFI_HANDLE ImageHandle
)
{
- EFI_STATUS Status;
- RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
+ EFI_STATUS Status;
+ RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
Status = gBS->HandleProtocol (
mRamDiskHandle,
&gEfiCallerIdGuid,
- (VOID **) &ConfigPrivate
+ (VOID **)&ConfigPrivate
);
if (EFI_ERROR (Status)) {
return Status;
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskFileExplorer.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskFileExplorer.c
index 3a00038..0285ff5 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskFileExplorer.c
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskFileExplorer.c
@@ -8,7 +8,6 @@
#include "RamDiskImpl.h"
-
/**
Helper function called as part of the code needed to allocate the proper
sized buffer for various EFI interfaces.
@@ -24,12 +23,12 @@
**/
BOOLEAN
GrowBuffer (
- IN OUT EFI_STATUS *Status,
- IN OUT VOID **Buffer,
- IN UINTN BufferSize
+ IN OUT EFI_STATUS *Status,
+ IN OUT VOID **Buffer,
+ IN UINTN BufferSize
)
{
- BOOLEAN TryAgain;
+ BOOLEAN TryAgain;
//
// If this is an initial request, buffer will be null with a new buffer size
@@ -37,12 +36,12 @@ GrowBuffer (
if ((*Buffer == NULL) && (BufferSize != 0)) {
*Status = EFI_BUFFER_TOO_SMALL;
}
+
//
// If the status code is "buffer too small", resize the buffer
//
TryAgain = FALSE;
if (*Status == EFI_BUFFER_TOO_SMALL) {
-
if (*Buffer != NULL) {
FreePool (*Buffer);
}
@@ -55,6 +54,7 @@ GrowBuffer (
*Status = EFI_OUT_OF_RESOURCES;
}
}
+
//
// If there's an error, free the buffer
//
@@ -66,7 +66,6 @@ GrowBuffer (
return TryAgain;
}
-
/**
This function gets the file information from an open file descriptor,
and stores it in a buffer allocated from pool.
@@ -78,23 +77,23 @@ GrowBuffer (
**/
EFI_FILE_INFO *
FileInfo (
- IN EFI_FILE_HANDLE FHand
+ IN EFI_FILE_HANDLE FHand
)
{
- EFI_STATUS Status;
- EFI_FILE_INFO *Buffer;
- UINTN BufferSize;
+ EFI_STATUS Status;
+ EFI_FILE_INFO *Buffer;
+ UINTN BufferSize;
//
// Initialize for GrowBuffer loop
//
- Buffer = NULL;
- BufferSize = SIZE_OF_EFI_FILE_INFO + 200;
+ Buffer = NULL;
+ BufferSize = SIZE_OF_EFI_FILE_INFO + 200;
//
// Call the real function
//
- while (GrowBuffer (&Status, (VOID **) &Buffer, BufferSize)) {
+ while (GrowBuffer (&Status, (VOID **)&Buffer, BufferSize)) {
Status = FHand->GetInfo (
FHand,
&gEfiFileInfoGuid,
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.c
index e35b8fa..60cf3c8 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.c
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.c
@@ -12,7 +12,7 @@
CHAR16 mRamDiskStorageName[] = L"RAM_DISK_CONFIGURATION";
-RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate = {
+RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate = {
RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE,
{
EFI_PAGE_SIZE,
@@ -25,14 +25,14 @@ RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate = {
}
};
-HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
+HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
{
{
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
{
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
RAM_DISK_FORM_SET_GUID
@@ -41,13 +41,12 @@ HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
- (UINT8) (END_DEVICE_PATH_LENGTH),
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
+ (UINT8)(END_DEVICE_PATH_LENGTH),
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
};
-
/**
This function publish the RAM disk configuration Form.
@@ -61,7 +60,7 @@ HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
**/
EFI_STATUS
InstallRamDiskConfigForm (
- IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
+ IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
)
{
EFI_STATUS Status;
@@ -71,14 +70,14 @@ InstallRamDiskConfigForm (
DriverHandle = NULL;
ConfigAccess = &ConfigPrivateData->ConfigAccess;
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverHandle,
- &gEfiDevicePathProtocolGuid,
- &mRamDiskHiiVendorDevicePath,
- &gEfiHiiConfigAccessProtocolGuid,
- ConfigAccess,
- NULL
- );
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &DriverHandle,
+ &gEfiDevicePathProtocolGuid,
+ &mRamDiskHiiVendorDevicePath,
+ &gEfiHiiConfigAccessProtocolGuid,
+ ConfigAccess,
+ NULL
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -112,7 +111,6 @@ InstallRamDiskConfigForm (
return EFI_SUCCESS;
}
-
/**
This function removes RAM disk configuration Form.
@@ -122,7 +120,7 @@ InstallRamDiskConfigForm (
**/
VOID
UninstallRamDiskConfigForm (
- IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
+ IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
)
{
//
@@ -151,7 +149,6 @@ UninstallRamDiskConfigForm (
FreePool (ConfigPrivateData);
}
-
/**
Unregister all registered RAM disks.
@@ -161,11 +158,11 @@ UnregisterAllRamDisks (
VOID
)
{
- LIST_ENTRY *Entry;
- LIST_ENTRY *NextEntry;
- RAM_DISK_PRIVATE_DATA *PrivateData;
+ LIST_ENTRY *Entry;
+ LIST_ENTRY *NextEntry;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
- if (!IsListEmpty(&RegisteredRamDisks)) {
+ if (!IsListEmpty (&RegisteredRamDisks)) {
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
@@ -176,7 +173,7 @@ UnregisterAllRamDisks (
&gEfiBlockIo2ProtocolGuid,
&PrivateData->BlockIo2,
&gEfiDevicePathProtocolGuid,
- (EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath,
+ (EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath,
NULL
);
@@ -188,7 +185,7 @@ UnregisterAllRamDisks (
// driver is responsible for freeing the allocated memory for the
// RAM disk.
//
- FreePool ((VOID *)(UINTN) PrivateData->StartingAddr);
+ FreePool ((VOID *)(UINTN)PrivateData->StartingAddr);
}
FreePool (PrivateData->DevicePath);
@@ -197,7 +194,6 @@ UnregisterAllRamDisks (
}
}
-
/**
This function allows a caller to extract the current configuration for one
or more named elements from the target driver.
@@ -228,20 +224,20 @@ UnregisterAllRamDisks (
EFI_STATUS
EFIAPI
RamDiskExtractConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Request,
- OUT EFI_STRING *Progress,
- OUT EFI_STRING *Results
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Request,
+ OUT EFI_STRING *Progress,
+ OUT EFI_STRING *Results
)
{
- if (Progress == NULL || Results == NULL) {
+ if ((Progress == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
*Progress = Request;
return EFI_NOT_FOUND;
}
-
/**
This function processes the results of changes in configuration.
@@ -263,12 +259,12 @@ RamDiskExtractConfig (
EFI_STATUS
EFIAPI
RamDiskRouteConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ OUT EFI_STRING *Progress
)
{
- if (Configuration == NULL || Progress == NULL) {
+ if ((Configuration == NULL) || (Progress == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -277,7 +273,6 @@ RamDiskRouteConfig (
return EFI_NOT_FOUND;
}
-
/**
Allocate memory and register the RAM disk created within RamDiskDxe
driver HII.
@@ -295,18 +290,18 @@ RamDiskRouteConfig (
**/
EFI_STATUS
HiiCreateRamDisk (
- IN UINT64 Size,
- IN EFI_FILE_HANDLE FileHandle,
- IN UINT8 MemoryType
+ IN UINT64 Size,
+ IN EFI_FILE_HANDLE FileHandle,
+ IN UINT8 MemoryType
)
{
- EFI_STATUS Status;
- UINTN BufferSize;
- UINT64 *StartingAddr;
- EFI_INPUT_KEY Key;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- RAM_DISK_PRIVATE_DATA *PrivateData;
- EFI_FILE_INFO *FileInformation;
+ EFI_STATUS Status;
+ UINTN BufferSize;
+ UINT64 *StartingAddr;
+ EFI_INPUT_KEY Key;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ EFI_FILE_INFO *FileInformation;
FileInformation = NULL;
StartingAddr = NULL;
@@ -338,7 +333,7 @@ HiiCreateRamDisk (
Size = FileInformation->FileSize;
}
- if (Size > (UINTN) -1) {
+ if (Size > (UINTN)-1) {
do {
CreatePopUp (
EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
@@ -358,19 +353,19 @@ HiiCreateRamDisk (
Status = gBS->AllocatePool (
EfiBootServicesData,
(UINTN)Size,
- (VOID**)&StartingAddr
+ (VOID **)&StartingAddr
);
} else if (MemoryType == RAM_DISK_RESERVED_MEMORY) {
Status = gBS->AllocatePool (
EfiReservedMemoryType,
(UINTN)Size,
- (VOID**)&StartingAddr
+ (VOID **)&StartingAddr
);
} else {
Status = EFI_INVALID_PARAMETER;
}
- if ((StartingAddr == NULL) || EFI_ERROR(Status)) {
+ if ((StartingAddr == NULL) || EFI_ERROR (Status)) {
do {
CreatePopUp (
EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
@@ -390,11 +385,11 @@ HiiCreateRamDisk (
//
// Copy the file content to the RAM disk.
//
- BufferSize = (UINTN) Size;
+ BufferSize = (UINTN)Size;
FileHandle->Read (
FileHandle,
&BufferSize,
- (VOID *)(UINTN) StartingAddr
+ (VOID *)(UINTN)StartingAddr
);
if (BufferSize != FileInformation->FileSize) {
do {
@@ -417,7 +412,7 @@ HiiCreateRamDisk (
// Register the newly created RAM disk.
//
Status = RamDiskRegister (
- ((UINT64)(UINTN) StartingAddr),
+ ((UINT64)(UINTN)StartingAddr),
Size,
&gEfiVirtualDiskGuid,
NULL,
@@ -443,13 +438,12 @@ HiiCreateRamDisk (
// If RAM disk is created within HII, memory should be freed when the
// RAM disk is unregisterd.
//
- PrivateData = RAM_DISK_PRIVATE_FROM_THIS (RegisteredRamDisks.BackLink);
+ PrivateData = RAM_DISK_PRIVATE_FROM_THIS (RegisteredRamDisks.BackLink);
PrivateData->CreateMethod = RamDiskCreateHii;
return EFI_SUCCESS;
}
-
/**
This function updates the registered RAM disks list on the main form.
@@ -460,19 +454,19 @@ HiiCreateRamDisk (
**/
VOID
UpdateMainForm (
- IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate
+ IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate
)
{
- VOID *StartOpCodeHandle;
- VOID *EndOpCodeHandle;
- EFI_IFR_GUID_LABEL *StartLabel;
- EFI_IFR_GUID_LABEL *EndLabel;
- LIST_ENTRY *Entry;
- UINTN Index;
- RAM_DISK_PRIVATE_DATA *PrivateData;
- CHAR16 *String;
- CHAR16 RamDiskStr[128];
- EFI_STRING_ID StringId;
+ VOID *StartOpCodeHandle;
+ VOID *EndOpCodeHandle;
+ EFI_IFR_GUID_LABEL *StartLabel;
+ EFI_IFR_GUID_LABEL *EndLabel;
+ LIST_ENTRY *Entry;
+ UINTN Index;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ CHAR16 *String;
+ CHAR16 RamDiskStr[128];
+ EFI_STRING_ID StringId;
//
// Init OpCode Handle
@@ -486,32 +480,32 @@ UpdateMainForm (
//
// Create Hii Extend Label OpCode as the start opcode
//
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (
- StartOpCodeHandle,
- &gEfiIfrTianoGuid,
- NULL,
- sizeof (EFI_IFR_GUID_LABEL)
- );
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (
+ StartOpCodeHandle,
+ &gEfiIfrTianoGuid,
+ NULL,
+ sizeof (EFI_IFR_GUID_LABEL)
+ );
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
StartLabel->Number = MAIN_LABEL_LIST_START;
//
// Create Hii Extend Label OpCode as the end opcode
//
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (
- EndOpCodeHandle,
- &gEfiIfrTianoGuid,
- NULL,
- sizeof (EFI_IFR_GUID_LABEL)
- );
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (
+ EndOpCodeHandle,
+ &gEfiIfrTianoGuid,
+ NULL,
+ sizeof (EFI_IFR_GUID_LABEL)
+ );
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
EndLabel->Number = MAIN_LABEL_LIST_END;
Index = 0;
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
- PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
- PrivateData->CheckBoxId = (EFI_QUESTION_ID)
- (MAIN_CHECKBOX_QUESTION_ID_START + Index);
+ PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
+ PrivateData->CheckBoxId = (EFI_QUESTION_ID)
+ (MAIN_CHECKBOX_QUESTION_ID_START + Index);
//
// CheckBox is unchecked by default.
//
@@ -557,7 +551,6 @@ UpdateMainForm (
HiiFreeOpCodeHandle (EndOpCodeHandle);
}
-
/**
This function processes the results of changes in configuration.
@@ -583,21 +576,21 @@ UpdateMainForm (
EFI_STATUS
EFIAPI
RamDiskCallback (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN EFI_BROWSER_ACTION Action,
- IN EFI_QUESTION_ID QuestionId,
- IN UINT8 Type,
- IN EFI_IFR_TYPE_VALUE *Value,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN EFI_BROWSER_ACTION Action,
+ IN EFI_QUESTION_ID QuestionId,
+ IN UINT8 Type,
+ IN EFI_IFR_TYPE_VALUE *Value,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
{
- EFI_STATUS Status;
- RAM_DISK_PRIVATE_DATA *PrivateData;
- RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
- EFI_DEVICE_PATH_PROTOCOL *FileDevPath;
- EFI_FILE_HANDLE FileHandle;
- LIST_ENTRY *Entry;
- LIST_ENTRY *NextEntry;
+ EFI_STATUS Status;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
+ EFI_DEVICE_PATH_PROTOCOL *FileDevPath;
+ EFI_FILE_HANDLE FileHandle;
+ LIST_ENTRY *Entry;
+ LIST_ENTRY *NextEntry;
if ((This == NULL) || (Value == NULL) || (ActionRequest == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -608,20 +601,22 @@ RamDiskCallback (
if (Action == EFI_BROWSER_ACTION_RETRIEVE) {
Status = EFI_UNSUPPORTED;
if (QuestionId == CREATE_RAW_SIZE_QUESTION_ID) {
- Value->u64 = EFI_PAGE_SIZE;
+ Value->u64 = EFI_PAGE_SIZE;
ConfigPrivate->ConfigStore.Size = EFI_PAGE_SIZE;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
} else if (QuestionId == CREATE_RAW_MEMORY_TYPE_QUESTION_ID) {
- Value->u8 = RAM_DISK_BOOT_SERVICE_DATA_MEMORY;
+ Value->u8 = RAM_DISK_BOOT_SERVICE_DATA_MEMORY;
ConfigPrivate->ConfigStore.MemType = RAM_DISK_BOOT_SERVICE_DATA_MEMORY;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
}
+
return Status;
}
if ((Action != EFI_BROWSER_ACTION_CHANGED) &&
(Action != EFI_BROWSER_ACTION_CHANGING) &&
- (Action != EFI_BROWSER_ACTION_FORM_OPEN)) {
+ (Action != EFI_BROWSER_ACTION_FORM_OPEN))
+ {
return EFI_UNSUPPORTED;
}
@@ -634,6 +629,7 @@ RamDiskCallback (
UpdateMainForm (ConfigPrivate);
Status = EFI_SUCCESS;
}
+
return Status;
}
@@ -641,33 +637,85 @@ RamDiskCallback (
if (Action == EFI_BROWSER_ACTION_CHANGING) {
switch (QuestionId) {
- case MAIN_GOTO_FILE_EXPLORER_ID:
- Status = ChooseFile (NULL, NULL, NULL, &FileDevPath);
- if (EFI_ERROR (Status)) {
+ case MAIN_GOTO_FILE_EXPLORER_ID:
+ Status = ChooseFile (NULL, NULL, NULL, &FileDevPath);
+ if (EFI_ERROR (Status)) {
+ break;
+ }
+
+ if (FileDevPath != NULL) {
+ //
+ // Open the file.
+ //
+ Status = EfiOpenFileByDevicePath (
+ &FileDevPath,
+ &FileHandle,
+ EFI_FILE_MODE_READ,
+ 0
+ );
+ if (EFI_ERROR (Status)) {
+ break;
+ }
+
+ //
+ // Create from file, RAM disk size is zero. It will be updated
+ // according to the file size.
+ //
+ Status = HiiCreateRamDisk (
+ 0,
+ FileHandle,
+ ConfigPrivate->ConfigStore.MemType
+ );
+ if (EFI_ERROR (Status)) {
+ break;
+ }
+
+ //
+ // Refresh the registered RAM disks list.
+ //
+ UpdateMainForm (ConfigPrivate);
+ }
+
break;
- }
- if (FileDevPath != NULL) {
+ default:
+ break;
+ }
+ } else if (Action == EFI_BROWSER_ACTION_CHANGED) {
+ switch (QuestionId) {
+ case MAIN_REMOVE_RD_QUESTION_ID:
//
- // Open the file.
+ // Remove the selected RAM disks
//
- Status = EfiOpenFileByDevicePath (
- &FileDevPath,
- &FileHandle,
- EFI_FILE_MODE_READ,
- 0
- );
- if (EFI_ERROR (Status)) {
- break;
+ BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
+ PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
+ if (PrivateData->CheckBoxChecked) {
+ RamDiskUnregister (
+ (EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath
+ );
+ }
}
+ UpdateMainForm (ConfigPrivate);
+
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
+ break;
+
+ case CREATE_RAW_SIZE_QUESTION_ID:
+ ConfigPrivate->ConfigStore.Size = Value->u64;
+ break;
+
+ case CREATE_RAW_MEMORY_TYPE_QUESTION_ID:
+ ConfigPrivate->ConfigStore.MemType = Value->u8;
+ break;
+
+ case CREATE_RAW_SUBMIT_QUESTION_ID:
//
- // Create from file, RAM disk size is zero. It will be updated
- // according to the file size.
+ // Create raw, FileHandle is NULL.
//
Status = HiiCreateRamDisk (
- 0,
- FileHandle,
+ ConfigPrivate->ConfigStore.Size,
+ NULL,
ConfigPrivate->ConfigStore.MemType
);
if (EFI_ERROR (Status)) {
@@ -678,79 +726,30 @@ RamDiskCallback (
// Refresh the registered RAM disks list.
//
UpdateMainForm (ConfigPrivate);
- }
- break;
- default:
- break;
- }
- } else if (Action == EFI_BROWSER_ACTION_CHANGED) {
- switch (QuestionId) {
- case MAIN_REMOVE_RD_QUESTION_ID:
- //
- // Remove the selected RAM disks
- //
- BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
- PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
- if (PrivateData->CheckBoxChecked) {
- RamDiskUnregister (
- (EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath
- );
- }
- }
-
- UpdateMainForm (ConfigPrivate);
-
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
- break;
-
- case CREATE_RAW_SIZE_QUESTION_ID:
- ConfigPrivate->ConfigStore.Size = Value->u64;
- break;
-
- case CREATE_RAW_MEMORY_TYPE_QUESTION_ID:
- ConfigPrivate->ConfigStore.MemType = Value->u8;
- break;
-
- case CREATE_RAW_SUBMIT_QUESTION_ID:
- //
- // Create raw, FileHandle is NULL.
- //
- Status = HiiCreateRamDisk (
- ConfigPrivate->ConfigStore.Size,
- NULL,
- ConfigPrivate->ConfigStore.MemType
- );
- if (EFI_ERROR (Status)) {
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
break;
- }
-
- //
- // Refresh the registered RAM disks list.
- //
- UpdateMainForm (ConfigPrivate);
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
- break;
-
- case CREATE_RAW_DISCARD_QUESTION_ID:
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
- break;
+ case CREATE_RAW_DISCARD_QUESTION_ID:
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
+ break;
- default:
- //
- // QuestionIds for checkboxes
- //
- if ((QuestionId >= MAIN_CHECKBOX_QUESTION_ID_START) &&
- (QuestionId < CREATE_RAW_RAM_DISK_FORM_ID)) {
- BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
- PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
- if (PrivateData->CheckBoxId == QuestionId) {
- PrivateData->CheckBoxChecked = (BOOLEAN) (Value->u8 != 0);
+ default:
+ //
+ // QuestionIds for checkboxes
+ //
+ if ((QuestionId >= MAIN_CHECKBOX_QUESTION_ID_START) &&
+ (QuestionId < CREATE_RAW_RAM_DISK_FORM_ID))
+ {
+ BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
+ PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
+ if (PrivateData->CheckBoxId == QuestionId) {
+ PrivateData->CheckBoxChecked = (BOOLEAN)(Value->u8 != 0);
+ }
}
}
- }
- break;
+
+ break;
}
}
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.h b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.h
index ed80b47..e194951 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.h
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskImpl.h
@@ -46,24 +46,24 @@
//
// Default block size for RAM disk
//
-#define RAM_DISK_DEFAULT_BLOCK_SIZE 512
+#define RAM_DISK_DEFAULT_BLOCK_SIZE 512
//
// RamDiskDxe driver maintains a list of registered RAM disks.
//
-extern LIST_ENTRY RegisteredRamDisks;
+extern LIST_ENTRY RegisteredRamDisks;
//
// Pointers to the EFI_ACPI_TABLE_PROTOCOL and EFI_ACPI_SDT_PROTOCOL.
//
-extern EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
-extern EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol;
+extern EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
+extern EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol;
//
// RAM Disk create method.
//
typedef enum _RAM_DISK_CREATE_METHOD {
- RamDiskCreateOthers = 0,
+ RamDiskCreateOthers = 0,
RamDiskCreateHii
} RAM_DISK_CREATE_METHOD;
@@ -73,31 +73,31 @@ typedef enum _RAM_DISK_CREATE_METHOD {
// disk
//
typedef struct {
- UINTN Signature;
+ UINTN Signature;
- EFI_HANDLE Handle;
+ EFI_HANDLE Handle;
- EFI_BLOCK_IO_PROTOCOL BlockIo;
- EFI_BLOCK_IO2_PROTOCOL BlockIo2;
- EFI_BLOCK_IO_MEDIA Media;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_BLOCK_IO_PROTOCOL BlockIo;
+ EFI_BLOCK_IO2_PROTOCOL BlockIo2;
+ EFI_BLOCK_IO_MEDIA Media;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- UINT64 StartingAddr;
- UINT64 Size;
- EFI_GUID TypeGuid;
- UINT16 InstanceNumber;
- RAM_DISK_CREATE_METHOD CreateMethod;
- BOOLEAN InNfit;
- EFI_QUESTION_ID CheckBoxId;
- BOOLEAN CheckBoxChecked;
+ UINT64 StartingAddr;
+ UINT64 Size;
+ EFI_GUID TypeGuid;
+ UINT16 InstanceNumber;
+ RAM_DISK_CREATE_METHOD CreateMethod;
+ BOOLEAN InNfit;
+ EFI_QUESTION_ID CheckBoxId;
+ BOOLEAN CheckBoxChecked;
- LIST_ENTRY ThisInstance;
+ LIST_ENTRY ThisInstance;
} RAM_DISK_PRIVATE_DATA;
-#define RAM_DISK_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'D', 'S', 'K')
-#define RAM_DISK_PRIVATE_FROM_BLKIO(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo, RAM_DISK_PRIVATE_DATA_SIGNATURE)
-#define RAM_DISK_PRIVATE_FROM_BLKIO2(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo2, RAM_DISK_PRIVATE_DATA_SIGNATURE)
-#define RAM_DISK_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_PRIVATE_DATA, ThisInstance, RAM_DISK_PRIVATE_DATA_SIGNATURE)
+#define RAM_DISK_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'D', 'S', 'K')
+#define RAM_DISK_PRIVATE_FROM_BLKIO(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo, RAM_DISK_PRIVATE_DATA_SIGNATURE)
+#define RAM_DISK_PRIVATE_FROM_BLKIO2(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo2, RAM_DISK_PRIVATE_DATA_SIGNATURE)
+#define RAM_DISK_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_PRIVATE_DATA, ThisInstance, RAM_DISK_PRIVATE_DATA_SIGNATURE)
///
/// RAM disk HII-related definitions and declarations
@@ -106,28 +106,28 @@ typedef struct {
//
// Tool generated IFR binary data and String package data
//
-extern UINT8 RamDiskHiiBin[];
-extern UINT8 RamDiskDxeStrings[];
+extern UINT8 RamDiskHiiBin[];
+extern UINT8 RamDiskDxeStrings[];
typedef struct {
- VENDOR_DEVICE_PATH VendorDevicePath;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH VendorDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL End;
} HII_VENDOR_DEVICE_PATH;
typedef struct {
- UINTN Signature;
+ UINTN Signature;
- RAM_DISK_CONFIGURATION ConfigStore;
+ RAM_DISK_CONFIGURATION ConfigStore;
- EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
- EFI_HANDLE DriverHandle;
- EFI_HII_HANDLE HiiHandle;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
+ EFI_HANDLE DriverHandle;
+ EFI_HII_HANDLE HiiHandle;
} RAM_DISK_CONFIG_PRIVATE_DATA;
-extern RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate;
+extern RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate;
-#define RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'C', 'F', 'G')
-#define RAM_DISK_CONFIG_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_CONFIG_PRIVATE_DATA, ConfigAccess, RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE)
+#define RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'C', 'F', 'G')
+#define RAM_DISK_CONFIG_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_CONFIG_PRIVATE_DATA, ConfigAccess, RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE)
/**
Register a RAM disk with specified address, size and type.
@@ -162,11 +162,11 @@ extern RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate;
EFI_STATUS
EFIAPI
RamDiskRegister (
- IN UINT64 RamDiskBase,
- IN UINT64 RamDiskSize,
- IN EFI_GUID *RamDiskType,
- IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
- OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
+ IN UINT64 RamDiskBase,
+ IN UINT64 RamDiskSize,
+ IN EFI_GUID *RamDiskType,
+ IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
+ OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
);
/**
@@ -187,7 +187,7 @@ RamDiskRegister (
EFI_STATUS
EFIAPI
RamDiskUnregister (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
/**
@@ -198,7 +198,7 @@ RamDiskUnregister (
**/
VOID
RamDiskInitBlockIo (
- IN RAM_DISK_PRIVATE_DATA *PrivateData
+ IN RAM_DISK_PRIVATE_DATA *PrivateData
);
/**
@@ -216,8 +216,8 @@ RamDiskInitBlockIo (
EFI_STATUS
EFIAPI
RamDiskBlkIoReset (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
/**
@@ -248,11 +248,11 @@ RamDiskBlkIoReset (
EFI_STATUS
EFIAPI
RamDiskBlkIoReadBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
);
/**
@@ -283,11 +283,11 @@ RamDiskBlkIoReadBlocks (
EFI_STATUS
EFIAPI
RamDiskBlkIoWriteBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
/**
@@ -304,7 +304,7 @@ RamDiskBlkIoWriteBlocks (
EFI_STATUS
EFIAPI
RamDiskBlkIoFlushBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This
+ IN EFI_BLOCK_IO_PROTOCOL *This
);
/**
@@ -321,8 +321,8 @@ RamDiskBlkIoFlushBlocks (
EFI_STATUS
EFIAPI
RamDiskBlkIo2Reset (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
/**
@@ -361,12 +361,12 @@ RamDiskBlkIo2Reset (
EFI_STATUS
EFIAPI
RamDiskBlkIo2ReadBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
);
/**
@@ -404,12 +404,12 @@ RamDiskBlkIo2ReadBlocksEx (
EFI_STATUS
EFIAPI
RamDiskBlkIo2WriteBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
/**
@@ -434,8 +434,8 @@ RamDiskBlkIo2WriteBlocksEx (
EFI_STATUS
EFIAPI
RamDiskBlkIo2FlushBlocksEx (
- IN EFI_BLOCK_IO2_PROTOCOL *This,
- IN OUT EFI_BLOCK_IO2_TOKEN *Token
+ IN EFI_BLOCK_IO2_PROTOCOL *This,
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token
);
/**
@@ -451,7 +451,7 @@ RamDiskBlkIo2FlushBlocksEx (
**/
EFI_STATUS
InstallRamDiskConfigForm (
- IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
+ IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
);
/**
@@ -463,7 +463,7 @@ InstallRamDiskConfigForm (
**/
VOID
UninstallRamDiskConfigForm (
- IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
+ IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
);
/**
@@ -505,10 +505,10 @@ UnregisterAllRamDisks (
EFI_STATUS
EFIAPI
RamDiskExtractConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Request,
- OUT EFI_STRING *Progress,
- OUT EFI_STRING *Results
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Request,
+ OUT EFI_STRING *Progress,
+ OUT EFI_STRING *Results
);
/**
@@ -532,9 +532,9 @@ RamDiskExtractConfig (
EFI_STATUS
EFIAPI
RamDiskRouteConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ OUT EFI_STRING *Progress
);
/**
@@ -562,15 +562,14 @@ RamDiskRouteConfig (
EFI_STATUS
EFIAPI
RamDiskCallback (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN EFI_BROWSER_ACTION Action,
- IN EFI_QUESTION_ID QuestionId,
- IN UINT8 Type,
- IN EFI_IFR_TYPE_VALUE *Value,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN EFI_BROWSER_ACTION Action,
+ IN EFI_QUESTION_ID QuestionId,
+ IN UINT8 Type,
+ IN EFI_IFR_TYPE_VALUE *Value,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
);
-
/**
This function gets the file information from an open file descriptor,
and stores it in a buffer allocated from pool.
@@ -582,10 +581,9 @@ RamDiskCallback (
**/
EFI_FILE_INFO *
FileInfo (
- IN EFI_FILE_HANDLE FHand
+ IN EFI_FILE_HANDLE FHand
);
-
/**
Publish the RAM disk NVDIMM Firmware Interface Table (NFIT) to the ACPI
table.
@@ -598,7 +596,7 @@ FileInfo (
**/
EFI_STATUS
RamDiskPublishNfit (
- IN RAM_DISK_PRIVATE_DATA *PrivateData
+ IN RAM_DISK_PRIVATE_DATA *PrivateData
);
#endif
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskNVData.h b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskNVData.h
index 3293ec1..71935f0 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskNVData.h
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskNVData.h
@@ -13,12 +13,12 @@
#include <Guid/HiiPlatformSetupFormset.h>
#include <Guid/RamDiskHii.h>
-#define MAIN_FORM_ID 0x1000
-#define MAIN_GOTO_FILE_EXPLORER_ID 0x1001
-#define MAIN_REMOVE_RD_QUESTION_ID 0x1002
-#define MAIN_LABEL_LIST_START 0x1003
-#define MAIN_LABEL_LIST_END 0x1004
-#define MAIN_CHECKBOX_QUESTION_ID_START 0x1100
+#define MAIN_FORM_ID 0x1000
+#define MAIN_GOTO_FILE_EXPLORER_ID 0x1001
+#define MAIN_REMOVE_RD_QUESTION_ID 0x1002
+#define MAIN_LABEL_LIST_START 0x1003
+#define MAIN_LABEL_LIST_END 0x1004
+#define MAIN_CHECKBOX_QUESTION_ID_START 0x1100
#define CREATE_RAW_RAM_DISK_FORM_ID 0x2000
#define CREATE_RAW_SIZE_QUESTION_ID 0x2001
@@ -26,19 +26,19 @@
#define CREATE_RAW_DISCARD_QUESTION_ID 0x2003
#define CREATE_RAW_MEMORY_TYPE_QUESTION_ID 0x2004
-#define RAM_DISK_BOOT_SERVICE_DATA_MEMORY 0x00
-#define RAM_DISK_RESERVED_MEMORY 0x01
-#define RAM_DISK_MEMORY_TYPE_MAX 0x02
+#define RAM_DISK_BOOT_SERVICE_DATA_MEMORY 0x00
+#define RAM_DISK_RESERVED_MEMORY 0x01
+#define RAM_DISK_MEMORY_TYPE_MAX 0x02
typedef struct {
//
// The size of the RAM disk to be created.
//
- UINT64 Size;
+ UINT64 Size;
//
// Selected RAM Disk Memory Type
//
- UINT8 MemType;
+ UINT8 MemType;
} RAM_DISK_CONFIGURATION;
#endif
diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c
index 329de17..780cf0a 100644
--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c
+++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c
@@ -10,7 +10,7 @@
#include "RamDiskImpl.h"
-RAM_DISK_PRIVATE_DATA mRamDiskPrivateDataTemplate = {
+RAM_DISK_PRIVATE_DATA mRamDiskPrivateDataTemplate = {
RAM_DISK_PRIVATE_DATA_SIGNATURE,
NULL
};
@@ -20,8 +20,8 @@ MEDIA_RAM_DISK_DEVICE_PATH mRamDiskDeviceNodeTemplate = {
MEDIA_DEVICE_PATH,
MEDIA_RAM_DISK_DP,
{
- (UINT8) (sizeof (MEDIA_RAM_DISK_DEVICE_PATH)),
- (UINT8) ((sizeof (MEDIA_RAM_DISK_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (MEDIA_RAM_DISK_DEVICE_PATH)),
+ (UINT8)((sizeof (MEDIA_RAM_DISK_DEVICE_PATH)) >> 8)
}
}
};
@@ -29,7 +29,6 @@ MEDIA_RAM_DISK_DEVICE_PATH mRamDiskDeviceNodeTemplate = {
BOOLEAN mRamDiskSsdtTableKeyValid = FALSE;
UINTN mRamDiskSsdtTableKey;
-
/**
Initialize the RAM disk device node.
@@ -39,23 +38,22 @@ UINTN mRamDiskSsdtTableKey;
**/
VOID
RamDiskInitDeviceNode (
- IN RAM_DISK_PRIVATE_DATA *PrivateData,
- IN OUT MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode
+ IN RAM_DISK_PRIVATE_DATA *PrivateData,
+ IN OUT MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode
)
{
WriteUnaligned64 (
- (UINT64 *) &(RamDiskDevNode->StartingAddr[0]),
- (UINT64) PrivateData->StartingAddr
+ (UINT64 *)&(RamDiskDevNode->StartingAddr[0]),
+ (UINT64)PrivateData->StartingAddr
);
WriteUnaligned64 (
- (UINT64 *) &(RamDiskDevNode->EndingAddr[0]),
- (UINT64) PrivateData->StartingAddr + PrivateData->Size - 1
+ (UINT64 *)&(RamDiskDevNode->EndingAddr[0]),
+ (UINT64)PrivateData->StartingAddr + PrivateData->Size - 1
);
CopyGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid);
RamDiskDevNode->Instance = PrivateData->InstanceNumber;
}
-
/**
Initialize and publish NVDIMM root device SSDT in ACPI table.
@@ -68,10 +66,10 @@ RamDiskPublishSsdt (
VOID
)
{
- EFI_STATUS Status;
- EFI_ACPI_DESCRIPTION_HEADER *Table;
- UINTN SectionInstance;
- UINTN TableSize;
+ EFI_STATUS Status;
+ EFI_ACPI_DESCRIPTION_HEADER *Table;
+ UINTN SectionInstance;
+ UINTN TableSize;
Status = EFI_SUCCESS;
SectionInstance = 0;
@@ -85,7 +83,7 @@ RamDiskPublishSsdt (
&gEfiCallerIdGuid,
EFI_SECTION_RAW,
SectionInstance,
- (VOID **) &Table,
+ (VOID **)&Table,
&TableSize
);
if (EFI_ERROR (Status)) {
@@ -116,7 +114,6 @@ RamDiskPublishSsdt (
return Status;
}
-
/**
Publish the RAM disk NVDIMM Firmware Interface Table (NFIT) to the ACPI
table.
@@ -129,29 +126,29 @@ RamDiskPublishSsdt (
**/
EFI_STATUS
RamDiskPublishNfit (
- IN RAM_DISK_PRIVATE_DATA *PrivateData
+ IN RAM_DISK_PRIVATE_DATA *PrivateData
)
{
- EFI_STATUS Status;
- EFI_MEMORY_DESCRIPTOR *MemoryMap;
- EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;
- EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;
- UINTN TableIndex;
- VOID *TableHeader;
- EFI_ACPI_TABLE_VERSION TableVersion;
- UINTN TableKey;
- EFI_ACPI_DESCRIPTION_HEADER *NfitHeader;
+ EFI_STATUS Status;
+ EFI_MEMORY_DESCRIPTOR *MemoryMap;
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;
+ UINTN TableIndex;
+ VOID *TableHeader;
+ EFI_ACPI_TABLE_VERSION TableVersion;
+ UINTN TableKey;
+ EFI_ACPI_DESCRIPTION_HEADER *NfitHeader;
EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE
- *SpaRange;
- VOID *Nfit;
- UINT32 NfitLen;
- UINTN MemoryMapSize;
- UINTN MapKey;
- UINTN DescriptorSize;
- UINT32 DescriptorVersion;
- UINT64 CurrentData;
- UINT8 Checksum;
- BOOLEAN MemoryFound;
+ *SpaRange;
+ VOID *Nfit;
+ UINT32 NfitLen;
+ UINTN MemoryMapSize;
+ UINTN MapKey;
+ UINTN DescriptorSize;
+ UINT32 DescriptorVersion;
+ UINT64 CurrentData;
+ UINT8 Checksum;
+ BOOLEAN MemoryFound;
//
// Get the EFI memory map.
@@ -169,7 +166,7 @@ RamDiskPublishNfit (
);
ASSERT (Status == EFI_BUFFER_TOO_SMALL);
do {
- MemoryMap = (EFI_MEMORY_DESCRIPTOR *) AllocatePool (MemoryMapSize);
+ MemoryMap = (EFI_MEMORY_DESCRIPTOR *)AllocatePool (MemoryMapSize);
ASSERT (MemoryMap != NULL);
Status = gBS->GetMemoryMap (
&MemoryMapSize,
@@ -182,16 +179,18 @@ RamDiskPublishNfit (
FreePool (MemoryMap);
}
} while (Status == EFI_BUFFER_TOO_SMALL);
+
ASSERT_EFI_ERROR (Status);
MemoryMapEntry = MemoryMap;
- MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + MemoryMapSize);
- while ((UINTN) MemoryMapEntry < (UINTN) MemoryMapEnd) {
+ MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + MemoryMapSize);
+ while ((UINTN)MemoryMapEntry < (UINTN)MemoryMapEnd) {
if ((MemoryMapEntry->Type == EfiReservedMemoryType) &&
(MemoryMapEntry->PhysicalStart <= PrivateData->StartingAddr) &&
(MemoryMapEntry->PhysicalStart +
MultU64x32 (MemoryMapEntry->NumberOfPages, EFI_PAGE_SIZE)
- >= PrivateData->StartingAddr + PrivateData->Size)) {
+ >= PrivateData->StartingAddr + PrivateData->Size))
+ {
MemoryFound = TRUE;
DEBUG ((
DEBUG_INFO,
@@ -199,8 +198,10 @@ RamDiskPublishNfit (
));
break;
}
+
MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);
}
+
FreePool (MemoryMap);
if (!MemoryFound) {
@@ -226,7 +227,8 @@ RamDiskPublishNfit (
TableIndex++;
if (((EFI_ACPI_SDT_HEADER *)TableHeader)->Signature ==
- EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE) {
+ EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE)
+ {
break;
}
}
@@ -247,6 +249,7 @@ RamDiskPublishNfit (
if (Nfit == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (Nfit, TableHeader, NfitHeader->Length);
//
@@ -272,13 +275,13 @@ RamDiskPublishNfit (
// Append the System Physical Address (SPA) Range Structure at the end
// of the origin NFIT.
//
- SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)
- ((UINT8 *)Nfit + NfitHeader->Length);
+ SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)
+ ((UINT8 *)Nfit + NfitHeader->Length);
//
// Update the length field of the NFIT
//
- NfitHeader->Length = NfitLen;
+ NfitHeader->Length = NfitLen;
//
// The checksum will be updated after the new contents are appended.
@@ -306,7 +309,7 @@ RamDiskPublishNfit (
NfitLen = sizeof (EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE) +
sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
- Nfit = AllocateZeroPool (NfitLen);
+ Nfit = AllocateZeroPool (NfitLen);
if (Nfit == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -330,13 +333,13 @@ RamDiskPublishNfit (
//
// Fill in the content of the SPA Range Structure.
//
- SpaRange->Type = EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE;
- SpaRange->Length = sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
+ SpaRange->Type = EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE;
+ SpaRange->Length = sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
SpaRange->SystemPhysicalAddressRangeBase = PrivateData->StartingAddr;
SpaRange->SystemPhysicalAddressRangeLength = PrivateData->Size;
CopyGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid);
- Checksum = CalculateCheckSum8((UINT8 *)Nfit, NfitHeader->Length);
+ Checksum = CalculateCheckSum8 ((UINT8 *)Nfit, NfitHeader->Length);
NfitHeader->Checksum = Checksum;
//
@@ -363,7 +366,6 @@ RamDiskPublishNfit (
return EFI_SUCCESS;
}
-
/**
Unpublish the RAM disk NVDIMM Firmware Interface Table (NFIT) from the
ACPI table.
@@ -376,23 +378,23 @@ RamDiskPublishNfit (
**/
EFI_STATUS
RamDiskUnpublishNfit (
- IN RAM_DISK_PRIVATE_DATA *PrivateData
+ IN RAM_DISK_PRIVATE_DATA *PrivateData
)
{
- EFI_STATUS Status;
- UINTN TableIndex;
- VOID *TableHeader;
- EFI_ACPI_TABLE_VERSION TableVersion;
- UINTN TableKey;
- EFI_ACPI_DESCRIPTION_HEADER *NewNfitHeader;
+ EFI_STATUS Status;
+ UINTN TableIndex;
+ VOID *TableHeader;
+ EFI_ACPI_TABLE_VERSION TableVersion;
+ UINTN TableKey;
+ EFI_ACPI_DESCRIPTION_HEADER *NewNfitHeader;
EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE
- *SpaRange;
- VOID *NewNfit;
- VOID *NewNfitPtr;
- EFI_ACPI_6_1_NFIT_STRUCTURE_HEADER *NfitStructHeader;
- UINT32 NewNfitLen;
- UINT32 RemainLen;
- UINT8 Checksum;
+ *SpaRange;
+ VOID *NewNfit;
+ VOID *NewNfitPtr;
+ EFI_ACPI_6_1_NFIT_STRUCTURE_HEADER *NfitStructHeader;
+ UINT32 NewNfitLen;
+ UINT32 RemainLen;
+ UINT8 Checksum;
//
// Find the NFIT in the ACPI table.
@@ -413,7 +415,8 @@ RamDiskUnpublishNfit (
TableIndex++;
if (((EFI_ACPI_SDT_HEADER *)TableHeader)->Signature ==
- EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE) {
+ EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE)
+ {
break;
}
}
@@ -426,8 +429,8 @@ RamDiskUnpublishNfit (
return EFI_NOT_FOUND;
}
- NewNfitLen = ((EFI_ACPI_DESCRIPTION_HEADER *)TableHeader)->Length -
- sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
+ NewNfitLen = ((EFI_ACPI_DESCRIPTION_HEADER *)TableHeader)->Length -
+ sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
//
// After removing this RAM disk from the NFIT, if no other structure is in
@@ -488,12 +491,14 @@ RamDiskUnpublishNfit (
((UINT8 *)TableHeader + sizeof (EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE));
while (RemainLen > 0) {
if ((NfitStructHeader->Type == EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE) &&
- (NfitStructHeader->Length == sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE))) {
+ (NfitStructHeader->Length == sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE)))
+ {
SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)NfitStructHeader;
if ((SpaRange->SystemPhysicalAddressRangeBase == PrivateData->StartingAddr) &&
(SpaRange->SystemPhysicalAddressRangeLength == PrivateData->Size) &&
- (CompareGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid))) {
+ (CompareGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid)))
+ {
//
// Skip the SPA Range Structure for the RAM disk to be unpublished
// from NFIT.
@@ -518,7 +523,7 @@ RamDiskUnpublishNfit (
((UINT8 *)NfitStructHeader + NfitStructHeader->Length);
}
- Checksum = CalculateCheckSum8((UINT8 *)NewNfit, NewNfitHeader->Length);
+ Checksum = CalculateCheckSum8 ((UINT8 *)NewNfit, NewNfitHeader->Length);
NewNfitHeader->Checksum = Checksum;
Status = mAcpiTableProtocol->UninstallAcpiTable (
@@ -553,7 +558,6 @@ RamDiskUnpublishNfit (
return EFI_SUCCESS;
}
-
/**
Register a RAM disk with specified address, size and type.
@@ -587,19 +591,19 @@ RamDiskUnpublishNfit (
EFI_STATUS
EFIAPI
RamDiskRegister (
- IN UINT64 RamDiskBase,
- IN UINT64 RamDiskSize,
- IN EFI_GUID *RamDiskType,
- IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
- OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
+ IN UINT64 RamDiskBase,
+ IN UINT64 RamDiskSize,
+ IN EFI_GUID *RamDiskType,
+ IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
+ OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
)
{
- EFI_STATUS Status;
- RAM_DISK_PRIVATE_DATA *PrivateData;
- RAM_DISK_PRIVATE_DATA *RegisteredPrivateData;
- MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
- UINTN DevicePathSize;
- LIST_ENTRY *Entry;
+ EFI_STATUS Status;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
+ RAM_DISK_PRIVATE_DATA *RegisteredPrivateData;
+ MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
+ UINTN DevicePathSize;
+ LIST_ENTRY *Entry;
if ((0 == RamDiskSize) || (NULL == RamDiskType) || (NULL == DevicePath)) {
return EFI_INVALID_PARAMETER;
@@ -609,7 +613,8 @@ RamDiskRegister (
// Add check to prevent data read across the memory boundary
//
if ((RamDiskSize > MAX_UINTN) ||
- (RamDiskBase > MAX_UINTN - RamDiskSize + 1)) {
+ (RamDiskBase > MAX_UINTN - RamDiskSize + 1))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -647,7 +652,7 @@ RamDiskRegister (
*DevicePath = AppendDevicePathNode (
ParentDevicePath,
- (EFI_DEVICE_PATH_PROTOCOL *) RamDiskDevNode
+ (EFI_DEVICE_PATH_PROTOCOL *)RamDiskDevNode
);
if (NULL == *DevicePath) {
Status = EFI_OUT_OF_RESOURCES;
@@ -660,7 +665,7 @@ RamDiskRegister (
// Check whether the created device path is already present in the handle
// database
//
- if (!IsListEmpty(&RegisteredRamDisks)) {
+ if (!IsListEmpty (&RegisteredRamDisks)) {
DevicePathSize = GetDevicePathSize (PrivateData->DevicePath);
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
@@ -672,7 +677,9 @@ RamDiskRegister (
if ((CompareMem (
PrivateData->DevicePath,
RegisteredPrivateData->DevicePath,
- DevicePathSize)) == 0) {
+ DevicePathSize
+ )) == 0)
+ {
*DevicePath = NULL;
Status = EFI_ALREADY_STARTED;
goto ErrorExit;
@@ -735,7 +742,6 @@ ErrorExit:
return Status;
}
-
/**
Unregister a RAM disk specified by DevicePath.
@@ -754,17 +760,17 @@ ErrorExit:
EFI_STATUS
EFIAPI
RamDiskUnregister (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
- LIST_ENTRY *Entry;
- LIST_ENTRY *NextEntry;
- BOOLEAN Found;
- UINT64 StartingAddr;
- UINT64 EndingAddr;
- EFI_DEVICE_PATH_PROTOCOL *Header;
- MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
- RAM_DISK_PRIVATE_DATA *PrivateData;
+ LIST_ENTRY *Entry;
+ LIST_ENTRY *NextEntry;
+ BOOLEAN Found;
+ UINT64 StartingAddr;
+ UINT64 EndingAddr;
+ EFI_DEVICE_PATH_PROTOCOL *Header;
+ MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
+ RAM_DISK_PRIVATE_DATA *PrivateData;
if (NULL == DevicePath) {
return EFI_INVALID_PARAMETER;
@@ -780,8 +786,9 @@ RamDiskUnregister (
// Test if the current device node is a RAM disk.
//
if ((MEDIA_DEVICE_PATH == Header->Type) &&
- (MEDIA_RAM_DISK_DP == Header->SubType)) {
- RamDiskDevNode = (MEDIA_RAM_DISK_DEVICE_PATH *) Header;
+ (MEDIA_RAM_DISK_DP == Header->SubType))
+ {
+ RamDiskDevNode = (MEDIA_RAM_DISK_DEVICE_PATH *)Header;
break;
}
@@ -793,11 +800,11 @@ RamDiskUnregister (
return EFI_UNSUPPORTED;
}
- Found = FALSE;
- StartingAddr = ReadUnaligned64 ((UINT64 *) &(RamDiskDevNode->StartingAddr[0]));
- EndingAddr = ReadUnaligned64 ((UINT64 *) &(RamDiskDevNode->EndingAddr[0]));
+ Found = FALSE;
+ StartingAddr = ReadUnaligned64 ((UINT64 *)&(RamDiskDevNode->StartingAddr[0]));
+ EndingAddr = ReadUnaligned64 ((UINT64 *)&(RamDiskDevNode->EndingAddr[0]));
- if (!IsListEmpty(&RegisteredRamDisks)) {
+ if (!IsListEmpty (&RegisteredRamDisks)) {
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
@@ -807,7 +814,8 @@ RamDiskUnregister (
//
if ((StartingAddr == PrivateData->StartingAddr) &&
(EndingAddr == PrivateData->StartingAddr + PrivateData->Size - 1) &&
- (CompareGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid))) {
+ (CompareGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid)))
+ {
//
// Remove the content for this RAM disk in NFIT.
//
@@ -825,7 +833,7 @@ RamDiskUnregister (
&gEfiBlockIo2ProtocolGuid,
&PrivateData->BlockIo2,
&gEfiDevicePathProtocolGuid,
- (EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath,
+ (EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath,
NULL
);
@@ -837,7 +845,7 @@ RamDiskUnregister (
// driver is responsible for freeing the allocated memory for the
// RAM disk.
//
- FreePool ((VOID *)(UINTN) PrivateData->StartingAddr);
+ FreePool ((VOID *)(UINTN)PrivateData->StartingAddr);
}
FreePool (PrivateData->DevicePath);
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c b/MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c
index abbd4f7..89d3eaf 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/ComponentName.c
@@ -20,9 +20,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gUdfComponentName = {
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gUdfComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) UdfComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) UdfComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gUdfComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)UdfComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)UdfComponentNameGetControllerName,
"en"
};
@@ -30,7 +30,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gUdfComponentName2 =
// Driver name table for Udf module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mUdfDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mUdfDriverNameTable[] = {
{
"eng;en",
L"UDF File System Driver"
@@ -89,12 +89,12 @@ UdfComponentNameGetDriverName (
)
{
return LookupUnicodeString2 (
- Language,
- This->SupportedLanguages,
- mUdfDriverNameTable,
- DriverName,
- (BOOLEAN)(This == &gUdfComponentName)
- );
+ Language,
+ This->SupportedLanguages,
+ mUdfDriverNameTable,
+ DriverName,
+ (BOOLEAN)(This == &gUdfComponentName)
+ );
}
/**
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/File.c b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
index 4ad7bb9..6cd1970 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/File.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/File.c
@@ -9,7 +9,7 @@
#include "Udf.h"
-EFI_FILE_PROTOCOL gUdfFileIoOps = {
+EFI_FILE_PROTOCOL gUdfFileIoOps = {
EFI_FILE_PROTOCOL_REVISION,
UdfOpen,
UdfClose,
@@ -27,10 +27,10 @@ EFI_FILE_PROTOCOL gUdfFileIoOps = {
NULL
};
-#define _ROOT_FILE(_PrivData) (_PrivData)->Root
+#define _ROOT_FILE(_PrivData) (_PrivData)->Root
#define _PARENT_FILE(_PrivData) \
((_PrivData)->IsRootDirectory ? (_PrivData)->Root : &(_PrivData)->File)
-#define _FILE(_PrivData) _PARENT_FILE(_PrivData)
+#define _FILE(_PrivData) _PARENT_FILE(_PrivData)
/**
Open the root directory on a volume.
@@ -62,7 +62,7 @@ UdfOpenVolume (
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
- if (This == NULL || Root == NULL) {
+ if ((This == NULL) || (Root == NULL)) {
Status = EFI_INVALID_PARAMETER;
goto Error_Invalid_Params;
}
@@ -75,10 +75,10 @@ UdfOpenVolume (
// cleaned up on the last UdfClose() call.
//
Status = ReadUdfVolumeInformation (
- PrivFsData->BlockIo,
- PrivFsData->DiskIo,
- &PrivFsData->Volume
- );
+ PrivFsData->BlockIo,
+ PrivFsData->DiskIo,
+ &PrivFsData->Volume
+ );
if (EFI_ERROR (Status)) {
goto Error_Read_Udf_Volume;
}
@@ -90,29 +90,32 @@ UdfOpenVolume (
// Find root directory file.
//
Status = FindRootDirectory (
- PrivFsData->BlockIo,
- PrivFsData->DiskIo,
- &PrivFsData->Volume,
- &PrivFsData->Root
- );
+ PrivFsData->BlockIo,
+ PrivFsData->DiskIo,
+ &PrivFsData->Volume,
+ &PrivFsData->Root
+ );
if (EFI_ERROR (Status)) {
goto Error_Find_Root_Dir;
}
PrivFileData =
- (PRIVATE_UDF_FILE_DATA *) AllocateZeroPool (sizeof (PRIVATE_UDF_FILE_DATA));
+ (PRIVATE_UDF_FILE_DATA *)AllocateZeroPool (sizeof (PRIVATE_UDF_FILE_DATA));
if (PrivFileData == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error_Alloc_Priv_File_Data;
}
- PrivFileData->Signature = PRIVATE_UDF_FILE_DATA_SIGNATURE;
- PrivFileData->SimpleFs = This;
- PrivFileData->Root = &PrivFsData->Root;
- PrivFileData->IsRootDirectory = TRUE;
+ PrivFileData->Signature = PRIVATE_UDF_FILE_DATA_SIGNATURE;
+ PrivFileData->SimpleFs = This;
+ PrivFileData->Root = &PrivFsData->Root;
+ PrivFileData->IsRootDirectory = TRUE;
- CopyMem ((VOID *)&PrivFileData->FileIo, (VOID *)&gUdfFileIoOps,
- sizeof (EFI_FILE_PROTOCOL));
+ CopyMem (
+ (VOID *)&PrivFileData->FileIo,
+ (VOID *)&gUdfFileIoOps,
+ sizeof (EFI_FILE_PROTOCOL)
+ );
*Root = &PrivFileData->FileIo;
@@ -178,7 +181,7 @@ UdfOpen (
ZeroMem (FilePath, sizeof FilePath);
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
- if (This == NULL || NewHandle == NULL || FileName == NULL) {
+ if ((This == NULL) || (NewHandle == NULL) || (FileName == NULL)) {
Status = EFI_INVALID_PARAMETER;
goto Error_Invalid_Params;
}
@@ -210,15 +213,15 @@ UdfOpen (
}
Status = FindFile (
- PrivFsData->BlockIo,
- PrivFsData->DiskIo,
- &PrivFsData->Volume,
- FilePath,
- _ROOT_FILE (PrivFileData),
- _PARENT_FILE (PrivFileData),
- &_PARENT_FILE(PrivFileData)->FileIdentifierDesc->Icb,
- &File
- );
+ PrivFsData->BlockIo,
+ PrivFsData->DiskIo,
+ &PrivFsData->Volume,
+ FilePath,
+ _ROOT_FILE (PrivFileData),
+ _PARENT_FILE (PrivFileData),
+ &_PARENT_FILE (PrivFileData)->FileIdentifierDesc->Icb,
+ &File
+ );
if (EFI_ERROR (Status)) {
goto Error_Find_File;
}
@@ -230,8 +233,11 @@ UdfOpen (
goto Error_Alloc_New_Priv_File_Data;
}
- CopyMem ((VOID *)NewPrivFileData, (VOID *)PrivFileData,
- sizeof (PRIVATE_UDF_FILE_DATA));
+ CopyMem (
+ (VOID *)NewPrivFileData,
+ (VOID *)PrivFileData,
+ sizeof (PRIVATE_UDF_FILE_DATA)
+ );
CopyMem ((VOID *)&NewPrivFileData->File, &File, sizeof (UDF_FILE_INFO));
NewPrivFileData->IsRootDirectory = FALSE;
@@ -246,24 +252,27 @@ UdfOpen (
StrCpyS (NewPrivFileData->FileName, UDF_FILENAME_LENGTH, FileName);
Status = GetFileSize (
- PrivFsData->BlockIo,
- PrivFsData->DiskIo,
- &PrivFsData->Volume,
- &NewPrivFileData->File,
- &NewPrivFileData->FileSize
- );
+ PrivFsData->BlockIo,
+ PrivFsData->DiskIo,
+ &PrivFsData->Volume,
+ &NewPrivFileData->File,
+ &NewPrivFileData->FileSize
+ );
if (EFI_ERROR (Status)) {
DEBUG ((
DEBUG_ERROR,
"%a: GetFileSize() fails with status - %r.\n",
- __FUNCTION__, Status
+ __FUNCTION__,
+ Status
));
goto Error_Get_File_Size;
}
NewPrivFileData->FilePosition = 0;
- ZeroMem ((VOID *)&NewPrivFileData->ReadDirInfo,
- sizeof (UDF_READ_DIRECTORY_INFO));
+ ZeroMem (
+ (VOID *)&NewPrivFileData->ReadDirInfo,
+ sizeof (UDF_READ_DIRECTORY_INFO)
+ );
*NewHandle = &NewPrivFileData->FileIo;
@@ -330,21 +339,22 @@ UdfRead (
ZeroMem (FileName, sizeof FileName);
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
- if (This == NULL || BufferSize == NULL || (*BufferSize != 0 &&
- Buffer == NULL)) {
+ if ((This == NULL) || (BufferSize == NULL) || ((*BufferSize != 0) &&
+ (Buffer == NULL)))
+ {
Status = EFI_INVALID_PARAMETER;
goto Error_Invalid_Params;
}
PrivFileData = PRIVATE_UDF_FILE_DATA_FROM_THIS (This);
- PrivFsData = PRIVATE_UDF_SIMPLE_FS_DATA_FROM_THIS (PrivFileData->SimpleFs);
+ PrivFsData = PRIVATE_UDF_SIMPLE_FS_DATA_FROM_THIS (PrivFileData->SimpleFs);
- BlockIo = PrivFsData->BlockIo;
- DiskIo = PrivFsData->DiskIo;
- Volume = &PrivFsData->Volume;
- ReadDirInfo = &PrivFileData->ReadDirInfo;
- NewFileIdentifierDesc = NULL;
- NewFileEntryData = NULL;
+ BlockIo = PrivFsData->BlockIo;
+ DiskIo = PrivFsData->DiskIo;
+ Volume = &PrivFsData->Volume;
+ ReadDirInfo = &PrivFileData->ReadDirInfo;
+ NewFileIdentifierDesc = NULL;
+ NewFileEntryData = NULL;
Parent = _PARENT_FILE (PrivFileData);
@@ -361,52 +371,53 @@ UdfRead (
if (PrivFileData->FilePosition == PrivFileData->FileSize) {
*BufferSize = 0;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
BufferSizeUint64 = *BufferSize;
Status = ReadFileData (
- BlockIo,
- DiskIo,
- Volume,
- Parent,
- PrivFileData->FileSize,
- &PrivFileData->FilePosition,
- Buffer,
- &BufferSizeUint64
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ Parent,
+ PrivFileData->FileSize,
+ &PrivFileData->FilePosition,
+ Buffer,
+ &BufferSizeUint64
+ );
ASSERT (BufferSizeUint64 <= MAX_UINTN);
*BufferSize = (UINTN)BufferSizeUint64;
} else if (IS_FID_DIRECTORY_FILE (Parent->FileIdentifierDesc)) {
- if (ReadDirInfo->FidOffset == 0 && PrivFileData->FilePosition > 0) {
- Status = EFI_DEVICE_ERROR;
+ if ((ReadDirInfo->FidOffset == 0) && (PrivFileData->FilePosition > 0)) {
+ Status = EFI_DEVICE_ERROR;
*BufferSize = 0;
goto Done;
}
- for (;;) {
+ for ( ; ;) {
Status = ReadDirectoryEntry (
- BlockIo,
- DiskIo,
- Volume,
- &Parent->FileIdentifierDesc->Icb,
- Parent->FileEntry,
- ReadDirInfo,
- &NewFileIdentifierDesc
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &Parent->FileIdentifierDesc->Icb,
+ Parent->FileEntry,
+ ReadDirInfo,
+ &NewFileIdentifierDesc
+ );
if (EFI_ERROR (Status)) {
if (Status == EFI_DEVICE_ERROR) {
FreePool (ReadDirInfo->DirectoryData);
ZeroMem ((VOID *)ReadDirInfo, sizeof (UDF_READ_DIRECTORY_INFO));
*BufferSize = 0;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
}
goto Done;
}
+
//
// After calling function ReadDirectoryEntry(), if 'NewFileIdentifierDesc'
// is NULL, then the 'Status' must be EFI_OUT_OF_RESOURCES. Hence, if the
@@ -425,26 +436,27 @@ UdfRead (
}
Status = FindFileEntry (
- BlockIo,
- DiskIo,
- Volume,
- &NewFileIdentifierDesc->Icb,
- &NewFileEntryData
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &NewFileIdentifierDesc->Icb,
+ &NewFileEntryData
+ );
if (EFI_ERROR (Status)) {
goto Error_Find_Fe;
}
+
ASSERT (NewFileEntryData != NULL);
if (FE_ICB_FILE_TYPE (NewFileEntryData) == UdfFileEntrySymlink) {
Status = ResolveSymlink (
- BlockIo,
- DiskIo,
- Volume,
- Parent,
- NewFileEntryData,
- &FoundFile
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ Parent,
+ NewFileEntryData,
+ &FoundFile
+ );
if (EFI_ERROR (Status)) {
goto Error_Resolve_Symlink;
}
@@ -461,8 +473,8 @@ UdfRead (
FreePool ((VOID *)NewFileIdentifierDesc);
NewFileIdentifierDesc = FoundFile.FileIdentifierDesc;
} else {
- FoundFile.FileIdentifierDesc = NewFileIdentifierDesc;
- FoundFile.FileEntry = NewFileEntryData;
+ FoundFile.FileIdentifierDesc = NewFileIdentifierDesc;
+ FoundFile.FileEntry = NewFileEntryData;
Status = GetFileNameFromFid (FoundFile.FileIdentifierDesc, ARRAY_SIZE (FileName), FileName);
if (EFI_ERROR (Status)) {
@@ -471,23 +483,23 @@ UdfRead (
}
Status = GetFileSize (
- BlockIo,
- DiskIo,
- Volume,
- &FoundFile,
- &FileSize
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &FoundFile,
+ &FileSize
+ );
if (EFI_ERROR (Status)) {
goto Error_Get_File_Size;
}
Status = SetFileInfo (
- &FoundFile,
- FileSize,
- FileName,
- BufferSize,
- Buffer
- );
+ &FoundFile,
+ FileSize,
+ FileName,
+ BufferSize,
+ Buffer
+ );
if (EFI_ERROR (Status)) {
goto Error_Set_File_Info;
}
@@ -534,12 +546,12 @@ Error_Invalid_Params:
EFI_STATUS
EFIAPI
UdfClose (
- IN EFI_FILE_PROTOCOL *This
+ IN EFI_FILE_PROTOCOL *This
)
{
- EFI_TPL OldTpl;
- EFI_STATUS Status;
- PRIVATE_UDF_FILE_DATA *PrivFileData;
+ EFI_TPL OldTpl;
+ EFI_STATUS Status;
+ PRIVATE_UDF_FILE_DATA *PrivFileData;
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
@@ -584,7 +596,7 @@ UdfDelete (
IN EFI_FILE_PROTOCOL *This
)
{
- PRIVATE_UDF_FILE_DATA *PrivFileData;
+ PRIVATE_UDF_FILE_DATA *PrivFileData;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
@@ -592,7 +604,7 @@ UdfDelete (
PrivFileData = PRIVATE_UDF_FILE_DATA_FROM_THIS (This);
- (VOID)PrivFileData->FileIo.Close(This);
+ (VOID)PrivFileData->FileIo.Close (This);
return EFI_WARN_DELETE_FAILURE;
}
@@ -644,9 +656,9 @@ UdfGetPosition (
OUT UINT64 *Position
)
{
- PRIVATE_UDF_FILE_DATA *PrivFileData;
+ PRIVATE_UDF_FILE_DATA *PrivFileData;
- if (This == NULL || Position == NULL) {
+ if ((This == NULL) || (Position == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -657,7 +669,7 @@ UdfGetPosition (
// position has no meaning and the operation is not supported.
//
if (IS_FID_DIRECTORY_FILE (PrivFileData->File.FileIdentifierDesc)) {
- return EFI_UNSUPPORTED;
+ return EFI_UNSUPPORTED;
}
//
@@ -706,9 +718,9 @@ UdfSetPosition (
// entries over.
//
if (Position == 0) {
- PrivFileData->FilePosition = Position;
+ PrivFileData->FilePosition = Position;
PrivFileData->ReadDirInfo.FidOffset = 0;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
}
} else if (IS_FID_NORMAL_FILE (FileIdentifierDesc)) {
//
@@ -767,8 +779,9 @@ UdfGetInfo (
UINTN FileSystemVolumeLabelLength;
CHAR16 VolumeLabel[64];
- if (This == NULL || InformationType == NULL || BufferSize == NULL ||
- (*BufferSize != 0 && Buffer == NULL)) {
+ if ((This == NULL) || (InformationType == NULL) || (BufferSize == NULL) ||
+ ((*BufferSize != 0) && (Buffer == NULL)))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -780,12 +793,12 @@ UdfGetInfo (
if (CompareGuid (InformationType, &gEfiFileInfoGuid)) {
Status = SetFileInfo (
- _FILE (PrivFileData),
- PrivFileData->FileSize,
- PrivFileData->FileName,
- BufferSize,
- Buffer
- );
+ _FILE (PrivFileData),
+ PrivFileData->FileSize,
+ PrivFileData->FileName,
+ BufferSize,
+ Buffer
+ );
} else if (CompareGuid (InformationType, &gEfiFileSystemInfoGuid)) {
Status = GetVolumeLabel (&PrivFsData->Volume, ARRAY_SIZE (VolumeLabel), VolumeLabel);
if (EFI_ERROR (Status)) {
@@ -806,25 +819,25 @@ UdfGetInfo (
VolumeLabel
);
Status = GetVolumeSize (
- PrivFsData->BlockIo,
- PrivFsData->DiskIo,
- &PrivFsData->Volume,
- &VolumeSize,
- &FreeSpaceSize
- );
+ PrivFsData->BlockIo,
+ PrivFsData->DiskIo,
+ &PrivFsData->Volume,
+ &VolumeSize,
+ &FreeSpaceSize
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- FileSystemInfo->Size = FileSystemInfoLength;
- FileSystemInfo->ReadOnly = TRUE;
- FileSystemInfo->BlockSize =
+ FileSystemInfo->Size = FileSystemInfoLength;
+ FileSystemInfo->ReadOnly = TRUE;
+ FileSystemInfo->BlockSize =
PrivFsData->Volume.LogicalVolDesc.LogicalBlockSize;
- FileSystemInfo->VolumeSize = VolumeSize;
- FileSystemInfo->FreeSpace = FreeSpaceSize;
+ FileSystemInfo->VolumeSize = VolumeSize;
+ FileSystemInfo->FreeSpace = FreeSpaceSize;
*BufferSize = FileSystemInfoLength;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
} else if (CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid)) {
Status = GetVolumeLabel (&PrivFsData->Volume, ARRAY_SIZE (VolumeLabel), VolumeLabel);
if (EFI_ERROR (Status)) {
@@ -897,7 +910,7 @@ UdfSetInfo (
EFI_STATUS
EFIAPI
UdfFlush (
- IN EFI_FILE_PROTOCOL *This
+ IN EFI_FILE_PROTOCOL *This
)
{
return EFI_WRITE_PROTECTED;
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/FileName.c b/MdeModulePkg/Universal/Disk/UdfDxe/FileName.c
index ee236cc..6db34a9 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/FileName.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/FileName.c
@@ -18,13 +18,12 @@
**/
CHAR16 *
TrimString (
- IN CHAR16 *String
+ IN CHAR16 *String
)
{
- CHAR16 *TempString;
+ CHAR16 *TempString;
for ( ; *String != L'\0' && *String == L' '; String++) {
- ;
}
TempString = String + StrLen (String) - 1;
@@ -47,11 +46,11 @@ TrimString (
**/
VOID
ReplaceLeft (
- IN CHAR16 *Destination,
- IN CONST CHAR16 *Source
+ IN CHAR16 *Destination,
+ IN CONST CHAR16 *Source
)
{
- CONST CHAR16 *EndString;
+ CONST CHAR16 *EndString;
EndString = Source + StrLen (Source);
while (Source <= EndString) {
@@ -70,18 +69,18 @@ ReplaceLeft (
**/
CHAR16 *
ExcludeTrailingBackslashes (
- IN CHAR16 *String
+ IN CHAR16 *String
)
{
- CHAR16 *TempString;
+ CHAR16 *TempString;
switch (*(String + 1)) {
- case L'\\':
- break;
- case L'\0':
- default:
- String++;
- goto Exit;
+ case L'\\':
+ break;
+ case L'\0':
+ default:
+ String++;
+ goto Exit;
}
TempString = String;
@@ -109,14 +108,14 @@ Exit:
**/
CHAR16 *
MangleFileName (
- IN CHAR16 *FileName
+ IN CHAR16 *FileName
)
{
- CHAR16 *FileNameSavedPointer;
- CHAR16 *TempFileName;
- UINTN BackslashesNo;
+ CHAR16 *FileNameSavedPointer;
+ CHAR16 *TempFileName;
+ UINTN BackslashesNo;
- if (FileName == NULL || *FileName == L'\0') {
+ if ((FileName == NULL) || (*FileName == L'\0')) {
FileName = NULL;
goto Exit;
}
@@ -149,55 +148,56 @@ MangleFileName (
FileName = ExcludeTrailingBackslashes (FileName);
} else if (*FileName == L'.') {
switch (*(FileName + 1)) {
- case L'\0':
- *FileName = L'\0';
- break;
- case L'\\':
- TempFileName = FileName + 1;
- TempFileName = ExcludeTrailingBackslashes (TempFileName);
- ReplaceLeft (FileName, TempFileName);
- break;
- case '.':
- if ((*(FileName - 1) != L'\\') && ((*(FileName + 2) != L'\\') ||
- (*(FileName + 2) != L'\0'))) {
- FileName++;
- continue;
- }
-
- BackslashesNo = 0;
- TempFileName = FileName - 1;
- while (TempFileName >= FileNameSavedPointer) {
- if (*TempFileName == L'\\') {
- if (++BackslashesNo == 2) {
- break;
- }
+ case L'\0':
+ *FileName = L'\0';
+ break;
+ case L'\\':
+ TempFileName = FileName + 1;
+ TempFileName = ExcludeTrailingBackslashes (TempFileName);
+ ReplaceLeft (FileName, TempFileName);
+ break;
+ case '.':
+ if ((*(FileName - 1) != L'\\') && ((*(FileName + 2) != L'\\') ||
+ (*(FileName + 2) != L'\0')))
+ {
+ FileName++;
+ continue;
}
- TempFileName--;
- }
+ BackslashesNo = 0;
+ TempFileName = FileName - 1;
+ while (TempFileName >= FileNameSavedPointer) {
+ if (*TempFileName == L'\\') {
+ if (++BackslashesNo == 2) {
+ break;
+ }
+ }
- TempFileName++;
+ TempFileName--;
+ }
- if ((*TempFileName == L'.') && (*(TempFileName + 1) == L'.')) {
- FileName += 2;
- } else {
- if (*(FileName + 2) != L'\0') {
- ReplaceLeft (TempFileName, FileName + 3);
- if (*(TempFileName - 1) == L'\\') {
- FileName = TempFileName;
- ExcludeTrailingBackslashes (TempFileName - 1);
- TempFileName = FileName;
- }
+ TempFileName++;
+
+ if ((*TempFileName == L'.') && (*(TempFileName + 1) == L'.')) {
+ FileName += 2;
} else {
- *TempFileName = L'\0';
- }
+ if (*(FileName + 2) != L'\0') {
+ ReplaceLeft (TempFileName, FileName + 3);
+ if (*(TempFileName - 1) == L'\\') {
+ FileName = TempFileName;
+ ExcludeTrailingBackslashes (TempFileName - 1);
+ TempFileName = FileName;
+ }
+ } else {
+ *TempFileName = L'\0';
+ }
- FileName = TempFileName;
- }
+ FileName = TempFileName;
+ }
- break;
- default:
- FileName++;
+ break;
+ default:
+ FileName++;
}
} else {
FileName++;
@@ -205,8 +205,8 @@ MangleFileName (
}
FileName = FileNameSavedPointer;
- if ((StrLen (FileName) > 1) && (FileName [StrLen (FileName) - 1] == L'\\')) {
- FileName [StrLen (FileName) - 1] = L'\0';
+ if ((StrLen (FileName) > 1) && (FileName[StrLen (FileName) - 1] == L'\\')) {
+ FileName[StrLen (FileName) - 1] = L'\0';
}
Exit:
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
index e9e55cb..2998c33 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/FileSystemOperations.c
@@ -12,7 +12,7 @@
//
// Vendor-Defined Device Path GUID for UDF file system
//
-EFI_GUID gUdfDevPathGuid = EFI_UDF_DEVICE_PATH_GUID;
+EFI_GUID gUdfDevPathGuid = EFI_UDF_DEVICE_PATH_GUID;
/**
Find the anchor volume descriptor pointer.
@@ -40,8 +40,8 @@ FindAnchorVolumeDescriptorPointer (
UINTN Index;
UDF_DESCRIPTOR_TAG *DescriptorTag;
- BlockSize = BlockIo->Media->BlockSize;
- EndLBA = BlockIo->Media->LastBlock;
+ BlockSize = BlockIo->Media->BlockSize;
+ EndLBA = BlockIo->Media->LastBlock;
DescriptorLBAs[0] = 256;
DescriptorLBAs[1] = EndLBA - 256;
DescriptorLBAs[2] = EndLBA;
@@ -49,12 +49,12 @@ FindAnchorVolumeDescriptorPointer (
for (Index = 0; Index < ARRAY_SIZE (DescriptorLBAs); Index++) {
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (DescriptorLBAs[Index], BlockSize),
- sizeof (UDF_ANCHOR_VOLUME_DESCRIPTOR_POINTER),
- (VOID *)AnchorPoint
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (DescriptorLBAs[Index], BlockSize),
+ sizeof (UDF_ANCHOR_VOLUME_DESCRIPTOR_POINTER),
+ (VOID *)AnchorPoint
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -68,6 +68,7 @@ FindAnchorVolumeDescriptorPointer (
return EFI_SUCCESS;
}
}
+
//
// No AVDP found.
//
@@ -98,18 +99,18 @@ StartMainVolumeDescriptorSequence (
OUT UDF_VOLUME_INFO *Volume
)
{
- EFI_STATUS Status;
- UINT32 BlockSize;
- UDF_EXTENT_AD *ExtentAd;
- EFI_LBA SeqStartBlock;
- EFI_LBA SeqEndBlock;
- BOOLEAN StopSequence;
- VOID *Buffer;
- UDF_DESCRIPTOR_TAG *DescriptorTag;
- UINT32 LogicalBlockSize;
+ EFI_STATUS Status;
+ UINT32 BlockSize;
+ UDF_EXTENT_AD *ExtentAd;
+ EFI_LBA SeqStartBlock;
+ EFI_LBA SeqEndBlock;
+ BOOLEAN StopSequence;
+ VOID *Buffer;
+ UDF_DESCRIPTOR_TAG *DescriptorTag;
+ UINT32 LogicalBlockSize;
BlockSize = BlockIo->Media->BlockSize;
- ExtentAd = &AnchorPoint->MainVolumeDescriptorSequenceExtent;
+ ExtentAd = &AnchorPoint->MainVolumeDescriptorSequenceExtent;
//
// Allocate buffer for reading disk blocks
@@ -128,20 +129,22 @@ StartMainVolumeDescriptorSequence (
// Partition driver already did.
//
SeqStartBlock = 0;
- SeqEndBlock = SeqStartBlock + DivU64x32 ((UINT64)ExtentAd->ExtentLength,
- BlockSize);
+ SeqEndBlock = SeqStartBlock + DivU64x32 (
+ (UINT64)ExtentAd->ExtentLength,
+ BlockSize
+ );
StopSequence = FALSE;
- for (; SeqStartBlock < SeqEndBlock && !StopSequence; SeqStartBlock++) {
+ for ( ; SeqStartBlock < SeqEndBlock && !StopSequence; SeqStartBlock++) {
//
// Read disk block
//
Status = BlockIo->ReadBlocks (
- BlockIo,
- BlockIo->Media->MediaId,
- SeqStartBlock,
- BlockSize,
- Buffer
- );
+ BlockIo,
+ BlockIo->Media->MediaId,
+ SeqStartBlock,
+ BlockSize,
+ Buffer
+ );
if (EFI_ERROR (Status)) {
goto Out_Free;
}
@@ -149,26 +152,26 @@ StartMainVolumeDescriptorSequence (
DescriptorTag = Buffer;
switch (DescriptorTag->TagIdentifier) {
- case UdfPartitionDescriptor:
- //
- // Save Partition Descriptor
- //
- CopyMem (&Volume->PartitionDesc, Buffer, sizeof (Volume->PartitionDesc));
- break;
+ case UdfPartitionDescriptor:
+ //
+ // Save Partition Descriptor
+ //
+ CopyMem (&Volume->PartitionDesc, Buffer, sizeof (Volume->PartitionDesc));
+ break;
- case UdfLogicalVolumeDescriptor:
- //
- // Save Logical Volume Descriptor
- //
- CopyMem (&Volume->LogicalVolDesc, Buffer, sizeof (Volume->LogicalVolDesc));
- break;
+ case UdfLogicalVolumeDescriptor:
+ //
+ // Save Logical Volume Descriptor
+ //
+ CopyMem (&Volume->LogicalVolDesc, Buffer, sizeof (Volume->LogicalVolDesc));
+ break;
- case UdfTerminatingDescriptor:
- StopSequence = TRUE;
- break;
+ case UdfTerminatingDescriptor:
+ StopSequence = TRUE;
+ break;
- default:
- ;
+ default:
+ ;
}
}
@@ -216,45 +219,46 @@ GetPdFromLongAd (
LogicalVolDesc = &Volume->LogicalVolDesc;
switch (LogicalVolDesc->DomainIdentifier.Suffix.Domain.UdfRevision) {
- case 0x0102:
- case 0x0150:
- case 0x0200:
- case 0x0201:
- case 0x0250:
- case 0x0260:
- //
- // UDF 1.02 specification:
- //
- // There shall be exactly one prevailing Logical Volume Descriptor recorded
- // per Volume Set. The Partition Maps field shall contain only Type 1
- // Partition Maps.
- //
- // UDF 1.50 through 2.60 specs say:
- //
- // For the purpose of interchange partition maps shall be limited to
- // Partition Map type 1, except type 2 maps as described in the document.
- //
- // NOTE: Only one Type 1 (Physical) Partition is supported. It has been
- // checked already in Partition driver for existence of a single Type 1
- // Partition map. Hence, the 'PartitionReferenceNumber' field (the index
- // used to access Partition Maps data within the Logical Volume Descriptor)
- // in the Long Allocation Descriptor should be 0 to indicate there is only
- // one partition.
- //
- if (LongAd->ExtentLocation.PartitionReferenceNumber != 0) {
- return NULL;
- }
- //
- // Since only one partition, get the first one directly.
- //
- PartitionNum = *(UINT16 *)((UINTN)&LogicalVolDesc->PartitionMaps[4]);
- break;
+ case 0x0102:
+ case 0x0150:
+ case 0x0200:
+ case 0x0201:
+ case 0x0250:
+ case 0x0260:
+ //
+ // UDF 1.02 specification:
+ //
+ // There shall be exactly one prevailing Logical Volume Descriptor recorded
+ // per Volume Set. The Partition Maps field shall contain only Type 1
+ // Partition Maps.
+ //
+ // UDF 1.50 through 2.60 specs say:
+ //
+ // For the purpose of interchange partition maps shall be limited to
+ // Partition Map type 1, except type 2 maps as described in the document.
+ //
+ // NOTE: Only one Type 1 (Physical) Partition is supported. It has been
+ // checked already in Partition driver for existence of a single Type 1
+ // Partition map. Hence, the 'PartitionReferenceNumber' field (the index
+ // used to access Partition Maps data within the Logical Volume Descriptor)
+ // in the Long Allocation Descriptor should be 0 to indicate there is only
+ // one partition.
+ //
+ if (LongAd->ExtentLocation.PartitionReferenceNumber != 0) {
+ return NULL;
+ }
- default:
- //
- // Unsupported UDF revision
- //
- return NULL;
+ //
+ // Since only one partition, get the first one directly.
+ //
+ PartitionNum = *(UINT16 *)((UINTN)&LogicalVolDesc->PartitionMaps[4]);
+ break;
+
+ default:
+ //
+ // Unsupported UDF revision
+ //
+ return NULL;
}
//
@@ -287,7 +291,7 @@ GetLongAdLsn (
OUT UINT64 *Lsn
)
{
- UDF_PARTITION_DESCRIPTOR *PartitionDesc;
+ UDF_PARTITION_DESCRIPTOR *PartitionDesc;
PartitionDesc = GetPdFromLongAd (Volume, LongAd);
if (PartitionDesc == NULL) {
@@ -324,7 +328,7 @@ GetShortAdLsn (
)
{
return (UINT64)PartitionDesc->PartitionStartingLocation -
- Volume->MainVdsStartLocation + ShortAd->ExtentPosition;
+ Volume->MainVdsStartLocation + ShortAd->ExtentPosition;
}
/**
@@ -344,9 +348,9 @@ GetShortAdLsn (
**/
EFI_STATUS
FindFileSetDescriptor (
- IN EFI_BLOCK_IO_PROTOCOL *BlockIo,
- IN EFI_DISK_IO_PROTOCOL *DiskIo,
- IN UDF_VOLUME_INFO *Volume
+ IN EFI_BLOCK_IO_PROTOCOL *BlockIo,
+ IN EFI_DISK_IO_PROTOCOL *DiskIo,
+ IN UDF_VOLUME_INFO *Volume
)
{
EFI_STATUS Status;
@@ -355,7 +359,7 @@ FindFileSetDescriptor (
UDF_DESCRIPTOR_TAG *DescriptorTag;
LogicalVolDesc = &Volume->LogicalVolDesc;
- Status = GetLongAdLsn (Volume, &LogicalVolDesc->LogicalVolumeContentsUse, &Lsn);
+ Status = GetLongAdLsn (Volume, &LogicalVolDesc->LogicalVolumeContentsUse, &Lsn);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -369,12 +373,12 @@ FindFileSetDescriptor (
// Read disk block
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (Lsn, LogicalVolDesc->LogicalBlockSize),
- sizeof (Volume->FileSetDesc),
- &Volume->FileSetDesc
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (Lsn, LogicalVolDesc->LogicalBlockSize),
+ sizeof (Volume->FileSetDesc),
+ &Volume->FileSetDesc
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -417,10 +421,10 @@ ReadVolumeFileStructure (
// Find Anchor Volume Descriptor Pointer
//
Status = FindAnchorVolumeDescriptorPointer (
- BlockIo,
- DiskIo,
- &AnchorPoint
- );
+ BlockIo,
+ DiskIo,
+ &AnchorPoint
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -436,11 +440,11 @@ ReadVolumeFileStructure (
// Start Main Volume Descriptor Sequence.
//
Status = StartMainVolumeDescriptorSequence (
- BlockIo,
- DiskIo,
- &AnchorPoint,
- Volume
- );
+ BlockIo,
+ DiskIo,
+ &AnchorPoint,
+ Volume
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -462,10 +466,10 @@ GetFidDescriptorLength (
)
{
return (UINT64)(
- (INTN)((OFFSET_OF (UDF_FILE_IDENTIFIER_DESCRIPTOR, Data[0]) + 3 +
- FileIdentifierDesc->LengthOfFileIdentifier +
- FileIdentifierDesc->LengthOfImplementationUse) >> 2) << 2
- );
+ (INTN)((OFFSET_OF (UDF_FILE_IDENTIFIER_DESCRIPTOR, Data[0]) + 3 +
+ FileIdentifierDesc->LengthOfFileIdentifier +
+ FileIdentifierDesc->LengthOfImplementationUse) >> 2) << 2
+ );
}
/**
@@ -483,7 +487,9 @@ DuplicateFid (
{
*NewFileIdentifierDesc =
(UDF_FILE_IDENTIFIER_DESCRIPTOR *)AllocateCopyPool (
- (UINTN) GetFidDescriptorLength (FileIdentifierDesc), FileIdentifierDesc);
+ (UINTN)GetFidDescriptorLength (FileIdentifierDesc),
+ FileIdentifierDesc
+ );
}
/**
@@ -549,22 +555,24 @@ GetFileEntryData (
if (DescriptorTag->TagIdentifier == UdfExtendedFileEntry) {
ExtendedFileEntry = (UDF_EXTENDED_FILE_ENTRY *)FileEntryData;
- *Length = ExtendedFileEntry->InformationLength;
- *Data = (VOID *)((UINT8 *)ExtendedFileEntry->Data +
- ExtendedFileEntry->LengthOfExtendedAttributes);
+ *Length = ExtendedFileEntry->InformationLength;
+ *Data = (VOID *)((UINT8 *)ExtendedFileEntry->Data +
+ ExtendedFileEntry->LengthOfExtendedAttributes);
} else if (DescriptorTag->TagIdentifier == UdfFileEntry) {
FileEntry = (UDF_FILE_ENTRY *)FileEntryData;
- *Length = FileEntry->InformationLength;
- *Data = (VOID *)((UINT8 *)FileEntry->Data +
- FileEntry->LengthOfExtendedAttributes);
+ *Length = FileEntry->InformationLength;
+ *Data = (VOID *)((UINT8 *)FileEntry->Data +
+ FileEntry->LengthOfExtendedAttributes);
}
if ((*Length > FileEntrySize) ||
((UINTN)FileEntryData > (UINTN)(*Data)) ||
- ((UINTN)(*Data) - (UINTN)FileEntryData > FileEntrySize - *Length)) {
+ ((UINTN)(*Data) - (UINTN)FileEntryData > FileEntrySize - *Length))
+ {
return EFI_VOLUME_CORRUPTED;
}
+
return EFI_SUCCESS;
}
@@ -606,22 +614,24 @@ GetAdsInformation (
if (DescriptorTag->TagIdentifier == UdfExtendedFileEntry) {
ExtendedFileEntry = (UDF_EXTENDED_FILE_ENTRY *)FileEntryData;
- *Length = ExtendedFileEntry->LengthOfAllocationDescriptors;
+ *Length = ExtendedFileEntry->LengthOfAllocationDescriptors;
*AdsData = (VOID *)((UINT8 *)ExtendedFileEntry->Data +
ExtendedFileEntry->LengthOfExtendedAttributes);
} else if (DescriptorTag->TagIdentifier == UdfFileEntry) {
FileEntry = (UDF_FILE_ENTRY *)FileEntryData;
- *Length = FileEntry->LengthOfAllocationDescriptors;
+ *Length = FileEntry->LengthOfAllocationDescriptors;
*AdsData = (VOID *)((UINT8 *)FileEntry->Data +
FileEntry->LengthOfExtendedAttributes);
}
if ((*Length > FileEntrySize) ||
((UINTN)FileEntryData > (UINTN)(*AdsData)) ||
- ((UINTN)(*AdsData) - (UINTN)FileEntryData > FileEntrySize - *Length)) {
+ ((UINTN)(*AdsData) - (UINTN)FileEntryData > FileEntrySize - *Length))
+ {
return EFI_VOLUME_CORRUPTED;
}
+
return EFI_SUCCESS;
}
@@ -648,7 +658,7 @@ GetLongAdFromAds (
UDF_LONG_ALLOCATION_DESCRIPTOR *LongAd;
UDF_EXTENT_FLAGS ExtentFlags;
- for (;;) {
+ for ( ; ;) {
if (*Offset >= Length) {
//
// No more Long Allocation Descriptors.
@@ -664,8 +674,9 @@ GetLongAdFromAds (
// allocated AD, then return it.
//
ExtentFlags = GET_EXTENT_FLAGS (LongAdsSequence, LongAd);
- if (ExtentFlags == ExtentIsNextExtent ||
- ExtentFlags == ExtentRecordedAndAllocated) {
+ if ((ExtentFlags == ExtentIsNextExtent) ||
+ (ExtentFlags == ExtentRecordedAndAllocated))
+ {
break;
}
@@ -701,10 +712,10 @@ GetShortAdFromAds (
OUT UDF_SHORT_ALLOCATION_DESCRIPTOR **FoundShortAd
)
{
- UDF_SHORT_ALLOCATION_DESCRIPTOR *ShortAd;
- UDF_EXTENT_FLAGS ExtentFlags;
+ UDF_SHORT_ALLOCATION_DESCRIPTOR *ShortAd;
+ UDF_EXTENT_FLAGS ExtentFlags;
- for (;;) {
+ for ( ; ;) {
if (*Offset >= Length) {
//
// No more Short Allocation Descriptors.
@@ -720,8 +731,9 @@ GetShortAdFromAds (
// allocated AD, then return it.
//
ExtentFlags = GET_EXTENT_FLAGS (ShortAdsSequence, ShortAd);
- if (ExtentFlags == ExtentIsNextExtent ||
- ExtentFlags == ExtentRecordedAndAllocated) {
+ if ((ExtentFlags == ExtentIsNextExtent) ||
+ (ExtentFlags == ExtentRecordedAndAllocated))
+ {
break;
}
@@ -763,18 +775,18 @@ GetAllocationDescriptor (
{
if (RecordingFlags == LongAdsSequence) {
return GetLongAdFromAds (
- Data,
- Offset,
- Length,
- (UDF_LONG_ALLOCATION_DESCRIPTOR **)FoundAd
- );
+ Data,
+ Offset,
+ Length,
+ (UDF_LONG_ALLOCATION_DESCRIPTOR **)FoundAd
+ );
} else if (RecordingFlags == ShortAdsSequence) {
return GetShortAdFromAds (
- Data,
- Offset,
- Length,
- (UDF_SHORT_ALLOCATION_DESCRIPTOR **)FoundAd
- );
+ Data,
+ Offset,
+ Length,
+ (UDF_SHORT_ALLOCATION_DESCRIPTOR **)FoundAd
+ );
}
//
@@ -809,7 +821,7 @@ GetAllocationDescriptorLsn (
OUT UINT64 *Lsn
)
{
- UDF_PARTITION_DESCRIPTOR *PartitionDesc;
+ UDF_PARTITION_DESCRIPTOR *PartitionDesc;
if (RecordingFlags == LongAdsSequence) {
return GetLongAdLsn (Volume, (UDF_LONG_ALLOCATION_DESCRIPTOR *)Ad, Lsn);
@@ -875,12 +887,14 @@ GetAedAdsOffset (
UDF_ALLOCATION_EXTENT_DESCRIPTOR *AllocExtDesc;
UDF_DESCRIPTOR_TAG *DescriptorTag;
- ExtentLength = GET_EXTENT_LENGTH (RecordingFlags, Ad);
- Status = GetAllocationDescriptorLsn (RecordingFlags,
- Volume,
- ParentIcb,
- Ad,
- &Lsn);
+ ExtentLength = GET_EXTENT_LENGTH (RecordingFlags, Ad);
+ Status = GetAllocationDescriptorLsn (
+ RecordingFlags,
+ Volume,
+ ParentIcb,
+ Ad,
+ &Lsn
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -896,12 +910,12 @@ GetAedAdsOffset (
// Read extent.
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (Lsn, LogicalBlockSize),
- ExtentLength,
- Data
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (Lsn, LogicalBlockSize),
+ ExtentLength,
+ Data
+ );
if (EFI_ERROR (Status)) {
goto Exit;
}
@@ -922,7 +936,7 @@ GetAedAdsOffset (
// Get AED's block offset and its length.
//
*Offset = MultU64x32 (Lsn, LogicalBlockSize) +
- sizeof (UDF_ALLOCATION_EXTENT_DESCRIPTOR);
+ sizeof (UDF_ALLOCATION_EXTENT_DESCRIPTOR);
*Length = AllocExtDesc->LengthOfAllocationDescriptors;
Exit:
@@ -969,15 +983,15 @@ GetAedAdsData (
// Get AED's offset + length.
//
Status = GetAedAdsOffset (
- BlockIo,
- DiskIo,
- Volume,
- ParentIcb,
- RecordingFlags,
- Ad,
- &Offset,
- Length
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ ParentIcb,
+ RecordingFlags,
+ Ad,
+ &Offset,
+ Length
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -985,18 +999,18 @@ GetAedAdsData (
//
// Allocate buffer to read in AED's data.
//
- *Data = AllocatePool ((UINTN) (*Length));
+ *Data = AllocatePool ((UINTN)(*Length));
if (*Data == NULL) {
return EFI_OUT_OF_RESOURCES;
}
return DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- Offset,
- (UINTN) (*Length),
- *Data
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ Offset,
+ (UINTN)(*Length),
+ *Data
+ );
}
/**
@@ -1020,7 +1034,7 @@ GrowUpBufferToNextAd (
IN UINT64 Length
)
{
- UINT32 ExtentLength;
+ UINT32 ExtentLength;
ExtentLength = GET_EXTENT_LENGTH (RecordingFlags, Ad);
@@ -1030,7 +1044,7 @@ GrowUpBufferToNextAd (
return EFI_OUT_OF_RESOURCES;
}
} else {
- *Buffer = ReallocatePool ((UINTN) Length, (UINTN) (Length + ExtentLength), *Buffer);
+ *Buffer = ReallocatePool ((UINTN)Length, (UINTN)(Length + ExtentLength), *Buffer);
if (*Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -1087,294 +1101,297 @@ ReadFile (
UINT32 ExtentLength;
UDF_FE_RECORDING_FLAGS RecordingFlags;
- LogicalBlockSize = Volume->LogicalVolDesc.LogicalBlockSize;
- DoFreeAed = FALSE;
+ LogicalBlockSize = Volume->LogicalVolDesc.LogicalBlockSize;
+ DoFreeAed = FALSE;
//
// set BytesLeft to suppress incorrect compiler/analyzer warnings
//
- BytesLeft = 0;
- DataOffset = 0;
- FilePosition = 0;
+ BytesLeft = 0;
+ DataOffset = 0;
+ FilePosition = 0;
FinishedSeeking = FALSE;
- Data = NULL;
+ Data = NULL;
switch (ReadFileInfo->Flags) {
- case ReadFileGetFileSize:
- case ReadFileAllocateAndRead:
- //
- // Initialise ReadFileInfo structure for either getting file size, or
- // reading file's recorded data.
- //
- ReadFileInfo->ReadLength = 0;
- ReadFileInfo->FileData = NULL;
- break;
- case ReadFileSeekAndRead:
- //
- // About to seek a file and/or read its data.
- //
- Length = ReadFileInfo->FileSize - ReadFileInfo->FilePosition;
- if (ReadFileInfo->FileDataSize > Length) {
+ case ReadFileGetFileSize:
+ case ReadFileAllocateAndRead:
//
- // About to read beyond the EOF -- truncate it.
+ // Initialise ReadFileInfo structure for either getting file size, or
+ // reading file's recorded data.
//
- ReadFileInfo->FileDataSize = Length;
- }
-
- //
- // Initialise data to start seeking and/or reading a file.
- //
- BytesLeft = ReadFileInfo->FileDataSize;
- DataOffset = 0;
- FilePosition = 0;
- FinishedSeeking = FALSE;
-
- break;
- }
-
- RecordingFlags = GET_FE_RECORDING_FLAGS (FileEntryData);
- switch (RecordingFlags) {
- case InlineData:
- //
- // There are no extents for this FE/EFE. All data is inline.
- //
- Status = GetFileEntryData (FileEntryData, Volume->FileEntrySize, &Data, &Length);
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- if (ReadFileInfo->Flags == ReadFileGetFileSize) {
- ReadFileInfo->ReadLength = Length;
- } else if (ReadFileInfo->Flags == ReadFileAllocateAndRead) {
+ ReadFileInfo->ReadLength = 0;
+ ReadFileInfo->FileData = NULL;
+ break;
+ case ReadFileSeekAndRead:
//
- // Allocate buffer for starting read data.
+ // About to seek a file and/or read its data.
//
- ReadFileInfo->FileData = AllocatePool ((UINTN) Length);
- if (ReadFileInfo->FileData == NULL) {
- return EFI_OUT_OF_RESOURCES;
+ Length = ReadFileInfo->FileSize - ReadFileInfo->FilePosition;
+ if (ReadFileInfo->FileDataSize > Length) {
+ //
+ // About to read beyond the EOF -- truncate it.
+ //
+ ReadFileInfo->FileDataSize = Length;
}
//
- // Read all inline data into ReadFileInfo->FileData
- //
- CopyMem (ReadFileInfo->FileData, Data, (UINTN) Length);
- ReadFileInfo->ReadLength = Length;
- } else if (ReadFileInfo->Flags == ReadFileSeekAndRead) {
- //
- // If FilePosition is non-zero, seek file to FilePosition, read
- // FileDataSize bytes and then updates FilePosition.
+ // Initialise data to start seeking and/or reading a file.
//
- CopyMem (
- ReadFileInfo->FileData,
- (VOID *)((UINT8 *)Data + ReadFileInfo->FilePosition),
- (UINTN) ReadFileInfo->FileDataSize
- );
-
- ReadFileInfo->FilePosition += ReadFileInfo->FileDataSize;
- } else {
- ASSERT (FALSE);
- return EFI_INVALID_PARAMETER;
- }
-
- Status = EFI_SUCCESS;
- break;
-
- case LongAdsSequence:
- case ShortAdsSequence:
- //
- // This FE/EFE contains a run of Allocation Descriptors. Get data + size
- // for start reading them out.
- //
- Status = GetAdsInformation (FileEntryData, Volume->FileEntrySize, &Data, &Length);
- if (EFI_ERROR (Status)) {
- return Status;
- }
+ BytesLeft = ReadFileInfo->FileDataSize;
+ DataOffset = 0;
+ FilePosition = 0;
+ FinishedSeeking = FALSE;
- AdOffset = 0;
+ break;
+ }
- for (;;) {
+ RecordingFlags = GET_FE_RECORDING_FLAGS (FileEntryData);
+ switch (RecordingFlags) {
+ case InlineData:
//
- // Read AD.
+ // There are no extents for this FE/EFE. All data is inline.
//
- Status = GetAllocationDescriptor (
- RecordingFlags,
- Data,
- &AdOffset,
- Length,
- &Ad
- );
- if (Status == EFI_DEVICE_ERROR) {
- Status = EFI_SUCCESS;
- goto Done;
+ Status = GetFileEntryData (FileEntryData, Volume->FileEntrySize, &Data, &Length);
+ if (EFI_ERROR (Status)) {
+ return Status;
}
- //
- // Check if AD is an indirect AD. If so, read Allocation Extent
- // Descriptor and its extents (ADs).
- //
- if (GET_EXTENT_FLAGS (RecordingFlags, Ad) == ExtentIsNextExtent) {
- DataBak = Data;
- Status = GetAedAdsData (
- BlockIo,
- DiskIo,
- Volume,
- ParentIcb,
- RecordingFlags,
- Ad,
- &Data,
- &Length
- );
-
- if (!DoFreeAed) {
- DoFreeAed = TRUE;
- } else {
- FreePool (DataBak);
+ if (ReadFileInfo->Flags == ReadFileGetFileSize) {
+ ReadFileInfo->ReadLength = Length;
+ } else if (ReadFileInfo->Flags == ReadFileAllocateAndRead) {
+ //
+ // Allocate buffer for starting read data.
+ //
+ ReadFileInfo->FileData = AllocatePool ((UINTN)Length);
+ if (ReadFileInfo->FileData == NULL) {
+ return EFI_OUT_OF_RESOURCES;
}
- if (EFI_ERROR (Status)) {
- goto Error_Get_Aed;
- }
- ASSERT (Data != NULL);
+ //
+ // Read all inline data into ReadFileInfo->FileData
+ //
+ CopyMem (ReadFileInfo->FileData, Data, (UINTN)Length);
+ ReadFileInfo->ReadLength = Length;
+ } else if (ReadFileInfo->Flags == ReadFileSeekAndRead) {
+ //
+ // If FilePosition is non-zero, seek file to FilePosition, read
+ // FileDataSize bytes and then updates FilePosition.
+ //
+ CopyMem (
+ ReadFileInfo->FileData,
+ (VOID *)((UINT8 *)Data + ReadFileInfo->FilePosition),
+ (UINTN)ReadFileInfo->FileDataSize
+ );
- AdOffset = 0;
- continue;
+ ReadFileInfo->FilePosition += ReadFileInfo->FileDataSize;
+ } else {
+ ASSERT (FALSE);
+ return EFI_INVALID_PARAMETER;
}
- ExtentLength = GET_EXTENT_LENGTH (RecordingFlags, Ad);
+ Status = EFI_SUCCESS;
+ break;
- Status = GetAllocationDescriptorLsn (RecordingFlags,
- Volume,
- ParentIcb,
- Ad,
- &Lsn);
+ case LongAdsSequence:
+ case ShortAdsSequence:
+ //
+ // This FE/EFE contains a run of Allocation Descriptors. Get data + size
+ // for start reading them out.
+ //
+ Status = GetAdsInformation (FileEntryData, Volume->FileEntrySize, &Data, &Length);
if (EFI_ERROR (Status)) {
- goto Done;
+ return Status;
}
- switch (ReadFileInfo->Flags) {
- case ReadFileGetFileSize:
- ReadFileInfo->ReadLength += ExtentLength;
- break;
- case ReadFileAllocateAndRead:
- //
- // Increase FileData (if necessary) to read next extent.
- //
- Status = GrowUpBufferToNextAd (
- RecordingFlags,
- Ad,
- &ReadFileInfo->FileData,
- ReadFileInfo->ReadLength
- );
- if (EFI_ERROR (Status)) {
- goto Error_Alloc_Buffer_To_Next_Ad;
- }
+ AdOffset = 0;
+ for ( ; ;) {
//
- // Read extent's data into FileData.
+ // Read AD.
//
- Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (Lsn, LogicalBlockSize),
- ExtentLength,
- (VOID *)((UINT8 *)ReadFileInfo->FileData +
- ReadFileInfo->ReadLength)
- );
- if (EFI_ERROR (Status)) {
- goto Error_Read_Disk_Blk;
+ Status = GetAllocationDescriptor (
+ RecordingFlags,
+ Data,
+ &AdOffset,
+ Length,
+ &Ad
+ );
+ if (Status == EFI_DEVICE_ERROR) {
+ Status = EFI_SUCCESS;
+ goto Done;
}
- ReadFileInfo->ReadLength += ExtentLength;
- break;
- case ReadFileSeekAndRead:
//
- // Seek file first before reading in its data.
+ // Check if AD is an indirect AD. If so, read Allocation Extent
+ // Descriptor and its extents (ADs).
//
- if (FinishedSeeking) {
- Offset = 0;
- goto Skip_File_Seek;
- }
+ if (GET_EXTENT_FLAGS (RecordingFlags, Ad) == ExtentIsNextExtent) {
+ DataBak = Data;
+ Status = GetAedAdsData (
+ BlockIo,
+ DiskIo,
+ Volume,
+ ParentIcb,
+ RecordingFlags,
+ Ad,
+ &Data,
+ &Length
+ );
+
+ if (!DoFreeAed) {
+ DoFreeAed = TRUE;
+ } else {
+ FreePool (DataBak);
+ }
- if (FilePosition + ExtentLength < ReadFileInfo->FilePosition) {
- FilePosition += ExtentLength;
- goto Skip_Ad;
- }
+ if (EFI_ERROR (Status)) {
+ goto Error_Get_Aed;
+ }
- if (FilePosition + ExtentLength > ReadFileInfo->FilePosition) {
- Offset = ReadFileInfo->FilePosition - FilePosition;
- } else {
- Offset = 0;
+ ASSERT (Data != NULL);
+
+ AdOffset = 0;
+ continue;
}
- //
- // Done with seeking file. Start reading its data.
- //
- FinishedSeeking = TRUE;
+ ExtentLength = GET_EXTENT_LENGTH (RecordingFlags, Ad);
- Skip_File_Seek:
- //
- // Make sure we don't read more data than really wanted.
- //
- if (ExtentLength - Offset > BytesLeft) {
- DataLength = BytesLeft;
- } else {
- DataLength = ExtentLength - Offset;
+ Status = GetAllocationDescriptorLsn (
+ RecordingFlags,
+ Volume,
+ ParentIcb,
+ Ad,
+ &Lsn
+ );
+ if (EFI_ERROR (Status)) {
+ goto Done;
}
- //
- // Read extent's data into FileData.
- //
- Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- Offset + MultU64x32 (Lsn, LogicalBlockSize),
- (UINTN) DataLength,
- (VOID *)((UINT8 *)ReadFileInfo->FileData +
- DataOffset)
- );
- if (EFI_ERROR (Status)) {
- goto Error_Read_Disk_Blk;
+ switch (ReadFileInfo->Flags) {
+ case ReadFileGetFileSize:
+ ReadFileInfo->ReadLength += ExtentLength;
+ break;
+ case ReadFileAllocateAndRead:
+ //
+ // Increase FileData (if necessary) to read next extent.
+ //
+ Status = GrowUpBufferToNextAd (
+ RecordingFlags,
+ Ad,
+ &ReadFileInfo->FileData,
+ ReadFileInfo->ReadLength
+ );
+ if (EFI_ERROR (Status)) {
+ goto Error_Alloc_Buffer_To_Next_Ad;
+ }
+
+ //
+ // Read extent's data into FileData.
+ //
+ Status = DiskIo->ReadDisk (
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (Lsn, LogicalBlockSize),
+ ExtentLength,
+ (VOID *)((UINT8 *)ReadFileInfo->FileData +
+ ReadFileInfo->ReadLength)
+ );
+ if (EFI_ERROR (Status)) {
+ goto Error_Read_Disk_Blk;
+ }
+
+ ReadFileInfo->ReadLength += ExtentLength;
+ break;
+ case ReadFileSeekAndRead:
+ //
+ // Seek file first before reading in its data.
+ //
+ if (FinishedSeeking) {
+ Offset = 0;
+ goto Skip_File_Seek;
+ }
+
+ if (FilePosition + ExtentLength < ReadFileInfo->FilePosition) {
+ FilePosition += ExtentLength;
+ goto Skip_Ad;
+ }
+
+ if (FilePosition + ExtentLength > ReadFileInfo->FilePosition) {
+ Offset = ReadFileInfo->FilePosition - FilePosition;
+ } else {
+ Offset = 0;
+ }
+
+ //
+ // Done with seeking file. Start reading its data.
+ //
+ FinishedSeeking = TRUE;
+
+Skip_File_Seek:
+ //
+ // Make sure we don't read more data than really wanted.
+ //
+ if (ExtentLength - Offset > BytesLeft) {
+ DataLength = BytesLeft;
+ } else {
+ DataLength = ExtentLength - Offset;
+ }
+
+ //
+ // Read extent's data into FileData.
+ //
+ Status = DiskIo->ReadDisk (
+ DiskIo,
+ BlockIo->Media->MediaId,
+ Offset + MultU64x32 (Lsn, LogicalBlockSize),
+ (UINTN)DataLength,
+ (VOID *)((UINT8 *)ReadFileInfo->FileData +
+ DataOffset)
+ );
+ if (EFI_ERROR (Status)) {
+ goto Error_Read_Disk_Blk;
+ }
+
+ //
+ // Update current file's position.
+ //
+ DataOffset += DataLength;
+ ReadFileInfo->FilePosition += DataLength;
+
+ BytesLeft -= DataLength;
+ if (BytesLeft == 0) {
+ //
+ // There is no more file data to read.
+ //
+ Status = EFI_SUCCESS;
+ goto Done;
+ }
+
+ break;
}
+Skip_Ad:
//
- // Update current file's position.
+ // Point to the next AD (extent).
//
- DataOffset += DataLength;
- ReadFileInfo->FilePosition += DataLength;
-
- BytesLeft -= DataLength;
- if (BytesLeft == 0) {
- //
- // There is no more file data to read.
- //
- Status = EFI_SUCCESS;
- goto Done;
- }
-
- break;
+ AdOffset += AD_LENGTH (RecordingFlags);
}
- Skip_Ad:
+ break;
+ case ExtendedAdsSequence:
+ // FIXME: Not supported. Got no volume with it, yet.
+ ASSERT (FALSE);
+ Status = EFI_UNSUPPORTED;
+ break;
+
+ default:
//
- // Point to the next AD (extent).
+ // A flag value reserved by the ECMA-167 standard (3rd Edition - June
+ // 1997); 14.6 ICB Tag; 14.6.8 Flags (RBP 18); was found.
//
- AdOffset += AD_LENGTH (RecordingFlags);
- }
-
- break;
- case ExtendedAdsSequence:
- // FIXME: Not supported. Got no volume with it, yet.
- ASSERT (FALSE);
- Status = EFI_UNSUPPORTED;
- break;
-
- default:
- //
- // A flag value reserved by the ECMA-167 standard (3rd Edition - June
- // 1997); 14.6 ICB Tag; 14.6.8 Flags (RBP 18); was found.
- //
- Status = EFI_UNSUPPORTED;
- break;
+ Status = EFI_UNSUPPORTED;
+ break;
}
Done:
@@ -1475,18 +1492,18 @@ InternalFindFile (
ZeroMem ((VOID *)&ReadDirInfo, sizeof (UDF_READ_DIRECTORY_INFO));
Found = FALSE;
- for (;;) {
+ for ( ; ;) {
Status = ReadDirectoryEntry (
- BlockIo,
- DiskIo,
- Volume,
- (Parent->FileIdentifierDesc != NULL) ?
- &Parent->FileIdentifierDesc->Icb :
- Icb,
- Parent->FileEntry,
- &ReadDirInfo,
- &FileIdentifierDesc
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ (Parent->FileIdentifierDesc != NULL) ?
+ &Parent->FileIdentifierDesc->Icb :
+ Icb,
+ Parent->FileEntry,
+ &ReadDirInfo,
+ &FileIdentifierDesc
+ );
if (EFI_ERROR (Status)) {
if (Status == EFI_DEVICE_ERROR) {
Status = EFI_NOT_FOUND;
@@ -1494,6 +1511,7 @@ InternalFindFile (
break;
}
+
//
// After calling function ReadDirectoryEntry(), if 'FileIdentifierDesc' is
// NULL, then the 'Status' must be EFI_OUT_OF_RESOURCES. Hence, if the code
@@ -1510,7 +1528,7 @@ InternalFindFile (
// directory (Parent), and if FileName is either ".." or "\\", then it's
// the expected FID.
//
- if (StrCmp (FileName, L"..") == 0 || StrCmp (FileName, L"\\") == 0) {
+ if ((StrCmp (FileName, L"..") == 0) || (StrCmp (FileName, L"\\") == 0)) {
Found = TRUE;
break;
}
@@ -1552,12 +1570,12 @@ InternalFindFile (
//
if (StrCmp (FileName, L"\\") != 0) {
Status = FindFileEntry (
- BlockIo,
- DiskIo,
- Volume,
- &FileIdentifierDesc->Icb,
- &CompareFileEntry
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &FileIdentifierDesc->Icb,
+ &CompareFileEntry
+ );
if (EFI_ERROR (Status)) {
goto Error_Find_Fe;
}
@@ -1565,8 +1583,12 @@ InternalFindFile (
//
// Make sure that both Parent's FE/EFE and found FE/EFE are not equal.
//
- if (CompareMem ((VOID *)Parent->FileEntry, (VOID *)CompareFileEntry,
- Volume->FileEntrySize) != 0) {
+ if (CompareMem (
+ (VOID *)Parent->FileEntry,
+ (VOID *)CompareFileEntry,
+ Volume->FileEntrySize
+ ) != 0)
+ {
File->FileEntry = CompareFileEntry;
} else {
FreePool ((VOID *)FileIdentifierDesc);
@@ -1605,16 +1627,16 @@ ReadUdfVolumeInformation (
OUT UDF_VOLUME_INFO *Volume
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Read all necessary UDF volume information and keep it private to the driver
//
Status = ReadVolumeFileStructure (
- BlockIo,
- DiskIo,
- Volume
- );
+ BlockIo,
+ DiskIo,
+ Volume
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1658,29 +1680,29 @@ FindRootDirectory (
UDF_FILE_INFO Parent;
Status = FindFileEntry (
- BlockIo,
- DiskIo,
- Volume,
- &Volume->FileSetDesc.RootDirectoryIcb,
- &File->FileEntry
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &Volume->FileSetDesc.RootDirectoryIcb,
+ &File->FileEntry
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- Parent.FileEntry = File->FileEntry;
+ Parent.FileEntry = File->FileEntry;
Parent.FileIdentifierDesc = NULL;
Status = FindFile (
- BlockIo,
- DiskIo,
- Volume,
- L"\\",
- NULL,
- &Parent,
- &Volume->FileSetDesc.RootDirectoryIcb,
- File
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ L"\\",
+ NULL,
+ &Parent,
+ &Volume->FileSetDesc.RootDirectoryIcb,
+ File
+ );
if (EFI_ERROR (Status)) {
FreePool (File->FileEntry);
}
@@ -1725,7 +1747,7 @@ FindFileEntry (
return Status;
}
- LogicalBlockSize = Volume->LogicalVolDesc.LogicalBlockSize;
+ LogicalBlockSize = Volume->LogicalVolDesc.LogicalBlockSize;
ReadBuffer = AllocateZeroPool (Volume->FileEntrySize);
if (ReadBuffer == NULL) {
@@ -1736,12 +1758,12 @@ FindFileEntry (
// Read extent.
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (Lsn, LogicalBlockSize),
- Volume->FileEntrySize,
- ReadBuffer
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (Lsn, LogicalBlockSize),
+ Volume->FileEntrySize,
+ ReadBuffer
+ );
if (EFI_ERROR (Status)) {
goto Error_Read_Disk_Blk;
}
@@ -1752,8 +1774,9 @@ FindFileEntry (
// Check if the read extent contains a valid Tag Identifier for the expected
// FE/EFE.
//
- if (DescriptorTag->TagIdentifier != UdfFileEntry &&
- DescriptorTag->TagIdentifier != UdfExtendedFileEntry) {
+ if ((DescriptorTag->TagIdentifier != UdfFileEntry) &&
+ (DescriptorTag->TagIdentifier != UdfExtendedFileEntry))
+ {
Status = EFI_VOLUME_CORRUPTED;
goto Error_Invalid_Fe;
}
@@ -1813,7 +1836,8 @@ FindFile (
FileNamePointer = FileName;
while (*FilePath != L'\0' && *FilePath != L'\\') {
if ((((UINTN)FileNamePointer - (UINTN)FileName) / sizeof (CHAR16)) >=
- (ARRAY_SIZE (FileName) - 1)) {
+ (ARRAY_SIZE (FileName) - 1))
+ {
return EFI_NOT_FOUND;
}
@@ -1832,13 +1856,15 @@ FindFile (
//
// See UdfOpenVolume() function.
//
- Status = InternalFindFile (BlockIo,
- DiskIo,
- Volume,
- L"\\",
- &PreviousFile,
- Icb,
- File);
+ Status = InternalFindFile (
+ BlockIo,
+ DiskIo,
+ Volume,
+ L"\\",
+ &PreviousFile,
+ Icb,
+ File
+ );
} else {
//
// We've already a file pointer (Root) for the root directory. Duplicate
@@ -1863,13 +1889,15 @@ FindFile (
//
// No root directory. Find filename from the current directory.
//
- Status = InternalFindFile (BlockIo,
- DiskIo,
- Volume,
- FileName,
- &PreviousFile,
- Icb,
- File);
+ Status = InternalFindFile (
+ BlockIo,
+ DiskIo,
+ Volume,
+ FileName,
+ &PreviousFile,
+ Icb,
+ File
+ );
}
if (EFI_ERROR (Status)) {
@@ -1885,12 +1913,14 @@ FindFile (
FileEntry = File->FileEntry;
- Status = ResolveSymlink (BlockIo,
- DiskIo,
- Volume,
- &PreviousFile,
- FileEntry,
- File);
+ Status = ResolveSymlink (
+ BlockIo,
+ DiskIo,
+ Volume,
+ &PreviousFile,
+ FileEntry,
+ File
+ );
FreePool (FileEntry);
@@ -1899,13 +1929,17 @@ FindFile (
}
}
- if (CompareMem ((VOID *)&PreviousFile, (VOID *)Parent,
- sizeof (UDF_FILE_INFO)) != 0) {
+ if (CompareMem (
+ (VOID *)&PreviousFile,
+ (VOID *)Parent,
+ sizeof (UDF_FILE_INFO)
+ ) != 0)
+ {
CleanupFileInformation (&PreviousFile);
}
CopyMem ((VOID *)&PreviousFile, (VOID *)File, sizeof (UDF_FILE_INFO));
- if (*FilePath != L'\0' && *FilePath == L'\\') {
+ if ((*FilePath != L'\0') && (*FilePath == L'\\')) {
FilePath++;
}
}
@@ -1957,13 +1991,13 @@ ReadDirectoryEntry (
ReadFileInfo.Flags = ReadFileAllocateAndRead;
Status = ReadFile (
- BlockIo,
- DiskIo,
- Volume,
- ParentIcb,
- FileEntryData,
- &ReadFileInfo
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ ParentIcb,
+ FileEntryData,
+ &ReadFileInfo
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1971,7 +2005,7 @@ ReadDirectoryEntry (
//
// Fill in ReadDirInfo structure with the read directory's data information.
//
- ReadDirInfo->DirectoryData = ReadFileInfo.FileData;
+ ReadDirInfo->DirectoryData = ReadFileInfo.FileData;
ReadDirInfo->DirectoryLength = ReadFileInfo.ReadLength;
}
@@ -1988,8 +2022,10 @@ ReadDirectoryEntry (
//
// Get FID for this entry.
//
- FileIdentifierDesc = GET_FID_FROM_ADS (ReadDirInfo->DirectoryData,
- ReadDirInfo->FidOffset);
+ FileIdentifierDesc = GET_FID_FROM_ADS (
+ ReadDirInfo->DirectoryData,
+ ReadDirInfo->FidOffset
+ );
//
// Update FidOffset to point to next FID.
//
@@ -2031,11 +2067,11 @@ GetFileNameFromFid (
OUT CHAR16 *FileName
)
{
- UINT8 *OstaCompressed;
- UINT8 CompressionId;
- UINT8 Length;
- UINTN Index;
- CHAR16 *FileNameBak;
+ UINT8 *OstaCompressed;
+ UINT8 CompressionId;
+ UINT8 Length;
+ UINTN Index;
+ CHAR16 *FileNameBak;
if (CharMax == 0) {
return EFI_BUFFER_TOO_SMALL;
@@ -2043,9 +2079,9 @@ GetFileNameFromFid (
OstaCompressed =
(UINT8 *)(
- (UINT8 *)FileIdentifierDesc->Data +
- FileIdentifierDesc->LengthOfImplementationUse
- );
+ (UINT8 *)FileIdentifierDesc->Data +
+ FileIdentifierDesc->LengthOfImplementationUse
+ );
CompressionId = OstaCompressed[0];
if (!IS_VALID_COMPRESSION_ID (CompressionId)) {
@@ -2086,6 +2122,7 @@ GetFileNameFromFid (
if (Index > CharMax - 1) {
Index = CharMax - 1;
}
+
FileNameBak[Index] = L'\0';
return EFI_SUCCESS;
@@ -2152,135 +2189,140 @@ ResolveSymlink (
ReadFileInfo.Flags = ReadFileAllocateAndRead;
Status = ReadFile (
- BlockIo,
- DiskIo,
- Volume,
- &Parent->FileIdentifierDesc->Icb,
- FileEntryData,
- &ReadFileInfo
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &Parent->FileIdentifierDesc->Icb,
+ FileEntryData,
+ &ReadFileInfo
+ );
if (EFI_ERROR (Status)) {
return Status;
}
Length = ReadFileInfo.ReadLength;
- Data = (UINT8 *)ReadFileInfo.FileData;
+ Data = (UINT8 *)ReadFileInfo.FileData;
EndData = Data + Length;
CopyMem ((VOID *)&PreviousFile, (VOID *)Parent, sizeof (UDF_FILE_INFO));
- for (;;) {
+ for ( ; ;) {
PathComp = (UDF_PATH_COMPONENT *)Data;
PathCompLength = PathComp->LengthOfComponentIdentifier;
switch (PathComp->ComponentType) {
- case 1:
+ case 1:
//
// This Path Component specifies the root directory hierarchy subject to
// agreement between the originator and recipient of the medium. Skip it.
//
// Fall through.
//
- case 2:
- //
- // "\\." of the current directory. Read next Path Component.
- //
- goto Next_Path_Component;
- case 3:
- //
- // ".." (parent directory). Go to it.
- //
- CopyMem ((VOID *)FileName, L"..", 6);
- break;
- case 4:
- //
- // "." (current file). Duplicate both FE/EFE and FID of this file.
- //
- DuplicateFe (BlockIo, Volume, PreviousFile.FileEntry, &File->FileEntry);
- if (File->FileEntry == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- goto Error_Find_File;
- }
+ case 2:
+ //
+ // "\\." of the current directory. Read next Path Component.
+ //
+ goto Next_Path_Component;
+ case 3:
+ //
+ // ".." (parent directory). Go to it.
+ //
+ CopyMem ((VOID *)FileName, L"..", 6);
+ break;
+ case 4:
+ //
+ // "." (current file). Duplicate both FE/EFE and FID of this file.
+ //
+ DuplicateFe (BlockIo, Volume, PreviousFile.FileEntry, &File->FileEntry);
+ if (File->FileEntry == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Error_Find_File;
+ }
- DuplicateFid (PreviousFile.FileIdentifierDesc,
- &File->FileIdentifierDesc);
- if (File->FileIdentifierDesc == NULL) {
- FreePool (File->FileEntry);
- Status = EFI_OUT_OF_RESOURCES;
- goto Error_Find_File;
- }
- goto Next_Path_Component;
- case 5:
- //
- // This Path Component identifies an object, either a file or a
- // directory or an alias.
- //
- // Decode it from the compressed data in ComponentIdentifier and find
- // respective path.
- //
- CompressionId = PathComp->ComponentIdentifier[0];
- if (!IS_VALID_COMPRESSION_ID (CompressionId)) {
- return EFI_VOLUME_CORRUPTED;
- }
+ DuplicateFid (
+ PreviousFile.FileIdentifierDesc,
+ &File->FileIdentifierDesc
+ );
+ if (File->FileIdentifierDesc == NULL) {
+ FreePool (File->FileEntry);
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Error_Find_File;
+ }
- if ((UINTN)PathComp->ComponentIdentifier + PathCompLength > (UINTN)EndData) {
- return EFI_VOLUME_CORRUPTED;
- }
+ goto Next_Path_Component;
+ case 5:
+ //
+ // This Path Component identifies an object, either a file or a
+ // directory or an alias.
+ //
+ // Decode it from the compressed data in ComponentIdentifier and find
+ // respective path.
+ //
+ CompressionId = PathComp->ComponentIdentifier[0];
+ if (!IS_VALID_COMPRESSION_ID (CompressionId)) {
+ return EFI_VOLUME_CORRUPTED;
+ }
- Char = FileName;
- for (Index = 1; Index < PathCompLength; Index++) {
- if (CompressionId == 16) {
- *Char = *(UINT8 *)((UINT8 *)PathComp->ComponentIdentifier +
- Index) << 8;
- Index++;
- } else {
- if (Index > ARRAY_SIZE (FileName)) {
- return EFI_UNSUPPORTED;
- }
- *Char = 0;
+ if ((UINTN)PathComp->ComponentIdentifier + PathCompLength > (UINTN)EndData) {
+ return EFI_VOLUME_CORRUPTED;
}
- if (Index < Length) {
- *Char |= (CHAR16)(*(UINT8 *)((UINT8 *)PathComp->ComponentIdentifier + Index));
+ Char = FileName;
+ for (Index = 1; Index < PathCompLength; Index++) {
+ if (CompressionId == 16) {
+ *Char = *(UINT8 *)((UINT8 *)PathComp->ComponentIdentifier +
+ Index) << 8;
+ Index++;
+ } else {
+ if (Index > ARRAY_SIZE (FileName)) {
+ return EFI_UNSUPPORTED;
+ }
+
+ *Char = 0;
+ }
+
+ if (Index < Length) {
+ *Char |= (CHAR16)(*(UINT8 *)((UINT8 *)PathComp->ComponentIdentifier + Index));
+ }
+
+ Char++;
}
- Char++;
- }
+ Index = ((UINTN)Char - (UINTN)FileName) / sizeof (CHAR16);
+ if (Index > ARRAY_SIZE (FileName) - 1) {
+ Index = ARRAY_SIZE (FileName) - 1;
+ }
- Index = ((UINTN)Char - (UINTN)FileName) / sizeof (CHAR16);
- if (Index > ARRAY_SIZE (FileName) - 1) {
- Index = ARRAY_SIZE (FileName) - 1;
- }
- FileName[Index] = L'\0';
- break;
- default:
- //
- // According to the ECMA-167 standard (3rd Edition - June 1997), Section
- // 14.16.1.1, all other values are reserved.
- //
- Status = EFI_VOLUME_CORRUPTED;
- goto Error_Find_File;
+ FileName[Index] = L'\0';
+ break;
+ default:
+ //
+ // According to the ECMA-167 standard (3rd Edition - June 1997), Section
+ // 14.16.1.1, all other values are reserved.
+ //
+ Status = EFI_VOLUME_CORRUPTED;
+ goto Error_Find_File;
}
//
// Find file from the read filename in symlink's file data.
//
Status = InternalFindFile (
- BlockIo,
- DiskIo,
- Volume,
- FileName,
- &PreviousFile,
- NULL,
- File
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ FileName,
+ &PreviousFile,
+ NULL,
+ File
+ );
if (EFI_ERROR (Status)) {
goto Error_Find_File;
}
- Next_Path_Component:
+Next_Path_Component:
Data += sizeof (UDF_PATH_COMPONENT) + PathCompLength;
if (Data >= EndData) {
break;
@@ -2294,10 +2336,16 @@ ResolveSymlink (
goto Error_Find_File;
}
- NotParent = (CompareMem ((VOID *)&PreviousFile, (VOID *)Parent,
- sizeof (UDF_FILE_INFO)) != 0);
- NotFile = (CompareMem ((VOID *)&PreviousFile, (VOID *)File,
- sizeof (UDF_FILE_INFO)) != 0);
+ NotParent = (CompareMem (
+ (VOID *)&PreviousFile,
+ (VOID *)Parent,
+ sizeof (UDF_FILE_INFO)
+ ) != 0);
+ NotFile = (CompareMem (
+ (VOID *)&PreviousFile,
+ (VOID *)File,
+ sizeof (UDF_FILE_INFO)
+ ) != 0);
if (NotParent && NotFile) {
CleanupFileInformation (&PreviousFile);
@@ -2323,8 +2371,12 @@ ResolveSymlink (
return EFI_SUCCESS;
Error_Find_File:
- if (CompareMem ((VOID *)&PreviousFile, (VOID *)Parent,
- sizeof (UDF_FILE_INFO)) != 0) {
+ if (CompareMem (
+ (VOID *)&PreviousFile,
+ (VOID *)Parent,
+ sizeof (UDF_FILE_INFO)
+ ) != 0)
+ {
CleanupFileInformation (&PreviousFile);
}
@@ -2341,12 +2393,13 @@ Error_Find_File:
**/
VOID
CleanupFileInformation (
- IN UDF_FILE_INFO *File
+ IN UDF_FILE_INFO *File
)
{
if (File->FileEntry != NULL) {
FreePool (File->FileEntry);
}
+
if (File->FileIdentifierDesc != NULL) {
FreePool ((VOID *)File->FileIdentifierDesc);
}
@@ -2387,13 +2440,13 @@ GetFileSize (
ReadFileInfo.Flags = ReadFileGetFileSize;
Status = ReadFile (
- BlockIo,
- DiskIo,
- Volume,
- &File->FileIdentifierDesc->Icb,
- File->FileEntry,
- &ReadFileInfo
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &File->FileIdentifierDesc->Icb,
+ File->FileEntry,
+ &ReadFileInfo
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -2453,10 +2506,10 @@ SetFileInfo (
// Buffer now contains room enough to store EFI_FILE_INFO structure.
// Now, fill it in with all necessary information about the file.
//
- FileInfo = (EFI_FILE_INFO *)Buffer;
- FileInfo->Size = FileInfoLength;
- FileInfo->Attribute &= ~EFI_FILE_VALID_ATTR;
- FileInfo->Attribute |= EFI_FILE_READ_ONLY;
+ FileInfo = (EFI_FILE_INFO *)Buffer;
+ FileInfo->Size = FileInfoLength;
+ FileInfo->Attribute &= ~EFI_FILE_VALID_ATTR;
+ FileInfo->Attribute |= EFI_FILE_READ_ONLY;
if (IS_FID_DIRECTORY_FILE (File->FileIdentifierDesc)) {
FileInfo->Attribute |= EFI_FILE_DIRECTORY;
@@ -2480,32 +2533,32 @@ SetFileInfo (
FileInfo->Attribute |= EFI_FILE_SYSTEM;
}
- FileInfo->FileSize = FileSize;
- FileInfo->PhysicalSize = FileSize;
-
- FileInfo->CreateTime.Year = FileEntry->AccessTime.Year;
- FileInfo->CreateTime.Month = FileEntry->AccessTime.Month;
- FileInfo->CreateTime.Day = FileEntry->AccessTime.Day;
- FileInfo->CreateTime.Hour = FileEntry->AccessTime.Hour;
- FileInfo->CreateTime.Minute = FileEntry->AccessTime.Minute;
- FileInfo->CreateTime.Second = FileEntry->AccessTime.Second;
- FileInfo->CreateTime.Nanosecond =
- FileEntry->AccessTime.HundredsOfMicroseconds;
-
- FileInfo->LastAccessTime.Year =
- FileEntry->AccessTime.Year;
- FileInfo->LastAccessTime.Month =
- FileEntry->AccessTime.Month;
- FileInfo->LastAccessTime.Day =
- FileEntry->AccessTime.Day;
- FileInfo->LastAccessTime.Hour =
- FileEntry->AccessTime.Hour;
- FileInfo->LastAccessTime.Minute =
- FileEntry->AccessTime.Minute;
- FileInfo->LastAccessTime.Second =
- FileEntry->AccessTime.Second;
- FileInfo->LastAccessTime.Nanosecond =
- FileEntry->AccessTime.HundredsOfMicroseconds;
+ FileInfo->FileSize = FileSize;
+ FileInfo->PhysicalSize = FileSize;
+
+ FileInfo->CreateTime.Year = FileEntry->AccessTime.Year;
+ FileInfo->CreateTime.Month = FileEntry->AccessTime.Month;
+ FileInfo->CreateTime.Day = FileEntry->AccessTime.Day;
+ FileInfo->CreateTime.Hour = FileEntry->AccessTime.Hour;
+ FileInfo->CreateTime.Minute = FileEntry->AccessTime.Minute;
+ FileInfo->CreateTime.Second = FileEntry->AccessTime.Second;
+ FileInfo->CreateTime.Nanosecond =
+ FileEntry->AccessTime.HundredsOfMicroseconds;
+
+ FileInfo->LastAccessTime.Year =
+ FileEntry->AccessTime.Year;
+ FileInfo->LastAccessTime.Month =
+ FileEntry->AccessTime.Month;
+ FileInfo->LastAccessTime.Day =
+ FileEntry->AccessTime.Day;
+ FileInfo->LastAccessTime.Hour =
+ FileEntry->AccessTime.Hour;
+ FileInfo->LastAccessTime.Minute =
+ FileEntry->AccessTime.Minute;
+ FileInfo->LastAccessTime.Second =
+ FileEntry->AccessTime.Second;
+ FileInfo->LastAccessTime.Nanosecond =
+ FileEntry->AccessTime.HundredsOfMicroseconds;
} else if (DescriptorTag->TagIdentifier == UdfExtendedFileEntry) {
ExtendedFileEntry = (UDF_EXTENDED_FILE_ENTRY *)File->FileEntry;
@@ -2516,42 +2569,44 @@ SetFileInfo (
FileInfo->Attribute |= EFI_FILE_SYSTEM;
}
- FileInfo->FileSize = FileSize;
- FileInfo->PhysicalSize = FileSize;
-
- FileInfo->CreateTime.Year = ExtendedFileEntry->CreationTime.Year;
- FileInfo->CreateTime.Month = ExtendedFileEntry->CreationTime.Month;
- FileInfo->CreateTime.Day = ExtendedFileEntry->CreationTime.Day;
- FileInfo->CreateTime.Hour = ExtendedFileEntry->CreationTime.Hour;
- FileInfo->CreateTime.Minute = ExtendedFileEntry->CreationTime.Second;
- FileInfo->CreateTime.Second = ExtendedFileEntry->CreationTime.Second;
- FileInfo->CreateTime.Nanosecond =
- ExtendedFileEntry->AccessTime.HundredsOfMicroseconds;
-
- FileInfo->LastAccessTime.Year =
- ExtendedFileEntry->AccessTime.Year;
- FileInfo->LastAccessTime.Month =
- ExtendedFileEntry->AccessTime.Month;
- FileInfo->LastAccessTime.Day =
- ExtendedFileEntry->AccessTime.Day;
- FileInfo->LastAccessTime.Hour =
- ExtendedFileEntry->AccessTime.Hour;
- FileInfo->LastAccessTime.Minute =
- ExtendedFileEntry->AccessTime.Minute;
- FileInfo->LastAccessTime.Second =
- ExtendedFileEntry->AccessTime.Second;
- FileInfo->LastAccessTime.Nanosecond =
- ExtendedFileEntry->AccessTime.HundredsOfMicroseconds;
- }
-
- FileInfo->CreateTime.TimeZone = EFI_UNSPECIFIED_TIMEZONE;
- FileInfo->CreateTime.Daylight = EFI_TIME_ADJUST_DAYLIGHT;
- FileInfo->LastAccessTime.TimeZone = EFI_UNSPECIFIED_TIMEZONE;
- FileInfo->LastAccessTime.Daylight = EFI_TIME_ADJUST_DAYLIGHT;
-
- CopyMem ((VOID *)&FileInfo->ModificationTime,
- (VOID *)&FileInfo->LastAccessTime,
- sizeof (EFI_TIME));
+ FileInfo->FileSize = FileSize;
+ FileInfo->PhysicalSize = FileSize;
+
+ FileInfo->CreateTime.Year = ExtendedFileEntry->CreationTime.Year;
+ FileInfo->CreateTime.Month = ExtendedFileEntry->CreationTime.Month;
+ FileInfo->CreateTime.Day = ExtendedFileEntry->CreationTime.Day;
+ FileInfo->CreateTime.Hour = ExtendedFileEntry->CreationTime.Hour;
+ FileInfo->CreateTime.Minute = ExtendedFileEntry->CreationTime.Second;
+ FileInfo->CreateTime.Second = ExtendedFileEntry->CreationTime.Second;
+ FileInfo->CreateTime.Nanosecond =
+ ExtendedFileEntry->AccessTime.HundredsOfMicroseconds;
+
+ FileInfo->LastAccessTime.Year =
+ ExtendedFileEntry->AccessTime.Year;
+ FileInfo->LastAccessTime.Month =
+ ExtendedFileEntry->AccessTime.Month;
+ FileInfo->LastAccessTime.Day =
+ ExtendedFileEntry->AccessTime.Day;
+ FileInfo->LastAccessTime.Hour =
+ ExtendedFileEntry->AccessTime.Hour;
+ FileInfo->LastAccessTime.Minute =
+ ExtendedFileEntry->AccessTime.Minute;
+ FileInfo->LastAccessTime.Second =
+ ExtendedFileEntry->AccessTime.Second;
+ FileInfo->LastAccessTime.Nanosecond =
+ ExtendedFileEntry->AccessTime.HundredsOfMicroseconds;
+ }
+
+ FileInfo->CreateTime.TimeZone = EFI_UNSPECIFIED_TIMEZONE;
+ FileInfo->CreateTime.Daylight = EFI_TIME_ADJUST_DAYLIGHT;
+ FileInfo->LastAccessTime.TimeZone = EFI_UNSPECIFIED_TIMEZONE;
+ FileInfo->LastAccessTime.Daylight = EFI_TIME_ADJUST_DAYLIGHT;
+
+ CopyMem (
+ (VOID *)&FileInfo->ModificationTime,
+ (VOID *)&FileInfo->LastAccessTime,
+ sizeof (EFI_TIME)
+ );
if (FileName != NULL) {
StrCpyS (FileInfo->FileName, StrLen (FileName) + 1, FileName);
@@ -2643,6 +2698,7 @@ GetVolumeLabel (
if (Index > CharMax - 1) {
Index = CharMax - 1;
}
+
StringBak[Index] = L'\0';
return EFI_SUCCESS;
@@ -2697,7 +2753,8 @@ GetVolumeSize (
ExtentAd = &LogicalVolDesc->IntegritySequenceExtent;
if ((ExtentAd->ExtentLength == 0) ||
- (ExtentAd->ExtentLength < sizeof (UDF_LOGICAL_VOLUME_INTEGRITY))) {
+ (ExtentAd->ExtentLength < sizeof (UDF_LOGICAL_VOLUME_INTEGRITY)))
+ {
return EFI_VOLUME_CORRUPTED;
}
@@ -2717,12 +2774,12 @@ GetVolumeSize (
// Read disk block
//
Status = DiskIo->ReadDisk (
- DiskIo,
- BlockIo->Media->MediaId,
- MultU64x32 (Lsn, LogicalBlockSize),
- ExtentAd->ExtentLength,
- LogicalVolInt
- );
+ DiskIo,
+ BlockIo->Media->MediaId,
+ MultU64x32 (Lsn, LogicalBlockSize),
+ ExtentAd->ExtentLength,
+ LogicalVolInt
+ );
if (EFI_ERROR (Status)) {
goto Out_Free;
}
@@ -2739,12 +2796,13 @@ GetVolumeSize (
if ((LogicalVolInt->NumberOfPartitions > MAX_UINT32 / sizeof (UINT32) / 2) ||
(LogicalVolInt->NumberOfPartitions * sizeof (UINT32) * 2 >
- ExtentAd->ExtentLength - sizeof (UDF_LOGICAL_VOLUME_INTEGRITY))) {
+ ExtentAd->ExtentLength - sizeof (UDF_LOGICAL_VOLUME_INTEGRITY)))
+ {
Status = EFI_VOLUME_CORRUPTED;
goto Out_Free;
}
- *VolumeSize = 0;
+ *VolumeSize = 0;
*FreeSpaceSize = 0;
Length = LogicalVolInt->NumberOfPartitions;
@@ -2756,6 +2814,7 @@ GetVolumeSize (
if (LsnsNo == 0xFFFFFFFFUL) {
continue;
}
+
//
// Accumulate free space size
//
@@ -2763,7 +2822,7 @@ GetVolumeSize (
}
Length = LogicalVolInt->NumberOfPartitions * sizeof (UINT32) * 2;
- for (; Index < Length; Index += sizeof (UINT32)) {
+ for ( ; Index < Length; Index += sizeof (UINT32)) {
LsnsNo = *(UINT32 *)((UINT8 *)LogicalVolInt->Data + Index);
//
// Check if size is not specified
@@ -2771,6 +2830,7 @@ GetVolumeSize (
if (LsnsNo == 0xFFFFFFFFUL) {
continue;
}
+
//
// Accumulate used volume space
//
@@ -2824,26 +2884,26 @@ ReadFileData (
EFI_STATUS Status;
UDF_READ_FILE_INFO ReadFileInfo;
- ReadFileInfo.Flags = ReadFileSeekAndRead;
- ReadFileInfo.FilePosition = *FilePosition;
- ReadFileInfo.FileData = Buffer;
- ReadFileInfo.FileDataSize = *BufferSize;
- ReadFileInfo.FileSize = FileSize;
+ ReadFileInfo.Flags = ReadFileSeekAndRead;
+ ReadFileInfo.FilePosition = *FilePosition;
+ ReadFileInfo.FileData = Buffer;
+ ReadFileInfo.FileDataSize = *BufferSize;
+ ReadFileInfo.FileSize = FileSize;
Status = ReadFile (
- BlockIo,
- DiskIo,
- Volume,
- &File->FileIdentifierDesc->Icb,
- File->FileEntry,
- &ReadFileInfo
- );
+ BlockIo,
+ DiskIo,
+ Volume,
+ &File->FileIdentifierDesc->Icb,
+ File->FileEntry,
+ &ReadFileInfo
+ );
if (EFI_ERROR (Status)) {
return Status;
}
- *BufferSize = ReadFileInfo.FileDataSize;
- *FilePosition = ReadFileInfo.FilePosition;
+ *BufferSize = ReadFileInfo.FileDataSize;
+ *FilePosition = ReadFileInfo.FilePosition;
return EFI_SUCCESS;
}
@@ -2874,13 +2934,13 @@ SupportUdfFileSystem (
// Open Device Path protocol on ControllerHandle
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- (VOID **)&DevicePath,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ (VOID **)&DevicePath,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
@@ -2891,18 +2951,20 @@ SupportUdfFileSystem (
// Get last Device Path node
//
LastDevicePathNode = NULL;
- DevicePathNode = DevicePath;
+ DevicePathNode = DevicePath;
while (!IsDevicePathEnd (DevicePathNode)) {
LastDevicePathNode = DevicePathNode;
- DevicePathNode = NextDevicePathNode (DevicePathNode);
+ DevicePathNode = NextDevicePathNode (DevicePathNode);
}
+
//
// Check if last Device Path node contains a Vendor-Defined Media Device Path
// of an UDF file system.
//
- if (LastDevicePathNode != NULL &&
- DevicePathType (LastDevicePathNode) == MEDIA_DEVICE_PATH &&
- DevicePathSubType (LastDevicePathNode) == MEDIA_VENDOR_DP) {
+ if ((LastDevicePathNode != NULL) &&
+ (DevicePathType (LastDevicePathNode) == MEDIA_DEVICE_PATH) &&
+ (DevicePathSubType (LastDevicePathNode) == MEDIA_VENDOR_DP))
+ {
VendorDefinedGuid = (EFI_GUID *)((UINTN)LastDevicePathNode +
OFFSET_OF (VENDOR_DEVICE_PATH, Guid));
if (CompareGuid (VendorDefinedGuid, &gUdfDevPathGuid)) {
@@ -2914,11 +2976,11 @@ SupportUdfFileSystem (
// Close Device Path protocol on ControllerHandle
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
return Status;
}
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/Udf.c b/MdeModulePkg/Universal/Disk/UdfDxe/Udf.c
index d15f449..0be6ac0 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/Udf.c
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/Udf.c
@@ -11,7 +11,7 @@
//
// UDF filesystem driver's Global Variables.
//
-EFI_DRIVER_BINDING_PROTOCOL gUdfDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL gUdfDriverBinding = {
UdfDriverBindingSupported,
UdfDriverBindingStart,
UdfDriverBindingStop,
@@ -20,7 +20,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUdfDriverBinding = {
NULL
};
-EFI_SIMPLE_FILE_SYSTEM_PROTOCOL gUdfSimpleFsTemplate = {
+EFI_SIMPLE_FILE_SYSTEM_PROTOCOL gUdfSimpleFsTemplate = {
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION,
UdfOpenVolume
};
@@ -55,13 +55,13 @@ UdfDriverBindingSupported (
// Open DiskIo protocol on ControllerHandle
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- (VOID **)&DiskIo,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_BY_DRIVER
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ (VOID **)&DiskIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -70,23 +70,23 @@ UdfDriverBindingSupported (
// Close DiskIo protocol on ControllerHandle
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
//
// Test whether ControllerHandle supports BlockIo protocol
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiBlockIoProtocolGuid,
- NULL,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL
- );
+ ControllerHandle,
+ &gEfiBlockIoProtocolGuid,
+ NULL,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_TEST_PROTOCOL
+ );
return Status;
}
@@ -127,26 +127,26 @@ UdfDriverBindingStart (
// Open BlockIo protocol on ControllerHandle
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiBlockIoProtocolGuid,
- (VOID **)&BlockIo,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ ControllerHandle,
+ &gEfiBlockIoProtocolGuid,
+ (VOID **)&BlockIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
ASSERT_EFI_ERROR (Status);
//
// Open DiskIo protocol on ControllerHandle
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- (VOID **)&DiskIo,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_BY_DRIVER
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ (VOID **)&DiskIo,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
ASSERT_EFI_ERROR (Status);
//
@@ -179,18 +179,21 @@ UdfDriverBindingStart (
//
// Set up SimpleFs protocol
//
- CopyMem ((VOID *)&PrivFsData->SimpleFs, (VOID *)&gUdfSimpleFsTemplate,
- sizeof (EFI_SIMPLE_FILE_SYSTEM_PROTOCOL));
+ CopyMem (
+ (VOID *)&PrivFsData->SimpleFs,
+ (VOID *)&gUdfSimpleFsTemplate,
+ sizeof (EFI_SIMPLE_FILE_SYSTEM_PROTOCOL)
+ );
//
// Install child handle
//
Status = gBS->InstallMultipleProtocolInterfaces (
- &PrivFsData->Handle,
- &gEfiSimpleFileSystemProtocolGuid,
- &PrivFsData->SimpleFs,
- NULL
- );
+ &PrivFsData->Handle,
+ &gEfiSimpleFileSystemProtocolGuid,
+ &PrivFsData->SimpleFs,
+ NULL
+ );
Exit:
if (EFI_ERROR (Status)) {
@@ -198,20 +201,20 @@ Exit:
// Close DiskIo protocol on ControllerHandle
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
//
// Close BlockIo protocol on ControllerHandle
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiBlockIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiBlockIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
}
gBS->RestoreTPL (OldTpl);
@@ -236,27 +239,27 @@ Exit:
EFI_STATUS
EFIAPI
UdfDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- PRIVATE_UDF_SIMPLE_FS_DATA *PrivFsData;
- EFI_STATUS Status;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
+ PRIVATE_UDF_SIMPLE_FS_DATA *PrivFsData;
+ EFI_STATUS Status;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
//
// Open SimpleFs protocol on ControllerHandle
//
Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiSimpleFileSystemProtocolGuid,
- (VOID **)&SimpleFs,
- This->DriverBindingHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ ControllerHandle,
+ &gEfiSimpleFileSystemProtocolGuid,
+ (VOID **)&SimpleFs,
+ This->DriverBindingHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (!EFI_ERROR (Status)) {
PrivFsData = PRIVATE_UDF_SIMPLE_FS_DATA_FROM_THIS (SimpleFs);
@@ -264,11 +267,11 @@ UdfDriverBindingStop (
// Uninstall child handle
//
Status = gBS->UninstallMultipleProtocolInterfaces (
- PrivFsData->Handle,
- &gEfiSimpleFileSystemProtocolGuid,
- &PrivFsData->SimpleFs,
- NULL
- );
+ PrivFsData->Handle,
+ &gEfiSimpleFileSystemProtocolGuid,
+ &PrivFsData->SimpleFs,
+ NULL
+ );
FreePool ((VOID *)PrivFsData);
}
@@ -278,20 +281,20 @@ UdfDriverBindingStop (
// Close DiskIo protocol on ControllerHandle
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiDiskIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiDiskIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
//
// Close BlockIo protocol on ControllerHandle
//
gBS->CloseProtocol (
- ControllerHandle,
- &gEfiBlockIoProtocolGuid,
- This->DriverBindingHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiBlockIoProtocolGuid,
+ This->DriverBindingHandle,
+ ControllerHandle
+ );
}
return Status;
@@ -311,20 +314,20 @@ UdfDriverBindingStop (
EFI_STATUS
EFIAPI
InitializeUdf (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = EfiLibInstallDriverBindingComponentName2 (
- ImageHandle,
- SystemTable,
- &gUdfDriverBinding,
- ImageHandle,
- &gUdfComponentName,
- &gUdfComponentName2
- );
+ ImageHandle,
+ SystemTable,
+ &gUdfDriverBinding,
+ ImageHandle,
+ &gUdfComponentName,
+ &gUdfComponentName2
+ );
ASSERT_EFI_ERROR (Status);
return Status;
diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/Udf.h b/MdeModulePkg/Universal/Disk/UdfDxe/Udf.h
index 6c623a9..8c0d551 100644
--- a/MdeModulePkg/Universal/Disk/UdfDxe/Udf.h
+++ b/MdeModulePkg/Universal/Disk/UdfDxe/Udf.h
@@ -51,9 +51,9 @@
((UDF_EXTENDED_FILE_ENTRY *)(_Ptr))->IcbTag.FileType)
typedef enum {
- UdfFileEntryDirectory = 4,
+ UdfFileEntryDirectory = 4,
UdfFileEntryStandardFile = 5,
- UdfFileEntrySymlink = 12,
+ UdfFileEntrySymlink = 12,
} UDF_FILE_ENTRY_TYPE;
#define HIDDEN_FILE (1 << 0)
@@ -120,12 +120,12 @@ typedef enum {
#define IS_VALID_COMPRESSION_ID(_CompId) \
((BOOLEAN)((_CompId) == 8 || (_CompId) == 16))
-#define UDF_STANDARD_IDENTIFIER_LENGTH 5
+#define UDF_STANDARD_IDENTIFIER_LENGTH 5
#pragma pack(1)
typedef struct {
- UINT8 StandardIdentifier[UDF_STANDARD_IDENTIFIER_LENGTH];
+ UINT8 StandardIdentifier[UDF_STANDARD_IDENTIFIER_LENGTH];
} UDF_STANDARD_IDENTIFIER;
#pragma pack()
@@ -137,174 +137,174 @@ typedef enum {
} UDF_READ_FILE_FLAGS;
typedef struct {
- VOID *FileData;
- UDF_READ_FILE_FLAGS Flags;
- UINT64 FileDataSize;
- UINT64 FilePosition;
- UINT64 FileSize;
- UINT64 ReadLength;
+ VOID *FileData;
+ UDF_READ_FILE_FLAGS Flags;
+ UINT64 FileDataSize;
+ UINT64 FilePosition;
+ UINT64 FileSize;
+ UINT64 ReadLength;
} UDF_READ_FILE_INFO;
#pragma pack(1)
typedef struct {
- UINT16 TypeAndTimezone;
- INT16 Year;
- UINT8 Month;
- UINT8 Day;
- UINT8 Hour;
- UINT8 Minute;
- UINT8 Second;
- UINT8 Centiseconds;
- UINT8 HundredsOfMicroseconds;
- UINT8 Microseconds;
+ UINT16 TypeAndTimezone;
+ INT16 Year;
+ UINT8 Month;
+ UINT8 Day;
+ UINT8 Hour;
+ UINT8 Minute;
+ UINT8 Second;
+ UINT8 Centiseconds;
+ UINT8 HundredsOfMicroseconds;
+ UINT8 Microseconds;
} UDF_TIMESTAMP;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UINT32 PrevAllocationExtentDescriptor;
- UINT32 LengthOfAllocationDescriptors;
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UINT32 PrevAllocationExtentDescriptor;
+ UINT32 LengthOfAllocationDescriptors;
} UDF_ALLOCATION_EXTENT_DESCRIPTOR;
typedef struct {
- UINT8 StructureType;
- UINT8 StandardIdentifier[UDF_STANDARD_IDENTIFIER_LENGTH];
- UINT8 StructureVersion;
- UINT8 Reserved;
- UINT8 StructureData[2040];
+ UINT8 StructureType;
+ UINT8 StandardIdentifier[UDF_STANDARD_IDENTIFIER_LENGTH];
+ UINT8 StructureVersion;
+ UINT8 Reserved;
+ UINT8 StructureData[2040];
} UDF_VOLUME_DESCRIPTOR;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UDF_TIMESTAMP RecordingDateTime;
- UINT32 IntegrityType;
- UDF_EXTENT_AD NextIntegrityExtent;
- UINT8 LogicalVolumeContentsUse[32];
- UINT32 NumberOfPartitions;
- UINT32 LengthOfImplementationUse;
- UINT8 Data[0];
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UDF_TIMESTAMP RecordingDateTime;
+ UINT32 IntegrityType;
+ UDF_EXTENT_AD NextIntegrityExtent;
+ UINT8 LogicalVolumeContentsUse[32];
+ UINT32 NumberOfPartitions;
+ UINT32 LengthOfImplementationUse;
+ UINT8 Data[0];
} UDF_LOGICAL_VOLUME_INTEGRITY;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UINT32 VolumeDescriptorSequenceNumber;
- UINT16 PartitionFlags;
- UINT16 PartitionNumber;
- UDF_ENTITY_ID PartitionContents;
- UINT8 PartitionContentsUse[128];
- UINT32 AccessType;
- UINT32 PartitionStartingLocation;
- UINT32 PartitionLength;
- UDF_ENTITY_ID ImplementationIdentifier;
- UINT8 ImplementationUse[128];
- UINT8 Reserved[156];
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UINT32 VolumeDescriptorSequenceNumber;
+ UINT16 PartitionFlags;
+ UINT16 PartitionNumber;
+ UDF_ENTITY_ID PartitionContents;
+ UINT8 PartitionContentsUse[128];
+ UINT32 AccessType;
+ UINT32 PartitionStartingLocation;
+ UINT32 PartitionLength;
+ UDF_ENTITY_ID ImplementationIdentifier;
+ UINT8 ImplementationUse[128];
+ UINT8 Reserved[156];
} UDF_PARTITION_DESCRIPTOR;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UDF_TIMESTAMP RecordingDateAndTime;
- UINT16 InterchangeLevel;
- UINT16 MaximumInterchangeLevel;
- UINT32 CharacterSetList;
- UINT32 MaximumCharacterSetList;
- UINT32 FileSetNumber;
- UINT32 FileSetDescriptorNumber;
- UDF_CHAR_SPEC LogicalVolumeIdentifierCharacterSet;
- UINT8 LogicalVolumeIdentifier[128];
- UDF_CHAR_SPEC FileSetCharacterSet;
- UINT8 FileSetIdentifier[32];
- UINT8 CopyrightFileIdentifier[32];
- UINT8 AbstractFileIdentifier[32];
- UDF_LONG_ALLOCATION_DESCRIPTOR RootDirectoryIcb;
- UDF_ENTITY_ID DomainIdentifier;
- UDF_LONG_ALLOCATION_DESCRIPTOR NextExtent;
- UDF_LONG_ALLOCATION_DESCRIPTOR SystemStreamDirectoryIcb;
- UINT8 Reserved[32];
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UDF_TIMESTAMP RecordingDateAndTime;
+ UINT16 InterchangeLevel;
+ UINT16 MaximumInterchangeLevel;
+ UINT32 CharacterSetList;
+ UINT32 MaximumCharacterSetList;
+ UINT32 FileSetNumber;
+ UINT32 FileSetDescriptorNumber;
+ UDF_CHAR_SPEC LogicalVolumeIdentifierCharacterSet;
+ UINT8 LogicalVolumeIdentifier[128];
+ UDF_CHAR_SPEC FileSetCharacterSet;
+ UINT8 FileSetIdentifier[32];
+ UINT8 CopyrightFileIdentifier[32];
+ UINT8 AbstractFileIdentifier[32];
+ UDF_LONG_ALLOCATION_DESCRIPTOR RootDirectoryIcb;
+ UDF_ENTITY_ID DomainIdentifier;
+ UDF_LONG_ALLOCATION_DESCRIPTOR NextExtent;
+ UDF_LONG_ALLOCATION_DESCRIPTOR SystemStreamDirectoryIcb;
+ UINT8 Reserved[32];
} UDF_FILE_SET_DESCRIPTOR;
typedef struct {
- UINT32 ExtentLength;
- UINT32 ExtentPosition;
+ UINT32 ExtentLength;
+ UINT32 ExtentPosition;
} UDF_SHORT_ALLOCATION_DESCRIPTOR;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UINT16 FileVersionNumber;
- UINT8 FileCharacteristics;
- UINT8 LengthOfFileIdentifier;
- UDF_LONG_ALLOCATION_DESCRIPTOR Icb;
- UINT16 LengthOfImplementationUse;
- UINT8 Data[0];
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UINT16 FileVersionNumber;
+ UINT8 FileCharacteristics;
+ UINT8 LengthOfFileIdentifier;
+ UDF_LONG_ALLOCATION_DESCRIPTOR Icb;
+ UINT16 LengthOfImplementationUse;
+ UINT8 Data[0];
} UDF_FILE_IDENTIFIER_DESCRIPTOR;
typedef struct {
- UINT32 PriorRecordNumberOfDirectEntries;
- UINT16 StrategyType;
- UINT16 StrategyParameter;
- UINT16 MaximumNumberOfEntries;
- UINT8 Reserved;
- UINT8 FileType;
- UDF_LB_ADDR ParentIcbLocation;
- UINT16 Flags;
+ UINT32 PriorRecordNumberOfDirectEntries;
+ UINT16 StrategyType;
+ UINT16 StrategyParameter;
+ UINT16 MaximumNumberOfEntries;
+ UINT8 Reserved;
+ UINT8 FileType;
+ UDF_LB_ADDR ParentIcbLocation;
+ UINT16 Flags;
} UDF_ICB_TAG;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UDF_ICB_TAG IcbTag;
- UINT32 Uid;
- UINT32 Gid;
- UINT32 Permissions;
- UINT16 FileLinkCount;
- UINT8 RecordFormat;
- UINT8 RecordDisplayAttributes;
- UINT32 RecordLength;
- UINT64 InformationLength;
- UINT64 LogicalBlocksRecorded;
- UDF_TIMESTAMP AccessTime;
- UDF_TIMESTAMP ModificationTime;
- UDF_TIMESTAMP AttributeTime;
- UINT32 CheckPoint;
- UDF_LONG_ALLOCATION_DESCRIPTOR ExtendedAttributeIcb;
- UDF_ENTITY_ID ImplementationIdentifier;
- UINT64 UniqueId;
- UINT32 LengthOfExtendedAttributes;
- UINT32 LengthOfAllocationDescriptors;
- UINT8 Data[0]; // L_EA + L_AD
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UDF_ICB_TAG IcbTag;
+ UINT32 Uid;
+ UINT32 Gid;
+ UINT32 Permissions;
+ UINT16 FileLinkCount;
+ UINT8 RecordFormat;
+ UINT8 RecordDisplayAttributes;
+ UINT32 RecordLength;
+ UINT64 InformationLength;
+ UINT64 LogicalBlocksRecorded;
+ UDF_TIMESTAMP AccessTime;
+ UDF_TIMESTAMP ModificationTime;
+ UDF_TIMESTAMP AttributeTime;
+ UINT32 CheckPoint;
+ UDF_LONG_ALLOCATION_DESCRIPTOR ExtendedAttributeIcb;
+ UDF_ENTITY_ID ImplementationIdentifier;
+ UINT64 UniqueId;
+ UINT32 LengthOfExtendedAttributes;
+ UINT32 LengthOfAllocationDescriptors;
+ UINT8 Data[0]; // L_EA + L_AD
} UDF_FILE_ENTRY;
typedef struct {
- UDF_DESCRIPTOR_TAG DescriptorTag;
- UDF_ICB_TAG IcbTag;
- UINT32 Uid;
- UINT32 Gid;
- UINT32 Permissions;
- UINT16 FileLinkCount;
- UINT8 RecordFormat;
- UINT8 RecordDisplayAttributes;
- UINT32 RecordLength;
- UINT64 InformationLength;
- UINT64 ObjectSize;
- UINT64 LogicalBlocksRecorded;
- UDF_TIMESTAMP AccessTime;
- UDF_TIMESTAMP ModificationTime;
- UDF_TIMESTAMP CreationTime;
- UDF_TIMESTAMP AttributeTime;
- UINT32 CheckPoint;
- UINT32 Reserved;
- UDF_LONG_ALLOCATION_DESCRIPTOR ExtendedAttributeIcb;
- UDF_LONG_ALLOCATION_DESCRIPTOR StreamDirectoryIcb;
- UDF_ENTITY_ID ImplementationIdentifier;
- UINT64 UniqueId;
- UINT32 LengthOfExtendedAttributes;
- UINT32 LengthOfAllocationDescriptors;
- UINT8 Data[0]; // L_EA + L_AD
+ UDF_DESCRIPTOR_TAG DescriptorTag;
+ UDF_ICB_TAG IcbTag;
+ UINT32 Uid;
+ UINT32 Gid;
+ UINT32 Permissions;
+ UINT16 FileLinkCount;
+ UINT8 RecordFormat;
+ UINT8 RecordDisplayAttributes;
+ UINT32 RecordLength;
+ UINT64 InformationLength;
+ UINT64 ObjectSize;
+ UINT64 LogicalBlocksRecorded;
+ UDF_TIMESTAMP AccessTime;
+ UDF_TIMESTAMP ModificationTime;
+ UDF_TIMESTAMP CreationTime;
+ UDF_TIMESTAMP AttributeTime;
+ UINT32 CheckPoint;
+ UINT32 Reserved;
+ UDF_LONG_ALLOCATION_DESCRIPTOR ExtendedAttributeIcb;
+ UDF_LONG_ALLOCATION_DESCRIPTOR StreamDirectoryIcb;
+ UDF_ENTITY_ID ImplementationIdentifier;
+ UINT64 UniqueId;
+ UINT32 LengthOfExtendedAttributes;
+ UINT32 LengthOfAllocationDescriptors;
+ UINT8 Data[0]; // L_EA + L_AD
} UDF_EXTENDED_FILE_ENTRY;
typedef struct {
- UINT8 ComponentType;
- UINT8 LengthOfComponentIdentifier;
- UINT16 ComponentFileVersionNumber;
- UINT8 ComponentIdentifier[0];
+ UINT8 ComponentType;
+ UINT8 LengthOfComponentIdentifier;
+ UINT16 ComponentFileVersionNumber;
+ UINT8 ComponentIdentifier[0];
} UDF_PATH_COMPONENT;
#pragma pack()
@@ -313,25 +313,25 @@ typedef struct {
// UDF filesystem driver's private data
//
typedef struct {
- UINT64 MainVdsStartLocation;
- UDF_LOGICAL_VOLUME_DESCRIPTOR LogicalVolDesc;
- UDF_PARTITION_DESCRIPTOR PartitionDesc;
- UDF_FILE_SET_DESCRIPTOR FileSetDesc;
- UINTN FileEntrySize;
+ UINT64 MainVdsStartLocation;
+ UDF_LOGICAL_VOLUME_DESCRIPTOR LogicalVolDesc;
+ UDF_PARTITION_DESCRIPTOR PartitionDesc;
+ UDF_FILE_SET_DESCRIPTOR FileSetDesc;
+ UINTN FileEntrySize;
} UDF_VOLUME_INFO;
typedef struct {
- VOID *FileEntry;
- UDF_FILE_IDENTIFIER_DESCRIPTOR *FileIdentifierDesc;
+ VOID *FileEntry;
+ UDF_FILE_IDENTIFIER_DESCRIPTOR *FileIdentifierDesc;
} UDF_FILE_INFO;
typedef struct {
- VOID *DirectoryData;
- UINT64 DirectoryLength;
- UINT64 FidOffset;
+ VOID *DirectoryData;
+ UINT64 DirectoryLength;
+ UINT64 FidOffset;
} UDF_READ_DIRECTORY_INFO;
-#define PRIVATE_UDF_FILE_DATA_SIGNATURE SIGNATURE_32 ('U', 'd', 'f', 'f')
+#define PRIVATE_UDF_FILE_DATA_SIGNATURE SIGNATURE_32 ('U', 'd', 'f', 'f')
#define PRIVATE_UDF_FILE_DATA_FROM_THIS(a) \
CR ( \
@@ -342,20 +342,20 @@ typedef struct {
)
typedef struct {
- UINTN Signature;
- BOOLEAN IsRootDirectory;
- UDF_FILE_INFO *Root;
- UDF_FILE_INFO File;
- UDF_READ_DIRECTORY_INFO ReadDirInfo;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
- EFI_FILE_PROTOCOL FileIo;
- CHAR16 AbsoluteFileName[UDF_PATH_LENGTH];
- CHAR16 FileName[UDF_FILENAME_LENGTH];
- UINT64 FileSize;
- UINT64 FilePosition;
+ UINTN Signature;
+ BOOLEAN IsRootDirectory;
+ UDF_FILE_INFO *Root;
+ UDF_FILE_INFO File;
+ UDF_READ_DIRECTORY_INFO ReadDirInfo;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs;
+ EFI_FILE_PROTOCOL FileIo;
+ CHAR16 AbsoluteFileName[UDF_PATH_LENGTH];
+ CHAR16 FileName[UDF_FILENAME_LENGTH];
+ UINT64 FileSize;
+ UINT64 FilePosition;
} PRIVATE_UDF_FILE_DATA;
-#define PRIVATE_UDF_SIMPLE_FS_DATA_SIGNATURE SIGNATURE_32 ('U', 'd', 'f', 's')
+#define PRIVATE_UDF_SIMPLE_FS_DATA_SIGNATURE SIGNATURE_32 ('U', 'd', 'f', 's')
#define PRIVATE_UDF_SIMPLE_FS_DATA_FROM_THIS(a) \
CR ( \
@@ -366,14 +366,14 @@ typedef struct {
)
typedef struct {
- UINTN Signature;
- EFI_BLOCK_IO_PROTOCOL *BlockIo;
- EFI_DISK_IO_PROTOCOL *DiskIo;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFs;
- UDF_VOLUME_INFO Volume;
- UDF_FILE_INFO Root;
- UINTN OpenFiles;
- EFI_HANDLE Handle;
+ UINTN Signature;
+ EFI_BLOCK_IO_PROTOCOL *BlockIo;
+ EFI_DISK_IO_PROTOCOL *DiskIo;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFs;
+ UDF_VOLUME_INFO Volume;
+ UDF_FILE_INFO Root;
+ UINTN OpenFiles;
+ EFI_HANDLE Handle;
} PRIVATE_UDF_SIMPLE_FS_DATA;
//
@@ -472,7 +472,7 @@ UdfRead (
EFI_STATUS
EFIAPI
UdfClose (
- IN EFI_FILE_PROTOCOL *This
+ IN EFI_FILE_PROTOCOL *This
);
/**
@@ -630,7 +630,7 @@ UdfSetInfo (
EFI_STATUS
EFIAPI
UdfFlush (
- IN EFI_FILE_PROTOCOL *This
+ IN EFI_FILE_PROTOCOL *This
);
/**
@@ -838,7 +838,7 @@ ResolveSymlink (
**/
VOID
CleanupFileInformation (
- IN UDF_FILE_INFO *File
+ IN UDF_FILE_INFO *File
);
/**
@@ -1013,7 +1013,7 @@ SupportUdfFileSystem (
**/
CHAR16 *
MangleFileName (
- IN CHAR16 *FileName
+ IN CHAR16 *FileName
);
/**
@@ -1078,15 +1078,16 @@ UdfDriverBindingStart (
EFI_STATUS
EFIAPI
UdfDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
//
// EFI Component Name Functions
//
+
/**
Retrieves a Unicode string that is the user readable name of the driver.
diff --git a/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.c b/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.c
index b959cb1..ada4825 100644
--- a/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.c
+++ b/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.c
@@ -6,14 +6,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "UnicodeCollationEng.h"
-CHAR8 mEngUpperMap[MAP_TABLE_SIZE];
-CHAR8 mEngLowerMap[MAP_TABLE_SIZE];
-CHAR8 mEngInfoMap[MAP_TABLE_SIZE];
+CHAR8 mEngUpperMap[MAP_TABLE_SIZE];
+CHAR8 mEngLowerMap[MAP_TABLE_SIZE];
+CHAR8 mEngInfoMap[MAP_TABLE_SIZE];
-CHAR8 mOtherChars[] = {
+CHAR8 mOtherChars[] = {
'0',
'1',
'2',
@@ -89,8 +88,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_COLLATION_PROTOCOL Unicode2Eng = {
EFI_STATUS
EFIAPI
InitializeUnicodeCollationEng (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -101,23 +100,22 @@ InitializeUnicodeCollationEng (
// Initialize mapping tables for the supported languages
//
for (Index = 0; Index < MAP_TABLE_SIZE; Index++) {
- mEngUpperMap[Index] = (CHAR8) Index;
- mEngLowerMap[Index] = (CHAR8) Index;
+ mEngUpperMap[Index] = (CHAR8)Index;
+ mEngLowerMap[Index] = (CHAR8)Index;
mEngInfoMap[Index] = 0;
- if ((Index >= 'a' && Index <= 'z') || (Index >= 0xe0 && Index <= 0xf6) || (Index >= 0xf8 && Index <= 0xfe)) {
-
- Index2 = Index - 0x20;
- mEngUpperMap[Index] = (CHAR8) Index2;
- mEngLowerMap[Index2] = (CHAR8) Index;
+ if (((Index >= 'a') && (Index <= 'z')) || ((Index >= 0xe0) && (Index <= 0xf6)) || ((Index >= 0xf8) && (Index <= 0xfe))) {
+ Index2 = Index - 0x20;
+ mEngUpperMap[Index] = (CHAR8)Index2;
+ mEngLowerMap[Index2] = (CHAR8)Index;
- mEngInfoMap[Index] |= CHAR_FAT_VALID;
+ mEngInfoMap[Index] |= CHAR_FAT_VALID;
mEngInfoMap[Index2] |= CHAR_FAT_VALID;
}
}
for (Index = 0; mOtherChars[Index] != 0; Index++) {
- Index2 = mOtherChars[Index];
+ Index2 = mOtherChars[Index];
mEngInfoMap[Index2] |= CHAR_FAT_VALID;
}
@@ -163,7 +161,6 @@ InitializeUnicodeCollationEng (
return Status;
}
-
/**
Performs a case-insensitive comparison of two Null-terminated strings.
@@ -179,9 +176,9 @@ InitializeUnicodeCollationEng (
INTN
EFIAPI
EngStriColl (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN CHAR16 *Str1,
- IN CHAR16 *Str2
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN CHAR16 *Str1,
+ IN CHAR16 *Str2
)
{
while (*Str1 != 0) {
@@ -196,7 +193,6 @@ EngStriColl (
return TO_UPPER (*Str1) - TO_UPPER (*Str2);
}
-
/**
Converts all the characters in a Null-terminated string to
lower case characters.
@@ -208,8 +204,8 @@ EngStriColl (
VOID
EFIAPI
EngStrLwr (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN OUT CHAR16 *Str
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN OUT CHAR16 *Str
)
{
while (*Str != 0) {
@@ -218,7 +214,6 @@ EngStrLwr (
}
}
-
/**
Converts all the characters in a Null-terminated string to upper
case characters.
@@ -230,8 +225,8 @@ EngStrLwr (
VOID
EFIAPI
EngStrUpr (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN OUT CHAR16 *Str
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN OUT CHAR16 *Str
)
{
while (*Str != 0) {
@@ -255,128 +250,128 @@ EngStrUpr (
BOOLEAN
EFIAPI
EngMetaiMatch (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN CHAR16 *String,
- IN CHAR16 *Pattern
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN CHAR16 *String,
+ IN CHAR16 *Pattern
)
{
CHAR16 CharC;
CHAR16 CharP;
CHAR16 Index3;
- for (;;) {
- CharP = *Pattern;
+ for ( ; ;) {
+ CharP = *Pattern;
Pattern += 1;
switch (CharP) {
- case 0:
- //
- // End of pattern. If end of string, TRUE match
- //
- if (*String != 0) {
- return FALSE;
- } else {
- return TRUE;
- }
-
- case '*':
- //
- // Match zero or more chars
- //
- while (*String != 0) {
- if (EngMetaiMatch (This, String, Pattern)) {
+ case 0:
+ //
+ // End of pattern. If end of string, TRUE match
+ //
+ if (*String != 0) {
+ return FALSE;
+ } else {
return TRUE;
}
- String += 1;
- }
-
- return EngMetaiMatch (This, String, Pattern);
+ case '*':
+ //
+ // Match zero or more chars
+ //
+ while (*String != 0) {
+ if (EngMetaiMatch (This, String, Pattern)) {
+ return TRUE;
+ }
- case '?':
- //
- // Match any one char
- //
- if (*String == 0) {
- return FALSE;
- }
+ String += 1;
+ }
- String += 1;
- break;
+ return EngMetaiMatch (This, String, Pattern);
- case '[':
- //
- // Match char set
- //
- CharC = *String;
- if (CharC == 0) {
+ case '?':
//
- // syntax problem
+ // Match any one char
//
- return FALSE;
- }
-
- Index3 = 0;
- CharP = *Pattern++;
- while (CharP != 0) {
- if (CharP == ']') {
+ if (*String == 0) {
return FALSE;
}
- if (CharP == '-') {
+ String += 1;
+ break;
+
+ case '[':
+ //
+ // Match char set
+ //
+ CharC = *String;
+ if (CharC == 0) {
//
- // if range of chars, get high range
+ // syntax problem
//
- CharP = *Pattern;
- if (CharP == 0 || CharP == ']') {
+ return FALSE;
+ }
+
+ Index3 = 0;
+ CharP = *Pattern++;
+ while (CharP != 0) {
+ if (CharP == ']') {
+ return FALSE;
+ }
+
+ if (CharP == '-') {
//
- // syntax problem
+ // if range of chars, get high range
//
- return FALSE;
+ CharP = *Pattern;
+ if ((CharP == 0) || (CharP == ']')) {
+ //
+ // syntax problem
+ //
+ return FALSE;
+ }
+
+ if ((TO_UPPER (CharC) >= TO_UPPER (Index3)) && (TO_UPPER (CharC) <= TO_UPPER (CharP))) {
+ //
+ // if in range, it's a match
+ //
+ break;
+ }
}
- if (TO_UPPER (CharC) >= TO_UPPER (Index3) && TO_UPPER (CharC) <= TO_UPPER (CharP)) {
+ Index3 = CharP;
+ if (TO_UPPER (CharC) == TO_UPPER (CharP)) {
//
- // if in range, it's a match
+ // if char matches
//
break;
}
- }
- Index3 = CharP;
- if (TO_UPPER (CharC) == TO_UPPER (CharP)) {
- //
- // if char matches
- //
- break;
+ CharP = *Pattern++;
}
- CharP = *Pattern++;
- }
- //
- // skip to end of match char set
- //
- while ((CharP != 0) && (CharP != ']')) {
- CharP = *Pattern;
- Pattern += 1;
- }
+ //
+ // skip to end of match char set
+ //
+ while ((CharP != 0) && (CharP != ']')) {
+ CharP = *Pattern;
+ Pattern += 1;
+ }
- String += 1;
- break;
+ String += 1;
+ break;
- default:
- CharC = *String;
- if (TO_UPPER (CharC) != TO_UPPER (CharP)) {
- return FALSE;
- }
+ default:
+ CharC = *String;
+ if (TO_UPPER (CharC) != TO_UPPER (CharP)) {
+ return FALSE;
+ }
- String += 1;
- break;
+ String += 1;
+ break;
}
}
}
-
/**
Converts an 8.3 FAT file name in an OEM character set to a Null-terminated string.
@@ -391,26 +386,25 @@ EngMetaiMatch (
VOID
EFIAPI
EngFatToStr (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN UINTN FatSize,
- IN CHAR8 *Fat,
- OUT CHAR16 *String
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN UINTN FatSize,
+ IN CHAR8 *Fat,
+ OUT CHAR16 *String
)
{
//
// No DBCS issues, just expand and add null terminate to end of string
//
while ((*Fat != 0) && (FatSize != 0)) {
- *String = *Fat;
- String += 1;
- Fat += 1;
+ *String = *Fat;
+ String += 1;
+ Fat += 1;
FatSize -= 1;
}
*String = 0;
}
-
/**
Converts a Null-terminated string to legal characters in a FAT
filename using an OEM character set.
@@ -429,37 +423,38 @@ EngFatToStr (
BOOLEAN
EFIAPI
EngStrToFat (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN CHAR16 *String,
- IN UINTN FatSize,
- OUT CHAR8 *Fat
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN CHAR16 *String,
+ IN UINTN FatSize,
+ OUT CHAR8 *Fat
)
{
- BOOLEAN SpecialCharExist;
+ BOOLEAN SpecialCharExist;
SpecialCharExist = FALSE;
while ((*String != 0) && (FatSize != 0)) {
//
// Skip '.' or ' ' when making a fat name
//
- if (*String != '.' && *String != ' ') {
+ if ((*String != '.') && (*String != ' ')) {
//
// If this is a valid fat char, move it.
// Otherwise, move a '_' and flag the fact that the name needs a long file name.
//
- if (*String < MAP_TABLE_SIZE && ((mEngInfoMap[*String] & CHAR_FAT_VALID) != 0)) {
+ if ((*String < MAP_TABLE_SIZE) && ((mEngInfoMap[*String] & CHAR_FAT_VALID) != 0)) {
*Fat = mEngUpperMap[*String];
} else {
- *Fat = '_';
- SpecialCharExist = TRUE;
+ *Fat = '_';
+ SpecialCharExist = TRUE;
}
- Fat += 1;
+ Fat += 1;
FatSize -= 1;
}
String += 1;
}
+
//
// Do not terminate that fat string
//
diff --git a/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.h b/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.h
index 8a38909..bc32e29 100644
--- a/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.h
+++ b/MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.h
@@ -9,8 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _UNICODE_COLLATION_ENG_H_
#define _UNICODE_COLLATION_ENG_H_
-
-
#include <Uefi.h>
#include <Protocol/UnicodeCollation.h>
@@ -33,16 +31,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Macro to map character a to upper case.
//
-#define TO_UPPER(a) (CHAR16) ((a) <= 0xFF ? mEngUpperMap[a] : (a))
+#define TO_UPPER(a) (CHAR16) ((a) <= 0xFF ? mEngUpperMap[a] : (a))
//
// Macro to map character a to lower case.
//
-#define TO_LOWER(a) (CHAR16) ((a) <= 0xFF ? mEngLowerMap[a] : (a))
+#define TO_LOWER(a) (CHAR16) ((a) <= 0xFF ? mEngLowerMap[a] : (a))
//
// Prototypes
//
+
/**
Performs a case-insensitive comparison of two Null-terminated strings.
@@ -58,9 +57,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
INTN
EFIAPI
EngStriColl (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN CHAR16 *Str1,
- IN CHAR16 *Str2
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN CHAR16 *Str1,
+ IN CHAR16 *Str2
);
/**
@@ -78,9 +77,9 @@ EngStriColl (
BOOLEAN
EFIAPI
EngMetaiMatch (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN CHAR16 *String,
- IN CHAR16 *Pattern
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN CHAR16 *String,
+ IN CHAR16 *Pattern
);
/**
@@ -94,8 +93,8 @@ EngMetaiMatch (
VOID
EFIAPI
EngStrLwr (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN OUT CHAR16 *Str
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN OUT CHAR16 *Str
);
/**
@@ -109,8 +108,8 @@ EngStrLwr (
VOID
EFIAPI
EngStrUpr (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN OUT CHAR16 *Str
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN OUT CHAR16 *Str
);
/**
@@ -127,10 +126,10 @@ EngStrUpr (
VOID
EFIAPI
EngFatToStr (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN UINTN FatSize,
- IN CHAR8 *Fat,
- OUT CHAR16 *String
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN UINTN FatSize,
+ IN CHAR8 *Fat,
+ OUT CHAR16 *String
);
/**
@@ -151,10 +150,10 @@ EngFatToStr (
BOOLEAN
EFIAPI
EngStrToFat (
- IN EFI_UNICODE_COLLATION_PROTOCOL *This,
- IN CHAR16 *String,
- IN UINTN FatSize,
- OUT CHAR8 *Fat
+ IN EFI_UNICODE_COLLATION_PROTOCOL *This,
+ IN CHAR16 *String,
+ IN UINTN FatSize,
+ OUT CHAR8 *Fat
);
/**
@@ -173,9 +172,8 @@ EngStrToFat (
EFI_STATUS
EFIAPI
InitializeUnicodeCollationEng (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
#endif
-
diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
index a3898dc..a7b7dc7 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
@@ -12,7 +12,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Search table for UiDisplayMenu()
//
-SCAN_CODE_TO_SCREEN_OPERATION gScanCodeToOperation[] = {
+SCAN_CODE_TO_SCREEN_OPERATION gScanCodeToOperation[] = {
{
SCAN_UP,
UiUp,
@@ -43,7 +43,7 @@ SCAN_CODE_TO_SCREEN_OPERATION gScanCodeToOperation[] = {
}
};
-UINTN mScanCodeNumber = ARRAY_SIZE (gScanCodeToOperation);
+UINTN mScanCodeNumber = ARRAY_SIZE (gScanCodeToOperation);
SCREEN_OPERATION_T0_CONTROL_FLAG gScreenOperationToControlFlag[] = {
{
@@ -89,79 +89,79 @@ SCREEN_OPERATION_T0_CONTROL_FLAG gScreenOperationToControlFlag[] = {
};
EFI_GUID gDisplayEngineGuid = {
- 0xE38C1029, 0xE38F, 0x45b9, {0x8F, 0x0D, 0xE2, 0xE6, 0x0B, 0xC9, 0xB2, 0x62}
+ 0xE38C1029, 0xE38F, 0x45b9, { 0x8F, 0x0D, 0xE2, 0xE6, 0x0B, 0xC9, 0xB2, 0x62 }
};
-BOOLEAN gMisMatch;
-EFI_SCREEN_DESCRIPTOR gStatementDimensions;
-BOOLEAN mStatementLayoutIsChanged = TRUE;
-USER_INPUT *gUserInput;
-FORM_DISPLAY_ENGINE_FORM *gFormData;
-EFI_HII_HANDLE gHiiHandle;
-UINT16 gDirection;
-LIST_ENTRY gMenuOption;
-DISPLAY_HIGHLIGHT_MENU_INFO gHighligthMenuInfo = {0};
-BOOLEAN mIsFirstForm = TRUE;
-FORM_ENTRY_INFO gOldFormEntry = {0};
+BOOLEAN gMisMatch;
+EFI_SCREEN_DESCRIPTOR gStatementDimensions;
+BOOLEAN mStatementLayoutIsChanged = TRUE;
+USER_INPUT *gUserInput;
+FORM_DISPLAY_ENGINE_FORM *gFormData;
+EFI_HII_HANDLE gHiiHandle;
+UINT16 gDirection;
+LIST_ENTRY gMenuOption;
+DISPLAY_HIGHLIGHT_MENU_INFO gHighligthMenuInfo = { 0 };
+BOOLEAN mIsFirstForm = TRUE;
+FORM_ENTRY_INFO gOldFormEntry = { 0 };
//
// Browser Global Strings
//
-CHAR16 *gReconnectConfirmChanges;
-CHAR16 *gReconnectFail;
-CHAR16 *gReconnectRequired;
-CHAR16 *gChangesOpt;
-CHAR16 *gFormNotFound;
-CHAR16 *gNoSubmitIf;
-CHAR16 *gBrowserError;
-CHAR16 *gSaveFailed;
-CHAR16 *gNoSubmitIfFailed;
-CHAR16 *gSaveProcess;
-CHAR16 *gSaveNoSubmitProcess;
-CHAR16 *gDiscardChange;
-CHAR16 *gJumpToFormSet;
-CHAR16 *gCheckError;
-CHAR16 *gPromptForData;
-CHAR16 *gPromptForPassword;
-CHAR16 *gPromptForNewPassword;
-CHAR16 *gConfirmPassword;
-CHAR16 *gConfirmError;
-CHAR16 *gPassowordInvalid;
-CHAR16 *gPressEnter;
-CHAR16 *gEmptyString;
-CHAR16 *gMiniString;
-CHAR16 *gOptionMismatch;
-CHAR16 *gFormSuppress;
-CHAR16 *gProtocolNotFound;
-CHAR16 *gConfirmDefaultMsg;
-CHAR16 *gConfirmSubmitMsg;
-CHAR16 *gConfirmDiscardMsg;
-CHAR16 *gConfirmResetMsg;
-CHAR16 *gConfirmExitMsg;
-CHAR16 *gConfirmSubmitMsg2nd;
-CHAR16 *gConfirmDefaultMsg2nd;
-CHAR16 *gConfirmResetMsg2nd;
-CHAR16 *gConfirmExitMsg2nd;
-CHAR16 *gConfirmOpt;
-CHAR16 *gConfirmOptYes;
-CHAR16 *gConfirmOptNo;
-CHAR16 *gConfirmOptOk;
-CHAR16 *gConfirmOptCancel;
-CHAR16 *gYesOption;
-CHAR16 *gNoOption;
-CHAR16 *gOkOption;
-CHAR16 *gCancelOption;
-CHAR16 *gErrorPopup;
-CHAR16 *gWarningPopup;
-CHAR16 *gInfoPopup;
-CHAR16 *gConfirmMsgConnect;
-CHAR16 *gConfirmMsgEnd;
-CHAR16 *gPasswordUnsupported;
-CHAR16 gModalSkipColumn;
-CHAR16 gPromptBlockWidth;
-CHAR16 gOptionBlockWidth;
-CHAR16 gHelpBlockWidth;
-CHAR16 *mUnknownString;
+CHAR16 *gReconnectConfirmChanges;
+CHAR16 *gReconnectFail;
+CHAR16 *gReconnectRequired;
+CHAR16 *gChangesOpt;
+CHAR16 *gFormNotFound;
+CHAR16 *gNoSubmitIf;
+CHAR16 *gBrowserError;
+CHAR16 *gSaveFailed;
+CHAR16 *gNoSubmitIfFailed;
+CHAR16 *gSaveProcess;
+CHAR16 *gSaveNoSubmitProcess;
+CHAR16 *gDiscardChange;
+CHAR16 *gJumpToFormSet;
+CHAR16 *gCheckError;
+CHAR16 *gPromptForData;
+CHAR16 *gPromptForPassword;
+CHAR16 *gPromptForNewPassword;
+CHAR16 *gConfirmPassword;
+CHAR16 *gConfirmError;
+CHAR16 *gPassowordInvalid;
+CHAR16 *gPressEnter;
+CHAR16 *gEmptyString;
+CHAR16 *gMiniString;
+CHAR16 *gOptionMismatch;
+CHAR16 *gFormSuppress;
+CHAR16 *gProtocolNotFound;
+CHAR16 *gConfirmDefaultMsg;
+CHAR16 *gConfirmSubmitMsg;
+CHAR16 *gConfirmDiscardMsg;
+CHAR16 *gConfirmResetMsg;
+CHAR16 *gConfirmExitMsg;
+CHAR16 *gConfirmSubmitMsg2nd;
+CHAR16 *gConfirmDefaultMsg2nd;
+CHAR16 *gConfirmResetMsg2nd;
+CHAR16 *gConfirmExitMsg2nd;
+CHAR16 *gConfirmOpt;
+CHAR16 *gConfirmOptYes;
+CHAR16 *gConfirmOptNo;
+CHAR16 *gConfirmOptOk;
+CHAR16 *gConfirmOptCancel;
+CHAR16 *gYesOption;
+CHAR16 *gNoOption;
+CHAR16 *gOkOption;
+CHAR16 *gCancelOption;
+CHAR16 *gErrorPopup;
+CHAR16 *gWarningPopup;
+CHAR16 *gInfoPopup;
+CHAR16 *gConfirmMsgConnect;
+CHAR16 *gConfirmMsgEnd;
+CHAR16 *gPasswordUnsupported;
+CHAR16 gModalSkipColumn;
+CHAR16 gPromptBlockWidth;
+CHAR16 gOptionBlockWidth;
+CHAR16 gHelpBlockWidth;
+CHAR16 *mUnknownString;
FORM_DISPLAY_DRIVER_PRIVATE_DATA mPrivateData = {
FORM_DISPLAY_DRIVER_SIGNATURE,
@@ -177,7 +177,6 @@ FORM_DISPLAY_DRIVER_PRIVATE_DATA mPrivateData = {
}
};
-
/**
Get the string based on the StringId and HII Package List Handle.
@@ -190,8 +189,8 @@ FORM_DISPLAY_DRIVER_PRIVATE_DATA mPrivateData = {
**/
CHAR16 *
GetToken (
- IN EFI_STRING_ID Token,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID Token,
+ IN EFI_HII_HANDLE HiiHandle
)
{
EFI_STRING String;
@@ -202,10 +201,9 @@ GetToken (
ASSERT (String != NULL);
}
- return (CHAR16 *) String;
+ return (CHAR16 *)String;
}
-
/**
Initialize the HII String Token to the correct values.
@@ -216,56 +214,56 @@ InitializeDisplayStrings (
)
{
gReconnectConfirmChanges = GetToken (STRING_TOKEN (RECONNECT_CONFIRM_CHANGES), gHiiHandle);
- mUnknownString = GetToken (STRING_TOKEN (UNKNOWN_STRING), gHiiHandle);
- gSaveFailed = GetToken (STRING_TOKEN (SAVE_FAILED), gHiiHandle);
- gNoSubmitIfFailed = GetToken (STRING_TOKEN (NO_SUBMIT_IF_CHECK_FAILED), gHiiHandle);
- gReconnectFail = GetToken (STRING_TOKEN (RECONNECT_FAILED), gHiiHandle);
- gReconnectRequired = GetToken (STRING_TOKEN (RECONNECT_REQUIRED), gHiiHandle);
- gChangesOpt = GetToken (STRING_TOKEN (RECONNECT_CHANGES_OPTIONS), gHiiHandle);
- gSaveProcess = GetToken (STRING_TOKEN (DISCARD_OR_JUMP), gHiiHandle);
- gSaveNoSubmitProcess = GetToken (STRING_TOKEN (DISCARD_OR_CHECK), gHiiHandle);
- gDiscardChange = GetToken (STRING_TOKEN (DISCARD_OR_JUMP_DISCARD), gHiiHandle);
- gJumpToFormSet = GetToken (STRING_TOKEN (DISCARD_OR_JUMP_JUMP), gHiiHandle);
- gCheckError = GetToken (STRING_TOKEN (DISCARD_OR_CHECK_CHECK), gHiiHandle);
- gPromptForData = GetToken (STRING_TOKEN (PROMPT_FOR_DATA), gHiiHandle);
- gPromptForPassword = GetToken (STRING_TOKEN (PROMPT_FOR_PASSWORD), gHiiHandle);
- gPromptForNewPassword = GetToken (STRING_TOKEN (PROMPT_FOR_NEW_PASSWORD), gHiiHandle);
- gConfirmPassword = GetToken (STRING_TOKEN (CONFIRM_PASSWORD), gHiiHandle);
- gConfirmError = GetToken (STRING_TOKEN (CONFIRM_ERROR), gHiiHandle);
- gPassowordInvalid = GetToken (STRING_TOKEN (PASSWORD_INVALID), gHiiHandle);
- gPressEnter = GetToken (STRING_TOKEN (PRESS_ENTER), gHiiHandle);
- gEmptyString = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);
- gMiniString = GetToken (STRING_TOKEN (MINI_STRING), gHiiHandle);
- gOptionMismatch = GetToken (STRING_TOKEN (OPTION_MISMATCH), gHiiHandle);
- gFormSuppress = GetToken (STRING_TOKEN (FORM_SUPPRESSED), gHiiHandle);
- gProtocolNotFound = GetToken (STRING_TOKEN (PROTOCOL_NOT_FOUND), gHiiHandle);
- gFormNotFound = GetToken (STRING_TOKEN (STATUS_BROWSER_FORM_NOT_FOUND), gHiiHandle);
- gNoSubmitIf = GetToken (STRING_TOKEN (STATUS_BROWSER_NO_SUBMIT_IF), gHiiHandle);
- gBrowserError = GetToken (STRING_TOKEN (STATUS_BROWSER_ERROR), gHiiHandle);
- gConfirmDefaultMsg = GetToken (STRING_TOKEN (CONFIRM_DEFAULT_MESSAGE), gHiiHandle);
- gConfirmDiscardMsg = GetToken (STRING_TOKEN (CONFIRM_DISCARD_MESSAGE), gHiiHandle);
- gConfirmSubmitMsg = GetToken (STRING_TOKEN (CONFIRM_SUBMIT_MESSAGE), gHiiHandle);
- gConfirmResetMsg = GetToken (STRING_TOKEN (CONFIRM_RESET_MESSAGE), gHiiHandle);
- gConfirmExitMsg = GetToken (STRING_TOKEN (CONFIRM_EXIT_MESSAGE), gHiiHandle);
- gConfirmDefaultMsg2nd = GetToken (STRING_TOKEN (CONFIRM_DEFAULT_MESSAGE_2ND), gHiiHandle);
- gConfirmSubmitMsg2nd = GetToken (STRING_TOKEN (CONFIRM_SUBMIT_MESSAGE_2ND), gHiiHandle);
- gConfirmResetMsg2nd = GetToken (STRING_TOKEN (CONFIRM_RESET_MESSAGE_2ND), gHiiHandle);
- gConfirmExitMsg2nd = GetToken (STRING_TOKEN (CONFIRM_EXIT_MESSAGE_2ND), gHiiHandle);
- gConfirmOpt = GetToken (STRING_TOKEN (CONFIRM_OPTION), gHiiHandle);
- gConfirmOptYes = GetToken (STRING_TOKEN (CONFIRM_OPTION_YES), gHiiHandle);
- gConfirmOptNo = GetToken (STRING_TOKEN (CONFIRM_OPTION_NO), gHiiHandle);
- gConfirmOptOk = GetToken (STRING_TOKEN (CONFIRM_OPTION_OK), gHiiHandle);
- gConfirmOptCancel = GetToken (STRING_TOKEN (CONFIRM_OPTION_CANCEL), gHiiHandle);
- gYesOption = GetToken (STRING_TOKEN (YES_SELECTABLE_OPTION), gHiiHandle);
- gNoOption = GetToken (STRING_TOKEN (NO_SELECTABLE_OPTION), gHiiHandle);
- gOkOption = GetToken (STRING_TOKEN (OK_SELECTABLE_OPTION), gHiiHandle);
- gCancelOption = GetToken (STRING_TOKEN (CANCEL_SELECTABLE_OPTION), gHiiHandle);
- gErrorPopup = GetToken (STRING_TOKEN (ERROR_POPUP_STRING), gHiiHandle);
- gWarningPopup = GetToken (STRING_TOKEN (WARNING_POPUP_STRING), gHiiHandle);
- gInfoPopup = GetToken (STRING_TOKEN (INFO_POPUP_STRING), gHiiHandle);
- gConfirmMsgConnect = GetToken (STRING_TOKEN (CONFIRM_OPTION_CONNECT), gHiiHandle);
- gConfirmMsgEnd = GetToken (STRING_TOKEN (CONFIRM_OPTION_END), gHiiHandle);
- gPasswordUnsupported = GetToken (STRING_TOKEN (PASSWORD_NOT_SUPPORTED ), gHiiHandle);
+ mUnknownString = GetToken (STRING_TOKEN (UNKNOWN_STRING), gHiiHandle);
+ gSaveFailed = GetToken (STRING_TOKEN (SAVE_FAILED), gHiiHandle);
+ gNoSubmitIfFailed = GetToken (STRING_TOKEN (NO_SUBMIT_IF_CHECK_FAILED), gHiiHandle);
+ gReconnectFail = GetToken (STRING_TOKEN (RECONNECT_FAILED), gHiiHandle);
+ gReconnectRequired = GetToken (STRING_TOKEN (RECONNECT_REQUIRED), gHiiHandle);
+ gChangesOpt = GetToken (STRING_TOKEN (RECONNECT_CHANGES_OPTIONS), gHiiHandle);
+ gSaveProcess = GetToken (STRING_TOKEN (DISCARD_OR_JUMP), gHiiHandle);
+ gSaveNoSubmitProcess = GetToken (STRING_TOKEN (DISCARD_OR_CHECK), gHiiHandle);
+ gDiscardChange = GetToken (STRING_TOKEN (DISCARD_OR_JUMP_DISCARD), gHiiHandle);
+ gJumpToFormSet = GetToken (STRING_TOKEN (DISCARD_OR_JUMP_JUMP), gHiiHandle);
+ gCheckError = GetToken (STRING_TOKEN (DISCARD_OR_CHECK_CHECK), gHiiHandle);
+ gPromptForData = GetToken (STRING_TOKEN (PROMPT_FOR_DATA), gHiiHandle);
+ gPromptForPassword = GetToken (STRING_TOKEN (PROMPT_FOR_PASSWORD), gHiiHandle);
+ gPromptForNewPassword = GetToken (STRING_TOKEN (PROMPT_FOR_NEW_PASSWORD), gHiiHandle);
+ gConfirmPassword = GetToken (STRING_TOKEN (CONFIRM_PASSWORD), gHiiHandle);
+ gConfirmError = GetToken (STRING_TOKEN (CONFIRM_ERROR), gHiiHandle);
+ gPassowordInvalid = GetToken (STRING_TOKEN (PASSWORD_INVALID), gHiiHandle);
+ gPressEnter = GetToken (STRING_TOKEN (PRESS_ENTER), gHiiHandle);
+ gEmptyString = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);
+ gMiniString = GetToken (STRING_TOKEN (MINI_STRING), gHiiHandle);
+ gOptionMismatch = GetToken (STRING_TOKEN (OPTION_MISMATCH), gHiiHandle);
+ gFormSuppress = GetToken (STRING_TOKEN (FORM_SUPPRESSED), gHiiHandle);
+ gProtocolNotFound = GetToken (STRING_TOKEN (PROTOCOL_NOT_FOUND), gHiiHandle);
+ gFormNotFound = GetToken (STRING_TOKEN (STATUS_BROWSER_FORM_NOT_FOUND), gHiiHandle);
+ gNoSubmitIf = GetToken (STRING_TOKEN (STATUS_BROWSER_NO_SUBMIT_IF), gHiiHandle);
+ gBrowserError = GetToken (STRING_TOKEN (STATUS_BROWSER_ERROR), gHiiHandle);
+ gConfirmDefaultMsg = GetToken (STRING_TOKEN (CONFIRM_DEFAULT_MESSAGE), gHiiHandle);
+ gConfirmDiscardMsg = GetToken (STRING_TOKEN (CONFIRM_DISCARD_MESSAGE), gHiiHandle);
+ gConfirmSubmitMsg = GetToken (STRING_TOKEN (CONFIRM_SUBMIT_MESSAGE), gHiiHandle);
+ gConfirmResetMsg = GetToken (STRING_TOKEN (CONFIRM_RESET_MESSAGE), gHiiHandle);
+ gConfirmExitMsg = GetToken (STRING_TOKEN (CONFIRM_EXIT_MESSAGE), gHiiHandle);
+ gConfirmDefaultMsg2nd = GetToken (STRING_TOKEN (CONFIRM_DEFAULT_MESSAGE_2ND), gHiiHandle);
+ gConfirmSubmitMsg2nd = GetToken (STRING_TOKEN (CONFIRM_SUBMIT_MESSAGE_2ND), gHiiHandle);
+ gConfirmResetMsg2nd = GetToken (STRING_TOKEN (CONFIRM_RESET_MESSAGE_2ND), gHiiHandle);
+ gConfirmExitMsg2nd = GetToken (STRING_TOKEN (CONFIRM_EXIT_MESSAGE_2ND), gHiiHandle);
+ gConfirmOpt = GetToken (STRING_TOKEN (CONFIRM_OPTION), gHiiHandle);
+ gConfirmOptYes = GetToken (STRING_TOKEN (CONFIRM_OPTION_YES), gHiiHandle);
+ gConfirmOptNo = GetToken (STRING_TOKEN (CONFIRM_OPTION_NO), gHiiHandle);
+ gConfirmOptOk = GetToken (STRING_TOKEN (CONFIRM_OPTION_OK), gHiiHandle);
+ gConfirmOptCancel = GetToken (STRING_TOKEN (CONFIRM_OPTION_CANCEL), gHiiHandle);
+ gYesOption = GetToken (STRING_TOKEN (YES_SELECTABLE_OPTION), gHiiHandle);
+ gNoOption = GetToken (STRING_TOKEN (NO_SELECTABLE_OPTION), gHiiHandle);
+ gOkOption = GetToken (STRING_TOKEN (OK_SELECTABLE_OPTION), gHiiHandle);
+ gCancelOption = GetToken (STRING_TOKEN (CANCEL_SELECTABLE_OPTION), gHiiHandle);
+ gErrorPopup = GetToken (STRING_TOKEN (ERROR_POPUP_STRING), gHiiHandle);
+ gWarningPopup = GetToken (STRING_TOKEN (WARNING_POPUP_STRING), gHiiHandle);
+ gInfoPopup = GetToken (STRING_TOKEN (INFO_POPUP_STRING), gHiiHandle);
+ gConfirmMsgConnect = GetToken (STRING_TOKEN (CONFIRM_OPTION_CONNECT), gHiiHandle);
+ gConfirmMsgEnd = GetToken (STRING_TOKEN (CONFIRM_OPTION_END), gHiiHandle);
+ gPasswordUnsupported = GetToken (STRING_TOKEN (PASSWORD_NOT_SUPPORTED), gHiiHandle);
}
/**
@@ -341,7 +339,7 @@ FreeDisplayStrings (
**/
EFI_STRING_ID
GetPrompt (
- IN EFI_IFR_OP_HEADER *OpCode
+ IN EFI_IFR_OP_HEADER *OpCode
)
{
EFI_IFR_STATEMENT_HEADER *Header;
@@ -350,7 +348,7 @@ GetPrompt (
return 0;
}
- Header = (EFI_IFR_STATEMENT_HEADER *) (OpCode + 1);
+ Header = (EFI_IFR_STATEMENT_HEADER *)(OpCode + 1);
return Header->Prompt;
}
@@ -366,15 +364,15 @@ GetPrompt (
**/
UINT16
GetWidth (
- IN UI_MENU_OPTION *MenuOption,
- OUT UINT16 *AdjustWidth
+ IN UI_MENU_OPTION *MenuOption,
+ OUT UINT16 *AdjustWidth
)
{
- CHAR16 *String;
- UINTN Size;
- EFI_IFR_TEXT *TextOp;
- UINT16 ReturnWidth;
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ CHAR16 *String;
+ UINTN Size;
+ EFI_IFR_TEXT *TextOp;
+ UINT16 ReturnWidth;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
Statement = MenuOption->ThisTag;
@@ -385,6 +383,7 @@ GetWidth (
if (AdjustWidth != NULL) {
*AdjustWidth = LEFT_SKIPPED_COLUMNS;
}
+
return (UINT16)(gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * (gModalSkipColumn + LEFT_SKIPPED_COLUMNS));
}
@@ -394,7 +393,7 @@ GetWidth (
// See if the second text parameter is really NULL
//
if (Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) {
- TextOp = (EFI_IFR_TEXT *) Statement->OpCode;
+ TextOp = (EFI_IFR_TEXT *)Statement->OpCode;
if (TextOp->TextTwo != 0) {
String = GetToken (TextOp->TextTwo, gFormData->HiiHandle);
Size = StrLen (String);
@@ -411,24 +410,25 @@ GetWidth (
// Allow a wide display if text op-code and no secondary text op-code
//
((Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) && (Size == 0))
- ) {
-
+ )
+ {
//
// Return the space width.
//
if (AdjustWidth != NULL) {
*AdjustWidth = 2;
}
+
//
// Keep consistent with current behavior.
//
- ReturnWidth = (UINT16) (gPromptBlockWidth + gOptionBlockWidth - 2);
+ ReturnWidth = (UINT16)(gPromptBlockWidth + gOptionBlockWidth - 2);
} else {
if (AdjustWidth != NULL) {
*AdjustWidth = 1;
}
- ReturnWidth = (UINT16) (gPromptBlockWidth - 1);
+ ReturnWidth = (UINT16)(gPromptBlockWidth - 1);
}
//
@@ -462,25 +462,25 @@ GetWidth (
**/
UINT16
GetLineByWidth (
- IN CHAR16 *InputString,
- IN UINT16 LineWidth,
- IN OUT UINT16 *GlyphWidth,
- IN OUT UINTN *Index,
- OUT CHAR16 **OutputString
+ IN CHAR16 *InputString,
+ IN UINT16 LineWidth,
+ IN OUT UINT16 *GlyphWidth,
+ IN OUT UINTN *Index,
+ OUT CHAR16 **OutputString
)
{
- UINT16 StrOffset;
- UINT16 GlyphOffset;
- UINT16 OriginalGlyphWidth;
- BOOLEAN ReturnFlag;
- UINT16 LastSpaceOffset;
- UINT16 LastGlyphWidth;
-
- if (InputString == NULL || Index == NULL || OutputString == NULL) {
+ UINT16 StrOffset;
+ UINT16 GlyphOffset;
+ UINT16 OriginalGlyphWidth;
+ BOOLEAN ReturnFlag;
+ UINT16 LastSpaceOffset;
+ UINT16 LastGlyphWidth;
+
+ if ((InputString == NULL) || (Index == NULL) || (OutputString == NULL)) {
return 0;
}
- if (LineWidth == 0 || *GlyphWidth == 0) {
+ if ((LineWidth == 0) || (*GlyphWidth == 0)) {
return 0;
}
@@ -529,6 +529,7 @@ GetLineByWidth (
LastSpaceOffset = StrOffset;
LastGlyphWidth = *GlyphWidth;
}
+
break;
}
@@ -558,14 +559,14 @@ GetLineByWidth (
//
// The CHAR_NULL has process last time, this time just return 0 to stand for the end.
//
- if (StrOffset == 0 && (InputString[*Index + StrOffset] == CHAR_NULL)) {
+ if ((StrOffset == 0) && (InputString[*Index + StrOffset] == CHAR_NULL)) {
return 0;
}
//
// Need extra glyph info and '\0' info, so +2.
//
- *OutputString = AllocateZeroPool ((StrOffset + 2) * sizeof(CHAR16));
+ *OutputString = AllocateZeroPool ((StrOffset + 2) * sizeof (CHAR16));
if (*OutputString == NULL) {
return 0;
}
@@ -575,37 +576,37 @@ GetLineByWidth (
//
if (OriginalGlyphWidth == 1) {
*(*OutputString) = NARROW_CHAR;
- } else {
+ } else {
*(*OutputString) = WIDE_CHAR;
}
- CopyMem ((*OutputString) + 1, &InputString[*Index], StrOffset * sizeof(CHAR16));
+ CopyMem ((*OutputString) + 1, &InputString[*Index], StrOffset * sizeof (CHAR16));
if (InputString[*Index + StrOffset] == CHAR_SPACE) {
//
// Skip the space info at the begin of next line.
//
- *Index = (UINT16) (*Index + StrOffset + 1);
+ *Index = (UINT16)(*Index + StrOffset + 1);
} else if (InputString[*Index + StrOffset] == CHAR_LINEFEED) {
//
// Skip the /n or /n/r info.
//
if (InputString[*Index + StrOffset + 1] == CHAR_CARRIAGE_RETURN) {
- *Index = (UINT16) (*Index + StrOffset + 2);
+ *Index = (UINT16)(*Index + StrOffset + 2);
} else {
- *Index = (UINT16) (*Index + StrOffset + 1);
+ *Index = (UINT16)(*Index + StrOffset + 1);
}
} else if (InputString[*Index + StrOffset] == CHAR_CARRIAGE_RETURN) {
//
// Skip the /r or /r/n info.
//
if (InputString[*Index + StrOffset + 1] == CHAR_LINEFEED) {
- *Index = (UINT16) (*Index + StrOffset + 2);
+ *Index = (UINT16)(*Index + StrOffset + 2);
} else {
- *Index = (UINT16) (*Index + StrOffset + 1);
+ *Index = (UINT16)(*Index + StrOffset + 1);
}
} else {
- *Index = (UINT16) (*Index + StrOffset);
+ *Index = (UINT16)(*Index + StrOffset);
}
//
@@ -624,20 +625,20 @@ GetLineByWidth (
**/
VOID
UiAddMenuOption (
- IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
- IN UINT16 *MenuItemCount,
- IN BOOLEAN NestIn
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
+ IN UINT16 *MenuItemCount,
+ IN BOOLEAN NestIn
)
{
- UI_MENU_OPTION *MenuOption;
- UINTN Index;
- UINTN Count;
- UINT16 NumberOfLines;
- UINT16 GlyphWidth;
- UINT16 Width;
- UINTN ArrayEntry;
- CHAR16 *OutputString;
- EFI_STRING_ID PromptId;
+ UI_MENU_OPTION *MenuOption;
+ UINTN Index;
+ UINTN Count;
+ UINT16 NumberOfLines;
+ UINT16 GlyphWidth;
+ UINT16 Width;
+ UINTN ArrayEntry;
+ CHAR16 *OutputString;
+ EFI_STRING_ID PromptId;
NumberOfLines = 1;
ArrayEntry = 0;
@@ -648,7 +649,7 @@ UiAddMenuOption (
PromptId = GetPrompt (Statement->OpCode);
ASSERT (PromptId != 0);
- if (Statement->OpCode->OpCode == EFI_IFR_DATE_OP || Statement->OpCode->OpCode == EFI_IFR_TIME_OP) {
+ if ((Statement->OpCode->OpCode == EFI_IFR_DATE_OP) || (Statement->OpCode->OpCode == EFI_IFR_TIME_OP)) {
Count = 3;
}
@@ -656,12 +657,12 @@ UiAddMenuOption (
MenuOption = AllocateZeroPool (sizeof (UI_MENU_OPTION));
ASSERT (MenuOption);
- MenuOption->Signature = UI_MENU_OPTION_SIGNATURE;
- MenuOption->Description = GetToken (PromptId, gFormData->HiiHandle);
- MenuOption->Handle = gFormData->HiiHandle;
- MenuOption->ThisTag = Statement;
+ MenuOption->Signature = UI_MENU_OPTION_SIGNATURE;
+ MenuOption->Description = GetToken (PromptId, gFormData->HiiHandle);
+ MenuOption->Handle = gFormData->HiiHandle;
+ MenuOption->ThisTag = Statement;
MenuOption->NestInStatement = NestIn;
- MenuOption->EntryNumber = *MenuItemCount;
+ MenuOption->EntryNumber = *MenuItemCount;
MenuOption->Sequence = Index;
@@ -671,43 +672,44 @@ UiAddMenuOption (
MenuOption->GrayOut = FALSE;
}
- if ((Statement->Attribute & HII_DISPLAY_LOCK) != 0 || (gFormData->Attribute & HII_DISPLAY_LOCK) != 0) {
+ if (((Statement->Attribute & HII_DISPLAY_LOCK) != 0) || ((gFormData->Attribute & HII_DISPLAY_LOCK) != 0)) {
MenuOption->GrayOut = TRUE;
}
//
// If the form or the question has the lock attribute, deal same as grayout.
//
- if ((gFormData->Attribute & HII_DISPLAY_LOCK) != 0 || (Statement->Attribute & HII_DISPLAY_LOCK) != 0) {
+ if (((gFormData->Attribute & HII_DISPLAY_LOCK) != 0) || ((Statement->Attribute & HII_DISPLAY_LOCK) != 0)) {
MenuOption->GrayOut = TRUE;
}
switch (Statement->OpCode->OpCode) {
- case EFI_IFR_ORDERED_LIST_OP:
- case EFI_IFR_ONE_OF_OP:
- case EFI_IFR_NUMERIC_OP:
- case EFI_IFR_TIME_OP:
- case EFI_IFR_DATE_OP:
- case EFI_IFR_CHECKBOX_OP:
- case EFI_IFR_PASSWORD_OP:
- case EFI_IFR_STRING_OP:
- //
- // User could change the value of these items
- //
- MenuOption->IsQuestion = TRUE;
- break;
- case EFI_IFR_TEXT_OP:
- if (FeaturePcdGet (PcdBrowserGrayOutTextStatement)) {
+ case EFI_IFR_ORDERED_LIST_OP:
+ case EFI_IFR_ONE_OF_OP:
+ case EFI_IFR_NUMERIC_OP:
+ case EFI_IFR_TIME_OP:
+ case EFI_IFR_DATE_OP:
+ case EFI_IFR_CHECKBOX_OP:
+ case EFI_IFR_PASSWORD_OP:
+ case EFI_IFR_STRING_OP:
//
- // Initializing GrayOut option as TRUE for Text setup options
- // so that those options will be Gray in colour and un selectable.
+ // User could change the value of these items
//
- MenuOption->GrayOut = TRUE;
- }
- break;
- default:
- MenuOption->IsQuestion = FALSE;
- break;
+ MenuOption->IsQuestion = TRUE;
+ break;
+ case EFI_IFR_TEXT_OP:
+ if (FeaturePcdGet (PcdBrowserGrayOutTextStatement)) {
+ //
+ // Initializing GrayOut option as TRUE for Text setup options
+ // so that those options will be Gray in colour and un selectable.
+ //
+ MenuOption->GrayOut = TRUE;
+ }
+
+ break;
+ default:
+ MenuOption->IsQuestion = FALSE;
+ break;
}
if ((Statement->Attribute & HII_DISPLAY_READONLY) != 0) {
@@ -717,17 +719,19 @@ UiAddMenuOption (
}
}
- if (Index == 0 &&
- (Statement->OpCode->OpCode != EFI_IFR_DATE_OP) &&
- (Statement->OpCode->OpCode != EFI_IFR_TIME_OP)) {
- Width = GetWidth (MenuOption, NULL);
- for (; GetLineByWidth (MenuOption->Description, Width, &GlyphWidth,&ArrayEntry, &OutputString) != 0x0000;) {
+ if ((Index == 0) &&
+ (Statement->OpCode->OpCode != EFI_IFR_DATE_OP) &&
+ (Statement->OpCode->OpCode != EFI_IFR_TIME_OP))
+ {
+ Width = GetWidth (MenuOption, NULL);
+ for ( ; GetLineByWidth (MenuOption->Description, Width, &GlyphWidth, &ArrayEntry, &OutputString) != 0x0000;) {
//
// If there is more string to process print on the next row and increment the Skip value
//
if (StrLen (&MenuOption->Description[ArrayEntry]) != 0) {
NumberOfLines++;
}
+
FreePool (OutputString);
}
} else {
@@ -763,11 +767,11 @@ ConvertStatementToMenu (
VOID
)
{
- UINT16 MenuItemCount;
- LIST_ENTRY *Link;
- LIST_ENTRY *NestLink;
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- FORM_DISPLAY_ENGINE_STATEMENT *NestStatement;
+ UINT16 MenuItemCount;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *NestLink;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ FORM_DISPLAY_ENGINE_STATEMENT *NestStatement;
MenuItemCount = 0;
InitializeListHead (&gMenuOption);
@@ -775,7 +779,7 @@ ConvertStatementToMenu (
Link = GetFirstNode (&gFormData->StatementListHead);
while (!IsNull (&gFormData->StatementListHead, Link)) {
Statement = FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&gFormData->StatementListHead, Link);
+ Link = GetNextNode (&gFormData->StatementListHead, Link);
//
// Skip the opcode not recognized by Display core.
@@ -792,7 +796,7 @@ ConvertStatementToMenu (
NestLink = GetFirstNode (&Statement->NestStatementList);
while (!IsNull (&Statement->NestStatementList, NestLink)) {
NestStatement = FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK (NestLink);
- NestLink = GetNextNode (&Statement->NestStatementList, NestLink);
+ NestLink = GetNextNode (&Statement->NestStatementList, NestLink);
//
// Skip the opcode not recognized by Display core.
@@ -824,31 +828,32 @@ ConvertStatementToMenu (
**/
UINTN
GetStringWidth (
- IN CHAR16 *String
+ IN CHAR16 *String
)
{
- UINTN Index;
- UINTN Count;
- UINTN IncrementValue;
+ UINTN Index;
+ UINTN Count;
+ UINTN IncrementValue;
ASSERT (String != NULL);
if (String == NULL) {
return 0;
}
- Index = 0;
- Count = 0;
- IncrementValue = 1;
+ Index = 0;
+ Count = 0;
+ IncrementValue = 1;
do {
//
// Advance to the null-terminator or to the first width directive
//
- for (;
- (String[Index] != NARROW_CHAR) && (String[Index] != WIDE_CHAR) && (String[Index] != 0);
- Index++, Count = Count + IncrementValue
- )
- ;
+ for ( ;
+ (String[Index] != NARROW_CHAR) && (String[Index] != WIDE_CHAR) && (String[Index] != 0);
+ Index++, Count = Count + IncrementValue
+ )
+ {
+ }
//
// We hit the null-terminator, we now have a count
@@ -856,6 +861,7 @@ GetStringWidth (
if (String[Index] == 0) {
break;
}
+
//
// We encountered a narrow directive - strip it from the size calculation since it doesn't get printed
// and also set the flag that determines what we increment by.(if narrow, increment by 1, if wide increment by 2)
@@ -892,8 +898,8 @@ GetStringWidth (
**/
VOID
UpdateSkipInfoForMenu (
- IN UI_MENU_OPTION *MenuOption,
- IN CHAR16 *OptionString
+ IN UI_MENU_OPTION *MenuOption,
+ IN CHAR16 *OptionString
)
{
UINTN Index;
@@ -902,9 +908,9 @@ UpdateSkipInfoForMenu (
CHAR16 *OutputString;
UINT16 GlyphWidth;
- Width = (UINT16) gOptionBlockWidth - 1;
- GlyphWidth = 1;
- Row = 1;
+ Width = (UINT16)gOptionBlockWidth - 1;
+ GlyphWidth = 1;
+ Row = 1;
for (Index = 0; GetLineByWidth (OptionString, Width, &GlyphWidth, &Index, &OutputString) != 0x0000;) {
if (StrLen (&OptionString[Index]) != 0) {
@@ -916,7 +922,8 @@ UpdateSkipInfoForMenu (
if ((Row > MenuOption->Skip) &&
(MenuOption->ThisTag->OpCode->OpCode != EFI_IFR_DATE_OP) &&
- (MenuOption->ThisTag->OpCode->OpCode != EFI_IFR_TIME_OP)) {
+ (MenuOption->ThisTag->OpCode->OpCode != EFI_IFR_TIME_OP))
+ {
MenuOption->Skip = Row;
}
}
@@ -929,12 +936,12 @@ UpdateSkipInfoForMenu (
**/
VOID
UpdateOptionSkipLines (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
CHAR16 *OptionString;
- OptionString = NULL;
+ OptionString = NULL;
ProcessOptions (MenuOption, FALSE, &OptionString, TRUE);
if (OptionString != NULL) {
@@ -943,8 +950,8 @@ UpdateOptionSkipLines (
FreePool (OptionString);
}
- if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TEXT_OP) && (((EFI_IFR_TEXT*)MenuOption->ThisTag->OpCode)->TextTwo != 0)) {
- OptionString = GetToken (((EFI_IFR_TEXT*)MenuOption->ThisTag->OpCode)->TextTwo, gFormData->HiiHandle);
+ if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TEXT_OP) && (((EFI_IFR_TEXT *)MenuOption->ThisTag->OpCode)->TextTwo != 0)) {
+ OptionString = GetToken (((EFI_IFR_TEXT *)MenuOption->ThisTag->OpCode)->TextTwo, gFormData->HiiHandle);
if (OptionString != NULL) {
UpdateSkipInfoForMenu (MenuOption, OptionString);
@@ -969,11 +976,11 @@ UpdateOptionSkipLines (
**/
BOOLEAN
PrintableMenu (
- UI_MENU_OPTION *MenuOption
+ UI_MENU_OPTION *MenuOption
)
{
- EFI_STATUS Status;
- EFI_STRING OptionString;
+ EFI_STATUS Status;
+ EFI_STRING OptionString;
OptionString = NULL;
@@ -985,15 +992,16 @@ PrintableMenu (
if (EFI_ERROR (Status)) {
return FALSE;
}
- if (OptionString != NULL && OptionString[0] != '\0') {
+
+ if ((OptionString != NULL) && (OptionString[0] != '\0')) {
FreePool (OptionString);
return TRUE;
}
- if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TEXT_OP) && (((EFI_IFR_TEXT*)MenuOption->ThisTag->OpCode)->TextTwo != 0)) {
- OptionString = GetToken (((EFI_IFR_TEXT*)MenuOption->ThisTag->OpCode)->TextTwo, gFormData->HiiHandle);
+ if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TEXT_OP) && (((EFI_IFR_TEXT *)MenuOption->ThisTag->OpCode)->TextTwo != 0)) {
+ OptionString = GetToken (((EFI_IFR_TEXT *)MenuOption->ThisTag->OpCode)->TextTwo, gFormData->HiiHandle);
ASSERT (OptionString != NULL);
- if (OptionString[0] != '\0'){
+ if (OptionString[0] != '\0') {
FreePool (OptionString);
return TRUE;
}
@@ -1015,11 +1023,12 @@ PrintableMenu (
**/
BOOLEAN
IsSelectable (
- UI_MENU_OPTION *MenuOption
+ UI_MENU_OPTION *MenuOption
)
{
if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_SUBTITLE_OP) ||
- MenuOption->GrayOut || MenuOption->ReadOnly || !PrintableMenu (MenuOption)) {
+ MenuOption->GrayOut || MenuOption->ReadOnly || !PrintableMenu (MenuOption))
+ {
return FALSE;
} else {
return TRUE;
@@ -1048,19 +1057,19 @@ IsSelectable (
**/
INTN
MoveToNextStatement (
- IN BOOLEAN GoUp,
- IN OUT LIST_ENTRY **CurrentPosition,
- IN UINTN GapToTop,
- IN BOOLEAN FindInForm
+ IN BOOLEAN GoUp,
+ IN OUT LIST_ENTRY **CurrentPosition,
+ IN UINTN GapToTop,
+ IN BOOLEAN FindInForm
)
{
- INTN Distance;
- LIST_ENTRY *Pos;
- UI_MENU_OPTION *NextMenuOption;
- UI_MENU_OPTION *PreMenuOption;
+ INTN Distance;
+ LIST_ENTRY *Pos;
+ UI_MENU_OPTION *NextMenuOption;
+ UI_MENU_OPTION *PreMenuOption;
- Distance = 0;
- Pos = *CurrentPosition;
+ Distance = 0;
+ Pos = *CurrentPosition;
if (Pos == &gMenuOption) {
return -1;
@@ -1082,10 +1091,11 @@ MoveToNextStatement (
// Check whether the menu is beyond current showing form,
// return the first one beyond the showing form.
//
- if ((UINTN) Distance + NextMenuOption->Skip > GapToTop) {
+ if ((UINTN)Distance + NextMenuOption->Skip > GapToTop) {
if (FindInForm) {
NextMenuOption = PreMenuOption;
}
+
break;
}
@@ -1106,7 +1116,7 @@ MoveToNextStatement (
break;
}
- Pos = (GoUp ? Pos->BackLink : Pos->ForwardLink);
+ Pos = (GoUp ? Pos->BackLink : Pos->ForwardLink);
PreMenuOption = NextMenuOption;
}
@@ -1114,7 +1124,6 @@ MoveToNextStatement (
return Distance;
}
-
/**
Process option string for date/time opcode.
@@ -1125,16 +1134,16 @@ MoveToNextStatement (
**/
VOID
ProcessStringForDateTime (
- UI_MENU_OPTION *MenuOption,
- CHAR16 *OptionString,
- BOOLEAN AddOptCol
+ UI_MENU_OPTION *MenuOption,
+ CHAR16 *OptionString,
+ BOOLEAN AddOptCol
)
{
- UINTN Index;
- UINTN Count;
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- EFI_IFR_DATE *Date;
- EFI_IFR_TIME *Time;
+ UINTN Index;
+ UINTN Count;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ EFI_IFR_DATE *Date;
+ EFI_IFR_TIME *Time;
ASSERT (MenuOption != NULL && OptionString != NULL);
@@ -1142,9 +1151,9 @@ ProcessStringForDateTime (
Date = NULL;
Time = NULL;
if (Statement->OpCode->OpCode == EFI_IFR_DATE_OP) {
- Date = (EFI_IFR_DATE *) Statement->OpCode;
+ Date = (EFI_IFR_DATE *)Statement->OpCode;
} else if (Statement->OpCode->OpCode == EFI_IFR_TIME_OP) {
- Time = (EFI_IFR_TIME *) Statement->OpCode;
+ Time = (EFI_IFR_TIME *)Statement->OpCode;
}
//
@@ -1163,6 +1172,7 @@ ProcessStringForDateTime (
OptionString[Count] = OptionString[Index];
Count++;
}
+
OptionString[Count] = CHAR_NULL;
//
@@ -1221,7 +1231,6 @@ ProcessStringForDateTime (
}
}
-
/**
Adjust Data and Time position accordingly.
Data format : [01/02/2004] [11:22:33]
@@ -1241,8 +1250,8 @@ ProcessStringForDateTime (
**/
UINTN
AdjustDateAndTimePosition (
- IN BOOLEAN DirectionUp,
- IN OUT LIST_ENTRY **CurrentPosition
+ IN BOOLEAN DirectionUp,
+ IN OUT LIST_ENTRY **CurrentPosition
)
{
UINTN Count;
@@ -1255,7 +1264,8 @@ AdjustDateAndTimePosition (
MenuOption = MENU_OPTION_FROM_LINK (NewPosition);
if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_DATE_OP) ||
- (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TIME_OP)) {
+ (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TIME_OP))
+ {
//
// Calculate the distance from current position to the last Date/Time MenuOption
//
@@ -1305,34 +1315,34 @@ AdjustDateAndTimePosition (
**/
UINT64
GetFieldFromNum (
- IN EFI_IFR_OP_HEADER *OpCode
+ IN EFI_IFR_OP_HEADER *OpCode
)
{
- EFI_IFR_NUMERIC *NumericOp;
- UINT64 Step;
+ EFI_IFR_NUMERIC *NumericOp;
+ UINT64 Step;
- NumericOp = (EFI_IFR_NUMERIC *) OpCode;
+ NumericOp = (EFI_IFR_NUMERIC *)OpCode;
switch (NumericOp->Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- Step = NumericOp->data.u8.Step;
- break;
+ case EFI_IFR_NUMERIC_SIZE_1:
+ Step = NumericOp->data.u8.Step;
+ break;
- case EFI_IFR_NUMERIC_SIZE_2:
- Step = NumericOp->data.u16.Step;
- break;
+ case EFI_IFR_NUMERIC_SIZE_2:
+ Step = NumericOp->data.u16.Step;
+ break;
- case EFI_IFR_NUMERIC_SIZE_4:
- Step = NumericOp->data.u32.Step;
- break;
+ case EFI_IFR_NUMERIC_SIZE_4:
+ Step = NumericOp->data.u32.Step;
+ break;
- case EFI_IFR_NUMERIC_SIZE_8:
- Step = NumericOp->data.u64.Step;
- break;
+ case EFI_IFR_NUMERIC_SIZE_8:
+ Step = NumericOp->data.u64.Step;
+ break;
- default:
- Step = 0;
- break;
+ default:
+ Step = 0;
+ break;
}
return Step;
@@ -1348,7 +1358,7 @@ GetFieldFromNum (
**/
BROWSER_HOT_KEY *
GetHotKeyFromRegisterList (
- IN EFI_INPUT_KEY *KeyData
+ IN EFI_INPUT_KEY *KeyData
)
{
LIST_ENTRY *Link;
@@ -1368,7 +1378,6 @@ GetHotKeyFromRegisterList (
return NULL;
}
-
/**
Determine if the menu is the last menu that can be selected.
@@ -1383,11 +1392,11 @@ GetHotKeyFromRegisterList (
**/
BOOLEAN
ValueIsScroll (
- IN BOOLEAN Direction,
- IN LIST_ENTRY *CurrentPos
+ IN BOOLEAN Direction,
+ IN LIST_ENTRY *CurrentPos
)
{
- LIST_ENTRY *Temp;
+ LIST_ENTRY *Temp;
Temp = Direction ? CurrentPos->BackLink : CurrentPos->ForwardLink;
@@ -1408,19 +1417,19 @@ ValueIsScroll (
**/
UI_EVENT_TYPE
UiWaitForEvent (
- IN EFI_EVENT Event
+ IN EFI_EVENT Event
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN EventNum;
- UINT64 Timeout;
- EFI_EVENT TimerEvent;
- EFI_EVENT WaitList[3];
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN EventNum;
+ UINT64 Timeout;
+ EFI_EVENT TimerEvent;
+ EFI_EVENT WaitList[3];
UI_EVENT_TYPE EventType;
TimerEvent = NULL;
- Timeout = FormExitTimeout(gFormData);
+ Timeout = FormExitTimeout (gFormData);
if (Timeout != 0) {
Status = gBS->CreateEvent (EVT_TIMER, 0, NULL, NULL, &TimerEvent);
@@ -1429,45 +1438,46 @@ UiWaitForEvent (
// Set the timer event
//
gBS->SetTimer (
- TimerEvent,
- TimerRelative,
- Timeout
- );
+ TimerEvent,
+ TimerRelative,
+ Timeout
+ );
}
WaitList[0] = Event;
EventNum = 1;
if (gFormData->FormRefreshEvent != NULL) {
WaitList[EventNum] = gFormData->FormRefreshEvent;
- EventNum ++;
+ EventNum++;
}
if (Timeout != 0) {
WaitList[EventNum] = TimerEvent;
- EventNum ++;
+ EventNum++;
}
Status = gBS->WaitForEvent (EventNum, WaitList, &Index);
ASSERT_EFI_ERROR (Status);
switch (Index) {
- case 0:
- EventType = UIEventKey;
- break;
+ case 0:
+ EventType = UIEventKey;
+ break;
- case 1:
- if (gFormData->FormRefreshEvent != NULL) {
- EventType = UIEventDriver;
- } else {
- ASSERT (Timeout != 0 && EventNum == 2);
- EventType = UIEventTimeOut;
- }
- break;
+ case 1:
+ if (gFormData->FormRefreshEvent != NULL) {
+ EventType = UIEventDriver;
+ } else {
+ ASSERT (Timeout != 0 && EventNum == 2);
+ EventType = UIEventTimeOut;
+ }
+
+ break;
- default:
- ASSERT (Index == 2 && EventNum == 3);
- EventType = UIEventTimeOut;
- break;
+ default:
+ ASSERT (Index == 2 && EventNum == 3);
+ EventType = UIEventTimeOut;
+ break;
}
if (Timeout != 0) {
@@ -1487,21 +1497,20 @@ UiWaitForEvent (
**/
EFI_QUESTION_ID
GetQuestionIdInfo (
- IN EFI_IFR_OP_HEADER *OpCode
+ IN EFI_IFR_OP_HEADER *OpCode
)
{
- EFI_IFR_QUESTION_HEADER *QuestionHeader;
+ EFI_IFR_QUESTION_HEADER *QuestionHeader;
if (OpCode->Length < sizeof (EFI_IFR_OP_HEADER) + sizeof (EFI_IFR_QUESTION_HEADER)) {
return 0;
}
- QuestionHeader = (EFI_IFR_QUESTION_HEADER *)((UINT8 *) OpCode + sizeof(EFI_IFR_OP_HEADER));
+ QuestionHeader = (EFI_IFR_QUESTION_HEADER *)((UINT8 *)OpCode + sizeof (EFI_IFR_OP_HEADER));
return QuestionHeader->QuestionId;
}
-
/**
Find the top of screen menu base on the current menu.
@@ -1514,40 +1523,42 @@ GetQuestionIdInfo (
**/
LIST_ENTRY *
FindTopOfScreenMenu (
- IN LIST_ENTRY *CurPos,
- IN UINTN Rows,
- OUT UINTN *SkipValue
+ IN LIST_ENTRY *CurPos,
+ IN UINTN Rows,
+ OUT UINTN *SkipValue
)
{
- LIST_ENTRY *Link;
- LIST_ENTRY *TopOfScreen;
- UI_MENU_OPTION *PreviousMenuOption;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *TopOfScreen;
+ UI_MENU_OPTION *PreviousMenuOption;
- Link = CurPos;
+ Link = CurPos;
PreviousMenuOption = NULL;
while (Link->BackLink != &gMenuOption) {
- Link = Link->BackLink;
+ Link = Link->BackLink;
PreviousMenuOption = MENU_OPTION_FROM_LINK (Link);
if (PreviousMenuOption->Row == 0) {
UpdateOptionSkipLines (PreviousMenuOption);
}
+
if (Rows <= PreviousMenuOption->Skip) {
break;
}
+
Rows = Rows - PreviousMenuOption->Skip;
}
if (Link->BackLink == &gMenuOption) {
TopOfScreen = gMenuOption.ForwardLink;
- if (PreviousMenuOption != NULL && Rows < PreviousMenuOption->Skip) {
+ if ((PreviousMenuOption != NULL) && (Rows < PreviousMenuOption->Skip)) {
*SkipValue = PreviousMenuOption->Skip - Rows;
} else {
*SkipValue = 0;
}
} else {
TopOfScreen = Link;
- *SkipValue = PreviousMenuOption->Skip - Rows;
+ *SkipValue = PreviousMenuOption->Skip - Rows;
}
return TopOfScreen;
@@ -1566,14 +1577,14 @@ GetIndexInfoForOpcode (
IN EFI_IFR_OP_HEADER *OpCode
)
{
- LIST_ENTRY *NewPos;
- UI_MENU_OPTION *MenuOption;
- UINTN Index;
+ LIST_ENTRY *NewPos;
+ UI_MENU_OPTION *MenuOption;
+ UINTN Index;
NewPos = gMenuOption.ForwardLink;
Index = 0;
- for (NewPos = gMenuOption.ForwardLink; NewPos != &gMenuOption; NewPos = NewPos->ForwardLink){
+ for (NewPos = gMenuOption.ForwardLink; NewPos != &gMenuOption; NewPos = NewPos->ForwardLink) {
MenuOption = MENU_OPTION_FROM_LINK (NewPos);
if (CompareMem (MenuOption->ThisTag->OpCode, OpCode, OpCode->Length) == 0) {
@@ -1581,7 +1592,7 @@ GetIndexInfoForOpcode (
return Index;
}
- Index ++;
+ Index++;
}
}
@@ -1603,12 +1614,13 @@ IsSavedHighlightStatement (
)
{
if ((gFormData->HiiHandle == gHighligthMenuInfo.HiiHandle) &&
- (gFormData->FormId == gHighligthMenuInfo.FormId)) {
+ (gFormData->FormId == gHighligthMenuInfo.FormId))
+ {
if (gHighligthMenuInfo.HLTQuestionId != 0) {
- return (BOOLEAN) (gHighligthMenuInfo.HLTQuestionId == GetQuestionIdInfo (HighLightedStatement->OpCode));
+ return (BOOLEAN)(gHighligthMenuInfo.HLTQuestionId == GetQuestionIdInfo (HighLightedStatement->OpCode));
} else {
if (CompareMem (gHighligthMenuInfo.HLTOpCode, HighLightedStatement->OpCode, gHighligthMenuInfo.HLTOpCode->Length) == 0) {
- if (gHighligthMenuInfo.HLTIndex == 0 || gHighligthMenuInfo.HLTIndex == GetIndexInfoForOpcode(HighLightedStatement->OpCode)) {
+ if ((gHighligthMenuInfo.HLTIndex == 0) || (gHighligthMenuInfo.HLTIndex == GetIndexInfoForOpcode (HighLightedStatement->OpCode))) {
return TRUE;
} else {
return FALSE;
@@ -1631,17 +1643,17 @@ IsSavedHighlightStatement (
**/
BOOLEAN
IsHighLightMenuOption (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
if (gHighligthMenuInfo.HLTQuestionId != 0) {
- if (GetQuestionIdInfo(MenuOption->ThisTag->OpCode) == gHighligthMenuInfo.HLTQuestionId) {
- return (BOOLEAN) (MenuOption->Sequence == gHighligthMenuInfo.HLTSequence);
+ if (GetQuestionIdInfo (MenuOption->ThisTag->OpCode) == gHighligthMenuInfo.HLTQuestionId) {
+ return (BOOLEAN)(MenuOption->Sequence == gHighligthMenuInfo.HLTSequence);
}
} else {
- if(CompareMem (gHighligthMenuInfo.HLTOpCode, MenuOption->ThisTag->OpCode, gHighligthMenuInfo.HLTOpCode->Length) == 0) {
- if (gHighligthMenuInfo.HLTIndex == 0 || gHighligthMenuInfo.HLTIndex == GetIndexInfoForOpcode(MenuOption->ThisTag->OpCode)) {
- return (BOOLEAN) (MenuOption->Sequence == gHighligthMenuInfo.HLTSequence);
+ if (CompareMem (gHighligthMenuInfo.HLTOpCode, MenuOption->ThisTag->OpCode, gHighligthMenuInfo.HLTOpCode->Length) == 0) {
+ if ((gHighligthMenuInfo.HLTIndex == 0) || (gHighligthMenuInfo.HLTIndex == GetIndexInfoForOpcode (MenuOption->ThisTag->OpCode))) {
+ return (BOOLEAN)(MenuOption->Sequence == gHighligthMenuInfo.HLTSequence);
} else {
return FALSE;
}
@@ -1664,24 +1676,25 @@ IsHighLightMenuOption (
**/
LIST_ENTRY *
FindHighLightMenuOption (
- IN FORM_DISPLAY_ENGINE_STATEMENT *HighLightedStatement
- )
+ IN FORM_DISPLAY_ENGINE_STATEMENT *HighLightedStatement
+ )
{
- LIST_ENTRY *NewPos;
- UI_MENU_OPTION *MenuOption;
+ LIST_ENTRY *NewPos;
+ UI_MENU_OPTION *MenuOption;
- NewPos = gMenuOption.ForwardLink;
+ NewPos = gMenuOption.ForwardLink;
MenuOption = MENU_OPTION_FROM_LINK (NewPos);
if (HighLightedStatement != NULL) {
while (MenuOption->ThisTag != HighLightedStatement) {
- NewPos = NewPos->ForwardLink;
+ NewPos = NewPos->ForwardLink;
if (NewPos == &gMenuOption) {
//
// Not Found it, break
//
break;
}
+
MenuOption = MENU_OPTION_FROM_LINK (NewPos);
}
@@ -1689,16 +1702,16 @@ FindHighLightMenuOption (
// Must find the highlight statement.
//
ASSERT (NewPos != &gMenuOption);
-
} else {
while (!IsHighLightMenuOption (MenuOption)) {
- NewPos = NewPos->ForwardLink;
+ NewPos = NewPos->ForwardLink;
if (NewPos == &gMenuOption) {
//
// Not Found it, break
//
break;
}
+
MenuOption = MENU_OPTION_FROM_LINK (NewPos);
}
@@ -1724,15 +1737,15 @@ FindHighLightMenuOption (
**/
BOOLEAN
IsTopOfScreeMenuOption (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
if (gHighligthMenuInfo.TOSQuestionId != 0) {
- return (BOOLEAN) (GetQuestionIdInfo(MenuOption->ThisTag->OpCode) == gHighligthMenuInfo.TOSQuestionId);
+ return (BOOLEAN)(GetQuestionIdInfo (MenuOption->ThisTag->OpCode) == gHighligthMenuInfo.TOSQuestionId);
}
- if(CompareMem (gHighligthMenuInfo.TOSOpCode, MenuOption->ThisTag->OpCode, gHighligthMenuInfo.TOSOpCode->Length) == 0) {
- if (gHighligthMenuInfo.TOSIndex == 0 || gHighligthMenuInfo.TOSIndex == GetIndexInfoForOpcode(MenuOption->ThisTag->OpCode)) {
+ if (CompareMem (gHighligthMenuInfo.TOSOpCode, MenuOption->ThisTag->OpCode, gHighligthMenuInfo.TOSOpCode->Length) == 0) {
+ if ((gHighligthMenuInfo.TOSIndex == 0) || (gHighligthMenuInfo.TOSIndex == GetIndexInfoForOpcode (MenuOption->ThisTag->OpCode))) {
return TRUE;
} else {
return FALSE;
@@ -1750,14 +1763,14 @@ IsTopOfScreeMenuOption (
**/
UINTN
-GetDistanceBetweenMenus(
+GetDistanceBetweenMenus (
IN LIST_ENTRY *StartMenu,
IN LIST_ENTRY *EndMenu
-)
+ )
{
- LIST_ENTRY *Link;
- UI_MENU_OPTION *MenuOption;
- UINTN Distance;
+ LIST_ENTRY *Link;
+ UI_MENU_OPTION *MenuOption;
+ UINTN Distance;
Distance = 0;
@@ -1767,9 +1780,11 @@ GetDistanceBetweenMenus(
if (MenuOption->Row == 0) {
UpdateOptionSkipLines (MenuOption);
}
+
Distance += MenuOption->Skip;
- Link = Link->BackLink;
+ Link = Link->BackLink;
}
+
return Distance;
}
@@ -1783,28 +1798,29 @@ GetDistanceBetweenMenus(
**/
LIST_ENTRY *
FindTopOfScreenMenuOption (
- IN LIST_ENTRY *HighLightMenu
+ IN LIST_ENTRY *HighLightMenu
)
{
- LIST_ENTRY *NewPos;
- UI_MENU_OPTION *MenuOption;
- UINTN TopRow;
- UINTN BottomRow;
+ LIST_ENTRY *NewPos;
+ UI_MENU_OPTION *MenuOption;
+ UINTN TopRow;
+ UINTN BottomRow;
TopRow = gStatementDimensions.TopRow + SCROLL_ARROW_HEIGHT;
BottomRow = gStatementDimensions.BottomRow - SCROLL_ARROW_HEIGHT;
- NewPos = gMenuOption.ForwardLink;
+ NewPos = gMenuOption.ForwardLink;
MenuOption = MENU_OPTION_FROM_LINK (NewPos);
- while (!IsTopOfScreeMenuOption(MenuOption)) {
- NewPos = NewPos->ForwardLink;
+ while (!IsTopOfScreeMenuOption (MenuOption)) {
+ NewPos = NewPos->ForwardLink;
if (NewPos == &gMenuOption) {
//
// Not Found it, break
//
break;
}
+
MenuOption = MENU_OPTION_FROM_LINK (NewPos);
}
@@ -1814,6 +1830,7 @@ FindTopOfScreenMenuOption (
if (NewPos == &gMenuOption) {
return NULL;
}
+
//
// Check whether highlight menu and top of screen menu can be shown within one page,
// if can't, return NULL to re-calcaulate the top of scrren menu. Because some new menus
@@ -1844,10 +1861,10 @@ FindTopMenu (
OUT UINTN *SkipValue
)
{
- UINTN TopRow;
- UINTN BottomRow;
- UI_MENU_OPTION *MenuOption;
- UINTN TmpValue;
+ UINTN TopRow;
+ UINTN BottomRow;
+ UI_MENU_OPTION *MenuOption;
+ UINTN TmpValue;
TopRow = gStatementDimensions.TopRow + SCROLL_ARROW_HEIGHT;
BottomRow = gStatementDimensions.BottomRow - SCROLL_ARROW_HEIGHT;
@@ -1855,13 +1872,13 @@ FindTopMenu (
// When option mismatch happens,there exist two cases,one is reenter the form, just like the if case below,
// and the other is exit current form and enter last form, it can be covered by the else case.
//
- if (gMisMatch && gFormData->HiiHandle == gHighligthMenuInfo.HiiHandle && gFormData->FormId == gHighligthMenuInfo.FormId) {
+ if (gMisMatch && (gFormData->HiiHandle == gHighligthMenuInfo.HiiHandle) && (gFormData->FormId == gHighligthMenuInfo.FormId)) {
//
// Reenter caused by option mismatch or auto exit caused by refresh form(refresh interval/guid),
// base on the record highlight info to find the highlight menu.
//
- *HighlightMenu = FindHighLightMenuOption(NULL);
+ *HighlightMenu = FindHighLightMenuOption (NULL);
if (*HighlightMenu != NULL) {
//
// Update skip info for this highlight menu.
@@ -1872,12 +1889,12 @@ FindTopMenu (
//
// Found the last time highlight menu.
//
- *TopOfScreen = FindTopOfScreenMenuOption(*HighlightMenu);
+ *TopOfScreen = FindTopOfScreenMenuOption (*HighlightMenu);
if (*TopOfScreen != NULL) {
//
// Found the last time selectable top of screen menu.
//
- AdjustDateAndTimePosition(TRUE, TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, TopOfScreen);
MenuOption = MENU_OPTION_FROM_LINK (*TopOfScreen);
UpdateOptionSkipLines (MenuOption);
@@ -1893,10 +1910,10 @@ FindTopMenu (
*TopOfScreen = *HighlightMenu;
TmpValue = 0;
} else {
- *TopOfScreen = FindTopOfScreenMenu(*HighlightMenu, BottomRow - TopRow - MenuOption->Skip, &TmpValue);
+ *TopOfScreen = FindTopOfScreenMenu (*HighlightMenu, BottomRow - TopRow - MenuOption->Skip, &TmpValue);
}
- *SkipValue = TmpValue;
+ *SkipValue = TmpValue;
}
} else {
//
@@ -1906,17 +1923,17 @@ FindTopMenu (
if (!IsListEmpty (&gMenuOption)) {
MoveToNextStatement (FALSE, HighlightMenu, BottomRow - TopRow, TRUE);
}
- *TopOfScreen = gMenuOption.ForwardLink;
- *SkipValue = 0;
- }
+ *TopOfScreen = gMenuOption.ForwardLink;
+ *SkipValue = 0;
+ }
} else if (FormData->HighLightedStatement != NULL) {
if (IsSavedHighlightStatement (FormData->HighLightedStatement)) {
//
// Input highlight menu is same as last time highlight menu.
// Base on last time highlight menu to set the top of screen menu and highlight menu.
//
- *HighlightMenu = FindHighLightMenuOption(NULL);
+ *HighlightMenu = FindHighLightMenuOption (NULL);
ASSERT (*HighlightMenu != NULL);
//
@@ -1925,7 +1942,7 @@ FindTopMenu (
MenuOption = MENU_OPTION_FROM_LINK (*HighlightMenu);
UpdateOptionSkipLines (MenuOption);
- *TopOfScreen = FindTopOfScreenMenuOption(*HighlightMenu);
+ *TopOfScreen = FindTopOfScreenMenuOption (*HighlightMenu);
if (*TopOfScreen == NULL) {
//
// Not found last time top of screen menu, so base on current highlight menu
@@ -1937,24 +1954,25 @@ FindTopMenu (
*TopOfScreen = *HighlightMenu;
TmpValue = 0;
} else {
- *TopOfScreen = FindTopOfScreenMenu(*HighlightMenu, BottomRow - TopRow - MenuOption->Skip, &TmpValue);
+ *TopOfScreen = FindTopOfScreenMenu (*HighlightMenu, BottomRow - TopRow - MenuOption->Skip, &TmpValue);
}
- *SkipValue = TmpValue;
+ *SkipValue = TmpValue;
} else {
- AdjustDateAndTimePosition(TRUE, TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, TopOfScreen);
MenuOption = MENU_OPTION_FROM_LINK (*TopOfScreen);
UpdateOptionSkipLines (MenuOption);
*SkipValue = gHighligthMenuInfo.SkipValue;
}
- AdjustDateAndTimePosition(TRUE, TopOfScreen);
+
+ AdjustDateAndTimePosition (TRUE, TopOfScreen);
} else {
//
// Input highlight menu is not save as last time highlight menu.
//
- *HighlightMenu = FindHighLightMenuOption(FormData->HighLightedStatement);
- MenuOption = MENU_OPTION_FROM_LINK (*HighlightMenu);
+ *HighlightMenu = FindHighLightMenuOption (FormData->HighLightedStatement);
+ MenuOption = MENU_OPTION_FROM_LINK (*HighlightMenu);
UpdateOptionSkipLines (MenuOption);
//
@@ -1965,12 +1983,13 @@ FindTopMenu (
*TopOfScreen = *HighlightMenu;
TmpValue = 0;
} else {
- *TopOfScreen = FindTopOfScreenMenu(*HighlightMenu, BottomRow - TopRow - MenuOption->Skip, &TmpValue);
+ *TopOfScreen = FindTopOfScreenMenu (*HighlightMenu, BottomRow - TopRow - MenuOption->Skip, &TmpValue);
}
- *SkipValue = TmpValue;
+ *SkipValue = TmpValue;
}
- AdjustDateAndTimePosition(TRUE, TopOfScreen);
+
+ AdjustDateAndTimePosition (TRUE, TopOfScreen);
} else {
//
// If not has input highlight statement, just return the first one in this form.
@@ -1980,7 +1999,8 @@ FindTopMenu (
if (!IsListEmpty (&gMenuOption)) {
MoveToNextStatement (FALSE, HighlightMenu, BottomRow - TopRow, TRUE);
}
- *SkipValue = 0;
+
+ *SkipValue = 0;
}
gMisMatch = FALSE;
@@ -2001,17 +2021,17 @@ FindTopMenu (
**/
VOID
UpdateHighlightMenuInfo (
- IN LIST_ENTRY *Highlight,
- IN LIST_ENTRY *TopOfScreen,
- IN UINTN SkipValue
+ IN LIST_ENTRY *Highlight,
+ IN LIST_ENTRY *TopOfScreen,
+ IN UINTN SkipValue
)
{
- UI_MENU_OPTION *MenuOption;
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ UI_MENU_OPTION *MenuOption;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- gHighligthMenuInfo.HiiHandle = gFormData->HiiHandle;
- gHighligthMenuInfo.FormId = gFormData->FormId;
- gHighligthMenuInfo.SkipValue = (UINT16)SkipValue;
+ gHighligthMenuInfo.HiiHandle = gFormData->HiiHandle;
+ gHighligthMenuInfo.FormId = gFormData->FormId;
+ gHighligthMenuInfo.SkipValue = (UINT16)SkipValue;
if (!IsListEmpty (&gMenuOption)) {
MenuOption = MENU_OPTION_FROM_LINK (Highlight);
@@ -2020,7 +2040,7 @@ UpdateHighlightMenuInfo (
gUserInput->SelectedStatement = Statement;
gHighligthMenuInfo.HLTSequence = MenuOption->Sequence;
- gHighligthMenuInfo.HLTQuestionId = GetQuestionIdInfo(Statement->OpCode);
+ gHighligthMenuInfo.HLTQuestionId = GetQuestionIdInfo (Statement->OpCode);
if (gHighligthMenuInfo.HLTQuestionId == 0) {
//
// if question id == 0, save the opcode buffer..
@@ -2028,16 +2048,17 @@ UpdateHighlightMenuInfo (
if (gHighligthMenuInfo.HLTOpCode != NULL) {
FreePool (gHighligthMenuInfo.HLTOpCode);
}
+
gHighligthMenuInfo.HLTOpCode = AllocateCopyPool (Statement->OpCode->Length, Statement->OpCode);
ASSERT (gHighligthMenuInfo.HLTOpCode != NULL);
- gHighligthMenuInfo.HLTIndex = GetIndexInfoForOpcode(Statement->OpCode);
+ gHighligthMenuInfo.HLTIndex = GetIndexInfoForOpcode (Statement->OpCode);
}
MenuOption = MENU_OPTION_FROM_LINK (TopOfScreen);
Statement = MenuOption->ThisTag;
- gHighligthMenuInfo.TOSQuestionId = GetQuestionIdInfo(Statement->OpCode);
+ gHighligthMenuInfo.TOSQuestionId = GetQuestionIdInfo (Statement->OpCode);
if (gHighligthMenuInfo.TOSQuestionId == 0) {
//
// if question id == 0, save the opcode buffer..
@@ -2045,28 +2066,31 @@ UpdateHighlightMenuInfo (
if (gHighligthMenuInfo.TOSOpCode != NULL) {
FreePool (gHighligthMenuInfo.TOSOpCode);
}
+
gHighligthMenuInfo.TOSOpCode = AllocateCopyPool (Statement->OpCode->Length, Statement->OpCode);
ASSERT (gHighligthMenuInfo.TOSOpCode != NULL);
- gHighligthMenuInfo.TOSIndex = GetIndexInfoForOpcode(Statement->OpCode);
+ gHighligthMenuInfo.TOSIndex = GetIndexInfoForOpcode (Statement->OpCode);
}
} else {
- gUserInput->SelectedStatement = NULL;
+ gUserInput->SelectedStatement = NULL;
gHighligthMenuInfo.HLTSequence = 0;
gHighligthMenuInfo.HLTQuestionId = 0;
if (gHighligthMenuInfo.HLTOpCode != NULL) {
FreePool (gHighligthMenuInfo.HLTOpCode);
}
- gHighligthMenuInfo.HLTOpCode = NULL;
- gHighligthMenuInfo.HLTIndex = 0;
+
+ gHighligthMenuInfo.HLTOpCode = NULL;
+ gHighligthMenuInfo.HLTIndex = 0;
gHighligthMenuInfo.TOSQuestionId = 0;
if (gHighligthMenuInfo.TOSOpCode != NULL) {
FreePool (gHighligthMenuInfo.TOSOpCode);
}
- gHighligthMenuInfo.TOSOpCode = NULL;
- gHighligthMenuInfo.TOSIndex = 0;
+
+ gHighligthMenuInfo.TOSOpCode = NULL;
+ gHighligthMenuInfo.TOSIndex = 0;
}
}
@@ -2079,11 +2103,11 @@ UpdateHighlightMenuInfo (
**/
VOID
SetDisplayAttribute (
- IN UI_MENU_OPTION *MenuOption,
- IN BOOLEAN Highlight
+ IN UI_MENU_OPTION *MenuOption,
+ IN BOOLEAN Highlight
)
{
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
Statement = MenuOption->ThisTag;
@@ -2117,15 +2141,15 @@ SetDisplayAttribute (
**/
VOID
DisplayMenuString (
- IN UI_MENU_OPTION *MenuOption,
- IN UINTN Col,
- IN UINTN Row,
- IN CHAR16 *String,
- IN UINTN Width,
- IN BOOLEAN Highlight
+ IN UI_MENU_OPTION *MenuOption,
+ IN UINTN Col,
+ IN UINTN Row,
+ IN CHAR16 *String,
+ IN UINTN Width,
+ IN BOOLEAN Highlight
)
{
- UINTN Length;
+ UINTN Length;
//
// Print string with normal color.
@@ -2139,13 +2163,13 @@ DisplayMenuString (
// Print the highlight menu string.
// First print the highlight string.
//
- SetDisplayAttribute(MenuOption, TRUE);
+ SetDisplayAttribute (MenuOption, TRUE);
Length = PrintStringAt (Col, Row, String);
//
// Second, clean the empty after the string.
//
- SetDisplayAttribute(MenuOption, FALSE);
+ SetDisplayAttribute (MenuOption, FALSE);
PrintStringAtWithWidth (Col + Length, Row, L"", Width - Length);
}
@@ -2160,22 +2184,22 @@ DisplayMenuString (
**/
BOOLEAN
HasOptionString (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- CHAR16 *String;
- UINTN Size;
- EFI_IFR_TEXT *TextOp;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ CHAR16 *String;
+ UINTN Size;
+ EFI_IFR_TEXT *TextOp;
- Size = 0;
+ Size = 0;
Statement = MenuOption->ThisTag;
//
// See if the second text parameter is really NULL
//
if (Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) {
- TextOp = (EFI_IFR_TEXT *) Statement->OpCode;
+ TextOp = (EFI_IFR_TEXT *)Statement->OpCode;
if (TextOp->TextTwo != 0) {
String = GetToken (TextOp->TextTwo, gFormData->HiiHandle);
Size = StrLen (String);
@@ -2184,16 +2208,16 @@ HasOptionString (
}
if ((Statement->OpCode->OpCode == EFI_IFR_SUBTITLE_OP) ||
- (Statement->OpCode->OpCode == EFI_IFR_REF_OP) ||
- (Statement->OpCode->OpCode == EFI_IFR_PASSWORD_OP) ||
- (Statement->OpCode->OpCode == EFI_IFR_ACTION_OP) ||
- (Statement->OpCode->OpCode == EFI_IFR_RESET_BUTTON_OP) ||
- //
- // Allow a wide display if text op-code and no secondary text op-code
- //
- ((Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) && (Size == 0))
- ) {
-
+ (Statement->OpCode->OpCode == EFI_IFR_REF_OP) ||
+ (Statement->OpCode->OpCode == EFI_IFR_PASSWORD_OP) ||
+ (Statement->OpCode->OpCode == EFI_IFR_ACTION_OP) ||
+ (Statement->OpCode->OpCode == EFI_IFR_RESET_BUTTON_OP) ||
+ //
+ // Allow a wide display if text op-code and no secondary text op-code
+ //
+ ((Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) && (Size == 0))
+ )
+ {
return FALSE;
}
@@ -2211,16 +2235,16 @@ HasOptionString (
**/
BOOLEAN
FxConfirmPopup (
- IN UINT32 Action
+ IN UINT32 Action
)
{
- EFI_INPUT_KEY Key;
- CHAR16 *CfmStr;
- UINTN CfmStrLen;
- UINT32 CheckFlags;
- BOOLEAN RetVal;
- UINTN CatLen;
- UINTN MaxLen;
+ EFI_INPUT_KEY Key;
+ CHAR16 *CfmStr;
+ UINTN CfmStrLen;
+ UINT32 CheckFlags;
+ BOOLEAN RetVal;
+ UINTN CatLen;
+ UINTN MaxLen;
CfmStrLen = 0;
CatLen = StrLen (gConfirmMsgConnect);
@@ -2360,43 +2384,43 @@ FxConfirmPopup (
**/
EFI_STATUS
DisplayOneMenu (
- IN UI_MENU_OPTION *MenuOption,
- IN UINTN SkipWidth,
- IN UINTN BeginCol,
- IN UINTN SkipLine,
- IN UINTN BottomRow,
- IN BOOLEAN Highlight,
- IN BOOLEAN UpdateCol
+ IN UI_MENU_OPTION *MenuOption,
+ IN UINTN SkipWidth,
+ IN UINTN BeginCol,
+ IN UINTN SkipLine,
+ IN UINTN BottomRow,
+ IN BOOLEAN Highlight,
+ IN BOOLEAN UpdateCol
)
{
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- UINTN Index;
- UINT16 Width;
- UINT16 PromptWidth;
- CHAR16 *StringPtr;
- CHAR16 *OptionString;
- CHAR16 *OutputString;
- UINT16 GlyphWidth;
- UINTN Temp;
- UINTN Temp2;
- UINTN Temp3;
- EFI_STATUS Status;
- UINTN Row;
- BOOLEAN IsProcessingFirstRow;
- UINTN Col;
- UINTN PromptLineNum;
- UINTN OptionLineNum;
- CHAR16 AdjustValue;
- UINTN MaxRow;
-
- Statement = MenuOption->ThisTag;
- Temp = SkipLine;
- Temp2 = SkipLine;
- Temp3 = SkipLine;
- AdjustValue = 0;
- PromptLineNum = 0;
- OptionLineNum = 0;
- MaxRow = 0;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ UINTN Index;
+ UINT16 Width;
+ UINT16 PromptWidth;
+ CHAR16 *StringPtr;
+ CHAR16 *OptionString;
+ CHAR16 *OutputString;
+ UINT16 GlyphWidth;
+ UINTN Temp;
+ UINTN Temp2;
+ UINTN Temp3;
+ EFI_STATUS Status;
+ UINTN Row;
+ BOOLEAN IsProcessingFirstRow;
+ UINTN Col;
+ UINTN PromptLineNum;
+ UINTN OptionLineNum;
+ CHAR16 AdjustValue;
+ UINTN MaxRow;
+
+ Statement = MenuOption->ThisTag;
+ Temp = SkipLine;
+ Temp2 = SkipLine;
+ Temp3 = SkipLine;
+ AdjustValue = 0;
+ PromptLineNum = 0;
+ OptionLineNum = 0;
+ MaxRow = 0;
IsProcessingFirstRow = TRUE;
//
@@ -2413,21 +2437,21 @@ DisplayOneMenu (
}
if (OptionString != NULL) {
- if (Statement->OpCode->OpCode == EFI_IFR_DATE_OP || Statement->OpCode->OpCode == EFI_IFR_TIME_OP) {
+ if ((Statement->OpCode->OpCode == EFI_IFR_DATE_OP) || (Statement->OpCode->OpCode == EFI_IFR_TIME_OP)) {
//
// Adjust option string for date/time opcode.
//
- ProcessStringForDateTime(MenuOption, OptionString, UpdateCol);
+ ProcessStringForDateTime (MenuOption, OptionString, UpdateCol);
}
- Width = (UINT16) gOptionBlockWidth - 1;
- Row = MenuOption->Row;
- GlyphWidth = 1;
+ Width = (UINT16)gOptionBlockWidth - 1;
+ Row = MenuOption->Row;
+ GlyphWidth = 1;
OptionLineNum = 0;
for (Index = 0; GetLineByWidth (OptionString, Width, &GlyphWidth, &Index, &OutputString) != 0x0000;) {
if (((Temp2 == 0)) && (Row <= BottomRow)) {
- if (Statement->OpCode->OpCode == EFI_IFR_DATE_OP || Statement->OpCode->OpCode == EFI_IFR_TIME_OP) {
+ if ((Statement->OpCode->OpCode == EFI_IFR_DATE_OP) || (Statement->OpCode->OpCode == EFI_IFR_TIME_OP)) {
//
// For date/time question, it has three menu options for this qustion.
// The first/second menu options with the skip value is 0. the last one
@@ -2438,7 +2462,7 @@ DisplayOneMenu (
// For date/ time, print the last past (year for date and second for time)
// - 7 means skip [##/##/ for date and [##:##: for time.
//
- DisplayMenuString (MenuOption,MenuOption->OptCol, Row, OutputString, Width + 1 - 7, Highlight);
+ DisplayMenuString (MenuOption, MenuOption->OptCol, Row, OutputString, Width + 1 - 7, Highlight);
} else {
//
// For date/ time, print the first and second past (year for date and second for time)
@@ -2449,6 +2473,7 @@ DisplayOneMenu (
} else {
DisplayMenuString (MenuOption, MenuOption->OptCol, Row, OutputString, Width + 1, Highlight);
}
+
OptionLineNum++;
}
@@ -2490,7 +2515,7 @@ DisplayOneMenu (
GlyphWidth = 1;
PromptLineNum = 0;
- if (MenuOption->Description == NULL || MenuOption->Description[0] == '\0') {
+ if ((MenuOption->Description == NULL) || (MenuOption->Description[0] == '\0')) {
PrintStringAtWithWidth (BeginCol, Row, L"", PromptWidth + AdjustValue + SkipWidth);
PromptLineNum++;
} else {
@@ -2501,7 +2526,7 @@ DisplayOneMenu (
//
PrintStringAtWithWidth (BeginCol, Row, L"", SkipWidth);
- if (Statement->OpCode->OpCode == EFI_IFR_REF_OP && MenuOption->Col >= 2 && IsProcessingFirstRow) {
+ if ((Statement->OpCode->OpCode == EFI_IFR_REF_OP) && (MenuOption->Col >= 2) && IsProcessingFirstRow) {
//
// Print Arrow for Goto button.
//
@@ -2512,9 +2537,11 @@ DisplayOneMenu (
);
IsProcessingFirstRow = FALSE;
}
+
DisplayMenuString (MenuOption, MenuOption->Col, Row, OutputString, PromptWidth + AdjustValue, Highlight);
- PromptLineNum ++;
+ PromptLineNum++;
}
+
//
// If there is more string to process print on the next row and increment the Skip value
//
@@ -2533,16 +2560,15 @@ DisplayOneMenu (
Highlight = FALSE;
}
-
//
// 3. If this is a text op with secondary text information
//
- if ((Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) && (((EFI_IFR_TEXT*)Statement->OpCode)->TextTwo != 0)) {
- StringPtr = GetToken (((EFI_IFR_TEXT*)Statement->OpCode)->TextTwo, gFormData->HiiHandle);
+ if ((Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) && (((EFI_IFR_TEXT *)Statement->OpCode)->TextTwo != 0)) {
+ StringPtr = GetToken (((EFI_IFR_TEXT *)Statement->OpCode)->TextTwo, gFormData->HiiHandle);
- Width = (UINT16) gOptionBlockWidth - 1;
- Row = MenuOption->Row;
- GlyphWidth = 1;
+ Width = (UINT16)gOptionBlockWidth - 1;
+ Row = MenuOption->Row;
+ GlyphWidth = 1;
OptionLineNum = 0;
for (Index = 0; GetLineByWidth (StringPtr, Width, &GlyphWidth, &Index, &OutputString) != 0x0000;) {
@@ -2550,6 +2576,7 @@ DisplayOneMenu (
DisplayMenuString (MenuOption, MenuOption->OptCol, Row, OutputString, Width + 1, Highlight);
OptionLineNum++;
}
+
//
// If there is more string to process print on the next row and increment the Skip value
//
@@ -2578,10 +2605,10 @@ DisplayOneMenu (
// 4.Line number for Option string and prompt string are not equal.
// Clean the column whose line number is less.
//
- if (HasOptionString(MenuOption) && (OptionLineNum != PromptLineNum)) {
+ if (HasOptionString (MenuOption) && (OptionLineNum != PromptLineNum)) {
Col = OptionLineNum < PromptLineNum ? MenuOption->OptCol : BeginCol;
Row = (OptionLineNum < PromptLineNum ? OptionLineNum : PromptLineNum) + MenuOption->Row;
- Width = (UINT16) (OptionLineNum < PromptLineNum ? gOptionBlockWidth : PromptWidth + AdjustValue + SkipWidth);
+ Width = (UINT16)(OptionLineNum < PromptLineNum ? gOptionBlockWidth : PromptWidth + AdjustValue + SkipWidth);
MaxRow = (OptionLineNum < PromptLineNum ? PromptLineNum : OptionLineNum) + MenuOption->Row - 1;
while (Row <= MaxRow) {
@@ -2608,84 +2635,84 @@ UiDisplayMenu (
IN FORM_DISPLAY_ENGINE_FORM *FormData
)
{
- UINTN SkipValue;
- INTN Difference;
- UINTN DistanceValue;
- UINTN Row;
- UINTN Col;
- UINTN Temp;
- UINTN Temp2;
- UINTN TopRow;
- UINTN BottomRow;
- UINTN Index;
- CHAR16 *StringPtr;
- CHAR16 *StringRightPtr;
- CHAR16 *StringErrorPtr;
- CHAR16 *OptionString;
- CHAR16 *HelpString;
- CHAR16 *HelpHeaderString;
- CHAR16 *HelpBottomString;
- BOOLEAN NewLine;
- BOOLEAN Repaint;
- BOOLEAN UpArrow;
- BOOLEAN DownArrow;
- EFI_STATUS Status;
- EFI_INPUT_KEY Key;
- LIST_ENTRY *Link;
- LIST_ENTRY *NewPos;
- LIST_ENTRY *TopOfScreen;
- LIST_ENTRY *SavedListEntry;
- UI_MENU_OPTION *MenuOption;
- UI_MENU_OPTION *NextMenuOption;
- UI_MENU_OPTION *SavedMenuOption;
- UI_CONTROL_FLAG ControlFlag;
- UI_SCREEN_OPERATION ScreenOperation;
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- BROWSER_HOT_KEY *HotKey;
- UINTN HelpPageIndex;
- UINTN HelpPageCount;
- UINTN RowCount;
- UINTN HelpLine;
- UINTN HelpHeaderLine;
- UINTN HelpBottomLine;
- BOOLEAN MultiHelpPage;
- UINT16 EachLineWidth;
- UINT16 HeaderLineWidth;
- UINT16 BottomLineWidth;
- EFI_STRING_ID HelpInfo;
- UI_EVENT_TYPE EventType;
- BOOLEAN SkipHighLight;
- EFI_HII_VALUE *StatementValue;
-
- EventType = UIEventNone;
- Status = EFI_SUCCESS;
- HelpString = NULL;
- HelpHeaderString = NULL;
- HelpBottomString = NULL;
- OptionString = NULL;
- ScreenOperation = UiNoOperation;
- NewLine = TRUE;
- HelpPageCount = 0;
- HelpLine = 0;
- RowCount = 0;
- HelpBottomLine = 0;
- HelpHeaderLine = 0;
- HelpPageIndex = 0;
- MultiHelpPage = FALSE;
- EachLineWidth = 0;
- HeaderLineWidth = 0;
- BottomLineWidth = 0;
- UpArrow = FALSE;
- DownArrow = FALSE;
- SkipValue = 0;
- SkipHighLight = FALSE;
-
- NextMenuOption = NULL;
- SavedMenuOption = NULL;
- HotKey = NULL;
- Repaint = TRUE;
- MenuOption = NULL;
- gModalSkipColumn = (CHAR16) (gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn) / 6;
+ UINTN SkipValue;
+ INTN Difference;
+ UINTN DistanceValue;
+ UINTN Row;
+ UINTN Col;
+ UINTN Temp;
+ UINTN Temp2;
+ UINTN TopRow;
+ UINTN BottomRow;
+ UINTN Index;
+ CHAR16 *StringPtr;
+ CHAR16 *StringRightPtr;
+ CHAR16 *StringErrorPtr;
+ CHAR16 *OptionString;
+ CHAR16 *HelpString;
+ CHAR16 *HelpHeaderString;
+ CHAR16 *HelpBottomString;
+ BOOLEAN NewLine;
+ BOOLEAN Repaint;
+ BOOLEAN UpArrow;
+ BOOLEAN DownArrow;
+ EFI_STATUS Status;
+ EFI_INPUT_KEY Key;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *NewPos;
+ LIST_ENTRY *TopOfScreen;
+ LIST_ENTRY *SavedListEntry;
+ UI_MENU_OPTION *MenuOption;
+ UI_MENU_OPTION *NextMenuOption;
+ UI_MENU_OPTION *SavedMenuOption;
+ UI_CONTROL_FLAG ControlFlag;
+ UI_SCREEN_OPERATION ScreenOperation;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ BROWSER_HOT_KEY *HotKey;
+ UINTN HelpPageIndex;
+ UINTN HelpPageCount;
+ UINTN RowCount;
+ UINTN HelpLine;
+ UINTN HelpHeaderLine;
+ UINTN HelpBottomLine;
+ BOOLEAN MultiHelpPage;
+ UINT16 EachLineWidth;
+ UINT16 HeaderLineWidth;
+ UINT16 BottomLineWidth;
+ EFI_STRING_ID HelpInfo;
+ UI_EVENT_TYPE EventType;
+ BOOLEAN SkipHighLight;
+ EFI_HII_VALUE *StatementValue;
+
+ EventType = UIEventNone;
+ Status = EFI_SUCCESS;
+ HelpString = NULL;
+ HelpHeaderString = NULL;
+ HelpBottomString = NULL;
+ OptionString = NULL;
+ ScreenOperation = UiNoOperation;
+ NewLine = TRUE;
+ HelpPageCount = 0;
+ HelpLine = 0;
+ RowCount = 0;
+ HelpBottomLine = 0;
+ HelpHeaderLine = 0;
+ HelpPageIndex = 0;
+ MultiHelpPage = FALSE;
+ EachLineWidth = 0;
+ HeaderLineWidth = 0;
+ BottomLineWidth = 0;
+ UpArrow = FALSE;
+ DownArrow = FALSE;
+ SkipValue = 0;
+ SkipHighLight = FALSE;
+
+ NextMenuOption = NULL;
+ SavedMenuOption = NULL;
+ HotKey = NULL;
+ Repaint = TRUE;
+ MenuOption = NULL;
+ gModalSkipColumn = (CHAR16)(gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn) / 6;
ZeroMem (&Key, sizeof (EFI_INPUT_KEY));
@@ -2699,9 +2726,9 @@ UiDisplayMenu (
Col = gStatementDimensions.LeftColumn + LEFT_SKIPPED_COLUMNS;
}
- FindTopMenu(FormData, &TopOfScreen, &NewPos, &SkipValue);
+ FindTopMenu (FormData, &TopOfScreen, &NewPos, &SkipValue);
if (!IsListEmpty (&gMenuOption)) {
- NextMenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ NextMenuOption = MENU_OPTION_FROM_LINK (NewPos);
gUserInput->SelectedStatement = NextMenuOption->ThisTag;
}
@@ -2710,376 +2737,371 @@ UiDisplayMenu (
ControlFlag = CfInitialization;
while (TRUE) {
switch (ControlFlag) {
- case CfInitialization:
- if ((gOldFormEntry.HiiHandle != FormData->HiiHandle) ||
- (!CompareGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid))) {
- //
- // Clear Statement range if different formset is painted.
- //
- ClearLines (
- gStatementDimensions.LeftColumn,
- gStatementDimensions.RightColumn,
- TopRow - SCROLL_ARROW_HEIGHT,
- BottomRow + SCROLL_ARROW_HEIGHT,
- GetFieldTextColor ()
- );
-
- }
- ControlFlag = CfRepaint;
- break;
-
- case CfRepaint:
- ControlFlag = CfRefreshHighLight;
+ case CfInitialization:
+ if ((gOldFormEntry.HiiHandle != FormData->HiiHandle) ||
+ (!CompareGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid)))
+ {
+ //
+ // Clear Statement range if different formset is painted.
+ //
+ ClearLines (
+ gStatementDimensions.LeftColumn,
+ gStatementDimensions.RightColumn,
+ TopRow - SCROLL_ARROW_HEIGHT,
+ BottomRow + SCROLL_ARROW_HEIGHT,
+ GetFieldTextColor ()
+ );
+ }
- if (Repaint) {
- //
- // Display menu
- //
- DownArrow = FALSE;
- UpArrow = FALSE;
- Row = TopRow;
+ ControlFlag = CfRepaint;
+ break;
- gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
+ case CfRepaint:
+ ControlFlag = CfRefreshHighLight;
- //
- // 1. Check whether need to print the arrow up.
- //
- if (!ValueIsScroll (TRUE, TopOfScreen)) {
- UpArrow = TRUE;
- }
+ if (Repaint) {
+ //
+ // Display menu
+ //
+ DownArrow = FALSE;
+ UpArrow = FALSE;
+ Row = TopRow;
- if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
- PrintStringAtWithWidth(gStatementDimensions.LeftColumn + gModalSkipColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * gModalSkipColumn);
- } else {
- PrintStringAtWithWidth(gStatementDimensions.LeftColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);
- }
- if (UpArrow) {
- gST->ConOut->SetAttribute (gST->ConOut, GetArrowColor ());
- PrintCharAt (
- gStatementDimensions.LeftColumn + gPromptBlockWidth + gOptionBlockWidth + 1,
- TopRow - SCROLL_ARROW_HEIGHT,
- ARROW_UP
- );
gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
- }
- //
- // 2.Paint the menu.
- //
- for (Link = TopOfScreen; Link != &gMenuOption; Link = Link->ForwardLink) {
- MenuOption = MENU_OPTION_FROM_LINK (Link);
- MenuOption->Row = Row;
- MenuOption->Col = Col;
+ //
+ // 1. Check whether need to print the arrow up.
+ //
+ if (!ValueIsScroll (TRUE, TopOfScreen)) {
+ UpArrow = TRUE;
+ }
+
if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
- MenuOption->OptCol = gStatementDimensions.LeftColumn + LEFT_SKIPPED_COLUMNS + gPromptBlockWidth + gModalSkipColumn;
+ PrintStringAtWithWidth (gStatementDimensions.LeftColumn + gModalSkipColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * gModalSkipColumn);
} else {
- MenuOption->OptCol = gStatementDimensions.LeftColumn + LEFT_SKIPPED_COLUMNS + gPromptBlockWidth;
+ PrintStringAtWithWidth (gStatementDimensions.LeftColumn, TopRow - 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);
}
- if (MenuOption->NestInStatement) {
- MenuOption->Col += SUBTITLE_INDENT;
+ if (UpArrow) {
+ gST->ConOut->SetAttribute (gST->ConOut, GetArrowColor ());
+ PrintCharAt (
+ gStatementDimensions.LeftColumn + gPromptBlockWidth + gOptionBlockWidth + 1,
+ TopRow - SCROLL_ARROW_HEIGHT,
+ ARROW_UP
+ );
+ gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
}
//
- // Save the highlight menu, will be used in CfRefreshHighLight case.
+ // 2.Paint the menu.
//
- if (Link == NewPos) {
- SavedMenuOption = MenuOption;
- SkipHighLight = TRUE;
- }
+ for (Link = TopOfScreen; Link != &gMenuOption; Link = Link->ForwardLink) {
+ MenuOption = MENU_OPTION_FROM_LINK (Link);
+ MenuOption->Row = Row;
+ MenuOption->Col = Col;
+ if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
+ MenuOption->OptCol = gStatementDimensions.LeftColumn + LEFT_SKIPPED_COLUMNS + gPromptBlockWidth + gModalSkipColumn;
+ } else {
+ MenuOption->OptCol = gStatementDimensions.LeftColumn + LEFT_SKIPPED_COLUMNS + gPromptBlockWidth;
+ }
- if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
- Status = DisplayOneMenu (MenuOption,
- MenuOption->Col - gStatementDimensions.LeftColumn,
- gStatementDimensions.LeftColumn + gModalSkipColumn,
- Link == TopOfScreen ? SkipValue : 0,
- BottomRow,
- (BOOLEAN) ((Link == NewPos) && IsSelectable(MenuOption)),
- TRUE
- );
- } else {
- Status = DisplayOneMenu (MenuOption,
- MenuOption->Col - gStatementDimensions.LeftColumn,
- gStatementDimensions.LeftColumn,
- Link == TopOfScreen ? SkipValue : 0,
- BottomRow,
- (BOOLEAN) ((Link == NewPos) && IsSelectable(MenuOption)),
- TRUE
- );
+ if (MenuOption->NestInStatement) {
+ MenuOption->Col += SUBTITLE_INDENT;
+ }
+
+ //
+ // Save the highlight menu, will be used in CfRefreshHighLight case.
+ //
+ if (Link == NewPos) {
+ SavedMenuOption = MenuOption;
+ SkipHighLight = TRUE;
+ }
+
+ if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
+ Status = DisplayOneMenu (
+ MenuOption,
+ MenuOption->Col - gStatementDimensions.LeftColumn,
+ gStatementDimensions.LeftColumn + gModalSkipColumn,
+ Link == TopOfScreen ? SkipValue : 0,
+ BottomRow,
+ (BOOLEAN)((Link == NewPos) && IsSelectable (MenuOption)),
+ TRUE
+ );
+ } else {
+ Status = DisplayOneMenu (
+ MenuOption,
+ MenuOption->Col - gStatementDimensions.LeftColumn,
+ gStatementDimensions.LeftColumn,
+ Link == TopOfScreen ? SkipValue : 0,
+ BottomRow,
+ (BOOLEAN)((Link == NewPos) && IsSelectable (MenuOption)),
+ TRUE
+ );
+ }
+
+ if (EFI_ERROR (Status)) {
+ if (gMisMatch) {
+ return EFI_SUCCESS;
+ } else {
+ return Status;
+ }
+ }
+
+ //
+ // 3. Update the row info which will be used by next menu.
+ //
+ if (Link == TopOfScreen) {
+ Row += MenuOption->Skip - SkipValue;
+ } else {
+ Row += MenuOption->Skip;
+ }
+
+ if (Row > BottomRow) {
+ if (!ValueIsScroll (FALSE, Link)) {
+ DownArrow = TRUE;
+ }
+
+ Row = BottomRow + 1;
+ break;
+ }
}
- if (EFI_ERROR (Status)) {
- if (gMisMatch) {
- return EFI_SUCCESS;
+ //
+ // 3. Menus in this form may not cover all form, clean the remain field.
+ //
+ while (Row <= BottomRow) {
+ if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
+ PrintStringAtWithWidth (gStatementDimensions.LeftColumn + gModalSkipColumn, Row++, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * gModalSkipColumn);
} else {
- return Status;
+ PrintStringAtWithWidth (gStatementDimensions.LeftColumn, Row++, L"", gStatementDimensions.RightColumn - gHelpBlockWidth - gStatementDimensions.LeftColumn);
}
}
+
//
- // 3. Update the row info which will be used by next menu.
+ // 4. Print the down arrow row.
//
- if (Link == TopOfScreen) {
- Row += MenuOption->Skip - SkipValue;
+ if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
+ PrintStringAtWithWidth (gStatementDimensions.LeftColumn + gModalSkipColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * +gModalSkipColumn);
} else {
- Row += MenuOption->Skip;
+ PrintStringAtWithWidth (gStatementDimensions.LeftColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);
}
- if (Row > BottomRow) {
- if (!ValueIsScroll (FALSE, Link)) {
- DownArrow = TRUE;
- }
-
- Row = BottomRow + 1;
- break;
+ if (DownArrow) {
+ gST->ConOut->SetAttribute (gST->ConOut, GetArrowColor ());
+ PrintCharAt (
+ gStatementDimensions.LeftColumn + gPromptBlockWidth + gOptionBlockWidth + 1,
+ BottomRow + SCROLL_ARROW_HEIGHT,
+ ARROW_DOWN
+ );
+ gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
}
+
+ MenuOption = NULL;
}
+ break;
+
+ case CfRefreshHighLight:
+
//
- // 3. Menus in this form may not cover all form, clean the remain field.
+ // MenuOption: Last menu option that need to remove hilight
+ // MenuOption is set to NULL in Repaint
+ // NewPos: Current menu option that need to hilight
//
- while (Row <= BottomRow) {
- if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
- PrintStringAtWithWidth(gStatementDimensions.LeftColumn + gModalSkipColumn, Row++, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * gModalSkipColumn);
- } else {
- PrintStringAtWithWidth(gStatementDimensions.LeftColumn, Row++, L"", gStatementDimensions.RightColumn - gHelpBlockWidth - gStatementDimensions.LeftColumn);
- }
+ ControlFlag = CfUpdateHelpString;
+
+ ASSERT (NewPos != NULL);
+ UpdateHighlightMenuInfo (NewPos, TopOfScreen, SkipValue);
+
+ if (SkipHighLight) {
+ SkipHighLight = FALSE;
+ MenuOption = SavedMenuOption;
+ RefreshKeyHelp (gFormData, SavedMenuOption->ThisTag, FALSE);
+ break;
}
- //
- // 4. Print the down arrow row.
- //
- if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
- PrintStringAtWithWidth(gStatementDimensions.LeftColumn + gModalSkipColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * + gModalSkipColumn);
+ if (IsListEmpty (&gMenuOption)) {
+ //
+ // No menu option, just update the hotkey filed.
+ //
+ RefreshKeyHelp (gFormData, NULL, FALSE);
+ break;
+ }
+
+ if ((MenuOption != NULL) && (TopOfScreen == &MenuOption->Link)) {
+ Temp = SkipValue;
} else {
- PrintStringAtWithWidth(gStatementDimensions.LeftColumn, BottomRow + 1, L"", gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn);
+ Temp = 0;
}
- if (DownArrow) {
- gST->ConOut->SetAttribute (gST->ConOut, GetArrowColor ());
- PrintCharAt (
- gStatementDimensions.LeftColumn + gPromptBlockWidth + gOptionBlockWidth + 1,
- BottomRow + SCROLL_ARROW_HEIGHT,
- ARROW_DOWN
- );
- gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
+
+ if (NewPos == TopOfScreen) {
+ Temp2 = SkipValue;
+ } else {
+ Temp2 = 0;
}
- MenuOption = NULL;
- }
- break;
+ if ((MenuOption == NULL) || (NewPos != &MenuOption->Link)) {
+ if (MenuOption != NULL) {
+ //
+ // Remove the old highlight menu.
+ //
+ Status = DisplayOneMenu (
+ MenuOption,
+ MenuOption->Col - gStatementDimensions.LeftColumn,
+ gStatementDimensions.LeftColumn,
+ Temp,
+ BottomRow,
+ FALSE,
+ FALSE
+ );
+ }
- case CfRefreshHighLight:
+ //
+ // This is the current selected statement
+ //
+ MenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ RefreshKeyHelp (gFormData, MenuOption->ThisTag, FALSE);
- //
- // MenuOption: Last menu option that need to remove hilight
- // MenuOption is set to NULL in Repaint
- // NewPos: Current menu option that need to hilight
- //
- ControlFlag = CfUpdateHelpString;
+ if (!IsSelectable (MenuOption)) {
+ break;
+ }
- ASSERT (NewPos != NULL);
- UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
+ Status = DisplayOneMenu (
+ MenuOption,
+ MenuOption->Col - gStatementDimensions.LeftColumn,
+ gStatementDimensions.LeftColumn,
+ Temp2,
+ BottomRow,
+ TRUE,
+ FALSE
+ );
+ }
- if (SkipHighLight) {
- SkipHighLight = FALSE;
- MenuOption = SavedMenuOption;
- RefreshKeyHelp(gFormData, SavedMenuOption->ThisTag, FALSE);
break;
- }
- if (IsListEmpty (&gMenuOption)) {
+ case CfUpdateHelpString:
+ ControlFlag = CfPrepareToReadKey;
+ if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
+ break;
+ }
+
//
- // No menu option, just update the hotkey filed.
+ // NewLine means only update highlight menu (remove old highlight and highlith
+ // the new one), not need to full repain the form.
//
- RefreshKeyHelp(gFormData, NULL, FALSE);
- break;
- }
-
- if (MenuOption != NULL && TopOfScreen == &MenuOption->Link) {
- Temp = SkipValue;
- } else {
- Temp = 0;
- }
- if (NewPos == TopOfScreen) {
- Temp2 = SkipValue;
- } else {
- Temp2 = 0;
- }
+ if (Repaint || NewLine) {
+ if (IsListEmpty (&gMenuOption)) {
+ //
+ // Don't print anything if no mwnu option.
+ //
+ StringPtr = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);
+ } else {
+ //
+ // Don't print anything if it is a NULL help token
+ //
+ ASSERT (MenuOption != NULL);
+ HelpInfo = ((EFI_IFR_STATEMENT_HEADER *)((CHAR8 *)MenuOption->ThisTag->OpCode + sizeof (EFI_IFR_OP_HEADER)))->Help;
+ Statement = MenuOption->ThisTag;
+ StatementValue = &Statement->CurrentValue;
+ if ((HelpInfo == 0) || !IsSelectable (MenuOption)) {
+ if (((Statement->OpCode->OpCode == EFI_IFR_DATE_OP) && (StatementValue->Value.date.Month == 0xff)) || ((Statement->OpCode->OpCode == EFI_IFR_TIME_OP) && (StatementValue->Value.time.Hour == 0xff))) {
+ StringPtr = GetToken (STRING_TOKEN (GET_TIME_FAIL), gHiiHandle);
+ } else {
+ StringPtr = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);
+ }
+ } else {
+ if (((Statement->OpCode->OpCode == EFI_IFR_DATE_OP) && (StatementValue->Value.date.Month == 0xff)) || ((Statement->OpCode->OpCode == EFI_IFR_TIME_OP) && (StatementValue->Value.time.Hour == 0xff))) {
+ StringRightPtr = GetToken (HelpInfo, gFormData->HiiHandle);
+ StringErrorPtr = GetToken (STRING_TOKEN (GET_TIME_FAIL), gHiiHandle);
+ StringPtr = AllocateZeroPool ((StrLen (StringRightPtr) + StrLen (StringErrorPtr)+ 1) * sizeof (CHAR16));
+ StrCpyS (StringPtr, StrLen (StringRightPtr) + StrLen (StringErrorPtr) + 1, StringRightPtr);
+ StrCatS (StringPtr, StrLen (StringRightPtr) + StrLen (StringErrorPtr) + 1, StringErrorPtr);
+ FreePool (StringRightPtr);
+ FreePool (StringErrorPtr);
+ } else {
+ StringPtr = GetToken (HelpInfo, gFormData->HiiHandle);
+ }
+ }
+ }
- if (MenuOption == NULL || NewPos != &MenuOption->Link) {
- if (MenuOption != NULL) {
+ RowCount = BottomRow - TopRow + 1;
+ HelpPageIndex = 0;
//
- // Remove the old highlight menu.
+ // 1.Calculate how many line the help string need to print.
//
- Status = DisplayOneMenu (MenuOption,
- MenuOption->Col - gStatementDimensions.LeftColumn,
- gStatementDimensions.LeftColumn,
- Temp,
- BottomRow,
- FALSE,
- FALSE
- );
- }
-
- //
- // This is the current selected statement
- //
- MenuOption = MENU_OPTION_FROM_LINK (NewPos);
- RefreshKeyHelp(gFormData, MenuOption->ThisTag, FALSE);
+ if (HelpString != NULL) {
+ FreePool (HelpString);
+ HelpString = NULL;
+ }
- if (!IsSelectable (MenuOption)) {
- break;
- }
+ HelpLine = ProcessHelpString (StringPtr, &HelpString, &EachLineWidth, RowCount);
+ FreePool (StringPtr);
- Status = DisplayOneMenu (MenuOption,
- MenuOption->Col - gStatementDimensions.LeftColumn,
- gStatementDimensions.LeftColumn,
- Temp2,
- BottomRow,
- TRUE,
- FALSE
- );
- }
- break;
+ if (HelpLine > RowCount) {
+ MultiHelpPage = TRUE;
+ StringPtr = GetToken (STRING_TOKEN (ADJUST_HELP_PAGE_UP), gHiiHandle);
+ if (HelpHeaderString != NULL) {
+ FreePool (HelpHeaderString);
+ HelpHeaderString = NULL;
+ }
- case CfUpdateHelpString:
- ControlFlag = CfPrepareToReadKey;
- if ((FormData->Attribute & HII_DISPLAY_MODAL) != 0) {
- break;
- }
+ HelpHeaderLine = ProcessHelpString (StringPtr, &HelpHeaderString, &HeaderLineWidth, 0);
+ FreePool (StringPtr);
+ StringPtr = GetToken (STRING_TOKEN (ADJUST_HELP_PAGE_DOWN), gHiiHandle);
+ if (HelpBottomString != NULL) {
+ FreePool (HelpBottomString);
+ HelpBottomString = NULL;
+ }
- //
- // NewLine means only update highlight menu (remove old highlight and highlith
- // the new one), not need to full repain the form.
- //
- if (Repaint || NewLine) {
- if (IsListEmpty (&gMenuOption)) {
- //
- // Don't print anything if no mwnu option.
- //
- StringPtr = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);
- } else {
- //
- // Don't print anything if it is a NULL help token
- //
- ASSERT(MenuOption != NULL);
- HelpInfo = ((EFI_IFR_STATEMENT_HEADER *) ((CHAR8 *)MenuOption->ThisTag->OpCode + sizeof (EFI_IFR_OP_HEADER)))->Help;
- Statement = MenuOption->ThisTag;
- StatementValue = &Statement->CurrentValue;
- if (HelpInfo == 0 || !IsSelectable (MenuOption)) {
- if ((Statement->OpCode->OpCode == EFI_IFR_DATE_OP && StatementValue->Value.date.Month== 0xff)||(Statement->OpCode->OpCode == EFI_IFR_TIME_OP && StatementValue->Value.time.Hour == 0xff)){
- StringPtr = GetToken (STRING_TOKEN (GET_TIME_FAIL), gHiiHandle);
+ HelpBottomLine = ProcessHelpString (StringPtr, &HelpBottomString, &BottomLineWidth, 0);
+ FreePool (StringPtr);
+ //
+ // Calculate the help page count.
+ //
+ if (HelpLine > 2 * RowCount - 2) {
+ HelpPageCount = (HelpLine - RowCount + 1) / (RowCount - 2) + 1;
+ if ((HelpLine - RowCount + 1) % (RowCount - 2) != 0) {
+ HelpPageCount += 1;
+ }
} else {
- StringPtr = GetToken (STRING_TOKEN (EMPTY_STRING), gHiiHandle);
+ HelpPageCount = 2;
}
} else {
- if ((Statement->OpCode->OpCode == EFI_IFR_DATE_OP && StatementValue->Value.date.Month== 0xff)||(Statement->OpCode->OpCode == EFI_IFR_TIME_OP && StatementValue->Value.time.Hour == 0xff)){
- StringRightPtr = GetToken (HelpInfo, gFormData->HiiHandle);
- StringErrorPtr = GetToken (STRING_TOKEN (GET_TIME_FAIL), gHiiHandle);
- StringPtr = AllocateZeroPool ((StrLen (StringRightPtr) + StrLen (StringErrorPtr)+ 1 ) * sizeof (CHAR16));
- StrCpyS (StringPtr, StrLen (StringRightPtr) + StrLen (StringErrorPtr) + 1, StringRightPtr);
- StrCatS (StringPtr, StrLen (StringRightPtr) + StrLen (StringErrorPtr) + 1, StringErrorPtr);
- FreePool (StringRightPtr);
- FreePool (StringErrorPtr);
- } else {
- StringPtr = GetToken (HelpInfo, gFormData->HiiHandle);
- }
+ MultiHelpPage = FALSE;
}
}
- RowCount = BottomRow - TopRow + 1;
- HelpPageIndex = 0;
//
- // 1.Calculate how many line the help string need to print.
+ // Check whether need to show the 'More(U/u)' at the begin.
+ // Base on current direct info, here shows aligned to the right side of the column.
+ // If the direction is multi line and aligned to right side may have problem, so
+ // add ASSERT code here.
//
- if (HelpString != NULL) {
- FreePool (HelpString);
- HelpString = NULL;
- }
- HelpLine = ProcessHelpString (StringPtr, &HelpString, &EachLineWidth, RowCount);
- FreePool (StringPtr);
-
- if (HelpLine > RowCount) {
- MultiHelpPage = TRUE;
- StringPtr = GetToken (STRING_TOKEN(ADJUST_HELP_PAGE_UP), gHiiHandle);
- if (HelpHeaderString != NULL) {
- FreePool (HelpHeaderString);
- HelpHeaderString = NULL;
- }
- HelpHeaderLine = ProcessHelpString (StringPtr, &HelpHeaderString, &HeaderLineWidth, 0);
- FreePool (StringPtr);
- StringPtr = GetToken (STRING_TOKEN(ADJUST_HELP_PAGE_DOWN), gHiiHandle);
- if (HelpBottomString != NULL) {
- FreePool (HelpBottomString);
- HelpBottomString = NULL;
- }
- HelpBottomLine = ProcessHelpString (StringPtr, &HelpBottomString, &BottomLineWidth, 0);
- FreePool (StringPtr);
- //
- // Calculate the help page count.
- //
- if (HelpLine > 2 * RowCount - 2) {
- HelpPageCount = (HelpLine - RowCount + 1) / (RowCount - 2) + 1;
- if ((HelpLine - RowCount + 1) % (RowCount - 2) != 0) {
- HelpPageCount += 1;
- }
- } else {
- HelpPageCount = 2;
+ if (HelpPageIndex > 0) {
+ gST->ConOut->SetAttribute (gST->ConOut, GetInfoTextColor ());
+ for (Index = 0; Index < HelpHeaderLine; Index++) {
+ ASSERT (HelpHeaderLine == 1);
+ ASSERT (GetStringWidth (HelpHeaderString) / 2 < ((UINT32)gHelpBlockWidth - 1));
+ PrintStringAtWithWidth (
+ gStatementDimensions.RightColumn - gHelpBlockWidth,
+ Index + TopRow,
+ gEmptyString,
+ gHelpBlockWidth
+ );
+ PrintStringAt (
+ gStatementDimensions.RightColumn - GetStringWidth (HelpHeaderString) / 2 - 1,
+ Index + TopRow,
+ &HelpHeaderString[Index * HeaderLineWidth]
+ );
}
- } else {
- MultiHelpPage = FALSE;
}
- }
- //
- // Check whether need to show the 'More(U/u)' at the begin.
- // Base on current direct info, here shows aligned to the right side of the column.
- // If the direction is multi line and aligned to right side may have problem, so
- // add ASSERT code here.
- //
- if (HelpPageIndex > 0) {
- gST->ConOut->SetAttribute (gST->ConOut, GetInfoTextColor ());
- for (Index = 0; Index < HelpHeaderLine; Index++) {
- ASSERT (HelpHeaderLine == 1);
- ASSERT (GetStringWidth (HelpHeaderString) / 2 < ((UINT32) gHelpBlockWidth - 1));
- PrintStringAtWithWidth (
- gStatementDimensions.RightColumn - gHelpBlockWidth,
- Index + TopRow,
- gEmptyString,
- gHelpBlockWidth
- );
- PrintStringAt (
- gStatementDimensions.RightColumn - GetStringWidth (HelpHeaderString) / 2 - 1,
- Index + TopRow,
- &HelpHeaderString[Index * HeaderLineWidth]
- );
- }
- }
-
- gST->ConOut->SetAttribute (gST->ConOut, GetHelpTextColor ());
- //
- // Print the help string info.
- //
- if (!MultiHelpPage) {
- for (Index = 0; Index < HelpLine; Index++) {
- PrintStringAtWithWidth (
- gStatementDimensions.RightColumn - gHelpBlockWidth,
- Index + TopRow,
- &HelpString[Index * EachLineWidth],
- gHelpBlockWidth
- );
- }
- for (; Index < RowCount; Index ++) {
- PrintStringAtWithWidth (
- gStatementDimensions.RightColumn - gHelpBlockWidth,
- Index + TopRow,
- gEmptyString,
- gHelpBlockWidth
- );
- }
- gST->ConOut->SetCursorPosition(gST->ConOut, gStatementDimensions.RightColumn-1, BottomRow);
- } else {
- if (HelpPageIndex == 0) {
- for (Index = 0; Index < RowCount - HelpBottomLine; Index++) {
+ gST->ConOut->SetAttribute (gST->ConOut, GetHelpTextColor ());
+ //
+ // Print the help string info.
+ //
+ if (!MultiHelpPage) {
+ for (Index = 0; Index < HelpLine; Index++) {
PrintStringAtWithWidth (
gStatementDimensions.RightColumn - gHelpBlockWidth,
Index + TopRow,
@@ -3087,714 +3109,764 @@ UiDisplayMenu (
gHelpBlockWidth
);
}
- } else {
- for (Index = 0; (Index < RowCount - HelpBottomLine - HelpHeaderLine) &&
- (Index + HelpPageIndex * (RowCount - 2) + 1 < HelpLine); Index++) {
+
+ for ( ; Index < RowCount; Index++) {
PrintStringAtWithWidth (
gStatementDimensions.RightColumn - gHelpBlockWidth,
- Index + TopRow + HelpHeaderLine,
- &HelpString[(Index + HelpPageIndex * (RowCount - 2) + 1)* EachLineWidth],
+ Index + TopRow,
+ gEmptyString,
gHelpBlockWidth
);
}
- if (HelpPageIndex == HelpPageCount - 1) {
- for (; Index < RowCount - HelpHeaderLine; Index ++) {
+
+ gST->ConOut->SetCursorPosition (gST->ConOut, gStatementDimensions.RightColumn-1, BottomRow);
+ } else {
+ if (HelpPageIndex == 0) {
+ for (Index = 0; Index < RowCount - HelpBottomLine; Index++) {
+ PrintStringAtWithWidth (
+ gStatementDimensions.RightColumn - gHelpBlockWidth,
+ Index + TopRow,
+ &HelpString[Index * EachLineWidth],
+ gHelpBlockWidth
+ );
+ }
+ } else {
+ for (Index = 0; (Index < RowCount - HelpBottomLine - HelpHeaderLine) &&
+ (Index + HelpPageIndex * (RowCount - 2) + 1 < HelpLine); Index++)
+ {
PrintStringAtWithWidth (
gStatementDimensions.RightColumn - gHelpBlockWidth,
Index + TopRow + HelpHeaderLine,
- gEmptyString,
+ &HelpString[(Index + HelpPageIndex * (RowCount - 2) + 1)* EachLineWidth],
gHelpBlockWidth
);
}
- gST->ConOut->SetCursorPosition(gST->ConOut, gStatementDimensions.RightColumn-1, BottomRow);
- }
- }
- }
-
- //
- // Check whether need to print the 'More(D/d)' at the bottom.
- // Base on current direct info, here shows aligned to the right side of the column.
- // If the direction is multi line and aligned to right side may have problem, so
- // add ASSERT code here.
- //
- if (HelpPageIndex < HelpPageCount - 1 && MultiHelpPage) {
- gST->ConOut->SetAttribute (gST->ConOut, GetInfoTextColor ());
- for (Index = 0; Index < HelpBottomLine; Index++) {
- ASSERT (HelpBottomLine == 1);
- ASSERT (GetStringWidth (HelpBottomString) / 2 < ((UINT32) gHelpBlockWidth - 1));
- PrintStringAtWithWidth (
- gStatementDimensions.RightColumn - gHelpBlockWidth,
- BottomRow + Index - HelpBottomLine + 1,
- gEmptyString,
- gHelpBlockWidth
- );
- PrintStringAt (
- gStatementDimensions.RightColumn - GetStringWidth (HelpBottomString) / 2 - 1,
- BottomRow + Index - HelpBottomLine + 1,
- &HelpBottomString[Index * BottomLineWidth]
- );
- }
- }
- //
- // Reset this flag every time we finish using it.
- //
- Repaint = FALSE;
- NewLine = FALSE;
- break;
-
- case CfPrepareToReadKey:
- ControlFlag = CfReadKey;
- ScreenOperation = UiNoOperation;
- break;
- case CfReadKey:
- ControlFlag = CfScreenOperation;
+ if (HelpPageIndex == HelpPageCount - 1) {
+ for ( ; Index < RowCount - HelpHeaderLine; Index++) {
+ PrintStringAtWithWidth (
+ gStatementDimensions.RightColumn - gHelpBlockWidth,
+ Index + TopRow + HelpHeaderLine,
+ gEmptyString,
+ gHelpBlockWidth
+ );
+ }
- //
- // Wait for user's selection
- //
- while (TRUE) {
- Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
- if (!EFI_ERROR (Status)) {
- EventType = UIEventKey;
- break;
+ gST->ConOut->SetCursorPosition (gST->ConOut, gStatementDimensions.RightColumn-1, BottomRow);
+ }
+ }
}
//
- // If we encounter error, continue to read another key in.
+ // Check whether need to print the 'More(D/d)' at the bottom.
+ // Base on current direct info, here shows aligned to the right side of the column.
+ // If the direction is multi line and aligned to right side may have problem, so
+ // add ASSERT code here.
//
- if (Status != EFI_NOT_READY) {
- continue;
+ if ((HelpPageIndex < HelpPageCount - 1) && MultiHelpPage) {
+ gST->ConOut->SetAttribute (gST->ConOut, GetInfoTextColor ());
+ for (Index = 0; Index < HelpBottomLine; Index++) {
+ ASSERT (HelpBottomLine == 1);
+ ASSERT (GetStringWidth (HelpBottomString) / 2 < ((UINT32)gHelpBlockWidth - 1));
+ PrintStringAtWithWidth (
+ gStatementDimensions.RightColumn - gHelpBlockWidth,
+ BottomRow + Index - HelpBottomLine + 1,
+ gEmptyString,
+ gHelpBlockWidth
+ );
+ PrintStringAt (
+ gStatementDimensions.RightColumn - GetStringWidth (HelpBottomString) / 2 - 1,
+ BottomRow + Index - HelpBottomLine + 1,
+ &HelpBottomString[Index * BottomLineWidth]
+ );
+ }
}
- EventType = UiWaitForEvent(gST->ConIn->WaitForKey);
- if (EventType == UIEventKey) {
- gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
- }
+ //
+ // Reset this flag every time we finish using it.
+ //
+ Repaint = FALSE;
+ NewLine = FALSE;
break;
- }
- if (EventType == UIEventDriver) {
- gMisMatch = TRUE;
- gUserInput->Action = BROWSER_ACTION_NONE;
- ControlFlag = CfExit;
+ case CfPrepareToReadKey:
+ ControlFlag = CfReadKey;
+ ScreenOperation = UiNoOperation;
break;
- }
- if (EventType == UIEventTimeOut) {
- gUserInput->Action = BROWSER_ACTION_FORM_EXIT;
- ControlFlag = CfExit;
- break;
- }
+ case CfReadKey:
+ ControlFlag = CfScreenOperation;
+
+ //
+ // Wait for user's selection
+ //
+ while (TRUE) {
+ Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
+ if (!EFI_ERROR (Status)) {
+ EventType = UIEventKey;
+ break;
+ }
+
+ //
+ // If we encounter error, continue to read another key in.
+ //
+ if (Status != EFI_NOT_READY) {
+ continue;
+ }
+
+ EventType = UiWaitForEvent (gST->ConIn->WaitForKey);
+ if (EventType == UIEventKey) {
+ gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
+ }
- switch (Key.UnicodeChar) {
- case CHAR_CARRIAGE_RETURN:
- if(MenuOption == NULL || MenuOption->GrayOut || MenuOption->ReadOnly) {
- ControlFlag = CfReadKey;
break;
}
- ScreenOperation = UiSelect;
- gDirection = 0;
- break;
+ if (EventType == UIEventDriver) {
+ gMisMatch = TRUE;
+ gUserInput->Action = BROWSER_ACTION_NONE;
+ ControlFlag = CfExit;
+ break;
+ }
- //
- // We will push the adjustment of these numeric values directly to the input handler
- // NOTE: we won't handle manual input numeric
- //
- case '+':
- case '-':
- //
- // If the screen has no menu items, and the user didn't select UiReset
- // ignore the selection and go back to reading keys.
- //
- ASSERT(MenuOption != NULL);
- if(IsListEmpty (&gMenuOption) || MenuOption->GrayOut || MenuOption->ReadOnly) {
- ControlFlag = CfReadKey;
+ if (EventType == UIEventTimeOut) {
+ gUserInput->Action = BROWSER_ACTION_FORM_EXIT;
+ ControlFlag = CfExit;
break;
}
- Statement = MenuOption->ThisTag;
- if ((Statement->OpCode->OpCode == EFI_IFR_DATE_OP)
- || (Statement->OpCode->OpCode == EFI_IFR_TIME_OP)
- || ((Statement->OpCode->OpCode == EFI_IFR_NUMERIC_OP) && (GetFieldFromNum(Statement->OpCode) != 0))
- ){
- if (Key.UnicodeChar == '+') {
- gDirection = SCAN_RIGHT;
- } else {
- gDirection = SCAN_LEFT;
- }
+ switch (Key.UnicodeChar) {
+ case CHAR_CARRIAGE_RETURN:
+ if ((MenuOption == NULL) || MenuOption->GrayOut || MenuOption->ReadOnly) {
+ ControlFlag = CfReadKey;
+ break;
+ }
- Status = ProcessOptions (MenuOption, TRUE, &OptionString, TRUE);
- if (OptionString != NULL) {
- FreePool (OptionString);
- }
- if (EFI_ERROR (Status)) {
+ ScreenOperation = UiSelect;
+ gDirection = 0;
+ break;
+
+ //
+ // We will push the adjustment of these numeric values directly to the input handler
+ // NOTE: we won't handle manual input numeric
+ //
+ case '+':
+ case '-':
//
- // Repaint to clear possible error prompt pop-up
+ // If the screen has no menu items, and the user didn't select UiReset
+ // ignore the selection and go back to reading keys.
//
- Repaint = TRUE;
- NewLine = TRUE;
- } else {
- ControlFlag = CfExit;
- }
- }
- break;
+ ASSERT (MenuOption != NULL);
+ if (IsListEmpty (&gMenuOption) || MenuOption->GrayOut || MenuOption->ReadOnly) {
+ ControlFlag = CfReadKey;
+ break;
+ }
- case '^':
- ScreenOperation = UiUp;
- break;
+ Statement = MenuOption->ThisTag;
+ if ( (Statement->OpCode->OpCode == EFI_IFR_DATE_OP)
+ || (Statement->OpCode->OpCode == EFI_IFR_TIME_OP)
+ || ((Statement->OpCode->OpCode == EFI_IFR_NUMERIC_OP) && (GetFieldFromNum (Statement->OpCode) != 0))
+ )
+ {
+ if (Key.UnicodeChar == '+') {
+ gDirection = SCAN_RIGHT;
+ } else {
+ gDirection = SCAN_LEFT;
+ }
+
+ Status = ProcessOptions (MenuOption, TRUE, &OptionString, TRUE);
+ if (OptionString != NULL) {
+ FreePool (OptionString);
+ }
+
+ if (EFI_ERROR (Status)) {
+ //
+ // Repaint to clear possible error prompt pop-up
+ //
+ Repaint = TRUE;
+ NewLine = TRUE;
+ } else {
+ ControlFlag = CfExit;
+ }
+ }
- case 'V':
- case 'v':
- ScreenOperation = UiDown;
- break;
+ break;
- case ' ':
- if(IsListEmpty (&gMenuOption)) {
- ControlFlag = CfReadKey;
- break;
- }
+ case '^':
+ ScreenOperation = UiUp;
+ break;
- ASSERT(MenuOption != NULL);
- if (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_CHECKBOX_OP && !MenuOption->GrayOut && !MenuOption->ReadOnly) {
- ScreenOperation = UiSelect;
- }
- break;
+ case 'V':
+ case 'v':
+ ScreenOperation = UiDown;
+ break;
- case 'D':
- case 'd':
- if (!MultiHelpPage) {
- ControlFlag = CfReadKey;
- break;
- }
- ControlFlag = CfUpdateHelpString;
- HelpPageIndex = HelpPageIndex < HelpPageCount - 1 ? HelpPageIndex + 1 : HelpPageCount - 1;
- break;
+ case ' ':
+ if (IsListEmpty (&gMenuOption)) {
+ ControlFlag = CfReadKey;
+ break;
+ }
- case 'U':
- case 'u':
- if (!MultiHelpPage) {
- ControlFlag = CfReadKey;
- break;
+ ASSERT (MenuOption != NULL);
+ if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_CHECKBOX_OP) && !MenuOption->GrayOut && !MenuOption->ReadOnly) {
+ ScreenOperation = UiSelect;
+ }
+
+ break;
+
+ case 'D':
+ case 'd':
+ if (!MultiHelpPage) {
+ ControlFlag = CfReadKey;
+ break;
+ }
+
+ ControlFlag = CfUpdateHelpString;
+ HelpPageIndex = HelpPageIndex < HelpPageCount - 1 ? HelpPageIndex + 1 : HelpPageCount - 1;
+ break;
+
+ case 'U':
+ case 'u':
+ if (!MultiHelpPage) {
+ ControlFlag = CfReadKey;
+ break;
+ }
+
+ ControlFlag = CfUpdateHelpString;
+ HelpPageIndex = HelpPageIndex > 0 ? HelpPageIndex - 1 : 0;
+ break;
+
+ case CHAR_NULL:
+ for (Index = 0; Index < mScanCodeNumber; Index++) {
+ if (Key.ScanCode == gScanCodeToOperation[Index].ScanCode) {
+ ScreenOperation = gScanCodeToOperation[Index].ScreenOperation;
+ break;
+ }
+ }
+
+ if (((FormData->Attribute & HII_DISPLAY_MODAL) != 0) && ((Key.ScanCode == SCAN_ESC) || (Index == mScanCodeNumber))) {
+ //
+ // ModalForm has no ESC key and Hot Key.
+ //
+ ControlFlag = CfReadKey;
+ } else if (Index == mScanCodeNumber) {
+ //
+ // Check whether Key matches the registered hot key.
+ //
+ HotKey = NULL;
+ HotKey = GetHotKeyFromRegisterList (&Key);
+ if (HotKey != NULL) {
+ ScreenOperation = UiHotKey;
+ }
+ }
+
+ break;
}
- ControlFlag = CfUpdateHelpString;
- HelpPageIndex = HelpPageIndex > 0 ? HelpPageIndex - 1 : 0;
+
break;
- case CHAR_NULL:
- for (Index = 0; Index < mScanCodeNumber; Index++) {
- if (Key.ScanCode == gScanCodeToOperation[Index].ScanCode) {
- ScreenOperation = gScanCodeToOperation[Index].ScreenOperation;
+ case CfScreenOperation:
+ if ((ScreenOperation != UiReset) && (ScreenOperation != UiHotKey)) {
+ //
+ // If the screen has no menu items, and the user didn't select UiReset or UiHotKey
+ // ignore the selection and go back to reading keys.
+ //
+ if (IsListEmpty (&gMenuOption)) {
+ ControlFlag = CfReadKey;
break;
}
}
- if (((FormData->Attribute & HII_DISPLAY_MODAL) != 0) && (Key.ScanCode == SCAN_ESC || Index == mScanCodeNumber)) {
- //
- // ModalForm has no ESC key and Hot Key.
- //
- ControlFlag = CfReadKey;
- } else if (Index == mScanCodeNumber) {
- //
- // Check whether Key matches the registered hot key.
- //
- HotKey = NULL;
- HotKey = GetHotKeyFromRegisterList (&Key);
- if (HotKey != NULL) {
- ScreenOperation = UiHotKey;
+ for (Index = 0;
+ Index < ARRAY_SIZE (gScreenOperationToControlFlag);
+ Index++
+ )
+ {
+ if (ScreenOperation == gScreenOperationToControlFlag[Index].ScreenOperation) {
+ ControlFlag = gScreenOperationToControlFlag[Index].ControlFlag;
+ break;
}
}
+
break;
- }
- break;
- case CfScreenOperation:
- if ((ScreenOperation != UiReset) && (ScreenOperation != UiHotKey)) {
- //
- // If the screen has no menu items, and the user didn't select UiReset or UiHotKey
- // ignore the selection and go back to reading keys.
- //
- if (IsListEmpty (&gMenuOption)) {
- ControlFlag = CfReadKey;
- break;
- }
- }
+ case CfUiSelect:
+ ControlFlag = CfRepaint;
- for (Index = 0;
- Index < ARRAY_SIZE (gScreenOperationToControlFlag);
- Index++
- ) {
- if (ScreenOperation == gScreenOperationToControlFlag[Index].ScreenOperation) {
- ControlFlag = gScreenOperationToControlFlag[Index].ControlFlag;
+ ASSERT (MenuOption != NULL);
+ Statement = MenuOption->ThisTag;
+ if (Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) {
break;
}
- }
- break;
- case CfUiSelect:
- ControlFlag = CfRepaint;
+ switch (Statement->OpCode->OpCode) {
+ case EFI_IFR_REF_OP:
+ case EFI_IFR_ACTION_OP:
+ case EFI_IFR_RESET_BUTTON_OP:
+ ControlFlag = CfExit;
+ break;
- ASSERT(MenuOption != NULL);
- Statement = MenuOption->ThisTag;
- if (Statement->OpCode->OpCode == EFI_IFR_TEXT_OP) {
- break;
- }
+ default:
+ //
+ // Editable Questions: oneof, ordered list, checkbox, numeric, string, password
+ //
+ RefreshKeyHelp (gFormData, Statement, TRUE);
+ Status = ProcessOptions (MenuOption, TRUE, &OptionString, TRUE);
+
+ if (OptionString != NULL) {
+ FreePool (OptionString);
+ }
+
+ if (EFI_ERROR (Status)) {
+ Repaint = TRUE;
+ NewLine = TRUE;
+ RefreshKeyHelp (gFormData, Statement, FALSE);
+ break;
+ } else {
+ ControlFlag = CfExit;
+ break;
+ }
+ }
- switch (Statement->OpCode->OpCode) {
- case EFI_IFR_REF_OP:
- case EFI_IFR_ACTION_OP:
- case EFI_IFR_RESET_BUTTON_OP:
- ControlFlag = CfExit;
break;
- default:
+ case CfUiReset:
//
- // Editable Questions: oneof, ordered list, checkbox, numeric, string, password
+ // We come here when someone press ESC
+ // If the policy is not exit front page when user press ESC, process here.
//
- RefreshKeyHelp (gFormData, Statement, TRUE);
- Status = ProcessOptions (MenuOption, TRUE, &OptionString, TRUE);
-
- if (OptionString != NULL) {
- FreePool (OptionString);
- }
-
- if (EFI_ERROR (Status)) {
- Repaint = TRUE;
- NewLine = TRUE;
- RefreshKeyHelp (gFormData, Statement, FALSE);
- break;
- } else {
- ControlFlag = CfExit;
+ if (!FormExitPolicy ()) {
+ Repaint = TRUE;
+ NewLine = TRUE;
+ ControlFlag = CfRepaint;
break;
}
- }
- break;
- case CfUiReset:
- //
- // We come here when someone press ESC
- // If the policy is not exit front page when user press ESC, process here.
- //
- if (!FormExitPolicy()) {
- Repaint = TRUE;
- NewLine = TRUE;
- ControlFlag = CfRepaint;
+ gUserInput->Action = BROWSER_ACTION_FORM_EXIT;
+ ControlFlag = CfExit;
break;
- }
- gUserInput->Action = BROWSER_ACTION_FORM_EXIT;
- ControlFlag = CfExit;
- break;
+ case CfUiHotKey:
+ ControlFlag = CfRepaint;
- case CfUiHotKey:
- ControlFlag = CfRepaint;
+ ASSERT (HotKey != NULL);
- ASSERT (HotKey != NULL);
+ if (FxConfirmPopup (HotKey->Action)) {
+ gUserInput->Action = HotKey->Action;
+ if ((HotKey->Action & BROWSER_ACTION_DEFAULT) == BROWSER_ACTION_DEFAULT) {
+ gUserInput->DefaultId = HotKey->DefaultId;
+ }
- if (FxConfirmPopup(HotKey->Action)) {
- gUserInput->Action = HotKey->Action;
- if ((HotKey->Action & BROWSER_ACTION_DEFAULT) == BROWSER_ACTION_DEFAULT) {
- gUserInput->DefaultId = HotKey->DefaultId;
+ ControlFlag = CfExit;
+ } else {
+ Repaint = TRUE;
+ NewLine = TRUE;
+ ControlFlag = CfRepaint;
}
- ControlFlag = CfExit;
- } else {
- Repaint = TRUE;
- NewLine = TRUE;
- ControlFlag = CfRepaint;
- }
- break;
+ break;
- case CfUiLeft:
- ControlFlag = CfRepaint;
- ASSERT(MenuOption != NULL);
- if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_DATE_OP) || (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TIME_OP)) {
- if (MenuOption->Sequence != 0) {
- //
- // In the middle or tail of the Date/Time op-code set, go left.
- //
- ASSERT(NewPos != NULL);
- NewPos = NewPos->BackLink;
+ case CfUiLeft:
+ ControlFlag = CfRepaint;
+ ASSERT (MenuOption != NULL);
+ if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_DATE_OP) || (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TIME_OP)) {
+ if (MenuOption->Sequence != 0) {
+ //
+ // In the middle or tail of the Date/Time op-code set, go left.
+ //
+ ASSERT (NewPos != NULL);
+ NewPos = NewPos->BackLink;
+ }
}
- }
- break;
- case CfUiRight:
- ControlFlag = CfRepaint;
- ASSERT(MenuOption != NULL);
- if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_DATE_OP) || (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TIME_OP)) {
- if (MenuOption->Sequence != 2) {
- //
- // In the middle or tail of the Date/Time op-code set, go left.
- //
- ASSERT(NewPos != NULL);
- NewPos = NewPos->ForwardLink;
+ break;
+
+ case CfUiRight:
+ ControlFlag = CfRepaint;
+ ASSERT (MenuOption != NULL);
+ if ((MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_DATE_OP) || (MenuOption->ThisTag->OpCode->OpCode == EFI_IFR_TIME_OP)) {
+ if (MenuOption->Sequence != 2) {
+ //
+ // In the middle or tail of the Date/Time op-code set, go left.
+ //
+ ASSERT (NewPos != NULL);
+ NewPos = NewPos->ForwardLink;
+ }
}
- }
- break;
- case CfUiUp:
- ControlFlag = CfRepaint;
- NewLine = TRUE;
+ break;
- SavedListEntry = NewPos;
- ASSERT(NewPos != NULL);
+ case CfUiUp:
+ ControlFlag = CfRepaint;
+ NewLine = TRUE;
- MenuOption = MENU_OPTION_FROM_LINK (NewPos);
- ASSERT (MenuOption != NULL);
+ SavedListEntry = NewPos;
+ ASSERT (NewPos != NULL);
- //
- // Adjust Date/Time position before we advance forward.
- //
- AdjustDateAndTimePosition (TRUE, &NewPos);
+ MenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ ASSERT (MenuOption != NULL);
- NewPos = NewPos->BackLink;
- //
- // Find next selectable menu or the first menu beyond current form.
- //
- Difference = MoveToNextStatement (TRUE, &NewPos, MenuOption->Row - TopRow, FALSE);
- if (Difference < 0) {
//
- // We hit the begining MenuOption that can be focused
- // so we simply scroll to the top.
+ // Adjust Date/Time position before we advance forward.
//
- Repaint = TRUE;
- if (TopOfScreen != gMenuOption.ForwardLink || SkipValue != 0) {
- TopOfScreen = gMenuOption.ForwardLink;
- NewPos = SavedListEntry;
- SkipValue = 0;
- } else {
+ AdjustDateAndTimePosition (TRUE, &NewPos);
+
+ NewPos = NewPos->BackLink;
+ //
+ // Find next selectable menu or the first menu beyond current form.
+ //
+ Difference = MoveToNextStatement (TRUE, &NewPos, MenuOption->Row - TopRow, FALSE);
+ if (Difference < 0) {
//
- // Scroll up to the last page when we have arrived at top page.
+ // We hit the begining MenuOption that can be focused
+ // so we simply scroll to the top.
//
- TopOfScreen = FindTopOfScreenMenu (gMenuOption.BackLink, BottomRow - TopRow, &SkipValue);
- NewPos = gMenuOption.BackLink;
- MoveToNextStatement (TRUE, &NewPos, BottomRow - TopRow, TRUE);
- }
- } else {
- NextMenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ Repaint = TRUE;
+ if ((TopOfScreen != gMenuOption.ForwardLink) || (SkipValue != 0)) {
+ TopOfScreen = gMenuOption.ForwardLink;
+ NewPos = SavedListEntry;
+ SkipValue = 0;
+ } else {
+ //
+ // Scroll up to the last page when we have arrived at top page.
+ //
+ TopOfScreen = FindTopOfScreenMenu (gMenuOption.BackLink, BottomRow - TopRow, &SkipValue);
+ NewPos = gMenuOption.BackLink;
+ MoveToNextStatement (TRUE, &NewPos, BottomRow - TopRow, TRUE);
+ }
+ } else {
+ NextMenuOption = MENU_OPTION_FROM_LINK (NewPos);
+
+ if (MenuOption->Row < TopRow + Difference + NextMenuOption->Skip) {
+ //
+ // Previous focus MenuOption is above the TopOfScreen, so we need to scroll
+ //
+ TopOfScreen = NewPos;
+ Repaint = TRUE;
+ SkipValue = 0;
+ }
- if (MenuOption->Row < TopRow + Difference + NextMenuOption->Skip) {
//
- // Previous focus MenuOption is above the TopOfScreen, so we need to scroll
+ // Check whether new highlight menu is selectable, if not, keep highlight on the old one.
//
- TopOfScreen = NewPos;
- Repaint = TRUE;
- SkipValue = 0;
+ // BottomRow - TopRow + 1 means the total rows current forms supported.
+ // Difference + NextMenuOption->Skip + 1 means the distance between last highlight menu
+ // and new top menu. New top menu will all shows in next form, but last highlight menu
+ // may only shows 1 line. + 1 at right part means at least need to keep 1 line for the
+ // last highlight menu.
+ //
+ if (!IsSelectable (NextMenuOption) && IsSelectable (MenuOption) &&
+ (BottomRow - TopRow + 1 >= Difference + NextMenuOption->Skip + 1))
+ {
+ NewPos = SavedListEntry;
+ }
}
+ UpdateStatusBar (INPUT_ERROR, FALSE);
+
//
- // Check whether new highlight menu is selectable, if not, keep highlight on the old one.
+ // If we encounter a Date/Time op-code set, rewind to the first op-code of the set.
//
- // BottomRow - TopRow + 1 means the total rows current forms supported.
- // Difference + NextMenuOption->Skip + 1 means the distance between last highlight menu
- // and new top menu. New top menu will all shows in next form, but last highlight menu
- // may only shows 1 line. + 1 at right part means at least need to keep 1 line for the
- // last highlight menu.
- //
- if (!IsSelectable(NextMenuOption) && IsSelectable(MenuOption) &&
- (BottomRow - TopRow + 1 >= Difference + NextMenuOption->Skip + 1)) {
- NewPos = SavedListEntry;
- }
- }
-
- UpdateStatusBar (INPUT_ERROR, FALSE);
-
- //
- // If we encounter a Date/Time op-code set, rewind to the first op-code of the set.
- //
- AdjustDateAndTimePosition (TRUE, &TopOfScreen);
- AdjustDateAndTimePosition (TRUE, &NewPos);
-
- UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
- break;
+ AdjustDateAndTimePosition (TRUE, &TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, &NewPos);
- case CfUiPageUp:
- //
- // SkipValue means lines is skipped when show the top menu option.
- //
- ControlFlag = CfRepaint;
- NewLine = TRUE;
- Repaint = TRUE;
+ UpdateHighlightMenuInfo (NewPos, TopOfScreen, SkipValue);
+ break;
- Link = TopOfScreen;
- //
- // First minus the menu of the top screen, it's value is SkipValue.
- //
- if (SkipValue >= BottomRow - TopRow + 1) {
+ case CfUiPageUp:
//
- // SkipValue > (BottomRow - TopRow + 1) means current menu has more than one
- // form of options to be show, so just update the SkipValue to show the next
- // parts of options.
+ // SkipValue means lines is skipped when show the top menu option.
//
- SkipValue -= BottomRow - TopRow + 1;
- NewPos = TopOfScreen;
- break;
- } else {
- Index = (BottomRow + 1) - SkipValue - TopRow;
- }
-
- TopOfScreen = FindTopOfScreenMenu(TopOfScreen, Index, &SkipValue);
- NewPos = TopOfScreen;
- MoveToNextStatement (FALSE, &NewPos, BottomRow - TopRow, FALSE);
+ ControlFlag = CfRepaint;
+ NewLine = TRUE;
+ Repaint = TRUE;
- UpdateStatusBar (INPUT_ERROR, FALSE);
+ Link = TopOfScreen;
+ //
+ // First minus the menu of the top screen, it's value is SkipValue.
+ //
+ if (SkipValue >= BottomRow - TopRow + 1) {
+ //
+ // SkipValue > (BottomRow - TopRow + 1) means current menu has more than one
+ // form of options to be show, so just update the SkipValue to show the next
+ // parts of options.
+ //
+ SkipValue -= BottomRow - TopRow + 1;
+ NewPos = TopOfScreen;
+ break;
+ } else {
+ Index = (BottomRow + 1) - SkipValue - TopRow;
+ }
- //
- // If we encounter a Date/Time op-code set, rewind to the first op-code of the set.
- // Don't do this when we are already in the first page.
- //
- AdjustDateAndTimePosition (TRUE, &TopOfScreen);
- AdjustDateAndTimePosition (TRUE, &NewPos);
+ TopOfScreen = FindTopOfScreenMenu (TopOfScreen, Index, &SkipValue);
+ NewPos = TopOfScreen;
+ MoveToNextStatement (FALSE, &NewPos, BottomRow - TopRow, FALSE);
- UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
- break;
+ UpdateStatusBar (INPUT_ERROR, FALSE);
- case CfUiPageDown:
- //
- // SkipValue means lines is skipped when show the top menu option.
- //
- ControlFlag = CfRepaint;
- NewLine = TRUE;
- Repaint = TRUE;
+ //
+ // If we encounter a Date/Time op-code set, rewind to the first op-code of the set.
+ // Don't do this when we are already in the first page.
+ //
+ AdjustDateAndTimePosition (TRUE, &TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, &NewPos);
- Link = TopOfScreen;
- NextMenuOption = MENU_OPTION_FROM_LINK (Link);
- Index = TopRow + NextMenuOption->Skip - SkipValue;
- //
- // Count to the menu option which will show at the top of the next form.
- //
- while ((Index <= BottomRow + 1) && (Link->ForwardLink != &gMenuOption)) {
- Link = Link->ForwardLink;
- NextMenuOption = MENU_OPTION_FROM_LINK (Link);
- Index = Index + NextMenuOption->Skip;
- }
+ UpdateHighlightMenuInfo (NewPos, TopOfScreen, SkipValue);
+ break;
- if ((Link->ForwardLink == &gMenuOption) && (Index <= BottomRow + 1)) {
+ case CfUiPageDown:
//
- // Highlight on the last menu which can be highlight.
+ // SkipValue means lines is skipped when show the top menu option.
//
- Repaint = FALSE;
- MoveToNextStatement (TRUE, &Link, Index - TopRow, TRUE);
- } else {
+ ControlFlag = CfRepaint;
+ NewLine = TRUE;
+ Repaint = TRUE;
+
+ Link = TopOfScreen;
+ NextMenuOption = MENU_OPTION_FROM_LINK (Link);
+ Index = TopRow + NextMenuOption->Skip - SkipValue;
//
- // Calculate the skip line for top of screen menu.
+ // Count to the menu option which will show at the top of the next form.
//
- if (Link == TopOfScreen) {
+ while ((Index <= BottomRow + 1) && (Link->ForwardLink != &gMenuOption)) {
+ Link = Link->ForwardLink;
+ NextMenuOption = MENU_OPTION_FROM_LINK (Link);
+ Index = Index + NextMenuOption->Skip;
+ }
+
+ if ((Link->ForwardLink == &gMenuOption) && (Index <= BottomRow + 1)) {
//
- // The top of screen menu option occupies the entire form.
+ // Highlight on the last menu which can be highlight.
//
- SkipValue += BottomRow - TopRow + 1;
+ Repaint = FALSE;
+ MoveToNextStatement (TRUE, &Link, Index - TopRow, TRUE);
} else {
- SkipValue = NextMenuOption->Skip - (Index - (BottomRow + 1));
+ //
+ // Calculate the skip line for top of screen menu.
+ //
+ if (Link == TopOfScreen) {
+ //
+ // The top of screen menu option occupies the entire form.
+ //
+ SkipValue += BottomRow - TopRow + 1;
+ } else {
+ SkipValue = NextMenuOption->Skip - (Index - (BottomRow + 1));
+ }
+
+ TopOfScreen = Link;
+ MenuOption = NULL;
+ //
+ // Move to the Next selectable menu.
+ //
+ MoveToNextStatement (FALSE, &Link, BottomRow - TopRow, TRUE);
}
- TopOfScreen = Link;
- MenuOption = NULL;
+
//
- // Move to the Next selectable menu.
+ // Save the menu as the next highlight menu.
//
- MoveToNextStatement (FALSE, &Link, BottomRow - TopRow, TRUE);
- }
+ NewPos = Link;
- //
- // Save the menu as the next highlight menu.
- //
- NewPos = Link;
-
- UpdateStatusBar (INPUT_ERROR, FALSE);
-
- //
- // If we encounter a Date/Time op-code set, rewind to the first op-code of the set.
- // Don't do this when we are already in the last page.
- //
- AdjustDateAndTimePosition (TRUE, &TopOfScreen);
- AdjustDateAndTimePosition (TRUE, &NewPos);
+ UpdateStatusBar (INPUT_ERROR, FALSE);
- UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
- break;
-
- case CfUiDown:
- //
- // SkipValue means lines is skipped when show the top menu option.
- // NewPos points to the menu which is highlighted now.
- //
- ControlFlag = CfRepaint;
- NewLine = TRUE;
+ //
+ // If we encounter a Date/Time op-code set, rewind to the first op-code of the set.
+ // Don't do this when we are already in the last page.
+ //
+ AdjustDateAndTimePosition (TRUE, &TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, &NewPos);
- if (NewPos == TopOfScreen) {
- Temp2 = SkipValue;
- } else {
- Temp2 = 0;
- }
+ UpdateHighlightMenuInfo (NewPos, TopOfScreen, SkipValue);
+ break;
- SavedListEntry = NewPos;
- //
- // Since the behavior of hitting the down arrow on a Date/Time op-code is intended
- // to be one that progresses to the next set of op-codes, we need to advance to the last
- // Date/Time op-code and leave the remaining logic in UiDown intact so the appropriate
- // checking can be done. The only other logic we need to introduce is that if a Date/Time
- // op-code is the last entry in the menu, we need to rewind back to the first op-code of
- // the Date/Time op-code.
- //
- AdjustDateAndTimePosition (FALSE, &NewPos);
+ case CfUiDown:
+ //
+ // SkipValue means lines is skipped when show the top menu option.
+ // NewPos points to the menu which is highlighted now.
+ //
+ ControlFlag = CfRepaint;
+ NewLine = TRUE;
- MenuOption = MENU_OPTION_FROM_LINK (NewPos);
- NewPos = NewPos->ForwardLink;
- //
- // Find the next selectable menu.
- //
- if (MenuOption->Row + MenuOption->Skip - Temp2 > BottomRow + 1) {
- if (gMenuOption.ForwardLink == NewPos || &gMenuOption == NewPos) {
- Difference = -1;
+ if (NewPos == TopOfScreen) {
+ Temp2 = SkipValue;
} else {
- Difference = 0;
+ Temp2 = 0;
}
- } else {
- Difference = MoveToNextStatement (FALSE, &NewPos, BottomRow + 1 - (MenuOption->Row + MenuOption->Skip - Temp2), FALSE);
- }
- if (Difference < 0) {
+
+ SavedListEntry = NewPos;
//
- // Scroll to the first page.
+ // Since the behavior of hitting the down arrow on a Date/Time op-code is intended
+ // to be one that progresses to the next set of op-codes, we need to advance to the last
+ // Date/Time op-code and leave the remaining logic in UiDown intact so the appropriate
+ // checking can be done. The only other logic we need to introduce is that if a Date/Time
+ // op-code is the last entry in the menu, we need to rewind back to the first op-code of
+ // the Date/Time op-code.
//
- if (TopOfScreen != gMenuOption.ForwardLink || SkipValue != 0) {
- TopOfScreen = gMenuOption.ForwardLink;
- Repaint = TRUE;
- MenuOption = NULL;
- } else {
- MenuOption = MENU_OPTION_FROM_LINK (SavedListEntry);
- }
- NewPos = gMenuOption.ForwardLink;
- MoveToNextStatement (FALSE, &NewPos, BottomRow - TopRow, TRUE);
+ AdjustDateAndTimePosition (FALSE, &NewPos);
- SkipValue = 0;
+ MenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ NewPos = NewPos->ForwardLink;
//
- // If we are at the end of the list and sitting on a Date/Time op, rewind to the head.
+ // Find the next selectable menu.
//
- AdjustDateAndTimePosition (TRUE, &TopOfScreen);
- AdjustDateAndTimePosition (TRUE, &NewPos);
+ if (MenuOption->Row + MenuOption->Skip - Temp2 > BottomRow + 1) {
+ if ((gMenuOption.ForwardLink == NewPos) || (&gMenuOption == NewPos)) {
+ Difference = -1;
+ } else {
+ Difference = 0;
+ }
+ } else {
+ Difference = MoveToNextStatement (FALSE, &NewPos, BottomRow + 1 - (MenuOption->Row + MenuOption->Skip - Temp2), FALSE);
+ }
- UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
- break;
- }
+ if (Difference < 0) {
+ //
+ // Scroll to the first page.
+ //
+ if ((TopOfScreen != gMenuOption.ForwardLink) || (SkipValue != 0)) {
+ TopOfScreen = gMenuOption.ForwardLink;
+ Repaint = TRUE;
+ MenuOption = NULL;
+ } else {
+ MenuOption = MENU_OPTION_FROM_LINK (SavedListEntry);
+ }
- //
- // Get next selected menu info.
- //
- AdjustDateAndTimePosition (FALSE, &NewPos);
- NextMenuOption = MENU_OPTION_FROM_LINK (NewPos);
- if (NextMenuOption->Row == 0) {
- UpdateOptionSkipLines (NextMenuOption);
- }
+ NewPos = gMenuOption.ForwardLink;
+ MoveToNextStatement (FALSE, &NewPos, BottomRow - TopRow, TRUE);
+
+ SkipValue = 0;
+ //
+ // If we are at the end of the list and sitting on a Date/Time op, rewind to the head.
+ //
+ AdjustDateAndTimePosition (TRUE, &TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, &NewPos);
+
+ UpdateHighlightMenuInfo (NewPos, TopOfScreen, SkipValue);
+ break;
+ }
- //
- // Calculate new highlight menu end row.
- //
- Temp = (MenuOption->Row + MenuOption->Skip - Temp2) + Difference + NextMenuOption->Skip - 1;
- if (Temp > BottomRow) {
//
- // Get the top screen menu info.
+ // Get next selected menu info.
//
- AdjustDateAndTimePosition (FALSE, &TopOfScreen);
- SavedMenuOption = MENU_OPTION_FROM_LINK (TopOfScreen);
+ AdjustDateAndTimePosition (FALSE, &NewPos);
+ NextMenuOption = MENU_OPTION_FROM_LINK (NewPos);
+ if (NextMenuOption->Row == 0) {
+ UpdateOptionSkipLines (NextMenuOption);
+ }
//
- // Current Top screen menu occupy (SavedMenuOption->Skip - SkipValue) rows.
- // Full shows the new selected menu need to skip (Temp - BottomRow - 1) rows.
+ // Calculate new highlight menu end row.
//
- if ((Temp - BottomRow) >= (SavedMenuOption->Skip - SkipValue)) {
+ Temp = (MenuOption->Row + MenuOption->Skip - Temp2) + Difference + NextMenuOption->Skip - 1;
+ if (Temp > BottomRow) {
//
- // Skip the top op-code
+ // Get the top screen menu info.
//
- TopOfScreen = TopOfScreen->ForwardLink;
- DistanceValue = (Temp - BottomRow) - (SavedMenuOption->Skip - SkipValue);
-
+ AdjustDateAndTimePosition (FALSE, &TopOfScreen);
SavedMenuOption = MENU_OPTION_FROM_LINK (TopOfScreen);
//
- // If we have a remainder, skip that many more op-codes until we drain the remainder
- // Special case is the selected highlight menu has more than one form of menus.
+ // Current Top screen menu occupy (SavedMenuOption->Skip - SkipValue) rows.
+ // Full shows the new selected menu need to skip (Temp - BottomRow - 1) rows.
//
- while (DistanceValue >= SavedMenuOption->Skip && TopOfScreen != NewPos) {
+ if ((Temp - BottomRow) >= (SavedMenuOption->Skip - SkipValue)) {
//
- // Since the Difference is greater than or equal to this op-code's skip value, skip it
+ // Skip the top op-code
//
- DistanceValue = DistanceValue - (INTN) SavedMenuOption->Skip;
- TopOfScreen = TopOfScreen->ForwardLink;
+ TopOfScreen = TopOfScreen->ForwardLink;
+ DistanceValue = (Temp - BottomRow) - (SavedMenuOption->Skip - SkipValue);
+
SavedMenuOption = MENU_OPTION_FROM_LINK (TopOfScreen);
- }
- //
- // Since we will act on this op-code in the next routine, and increment the
- // SkipValue, set the skips to one less than what is required.
- //
- if (TopOfScreen != NewPos) {
- SkipValue = DistanceValue;
+
+ //
+ // If we have a remainder, skip that many more op-codes until we drain the remainder
+ // Special case is the selected highlight menu has more than one form of menus.
+ //
+ while (DistanceValue >= SavedMenuOption->Skip && TopOfScreen != NewPos) {
+ //
+ // Since the Difference is greater than or equal to this op-code's skip value, skip it
+ //
+ DistanceValue = DistanceValue - (INTN)SavedMenuOption->Skip;
+ TopOfScreen = TopOfScreen->ForwardLink;
+ SavedMenuOption = MENU_OPTION_FROM_LINK (TopOfScreen);
+ }
+
+ //
+ // Since we will act on this op-code in the next routine, and increment the
+ // SkipValue, set the skips to one less than what is required.
+ //
+ if (TopOfScreen != NewPos) {
+ SkipValue = DistanceValue;
+ } else {
+ SkipValue = 0;
+ }
} else {
- SkipValue = 0;
+ //
+ // Since we will act on this op-code in the next routine, and increment the
+ // SkipValue, set the skips to one less than what is required.
+ //
+ SkipValue += Temp - BottomRow;
}
- } else {
+
+ Repaint = TRUE;
+ } else if (!IsSelectable (NextMenuOption)) {
//
- // Since we will act on this op-code in the next routine, and increment the
- // SkipValue, set the skips to one less than what is required.
+ // Continue to go down until scroll to next page or the selectable option is found.
//
- SkipValue += Temp - BottomRow;
+ ScreenOperation = UiDown;
+ ControlFlag = CfScreenOperation;
+ break;
}
- Repaint = TRUE;
- } else if (!IsSelectable (NextMenuOption)) {
+
+ MenuOption = MENU_OPTION_FROM_LINK (SavedListEntry);
+
//
- // Continue to go down until scroll to next page or the selectable option is found.
+ // Check whether new highlight menu is selectable, if not, keep highlight on the old one.
//
- ScreenOperation = UiDown;
- ControlFlag = CfScreenOperation;
- break;
- }
+ // BottomRow - TopRow + 1 means the total rows current forms supported.
+ // Difference + NextMenuOption->Skip + 1 means the distance between last highlight menu
+ // and new top menu. New top menu will all shows in next form, but last highlight menu
+ // may only shows 1 line. + 1 at right part means at least need to keep 1 line for the
+ // last highlight menu.
+ //
+ if (!IsSelectable (NextMenuOption) && IsSelectable (MenuOption) &&
+ (BottomRow - TopRow + 1 >= Difference + NextMenuOption->Skip + 1))
+ {
+ NewPos = SavedListEntry;
+ }
- MenuOption = MENU_OPTION_FROM_LINK (SavedListEntry);
+ UpdateStatusBar (INPUT_ERROR, FALSE);
- //
- // Check whether new highlight menu is selectable, if not, keep highlight on the old one.
- //
- // BottomRow - TopRow + 1 means the total rows current forms supported.
- // Difference + NextMenuOption->Skip + 1 means the distance between last highlight menu
- // and new top menu. New top menu will all shows in next form, but last highlight menu
- // may only shows 1 line. + 1 at right part means at least need to keep 1 line for the
- // last highlight menu.
- //
- if (!IsSelectable (NextMenuOption) && IsSelectable (MenuOption) &&
- (BottomRow - TopRow + 1 >= Difference + NextMenuOption->Skip + 1)) {
- NewPos = SavedListEntry;
- }
+ //
+ // If we are at the end of the list and sitting on a Date/Time op, rewind to the head.
+ //
+ AdjustDateAndTimePosition (TRUE, &TopOfScreen);
+ AdjustDateAndTimePosition (TRUE, &NewPos);
- UpdateStatusBar (INPUT_ERROR, FALSE);
+ UpdateHighlightMenuInfo (NewPos, TopOfScreen, SkipValue);
+ break;
- //
- // If we are at the end of the list and sitting on a Date/Time op, rewind to the head.
- //
- AdjustDateAndTimePosition (TRUE, &TopOfScreen);
- AdjustDateAndTimePosition (TRUE, &NewPos);
+ case CfUiNoOperation:
+ ControlFlag = CfRepaint;
+ break;
- UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
- break;
+ case CfExit:
+ gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
+ if (HelpString != NULL) {
+ FreePool (HelpString);
+ }
- case CfUiNoOperation:
- ControlFlag = CfRepaint;
- break;
+ if (HelpHeaderString != NULL) {
+ FreePool (HelpHeaderString);
+ }
- case CfExit:
- gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
- if (HelpString != NULL) {
- FreePool (HelpString);
- }
- if (HelpHeaderString != NULL) {
- FreePool (HelpHeaderString);
- }
- if (HelpBottomString != NULL) {
- FreePool (HelpBottomString);
- }
- return EFI_SUCCESS;
+ if (HelpBottomString != NULL) {
+ FreePool (HelpBottomString);
+ }
- default:
- break;
+ return EFI_SUCCESS;
+
+ default:
+ break;
}
}
}
@@ -3806,22 +3878,23 @@ UiDisplayMenu (
**/
VOID
-FreeMenuOptionData(
- LIST_ENTRY *MenuOptionList
+FreeMenuOptionData (
+ LIST_ENTRY *MenuOptionList
)
{
- LIST_ENTRY *Link;
- UI_MENU_OPTION *Option;
+ LIST_ENTRY *Link;
+ UI_MENU_OPTION *Option;
//
// Free menu option list
//
while (!IsListEmpty (MenuOptionList)) {
- Link = GetFirstNode (MenuOptionList);
+ Link = GetFirstNode (MenuOptionList);
Option = MENU_OPTION_FROM_LINK (Link);
- if (Option->Description != NULL){
- FreePool(Option->Description);
+ if (Option->Description != NULL) {
+ FreePool (Option->Description);
}
+
RemoveEntryList (&Option->Link);
FreePool (Option);
}
@@ -3837,20 +3910,20 @@ BrowserStatusProcess (
VOID
)
{
- CHAR16 *ErrorInfo;
- EFI_INPUT_KEY Key;
- EFI_EVENT WaitList[2];
- EFI_EVENT RefreshIntervalEvent;
- EFI_EVENT TimeOutEvent;
- UINT8 TimeOut;
- EFI_STATUS Status;
- UINTN Index;
- WARNING_IF_CONTEXT EventContext;
- EFI_IFR_OP_HEADER *OpCodeBuf;
- EFI_STRING_ID StringToken;
- CHAR16 DiscardChange;
- CHAR16 JumpToFormSet;
- CHAR16 *PrintString;
+ CHAR16 *ErrorInfo;
+ EFI_INPUT_KEY Key;
+ EFI_EVENT WaitList[2];
+ EFI_EVENT RefreshIntervalEvent;
+ EFI_EVENT TimeOutEvent;
+ UINT8 TimeOut;
+ EFI_STATUS Status;
+ UINTN Index;
+ WARNING_IF_CONTEXT EventContext;
+ EFI_IFR_OP_HEADER *OpCodeBuf;
+ EFI_STRING_ID StringToken;
+ CHAR16 DiscardChange;
+ CHAR16 JumpToFormSet;
+ CHAR16 *PrintString;
if (gFormData->BrowserStatus == BROWSER_SUCCESS) {
return;
@@ -3867,16 +3940,18 @@ BrowserStatusProcess (
if (gFormData->BrowserStatus == (BROWSER_WARNING_IF)) {
ASSERT (OpCodeBuf != NULL && OpCodeBuf->OpCode == EFI_IFR_WARNING_IF_OP);
- TimeOut = ((EFI_IFR_WARNING_IF *) OpCodeBuf)->TimeOut;
- StringToken = ((EFI_IFR_WARNING_IF *) OpCodeBuf)->Warning;
+ TimeOut = ((EFI_IFR_WARNING_IF *)OpCodeBuf)->TimeOut;
+ StringToken = ((EFI_IFR_WARNING_IF *)OpCodeBuf)->Warning;
} else {
TimeOut = 0;
if ((gFormData->BrowserStatus == (BROWSER_NO_SUBMIT_IF)) &&
- (OpCodeBuf != NULL && OpCodeBuf->OpCode == EFI_IFR_NO_SUBMIT_IF_OP)) {
- StringToken = ((EFI_IFR_NO_SUBMIT_IF *) OpCodeBuf)->Error;
+ ((OpCodeBuf != NULL) && (OpCodeBuf->OpCode == EFI_IFR_NO_SUBMIT_IF_OP)))
+ {
+ StringToken = ((EFI_IFR_NO_SUBMIT_IF *)OpCodeBuf)->Error;
} else if ((gFormData->BrowserStatus == (BROWSER_INCONSISTENT_IF)) &&
- (OpCodeBuf != NULL && OpCodeBuf->OpCode == EFI_IFR_INCONSISTENT_IF_OP)) {
- StringToken = ((EFI_IFR_INCONSISTENT_IF *) OpCodeBuf)->Error;
+ ((OpCodeBuf != NULL) && (OpCodeBuf->OpCode == EFI_IFR_INCONSISTENT_IF_OP)))
+ {
+ StringToken = ((EFI_IFR_INCONSISTENT_IF *)OpCodeBuf)->Error;
}
}
@@ -3890,127 +3965,129 @@ BrowserStatusProcess (
ErrorInfo = gFormData->ErrorString;
} else {
switch (gFormData->BrowserStatus) {
- case BROWSER_SUBMIT_FAIL:
- ErrorInfo = gSaveFailed;
- break;
+ case BROWSER_SUBMIT_FAIL:
+ ErrorInfo = gSaveFailed;
+ break;
- case BROWSER_FORM_NOT_FOUND:
- ErrorInfo = gFormNotFound;
- break;
+ case BROWSER_FORM_NOT_FOUND:
+ ErrorInfo = gFormNotFound;
+ break;
- case BROWSER_FORM_SUPPRESS:
- ErrorInfo = gFormSuppress;
- break;
+ case BROWSER_FORM_SUPPRESS:
+ ErrorInfo = gFormSuppress;
+ break;
- case BROWSER_PROTOCOL_NOT_FOUND:
- ErrorInfo = gProtocolNotFound;
- break;
+ case BROWSER_PROTOCOL_NOT_FOUND:
+ ErrorInfo = gProtocolNotFound;
+ break;
- case BROWSER_SUBMIT_FAIL_NO_SUBMIT_IF:
- ErrorInfo = gNoSubmitIfFailed;
- break;
+ case BROWSER_SUBMIT_FAIL_NO_SUBMIT_IF:
+ ErrorInfo = gNoSubmitIfFailed;
+ break;
- case BROWSER_RECONNECT_FAIL:
- ErrorInfo = gReconnectFail;
- break;
+ case BROWSER_RECONNECT_FAIL:
+ ErrorInfo = gReconnectFail;
+ break;
- case BROWSER_RECONNECT_SAVE_CHANGES:
- ErrorInfo = gReconnectConfirmChanges;
- break;
+ case BROWSER_RECONNECT_SAVE_CHANGES:
+ ErrorInfo = gReconnectConfirmChanges;
+ break;
- case BROWSER_RECONNECT_REQUIRED:
- ErrorInfo = gReconnectRequired;
- break;
+ case BROWSER_RECONNECT_REQUIRED:
+ ErrorInfo = gReconnectRequired;
+ break;
- default:
- ErrorInfo = gBrowserError;
- break;
+ default:
+ ErrorInfo = gBrowserError;
+ break;
}
}
switch (gFormData->BrowserStatus) {
- case BROWSER_SUBMIT_FAIL:
- case BROWSER_SUBMIT_FAIL_NO_SUBMIT_IF:
- case BROWSER_RECONNECT_SAVE_CHANGES:
- ASSERT (gUserInput != NULL);
- if (gFormData->BrowserStatus == (BROWSER_SUBMIT_FAIL)) {
- PrintString = gSaveProcess;
- JumpToFormSet = gJumpToFormSet[0];
- DiscardChange = gDiscardChange[0];
- } else if (gFormData->BrowserStatus == (BROWSER_RECONNECT_SAVE_CHANGES)){
- PrintString = gChangesOpt;
- JumpToFormSet = gConfirmOptYes[0];
- DiscardChange = gConfirmOptNo[0];
- } else {
- PrintString = gSaveNoSubmitProcess;
- JumpToFormSet = gCheckError[0];
- DiscardChange = gDiscardChange[0];
- }
+ case BROWSER_SUBMIT_FAIL:
+ case BROWSER_SUBMIT_FAIL_NO_SUBMIT_IF:
+ case BROWSER_RECONNECT_SAVE_CHANGES:
+ ASSERT (gUserInput != NULL);
+ if (gFormData->BrowserStatus == (BROWSER_SUBMIT_FAIL)) {
+ PrintString = gSaveProcess;
+ JumpToFormSet = gJumpToFormSet[0];
+ DiscardChange = gDiscardChange[0];
+ } else if (gFormData->BrowserStatus == (BROWSER_RECONNECT_SAVE_CHANGES)) {
+ PrintString = gChangesOpt;
+ JumpToFormSet = gConfirmOptYes[0];
+ DiscardChange = gConfirmOptNo[0];
+ } else {
+ PrintString = gSaveNoSubmitProcess;
+ JumpToFormSet = gCheckError[0];
+ DiscardChange = gDiscardChange[0];
+ }
- do {
- CreateDialog (&Key, gEmptyString, ErrorInfo, PrintString, gEmptyString, NULL);
- } while (((Key.UnicodeChar | UPPER_LOWER_CASE_OFFSET) != (DiscardChange | UPPER_LOWER_CASE_OFFSET)) &&
- ((Key.UnicodeChar | UPPER_LOWER_CASE_OFFSET) != (JumpToFormSet | UPPER_LOWER_CASE_OFFSET)));
+ do {
+ CreateDialog (&Key, gEmptyString, ErrorInfo, PrintString, gEmptyString, NULL);
+ } while (((Key.UnicodeChar | UPPER_LOWER_CASE_OFFSET) != (DiscardChange | UPPER_LOWER_CASE_OFFSET)) &&
+ ((Key.UnicodeChar | UPPER_LOWER_CASE_OFFSET) != (JumpToFormSet | UPPER_LOWER_CASE_OFFSET)));
- if ((Key.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (DiscardChange | UPPER_LOWER_CASE_OFFSET)) {
- gUserInput->Action = BROWSER_ACTION_DISCARD;
- } else {
- gUserInput->Action = BROWSER_ACTION_GOTO;
- }
- break;
+ if ((Key.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (DiscardChange | UPPER_LOWER_CASE_OFFSET)) {
+ gUserInput->Action = BROWSER_ACTION_DISCARD;
+ } else {
+ gUserInput->Action = BROWSER_ACTION_GOTO;
+ }
- default:
- if (TimeOut == 0) {
- do {
- CreateDialog (&Key, gEmptyString, ErrorInfo, gPressEnter, gEmptyString, NULL);
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
- } else {
- Status = gBS->CreateEvent (EVT_NOTIFY_WAIT, TPL_CALLBACK, EmptyEventProcess, NULL, &TimeOutEvent);
- ASSERT_EFI_ERROR (Status);
+ break;
+
+ default:
+ if (TimeOut == 0) {
+ do {
+ CreateDialog (&Key, gEmptyString, ErrorInfo, gPressEnter, gEmptyString, NULL);
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+ } else {
+ Status = gBS->CreateEvent (EVT_NOTIFY_WAIT, TPL_CALLBACK, EmptyEventProcess, NULL, &TimeOutEvent);
+ ASSERT_EFI_ERROR (Status);
- EventContext.SyncEvent = TimeOutEvent;
- EventContext.TimeOut = &TimeOut;
- EventContext.ErrorInfo = ErrorInfo;
+ EventContext.SyncEvent = TimeOutEvent;
+ EventContext.TimeOut = &TimeOut;
+ EventContext.ErrorInfo = ErrorInfo;
- Status = gBS->CreateEvent (EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_CALLBACK, RefreshTimeOutProcess, &EventContext, &RefreshIntervalEvent);
- ASSERT_EFI_ERROR (Status);
+ Status = gBS->CreateEvent (EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_CALLBACK, RefreshTimeOutProcess, &EventContext, &RefreshIntervalEvent);
+ ASSERT_EFI_ERROR (Status);
- //
- // Show the dialog first to avoid long time not reaction.
- //
- gBS->SignalEvent (RefreshIntervalEvent);
+ //
+ // Show the dialog first to avoid long time not reaction.
+ //
+ gBS->SignalEvent (RefreshIntervalEvent);
- Status = gBS->SetTimer (RefreshIntervalEvent, TimerPeriodic, ONE_SECOND);
- ASSERT_EFI_ERROR (Status);
+ Status = gBS->SetTimer (RefreshIntervalEvent, TimerPeriodic, ONE_SECOND);
+ ASSERT_EFI_ERROR (Status);
- while (TRUE) {
- Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
- if (!EFI_ERROR (Status) && Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {
- break;
- }
+ while (TRUE) {
+ Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
+ if (!EFI_ERROR (Status) && (Key.UnicodeChar == CHAR_CARRIAGE_RETURN)) {
+ break;
+ }
- if (Status != EFI_NOT_READY) {
- continue;
- }
+ if (Status != EFI_NOT_READY) {
+ continue;
+ }
- WaitList[0] = TimeOutEvent;
- WaitList[1] = gST->ConIn->WaitForKey;
+ WaitList[0] = TimeOutEvent;
+ WaitList[1] = gST->ConIn->WaitForKey;
- Status = gBS->WaitForEvent (2, WaitList, &Index);
- ASSERT_EFI_ERROR (Status);
+ Status = gBS->WaitForEvent (2, WaitList, &Index);
+ ASSERT_EFI_ERROR (Status);
- if (Index == 0) {
- //
- // Timeout occur, close the hoot time out event.
- //
- break;
+ if (Index == 0) {
+ //
+ // Timeout occur, close the hoot time out event.
+ //
+ break;
+ }
}
+
+ gBS->CloseEvent (TimeOutEvent);
+ gBS->CloseEvent (RefreshIntervalEvent);
}
- gBS->CloseEvent (TimeOutEvent);
- gBS->CloseEvent (RefreshIntervalEvent);
- }
- break;
+ break;
}
if (StringToken != 0) {
@@ -4049,7 +4126,7 @@ FormDisplay (
//
// Process the status info first.
//
- BrowserStatusProcess();
+ BrowserStatusProcess ();
if (gFormData->BrowserStatus != BROWSER_SUCCESS) {
//
// gFormData->BrowserStatus != BROWSER_SUCCESS, means only need to print the error info, return here.
@@ -4071,25 +4148,26 @@ FormDisplay (
// |<-.->|<-.........->|<- .........->|<-...........->|
// Skip Prompt Option Help
//
- gOptionBlockWidth = (CHAR16) ((gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn) / 3) + 1;
- gHelpBlockWidth = (CHAR16) (gOptionBlockWidth - 1 - LEFT_SKIPPED_COLUMNS);
- gPromptBlockWidth = (CHAR16) (gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * (gOptionBlockWidth - 1) - 1);
+ gOptionBlockWidth = (CHAR16)((gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn) / 3) + 1;
+ gHelpBlockWidth = (CHAR16)(gOptionBlockWidth - 1 - LEFT_SKIPPED_COLUMNS);
+ gPromptBlockWidth = (CHAR16)(gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn - 2 * (gOptionBlockWidth - 1) - 1);
- ConvertStatementToMenu();
+ ConvertStatementToMenu ();
//
// Check whether layout is changed.
//
- if (mIsFirstForm
- || (gOldFormEntry.HiiHandle != FormData->HiiHandle)
- || (!CompareGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid))
- || (gOldFormEntry.FormId != FormData->FormId)) {
+ if ( mIsFirstForm
+ || (gOldFormEntry.HiiHandle != FormData->HiiHandle)
+ || (!CompareGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid))
+ || (gOldFormEntry.FormId != FormData->FormId))
+ {
mStatementLayoutIsChanged = TRUE;
} else {
mStatementLayoutIsChanged = FALSE;
}
- Status = UiDisplayMenu(FormData);
+ Status = UiDisplayMenu (FormData);
//
// Backup last form info.
@@ -4097,12 +4175,12 @@ FormDisplay (
mIsFirstForm = FALSE;
gOldFormEntry.HiiHandle = FormData->HiiHandle;
CopyGuid (&gOldFormEntry.FormSetGuid, &FormData->FormSetGuid);
- gOldFormEntry.FormId = FormData->FormId;
+ gOldFormEntry.FormId = FormData->FormId;
//
- //Free the Ui menu option list.
+ // Free the Ui menu option list.
//
- FreeMenuOptionData(&gMenuOption);
+ FreeMenuOptionData (&gMenuOption);
return Status;
}
@@ -4130,9 +4208,9 @@ DriverClearDisplayPage (
**/
VOID
SetUnicodeMem (
- IN VOID *Buffer,
- IN UINTN Size,
- IN CHAR16 Value
+ IN VOID *Buffer,
+ IN UINTN Size,
+ IN CHAR16 Value
)
{
CHAR16 *Ptr;
@@ -4156,14 +4234,14 @@ SetUnicodeMem (
EFI_STATUS
EFIAPI
InitializeDisplayEngine (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_INPUT_KEY HotKey;
- EFI_STRING NewString;
- EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL *FormBrowserEx2;
+ EFI_STATUS Status;
+ EFI_INPUT_KEY HotKey;
+ EFI_STRING NewString;
+ EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL *FormBrowserEx2;
//
// Publish our HII data
@@ -4191,14 +4269,14 @@ InitializeDisplayEngine (
// Install HII Popup Protocol.
//
Status = gBS->InstallProtocolInterface (
- &mPrivateData.Handle,
- &gEfiHiiPopupProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mPrivateData.HiiPopup
- );
+ &mPrivateData.Handle,
+ &gEfiHiiPopupProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mPrivateData.HiiPopup
+ );
ASSERT_EFI_ERROR (Status);
- InitializeDisplayStrings();
+ InitializeDisplayStrings ();
ZeroMem (&gHighligthMenuInfo, sizeof (gHighligthMenuInfo));
ZeroMem (&gOldFormEntry, sizeof (gOldFormEntry));
@@ -4206,20 +4284,20 @@ InitializeDisplayEngine (
//
// Use BrowserEx2 protocol to register HotKey.
//
- Status = gBS->LocateProtocol (&gEdkiiFormBrowserEx2ProtocolGuid, NULL, (VOID **) &FormBrowserEx2);
+ Status = gBS->LocateProtocol (&gEdkiiFormBrowserEx2ProtocolGuid, NULL, (VOID **)&FormBrowserEx2);
if (!EFI_ERROR (Status)) {
//
// Register the default HotKey F9 and F10 again.
//
HotKey.UnicodeChar = CHAR_NULL;
- HotKey.ScanCode = SCAN_F10;
- NewString = HiiGetString (gHiiHandle, STRING_TOKEN (FUNCTION_TEN_STRING), NULL);
+ HotKey.ScanCode = SCAN_F10;
+ NewString = HiiGetString (gHiiHandle, STRING_TOKEN (FUNCTION_TEN_STRING), NULL);
ASSERT (NewString != NULL);
FormBrowserEx2->RegisterHotKey (&HotKey, BROWSER_ACTION_SUBMIT, 0, NewString);
FreePool (NewString);
- HotKey.ScanCode = SCAN_F9;
- NewString = HiiGetString (gHiiHandle, STRING_TOKEN (FUNCTION_NINE_STRING), NULL);
+ HotKey.ScanCode = SCAN_F9;
+ NewString = HiiGetString (gHiiHandle, STRING_TOKEN (FUNCTION_NINE_STRING), NULL);
ASSERT (NewString != NULL);
FormBrowserEx2->RegisterHotKey (&HotKey, BROWSER_ACTION_DEFAULT, EFI_HII_DEFAULT_CLASS_STANDARD, NewString);
FreePool (NewString);
@@ -4240,10 +4318,10 @@ InitializeDisplayEngine (
EFI_STATUS
EFIAPI
UnloadDisplayEngine (
- IN EFI_HANDLE ImageHandle
+ IN EFI_HANDLE ImageHandle
)
{
- HiiRemovePackages(gHiiHandle);
+ HiiRemovePackages (gHiiHandle);
FreeDisplayStrings ();
diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.h b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.h
index e6d3ae4..6e26704 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.h
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.h
@@ -9,7 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef __FORM_DISPLAY_H__
#define __FORM_DISPLAY_H__
-
#include <Library/UefiBootServicesTableLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
@@ -29,84 +28,84 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// This is the generated header file which includes whatever needs to be exported (strings + IFR)
//
-extern UINT8 DisplayEngineStrings[];
-extern EFI_SCREEN_DESCRIPTOR gStatementDimensions;
-extern USER_INPUT *gUserInput;
-extern FORM_DISPLAY_ENGINE_FORM *gFormData;
-extern EFI_HII_HANDLE gHiiHandle;
-extern UINT16 gDirection;
-extern LIST_ENTRY gMenuOption;
-extern CHAR16 *gConfirmOptYes;
-extern CHAR16 *gConfirmOptNo;
-extern CHAR16 *gConfirmOptOk;
-extern CHAR16 *gConfirmOptCancel;
-extern CHAR16 *gYesOption;
-extern CHAR16 *gNoOption;
-extern CHAR16 *gOkOption;
-extern CHAR16 *gCancelOption;
-extern CHAR16 *gErrorPopup;
-extern CHAR16 *gWarningPopup;
-extern CHAR16 *gInfoPopup;
+extern UINT8 DisplayEngineStrings[];
+extern EFI_SCREEN_DESCRIPTOR gStatementDimensions;
+extern USER_INPUT *gUserInput;
+extern FORM_DISPLAY_ENGINE_FORM *gFormData;
+extern EFI_HII_HANDLE gHiiHandle;
+extern UINT16 gDirection;
+extern LIST_ENTRY gMenuOption;
+extern CHAR16 *gConfirmOptYes;
+extern CHAR16 *gConfirmOptNo;
+extern CHAR16 *gConfirmOptOk;
+extern CHAR16 *gConfirmOptCancel;
+extern CHAR16 *gYesOption;
+extern CHAR16 *gNoOption;
+extern CHAR16 *gOkOption;
+extern CHAR16 *gCancelOption;
+extern CHAR16 *gErrorPopup;
+extern CHAR16 *gWarningPopup;
+extern CHAR16 *gInfoPopup;
//
// Browser Global Strings
//
-extern CHAR16 *gSaveFailed;
-extern CHAR16 *gPromptForData;
-extern CHAR16 *gPromptForPassword;
-extern CHAR16 *gPromptForNewPassword;
-extern CHAR16 *gConfirmPassword;
-extern CHAR16 *gConfirmError;
-extern CHAR16 *gPassowordInvalid;
-extern CHAR16 *gPressEnter;
-extern CHAR16 *gEmptyString;
-extern CHAR16 *gMiniString;
-extern CHAR16 *gOptionMismatch;
-extern CHAR16 *gFormSuppress;
-extern CHAR16 *gProtocolNotFound;
-extern CHAR16 *gPasswordUnsupported;
-
-extern CHAR16 gPromptBlockWidth;
-extern CHAR16 gOptionBlockWidth;
-extern CHAR16 gHelpBlockWidth;
-extern CHAR16 *mUnknownString;
-extern BOOLEAN gMisMatch;
+extern CHAR16 *gSaveFailed;
+extern CHAR16 *gPromptForData;
+extern CHAR16 *gPromptForPassword;
+extern CHAR16 *gPromptForNewPassword;
+extern CHAR16 *gConfirmPassword;
+extern CHAR16 *gConfirmError;
+extern CHAR16 *gPassowordInvalid;
+extern CHAR16 *gPressEnter;
+extern CHAR16 *gEmptyString;
+extern CHAR16 *gMiniString;
+extern CHAR16 *gOptionMismatch;
+extern CHAR16 *gFormSuppress;
+extern CHAR16 *gProtocolNotFound;
+extern CHAR16 *gPasswordUnsupported;
+
+extern CHAR16 gPromptBlockWidth;
+extern CHAR16 gOptionBlockWidth;
+extern CHAR16 gHelpBlockWidth;
+extern CHAR16 *mUnknownString;
+extern BOOLEAN gMisMatch;
//
// Screen definitions
//
-#define LEFT_SKIPPED_COLUMNS 3
-#define SCROLL_ARROW_HEIGHT 1
-#define POPUP_PAD_SPACE_COUNT 5
-#define POPUP_FRAME_WIDTH 2
+#define LEFT_SKIPPED_COLUMNS 3
+#define SCROLL_ARROW_HEIGHT 1
+#define POPUP_PAD_SPACE_COUNT 5
+#define POPUP_FRAME_WIDTH 2
-#define UPPER_LOWER_CASE_OFFSET 0x20
+#define UPPER_LOWER_CASE_OFFSET 0x20
//
// Display definitions
//
-#define LEFT_ONEOF_DELIMITER L'<'
-#define RIGHT_ONEOF_DELIMITER L'>'
+#define LEFT_ONEOF_DELIMITER L'<'
+#define RIGHT_ONEOF_DELIMITER L'>'
-#define LEFT_NUMERIC_DELIMITER L'['
-#define RIGHT_NUMERIC_DELIMITER L']'
+#define LEFT_NUMERIC_DELIMITER L'['
+#define RIGHT_NUMERIC_DELIMITER L']'
#define LEFT_CHECKBOX_DELIMITER L'['
#define RIGHT_CHECKBOX_DELIMITER L']'
-#define CHECK_ON L'X'
-#define CHECK_OFF L' '
+#define CHECK_ON L'X'
+#define CHECK_OFF L' '
-#define TIME_SEPARATOR L':'
-#define DATE_SEPARATOR L'/'
+#define TIME_SEPARATOR L':'
+#define DATE_SEPARATOR L'/'
#define SUBTITLE_INDENT 2
//
// This is the Input Error Message
//
-#define INPUT_ERROR 1
+#define INPUT_ERROR 1
//
// This is the NV RAM update required Message
@@ -122,33 +121,32 @@ extern BOOLEAN gMisMatch;
// pow(2, 64) = [18446744073709551616]
// with extra '-' flat, set the width to 24.
//
-#define MAX_NUMERIC_INPUT_WIDTH 24
+#define MAX_NUMERIC_INPUT_WIDTH 24
-#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
-#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
-#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
-#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
-#define EFI_HII_EXPRESSION_DISABLE_IF 4
+#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
+#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
+#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
+#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
+#define EFI_HII_EXPRESSION_DISABLE_IF 4
//
// Character definitions
//
-#define CHAR_SPACE 0x0020
+#define CHAR_SPACE 0x0020
-#define FORM_DISPLAY_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'D', 'D', 'V')
+#define FORM_DISPLAY_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'D', 'D', 'V')
typedef struct {
- UINT32 Signature;
+ UINT32 Signature;
- EFI_HANDLE Handle;
+ EFI_HANDLE Handle;
//
// Produced protocol
//
- EDKII_FORM_DISPLAY_ENGINE_PROTOCOL FromDisplayProt;
- EFI_HII_POPUP_PROTOCOL HiiPopup;
+ EDKII_FORM_DISPLAY_ENGINE_PROTOCOL FromDisplayProt;
+ EFI_HII_POPUP_PROTOCOL HiiPopup;
} FORM_DISPLAY_DRIVER_PRIVATE_DATA;
-
typedef enum {
UiNoOperation,
UiSelect,
@@ -195,18 +193,18 @@ typedef enum {
} UI_EVENT_TYPE;
typedef struct {
- UINT16 ScanCode;
- UI_SCREEN_OPERATION ScreenOperation;
+ UINT16 ScanCode;
+ UI_SCREEN_OPERATION ScreenOperation;
} SCAN_CODE_TO_SCREEN_OPERATION;
typedef struct {
- UI_SCREEN_OPERATION ScreenOperation;
- UI_CONTROL_FLAG ControlFlag;
+ UI_SCREEN_OPERATION ScreenOperation;
+ UI_CONTROL_FLAG ControlFlag;
} SCREEN_OPERATION_T0_CONTROL_FLAG;
typedef struct {
- EFI_HII_HANDLE HiiHandle;
- UINT16 FormId;
+ EFI_HII_HANDLE HiiHandle;
+ UINT16 FormId;
//
// Info for the highlight question.
@@ -218,43 +216,43 @@ typedef struct {
// empty subtitle info may has more than one info one form), also use Index
// info to find the statement.
//
- EFI_QUESTION_ID HLTQuestionId;
- EFI_IFR_OP_HEADER *HLTOpCode;
- UINTN HLTIndex;
- UINTN HLTSequence;
+ EFI_QUESTION_ID HLTQuestionId;
+ EFI_IFR_OP_HEADER *HLTOpCode;
+ UINTN HLTIndex;
+ UINTN HLTSequence;
//
// Info for the top of screen question.
// TOS means Top Of Screen
//
- EFI_QUESTION_ID TOSQuestionId;
- EFI_IFR_OP_HEADER *TOSOpCode;
- UINTN TOSIndex;
+ EFI_QUESTION_ID TOSQuestionId;
+ EFI_IFR_OP_HEADER *TOSOpCode;
+ UINTN TOSIndex;
- UINT16 SkipValue;
+ UINT16 SkipValue;
} DISPLAY_HIGHLIGHT_MENU_INFO;
typedef struct {
- EFI_EVENT SyncEvent;
- UINT8 *TimeOut;
- CHAR16 *ErrorInfo;
+ EFI_EVENT SyncEvent;
+ UINT8 *TimeOut;
+ CHAR16 *ErrorInfo;
} WARNING_IF_CONTEXT;
#define UI_MENU_OPTION_SIGNATURE SIGNATURE_32 ('u', 'i', 'm', 'm')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- EFI_HII_HANDLE Handle;
- FORM_DISPLAY_ENGINE_STATEMENT *ThisTag;
- UINT16 EntryNumber;
+ EFI_HII_HANDLE Handle;
+ FORM_DISPLAY_ENGINE_STATEMENT *ThisTag;
+ UINT16 EntryNumber;
- UINTN Row;
- UINTN Col;
- UINTN OptCol;
- CHAR16 *Description;
- UINTN Skip; // Number of lines
+ UINTN Row;
+ UINTN Col;
+ UINTN OptCol;
+ CHAR16 *Description;
+ UINTN Skip; // Number of lines
//
// Display item sequence for date/time
@@ -265,24 +263,24 @@ typedef struct {
// Sequence: 0 1 2
//
//
- UINTN Sequence;
+ UINTN Sequence;
- BOOLEAN GrayOut;
- BOOLEAN ReadOnly;
+ BOOLEAN GrayOut;
+ BOOLEAN ReadOnly;
//
// Whether user could change value of this item
//
- BOOLEAN IsQuestion;
- BOOLEAN NestInStatement;
+ BOOLEAN IsQuestion;
+ BOOLEAN NestInStatement;
} UI_MENU_OPTION;
#define MENU_OPTION_FROM_LINK(a) CR (a, UI_MENU_OPTION, Link, UI_MENU_OPTION_SIGNATURE)
-#define USER_SELECTABLE_OPTION_OK_WIDTH StrLen (gOkOption)
-#define USER_SELECTABLE_OPTION_OK_CAL_WIDTH (StrLen (gOkOption) + StrLen (gCancelOption))
-#define USER_SELECTABLE_OPTION_YES_NO_WIDTH (StrLen (gYesOption) + StrLen (gNoOption))
-#define USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH (StrLen (gYesOption) + StrLen (gNoOption) + StrLen (gCancelOption))
+#define USER_SELECTABLE_OPTION_OK_WIDTH StrLen (gOkOption)
+#define USER_SELECTABLE_OPTION_OK_CAL_WIDTH (StrLen (gOkOption) + StrLen (gCancelOption))
+#define USER_SELECTABLE_OPTION_YES_NO_WIDTH (StrLen (gYesOption) + StrLen (gNoOption))
+#define USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH (StrLen (gYesOption) + StrLen (gNoOption) + StrLen (gCancelOption))
#define USER_SELECTABLE_OPTION_SKIP_WIDTH 2
@@ -295,9 +293,9 @@ typedef struct {
// | user selectable options | // POPUP_USER_SELECTABLE_OPTION_HEIGHT } POPUP_FOOTER_HEIGHT
// +-------------------------------------------+ // POPUP_BORDER }
//
-#define POPUP_BORDER 1
-#define POPUP_EMPTY_LINE_HEIGHT 1
-#define POPUP_STYLE_STRING_HEIGHT 1
+#define POPUP_BORDER 1
+#define POPUP_EMPTY_LINE_HEIGHT 1
+#define POPUP_STYLE_STRING_HEIGHT 1
#define POPUP_USER_SELECTABLE_OPTION_HEIGHT 1
#define POPUP_HEADER_HEIGHT (POPUP_BORDER + POPUP_STYLE_STRING_HEIGHT + POPUP_EMPTY_LINE_HEIGHT)
@@ -306,10 +304,10 @@ typedef struct {
#define USER_SELECTABLE_OPTION_SIGNATURE SIGNATURE_32 ('u', 's', 's', 'o')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
- EFI_HII_POPUP_SELECTION OptionType;
- CHAR16 *OptionString;
+ UINTN Signature;
+ LIST_ENTRY Link;
+ EFI_HII_POPUP_SELECTION OptionType;
+ CHAR16 *OptionString;
//
// Display item sequence for user select options
// Ok: Ok
@@ -324,11 +322,11 @@ typedef struct {
// Yes/No/Cancel: Yes : No: Cancel
// Sequence: 0 1 2
//
- UINTN Sequence;
- UINTN OptionRow;
- UINTN OptionCol;
- UINTN MaxSequence;
- UINTN MinSequence;
+ UINTN Sequence;
+ UINTN OptionRow;
+ UINTN OptionCol;
+ UINTN MaxSequence;
+ UINTN MinSequence;
} USER_SELECTABLE_OPTION;
#define SELECTABLE_OPTION_FROM_LINK(a) CR (a, USER_SELECTABLE_OPTION, Link, USER_SELECTABLE_OPTION_SIGNATURE)
@@ -346,9 +344,9 @@ typedef struct {
**/
EFI_STATUS
PrintFormattedNumber (
- IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
- IN OUT CHAR16 *FormattedNumber,
- IN UINTN BufferSize
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
+ IN OUT CHAR16 *FormattedNumber,
+ IN UINTN BufferSize
);
/**
@@ -362,10 +360,10 @@ PrintFormattedNumber (
**/
VOID
SetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index,
- IN UINT64 Value
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index,
+ IN UINT64 Value
);
/**
@@ -380,9 +378,9 @@ SetArrayData (
**/
UINT64
GetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index
);
/**
@@ -397,8 +395,8 @@ GetArrayData (
**/
DISPLAY_QUESTION_OPTION *
ValueToOption (
- IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
- IN EFI_HII_VALUE *OptionValue
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
+ IN EFI_HII_VALUE *OptionValue
);
/**
@@ -436,8 +434,8 @@ CompareHiiValue (
VOID
EFIAPI
CreateMultiStringPopUp (
- IN UINTN RequestedWidth,
- IN UINTN NumberOfLines,
+ IN UINTN RequestedWidth,
+ IN UINTN NumberOfLines,
...
);
@@ -462,14 +460,13 @@ CreateMultiStringPopUp (
**/
UINT16
GetLineByWidth (
- IN CHAR16 *InputString,
- IN UINT16 LineWidth,
- IN OUT UINT16 *GlyphWidth,
- IN OUT UINTN *Index,
- OUT CHAR16 **OutputString
+ IN CHAR16 *InputString,
+ IN UINT16 LineWidth,
+ IN OUT UINT16 *GlyphWidth,
+ IN OUT UINTN *Index,
+ OUT CHAR16 **OutputString
);
-
/**
Get the string based on the StringId and HII Package List Handle.
@@ -481,8 +478,8 @@ GetLineByWidth (
**/
CHAR16 *
GetToken (
- IN EFI_STRING_ID Token,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID Token,
+ IN EFI_HII_HANDLE HiiHandle
);
/**
@@ -503,7 +500,7 @@ GetToken (
**/
UINTN
GetStringWidth (
- IN CHAR16 *String
+ IN CHAR16 *String
);
/**
@@ -517,7 +514,7 @@ GetStringWidth (
**/
EFI_STATUS
GetNumericInput (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
);
/**
@@ -533,9 +530,9 @@ GetNumericInput (
**/
EFI_STATUS
ReadString (
- IN UI_MENU_OPTION *MenuOption,
- IN CHAR16 *Prompt,
- IN OUT CHAR16 *StringPtr
+ IN UI_MENU_OPTION *MenuOption,
+ IN CHAR16 *Prompt,
+ IN OUT CHAR16 *StringPtr
);
/**
@@ -549,9 +546,9 @@ ReadString (
**/
VOID
CreateSharedPopUp (
- IN UINTN RequestedWidth,
- IN UINTN NumberOfLines,
- IN VA_LIST Marker
+ IN UINTN RequestedWidth,
+ IN UINTN NumberOfLines,
+ IN VA_LIST Marker
);
/**
@@ -564,7 +561,7 @@ CreateSharedPopUp (
**/
EFI_STATUS
WaitForKeyStroke (
- OUT EFI_INPUT_KEY *Key
+ OUT EFI_INPUT_KEY *Key
);
/**
@@ -578,7 +575,7 @@ WaitForKeyStroke (
**/
EFI_STATUS
GetSelectionInputPopUp (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
);
/**
@@ -613,10 +610,10 @@ ProcessHelpString (
**/
EFI_STATUS
ProcessOptions (
- IN UI_MENU_OPTION *MenuOption,
- IN BOOLEAN Selected,
- OUT CHAR16 **OptionString,
- IN BOOLEAN SkipErrorValue
+ IN UI_MENU_OPTION *MenuOption,
+ IN BOOLEAN Selected,
+ OUT CHAR16 **OptionString,
+ IN BOOLEAN SkipErrorValue
);
/**
@@ -629,9 +626,9 @@ ProcessOptions (
**/
VOID
SetUnicodeMem (
- IN VOID *Buffer,
- IN UINTN Size,
- IN CHAR16 Value
+ IN VOID *Buffer,
+ IN UINTN Size,
+ IN CHAR16 Value
);
/**
@@ -678,8 +675,8 @@ ExitDisplay (
VOID
EFIAPI
EmptyEventProcess (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
/**
@@ -692,8 +689,8 @@ EmptyEventProcess (
VOID
EFIAPI
RefreshTimeOutProcess (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
/**
@@ -706,9 +703,9 @@ RefreshTimeOutProcess (
**/
VOID
UpdateHighlightMenuInfo (
- IN LIST_ENTRY *Highlight,
- IN LIST_ENTRY *TopOfScreen,
- IN UINTN SkipValue
+ IN LIST_ENTRY *Highlight,
+ IN LIST_ENTRY *TopOfScreen,
+ IN UINTN SkipValue
);
/**
@@ -730,12 +727,12 @@ UpdateHighlightMenuInfo (
EFI_STATUS
EFIAPI
CreatePopup (
- IN EFI_HII_POPUP_PROTOCOL *This,
- IN EFI_HII_POPUP_STYLE PopupStyle,
- IN EFI_HII_POPUP_TYPE PopupType,
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_STRING_ID Message,
- OUT EFI_HII_POPUP_SELECTION *UserSelection OPTIONAL
+ IN EFI_HII_POPUP_PROTOCOL *This,
+ IN EFI_HII_POPUP_STYLE PopupStyle,
+ IN EFI_HII_POPUP_TYPE PopupType,
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_STRING_ID Message,
+ OUT EFI_HII_POPUP_SELECTION *UserSelection OPTIONAL
);
#endif
diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/InputHandler.c b/MdeModulePkg/Universal/DisplayEngineDxe/InputHandler.c
index 722c56a..f70feeb 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/InputHandler.c
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/InputHandler.c
@@ -18,21 +18,22 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
GetFieldFromOp (
- IN EFI_IFR_OP_HEADER *OpCode,
- OUT UINTN *Minimum,
- OUT UINTN *Maximum
+ IN EFI_IFR_OP_HEADER *OpCode,
+ OUT UINTN *Minimum,
+ OUT UINTN *Maximum
)
{
EFI_IFR_STRING *StringOp;
EFI_IFR_PASSWORD *PasswordOp;
+
if (OpCode->OpCode == EFI_IFR_STRING_OP) {
- StringOp = (EFI_IFR_STRING *) OpCode;
+ StringOp = (EFI_IFR_STRING *)OpCode;
*Minimum = StringOp->MinSize;
*Maximum = StringOp->MaxSize;
} else if (OpCode->OpCode == EFI_IFR_PASSWORD_OP) {
- PasswordOp = (EFI_IFR_PASSWORD *) OpCode;
- *Minimum = PasswordOp->MinSize;
- *Maximum = PasswordOp->MaxSize;
+ PasswordOp = (EFI_IFR_PASSWORD *)OpCode;
+ *Minimum = PasswordOp->MinSize;
+ *Maximum = PasswordOp->MaxSize;
} else {
*Minimum = 0;
*Maximum = 0;
@@ -52,44 +53,44 @@ GetFieldFromOp (
**/
EFI_STATUS
ReadString (
- IN UI_MENU_OPTION *MenuOption,
- IN CHAR16 *Prompt,
- IN OUT CHAR16 *StringPtr
+ IN UI_MENU_OPTION *MenuOption,
+ IN CHAR16 *Prompt,
+ IN OUT CHAR16 *StringPtr
)
{
- EFI_STATUS Status;
- EFI_INPUT_KEY Key;
- CHAR16 NullCharacter;
- UINTN ScreenSize;
- CHAR16 Space[2];
- CHAR16 KeyPad[2];
- CHAR16 *TempString;
- CHAR16 *BufferedString;
- UINTN Index;
- UINTN Index2;
- UINTN Count;
- UINTN Start;
- UINTN Top;
- UINTN DimensionsWidth;
- UINTN DimensionsHeight;
- UINTN CurrentCursor;
- BOOLEAN CursorVisible;
- UINTN Minimum;
- UINTN Maximum;
+ EFI_STATUS Status;
+ EFI_INPUT_KEY Key;
+ CHAR16 NullCharacter;
+ UINTN ScreenSize;
+ CHAR16 Space[2];
+ CHAR16 KeyPad[2];
+ CHAR16 *TempString;
+ CHAR16 *BufferedString;
+ UINTN Index;
+ UINTN Index2;
+ UINTN Count;
+ UINTN Start;
+ UINTN Top;
+ UINTN DimensionsWidth;
+ UINTN DimensionsHeight;
+ UINTN CurrentCursor;
+ BOOLEAN CursorVisible;
+ UINTN Minimum;
+ UINTN Maximum;
FORM_DISPLAY_ENGINE_STATEMENT *Question;
- BOOLEAN IsPassword;
- UINTN MaxLen;
+ BOOLEAN IsPassword;
+ UINTN MaxLen;
DimensionsWidth = gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn;
DimensionsHeight = gStatementDimensions.BottomRow - gStatementDimensions.TopRow;
- NullCharacter = CHAR_NULL;
- ScreenSize = GetStringWidth (Prompt) / sizeof (CHAR16);
- Space[0] = L' ';
- Space[1] = CHAR_NULL;
+ NullCharacter = CHAR_NULL;
+ ScreenSize = GetStringWidth (Prompt) / sizeof (CHAR16);
+ Space[0] = L' ';
+ Space[1] = CHAR_NULL;
- Question = MenuOption->ThisTag;
- GetFieldFromOp(Question->OpCode, &Minimum, &Maximum);
+ Question = MenuOption->ThisTag;
+ GetFieldFromOp (Question->OpCode, &Minimum, &Maximum);
if (Question->OpCode->OpCode == EFI_IFR_PASSWORD_OP) {
IsPassword = TRUE;
@@ -97,7 +98,7 @@ ReadString (
IsPassword = FALSE;
}
- MaxLen = Maximum + 1;
+ MaxLen = Maximum + 1;
TempString = AllocateZeroPool (MaxLen * sizeof (CHAR16));
ASSERT (TempString);
@@ -165,144 +166,150 @@ ReadString (
gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_BLACK, EFI_LIGHTGRAY));
switch (Key.UnicodeChar) {
- case CHAR_NULL:
- switch (Key.ScanCode) {
- case SCAN_LEFT:
- if (CurrentCursor > 0) {
- CurrentCursor--;
- }
- break;
+ case CHAR_NULL:
+ switch (Key.ScanCode) {
+ case SCAN_LEFT:
+ if (CurrentCursor > 0) {
+ CurrentCursor--;
+ }
- case SCAN_RIGHT:
- if (CurrentCursor < (GetStringWidth (StringPtr) / 2 - 1)) {
- CurrentCursor++;
+ break;
+
+ case SCAN_RIGHT:
+ if (CurrentCursor < (GetStringWidth (StringPtr) / 2 - 1)) {
+ CurrentCursor++;
+ }
+
+ break;
+
+ case SCAN_ESC:
+ FreePool (TempString);
+ FreePool (BufferedString);
+ gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
+ gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);
+ return EFI_DEVICE_ERROR;
+
+ case SCAN_DELETE:
+ for (Index = CurrentCursor; StringPtr[Index] != CHAR_NULL; Index++) {
+ StringPtr[Index] = StringPtr[Index + 1];
+ PrintCharAt (Start + Index + 1, Top + 3, IsPassword && StringPtr[Index] != CHAR_NULL ? L'*' : StringPtr[Index]);
+ }
+
+ break;
+
+ default:
+ break;
}
+
break;
- case SCAN_ESC:
- FreePool (TempString);
- FreePool (BufferedString);
- gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
- gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);
- return EFI_DEVICE_ERROR;
-
- case SCAN_DELETE:
- for (Index = CurrentCursor; StringPtr[Index] != CHAR_NULL; Index++) {
- StringPtr[Index] = StringPtr[Index + 1];
- PrintCharAt (Start + Index + 1, Top + 3, IsPassword && StringPtr[Index] != CHAR_NULL? L'*' : StringPtr[Index]);
+ case CHAR_CARRIAGE_RETURN:
+ if (GetStringWidth (StringPtr) >= ((Minimum + 1) * sizeof (CHAR16))) {
+ FreePool (TempString);
+ FreePool (BufferedString);
+ gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
+ gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);
+ return EFI_SUCCESS;
+ } else {
+ //
+ // Simply create a popup to tell the user that they had typed in too few characters.
+ // To save code space, we can then treat this as an error and return back to the menu.
+ //
+ do {
+ CreateDialog (&Key, &NullCharacter, gMiniString, gPressEnter, &NullCharacter, NULL);
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+
+ FreePool (TempString);
+ FreePool (BufferedString);
+ gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
+ gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);
+ return EFI_DEVICE_ERROR;
}
- break;
- default:
- break;
- }
+ case CHAR_BACKSPACE:
+ if ((StringPtr[0] != CHAR_NULL) && (CurrentCursor != 0)) {
+ for (Index = 0; Index < CurrentCursor - 1; Index++) {
+ TempString[Index] = StringPtr[Index];
+ }
- break;
+ Count = GetStringWidth (StringPtr) / 2 - 1;
+ if (Count >= CurrentCursor) {
+ for (Index = CurrentCursor - 1, Index2 = CurrentCursor; Index2 < Count; Index++, Index2++) {
+ TempString[Index] = StringPtr[Index2];
+ }
- case CHAR_CARRIAGE_RETURN:
- if (GetStringWidth (StringPtr) >= ((Minimum + 1) * sizeof (CHAR16))) {
+ TempString[Index] = CHAR_NULL;
+ }
- FreePool (TempString);
- FreePool (BufferedString);
- gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
- gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);
- return EFI_SUCCESS;
- } else {
+ //
+ // Effectively truncate string by 1 character
+ //
+ StrCpyS (StringPtr, MaxLen, TempString);
+ CurrentCursor--;
+ }
+
+ default:
//
- // Simply create a popup to tell the user that they had typed in too few characters.
- // To save code space, we can then treat this as an error and return back to the menu.
+ // If it is the beginning of the string, don't worry about checking maximum limits
//
- do {
- CreateDialog (&Key, &NullCharacter, gMiniString, gPressEnter, &NullCharacter, NULL);
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
-
- FreePool (TempString);
- FreePool (BufferedString);
- gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
- gST->ConOut->EnableCursor (gST->ConOut, CursorVisible);
- return EFI_DEVICE_ERROR;
- }
-
+ if ((StringPtr[0] == CHAR_NULL) && (Key.UnicodeChar != CHAR_BACKSPACE)) {
+ StrnCpyS (StringPtr, MaxLen, &Key.UnicodeChar, 1);
+ CurrentCursor++;
+ } else if ((GetStringWidth (StringPtr) < ((Maximum + 1) * sizeof (CHAR16))) && (Key.UnicodeChar != CHAR_BACKSPACE)) {
+ KeyPad[0] = Key.UnicodeChar;
+ KeyPad[1] = CHAR_NULL;
+ Count = GetStringWidth (StringPtr) / 2 - 1;
+ if (CurrentCursor < Count) {
+ for (Index = 0; Index < CurrentCursor; Index++) {
+ TempString[Index] = StringPtr[Index];
+ }
- case CHAR_BACKSPACE:
- if (StringPtr[0] != CHAR_NULL && CurrentCursor != 0) {
- for (Index = 0; Index < CurrentCursor - 1; Index++) {
- TempString[Index] = StringPtr[Index];
- }
- Count = GetStringWidth (StringPtr) / 2 - 1;
- if (Count >= CurrentCursor) {
- for (Index = CurrentCursor - 1, Index2 = CurrentCursor; Index2 < Count; Index++, Index2++) {
- TempString[Index] = StringPtr[Index2];
+ TempString[Index] = CHAR_NULL;
+ StrCatS (TempString, MaxLen, KeyPad);
+ StrCatS (TempString, MaxLen, StringPtr + CurrentCursor);
+ StrCpyS (StringPtr, MaxLen, TempString);
+ } else {
+ StrCatS (StringPtr, MaxLen, KeyPad);
}
- TempString[Index] = CHAR_NULL;
+
+ CurrentCursor++;
}
+
//
- // Effectively truncate string by 1 character
+ // If the width of the input string is now larger than the screen, we nee to
+ // adjust the index to start printing portions of the string
//
- StrCpyS (StringPtr, MaxLen, TempString);
- CurrentCursor --;
- }
+ SetUnicodeMem (BufferedString, ScreenSize - 1, L' ');
+ PrintStringAt (Start + 1, Top + 3, BufferedString);
- default:
- //
- // If it is the beginning of the string, don't worry about checking maximum limits
- //
- if ((StringPtr[0] == CHAR_NULL) && (Key.UnicodeChar != CHAR_BACKSPACE)) {
- StrnCpyS (StringPtr, MaxLen, &Key.UnicodeChar, 1);
- CurrentCursor++;
- } else if ((GetStringWidth (StringPtr) < ((Maximum + 1) * sizeof (CHAR16))) && (Key.UnicodeChar != CHAR_BACKSPACE)) {
- KeyPad[0] = Key.UnicodeChar;
- KeyPad[1] = CHAR_NULL;
- Count = GetStringWidth (StringPtr) / 2 - 1;
- if (CurrentCursor < Count) {
- for (Index = 0; Index < CurrentCursor; Index++) {
- TempString[Index] = StringPtr[Index];
- }
- TempString[Index] = CHAR_NULL;
- StrCatS (TempString, MaxLen, KeyPad);
- StrCatS (TempString, MaxLen, StringPtr + CurrentCursor);
- StrCpyS (StringPtr, MaxLen, TempString);
+ if ((GetStringWidth (StringPtr) / 2) > (DimensionsWidth - 2)) {
+ Index = (GetStringWidth (StringPtr) / 2) - DimensionsWidth + 2;
} else {
- StrCatS (StringPtr, MaxLen, KeyPad);
+ Index = 0;
}
- CurrentCursor++;
- }
- //
- // If the width of the input string is now larger than the screen, we nee to
- // adjust the index to start printing portions of the string
- //
- SetUnicodeMem (BufferedString, ScreenSize - 1, L' ');
- PrintStringAt (Start + 1, Top + 3, BufferedString);
+ if (IsPassword) {
+ gST->ConOut->SetCursorPosition (gST->ConOut, Start + 1, Top + 3);
+ }
- if ((GetStringWidth (StringPtr) / 2) > (DimensionsWidth - 2)) {
- Index = (GetStringWidth (StringPtr) / 2) - DimensionsWidth + 2;
- } else {
- Index = 0;
- }
+ for (Count = 0; Index + 1 < GetStringWidth (StringPtr) / 2; Index++, Count++) {
+ BufferedString[Count] = StringPtr[Index];
- if (IsPassword) {
- gST->ConOut->SetCursorPosition (gST->ConOut, Start + 1, Top + 3);
- }
-
- for (Count = 0; Index + 1 < GetStringWidth (StringPtr) / 2; Index++, Count++) {
- BufferedString[Count] = StringPtr[Index];
+ if (IsPassword) {
+ PrintCharAt ((UINTN)-1, (UINTN)-1, L'*');
+ }
+ }
- if (IsPassword) {
- PrintCharAt ((UINTN)-1, (UINTN)-1, L'*');
+ if (!IsPassword) {
+ PrintStringAt (Start + 1, Top + 3, BufferedString);
}
- }
- if (!IsPassword) {
- PrintStringAt (Start + 1, Top + 3, BufferedString);
- }
- break;
+ break;
}
gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
gST->ConOut->SetCursorPosition (gST->ConOut, Start + CurrentCursor + 1, Top + 3);
} while (TRUE);
-
}
/**
@@ -315,36 +322,37 @@ ReadString (
**/
VOID
AdjustQuestionValue (
- IN EFI_HII_VALUE *QuestionValue,
- IN UINT8 Sequence
+ IN EFI_HII_VALUE *QuestionValue,
+ IN UINT8 Sequence
)
{
- UINT8 Month;
- UINT16 Year;
- UINT8 Maximum;
- UINT8 Minimum;
+ UINT8 Month;
+ UINT16 Year;
+ UINT8 Maximum;
+ UINT8 Minimum;
Month = QuestionValue->Value.date.Month;
Year = QuestionValue->Value.date.Year;
Minimum = 1;
switch (Month) {
- case 2:
- if ((Year % 4) == 0 && ((Year % 100) != 0 || (Year % 400) == 0)) {
- Maximum = 29;
- } else {
- Maximum = 28;
- }
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- Maximum = 30;
- break;
- default:
- Maximum = 31;
- break;
+ case 2:
+ if (((Year % 4) == 0) && (((Year % 100) != 0) || ((Year % 400) == 0))) {
+ Maximum = 29;
+ } else {
+ Maximum = 28;
+ }
+
+ break;
+ case 4:
+ case 6:
+ case 9:
+ case 11:
+ Maximum = 30;
+ break;
+ default:
+ Maximum = 31;
+ break;
}
//
@@ -381,83 +389,87 @@ AdjustQuestionValue (
**/
VOID
GetValueFromNum (
- IN EFI_IFR_OP_HEADER *OpCode,
- IN BOOLEAN IntInput,
- IN EFI_HII_VALUE *QuestionValue,
- OUT UINT64 *Value,
- OUT UINT64 *Minimum,
- OUT UINT64 *Maximum,
- OUT UINT64 *Step,
- OUT UINT16 *StorageWidth
-)
+ IN EFI_IFR_OP_HEADER *OpCode,
+ IN BOOLEAN IntInput,
+ IN EFI_HII_VALUE *QuestionValue,
+ OUT UINT64 *Value,
+ OUT UINT64 *Minimum,
+ OUT UINT64 *Maximum,
+ OUT UINT64 *Step,
+ OUT UINT16 *StorageWidth
+ )
{
- EFI_IFR_NUMERIC *NumericOp;
+ EFI_IFR_NUMERIC *NumericOp;
- NumericOp = (EFI_IFR_NUMERIC *) OpCode;
+ NumericOp = (EFI_IFR_NUMERIC *)OpCode;
switch (NumericOp->Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- if (IntInput) {
- *Minimum = (INT64) (INT8) NumericOp->data.u8.MinValue;
- *Maximum = (INT64) (INT8) NumericOp->data.u8.MaxValue;
- *Value = (INT64) (INT8) QuestionValue->Value.u8;
- } else {
- *Minimum = NumericOp->data.u8.MinValue;
- *Maximum = NumericOp->data.u8.MaxValue;
- *Value = QuestionValue->Value.u8;
- }
- *Step = NumericOp->data.u8.Step;
- *StorageWidth = (UINT16) sizeof (UINT8);
- break;
-
- case EFI_IFR_NUMERIC_SIZE_2:
- if (IntInput) {
- *Minimum = (INT64) (INT16) NumericOp->data.u16.MinValue;
- *Maximum = (INT64) (INT16) NumericOp->data.u16.MaxValue;
- *Value = (INT64) (INT16) QuestionValue->Value.u16;
- } else {
- *Minimum = NumericOp->data.u16.MinValue;
- *Maximum = NumericOp->data.u16.MaxValue;
- *Value = QuestionValue->Value.u16;
- }
- *Step = NumericOp->data.u16.Step;
- *StorageWidth = (UINT16) sizeof (UINT16);
- break;
-
- case EFI_IFR_NUMERIC_SIZE_4:
- if (IntInput) {
- *Minimum = (INT64) (INT32) NumericOp->data.u32.MinValue;
- *Maximum = (INT64) (INT32) NumericOp->data.u32.MaxValue;
- *Value = (INT64) (INT32) QuestionValue->Value.u32;
- } else {
- *Minimum = NumericOp->data.u32.MinValue;
- *Maximum = NumericOp->data.u32.MaxValue;
- *Value = QuestionValue->Value.u32;
- }
- *Step = NumericOp->data.u32.Step;
- *StorageWidth = (UINT16) sizeof (UINT32);
- break;
-
- case EFI_IFR_NUMERIC_SIZE_8:
- if (IntInput) {
- *Minimum = (INT64) NumericOp->data.u64.MinValue;
- *Maximum = (INT64) NumericOp->data.u64.MaxValue;
- *Value = (INT64) QuestionValue->Value.u64;
- } else {
- *Minimum = NumericOp->data.u64.MinValue;
- *Maximum = NumericOp->data.u64.MaxValue;
- *Value = QuestionValue->Value.u64;
- }
- *Step = NumericOp->data.u64.Step;
- *StorageWidth = (UINT16) sizeof (UINT64);
- break;
+ case EFI_IFR_NUMERIC_SIZE_1:
+ if (IntInput) {
+ *Minimum = (INT64)(INT8)NumericOp->data.u8.MinValue;
+ *Maximum = (INT64)(INT8)NumericOp->data.u8.MaxValue;
+ *Value = (INT64)(INT8)QuestionValue->Value.u8;
+ } else {
+ *Minimum = NumericOp->data.u8.MinValue;
+ *Maximum = NumericOp->data.u8.MaxValue;
+ *Value = QuestionValue->Value.u8;
+ }
+
+ *Step = NumericOp->data.u8.Step;
+ *StorageWidth = (UINT16)sizeof (UINT8);
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_2:
+ if (IntInput) {
+ *Minimum = (INT64)(INT16)NumericOp->data.u16.MinValue;
+ *Maximum = (INT64)(INT16)NumericOp->data.u16.MaxValue;
+ *Value = (INT64)(INT16)QuestionValue->Value.u16;
+ } else {
+ *Minimum = NumericOp->data.u16.MinValue;
+ *Maximum = NumericOp->data.u16.MaxValue;
+ *Value = QuestionValue->Value.u16;
+ }
+
+ *Step = NumericOp->data.u16.Step;
+ *StorageWidth = (UINT16)sizeof (UINT16);
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_4:
+ if (IntInput) {
+ *Minimum = (INT64)(INT32)NumericOp->data.u32.MinValue;
+ *Maximum = (INT64)(INT32)NumericOp->data.u32.MaxValue;
+ *Value = (INT64)(INT32)QuestionValue->Value.u32;
+ } else {
+ *Minimum = NumericOp->data.u32.MinValue;
+ *Maximum = NumericOp->data.u32.MaxValue;
+ *Value = QuestionValue->Value.u32;
+ }
+
+ *Step = NumericOp->data.u32.Step;
+ *StorageWidth = (UINT16)sizeof (UINT32);
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_8:
+ if (IntInput) {
+ *Minimum = (INT64)NumericOp->data.u64.MinValue;
+ *Maximum = (INT64)NumericOp->data.u64.MaxValue;
+ *Value = (INT64)QuestionValue->Value.u64;
+ } else {
+ *Minimum = NumericOp->data.u64.MinValue;
+ *Maximum = NumericOp->data.u64.MaxValue;
+ *Value = QuestionValue->Value.u64;
+ }
- default:
- break;
+ *Step = NumericOp->data.u64.Step;
+ *StorageWidth = (UINT16)sizeof (UINT64);
+ break;
+
+ default:
+ break;
}
if (*Maximum == 0) {
- *Maximum = (UINT64) -1;
+ *Maximum = (UINT64)-1;
}
}
@@ -472,31 +484,31 @@ GetValueFromNum (
**/
EFI_STATUS
GetNumericInput (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
- UINTN Column;
- UINTN Row;
- CHAR16 InputText[MAX_NUMERIC_INPUT_WIDTH];
- CHAR16 FormattedNumber[MAX_NUMERIC_INPUT_WIDTH - 1];
- UINT64 PreviousNumber[MAX_NUMERIC_INPUT_WIDTH - 3];
- UINTN Count;
- UINTN Loop;
- BOOLEAN ManualInput;
- BOOLEAN HexInput;
- BOOLEAN IntInput;
- BOOLEAN Negative;
- BOOLEAN ValidateFail;
- BOOLEAN DateOrTime;
- UINTN InputWidth;
- UINT64 EditValue;
- UINT64 Step;
- UINT64 Minimum;
- UINT64 Maximum;
- UINTN EraseLen;
- UINT8 Digital;
- EFI_INPUT_KEY Key;
- EFI_HII_VALUE *QuestionValue;
+ UINTN Column;
+ UINTN Row;
+ CHAR16 InputText[MAX_NUMERIC_INPUT_WIDTH];
+ CHAR16 FormattedNumber[MAX_NUMERIC_INPUT_WIDTH - 1];
+ UINT64 PreviousNumber[MAX_NUMERIC_INPUT_WIDTH - 3];
+ UINTN Count;
+ UINTN Loop;
+ BOOLEAN ManualInput;
+ BOOLEAN HexInput;
+ BOOLEAN IntInput;
+ BOOLEAN Negative;
+ BOOLEAN ValidateFail;
+ BOOLEAN DateOrTime;
+ UINTN InputWidth;
+ UINT64 EditValue;
+ UINT64 Step;
+ UINT64 Minimum;
+ UINT64 Maximum;
+ UINTN EraseLen;
+ UINT8 Digital;
+ EFI_INPUT_KEY Key;
+ EFI_HII_VALUE *QuestionValue;
FORM_DISPLAY_ENGINE_STATEMENT *Question;
EFI_IFR_NUMERIC *NumericOp;
UINT16 StorageWidth;
@@ -524,7 +536,7 @@ GetNumericInput (
// Only two case, user can enter to this function: Enter and +/- case.
// In Enter case, gDirection = 0; in +/- case, gDirection = SCAN_LEFT/SCAN_WRIGHT
//
- ManualInput = (BOOLEAN)(gDirection == 0 ? TRUE : FALSE);
+ ManualInput = (BOOLEAN)(gDirection == 0 ? TRUE : FALSE);
if ((Question->OpCode->OpCode == EFI_IFR_DATE_OP) || (Question->OpCode->OpCode == EFI_IFR_TIME_OP)) {
DateOrTime = TRUE;
@@ -535,91 +547,93 @@ GetNumericInput (
//
// Prepare Value to be edit
//
- EraseLen = 0;
+ EraseLen = 0;
EditValue = 0;
if (Question->OpCode->OpCode == EFI_IFR_DATE_OP) {
- Step = 1;
+ Step = 1;
Minimum = 1;
switch (MenuOption->Sequence) {
- case 0:
- Maximum = 12;
- EraseLen = 4;
- EditValue = QuestionValue->Value.date.Month;
- break;
+ case 0:
+ Maximum = 12;
+ EraseLen = 4;
+ EditValue = QuestionValue->Value.date.Month;
+ break;
- case 1:
- switch (QuestionValue->Value.date.Month) {
- case 2:
- if ((QuestionValue->Value.date.Year % 4) == 0 &&
- ((QuestionValue->Value.date.Year % 100) != 0 ||
- (QuestionValue->Value.date.Year % 400) == 0)) {
- Maximum = 29;
- } else {
- Maximum = 28;
+ case 1:
+ switch (QuestionValue->Value.date.Month) {
+ case 2:
+ if (((QuestionValue->Value.date.Year % 4) == 0) &&
+ (((QuestionValue->Value.date.Year % 100) != 0) ||
+ ((QuestionValue->Value.date.Year % 400) == 0)))
+ {
+ Maximum = 29;
+ } else {
+ Maximum = 28;
+ }
+
+ break;
+ case 4:
+ case 6:
+ case 9:
+ case 11:
+ Maximum = 30;
+ break;
+ default:
+ Maximum = 31;
+ break;
}
+
+ EraseLen = 3;
+ EditValue = QuestionValue->Value.date.Day;
break;
- case 4:
- case 6:
- case 9:
- case 11:
- Maximum = 30;
+
+ case 2:
+ Maximum = 0xffff;
+ EraseLen = 5;
+ EditValue = QuestionValue->Value.date.Year;
break;
+
default:
- Maximum = 31;
break;
- }
-
- EraseLen = 3;
- EditValue = QuestionValue->Value.date.Day;
- break;
-
- case 2:
- Maximum = 0xffff;
- EraseLen = 5;
- EditValue = QuestionValue->Value.date.Year;
- break;
-
- default:
- break;
}
} else if (Question->OpCode->OpCode == EFI_IFR_TIME_OP) {
- Step = 1;
+ Step = 1;
Minimum = 0;
switch (MenuOption->Sequence) {
- case 0:
- Maximum = 23;
- EraseLen = 4;
- EditValue = QuestionValue->Value.time.Hour;
- break;
+ case 0:
+ Maximum = 23;
+ EraseLen = 4;
+ EditValue = QuestionValue->Value.time.Hour;
+ break;
- case 1:
- Maximum = 59;
- EraseLen = 3;
- EditValue = QuestionValue->Value.time.Minute;
- break;
+ case 1:
+ Maximum = 59;
+ EraseLen = 3;
+ EditValue = QuestionValue->Value.time.Minute;
+ break;
- case 2:
- Maximum = 59;
- EraseLen = 3;
- EditValue = QuestionValue->Value.time.Second;
- break;
+ case 2:
+ Maximum = 59;
+ EraseLen = 3;
+ EditValue = QuestionValue->Value.time.Second;
+ break;
- default:
- break;
+ default:
+ break;
}
} else {
ASSERT (Question->OpCode->OpCode == EFI_IFR_NUMERIC_OP);
- NumericOp = (EFI_IFR_NUMERIC *) Question->OpCode;
- GetValueFromNum(Question->OpCode, (NumericOp->Flags & EFI_IFR_DISPLAY) == 0, QuestionValue, &EditValue, &Minimum, &Maximum, &Step, &StorageWidth);
- EraseLen = gOptionBlockWidth;
+ NumericOp = (EFI_IFR_NUMERIC *)Question->OpCode;
+ GetValueFromNum (Question->OpCode, (NumericOp->Flags & EFI_IFR_DISPLAY) == 0, QuestionValue, &EditValue, &Minimum, &Maximum, &Step, &StorageWidth);
+ EraseLen = gOptionBlockWidth;
}
if ((Question->OpCode->OpCode == EFI_IFR_NUMERIC_OP) && (NumericOp != NULL)) {
- if ((NumericOp->Flags & EFI_IFR_DISPLAY) == EFI_IFR_DISPLAY_UINT_HEX){
+ if ((NumericOp->Flags & EFI_IFR_DISPLAY) == EFI_IFR_DISPLAY_UINT_HEX) {
HexInput = TRUE;
- } else if ((NumericOp->Flags & EFI_IFR_DISPLAY) == 0){
+ } else if ((NumericOp->Flags & EFI_IFR_DISPLAY) == 0) {
//
// Display with EFI_IFR_DISPLAY_INT_DEC type. Support negative number.
//
@@ -636,25 +650,25 @@ GetNumericInput (
InputWidth = StorageWidth * 2;
} else {
switch (StorageWidth) {
- case 1:
- InputWidth = 3;
- break;
+ case 1:
+ InputWidth = 3;
+ break;
- case 2:
- InputWidth = 5;
- break;
+ case 2:
+ InputWidth = 5;
+ break;
- case 4:
- InputWidth = 10;
- break;
+ case 4:
+ InputWidth = 10;
+ break;
- case 8:
- InputWidth = 20;
- break;
+ case 8:
+ InputWidth = 20;
+ break;
- default:
- InputWidth = 0;
- break;
+ default:
+ InputWidth = 0;
+ break;
}
if (IntInput) {
@@ -687,13 +701,13 @@ GetNumericInput (
SetUnicodeMem (InputText + 1, InputWidth, L' ');
InputText[InputWidth + 1] = DATE_SEPARATOR;
InputText[InputWidth + 2] = L'\0';
- } else if (MenuOption->Sequence == 1){
+ } else if (MenuOption->Sequence == 1) {
SetUnicodeMem (InputText, InputWidth, L' ');
- InputText[InputWidth] = DATE_SEPARATOR;
+ InputText[InputWidth] = DATE_SEPARATOR;
InputText[InputWidth + 1] = L'\0';
} else {
SetUnicodeMem (InputText, InputWidth, L' ');
- InputText[InputWidth] = RIGHT_NUMERIC_DELIMITER;
+ InputText[InputWidth] = RIGHT_NUMERIC_DELIMITER;
InputText[InputWidth + 1] = L'\0';
}
@@ -711,13 +725,13 @@ GetNumericInput (
SetUnicodeMem (InputText + 1, InputWidth, L' ');
InputText[InputWidth + 1] = TIME_SEPARATOR;
InputText[InputWidth + 2] = L'\0';
- } else if (MenuOption->Sequence == 1){
+ } else if (MenuOption->Sequence == 1) {
SetUnicodeMem (InputText, InputWidth, L' ');
- InputText[InputWidth] = TIME_SEPARATOR;
+ InputText[InputWidth] = TIME_SEPARATOR;
InputText[InputWidth + 1] = L'\0';
} else {
SetUnicodeMem (InputText, InputWidth, L' ');
- InputText[InputWidth] = RIGHT_NUMERIC_DELIMITER;
+ InputText[InputWidth] = RIGHT_NUMERIC_DELIMITER;
InputText[InputWidth + 1] = L'\0';
}
@@ -735,8 +749,8 @@ GetNumericInput (
do {
Key.UnicodeChar = CHAR_NULL;
if (gDirection != 0) {
- Key.ScanCode = gDirection;
- gDirection = 0;
+ Key.ScanCode = gDirection;
+ gDirection = 0;
goto TheKey2;
}
@@ -744,353 +758,362 @@ GetNumericInput (
TheKey2:
switch (Key.UnicodeChar) {
+ case '+':
+ case '-':
+ if (ManualInput && IntInput) {
+ //
+ // In Manual input mode, check whether input the negative flag.
+ //
+ if (Key.UnicodeChar == '-') {
+ if (Negative) {
+ break;
+ }
- case '+':
- case '-':
- if (ManualInput && IntInput) {
- //
- // In Manual input mode, check whether input the negative flag.
- //
- if (Key.UnicodeChar == '-') {
- if (Negative) {
- break;
+ Negative = TRUE;
+ PrintCharAt (Column++, Row, Key.UnicodeChar);
}
- Negative = TRUE;
- PrintCharAt (Column++, Row, Key.UnicodeChar);
- }
- } else {
- if (Key.UnicodeChar == '+') {
- Key.ScanCode = SCAN_RIGHT;
} else {
- Key.ScanCode = SCAN_LEFT;
- }
- Key.UnicodeChar = CHAR_NULL;
- goto TheKey2;
- }
- break;
+ if (Key.UnicodeChar == '+') {
+ Key.ScanCode = SCAN_RIGHT;
+ } else {
+ Key.ScanCode = SCAN_LEFT;
+ }
- case CHAR_NULL:
- switch (Key.ScanCode) {
- case SCAN_LEFT:
- case SCAN_RIGHT:
- if (DateOrTime && !ManualInput) {
- //
- // By setting this value, we will return back to the caller.
- // We need to do this since an auto-refresh will destroy the adjustment
- // based on what the real-time-clock is showing. So we always commit
- // upon changing the value.
- //
- gDirection = SCAN_DOWN;
+ Key.UnicodeChar = CHAR_NULL;
+ goto TheKey2;
}
- if ((Step != 0) && !ManualInput) {
- if (Key.ScanCode == SCAN_LEFT) {
- if (IntInput) {
- if ((INT64) EditValue >= (INT64) Minimum + (INT64) Step) {
- EditValue = EditValue - Step;
- } else if ((INT64) EditValue > (INT64) Minimum){
- EditValue = Minimum;
- } else {
- EditValue = Maximum;
- }
- } else {
- if (EditValue >= Minimum + Step) {
- EditValue = EditValue - Step;
- } else if (EditValue > Minimum){
- EditValue = Minimum;
- } else {
- EditValue = Maximum;
- }
+ break;
+
+ case CHAR_NULL:
+ switch (Key.ScanCode) {
+ case SCAN_LEFT:
+ case SCAN_RIGHT:
+ if (DateOrTime && !ManualInput) {
+ //
+ // By setting this value, we will return back to the caller.
+ // We need to do this since an auto-refresh will destroy the adjustment
+ // based on what the real-time-clock is showing. So we always commit
+ // upon changing the value.
+ //
+ gDirection = SCAN_DOWN;
}
- } else if (Key.ScanCode == SCAN_RIGHT) {
- if (IntInput) {
- if ((INT64) EditValue + (INT64) Step <= (INT64) Maximum) {
- EditValue = EditValue + Step;
- } else if ((INT64) EditValue < (INT64) Maximum) {
- EditValue = Maximum;
- } else {
- EditValue = Minimum;
+
+ if ((Step != 0) && !ManualInput) {
+ if (Key.ScanCode == SCAN_LEFT) {
+ if (IntInput) {
+ if ((INT64)EditValue >= (INT64)Minimum + (INT64)Step) {
+ EditValue = EditValue - Step;
+ } else if ((INT64)EditValue > (INT64)Minimum) {
+ EditValue = Minimum;
+ } else {
+ EditValue = Maximum;
+ }
+ } else {
+ if (EditValue >= Minimum + Step) {
+ EditValue = EditValue - Step;
+ } else if (EditValue > Minimum) {
+ EditValue = Minimum;
+ } else {
+ EditValue = Maximum;
+ }
+ }
+ } else if (Key.ScanCode == SCAN_RIGHT) {
+ if (IntInput) {
+ if ((INT64)EditValue + (INT64)Step <= (INT64)Maximum) {
+ EditValue = EditValue + Step;
+ } else if ((INT64)EditValue < (INT64)Maximum) {
+ EditValue = Maximum;
+ } else {
+ EditValue = Minimum;
+ }
+ } else {
+ if (EditValue + Step <= Maximum) {
+ EditValue = EditValue + Step;
+ } else if (EditValue < Maximum) {
+ EditValue = Maximum;
+ } else {
+ EditValue = Minimum;
+ }
+ }
}
- } else {
- if (EditValue + Step <= Maximum) {
- EditValue = EditValue + Step;
- } else if (EditValue < Maximum) {
- EditValue = Maximum;
+
+ ZeroMem (FormattedNumber, 21 * sizeof (CHAR16));
+ if (Question->OpCode->OpCode == EFI_IFR_DATE_OP) {
+ if (MenuOption->Sequence == 2) {
+ //
+ // Year
+ //
+ UnicodeSPrint (FormattedNumber, 21 * sizeof (CHAR16), L"%04d", (UINT16)EditValue);
+ } else {
+ //
+ // Month/Day
+ //
+ UnicodeSPrint (FormattedNumber, 21 * sizeof (CHAR16), L"%02d", (UINT8)EditValue);
+ }
+
+ if (MenuOption->Sequence == 0) {
+ ASSERT (EraseLen >= 2);
+ FormattedNumber[EraseLen - 2] = DATE_SEPARATOR;
+ } else if (MenuOption->Sequence == 1) {
+ ASSERT (EraseLen >= 1);
+ FormattedNumber[EraseLen - 1] = DATE_SEPARATOR;
+ }
+ } else if (Question->OpCode->OpCode == EFI_IFR_TIME_OP) {
+ UnicodeSPrint (FormattedNumber, 21 * sizeof (CHAR16), L"%02d", (UINT8)EditValue);
+
+ if (MenuOption->Sequence == 0) {
+ ASSERT (EraseLen >= 2);
+ FormattedNumber[EraseLen - 2] = TIME_SEPARATOR;
+ } else if (MenuOption->Sequence == 1) {
+ ASSERT (EraseLen >= 1);
+ FormattedNumber[EraseLen - 1] = TIME_SEPARATOR;
+ }
} else {
- EditValue = Minimum;
+ QuestionValue->Value.u64 = EditValue;
+ PrintFormattedNumber (Question, FormattedNumber, 21 * sizeof (CHAR16));
}
- }
- }
- ZeroMem (FormattedNumber, 21 * sizeof (CHAR16));
- if (Question->OpCode->OpCode == EFI_IFR_DATE_OP) {
- if (MenuOption->Sequence == 2) {
- //
- // Year
- //
- UnicodeSPrint (FormattedNumber, 21 * sizeof (CHAR16), L"%04d", (UINT16) EditValue);
- } else {
- //
- // Month/Day
- //
- UnicodeSPrint (FormattedNumber, 21 * sizeof (CHAR16), L"%02d", (UINT8) EditValue);
- }
+ gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
+ for (Loop = 0; Loop < EraseLen; Loop++) {
+ PrintStringAt (MenuOption->OptCol + Loop, MenuOption->Row, L" ");
+ }
- if (MenuOption->Sequence == 0) {
- ASSERT (EraseLen >= 2);
- FormattedNumber[EraseLen - 2] = DATE_SEPARATOR;
- } else if (MenuOption->Sequence == 1) {
- ASSERT (EraseLen >= 1);
- FormattedNumber[EraseLen - 1] = DATE_SEPARATOR;
- }
- } else if (Question->OpCode->OpCode == EFI_IFR_TIME_OP) {
- UnicodeSPrint (FormattedNumber, 21 * sizeof (CHAR16), L"%02d", (UINT8) EditValue);
-
- if (MenuOption->Sequence == 0) {
- ASSERT (EraseLen >= 2);
- FormattedNumber[EraseLen - 2] = TIME_SEPARATOR;
- } else if (MenuOption->Sequence == 1) {
- ASSERT (EraseLen >= 1);
- FormattedNumber[EraseLen - 1] = TIME_SEPARATOR;
- }
- } else {
- QuestionValue->Value.u64 = EditValue;
- PrintFormattedNumber (Question, FormattedNumber, 21 * sizeof (CHAR16));
- }
+ gST->ConOut->SetAttribute (gST->ConOut, GetHighlightTextColor ());
- gST->ConOut->SetAttribute (gST->ConOut, GetFieldTextColor ());
- for (Loop = 0; Loop < EraseLen; Loop++) {
- PrintStringAt (MenuOption->OptCol + Loop, MenuOption->Row, L" ");
- }
- gST->ConOut->SetAttribute (gST->ConOut, GetHighlightTextColor ());
+ if (MenuOption->Sequence == 0) {
+ PrintCharAt (MenuOption->OptCol, Row, LEFT_NUMERIC_DELIMITER);
+ Column = MenuOption->OptCol + 1;
+ }
- if (MenuOption->Sequence == 0) {
- PrintCharAt (MenuOption->OptCol, Row, LEFT_NUMERIC_DELIMITER);
- Column = MenuOption->OptCol + 1;
- }
+ PrintStringAt (Column, Row, FormattedNumber);
- PrintStringAt (Column, Row, FormattedNumber);
+ if (!DateOrTime || (MenuOption->Sequence == 2)) {
+ PrintCharAt ((UINTN)-1, (UINTN)-1, RIGHT_NUMERIC_DELIMITER);
+ }
+ }
- if (!DateOrTime || MenuOption->Sequence == 2) {
- PrintCharAt ((UINTN)-1, (UINTN)-1, RIGHT_NUMERIC_DELIMITER);
- }
- }
+ goto EnterCarriageReturn;
- goto EnterCarriageReturn;
+ case SCAN_UP:
+ case SCAN_DOWN:
+ goto EnterCarriageReturn;
- case SCAN_UP:
- case SCAN_DOWN:
- goto EnterCarriageReturn;
+ case SCAN_ESC:
+ return EFI_DEVICE_ERROR;
- case SCAN_ESC:
- return EFI_DEVICE_ERROR;
+ default:
+ break;
+ }
- default:
break;
- }
-
- break;
EnterCarriageReturn:
- case CHAR_CARRIAGE_RETURN:
- //
- // Validate input value with Minimum value.
- //
- ValidateFail = FALSE;
- if (IntInput) {
+ case CHAR_CARRIAGE_RETURN:
//
- // After user input Enter, need to check whether the input value.
- // If input a negative value, should compare with maximum value.
- // else compare with the minimum value.
+ // Validate input value with Minimum value.
//
- if (Negative) {
- ValidateFail = (INT64) EditValue > (INT64) Maximum ? TRUE : FALSE;
- } else {
- ValidateFail = (INT64) EditValue < (INT64) Minimum ? TRUE : FALSE;
- }
+ ValidateFail = FALSE;
+ if (IntInput) {
+ //
+ // After user input Enter, need to check whether the input value.
+ // If input a negative value, should compare with maximum value.
+ // else compare with the minimum value.
+ //
+ if (Negative) {
+ ValidateFail = (INT64)EditValue > (INT64)Maximum ? TRUE : FALSE;
+ } else {
+ ValidateFail = (INT64)EditValue < (INT64)Minimum ? TRUE : FALSE;
+ }
- if (ValidateFail) {
+ if (ValidateFail) {
+ UpdateStatusBar (INPUT_ERROR, TRUE);
+ break;
+ }
+ } else if (EditValue < Minimum) {
UpdateStatusBar (INPUT_ERROR, TRUE);
break;
}
- } else if (EditValue < Minimum) {
- UpdateStatusBar (INPUT_ERROR, TRUE);
- break;
- }
- UpdateStatusBar (INPUT_ERROR, FALSE);
- CopyMem (&gUserInput->InputValue, &Question->CurrentValue, sizeof (EFI_HII_VALUE));
- QuestionValue = &gUserInput->InputValue;
- //
- // Store Edit value back to Question
- //
- if (Question->OpCode->OpCode == EFI_IFR_DATE_OP) {
- switch (MenuOption->Sequence) {
- case 0:
- QuestionValue->Value.date.Month = (UINT8) EditValue;
- break;
+ UpdateStatusBar (INPUT_ERROR, FALSE);
+ CopyMem (&gUserInput->InputValue, &Question->CurrentValue, sizeof (EFI_HII_VALUE));
+ QuestionValue = &gUserInput->InputValue;
+ //
+ // Store Edit value back to Question
+ //
+ if (Question->OpCode->OpCode == EFI_IFR_DATE_OP) {
+ switch (MenuOption->Sequence) {
+ case 0:
+ QuestionValue->Value.date.Month = (UINT8)EditValue;
+ break;
- case 1:
- QuestionValue->Value.date.Day = (UINT8) EditValue;
- break;
+ case 1:
+ QuestionValue->Value.date.Day = (UINT8)EditValue;
+ break;
- case 2:
- QuestionValue->Value.date.Year = (UINT16) EditValue;
- break;
+ case 2:
+ QuestionValue->Value.date.Year = (UINT16)EditValue;
+ break;
- default:
- break;
- }
- } else if (Question->OpCode->OpCode == EFI_IFR_TIME_OP) {
- switch (MenuOption->Sequence) {
- case 0:
- QuestionValue->Value.time.Hour = (UINT8) EditValue;
- break;
+ default:
+ break;
+ }
+ } else if (Question->OpCode->OpCode == EFI_IFR_TIME_OP) {
+ switch (MenuOption->Sequence) {
+ case 0:
+ QuestionValue->Value.time.Hour = (UINT8)EditValue;
+ break;
- case 1:
- QuestionValue->Value.time.Minute = (UINT8) EditValue;
- break;
+ case 1:
+ QuestionValue->Value.time.Minute = (UINT8)EditValue;
+ break;
- case 2:
- QuestionValue->Value.time.Second = (UINT8) EditValue;
- break;
+ case 2:
+ QuestionValue->Value.time.Second = (UINT8)EditValue;
+ break;
- default:
- break;
+ default:
+ break;
+ }
+ } else {
+ //
+ // Numeric
+ //
+ QuestionValue->Value.u64 = EditValue;
}
- } else {
+
//
- // Numeric
+ // Adjust the value to the correct one.
+ // Sample like: 2012.02.29 -> 2013.02.29 -> 2013.02.01
+ // 2013.03.29 -> 2013.02.29 -> 2013.02.28
//
- QuestionValue->Value.u64 = EditValue;
- }
+ if ((Question->OpCode->OpCode == EFI_IFR_DATE_OP) &&
+ ((MenuOption->Sequence == 0) || (MenuOption->Sequence == 2)))
+ {
+ AdjustQuestionValue (QuestionValue, (UINT8)MenuOption->Sequence);
+ }
- //
- // Adjust the value to the correct one.
- // Sample like: 2012.02.29 -> 2013.02.29 -> 2013.02.01
- // 2013.03.29 -> 2013.02.29 -> 2013.02.28
- //
- if (Question->OpCode->OpCode == EFI_IFR_DATE_OP &&
- (MenuOption->Sequence == 0 || MenuOption->Sequence == 2)) {
- AdjustQuestionValue (QuestionValue, (UINT8)MenuOption->Sequence);
- }
+ return EFI_SUCCESS;
- return EFI_SUCCESS;
+ case CHAR_BACKSPACE:
+ if (ManualInput) {
+ if (Count == 0) {
+ if (Negative) {
+ Negative = FALSE;
+ Column--;
+ PrintStringAt (Column, Row, L" ");
+ }
- case CHAR_BACKSPACE:
- if (ManualInput) {
- if (Count == 0) {
- if (Negative) {
- Negative = FALSE;
- Column--;
- PrintStringAt (Column, Row, L" ");
+ break;
}
- break;
+
+ //
+ // Remove a character
+ //
+ EditValue = PreviousNumber[Count - 1];
+ UpdateStatusBar (INPUT_ERROR, FALSE);
+ Count--;
+ Column--;
+ PrintStringAt (Column, Row, L" ");
}
- //
- // Remove a character
- //
- EditValue = PreviousNumber[Count - 1];
- UpdateStatusBar (INPUT_ERROR, FALSE);
- Count--;
- Column--;
- PrintStringAt (Column, Row, L" ");
- }
- break;
- default:
- if (ManualInput) {
- if (HexInput) {
- if ((Key.UnicodeChar >= L'0') && (Key.UnicodeChar <= L'9')) {
- Digital = (UINT8) (Key.UnicodeChar - L'0');
- } else if ((Key.UnicodeChar >= L'A') && (Key.UnicodeChar <= L'F')) {
- Digital = (UINT8) (Key.UnicodeChar - L'A' + 0x0A);
- } else if ((Key.UnicodeChar >= L'a') && (Key.UnicodeChar <= L'f')) {
- Digital = (UINT8) (Key.UnicodeChar - L'a' + 0x0A);
+ break;
+
+ default:
+ if (ManualInput) {
+ if (HexInput) {
+ if ((Key.UnicodeChar >= L'0') && (Key.UnicodeChar <= L'9')) {
+ Digital = (UINT8)(Key.UnicodeChar - L'0');
+ } else if ((Key.UnicodeChar >= L'A') && (Key.UnicodeChar <= L'F')) {
+ Digital = (UINT8)(Key.UnicodeChar - L'A' + 0x0A);
+ } else if ((Key.UnicodeChar >= L'a') && (Key.UnicodeChar <= L'f')) {
+ Digital = (UINT8)(Key.UnicodeChar - L'a' + 0x0A);
+ } else {
+ UpdateStatusBar (INPUT_ERROR, TRUE);
+ break;
+ }
} else {
- UpdateStatusBar (INPUT_ERROR, TRUE);
- break;
+ if ((Key.UnicodeChar > L'9') || (Key.UnicodeChar < L'0')) {
+ UpdateStatusBar (INPUT_ERROR, TRUE);
+ break;
+ }
}
- } else {
- if (Key.UnicodeChar > L'9' || Key.UnicodeChar < L'0') {
- UpdateStatusBar (INPUT_ERROR, TRUE);
+
+ //
+ // If Count exceed input width, there is no way more is valid
+ //
+ if (Count >= InputWidth) {
break;
}
- }
- //
- // If Count exceed input width, there is no way more is valid
- //
- if (Count >= InputWidth) {
- break;
- }
- //
- // Someone typed something valid!
- //
- if (Count != 0) {
- if (HexInput) {
- EditValue = LShiftU64 (EditValue, 4) + Digital;
- } else if (IntInput && Negative) {
- //
- // Save the negative number.
- //
- EditValue = ~(MultU64x32 (~(EditValue - 1), 10) + (Key.UnicodeChar - L'0')) + 1;
+ //
+ // Someone typed something valid!
+ //
+ if (Count != 0) {
+ if (HexInput) {
+ EditValue = LShiftU64 (EditValue, 4) + Digital;
+ } else if (IntInput && Negative) {
+ //
+ // Save the negative number.
+ //
+ EditValue = ~(MultU64x32 (~(EditValue - 1), 10) + (Key.UnicodeChar - L'0')) + 1;
+ } else {
+ EditValue = MultU64x32 (EditValue, 10) + (Key.UnicodeChar - L'0');
+ }
} else {
- EditValue = MultU64x32 (EditValue, 10) + (Key.UnicodeChar - L'0');
+ if (HexInput) {
+ EditValue = Digital;
+ } else if (IntInput && Negative) {
+ //
+ // Save the negative number.
+ //
+ EditValue = ~(Key.UnicodeChar - L'0') + 1;
+ } else {
+ EditValue = Key.UnicodeChar - L'0';
+ }
}
- } else {
- if (HexInput) {
- EditValue = Digital;
- } else if (IntInput && Negative) {
+
+ if (IntInput) {
+ ValidateFail = FALSE;
//
- // Save the negative number.
+ // When user input a new value, should check the current value.
+ // If user input a negative value, should compare it with minimum
+ // value, else compare it with maximum value.
//
- EditValue = ~(Key.UnicodeChar - L'0') + 1;
- } else {
- EditValue = Key.UnicodeChar - L'0';
- }
- }
+ if (Negative) {
+ ValidateFail = (INT64)EditValue < (INT64)Minimum ? TRUE : FALSE;
+ } else {
+ ValidateFail = (INT64)EditValue > (INT64)Maximum ? TRUE : FALSE;
+ }
- if (IntInput) {
- ValidateFail = FALSE;
- //
- // When user input a new value, should check the current value.
- // If user input a negative value, should compare it with minimum
- // value, else compare it with maximum value.
- //
- if (Negative) {
- ValidateFail = (INT64) EditValue < (INT64) Minimum ? TRUE : FALSE;
+ if (ValidateFail) {
+ UpdateStatusBar (INPUT_ERROR, TRUE);
+ ASSERT (Count < ARRAY_SIZE (PreviousNumber));
+ EditValue = PreviousNumber[Count];
+ break;
+ }
} else {
- ValidateFail = (INT64) EditValue > (INT64) Maximum ? TRUE : FALSE;
+ if (EditValue > Maximum) {
+ UpdateStatusBar (INPUT_ERROR, TRUE);
+ ASSERT (Count < ARRAY_SIZE (PreviousNumber));
+ EditValue = PreviousNumber[Count];
+ break;
+ }
}
- if (ValidateFail) {
- UpdateStatusBar (INPUT_ERROR, TRUE);
- ASSERT (Count < ARRAY_SIZE (PreviousNumber));
- EditValue = PreviousNumber[Count];
- break;
- }
- } else {
- if (EditValue > Maximum) {
- UpdateStatusBar (INPUT_ERROR, TRUE);
- ASSERT (Count < ARRAY_SIZE (PreviousNumber));
- EditValue = PreviousNumber[Count];
- break;
- }
- }
+ UpdateStatusBar (INPUT_ERROR, FALSE);
- UpdateStatusBar (INPUT_ERROR, FALSE);
+ Count++;
+ ASSERT (Count < (ARRAY_SIZE (PreviousNumber)));
+ PreviousNumber[Count] = EditValue;
- Count++;
- ASSERT (Count < (ARRAY_SIZE (PreviousNumber)));
- PreviousNumber[Count] = EditValue;
+ gST->ConOut->SetAttribute (gST->ConOut, GetHighlightTextColor ());
+ PrintCharAt (Column, Row, Key.UnicodeChar);
+ Column++;
+ }
- gST->ConOut->SetAttribute (gST->ConOut, GetHighlightTextColor ());
- PrintCharAt (Column, Row, Key.UnicodeChar);
- Column++;
- }
- break;
+ break;
}
} while (TRUE);
}
@@ -1111,19 +1134,19 @@ AdjustOptionOrder (
OUT UINTN *PopUpMenuLines
)
{
- UINTN Index;
- EFI_IFR_ORDERED_LIST *OrderList;
- UINT8 *ValueArray;
- UINT8 ValueType;
- LIST_ENTRY *Link;
- DISPLAY_QUESTION_OPTION *OneOfOption;
- EFI_HII_VALUE *HiiValueArray;
+ UINTN Index;
+ EFI_IFR_ORDERED_LIST *OrderList;
+ UINT8 *ValueArray;
+ UINT8 ValueType;
+ LIST_ENTRY *Link;
+ DISPLAY_QUESTION_OPTION *OneOfOption;
+ EFI_HII_VALUE *HiiValueArray;
Link = GetFirstNode (&Question->OptionListHead);
OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
ValueArray = Question->CurrentValue.Buffer;
ValueType = OneOfOption->OptionOpCode->Type;
- OrderList = (EFI_IFR_ORDERED_LIST *) Question->OpCode;
+ OrderList = (EFI_IFR_ORDERED_LIST *)Question->OpCode;
for (Index = 0; Index < OrderList->MaxContainers; Index++) {
if (GetArrayData (ValueArray, ValueType, Index) == 0) {
@@ -1140,7 +1163,7 @@ AdjustOptionOrder (
ASSERT (HiiValueArray != NULL);
for (Index = 0; Index < *PopUpMenuLines; Index++) {
- HiiValueArray[Index].Type = ValueType;
+ HiiValueArray[Index].Type = ValueType;
HiiValueArray[Index].Value.u64 = GetArrayData (ValueArray, ValueType, Index);
}
@@ -1176,28 +1199,28 @@ AdjustOptionOrder (
**/
BOOLEAN
IsValuesEqual (
- IN EFI_IFR_TYPE_VALUE *Value1,
- IN EFI_IFR_TYPE_VALUE *Value2,
- IN UINT8 Type
+ IN EFI_IFR_TYPE_VALUE *Value1,
+ IN EFI_IFR_TYPE_VALUE *Value2,
+ IN UINT8 Type
)
{
switch (Type) {
- case EFI_IFR_TYPE_BOOLEAN:
- case EFI_IFR_TYPE_NUM_SIZE_8:
- return (BOOLEAN) (Value1->u8 == Value2->u8);
+ case EFI_IFR_TYPE_BOOLEAN:
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ return (BOOLEAN)(Value1->u8 == Value2->u8);
- case EFI_IFR_TYPE_NUM_SIZE_16:
- return (BOOLEAN) (Value1->u16 == Value2->u16);
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ return (BOOLEAN)(Value1->u16 == Value2->u16);
- case EFI_IFR_TYPE_NUM_SIZE_32:
- return (BOOLEAN) (Value1->u32 == Value2->u32);
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ return (BOOLEAN)(Value1->u32 == Value2->u32);
- case EFI_IFR_TYPE_NUM_SIZE_64:
- return (BOOLEAN) (Value1->u64 == Value2->u64);
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ return (BOOLEAN)(Value1->u64 == Value2->u64);
- default:
- ASSERT (FALSE);
- return FALSE;
+ default:
+ ASSERT (FALSE);
+ return FALSE;
}
}
@@ -1211,35 +1234,35 @@ IsValuesEqual (
**/
VOID
SetValuesByType (
- OUT EFI_IFR_TYPE_VALUE *Dest,
- IN EFI_IFR_TYPE_VALUE *Source,
- IN UINT8 Type
+ OUT EFI_IFR_TYPE_VALUE *Dest,
+ IN EFI_IFR_TYPE_VALUE *Source,
+ IN UINT8 Type
)
{
switch (Type) {
- case EFI_IFR_TYPE_BOOLEAN:
- Dest->b = Source->b;
- break;
+ case EFI_IFR_TYPE_BOOLEAN:
+ Dest->b = Source->b;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_8:
- Dest->u8 = Source->u8;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ Dest->u8 = Source->u8;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- Dest->u16 = Source->u16;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ Dest->u16 = Source->u16;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- Dest->u32 = Source->u32;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ Dest->u32 = Source->u32;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- Dest->u64 = Source->u64;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ Dest->u64 = Source->u64;
+ break;
- default:
- ASSERT (FALSE);
- break;
+ default:
+ ASSERT (FALSE);
+ break;
}
}
@@ -1254,61 +1277,61 @@ SetValuesByType (
**/
EFI_STATUS
GetSelectionInputPopUp (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
- EFI_INPUT_KEY Key;
- UINTN Index;
- CHAR16 *StringPtr;
- CHAR16 *TempStringPtr;
- UINTN Index2;
- UINTN TopOptionIndex;
- UINTN HighlightOptionIndex;
- UINTN Start;
- UINTN End;
- UINTN Top;
- UINTN Bottom;
- UINTN PopUpMenuLines;
- UINTN MenuLinesInView;
- UINTN PopUpWidth;
- CHAR16 Character;
- INT32 SavedAttribute;
- BOOLEAN ShowDownArrow;
- BOOLEAN ShowUpArrow;
- UINTN DimensionsWidth;
- LIST_ENTRY *Link;
- BOOLEAN OrderedList;
- UINT8 *ValueArray;
- UINT8 *ReturnValue;
- UINT8 ValueType;
- EFI_HII_VALUE HiiValue;
- DISPLAY_QUESTION_OPTION *OneOfOption;
- DISPLAY_QUESTION_OPTION *CurrentOption;
+ EFI_INPUT_KEY Key;
+ UINTN Index;
+ CHAR16 *StringPtr;
+ CHAR16 *TempStringPtr;
+ UINTN Index2;
+ UINTN TopOptionIndex;
+ UINTN HighlightOptionIndex;
+ UINTN Start;
+ UINTN End;
+ UINTN Top;
+ UINTN Bottom;
+ UINTN PopUpMenuLines;
+ UINTN MenuLinesInView;
+ UINTN PopUpWidth;
+ CHAR16 Character;
+ INT32 SavedAttribute;
+ BOOLEAN ShowDownArrow;
+ BOOLEAN ShowUpArrow;
+ UINTN DimensionsWidth;
+ LIST_ENTRY *Link;
+ BOOLEAN OrderedList;
+ UINT8 *ValueArray;
+ UINT8 *ReturnValue;
+ UINT8 ValueType;
+ EFI_HII_VALUE HiiValue;
+ DISPLAY_QUESTION_OPTION *OneOfOption;
+ DISPLAY_QUESTION_OPTION *CurrentOption;
FORM_DISPLAY_ENGINE_STATEMENT *Question;
- INTN Result;
- EFI_IFR_ORDERED_LIST *OrderList;
+ INTN Result;
+ EFI_IFR_ORDERED_LIST *OrderList;
- DimensionsWidth = gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn;
+ DimensionsWidth = gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn;
- ValueArray = NULL;
- ValueType = 0;
- CurrentOption = NULL;
- ShowDownArrow = FALSE;
- ShowUpArrow = FALSE;
+ ValueArray = NULL;
+ ValueType = 0;
+ CurrentOption = NULL;
+ ShowDownArrow = FALSE;
+ ShowUpArrow = FALSE;
ZeroMem (&HiiValue, sizeof (EFI_HII_VALUE));
Question = MenuOption->ThisTag;
if (Question->OpCode->OpCode == EFI_IFR_ORDERED_LIST_OP) {
- Link = GetFirstNode (&Question->OptionListHead);
+ Link = GetFirstNode (&Question->OptionListHead);
OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- ValueArray = Question->CurrentValue.Buffer;
- ValueType = OneOfOption->OptionOpCode->Type;
+ ValueArray = Question->CurrentValue.Buffer;
+ ValueType = OneOfOption->OptionOpCode->Type;
OrderedList = TRUE;
- OrderList = (EFI_IFR_ORDERED_LIST *) Question->OpCode;
+ OrderList = (EFI_IFR_ORDERED_LIST *)Question->OpCode;
} else {
OrderedList = FALSE;
- OrderList = NULL;
+ OrderList = NULL;
}
//
@@ -1316,7 +1339,7 @@ GetSelectionInputPopUp (
//
PopUpMenuLines = 0;
if (OrderedList) {
- AdjustOptionOrder(Question, &PopUpMenuLines);
+ AdjustOptionOrder (Question, &PopUpMenuLines);
} else {
Link = GetFirstNode (&Question->OptionListHead);
while (!IsNull (&Question->OptionListHead, Link)) {
@@ -1329,9 +1352,9 @@ GetSelectionInputPopUp (
//
// Get the number of one of options present and its size
//
- PopUpWidth = 0;
+ PopUpWidth = 0;
HighlightOptionIndex = 0;
- Link = GetFirstNode (&Question->OptionListHead);
+ Link = GetFirstNode (&Question->OptionListHead);
for (Index = 0; Index < PopUpMenuLines; Index++) {
OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
@@ -1339,6 +1362,7 @@ GetSelectionInputPopUp (
if (StrLen (StringPtr) > PopUpWidth) {
PopUpWidth = StrLen (StringPtr);
}
+
FreePool (StringPtr);
HiiValue.Type = OneOfOption->OptionOpCode->Type;
SetValuesByType (&HiiValue.Value, &OneOfOption->OptionOpCode->Value, HiiValue.Type);
@@ -1371,8 +1395,8 @@ GetSelectionInputPopUp (
MenuLinesInView = Bottom - Top - 1;
if (MenuLinesInView >= PopUpMenuLines) {
- Top = Top + (MenuLinesInView - PopUpMenuLines) / 2;
- Bottom = Top + PopUpMenuLines + 1;
+ Top = Top + (MenuLinesInView - PopUpMenuLines) / 2;
+ Bottom = Top + PopUpMenuLines + 1;
} else {
ShowDownArrow = TRUE;
}
@@ -1426,7 +1450,7 @@ GetSelectionInputPopUp (
Index2 = Top + 1;
for (Index = TopOptionIndex; (Index < PopUpMenuLines) && (Index2 < Bottom); Index++) {
OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
ASSERT (StringPtr != NULL);
@@ -1436,7 +1460,7 @@ GetSelectionInputPopUp (
//
if (StrLen (StringPtr) > (PopUpWidth - 1)) {
TempStringPtr = AllocateZeroPool (sizeof (CHAR16) * (PopUpWidth - 1));
- ASSERT ( TempStringPtr != NULL );
+ ASSERT (TempStringPtr != NULL);
CopyMem (TempStringPtr, StringPtr, (sizeof (CHAR16) * (PopUpWidth - 5)));
FreePool (StringPtr);
StringPtr = TempStringPtr;
@@ -1444,18 +1468,18 @@ GetSelectionInputPopUp (
}
if (Index == HighlightOptionIndex) {
- //
- // Highlight the selected one
- //
- CurrentOption = OneOfOption;
+ //
+ // Highlight the selected one
+ //
+ CurrentOption = OneOfOption;
- gST->ConOut->SetAttribute (gST->ConOut, GetPickListColor ());
- PrintStringAt (Start + 2, Index2, StringPtr);
- gST->ConOut->SetAttribute (gST->ConOut, GetPopupColor ());
- } else {
- gST->ConOut->SetAttribute (gST->ConOut, GetPopupColor ());
- PrintStringAt (Start + 2, Index2, StringPtr);
- }
+ gST->ConOut->SetAttribute (gST->ConOut, GetPickListColor ());
+ PrintStringAt (Start + 2, Index2, StringPtr);
+ gST->ConOut->SetAttribute (gST->ConOut, GetPopupColor ());
+ } else {
+ gST->ConOut->SetAttribute (gST->ConOut, GetPopupColor ());
+ PrintStringAt (Start + 2, Index2, StringPtr);
+ }
Index2++;
FreePool (StringPtr);
@@ -1481,8 +1505,8 @@ GetSelectionInputPopUp (
//
Key.UnicodeChar = CHAR_NULL;
if ((gDirection == SCAN_UP) || (gDirection == SCAN_DOWN)) {
- Key.ScanCode = gDirection;
- gDirection = 0;
+ Key.ScanCode = gDirection;
+ gDirection = 0;
goto TheKey;
}
@@ -1490,62 +1514,8 @@ GetSelectionInputPopUp (
TheKey:
switch (Key.UnicodeChar) {
- case '+':
- if (OrderedList) {
- if ((TopOptionIndex > 0) && (TopOptionIndex == HighlightOptionIndex)) {
- //
- // Highlight reaches the top of the popup window, scroll one menu item.
- //
- TopOptionIndex--;
- ShowDownArrow = TRUE;
- }
-
- if (TopOptionIndex == 0) {
- ShowUpArrow = FALSE;
- }
-
- if (HighlightOptionIndex > 0) {
- HighlightOptionIndex--;
-
- ASSERT (CurrentOption != NULL);
- SwapListEntries (CurrentOption->Link.BackLink, &CurrentOption->Link);
- }
- }
- break;
-
- case '-':
- //
- // If an ordered list op-code, we will allow for a popup of +/- keys
- // to create an ordered list of items
- //
- if (OrderedList) {
- if (((TopOptionIndex + MenuLinesInView) < PopUpMenuLines) &&
- (HighlightOptionIndex == (TopOptionIndex + MenuLinesInView - 1))) {
- //
- // Highlight reaches the bottom of the popup window, scroll one menu item.
- //
- TopOptionIndex++;
- ShowUpArrow = TRUE;
- }
-
- if ((TopOptionIndex + MenuLinesInView) == PopUpMenuLines) {
- ShowDownArrow = FALSE;
- }
-
- if (HighlightOptionIndex < (PopUpMenuLines - 1)) {
- HighlightOptionIndex++;
-
- ASSERT (CurrentOption != NULL);
- SwapListEntries (&CurrentOption->Link, CurrentOption->Link.ForwardLink);
- }
- }
- break;
-
- case CHAR_NULL:
- switch (Key.ScanCode) {
- case SCAN_UP:
- case SCAN_DOWN:
- if (Key.ScanCode == SCAN_UP) {
+ case '+':
+ if (OrderedList) {
if ((TopOptionIndex > 0) && (TopOptionIndex == HighlightOptionIndex)) {
//
// Highlight reaches the top of the popup window, scroll one menu item.
@@ -1560,10 +1530,23 @@ TheKey:
if (HighlightOptionIndex > 0) {
HighlightOptionIndex--;
+
+ ASSERT (CurrentOption != NULL);
+ SwapListEntries (CurrentOption->Link.BackLink, &CurrentOption->Link);
}
- } else {
+ }
+
+ break;
+
+ case '-':
+ //
+ // If an ordered list op-code, we will allow for a popup of +/- keys
+ // to create an ordered list of items
+ //
+ if (OrderedList) {
if (((TopOptionIndex + MenuLinesInView) < PopUpMenuLines) &&
- (HighlightOptionIndex == (TopOptionIndex + MenuLinesInView - 1))) {
+ (HighlightOptionIndex == (TopOptionIndex + MenuLinesInView - 1)))
+ {
//
// Highlight reaches the bottom of the popup window, scroll one menu item.
//
@@ -1577,88 +1560,133 @@ TheKey:
if (HighlightOptionIndex < (PopUpMenuLines - 1)) {
HighlightOptionIndex++;
+
+ ASSERT (CurrentOption != NULL);
+ SwapListEntries (&CurrentOption->Link, CurrentOption->Link.ForwardLink);
}
}
+
break;
- case SCAN_ESC:
- gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);
+ case CHAR_NULL:
+ switch (Key.ScanCode) {
+ case SCAN_UP:
+ case SCAN_DOWN:
+ if (Key.ScanCode == SCAN_UP) {
+ if ((TopOptionIndex > 0) && (TopOptionIndex == HighlightOptionIndex)) {
+ //
+ // Highlight reaches the top of the popup window, scroll one menu item.
+ //
+ TopOptionIndex--;
+ ShowDownArrow = TRUE;
+ }
- //
- // Restore link list order for orderedlist
- //
- if (OrderedList) {
- HiiValue.Type = ValueType;
- HiiValue.Value.u64 = 0;
- for (Index = 0; Index < OrderList->MaxContainers; Index++) {
- HiiValue.Value.u64 = GetArrayData (ValueArray, ValueType, Index);
- if (HiiValue.Value.u64 == 0) {
- break;
+ if (TopOptionIndex == 0) {
+ ShowUpArrow = FALSE;
+ }
+
+ if (HighlightOptionIndex > 0) {
+ HighlightOptionIndex--;
+ }
+ } else {
+ if (((TopOptionIndex + MenuLinesInView) < PopUpMenuLines) &&
+ (HighlightOptionIndex == (TopOptionIndex + MenuLinesInView - 1)))
+ {
+ //
+ // Highlight reaches the bottom of the popup window, scroll one menu item.
+ //
+ TopOptionIndex++;
+ ShowUpArrow = TRUE;
+ }
+
+ if ((TopOptionIndex + MenuLinesInView) == PopUpMenuLines) {
+ ShowDownArrow = FALSE;
+ }
+
+ if (HighlightOptionIndex < (PopUpMenuLines - 1)) {
+ HighlightOptionIndex++;
+ }
}
- OneOfOption = ValueToOption (Question, &HiiValue);
- if (OneOfOption == NULL) {
- return EFI_NOT_FOUND;
+ break;
+
+ case SCAN_ESC:
+ gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);
+
+ //
+ // Restore link list order for orderedlist
+ //
+ if (OrderedList) {
+ HiiValue.Type = ValueType;
+ HiiValue.Value.u64 = 0;
+ for (Index = 0; Index < OrderList->MaxContainers; Index++) {
+ HiiValue.Value.u64 = GetArrayData (ValueArray, ValueType, Index);
+ if (HiiValue.Value.u64 == 0) {
+ break;
+ }
+
+ OneOfOption = ValueToOption (Question, &HiiValue);
+ if (OneOfOption == NULL) {
+ return EFI_NOT_FOUND;
+ }
+
+ RemoveEntryList (&OneOfOption->Link);
+ InsertTailList (&Question->OptionListHead, &OneOfOption->Link);
+ }
}
- RemoveEntryList (&OneOfOption->Link);
- InsertTailList (&Question->OptionListHead, &OneOfOption->Link);
- }
- }
+ return EFI_DEVICE_ERROR;
- return EFI_DEVICE_ERROR;
+ default:
+ break;
+ }
- default:
break;
- }
- break;
+ case CHAR_CARRIAGE_RETURN:
+ //
+ // return the current selection
+ //
+ if (OrderedList) {
+ ReturnValue = AllocateZeroPool (Question->CurrentValue.BufferLen);
+ ASSERT (ReturnValue != NULL);
+ Index = 0;
+ Link = GetFirstNode (&Question->OptionListHead);
+ while (!IsNull (&Question->OptionListHead, Link)) {
+ OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
+
+ SetArrayData (ReturnValue, ValueType, Index, OneOfOption->OptionOpCode->Value.u64);
+
+ Index++;
+ if (Index > OrderList->MaxContainers) {
+ break;
+ }
+ }
- case CHAR_CARRIAGE_RETURN:
- //
- // return the current selection
- //
- if (OrderedList) {
- ReturnValue = AllocateZeroPool (Question->CurrentValue.BufferLen);
- ASSERT (ReturnValue != NULL);
- Index = 0;
- Link = GetFirstNode (&Question->OptionListHead);
- while (!IsNull (&Question->OptionListHead, Link)) {
- OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
-
- SetArrayData (ReturnValue, ValueType, Index, OneOfOption->OptionOpCode->Value.u64);
-
- Index++;
- if (Index > OrderList->MaxContainers) {
- break;
+ if (CompareMem (ReturnValue, ValueArray, Question->CurrentValue.BufferLen) == 0) {
+ FreePool (ReturnValue);
+ return EFI_DEVICE_ERROR;
+ } else {
+ gUserInput->InputValue.Buffer = ReturnValue;
+ gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
}
- }
- if (CompareMem (ReturnValue, ValueArray, Question->CurrentValue.BufferLen) == 0) {
- FreePool (ReturnValue);
- return EFI_DEVICE_ERROR;
} else {
- gUserInput->InputValue.Buffer = ReturnValue;
- gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
- }
- } else {
- ASSERT (CurrentOption != NULL);
- gUserInput->InputValue.Type = CurrentOption->OptionOpCode->Type;
- if (IsValuesEqual (&Question->CurrentValue.Value, &CurrentOption->OptionOpCode->Value, gUserInput->InputValue.Type)) {
- return EFI_DEVICE_ERROR;
- } else {
- SetValuesByType (&gUserInput->InputValue.Value, &CurrentOption->OptionOpCode->Value, gUserInput->InputValue.Type);
+ ASSERT (CurrentOption != NULL);
+ gUserInput->InputValue.Type = CurrentOption->OptionOpCode->Type;
+ if (IsValuesEqual (&Question->CurrentValue.Value, &CurrentOption->OptionOpCode->Value, gUserInput->InputValue.Type)) {
+ return EFI_DEVICE_ERROR;
+ } else {
+ SetValuesByType (&gUserInput->InputValue.Value, &CurrentOption->OptionOpCode->Value, gUserInput->InputValue.Type);
+ }
}
- }
- gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);
+ gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);
- return EFI_SUCCESS;
+ return EFI_SUCCESS;
- default:
- break;
+ default:
+ break;
}
} while (TRUE);
-
}
-
diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/Popup.c b/MdeModulePkg/Universal/DisplayEngineDxe/Popup.c
index a597a5d..9954c4e 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/Popup.c
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/Popup.c
@@ -21,15 +21,15 @@ UINTN gMaxRowWidth;
**/
VOID
-FreeSelectableOptions(
- LIST_ENTRY *OptionList
+FreeSelectableOptions (
+ LIST_ENTRY *OptionList
)
{
LIST_ENTRY *Link;
USER_SELECTABLE_OPTION *SelectableOption;
while (!IsListEmpty (OptionList)) {
- Link = GetFirstNode (OptionList);
+ Link = GetFirstNode (OptionList);
SelectableOption = SELECTABLE_OPTION_FROM_LINK (Link);
RemoveEntryList (&SelectableOption->Link);
FreePool (SelectableOption);
@@ -44,14 +44,15 @@ FreeSelectableOptions(
**/
VOID
-DisplayOneSelectableOption(
- IN USER_SELECTABLE_OPTION *SelectableOption,
- IN BOOLEAN Highlight
+DisplayOneSelectableOption (
+ IN USER_SELECTABLE_OPTION *SelectableOption,
+ IN BOOLEAN Highlight
)
{
if (Highlight) {
gST->ConOut->SetAttribute (gST->ConOut, GetHighlightTextColor ());
}
+
PrintStringAt (SelectableOption->OptionCol, SelectableOption->OptionRow, SelectableOption->OptionString);
gST->ConOut->SetAttribute (gST->ConOut, GetPopupColor ());
}
@@ -71,11 +72,11 @@ DisplayOneSelectableOption(
**/
EFI_STATUS
AddOneSelectableOption (
- IN EFI_HII_POPUP_TYPE PopupType,
- IN EFI_HII_POPUP_SELECTION OptionType,
- IN CHAR16 *OptionString,
- IN UINTN OptionCol,
- IN UINTN OptionRow
+ IN EFI_HII_POPUP_TYPE PopupType,
+ IN EFI_HII_POPUP_SELECTION OptionType,
+ IN CHAR16 *OptionString,
+ IN UINTN OptionCol,
+ IN UINTN OptionRow
)
{
USER_SELECTABLE_OPTION *UserSelectableOption;
@@ -84,51 +85,56 @@ AddOneSelectableOption (
if (UserSelectableOption == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Initialize the user selectable option based on the PopupType and OptionType.
// And then add the option to the option list gUserSelectableOptions.
//
- UserSelectableOption->Signature = USER_SELECTABLE_OPTION_SIGNATURE;
+ UserSelectableOption->Signature = USER_SELECTABLE_OPTION_SIGNATURE;
UserSelectableOption->OptionString = OptionString;
- UserSelectableOption->OptionType = OptionType;
- UserSelectableOption->OptionCol = OptionCol;
- UserSelectableOption->OptionRow = OptionRow;
- UserSelectableOption->MinSequence = 0;
+ UserSelectableOption->OptionType = OptionType;
+ UserSelectableOption->OptionCol = OptionCol;
+ UserSelectableOption->OptionRow = OptionRow;
+ UserSelectableOption->MinSequence = 0;
switch (PopupType) {
- case EfiHiiPopupTypeOk:
- UserSelectableOption->MaxSequence = 0;
- UserSelectableOption->Sequence= 0;
- break;
- case EfiHiiPopupTypeOkCancel:
- UserSelectableOption->MaxSequence = 1;
- if (OptionType == EfiHiiPopupSelectionOk) {
- UserSelectableOption->Sequence= 0;
- } else {
- UserSelectableOption->Sequence= 1;
- }
- break;
- case EfiHiiPopupTypeYesNo:
- UserSelectableOption->MaxSequence = 1;
- if (OptionType == EfiHiiPopupSelectionYes) {
- UserSelectableOption->Sequence = 0;
- } else {
- UserSelectableOption->Sequence = 1;
- }
- break;
- case EfiHiiPopupTypeYesNoCancel:
- UserSelectableOption->MaxSequence = 2;
- if (OptionType == EfiHiiPopupSelectionYes) {
- UserSelectableOption->Sequence = 0;
- } else if (OptionType == EfiHiiPopupSelectionNo){
- UserSelectableOption->Sequence = 1;
- } else {
- UserSelectableOption->Sequence = 2;
- }
- break;
- default:
- break;
+ case EfiHiiPopupTypeOk:
+ UserSelectableOption->MaxSequence = 0;
+ UserSelectableOption->Sequence = 0;
+ break;
+ case EfiHiiPopupTypeOkCancel:
+ UserSelectableOption->MaxSequence = 1;
+ if (OptionType == EfiHiiPopupSelectionOk) {
+ UserSelectableOption->Sequence = 0;
+ } else {
+ UserSelectableOption->Sequence = 1;
+ }
+
+ break;
+ case EfiHiiPopupTypeYesNo:
+ UserSelectableOption->MaxSequence = 1;
+ if (OptionType == EfiHiiPopupSelectionYes) {
+ UserSelectableOption->Sequence = 0;
+ } else {
+ UserSelectableOption->Sequence = 1;
+ }
+
+ break;
+ case EfiHiiPopupTypeYesNoCancel:
+ UserSelectableOption->MaxSequence = 2;
+ if (OptionType == EfiHiiPopupSelectionYes) {
+ UserSelectableOption->Sequence = 0;
+ } else if (OptionType == EfiHiiPopupSelectionNo) {
+ UserSelectableOption->Sequence = 1;
+ } else {
+ UserSelectableOption->Sequence = 2;
+ }
+
+ break;
+ default:
+ break;
}
+
InsertTailList (&gUserSelectableOptions, &UserSelectableOption->Link);
return EFI_SUCCESS;
@@ -148,61 +154,62 @@ AddUserSelectableOptions (
IN EFI_HII_POPUP_TYPE PopupType
)
{
- EFI_STATUS Status;
- UINTN EndCol;
- UINTN StartCol;
- UINTN OptionCol;
- UINTN OptionRow;
- UINTN ColDimension;
-
- Status = EFI_SUCCESS;
- EndCol = gPopupDimensions.RightColumn;
- StartCol = gPopupDimensions.LeftColumn;
- OptionRow = gPopupDimensions.BottomRow - POPUP_BORDER;
+ EFI_STATUS Status;
+ UINTN EndCol;
+ UINTN StartCol;
+ UINTN OptionCol;
+ UINTN OptionRow;
+ UINTN ColDimension;
+
+ Status = EFI_SUCCESS;
+ EndCol = gPopupDimensions.RightColumn;
+ StartCol = gPopupDimensions.LeftColumn;
+ OptionRow = gPopupDimensions.BottomRow - POPUP_BORDER;
ColDimension = EndCol - StartCol + 1;
InitializeListHead (&gUserSelectableOptions);
switch (PopupType) {
- case EfiHiiPopupTypeOk:
- //
- // Add [Ok] option to the option list.
- //
- OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_OK_WIDTH) / 2;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionOk, gOkOption, OptionCol, OptionRow);
- break;
- case EfiHiiPopupTypeOkCancel:
- //
- // Add [Ok] and [Cancel] options to the option list.
- //
- OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_OK_CAL_WIDTH) / 3;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionOk, gOkOption, OptionCol, OptionRow);
- OptionCol = EndCol - (ColDimension - USER_SELECTABLE_OPTION_OK_CAL_WIDTH) / 3 - (GetStringWidth (gCancelOption) -2) / 2 + 1;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionCancel, gCancelOption, OptionCol, OptionRow);
- break;
- case EfiHiiPopupTypeYesNo:
- //
- // Add [Yes] and [No] options to the option list.
- //
- OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_YES_NO_WIDTH) / 3;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionYes, gYesOption, OptionCol, OptionRow);
- OptionCol = EndCol - (ColDimension - USER_SELECTABLE_OPTION_YES_NO_WIDTH) / 3 - (GetStringWidth (gNoOption)- 2) / 2 + 1;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionNo, gNoOption, OptionCol, OptionRow);
- break;
- case EfiHiiPopupTypeYesNoCancel:
- //
- // Add [Yes], [No] and [Cancel] options to the option list.
- //
- OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH) / 4;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionYes, gYesOption, OptionCol, OptionRow);
- OptionCol = StartCol + (ColDimension - (GetStringWidth (gNoOption) -2) / 2) / 2;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionNo, gNoOption, OptionCol, OptionRow);
- OptionCol = EndCol - (ColDimension - USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH) / 4 - (GetStringWidth (gCancelOption) - 2) / 2 + 1;
- Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionCancel, gCancelOption, OptionCol, OptionRow);
- break;
- default:
- break;
+ case EfiHiiPopupTypeOk:
+ //
+ // Add [Ok] option to the option list.
+ //
+ OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_OK_WIDTH) / 2;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionOk, gOkOption, OptionCol, OptionRow);
+ break;
+ case EfiHiiPopupTypeOkCancel:
+ //
+ // Add [Ok] and [Cancel] options to the option list.
+ //
+ OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_OK_CAL_WIDTH) / 3;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionOk, gOkOption, OptionCol, OptionRow);
+ OptionCol = EndCol - (ColDimension - USER_SELECTABLE_OPTION_OK_CAL_WIDTH) / 3 - (GetStringWidth (gCancelOption) -2) / 2 + 1;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionCancel, gCancelOption, OptionCol, OptionRow);
+ break;
+ case EfiHiiPopupTypeYesNo:
+ //
+ // Add [Yes] and [No] options to the option list.
+ //
+ OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_YES_NO_WIDTH) / 3;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionYes, gYesOption, OptionCol, OptionRow);
+ OptionCol = EndCol - (ColDimension - USER_SELECTABLE_OPTION_YES_NO_WIDTH) / 3 - (GetStringWidth (gNoOption)- 2) / 2 + 1;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionNo, gNoOption, OptionCol, OptionRow);
+ break;
+ case EfiHiiPopupTypeYesNoCancel:
+ //
+ // Add [Yes], [No] and [Cancel] options to the option list.
+ //
+ OptionCol = StartCol + (ColDimension - USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH) / 4;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionYes, gYesOption, OptionCol, OptionRow);
+ OptionCol = StartCol + (ColDimension - (GetStringWidth (gNoOption) -2) / 2) / 2;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionNo, gNoOption, OptionCol, OptionRow);
+ OptionCol = EndCol - (ColDimension - USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH) / 4 - (GetStringWidth (gCancelOption) - 2) / 2 + 1;
+ Status = AddOneSelectableOption (PopupType, EfiHiiPopupSelectionCancel, gCancelOption, OptionCol, OptionRow);
+ break;
+ default:
+ break;
}
+
return Status;
}
@@ -219,12 +226,12 @@ GetUserSelection (
OUT EFI_HII_POPUP_SELECTION *UserSelection
)
{
- LIST_ENTRY *HighlightPos;
- LIST_ENTRY *Link;
- USER_SELECTABLE_OPTION *SelectableOption;
- USER_SELECTABLE_OPTION *HighlightOption;
- EFI_INPUT_KEY KeyValue;
- EFI_STATUS Status;
+ LIST_ENTRY *HighlightPos;
+ LIST_ENTRY *Link;
+ USER_SELECTABLE_OPTION *SelectableOption;
+ USER_SELECTABLE_OPTION *HighlightOption;
+ EFI_INPUT_KEY KeyValue;
+ EFI_STATUS Status;
//
// Display user selectable options in gUserSelectableOptions and get the option which user selects.
@@ -232,11 +239,12 @@ GetUserSelection (
HighlightPos = gUserSelectableOptions.ForwardLink;
do {
for (Link = gUserSelectableOptions.ForwardLink; Link != &gUserSelectableOptions; Link = Link->ForwardLink) {
- SelectableOption = SELECTABLE_OPTION_FROM_LINK (Link);
+ SelectableOption = SELECTABLE_OPTION_FROM_LINK (Link);
DisplayOneSelectableOption (SelectableOption, (BOOLEAN)(Link == HighlightPos));
}
+
//
- //If UserSelection is NULL, there is no need to handle the key user input, just return.
+ // If UserSelection is NULL, there is no need to handle the key user input, just return.
//
if (UserSelection == NULL) {
return;
@@ -247,49 +255,57 @@ GetUserSelection (
HighlightOption = SELECTABLE_OPTION_FROM_LINK (HighlightPos);
switch (KeyValue.UnicodeChar) {
- case CHAR_NULL:
- switch (KeyValue.ScanCode) {
- case SCAN_RIGHT:
- if (HighlightOption->Sequence < HighlightOption->MaxSequence) {
- HighlightPos = HighlightPos->ForwardLink;
- } else {
- HighlightPos = gUserSelectableOptions.ForwardLink;
- }
- break;
- case SCAN_LEFT:
- if (HighlightOption->Sequence > HighlightOption->MinSequence) {
- HighlightPos = HighlightPos->BackLink;
- } else {
- HighlightPos = gUserSelectableOptions.BackLink;
+ case CHAR_NULL:
+ switch (KeyValue.ScanCode) {
+ case SCAN_RIGHT:
+ if (HighlightOption->Sequence < HighlightOption->MaxSequence) {
+ HighlightPos = HighlightPos->ForwardLink;
+ } else {
+ HighlightPos = gUserSelectableOptions.ForwardLink;
+ }
+
+ break;
+ case SCAN_LEFT:
+ if (HighlightOption->Sequence > HighlightOption->MinSequence) {
+ HighlightPos = HighlightPos->BackLink;
+ } else {
+ HighlightPos = gUserSelectableOptions.BackLink;
+ }
+
+ break;
+ default:
+ break;
}
+
break;
- default:
- break;
- }
- break;
- case CHAR_CARRIAGE_RETURN:
- *UserSelection = HighlightOption->OptionType;
- return;
- default:
- if (((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptYes | UPPER_LOWER_CASE_OFFSET)) &&
- (PopupType == EfiHiiPopupTypeYesNo || PopupType == EfiHiiPopupTypeYesNoCancel)) {
- *UserSelection = EfiHiiPopupSelectionYes;
- return;
- } else if ((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptNo| UPPER_LOWER_CASE_OFFSET) &&
- (PopupType == EfiHiiPopupTypeYesNo || PopupType == EfiHiiPopupTypeYesNoCancel)){
- *UserSelection = EfiHiiPopupSelectionNo;
+ case CHAR_CARRIAGE_RETURN:
+ *UserSelection = HighlightOption->OptionType;
return;
- } else if ((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptOk | UPPER_LOWER_CASE_OFFSET) &&
- (PopupType == EfiHiiPopupTypeOk || PopupType == EfiHiiPopupTypeOkCancel)){
- *UserSelection = EfiHiiPopupSelectionOk;
- return;
- } else if ((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptCancel| UPPER_LOWER_CASE_OFFSET) &&
- (PopupType == EfiHiiPopupTypeOkCancel || PopupType == EfiHiiPopupTypeYesNoCancel)){
- *UserSelection = EfiHiiPopupSelectionCancel;
- return;
- }
- break;
+ default:
+ if (((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptYes | UPPER_LOWER_CASE_OFFSET)) &&
+ ((PopupType == EfiHiiPopupTypeYesNo) || (PopupType == EfiHiiPopupTypeYesNoCancel)))
+ {
+ *UserSelection = EfiHiiPopupSelectionYes;
+ return;
+ } else if (((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptNo| UPPER_LOWER_CASE_OFFSET)) &&
+ ((PopupType == EfiHiiPopupTypeYesNo) || (PopupType == EfiHiiPopupTypeYesNoCancel)))
+ {
+ *UserSelection = EfiHiiPopupSelectionNo;
+ return;
+ } else if (((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptOk | UPPER_LOWER_CASE_OFFSET)) &&
+ ((PopupType == EfiHiiPopupTypeOk) || (PopupType == EfiHiiPopupTypeOkCancel)))
+ {
+ *UserSelection = EfiHiiPopupSelectionOk;
+ return;
+ } else if (((KeyValue.UnicodeChar | UPPER_LOWER_CASE_OFFSET) == (*gConfirmOptCancel| UPPER_LOWER_CASE_OFFSET)) &&
+ ((PopupType == EfiHiiPopupTypeOkCancel) || (PopupType == EfiHiiPopupTypeYesNoCancel)))
+ {
+ *UserSelection = EfiHiiPopupSelectionCancel;
+ return;
+ }
+
+ break;
}
} while (TRUE);
}
@@ -307,34 +323,35 @@ GetUserSelection (
**/
VOID
GetStringOffsetWithWidth (
- IN CHAR16 *String,
- IN UINTN MaxWidth,
- OUT UINTN *Offset
+ IN CHAR16 *String,
+ IN UINTN MaxWidth,
+ OUT UINTN *Offset
)
{
- UINTN StringWidth;
- UINTN CharWidth;
- UINTN StrOffset;
+ UINTN StringWidth;
+ UINTN CharWidth;
+ UINTN StrOffset;
StringWidth = 0;
CharWidth = 1;
for (StrOffset = 0; String[StrOffset] != CHAR_NULL; StrOffset++) {
switch (String[StrOffset]) {
- case NARROW_CHAR:
- CharWidth = 1;
- break;
- case WIDE_CHAR:
- CharWidth = 2;
- break;
- default:
- StringWidth += CharWidth;
- if (StringWidth >= MaxWidth) {
- *Offset = StrOffset;
- return;
- }
+ case NARROW_CHAR:
+ CharWidth = 1;
+ break;
+ case WIDE_CHAR:
+ CharWidth = 2;
+ break;
+ default:
+ StringWidth += CharWidth;
+ if (StringWidth >= MaxWidth) {
+ *Offset = StrOffset;
+ return;
+ }
}
}
+
*Offset = StrOffset;
}
@@ -355,43 +372,46 @@ GetStringOffsetWithWidth (
**/
UINTN
ParseMessageString (
- IN CHAR16 *InputString,
- OUT CHAR16 **OutputString,
- OUT UINTN *OutputStrWidth,
- IN OUT UINTN *Index
+ IN CHAR16 *InputString,
+ OUT CHAR16 **OutputString,
+ OUT UINTN *OutputStrWidth,
+ IN OUT UINTN *Index
)
{
- UINTN StrOffset;
+ UINTN StrOffset;
- if (InputString == NULL || Index == NULL || OutputString == NULL) {
+ if ((InputString == NULL) || (Index == NULL) || (OutputString == NULL)) {
return 0;
}
*OutputStrWidth = 0;
//
- //Check the string to see if there are line break characters in the string
+ // Check the string to see if there are line break characters in the string
//
for (StrOffset = 0;
- InputString[*Index + StrOffset] != CHAR_CARRIAGE_RETURN && InputString[*Index + StrOffset] != CHAR_LINEFEED && InputString[*Index + StrOffset] != CHAR_NULL;
- StrOffset++
- );
+ InputString[*Index + StrOffset] != CHAR_CARRIAGE_RETURN && InputString[*Index + StrOffset] != CHAR_LINEFEED && InputString[*Index + StrOffset] != CHAR_NULL;
+ StrOffset++
+ )
+ {
+ }
//
// The CHAR_NULL has process last time, this time just return 0 to stand for finishing parsing the InputString.
//
- if (StrOffset == 0 && (InputString[*Index + StrOffset] == CHAR_NULL)) {
+ if ((StrOffset == 0) && (InputString[*Index + StrOffset] == CHAR_NULL)) {
return 0;
}
//
// Copy the string to OutputString buffer and calculate the width of OutputString.
//
- *OutputString = AllocateZeroPool ((StrOffset + 1) * sizeof(CHAR16));
+ *OutputString = AllocateZeroPool ((StrOffset + 1) * sizeof (CHAR16));
if (*OutputString == NULL) {
return 0;
}
- CopyMem ((*OutputString), &InputString[*Index], StrOffset * sizeof(CHAR16));
+
+ CopyMem ((*OutputString), &InputString[*Index], StrOffset * sizeof (CHAR16));
*OutputStrWidth = (GetStringWidth (*OutputString) -2) / 2;
//
@@ -435,12 +455,12 @@ CalculatePopupPosition (
OUT EFI_SCREEN_DESCRIPTOR *ScreenForPopup
)
{
- CHAR16 *OutputString;
- UINTN StringIndex;
- UINTN OutputStrWidth;
- UINTN OptionRowWidth;
- UINTN Columns;
- UINTN Rows;
+ CHAR16 *OutputString;
+ UINTN StringIndex;
+ UINTN OutputStrWidth;
+ UINTN OptionRowWidth;
+ UINTN Columns;
+ UINTN Rows;
OptionRowWidth = 0;
@@ -448,10 +468,11 @@ CalculatePopupPosition (
// Calculate the row number which is needed to show the message string and the max width of the string in one row.
//
for (StringIndex = 0; ParseMessageString (gMessageString, &OutputString, &OutputStrWidth, &StringIndex) != 0;) {
- gMesStrLineNum ++;
+ gMesStrLineNum++;
if (gMaxRowWidth < OutputStrWidth) {
gMaxRowWidth = OutputStrWidth;
}
+
FreePool (OutputString);
}
@@ -467,6 +488,7 @@ CalculatePopupPosition (
} else if (PopupType == EfiHiiPopupTypeYesNoCancel) {
OptionRowWidth = USER_SELECTABLE_OPTION_SKIP_WIDTH *4 + USER_SELECTABLE_OPTION_YES_NO_CAL_WIDTH;
}
+
if (OptionRowWidth > gMaxRowWidth) {
gMaxRowWidth = OptionRowWidth;
}
@@ -480,16 +502,16 @@ CalculatePopupPosition (
// Select the smaller one between actual dimension of message string and the avialble dimension for message string.
//
gST->ConOut->QueryMode (gST->ConOut, gST->ConOut->Mode->Mode, &Columns, &Rows);
- gMaxRowWidth = MIN (gMaxRowWidth, Columns - 2 * POPUP_BORDER);
+ gMaxRowWidth = MIN (gMaxRowWidth, Columns - 2 * POPUP_BORDER);
gMesStrLineNum = MIN (gMesStrLineNum, Rows -1 - POPUP_FOOTER_HEIGHT - POPUP_HEADER_HEIGHT);
//
// Calculate the start column, end column, top row and bottom row for the popup.
//
- ScreenForPopup->LeftColumn = (Columns -2 * POPUP_BORDER - gMaxRowWidth) / 2;
+ ScreenForPopup->LeftColumn = (Columns -2 * POPUP_BORDER - gMaxRowWidth) / 2;
ScreenForPopup->RightColumn = ScreenForPopup->LeftColumn + gMaxRowWidth + 2 * POPUP_BORDER - 1;
- ScreenForPopup->TopRow = (Rows - 1 - POPUP_FOOTER_HEIGHT - POPUP_HEADER_HEIGHT - gMesStrLineNum) / 2;
- ScreenForPopup->BottomRow = ScreenForPopup->TopRow + gMesStrLineNum + POPUP_FOOTER_HEIGHT + POPUP_HEADER_HEIGHT - 1;
+ ScreenForPopup->TopRow = (Rows - 1 - POPUP_FOOTER_HEIGHT - POPUP_HEADER_HEIGHT - gMesStrLineNum) / 2;
+ ScreenForPopup->BottomRow = ScreenForPopup->TopRow + gMesStrLineNum + POPUP_FOOTER_HEIGHT + POPUP_HEADER_HEIGHT - 1;
}
/**
@@ -507,29 +529,29 @@ CalculatePopupPosition (
**/
EFI_STATUS
DrawMessageBox (
- IN EFI_HII_POPUP_STYLE PopupStyle
+ IN EFI_HII_POPUP_STYLE PopupStyle
)
{
- UINTN Index;
- UINTN Length;
- UINTN EndCol;
- UINTN TopRow;
- UINTN StartCol;
- UINTN BottomRow;
- CHAR16 Character;
- UINTN DisplayRow;
- UINTN StringIndex;
- CHAR16 *TempString;
- CHAR16 *OutputString;
- UINTN ColDimension;
- UINTN OutputStrWidth;
- UINTN DrawMesStrRowNum;
-
- EndCol = gPopupDimensions.RightColumn;
- TopRow = gPopupDimensions.TopRow;
- StartCol = gPopupDimensions.LeftColumn;
- BottomRow = gPopupDimensions.BottomRow;
- ColDimension = EndCol - StartCol + 1;
+ UINTN Index;
+ UINTN Length;
+ UINTN EndCol;
+ UINTN TopRow;
+ UINTN StartCol;
+ UINTN BottomRow;
+ CHAR16 Character;
+ UINTN DisplayRow;
+ UINTN StringIndex;
+ CHAR16 *TempString;
+ CHAR16 *OutputString;
+ UINTN ColDimension;
+ UINTN OutputStrWidth;
+ UINTN DrawMesStrRowNum;
+
+ EndCol = gPopupDimensions.RightColumn;
+ TopRow = gPopupDimensions.TopRow;
+ StartCol = gPopupDimensions.LeftColumn;
+ BottomRow = gPopupDimensions.BottomRow;
+ ColDimension = EndCol - StartCol + 1;
DrawMesStrRowNum = 0;
//
@@ -541,15 +563,16 @@ DrawMessageBox (
for (Index = StartCol; Index + 1 < EndCol; Index++) {
PrintCharAt ((UINTN)-1, (UINTN)-1, Character);
}
+
Character = BOXDRAW_DOWN_LEFT;
PrintCharAt ((UINTN)-1, (UINTN)-1, Character);
//
// 2. Draw the prompt string for different popup styles.
//
- Character = BOXDRAW_VERTICAL;
+ Character = BOXDRAW_VERTICAL;
DisplayRow = TopRow + POPUP_BORDER;
- ClearLines (StartCol, EndCol, DisplayRow, DisplayRow, GetPopupColor ());
+ ClearLines (StartCol, EndCol, DisplayRow, DisplayRow, GetPopupColor ());
PrintCharAt (StartCol, DisplayRow, Character);
PrintCharAt (EndCol, DisplayRow, Character);
if (PopupStyle == EfiHiiPopupStyleError) {
@@ -564,11 +587,12 @@ DrawMessageBox (
// 3. Draw the horizontal line below the prompt string for different popup styles.
//
DisplayRow = TopRow + POPUP_BORDER + POPUP_STYLE_STRING_HEIGHT;
- ClearLines (StartCol, EndCol, DisplayRow, DisplayRow, GetPopupColor ());
+ ClearLines (StartCol, EndCol, DisplayRow, DisplayRow, GetPopupColor ());
Character = BOXDRAW_HORIZONTAL;
for (Index = StartCol + 1; Index < EndCol; Index++) {
PrintCharAt (Index, DisplayRow, Character);
}
+
Character = BOXDRAW_VERTICAL;
PrintCharAt (StartCol, DisplayRow, Character);
PrintCharAt (EndCol, DisplayRow, Character);
@@ -577,13 +601,13 @@ DrawMessageBox (
// 4. Draw the mesage string.
//
DisplayRow = TopRow + POPUP_HEADER_HEIGHT;
- for (Index = DisplayRow ,StringIndex = 0; ParseMessageString (gMessageString, &OutputString, &OutputStrWidth, &StringIndex) != 0 && DrawMesStrRowNum < gMesStrLineNum;) {
- ClearLines (StartCol, EndCol, Index, Index, GetPopupColor ());
+ for (Index = DisplayRow, StringIndex = 0; ParseMessageString (gMessageString, &OutputString, &OutputStrWidth, &StringIndex) != 0 && DrawMesStrRowNum < gMesStrLineNum;) {
+ ClearLines (StartCol, EndCol, Index, Index, GetPopupColor ());
PrintCharAt (StartCol, Index, Character);
PrintCharAt (EndCol, Index, Character);
if (OutputStrWidth > gMaxRowWidth) {
//
- //OutputStrWidth > MaxMesStrWidth, cut off the string and print print ... instead.
+ // OutputStrWidth > MaxMesStrWidth, cut off the string and print print ... instead.
//
GetStringOffsetWithWidth (OutputString, gMaxRowWidth, &Length);
TempString = AllocateZeroPool ((Length + 1) * sizeof (CHAR16));
@@ -591,6 +615,7 @@ DrawMessageBox (
FreePool (OutputString);
return EFI_OUT_OF_RESOURCES;
}
+
StrnCpyS (TempString, Length + 1, OutputString, Length - 3);
StrCatS (TempString, Length + 1, L"...");
PrintStringAt ((ColDimension - gMaxRowWidth) / 2 + StartCol, Index, TempString);
@@ -598,30 +623,31 @@ DrawMessageBox (
} else {
PrintStringAt ((ColDimension - OutputStrWidth) / 2 + StartCol, Index, OutputString);
}
- Index ++;
- DrawMesStrRowNum ++;
+
+ Index++;
+ DrawMesStrRowNum++;
FreePool (OutputString);
}
//
// 5. Draw an empty line after message string.
//
- ClearLines (StartCol, EndCol, Index, Index, GetPopupColor ());
+ ClearLines (StartCol, EndCol, Index, Index, GetPopupColor ());
PrintCharAt (StartCol, Index, Character);
PrintCharAt (EndCol, Index, Character);
//
// Check whether the actual string row number beyond the MesStrRowNum, if yes, print the ...... in the row.
//
- if (OutputStrWidth > 0 && DrawMesStrRowNum >= gMesStrLineNum) {
+ if ((OutputStrWidth > 0) && (DrawMesStrRowNum >= gMesStrLineNum)) {
PrintStringAt ((ColDimension - StrLen (L"......")) / 2 + StartCol, Index, L"......");
}
//
// 6. Draw an empty line which is used to show user selectable options, will draw concrete option strings in function GetUserSelection().
//
- Character = BOXDRAW_VERTICAL;
+ Character = BOXDRAW_VERTICAL;
DisplayRow = BottomRow - POPUP_BORDER;
- ClearLines (StartCol, EndCol, DisplayRow, DisplayRow, GetPopupColor ());
+ ClearLines (StartCol, EndCol, DisplayRow, DisplayRow, GetPopupColor ());
PrintCharAt (StartCol, DisplayRow, Character);
PrintCharAt (EndCol, DisplayRow, Character);
@@ -632,10 +658,11 @@ DrawMessageBox (
PrintCharAt (StartCol, BottomRow, Character);
Character = BOXDRAW_HORIZONTAL;
for (Index = StartCol; Index + 1 < EndCol; Index++) {
- PrintCharAt ((UINTN)-1, (UINTN) -1, Character);
+ PrintCharAt ((UINTN)-1, (UINTN)-1, Character);
}
+
Character = BOXDRAW_UP_LEFT;
- PrintCharAt ((UINTN)-1, (UINTN) -1, Character);
+ PrintCharAt ((UINTN)-1, (UINTN)-1, Character);
return EFI_SUCCESS;
}
@@ -659,12 +686,12 @@ DrawMessageBox (
EFI_STATUS
EFIAPI
CreatePopup (
- IN EFI_HII_POPUP_PROTOCOL *This,
- IN EFI_HII_POPUP_STYLE PopupStyle,
- IN EFI_HII_POPUP_TYPE PopupType,
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_STRING_ID Message,
- OUT EFI_HII_POPUP_SELECTION *UserSelection OPTIONAL
+ IN EFI_HII_POPUP_PROTOCOL *This,
+ IN EFI_HII_POPUP_STYLE PopupStyle,
+ IN EFI_HII_POPUP_TYPE PopupType,
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_STRING_ID Message,
+ OUT EFI_HII_POPUP_SELECTION *UserSelection OPTIONAL
)
{
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
@@ -675,17 +702,17 @@ CreatePopup (
return EFI_INVALID_PARAMETER;
}
- if((HiiHandle == NULL) || (Message == 0)) {
+ if ((HiiHandle == NULL) || (Message == 0)) {
return EFI_INVALID_PARAMETER;
}
gMessageString = HiiGetString (HiiHandle, Message, NULL);
- if(gMessageString == NULL) {
+ if (gMessageString == NULL) {
return EFI_INVALID_PARAMETER;
}
- ConOut = gST->ConOut;
- gMaxRowWidth = 0;
+ ConOut = gST->ConOut;
+ gMaxRowWidth = 0;
gMesStrLineNum = 0;
CopyMem (&SavedConsoleMode, ConOut->Mode, sizeof (SavedConsoleMode));
@@ -721,4 +748,3 @@ Done:
return Status;
}
-
diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c b/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c
index c02e36a..dca3c1d 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c
@@ -22,15 +22,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
NewStrCat (
- IN OUT CHAR16 *Destination,
- IN UINTN DestMax,
- IN CHAR16 *Source
+ IN OUT CHAR16 *Destination,
+ IN UINTN DestMax,
+ IN CHAR16 *Source
)
{
- UINTN Length;
+ UINTN Length;
- for (Length = 0; Destination[Length] != 0; Length++)
- ;
+ for (Length = 0; Destination[Length] != 0; Length++) {
+ }
//
// We now have the length of the original string
@@ -54,7 +54,7 @@ NewStrCat (
**/
UINT64
HiiValueToUINT64 (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
UINT64 RetVal;
@@ -62,33 +62,33 @@ HiiValueToUINT64 (
RetVal = 0;
switch (Value->Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- RetVal = Value->Value.u8;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ RetVal = Value->Value.u8;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- RetVal = Value->Value.u16;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ RetVal = Value->Value.u16;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- RetVal = Value->Value.u32;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ RetVal = Value->Value.u32;
+ break;
- case EFI_IFR_TYPE_BOOLEAN:
- RetVal = Value->Value.b;
- break;
+ case EFI_IFR_TYPE_BOOLEAN:
+ RetVal = Value->Value.b;
+ break;
- case EFI_IFR_TYPE_DATE:
- RetVal = *(UINT64*) &Value->Value.date;
- break;
+ case EFI_IFR_TYPE_DATE:
+ RetVal = *(UINT64 *)&Value->Value.date;
+ break;
- case EFI_IFR_TYPE_TIME:
- RetVal = (*(UINT64*) &Value->Value.time) & 0xffffff;
- break;
+ case EFI_IFR_TYPE_TIME:
+ RetVal = (*(UINT64 *)&Value->Value.time) & 0xffffff;
+ break;
- default:
- RetVal = Value->Value.u64;
- break;
+ default:
+ RetVal = Value->Value.u64;
+ break;
}
return RetVal;
@@ -108,18 +108,18 @@ HiiValueToUINT64 (
**/
BOOLEAN
IsTypeInBuffer (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_BUFFER:
- case EFI_IFR_TYPE_DATE:
- case EFI_IFR_TYPE_TIME:
- case EFI_IFR_TYPE_REF:
- return TRUE;
-
- default:
- return FALSE;
+ case EFI_IFR_TYPE_BUFFER:
+ case EFI_IFR_TYPE_DATE:
+ case EFI_IFR_TYPE_TIME:
+ case EFI_IFR_TYPE_REF:
+ return TRUE;
+
+ default:
+ return FALSE;
}
}
@@ -134,19 +134,19 @@ IsTypeInBuffer (
**/
BOOLEAN
IsTypeInUINT64 (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- case EFI_IFR_TYPE_NUM_SIZE_16:
- case EFI_IFR_TYPE_NUM_SIZE_32:
- case EFI_IFR_TYPE_NUM_SIZE_64:
- case EFI_IFR_TYPE_BOOLEAN:
- return TRUE;
-
- default:
- return FALSE;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ case EFI_IFR_TYPE_BOOLEAN:
+ return TRUE;
+
+ default:
+ return FALSE;
}
}
@@ -163,35 +163,35 @@ IsTypeInUINT64 (
**/
VOID
GetBufAndLenForValue (
- IN EFI_HII_VALUE *Value,
- OUT UINT8 **Buf,
- OUT UINT16 *BufLen
+ IN EFI_HII_VALUE *Value,
+ OUT UINT8 **Buf,
+ OUT UINT16 *BufLen
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_BUFFER:
- *Buf = Value->Buffer;
- *BufLen = Value->BufferLen;
- break;
-
- case EFI_IFR_TYPE_DATE:
- *Buf = (UINT8 *) (&Value->Value.date);
- *BufLen = (UINT16) sizeof (EFI_HII_DATE);
- break;
-
- case EFI_IFR_TYPE_TIME:
- *Buf = (UINT8 *) (&Value->Value.time);
- *BufLen = (UINT16) sizeof (EFI_HII_TIME);
- break;
-
- case EFI_IFR_TYPE_REF:
- *Buf = (UINT8 *) (&Value->Value.ref);
- *BufLen = (UINT16) sizeof (EFI_HII_REF);
- break;
-
- default:
- *Buf = NULL;
- *BufLen = 0;
+ case EFI_IFR_TYPE_BUFFER:
+ *Buf = Value->Buffer;
+ *BufLen = Value->BufferLen;
+ break;
+
+ case EFI_IFR_TYPE_DATE:
+ *Buf = (UINT8 *)(&Value->Value.date);
+ *BufLen = (UINT16)sizeof (EFI_HII_DATE);
+ break;
+
+ case EFI_IFR_TYPE_TIME:
+ *Buf = (UINT8 *)(&Value->Value.time);
+ *BufLen = (UINT16)sizeof (EFI_HII_TIME);
+ break;
+
+ case EFI_IFR_TYPE_REF:
+ *Buf = (UINT8 *)(&Value->Value.ref);
+ *BufLen = (UINT16)sizeof (EFI_HII_REF);
+ break;
+
+ default:
+ *Buf = NULL;
+ *BufLen = 0;
}
}
@@ -227,8 +227,8 @@ CompareHiiValue (
UINT8 *Buf2;
UINT16 Buf2Len;
- if (Value1->Type == EFI_IFR_TYPE_STRING && Value2->Type == EFI_IFR_TYPE_STRING) {
- if (Value1->Value.string == 0 || Value2->Value.string == 0) {
+ if ((Value1->Type == EFI_IFR_TYPE_STRING) && (Value2->Type == EFI_IFR_TYPE_STRING)) {
+ if ((Value1->Value.string == 0) || (Value2->Value.string == 0)) {
//
// StringId 0 is reserved
//
@@ -265,11 +265,11 @@ CompareHiiValue (
//
// Take types(date, time, ref, buffer) as buffer
//
- if (IsTypeInBuffer(Value1) && IsTypeInBuffer(Value2)) {
- GetBufAndLenForValue(Value1, &Buf1, &Buf1Len);
- GetBufAndLenForValue(Value2, &Buf2, &Buf2Len);
+ if (IsTypeInBuffer (Value1) && IsTypeInBuffer (Value2)) {
+ GetBufAndLenForValue (Value1, &Buf1, &Buf1Len);
+ GetBufAndLenForValue (Value2, &Buf2, &Buf2Len);
- Len = Buf1Len > Buf2Len ? Buf2Len : Buf1Len;
+ Len = Buf1Len > Buf2Len ? Buf2Len : Buf1Len;
*Result = CompareMem (Buf1, Buf2, Len);
if ((*Result == 0) && (Buf1Len != Buf2Len)) {
//
@@ -278,14 +278,15 @@ CompareHiiValue (
//
*Result = Buf1Len > Buf2Len ? 1 : -1;
}
+
return EFI_SUCCESS;
}
//
// Take remain types(integer, boolean, date/time) as integer
//
- if (IsTypeInUINT64(Value1) && IsTypeInUINT64(Value2)) {
- Temp64 = HiiValueToUINT64(Value1) - HiiValueToUINT64(Value2);
+ if (IsTypeInUINT64 (Value1) && IsTypeInUINT64 (Value2)) {
+ Temp64 = HiiValueToUINT64 (Value1) - HiiValueToUINT64 (Value2);
if (Temp64 > 0) {
*Result = 1;
} else if (Temp64 < 0) {
@@ -293,6 +294,7 @@ CompareHiiValue (
} else {
*Result = 0;
}
+
return EFI_SUCCESS;
}
@@ -311,8 +313,8 @@ CompareHiiValue (
**/
DISPLAY_QUESTION_OPTION *
ValueToOption (
- IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
- IN EFI_HII_VALUE *OptionValue
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
+ IN EFI_HII_VALUE *OptionValue
)
{
LIST_ENTRY *Link;
@@ -338,7 +340,6 @@ ValueToOption (
return NULL;
}
-
/**
Return data element in an Array by its Index.
@@ -351,41 +352,40 @@ ValueToOption (
**/
UINT64
GetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index
)
{
- UINT64 Data;
+ UINT64 Data;
ASSERT (Array != NULL);
Data = 0;
switch (Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- Data = (UINT64) *(((UINT8 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ Data = (UINT64)*(((UINT8 *)Array) + Index);
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- Data = (UINT64) *(((UINT16 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ Data = (UINT64)*(((UINT16 *)Array) + Index);
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- Data = (UINT64) *(((UINT32 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ Data = (UINT64)*(((UINT32 *)Array) + Index);
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- Data = (UINT64) *(((UINT64 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ Data = (UINT64)*(((UINT64 *)Array) + Index);
+ break;
- default:
- break;
+ default:
+ break;
}
return Data;
}
-
/**
Set value of a data element in an Array by its Index.
@@ -397,34 +397,33 @@ GetArrayData (
**/
VOID
SetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index,
- IN UINT64 Value
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index,
+ IN UINT64 Value
)
{
-
ASSERT (Array != NULL);
switch (Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- *(((UINT8 *) Array) + Index) = (UINT8) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ *(((UINT8 *)Array) + Index) = (UINT8)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- *(((UINT16 *) Array) + Index) = (UINT16) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ *(((UINT16 *)Array) + Index) = (UINT16)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- *(((UINT32 *) Array) + Index) = (UINT32) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ *(((UINT32 *)Array) + Index) = (UINT32)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- *(((UINT64 *) Array) + Index) = (UINT64) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ *(((UINT64 *)Array) + Index) = (UINT64)Value;
+ break;
- default:
- break;
+ default:
+ break;
}
}
@@ -442,15 +441,15 @@ SetArrayData (
**/
BOOLEAN
FindArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINT64 Value,
- OUT UINTN *Index OPTIONAL
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINT64 Value,
+ OUT UINTN *Index OPTIONAL
)
{
- UINTN Count;
- UINT64 TmpValue;
- UINT64 ValueComp;
+ UINTN Count;
+ UINT64 TmpValue;
+ UINT64 ValueComp;
ASSERT (Array != NULL);
@@ -458,25 +457,25 @@ FindArrayData (
TmpValue = 0;
switch (Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- ValueComp = (UINT8) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ ValueComp = (UINT8)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- ValueComp = (UINT16) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ ValueComp = (UINT16)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- ValueComp = (UINT32) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ ValueComp = (UINT32)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- ValueComp = (UINT64) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ ValueComp = (UINT64)Value;
+ break;
- default:
- ValueComp = 0;
- break;
+ default:
+ ValueComp = 0;
+ break;
}
while ((TmpValue = GetArrayData (Array, Type, Count)) != 0) {
@@ -484,10 +483,11 @@ FindArrayData (
if (Index != NULL) {
*Index = Count;
}
+
return TRUE;
}
- Count ++;
+ Count++;
}
return FALSE;
@@ -506,62 +506,63 @@ FindArrayData (
**/
EFI_STATUS
PrintFormattedNumber (
- IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
- IN OUT CHAR16 *FormattedNumber,
- IN UINTN BufferSize
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Question,
+ IN OUT CHAR16 *FormattedNumber,
+ IN UINTN BufferSize
)
{
- INT64 Value;
- CHAR16 *Format;
- EFI_HII_VALUE *QuestionValue;
- EFI_IFR_NUMERIC *NumericOp;
+ INT64 Value;
+ CHAR16 *Format;
+ EFI_HII_VALUE *QuestionValue;
+ EFI_IFR_NUMERIC *NumericOp;
if (BufferSize < (21 * sizeof (CHAR16))) {
return EFI_BUFFER_TOO_SMALL;
}
QuestionValue = &Question->CurrentValue;
- NumericOp = (EFI_IFR_NUMERIC *) Question->OpCode;
+ NumericOp = (EFI_IFR_NUMERIC *)Question->OpCode;
- Value = (INT64) QuestionValue->Value.u64;
+ Value = (INT64)QuestionValue->Value.u64;
switch (NumericOp->Flags & EFI_IFR_DISPLAY) {
- case EFI_IFR_DISPLAY_INT_DEC:
- switch (QuestionValue->Type) {
- case EFI_IFR_NUMERIC_SIZE_1:
- Value = (INT64) ((INT8) QuestionValue->Value.u8);
- break;
+ case EFI_IFR_DISPLAY_INT_DEC:
+ switch (QuestionValue->Type) {
+ case EFI_IFR_NUMERIC_SIZE_1:
+ Value = (INT64)((INT8)QuestionValue->Value.u8);
+ break;
- case EFI_IFR_NUMERIC_SIZE_2:
- Value = (INT64) ((INT16) QuestionValue->Value.u16);
- break;
+ case EFI_IFR_NUMERIC_SIZE_2:
+ Value = (INT64)((INT16)QuestionValue->Value.u16);
+ break;
- case EFI_IFR_NUMERIC_SIZE_4:
- Value = (INT64) ((INT32) QuestionValue->Value.u32);
- break;
+ case EFI_IFR_NUMERIC_SIZE_4:
+ Value = (INT64)((INT32)QuestionValue->Value.u32);
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_8:
+ default:
+ break;
+ }
+
+ if (Value < 0) {
+ Value = -Value;
+ Format = L"-%ld";
+ } else {
+ Format = L"%ld";
+ }
- case EFI_IFR_NUMERIC_SIZE_8:
- default:
break;
- }
- if (Value < 0) {
- Value = -Value;
- Format = L"-%ld";
- } else {
+ case EFI_IFR_DISPLAY_UINT_DEC:
Format = L"%ld";
- }
- break;
-
- case EFI_IFR_DISPLAY_UINT_DEC:
- Format = L"%ld";
- break;
+ break;
- case EFI_IFR_DISPLAY_UINT_HEX:
- Format = L"%lx";
- break;
+ case EFI_IFR_DISPLAY_UINT_HEX:
+ Format = L"%lx";
+ break;
- default:
- return EFI_UNSUPPORTED;
+ default:
+ return EFI_UNSUPPORTED;
}
UnicodeSPrint (FormattedNumber, BufferSize, Format, Value);
@@ -569,7 +570,6 @@ PrintFormattedNumber (
return EFI_SUCCESS;
}
-
/**
Draw a pop up windows based on the dimension, number of lines and
strings specified.
@@ -581,9 +581,9 @@ PrintFormattedNumber (
**/
VOID
CreateSharedPopUp (
- IN UINTN RequestedWidth,
- IN UINTN NumberOfLines,
- IN VA_LIST Marker
+ IN UINTN RequestedWidth,
+ IN UINTN NumberOfLines,
+ IN VA_LIST Marker
)
{
UINTN Index;
@@ -597,8 +597,8 @@ CreateSharedPopUp (
UINTN DimensionsWidth;
UINTN DimensionsHeight;
- DimensionsWidth = gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn;
- DimensionsHeight = gStatementDimensions.BottomRow - gStatementDimensions.TopRow;
+ DimensionsWidth = gStatementDimensions.RightColumn - gStatementDimensions.LeftColumn;
+ DimensionsHeight = gStatementDimensions.BottomRow - gStatementDimensions.TopRow;
gST->ConOut->SetAttribute (gST->ConOut, GetPopupColor ());
@@ -610,11 +610,11 @@ CreateSharedPopUp (
// Subtract the PopUp width from total Columns, allow for one space extra on
// each end plus a border.
//
- Start = (DimensionsWidth - RequestedWidth - 2) / 2 + gStatementDimensions.LeftColumn + 1;
- End = Start + RequestedWidth + 1;
+ Start = (DimensionsWidth - RequestedWidth - 2) / 2 + gStatementDimensions.LeftColumn + 1;
+ End = Start + RequestedWidth + 1;
- Top = ((DimensionsHeight - NumberOfLines - 2) / 2) + gStatementDimensions.TopRow - 1;
- Bottom = Top + NumberOfLines + 2;
+ Top = ((DimensionsHeight - NumberOfLines - 2) / 2) + gStatementDimensions.TopRow - 1;
+ Bottom = Top + NumberOfLines + 2;
Character = BOXDRAW_DOWN_RIGHT;
PrintCharAt (Start, Top, Character);
@@ -629,7 +629,7 @@ CreateSharedPopUp (
Count = 0;
for (Index = Top; Index + 2 < Bottom; Index++, Count++) {
- String = VA_ARG (Marker, CHAR16*);
+ String = VA_ARG (Marker, CHAR16 *);
//
// This will clear the background of the line - we never know who might have been
@@ -687,12 +687,12 @@ CreateSharedPopUp (
VOID
EFIAPI
CreateMultiStringPopUp (
- IN UINTN RequestedWidth,
- IN UINTN NumberOfLines,
+ IN UINTN RequestedWidth,
+ IN UINTN NumberOfLines,
...
)
{
- VA_LIST Marker;
+ VA_LIST Marker;
VA_START (Marker, NumberOfLines);
@@ -711,8 +711,8 @@ CreateMultiStringPopUp (
VOID
EFIAPI
EmptyEventProcess (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
}
@@ -727,14 +727,14 @@ EmptyEventProcess (
VOID
EFIAPI
RefreshTimeOutProcess (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- WARNING_IF_CONTEXT *EventInfo;
- CHAR16 TimeOutString[MAX_TIME_OUT_LEN];
+ WARNING_IF_CONTEXT *EventInfo;
+ CHAR16 TimeOutString[MAX_TIME_OUT_LEN];
- EventInfo = (WARNING_IF_CONTEXT *) Context;
+ EventInfo = (WARNING_IF_CONTEXT *)Context;
if (*(EventInfo->TimeOut) == 0) {
gBS->CloseEvent (Event);
@@ -743,7 +743,7 @@ RefreshTimeOutProcess (
return;
}
- UnicodeSPrint(TimeOutString, MAX_TIME_OUT_LEN, L"%d", *(EventInfo->TimeOut));
+ UnicodeSPrint (TimeOutString, MAX_TIME_OUT_LEN, L"%d", *(EventInfo->TimeOut));
CreateDialog (NULL, gEmptyString, EventInfo->ErrorInfo, gPressEnter, gEmptyString, TimeOutString, NULL);
@@ -780,19 +780,19 @@ PasswordInvalid (
**/
EFI_STATUS
PasswordProcess (
- IN UI_MENU_OPTION *MenuOption
+ IN UI_MENU_OPTION *MenuOption
)
{
- CHAR16 *StringPtr;
- CHAR16 *TempString;
- UINTN Maximum;
- EFI_STATUS Status;
- EFI_IFR_PASSWORD *PasswordInfo;
- FORM_DISPLAY_ENGINE_STATEMENT *Question;
- EFI_INPUT_KEY Key;
+ CHAR16 *StringPtr;
+ CHAR16 *TempString;
+ UINTN Maximum;
+ EFI_STATUS Status;
+ EFI_IFR_PASSWORD *PasswordInfo;
+ FORM_DISPLAY_ENGINE_STATEMENT *Question;
+ EFI_INPUT_KEY Key;
Question = MenuOption->ThisTag;
- PasswordInfo = (EFI_IFR_PASSWORD *) Question->OpCode;
+ PasswordInfo = (EFI_IFR_PASSWORD *)Question->OpCode;
Maximum = PasswordInfo->MaxSize;
Status = EFI_SUCCESS;
@@ -803,8 +803,8 @@ PasswordProcess (
// Use a NULL password to test whether old password is required
//
*StringPtr = 0;
- Status = Question->PasswordCheck (gFormData, Question, StringPtr);
- if (Status == EFI_NOT_AVAILABLE_YET || Status == EFI_UNSUPPORTED) {
+ Status = Question->PasswordCheck (gFormData, Question, StringPtr);
+ if ((Status == EFI_NOT_AVAILABLE_YET) || (Status == EFI_UNSUPPORTED)) {
//
// Password can't be set now.
//
@@ -813,6 +813,7 @@ PasswordProcess (
CreateDialog (&Key, gEmptyString, gPasswordUnsupported, gPressEnter, gEmptyString, NULL);
} while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
}
+
FreePool (StringPtr);
return EFI_SUCCESS;
}
@@ -841,6 +842,7 @@ PasswordProcess (
} else {
Status = EFI_SUCCESS;
}
+
ZeroMem (StringPtr, (Maximum + 1) * sizeof (CHAR16));
FreePool (StringPtr);
return Status;
@@ -884,10 +886,10 @@ PasswordProcess (
// Compare two typed-in new passwords
//
if (StrCmp (StringPtr, TempString) == 0) {
- gUserInput->InputValue.Buffer = AllocateCopyPool (Question->CurrentValue.BufferLen, StringPtr);
- gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
- gUserInput->InputValue.Type = Question->CurrentValue.Type;
- gUserInput->InputValue.Value.string = HiiSetString(gFormData->HiiHandle, gUserInput->InputValue.Value.string, StringPtr, NULL);
+ gUserInput->InputValue.Buffer = AllocateCopyPool (Question->CurrentValue.BufferLen, StringPtr);
+ gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
+ gUserInput->InputValue.Type = Question->CurrentValue.Type;
+ gUserInput->InputValue.Value.string = HiiSetString (gFormData->HiiHandle, gUserInput->InputValue.Value.string, StringPtr, NULL);
Status = EFI_SUCCESS;
} else {
@@ -905,6 +907,7 @@ PasswordProcess (
Status = EFI_INVALID_PARAMETER;
}
+
ZeroMem (TempString, (Maximum + 1) * sizeof (CHAR16));
ZeroMem (StringPtr, (Maximum + 1) * sizeof (CHAR16));
FreePool (TempString);
@@ -921,69 +924,69 @@ PasswordProcess (
**/
VOID
PrintMismatchMenuInfo (
- IN UI_MENU_OPTION *MenuOption
-)
+ IN UI_MENU_OPTION *MenuOption
+ )
{
- CHAR16 *FormTitleStr;
- CHAR16 *FormSetTitleStr;
- CHAR16 *OneOfOptionStr;
- CHAR16 *QuestionName;
- LIST_ENTRY *Link;
- FORM_DISPLAY_ENGINE_STATEMENT *Question;
- EFI_IFR_ORDERED_LIST *OrderList;
- UINT8 Index;
- EFI_HII_VALUE HiiValue;
- EFI_HII_VALUE *QuestionValue;
- DISPLAY_QUESTION_OPTION *Option;
- UINT8 *ValueArray;
- UINT8 ValueType;
- EFI_IFR_FORM_SET *FormsetBuffer;
- UINTN FormsetBufferSize;
+ CHAR16 *FormTitleStr;
+ CHAR16 *FormSetTitleStr;
+ CHAR16 *OneOfOptionStr;
+ CHAR16 *QuestionName;
+ LIST_ENTRY *Link;
+ FORM_DISPLAY_ENGINE_STATEMENT *Question;
+ EFI_IFR_ORDERED_LIST *OrderList;
+ UINT8 Index;
+ EFI_HII_VALUE HiiValue;
+ EFI_HII_VALUE *QuestionValue;
+ DISPLAY_QUESTION_OPTION *Option;
+ UINT8 *ValueArray;
+ UINT8 ValueType;
+ EFI_IFR_FORM_SET *FormsetBuffer;
+ UINTN FormsetBufferSize;
Question = MenuOption->ThisTag;
HiiGetFormSetFromHiiHandle (gFormData->HiiHandle, &FormsetBuffer, &FormsetBufferSize);
FormSetTitleStr = GetToken (FormsetBuffer->FormSetTitle, gFormData->HiiHandle);
- FormTitleStr = GetToken (gFormData->FormTitle, gFormData->HiiHandle);
+ FormTitleStr = GetToken (gFormData->FormTitle, gFormData->HiiHandle);
DEBUG ((DEBUG_ERROR, "\n[%a]: Mismatch Formset : Formset Guid = %g, FormSet title = %s\n", gEfiCallerBaseName, &gFormData->FormSetGuid, FormSetTitleStr));
DEBUG ((DEBUG_ERROR, "[%a]: Mismatch Form : FormId = %d, Form title = %s.\n", gEfiCallerBaseName, gFormData->FormId, FormTitleStr));
if (Question->OpCode->OpCode == EFI_IFR_ORDERED_LIST_OP) {
- QuestionName = GetToken (((EFI_IFR_ORDERED_LIST*)MenuOption->ThisTag->OpCode)->Question.Header.Prompt, gFormData->HiiHandle);
- Link = GetFirstNode (&Question->OptionListHead);
- Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- ValueType = Option->OptionOpCode->Type;
+ QuestionName = GetToken (((EFI_IFR_ORDERED_LIST *)MenuOption->ThisTag->OpCode)->Question.Header.Prompt, gFormData->HiiHandle);
+ Link = GetFirstNode (&Question->OptionListHead);
+ Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ ValueType = Option->OptionOpCode->Type;
DEBUG ((DEBUG_ERROR, "[%a]: Mismatch Error : OrderedList value in the array doesn't match with option value.\n", gEfiCallerBaseName));
DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OrderedList: Name = %s.\n", gEfiCallerBaseName, QuestionName));
DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OrderedList: OrderedList array value :\n", gEfiCallerBaseName));
- OrderList = (EFI_IFR_ORDERED_LIST *) Question->OpCode;
+ OrderList = (EFI_IFR_ORDERED_LIST *)Question->OpCode;
for (Index = 0; Index < OrderList->MaxContainers; Index++) {
- ValueArray = Question->CurrentValue.Buffer;
+ ValueArray = Question->CurrentValue.Buffer;
HiiValue.Value.u64 = GetArrayData (ValueArray, ValueType, Index);
DEBUG ((DEBUG_ERROR, " Value[%d] =%ld.\n", Index, HiiValue.Value.u64));
}
} else if (Question->OpCode->OpCode == EFI_IFR_ONE_OF_OP) {
- QuestionName = GetToken (((EFI_IFR_ONE_OF*)MenuOption->ThisTag->OpCode)->Question.Header.Prompt, gFormData->HiiHandle);
+ QuestionName = GetToken (((EFI_IFR_ONE_OF *)MenuOption->ThisTag->OpCode)->Question.Header.Prompt, gFormData->HiiHandle);
QuestionValue = &Question->CurrentValue;
DEBUG ((DEBUG_ERROR, "[%a]: Mismatch Error : OneOf value doesn't match with option value.\n", gEfiCallerBaseName));
DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : Name = %s.\n", gEfiCallerBaseName, QuestionName));
switch (QuestionValue->Type) {
case EFI_IFR_TYPE_NUM_SIZE_64:
- DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %ld.\n",gEfiCallerBaseName, QuestionValue->Value.u64));
+ DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %ld.\n", gEfiCallerBaseName, QuestionValue->Value.u64));
break;
case EFI_IFR_TYPE_NUM_SIZE_32:
- DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %d.\n",gEfiCallerBaseName, QuestionValue->Value.u32));
+ DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %d.\n", gEfiCallerBaseName, QuestionValue->Value.u32));
break;
case EFI_IFR_TYPE_NUM_SIZE_16:
- DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %d.\n",gEfiCallerBaseName, QuestionValue->Value.u16));
+ DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %d.\n", gEfiCallerBaseName, QuestionValue->Value.u16));
break;
case EFI_IFR_TYPE_NUM_SIZE_8:
- DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %d.\n",gEfiCallerBaseName, QuestionValue->Value.u8));
+ DEBUG ((DEBUG_ERROR, "[%a]: Mismatch OneOf : OneOf value = %d.\n", gEfiCallerBaseName, QuestionValue->Value.u8));
break;
default:
@@ -993,31 +996,32 @@ PrintMismatchMenuInfo (
}
Index = 0;
- Link = GetFirstNode (&Question->OptionListHead);
+ Link = GetFirstNode (&Question->OptionListHead);
while (!IsNull (&Question->OptionListHead, Link)) {
- Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
OneOfOptionStr = GetToken (Option->OptionOpCode->Option, gFormData->HiiHandle);
switch (Option->OptionOpCode->Type) {
case EFI_IFR_TYPE_NUM_SIZE_64:
- DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %ld, Option Name = %s.\n",gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u64, OneOfOptionStr));
+ DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %ld, Option Name = %s.\n", gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u64, OneOfOptionStr));
break;
case EFI_IFR_TYPE_NUM_SIZE_32:
- DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %d, Option Name = %s.\n",gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u32, OneOfOptionStr));
+ DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %d, Option Name = %s.\n", gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u32, OneOfOptionStr));
break;
case EFI_IFR_TYPE_NUM_SIZE_16:
- DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %d, Option Name = %s.\n",gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u16, OneOfOptionStr));
+ DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %d, Option Name = %s.\n", gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u16, OneOfOptionStr));
break;
case EFI_IFR_TYPE_NUM_SIZE_8:
- DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %d, Option Name = %s.\n",gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u8, OneOfOptionStr));
+ DEBUG ((DEBUG_ERROR, "[%a]: Option %d : Option Value = %d, Option Name = %s.\n", gEfiCallerBaseName, Index, Option->OptionOpCode->Value.u8, OneOfOptionStr));
break;
default:
ASSERT (FALSE);
break;
}
+
Link = GetNextNode (&Question->OptionListHead, Link);
Index++;
}
@@ -1037,34 +1041,34 @@ PrintMismatchMenuInfo (
**/
EFI_STATUS
ProcessOptions (
- IN UI_MENU_OPTION *MenuOption,
- IN BOOLEAN Selected,
- OUT CHAR16 **OptionString,
- IN BOOLEAN SkipErrorValue
+ IN UI_MENU_OPTION *MenuOption,
+ IN BOOLEAN Selected,
+ OUT CHAR16 **OptionString,
+ IN BOOLEAN SkipErrorValue
)
{
- EFI_STATUS Status;
- CHAR16 *StringPtr;
- UINTN Index;
- FORM_DISPLAY_ENGINE_STATEMENT *Question;
- CHAR16 FormattedNumber[21];
- UINT16 Number;
- CHAR16 Character[2];
- EFI_INPUT_KEY Key;
- UINTN BufferSize;
- DISPLAY_QUESTION_OPTION *OneOfOption;
- LIST_ENTRY *Link;
- EFI_HII_VALUE HiiValue;
- EFI_HII_VALUE *QuestionValue;
- DISPLAY_QUESTION_OPTION *Option;
- UINTN Index2;
- UINT8 *ValueArray;
- UINT8 ValueType;
- EFI_IFR_ORDERED_LIST *OrderList;
- BOOLEAN ValueInvalid;
- UINTN MaxLen;
-
- Status = EFI_SUCCESS;
+ EFI_STATUS Status;
+ CHAR16 *StringPtr;
+ UINTN Index;
+ FORM_DISPLAY_ENGINE_STATEMENT *Question;
+ CHAR16 FormattedNumber[21];
+ UINT16 Number;
+ CHAR16 Character[2];
+ EFI_INPUT_KEY Key;
+ UINTN BufferSize;
+ DISPLAY_QUESTION_OPTION *OneOfOption;
+ LIST_ENTRY *Link;
+ EFI_HII_VALUE HiiValue;
+ EFI_HII_VALUE *QuestionValue;
+ DISPLAY_QUESTION_OPTION *Option;
+ UINTN Index2;
+ UINT8 *ValueArray;
+ UINT8 ValueType;
+ EFI_IFR_ORDERED_LIST *OrderList;
+ BOOLEAN ValueInvalid;
+ UINTN MaxLen;
+
+ Status = EFI_SUCCESS;
StringPtr = NULL;
Character[1] = L'\0';
@@ -1074,54 +1078,132 @@ ProcessOptions (
ZeroMem (FormattedNumber, 21 * sizeof (CHAR16));
BufferSize = (gOptionBlockWidth + 1) * 2 * gStatementDimensions.BottomRow;
- Question = MenuOption->ThisTag;
+ Question = MenuOption->ThisTag;
QuestionValue = &Question->CurrentValue;
switch (Question->OpCode->OpCode) {
- case EFI_IFR_ORDERED_LIST_OP:
+ case EFI_IFR_ORDERED_LIST_OP:
- //
- // Check whether there are Options of this OrderedList
- //
- if (IsListEmpty (&Question->OptionListHead)) {
- break;
- }
+ //
+ // Check whether there are Options of this OrderedList
+ //
+ if (IsListEmpty (&Question->OptionListHead)) {
+ break;
+ }
- OrderList = (EFI_IFR_ORDERED_LIST *) Question->OpCode;
+ OrderList = (EFI_IFR_ORDERED_LIST *)Question->OpCode;
- Link = GetFirstNode (&Question->OptionListHead);
- OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ Link = GetFirstNode (&Question->OptionListHead);
+ OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- ValueType = OneOfOption->OptionOpCode->Type;
- ValueArray = Question->CurrentValue.Buffer;
+ ValueType = OneOfOption->OptionOpCode->Type;
+ ValueArray = Question->CurrentValue.Buffer;
- if (Selected) {
- //
- // Go ask for input
- //
- Status = GetSelectionInputPopUp (MenuOption);
- } else {
- //
- // We now know how many strings we will have, so we can allocate the
- // space required for the array or strings.
- //
- MaxLen = OrderList->MaxContainers * BufferSize / sizeof (CHAR16);
- *OptionString = AllocateZeroPool (MaxLen * sizeof (CHAR16));
- ASSERT (*OptionString);
-
- HiiValue.Type = ValueType;
- HiiValue.Value.u64 = 0;
- for (Index = 0; Index < OrderList->MaxContainers; Index++) {
- HiiValue.Value.u64 = GetArrayData (ValueArray, ValueType, Index);
- if (HiiValue.Value.u64 == 0) {
- //
- // Values for the options in ordered lists should never be a 0
- //
+ if (Selected) {
+ //
+ // Go ask for input
+ //
+ Status = GetSelectionInputPopUp (MenuOption);
+ } else {
+ //
+ // We now know how many strings we will have, so we can allocate the
+ // space required for the array or strings.
+ //
+ MaxLen = OrderList->MaxContainers * BufferSize / sizeof (CHAR16);
+ *OptionString = AllocateZeroPool (MaxLen * sizeof (CHAR16));
+ ASSERT (*OptionString);
+
+ HiiValue.Type = ValueType;
+ HiiValue.Value.u64 = 0;
+ for (Index = 0; Index < OrderList->MaxContainers; Index++) {
+ HiiValue.Value.u64 = GetArrayData (ValueArray, ValueType, Index);
+ if (HiiValue.Value.u64 == 0) {
+ //
+ // Values for the options in ordered lists should never be a 0
+ //
+ break;
+ }
+
+ OneOfOption = ValueToOption (Question, &HiiValue);
+ if (OneOfOption == NULL) {
+ //
+ // Print debug msg for the mistach menu.
+ //
+ PrintMismatchMenuInfo (MenuOption);
+
+ if (SkipErrorValue) {
+ //
+ // Just try to get the option string, skip the value which not has option.
+ //
+ continue;
+ }
+
+ //
+ // Show error message
+ //
+ do {
+ CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnter, gEmptyString, NULL);
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+
+ //
+ // The initial value of the orderedlist is invalid, force to be valid value
+ // Exit current DisplayForm with new value.
+ //
+ gUserInput->SelectedStatement = Question;
+ gMisMatch = TRUE;
+ ValueArray = AllocateZeroPool (Question->CurrentValue.BufferLen);
+ ASSERT (ValueArray != NULL);
+ gUserInput->InputValue.Buffer = ValueArray;
+ gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
+ gUserInput->InputValue.Type = Question->CurrentValue.Type;
+
+ Link = GetFirstNode (&Question->OptionListHead);
+ Index2 = 0;
+ while (!IsNull (&Question->OptionListHead, Link) && Index2 < OrderList->MaxContainers) {
+ Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
+ SetArrayData (ValueArray, ValueType, Index2, Option->OptionOpCode->Value.u64);
+ Index2++;
+ }
+
+ SetArrayData (ValueArray, ValueType, Index2, 0);
+
+ FreePool (*OptionString);
+ *OptionString = NULL;
+ return EFI_NOT_FOUND;
+ }
+
+ Character[0] = LEFT_ONEOF_DELIMITER;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
+ ASSERT (StringPtr != NULL);
+ NewStrCat (OptionString[0], MaxLen, StringPtr);
+ Character[0] = RIGHT_ONEOF_DELIMITER;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ Character[0] = CHAR_CARRIAGE_RETURN;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ FreePool (StringPtr);
+ }
+
+ //
+ // If valid option more than the max container, skip these options.
+ //
+ if (Index >= OrderList->MaxContainers) {
break;
}
- OneOfOption = ValueToOption (Question, &HiiValue);
- if (OneOfOption == NULL) {
+ //
+ // Search the other options, try to find the one not in the container.
+ //
+ Link = GetFirstNode (&Question->OptionListHead);
+ while (!IsNull (&Question->OptionListHead, Link)) {
+ OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
+
+ if (FindArrayData (ValueArray, ValueType, OneOfOption->OptionOpCode->Value.u64, NULL)) {
+ continue;
+ }
+
//
// Print debug msg for the mistach menu.
//
@@ -1129,400 +1211,340 @@ ProcessOptions (
if (SkipErrorValue) {
//
- // Just try to get the option string, skip the value which not has option.
+ // Not report error, just get the correct option string info.
//
+ Character[0] = LEFT_ONEOF_DELIMITER;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
+ ASSERT (StringPtr != NULL);
+ NewStrCat (OptionString[0], MaxLen, StringPtr);
+ Character[0] = RIGHT_ONEOF_DELIMITER;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ Character[0] = CHAR_CARRIAGE_RETURN;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ FreePool (StringPtr);
+
continue;
}
- //
- // Show error message
- //
- do {
- CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnter, gEmptyString, NULL);
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+ if (!ValueInvalid) {
+ ValueInvalid = TRUE;
+ //
+ // Show error message
+ //
+ do {
+ CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnter, gEmptyString, NULL);
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
- //
- // The initial value of the orderedlist is invalid, force to be valid value
- // Exit current DisplayForm with new value.
- //
- gUserInput->SelectedStatement = Question;
- gMisMatch = TRUE;
- ValueArray = AllocateZeroPool (Question->CurrentValue.BufferLen);
- ASSERT (ValueArray != NULL);
- gUserInput->InputValue.Buffer = ValueArray;
- gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
- gUserInput->InputValue.Type = Question->CurrentValue.Type;
-
- Link = GetFirstNode (&Question->OptionListHead);
- Index2 = 0;
- while (!IsNull (&Question->OptionListHead, Link) && Index2 < OrderList->MaxContainers) {
- Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
- SetArrayData (ValueArray, ValueType, Index2, Option->OptionOpCode->Value.u64);
- Index2++;
+ //
+ // The initial value of the orderedlist is invalid, force to be valid value
+ // Exit current DisplayForm with new value.
+ //
+ gUserInput->SelectedStatement = Question;
+ gMisMatch = TRUE;
+ ValueArray = AllocateCopyPool (Question->CurrentValue.BufferLen, Question->CurrentValue.Buffer);
+ ASSERT (ValueArray != NULL);
+ gUserInput->InputValue.Buffer = ValueArray;
+ gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
+ gUserInput->InputValue.Type = Question->CurrentValue.Type;
}
- SetArrayData (ValueArray, ValueType, Index2, 0);
+ SetArrayData (ValueArray, ValueType, Index++, OneOfOption->OptionOpCode->Value.u64);
+ }
+
+ if (ValueInvalid) {
FreePool (*OptionString);
*OptionString = NULL;
return EFI_NOT_FOUND;
}
-
- Character[0] = LEFT_ONEOF_DELIMITER;
- NewStrCat (OptionString[0], MaxLen, Character);
- StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
- ASSERT (StringPtr != NULL);
- NewStrCat (OptionString[0], MaxLen, StringPtr);
- Character[0] = RIGHT_ONEOF_DELIMITER;
- NewStrCat (OptionString[0], MaxLen, Character);
- Character[0] = CHAR_CARRIAGE_RETURN;
- NewStrCat (OptionString[0], MaxLen, Character);
- FreePool (StringPtr);
}
+ break;
+
+ case EFI_IFR_ONE_OF_OP:
//
- // If valid option more than the max container, skip these options.
+ // Check whether there are Options of this OneOf
//
- if (Index >= OrderList->MaxContainers) {
+ if (IsListEmpty (&Question->OptionListHead)) {
break;
}
- //
- // Search the other options, try to find the one not in the container.
- //
- Link = GetFirstNode (&Question->OptionListHead);
- while (!IsNull (&Question->OptionListHead, Link)) {
- OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
-
- if (FindArrayData (ValueArray, ValueType, OneOfOption->OptionOpCode->Value.u64, NULL)) {
- continue;
- }
-
+ if (Selected) {
//
- // Print debug msg for the mistach menu.
+ // Go ask for input
//
- PrintMismatchMenuInfo (MenuOption);
+ Status = GetSelectionInputPopUp (MenuOption);
+ } else {
+ MaxLen = BufferSize / sizeof (CHAR16);
+ *OptionString = AllocateZeroPool (BufferSize);
+ ASSERT (*OptionString);
- if (SkipErrorValue) {
+ OneOfOption = ValueToOption (Question, QuestionValue);
+ if (OneOfOption == NULL) {
//
- // Not report error, just get the correct option string info.
+ // Print debug msg for the mistach menu.
//
- Character[0] = LEFT_ONEOF_DELIMITER;
- NewStrCat (OptionString[0], MaxLen, Character);
- StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
- ASSERT (StringPtr != NULL);
- NewStrCat (OptionString[0], MaxLen, StringPtr);
- Character[0] = RIGHT_ONEOF_DELIMITER;
- NewStrCat (OptionString[0], MaxLen, Character);
- Character[0] = CHAR_CARRIAGE_RETURN;
- NewStrCat (OptionString[0], MaxLen, Character);
- FreePool (StringPtr);
+ PrintMismatchMenuInfo (MenuOption);
- continue;
- }
+ if (SkipErrorValue) {
+ //
+ // Not report error, just get the correct option string info.
+ //
+ Link = GetFirstNode (&Question->OptionListHead);
+ OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ } else {
+ //
+ // Show error message
+ //
+ do {
+ CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnter, gEmptyString, NULL);
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
- if (!ValueInvalid) {
- ValueInvalid = TRUE;
- //
- // Show error message
- //
- do {
- CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnter, gEmptyString, NULL);
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+ //
+ // Force the Question value to be valid
+ // Exit current DisplayForm with new value.
+ //
+ Link = GetFirstNode (&Question->OptionListHead);
+ Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- //
- // The initial value of the orderedlist is invalid, force to be valid value
- // Exit current DisplayForm with new value.
- //
- gUserInput->SelectedStatement = Question;
- gMisMatch = TRUE;
- ValueArray = AllocateCopyPool (Question->CurrentValue.BufferLen, Question->CurrentValue.Buffer);
- ASSERT (ValueArray != NULL);
- gUserInput->InputValue.Buffer = ValueArray;
- gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
- gUserInput->InputValue.Type = Question->CurrentValue.Type;
+ gUserInput->InputValue.Type = Option->OptionOpCode->Type;
+ switch (gUserInput->InputValue.Type) {
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ gUserInput->InputValue.Value.u8 = Option->OptionOpCode->Value.u8;
+ break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ CopyMem (&gUserInput->InputValue.Value.u16, &Option->OptionOpCode->Value.u16, sizeof (UINT16));
+ break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ CopyMem (&gUserInput->InputValue.Value.u32, &Option->OptionOpCode->Value.u32, sizeof (UINT32));
+ break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ CopyMem (&gUserInput->InputValue.Value.u64, &Option->OptionOpCode->Value.u64, sizeof (UINT64));
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
+ }
+
+ gUserInput->SelectedStatement = Question;
+ gMisMatch = TRUE;
+ FreePool (*OptionString);
+ *OptionString = NULL;
+ return EFI_NOT_FOUND;
+ }
}
- SetArrayData (ValueArray, ValueType, Index++, OneOfOption->OptionOpCode->Value.u64);
- }
+ Character[0] = LEFT_ONEOF_DELIMITER;
+ NewStrCat (OptionString[0], MaxLen, Character);
+ StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
+ ASSERT (StringPtr != NULL);
+ NewStrCat (OptionString[0], MaxLen, StringPtr);
+ Character[0] = RIGHT_ONEOF_DELIMITER;
+ NewStrCat (OptionString[0], MaxLen, Character);
- if (ValueInvalid) {
- FreePool (*OptionString);
- *OptionString = NULL;
- return EFI_NOT_FOUND;
+ FreePool (StringPtr);
}
- }
- break;
- case EFI_IFR_ONE_OF_OP:
- //
- // Check whether there are Options of this OneOf
- //
- if (IsListEmpty (&Question->OptionListHead)) {
break;
- }
- if (Selected) {
- //
- // Go ask for input
- //
- Status = GetSelectionInputPopUp (MenuOption);
- } else {
- MaxLen = BufferSize / sizeof(CHAR16);
- *OptionString = AllocateZeroPool (BufferSize);
- ASSERT (*OptionString);
- OneOfOption = ValueToOption (Question, QuestionValue);
- if (OneOfOption == NULL) {
+ case EFI_IFR_CHECKBOX_OP:
+ if (Selected) {
//
- // Print debug msg for the mistach menu.
+ // Since this is a BOOLEAN operation, flip it upon selection
//
- PrintMismatchMenuInfo (MenuOption);
+ gUserInput->InputValue.Type = QuestionValue->Type;
+ gUserInput->InputValue.Value.b = (BOOLEAN)(QuestionValue->Value.b ? FALSE : TRUE);
- if (SkipErrorValue) {
- //
- // Not report error, just get the correct option string info.
- //
- Link = GetFirstNode (&Question->OptionListHead);
- OneOfOption = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
- } else {
- //
- // Show error message
- //
- do {
- CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnter, gEmptyString, NULL);
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+ //
+ // Perform inconsistent check
+ //
+ return EFI_SUCCESS;
+ } else {
+ *OptionString = AllocateZeroPool (BufferSize);
+ ASSERT (*OptionString);
- //
- // Force the Question value to be valid
- // Exit current DisplayForm with new value.
- //
- Link = GetFirstNode (&Question->OptionListHead);
- Option = DISPLAY_QUESTION_OPTION_FROM_LINK (Link);
+ *OptionString[0] = LEFT_CHECKBOX_DELIMITER;
- gUserInput->InputValue.Type = Option->OptionOpCode->Type;
- switch (gUserInput->InputValue.Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- gUserInput->InputValue.Value.u8 = Option->OptionOpCode->Value.u8;
- break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- CopyMem (&gUserInput->InputValue.Value.u16, &Option->OptionOpCode->Value.u16, sizeof (UINT16));
- break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- CopyMem (&gUserInput->InputValue.Value.u32, &Option->OptionOpCode->Value.u32, sizeof (UINT32));
- break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- CopyMem (&gUserInput->InputValue.Value.u64, &Option->OptionOpCode->Value.u64, sizeof (UINT64));
- break;
- default:
- ASSERT (FALSE);
- break;
- }
- gUserInput->SelectedStatement = Question;
- gMisMatch = TRUE;
- FreePool (*OptionString);
- *OptionString = NULL;
- return EFI_NOT_FOUND;
+ if (QuestionValue->Value.b) {
+ *(OptionString[0] + 1) = CHECK_ON;
+ } else {
+ *(OptionString[0] + 1) = CHECK_OFF;
}
- }
- Character[0] = LEFT_ONEOF_DELIMITER;
- NewStrCat (OptionString[0], MaxLen, Character);
- StringPtr = GetToken (OneOfOption->OptionOpCode->Option, gFormData->HiiHandle);
- ASSERT (StringPtr != NULL);
- NewStrCat (OptionString[0], MaxLen, StringPtr);
- Character[0] = RIGHT_ONEOF_DELIMITER;
- NewStrCat (OptionString[0], MaxLen, Character);
+ *(OptionString[0] + 2) = RIGHT_CHECKBOX_DELIMITER;
+ }
- FreePool (StringPtr);
- }
- break;
+ break;
- case EFI_IFR_CHECKBOX_OP:
- if (Selected) {
- //
- // Since this is a BOOLEAN operation, flip it upon selection
- //
- gUserInput->InputValue.Type = QuestionValue->Type;
- gUserInput->InputValue.Value.b = (BOOLEAN) (QuestionValue->Value.b ? FALSE : TRUE);
+ case EFI_IFR_NUMERIC_OP:
+ if (Selected) {
+ //
+ // Go ask for input
+ //
+ Status = GetNumericInput (MenuOption);
+ } else {
+ *OptionString = AllocateZeroPool (BufferSize);
+ ASSERT (*OptionString);
- //
- // Perform inconsistent check
- //
- return EFI_SUCCESS;
- } else {
- *OptionString = AllocateZeroPool (BufferSize);
- ASSERT (*OptionString);
+ *OptionString[0] = LEFT_NUMERIC_DELIMITER;
- *OptionString[0] = LEFT_CHECKBOX_DELIMITER;
+ //
+ // Formatted print
+ //
+ PrintFormattedNumber (Question, FormattedNumber, 21 * sizeof (CHAR16));
+ Number = (UINT16)GetStringWidth (FormattedNumber);
+ CopyMem (OptionString[0] + 1, FormattedNumber, Number);
- if (QuestionValue->Value.b) {
- *(OptionString[0] + 1) = CHECK_ON;
- } else {
- *(OptionString[0] + 1) = CHECK_OFF;
+ *(OptionString[0] + Number / 2) = RIGHT_NUMERIC_DELIMITER;
}
- *(OptionString[0] + 2) = RIGHT_CHECKBOX_DELIMITER;
- }
- break;
- case EFI_IFR_NUMERIC_OP:
- if (Selected) {
- //
- // Go ask for input
- //
- Status = GetNumericInput (MenuOption);
- } else {
- *OptionString = AllocateZeroPool (BufferSize);
- ASSERT (*OptionString);
+ break;
- *OptionString[0] = LEFT_NUMERIC_DELIMITER;
+ case EFI_IFR_DATE_OP:
+ if (Selected) {
+ //
+ // This is similar to numerics
+ //
+ Status = GetNumericInput (MenuOption);
+ } else {
+ *OptionString = AllocateZeroPool (BufferSize);
+ ASSERT (*OptionString);
+
+ switch (MenuOption->Sequence) {
+ case 0:
+ *OptionString[0] = LEFT_NUMERIC_DELIMITER;
+ if (QuestionValue->Value.date.Month == 0xff) {
+ UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"??");
+ } else {
+ UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.date.Month);
+ }
+
+ *(OptionString[0] + 3) = DATE_SEPARATOR;
+ break;
- //
- // Formatted print
- //
- PrintFormattedNumber (Question, FormattedNumber, 21 * sizeof (CHAR16));
- Number = (UINT16) GetStringWidth (FormattedNumber);
- CopyMem (OptionString[0] + 1, FormattedNumber, Number);
+ case 1:
+ SetUnicodeMem (OptionString[0], 4, L' ');
+ if (QuestionValue->Value.date.Day == 0xff) {
+ UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"??");
+ } else {
+ UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.date.Day);
+ }
- *(OptionString[0] + Number / 2) = RIGHT_NUMERIC_DELIMITER;
- }
- break;
+ *(OptionString[0] + 6) = DATE_SEPARATOR;
+ break;
- case EFI_IFR_DATE_OP:
- if (Selected) {
- //
- // This is similar to numerics
- //
- Status = GetNumericInput (MenuOption);
- } else {
- *OptionString = AllocateZeroPool (BufferSize);
- ASSERT (*OptionString);
+ case 2:
+ SetUnicodeMem (OptionString[0], 7, L' ');
+ if (QuestionValue->Value.date.Year == 0xff) {
+ UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"????");
+ } else {
+ UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"%04d", QuestionValue->Value.date.Year);
+ }
- switch (MenuOption->Sequence) {
- case 0:
- *OptionString[0] = LEFT_NUMERIC_DELIMITER;
- if (QuestionValue->Value.date.Month == 0xff){
- UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"??");
- } else {
- UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.date.Month);
+ *(OptionString[0] + 11) = RIGHT_NUMERIC_DELIMITER;
+ break;
}
- *(OptionString[0] + 3) = DATE_SEPARATOR;
- break;
+ }
- case 1:
- SetUnicodeMem (OptionString[0], 4, L' ');
- if (QuestionValue->Value.date.Day == 0xff){
- UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"??");
- } else {
- UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.date.Day);
- }
- *(OptionString[0] + 6) = DATE_SEPARATOR;
- break;
+ break;
- case 2:
- SetUnicodeMem (OptionString[0], 7, L' ');
- if (QuestionValue->Value.date.Year == 0xff){
- UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"????");
- } else {
- UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"%04d", QuestionValue->Value.date.Year);
- }
- *(OptionString[0] + 11) = RIGHT_NUMERIC_DELIMITER;
- break;
- }
- }
- break;
+ case EFI_IFR_TIME_OP:
+ if (Selected) {
+ //
+ // This is similar to numerics
+ //
+ Status = GetNumericInput (MenuOption);
+ } else {
+ *OptionString = AllocateZeroPool (BufferSize);
+ ASSERT (*OptionString);
+
+ switch (MenuOption->Sequence) {
+ case 0:
+ *OptionString[0] = LEFT_NUMERIC_DELIMITER;
+ if (QuestionValue->Value.time.Hour == 0xff) {
+ UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"??");
+ } else {
+ UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.time.Hour);
+ }
+
+ *(OptionString[0] + 3) = TIME_SEPARATOR;
+ break;
- case EFI_IFR_TIME_OP:
- if (Selected) {
- //
- // This is similar to numerics
- //
- Status = GetNumericInput (MenuOption);
- } else {
- *OptionString = AllocateZeroPool (BufferSize);
- ASSERT (*OptionString);
+ case 1:
+ SetUnicodeMem (OptionString[0], 4, L' ');
+ if (QuestionValue->Value.time.Minute == 0xff) {
+ UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"??");
+ } else {
+ UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.time.Minute);
+ }
- switch (MenuOption->Sequence) {
- case 0:
- *OptionString[0] = LEFT_NUMERIC_DELIMITER;
- if (QuestionValue->Value.time.Hour == 0xff){
- UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"??");
- } else {
- UnicodeSPrint (OptionString[0] + 1, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.time.Hour);
- }
- *(OptionString[0] + 3) = TIME_SEPARATOR;
- break;
+ *(OptionString[0] + 6) = TIME_SEPARATOR;
+ break;
- case 1:
- SetUnicodeMem (OptionString[0], 4, L' ');
- if (QuestionValue->Value.time.Minute == 0xff){
- UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"??");
- } else {
- UnicodeSPrint (OptionString[0] + 4, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.time.Minute);
- }
- *(OptionString[0] + 6) = TIME_SEPARATOR;
- break;
+ case 2:
+ SetUnicodeMem (OptionString[0], 7, L' ');
+ if (QuestionValue->Value.time.Second == 0xff) {
+ UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"??");
+ } else {
+ UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.time.Second);
+ }
- case 2:
- SetUnicodeMem (OptionString[0], 7, L' ');
- if (QuestionValue->Value.time.Second == 0xff){
- UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"??");
- } else {
- UnicodeSPrint (OptionString[0] + 7, 21 * sizeof (CHAR16), L"%02d", QuestionValue->Value.time.Second);
+ *(OptionString[0] + 9) = RIGHT_NUMERIC_DELIMITER;
+ break;
}
- *(OptionString[0] + 9) = RIGHT_NUMERIC_DELIMITER;
- break;
}
- }
- break;
- case EFI_IFR_STRING_OP:
- if (Selected) {
- StringPtr = AllocateZeroPool (Question->CurrentValue.BufferLen + sizeof (CHAR16));
- ASSERT (StringPtr);
- CopyMem(StringPtr, Question->CurrentValue.Buffer, Question->CurrentValue.BufferLen);
+ break;
- Status = ReadString (MenuOption, gPromptForData, StringPtr);
- if (EFI_ERROR (Status)) {
- FreePool (StringPtr);
- return Status;
- }
+ case EFI_IFR_STRING_OP:
+ if (Selected) {
+ StringPtr = AllocateZeroPool (Question->CurrentValue.BufferLen + sizeof (CHAR16));
+ ASSERT (StringPtr);
+ CopyMem (StringPtr, Question->CurrentValue.Buffer, Question->CurrentValue.BufferLen);
- gUserInput->InputValue.Buffer = AllocateCopyPool (Question->CurrentValue.BufferLen, StringPtr);
- gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
- gUserInput->InputValue.Type = Question->CurrentValue.Type;
- gUserInput->InputValue.Value.string = HiiSetString(gFormData->HiiHandle, gUserInput->InputValue.Value.string, StringPtr, NULL);
- FreePool (StringPtr);
- return EFI_SUCCESS;
- } else {
- *OptionString = AllocateZeroPool (BufferSize);
- ASSERT (*OptionString);
+ Status = ReadString (MenuOption, gPromptForData, StringPtr);
+ if (EFI_ERROR (Status)) {
+ FreePool (StringPtr);
+ return Status;
+ }
- if (((CHAR16 *) Question->CurrentValue.Buffer)[0] == 0x0000) {
- *(OptionString[0]) = '_';
+ gUserInput->InputValue.Buffer = AllocateCopyPool (Question->CurrentValue.BufferLen, StringPtr);
+ gUserInput->InputValue.BufferLen = Question->CurrentValue.BufferLen;
+ gUserInput->InputValue.Type = Question->CurrentValue.Type;
+ gUserInput->InputValue.Value.string = HiiSetString (gFormData->HiiHandle, gUserInput->InputValue.Value.string, StringPtr, NULL);
+ FreePool (StringPtr);
+ return EFI_SUCCESS;
} else {
- if (Question->CurrentValue.BufferLen < BufferSize) {
- BufferSize = Question->CurrentValue.BufferLen;
+ *OptionString = AllocateZeroPool (BufferSize);
+ ASSERT (*OptionString);
+
+ if (((CHAR16 *)Question->CurrentValue.Buffer)[0] == 0x0000) {
+ *(OptionString[0]) = '_';
+ } else {
+ if (Question->CurrentValue.BufferLen < BufferSize) {
+ BufferSize = Question->CurrentValue.BufferLen;
+ }
+
+ CopyMem (OptionString[0], (CHAR16 *)Question->CurrentValue.Buffer, BufferSize);
}
- CopyMem (OptionString[0], (CHAR16 *) Question->CurrentValue.Buffer, BufferSize);
}
- }
- break;
- case EFI_IFR_PASSWORD_OP:
- if (Selected) {
- Status = PasswordProcess (MenuOption);
- }
- break;
+ break;
+
+ case EFI_IFR_PASSWORD_OP:
+ if (Selected) {
+ Status = PasswordProcess (MenuOption);
+ }
+
+ break;
- default:
- break;
+ default:
+ break;
}
return Status;
}
-
/**
Process the help string: Split StringPtr to several lines of strings stored in
FormattedString and the glyph width of each line cannot exceed gHelpBlockWidth.
@@ -1550,17 +1572,17 @@ ProcessHelpString (
UINT16 MaxStringLen;
UINT16 StringLen;
- TotalRowNum = 0;
- CheckedNum = 0;
- GlyphWidth = 1;
- Index = 0;
- MaxStringLen = 0;
- StringLen = 0;
+ TotalRowNum = 0;
+ CheckedNum = 0;
+ GlyphWidth = 1;
+ Index = 0;
+ MaxStringLen = 0;
+ StringLen = 0;
//
// Set default help string width.
//
- LineWidth = (UINT16) (gHelpBlockWidth - 1);
+ LineWidth = (UINT16)(gHelpBlockWidth - 1);
//
// Get row number of the String.
@@ -1570,9 +1592,10 @@ ProcessHelpString (
MaxStringLen = StringLen;
}
- TotalRowNum ++;
+ TotalRowNum++;
FreePool (OutputString);
}
+
*EachLineWidth = MaxStringLen;
*FormattedString = AllocateZeroPool (TotalRowNum * MaxStringLen * sizeof (CHAR16));
@@ -1581,11 +1604,11 @@ ProcessHelpString (
//
// Generate formatted help string array.
//
- GlyphWidth = 1;
- Index = 0;
- while((StringLen = GetLineByWidth (StringPtr, LineWidth, &GlyphWidth, &Index, &OutputString)) != 0) {
+ GlyphWidth = 1;
+ Index = 0;
+ while ((StringLen = GetLineByWidth (StringPtr, LineWidth, &GlyphWidth, &Index, &OutputString)) != 0) {
CopyMem (*FormattedString + CheckedNum * MaxStringLen, OutputString, StringLen * sizeof (CHAR16));
- CheckedNum ++;
+ CheckedNum++;
FreePool (OutputString);
}
diff --git a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c
index 4a40760..4794365 100644
--- a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c
+++ b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c
@@ -13,13 +13,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "DriverHealthManagerDxe.h"
#include "DriverHealthManagerVfr.h"
-EFI_HII_CONFIG_ACCESS_PROTOCOL mDriverHealthManagerConfigAccess = {
+EFI_HII_CONFIG_ACCESS_PROTOCOL mDriverHealthManagerConfigAccess = {
DriverHealthManagerFakeExtractConfig,
DriverHealthManagerFakeRouteConfig,
DriverHealthManagerCallback
};
-EFI_GUID mDriverHealthManagerForm = DRIVER_HEALTH_MANAGER_FORMSET_GUID;
+EFI_GUID mDriverHealthManagerForm = DRIVER_HEALTH_MANAGER_FORMSET_GUID;
FORM_DEVICE_PATH mDriverHealthManagerFormDevicePath = {
{
@@ -27,8 +27,8 @@ FORM_DEVICE_PATH mDriverHealthManagerFormDevicePath = {
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
{
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
EFI_CALLER_ID_GUID
@@ -37,8 +37,8 @@ FORM_DEVICE_PATH mDriverHealthManagerFormDevicePath = {
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
- (UINT8) (END_DEVICE_PATH_LENGTH),
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
+ (UINT8)(END_DEVICE_PATH_LENGTH),
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
};
@@ -48,9 +48,8 @@ EFI_BOOT_MANAGER_DRIVER_HEALTH_INFO *mDriverHealthManagerHealthInfo = NULL;
UINTN mDriverHealthManagerHealthInfoCount = 0;
EFI_HII_DATABASE_PROTOCOL *mDriverHealthManagerDatabase;
-
-extern UINT8 DriverHealthManagerVfrBin[];
-extern UINT8 DriverHealthConfigureVfrBin[];
+extern UINT8 DriverHealthManagerVfrBin[];
+extern UINT8 DriverHealthConfigureVfrBin[];
/**
This function allows a caller to extract the current configuration for one
@@ -77,15 +76,16 @@ extern UINT8 DriverHealthConfigureVfrBin[];
EFI_STATUS
EFIAPI
DriverHealthManagerFakeExtractConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Request,
- OUT EFI_STRING *Progress,
- OUT EFI_STRING *Results
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Request,
+ OUT EFI_STRING *Progress,
+ OUT EFI_STRING *Results
)
{
- if (Progress == NULL || Results == NULL) {
+ if ((Progress == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
*Progress = Request;
return EFI_NOT_FOUND;
}
@@ -109,12 +109,12 @@ DriverHealthManagerFakeExtractConfig (
EFI_STATUS
EFIAPI
DriverHealthManagerFakeRouteConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ OUT EFI_STRING *Progress
)
{
- if (Configuration == NULL || Progress == NULL) {
+ if ((Configuration == NULL) || (Progress == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -139,17 +139,17 @@ DriverHealthManagerFakeRouteConfig (
EFI_STATUS
EFIAPI
InitializeDriverHealthManager (
- EFI_HANDLE ImageHandle,
- EFI_SYSTEM_TABLE *SystemTable
+ EFI_HANDLE ImageHandle,
+ EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
Status = gBS->LocateProtocol (
&gEfiHiiDatabaseProtocolGuid,
NULL,
- (VOID **) &mDriverHealthManagerDatabase
+ (VOID **)&mDriverHealthManagerDatabase
);
ASSERT_EFI_ERROR (Status);
@@ -164,7 +164,6 @@ InitializeDriverHealthManager (
);
ASSERT_EFI_ERROR (Status);
-
//
// Publish Driver Health HII data.
//
@@ -203,16 +202,16 @@ InitializeDriverHealthManager (
**/
CHAR8 *
DriverHealthManagerSelectBestLanguage (
- IN CHAR8 *SupportedLanguages,
- IN BOOLEAN Iso639Language
+ IN CHAR8 *SupportedLanguages,
+ IN BOOLEAN Iso639Language
)
{
- CHAR8 *LanguageVariable;
- CHAR8 *BestLanguage;
+ CHAR8 *LanguageVariable;
+ CHAR8 *BestLanguage;
- GetEfiGlobalVariable2 (Iso639Language ? L"Lang" : L"PlatformLang", (VOID**)&LanguageVariable, NULL);
+ GetEfiGlobalVariable2 (Iso639Language ? L"Lang" : L"PlatformLang", (VOID **)&LanguageVariable, NULL);
- BestLanguage = GetBestLanguage(
+ BestLanguage = GetBestLanguage (
SupportedLanguages,
Iso639Language,
(LanguageVariable != NULL) ? LanguageVariable : "",
@@ -226,8 +225,6 @@ DriverHealthManagerSelectBestLanguage (
return BestLanguage;
}
-
-
/**
This is an internal worker function to get the Component Name (2) protocol interface
@@ -248,25 +245,25 @@ DriverHealthManagerSelectBestLanguage (
**/
EFI_STATUS
DriverHealthManagerGetComponentNameWorker (
- IN EFI_GUID *ProtocolGuid,
- IN EFI_HANDLE DriverBindingHandle,
- OUT EFI_COMPONENT_NAME_PROTOCOL **ComponentName,
- OUT CHAR8 **SupportedLanguage
+ IN EFI_GUID *ProtocolGuid,
+ IN EFI_HANDLE DriverBindingHandle,
+ OUT EFI_COMPONENT_NAME_PROTOCOL **ComponentName,
+ OUT CHAR8 **SupportedLanguage
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate Component Name (2) protocol on the driver binging handle.
//
Status = gBS->OpenProtocol (
- DriverBindingHandle,
- ProtocolGuid,
- (VOID **) ComponentName,
- NULL,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ DriverBindingHandle,
+ ProtocolGuid,
+ (VOID **)ComponentName,
+ NULL,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -276,7 +273,7 @@ DriverHealthManagerGetComponentNameWorker (
//
*SupportedLanguage = DriverHealthManagerSelectBestLanguage (
(*ComponentName)->SupportedLanguages,
- (BOOLEAN) (ProtocolGuid == &gEfiComponentNameProtocolGuid)
+ (BOOLEAN)(ProtocolGuid == &gEfiComponentNameProtocolGuid)
);
if (*SupportedLanguage == NULL) {
Status = EFI_UNSUPPORTED;
@@ -307,9 +304,9 @@ DriverHealthManagerGetDriverNameWorker (
OUT CHAR16 **DriverName
)
{
- EFI_STATUS Status;
- CHAR8 *BestLanguage;
- EFI_COMPONENT_NAME_PROTOCOL *ComponentName;
+ EFI_STATUS Status;
+ CHAR8 *BestLanguage;
+ EFI_COMPONENT_NAME_PROTOCOL *ComponentName;
//
// Retrieve Component Name (2) protocol instance on the driver binding handle and
@@ -356,8 +353,8 @@ DriverHealthManagerGetDriverName (
IN EFI_HANDLE DriverBindingHandle
)
{
- EFI_STATUS Status;
- CHAR16 *DriverName;
+ EFI_STATUS Status;
+ CHAR16 *DriverName;
//
// Get driver name from UEFI 2.0 Component Name 2 protocol interface.
@@ -378,8 +375,6 @@ DriverHealthManagerGetDriverName (
}
}
-
-
/**
This function gets controller name from Component Name 2 protocol interface and Component Name protocol interface
in turn. It first tries UEFI 2.0 Component Name 2 protocol interface and try to get the controller name.
@@ -412,9 +407,9 @@ DriverHealthManagerGetControllerNameWorker (
OUT CHAR16 **ControllerName
)
{
- EFI_STATUS Status;
- CHAR8 *BestLanguage;
- EFI_COMPONENT_NAME_PROTOCOL *ComponentName;
+ EFI_STATUS Status;
+ CHAR8 *BestLanguage;
+ EFI_COMPONENT_NAME_PROTOCOL *ComponentName;
//
// Retrieve Component Name (2) protocol instance on the driver binding handle and
@@ -471,8 +466,8 @@ DriverHealthManagerGetControllerName (
IN EFI_HANDLE ChildHandle
)
{
- EFI_STATUS Status;
- CHAR16 *ControllerName;
+ EFI_STATUS Status;
+ CHAR16 *ControllerName;
//
// Get controller name from UEFI 2.0 Component Name 2 protocol interface.
@@ -519,8 +514,8 @@ DriverHealthManagerGetControllerName (
EFI_STATUS
EFIAPI
DriverHealthManagerRepairNotify (
- IN UINTN Value,
- IN UINTN Limit
+ IN UINTN Value,
+ IN UINTN Limit
)
{
DEBUG ((DEBUG_INFO, "[DriverHealthManagement]RepairNotify: %d/%d\n", Value, Limit));
@@ -538,8 +533,8 @@ DriverHealthManagerRepairNotify (
**/
EFI_STATUS
DriverHealthManagerGetFormsetId (
- IN EFI_HII_HANDLE Handle,
- OUT EFI_GUID *FormsetGuid
+ IN EFI_HII_HANDLE Handle,
+ OUT EFI_GUID *FormsetGuid
)
{
EFI_STATUS Status;
@@ -559,23 +554,25 @@ DriverHealthManagerGetFormsetId (
//
BufferSize = 0;
HiiPackageList = NULL;
- Status = mDriverHealthManagerDatabase->ExportPackageLists (mDriverHealthManagerDatabase, Handle, &BufferSize, HiiPackageList);
+ Status = mDriverHealthManagerDatabase->ExportPackageLists (mDriverHealthManagerDatabase, Handle, &BufferSize, HiiPackageList);
if (Status == EFI_BUFFER_TOO_SMALL) {
HiiPackageList = AllocatePool (BufferSize);
ASSERT (HiiPackageList != NULL);
Status = mDriverHealthManagerDatabase->ExportPackageLists (mDriverHealthManagerDatabase, Handle, &BufferSize, HiiPackageList);
}
+
if (EFI_ERROR (Status)) {
return Status;
}
+
ASSERT (HiiPackageList != NULL);
//
// Get Form package from this HII package List
//
for (Offset = sizeof (EFI_HII_PACKAGE_LIST_HEADER); Offset < ReadUnaligned32 (&HiiPackageList->PackageLength); Offset += PackageHeader.Length) {
- Package = ((UINT8 *) HiiPackageList) + Offset;
+ Package = ((UINT8 *)HiiPackageList) + Offset;
CopyMem (&PackageHeader, Package, sizeof (EFI_HII_PACKAGE_HEADER));
if (PackageHeader.Type == EFI_HII_PACKAGE_FORMS) {
@@ -583,19 +580,20 @@ DriverHealthManagerGetFormsetId (
// Search FormSet in this Form Package
//
- for (Offset2 = sizeof (EFI_HII_PACKAGE_HEADER); Offset2 < PackageHeader.Length; Offset2 += ((EFI_IFR_OP_HEADER *) OpCodeData)->Length) {
+ for (Offset2 = sizeof (EFI_HII_PACKAGE_HEADER); Offset2 < PackageHeader.Length; Offset2 += ((EFI_IFR_OP_HEADER *)OpCodeData)->Length) {
OpCodeData = Package + Offset2;
- if ((((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) &&
- (((EFI_IFR_OP_HEADER *) OpCodeData)->Length > OFFSET_OF (EFI_IFR_FORM_SET, Flags))) {
+ if ((((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) &&
+ (((EFI_IFR_OP_HEADER *)OpCodeData)->Length > OFFSET_OF (EFI_IFR_FORM_SET, Flags)))
+ {
//
// Try to compare against formset class GUID
//
- NumberOfClassGuid = (UINT8) (((EFI_IFR_FORM_SET *) OpCodeData)->Flags & 0x3);
- ClassGuid = (EFI_GUID *) (OpCodeData + sizeof (EFI_IFR_FORM_SET));
+ NumberOfClassGuid = (UINT8)(((EFI_IFR_FORM_SET *)OpCodeData)->Flags & 0x3);
+ ClassGuid = (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_FORM_SET));
for (Index = 0; Index < NumberOfClassGuid; Index++) {
if (CompareGuid (&gEfiHiiDriverHealthFormsetGuid, &ClassGuid[Index])) {
- CopyMem (FormsetGuid, &((EFI_IFR_FORM_SET *) OpCodeData)->Guid, sizeof (EFI_GUID));
+ CopyMem (FormsetGuid, &((EFI_IFR_FORM_SET *)OpCodeData)->Guid, sizeof (EFI_GUID));
FreePool (HiiPackageList);
return EFI_SUCCESS;
}
@@ -629,15 +627,15 @@ DriverHealthManagerGetFormsetId (
**/
VOID
DriverHealthManagerProcessSingleControllerHealth (
- IN EFI_DRIVER_HEALTH_PROTOCOL *DriverHealth,
- IN EFI_HANDLE ControllerHandle OPTIONAL,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN EFI_DRIVER_HEALTH_STATUS HealthStatus,
- IN EFI_DRIVER_HEALTH_HII_MESSAGE **MessageList OPTIONAL,
- IN EFI_HII_HANDLE FormHiiHandle
+ IN EFI_DRIVER_HEALTH_PROTOCOL *DriverHealth,
+ IN EFI_HANDLE ControllerHandle OPTIONAL,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN EFI_DRIVER_HEALTH_STATUS HealthStatus,
+ IN EFI_DRIVER_HEALTH_HII_MESSAGE **MessageList OPTIONAL,
+ IN EFI_HII_HANDLE FormHiiHandle
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
ASSERT (HealthStatus != EfiDriverHealthStatusConfigurationRequired);
//
@@ -646,34 +644,34 @@ DriverHealthManagerProcessSingleControllerHealth (
// will be in (Health, Failed, Configuration Required).
//
switch (HealthStatus) {
+ case EfiDriverHealthStatusRepairRequired:
+ Status = DriverHealth->Repair (
+ DriverHealth,
+ ControllerHandle,
+ ChildHandle,
+ DriverHealthManagerRepairNotify
+ );
+ break;
- case EfiDriverHealthStatusRepairRequired:
- Status = DriverHealth->Repair (
- DriverHealth,
- ControllerHandle,
- ChildHandle,
- DriverHealthManagerRepairNotify
- );
- break;
-
- case EfiDriverHealthStatusRebootRequired:
- gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
- break;
-
- case EfiDriverHealthStatusReconnectRequired:
- Status = gBS->DisconnectController (ControllerHandle, NULL, NULL);
- if (EFI_ERROR (Status)) {
- //
- // Disconnect failed. Need to promote reconnect to a reboot.
- //
+ case EfiDriverHealthStatusRebootRequired:
gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
- } else {
- gBS->ConnectController (ControllerHandle, NULL, NULL, TRUE);
- }
- break;
+ break;
+
+ case EfiDriverHealthStatusReconnectRequired:
+ Status = gBS->DisconnectController (ControllerHandle, NULL, NULL);
+ if (EFI_ERROR (Status)) {
+ //
+ // Disconnect failed. Need to promote reconnect to a reboot.
+ //
+ gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
+ } else {
+ gBS->ConnectController (ControllerHandle, NULL, NULL, TRUE);
+ }
- default:
- break;
+ break;
+
+ default:
+ break;
}
}
@@ -685,26 +683,26 @@ DriverHealthManagerProcessSingleControllerHealth (
**/
VOID
DriverHealthManagerUpdateForm (
- BOOLEAN ConfigureOnly
+ BOOLEAN ConfigureOnly
)
{
- EFI_STATUS Status;
- EFI_IFR_GUID_LABEL *StartLabel;
- EFI_IFR_GUID_LABEL *EndLabel;
- VOID *StartOpCodeHandle;
- VOID *EndOpCodeHandle;
- UINTN Index;
- EFI_STRING_ID Prompt;
- EFI_STRING_ID Help;
- CHAR16 String[512];
- UINTN StringCount;
- EFI_STRING TmpString;
- EFI_STRING DriverName;
- EFI_STRING ControllerName;
- UINTN MessageIndex;
- EFI_HANDLE DriverHandle;
- EFI_STRING_ID DevicePath;
- EFI_GUID FormsetGuid;
+ EFI_STATUS Status;
+ EFI_IFR_GUID_LABEL *StartLabel;
+ EFI_IFR_GUID_LABEL *EndLabel;
+ VOID *StartOpCodeHandle;
+ VOID *EndOpCodeHandle;
+ UINTN Index;
+ EFI_STRING_ID Prompt;
+ EFI_STRING_ID Help;
+ CHAR16 String[512];
+ UINTN StringCount;
+ EFI_STRING TmpString;
+ EFI_STRING DriverName;
+ EFI_STRING ControllerName;
+ UINTN MessageIndex;
+ EFI_HANDLE DriverHandle;
+ EFI_STRING_ID DevicePath;
+ EFI_GUID FormsetGuid;
EfiBootManagerFreeDriverHealthInfo (mDriverHealthManagerHealthInfo, mDriverHealthManagerHealthInfoCount);
mDriverHealthManagerHealthInfo = EfiBootManagerGetDriverHealthInfo (&mDriverHealthManagerHealthInfoCount);
@@ -721,21 +719,22 @@ DriverHealthManagerUpdateForm (
//
// Create Hii Extend Label OpCode as the start opcode
//
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
StartLabel->Number = LABEL_BEGIN;
//
// Create Hii Extend Label OpCode as the end opcode
//
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
EndLabel->Number = LABEL_END;
for (Index = 0; Index < mDriverHealthManagerHealthInfoCount; Index++) {
- if (ConfigureOnly && mDriverHealthManagerHealthInfo[Index].HealthStatus != EfiDriverHealthStatusConfigurationRequired) {
+ if (ConfigureOnly && (mDriverHealthManagerHealthInfo[Index].HealthStatus != EfiDriverHealthStatusConfigurationRequired)) {
continue;
}
+
DriverName = DriverHealthManagerGetDriverName (mDriverHealthManagerHealthInfo[Index].DriverHealthHandle);
ASSERT (DriverName != NULL);
@@ -756,31 +755,33 @@ DriverHealthManagerUpdateForm (
UnicodeSPrint (String, sizeof (String), L"%s %s", DriverName, ControllerName);
FreePool (ControllerName);
}
+
FreePool (DriverName);
Prompt = HiiSetString (mDriverHealthManagerHiiHandle, 0, String, NULL);
- switch(mDriverHealthManagerHealthInfo[Index].HealthStatus) {
- case EfiDriverHealthStatusRepairRequired:
- TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_REPAIR_REQUIRED), NULL);
- break;
- case EfiDriverHealthStatusConfigurationRequired:
- TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_CONFIGURATION_REQUIRED), NULL);
- break;
- case EfiDriverHealthStatusFailed:
- TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_FAILED), NULL);
- break;
- case EfiDriverHealthStatusReconnectRequired:
- TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_RECONNECT_REQUIRED), NULL);
- break;
- case EfiDriverHealthStatusRebootRequired:
- TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_REBOOT_REQUIRED), NULL);
- break;
- default:
- ASSERT (mDriverHealthManagerHealthInfo[Index].HealthStatus == EfiDriverHealthStatusHealthy);
- TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_HEALTHY), NULL);
- break;
+ switch (mDriverHealthManagerHealthInfo[Index].HealthStatus) {
+ case EfiDriverHealthStatusRepairRequired:
+ TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_REPAIR_REQUIRED), NULL);
+ break;
+ case EfiDriverHealthStatusConfigurationRequired:
+ TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_CONFIGURATION_REQUIRED), NULL);
+ break;
+ case EfiDriverHealthStatusFailed:
+ TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_FAILED), NULL);
+ break;
+ case EfiDriverHealthStatusReconnectRequired:
+ TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_RECONNECT_REQUIRED), NULL);
+ break;
+ case EfiDriverHealthStatusRebootRequired:
+ TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_REBOOT_REQUIRED), NULL);
+ break;
+ default:
+ ASSERT (mDriverHealthManagerHealthInfo[Index].HealthStatus == EfiDriverHealthStatusHealthy);
+ TmpString = HiiGetString (mDriverHealthManagerHiiHandle, STRING_TOKEN (STR_HEALTHY), NULL);
+ break;
}
+
StringCount = UnicodeSPrint (String, sizeof (String), L"%s\n", TmpString);
FreePool (TmpString);
@@ -798,59 +799,62 @@ DriverHealthManagerUpdateForm (
FreePool (TmpString);
}
}
+
Help = HiiSetString (mDriverHealthManagerHiiHandle, 0, String, NULL);
switch (mDriverHealthManagerHealthInfo[Index].HealthStatus) {
- case EfiDriverHealthStatusConfigurationRequired:
- Status = mDriverHealthManagerDatabase->GetPackageListHandle (
- mDriverHealthManagerDatabase,
- mDriverHealthManagerHealthInfo[Index].HiiHandle,
- &DriverHandle
- );
- ASSERT_EFI_ERROR (Status);
- TmpString = ConvertDevicePathToText (DevicePathFromHandle (DriverHandle), FALSE, TRUE);
- DevicePath = HiiSetString (mDriverHealthManagerHiiHandle, 0, TmpString, NULL);
- FreePool (TmpString);
-
- Status = DriverHealthManagerGetFormsetId (mDriverHealthManagerHealthInfo[Index].HiiHandle, &FormsetGuid);
- ASSERT_EFI_ERROR (Status);
-
- HiiCreateGotoExOpCode (
- StartOpCodeHandle,
- 0,
- Prompt,
- Help,
- 0,
- 0,
- 0,
- &FormsetGuid,
- DevicePath
- );
- break;
-
- case EfiDriverHealthStatusRepairRequired:
- case EfiDriverHealthStatusReconnectRequired:
- case EfiDriverHealthStatusRebootRequired:
- HiiCreateActionOpCode (
- StartOpCodeHandle,
- (EFI_QUESTION_ID) (Index + QUESTION_ID_DRIVER_HEALTH_BASE),
- Prompt,
- Help,
- EFI_IFR_FLAG_CALLBACK,
- 0
- );
- break;
+ case EfiDriverHealthStatusConfigurationRequired:
+ Status = mDriverHealthManagerDatabase->GetPackageListHandle (
+ mDriverHealthManagerDatabase,
+ mDriverHealthManagerHealthInfo[Index].HiiHandle,
+ &DriverHandle
+ );
+ ASSERT_EFI_ERROR (Status);
+ TmpString = ConvertDevicePathToText (DevicePathFromHandle (DriverHandle), FALSE, TRUE);
+ DevicePath = HiiSetString (mDriverHealthManagerHiiHandle, 0, TmpString, NULL);
+ FreePool (TmpString);
- default:
- ASSERT (mDriverHealthManagerHealthInfo[Index].HealthStatus == EfiDriverHealthStatusHealthy ||
- mDriverHealthManagerHealthInfo[Index].HealthStatus == EfiDriverHealthStatusFailed);
- HiiCreateTextOpCode (
- StartOpCodeHandle,
- Prompt,
- Help,
- 0
- );
- break;
+ Status = DriverHealthManagerGetFormsetId (mDriverHealthManagerHealthInfo[Index].HiiHandle, &FormsetGuid);
+ ASSERT_EFI_ERROR (Status);
+
+ HiiCreateGotoExOpCode (
+ StartOpCodeHandle,
+ 0,
+ Prompt,
+ Help,
+ 0,
+ 0,
+ 0,
+ &FormsetGuid,
+ DevicePath
+ );
+ break;
+
+ case EfiDriverHealthStatusRepairRequired:
+ case EfiDriverHealthStatusReconnectRequired:
+ case EfiDriverHealthStatusRebootRequired:
+ HiiCreateActionOpCode (
+ StartOpCodeHandle,
+ (EFI_QUESTION_ID)(Index + QUESTION_ID_DRIVER_HEALTH_BASE),
+ Prompt,
+ Help,
+ EFI_IFR_FLAG_CALLBACK,
+ 0
+ );
+ break;
+
+ default:
+ ASSERT (
+ mDriverHealthManagerHealthInfo[Index].HealthStatus == EfiDriverHealthStatusHealthy ||
+ mDriverHealthManagerHealthInfo[Index].HealthStatus == EfiDriverHealthStatusFailed
+ );
+ HiiCreateTextOpCode (
+ StartOpCodeHandle,
+ Prompt,
+ Help,
+ 0
+ );
+ break;
}
}
@@ -881,18 +885,18 @@ DriverHealthManagerCleanDynamicString (
EFI_HII_PACKAGE_HEADER *PackageHeader;
UINT32 FixedStringSize;
- FixedStringSize = *(UINT32 *) &STRING_ARRAY_NAME - sizeof (UINT32);
+ FixedStringSize = *(UINT32 *)&STRING_ARRAY_NAME - sizeof (UINT32);
BufferSize = sizeof (EFI_HII_PACKAGE_LIST_HEADER) + FixedStringSize + sizeof (EFI_HII_PACKAGE_HEADER);
HiiPackageList = AllocatePool (BufferSize);
ASSERT (HiiPackageList != NULL);
- HiiPackageList->PackageLength = (UINT32) BufferSize;
+ HiiPackageList->PackageLength = (UINT32)BufferSize;
CopyMem (&HiiPackageList->PackageListGuid, &gEfiCallerIdGuid, sizeof (EFI_GUID));
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) (HiiPackageList + 1);
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)(HiiPackageList + 1);
CopyMem (PackageHeader, STRING_ARRAY_NAME + sizeof (UINT32), FixedStringSize);
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) ((UINT8 *) PackageHeader + PackageHeader->Length);
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)((UINT8 *)PackageHeader + PackageHeader->Length);
PackageHeader->Type = EFI_HII_PACKAGE_END;
PackageHeader->Length = sizeof (EFI_HII_PACKAGE_HEADER);
@@ -928,22 +932,23 @@ DriverHealthManagerCleanDynamicString (
EFI_STATUS
EFIAPI
DriverHealthManagerCallback (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN EFI_BROWSER_ACTION Action,
- IN EFI_QUESTION_ID QuestionId,
- IN UINT8 Type,
- IN EFI_IFR_TYPE_VALUE *Value,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN EFI_BROWSER_ACTION Action,
+ IN EFI_QUESTION_ID QuestionId,
+ IN UINT8 Type,
+ IN EFI_IFR_TYPE_VALUE *Value,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
{
- UINTN Index;
+ UINTN Index;
- if (QuestionId == QUESTION_ID_REFRESH_MANAGER || QuestionId == QUESTION_ID_REFRESH_CONFIGURE) {
+ if ((QuestionId == QUESTION_ID_REFRESH_MANAGER) || (QuestionId == QUESTION_ID_REFRESH_CONFIGURE)) {
if (Action == EFI_BROWSER_ACTION_FORM_OPEN) {
- DriverHealthManagerUpdateForm ((BOOLEAN) (QuestionId == QUESTION_ID_REFRESH_CONFIGURE));
+ DriverHealthManagerUpdateForm ((BOOLEAN)(QuestionId == QUESTION_ID_REFRESH_CONFIGURE));
} else if (Action == EFI_BROWSER_ACTION_FORM_CLOSE) {
DriverHealthManagerCleanDynamicString ();
}
+
return EFI_SUCCESS;
}
@@ -979,7 +984,7 @@ DriverHealthManagerCallback (
mDriverHealthManagerHealthInfo[Index].HiiHandle
);
- DriverHealthManagerUpdateForm ((BOOLEAN) (QuestionId == QUESTION_ID_REFRESH_CONFIGURE));
+ DriverHealthManagerUpdateForm ((BOOLEAN)(QuestionId == QUESTION_ID_REFRESH_CONFIGURE));
return EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h
index f4a09d0..afcfe93 100644
--- a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h
+++ b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h
@@ -39,8 +39,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// HII specific Vendor Device Path definition.
///
typedef struct {
- VENDOR_DEVICE_PATH VendorDevicePath;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH VendorDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL End;
} FORM_DEVICE_PATH;
/**
@@ -62,12 +62,12 @@ typedef struct {
EFI_STATUS
EFIAPI
DriverHealthManagerCallback (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN EFI_BROWSER_ACTION Action,
- IN EFI_QUESTION_ID QuestionId,
- IN UINT8 Type,
- IN EFI_IFR_TYPE_VALUE *Value,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN EFI_BROWSER_ACTION Action,
+ IN EFI_QUESTION_ID QuestionId,
+ IN UINT8 Type,
+ IN EFI_IFR_TYPE_VALUE *Value,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
);
/**
@@ -95,10 +95,10 @@ DriverHealthManagerCallback (
EFI_STATUS
EFIAPI
DriverHealthManagerFakeExtractConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Request,
- OUT EFI_STRING *Progress,
- OUT EFI_STRING *Results
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Request,
+ OUT EFI_STRING *Progress,
+ OUT EFI_STRING *Results
);
/**
@@ -120,8 +120,9 @@ DriverHealthManagerFakeExtractConfig (
EFI_STATUS
EFIAPI
DriverHealthManagerFakeRouteConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ OUT EFI_STRING *Progress
);
+
#endif
diff --git a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h
index 65255c5..eb49e55 100644
--- a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h
+++ b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h
@@ -10,17 +10,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define _DRIVER_HEALTH_VFR_H_
#include <Guid/HiiPlatformSetupFormset.h>
-#define DRIVER_HEALTH_MANAGER_FORMSET_GUID { 0xcfb3b000, 0x0b63, 0x444b, { 0xb1, 0xd1, 0x12, 0xd5, 0xd9, 0x5d, 0xc4, 0xfc } }
-#define DRIVER_HEALTH_CONFIGURE_FORMSET_GUID { 0x4296d9f4, 0xf6fc, 0x4dde, { 0x86, 0x85, 0x8c, 0xe2, 0xd7, 0x9d, 0x90, 0xf0 } }
+#define DRIVER_HEALTH_MANAGER_FORMSET_GUID { 0xcfb3b000, 0x0b63, 0x444b, { 0xb1, 0xd1, 0x12, 0xd5, 0xd9, 0x5d, 0xc4, 0xfc } }
+#define DRIVER_HEALTH_CONFIGURE_FORMSET_GUID { 0x4296d9f4, 0xf6fc, 0x4dde, { 0x86, 0x85, 0x8c, 0xe2, 0xd7, 0x9d, 0x90, 0xf0 } }
-#define LABEL_BEGIN 0x2000
-#define LABEL_END 0x2001
+#define LABEL_BEGIN 0x2000
+#define LABEL_END 0x2001
-#define DRIVER_HEALTH_FORM_ID 0x1001
+#define DRIVER_HEALTH_FORM_ID 0x1001
-#define QUESTION_ID_REFRESH_MANAGER 0x0001
-#define QUESTION_ID_REFRESH_CONFIGURE 0x0002
+#define QUESTION_ID_REFRESH_MANAGER 0x0001
+#define QUESTION_ID_REFRESH_CONFIGURE 0x0002
-#define QUESTION_ID_DRIVER_HEALTH_BASE 0x0003
+#define QUESTION_ID_DRIVER_HEALTH_BASE 0x0003
#endif
diff --git a/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c b/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
index f987972..62ba52e 100644
--- a/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
+++ b/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
@@ -7,19 +7,18 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "DriverSample.h"
#define DISPLAY_ONLY_MY_ITEM 0x0002
-CHAR16 VariableName[] = L"MyIfrNVData";
-CHAR16 MyEfiVar[] = L"MyEfiVar";
-CHAR16 MyEfiBitVar[] = L"MyEfiBitVar";
-CHAR16 MyEfiUnionVar[] = L"MyEfiUnionVar";
+CHAR16 VariableName[] = L"MyIfrNVData";
+CHAR16 MyEfiVar[] = L"MyEfiVar";
+CHAR16 MyEfiBitVar[] = L"MyEfiBitVar";
+CHAR16 MyEfiUnionVar[] = L"MyEfiUnionVar";
-EFI_HANDLE DriverHandle[2] = {NULL, NULL};
-DRIVER_SAMPLE_PRIVATE_DATA *mPrivateData = NULL;
-EFI_EVENT mEvent;
+EFI_HANDLE DriverHandle[2] = { NULL, NULL };
+DRIVER_SAMPLE_PRIVATE_DATA *mPrivateData = NULL;
+EFI_EVENT mEvent;
HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath0 = {
{
@@ -27,8 +26,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath0 = {
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
{
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
DRIVER_SAMPLE_FORMSET_GUID
@@ -37,8 +36,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath0 = {
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
- (UINT8) (END_DEVICE_PATH_LENGTH),
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
+ (UINT8)(END_DEVICE_PATH_LENGTH),
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
};
@@ -49,8 +48,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath1 = {
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
{
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
DRIVER_SAMPLE_INVENTORY_GUID
@@ -59,8 +58,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath1 = {
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
- (UINT8) (END_DEVICE_PATH_LENGTH),
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
+ (UINT8)(END_DEVICE_PATH_LENGTH),
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
};
@@ -76,34 +75,33 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath1 = {
**/
VOID
SetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index,
- IN UINT64 Value
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index,
+ IN UINT64 Value
)
{
-
ASSERT (Array != NULL);
switch (Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- *(((UINT8 *) Array) + Index) = (UINT8) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ *(((UINT8 *)Array) + Index) = (UINT8)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- *(((UINT16 *) Array) + Index) = (UINT16) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ *(((UINT16 *)Array) + Index) = (UINT16)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- *(((UINT32 *) Array) + Index) = (UINT32) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ *(((UINT32 *)Array) + Index) = (UINT32)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- *(((UINT64 *) Array) + Index) = (UINT64) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ *(((UINT64 *)Array) + Index) = (UINT64)Value;
+ break;
- default:
- break;
+ default:
+ break;
}
}
@@ -116,8 +114,8 @@ SetArrayData (
**/
EFI_STATUS
EFIAPI
-NotificationFunction(
- IN EFI_KEY_DATA *KeyData
+NotificationFunction (
+ IN EFI_KEY_DATA *KeyData
)
{
gBS->SignalEvent (mEvent);
@@ -133,27 +131,27 @@ NotificationFunction(
**/
EFI_STATUS
EFIAPI
-InternalStartMonitor(
+InternalStartMonitor (
VOID
)
{
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *SimpleEx;
- EFI_KEY_DATA KeyData;
- EFI_STATUS Status;
- EFI_HANDLE *Handles;
- UINTN HandleCount;
- UINTN HandleIndex;
- VOID *NotifyHandle;
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *SimpleEx;
+ EFI_KEY_DATA KeyData;
+ EFI_STATUS Status;
+ EFI_HANDLE *Handles;
+ UINTN HandleCount;
+ UINTN HandleIndex;
+ VOID *NotifyHandle;
Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiSimpleTextInputExProtocolGuid,
- NULL,
- &HandleCount,
- &Handles
- );
+ ByProtocol,
+ &gEfiSimpleTextInputExProtocolGuid,
+ NULL,
+ &HandleCount,
+ &Handles
+ );
for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
- Status = gBS->HandleProtocol (Handles[HandleIndex], &gEfiSimpleTextInputExProtocolGuid, (VOID **) &SimpleEx);
+ Status = gBS->HandleProtocol (Handles[HandleIndex], &gEfiSimpleTextInputExProtocolGuid, (VOID **)&SimpleEx);
ASSERT_EFI_ERROR (Status);
KeyData.KeyState.KeyToggleState = 0;
@@ -161,21 +159,23 @@ InternalStartMonitor(
KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_LEFT_CONTROL_PRESSED;
KeyData.Key.UnicodeChar = L'c';
- Status = SimpleEx->RegisterKeyNotify(
- SimpleEx,
- &KeyData,
- NotificationFunction,
- &NotifyHandle);
+ Status = SimpleEx->RegisterKeyNotify (
+ SimpleEx,
+ &KeyData,
+ NotificationFunction,
+ &NotifyHandle
+ );
if (EFI_ERROR (Status)) {
break;
}
- KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED;
- Status = SimpleEx->RegisterKeyNotify(
- SimpleEx,
- &KeyData,
- NotificationFunction,
- &NotifyHandle);
+ KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED;
+ Status = SimpleEx->RegisterKeyNotify (
+ SimpleEx,
+ &KeyData,
+ NotificationFunction,
+ &NotifyHandle
+ );
if (EFI_ERROR (Status)) {
break;
}
@@ -192,27 +192,27 @@ InternalStartMonitor(
**/
EFI_STATUS
EFIAPI
-InternalStopMonitor(
+InternalStopMonitor (
VOID
)
{
- EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *SimpleEx;
- EFI_STATUS Status;
- EFI_HANDLE *Handles;
- EFI_KEY_DATA KeyData;
- UINTN HandleCount;
- UINTN HandleIndex;
- VOID *NotifyHandle;
+ EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *SimpleEx;
+ EFI_STATUS Status;
+ EFI_HANDLE *Handles;
+ EFI_KEY_DATA KeyData;
+ UINTN HandleCount;
+ UINTN HandleIndex;
+ VOID *NotifyHandle;
Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiSimpleTextInputExProtocolGuid,
- NULL,
- &HandleCount,
- &Handles
- );
+ ByProtocol,
+ &gEfiSimpleTextInputExProtocolGuid,
+ NULL,
+ &HandleCount,
+ &Handles
+ );
for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
- Status = gBS->HandleProtocol (Handles[HandleIndex], &gEfiSimpleTextInputExProtocolGuid, (VOID **) &SimpleEx);
+ Status = gBS->HandleProtocol (Handles[HandleIndex], &gEfiSimpleTextInputExProtocolGuid, (VOID **)&SimpleEx);
ASSERT_EFI_ERROR (Status);
KeyData.KeyState.KeyToggleState = 0;
@@ -220,25 +220,28 @@ InternalStopMonitor(
KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_LEFT_CONTROL_PRESSED;
KeyData.Key.UnicodeChar = L'c';
- Status = SimpleEx->RegisterKeyNotify(
- SimpleEx,
- &KeyData,
- NotificationFunction,
- &NotifyHandle);
+ Status = SimpleEx->RegisterKeyNotify (
+ SimpleEx,
+ &KeyData,
+ NotificationFunction,
+ &NotifyHandle
+ );
if (!EFI_ERROR (Status)) {
Status = SimpleEx->UnregisterKeyNotify (SimpleEx, NotifyHandle);
}
- KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED;
- Status = SimpleEx->RegisterKeyNotify(
- SimpleEx,
- &KeyData,
- NotificationFunction,
- &NotifyHandle);
+ KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED;
+ Status = SimpleEx->RegisterKeyNotify (
+ SimpleEx,
+ &KeyData,
+ NotificationFunction,
+ &NotifyHandle
+ );
if (!EFI_ERROR (Status)) {
Status = SimpleEx->UnregisterKeyNotify (SimpleEx, NotifyHandle);
}
}
+
return EFI_SUCCESS;
}
@@ -253,20 +256,20 @@ InternalStopMonitor(
**/
EFI_STATUS
LoadNameValueNames (
- IN DRIVER_SAMPLE_PRIVATE_DATA *PrivateData
+ IN DRIVER_SAMPLE_PRIVATE_DATA *PrivateData
)
{
- UINTN Index;
+ UINTN Index;
//
// Get Name/Value name string of current language
//
for (Index = 0; Index < NAME_VALUE_NAME_NUMBER; Index++) {
PrivateData->NameValueName[Index] = HiiGetString (
- PrivateData->HiiHandle[0],
- PrivateData->NameStringId[Index],
- NULL
- );
+ PrivateData->HiiHandle[0],
+ PrivateData->NameStringId[Index],
+ NULL
+ );
if (PrivateData->NameValueName[Index] == NULL) {
return EFI_NOT_FOUND;
}
@@ -275,7 +278,6 @@ LoadNameValueNames (
return EFI_SUCCESS;
}
-
/**
Get the value of <Number> in <BlockConfig> format, i.e. the value of OFFSET
or WIDTH or VALUE.
@@ -297,21 +299,21 @@ LoadNameValueNames (
**/
EFI_STATUS
GetValueOfNumber (
- IN EFI_STRING StringPtr,
- OUT UINT8 **Number,
- OUT UINTN *Len
+ IN EFI_STRING StringPtr,
+ OUT UINT8 **Number,
+ OUT UINTN *Len
)
{
- EFI_STRING TmpPtr;
- UINTN Length;
- EFI_STRING Str;
- UINT8 *Buf;
- EFI_STATUS Status;
- UINT8 DigitUint8;
- UINTN Index;
- CHAR16 TemStr[2];
-
- if (StringPtr == NULL || *StringPtr == L'\0' || Number == NULL || Len == NULL) {
+ EFI_STRING TmpPtr;
+ UINTN Length;
+ EFI_STRING Str;
+ UINT8 *Buf;
+ EFI_STATUS Status;
+ UINT8 DigitUint8;
+ UINTN Index;
+ CHAR16 TemStr[2];
+
+ if ((StringPtr == NULL) || (*StringPtr == L'\0') || (Number == NULL) || (Len == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -321,19 +323,21 @@ GetValueOfNumber (
while (*StringPtr != L'\0' && *StringPtr != L'&') {
StringPtr++;
}
+
*Len = StringPtr - TmpPtr;
Length = *Len + 1;
- Str = (EFI_STRING) AllocateZeroPool (Length * sizeof (CHAR16));
+ Str = (EFI_STRING)AllocateZeroPool (Length * sizeof (CHAR16));
if (Str == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
CopyMem (Str, TmpPtr, *Len * sizeof (CHAR16));
*(Str + *Len) = L'\0';
Length = (Length + 1) / 2;
- Buf = (UINT8 *) AllocateZeroPool (Length);
+ Buf = (UINT8 *)AllocateZeroPool (Length);
if (Buf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
@@ -341,13 +345,13 @@ GetValueOfNumber (
Length = *Len;
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0; Index < Length; Index ++) {
- TemStr[0] = Str[Length - Index - 1];
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0; Index < Length; Index++) {
+ TemStr[0] = Str[Length - Index - 1];
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- Buf [Index/2] = DigitUint8;
+ Buf[Index/2] = DigitUint8;
} else {
- Buf [Index/2] = (UINT8) ((DigitUint8 << 4) + Buf [Index/2]);
+ Buf[Index/2] = (UINT8)((DigitUint8 << 4) + Buf[Index/2]);
}
}
@@ -375,21 +379,21 @@ Exit:
**/
EFI_STRING
CreateAltCfgString (
- IN EFI_STRING Result,
- IN EFI_STRING ConfigHdr,
- IN UINTN Offset,
- IN UINTN Width
+ IN EFI_STRING Result,
+ IN EFI_STRING ConfigHdr,
+ IN UINTN Offset,
+ IN UINTN Width
)
{
- EFI_STRING StringPtr;
- EFI_STRING TmpStr;
- UINTN NewLen;
+ EFI_STRING StringPtr;
+ EFI_STRING TmpStr;
+ UINTN NewLen;
NewLen = StrLen (Result);
//
// String Len = ConfigResp + AltConfig + AltConfig + 1("\0")
//
- NewLen = (NewLen + ((1 + StrLen (ConfigHdr) + 8 + 4) + (8 + 4 + 7 + 4 + 7 + 4)) * 2 + 1) * sizeof (CHAR16);
+ NewLen = (NewLen + ((1 + StrLen (ConfigHdr) + 8 + 4) + (8 + 4 + 7 + 4 + 7 + 4)) * 2 + 1) * sizeof (CHAR16);
StringPtr = AllocateZeroPool (NewLen);
if (StringPtr == NULL) {
return NULL;
@@ -403,12 +407,12 @@ CreateAltCfgString (
}
UnicodeSPrint (
- StringPtr,
- (1 + StrLen (ConfigHdr) + 8 + 4 + 1) * sizeof (CHAR16),
- L"&%s&ALTCFG=%04x",
- ConfigHdr,
- EFI_HII_DEFAULT_CLASS_STANDARD
- );
+ StringPtr,
+ (1 + StrLen (ConfigHdr) + 8 + 4 + 1) * sizeof (CHAR16),
+ L"&%s&ALTCFG=%04x",
+ ConfigHdr,
+ EFI_HII_DEFAULT_CLASS_STANDARD
+ );
StringPtr += StrLen (StringPtr);
UnicodeSPrint (
@@ -422,12 +426,12 @@ CreateAltCfgString (
StringPtr += StrLen (StringPtr);
UnicodeSPrint (
- StringPtr,
- (1 + StrLen (ConfigHdr) + 8 + 4 + 1) * sizeof (CHAR16),
- L"&%s&ALTCFG=%04x",
- ConfigHdr,
- EFI_HII_DEFAULT_CLASS_MANUFACTURING
- );
+ StringPtr,
+ (1 + StrLen (ConfigHdr) + 8 + 4 + 1) * sizeof (CHAR16),
+ L"&%s&ALTCFG=%04x",
+ ConfigHdr,
+ EFI_HII_DEFAULT_CLASS_MANUFACTURING
+ );
StringPtr += StrLen (StringPtr);
UnicodeSPrint (
@@ -453,24 +457,24 @@ CreateAltCfgString (
**/
VOID
AppendAltCfgString (
- IN OUT EFI_STRING *RequestResult,
- IN EFI_STRING ConfigRequestHdr
+ IN OUT EFI_STRING *RequestResult,
+ IN EFI_STRING ConfigRequestHdr
)
{
- EFI_STRING StringPtr;
- UINTN Length;
- UINT8 *TmpBuffer;
- UINTN Offset;
- UINTN Width;
- UINTN BlockSize;
- UINTN ValueOffset;
- UINTN ValueWidth;
- EFI_STATUS Status;
-
- TmpBuffer = NULL;
- StringPtr = *RequestResult;
- StringPtr = StrStr (StringPtr, L"OFFSET");
- BlockSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);
+ EFI_STRING StringPtr;
+ UINTN Length;
+ UINT8 *TmpBuffer;
+ UINTN Offset;
+ UINTN Width;
+ UINTN BlockSize;
+ UINTN ValueOffset;
+ UINTN ValueWidth;
+ EFI_STATUS Status;
+
+ TmpBuffer = NULL;
+ StringPtr = *RequestResult;
+ StringPtr = StrStr (StringPtr, L"OFFSET");
+ BlockSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);
ValueOffset = OFFSET_OF (DRIVER_SAMPLE_CONFIGURATION, GetDefaultValueFromAccess);
ValueWidth = sizeof (((DRIVER_SAMPLE_CONFIGURATION *)0)->GetDefaultValueFromAccess);
@@ -487,18 +491,20 @@ AppendAltCfgString (
if (EFI_ERROR (Status)) {
return;
}
+
Offset = 0;
CopyMem (
- &Offset,
- TmpBuffer,
- (((Length + 1) / 2) < sizeof (UINTN)) ? ((Length + 1) / 2) : sizeof (UINTN)
- );
+ &Offset,
+ TmpBuffer,
+ (((Length + 1) / 2) < sizeof (UINTN)) ? ((Length + 1) / 2) : sizeof (UINTN)
+ );
FreePool (TmpBuffer);
StringPtr += Length;
if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {
return;
}
+
StringPtr += StrLen (L"&WIDTH=");
//
@@ -508,18 +514,20 @@ AppendAltCfgString (
if (EFI_ERROR (Status)) {
return;
}
+
Width = 0;
CopyMem (
- &Width,
- TmpBuffer,
- (((Length + 1) / 2) < sizeof (UINTN)) ? ((Length + 1) / 2) : sizeof (UINTN)
- );
+ &Width,
+ TmpBuffer,
+ (((Length + 1) / 2) < sizeof (UINTN)) ? ((Length + 1) / 2) : sizeof (UINTN)
+ );
FreePool (TmpBuffer);
StringPtr += Length;
if (StrnCmp (StringPtr, L"&VALUE=", StrLen (L"&VALUE=")) != 0) {
return;
}
+
StringPtr += StrLen (L"&VALUE=");
//
@@ -529,12 +537,13 @@ AppendAltCfgString (
if (EFI_ERROR (Status)) {
return;
}
+
StringPtr += Length;
//
// Skip the character "&" before "OFFSET".
//
- StringPtr ++;
+ StringPtr++;
//
// Calculate Value and convert it to hex string.
@@ -543,8 +552,8 @@ AppendAltCfgString (
return;
}
- if (Offset <= ValueOffset && Offset + Width >= ValueOffset + ValueWidth) {
- *RequestResult = CreateAltCfgString(*RequestResult, ConfigRequestHdr, ValueOffset, ValueWidth);
+ if ((Offset <= ValueOffset) && (Offset + Width >= ValueOffset + ValueWidth)) {
+ *RequestResult = CreateAltCfgString (*RequestResult, ConfigRequestHdr, ValueOffset, ValueWidth);
return;
}
}
@@ -579,10 +588,10 @@ AppendAltCfgString (
EFI_STATUS
EFIAPI
ExtractConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Request,
- OUT EFI_STRING *Progress,
- OUT EFI_STRING *Results
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Request,
+ OUT EFI_STRING *Progress,
+ OUT EFI_STRING *Results
)
{
EFI_STATUS Status;
@@ -598,19 +607,20 @@ ExtractConfig (
CHAR16 *StrPointer;
BOOLEAN AllocatedRequest;
- if (Progress == NULL || Results == NULL) {
+ if ((Progress == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
//
// Initialize the local variables.
//
- ConfigRequestHdr = NULL;
- ConfigRequest = NULL;
- Size = 0;
- *Progress = Request;
- AllocatedRequest = FALSE;
+ ConfigRequestHdr = NULL;
+ ConfigRequest = NULL;
+ Size = 0;
+ *Progress = Request;
+ AllocatedRequest = FALSE;
- PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
+ PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
HiiConfigRouting = PrivateData->HiiConfigRouting;
//
@@ -618,13 +628,13 @@ ExtractConfig (
// Try to get the current setting from variable.
//
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);
- Status = gRT->GetVariable (
- VariableName,
- &gDriverSampleFormSetGuid,
- NULL,
- &BufferSize,
- &PrivateData->Configuration
- );
+ Status = gRT->GetVariable (
+ VariableName,
+ &gDriverSampleFormSetGuid,
+ NULL,
+ &BufferSize,
+ &PrivateData->Configuration
+ );
if (EFI_ERROR (Status)) {
return EFI_NOT_FOUND;
}
@@ -639,8 +649,8 @@ ExtractConfig (
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
//
ConfigRequestHdr = HiiConstructConfigHdr (&gDriverSampleFormSetGuid, VariableName, PrivateData->DriverHandle[0]);
- Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
- ConfigRequest = AllocateZeroPool (Size);
+ Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
+ ConfigRequest = AllocateZeroPool (Size);
ASSERT (ConfigRequest != NULL);
AllocatedRequest = TRUE;
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);
@@ -654,17 +664,20 @@ ExtractConfig (
if (!HiiIsConfigHdrMatch (Request, &gDriverSampleFormSetGuid, NULL)) {
return EFI_NOT_FOUND;
}
+
//
// Check whether request for EFI Varstore. EFI varstore get data
// through hii database, not support in this path.
//
- if (HiiIsConfigHdrMatch(Request, &gDriverSampleFormSetGuid, MyEfiVar)) {
+ if (HiiIsConfigHdrMatch (Request, &gDriverSampleFormSetGuid, MyEfiVar)) {
return EFI_UNSUPPORTED;
}
- if (HiiIsConfigHdrMatch(Request, &gDriverSampleFormSetGuid, MyEfiBitVar)) {
+
+ if (HiiIsConfigHdrMatch (Request, &gDriverSampleFormSetGuid, MyEfiBitVar)) {
return EFI_UNSUPPORTED;
}
- if (HiiIsConfigHdrMatch(Request, &gDriverSampleFormSetGuid, MyEfiUnionVar)) {
+
+ if (HiiIsConfigHdrMatch (Request, &gDriverSampleFormSetGuid, MyEfiUnionVar)) {
return EFI_UNSUPPORTED;
}
@@ -683,9 +696,10 @@ ExtractConfig (
if (StrPointer == NULL) {
return EFI_INVALID_PARAMETER;
}
+
if (StrStr (StrPointer, L"&") == NULL) {
- Size = (StrLen (Request) + 32 + 1) * sizeof (CHAR16);
- ConfigRequest = AllocateZeroPool (Size);
+ Size = (StrLen (Request) + 32 + 1) * sizeof (CHAR16);
+ ConfigRequest = AllocateZeroPool (Size);
ASSERT (ConfigRequest != NULL);
AllocatedRequest = TRUE;
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", Request, (UINT64)BufferSize);
@@ -711,9 +725,9 @@ ExtractConfig (
// <ConfigResp>::=<ConfigHdr>&Name0=11&Name1=1234&Name2=0041004200430044
//
BufferSize = (StrLen (ConfigRequest) +
- 1 + sizeof (PrivateData->Configuration.NameValueVar0) * 2 +
- 1 + sizeof (PrivateData->Configuration.NameValueVar1) * 2 +
- 1 + sizeof (PrivateData->Configuration.NameValueVar2) * 2 + 1) * sizeof (CHAR16);
+ 1 + sizeof (PrivateData->Configuration.NameValueVar0) * 2 +
+ 1 + sizeof (PrivateData->Configuration.NameValueVar1) * 2 +
+ 1 + sizeof (PrivateData->Configuration.NameValueVar2) * 2 + 1) * sizeof (CHAR16);
*Results = AllocateZeroPool (BufferSize);
ASSERT (*Results != NULL);
StrCpyS (*Results, BufferSize / sizeof (CHAR16), ConfigRequest);
@@ -723,7 +737,7 @@ ExtractConfig (
// Append value of NameValueVar0, type is UINT8
//
if ((Value = StrStr (*Results, PrivateData->NameValueName[0])) != NULL) {
- Value += StrLen (PrivateData->NameValueName[0]);
+ Value += StrLen (PrivateData->NameValueName[0]);
ValueStrLen = ((sizeof (PrivateData->Configuration.NameValueVar0) * 2) + 1);
CopyMem (Value + ValueStrLen, Value, StrSize (Value));
@@ -744,7 +758,7 @@ ExtractConfig (
// Append value of NameValueVar1, type is UINT16
//
if ((Value = StrStr (*Results, PrivateData->NameValueName[1])) != NULL) {
- Value += StrLen (PrivateData->NameValueName[1]);
+ Value += StrLen (PrivateData->NameValueName[1]);
ValueStrLen = ((sizeof (PrivateData->Configuration.NameValueVar1) * 2) + 1);
CopyMem (Value + ValueStrLen, Value, StrSize (Value));
@@ -765,7 +779,7 @@ ExtractConfig (
// Append value of NameValueVar2, type is CHAR16 *
//
if ((Value = StrStr (*Results, PrivateData->NameValueName[2])) != NULL) {
- Value += StrLen (PrivateData->NameValueName[2]);
+ Value += StrLen (PrivateData->NameValueName[2]);
ValueStrLen = StrLen (PrivateData->Configuration.NameValueVar2) * 4 + 1;
CopyMem (Value + ValueStrLen, Value, StrSize (Value));
@@ -773,8 +787,8 @@ ExtractConfig (
//
// Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"
//
- StrPointer = (CHAR16 *) PrivateData->Configuration.NameValueVar2;
- for (; *StrPointer != L'\0'; StrPointer++) {
+ StrPointer = (CHAR16 *)PrivateData->Configuration.NameValueVar2;
+ for ( ; *StrPointer != L'\0'; StrPointer++) {
UnicodeValueToStringS (
Value,
BufferSize - ((UINTN)Value - (UINTN)*Results),
@@ -792,16 +806,16 @@ ExtractConfig (
// Convert buffer data to <ConfigResp> by helper function BlockToConfig()
//
Status = HiiConfigRouting->BlockToConfig (
- HiiConfigRouting,
- ConfigRequest,
- (UINT8 *) &PrivateData->Configuration,
- BufferSize,
- Results,
- Progress
- );
+ HiiConfigRouting,
+ ConfigRequest,
+ (UINT8 *)&PrivateData->Configuration,
+ BufferSize,
+ Results,
+ Progress
+ );
if (!EFI_ERROR (Status)) {
ConfigRequestHdr = HiiConstructConfigHdr (&gDriverSampleFormSetGuid, VariableName, PrivateData->DriverHandle[0]);
- AppendAltCfgString(Results, ConfigRequestHdr);
+ AppendAltCfgString (Results, ConfigRequestHdr);
}
}
@@ -815,6 +829,7 @@ ExtractConfig (
if (ConfigRequestHdr != NULL) {
FreePool (ConfigRequestHdr);
}
+
//
// Set Progress string to the original request string.
//
@@ -827,7 +842,6 @@ ExtractConfig (
return Status;
}
-
/**
This function processes the results of changes in configuration.
@@ -849,9 +863,9 @@ ExtractConfig (
EFI_STATUS
EFIAPI
RouteConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ OUT EFI_STRING *Progress
)
{
EFI_STATUS Status;
@@ -866,13 +880,13 @@ RouteConfig (
UINTN Index;
CHAR16 *StrBuffer;
- if (Configuration == NULL || Progress == NULL) {
+ if ((Configuration == NULL) || (Progress == NULL)) {
return EFI_INVALID_PARAMETER;
}
- PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
+ PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
HiiConfigRouting = PrivateData->HiiConfigRouting;
- *Progress = Configuration;
+ *Progress = Configuration;
//
// Check routing data in <ConfigHdr>.
@@ -886,13 +900,15 @@ RouteConfig (
// Check whether request for EFI Varstore. EFI varstore get data
// through hii database, not support in this path.
//
- if (HiiIsConfigHdrMatch(Configuration, &gDriverSampleFormSetGuid, MyEfiVar)) {
+ if (HiiIsConfigHdrMatch (Configuration, &gDriverSampleFormSetGuid, MyEfiVar)) {
return EFI_UNSUPPORTED;
}
- if (HiiIsConfigHdrMatch(Configuration, &gDriverSampleFormSetGuid, MyEfiBitVar)) {
+
+ if (HiiIsConfigHdrMatch (Configuration, &gDriverSampleFormSetGuid, MyEfiBitVar)) {
return EFI_UNSUPPORTED;
}
- if (HiiIsConfigHdrMatch(Configuration, &gDriverSampleFormSetGuid, MyEfiUnionVar)) {
+
+ if (HiiIsConfigHdrMatch (Configuration, &gDriverSampleFormSetGuid, MyEfiUnionVar)) {
return EFI_UNSUPPORTED;
}
@@ -900,13 +916,13 @@ RouteConfig (
// Get Buffer Storage data from EFI variable
//
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);
- Status = gRT->GetVariable (
- VariableName,
- &gDriverSampleFormSetGuid,
- NULL,
- &BufferSize,
- &PrivateData->Configuration
- );
+ Status = gRT->GetVariable (
+ VariableName,
+ &gDriverSampleFormSetGuid,
+ NULL,
+ &BufferSize,
+ &PrivateData->Configuration
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -939,18 +955,19 @@ RouteConfig (
if (StrPtr == NULL) {
StrPtr = Value + StrLen (Value);
}
+
//
// Convert Value to Buffer data
//
- DataBuffer = (UINT8 *) &PrivateData->Configuration.NameValueVar0;
+ DataBuffer = (UINT8 *)&PrivateData->Configuration.NameValueVar0;
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0, StrPtr --; StrPtr >= Value; StrPtr --, Index ++) {
- TemStr[0] = *StrPtr;
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0, StrPtr--; StrPtr >= Value; StrPtr--, Index++) {
+ TemStr[0] = *StrPtr;
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- DataBuffer [Index/2] = DigitUint8;
+ DataBuffer[Index/2] = DigitUint8;
} else {
- DataBuffer [Index/2] = (UINT8) ((UINT8) (DigitUint8 << 4) + DataBuffer [Index/2]);
+ DataBuffer[Index/2] = (UINT8)((UINT8)(DigitUint8 << 4) + DataBuffer[Index/2]);
}
}
}
@@ -971,18 +988,19 @@ RouteConfig (
if (StrPtr == NULL) {
StrPtr = Value + StrLen (Value);
}
+
//
// Convert Value to Buffer data
//
- DataBuffer = (UINT8 *) &PrivateData->Configuration.NameValueVar1;
+ DataBuffer = (UINT8 *)&PrivateData->Configuration.NameValueVar1;
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0, StrPtr --; StrPtr >= Value; StrPtr --, Index ++) {
- TemStr[0] = *StrPtr;
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0, StrPtr--; StrPtr >= Value; StrPtr--, Index++) {
+ TemStr[0] = *StrPtr;
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- DataBuffer [Index/2] = DigitUint8;
+ DataBuffer[Index/2] = DigitUint8;
} else {
- DataBuffer [Index/2] = (UINT8) ((UINT8) (DigitUint8 << 4) + DataBuffer [Index/2]);
+ DataBuffer[Index/2] = (UINT8)((UINT8)(DigitUint8 << 4) + DataBuffer[Index/2]);
}
}
}
@@ -1003,29 +1021,31 @@ RouteConfig (
if (StrPtr == NULL) {
StrPtr = Value + StrLen (Value);
}
+
//
// Convert Config String to Unicode String, e.g "0041004200430044" => "ABCD"
//
- StrBuffer = (CHAR16 *) PrivateData->Configuration.NameValueVar2;
+ StrBuffer = (CHAR16 *)PrivateData->Configuration.NameValueVar2;
ZeroMem (TemStr, sizeof (TemStr));
while (Value < StrPtr) {
StrnCpyS (TemStr, sizeof (TemStr) / sizeof (CHAR16), Value, 4);
- *(StrBuffer++) = (CHAR16) StrHexToUint64 (TemStr);
- Value += 4;
+ *(StrBuffer++) = (CHAR16)StrHexToUint64 (TemStr);
+ Value += 4;
}
+
*StrBuffer = L'\0';
}
//
// Store Buffer Storage back to EFI variable
//
- Status = gRT->SetVariable(
- VariableName,
- &gDriverSampleFormSetGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- sizeof (DRIVER_SAMPLE_CONFIGURATION),
- &PrivateData->Configuration
- );
+ Status = gRT->SetVariable (
+ VariableName,
+ &gDriverSampleFormSetGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ sizeof (DRIVER_SAMPLE_CONFIGURATION),
+ &PrivateData->Configuration
+ );
return Status;
}
@@ -1034,13 +1054,13 @@ RouteConfig (
// Convert <ConfigResp> to buffer data by helper function ConfigToBlock()
//
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);
- Status = HiiConfigRouting->ConfigToBlock (
- HiiConfigRouting,
- Configuration,
- (UINT8 *) &PrivateData->Configuration,
- &BufferSize,
- Progress
- );
+ Status = HiiConfigRouting->ConfigToBlock (
+ HiiConfigRouting,
+ Configuration,
+ (UINT8 *)&PrivateData->Configuration,
+ &BufferSize,
+ Progress
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1048,7 +1068,7 @@ RouteConfig (
//
// Store Buffer Storage back to EFI variable
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gDriverSampleFormSetGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -1059,7 +1079,6 @@ RouteConfig (
return Status;
}
-
/**
This function processes the results of changes in configuration.
@@ -1085,49 +1104,49 @@ RouteConfig (
EFI_STATUS
EFIAPI
DriverCallback (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN EFI_BROWSER_ACTION Action,
- IN EFI_QUESTION_ID QuestionId,
- IN UINT8 Type,
- IN EFI_IFR_TYPE_VALUE *Value,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN EFI_BROWSER_ACTION Action,
+ IN EFI_QUESTION_ID QuestionId,
+ IN UINT8 Type,
+ IN EFI_IFR_TYPE_VALUE *Value,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
{
- DRIVER_SAMPLE_PRIVATE_DATA *PrivateData;
- EFI_STATUS Status;
- VOID *StartOpCodeHandle;
- VOID *OptionsOpCodeHandle;
- EFI_IFR_GUID_LABEL *StartLabel;
- VOID *EndOpCodeHandle;
- EFI_IFR_GUID_LABEL *EndLabel;
- EFI_INPUT_KEY Key;
- DRIVER_SAMPLE_CONFIGURATION *Configuration;
- MY_EFI_VARSTORE_DATA *EfiData;
- EFI_FORM_ID FormId;
- EFI_STRING Progress;
- EFI_STRING Results;
- UINT32 ProgressErr;
- CHAR16 *TmpStr;
- UINTN Index;
- UINT64 BufferValue;
- EFI_HII_POPUP_SELECTION UserSelection;
+ DRIVER_SAMPLE_PRIVATE_DATA *PrivateData;
+ EFI_STATUS Status;
+ VOID *StartOpCodeHandle;
+ VOID *OptionsOpCodeHandle;
+ EFI_IFR_GUID_LABEL *StartLabel;
+ VOID *EndOpCodeHandle;
+ EFI_IFR_GUID_LABEL *EndLabel;
+ EFI_INPUT_KEY Key;
+ DRIVER_SAMPLE_CONFIGURATION *Configuration;
+ MY_EFI_VARSTORE_DATA *EfiData;
+ EFI_FORM_ID FormId;
+ EFI_STRING Progress;
+ EFI_STRING Results;
+ UINT32 ProgressErr;
+ CHAR16 *TmpStr;
+ UINTN Index;
+ UINT64 BufferValue;
+ EFI_HII_POPUP_SELECTION UserSelection;
UserSelection = 0xFF;
- if (((Value == NULL) && (Action != EFI_BROWSER_ACTION_FORM_OPEN) && (Action != EFI_BROWSER_ACTION_FORM_CLOSE))||
- (ActionRequest == NULL)) {
+ if (((Value == NULL) && (Action != EFI_BROWSER_ACTION_FORM_OPEN) && (Action != EFI_BROWSER_ACTION_FORM_CLOSE)) ||
+ (ActionRequest == NULL))
+ {
return EFI_INVALID_PARAMETER;
}
-
- FormId = 0;
+ FormId = 0;
ProgressErr = 0;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
BufferValue = 3;
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
switch (Action) {
- case EFI_BROWSER_ACTION_FORM_OPEN:
+ case EFI_BROWSER_ACTION_FORM_OPEN:
{
if (QuestionId == 0x1234) {
//
@@ -1146,18 +1165,18 @@ DriverCallback (
//
// Create Hii Extend Label OpCode as the start opcode
//
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
StartLabel->Number = LABEL_UPDATE2;
HiiCreateActionOpCode (
StartOpCodeHandle, // Container for dynamic created opcodes
0x1238, // Question ID
- STRING_TOKEN(STR_SAVE_TEXT), // Prompt text
- STRING_TOKEN(STR_SAVE_TEXT), // Help text
+ STRING_TOKEN (STR_SAVE_TEXT), // Prompt text
+ STRING_TOKEN (STR_SAVE_TEXT), // Help text
EFI_IFR_FLAG_CALLBACK, // Question flag
0 // Action String ID
- );
+ );
HiiUpdateForm (
PrivateData->HiiHandle[0], // HII handle
@@ -1174,10 +1193,11 @@ DriverCallback (
Status = InternalStartMonitor ();
ASSERT_EFI_ERROR (Status);
}
+
+ break;
}
- break;
- case EFI_BROWSER_ACTION_FORM_CLOSE:
+ case EFI_BROWSER_ACTION_FORM_CLOSE:
{
if (QuestionId == 0x5678) {
//
@@ -1201,467 +1221,482 @@ DriverCallback (
Status = InternalStopMonitor ();
ASSERT_EFI_ERROR (Status);
}
+
+ break;
}
- break;
- case EFI_BROWSER_ACTION_RETRIEVE:
+ case EFI_BROWSER_ACTION_RETRIEVE:
{
switch (QuestionId ) {
- case 0x1248:
- if (Type != EFI_IFR_TYPE_REF) {
- return EFI_INVALID_PARAMETER;
- }
- Value->ref.FormId = 0x3;
- break;
+ case 0x1248:
+ if (Type != EFI_IFR_TYPE_REF) {
+ return EFI_INVALID_PARAMETER;
+ }
- case 0x5678:
- case 0x1247:
- //
- // We will reach here once the Question is refreshed
- //
+ Value->ref.FormId = 0x3;
+ break;
- //
- // Initialize the container for dynamic opcodes
- //
- StartOpCodeHandle = HiiAllocateOpCodeHandle ();
- ASSERT (StartOpCodeHandle != NULL);
+ case 0x5678:
+ case 0x1247:
+ //
+ // We will reach here once the Question is refreshed
+ //
- //
- // Create Hii Extend Label OpCode as the start opcode
- //
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
- StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
- if (QuestionId == 0x5678) {
- StartLabel->Number = LABEL_UPDATE2;
- FormId = 0x03;
- PrivateData->Configuration.DynamicRefresh++;
- } else if (QuestionId == 0x1247 ) {
- StartLabel->Number = LABEL_UPDATE3;
- FormId = 0x06;
- PrivateData->Configuration.RefreshGuidCount++;
- }
+ //
+ // Initialize the container for dynamic opcodes
+ //
+ StartOpCodeHandle = HiiAllocateOpCodeHandle ();
+ ASSERT (StartOpCodeHandle != NULL);
- HiiCreateActionOpCode (
- StartOpCodeHandle, // Container for dynamic created opcodes
- 0x1237, // Question ID
- STRING_TOKEN(STR_EXIT_TEXT), // Prompt text
- STRING_TOKEN(STR_EXIT_TEXT), // Help text
- EFI_IFR_FLAG_CALLBACK, // Question flag
- 0 // Action String ID
- );
+ //
+ // Create Hii Extend Label OpCode as the start opcode
+ //
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
+ if (QuestionId == 0x5678) {
+ StartLabel->Number = LABEL_UPDATE2;
+ FormId = 0x03;
+ PrivateData->Configuration.DynamicRefresh++;
+ } else if (QuestionId == 0x1247 ) {
+ StartLabel->Number = LABEL_UPDATE3;
+ FormId = 0x06;
+ PrivateData->Configuration.RefreshGuidCount++;
+ }
- HiiUpdateForm (
- PrivateData->HiiHandle[0], // HII handle
- &gDriverSampleFormSetGuid, // Formset GUID
- FormId, // Form ID
- StartOpCodeHandle, // Label for where to insert opcodes
- NULL // Insert data
- );
+ HiiCreateActionOpCode (
+ StartOpCodeHandle, // Container for dynamic created opcodes
+ 0x1237, // Question ID
+ STRING_TOKEN (STR_EXIT_TEXT), // Prompt text
+ STRING_TOKEN (STR_EXIT_TEXT), // Help text
+ EFI_IFR_FLAG_CALLBACK, // Question flag
+ 0 // Action String ID
+ );
- HiiFreeOpCodeHandle (StartOpCodeHandle);
+ HiiUpdateForm (
+ PrivateData->HiiHandle[0], // HII handle
+ &gDriverSampleFormSetGuid, // Formset GUID
+ FormId, // Form ID
+ StartOpCodeHandle, // Label for where to insert opcodes
+ NULL // Insert data
+ );
+
+ HiiFreeOpCodeHandle (StartOpCodeHandle);
- //
- // Refresh the Question value
- //
- Status = gRT->SetVariable(
- VariableName,
- &gDriverSampleFormSetGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- sizeof (DRIVER_SAMPLE_CONFIGURATION),
- &PrivateData->Configuration
- );
-
- if (QuestionId == 0x5678) {
//
- // Update uncommitted data of Browser
+ // Refresh the Question value
//
- EfiData = AllocateZeroPool (sizeof (MY_EFI_VARSTORE_DATA));
- ASSERT (EfiData != NULL);
- if (HiiGetBrowserData (&gDriverSampleFormSetGuid, MyEfiVar, sizeof (MY_EFI_VARSTORE_DATA), (UINT8 *) EfiData)) {
- EfiData->Field8 = 111;
- HiiSetBrowserData (
- &gDriverSampleFormSetGuid,
- MyEfiVar,
- sizeof (MY_EFI_VARSTORE_DATA),
- (UINT8 *) EfiData,
- NULL
- );
+ Status = gRT->SetVariable (
+ VariableName,
+ &gDriverSampleFormSetGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ sizeof (DRIVER_SAMPLE_CONFIGURATION),
+ &PrivateData->Configuration
+ );
+
+ if (QuestionId == 0x5678) {
+ //
+ // Update uncommitted data of Browser
+ //
+ EfiData = AllocateZeroPool (sizeof (MY_EFI_VARSTORE_DATA));
+ ASSERT (EfiData != NULL);
+ if (HiiGetBrowserData (&gDriverSampleFormSetGuid, MyEfiVar, sizeof (MY_EFI_VARSTORE_DATA), (UINT8 *)EfiData)) {
+ EfiData->Field8 = 111;
+ HiiSetBrowserData (
+ &gDriverSampleFormSetGuid,
+ MyEfiVar,
+ sizeof (MY_EFI_VARSTORE_DATA),
+ (UINT8 *)EfiData,
+ NULL
+ );
+ }
+
+ FreePool (EfiData);
}
- FreePool (EfiData);
- }
- break;
+
+ break;
}
+
+ break;
}
- break;
- case EFI_BROWSER_ACTION_DEFAULT_STANDARD:
+ case EFI_BROWSER_ACTION_DEFAULT_STANDARD:
{
switch (QuestionId) {
- case 0x1240:
- Value->u8 = DEFAULT_CLASS_STANDARD_VALUE;
- break;
+ case 0x1240:
+ Value->u8 = DEFAULT_CLASS_STANDARD_VALUE;
+ break;
- case 0x1252:
- for (Index = 0; Index < 3; Index ++) {
- SetArrayData (Value, EFI_IFR_TYPE_NUM_SIZE_8, Index, BufferValue--);
- }
- break;
+ case 0x1252:
+ for (Index = 0; Index < 3; Index++) {
+ SetArrayData (Value, EFI_IFR_TYPE_NUM_SIZE_8, Index, BufferValue--);
+ }
- case 0x6666:
- Value->u8 = 12;
- break;
+ break;
- default:
- Status = EFI_UNSUPPORTED;
- break;
+ case 0x6666:
+ Value->u8 = 12;
+ break;
+
+ default:
+ Status = EFI_UNSUPPORTED;
+ break;
}
+
+ break;
}
- break;
- case EFI_BROWSER_ACTION_DEFAULT_MANUFACTURING:
+ case EFI_BROWSER_ACTION_DEFAULT_MANUFACTURING:
{
switch (QuestionId) {
- case 0x1240:
- Value->u8 = DEFAULT_CLASS_MANUFACTURING_VALUE;
- break;
+ case 0x1240:
+ Value->u8 = DEFAULT_CLASS_MANUFACTURING_VALUE;
+ break;
- case 0x6666:
- Value->u8 = 13;
- break;
+ case 0x6666:
+ Value->u8 = 13;
+ break;
- default:
- Status = EFI_UNSUPPORTED;
- break;
+ default:
+ Status = EFI_UNSUPPORTED;
+ break;
}
+
+ break;
}
- break;
- case EFI_BROWSER_ACTION_CHANGING:
- {
- switch (QuestionId) {
- case 0x1249:
- {
- if (Type != EFI_IFR_TYPE_REF) {
- return EFI_INVALID_PARAMETER;
+ case EFI_BROWSER_ACTION_CHANGING:
+ {
+ switch (QuestionId) {
+ case 0x1249:
+ {
+ if (Type != EFI_IFR_TYPE_REF) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Value->ref.FormId = 0x1234;
+ break;
}
+ case 0x1234:
+ //
+ // Initialize the container for dynamic opcodes
+ //
+ StartOpCodeHandle = HiiAllocateOpCodeHandle ();
+ ASSERT (StartOpCodeHandle != NULL);
- Value->ref.FormId = 0x1234;
- }
- break;
- case 0x1234:
- //
- // Initialize the container for dynamic opcodes
- //
- StartOpCodeHandle = HiiAllocateOpCodeHandle ();
- ASSERT (StartOpCodeHandle != NULL);
+ EndOpCodeHandle = HiiAllocateOpCodeHandle ();
+ ASSERT (EndOpCodeHandle != NULL);
- EndOpCodeHandle = HiiAllocateOpCodeHandle ();
- ASSERT (EndOpCodeHandle != NULL);
+ //
+ // Create Hii Extend Label OpCode as the start opcode
+ //
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
+ StartLabel->Number = LABEL_UPDATE1;
- //
- // Create Hii Extend Label OpCode as the start opcode
- //
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
- StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
- StartLabel->Number = LABEL_UPDATE1;
+ //
+ // Create Hii Extend Label OpCode as the end opcode
+ //
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
+ EndLabel->Number = LABEL_END;
+
+ HiiCreateActionOpCode (
+ StartOpCodeHandle, // Container for dynamic created opcodes
+ 0x1237, // Question ID
+ STRING_TOKEN (STR_EXIT_TEXT), // Prompt text
+ STRING_TOKEN (STR_EXIT_TEXT), // Help text
+ EFI_IFR_FLAG_CALLBACK, // Question flag
+ 0 // Action String ID
+ );
- //
- // Create Hii Extend Label OpCode as the end opcode
- //
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
- EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
- EndLabel->Number = LABEL_END;
-
- HiiCreateActionOpCode (
- StartOpCodeHandle, // Container for dynamic created opcodes
- 0x1237, // Question ID
- STRING_TOKEN(STR_EXIT_TEXT), // Prompt text
- STRING_TOKEN(STR_EXIT_TEXT), // Help text
- EFI_IFR_FLAG_CALLBACK, // Question flag
- 0 // Action String ID
- );
+ //
+ // Create Option OpCode
+ //
+ OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();
+ ASSERT (OptionsOpCodeHandle != NULL);
+
+ HiiCreateOneOfOptionOpCode (
+ OptionsOpCodeHandle,
+ STRING_TOKEN (STR_BOOT_OPTION1),
+ 0,
+ EFI_IFR_NUMERIC_SIZE_1,
+ 1
+ );
- //
- // Create Option OpCode
- //
- OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();
- ASSERT (OptionsOpCodeHandle != NULL);
-
- HiiCreateOneOfOptionOpCode (
- OptionsOpCodeHandle,
- STRING_TOKEN (STR_BOOT_OPTION1),
- 0,
- EFI_IFR_NUMERIC_SIZE_1,
- 1
- );
+ HiiCreateOneOfOptionOpCode (
+ OptionsOpCodeHandle,
+ STRING_TOKEN (STR_BOOT_OPTION2),
+ 0,
+ EFI_IFR_NUMERIC_SIZE_1,
+ 2
+ );
- HiiCreateOneOfOptionOpCode (
- OptionsOpCodeHandle,
- STRING_TOKEN (STR_BOOT_OPTION2),
- 0,
- EFI_IFR_NUMERIC_SIZE_1,
- 2
- );
+ //
+ // Prepare initial value for the dynamic created oneof Question
+ //
+ PrivateData->Configuration.DynamicOneof = 2;
+ Status = gRT->SetVariable (
+ VariableName,
+ &gDriverSampleFormSetGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+ sizeof (DRIVER_SAMPLE_CONFIGURATION),
+ &PrivateData->Configuration
+ );
- //
- // Prepare initial value for the dynamic created oneof Question
- //
- PrivateData->Configuration.DynamicOneof = 2;
- Status = gRT->SetVariable(
- VariableName,
- &gDriverSampleFormSetGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- sizeof (DRIVER_SAMPLE_CONFIGURATION),
- &PrivateData->Configuration
- );
+ //
+ // Set initial vlaue of dynamic created oneof Question in Form Browser
+ //
+ Configuration = AllocateZeroPool (sizeof (DRIVER_SAMPLE_CONFIGURATION));
+ ASSERT (Configuration != NULL);
+ if (HiiGetBrowserData (&gDriverSampleFormSetGuid, VariableName, sizeof (DRIVER_SAMPLE_CONFIGURATION), (UINT8 *)Configuration)) {
+ Configuration->DynamicOneof = 2;
+
+ //
+ // Update uncommitted data of Browser
+ //
+ HiiSetBrowserData (
+ &gDriverSampleFormSetGuid,
+ VariableName,
+ sizeof (DRIVER_SAMPLE_CONFIGURATION),
+ (UINT8 *)Configuration,
+ NULL
+ );
+ }
- //
- // Set initial vlaue of dynamic created oneof Question in Form Browser
- //
- Configuration = AllocateZeroPool (sizeof (DRIVER_SAMPLE_CONFIGURATION));
- ASSERT (Configuration != NULL);
- if (HiiGetBrowserData (&gDriverSampleFormSetGuid, VariableName, sizeof (DRIVER_SAMPLE_CONFIGURATION), (UINT8 *) Configuration)) {
- Configuration->DynamicOneof = 2;
+ FreePool (Configuration);
+
+ HiiCreateOneOfOpCode (
+ StartOpCodeHandle, // Container for dynamic created opcodes
+ 0x8001, // Question ID (or call it "key")
+ CONFIGURATION_VARSTORE_ID, // VarStore ID
+ (UINT16)DYNAMIC_ONE_OF_VAR_OFFSET, // Offset in Buffer Storage
+ STRING_TOKEN (STR_ONE_OF_PROMPT), // Question prompt text
+ STRING_TOKEN (STR_ONE_OF_HELP), // Question help text
+ EFI_IFR_FLAG_CALLBACK, // Question flag
+ EFI_IFR_NUMERIC_SIZE_1, // Data type of Question Value
+ OptionsOpCodeHandle, // Option Opcode list
+ NULL // Default Opcode is NULl
+ );
- //
- // Update uncommitted data of Browser
- //
- HiiSetBrowserData (
- &gDriverSampleFormSetGuid,
- VariableName,
- sizeof (DRIVER_SAMPLE_CONFIGURATION),
- (UINT8 *) Configuration,
- NULL
- );
- }
- FreePool (Configuration);
-
- HiiCreateOneOfOpCode (
- StartOpCodeHandle, // Container for dynamic created opcodes
- 0x8001, // Question ID (or call it "key")
- CONFIGURATION_VARSTORE_ID, // VarStore ID
- (UINT16) DYNAMIC_ONE_OF_VAR_OFFSET, // Offset in Buffer Storage
- STRING_TOKEN (STR_ONE_OF_PROMPT), // Question prompt text
- STRING_TOKEN (STR_ONE_OF_HELP), // Question help text
- EFI_IFR_FLAG_CALLBACK, // Question flag
- EFI_IFR_NUMERIC_SIZE_1, // Data type of Question Value
- OptionsOpCodeHandle, // Option Opcode list
- NULL // Default Opcode is NULl
- );
+ HiiCreateOrderedListOpCode (
+ StartOpCodeHandle, // Container for dynamic created opcodes
+ 0x8002, // Question ID
+ CONFIGURATION_VARSTORE_ID, // VarStore ID
+ (UINT16)DYNAMIC_ORDERED_LIST_VAR_OFFSET, // Offset in Buffer Storage
+ STRING_TOKEN (STR_BOOT_OPTIONS), // Question prompt text
+ STRING_TOKEN (STR_BOOT_OPTIONS), // Question help text
+ EFI_IFR_FLAG_RESET_REQUIRED, // Question flag
+ 0, // Ordered list flag, e.g. EFI_IFR_UNIQUE_SET
+ EFI_IFR_NUMERIC_SIZE_1, // Data type of Question value
+ 5, // Maximum container
+ OptionsOpCodeHandle, // Option Opcode list
+ NULL // Default Opcode is NULl
+ );
- HiiCreateOrderedListOpCode (
- StartOpCodeHandle, // Container for dynamic created opcodes
- 0x8002, // Question ID
- CONFIGURATION_VARSTORE_ID, // VarStore ID
- (UINT16) DYNAMIC_ORDERED_LIST_VAR_OFFSET, // Offset in Buffer Storage
- STRING_TOKEN (STR_BOOT_OPTIONS), // Question prompt text
- STRING_TOKEN (STR_BOOT_OPTIONS), // Question help text
- EFI_IFR_FLAG_RESET_REQUIRED, // Question flag
- 0, // Ordered list flag, e.g. EFI_IFR_UNIQUE_SET
- EFI_IFR_NUMERIC_SIZE_1, // Data type of Question value
- 5, // Maximum container
- OptionsOpCodeHandle, // Option Opcode list
- NULL // Default Opcode is NULl
- );
+ HiiCreateTextOpCode (
+ StartOpCodeHandle,
+ STRING_TOKEN (STR_TEXT_SAMPLE_HELP),
+ STRING_TOKEN (STR_TEXT_SAMPLE_HELP),
+ STRING_TOKEN (STR_TEXT_SAMPLE_STRING)
+ );
- HiiCreateTextOpCode (
- StartOpCodeHandle,
- STRING_TOKEN(STR_TEXT_SAMPLE_HELP),
- STRING_TOKEN(STR_TEXT_SAMPLE_HELP),
- STRING_TOKEN(STR_TEXT_SAMPLE_STRING)
- );
+ HiiCreateDateOpCode (
+ StartOpCodeHandle,
+ 0x8004,
+ 0x0,
+ 0x0,
+ STRING_TOKEN (STR_DATE_SAMPLE_HELP),
+ STRING_TOKEN (STR_DATE_SAMPLE_HELP),
+ 0,
+ QF_DATE_STORAGE_TIME,
+ NULL
+ );
- HiiCreateDateOpCode (
- StartOpCodeHandle,
- 0x8004,
- 0x0,
- 0x0,
- STRING_TOKEN(STR_DATE_SAMPLE_HELP),
- STRING_TOKEN(STR_DATE_SAMPLE_HELP),
- 0,
- QF_DATE_STORAGE_TIME,
- NULL
- );
+ HiiCreateTimeOpCode (
+ StartOpCodeHandle,
+ 0x8005,
+ 0x0,
+ 0x0,
+ STRING_TOKEN (STR_TIME_SAMPLE_HELP),
+ STRING_TOKEN (STR_TIME_SAMPLE_HELP),
+ 0,
+ QF_TIME_STORAGE_TIME,
+ NULL
+ );
- HiiCreateTimeOpCode (
- StartOpCodeHandle,
- 0x8005,
- 0x0,
- 0x0,
- STRING_TOKEN(STR_TIME_SAMPLE_HELP),
- STRING_TOKEN(STR_TIME_SAMPLE_HELP),
- 0,
- QF_TIME_STORAGE_TIME,
- NULL
- );
+ HiiCreateGotoOpCode (
+ StartOpCodeHandle, // Container for dynamic created opcodes
+ 1, // Target Form ID
+ STRING_TOKEN (STR_GOTO_FORM1), // Prompt text
+ STRING_TOKEN (STR_GOTO_HELP), // Help text
+ 0, // Question flag
+ 0x8003 // Question ID
+ );
- HiiCreateGotoOpCode (
- StartOpCodeHandle, // Container for dynamic created opcodes
- 1, // Target Form ID
- STRING_TOKEN (STR_GOTO_FORM1), // Prompt text
- STRING_TOKEN (STR_GOTO_HELP), // Help text
- 0, // Question flag
- 0x8003 // Question ID
- );
+ HiiUpdateForm (
+ PrivateData->HiiHandle[0], // HII handle
+ &gDriverSampleFormSetGuid, // Formset GUID
+ 0x1234, // Form ID
+ StartOpCodeHandle, // Label for where to insert opcodes
+ EndOpCodeHandle // Replace data
+ );
- HiiUpdateForm (
- PrivateData->HiiHandle[0], // HII handle
- &gDriverSampleFormSetGuid, // Formset GUID
- 0x1234, // Form ID
- StartOpCodeHandle, // Label for where to insert opcodes
- EndOpCodeHandle // Replace data
- );
+ HiiFreeOpCodeHandle (StartOpCodeHandle);
+ HiiFreeOpCodeHandle (OptionsOpCodeHandle);
+ HiiFreeOpCodeHandle (EndOpCodeHandle);
+ break;
- HiiFreeOpCodeHandle (StartOpCodeHandle);
- HiiFreeOpCodeHandle (OptionsOpCodeHandle);
- HiiFreeOpCodeHandle (EndOpCodeHandle);
- break;
+ default:
+ break;
+ }
- default:
break;
}
- }
- break;
- case EFI_BROWSER_ACTION_CHANGED:
- switch (QuestionId) {
- case 0x1237:
- //
- // User press "Exit now", request Browser to exit
- //
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;
- break;
+ case EFI_BROWSER_ACTION_CHANGED:
+ switch (QuestionId) {
+ case 0x1237:
+ //
+ // User press "Exit now", request Browser to exit
+ //
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;
+ break;
- case 0x1238:
- //
- // User press "Save now", request Browser to save the uncommitted data.
- //
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;
- break;
+ case 0x1238:
+ //
+ // User press "Save now", request Browser to save the uncommitted data.
+ //
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;
+ break;
- case 0x1241:
- case 0x1246:
- //
- // User press "Submit current form and Exit now", request Browser to submit current form and exit
- //
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;
- break;
+ case 0x1241:
+ case 0x1246:
+ //
+ // User press "Submit current form and Exit now", request Browser to submit current form and exit
+ //
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;
+ break;
- case 0x1242:
- //
- // User press "Discard current form now", request Browser to discard the uncommitted data.
- //
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD;
- break;
+ case 0x1242:
+ //
+ // User press "Discard current form now", request Browser to discard the uncommitted data.
+ //
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD;
+ break;
- case 0x1243:
- //
- // User press "Submit current form now", request Browser to save the uncommitted data.
- //
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
- break;
+ case 0x1243:
+ //
+ // User press "Submit current form now", request Browser to save the uncommitted data.
+ //
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
+ break;
- case 0x1244:
- case 0x1245:
- //
- // User press "Discard current form and Exit now", request Browser to discard the uncommitted data and exit.
- //
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
- break;
+ case 0x1244:
+ case 0x1245:
+ //
+ // User press "Discard current form and Exit now", request Browser to discard the uncommitted data and exit.
+ //
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
+ break;
- case 0x1231:
- //
- // 1. Check to see whether system support keyword.
- //
- Status = PrivateData->HiiKeywordHandler->GetData (PrivateData->HiiKeywordHandler,
- L"NAMESPACE=x-UEFI-ns",
- L"KEYWORD=iSCSIBootEnable",
- &Progress,
- &ProgressErr,
- &Results
- );
- if (EFI_ERROR (Status)) {
- do {
- CreatePopUp (
- EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
- &Key,
- L"",
- L"This system not support this keyword!",
- L"Press ENTER to continue ...",
- L"",
- NULL
- );
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+ case 0x1231:
+ //
+ // 1. Check to see whether system support keyword.
+ //
+ Status = PrivateData->HiiKeywordHandler->GetData (
+ PrivateData->HiiKeywordHandler,
+ L"NAMESPACE=x-UEFI-ns",
+ L"KEYWORD=iSCSIBootEnable",
+ &Progress,
+ &ProgressErr,
+ &Results
+ );
+ if (EFI_ERROR (Status)) {
+ do {
+ CreatePopUp (
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
+ &Key,
+ L"",
+ L"This system not support this keyword!",
+ L"Press ENTER to continue ...",
+ L"",
+ NULL
+ );
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
- Status = EFI_SUCCESS;
- break;
- }
+ Status = EFI_SUCCESS;
+ break;
+ }
- //
- // 2. If system support this keyword, just try to change value.
- //
+ //
+ // 2. If system support this keyword, just try to change value.
+ //
- //
- // Change value from '0' to '1' or from '1' to '0'
- //
- TmpStr = StrStr (Results, L"&VALUE=");
- ASSERT (TmpStr != NULL);
- TmpStr += StrLen (L"&VALUE=");
- TmpStr++;
- if (*TmpStr == L'0') {
- *TmpStr = L'1';
- } else {
- *TmpStr = L'0';
- }
+ //
+ // Change value from '0' to '1' or from '1' to '0'
+ //
+ TmpStr = StrStr (Results, L"&VALUE=");
+ ASSERT (TmpStr != NULL);
+ TmpStr += StrLen (L"&VALUE=");
+ TmpStr++;
+ if (*TmpStr == L'0') {
+ *TmpStr = L'1';
+ } else {
+ *TmpStr = L'0';
+ }
- //
- // 3. Call the keyword handler protocol to change the value.
- //
- Status = PrivateData->HiiKeywordHandler->SetData (PrivateData->HiiKeywordHandler,
- Results,
- &Progress,
- &ProgressErr
- );
- if (EFI_ERROR (Status)) {
- do {
- CreatePopUp (
- EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
- &Key,
- L"",
- L"Set keyword to the system failed!",
- L"Press ENTER to continue ...",
- L"",
- NULL
- );
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+ //
+ // 3. Call the keyword handler protocol to change the value.
+ //
+ Status = PrivateData->HiiKeywordHandler->SetData (
+ PrivateData->HiiKeywordHandler,
+ Results,
+ &Progress,
+ &ProgressErr
+ );
+ if (EFI_ERROR (Status)) {
+ do {
+ CreatePopUp (
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
+ &Key,
+ L"",
+ L"Set keyword to the system failed!",
+ L"Press ENTER to continue ...",
+ L"",
+ NULL
+ );
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);
+
+ Status = EFI_SUCCESS;
+ break;
+ }
- Status = EFI_SUCCESS;
break;
- }
- break;
-
- case 0x1330:
- Status = mPrivateData->HiiPopup->CreatePopup (
- mPrivateData->HiiPopup,
- EfiHiiPopupStyleInfo,
- EfiHiiPopupTypeYesNo,
- mPrivateData->HiiHandle[0],
- STRING_TOKEN (STR_POPUP_STRING),
- &UserSelection
- );
- if (!EFI_ERROR (Status)) {
- if (UserSelection == EfiHiiPopupSelectionYes) {
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;
+
+ case 0x1330:
+ Status = mPrivateData->HiiPopup->CreatePopup (
+ mPrivateData->HiiPopup,
+ EfiHiiPopupStyleInfo,
+ EfiHiiPopupTypeYesNo,
+ mPrivateData->HiiHandle[0],
+ STRING_TOKEN (STR_POPUP_STRING),
+ &UserSelection
+ );
+ if (!EFI_ERROR (Status)) {
+ if (UserSelection == EfiHiiPopupSelectionYes) {
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;
+ }
}
- }
- break;
- default:
+ break;
+
+ default:
+ break;
+ }
+
break;
- }
- break;
- case EFI_BROWSER_ACTION_SUBMITTED:
+ case EFI_BROWSER_ACTION_SUBMITTED:
{
if (QuestionId == 0x1250) {
//
@@ -1680,12 +1715,13 @@ DriverCallback (
);
} while ((Key.ScanCode != SCAN_ESC) && (Key.UnicodeChar != CHAR_CARRIAGE_RETURN));
}
+
+ break;
}
- break;
- default:
- Status = EFI_UNSUPPORTED;
- break;
+ default:
+ Status = EFI_UNSUPPORTED;
+ break;
}
return Status;
@@ -1703,30 +1739,30 @@ DriverCallback (
EFI_STATUS
EFIAPI
DriverSampleInit (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_HII_HANDLE HiiHandle[2];
- EFI_SCREEN_DESCRIPTOR Screen;
- EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
- EFI_HII_STRING_PROTOCOL *HiiString;
- EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
- EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
- EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *HiiKeywordHandler;
- EFI_HII_POPUP_PROTOCOL *PopupHandler;
- CHAR16 *NewString;
- UINTN BufferSize;
- DRIVER_SAMPLE_CONFIGURATION *Configuration;
- BOOLEAN ActionFlag;
- EFI_STRING ConfigRequestHdr;
- EFI_STRING NameRequestHdr;
- MY_EFI_VARSTORE_DATA *VarStoreConfig;
- MY_EFI_BITS_VARSTORE_DATA *BitsVarStoreConfig;
- MY_EFI_UNION_DATA *UnionConfig;
- EFI_INPUT_KEY HotKey;
- EDKII_FORM_BROWSER_EXTENSION_PROTOCOL *FormBrowserEx;
+ EFI_STATUS Status;
+ EFI_HII_HANDLE HiiHandle[2];
+ EFI_SCREEN_DESCRIPTOR Screen;
+ EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
+ EFI_HII_STRING_PROTOCOL *HiiString;
+ EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
+ EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
+ EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *HiiKeywordHandler;
+ EFI_HII_POPUP_PROTOCOL *PopupHandler;
+ CHAR16 *NewString;
+ UINTN BufferSize;
+ DRIVER_SAMPLE_CONFIGURATION *Configuration;
+ BOOLEAN ActionFlag;
+ EFI_STRING ConfigRequestHdr;
+ EFI_STRING NameRequestHdr;
+ MY_EFI_VARSTORE_DATA *VarStoreConfig;
+ MY_EFI_BITS_VARSTORE_DATA *BitsVarStoreConfig;
+ MY_EFI_UNION_DATA *UnionConfig;
+ EFI_INPUT_KEY HotKey;
+ EDKII_FORM_BROWSER_EXTENSION_PROTOCOL *FormBrowserEx;
//
// Initialize the local variables.
@@ -1741,8 +1777,8 @@ DriverSampleInit (
ZeroMem (&Screen, sizeof (EFI_SCREEN_DESCRIPTOR));
gST->ConOut->QueryMode (gST->ConOut, gST->ConOut->Mode->Mode, &Screen.RightColumn, &Screen.BottomRow);
- Screen.TopRow = 3;
- Screen.BottomRow = Screen.BottomRow - 3;
+ Screen.TopRow = 3;
+ Screen.BottomRow = Screen.BottomRow - 3;
//
// Initialize driver private data
@@ -1755,61 +1791,67 @@ DriverSampleInit (
mPrivateData->Signature = DRIVER_SAMPLE_PRIVATE_SIGNATURE;
mPrivateData->ConfigAccess.ExtractConfig = ExtractConfig;
- mPrivateData->ConfigAccess.RouteConfig = RouteConfig;
- mPrivateData->ConfigAccess.Callback = DriverCallback;
+ mPrivateData->ConfigAccess.RouteConfig = RouteConfig;
+ mPrivateData->ConfigAccess.Callback = DriverCallback;
//
// Locate Hii Database protocol
//
- Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &HiiDatabase);
+ Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **)&HiiDatabase);
if (EFI_ERROR (Status)) {
return Status;
}
+
mPrivateData->HiiDatabase = HiiDatabase;
//
// Locate HiiString protocol
//
- Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **) &HiiString);
+ Status = gBS->LocateProtocol (&gEfiHiiStringProtocolGuid, NULL, (VOID **)&HiiString);
if (EFI_ERROR (Status)) {
return Status;
}
+
mPrivateData->HiiString = HiiString;
//
// Locate Formbrowser2 protocol
//
- Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &FormBrowser2);
+ Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **)&FormBrowser2);
if (EFI_ERROR (Status)) {
return Status;
}
+
mPrivateData->FormBrowser2 = FormBrowser2;
//
// Locate ConfigRouting protocol
//
- Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **) &HiiConfigRouting);
+ Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **)&HiiConfigRouting);
if (EFI_ERROR (Status)) {
return Status;
}
+
mPrivateData->HiiConfigRouting = HiiConfigRouting;
//
// Locate keyword handler protocol
//
- Status = gBS->LocateProtocol (&gEfiConfigKeywordHandlerProtocolGuid, NULL, (VOID **) &HiiKeywordHandler);
+ Status = gBS->LocateProtocol (&gEfiConfigKeywordHandlerProtocolGuid, NULL, (VOID **)&HiiKeywordHandler);
if (EFI_ERROR (Status)) {
return Status;
}
+
mPrivateData->HiiKeywordHandler = HiiKeywordHandler;
//
// Locate HiiPopup protocol
//
- Status = gBS->LocateProtocol (&gEfiHiiPopupProtocolGuid, NULL, (VOID **) &PopupHandler);
+ Status = gBS->LocateProtocol (&gEfiHiiPopupProtocolGuid, NULL, (VOID **)&PopupHandler);
if (EFI_ERROR (Status)) {
return Status;
}
+
mPrivateData->HiiPopup = PopupHandler;
Status = gBS->InstallMultipleProtocolInterfaces (
@@ -1872,11 +1914,12 @@ DriverSampleInit (
//
// Update the device path string.
//
- NewString = ConvertDevicePathToText((EFI_DEVICE_PATH_PROTOCOL*)&mHiiVendorDevicePath0, FALSE, FALSE);
+ NewString = ConvertDevicePathToText ((EFI_DEVICE_PATH_PROTOCOL *)&mHiiVendorDevicePath0, FALSE, FALSE);
if (HiiSetString (HiiHandle[0], STRING_TOKEN (STR_DEVICE_PATH), NewString, NULL) == 0) {
DriverSampleUnload (ImageHandle);
return EFI_OUT_OF_RESOURCES;
}
+
if (NewString != NULL) {
FreePool (NewString);
}
@@ -1917,12 +1960,12 @@ DriverSampleInit (
ASSERT (NameRequestHdr != NULL);
BufferSize = sizeof (DRIVER_SAMPLE_CONFIGURATION);
- Status = gRT->GetVariable (VariableName, &gDriverSampleFormSetGuid, NULL, &BufferSize, Configuration);
+ Status = gRT->GetVariable (VariableName, &gDriverSampleFormSetGuid, NULL, &BufferSize, Configuration);
if (EFI_ERROR (Status)) {
//
// Store zero data Buffer Storage to EFI variable
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gDriverSampleFormSetGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -1933,6 +1976,7 @@ DriverSampleInit (
DriverSampleUnload (ImageHandle);
return Status;
}
+
//
// EFI variable for NV config doesn't exit, we should build this variable
// based on default values stored in IFR
@@ -1964,6 +2008,7 @@ DriverSampleInit (
return EFI_INVALID_PARAMETER;
}
}
+
FreePool (ConfigRequestHdr);
//
@@ -1976,12 +2021,12 @@ DriverSampleInit (
ASSERT (ConfigRequestHdr != NULL);
BufferSize = sizeof (MY_EFI_VARSTORE_DATA);
- Status = gRT->GetVariable (MyEfiVar, &gDriverSampleFormSetGuid, NULL, &BufferSize, VarStoreConfig);
+ Status = gRT->GetVariable (MyEfiVar, &gDriverSampleFormSetGuid, NULL, &BufferSize, VarStoreConfig);
if (EFI_ERROR (Status)) {
//
// Store zero data to EFI variable Storage.
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
MyEfiVar,
&gDriverSampleFormSetGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -1992,6 +2037,7 @@ DriverSampleInit (
DriverSampleUnload (ImageHandle);
return Status;
}
+
//
// EFI variable for NV config doesn't exit, we should build this variable
// based on default values stored in IFR
@@ -2011,6 +2057,7 @@ DriverSampleInit (
return EFI_INVALID_PARAMETER;
}
}
+
FreePool (ConfigRequestHdr);
//
@@ -2023,12 +2070,12 @@ DriverSampleInit (
ASSERT (ConfigRequestHdr != NULL);
BufferSize = sizeof (MY_EFI_BITS_VARSTORE_DATA);
- Status = gRT->GetVariable (MyEfiBitVar, &gDriverSampleFormSetGuid, NULL, &BufferSize, BitsVarStoreConfig);
+ Status = gRT->GetVariable (MyEfiBitVar, &gDriverSampleFormSetGuid, NULL, &BufferSize, BitsVarStoreConfig);
if (EFI_ERROR (Status)) {
//
// Store zero data to EFI variable Storage.
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
MyEfiBitVar,
&gDriverSampleFormSetGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -2039,6 +2086,7 @@ DriverSampleInit (
DriverSampleUnload (ImageHandle);
return Status;
}
+
//
// EFI variable for NV config doesn't exit, we should build this variable
// based on default values stored in IFR
@@ -2058,9 +2106,10 @@ DriverSampleInit (
return EFI_INVALID_PARAMETER;
}
}
+
FreePool (ConfigRequestHdr);
- //
+ //
// Initialize Union efi varstore configuration data
//
UnionConfig = &mPrivateData->UnionConfig;
@@ -2070,12 +2119,12 @@ DriverSampleInit (
ASSERT (ConfigRequestHdr != NULL);
BufferSize = sizeof (MY_EFI_UNION_DATA);
- Status = gRT->GetVariable (MyEfiUnionVar, &gDriverSampleFormSetGuid, NULL, &BufferSize, UnionConfig);
+ Status = gRT->GetVariable (MyEfiUnionVar, &gDriverSampleFormSetGuid, NULL, &BufferSize, UnionConfig);
if (EFI_ERROR (Status)) {
//
// Store zero data to EFI variable Storage.
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
MyEfiUnionVar,
&gDriverSampleFormSetGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -2086,6 +2135,7 @@ DriverSampleInit (
DriverSampleUnload (ImageHandle);
return Status;
}
+
//
// EFI variable for NV config doesn't exit, we should build this variable
// based on default values stored in IFR
@@ -2105,22 +2155,23 @@ DriverSampleInit (
return EFI_INVALID_PARAMETER;
}
}
+
FreePool (ConfigRequestHdr);
Status = gBS->CreateEventEx (
- EVT_NOTIFY_SIGNAL,
- TPL_NOTIFY,
- EfiEventEmptyFunction,
- NULL,
- &gEfiIfrRefreshIdOpGuid,
- &mEvent
- );
+ EVT_NOTIFY_SIGNAL,
+ TPL_NOTIFY,
+ EfiEventEmptyFunction,
+ NULL,
+ &gEfiIfrRefreshIdOpGuid,
+ &mEvent
+ );
ASSERT_EFI_ERROR (Status);
//
// Example of how to use BrowserEx protocol to register HotKey.
//
- Status = gBS->LocateProtocol (&gEdkiiFormBrowserExProtocolGuid, NULL, (VOID **) &FormBrowserEx);
+ Status = gBS->LocateProtocol (&gEdkiiFormBrowserExProtocolGuid, NULL, (VOID **)&FormBrowserEx);
if (!EFI_ERROR (Status)) {
//
// First unregister the default hot key F9 and F10.
@@ -2128,18 +2179,18 @@ DriverSampleInit (
HotKey.UnicodeChar = CHAR_NULL;
HotKey.ScanCode = SCAN_F9;
FormBrowserEx->RegisterHotKey (&HotKey, 0, 0, NULL);
- HotKey.ScanCode = SCAN_F10;
+ HotKey.ScanCode = SCAN_F10;
FormBrowserEx->RegisterHotKey (&HotKey, 0, 0, NULL);
//
// Register the default HotKey F9 and F10 again.
//
- HotKey.ScanCode = SCAN_F10;
- NewString = HiiGetString (mPrivateData->HiiHandle[0], STRING_TOKEN (FUNCTION_TEN_STRING), NULL);
+ HotKey.ScanCode = SCAN_F10;
+ NewString = HiiGetString (mPrivateData->HiiHandle[0], STRING_TOKEN (FUNCTION_TEN_STRING), NULL);
ASSERT (NewString != NULL);
FormBrowserEx->RegisterHotKey (&HotKey, BROWSER_ACTION_SUBMIT, 0, NewString);
- HotKey.ScanCode = SCAN_F9;
- NewString = HiiGetString (mPrivateData->HiiHandle[0], STRING_TOKEN (FUNCTION_NINE_STRING), NULL);
+ HotKey.ScanCode = SCAN_F9;
+ NewString = HiiGetString (mPrivateData->HiiHandle[0], STRING_TOKEN (FUNCTION_NINE_STRING), NULL);
ASSERT (NewString != NULL);
FormBrowserEx->RegisterHotKey (&HotKey, BROWSER_ACTION_DEFAULT, EFI_HII_DEFAULT_CLASS_STANDARD, NewString);
}
@@ -2189,30 +2240,30 @@ DriverSampleUnload (
IN EFI_HANDLE ImageHandle
)
{
- UINTN Index;
+ UINTN Index;
ASSERT (mPrivateData != NULL);
if (DriverHandle[0] != NULL) {
gBS->UninstallMultipleProtocolInterfaces (
- DriverHandle[0],
- &gEfiDevicePathProtocolGuid,
- &mHiiVendorDevicePath0,
- &gEfiHiiConfigAccessProtocolGuid,
- &mPrivateData->ConfigAccess,
- NULL
+ DriverHandle[0],
+ &gEfiDevicePathProtocolGuid,
+ &mHiiVendorDevicePath0,
+ &gEfiHiiConfigAccessProtocolGuid,
+ &mPrivateData->ConfigAccess,
+ NULL
);
DriverHandle[0] = NULL;
}
if (DriverHandle[1] != NULL) {
gBS->UninstallMultipleProtocolInterfaces (
- DriverHandle[1],
- &gEfiDevicePathProtocolGuid,
- &mHiiVendorDevicePath1,
- &gEfiHiiConfigAccessProtocolGuid,
- &mPrivateData->ConfigAccess,
- NULL
+ DriverHandle[1],
+ &gEfiDevicePathProtocolGuid,
+ &mHiiVendorDevicePath1,
+ &gEfiHiiConfigAccessProtocolGuid,
+ &mPrivateData->ConfigAccess,
+ NULL
);
DriverHandle[1] = NULL;
}
@@ -2230,6 +2281,7 @@ DriverSampleUnload (
FreePool (mPrivateData->NameValueName[Index]);
}
}
+
FreePool (mPrivateData);
mPrivateData = NULL;
diff --git a/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.h b/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.h
index f4d2437..a1d0705 100644
--- a/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.h
+++ b/MdeModulePkg/Universal/DriverSampleDxe/DriverSample.h
@@ -62,47 +62,47 @@ extern UINT8 DriverSampleStrings[];
#define DYNAMIC_ONE_OF_VAR_OFFSET OFFSET_OF (DRIVER_SAMPLE_CONFIGURATION, DynamicOneof)
#define DYNAMIC_ORDERED_LIST_VAR_OFFSET OFFSET_OF (DRIVER_SAMPLE_CONFIGURATION, DynamicOrderedList)
-#define DEFAULT_CLASS_MANUFACTURING_VALUE 0xFF
-#define DEFAULT_CLASS_STANDARD_VALUE 0x0
+#define DEFAULT_CLASS_MANUFACTURING_VALUE 0xFF
+#define DEFAULT_CLASS_STANDARD_VALUE 0x0
//
// Number of name in Name/Value storage
//
-#define NAME_VALUE_NAME_NUMBER 3
+#define NAME_VALUE_NAME_NUMBER 3
-#define DRIVER_SAMPLE_PRIVATE_SIGNATURE SIGNATURE_32 ('D', 'S', 'p', 's')
+#define DRIVER_SAMPLE_PRIVATE_SIGNATURE SIGNATURE_32 ('D', 'S', 'p', 's')
typedef struct {
- UINTN Signature;
+ UINTN Signature;
- EFI_HANDLE DriverHandle[2];
- EFI_HII_HANDLE HiiHandle[2];
- DRIVER_SAMPLE_CONFIGURATION Configuration;
- MY_EFI_VARSTORE_DATA VarStoreConfig;
- MY_EFI_BITS_VARSTORE_DATA BitsVarStoreConfig;
- MY_EFI_UNION_DATA UnionConfig;
+ EFI_HANDLE DriverHandle[2];
+ EFI_HII_HANDLE HiiHandle[2];
+ DRIVER_SAMPLE_CONFIGURATION Configuration;
+ MY_EFI_VARSTORE_DATA VarStoreConfig;
+ MY_EFI_BITS_VARSTORE_DATA BitsVarStoreConfig;
+ MY_EFI_UNION_DATA UnionConfig;
//
// Name/Value storage Name list
//
- EFI_STRING_ID NameStringId[NAME_VALUE_NAME_NUMBER];
- EFI_STRING NameValueName[NAME_VALUE_NAME_NUMBER];
+ EFI_STRING_ID NameStringId[NAME_VALUE_NAME_NUMBER];
+ EFI_STRING NameValueName[NAME_VALUE_NAME_NUMBER];
//
// Consumed protocol
//
- EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
- EFI_HII_STRING_PROTOCOL *HiiString;
- EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
- EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *HiiKeywordHandler;
- EFI_HII_POPUP_PROTOCOL *HiiPopup;
+ EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
+ EFI_HII_STRING_PROTOCOL *HiiString;
+ EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
+ EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *HiiKeywordHandler;
+ EFI_HII_POPUP_PROTOCOL *HiiPopup;
- EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
+ EFI_FORM_BROWSER2_PROTOCOL *FormBrowser2;
//
// Produced protocol
//
- EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
} DRIVER_SAMPLE_PRIVATE_DATA;
#define DRIVER_SAMPLE_PRIVATE_FROM_THIS(a) CR (a, DRIVER_SAMPLE_PRIVATE_DATA, ConfigAccess, DRIVER_SAMPLE_PRIVATE_SIGNATURE)
@@ -113,8 +113,8 @@ typedef struct {
/// HII specific Vendor Device Path definition.
///
typedef struct {
- VENDOR_DEVICE_PATH VendorDevicePath;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH VendorDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL End;
} HII_VENDOR_DEVICE_PATH;
#pragma pack()
diff --git a/MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h b/MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h
index a4ec1b4..489d7bc 100644
--- a/MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h
+++ b/MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h
@@ -25,8 +25,8 @@ Revision History:
#include <Guid/DriverSampleHii.h>
#include <Guid/ZeroGuid.h>
-#define CONFIGURATION_VARSTORE_ID 0x1234
-#define BITS_VARSTORE_ID 0x2345
+#define CONFIGURATION_VARSTORE_ID 0x1234
+#define BITS_VARSTORE_ID 0x2345
#pragma pack(1)
@@ -39,12 +39,12 @@ Revision History:
// 2. Add unnamed bit field with 0 for padding, the amount of padding is determined by the alignment characteristics of the members of the structure.
//
typedef struct {
- UINT16 NestByteField;
- UINT8 : 1; // unamed field can be used for padding
- UINT8 NestBitCheckbox : 1;
- UINT8 NestBitOneof : 2;
- UINT8 : 0; // Special width 0 can be used to force alignment at the next word boundary
- UINT8 NestBitNumeric : 4;
+ UINT16 NestByteField;
+ UINT8 : 1; // unamed field can be used for padding
+ UINT8 NestBitCheckbox : 1;
+ UINT8 NestBitOneof : 2;
+ UINT8 : 0; // Special width 0 can be used to force alignment at the next word boundary
+ UINT8 NestBitNumeric : 4;
} MY_BITS_DATA;
typedef union {
@@ -53,79 +53,79 @@ typedef union {
} MY_EFI_UNION_DATA;
typedef struct {
- UINT16 MyStringData[40];
- UINT16 SomethingHiddenForHtml;
- UINT8 HowOldAreYouInYearsManual;
- UINT16 HowTallAreYouManual;
- UINT8 HowOldAreYouInYears;
- UINT16 HowTallAreYou;
- UINT8 MyFavoriteNumber;
- UINT8 TestLateCheck;
- UINT8 TestLateCheck2;
- UINT8 QuestionAboutTreeHugging;
- UINT8 ChooseToActivateNuclearWeaponry;
- UINT8 SuppressGrayOutSomething;
- UINT8 OrderedList[8];
- UINT16 BootOrder[8];
- UINT8 BootOrderLarge;
- UINT8 DynamicRefresh;
- UINT8 DynamicOneof;
- UINT8 DynamicOrderedList[5];
- UINT8 Reserved;
- EFI_HII_REF RefData;
- UINT8 NameValueVar0;
- UINT16 NameValueVar1;
- UINT16 NameValueVar2[20];
- UINT8 SerialPortNo;
- UINT8 SerialPortStatus;
- UINT16 SerialPortIo;
- UINT8 SerialPortIrq;
- UINT8 GetDefaultValueFromCallBack;
- UINT8 GetDefaultValueFromAccess;
- EFI_HII_TIME Time;
- UINT8 RefreshGuidCount;
- UINT8 Match2;
- UINT8 GetDefaultValueFromCallBackForOrderedList[3];
- UINT8 BitCheckbox : 1;
- UINT8 ReservedBits: 7; // Reserved bit fields for padding.
- UINT16 BitOneof : 6;
- UINT16 : 0; // Width 0 used to force alignment.
- UINT16 BitNumeric : 12;
- MY_BITS_DATA MyBitData;
- MY_EFI_UNION_DATA MyUnionData;
- UINT8 QuestionXUefiKeywordRestStyle;
- UINT8 QuestionNonXUefiKeywordRestStyle;
+ UINT16 MyStringData[40];
+ UINT16 SomethingHiddenForHtml;
+ UINT8 HowOldAreYouInYearsManual;
+ UINT16 HowTallAreYouManual;
+ UINT8 HowOldAreYouInYears;
+ UINT16 HowTallAreYou;
+ UINT8 MyFavoriteNumber;
+ UINT8 TestLateCheck;
+ UINT8 TestLateCheck2;
+ UINT8 QuestionAboutTreeHugging;
+ UINT8 ChooseToActivateNuclearWeaponry;
+ UINT8 SuppressGrayOutSomething;
+ UINT8 OrderedList[8];
+ UINT16 BootOrder[8];
+ UINT8 BootOrderLarge;
+ UINT8 DynamicRefresh;
+ UINT8 DynamicOneof;
+ UINT8 DynamicOrderedList[5];
+ UINT8 Reserved;
+ EFI_HII_REF RefData;
+ UINT8 NameValueVar0;
+ UINT16 NameValueVar1;
+ UINT16 NameValueVar2[20];
+ UINT8 SerialPortNo;
+ UINT8 SerialPortStatus;
+ UINT16 SerialPortIo;
+ UINT8 SerialPortIrq;
+ UINT8 GetDefaultValueFromCallBack;
+ UINT8 GetDefaultValueFromAccess;
+ EFI_HII_TIME Time;
+ UINT8 RefreshGuidCount;
+ UINT8 Match2;
+ UINT8 GetDefaultValueFromCallBackForOrderedList[3];
+ UINT8 BitCheckbox : 1;
+ UINT8 ReservedBits : 7; // Reserved bit fields for padding.
+ UINT16 BitOneof : 6;
+ UINT16 : 0; // Width 0 used to force alignment.
+ UINT16 BitNumeric : 12;
+ MY_BITS_DATA MyBitData;
+ MY_EFI_UNION_DATA MyUnionData;
+ UINT8 QuestionXUefiKeywordRestStyle;
+ UINT8 QuestionNonXUefiKeywordRestStyle;
} DRIVER_SAMPLE_CONFIGURATION;
//
// 2nd NV data structure definition
//
typedef struct {
- UINT8 Field8;
- UINT16 Field16;
- UINT8 OrderedList[3];
- UINT16 SubmittedCallback;
+ UINT8 Field8;
+ UINT16 Field16;
+ UINT8 OrderedList[3];
+ UINT16 SubmittedCallback;
} MY_EFI_VARSTORE_DATA;
//
// 3rd NV data structure definition
//
typedef struct {
- MY_BITS_DATA BitsData;
- UINT32 EfiBitGrayoutTest : 5;
- UINT32 EfiBitNumeric : 4;
- UINT32 EfiBitOneof : 10;
- UINT32 EfiBitCheckbox : 1;
- UINT32 : 0; // Width 0 used to force alignment.
+ MY_BITS_DATA BitsData;
+ UINT32 EfiBitGrayoutTest : 5;
+ UINT32 EfiBitNumeric : 4;
+ UINT32 EfiBitOneof : 10;
+ UINT32 EfiBitCheckbox : 1;
+ UINT32 : 0; // Width 0 used to force alignment.
} MY_EFI_BITS_VARSTORE_DATA;
//
// Labels definition
//
-#define LABEL_UPDATE1 0x1234
-#define LABEL_UPDATE2 0x2234
-#define LABEL_UPDATE3 0x3234
-#define LABEL_END 0x2223
+#define LABEL_UPDATE1 0x1234
+#define LABEL_UPDATE2 0x2234
+#define LABEL_UPDATE3 0x3234
+#define LABEL_END 0x2223
#pragma pack()
diff --git a/MdeModulePkg/Universal/EbcDxe/AArch64/EbcSupport.c b/MdeModulePkg/Universal/EbcDxe/AArch64/EbcSupport.c
index a9512bd..6622eac 100644
--- a/MdeModulePkg/Universal/EbcDxe/AArch64/EbcSupport.c
+++ b/MdeModulePkg/Universal/EbcDxe/AArch64/EbcSupport.c
@@ -17,7 +17,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Amount of space that is not used in the stack
//
-#define STACK_REMAIN_SIZE (1024 * 4)
+#define STACK_REMAIN_SIZE (1024 * 4)
#pragma pack(1)
typedef struct {
@@ -28,7 +28,7 @@ typedef struct {
} EBC_INSTRUCTION_BUFFER;
#pragma pack()
-extern CONST EBC_INSTRUCTION_BUFFER mEbcInstructionBufferTemplate;
+extern CONST EBC_INSTRUCTION_BUFFER mEbcInstructionBufferTemplate;
/**
Begin executing an EBC image.
@@ -65,20 +65,19 @@ EbcLLExecuteEbcImageEntryPoint (
**/
VOID
PushU64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Arg
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Arg
)
{
//
// Advance the VM stack down, and then copy the argument to the stack.
// Hope it's aligned.
//
- VmPtr->Gpr[0] -= sizeof (UINT64);
- *(UINT64 *) VmPtr->Gpr[0] = Arg;
+ VmPtr->Gpr[0] -= sizeof (UINT64);
+ *(UINT64 *)VmPtr->Gpr[0] = Arg;
return;
}
-
/**
Begin executing an EBC image.
@@ -129,12 +128,12 @@ EbcInterpret (
//
// Now clear out our context
//
- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT));
+ ZeroMem ((VOID *)&VmContext, sizeof (VM_CONTEXT));
//
// Set the VM instruction pointer to the correct location in memory.
//
- VmContext.Ip = (VMIP) Addr;
+ VmContext.Ip = (VMIP)Addr;
//
// Initialize the stack pointer for the EBC. Get the current system stack
@@ -145,14 +144,15 @@ EbcInterpret (
// Adjust the VM's stack pointer down.
//
- Status = GetEBCStack((EFI_HANDLE)(UINTN)-1, &VmContext.StackPool, &StackIndex);
- if (EFI_ERROR(Status)) {
+ Status = GetEBCStack ((EFI_HANDLE)(UINTN)-1, &VmContext.StackPool, &StackIndex);
+ if (EFI_ERROR (Status)) {
return Status;
}
- VmContext.StackTop = (UINT8*)VmContext.StackPool + (STACK_REMAIN_SIZE);
- VmContext.Gpr[0] = (UINT64) ((UINT8*)VmContext.StackPool + STACK_POOL_SIZE);
- VmContext.HighStackBottom = (UINTN) VmContext.Gpr[0];
- VmContext.Gpr[0] -= sizeof (UINTN);
+
+ VmContext.StackTop = (UINT8 *)VmContext.StackPool + (STACK_REMAIN_SIZE);
+ VmContext.Gpr[0] = (UINT64)((UINT8 *)VmContext.StackPool + STACK_POOL_SIZE);
+ VmContext.HighStackBottom = (UINTN)VmContext.Gpr[0];
+ VmContext.Gpr[0] -= sizeof (UINTN);
//
// Align the stack on a natural boundary.
@@ -162,46 +162,46 @@ EbcInterpret (
//
// Put a magic value in the stack gap, then adjust down again.
//
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) VM_STACK_KEY_VALUE;
- VmContext.StackMagicPtr = (UINTN *) (UINTN) VmContext.Gpr[0];
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)VM_STACK_KEY_VALUE;
+ VmContext.StackMagicPtr = (UINTN *)(UINTN)VmContext.Gpr[0];
//
// The stack upper to LowStackTop is belong to the VM.
//
- VmContext.LowStackTop = (UINTN) VmContext.Gpr[0];
+ VmContext.LowStackTop = (UINTN)VmContext.Gpr[0];
//
// For the worst case, assume there are 4 arguments passed in registers, store
// them to VM's stack.
//
- PushU64 (&VmContext, (UINT64) Args9_16[7]);
- PushU64 (&VmContext, (UINT64) Args9_16[6]);
- PushU64 (&VmContext, (UINT64) Args9_16[5]);
- PushU64 (&VmContext, (UINT64) Args9_16[4]);
- PushU64 (&VmContext, (UINT64) Args9_16[3]);
- PushU64 (&VmContext, (UINT64) Args9_16[2]);
- PushU64 (&VmContext, (UINT64) Args9_16[1]);
- PushU64 (&VmContext, (UINT64) Args9_16[0]);
- PushU64 (&VmContext, (UINT64) Arg8);
- PushU64 (&VmContext, (UINT64) Arg7);
- PushU64 (&VmContext, (UINT64) Arg6);
- PushU64 (&VmContext, (UINT64) Arg5);
- PushU64 (&VmContext, (UINT64) Arg4);
- PushU64 (&VmContext, (UINT64) Arg3);
- PushU64 (&VmContext, (UINT64) Arg2);
- PushU64 (&VmContext, (UINT64) Arg1);
+ PushU64 (&VmContext, (UINT64)Args9_16[7]);
+ PushU64 (&VmContext, (UINT64)Args9_16[6]);
+ PushU64 (&VmContext, (UINT64)Args9_16[5]);
+ PushU64 (&VmContext, (UINT64)Args9_16[4]);
+ PushU64 (&VmContext, (UINT64)Args9_16[3]);
+ PushU64 (&VmContext, (UINT64)Args9_16[2]);
+ PushU64 (&VmContext, (UINT64)Args9_16[1]);
+ PushU64 (&VmContext, (UINT64)Args9_16[0]);
+ PushU64 (&VmContext, (UINT64)Arg8);
+ PushU64 (&VmContext, (UINT64)Arg7);
+ PushU64 (&VmContext, (UINT64)Arg6);
+ PushU64 (&VmContext, (UINT64)Arg5);
+ PushU64 (&VmContext, (UINT64)Arg4);
+ PushU64 (&VmContext, (UINT64)Arg3);
+ PushU64 (&VmContext, (UINT64)Arg2);
+ PushU64 (&VmContext, (UINT64)Arg1);
//
// Interpreter assumes 64-bit return address is pushed on the stack.
// AArch64 does not do this so pad the stack accordingly.
//
- PushU64 (&VmContext, (UINT64) 0);
- PushU64 (&VmContext, (UINT64) 0x1234567887654321ULL);
+ PushU64 (&VmContext, (UINT64)0);
+ PushU64 (&VmContext, (UINT64)0x1234567887654321ULL);
//
// For AArch64, this is where we say our return address is
//
- VmContext.StackRetAddr = (UINT64) VmContext.Gpr[0];
+ VmContext.StackRetAddr = (UINT64)VmContext.Gpr[0];
//
// We need to keep track of where the EBC stack starts. This way, if the EBC
@@ -226,11 +226,10 @@ EbcInterpret (
//
// Return the value in R[7] unless there was an error
//
- ReturnEBCStack(StackIndex);
- return (UINT64) VmContext.Gpr[7];
+ ReturnEBCStack (StackIndex);
+ return (UINT64)VmContext.Gpr[7];
}
-
/**
Begin executing an EBC image.
@@ -245,9 +244,9 @@ EbcInterpret (
UINT64
EFIAPI
ExecuteEbcImageEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable,
- IN UINTN EntryPoint
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable,
+ IN UINTN EntryPoint
)
{
//
@@ -266,7 +265,7 @@ ExecuteEbcImageEntryPoint (
//
// Now clear out our context
//
- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT));
+ ZeroMem ((VOID *)&VmContext, sizeof (VM_CONTEXT));
//
// Save the image handle so we can track the thunks created for this image
@@ -277,52 +276,52 @@ ExecuteEbcImageEntryPoint (
//
// Set the VM instruction pointer to the correct location in memory.
//
- VmContext.Ip = (VMIP) Addr;
+ VmContext.Ip = (VMIP)Addr;
//
// Initialize the stack pointer for the EBC. Get the current system stack
// pointer and adjust it down by the max needed for the interpreter.
//
- Status = GetEBCStack(ImageHandle, &VmContext.StackPool, &StackIndex);
- if (EFI_ERROR(Status)) {
+ Status = GetEBCStack (ImageHandle, &VmContext.StackPool, &StackIndex);
+ if (EFI_ERROR (Status)) {
return Status;
}
- VmContext.StackTop = (UINT8*)VmContext.StackPool + (STACK_REMAIN_SIZE);
- VmContext.Gpr[0] = (UINT64) ((UINT8*)VmContext.StackPool + STACK_POOL_SIZE);
- VmContext.HighStackBottom = (UINTN) VmContext.Gpr[0];
- VmContext.Gpr[0] -= sizeof (UINTN);
+ VmContext.StackTop = (UINT8 *)VmContext.StackPool + (STACK_REMAIN_SIZE);
+ VmContext.Gpr[0] = (UINT64)((UINT8 *)VmContext.StackPool + STACK_POOL_SIZE);
+ VmContext.HighStackBottom = (UINTN)VmContext.Gpr[0];
+ VmContext.Gpr[0] -= sizeof (UINTN);
//
// Put a magic value in the stack gap, then adjust down again
//
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) VM_STACK_KEY_VALUE;
- VmContext.StackMagicPtr = (UINTN *) (UINTN) VmContext.Gpr[0];
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)VM_STACK_KEY_VALUE;
+ VmContext.StackMagicPtr = (UINTN *)(UINTN)VmContext.Gpr[0];
//
// Align the stack on a natural boundary
- VmContext.Gpr[0] &= ~(VM_REGISTER)(sizeof(UINTN) - 1);
+ VmContext.Gpr[0] &= ~(VM_REGISTER)(sizeof (UINTN) - 1);
//
- VmContext.LowStackTop = (UINTN) VmContext.Gpr[0];
+ VmContext.LowStackTop = (UINTN)VmContext.Gpr[0];
//
// Simply copy the image handle and system table onto the EBC stack.
// Greatly simplifies things by not having to spill the args.
//
- PushU64 (&VmContext, (UINT64) SystemTable);
- PushU64 (&VmContext, (UINT64) ImageHandle);
+ PushU64 (&VmContext, (UINT64)SystemTable);
+ PushU64 (&VmContext, (UINT64)ImageHandle);
//
// VM pushes 16-bytes for return address. Simulate that here.
//
- PushU64 (&VmContext, (UINT64) 0);
- PushU64 (&VmContext, (UINT64) 0x1234567887654321ULL);
+ PushU64 (&VmContext, (UINT64)0);
+ PushU64 (&VmContext, (UINT64)0x1234567887654321ULL);
//
// For AArch64, this is where we say our return address is
//
- VmContext.StackRetAddr = (UINT64) VmContext.Gpr[0];
+ VmContext.StackRetAddr = (UINT64)VmContext.Gpr[0];
//
// Entry function needn't access high stack context, simply
@@ -338,11 +337,10 @@ ExecuteEbcImageEntryPoint (
//
// Return the value in R[7] unless there was an error
//
- ReturnEBCStack(StackIndex);
- return (UINT64) VmContext.Gpr[7];
+ ReturnEBCStack (StackIndex);
+ return (UINT64)VmContext.Gpr[7];
}
-
/**
Create thunks for an EBC image entry point, or an EBC protocol service.
@@ -362,18 +360,18 @@ ExecuteEbcImageEntryPoint (
**/
EFI_STATUS
EbcCreateThunks (
- IN EFI_HANDLE ImageHandle,
- IN VOID *EbcEntryPoint,
- OUT VOID **Thunk,
- IN UINT32 Flags
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *EbcEntryPoint,
+ OUT VOID **Thunk,
+ IN UINT32 Flags
)
{
- EBC_INSTRUCTION_BUFFER *InstructionBuffer;
+ EBC_INSTRUCTION_BUFFER *InstructionBuffer;
//
// Check alignment of pointer to EBC code
//
- if ((UINT32) (UINTN) EbcEntryPoint & 0x01) {
+ if ((UINT32)(UINTN)EbcEntryPoint & 0x01) {
return EFI_INVALID_PARAMETER;
}
@@ -390,8 +388,11 @@ EbcCreateThunks (
//
// Copy whole thunk instruction buffer template
//
- CopyMem (InstructionBuffer, &mEbcInstructionBufferTemplate,
- sizeof (EBC_INSTRUCTION_BUFFER));
+ CopyMem (
+ InstructionBuffer,
+ &mEbcInstructionBufferTemplate,
+ sizeof (EBC_INSTRUCTION_BUFFER)
+ );
//
// Patch EbcEntryPoint and EbcLLEbcInterpret
@@ -407,13 +408,15 @@ EbcCreateThunks (
// Add the thunk to the list for this image. Do this last since the add
// function flushes the cache for us.
//
- EbcAddImageThunk (ImageHandle, InstructionBuffer,
- sizeof (EBC_INSTRUCTION_BUFFER));
+ EbcAddImageThunk (
+ ImageHandle,
+ InstructionBuffer,
+ sizeof (EBC_INSTRUCTION_BUFFER)
+ );
return EFI_SUCCESS;
}
-
/**
This function is called to execute an EBC CALLEX instruction.
The function check the callee's content to see whether it is common native
@@ -431,34 +434,38 @@ EbcCreateThunks (
**/
VOID
EbcLLCALLEX (
- IN VM_CONTEXT *VmPtr,
- IN UINTN FuncAddr,
- IN UINTN NewStackPointer,
- IN VOID *FramePtr,
- IN UINT8 Size
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN FuncAddr,
+ IN UINTN NewStackPointer,
+ IN VOID *FramePtr,
+ IN UINT8 Size
)
{
- CONST EBC_INSTRUCTION_BUFFER *InstructionBuffer;
+ CONST EBC_INSTRUCTION_BUFFER *InstructionBuffer;
//
// Processor specific code to check whether the callee is a thunk to EBC.
//
InstructionBuffer = (EBC_INSTRUCTION_BUFFER *)FuncAddr;
- if (CompareMem (InstructionBuffer, &mEbcInstructionBufferTemplate,
- sizeof(EBC_INSTRUCTION_BUFFER) - 2 * sizeof (UINT64)) == 0) {
+ if (CompareMem (
+ InstructionBuffer,
+ &mEbcInstructionBufferTemplate,
+ sizeof (EBC_INSTRUCTION_BUFFER) - 2 * sizeof (UINT64)
+ ) == 0)
+ {
//
// The callee is a thunk to EBC, adjust the stack pointer down 16 bytes and
// put our return address and frame pointer on the VM stack.
// Then set the VM's IP to new EBC code.
//
VmPtr->Gpr[0] -= 8;
- VmWriteMemN (VmPtr, (UINTN) VmPtr->Gpr[0], (UINTN) FramePtr);
- VmPtr->FramePtr = (VOID *) (UINTN) VmPtr->Gpr[0];
- VmPtr->Gpr[0] -= 8;
- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[0], (UINT64) (UINTN) (VmPtr->Ip + Size));
+ VmWriteMemN (VmPtr, (UINTN)VmPtr->Gpr[0], (UINTN)FramePtr);
+ VmPtr->FramePtr = (VOID *)(UINTN)VmPtr->Gpr[0];
+ VmPtr->Gpr[0] -= 8;
+ VmWriteMem64 (VmPtr, (UINTN)VmPtr->Gpr[0], (UINT64)(UINTN)(VmPtr->Ip + Size));
- VmPtr->Ip = (VMIP) InstructionBuffer->EbcEntryPoint;
+ VmPtr->Ip = (VMIP)InstructionBuffer->EbcEntryPoint;
} else {
//
// The callee is not a thunk to EBC, call native code,
@@ -472,4 +479,3 @@ EbcLLCALLEX (
VmPtr->Ip += Size;
}
}
-
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c
index 966dfb7..98ddf8c 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EbcDebuggerConfig.c
@@ -31,7 +31,7 @@ PrintUsage (
L"usage: EdbCfg <Command>\n"
L" CommandList:\n"
L" BO[C|CX|R|E|T|K] <ON|OFF> - Enable/Disable BOC/BOCX/BOR/BOE/BOT/BOK.\n"
-// L" SHOWINFO - Show Debugger Information.\n"
+ // L" SHOWINFO - Show Debugger Information.\n"
L"\n"
);
return;
@@ -46,11 +46,11 @@ PrintUsage (
**/
VOID
EdbShowInfo (
- EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration
+ EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration
)
{
Print (L"Not supported!\n");
- return ;
+ return;
}
/**
@@ -64,12 +64,12 @@ EdbShowInfo (
**/
VOID
EdbConfigBreak (
- EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration,
- CHAR16 *Command,
- CHAR16 *CommandArg
+ EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration,
+ CHAR16 *Command,
+ CHAR16 *CommandArg
)
{
- EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate;
+ EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate;
DebuggerPrivate = (EFI_DEBUGGER_PRIVATE_DATA *)DebuggerConfiguration->DebuggerPrivateData;
@@ -158,7 +158,8 @@ EdbConfigBreak (
Print (L"Invalid parameter\n");
}
}
- return ;
+
+ return;
}
/**
@@ -178,18 +179,18 @@ InitializeEbcDebuggerConfig (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
- UINTN Argc;
- CHAR16 **Argv;
- EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters;
- EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration;
- EFI_STATUS Status;
+ UINTN Argc;
+ CHAR16 **Argv;
+ EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters;
+ EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration;
+ EFI_STATUS Status;
Status = gBS->HandleProtocol (
gImageHandle,
&gEfiShellParametersProtocolGuid,
- (VOID**)&ShellParameters
+ (VOID **)&ShellParameters
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
Print (L"Please use UEFI Shell to run this application.\n");
return EFI_INVALID_PARAMETER;
}
@@ -206,18 +207,19 @@ InitializeEbcDebuggerConfig (
if ((StrCmp (Argv[1], L"/?") == 0) ||
(StrCmp (Argv[1], L"-?") == 0) ||
(StrCmp (Argv[1], L"-h") == 0) ||
- (StrCmp (Argv[1], L"-H") == 0) ) {
+ (StrCmp (Argv[1], L"-H") == 0))
+ {
PrintUsage ();
return EFI_SUCCESS;
}
}
Status = gBS->LocateProtocol (
- &gEfiDebuggerConfigurationProtocolGuid,
- NULL,
- (VOID**)&DebuggerConfiguration
- );
- if (EFI_ERROR(Status)) {
+ &gEfiDebuggerConfigurationProtocolGuid,
+ NULL,
+ (VOID **)&DebuggerConfiguration
+ );
+ if (EFI_ERROR (Status)) {
Print (L"Error: DebuggerConfiguration protocol not found.\n");
return EFI_NOT_FOUND;
}
@@ -233,12 +235,14 @@ InitializeEbcDebuggerConfig (
(StriCmp (Argv[1], L"BOR") == 0) ||
(StriCmp (Argv[1], L"BOE") == 0) ||
(StriCmp (Argv[1], L"BOT") == 0) ||
- (StriCmp (Argv[1], L"BOK") == 0))) {
+ (StriCmp (Argv[1], L"BOK") == 0)))
+ {
if (Argc == 3) {
EdbConfigBreak (DebuggerConfiguration, Argv[1], Argv[2]);
} else {
EdbConfigBreak (DebuggerConfiguration, Argv[1], NULL);
}
+
return EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c
index e417f48..c0d5485 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.c
@@ -8,13 +8,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Uefi.h>
#include "Edb.h"
-EFI_DEBUGGER_PRIVATE_DATA mDebuggerPrivate = {
+EFI_DEBUGGER_PRIVATE_DATA mDebuggerPrivate = {
EFI_DEBUGGER_SIGNATURE, // Signature
IsaEbc, // Isa
(EBC_DEBUGGER_MAJOR_VERSION << 16) |
- EBC_DEBUGGER_MINOR_VERSION, // EfiDebuggerRevision
+ EBC_DEBUGGER_MINOR_VERSION, // EfiDebuggerRevision
(VM_MAJOR_VERSION << 16) |
- VM_MINOR_VERSION, // EbcVmRevision
+ VM_MINOR_VERSION, // EbcVmRevision
{
EFI_DEBUGGER_CONFIGURATION_VERSION,
&mDebuggerPrivate,
@@ -23,24 +23,30 @@ EFI_DEBUGGER_PRIVATE_DATA mDebuggerPrivate = {
NULL, // Vol
NULL, // PciRootBridgeIo
mDebuggerCommandSet, // DebuggerCommandSet
- {0}, // DebuggerSymbolContext
+ { 0 }, // DebuggerSymbolContext
0, // DebuggerBreakpointCount
- {{0}}, // DebuggerBreakpointContext
+ {
+ { 0 }
+ }, // DebuggerBreakpointContext
0, // CallStackEntryCount
- {{0}}, // CallStackEntry
+ {
+ { 0 }
+ }, // CallStackEntry
0, // TraceEntryCount
- {{0}}, // TraceEntry
- {0}, // StepContext
- {0}, // GoTilContext
- 0, // InstructionScope
- EFI_DEBUG_DEFAULT_INSTRUCTION_NUMBER, // InstructionNumber
+ {
+ { 0 }
+ }, // TraceEntry
+ { 0 }, // StepContext
+ { 0 }, // GoTilContext
+ 0, // InstructionScope
+ EFI_DEBUG_DEFAULT_INSTRUCTION_NUMBER, // InstructionNumber
EFI_DEBUG_FLAG_EBC_BOE | EFI_DEBUG_FLAG_EBC_BOT, // FeatureFlags
0, // StatusFlags
FALSE, // EnablePageBreak
NULL // BreakEvent
};
-CHAR16 *mExceptionStr[] = {
+CHAR16 *mExceptionStr[] = {
L"EXCEPT_EBC_UNDEFINED",
L"EXCEPT_EBC_DIVIDE_ERROR",
L"EXCEPT_EBC_DEBUG",
@@ -64,11 +70,11 @@ CHAR16 *mExceptionStr[] = {
**/
VOID
EdbClearAllBreakpoint (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN BOOLEAN NeedRemove
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN BOOLEAN NeedRemove
)
{
- UINTN Index;
+ UINTN Index;
//
// Patch all the breakpoint
@@ -78,7 +84,7 @@ EdbClearAllBreakpoint (
CopyMem (
(VOID *)(UINTN)DebuggerPrivate->DebuggerBreakpointContext[Index].BreakpointAddress,
&DebuggerPrivate->DebuggerBreakpointContext[Index].OldInstruction,
- sizeof(UINT16)
+ sizeof (UINT16)
);
}
}
@@ -88,13 +94,13 @@ EdbClearAllBreakpoint (
//
if (NeedRemove) {
DebuggerPrivate->DebuggerBreakpointCount = 0;
- ZeroMem (DebuggerPrivate->DebuggerBreakpointContext, sizeof(DebuggerPrivate->DebuggerBreakpointContext));
+ ZeroMem (DebuggerPrivate->DebuggerBreakpointContext, sizeof (DebuggerPrivate->DebuggerBreakpointContext));
}
//
// Done
//
- return ;
+ return;
}
/**
@@ -106,11 +112,11 @@ EdbClearAllBreakpoint (
**/
VOID
EdbSetAllBreakpoint (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
)
{
- UINTN Index;
- UINT16 Data16;
+ UINTN Index;
+ UINT16 Data16;
//
// Set all the breakpoint (BREAK(3) : 0x0300)
@@ -121,7 +127,7 @@ EdbSetAllBreakpoint (
CopyMem (
(VOID *)(UINTN)DebuggerPrivate->DebuggerBreakpointContext[Index].BreakpointAddress,
&Data16,
- sizeof(UINT16)
+ sizeof (UINT16)
);
}
}
@@ -134,7 +140,7 @@ EdbSetAllBreakpoint (
CopyMem (
(VOID *)(UINTN)DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX].BreakpointAddress,
&DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX].OldInstruction,
- sizeof(UINT16)
+ sizeof (UINT16)
);
DebuggerPrivate->StatusFlags &= ~EFI_DEBUG_FLAG_EBC_B_BP;
}
@@ -142,7 +148,7 @@ EdbSetAllBreakpoint (
//
// Done
//
- return ;
+ return;
}
/**
@@ -156,8 +162,8 @@ EdbSetAllBreakpoint (
**/
VOID
EdbCheckBreakpoint (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_SYSTEM_CONTEXT SystemContext
)
{
UINT64 Address;
@@ -167,7 +173,7 @@ EdbCheckBreakpoint (
//
// Roll back IP for breakpoint instruction (BREAK(3) : 0x0300)
//
- Address = SystemContext.SystemContextEbc->Ip - sizeof(UINT16);
+ Address = SystemContext.SystemContextEbc->Ip - sizeof (UINT16);
//
// Check if the breakpoint is hit
@@ -175,7 +181,8 @@ EdbCheckBreakpoint (
IsHitBreakpoint = FALSE;
for (Index = 0; (Index < DebuggerPrivate->DebuggerBreakpointCount) && (Index < EFI_DEBUGGER_BREAKPOINT_MAX); Index++) {
if ((DebuggerPrivate->DebuggerBreakpointContext[Index].BreakpointAddress == Address) &&
- (DebuggerPrivate->DebuggerBreakpointContext[Index].State)) {
+ (DebuggerPrivate->DebuggerBreakpointContext[Index].State))
+ {
IsHitBreakpoint = TRUE;
break;
}
@@ -185,7 +192,7 @@ EdbCheckBreakpoint (
//
// If hit, record current breakpoint
//
- DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX] = DebuggerPrivate->DebuggerBreakpointContext[Index];
+ DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX] = DebuggerPrivate->DebuggerBreakpointContext[Index];
DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX].State = TRUE;
//
// Update: IP and Instruction (NOTE: Since we not allow set breakpoint to BREAK 3, this update is safe)
@@ -209,7 +216,8 @@ EdbCheckBreakpoint (
IsHitBreakpoint = FALSE;
for (Index = 0; (Index < DebuggerPrivate->DebuggerBreakpointCount) && (Index < EFI_DEBUGGER_BREAKPOINT_MAX); Index++) {
if ((DebuggerPrivate->DebuggerBreakpointContext[Index].BreakpointAddress == Address) &&
- (DebuggerPrivate->DebuggerBreakpointContext[Index].State)) {
+ (DebuggerPrivate->DebuggerBreakpointContext[Index].State))
+ {
IsHitBreakpoint = TRUE;
break;
}
@@ -234,7 +242,7 @@ EdbCheckBreakpoint (
//
ZeroMem (
&DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX],
- sizeof(DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX])
+ sizeof (DebuggerPrivate->DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX])
);
}
}
@@ -242,7 +250,7 @@ EdbCheckBreakpoint (
//
// Done
//
- return ;
+ return;
}
/**
@@ -253,13 +261,13 @@ EdbCheckBreakpoint (
**/
VOID
EdbClearSymbol (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
)
{
- EFI_DEBUGGER_SYMBOL_CONTEXT *DebuggerSymbolContext;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- UINTN ObjectIndex;
- UINTN Index;
+ EFI_DEBUGGER_SYMBOL_CONTEXT *DebuggerSymbolContext;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN ObjectIndex;
+ UINTN Index;
//
// Go throuth each object
@@ -271,13 +279,14 @@ EdbClearSymbol (
// Go throuth each entry
//
for (Index = 0; Index < Object->EntryCount; Index++) {
- ZeroMem (&Object->Entry[Index], sizeof(Object->Entry[Index]));
+ ZeroMem (&Object->Entry[Index], sizeof (Object->Entry[Index]));
}
- ZeroMem (Object->Name, sizeof(Object->Name));
- Object->EntryCount = 0;
- Object->BaseAddress = 0;
+
+ ZeroMem (Object->Name, sizeof (Object->Name));
+ Object->EntryCount = 0;
+ Object->BaseAddress = 0;
Object->StartEntrypointRVA = 0;
- Object->MainEntrypointRVA = 0;
+ Object->MainEntrypointRVA = 0;
//
// Free source buffer
//
@@ -286,9 +295,10 @@ EdbClearSymbol (
Object->SourceBuffer[Index] = NULL;
}
}
+
DebuggerSymbolContext->ObjectCount = 0;
- return ;
+ return;
}
/**
@@ -303,17 +313,17 @@ EdbClearSymbol (
**/
EFI_STATUS
InitDebuggerPrivateData (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- IN BOOLEAN Initialized
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ IN BOOLEAN Initialized
)
{
//
// clear STEP flag in any condition.
//
- if (SystemContext.SystemContextEbc->Flags & ((UINT64) VMFLAGS_STEP)) {
- SystemContext.SystemContextEbc->Flags &= ~((UINT64) VMFLAGS_STEP);
+ if (SystemContext.SystemContextEbc->Flags & ((UINT64)VMFLAGS_STEP)) {
+ SystemContext.SystemContextEbc->Flags &= ~((UINT64)VMFLAGS_STEP);
}
if (!Initialized) {
@@ -323,13 +333,13 @@ InitDebuggerPrivateData (
DebuggerPrivate->InstructionNumber = EFI_DEBUG_DEFAULT_INSTRUCTION_NUMBER;
DebuggerPrivate->DebuggerBreakpointCount = 0;
- ZeroMem (DebuggerPrivate->DebuggerBreakpointContext, sizeof(DebuggerPrivate->DebuggerBreakpointContext));
+ ZeroMem (DebuggerPrivate->DebuggerBreakpointContext, sizeof (DebuggerPrivate->DebuggerBreakpointContext));
-// DebuggerPrivate->StatusFlags = 0;
+ // DebuggerPrivate->StatusFlags = 0;
- DebuggerPrivate->DebuggerSymbolContext.DisplaySymbol = TRUE;
+ DebuggerPrivate->DebuggerSymbolContext.DisplaySymbol = TRUE;
DebuggerPrivate->DebuggerSymbolContext.DisplayCodeOnly = FALSE;
- DebuggerPrivate->DebuggerSymbolContext.ObjectCount = 0;
+ DebuggerPrivate->DebuggerSymbolContext.ObjectCount = 0;
} else {
//
// Already initialized, just check Breakpoint here.
@@ -367,21 +377,21 @@ InitDebuggerPrivateData (
**/
EFI_STATUS
DeinitDebuggerPrivateData (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- IN BOOLEAN Initialized
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ IN BOOLEAN Initialized
)
{
if (!Initialized) {
//
// If it does not want initialized state, de-init everything
//
- DebuggerPrivate->FeatureFlags = EFI_DEBUG_FLAG_EBC_BOE | EFI_DEBUG_FLAG_EBC_BOT;
+ DebuggerPrivate->FeatureFlags = EFI_DEBUG_FLAG_EBC_BOE | EFI_DEBUG_FLAG_EBC_BOT;
DebuggerPrivate->CallStackEntryCount = 0;
- DebuggerPrivate->TraceEntryCount = 0;
- ZeroMem (DebuggerPrivate->CallStackEntry, sizeof(DebuggerPrivate->CallStackEntry));
- ZeroMem (DebuggerPrivate->TraceEntry, sizeof(DebuggerPrivate->TraceEntry));
+ DebuggerPrivate->TraceEntryCount = 0;
+ ZeroMem (DebuggerPrivate->CallStackEntry, sizeof (DebuggerPrivate->CallStackEntry));
+ ZeroMem (DebuggerPrivate->TraceEntry, sizeof (DebuggerPrivate->TraceEntry));
//
// Clear all breakpoint
@@ -402,7 +412,7 @@ DeinitDebuggerPrivateData (
//
// Clear Step context
//
- ZeroMem (&mDebuggerPrivate.StepContext, sizeof(mDebuggerPrivate.StepContext));
+ ZeroMem (&mDebuggerPrivate.StepContext, sizeof (mDebuggerPrivate.StepContext));
DebuggerPrivate->StatusFlags = 0;
//
@@ -423,10 +433,10 @@ DeinitDebuggerPrivateData (
**/
VOID
PrintExceptionReason (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- IN BOOLEAN Initialized
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ IN BOOLEAN Initialized
)
{
//
@@ -461,7 +471,7 @@ PrintExceptionReason (
}
}
- return ;
+ return;
}
/**
@@ -477,15 +487,15 @@ PrintExceptionReason (
VOID
EFIAPI
EdbExceptionHandler (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- CHAR16 InputBuffer[EFI_DEBUG_INPUS_BUFFER_SIZE];
- CHAR16 *CommandArg;
- EFI_DEBUGGER_COMMAND DebuggerCommand;
- EFI_DEBUG_STATUS DebugStatus;
- STATIC BOOLEAN mInitialized;
+ CHAR16 InputBuffer[EFI_DEBUG_INPUS_BUFFER_SIZE];
+ CHAR16 *CommandArg;
+ EFI_DEBUGGER_COMMAND DebuggerCommand;
+ EFI_DEBUG_STATUS DebugStatus;
+ STATIC BOOLEAN mInitialized;
mInitialized = FALSE;
@@ -506,6 +516,7 @@ EdbExceptionHandler (
(UINTN)EBC_DEBUGGER_MINOR_VERSION
);
}
+
//
// Init Private Data
//
@@ -526,6 +537,7 @@ EdbExceptionHandler (
EDBPrint (L"\nPlease enter command now, \'h\' for help.\n");
EDBPrint (L"(Using <Command> -b <...> to enable page break.)\n");
}
+
mInitialized = TRUE;
//
@@ -552,7 +564,7 @@ EdbExceptionHandler (
//
if (CommandArg != NULL) {
if (StriCmp (CommandArg, L"-b") == 0) {
- CommandArg = StrGetNextTokenLine (L" ");
+ CommandArg = StrGetNextTokenLine (L" ");
mDebuggerPrivate.EnablePageBreak = TRUE;
}
}
@@ -560,7 +572,7 @@ EdbExceptionHandler (
//
// Dispatch command
//
- DebugStatus = DebuggerCommand (CommandArg, &mDebuggerPrivate, ExceptionType, SystemContext);
+ DebugStatus = DebuggerCommand (CommandArg, &mDebuggerPrivate, ExceptionType, SystemContext);
mDebuggerPrivate.EnablePageBreak = FALSE;
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.h
index 34253b3..6662422 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/Edb.h
@@ -11,8 +11,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "EdbCommon.h"
-#define EBC_DEBUGGER_MAJOR_VERSION 1
-#define EBC_DEBUGGER_MINOR_VERSION 0
+#define EBC_DEBUGGER_MAJOR_VERSION 1
+#define EBC_DEBUGGER_MINOR_VERSION 0
#define EFI_DEBUG_RETURN 1
#define EFI_DEBUG_BREAK 2
@@ -27,8 +27,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
EfiDebuggerEntrypoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
/**
@@ -44,11 +44,11 @@ EfiDebuggerEntrypoint (
VOID
EFIAPI
EdbExceptionHandler (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
);
-extern EFI_DEBUGGER_PRIVATE_DATA mDebuggerPrivate;
+extern EFI_DEBUGGER_PRIVATE_DATA mDebuggerPrivate;
#include "EdbSupport.h"
#include "EdbCommand.h"
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBranch.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBranch.c
index 500bb41..eb9f3db 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBranch.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBranch.c
@@ -8,7 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Edb.h"
-CHAR16 *mBranchTypeStr[] = {
+CHAR16 *mBranchTypeStr[] = {
L"(CALL)",
L"(CALLEX)",
L"(RET)",
@@ -30,11 +30,11 @@ EdbBranchTypeToStr (
IN EFI_DEBUGGER_BRANCH_TYPE Type
)
{
- if (Type < 0 || Type >= EfiDebuggerBranchTypeEbcMax) {
+ if ((Type < 0) || (Type >= EfiDebuggerBranchTypeEbcMax)) {
return L"(Unknown Type)";
}
- return mBranchTypeStr [Type];
+ return mBranchTypeStr[Type];
}
/**
@@ -51,20 +51,20 @@ EdbBranchTypeToStr (
**/
EFI_DEBUG_STATUS
DebuggerCallStack (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- INTN Index;
- UINTN SubIndex;
- CHAR8 *FuncName;
- EFI_DEBUGGER_CALLSTACK_CONTEXT *CallStackEntry;
- BOOLEAN ShowParameter;
- UINTN ParameterNumber;
-
- ShowParameter = FALSE;
+ INTN Index;
+ UINTN SubIndex;
+ CHAR8 *FuncName;
+ EFI_DEBUGGER_CALLSTACK_CONTEXT *CallStackEntry;
+ BOOLEAN ShowParameter;
+ UINTN ParameterNumber;
+
+ ShowParameter = FALSE;
ParameterNumber = EFI_DEBUGGER_CALL_DEFAULT_PARAMETER;
//
@@ -76,7 +76,7 @@ DebuggerCallStack (
// Clear Call-Stack
//
DebuggerPrivate->CallStackEntryCount = 0;
- ZeroMem (DebuggerPrivate->CallStackEntry, sizeof(DebuggerPrivate->CallStackEntry));
+ ZeroMem (DebuggerPrivate->CallStackEntry, sizeof (DebuggerPrivate->CallStackEntry));
EDBPrint (L"Call-Stack is cleared\n");
return EFI_DEBUG_CONTINUE;
} else if (StriCmp (CommandArg, L"p") == 0) {
@@ -84,7 +84,7 @@ DebuggerCallStack (
// Print Call-Stack with parameter
//
ShowParameter = TRUE;
- CommandArg = StrGetNextTokenLine (L" ");
+ CommandArg = StrGetNextTokenLine (L" ");
if (CommandArg != NULL) {
//
// Try to get the parameter number
@@ -119,7 +119,7 @@ DebuggerCallStack (
EDBPrint (L"Call-Stack (TOP):\n");
EDBPrint (L" Caller Callee Name\n");
EDBPrint (L" ================== ================== ========\n");
-//EDBPrint (L" 0x00000000FFFFFFFF 0xFFFFFFFF00000000 EfiMain\n");
+ // EDBPrint (L" 0x00000000FFFFFFFF 0xFFFFFFFF00000000 EfiMain\n");
for (Index = (INTN)(DebuggerPrivate->CallStackEntryCount - 1); Index >= 0; Index--) {
//
// Get CallStack and print
@@ -134,13 +134,14 @@ DebuggerCallStack (
if (FuncName != NULL) {
EDBPrint (L" %a()", FuncName);
}
+
EDBPrint (L"\n");
if (ShowParameter) {
//
// Print parameter
//
- if (sizeof(UINTN) == sizeof(UINT64)) {
+ if (sizeof (UINTN) == sizeof (UINT64)) {
EDBPrint (
L" Parameter Address (0x%016lx) (\n",
CallStackEntry->ParameterAddr
@@ -149,6 +150,7 @@ DebuggerCallStack (
EDBPrint (L" )\n");
continue;
}
+
//
// Print each parameter
//
@@ -156,6 +158,7 @@ DebuggerCallStack (
if (SubIndex % 2 == 0) {
EDBPrint (L" ");
}
+
EDBPrint (
L"0x%016lx, ",
CallStackEntry->Parameter[SubIndex]
@@ -164,9 +167,11 @@ DebuggerCallStack (
EDBPrint (L"\n");
}
}
+
if (SubIndex % 2 == 0) {
EDBPrint (L" ");
}
+
EDBPrint (
L"0x%016lx\n",
CallStackEntry->Parameter[SubIndex]
@@ -176,7 +181,8 @@ DebuggerCallStack (
// break only for parameter
//
if ((((DebuggerPrivate->CallStackEntryCount - Index) % (16 / ParameterNumber)) == 0) &&
- (Index != 0)) {
+ (Index != 0))
+ {
if (SetPageBreak ()) {
break;
}
@@ -190,6 +196,7 @@ DebuggerCallStack (
EDBPrint (L" )\n");
continue;
}
+
//
// Print each parameter
//
@@ -197,6 +204,7 @@ DebuggerCallStack (
if (SubIndex % 4 == 0) {
EDBPrint (L" ");
}
+
EDBPrint (
L"0x%08x, ",
CallStackEntry->Parameter[SubIndex]
@@ -205,9 +213,11 @@ DebuggerCallStack (
EDBPrint (L"\n");
}
}
+
if (SubIndex % 4 == 0) {
EDBPrint (L" ");
}
+
EDBPrint (
L"0x%08x\n",
CallStackEntry->Parameter[SubIndex]
@@ -217,7 +227,8 @@ DebuggerCallStack (
// break only for parameter
//
if ((((DebuggerPrivate->CallStackEntryCount - Index) % (32 / ParameterNumber)) == 0) &&
- (Index != 0)) {
+ (Index != 0))
+ {
if (SetPageBreak ()) {
break;
}
@@ -246,10 +257,10 @@ DebuggerCallStack (
**/
EFI_DEBUG_STATUS
DebuggerInstructionBranch (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
UINTN Index;
@@ -263,11 +274,12 @@ DebuggerInstructionBranch (
// Clear Trace
//
DebuggerPrivate->TraceEntryCount = 0;
- ZeroMem (DebuggerPrivate->TraceEntry, sizeof(DebuggerPrivate->TraceEntry));
+ ZeroMem (DebuggerPrivate->TraceEntry, sizeof (DebuggerPrivate->TraceEntry));
EDBPrint (L"Instruction Trace is cleared\n");
} else {
EDBPrint (L"Trace argument Invalid\n");
}
+
return EFI_DEBUG_CONTINUE;
}
@@ -289,7 +301,7 @@ DebuggerInstructionBranch (
EDBPrint (L"Instruction Trace (->Latest):\n");
EDBPrint (L" Source Addr Destination Addr Type\n");
EDBPrint (L" ================== ================== ========\n");
-//EDBPrint (L" 0x00000000FFFFFFFF 0xFFFFFFFF00000000 (CALLEX)\n");
+ // EDBPrint (L" 0x00000000FFFFFFFF 0xFFFFFFFF00000000 (CALLEX)\n");
for (Index = 0; Index < DebuggerPrivate->TraceEntryCount; Index++) {
EDBPrint (
L" 0x%016lx 0x%016lx %s\n",
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreak.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreak.c
index 696703c..7d0b6f1 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreak.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreak.c
@@ -8,7 +8,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Edb.h"
-
/**
DebuggerCommand - BreakOnCALL.
@@ -23,10 +22,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerBreakOnCALL (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
//
@@ -69,10 +68,10 @@ DebuggerBreakOnCALL (
**/
EFI_DEBUG_STATUS
DebuggerBreakOnCALLEX (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
//
@@ -115,10 +114,10 @@ DebuggerBreakOnCALLEX (
**/
EFI_DEBUG_STATUS
DebuggerBreakOnRET (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
//
@@ -161,10 +160,10 @@ DebuggerBreakOnRET (
**/
EFI_DEBUG_STATUS
DebuggerBreakOnEntrypoint (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
//
@@ -209,10 +208,10 @@ DebuggerBreakOnEntrypoint (
**/
EFI_DEBUG_STATUS
DebuggerBreakOnThunk (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
//
@@ -256,10 +255,10 @@ DebuggerBreakOnThunk (
**/
EFI_DEBUG_STATUS
DebuggerBreakOnKey (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c
index 5d32c68..791fd7d 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdBreakpoint.c
@@ -20,10 +20,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
IsEBCBREAK3 (
- IN UINTN Address
+ IN UINTN Address
)
{
- if (GET_OPCODE(Address) != OPCODE_BREAK) {
+ if (GET_OPCODE (Address) != OPCODE_BREAK) {
return FALSE;
}
@@ -47,8 +47,8 @@ IsEBCBREAK3 (
**/
BOOLEAN
DebuggerBreakpointIsDuplicated (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN UINTN Address
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN UINTN Address
)
{
UINTN Index;
@@ -85,8 +85,8 @@ DebuggerBreakpointIsDuplicated (
**/
EFI_STATUS
DebuggerBreakpointAdd (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN UINTN Address
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN UINTN Address
)
{
//
@@ -114,15 +114,15 @@ DebuggerBreakpointAdd (
// Set the breakpoint
//
DebuggerPrivate->DebuggerBreakpointContext[DebuggerPrivate->DebuggerBreakpointCount].BreakpointAddress = Address;
- DebuggerPrivate->DebuggerBreakpointContext[DebuggerPrivate->DebuggerBreakpointCount].State = TRUE;
- DebuggerPrivate->DebuggerBreakpointContext[DebuggerPrivate->DebuggerBreakpointCount].OldInstruction = 0;
+ DebuggerPrivate->DebuggerBreakpointContext[DebuggerPrivate->DebuggerBreakpointCount].State = TRUE;
+ DebuggerPrivate->DebuggerBreakpointContext[DebuggerPrivate->DebuggerBreakpointCount].OldInstruction = 0;
CopyMem (
&DebuggerPrivate->DebuggerBreakpointContext[DebuggerPrivate->DebuggerBreakpointCount].OldInstruction,
(VOID *)Address,
- sizeof(UINT16)
+ sizeof (UINT16)
);
- DebuggerPrivate->DebuggerBreakpointCount ++;
+ DebuggerPrivate->DebuggerBreakpointCount++;
//
// Done
@@ -143,14 +143,15 @@ DebuggerBreakpointAdd (
**/
EFI_STATUS
DebuggerBreakpointDel (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN UINTN Index
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN UINTN Index
)
{
- UINTN BpIndex;
+ UINTN BpIndex;
if ((Index >= EFI_DEBUGGER_BREAKPOINT_MAX) ||
- (Index >= DebuggerPrivate->DebuggerBreakpointCount)) {
+ (Index >= DebuggerPrivate->DebuggerBreakpointCount))
+ {
return EFI_NOT_FOUND;
}
@@ -164,12 +165,13 @@ DebuggerBreakpointDel (
sizeof (DebuggerPrivate->DebuggerBreakpointContext[BpIndex])
);
}
+
ZeroMem (
&DebuggerPrivate->DebuggerBreakpointContext[BpIndex],
- sizeof(DebuggerPrivate->DebuggerBreakpointContext[BpIndex])
+ sizeof (DebuggerPrivate->DebuggerBreakpointContext[BpIndex])
);
- DebuggerPrivate->DebuggerBreakpointCount --;
+ DebuggerPrivate->DebuggerBreakpointCount--;
//
// Done
@@ -190,12 +192,13 @@ DebuggerBreakpointDel (
**/
EFI_STATUS
DebuggerBreakpointDis (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN UINTN Index
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN UINTN Index
)
{
if ((Index >= EFI_DEBUGGER_BREAKPOINT_MAX) ||
- (Index >= DebuggerPrivate->DebuggerBreakpointCount)) {
+ (Index >= DebuggerPrivate->DebuggerBreakpointCount))
+ {
return EFI_NOT_FOUND;
}
@@ -220,12 +223,13 @@ DebuggerBreakpointDis (
**/
EFI_STATUS
DebuggerBreakpointEn (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN UINTN Index
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN UINTN Index
)
{
if ((Index >= EFI_DEBUGGER_BREAKPOINT_MAX) ||
- (Index >= DebuggerPrivate->DebuggerBreakpointCount)) {
+ (Index >= DebuggerPrivate->DebuggerBreakpointCount))
+ {
return EFI_NOT_FOUND;
}
@@ -251,13 +255,13 @@ DebuggerBreakpointEn (
**/
EFI_DEBUG_STATUS
DebuggerBreakpointList (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Index;
+ UINTN Index;
//
// Check breakpoint cound
@@ -277,8 +281,8 @@ DebuggerBreakpointList (
EDBPrint (L"Breakpoint :\n");
EDBPrint (L" Index Address Status\n");
EDBPrint (L"======= ================== ========\n");
-//EDBPrint (L" 1 0xFFFFFFFF00000000 *\n");
-//EDBPrint (L" 12 0x00000000FFFFFFFF\n");
+ // EDBPrint (L" 1 0xFFFFFFFF00000000 *\n");
+ // EDBPrint (L" 12 0x00000000FFFFFFFF\n");
for (Index = 0; Index < DebuggerPrivate->DebuggerBreakpointCount; Index++) {
//
// Print the breakpoint
@@ -311,14 +315,14 @@ DebuggerBreakpointList (
**/
EFI_DEBUG_STATUS
DebuggerBreakpointSet (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Address;
- EFI_STATUS Status;
+ UINTN Address;
+ EFI_STATUS Status;
if (CommandArg == NULL) {
EDBPrint (L"BreakpointSet Argument error!\n");
@@ -331,7 +335,7 @@ DebuggerBreakpointSet (
Status = Symboltoi (CommandArg, &Address);
if (EFI_ERROR (Status)) {
if (Status == EFI_NOT_FOUND) {
- Address = Xtoi(CommandArg);
+ Address = Xtoi (CommandArg);
} else {
//
// Something wrong, let Symboltoi print error info.
@@ -345,7 +349,7 @@ DebuggerBreakpointSet (
// Add breakpoint
//
Status = DebuggerBreakpointAdd (DebuggerPrivate, Address);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"BreakpointSet error!\n");
}
@@ -369,14 +373,14 @@ DebuggerBreakpointSet (
**/
EFI_DEBUG_STATUS
DebuggerBreakpointClear (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Index;
- EFI_STATUS Status;
+ UINTN Index;
+ EFI_STATUS Status;
if (CommandArg == NULL) {
EDBPrint (L"BreakpointClear Argument error!\n");
@@ -388,7 +392,7 @@ DebuggerBreakpointClear (
// delete all breakpoint
//
DebuggerPrivate->DebuggerBreakpointCount = 0;
- ZeroMem (DebuggerPrivate->DebuggerBreakpointContext, sizeof(DebuggerPrivate->DebuggerBreakpointContext));
+ ZeroMem (DebuggerPrivate->DebuggerBreakpointContext, sizeof (DebuggerPrivate->DebuggerBreakpointContext));
EDBPrint (L"All the Breakpoint is cleared\n");
return EFI_DEBUG_CONTINUE;
}
@@ -396,14 +400,15 @@ DebuggerBreakpointClear (
//
// Get breakpoint index
//
- Index = Atoi(CommandArg);
- if (Index == (UINTN) -1) {
+ Index = Atoi (CommandArg);
+ if (Index == (UINTN)-1) {
EDBPrint (L"BreakpointClear Argument error!\n");
return EFI_DEBUG_CONTINUE;
}
if ((Index >= EFI_DEBUGGER_BREAKPOINT_MAX) ||
- (Index >= DebuggerPrivate->DebuggerBreakpointCount)) {
+ (Index >= DebuggerPrivate->DebuggerBreakpointCount))
+ {
EDBPrint (L"BreakpointClear error!\n");
return EFI_DEBUG_CONTINUE;
}
@@ -412,7 +417,7 @@ DebuggerBreakpointClear (
// Delete breakpoint
//
Status = DebuggerBreakpointDel (DebuggerPrivate, Index);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"BreakpointClear error!\n");
}
@@ -436,14 +441,14 @@ DebuggerBreakpointClear (
**/
EFI_DEBUG_STATUS
DebuggerBreakpointDisable (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Index;
- EFI_STATUS Status;
+ UINTN Index;
+ EFI_STATUS Status;
if (CommandArg == NULL) {
EDBPrint (L"BreakpointDisable Argument error!\n");
@@ -457,6 +462,7 @@ DebuggerBreakpointDisable (
for (Index = 0; Index < DebuggerPrivate->DebuggerBreakpointCount; Index++) {
Status = DebuggerBreakpointDis (DebuggerPrivate, Index);
}
+
EDBPrint (L"All the Breakpoint is disabled\n");
return EFI_DEBUG_CONTINUE;
}
@@ -464,8 +470,8 @@ DebuggerBreakpointDisable (
//
// Get breakpoint index
//
- Index = Atoi(CommandArg);
- if (Index == (UINTN) -1) {
+ Index = Atoi (CommandArg);
+ if (Index == (UINTN)-1) {
EDBPrint (L"BreakpointDisable Argument error!\n");
return EFI_DEBUG_CONTINUE;
}
@@ -474,7 +480,7 @@ DebuggerBreakpointDisable (
// Disable breakpoint
//
Status = DebuggerBreakpointDis (DebuggerPrivate, Index);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"BreakpointDisable error!\n");
}
@@ -497,14 +503,14 @@ DebuggerBreakpointDisable (
**/
EFI_DEBUG_STATUS
DebuggerBreakpointEnable (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Index;
- EFI_STATUS Status;
+ UINTN Index;
+ EFI_STATUS Status;
if (CommandArg == NULL) {
EDBPrint (L"BreakpointEnable Argument error!\n");
@@ -518,6 +524,7 @@ DebuggerBreakpointEnable (
for (Index = 0; Index < DebuggerPrivate->DebuggerBreakpointCount; Index++) {
Status = DebuggerBreakpointEn (DebuggerPrivate, Index);
}
+
EDBPrint (L"All the Breakpoint is enabled\n");
return EFI_DEBUG_CONTINUE;
}
@@ -525,8 +532,8 @@ DebuggerBreakpointEnable (
//
// Get breakpoint index
//
- Index = Atoi(CommandArg);
- if (Index == (UINTN) -1) {
+ Index = Atoi (CommandArg);
+ if (Index == (UINTN)-1) {
EDBPrint (L"BreakpointEnable Argument error!\n");
return EFI_DEBUG_CONTINUE;
}
@@ -535,7 +542,7 @@ DebuggerBreakpointEnable (
// Enable breakpoint
//
Status = DebuggerBreakpointEn (DebuggerPrivate, Index);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"BreakpointEnable error!\n");
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtIo.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtIo.c
index d5390d1..6540f30 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtIo.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtIo.c
@@ -22,10 +22,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerExtIoIB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -35,7 +35,6 @@ DebuggerExtIoIB (
return EFI_DEBUG_CONTINUE;
}
-
/**
DebuggerCommand - IW.
@@ -51,10 +50,10 @@ DebuggerExtIoIB (
**/
EFI_DEBUG_STATUS
DebuggerExtIoIW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -79,10 +78,10 @@ DebuggerExtIoIW (
**/
EFI_DEBUG_STATUS
DebuggerExtIoID (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -106,10 +105,10 @@ DebuggerExtIoID (
**/
EFI_DEBUG_STATUS
DebuggerExtIoOB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -119,7 +118,6 @@ DebuggerExtIoOB (
return EFI_DEBUG_CONTINUE;
}
-
/**
DebuggerCommand - OW.
@@ -134,10 +132,10 @@ DebuggerExtIoOB (
**/
EFI_DEBUG_STATUS
DebuggerExtIoOW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -147,7 +145,6 @@ DebuggerExtIoOW (
return EFI_DEBUG_CONTINUE;
}
-
/**
DebuggerCommand - OD.
@@ -162,10 +159,10 @@ DebuggerExtIoOW (
**/
EFI_DEBUG_STATUS
DebuggerExtIoOD (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtPci.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtPci.c
index 93e8b50..49c57f6 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtPci.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdExtPci.c
@@ -22,10 +22,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerExtPciPCIL (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -49,10 +49,10 @@ DebuggerExtPciPCIL (
**/
EFI_DEBUG_STATUS
DebuggerExtPciPCID (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -76,10 +76,10 @@ DebuggerExtPciPCID (
**/
EFI_DEBUG_STATUS
DebuggerExtPciCFGB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -89,7 +89,6 @@ DebuggerExtPciCFGB (
return EFI_DEBUG_CONTINUE;
}
-
/**
DebuggerCommand - CFGW.
@@ -104,10 +103,10 @@ DebuggerExtPciCFGB (
**/
EFI_DEBUG_STATUS
DebuggerExtPciCFGW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
@@ -131,10 +130,10 @@ DebuggerExtPciCFGW (
**/
EFI_DEBUG_STATUS
DebuggerExtPciCFGD (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
EDBPrint (L"Unsupported\n");
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c
index e5cf857..d51e627 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdGo.c
@@ -24,15 +24,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerGo (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Address;
- CHAR16 *CommandStr;
- EFI_STATUS Status;
+ UINTN Address;
+ CHAR16 *CommandStr;
+ EFI_STATUS Status;
//
// Check argument
@@ -48,7 +48,7 @@ DebuggerGo (
Status = Symboltoi (CommandStr, &Address);
if (EFI_ERROR (Status)) {
if (Status == EFI_NOT_FOUND) {
- Address = Xtoi(CommandStr);
+ Address = Xtoi (CommandStr);
} else {
//
// Something wrong, let Symboltoi print error info.
@@ -57,8 +57,9 @@ DebuggerGo (
return EFI_DEBUG_CONTINUE;
}
}
+
DebuggerPrivate->GoTilContext.BreakAddress = Address;
- DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_GT;
+ DebuggerPrivate->FeatureFlags |= EFI_DEBUG_FLAG_EBC_GT;
} else {
EDBPrint (L"Command Argument error!\n");
return EFI_DEBUG_CONTINUE;
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdHelp.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdHelp.c
index 74e1bef..655384c 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdHelp.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdHelp.c
@@ -22,13 +22,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerHelp (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN Index;
+ UINTN Index;
//
// if no argument, print all the command title
@@ -41,6 +41,7 @@ DebuggerHelp (
EDBPrint (DebuggerPrivate->DebuggerCommandSet[Index].CommandTitle);
}
}
+
return EFI_DEBUG_CONTINUE;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
index 42bd809..f0e0d98 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdMemory.c
@@ -8,7 +8,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Edb.h"
-
/**
Display memory unit.
@@ -25,34 +24,34 @@ EdbDisplayMemoryUnit (
IN EDB_DATA_WIDTH Width
)
{
- UINT8 Data8;
- UINT16 Data16;
- UINT32 Data32;
- UINT64 Data64;
+ UINT8 Data8;
+ UINT16 Data16;
+ UINT32 Data32;
+ UINT64 Data64;
//
// Print according to width
//
switch (Width) {
- case EdbWidthUint8:
- CopyMem (&Data8, (VOID *)Address, sizeof(UINT8));
- EDBPrint (L"%02x ", Data8);
- return sizeof(UINT8);
- case EdbWidthUint16:
- CopyMem (&Data16, (VOID *)Address, sizeof(UINT16));
- EDBPrint (L"%04x ", Data16);
- return sizeof(UINT16);
- case EdbWidthUint32:
- CopyMem (&Data32, (VOID *)Address, sizeof(UINT32));
- EDBPrint (L"%08x ", Data32);
- return sizeof(UINT32);
- case EdbWidthUint64:
- CopyMem (&Data64, (VOID *)Address, sizeof(UINT64));
- EDBPrint (L"%016lx ", Data64);
- return sizeof(UINT64);
- default:
- ASSERT (FALSE);
- break;
+ case EdbWidthUint8:
+ CopyMem (&Data8, (VOID *)Address, sizeof (UINT8));
+ EDBPrint (L"%02x ", Data8);
+ return sizeof (UINT8);
+ case EdbWidthUint16:
+ CopyMem (&Data16, (VOID *)Address, sizeof (UINT16));
+ EDBPrint (L"%04x ", Data16);
+ return sizeof (UINT16);
+ case EdbWidthUint32:
+ CopyMem (&Data32, (VOID *)Address, sizeof (UINT32));
+ EDBPrint (L"%08x ", Data32);
+ return sizeof (UINT32);
+ case EdbWidthUint64:
+ CopyMem (&Data64, (VOID *)Address, sizeof (UINT64));
+ EDBPrint (L"%016lx ", Data64);
+ return sizeof (UINT64);
+ default:
+ ASSERT (FALSE);
+ break;
}
//
@@ -72,9 +71,9 @@ EdbDisplayMemoryUnit (
**/
VOID
EdbDisplayMemory (
- IN UINTN Address,
- IN UINTN Count,
- IN EDB_DATA_WIDTH Width
+ IN UINTN Address,
+ IN UINTN Count,
+ IN EDB_DATA_WIDTH Width
)
{
UINTN LineNumber;
@@ -84,27 +83,27 @@ EdbDisplayMemory (
UINTN NumberInLine;
if (Count == 0) {
- return ;
+ return;
}
//
// Get line number and byte number
//
switch (Width) {
- case EdbWidthUint8:
- NumberInLine = 16;
- break;
- case EdbWidthUint16:
- NumberInLine = 8;
- break;
- case EdbWidthUint32:
- NumberInLine = 4;
- break;
- case EdbWidthUint64:
- NumberInLine = 2;
- break;
- default:
- return;
+ case EdbWidthUint8:
+ NumberInLine = 16;
+ break;
+ case EdbWidthUint16:
+ NumberInLine = 8;
+ break;
+ case EdbWidthUint32:
+ NumberInLine = 4;
+ break;
+ case EdbWidthUint64:
+ NumberInLine = 2;
+ break;
+ default:
+ return;
}
LineNumber = Count / NumberInLine;
@@ -118,12 +117,12 @@ EdbDisplayMemory (
// Print each line
//
for (LineIndex = 0; LineIndex < LineNumber; LineIndex++) {
-
//
// Break check
//
if (((LineIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
- (LineIndex != 0)) {
+ (LineIndex != 0))
+ {
if (SetPageBreak ()) {
break;
}
@@ -133,6 +132,7 @@ EdbDisplayMemory (
for (ByteIndex = 0; ByteIndex < NumberInLine; ByteIndex++) {
Address += EdbDisplayMemoryUnit (Address, Width);
}
+
EDBPrint (L"\n");
}
@@ -140,7 +140,8 @@ EdbDisplayMemory (
// Break check
//
if (((LineIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
- (LineIndex != 0)) {
+ (LineIndex != 0))
+ {
if (SetPageBreak ()) {
return;
}
@@ -154,7 +155,7 @@ EdbDisplayMemory (
Address += EdbDisplayMemoryUnit (Address, Width);
}
- return ;
+ return;
}
/**
@@ -168,29 +169,29 @@ EdbDisplayMemory (
**/
VOID
EdbEnterMemory (
- IN UINTN Address,
- IN VOID *Value,
- IN EDB_DATA_WIDTH Width
+ IN UINTN Address,
+ IN VOID *Value,
+ IN EDB_DATA_WIDTH Width
)
{
switch (Width) {
- case EdbWidthUint8:
- CopyMem ((VOID *)Address, Value, sizeof(UINT8));
- break;
- case EdbWidthUint16:
- CopyMem ((VOID *)Address, Value, sizeof(UINT16));
- break;
- case EdbWidthUint32:
- CopyMem ((VOID *)Address, Value, sizeof(UINT32));
- break;
- case EdbWidthUint64:
- CopyMem ((VOID *)Address, Value, sizeof(UINT64));
- break;
- default:
- break;
+ case EdbWidthUint8:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT8));
+ break;
+ case EdbWidthUint16:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT16));
+ break;
+ case EdbWidthUint32:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT32));
+ break;
+ case EdbWidthUint64:
+ CopyMem ((VOID *)Address, Value, sizeof (UINT64));
+ break;
+ default:
+ break;
}
- return ;
+ return;
}
/**
@@ -207,14 +208,14 @@ EdbEnterMemory (
**/
EFI_STATUS
EdbGetMemoryAddressCount (
- IN CHAR16 *CommandArg,
- IN UINTN *Address,
- IN UINTN *Count
+ IN CHAR16 *CommandArg,
+ IN UINTN *Address,
+ IN UINTN *Count
)
{
- CHAR16 *CommandStr;
- UINTN MemAddress;
- EFI_STATUS Status;
+ CHAR16 *CommandStr;
+ UINTN MemAddress;
+ EFI_STATUS Status;
//
// Get Address
@@ -224,10 +225,11 @@ EdbGetMemoryAddressCount (
EDBPrint (L"Memory: Address error!\n");
return EFI_INVALID_PARAMETER;
}
+
Status = Symboltoi (CommandStr, &MemAddress);
if (EFI_ERROR (Status)) {
if (Status == EFI_NOT_FOUND) {
- MemAddress = Xtoi(CommandStr);
+ MemAddress = Xtoi (CommandStr);
} else {
//
// Something wrong, let Symboltoi print error info.
@@ -236,6 +238,7 @@ EdbGetMemoryAddressCount (
return EFI_INVALID_PARAMETER;
}
}
+
*Address = MemAddress;
//
@@ -245,7 +248,7 @@ EdbGetMemoryAddressCount (
if (CommandStr == NULL) {
*Count = 1;
} else {
- *Count = Xtoi(CommandStr);
+ *Count = Xtoi (CommandStr);
}
//
@@ -268,14 +271,14 @@ EdbGetMemoryAddressCount (
**/
EFI_STATUS
EdbGetMemoryAddressValue (
- IN CHAR16 *CommandArg,
- IN UINTN *Address,
- IN UINT64 *Value
+ IN CHAR16 *CommandArg,
+ IN UINTN *Address,
+ IN UINT64 *Value
)
{
- CHAR16 *CommandStr;
- UINTN MemAddress;
- EFI_STATUS Status;
+ CHAR16 *CommandStr;
+ UINTN MemAddress;
+ EFI_STATUS Status;
//
// Get Address
@@ -285,10 +288,11 @@ EdbGetMemoryAddressValue (
EDBPrint (L"Memory: Address error!\n");
return EFI_INVALID_PARAMETER;
}
+
Status = Symboltoi (CommandStr, &MemAddress);
if (EFI_ERROR (Status)) {
if (Status == EFI_NOT_FOUND) {
- MemAddress = Xtoi(CommandStr);
+ MemAddress = Xtoi (CommandStr);
} else {
//
// Something wrong, let Symboltoi print error info.
@@ -297,6 +301,7 @@ EdbGetMemoryAddressValue (
return EFI_INVALID_PARAMETER;
}
}
+
*Address = MemAddress;
//
@@ -307,7 +312,8 @@ EdbGetMemoryAddressValue (
EDBPrint (L"Memory: Value error!\n");
return EFI_INVALID_PARAMETER;
}
- *Value = LXtoi(CommandStr);
+
+ *Value = LXtoi (CommandStr);
//
// Done
@@ -327,19 +333,19 @@ EdbGetMemoryAddressValue (
**/
EFI_DEBUG_STATUS
DebuggerMemoryDisplay (
- IN CHAR16 *CommandArg,
- IN EDB_DATA_WIDTH Width
+ IN CHAR16 *CommandArg,
+ IN EDB_DATA_WIDTH Width
)
{
- EFI_STATUS Status;
- UINTN Address;
- UINTN Count;
+ EFI_STATUS Status;
+ UINTN Address;
+ UINTN Count;
//
// Get memory address and count
//
Status = EdbGetMemoryAddressCount (CommandArg, &Address, &Count);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return EFI_DEBUG_CONTINUE;
}
@@ -366,19 +372,19 @@ DebuggerMemoryDisplay (
**/
EFI_DEBUG_STATUS
DebuggerMemoryEnter (
- IN CHAR16 *CommandArg,
- IN EDB_DATA_WIDTH Width
+ IN CHAR16 *CommandArg,
+ IN EDB_DATA_WIDTH Width
)
{
- EFI_STATUS Status;
- UINTN Address;
- UINT64 Value;
+ EFI_STATUS Status;
+ UINTN Address;
+ UINT64 Value;
//
// Get memory address and value
//
Status = EdbGetMemoryAddressValue (CommandArg, &Address, &Value);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return EFI_DEBUG_CONTINUE;
}
@@ -407,10 +413,10 @@ DebuggerMemoryEnter (
**/
EFI_DEBUG_STATUS
DebuggerMemoryDB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryDisplay (CommandArg, EdbWidthUint8);
@@ -430,10 +436,10 @@ DebuggerMemoryDB (
**/
EFI_DEBUG_STATUS
DebuggerMemoryDW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryDisplay (CommandArg, EdbWidthUint16);
@@ -453,10 +459,10 @@ DebuggerMemoryDW (
**/
EFI_DEBUG_STATUS
DebuggerMemoryDD (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryDisplay (CommandArg, EdbWidthUint32);
@@ -476,10 +482,10 @@ DebuggerMemoryDD (
**/
EFI_DEBUG_STATUS
DebuggerMemoryDQ (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryDisplay (CommandArg, EdbWidthUint64);
@@ -499,10 +505,10 @@ DebuggerMemoryDQ (
**/
EFI_DEBUG_STATUS
DebuggerMemoryEB (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryEnter (CommandArg, EdbWidthUint8);
@@ -522,10 +528,10 @@ DebuggerMemoryEB (
**/
EFI_DEBUG_STATUS
DebuggerMemoryEW (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryEnter (CommandArg, EdbWidthUint16);
@@ -545,10 +551,10 @@ DebuggerMemoryEW (
**/
EFI_DEBUG_STATUS
DebuggerMemoryED (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryEnter (CommandArg, EdbWidthUint32);
@@ -568,10 +574,10 @@ DebuggerMemoryED (
**/
EFI_DEBUG_STATUS
DebuggerMemoryEQ (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return DebuggerMemoryEnter (CommandArg, EdbWidthUint64);
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdQuit.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdQuit.c
index 76daf85..98ad31a 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdQuit.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdQuit.c
@@ -28,10 +28,10 @@ Abstract:
**/
EFI_DEBUG_STATUS
DebuggerQuit (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
return EFI_DEBUG_RETURN;
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdRegister.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdRegister.c
index 2ced0e4..272e455 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdRegister.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdRegister.c
@@ -22,10 +22,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerRegister (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
CHAR16 *RegName;
@@ -80,6 +80,7 @@ DebuggerRegister (
EDBPrint (L"Invalid Register Value\n");
return EFI_DEBUG_CONTINUE;
}
+
RegVal = LXtoi (RegValStr);
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdScope.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdScope.c
index 8240ab6..d09bb8a 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdScope.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdScope.c
@@ -22,14 +22,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_DEBUG_STATUS
DebuggerScope (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- EFI_STATUS Status;
- UINTN Address;
+ EFI_STATUS Status;
+ UINTN Address;
if (CommandArg == NULL) {
EDBPrint (L"Scope: invalid Address\n");
@@ -42,7 +42,7 @@ DebuggerScope (
Status = Symboltoi (CommandArg, &Address);
if (EFI_ERROR (Status)) {
if (Status == EFI_NOT_FOUND) {
- Address = Xtoi(CommandArg);
+ Address = Xtoi (CommandArg);
} else {
//
// Something wrong, let Symboltoi print error info.
@@ -51,6 +51,7 @@ DebuggerScope (
return EFI_DEBUG_CONTINUE;
}
}
+
DebuggerPrivate->InstructionScope = Address;
EDBPrint (L"Scope: 0x%x\n", DebuggerPrivate->InstructionScope);
EdbShowDisasm (DebuggerPrivate, SystemContext);
@@ -75,10 +76,10 @@ DebuggerScope (
**/
EFI_DEBUG_STATUS
DebuggerList (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
if (CommandArg == NULL) {
@@ -87,7 +88,7 @@ DebuggerList (
//
// Load new list number
//
- DebuggerPrivate->InstructionNumber = Atoi(CommandArg);
+ DebuggerPrivate->InstructionNumber = Atoi (CommandArg);
EDBPrint (L"List Number: %d\n", DebuggerPrivate->InstructionNumber);
EdbShowDisasm (DebuggerPrivate, SystemContext);
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdStep.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdStep.c
index 441f536..3c5ef84 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdStep.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdStep.c
@@ -20,10 +20,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
IsEBCCALL (
- IN UINTN Address
+ IN UINTN Address
)
{
- if (GET_OPCODE(Address) != OPCODE_CALL) {
+ if (GET_OPCODE (Address) != OPCODE_CALL) {
return FALSE;
}
@@ -46,10 +46,10 @@ IsEBCCALL (
**/
BOOLEAN
IsEBCRET (
- IN UINTN Address
+ IN UINTN Address
)
{
- if (GET_OPCODE(Address) != OPCODE_RET) {
+ if (GET_OPCODE (Address) != OPCODE_RET) {
return FALSE;
}
@@ -74,10 +74,10 @@ IsEBCRET (
**/
EFI_DEBUG_STATUS
DebuggerStepInto (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
SystemContext.SystemContextEbc->Flags |= VMFLAGS_STEP;
@@ -99,13 +99,13 @@ DebuggerStepInto (
**/
EFI_DEBUG_STATUS
DebuggerStepOver (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- if (IsEBCCALL((UINTN)SystemContext.SystemContextEbc->Ip)) {
+ if (IsEBCCALL ((UINTN)SystemContext.SystemContextEbc->Ip)) {
//
// Check CALL (NOTE: CALLEX is exclusive)
//
@@ -134,13 +134,13 @@ DebuggerStepOver (
**/
EFI_DEBUG_STATUS
DebuggerStepOut (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- if (IsEBCRET((UINTN)SystemContext.SystemContextEbc->Ip)) {
+ if (IsEBCRET ((UINTN)SystemContext.SystemContextEbc->Ip)) {
//
// Check RET
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdSymbol.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdSymbol.c
index 7b453fa..1b30b91 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdSymbol.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCmdSymbol.c
@@ -19,17 +19,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
CHAR16 *
GetFileNameFromFullPath (
- IN CHAR16 *FullPath
+ IN CHAR16 *FullPath
)
{
- CHAR16 *FileName;
- CHAR16 *TempFileName;
+ CHAR16 *FileName;
+ CHAR16 *TempFileName;
- FileName = FullPath;
+ FileName = FullPath;
TempFileName = StrGetNewTokenLine (FullPath, L"\\");
while (TempFileName != NULL) {
- FileName = TempFileName;
+ FileName = TempFileName;
TempFileName = StrGetNextTokenLine (L"\\");
PatchForStrTokenBefore (TempFileName, L'\\');
}
@@ -48,10 +48,10 @@ GetFileNameFromFullPath (
**/
CHAR16 *
GetDirNameFromFullPath (
- IN CHAR16 *FullPath
+ IN CHAR16 *FullPath
)
{
- CHAR16 *FileName;
+ CHAR16 *FileName;
FileName = GetFileNameFromFullPath (FullPath);
if (FileName != FullPath) {
@@ -75,14 +75,14 @@ GetDirNameFromFullPath (
**/
CHAR16 *
ConstructFullPath (
- IN CHAR16 *DirPath,
- IN CHAR16 *FilePath,
- IN UINTN Size
+ IN CHAR16 *DirPath,
+ IN CHAR16 *FilePath,
+ IN UINTN Size
)
{
- UINTN DirPathSize;
+ UINTN DirPathSize;
- DirPathSize = StrLen(DirPath);
+ DirPathSize = StrLen (DirPath);
*(DirPath + DirPathSize) = L'\\';
StrnCatS (DirPath, DirPathSize + Size + 1, FilePath, Size);
@@ -91,7 +91,7 @@ ConstructFullPath (
return DirPath;
}
-CHAR16 *mSymbolTypeStr[] = {
+CHAR16 *mSymbolTypeStr[] = {
L"( F)",
L"(SF)",
L"(GV)",
@@ -112,11 +112,11 @@ EdbSymbolTypeToStr (
IN EFI_DEBUGGER_SYMBOL_TYPE Type
)
{
- if (Type < 0 || Type >= EfiDebuggerSymbolTypeMax) {
+ if ((Type < 0) || (Type >= EfiDebuggerSymbolTypeMax)) {
return L"(?)";
}
- return mSymbolTypeStr [Type];
+ return mSymbolTypeStr[Type];
}
/**
@@ -132,18 +132,18 @@ EdbSymbolTypeToStr (
EFI_DEBUG_STATUS
DebuggerDisplaySymbolAccrodingToAddress (
IN UINTN Address,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
)
{
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
- UINTN CandidateAddress;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
+ UINTN CandidateAddress;
//
// Find the nearest symbol address
//
CandidateAddress = EbdFindSymbolAddress (Address, EdbMatchSymbolTypeNearestAddress, &Object, &Entry);
- if (CandidateAddress == 0 || CandidateAddress == (UINTN) -1 || Entry == NULL) {
+ if ((CandidateAddress == 0) || (CandidateAddress == (UINTN)-1) || (Entry == NULL)) {
EDBPrint (L"Symbole at Address not found!\n");
return EFI_DEBUG_CONTINUE;
} else if (Address != CandidateAddress) {
@@ -154,10 +154,10 @@ DebuggerDisplaySymbolAccrodingToAddress (
// Display symbol
//
EDBPrint (L"Symbol File Name: %s\n", Object->Name);
- if (sizeof(UINTN) == sizeof(UINT64)) {
+ if (sizeof (UINTN) == sizeof (UINT64)) {
EDBPrint (L" Address Type Symbol\n");
EDBPrint (L" ================== ==== ========\n");
-// EDBPrint (L" 0xFFFFFFFF00000000 ( F) TestMain\n");
+ // EDBPrint (L" 0xFFFFFFFF00000000 ( F) TestMain\n");
EDBPrint (
L" 0x%016lx %s %a\n",
(UINT64)Entry->Rva + Object->BaseAddress,
@@ -167,7 +167,7 @@ DebuggerDisplaySymbolAccrodingToAddress (
} else {
EDBPrint (L" Address Type Symbol\n");
EDBPrint (L" ========== ==== ========\n");
-// EDBPrint (L" 0xFFFF0000 ( F) TestMain\n");
+ // EDBPrint (L" 0xFFFF0000 ( F) TestMain\n");
EDBPrint (
L" 0x%08x %s %a\n",
Entry->Rva + Object->BaseAddress,
@@ -197,13 +197,13 @@ EFI_DEBUG_STATUS
DebuggerDisplaySymbolAccrodingToName (
IN CHAR16 *SymbolFileName,
IN CHAR16 *SymbolName,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate
)
{
- UINTN Index;
- UINTN SubIndex;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
+ UINTN Index;
+ UINTN SubIndex;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
if (DebuggerPrivate->DebuggerSymbolContext.ObjectCount == 0) {
EDBPrint (L"No Symbol File!\n");
@@ -216,7 +216,8 @@ DebuggerDisplaySymbolAccrodingToName (
Object = DebuggerPrivate->DebuggerSymbolContext.Object;
for (Index = 0; Index < DebuggerPrivate->DebuggerSymbolContext.ObjectCount; Index++, Object++) {
if ((SymbolFileName != NULL) &&
- (StriCmp (SymbolFileName, Object->Name) != 0)) {
+ (StriCmp (SymbolFileName, Object->Name) != 0))
+ {
continue;
}
@@ -234,15 +235,16 @@ DebuggerDisplaySymbolAccrodingToName (
EDBPrint (L"No Symbol!\n");
continue;
}
+
Entry = Object->Entry;
- if (sizeof(UINTN) == sizeof(UINT64)) {
+ if (sizeof (UINTN) == sizeof (UINT64)) {
EDBPrint (L" Address Type Symbol\n");
EDBPrint (L" ================== ==== ========\n");
-// EDBPrint (L" 0xFFFFFFFF00000000 ( F) TestMain (EbcTest.obj)\n");
+ // EDBPrint (L" 0xFFFFFFFF00000000 ( F) TestMain (EbcTest.obj)\n");
} else {
EDBPrint (L" Address Type Symbol\n");
EDBPrint (L" ========== ==== ========\n");
-// EDBPrint (L" 0xFFFF0000 ( F) TestMain (EbcTest.obj)\n");
+ // EDBPrint (L" 0xFFFF0000 ( F) TestMain (EbcTest.obj)\n");
}
//
@@ -250,7 +252,8 @@ DebuggerDisplaySymbolAccrodingToName (
//
for (SubIndex = 0; SubIndex < Object->EntryCount; SubIndex++, Entry++) {
if ((SymbolName != NULL) &&
- (StrCmpUnicodeAndAscii (SymbolName, Entry->Name) != 0)) {
+ (StrCmpUnicodeAndAscii (SymbolName, Entry->Name) != 0))
+ {
continue;
}
@@ -258,13 +261,14 @@ DebuggerDisplaySymbolAccrodingToName (
// Break symbol
//
if (((SubIndex % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
- (SubIndex != 0)) {
+ (SubIndex != 0))
+ {
if (SetPageBreak ()) {
break;
}
}
- if (sizeof(UINTN) == sizeof(UINT64)) {
+ if (sizeof (UINTN) == sizeof (UINT64)) {
EDBPrint (
L" 0x%016lx %s %a (%a)\n",
(UINT64)Entry->Rva + Object->BaseAddress,
@@ -304,27 +308,28 @@ DebuggerDisplaySymbolAccrodingToName (
**/
EFI_DEBUG_STATUS
DebuggerListSymbol (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- CHAR16 *SymbolFileName;
- CHAR16 *SymbolName;
- CHAR16 *CommandStr;
- UINTN Address;
+ CHAR16 *SymbolFileName;
+ CHAR16 *SymbolName;
+ CHAR16 *CommandStr;
+ UINTN Address;
SymbolFileName = NULL;
- SymbolName = NULL;
- CommandStr = CommandArg;
+ SymbolName = NULL;
+ CommandStr = CommandArg;
//
// display symbol according to address
//
if (CommandStr != NULL) {
if ((StriCmp (CommandStr, L"F") != 0) &&
- (StriCmp (CommandStr, L"S") != 0)) {
+ (StriCmp (CommandStr, L"S") != 0))
+ {
Address = Xtoi (CommandStr);
return DebuggerDisplaySymbolAccrodingToAddress (Address, DebuggerPrivate);
}
@@ -341,10 +346,11 @@ DebuggerListSymbol (
return EFI_DEBUG_CONTINUE;
} else {
SymbolFileName = CommandStr;
- CommandStr = StrGetNextTokenLine (L" ");
+ CommandStr = StrGetNextTokenLine (L" ");
}
}
}
+
//
// Get SymbolName
//
@@ -360,6 +366,7 @@ DebuggerListSymbol (
}
}
}
+
if (CommandStr != NULL) {
EDBPrint (L"Argument error!\n");
return EFI_DEBUG_CONTINUE;
@@ -385,22 +392,22 @@ DebuggerListSymbol (
**/
EFI_DEBUG_STATUS
DebuggerLoadSymbol (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN BufferSize;
- VOID *Buffer;
- EFI_STATUS Status;
- CHAR16 *FileName;
- CHAR16 *CommandArg2;
- BOOLEAN IsLoadCode;
- CHAR16 *DirName;
- CHAR16 CodFile[EFI_DEBUGGER_SYMBOL_NAME_MAX];
- CHAR16 *CodFileName;
- UINTN Index;
+ UINTN BufferSize;
+ VOID *Buffer;
+ EFI_STATUS Status;
+ CHAR16 *FileName;
+ CHAR16 *CommandArg2;
+ BOOLEAN IsLoadCode;
+ CHAR16 *DirName;
+ CHAR16 CodFile[EFI_DEBUGGER_SYMBOL_NAME_MAX];
+ CHAR16 *CodFileName;
+ UINTN Index;
//
// Check the argument
@@ -409,7 +416,8 @@ DebuggerLoadSymbol (
EDBPrint (L"SymbolFile not found!\n");
return EFI_DEBUG_CONTINUE;
}
- IsLoadCode = FALSE;
+
+ IsLoadCode = FALSE;
CommandArg2 = StrGetNextTokenLine (L" ");
if (CommandArg2 != NULL) {
if (StriCmp (CommandArg2, L"a") == 0) {
@@ -424,6 +432,7 @@ DebuggerLoadSymbol (
EDBPrint (L"SymbolFile name error!\n");
return EFI_DEBUG_CONTINUE;
}
+
if (StriCmp (CommandArg + (StrLen (CommandArg) - 4), L".map") != 0) {
EDBPrint (L"SymbolFile name error!\n");
return EFI_DEBUG_CONTINUE;
@@ -433,7 +442,7 @@ DebuggerLoadSymbol (
// Read MAP file to memory
//
Status = ReadFileToBuffer (DebuggerPrivate, CommandArg, &BufferSize, &Buffer, TRUE);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"SymbolFile read error!\n");
return EFI_DEBUG_CONTINUE;
}
@@ -443,18 +452,19 @@ DebuggerLoadSymbol (
// Load Symbol
//
Status = EdbLoadSymbol (DebuggerPrivate, FileName, BufferSize, Buffer);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"LoadSymbol error!\n");
gBS->FreePool (Buffer);
return EFI_DEBUG_CONTINUE;
}
+
gBS->FreePool (Buffer);
//
// Patch Symbol for RVA
//
Status = EdbPatchSymbolRVA (DebuggerPrivate, FileName, EdbEbcImageRvaSearchTypeLast);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"PatchSymbol RVA - %r! Using the RVA in symbol file.\n", Status);
} else {
DEBUG ((DEBUG_ERROR, "PatchSymbol RVA successfully!\n"));
@@ -468,9 +478,9 @@ DebuggerLoadSymbol (
// load each cod file
//
DirName = GetDirNameFromFullPath (CommandArg);
- ZeroMem (CodFile, sizeof(CodFile));
+ ZeroMem (CodFile, sizeof (CodFile));
if (StrCmp (DirName, L"") != 0) {
- StrCpyS (CodFile, sizeof(CodFile), DirName);
+ StrCpyS (CodFile, sizeof (CodFile), DirName);
} else {
DirName = L"\\";
}
@@ -478,19 +488,19 @@ DebuggerLoadSymbol (
//
// Go throuth each file under this dir
//
- Index = 0;
+ Index = 0;
CodFileName = GetFileNameUnderDir (DebuggerPrivate, DirName, L".cod", &Index);
while (CodFileName != NULL) {
- ZeroMem (CodFile, sizeof(CodFile));
+ ZeroMem (CodFile, sizeof (CodFile));
if (StrCmp (DirName, L"\\") != 0) {
- StrCpyS (CodFile, sizeof(CodFile), DirName);
+ StrCpyS (CodFile, sizeof (CodFile), DirName);
}
//
// read cod file to memory
//
Status = ReadFileToBuffer (DebuggerPrivate, ConstructFullPath (CodFile, CodFileName, EFI_DEBUGGER_SYMBOL_NAME_MAX - StrLen (CodFile) - 2), &BufferSize, &Buffer, FALSE);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"CodeFile read error!\n");
CodFileName = GetFileNameUnderDir (DebuggerPrivate, DirName, L".cod", &Index);
continue;
@@ -544,19 +554,19 @@ DebuggerLoadSymbol (
**/
EFI_DEBUG_STATUS
DebuggerUnloadSymbol (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- EFI_STATUS Status;
- CHAR16 *FileName;
- CHAR16 *DirName;
- CHAR16 CodFile[EFI_DEBUGGER_SYMBOL_NAME_MAX];
- CHAR16 *CodFileName;
- UINTN Index;
- VOID *BufferPtr;
+ EFI_STATUS Status;
+ CHAR16 *FileName;
+ CHAR16 *DirName;
+ CHAR16 CodFile[EFI_DEBUGGER_SYMBOL_NAME_MAX];
+ CHAR16 *CodFileName;
+ UINTN Index;
+ VOID *BufferPtr;
//
// Check the argument
@@ -572,9 +582,9 @@ DebuggerUnloadSymbol (
// Unload Code
//
DirName = GetDirNameFromFullPath (CommandArg);
- ZeroMem (CodFile, sizeof(CodFile));
+ ZeroMem (CodFile, sizeof (CodFile));
if (StrCmp (DirName, L"") != 0) {
- StrCpyS (CodFile, sizeof(CodFile), DirName);
+ StrCpyS (CodFile, sizeof (CodFile), DirName);
} else {
DirName = L"\\";
}
@@ -582,12 +592,12 @@ DebuggerUnloadSymbol (
//
// Go through each file under this dir
//
- Index = 0;
+ Index = 0;
CodFileName = GetFileNameUnderDir (DebuggerPrivate, DirName, L".cod", &Index);
while (CodFileName != NULL) {
- ZeroMem (CodFile, sizeof(CodFile));
+ ZeroMem (CodFile, sizeof (CodFile));
if (StrCmp (DirName, L"\\") != 0) {
- StrCpyS (CodFile, sizeof(CodFile), DirName);
+ StrCpyS (CodFile, sizeof (CodFile), DirName);
}
//
@@ -620,7 +630,7 @@ DebuggerUnloadSymbol (
// Unload Symbol
//
Status = EdbUnloadSymbol (DebuggerPrivate, FileName);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"UnloadSymbol error!\n");
}
@@ -644,10 +654,10 @@ DebuggerUnloadSymbol (
**/
EFI_DEBUG_STATUS
DebuggerDisplaySymbol (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
if (CommandArg == NULL) {
@@ -680,18 +690,18 @@ DebuggerDisplaySymbol (
**/
EFI_DEBUG_STATUS
DebuggerLoadCode (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- UINTN BufferSize;
- VOID *Buffer;
- EFI_STATUS Status;
- CHAR16 *CommandArg2;
- CHAR16 *FileName;
- CHAR16 *MapFileName;
+ UINTN BufferSize;
+ VOID *Buffer;
+ EFI_STATUS Status;
+ CHAR16 *CommandArg2;
+ CHAR16 *FileName;
+ CHAR16 *MapFileName;
//
// Check the argument
@@ -700,6 +710,7 @@ DebuggerLoadCode (
EDBPrint (L"CodeFile not found!\n");
return EFI_DEBUG_CONTINUE;
}
+
CommandArg2 = StrGetNextTokenLine (L" ");
if (CommandArg2 == NULL) {
EDBPrint (L"SymbolFile not found!\n");
@@ -710,14 +721,17 @@ DebuggerLoadCode (
EDBPrint (L"CodeFile name error!\n");
return EFI_DEBUG_CONTINUE;
}
+
if (StriCmp (CommandArg + (StrLen (CommandArg) - 4), L".cod") != 0) {
EDBPrint (L"CodeFile name error!\n");
return EFI_DEBUG_CONTINUE;
}
+
if (StrLen (CommandArg2) <= 4) {
EDBPrint (L"SymbolFile name error!\n");
return EFI_DEBUG_CONTINUE;
}
+
if (StriCmp (CommandArg2 + (StrLen (CommandArg2) - 4), L".map") != 0) {
EDBPrint (L"SymbolFile name error!\n");
return EFI_DEBUG_CONTINUE;
@@ -727,12 +741,12 @@ DebuggerLoadCode (
// read cod file to memory
//
Status = ReadFileToBuffer (DebuggerPrivate, CommandArg, &BufferSize, &Buffer, TRUE);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
EDBPrint (L"CodeFile read error!\n");
return EFI_DEBUG_CONTINUE;
}
- FileName = GetFileNameFromFullPath (CommandArg);
+ FileName = GetFileNameFromFullPath (CommandArg);
MapFileName = GetFileNameFromFullPath (CommandArg2);
//
// Load Code
@@ -774,17 +788,17 @@ DebuggerLoadCode (
**/
EFI_DEBUG_STATUS
DebuggerUnloadCode (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
- CHAR16 *CommandArg2;
- CHAR16 *FileName;
- CHAR16 *MapFileName;
- EFI_STATUS Status;
- VOID *BufferPtr;
+ CHAR16 *CommandArg2;
+ CHAR16 *FileName;
+ CHAR16 *MapFileName;
+ EFI_STATUS Status;
+ VOID *BufferPtr;
//
// Check the argument
@@ -793,13 +807,14 @@ DebuggerUnloadCode (
EDBPrint (L"CodeFile not found!\n");
return EFI_DEBUG_CONTINUE;
}
+
CommandArg2 = StrGetNextTokenLine (L" ");
if (CommandArg2 == NULL) {
EDBPrint (L"SymbolFile not found!\n");
return EFI_DEBUG_CONTINUE;
}
- FileName = GetFileNameFromFullPath (CommandArg);
+ FileName = GetFileNameFromFullPath (CommandArg);
MapFileName = GetFileNameFromFullPath (CommandArg2);
//
@@ -839,10 +854,10 @@ DebuggerUnloadCode (
**/
EFI_DEBUG_STATUS
DebuggerDisplayCode (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
)
{
if (CommandArg == NULL) {
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.c
index 5597a7e..e099b16 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.c
@@ -25,7 +25,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Address> - The hexical address user want to break at.\n"
L" <Symbol> - The symbol name for target address user want to break at. It has following format [MapFileName:]SymbolName\n",
L"Execution:\n",
- {SCAN_F5, CHAR_NULL},
+ { SCAN_F5, CHAR_NULL },
DebuggerGo
},
{
@@ -35,7 +35,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"T\n"
L" (No Argument)\n",
L"",
- {SCAN_F8, CHAR_NULL},
+ { SCAN_F8, CHAR_NULL },
DebuggerStepInto
},
{
@@ -45,7 +45,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"P\n"
L" (No Argument)\n",
L"",
- {SCAN_F10, CHAR_NULL},
+ { SCAN_F10, CHAR_NULL },
DebuggerStepOver
},
{
@@ -55,7 +55,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"O\n"
L" (No Argument)\n",
L"",
- {SCAN_F11, CHAR_NULL},
+ { SCAN_F11, CHAR_NULL },
DebuggerStepOut
},
{
@@ -65,7 +65,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"Q\n"
L" (No Argument)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerQuit
},
//
@@ -80,7 +80,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable break-on-call\n"
L" off - disable break-on-call\n",
L"Break:\n",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakOnCALL
},
{
@@ -92,7 +92,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable break-on-callex\n"
L" off - disable break-on-callex\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakOnCALLEX
},
{
@@ -104,7 +104,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable break-on-return\n"
L" off - disable break-on-return\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakOnRET
},
{
@@ -116,7 +116,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable break-on-entrypoint\n"
L" off - disable break-on-entrypoint\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakOnEntrypoint
},
{
@@ -128,7 +128,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable break-on-thunk\n"
L" off - disable break-on-thunk\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakOnThunk
},
{
@@ -140,7 +140,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable break-on-key\n"
L" off - disable break-on-key\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakOnKey
},
{
@@ -150,7 +150,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"BL\n"
L" (No Argument) - show the state for current breakpoint\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakpointList
},
{
@@ -161,7 +161,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Address> - Hexical breakpoint address\n"
L" <Symbol> - Symbol name for breakpoint address. It has following format [MapFileName:]SymbolName.\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakpointSet
},
{
@@ -172,7 +172,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Index> - Decimal breakpoint index, which can be got from BL command\n"
L" * - For all the breakpoint\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakpointClear
},
{
@@ -183,7 +183,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Index> - Decimal breakpoint index, which can be got from BL command\n"
L" * - For all the breakpoint\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakpointDisable
},
{
@@ -194,7 +194,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Index> - Decimal breakpoint index, which can be got from BL command\n"
L" * - For all the breakpoint\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerBreakpointEnable
},
//
@@ -210,7 +210,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" ParameterNum - Decimal call-stack parameters number, 8 by default, 16 as max\n"
L" c - Clear current call-stack\n",
L"Information:\n",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerCallStack
},
{
@@ -221,7 +221,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" (No Argument) - Show current instruction branch\n"
L" c - Clear current instruction branch\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerInstructionBranch
},
{
@@ -233,7 +233,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Register> - EBC VM register name (R0~R7, Flags, ControlFlags, and IP\n"
L" <Value> - The Hexical value of register\n",
L"",
- {SCAN_F2, CHAR_NULL},
+ { SCAN_F2, CHAR_NULL },
DebuggerRegister
},
{
@@ -244,7 +244,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" (No Argument) - List current assembly code\n"
L" Count - The decimal instruction assembly count\n",
L"",
- {SCAN_F4, CHAR_NULL},
+ { SCAN_F4, CHAR_NULL },
DebuggerList
},
{
@@ -255,7 +255,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Address> - The Hexical address where user wants to see the assembly code\n"
L" <Symbol> - Symbol name for scope address. It has following format [MapFileName:]SymbolName.\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerScope
},
{
@@ -267,7 +267,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Count> - The hexical memory count (not set means 1)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryDB
},
{
@@ -279,7 +279,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Count> - The hexical memory count (not set means 1)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryDW
},
{
@@ -291,7 +291,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Count> - The hexical memory count (not set means 1)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryDD
},
{
@@ -303,7 +303,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Count> - The hexical memory count (not set means 1)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryDQ
},
{
@@ -315,7 +315,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Value> - The hexical memory value\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryEB
},
{
@@ -327,7 +327,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Value> - The hexical memory value\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryEW
},
{
@@ -339,7 +339,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Value> - The hexical memory value\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryED
},
{
@@ -351,7 +351,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" <Symbol> - Symbol name for memory address. It has following format [MapFileName:]SymbolName.\n"
L" <Value> - The hexical memory value\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerMemoryEQ
},
//
@@ -367,7 +367,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" S <Symbol> - List this symbol only\n"
L" <Address> - The hexical memory address, which user want to find the symbol for.\n",
L"Symbol:\n",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerListSymbol
},
{
@@ -378,7 +378,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" SymbolFile - The EBC symbol file (Its name should be XXX.MAP)\n"
L" a - Automatically load code files in the same dir\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerLoadSymbol
},
{
@@ -388,7 +388,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"UNLOADSYMBOL <SymbolFile>\n"
L" SymbolFile - The EBC symbol file (Its name should be XXX.MAP)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerUnloadSymbol
},
{
@@ -399,7 +399,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" CodeFile - The EBC code file (Its name should be XXX.COD)\n"
L" SymbolFile - The EBC symbol file (Its name should be XXX.MAP)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerLoadCode
},
{
@@ -410,7 +410,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" CodeFile - The EBC code file (Its name should be XXX.COD)\n"
L" SymbolFile - The EBC symbol file (Its name should be XXX.MAP)\n",
L"",
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
DebuggerUnloadCode
},
{
@@ -423,7 +423,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable symbol output\n"
L" off - disable symbol output\n",
L"",
- {SCAN_F3, CHAR_NULL},
+ { SCAN_F3, CHAR_NULL },
DebuggerDisplaySymbol
},
{
@@ -436,7 +436,7 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L" on - enable source only output\n"
L" off - disable source only output\n",
L"",
- {SCAN_F6, CHAR_NULL},
+ { SCAN_F6, CHAR_NULL },
DebuggerDisplayCode
},
//
@@ -448,120 +448,121 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
L"The help command will print help information for each command\n\n",
L"H [<Command>]\n",
L"",
- {SCAN_F1, CHAR_NULL},
+ { SCAN_F1, CHAR_NULL },
DebuggerHelp
},
-/*
- //
- // Extended
- //
- {
- L"!IB",
- L"![I|O][B|W|D] - display/modify IO\n",
- L"",
- L"!IB <Address>\n",
- L"Extended:\n",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtIoIB
- },
- {
- L"!IW",
- L"",
- L"",
- L"!IW <Address>\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtIoIW
- },
- {
- L"!ID",
- L"",
- L"",
- L"!ID <Address>\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtIoID
- },
- {
- L"!OB",
- L"",
- L"",
- L"!OB <Address> <Value>\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtIoOB
- },
- {
- L"!OW",
- L"",
- L"",
- L"!OW <Address> <Value>\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtIoOW
- },
- {
- L"!OD",
- L"",
- L"",
- L"!OD <Address> <Value>\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtIoOD
- },
- {
- L"!PCIL",
- L"!PCIL - list PCI device, with BAR\n",
- L"",
- L"!PCIL [B]\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtPciPCIL
- },
- {
- L"!PCID",
- L"!PCID - show PCI space\n",
- L"",
- L"!PCID Bus Device Function [H|B|E]\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtPciPCID
- },
- {
- L"!CFGB",
- L"!CFG[B|W|D] - show/modify PCI space",
- L"",
- L"!CFGB <Address> [<Value>]\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtPciCFGB
- },
- {
- L"!CFGW",
- L"",
- L"",
- L"!CFGW <Address> [<Value>]\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtPciCFGW
- },
- {
- L"!CFGD",
- L"",
- L"",
- L"!CFGD <Address> [<Value>]\n",
- L"",
- {SCAN_NULL, CHAR_NULL},
- DebuggerExtPciCFGD
- },
-*/
+
+ /*
+ //
+ // Extended
+ //
+ {
+ L"!IB",
+ L"![I|O][B|W|D] - display/modify IO\n",
+ L"",
+ L"!IB <Address>\n",
+ L"Extended:\n",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtIoIB
+ },
+ {
+ L"!IW",
+ L"",
+ L"",
+ L"!IW <Address>\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtIoIW
+ },
+ {
+ L"!ID",
+ L"",
+ L"",
+ L"!ID <Address>\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtIoID
+ },
+ {
+ L"!OB",
+ L"",
+ L"",
+ L"!OB <Address> <Value>\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtIoOB
+ },
+ {
+ L"!OW",
+ L"",
+ L"",
+ L"!OW <Address> <Value>\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtIoOW
+ },
+ {
+ L"!OD",
+ L"",
+ L"",
+ L"!OD <Address> <Value>\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtIoOD
+ },
+ {
+ L"!PCIL",
+ L"!PCIL - list PCI device, with BAR\n",
+ L"",
+ L"!PCIL [B]\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtPciPCIL
+ },
+ {
+ L"!PCID",
+ L"!PCID - show PCI space\n",
+ L"",
+ L"!PCID Bus Device Function [H|B|E]\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtPciPCID
+ },
+ {
+ L"!CFGB",
+ L"!CFG[B|W|D] - show/modify PCI space",
+ L"",
+ L"!CFGB <Address> [<Value>]\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtPciCFGB
+ },
+ {
+ L"!CFGW",
+ L"",
+ L"",
+ L"!CFGW <Address> [<Value>]\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtPciCFGW
+ },
+ {
+ L"!CFGD",
+ L"",
+ L"",
+ L"!CFGD <Address> [<Value>]\n",
+ L"",
+ {SCAN_NULL, CHAR_NULL},
+ DebuggerExtPciCFGD
+ },
+ */
{
NULL,
NULL,
NULL,
NULL,
NULL,
- {SCAN_NULL, CHAR_NULL},
+ { SCAN_NULL, CHAR_NULL },
NULL
},
};
@@ -579,22 +580,22 @@ EFI_DEBUGGER_COMMAND_SET mDebuggerCommandSet[] = {
**/
EFI_DEBUGGER_COMMAND
MatchDebuggerCommand (
- IN CHAR16 *CommandName,
- IN CHAR16 **CommandArg
+ IN CHAR16 *CommandName,
+ IN CHAR16 **CommandArg
)
{
- UINTN Index;
- CHAR16 *Temp;
+ UINTN Index;
+ CHAR16 *Temp;
//
// Get Command Name
//
- Temp = StrGetNewTokenLine (CommandName, L" ");
+ Temp = StrGetNewTokenLine (CommandName, L" ");
CommandName = Temp;
//
// Get Command Argument
//
- Temp = StrGetNextTokenLine (L" ");
+ Temp = StrGetNextTokenLine (L" ");
*CommandArg = Temp;
if (CommandName == NULL) {
@@ -631,7 +632,7 @@ MatchDebuggerCommand (
**/
CHAR16 *
GetCommandNameByKey (
- IN EFI_INPUT_KEY CommandKey
+ IN EFI_INPUT_KEY CommandKey
)
{
UINTN Index;
@@ -641,7 +642,8 @@ GetCommandNameByKey (
//
for (Index = 0; mDebuggerCommandSet[Index].CommandName != NULL; Index++) {
if ((mDebuggerCommandSet[Index].CommandKey.UnicodeChar == CommandKey.UnicodeChar) &&
- (mDebuggerCommandSet[Index].CommandKey.ScanCode == CommandKey.ScanCode)) {
+ (mDebuggerCommandSet[Index].CommandKey.ScanCode == CommandKey.ScanCode))
+ {
//
// Found
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.h
index ac8c23a..071d5c5 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommand.h
@@ -30,8 +30,8 @@ typedef enum {
**/
EFI_DEBUGGER_COMMAND
MatchDebuggerCommand (
- IN CHAR16 *CommandName,
- IN CHAR16 **CommandArg
+ IN CHAR16 *CommandName,
+ IN CHAR16 **CommandArg
);
/**
@@ -46,7 +46,7 @@ MatchDebuggerCommand (
**/
CHAR16 *
GetCommandNameByKey (
- IN EFI_INPUT_KEY CommandKey
+ IN EFI_INPUT_KEY CommandKey
);
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h
index 924a2f7..c542494 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbCommon.h
@@ -34,29 +34,29 @@ typedef struct _EFI_DEBUGGER_PRIVATE_DATA EFI_DEBUGGER_PRIVATE_DATA;
//
typedef
EFI_DEBUG_STATUS
-(* EFI_DEBUGGER_COMMAND) (
- IN CHAR16 *CommandArg,
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN OUT EFI_SYSTEM_CONTEXT SystemContext
-);
+(*EFI_DEBUGGER_COMMAND) (
+ IN CHAR16 *CommandArg,
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN OUT EFI_SYSTEM_CONTEXT SystemContext
+ );
typedef struct {
- CHAR16 *CommandName;
- CHAR16 *CommandTitle;
- CHAR16 *CommandHelp;
- CHAR16 *CommandSyntax;
- CHAR16 *ClassName;
- EFI_INPUT_KEY CommandKey;
- EFI_DEBUGGER_COMMAND CommandFunc;
+ CHAR16 *CommandName;
+ CHAR16 *CommandTitle;
+ CHAR16 *CommandHelp;
+ CHAR16 *CommandSyntax;
+ CHAR16 *ClassName;
+ EFI_INPUT_KEY CommandKey;
+ EFI_DEBUGGER_COMMAND CommandFunc;
} EFI_DEBUGGER_COMMAND_SET;
//
// Definition for Debugger Symbol
//
-#define EFI_DEBUGGER_SYMBOL_NAME_MAX 256
-#define EFI_DEBUGGER_SYMBOL_ENTRY_MAX 512
-#define EFI_DEBUGGER_SYMBOL_OBJECT_MAX 32
+#define EFI_DEBUGGER_SYMBOL_NAME_MAX 256
+#define EFI_DEBUGGER_SYMBOL_ENTRY_MAX 512
+#define EFI_DEBUGGER_SYMBOL_OBJECT_MAX 32
//
// We have following SYMBOL data structure:
@@ -81,50 +81,50 @@ typedef enum {
} EFI_DEBUGGER_SYMBOL_TYPE;
typedef struct {
- CHAR8 Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
- UINTN Rva;
- EFI_DEBUGGER_SYMBOL_TYPE Type;
- CHAR8 ObjName[EFI_DEBUGGER_SYMBOL_NAME_MAX];
- CHAR8 *CodBuffer;
- UINTN CodBufferSize;
- UINTN FuncOffsetBase;
- CHAR8 *SourceBuffer;
+ CHAR8 Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
+ UINTN Rva;
+ EFI_DEBUGGER_SYMBOL_TYPE Type;
+ CHAR8 ObjName[EFI_DEBUGGER_SYMBOL_NAME_MAX];
+ CHAR8 *CodBuffer;
+ UINTN CodBufferSize;
+ UINTN FuncOffsetBase;
+ CHAR8 *SourceBuffer;
} EFI_DEBUGGER_SYMBOL_ENTRY;
typedef struct {
- CHAR16 Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
- UINTN EntryCount;
- UINTN MaxEntryCount;
- UINTN BaseAddress;
- UINTN StartEntrypointRVA;
- UINTN MainEntrypointRVA;
- EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
- VOID **SourceBuffer;
+ CHAR16 Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
+ UINTN EntryCount;
+ UINTN MaxEntryCount;
+ UINTN BaseAddress;
+ UINTN StartEntrypointRVA;
+ UINTN MainEntrypointRVA;
+ EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
+ VOID **SourceBuffer;
} EFI_DEBUGGER_SYMBOL_OBJECT;
typedef struct {
- UINTN ObjectCount;
- UINTN MaxObjectCount;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- BOOLEAN DisplaySymbol;
- BOOLEAN DisplayCodeOnly;
+ UINTN ObjectCount;
+ UINTN MaxObjectCount;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ BOOLEAN DisplaySymbol;
+ BOOLEAN DisplayCodeOnly;
} EFI_DEBUGGER_SYMBOL_CONTEXT;
//
// Definition for Debugger Breakpoint
//
-#define EFI_DEBUGGER_BREAKPOINT_MAX 0x10
+#define EFI_DEBUGGER_BREAKPOINT_MAX 0x10
typedef struct {
- EFI_PHYSICAL_ADDRESS BreakpointAddress;
- UINT64 OldInstruction; // UINT64 is enough for an instruction
- BOOLEAN State;
+ EFI_PHYSICAL_ADDRESS BreakpointAddress;
+ UINT64 OldInstruction; // UINT64 is enough for an instruction
+ BOOLEAN State;
} EFI_DEBUGGER_BREAKPOINT_CONTEXT;
//
// Definition for Debugger Call-Stack
//
-#define EFI_DEBUGGER_CALLSTACK_MAX 0x10
+#define EFI_DEBUGGER_CALLSTACK_MAX 0x10
typedef enum {
EfiDebuggerBranchTypeEbcCall,
@@ -139,101 +139,101 @@ typedef enum {
#define EFI_DEBUGGER_CALL_DEFAULT_PARAMETER 0x8
typedef struct {
- EFI_PHYSICAL_ADDRESS SourceAddress;
- EFI_PHYSICAL_ADDRESS DestAddress;
+ EFI_PHYSICAL_ADDRESS SourceAddress;
+ EFI_PHYSICAL_ADDRESS DestAddress;
//
// We save all parameter here, because code may update the parameter as local variable.
//
- UINTN ParameterAddr;
- UINTN Parameter[EFI_DEBUGGER_CALL_MAX_PARAMETER];
- EFI_DEBUGGER_BRANCH_TYPE Type;
+ UINTN ParameterAddr;
+ UINTN Parameter[EFI_DEBUGGER_CALL_MAX_PARAMETER];
+ EFI_DEBUGGER_BRANCH_TYPE Type;
} EFI_DEBUGGER_CALLSTACK_CONTEXT;
//
// Definition for Debugger Trace
//
-#define EFI_DEBUGGER_TRACE_MAX 0x10
+#define EFI_DEBUGGER_TRACE_MAX 0x10
typedef struct {
- EFI_PHYSICAL_ADDRESS SourceAddress;
- EFI_PHYSICAL_ADDRESS DestAddress;
- EFI_DEBUGGER_BRANCH_TYPE Type;
+ EFI_PHYSICAL_ADDRESS SourceAddress;
+ EFI_PHYSICAL_ADDRESS DestAddress;
+ EFI_DEBUGGER_BRANCH_TYPE Type;
} EFI_DEBUGGER_TRACE_CONTEXT;
//
// Definition for Debugger Step
//
typedef struct {
- EFI_PHYSICAL_ADDRESS BreakAddress;
- EFI_PHYSICAL_ADDRESS FramePointer;
+ EFI_PHYSICAL_ADDRESS BreakAddress;
+ EFI_PHYSICAL_ADDRESS FramePointer;
} EFI_DEBUGGER_STEP_CONTEXT;
//
// Definition for Debugger GoTil
//
typedef struct {
- EFI_PHYSICAL_ADDRESS BreakAddress;
+ EFI_PHYSICAL_ADDRESS BreakAddress;
} EFI_DEBUGGER_GOTIL_CONTEXT;
//
// Definition for Debugger private data structure
//
-#define EFI_DEBUGGER_SIGNATURE SIGNATURE_32 ('e', 'd', 'b', '!')
+#define EFI_DEBUGGER_SIGNATURE SIGNATURE_32 ('e', 'd', 'b', '!')
#define EFI_DEBUG_DEFAULT_INSTRUCTION_NUMBER 5
-#define EFI_DEBUG_BREAK_TIMER_INTERVAL 10000000 // 1 second
-
-#define EFI_DEBUG_FLAG_EBC 0x80000000
-#define EFI_DEBUG_FLAG_EBC_B_BOC 0x1
-#define EFI_DEBUG_FLAG_EBC_B_BOCX 0x2
-#define EFI_DEBUG_FLAG_EBC_B_BOR 0x4
-#define EFI_DEBUG_FLAG_EBC_B_BOE 0x8
-#define EFI_DEBUG_FLAG_EBC_B_BOT 0x10
-#define EFI_DEBUG_FLAG_EBC_B_STEPOVER 0x20
-#define EFI_DEBUG_FLAG_EBC_B_STEPOUT 0x40
-#define EFI_DEBUG_FLAG_EBC_B_BP 0x80
-#define EFI_DEBUG_FLAG_EBC_B_GT 0x100
-#define EFI_DEBUG_FLAG_EBC_B_BOK 0x200
-#define EFI_DEBUG_FLAG_EBC_BOC (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOC)
-#define EFI_DEBUG_FLAG_EBC_BOCX (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOCX)
-#define EFI_DEBUG_FLAG_EBC_BOR (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOR)
-#define EFI_DEBUG_FLAG_EBC_BOE (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOE)
-#define EFI_DEBUG_FLAG_EBC_BOT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOT)
-#define EFI_DEBUG_FLAG_EBC_STEPOVER (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOVER)
-#define EFI_DEBUG_FLAG_EBC_STEPOUT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOUT)
-#define EFI_DEBUG_FLAG_EBC_BP (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BP)
-#define EFI_DEBUG_FLAG_EBC_GT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_GT)
-#define EFI_DEBUG_FLAG_EBC_BOK (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOK)
+#define EFI_DEBUG_BREAK_TIMER_INTERVAL 10000000 // 1 second
+
+#define EFI_DEBUG_FLAG_EBC 0x80000000
+#define EFI_DEBUG_FLAG_EBC_B_BOC 0x1
+#define EFI_DEBUG_FLAG_EBC_B_BOCX 0x2
+#define EFI_DEBUG_FLAG_EBC_B_BOR 0x4
+#define EFI_DEBUG_FLAG_EBC_B_BOE 0x8
+#define EFI_DEBUG_FLAG_EBC_B_BOT 0x10
+#define EFI_DEBUG_FLAG_EBC_B_STEPOVER 0x20
+#define EFI_DEBUG_FLAG_EBC_B_STEPOUT 0x40
+#define EFI_DEBUG_FLAG_EBC_B_BP 0x80
+#define EFI_DEBUG_FLAG_EBC_B_GT 0x100
+#define EFI_DEBUG_FLAG_EBC_B_BOK 0x200
+#define EFI_DEBUG_FLAG_EBC_BOC (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOC)
+#define EFI_DEBUG_FLAG_EBC_BOCX (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOCX)
+#define EFI_DEBUG_FLAG_EBC_BOR (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOR)
+#define EFI_DEBUG_FLAG_EBC_BOE (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOE)
+#define EFI_DEBUG_FLAG_EBC_BOT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOT)
+#define EFI_DEBUG_FLAG_EBC_STEPOVER (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOVER)
+#define EFI_DEBUG_FLAG_EBC_STEPOUT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOUT)
+#define EFI_DEBUG_FLAG_EBC_BP (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BP)
+#define EFI_DEBUG_FLAG_EBC_GT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_GT)
+#define EFI_DEBUG_FLAG_EBC_BOK (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOK)
//
// Debugger private data structure
//
typedef struct _EFI_DEBUGGER_PRIVATE_DATA {
- UINT32 Signature;
- EFI_INSTRUCTION_SET_ARCHITECTURE Isa;
- UINT32 EfiDebuggerRevision;
- UINT32 EbcVmRevision;
- EFI_DEBUGGER_CONFIGURATION_PROTOCOL DebuggerConfiguration;
- EFI_DEBUG_IMAGE_INFO_TABLE_HEADER *DebugImageInfoTableHeader;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol;
- EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *PciRootBridgeIo;
- EFI_DEBUGGER_COMMAND_SET *DebuggerCommandSet;
- EFI_DEBUGGER_SYMBOL_CONTEXT DebuggerSymbolContext;
- UINTN DebuggerBreakpointCount;
- EFI_DEBUGGER_BREAKPOINT_CONTEXT DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX + 1];
- UINTN CallStackEntryCount;
- EFI_DEBUGGER_CALLSTACK_CONTEXT CallStackEntry[EFI_DEBUGGER_CALLSTACK_MAX + 1];
- UINTN TraceEntryCount;
- EFI_DEBUGGER_TRACE_CONTEXT TraceEntry[EFI_DEBUGGER_TRACE_MAX + 1];
- EFI_DEBUGGER_STEP_CONTEXT StepContext;
- EFI_DEBUGGER_GOTIL_CONTEXT GoTilContext;
- EFI_PHYSICAL_ADDRESS InstructionScope;
- UINTN InstructionNumber;
- UINT32 FeatureFlags;
- UINT32 StatusFlags;
- BOOLEAN EnablePageBreak;
- EFI_EVENT BreakEvent;
+ UINT32 Signature;
+ EFI_INSTRUCTION_SET_ARCHITECTURE Isa;
+ UINT32 EfiDebuggerRevision;
+ UINT32 EbcVmRevision;
+ EFI_DEBUGGER_CONFIGURATION_PROTOCOL DebuggerConfiguration;
+ EFI_DEBUG_IMAGE_INFO_TABLE_HEADER *DebugImageInfoTableHeader;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol;
+ EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *PciRootBridgeIo;
+ EFI_DEBUGGER_COMMAND_SET *DebuggerCommandSet;
+ EFI_DEBUGGER_SYMBOL_CONTEXT DebuggerSymbolContext;
+ UINTN DebuggerBreakpointCount;
+ EFI_DEBUGGER_BREAKPOINT_CONTEXT DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX + 1];
+ UINTN CallStackEntryCount;
+ EFI_DEBUGGER_CALLSTACK_CONTEXT CallStackEntry[EFI_DEBUGGER_CALLSTACK_MAX + 1];
+ UINTN TraceEntryCount;
+ EFI_DEBUGGER_TRACE_CONTEXT TraceEntry[EFI_DEBUGGER_TRACE_MAX + 1];
+ EFI_DEBUGGER_STEP_CONTEXT StepContext;
+ EFI_DEBUGGER_GOTIL_CONTEXT GoTilContext;
+ EFI_PHYSICAL_ADDRESS InstructionScope;
+ UINTN InstructionNumber;
+ UINT32 FeatureFlags;
+ UINT32 StatusFlags;
+ BOOLEAN EnablePageBreak;
+ EFI_EVENT BreakEvent;
} EFI_DEBUGGER_PRIVATE_DATA;
#endif
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.c
index 7d933ca..18f16d7 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.c
@@ -44,7 +44,7 @@ EDB_DISASM_DEFINE (EdbDisasmMOVREL);
//
// Debugger Disasm Table
//
-EDB_DISASM_INSTRUCTION mEdbDisasmInstructionTable[] = {
+EDB_DISASM_INSTRUCTION mEdbDisasmInstructionTable[] = {
EdbDisasmBREAK, // opcode 0x00 BREAK
EdbDisasmJMP, // opcode 0x01 JMP
EdbDisasmJMP8, // opcode 0x02 JMP8
@@ -118,12 +118,12 @@ EDB_DISASM_INSTRUCTION mEdbDisasmInstructionTable[] = {
**/
UINTN
EdbDisasmBREAK (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_BREAK);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_BREAK);
if (*(UINT8 *)(UINTN)(InstructionAddress + 1) > 6) {
return 0;
@@ -144,7 +144,7 @@ EdbDisasmBREAK (
return 2;
}
-extern CONST UINT8 mJMPLen[];
+extern CONST UINT8 mJMPLen[];
/**
@@ -159,9 +159,9 @@ extern CONST UINT8 mJMPLen[];
**/
UINTN
EdbDisasmJMP (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
UINT8 Modifiers;
@@ -170,11 +170,11 @@ EdbDisasmJMP (
UINT32 Data32;
UINT64 Data64;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_JMP);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_JMP);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Size = (UINTN)mJMPLen[(Modifiers >> 6) & 0x03];
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Size = (UINTN)mJMPLen[(Modifiers >> 6) & 0x03];
//
// Construct Disasm String
@@ -183,11 +183,11 @@ EdbDisasmJMP (
*DisasmString = EdbPreInstructionString ();
EdbPrintInstructionName (L"JMP");
-// if (Modifiers & OPCODE_M_IMMDATA64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+ // if (Modifiers & OPCODE_M_IMMDATA64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
if ((Modifiers & CONDITION_M_CONDITIONAL) != 0) {
if ((Modifiers & JMP_M_CS) != 0) {
EdbPrintInstructionName (L"cs");
@@ -198,20 +198,21 @@ EdbDisasmJMP (
InstructionAddress += 2;
if ((Modifiers & OPCODE_M_IMMDATA64) != 0) {
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
if ((Modifiers & OPCODE_M_IMMDATA) != 0) {
EdbPrintData64 (Data64);
} else {
return 0;
}
} else {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
EdbPrintRegister1 (Operands);
if ((Operands & OPERAND_M_INDIRECT1) == 0) {
if ((Modifiers & OPCODE_M_IMMDATA) == 0) {
Data32 = 0;
}
+
EdbPrintImmDatan (Data32);
} else {
EdbPrintRawIndexData32 (Data32);
@@ -237,15 +238,15 @@ EdbDisasmJMP (
**/
UINTN
EdbDisasmJMP8 (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
+ UINT8 Modifiers;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_JMP8);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_JMP8);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
//
// Construct Disasm String
@@ -283,26 +284,26 @@ EdbDisasmJMP8 (
**/
UINTN
EdbDisasmCALL (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT32 Data32;
- UINT64 Data64;
- UINT64 Ip;
- UINTN Result;
- EFI_PHYSICAL_ADDRESS SavedInstructionAddress;
-
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_CALL);
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT32 Data32;
+ UINT64 Data64;
+ UINT64 Ip;
+ UINTN Result;
+ EFI_PHYSICAL_ADDRESS SavedInstructionAddress;
+
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_CALL);
SavedInstructionAddress = InstructionAddress;
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Size = (UINTN)mJMPLen[(Modifiers >> 6) & 0x03];
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Size = (UINTN)mJMPLen[(Modifiers >> 6) & 0x03];
//
// Construct Disasm String
@@ -311,21 +312,22 @@ EdbDisasmCALL (
*DisasmString = EdbPreInstructionString ();
EdbPrintInstructionName (L"CALL");
-// if (Modifiers & OPCODE_M_IMMDATA64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+ // if (Modifiers & OPCODE_M_IMMDATA64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
if ((Operands & OPERAND_M_NATIVE_CALL) != 0) {
EdbPrintInstructionName (L"EX");
}
-// if ((Operands & OPERAND_M_RELATIVE_ADDR) == 0) {
-// EdbPrintInstructionName (L"a");
-// }
+
+ // if ((Operands & OPERAND_M_RELATIVE_ADDR) == 0) {
+ // EdbPrintInstructionName (L"a");
+ // }
InstructionAddress += 2;
if ((Modifiers & OPCODE_M_IMMDATA64) != 0) {
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
Ip = Data64;
if ((Modifiers & OPCODE_M_IMMDATA) != 0) {
Result = EdbFindAndPrintSymbol ((UINTN)Ip);
@@ -337,7 +339,7 @@ EdbDisasmCALL (
}
} else {
if ((Modifiers & OPCODE_M_IMMDATA) != 0) {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
} else {
Data32 = 0;
}
@@ -354,6 +356,7 @@ EdbDisasmCALL (
} else {
Result = EdbFindAndPrintSymbol ((UINTN)Ip);
}
+
if (Result == 0) {
EdbPrintRegister1 (Operands);
if ((Modifiers & OPCODE_M_IMMDATA) != 0) {
@@ -387,12 +390,12 @@ EdbDisasmCALL (
**/
UINTN
EdbDisasmRET (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_RET);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_RET);
if (*(UINT8 *)(UINTN)(InstructionAddress + 1) != 0) {
return 0;
@@ -425,28 +428,28 @@ EdbDisasmRET (
**/
UINTN
EdbDisasmCMP (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Opcode;
- UINT8 Modifiers;
- UINT8 Operands;
- UINT16 Data16;
- UINTN Size;
+ UINT8 Opcode;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINT16 Data16;
+ UINTN Size;
ASSERT (
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPEQ) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPLTE) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPGTE) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPULTE) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPUGTE)
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPEQ) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPLTE) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPGTE) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPULTE) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPUGTE)
);
- Opcode = GET_OPCODE (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
+ Opcode = GET_OPCODE (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
if ((Modifiers & OPCODE_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -460,27 +463,27 @@ EdbDisasmCMP (
*DisasmString = EdbPreInstructionString ();
EdbPrintInstructionName (L"CMP");
-// if (Modifiers & OPCODE_M_64BIT) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+ // if (Modifiers & OPCODE_M_64BIT) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
switch (Opcode) {
- case OPCODE_CMPEQ:
- EdbPrintInstructionName (L"eq");
- break;
- case OPCODE_CMPLTE:
- EdbPrintInstructionName (L"lte");
- break;
- case OPCODE_CMPGTE:
- EdbPrintInstructionName (L"gte");
- break;
- case OPCODE_CMPULTE:
- EdbPrintInstructionName (L"ulte");
- break;
- case OPCODE_CMPUGTE:
- EdbPrintInstructionName (L"ugte");
- break;
+ case OPCODE_CMPEQ:
+ EdbPrintInstructionName (L"eq");
+ break;
+ case OPCODE_CMPLTE:
+ EdbPrintInstructionName (L"lte");
+ break;
+ case OPCODE_CMPGTE:
+ EdbPrintInstructionName (L"gte");
+ break;
+ case OPCODE_CMPULTE:
+ EdbPrintInstructionName (L"ulte");
+ break;
+ case OPCODE_CMPUGTE:
+ EdbPrintInstructionName (L"ugte");
+ break;
}
EdbPrintRegister1 (Operands);
@@ -490,7 +493,7 @@ EdbDisasmCMP (
EdbPrintRegister2 (Operands);
if ((Modifiers & OPCODE_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT2) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -517,35 +520,35 @@ EdbDisasmCMP (
**/
UINTN
EdbDisasmUnsignedDataManip (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Opcode;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Opcode;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
ASSERT (
- (GET_OPCODE(InstructionAddress) == OPCODE_NOT) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MULU) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_DIVU) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MODU) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_AND) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_OR) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_XOR) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_SHL) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_SHR) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_EXTNDB) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_EXTNDW) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_EXTNDD)
+ (GET_OPCODE (InstructionAddress) == OPCODE_NOT) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MULU) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_DIVU) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MODU) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_AND) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_OR) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_XOR) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_SHL) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_SHR) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_EXTNDB) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_EXTNDW) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_EXTNDD)
);
- Opcode = GET_OPCODE (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ Opcode = GET_OPCODE (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -559,48 +562,49 @@ EdbDisasmUnsignedDataManip (
*DisasmString = EdbPreInstructionString ();
switch (Opcode) {
- case OPCODE_NOT:
- EdbPrintInstructionName (L"NOT");
- break;
- case OPCODE_MULU:
- EdbPrintInstructionName (L"MULU");
- break;
- case OPCODE_DIVU:
- EdbPrintInstructionName (L"DIVU");
- break;
- case OPCODE_MODU:
- EdbPrintInstructionName (L"MODU");
- break;
- case OPCODE_AND:
- EdbPrintInstructionName (L"AND");
- break;
- case OPCODE_OR:
- EdbPrintInstructionName (L"OR");
- break;
- case OPCODE_XOR:
- EdbPrintInstructionName (L"XOR");
- break;
- case OPCODE_SHL:
- EdbPrintInstructionName (L"SHL");
- break;
- case OPCODE_SHR:
- EdbPrintInstructionName (L"SHR");
- break;
- case OPCODE_EXTNDB:
- EdbPrintInstructionName (L"EXTNDB");
- break;
- case OPCODE_EXTNDW:
- EdbPrintInstructionName (L"EXTNDW");
- break;
- case OPCODE_EXTNDD:
- EdbPrintInstructionName (L"EXTNDD");
- break;
+ case OPCODE_NOT:
+ EdbPrintInstructionName (L"NOT");
+ break;
+ case OPCODE_MULU:
+ EdbPrintInstructionName (L"MULU");
+ break;
+ case OPCODE_DIVU:
+ EdbPrintInstructionName (L"DIVU");
+ break;
+ case OPCODE_MODU:
+ EdbPrintInstructionName (L"MODU");
+ break;
+ case OPCODE_AND:
+ EdbPrintInstructionName (L"AND");
+ break;
+ case OPCODE_OR:
+ EdbPrintInstructionName (L"OR");
+ break;
+ case OPCODE_XOR:
+ EdbPrintInstructionName (L"XOR");
+ break;
+ case OPCODE_SHL:
+ EdbPrintInstructionName (L"SHL");
+ break;
+ case OPCODE_SHR:
+ EdbPrintInstructionName (L"SHR");
+ break;
+ case OPCODE_EXTNDB:
+ EdbPrintInstructionName (L"EXTNDB");
+ break;
+ case OPCODE_EXTNDW:
+ EdbPrintInstructionName (L"EXTNDW");
+ break;
+ case OPCODE_EXTNDD:
+ EdbPrintInstructionName (L"EXTNDD");
+ break;
}
-// if (Modifiers & DATAMANIP_M_64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+
+ // if (Modifiers & DATAMANIP_M_64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
EdbPrintRegister1 (Operands);
EdbPrintComma ();
@@ -608,7 +612,7 @@ EdbDisasmUnsignedDataManip (
InstructionAddress += 2;
if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT2) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -635,30 +639,30 @@ EdbDisasmUnsignedDataManip (
**/
UINTN
EdbDisasmSignedDataManip (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Opcode;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Opcode;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
ASSERT (
- (GET_OPCODE(InstructionAddress) == OPCODE_NEG) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_ADD) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_SUB) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MUL) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_DIV) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOD) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_ASHR)
+ (GET_OPCODE (InstructionAddress) == OPCODE_NEG) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_ADD) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_SUB) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MUL) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_DIV) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOD) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_ASHR)
);
- Opcode = GET_OPCODE (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ Opcode = GET_OPCODE (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -672,33 +676,34 @@ EdbDisasmSignedDataManip (
*DisasmString = EdbPreInstructionString ();
switch (Opcode) {
- case OPCODE_NEG:
- EdbPrintInstructionName (L"NEG");
- break;
- case OPCODE_ADD:
- EdbPrintInstructionName (L"ADD");
- break;
- case OPCODE_SUB:
- EdbPrintInstructionName (L"SUB");
- break;
- case OPCODE_MUL:
- EdbPrintInstructionName (L"MUL");
- break;
- case OPCODE_DIV:
- EdbPrintInstructionName (L"DIV");
- break;
- case OPCODE_MOD:
- EdbPrintInstructionName (L"MOD");
- break;
- case OPCODE_ASHR:
- EdbPrintInstructionName (L"ASHR");
- break;
+ case OPCODE_NEG:
+ EdbPrintInstructionName (L"NEG");
+ break;
+ case OPCODE_ADD:
+ EdbPrintInstructionName (L"ADD");
+ break;
+ case OPCODE_SUB:
+ EdbPrintInstructionName (L"SUB");
+ break;
+ case OPCODE_MUL:
+ EdbPrintInstructionName (L"MUL");
+ break;
+ case OPCODE_DIV:
+ EdbPrintInstructionName (L"DIV");
+ break;
+ case OPCODE_MOD:
+ EdbPrintInstructionName (L"MOD");
+ break;
+ case OPCODE_ASHR:
+ EdbPrintInstructionName (L"ASHR");
+ break;
}
-// if (Modifiers & DATAMANIP_M_64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+
+ // if (Modifiers & DATAMANIP_M_64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
EdbPrintRegister1 (Operands);
EdbPrintComma ();
@@ -706,7 +711,7 @@ EdbDisasmSignedDataManip (
InstructionAddress += 2;
if ((Modifiers & DATAMANIP_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT2) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -733,9 +738,9 @@ EdbDisasmSignedDataManip (
**/
UINTN
EdbDisasmMOVxx (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
UINT8 Modifiers;
@@ -747,28 +752,29 @@ EdbDisasmMOVxx (
UINT64 Data64;
ASSERT (
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVBW) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVWW) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVDW) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVQW) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVBD) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVWD) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVDD) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVQD) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVQQ) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVNW) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_MOVND)
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVBW) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVWW) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVDW) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVQW) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVBD) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVWD) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVDD) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVQD) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVQQ) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVNW) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_MOVND)
);
- Opcode = GET_OPCODE (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Size = 2;
+ Opcode = GET_OPCODE (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Size = 2;
if ((Modifiers & (OPCODE_M_IMMED_OP1 | OPCODE_M_IMMED_OP2)) != 0) {
if ((Opcode <= OPCODE_MOVQW) || (Opcode == OPCODE_MOVNW)) {
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
Size += 2;
}
+
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
Size += 2;
}
@@ -776,6 +782,7 @@ EdbDisasmMOVxx (
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
Size += 4;
}
+
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
Size += 4;
}
@@ -783,6 +790,7 @@ EdbDisasmMOVxx (
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
Size += 8;
}
+
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
Size += 8;
}
@@ -797,39 +805,39 @@ EdbDisasmMOVxx (
EdbPrintInstructionName (L"MOV");
switch (Opcode) {
- case OPCODE_MOVBW:
- EdbPrintInstructionName (L"bw");
- break;
- case OPCODE_MOVWW:
- EdbPrintInstructionName (L"ww");
- break;
- case OPCODE_MOVDW:
- EdbPrintInstructionName (L"dw");
- break;
- case OPCODE_MOVQW:
- EdbPrintInstructionName (L"qw");
- break;
- case OPCODE_MOVBD:
- EdbPrintInstructionName (L"bd");
- break;
- case OPCODE_MOVWD:
- EdbPrintInstructionName (L"wd");
- break;
- case OPCODE_MOVDD:
- EdbPrintInstructionName (L"dd");
- break;
- case OPCODE_MOVQD:
- EdbPrintInstructionName (L"qd");
- break;
- case OPCODE_MOVQQ:
- EdbPrintInstructionName (L"qq");
- break;
- case OPCODE_MOVNW:
- EdbPrintInstructionName (L"nw");
- break;
- case OPCODE_MOVND:
- EdbPrintInstructionName (L"nd");
- break;
+ case OPCODE_MOVBW:
+ EdbPrintInstructionName (L"bw");
+ break;
+ case OPCODE_MOVWW:
+ EdbPrintInstructionName (L"ww");
+ break;
+ case OPCODE_MOVDW:
+ EdbPrintInstructionName (L"dw");
+ break;
+ case OPCODE_MOVQW:
+ EdbPrintInstructionName (L"qw");
+ break;
+ case OPCODE_MOVBD:
+ EdbPrintInstructionName (L"bd");
+ break;
+ case OPCODE_MOVWD:
+ EdbPrintInstructionName (L"wd");
+ break;
+ case OPCODE_MOVDD:
+ EdbPrintInstructionName (L"dd");
+ break;
+ case OPCODE_MOVQD:
+ EdbPrintInstructionName (L"qd");
+ break;
+ case OPCODE_MOVQQ:
+ EdbPrintInstructionName (L"qq");
+ break;
+ case OPCODE_MOVNW:
+ EdbPrintInstructionName (L"nw");
+ break;
+ case OPCODE_MOVND:
+ EdbPrintInstructionName (L"nd");
+ break;
}
EdbPrintRegister1 (Operands);
@@ -837,15 +845,15 @@ EdbDisasmMOVxx (
InstructionAddress += 2;
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
if ((Opcode <= OPCODE_MOVQW) || (Opcode == OPCODE_MOVNW)) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
InstructionAddress += 2;
EdbPrintRawIndexData16 (Data16);
} else if ((Opcode <= OPCODE_MOVQD) || (Opcode == OPCODE_MOVND)) {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
InstructionAddress += 4;
EdbPrintRawIndexData32 (Data32);
} else if (Opcode == OPCODE_MOVQQ) {
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
InstructionAddress += 8;
EdbPrintRawIndexData64 (Data64);
}
@@ -856,13 +864,13 @@ EdbDisasmMOVxx (
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
if ((Opcode <= OPCODE_MOVQW) || (Opcode == OPCODE_MOVNW)) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
EdbPrintRawIndexData16 (Data16);
} else if ((Opcode <= OPCODE_MOVQD) || (Opcode == OPCODE_MOVND)) {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
EdbPrintRawIndexData32 (Data32);
} else if (Opcode == OPCODE_MOVQQ) {
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
EdbPrintRawIndexData64 (Data64);
}
}
@@ -886,24 +894,25 @@ EdbDisasmMOVxx (
**/
UINTN
EdbDisasmMOVsnw (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_MOVSNW);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_MOVSNW);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Size = 2;
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Size = 2;
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
Size += 2;
}
+
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
Size += 2;
}
@@ -920,7 +929,7 @@ EdbDisasmMOVsnw (
InstructionAddress += 2;
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
InstructionAddress += 2;
EdbPrintRawIndexData16 (Data16);
}
@@ -929,7 +938,7 @@ EdbDisasmMOVsnw (
EdbPrintRegister2 (Operands);
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT2) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -956,24 +965,25 @@ EdbDisasmMOVsnw (
**/
UINTN
EdbDisasmMOVsnd (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT32 Data32;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT32 Data32;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_MOVSND);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_MOVSND);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
- Size = 2;
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Size = 2;
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
Size += 4;
}
+
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
Size += 4;
}
@@ -990,7 +1000,7 @@ EdbDisasmMOVsnd (
InstructionAddress += 2;
if ((Modifiers & OPCODE_M_IMMED_OP1) != 0) {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
InstructionAddress += 4;
EdbPrintRawIndexData32 (Data32);
}
@@ -999,7 +1009,7 @@ EdbDisasmMOVsnd (
EdbPrintRegister2 (Operands);
if ((Modifiers & OPCODE_M_IMMED_OP2) != 0) {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
if ((Operands & OPERAND_M_INDIRECT2) != 0) {
EdbPrintRawIndexData32 (Data32);
} else {
@@ -1026,16 +1036,16 @@ EdbDisasmMOVsnd (
**/
UINTN
EdbDisasmLOADSP (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
UINT8 Operands;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_LOADSP);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_LOADSP);
- Operands = GET_OPERANDS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
//
// Construct Disasm String
@@ -1068,16 +1078,16 @@ EdbDisasmLOADSP (
**/
UINTN
EdbDisasmSTORESP (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
UINT8 Operands;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_STORESP);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_STORESP);
- Operands = GET_OPERANDS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
//
// Construct Disasm String
@@ -1097,7 +1107,6 @@ EdbDisasmSTORESP (
return 2;
}
-
/**
Disasm instruction - PUSH.
@@ -1111,20 +1120,20 @@ EdbDisasmSTORESP (
**/
UINTN
EdbDisasmPUSH (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_PUSH);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_PUSH);
- Operands = GET_OPERANDS (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -1138,17 +1147,17 @@ EdbDisasmPUSH (
*DisasmString = EdbPreInstructionString ();
EdbPrintInstructionName (L"PUSH");
-// if (Modifiers & PUSHPOP_M_64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+ // if (Modifiers & PUSHPOP_M_64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
EdbPrintRegister1 (Operands);
InstructionAddress += 2;
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT1) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -1175,20 +1184,20 @@ EdbDisasmPUSH (
**/
UINTN
EdbDisasmPOP (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_POP);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_POP);
- Operands = GET_OPERANDS (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -1202,17 +1211,17 @@ EdbDisasmPOP (
*DisasmString = EdbPreInstructionString ();
EdbPrintInstructionName (L"POP");
-// if (Modifiers & PUSHPOP_M_64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+ // if (Modifiers & PUSHPOP_M_64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
EdbPrintRegister1 (Operands);
InstructionAddress += 2;
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT1) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -1239,29 +1248,29 @@ EdbDisasmPOP (
**/
UINTN
EdbDisasmCMPI (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Opcode;
- UINT8 Operands;
- UINT16 Data16;
- UINT32 Data32;
- UINTN Size;
+ UINT8 Modifiers;
+ UINT8 Opcode;
+ UINT8 Operands;
+ UINT16 Data16;
+ UINT32 Data32;
+ UINTN Size;
ASSERT (
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPIEQ) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPILTE) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPIGTE) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPIULTE) ||
- (GET_OPCODE(InstructionAddress) == OPCODE_CMPIUGTE)
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPIEQ) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPILTE) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPIGTE) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPIULTE) ||
+ (GET_OPCODE (InstructionAddress) == OPCODE_CMPIUGTE)
);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Opcode = GET_OPCODE (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Opcode = GET_OPCODE (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
if ((Operands & 0xE0) != 0) {
return 0;
@@ -1271,6 +1280,7 @@ EdbDisasmCMPI (
if ((Operands & OPERAND_M_CMPI_INDEX) != 0) {
Size += 2;
}
+
if ((Modifiers & OPCODE_M_CMPI32_DATA) != 0) {
Size += 4;
} else {
@@ -1284,39 +1294,40 @@ EdbDisasmCMPI (
*DisasmString = EdbPreInstructionString ();
EdbPrintInstructionName (L"CMPI");
-// if (Modifiers & OPCODE_M_CMPI64) {
-// EdbPrintInstructionName (L"64");
-// } else {
-// EdbPrintInstructionName (L"32");
-// }
+ // if (Modifiers & OPCODE_M_CMPI64) {
+ // EdbPrintInstructionName (L"64");
+ // } else {
+ // EdbPrintInstructionName (L"32");
+ // }
if ((Modifiers & OPCODE_M_CMPI32_DATA) != 0) {
EdbPrintInstructionName (L"d");
} else {
EdbPrintInstructionName (L"w");
}
+
switch (Opcode) {
- case OPCODE_CMPIEQ:
- EdbPrintInstructionName (L"eq");
- break;
- case OPCODE_CMPILTE:
- EdbPrintInstructionName (L"lte");
- break;
- case OPCODE_CMPIGTE:
- EdbPrintInstructionName (L"gte");
- break;
- case OPCODE_CMPIULTE:
- EdbPrintInstructionName (L"ulte");
- break;
- case OPCODE_CMPIUGTE:
- EdbPrintInstructionName (L"ugte");
- break;
+ case OPCODE_CMPIEQ:
+ EdbPrintInstructionName (L"eq");
+ break;
+ case OPCODE_CMPILTE:
+ EdbPrintInstructionName (L"lte");
+ break;
+ case OPCODE_CMPIGTE:
+ EdbPrintInstructionName (L"gte");
+ break;
+ case OPCODE_CMPIULTE:
+ EdbPrintInstructionName (L"ulte");
+ break;
+ case OPCODE_CMPIUGTE:
+ EdbPrintInstructionName (L"ugte");
+ break;
}
EdbPrintRegister1 (Operands);
InstructionAddress += 2;
if ((Operands & OPERAND_M_CMPI_INDEX) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
InstructionAddress += 2;
EdbPrintRawIndexData16 (Data16);
}
@@ -1324,10 +1335,10 @@ EdbDisasmCMPI (
EdbPrintComma ();
if ((Modifiers & OPCODE_M_CMPI32_DATA) != 0) {
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
EdbPrintDatan (Data32);
} else {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
EdbPrintDatan (Data16);
}
@@ -1350,20 +1361,20 @@ EdbDisasmCMPI (
**/
UINTN
EdbDisasmPUSHn (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_PUSHN);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_PUSHN);
- Operands = GET_OPERANDS (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -1382,7 +1393,7 @@ EdbDisasmPUSHn (
InstructionAddress += 2;
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT1) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -1409,20 +1420,20 @@ EdbDisasmPUSHn (
**/
UINTN
EdbDisasmPOPn (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_POPN);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_POPN);
- Operands = GET_OPERANDS (InstructionAddress);
- Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
Size = 4;
} else {
@@ -1441,7 +1452,7 @@ EdbDisasmPOPn (
InstructionAddress += 2;
if ((Modifiers & PUSHPOP_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
if ((Operands & OPERAND_M_INDIRECT1) != 0) {
EdbPrintRawIndexData16 (Data16);
} else {
@@ -1468,28 +1479,29 @@ EdbDisasmPOPn (
**/
UINTN
EdbDisasmMOVI (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
- UINT32 Data32;
- UINT64 Data64;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
+ UINT32 Data32;
+ UINT64 Data64;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_MOVI);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_MOVI);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
if ((Operands & MOVI_M_IMMDATA) != 0) {
- Size = 4;
+ Size = 4;
} else {
- Size = 2;
+ Size = 2;
}
+
if ((Modifiers & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH16) {
Size += 2;
} else if ((Modifiers & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH32) {
@@ -1506,36 +1518,37 @@ EdbDisasmMOVI (
EdbPrintInstructionName (L"MOVI");
switch (Operands & MOVI_M_MOVEWIDTH) {
- case MOVI_MOVEWIDTH8:
- EdbPrintInstructionName (L"b");
- break;
- case MOVI_MOVEWIDTH16:
- EdbPrintInstructionName (L"w");
- break;
- case MOVI_MOVEWIDTH32:
- EdbPrintInstructionName (L"d");
- break;
- case MOVI_MOVEWIDTH64:
- EdbPrintInstructionName (L"q");
- break;
+ case MOVI_MOVEWIDTH8:
+ EdbPrintInstructionName (L"b");
+ break;
+ case MOVI_MOVEWIDTH16:
+ EdbPrintInstructionName (L"w");
+ break;
+ case MOVI_MOVEWIDTH32:
+ EdbPrintInstructionName (L"d");
+ break;
+ case MOVI_MOVEWIDTH64:
+ EdbPrintInstructionName (L"q");
+ break;
}
+
switch (Modifiers & MOVI_M_DATAWIDTH) {
- case MOVI_DATAWIDTH16:
- EdbPrintInstructionName (L"w");
- break;
- case MOVI_DATAWIDTH32:
- EdbPrintInstructionName (L"d");
- break;
- case MOVI_DATAWIDTH64:
- EdbPrintInstructionName (L"q");
- break;
+ case MOVI_DATAWIDTH16:
+ EdbPrintInstructionName (L"w");
+ break;
+ case MOVI_DATAWIDTH32:
+ EdbPrintInstructionName (L"d");
+ break;
+ case MOVI_DATAWIDTH64:
+ EdbPrintInstructionName (L"q");
+ break;
}
EdbPrintRegister1 (Operands);
InstructionAddress += 2;
if ((Operands & MOVI_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
InstructionAddress += 2;
EdbPrintRawIndexData16 (Data16);
}
@@ -1543,18 +1556,18 @@ EdbDisasmMOVI (
EdbPrintComma ();
switch (Modifiers & MOVI_M_DATAWIDTH) {
- case MOVI_DATAWIDTH16:
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
- EdbPrintDatan (Data16);
- break;
- case MOVI_DATAWIDTH32:
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
- EdbPrintDatan (Data32);
- break;
- case MOVI_DATAWIDTH64:
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
- EdbPrintData64n (Data64);
- break;
+ case MOVI_DATAWIDTH16:
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
+ EdbPrintDatan (Data16);
+ break;
+ case MOVI_DATAWIDTH32:
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
+ EdbPrintDatan (Data32);
+ break;
+ case MOVI_DATAWIDTH64:
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
+ EdbPrintData64n (Data64);
+ break;
}
EdbPostInstructionString ();
@@ -1576,28 +1589,29 @@ EdbDisasmMOVI (
**/
UINTN
EdbDisasmMOVIn (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
- UINT32 Data32;
- UINT64 Data64;
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
+ UINT32 Data32;
+ UINT64 Data64;
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_MOVIN);
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_MOVIN);
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
if ((Operands & MOVI_M_IMMDATA) != 0) {
- Size = 4;
+ Size = 4;
} else {
- Size = 2;
+ Size = 2;
}
+
if ((Modifiers & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH16) {
Size += 2;
} else if ((Modifiers & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH32) {
@@ -1614,22 +1628,22 @@ EdbDisasmMOVIn (
EdbPrintInstructionName (L"MOVIn");
switch (Modifiers & MOVI_M_DATAWIDTH) {
- case MOVI_DATAWIDTH16:
- EdbPrintInstructionName (L"w");
- break;
- case MOVI_DATAWIDTH32:
- EdbPrintInstructionName (L"d");
- break;
- case MOVI_DATAWIDTH64:
- EdbPrintInstructionName (L"q");
- break;
+ case MOVI_DATAWIDTH16:
+ EdbPrintInstructionName (L"w");
+ break;
+ case MOVI_DATAWIDTH32:
+ EdbPrintInstructionName (L"d");
+ break;
+ case MOVI_DATAWIDTH64:
+ EdbPrintInstructionName (L"q");
+ break;
}
EdbPrintRegister1 (Operands);
InstructionAddress += 2;
if ((Operands & MOVI_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
InstructionAddress += 2;
EdbPrintRawIndexData16 (Data16);
}
@@ -1637,18 +1651,18 @@ EdbDisasmMOVIn (
EdbPrintComma ();
switch (Modifiers & MOVI_M_DATAWIDTH) {
- case MOVI_DATAWIDTH16:
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
- EdbPrintRawIndexData16 (Data16);
- break;
- case MOVI_DATAWIDTH32:
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
- EdbPrintRawIndexData32 (Data32);
- break;
- case MOVI_DATAWIDTH64:
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
- EdbPrintRawIndexData64 (Data64);
- break;
+ case MOVI_DATAWIDTH16:
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
+ EdbPrintRawIndexData16 (Data16);
+ break;
+ case MOVI_DATAWIDTH32:
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
+ EdbPrintRawIndexData32 (Data32);
+ break;
+ case MOVI_DATAWIDTH64:
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
+ EdbPrintRawIndexData64 (Data64);
+ break;
}
EdbPostInstructionString ();
@@ -1670,31 +1684,32 @@ EdbDisasmMOVIn (
**/
UINTN
EdbDisasmMOVREL (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisasmString
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisasmString
)
{
- UINT8 Modifiers;
- UINT8 Operands;
- UINTN Size;
- UINT16 Data16;
- UINT32 Data32;
- UINT64 Data64;
- UINTN Result;
- EFI_PHYSICAL_ADDRESS SavedInstructionAddress;
-
- ASSERT (GET_OPCODE(InstructionAddress) == OPCODE_MOVREL);
+ UINT8 Modifiers;
+ UINT8 Operands;
+ UINTN Size;
+ UINT16 Data16;
+ UINT32 Data32;
+ UINT64 Data64;
+ UINTN Result;
+ EFI_PHYSICAL_ADDRESS SavedInstructionAddress;
+
+ ASSERT (GET_OPCODE (InstructionAddress) == OPCODE_MOVREL);
SavedInstructionAddress = InstructionAddress;
- Modifiers = GET_MODIFIERS (InstructionAddress);
- Operands = GET_OPERANDS (InstructionAddress);
+ Modifiers = GET_MODIFIERS (InstructionAddress);
+ Operands = GET_OPERANDS (InstructionAddress);
if ((Operands & MOVI_M_IMMDATA) != 0) {
- Size = 4;
+ Size = 4;
} else {
- Size = 2;
+ Size = 2;
}
+
if ((Modifiers & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH16) {
Size += 2;
} else if ((Modifiers & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH32) {
@@ -1713,22 +1728,22 @@ EdbDisasmMOVREL (
EdbPrintInstructionName (L"MOVrel");
switch (Modifiers & MOVI_M_DATAWIDTH) {
- case MOVI_DATAWIDTH16:
- EdbPrintInstructionName (L"w");
- break;
- case MOVI_DATAWIDTH32:
- EdbPrintInstructionName (L"d");
- break;
- case MOVI_DATAWIDTH64:
- EdbPrintInstructionName (L"q");
- break;
+ case MOVI_DATAWIDTH16:
+ EdbPrintInstructionName (L"w");
+ break;
+ case MOVI_DATAWIDTH32:
+ EdbPrintInstructionName (L"d");
+ break;
+ case MOVI_DATAWIDTH64:
+ EdbPrintInstructionName (L"q");
+ break;
}
EdbPrintRegister1 (Operands);
InstructionAddress += 2;
if ((Operands & MOVI_M_IMMDATA) != 0) {
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
InstructionAddress += 2;
EdbPrintRawIndexData16 (Data16);
}
@@ -1736,31 +1751,35 @@ EdbDisasmMOVREL (
EdbPrintComma ();
switch (Modifiers & MOVI_M_DATAWIDTH) {
- case MOVI_DATAWIDTH16:
- CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT16));
- Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Size + (INT16)Data16));
- if (Result == 0) {
- EdbPrintData16 (Data16);
- }
- break;
- case MOVI_DATAWIDTH32:
- CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT32));
- Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Size + (INT32)Data32));
- if (Result == 0) {
- EdbPrintData32 (Data32);
- }
- break;
- case MOVI_DATAWIDTH64:
- CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof(UINT64));
- if (sizeof(UINTN) == sizeof(UINT64)) {
- Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Size + (INT64)Data64));
- } else {
- Result = 0;
- }
- if (Result == 0) {
- EdbPrintData64 (Data64);
- }
- break;
+ case MOVI_DATAWIDTH16:
+ CopyMem (&Data16, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT16));
+ Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Size + (INT16)Data16));
+ if (Result == 0) {
+ EdbPrintData16 (Data16);
+ }
+
+ break;
+ case MOVI_DATAWIDTH32:
+ CopyMem (&Data32, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT32));
+ Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Size + (INT32)Data32));
+ if (Result == 0) {
+ EdbPrintData32 (Data32);
+ }
+
+ break;
+ case MOVI_DATAWIDTH64:
+ CopyMem (&Data64, (VOID *)(UINTN)(InstructionAddress), sizeof (UINT64));
+ if (sizeof (UINTN) == sizeof (UINT64)) {
+ Result = EdbFindAndPrintSymbol ((UINTN)(SavedInstructionAddress + Size + (INT64)Data64));
+ } else {
+ Result = 0;
+ }
+
+ if (Result == 0) {
+ EdbPrintData64 (Data64);
+ }
+
+ break;
}
EdbPostInstructionString ();
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.h
index 43fa5f4..e261758 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.h
@@ -21,10 +21,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
typedef
UINTN
-(* EDB_DISASM_INSTRUCTION) (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- OUT CHAR16 **DisAsmString
+(*EDB_DISASM_INSTRUCTION) (
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ OUT CHAR16 **DisAsmString
);
#endif
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.c
index feb3fb1..f43b891 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.c
@@ -8,7 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Edb.h"
-extern EDB_DISASM_INSTRUCTION mEdbDisasmInstructionTable[];
+extern EDB_DISASM_INSTRUCTION mEdbDisasmInstructionTable[];
typedef struct {
CHAR16 Name[EDB_INSTRUCTION_NAME_MAX_LENGTH];
@@ -16,9 +16,9 @@ typedef struct {
CHAR16 Tail;
} EDB_INSTRUCTION_STRING;
-EDB_INSTRUCTION_STRING mInstructionString;
-UINTN mInstructionNameOffset;
-UINTN mInstructionContentOffset;
+EDB_INSTRUCTION_STRING mInstructionString;
+UINTN mInstructionNameOffset;
+UINTN mInstructionContentOffset;
/**
@@ -30,14 +30,14 @@ UINTN mInstructionContentOffset;
**/
VOID
EdbSetOffset (
- IN UINTN InstructionNameOffset,
- IN UINTN InstructionContentOffset
+ IN UINTN InstructionNameOffset,
+ IN UINTN InstructionContentOffset
)
{
- mInstructionNameOffset = InstructionNameOffset;
+ mInstructionNameOffset = InstructionNameOffset;
mInstructionContentOffset = InstructionContentOffset;
- return ;
+ return;
}
/**
@@ -52,7 +52,7 @@ EdbPreInstructionString (
VOID
)
{
- ZeroMem (&mInstructionString, sizeof(mInstructionString));
+ ZeroMem (&mInstructionString, sizeof (mInstructionString));
mInstructionNameOffset = 0;
mInstructionContentOffset = 0;
@@ -71,13 +71,14 @@ EdbPostInstructionString (
VOID
)
{
- CHAR16 *Char;
+ CHAR16 *Char;
for (Char = (CHAR16 *)&mInstructionString; Char < &mInstructionString.Tail; Char++) {
if (*Char == 0) {
*Char = L' ';
}
}
+
mInstructionString.Tail = 0;
mInstructionNameOffset = 0;
@@ -104,15 +105,15 @@ EdbGetNaturalIndex16 (
OUT UINTN *ConstantUnits
)
{
- BOOLEAN Sign;
- UINTN NaturalUnitBit;
+ BOOLEAN Sign;
+ UINTN NaturalUnitBit;
- Sign = (BOOLEAN)(Data16 >> 15);
- NaturalUnitBit = (UINTN)((Data16 >> 12) & 0x7);
+ Sign = (BOOLEAN)(Data16 >> 15);
+ NaturalUnitBit = (UINTN)((Data16 >> 12) & 0x7);
NaturalUnitBit *= 2;
- Data16 = Data16 & 0xFFF;
- *NaturalUnits = (UINTN)(Data16 & ((1 << NaturalUnitBit) - 1));
- *ConstantUnits = (UINTN)((Data16 >> NaturalUnitBit) & ((1 << (12 - NaturalUnitBit)) - 1));
+ Data16 = Data16 & 0xFFF;
+ *NaturalUnits = (UINTN)(Data16 & ((1 << NaturalUnitBit) - 1));
+ *ConstantUnits = (UINTN)((Data16 >> NaturalUnitBit) & ((1 << (12 - NaturalUnitBit)) - 1));
return Sign;
}
@@ -135,15 +136,15 @@ EdbGetNaturalIndex32 (
OUT UINTN *ConstantUnits
)
{
- BOOLEAN Sign;
- UINTN NaturalUnitBit;
+ BOOLEAN Sign;
+ UINTN NaturalUnitBit;
- Sign = (BOOLEAN)(Data32 >> 31);
- NaturalUnitBit = (UINTN)((Data32 >> 28) & 0x7);
+ Sign = (BOOLEAN)(Data32 >> 31);
+ NaturalUnitBit = (UINTN)((Data32 >> 28) & 0x7);
NaturalUnitBit *= 4;
- Data32 = Data32 & 0xFFFFFFF;
- *NaturalUnits = (UINTN)(Data32 & ((1 << NaturalUnitBit) - 1));
- *ConstantUnits = (UINTN)((Data32 >> NaturalUnitBit) & ((1 << (28 - NaturalUnitBit)) - 1));
+ Data32 = Data32 & 0xFFFFFFF;
+ *NaturalUnits = (UINTN)(Data32 & ((1 << NaturalUnitBit) - 1));
+ *ConstantUnits = (UINTN)((Data32 >> NaturalUnitBit) & ((1 << (28 - NaturalUnitBit)) - 1));
return Sign;
}
@@ -166,15 +167,15 @@ EdbGetNaturalIndex64 (
OUT UINT64 *ConstantUnits
)
{
- BOOLEAN Sign;
- UINTN NaturalUnitBit;
+ BOOLEAN Sign;
+ UINTN NaturalUnitBit;
- Sign = (BOOLEAN)RShiftU64 (Data64, 63);
- NaturalUnitBit = (UINTN)(RShiftU64 (Data64, 60) & 0x7);
+ Sign = (BOOLEAN)RShiftU64 (Data64, 63);
+ NaturalUnitBit = (UINTN)(RShiftU64 (Data64, 60) & 0x7);
NaturalUnitBit *= 8;
- Data64 = RShiftU64 (LShiftU64 (Data64, 4), 4);
- *NaturalUnits = (UINT64)(Data64 & (LShiftU64 (1, NaturalUnitBit) - 1));
- *ConstantUnits = (UINT64)(RShiftU64 (Data64, NaturalUnitBit) & (LShiftU64 (1, (60 - NaturalUnitBit)) - 1));
+ Data64 = RShiftU64 (LShiftU64 (Data64, 4), 4);
+ *NaturalUnits = (UINT64)(Data64 & (LShiftU64 (1, NaturalUnitBit) - 1));
+ *ConstantUnits = (UINT64)(RShiftU64 (Data64, NaturalUnitBit) & (LShiftU64 (1, (60 - NaturalUnitBit)) - 1));
return Sign;
}
@@ -235,7 +236,7 @@ EdbGetBitWidth (
**/
UINTN
EdbPrintInstructionName (
- IN CHAR16 *Name
+ IN CHAR16 *Name
)
{
EDBSPrintWithOffset (
@@ -261,7 +262,7 @@ EdbPrintInstructionName (
**/
UINTN
EdbPrintRegister1 (
- IN UINT8 Operands
+ IN UINT8 Operands
)
{
if ((Operands & OPERAND_M_INDIRECT1) != 0) {
@@ -273,6 +274,7 @@ EdbPrintRegister1 (
);
mInstructionContentOffset += 1;
}
+
EDBSPrintWithOffset (
mInstructionString.Content,
EDB_INSTRUCTION_CONTENT_MAX_SIZE,
@@ -296,7 +298,7 @@ EdbPrintRegister1 (
**/
UINTN
EdbPrintRegister2 (
- IN UINT8 Operands
+ IN UINT8 Operands
)
{
if ((Operands & OPERAND_M_INDIRECT2) != 0) {
@@ -308,6 +310,7 @@ EdbPrintRegister2 (
);
mInstructionContentOffset += 1;
}
+
EDBSPrintWithOffset (
mInstructionString.Content,
EDB_INSTRUCTION_CONTENT_MAX_SIZE,
@@ -331,28 +334,28 @@ EdbPrintRegister2 (
**/
UINTN
EdbPrintDedicatedRegister1 (
- IN UINT8 Operands
+ IN UINT8 Operands
)
{
switch (Operands & OPERAND_M_OP1) {
- case 0:
- EDBSPrintWithOffset (
- mInstructionString.Content,
- EDB_INSTRUCTION_CONTENT_MAX_SIZE,
- mInstructionContentOffset,
- L"[FLAGS]"
- );
- mInstructionContentOffset += 7;
- break;
- case 1:
- EDBSPrintWithOffset (
- mInstructionString.Content,
- EDB_INSTRUCTION_CONTENT_MAX_SIZE,
- mInstructionContentOffset,
- L"[IP]"
- );
- mInstructionContentOffset += 4;
- break;
+ case 0:
+ EDBSPrintWithOffset (
+ mInstructionString.Content,
+ EDB_INSTRUCTION_CONTENT_MAX_SIZE,
+ mInstructionContentOffset,
+ L"[FLAGS]"
+ );
+ mInstructionContentOffset += 7;
+ break;
+ case 1:
+ EDBSPrintWithOffset (
+ mInstructionString.Content,
+ EDB_INSTRUCTION_CONTENT_MAX_SIZE,
+ mInstructionContentOffset,
+ L"[IP]"
+ );
+ mInstructionContentOffset += 4;
+ break;
}
return mInstructionContentOffset;
@@ -369,28 +372,28 @@ EdbPrintDedicatedRegister1 (
**/
UINTN
EdbPrintDedicatedRegister2 (
- IN UINT8 Operands
+ IN UINT8 Operands
)
{
switch ((Operands & OPERAND_M_OP2) >> 4) {
- case 0:
- EDBSPrintWithOffset (
- mInstructionString.Content,
- EDB_INSTRUCTION_CONTENT_MAX_SIZE,
- mInstructionContentOffset,
- L"[FLAGS]"
- );
- mInstructionContentOffset += 7;
- break;
- case 1:
- EDBSPrintWithOffset (
- mInstructionString.Content,
- EDB_INSTRUCTION_CONTENT_MAX_SIZE,
- mInstructionContentOffset,
- L"[IP]"
- );
- mInstructionContentOffset += 4;
- break;
+ case 0:
+ EDBSPrintWithOffset (
+ mInstructionString.Content,
+ EDB_INSTRUCTION_CONTENT_MAX_SIZE,
+ mInstructionContentOffset,
+ L"[FLAGS]"
+ );
+ mInstructionContentOffset += 7;
+ break;
+ case 1:
+ EDBSPrintWithOffset (
+ mInstructionString.Content,
+ EDB_INSTRUCTION_CONTENT_MAX_SIZE,
+ mInstructionContentOffset,
+ L"[IP]"
+ );
+ mInstructionContentOffset += 4;
+ break;
}
return mInstructionContentOffset;
@@ -409,9 +412,9 @@ EdbPrintDedicatedRegister2 (
**/
UINTN
EdbPrintIndexData (
- IN BOOLEAN Sign,
- IN UINTN NaturalUnits,
- IN UINTN ConstantUnits
+ IN BOOLEAN Sign,
+ IN UINTN NaturalUnits,
+ IN UINTN ConstantUnits
)
{
EDBSPrintWithOffset (
@@ -424,7 +427,7 @@ EdbPrintIndexData (
Sign ? L"-" : L"+",
ConstantUnits
);
- mInstructionContentOffset = mInstructionContentOffset + 5 + EdbGetBitWidth (NaturalUnits) + EdbGetBitWidth (ConstantUnits);
+ mInstructionContentOffset = mInstructionContentOffset + 5 + EdbGetBitWidth (NaturalUnits) + EdbGetBitWidth (ConstantUnits);
return mInstructionContentOffset;
}
@@ -442,9 +445,9 @@ EdbPrintIndexData (
**/
UINTN
EdbPrintIndexData64 (
- IN BOOLEAN Sign,
- IN UINT64 NaturalUnits,
- IN UINT64 ConstantUnits
+ IN BOOLEAN Sign,
+ IN UINT64 NaturalUnits,
+ IN UINT64 ConstantUnits
)
{
EDBSPrintWithOffset (
@@ -457,7 +460,7 @@ EdbPrintIndexData64 (
Sign ? L"-" : L"+",
ConstantUnits
);
- mInstructionContentOffset = mInstructionContentOffset + 5 + EdbGetBitWidth (NaturalUnits) + EdbGetBitWidth (ConstantUnits);
+ mInstructionContentOffset = mInstructionContentOffset + 5 + EdbGetBitWidth (NaturalUnits) + EdbGetBitWidth (ConstantUnits);
return mInstructionContentOffset;
}
@@ -473,15 +476,15 @@ EdbPrintIndexData64 (
**/
UINTN
EdbPrintRawIndexData16 (
- IN UINT16 Data16
+ IN UINT16 Data16
)
{
- BOOLEAN Sign;
- UINTN NaturalUnits;
- UINTN ConstantUnits;
- UINTN Offset;
+ BOOLEAN Sign;
+ UINTN NaturalUnits;
+ UINTN ConstantUnits;
+ UINTN Offset;
- Sign = EdbGetNaturalIndex16 (Data16, &NaturalUnits, &ConstantUnits);
+ Sign = EdbGetNaturalIndex16 (Data16, &NaturalUnits, &ConstantUnits);
Offset = EdbPrintIndexData (Sign, NaturalUnits, ConstantUnits);
return Offset;
@@ -498,15 +501,15 @@ EdbPrintRawIndexData16 (
**/
UINTN
EdbPrintRawIndexData32 (
- IN UINT32 Data32
+ IN UINT32 Data32
)
{
- BOOLEAN Sign;
- UINTN NaturalUnits;
- UINTN ConstantUnits;
- UINTN Offset;
+ BOOLEAN Sign;
+ UINTN NaturalUnits;
+ UINTN ConstantUnits;
+ UINTN Offset;
- Sign = EdbGetNaturalIndex32 (Data32, &NaturalUnits, &ConstantUnits);
+ Sign = EdbGetNaturalIndex32 (Data32, &NaturalUnits, &ConstantUnits);
Offset = EdbPrintIndexData (Sign, NaturalUnits, ConstantUnits);
return Offset;
@@ -523,15 +526,15 @@ EdbPrintRawIndexData32 (
**/
UINTN
EdbPrintRawIndexData64 (
- IN UINT64 Data64
+ IN UINT64 Data64
)
{
- BOOLEAN Sign;
- UINT64 NaturalUnits;
- UINT64 ConstantUnits;
- UINTN Offset;
+ BOOLEAN Sign;
+ UINT64 NaturalUnits;
+ UINT64 ConstantUnits;
+ UINTN Offset;
- Sign = EdbGetNaturalIndex64 (Data64, &NaturalUnits, &ConstantUnits);
+ Sign = EdbGetNaturalIndex64 (Data64, &NaturalUnits, &ConstantUnits);
Offset = EdbPrintIndexData64 (Sign, NaturalUnits, ConstantUnits);
return Offset;
@@ -548,7 +551,7 @@ EdbPrintRawIndexData64 (
**/
UINTN
EdbPrintImmData8 (
- IN UINT8 Data
+ IN UINT8 Data
)
{
EDBSPrintWithOffset (
@@ -558,7 +561,7 @@ EdbPrintImmData8 (
L"(0x%02x)",
(UINTN)Data
);
- mInstructionContentOffset += 6;
+ mInstructionContentOffset += 6;
return mInstructionContentOffset;
}
@@ -574,7 +577,7 @@ EdbPrintImmData8 (
**/
UINTN
EdbPrintImmData16 (
- IN UINT16 Data
+ IN UINT16 Data
)
{
EDBSPrintWithOffset (
@@ -584,7 +587,7 @@ EdbPrintImmData16 (
L"(0x%04x)",
(UINTN)Data
);
- mInstructionContentOffset += 8;
+ mInstructionContentOffset += 8;
return mInstructionContentOffset;
}
@@ -600,7 +603,7 @@ EdbPrintImmData16 (
**/
UINTN
EdbPrintImmData32 (
- IN UINT32 Data
+ IN UINT32 Data
)
{
EDBSPrintWithOffset (
@@ -610,7 +613,7 @@ EdbPrintImmData32 (
L"(0x%08x)",
(UINTN)Data
);
- mInstructionContentOffset += 12;
+ mInstructionContentOffset += 12;
return mInstructionContentOffset;
}
@@ -626,7 +629,7 @@ EdbPrintImmData32 (
**/
UINTN
EdbPrintImmData64 (
- IN UINT64 Data
+ IN UINT64 Data
)
{
EDBSPrintWithOffset (
@@ -636,7 +639,7 @@ EdbPrintImmData64 (
L"(0x%016lx)",
Data
);
- mInstructionContentOffset += 20;
+ mInstructionContentOffset += 20;
return mInstructionContentOffset;
}
@@ -652,7 +655,7 @@ EdbPrintImmData64 (
**/
UINTN
EdbPrintImmDatan (
- IN UINTN Data
+ IN UINTN Data
)
{
EDBSPrintWithOffset (
@@ -662,7 +665,7 @@ EdbPrintImmDatan (
L"(%d)",
(UINTN)Data
);
- mInstructionContentOffset = mInstructionContentOffset + 2 + EdbGetBitWidth (Data);
+ mInstructionContentOffset = mInstructionContentOffset + 2 + EdbGetBitWidth (Data);
return mInstructionContentOffset;
}
@@ -678,7 +681,7 @@ EdbPrintImmDatan (
**/
UINTN
EdbPrintImmData64n (
- IN UINT64 Data64
+ IN UINT64 Data64
)
{
EDBSPrintWithOffset (
@@ -688,7 +691,7 @@ EdbPrintImmData64n (
L"(%ld)",
Data64
);
- mInstructionContentOffset = mInstructionContentOffset + 2 + EdbGetBitWidth (Data64);
+ mInstructionContentOffset = mInstructionContentOffset + 2 + EdbGetBitWidth (Data64);
return mInstructionContentOffset;
}
@@ -704,7 +707,7 @@ EdbPrintImmData64n (
**/
UINTN
EdbPrintData8 (
- IN UINT8 Data8
+ IN UINT8 Data8
)
{
EDBSPrintWithOffset (
@@ -730,7 +733,7 @@ EdbPrintData8 (
**/
UINTN
EdbPrintData16 (
- IN UINT16 Data16
+ IN UINT16 Data16
)
{
EDBSPrintWithOffset (
@@ -756,7 +759,7 @@ EdbPrintData16 (
**/
UINTN
EdbPrintData32 (
- IN UINT32 Data32
+ IN UINT32 Data32
)
{
EDBSPrintWithOffset (
@@ -782,7 +785,7 @@ EdbPrintData32 (
**/
UINTN
EdbPrintData64 (
- IN UINT64 Data64
+ IN UINT64 Data64
)
{
EDBSPrintWithOffset (
@@ -808,7 +811,7 @@ EdbPrintData64 (
**/
UINTN
EdbPrintDatan (
- IN UINTN Data
+ IN UINTN Data
)
{
EDBSPrintWithOffset (
@@ -834,7 +837,7 @@ EdbPrintDatan (
**/
UINTN
EdbPrintData64n (
- IN UINT64 Data64
+ IN UINT64 Data64
)
{
EDBSPrintWithOffset (
@@ -860,10 +863,10 @@ EdbPrintData64n (
**/
UINTN
EdbPrintData8s (
- IN UINT8 Data8
+ IN UINT8 Data8
)
{
- BOOLEAN Sign;
+ BOOLEAN Sign;
Sign = (BOOLEAN)(Data8 >> 7);
@@ -891,10 +894,10 @@ EdbPrintData8s (
**/
UINTN
EdbPrintData16s (
- IN UINT16 Data16
+ IN UINT16 Data16
)
{
- BOOLEAN Sign;
+ BOOLEAN Sign;
Sign = (BOOLEAN)(Data16 >> 15);
@@ -922,10 +925,10 @@ EdbPrintData16s (
**/
UINTN
EdbPrintData32s (
- IN UINT32 Data32
+ IN UINT32 Data32
)
{
- BOOLEAN Sign;
+ BOOLEAN Sign;
Sign = (BOOLEAN)(Data32 >> 31);
@@ -953,13 +956,13 @@ EdbPrintData32s (
**/
UINTN
EdbPrintData64s (
- IN UINT64 Data64
+ IN UINT64 Data64
)
{
- BOOLEAN Sign;
- INT64 Data64s;
+ BOOLEAN Sign;
+ INT64 Data64s;
- Sign = (BOOLEAN)RShiftU64 (Data64, 63);
+ Sign = (BOOLEAN)RShiftU64 (Data64, 63);
Data64s = (INT64)RShiftU64 (LShiftU64 (Data64, 1), 1);
EDBSPrintWithOffset (
@@ -1010,10 +1013,10 @@ EdbPrintComma (
**/
UINTN
EdbFindAndPrintSymbol (
- IN UINTN Address
+ IN UINTN Address
)
{
- CHAR8 *SymbolStr;
+ CHAR8 *SymbolStr;
SymbolStr = FindSymbolStr (Address);
if (SymbolStr != NULL) {
@@ -1040,8 +1043,8 @@ EdbFindAndPrintSymbol (
**/
VOID
EdbPrintRaw (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN UINTN InstructionNumber
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN UINTN InstructionNumber
)
{
UINTN LineNumber;
@@ -1051,7 +1054,7 @@ EdbPrintRaw (
CHAR8 *SymbolStr;
if (InstructionNumber == 0) {
- return ;
+ return;
}
LineNumber = InstructionNumber / EDB_BYTECODE_NUMBER_IN_LINE;
@@ -1075,6 +1078,7 @@ EdbPrintRaw (
EDBPrint (L"%02x ", *(UINT8 *)(UINTN)InstructionAddress);
InstructionAddress += 1;
}
+
EDBPrint (L"\n");
}
@@ -1083,11 +1087,12 @@ EdbPrintRaw (
EDBPrint (L"%02x ", *(UINT8 *)(UINTN)InstructionAddress);
InstructionAddress += 1;
}
+
for (ByteIndex = 0; ByteIndex < EDB_BYTECODE_NUMBER_IN_LINE - ByteNumber; ByteIndex++) {
EDBPrint (L" ");
}
- return ;
+ return;
}
/**
@@ -1102,42 +1107,41 @@ EdbPrintRaw (
**/
EFI_STATUS
EdbShowDisasm (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_SYSTEM_CONTEXT SystemContext
)
{
- EFI_PHYSICAL_ADDRESS InstructionAddress;
- UINTN InstructionNumber;
- UINTN InstructionLength;
- UINT8 Opcode;
- CHAR16 *InstructionString;
-// UINTN Result;
+ EFI_PHYSICAL_ADDRESS InstructionAddress;
+ UINTN InstructionNumber;
+ UINTN InstructionLength;
+ UINT8 Opcode;
+ CHAR16 *InstructionString;
+
+ // UINTN Result;
InstructionAddress = DebuggerPrivate->InstructionScope;
for (InstructionNumber = 0; InstructionNumber < DebuggerPrivate->InstructionNumber; InstructionNumber++) {
-
//
// Break each 0x10 instruction
//
if (((InstructionNumber % EFI_DEBUGGER_LINE_NUMBER_IN_PAGE) == 0) &&
- (InstructionNumber != 0)) {
+ (InstructionNumber != 0))
+ {
if (SetPageBreak ()) {
break;
}
}
- Opcode = GET_OPCODE(InstructionAddress);
+ Opcode = GET_OPCODE (InstructionAddress);
if ((Opcode < OPCODE_MAX) && (mEdbDisasmInstructionTable[Opcode] != NULL)) {
- InstructionLength = mEdbDisasmInstructionTable [Opcode] (InstructionAddress, SystemContext, &InstructionString);
+ InstructionLength = mEdbDisasmInstructionTable[Opcode](InstructionAddress, SystemContext, &InstructionString);
if (InstructionLength != 0) {
-
//
// Print Source
//
-// Result = EdbPrintSource ((UINTN)InstructionAddress, FALSE);
+ // Result = EdbPrintSource ((UINTN)InstructionAddress, FALSE);
if (!DebuggerPrivate->DebuggerSymbolContext.DisplayCodeOnly) {
-
EdbPrintRaw (InstructionAddress, InstructionLength);
if (InstructionString != NULL) {
EDBPrint (L"%s\n", InstructionString);
@@ -1182,30 +1186,31 @@ EdbShowDisasm (
**/
UINT64
GetRegisterValue (
- IN EFI_SYSTEM_CONTEXT SystemContext,
- IN UINT8 Index
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ IN UINT8 Index
)
{
switch (Index) {
- case 0:
- return SystemContext.SystemContextEbc->R0;
- case 1:
- return SystemContext.SystemContextEbc->R1;
- case 2:
- return SystemContext.SystemContextEbc->R2;
- case 3:
- return SystemContext.SystemContextEbc->R3;
- case 4:
- return SystemContext.SystemContextEbc->R4;
- case 5:
- return SystemContext.SystemContextEbc->R5;
- case 6:
- return SystemContext.SystemContextEbc->R6;
- case 7:
- return SystemContext.SystemContextEbc->R7;
- default:
- ASSERT (FALSE);
- break;
+ case 0:
+ return SystemContext.SystemContextEbc->R0;
+ case 1:
+ return SystemContext.SystemContextEbc->R1;
+ case 2:
+ return SystemContext.SystemContextEbc->R2;
+ case 3:
+ return SystemContext.SystemContextEbc->R3;
+ case 4:
+ return SystemContext.SystemContextEbc->R4;
+ case 5:
+ return SystemContext.SystemContextEbc->R5;
+ case 6:
+ return SystemContext.SystemContextEbc->R6;
+ case 7:
+ return SystemContext.SystemContextEbc->R7;
+ default:
+ ASSERT (FALSE);
+ break;
}
+
return 0;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.h
index b1e7a46..7542b5c 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasmSupport.h
@@ -11,16 +11,16 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Uefi.h>
-#define EDB_BYTECODE_NUMBER_IN_LINE 5
+#define EDB_BYTECODE_NUMBER_IN_LINE 5
#ifdef EFI32
-#define EDB_PRINT_ADDRESS_FORMAT L"%08x: "
+#define EDB_PRINT_ADDRESS_FORMAT L"%08x: "
#else
// To use 012l instead of 016l because space is not enough
-#define EDB_PRINT_ADDRESS_FORMAT L"%012lx: "
+#define EDB_PRINT_ADDRESS_FORMAT L"%012lx: "
#endif
-#define OPCODE_MAX 0x40
+#define OPCODE_MAX 0x40
#define EDB_INSTRUCTION_NAME_MAX_LENGTH 10
#define EDB_INSTRUCTION_NAME_MAX_SIZE (EDB_INSTRUCTION_NAME_MAX_LENGTH * sizeof(CHAR16))
@@ -37,8 +37,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
EdbSetOffset (
- IN UINTN InstructionNameOffset,
- IN UINTN InstructionContentOffset
+ IN UINTN InstructionNameOffset,
+ IN UINTN InstructionContentOffset
);
/**
@@ -76,7 +76,7 @@ EdbPostInstructionString (
**/
UINTN
EdbPrintInstructionName (
- IN CHAR16 *Name
+ IN CHAR16 *Name
);
/**
@@ -144,7 +144,7 @@ EdbGetNaturalIndex64 (
**/
UINTN
EdbPrintRawIndexData16 (
- IN UINT16 Data16
+ IN UINT16 Data16
);
/**
@@ -158,7 +158,7 @@ EdbPrintRawIndexData16 (
**/
UINTN
EdbPrintRawIndexData32 (
- IN UINT32 Data32
+ IN UINT32 Data32
);
/**
@@ -172,7 +172,7 @@ EdbPrintRawIndexData32 (
**/
UINTN
EdbPrintRawIndexData64 (
- IN UINT64 Data64
+ IN UINT64 Data64
);
/**
@@ -186,7 +186,7 @@ EdbPrintRawIndexData64 (
**/
UINTN
EdbPrintRegister1 (
- IN UINT8 Operands
+ IN UINT8 Operands
);
/**
@@ -200,7 +200,7 @@ EdbPrintRegister1 (
**/
UINTN
EdbPrintRegister2 (
- IN UINT8 Operands
+ IN UINT8 Operands
);
/**
@@ -214,7 +214,7 @@ EdbPrintRegister2 (
**/
UINTN
EdbPrintDedicatedRegister1 (
- IN UINT8 Operands
+ IN UINT8 Operands
);
/**
@@ -228,7 +228,7 @@ EdbPrintDedicatedRegister1 (
**/
UINTN
EdbPrintDedicatedRegister2 (
- IN UINT8 Operands
+ IN UINT8 Operands
);
/**
@@ -244,9 +244,9 @@ EdbPrintDedicatedRegister2 (
**/
UINTN
EdbPrintIndexData (
- IN BOOLEAN Sign,
- IN UINTN NaturalUnits,
- IN UINTN ConstantUnits
+ IN BOOLEAN Sign,
+ IN UINTN NaturalUnits,
+ IN UINTN ConstantUnits
);
/**
@@ -262,9 +262,9 @@ EdbPrintIndexData (
**/
UINTN
EdbPrintIndexData64 (
- IN BOOLEAN Sign,
- IN UINT64 NaturalUnits,
- IN UINT64 ConstantUnits
+ IN BOOLEAN Sign,
+ IN UINT64 NaturalUnits,
+ IN UINT64 ConstantUnits
);
/**
@@ -278,7 +278,7 @@ EdbPrintIndexData64 (
**/
UINTN
EdbPrintImmData8 (
- IN UINT8 Data
+ IN UINT8 Data
);
/**
@@ -292,7 +292,7 @@ EdbPrintImmData8 (
**/
UINTN
EdbPrintImmData16 (
- IN UINT16 Data
+ IN UINT16 Data
);
/**
@@ -306,7 +306,7 @@ EdbPrintImmData16 (
**/
UINTN
EdbPrintImmData32 (
- IN UINT32 Data
+ IN UINT32 Data
);
/**
@@ -320,7 +320,7 @@ EdbPrintImmData32 (
**/
UINTN
EdbPrintImmData64 (
- IN UINT64 Data
+ IN UINT64 Data
);
/**
@@ -334,7 +334,7 @@ EdbPrintImmData64 (
**/
UINTN
EdbPrintImmDatan (
- IN UINTN Data
+ IN UINTN Data
);
/**
@@ -348,7 +348,7 @@ EdbPrintImmDatan (
**/
UINTN
EdbPrintImmData64n (
- IN UINT64 Data64
+ IN UINT64 Data64
);
/**
@@ -362,7 +362,7 @@ EdbPrintImmData64n (
**/
UINTN
EdbPrintData8 (
- IN UINT8 Data8
+ IN UINT8 Data8
);
/**
@@ -376,7 +376,7 @@ EdbPrintData8 (
**/
UINTN
EdbPrintData16 (
- IN UINT16 Data16
+ IN UINT16 Data16
);
/**
@@ -390,7 +390,7 @@ EdbPrintData16 (
**/
UINTN
EdbPrintData32 (
- IN UINT32 Data32
+ IN UINT32 Data32
);
/**
@@ -404,7 +404,7 @@ EdbPrintData32 (
**/
UINTN
EdbPrintData64 (
- IN UINT64 Data64
+ IN UINT64 Data64
);
/**
@@ -418,7 +418,7 @@ EdbPrintData64 (
**/
UINTN
EdbPrintDatan (
- IN UINTN Data
+ IN UINTN Data
);
/**
@@ -432,7 +432,7 @@ EdbPrintDatan (
**/
UINTN
EdbPrintData64n (
- IN UINT64 Data64
+ IN UINT64 Data64
);
/**
@@ -446,7 +446,7 @@ EdbPrintData64n (
**/
UINTN
EdbPrintData8s (
- IN UINT8 Data8
+ IN UINT8 Data8
);
/**
@@ -460,7 +460,7 @@ EdbPrintData8s (
**/
UINTN
EdbPrintData16s (
- IN UINT16 Data16
+ IN UINT16 Data16
);
/**
@@ -474,7 +474,7 @@ EdbPrintData16s (
**/
UINTN
EdbPrintData32s (
- IN UINT32 Data32
+ IN UINT32 Data32
);
/**
@@ -488,7 +488,7 @@ EdbPrintData32s (
**/
UINTN
EdbPrintData64s (
- IN UINT64 Data64
+ IN UINT64 Data64
);
/**
@@ -515,7 +515,7 @@ EdbPrintComma (
**/
UINTN
EdbFindAndPrintSymbol (
- IN UINTN Address
+ IN UINTN Address
);
/**
@@ -528,8 +528,8 @@ EdbFindAndPrintSymbol (
**/
VOID
EdbPrintRaw (
- IN EFI_PHYSICAL_ADDRESS InstructionAddress,
- IN UINTN InstructionNumber
+ IN EFI_PHYSICAL_ADDRESS InstructionAddress,
+ IN UINTN InstructionNumber
);
/**
@@ -544,8 +544,8 @@ EdbPrintRaw (
**/
EFI_STATUS
EdbShowDisasm (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN EFI_SYSTEM_CONTEXT SystemContext
);
/**
@@ -560,8 +560,8 @@ EdbShowDisasm (
**/
UINT64
GetRegisterValue (
- IN EFI_SYSTEM_CONTEXT SystemContext,
- IN UINT8 Index
+ IN EFI_SYSTEM_CONTEXT SystemContext,
+ IN UINT8 Index
);
#endif
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c
index 1bfe524..4a04e90 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbHook.c
@@ -18,8 +18,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
VOID
EbcDebuggerCheckHookFlag (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Flag
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Flag
)
{
if ((mDebuggerPrivate.FeatureFlags & Flag) == Flag) {
@@ -30,7 +30,8 @@ EbcDebuggerCheckHookFlag (
VmPtr
);
}
- return ;
+
+ return;
}
/**
@@ -43,25 +44,26 @@ EbcDebuggerCheckHookFlag (
**/
VOID
EbcDebuggerPushCallstackSource (
- IN UINT64 SourceEntry,
- IN EFI_DEBUGGER_BRANCH_TYPE Type
+ IN UINT64 SourceEntry,
+ IN EFI_DEBUGGER_BRANCH_TYPE Type
)
{
if (mDebuggerPrivate.CallStackEntryCount > EFI_DEBUGGER_CALLSTACK_MAX) {
ASSERT (FALSE);
mDebuggerPrivate.CallStackEntryCount = EFI_DEBUGGER_CALLSTACK_MAX;
}
+
//
// Record the new callstack entry
//
mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].SourceAddress = SourceEntry;
- mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].Type = Type;
+ mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].Type = Type;
//
// Do not change CallStackEntryCount
//
- return ;
+ return;
}
/**
@@ -74,14 +76,15 @@ EbcDebuggerPushCallstackSource (
**/
VOID
EbcDebuggerPushCallstackParameter (
- IN UINT64 ParameterAddress,
- IN EFI_DEBUGGER_BRANCH_TYPE Type
+ IN UINT64 ParameterAddress,
+ IN EFI_DEBUGGER_BRANCH_TYPE Type
)
{
if (mDebuggerPrivate.CallStackEntryCount > EFI_DEBUGGER_CALLSTACK_MAX) {
ASSERT (FALSE);
mDebuggerPrivate.CallStackEntryCount = EFI_DEBUGGER_CALLSTACK_MAX;
}
+
//
// Record the new callstack parameter
//
@@ -89,14 +92,14 @@ EbcDebuggerPushCallstackParameter (
CopyMem (
mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].Parameter,
(VOID *)(UINTN)ParameterAddress,
- sizeof(mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].Parameter)
+ sizeof (mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].Parameter)
);
//
// Do not change CallStackEntryCount
//
- return ;
+ return;
}
/**
@@ -109,11 +112,11 @@ EbcDebuggerPushCallstackParameter (
**/
VOID
EbcDebuggerPushCallstackDest (
- IN UINT64 DestEntry,
- IN EFI_DEBUGGER_BRANCH_TYPE Type
+ IN UINT64 DestEntry,
+ IN EFI_DEBUGGER_BRANCH_TYPE Type
)
{
- UINTN Index;
+ UINTN Index;
if (mDebuggerPrivate.CallStackEntryCount < EFI_DEBUGGER_CALLSTACK_MAX) {
//
@@ -121,23 +124,25 @@ EbcDebuggerPushCallstackDest (
//
ASSERT (mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].Type == Type);
mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].DestAddress = DestEntry;
- mDebuggerPrivate.CallStackEntryCount ++;
+ mDebuggerPrivate.CallStackEntryCount++;
} else {
//
// If there is no empty entry for callstack, throw the oldest one
//
ASSERT (mDebuggerPrivate.CallStackEntry[EFI_DEBUGGER_TRACE_MAX].Type == Type);
for (Index = 0; Index < EFI_DEBUGGER_CALLSTACK_MAX; Index++) {
- CopyMem (&mDebuggerPrivate.CallStackEntry[Index],
- &mDebuggerPrivate.CallStackEntry[Index + 1],
- sizeof (mDebuggerPrivate.CallStackEntry[Index])
- );
+ CopyMem (
+ &mDebuggerPrivate.CallStackEntry[Index],
+ &mDebuggerPrivate.CallStackEntry[Index + 1],
+ sizeof (mDebuggerPrivate.CallStackEntry[Index])
+ );
}
+
mDebuggerPrivate.CallStackEntry[EFI_DEBUGGER_CALLSTACK_MAX - 1].DestAddress = DestEntry;
- mDebuggerPrivate.CallStackEntryCount = EFI_DEBUGGER_CALLSTACK_MAX;
+ mDebuggerPrivate.CallStackEntryCount = EFI_DEBUGGER_CALLSTACK_MAX;
}
- return ;
+ return;
}
/**
@@ -151,13 +156,14 @@ EbcDebuggerPopCallstack (
)
{
if ((mDebuggerPrivate.CallStackEntryCount > 0) &&
- (mDebuggerPrivate.CallStackEntryCount <= EFI_DEBUGGER_CALLSTACK_MAX)) {
+ (mDebuggerPrivate.CallStackEntryCount <= EFI_DEBUGGER_CALLSTACK_MAX))
+ {
//
// Throw the newest one
//
- mDebuggerPrivate.CallStackEntryCount --;
+ mDebuggerPrivate.CallStackEntryCount--;
mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].SourceAddress = 0;
- mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].DestAddress = 0;
+ mDebuggerPrivate.CallStackEntry[mDebuggerPrivate.CallStackEntryCount].DestAddress = 0;
} else if (mDebuggerPrivate.CallStackEntryCount == 0) {
//
// NOT assert here because it is reasonable, because when we start to build
@@ -167,7 +173,7 @@ EbcDebuggerPopCallstack (
ASSERT (FALSE);
}
- return ;
+ return;
}
/**
@@ -180,25 +186,26 @@ EbcDebuggerPopCallstack (
**/
VOID
EbcDebuggerPushTraceSourceEntry (
- IN UINT64 SourceEntry,
- IN EFI_DEBUGGER_BRANCH_TYPE Type
+ IN UINT64 SourceEntry,
+ IN EFI_DEBUGGER_BRANCH_TYPE Type
)
{
if (mDebuggerPrivate.TraceEntryCount > EFI_DEBUGGER_TRACE_MAX) {
ASSERT (FALSE);
mDebuggerPrivate.TraceEntryCount = EFI_DEBUGGER_TRACE_MAX;
}
+
//
// Record the new trace entry
//
mDebuggerPrivate.TraceEntry[mDebuggerPrivate.TraceEntryCount].SourceAddress = SourceEntry;
- mDebuggerPrivate.TraceEntry[mDebuggerPrivate.TraceEntryCount].Type = Type;
+ mDebuggerPrivate.TraceEntry[mDebuggerPrivate.TraceEntryCount].Type = Type;
//
// Do not change TraceEntryCount
//
- return ;
+ return;
}
/**
@@ -211,11 +218,11 @@ EbcDebuggerPushTraceSourceEntry (
**/
VOID
EbcDebuggerPushTraceDestEntry (
- IN UINT64 DestEntry,
- IN EFI_DEBUGGER_BRANCH_TYPE Type
+ IN UINT64 DestEntry,
+ IN EFI_DEBUGGER_BRANCH_TYPE Type
)
{
- UINTN Index;
+ UINTN Index;
if (mDebuggerPrivate.TraceEntryCount < EFI_DEBUGGER_TRACE_MAX) {
//
@@ -223,7 +230,7 @@ EbcDebuggerPushTraceDestEntry (
//
ASSERT (mDebuggerPrivate.TraceEntry[mDebuggerPrivate.TraceEntryCount].Type == Type);
mDebuggerPrivate.TraceEntry[mDebuggerPrivate.TraceEntryCount].DestAddress = DestEntry;
- mDebuggerPrivate.TraceEntryCount ++;
+ mDebuggerPrivate.TraceEntryCount++;
} else {
//
// If there is no empty entry for trace, throw the oldest one
@@ -236,11 +243,12 @@ EbcDebuggerPushTraceDestEntry (
sizeof (mDebuggerPrivate.TraceEntry[Index])
);
}
+
mDebuggerPrivate.TraceEntry[EFI_DEBUGGER_CALLSTACK_MAX - 1].DestAddress = DestEntry;
- mDebuggerPrivate.TraceEntryCount = EFI_DEBUGGER_TRACE_MAX;
+ mDebuggerPrivate.TraceEntryCount = EFI_DEBUGGER_TRACE_MAX;
}
- return ;
+ return;
}
/**
@@ -254,32 +262,34 @@ EbcDebuggerPushTraceDestEntry (
**/
VOID
EbcDebuggerPushStepEntry (
- IN UINT64 Entry,
- IN UINT64 FramePtr,
- IN UINT32 Flag
+ IN UINT64 Entry,
+ IN UINT64 FramePtr,
+ IN UINT32 Flag
)
{
//
// Check StepOver
//
if ((Flag == EFI_DEBUG_FLAG_EBC_STEPOVER) &&
- ((mDebuggerPrivate.FeatureFlags & EFI_DEBUG_FLAG_EBC_STEPOVER) == EFI_DEBUG_FLAG_EBC_STEPOVER)) {
+ ((mDebuggerPrivate.FeatureFlags & EFI_DEBUG_FLAG_EBC_STEPOVER) == EFI_DEBUG_FLAG_EBC_STEPOVER))
+ {
mDebuggerPrivate.StepContext.BreakAddress = Entry;
mDebuggerPrivate.StepContext.FramePointer = FramePtr;
- mDebuggerPrivate.FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_STEPOVER;
+ mDebuggerPrivate.FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_STEPOVER;
}
+
//
// Check StepOut
//
if ((Flag == EFI_DEBUG_FLAG_EBC_STEPOUT) &&
- ((mDebuggerPrivate.FeatureFlags & EFI_DEBUG_FLAG_EBC_STEPOUT) == EFI_DEBUG_FLAG_EBC_STEPOUT)) {
+ ((mDebuggerPrivate.FeatureFlags & EFI_DEBUG_FLAG_EBC_STEPOUT) == EFI_DEBUG_FLAG_EBC_STEPOUT))
+ {
mDebuggerPrivate.StepContext.BreakAddress = Entry;
mDebuggerPrivate.StepContext.FramePointer = FramePtr;
- mDebuggerPrivate.FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_STEPOUT;
+ mDebuggerPrivate.FeatureFlags &= ~EFI_DEBUG_FLAG_EBC_B_STEPOUT;
}
}
-
/**
Notify the callback function when an event is triggered.
@@ -290,14 +300,14 @@ EbcDebuggerPushStepEntry (
VOID
EFIAPI
EbcDebuggerBreakEventFunc (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
EFI_STATUS Status;
if ((mDebuggerPrivate.FeatureFlags & EFI_DEBUG_FLAG_EBC_BOK) != EFI_DEBUG_FLAG_EBC_BOK) {
- return ;
+ return;
}
Status = gBS->CheckEvent (gST->ConIn->WaitForKey);
@@ -321,44 +331,43 @@ EbcDebuggerHookInit (
IN EFI_DEBUG_SUPPORT_PROTOCOL *EbcDebugProtocol
)
{
- EFI_STATUS Status;
- UINTN Index;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
-
+ EFI_STATUS Status;
+ UINTN Index;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
//
// Register all exception handler
//
for (Index = EXCEPT_EBC_UNDEFINED; Index <= EXCEPT_EBC_STEP; Index++) {
EbcDebugProtocol->RegisterExceptionCallback (
- EbcDebugProtocol,
- 0,
- NULL,
- Index
- );
+ EbcDebugProtocol,
+ 0,
+ NULL,
+ Index
+ );
EbcDebugProtocol->RegisterExceptionCallback (
- EbcDebugProtocol,
- 0,
- EdbExceptionHandler,
- Index
- );
+ EbcDebugProtocol,
+ 0,
+ EdbExceptionHandler,
+ Index
+ );
}
//
// Init Symbol
//
- Object = AllocateZeroPool (sizeof(EFI_DEBUGGER_SYMBOL_OBJECT) * EFI_DEBUGGER_SYMBOL_OBJECT_MAX);
+ Object = AllocateZeroPool (sizeof (EFI_DEBUGGER_SYMBOL_OBJECT) * EFI_DEBUGGER_SYMBOL_OBJECT_MAX);
ASSERT (Object != NULL);
- mDebuggerPrivate.DebuggerSymbolContext.Object = Object;
- mDebuggerPrivate.DebuggerSymbolContext.ObjectCount = 0;
+ mDebuggerPrivate.DebuggerSymbolContext.Object = Object;
+ mDebuggerPrivate.DebuggerSymbolContext.ObjectCount = 0;
mDebuggerPrivate.DebuggerSymbolContext.MaxObjectCount = EFI_DEBUGGER_SYMBOL_OBJECT_MAX;
for (Index = 0; Index < EFI_DEBUGGER_SYMBOL_OBJECT_MAX; Index++) {
- Entry = AllocateZeroPool (sizeof(EFI_DEBUGGER_SYMBOL_ENTRY) * EFI_DEBUGGER_SYMBOL_ENTRY_MAX);
+ Entry = AllocateZeroPool (sizeof (EFI_DEBUGGER_SYMBOL_ENTRY) * EFI_DEBUGGER_SYMBOL_ENTRY_MAX);
ASSERT (Entry != NULL);
- Object[Index].Entry = Entry;
+ Object[Index].Entry = Entry;
Object[Index].MaxEntryCount = EFI_DEBUGGER_SYMBOL_ENTRY_MAX;
- Object[Index].SourceBuffer = AllocateZeroPool (sizeof(VOID *) * (EFI_DEBUGGER_SYMBOL_ENTRY_MAX + 1));
+ Object[Index].SourceBuffer = AllocateZeroPool (sizeof (VOID *) * (EFI_DEBUGGER_SYMBOL_ENTRY_MAX + 1));
ASSERT (Object[Index].SourceBuffer != NULL);
}
@@ -368,7 +377,7 @@ EbcDebuggerHookInit (
Status = gBS->LocateProtocol (
&gEfiPciRootBridgeIoProtocolGuid,
NULL,
- (VOID**) &mDebuggerPrivate.PciRootBridgeIo
+ (VOID **)&mDebuggerPrivate.PciRootBridgeIo
);
//
@@ -376,7 +385,7 @@ EbcDebuggerHookInit (
//
Status = EfiGetSystemConfigurationTable (
&gEfiDebugImageInfoTableGuid,
- (VOID**) &mDebuggerPrivate.DebugImageInfoTableHeader
+ (VOID **)&mDebuggerPrivate.DebugImageInfoTableHeader
);
//
@@ -408,7 +417,7 @@ EbcDebuggerHookInit (
);
}
- return ;
+ return;
}
/**
@@ -422,9 +431,9 @@ EbcDebuggerHookUnload (
VOID
)
{
- UINTN Index;
- UINTN SubIndex;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN Index;
+ UINTN SubIndex;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
//
// Close the break event
@@ -442,7 +451,7 @@ EbcDebuggerHookUnload (
// Clean up Entry
//
gBS->FreePool (Object[Index].Entry);
- Object[Index].Entry = NULL;
+ Object[Index].Entry = NULL;
Object[Index].EntryCount = 0;
//
// Clean up source buffer
@@ -451,6 +460,7 @@ EbcDebuggerHookUnload (
gBS->FreePool (Object[Index].SourceBuffer[SubIndex]);
Object[Index].SourceBuffer[SubIndex] = NULL;
}
+
gBS->FreePool (Object[Index].SourceBuffer);
Object[Index].SourceBuffer = NULL;
}
@@ -459,13 +469,13 @@ EbcDebuggerHookUnload (
// Clean up Object
//
gBS->FreePool (Object);
- mDebuggerPrivate.DebuggerSymbolContext.Object = NULL;
+ mDebuggerPrivate.DebuggerSymbolContext.Object = NULL;
mDebuggerPrivate.DebuggerSymbolContext.ObjectCount = 0;
//
// Done
//
- return ;
+ return;
}
/**
@@ -478,10 +488,10 @@ EbcDebuggerHookUnload (
**/
VOID
EbcDebuggerHookEbcUnloadImage (
- IN EFI_HANDLE Handle
+ IN EFI_HANDLE Handle
)
{
- return ;
+ return;
}
/**
@@ -496,14 +506,14 @@ EbcDebuggerHookEbcUnloadImage (
**/
VOID
EbcDebuggerHookExecuteEbcImageEntryPoint (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushCallstackSource ((UINT64)(UINTN)-1, EfiDebuggerBranchTypeEbcCall);
EbcDebuggerPushCallstackParameter ((UINT64)(UINTN)VmPtr->Gpr[0], EfiDebuggerBranchTypeEbcCall);
EbcDebuggerPushCallstackDest ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCall);
EbcDebuggerCheckHookFlag (VmPtr, EFI_DEBUG_FLAG_EBC_BOE);
- return ;
+ return;
}
/**
@@ -517,14 +527,14 @@ EbcDebuggerHookExecuteEbcImageEntryPoint (
**/
VOID
EbcDebuggerHookEbcInterpret (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushCallstackSource ((UINT64)(UINTN)-2, EfiDebuggerBranchTypeEbcCall);
EbcDebuggerPushCallstackParameter ((UINT64)(UINTN)VmPtr->Gpr[0], EfiDebuggerBranchTypeEbcCall);
EbcDebuggerPushCallstackDest ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCall);
EbcDebuggerCheckHookFlag (VmPtr, EFI_DEBUG_FLAG_EBC_BOT);
- return ;
+ return;
}
/**
@@ -537,16 +547,16 @@ EbcDebuggerHookEbcInterpret (
**/
VOID
EbcDebuggerHookExecuteStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- EFI_TPL CurrentTpl;
+ EFI_TPL CurrentTpl;
//
// Check Ip for GoTil
//
if (mDebuggerPrivate.GoTilContext.BreakAddress == (UINT64)(UINTN)VmPtr->Ip) {
- mDebuggerPrivate.StatusFlags = EFI_DEBUG_FLAG_EBC_GT;
+ mDebuggerPrivate.StatusFlags = EFI_DEBUG_FLAG_EBC_GT;
mDebuggerPrivate.GoTilContext.BreakAddress = 0;
EbcDebugSignalException (
EXCEPT_EBC_BREAKPOINT,
@@ -554,14 +564,16 @@ EbcDebuggerHookExecuteStart (
VmPtr
);
mDebuggerPrivate.StatusFlags &= ~EFI_DEBUG_FLAG_EBC_B_GT;
- return ;
+ return;
}
+
//
// Check ReturnAddress for StepOver
//
if ((mDebuggerPrivate.StepContext.BreakAddress == (UINT64)(UINTN)VmPtr->Ip) &&
- (mDebuggerPrivate.StepContext.FramePointer == (UINT64)(UINTN)VmPtr->FramePtr)) {
- mDebuggerPrivate.StatusFlags = EFI_DEBUG_FLAG_EBC_STEPOVER;
+ (mDebuggerPrivate.StepContext.FramePointer == (UINT64)(UINTN)VmPtr->FramePtr))
+ {
+ mDebuggerPrivate.StatusFlags = EFI_DEBUG_FLAG_EBC_STEPOVER;
mDebuggerPrivate.StepContext.BreakAddress = 0;
mDebuggerPrivate.StepContext.FramePointer = 0;
EbcDebugSignalException (
@@ -571,11 +583,12 @@ EbcDebuggerHookExecuteStart (
);
mDebuggerPrivate.StatusFlags &= ~EFI_DEBUG_FLAG_EBC_B_STEPOVER;
}
+
//
// Check FramePtr for StepOut
//
if (mDebuggerPrivate.StepContext.BreakAddress == (UINT64)(UINTN)VmPtr->FramePtr) {
- mDebuggerPrivate.StatusFlags = EFI_DEBUG_FLAG_EBC_STEPOUT;
+ mDebuggerPrivate.StatusFlags = EFI_DEBUG_FLAG_EBC_STEPOUT;
mDebuggerPrivate.StepContext.BreakAddress = 0;
mDebuggerPrivate.StepContext.FramePointer = 0;
EbcDebugSignalException (
@@ -585,6 +598,7 @@ EbcDebuggerHookExecuteStart (
);
mDebuggerPrivate.StatusFlags &= ~EFI_DEBUG_FLAG_EBC_B_STEPOUT;
}
+
//
// Check Flags for BreakOnKey
//
@@ -603,7 +617,8 @@ EbcDebuggerHookExecuteStart (
mDebuggerPrivate.StatusFlags &= ~EFI_DEBUG_FLAG_EBC_B_BOK;
}
}
- return ;
+
+ return;
}
/**
@@ -616,7 +631,7 @@ EbcDebuggerHookExecuteStart (
**/
VOID
EbcDebuggerHookExecuteEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINTN Address;
@@ -624,10 +639,10 @@ EbcDebuggerHookExecuteEnd (
//
// Use FramePtr as checkpoint for StepOut
//
- CopyMem (&Address, (VOID *)((UINTN)VmPtr->FramePtr), sizeof(Address));
+ CopyMem (&Address, (VOID *)((UINTN)VmPtr->FramePtr), sizeof (Address));
EbcDebuggerPushStepEntry (Address, (UINT64)(UINTN)VmPtr->FramePtr, EFI_DEBUG_FLAG_EBC_STEPOUT);
- return ;
+ return;
}
/**
@@ -641,14 +656,14 @@ EbcDebuggerHookExecuteEnd (
**/
VOID
EbcDebuggerHookCALLStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerCheckHookFlag (VmPtr, EFI_DEBUG_FLAG_EBC_BOC);
EbcDebuggerPushCallstackSource ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCall);
EbcDebuggerPushCallstackParameter ((UINT64)(UINTN)VmPtr->Gpr[0], EfiDebuggerBranchTypeEbcCall);
EbcDebuggerPushTraceSourceEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCall);
- return ;
+ return;
}
/**
@@ -662,7 +677,7 @@ EbcDebuggerHookCALLStart (
**/
VOID
EbcDebuggerHookCALLEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT64 Address;
@@ -674,22 +689,22 @@ EbcDebuggerHookCALLEnd (
//
// Get Old FramePtr
//
- CopyMem (&FramePtr, (VOID *)((UINTN)VmPtr->FramePtr), sizeof(FramePtr));
+ CopyMem (&FramePtr, (VOID *)((UINTN)VmPtr->FramePtr), sizeof (FramePtr));
//
// Use ReturnAddress as checkpoint for StepOver
//
- CopyMem (&Address, (VOID *)(UINTN)VmPtr->Gpr[0], sizeof(Address));
+ CopyMem (&Address, (VOID *)(UINTN)VmPtr->Gpr[0], sizeof (Address));
EbcDebuggerPushStepEntry (Address, FramePtr, EFI_DEBUG_FLAG_EBC_STEPOVER);
//
// Use FramePtr as checkpoint for StepOut
//
Address = 0;
- CopyMem (&Address, (VOID *)(FramePtr), sizeof(UINTN));
+ CopyMem (&Address, (VOID *)(FramePtr), sizeof (UINTN));
EbcDebuggerPushStepEntry (Address, FramePtr, EFI_DEBUG_FLAG_EBC_STEPOUT);
- return ;
+ return;
}
/**
@@ -703,14 +718,14 @@ EbcDebuggerHookCALLEnd (
**/
VOID
EbcDebuggerHookCALLEXStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerCheckHookFlag (VmPtr, EFI_DEBUG_FLAG_EBC_BOCX);
-// EbcDebuggerPushCallstackSource ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCallEx);
-// EbcDebuggerPushCallstackParameter ((UINT64)(UINTN)VmPtr->R[0], EfiDebuggerBranchTypeEbcCallEx);
+ // EbcDebuggerPushCallstackSource ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCallEx);
+ // EbcDebuggerPushCallstackParameter ((UINT64)(UINTN)VmPtr->R[0], EfiDebuggerBranchTypeEbcCallEx);
EbcDebuggerPushTraceSourceEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCallEx);
- return ;
+ return;
}
/**
@@ -723,12 +738,12 @@ EbcDebuggerHookCALLEXStart (
**/
VOID
EbcDebuggerHookCALLEXEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
-// EbcDebuggerPushCallstackDest ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCallEx);
+ // EbcDebuggerPushCallstackDest ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCallEx);
EbcDebuggerPushTraceDestEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcCallEx);
- return ;
+ return;
}
/**
@@ -742,13 +757,13 @@ EbcDebuggerHookCALLEXEnd (
**/
VOID
EbcDebuggerHookRETStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerCheckHookFlag (VmPtr, EFI_DEBUG_FLAG_EBC_BOR);
EbcDebuggerPopCallstack ();
EbcDebuggerPushTraceSourceEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcRet);
- return ;
+ return;
}
/**
@@ -761,11 +776,11 @@ EbcDebuggerHookRETStart (
**/
VOID
EbcDebuggerHookRETEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushTraceDestEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcRet);
- return ;
+ return;
}
/**
@@ -778,11 +793,11 @@ EbcDebuggerHookRETEnd (
**/
VOID
EbcDebuggerHookJMPStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushTraceSourceEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcJmp);
- return ;
+ return;
}
/**
@@ -795,11 +810,11 @@ EbcDebuggerHookJMPStart (
**/
VOID
EbcDebuggerHookJMPEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushTraceDestEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcJmp);
- return ;
+ return;
}
/**
@@ -812,11 +827,11 @@ EbcDebuggerHookJMPEnd (
**/
VOID
EbcDebuggerHookJMP8Start (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushTraceSourceEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcJmp8);
- return ;
+ return;
}
/**
@@ -829,9 +844,9 @@ EbcDebuggerHookJMP8Start (
**/
VOID
EbcDebuggerHookJMP8End (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EbcDebuggerPushTraceDestEntry ((UINT64)(UINTN)VmPtr->Ip, EfiDebuggerBranchTypeEbcJmp8);
- return ;
+ return;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupport.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupport.h
index ba8b936..43f7504 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupport.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupport.h
@@ -17,7 +17,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define EFI_DEBUGGER_LINE_NUMBER_IN_PAGE 0x10
-#define EFI_DEBUG_MAX_PRINT_BUFFER (80 * 4)
+#define EFI_DEBUG_MAX_PRINT_BUFFER (80 * 4)
/**
@@ -99,8 +99,8 @@ AsciiAtoi (
INTN
EFIAPI
StrCmpUnicodeAndAscii (
- IN CHAR16 *String,
- IN CHAR8 *String2
+ IN CHAR16 *String,
+ IN CHAR8 *String2
);
/**
@@ -118,8 +118,8 @@ StrCmpUnicodeAndAscii (
INTN
EFIAPI
StriCmp (
- IN CHAR16 *String,
- IN CHAR16 *String2
+ IN CHAR16 *String,
+ IN CHAR16 *String2
);
/**
@@ -137,8 +137,8 @@ StriCmp (
INTN
EFIAPI
StriCmpUnicodeAndAscii (
- IN CHAR16 *String,
- IN CHAR8 *String2
+ IN CHAR16 *String,
+ IN CHAR8 *String2
);
/**
@@ -152,8 +152,8 @@ StriCmpUnicodeAndAscii (
BOOLEAN
EFIAPI
StrEndWith (
- IN CHAR16 *Str,
- IN CHAR16 *SubStr
+ IN CHAR16 *Str,
+ IN CHAR16 *SubStr
);
/**
@@ -165,7 +165,7 @@ StrEndWith (
CHAR16 *
EFIAPI
StrDuplicate (
- IN CHAR16 *Src
+ IN CHAR16 *Src
);
/**
@@ -179,8 +179,8 @@ StrDuplicate (
CHAR16 *
EFIAPI
StrGetNewTokenLine (
- IN CHAR16 *String,
- IN CHAR16 *CharSet
+ IN CHAR16 *String,
+ IN CHAR16 *CharSet
);
/**
@@ -193,7 +193,7 @@ StrGetNewTokenLine (
CHAR16 *
EFIAPI
StrGetNextTokenLine (
- IN CHAR16 *CharSet
+ IN CHAR16 *CharSet
);
/**
@@ -207,8 +207,8 @@ StrGetNextTokenLine (
CHAR16 *
EFIAPI
StrGetNewTokenField (
- IN CHAR16 *String,
- IN CHAR16 *CharSet
+ IN CHAR16 *String,
+ IN CHAR16 *CharSet
);
/**
@@ -221,7 +221,7 @@ StrGetNewTokenField (
CHAR16 *
EFIAPI
StrGetNextTokenField (
- IN CHAR16 *CharSet
+ IN CHAR16 *CharSet
);
/**
@@ -235,8 +235,8 @@ StrGetNextTokenField (
VOID
EFIAPI
PatchForStrTokenAfter (
- IN CHAR16 *Buffer,
- IN CHAR16 Patch
+ IN CHAR16 *Buffer,
+ IN CHAR16 Patch
);
/**
@@ -249,8 +249,8 @@ PatchForStrTokenAfter (
VOID
EFIAPI
PatchForStrTokenBefore (
- IN CHAR16 *Buffer,
- IN CHAR16 Patch
+ IN CHAR16 *Buffer,
+ IN CHAR16 Patch
);
/**
@@ -264,8 +264,8 @@ PatchForStrTokenBefore (
CHAR8 *
EFIAPI
AsciiStrGetNewTokenLine (
- IN CHAR8 *String,
- IN CHAR8 *CharSet
+ IN CHAR8 *String,
+ IN CHAR8 *CharSet
);
/**
@@ -278,7 +278,7 @@ AsciiStrGetNewTokenLine (
CHAR8 *
EFIAPI
AsciiStrGetNextTokenLine (
- IN CHAR8 *CharSet
+ IN CHAR8 *CharSet
);
/**
@@ -292,8 +292,8 @@ AsciiStrGetNextTokenLine (
CHAR8 *
EFIAPI
AsciiStrGetNewTokenField (
- IN CHAR8 *String,
- IN CHAR8 *CharSet
+ IN CHAR8 *String,
+ IN CHAR8 *CharSet
);
/**
@@ -306,7 +306,7 @@ AsciiStrGetNewTokenField (
CHAR8 *
EFIAPI
AsciiStrGetNextTokenField (
- IN CHAR8 *CharSet
+ IN CHAR8 *CharSet
);
/**
@@ -320,8 +320,8 @@ AsciiStrGetNextTokenField (
VOID
EFIAPI
PatchForAsciiStrTokenAfter (
- IN CHAR8 *Buffer,
- IN CHAR8 Patch
+ IN CHAR8 *Buffer,
+ IN CHAR8 Patch
);
/**
@@ -334,8 +334,8 @@ PatchForAsciiStrTokenAfter (
VOID
EFIAPI
PatchForAsciiStrTokenBefore (
- IN CHAR8 *Buffer,
- IN CHAR8 Patch
+ IN CHAR8 *Buffer,
+ IN CHAR8 Patch
);
/**
@@ -351,9 +351,9 @@ PatchForAsciiStrTokenBefore (
VOID
EFIAPI
Input (
- IN CHAR16 *Prompt OPTIONAL,
- OUT CHAR16 *InStr,
- IN UINTN StrLen
+ IN CHAR16 *Prompt OPTIONAL,
+ OUT CHAR16 *InStr,
+ IN UINTN StrLen
);
/**
@@ -446,11 +446,11 @@ EDBSPrintWithOffset (
EFI_STATUS
EFIAPI
ReadFileToBuffer (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- OUT UINTN *BufferSize,
- OUT VOID **Buffer,
- IN BOOLEAN ScanFs
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ OUT UINTN *BufferSize,
+ OUT VOID **Buffer,
+ IN BOOLEAN ScanFs
);
/**
@@ -468,10 +468,10 @@ ReadFileToBuffer (
CHAR16 *
EFIAPI
GetFileNameUnderDir (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *DirName,
- IN CHAR16 *FileName,
- IN OUT UINTN *Index
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *DirName,
+ IN CHAR16 *FileName,
+ IN OUT UINTN *Index
);
#endif
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportFile.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportFile.c
index ee2f8fc..cef5141 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportFile.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportFile.c
@@ -23,19 +23,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
ReadFileFromVol (
- IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol,
- IN CHAR16 *FileName,
- OUT UINTN *BufferSize,
- OUT VOID **Buffer
+ IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol,
+ IN CHAR16 *FileName,
+ OUT UINTN *BufferSize,
+ OUT VOID **Buffer
)
{
- EFI_STATUS Status;
- EFI_FILE_HANDLE RootDir;
- EFI_FILE_HANDLE Handle;
- UINTN FileInfoSize;
- EFI_FILE_INFO *FileInfo;
- UINTN TempBufferSize;
- VOID *TempBuffer;
+ EFI_STATUS Status;
+ EFI_FILE_HANDLE RootDir;
+ EFI_FILE_HANDLE Handle;
+ UINTN FileInfoSize;
+ EFI_FILE_INFO *FileInfo;
+ UINTN TempBufferSize;
+ VOID *TempBuffer;
//
// Open the root directory
@@ -65,7 +65,7 @@ ReadFileFromVol (
//
// Get the file information
//
- FileInfoSize = sizeof(EFI_FILE_INFO) + 1024;
+ FileInfoSize = sizeof (EFI_FILE_INFO) + 1024;
FileInfo = AllocateZeroPool (FileInfoSize);
if (FileInfo == NULL) {
@@ -88,8 +88,8 @@ ReadFileFromVol (
//
// Allocate buffer for the file data. The last CHAR16 is for L'\0'
//
- TempBufferSize = (UINTN) FileInfo->FileSize + sizeof(CHAR16);
- TempBuffer = AllocateZeroPool (TempBufferSize);
+ TempBufferSize = (UINTN)FileInfo->FileSize + sizeof (CHAR16);
+ TempBuffer = AllocateZeroPool (TempBufferSize);
if (TempBuffer == NULL) {
Handle->Close (Handle);
gBS->FreePool (FileInfo);
@@ -141,20 +141,20 @@ ReadFileFromVol (
EFI_STATUS
EFIAPI
ReadFileToBuffer (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- OUT UINTN *BufferSize,
- OUT VOID **Buffer,
- IN BOOLEAN ScanFs
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ OUT UINTN *BufferSize,
+ OUT VOID **Buffer,
+ IN BOOLEAN ScanFs
)
{
- EFI_STATUS Status;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol;
- UINTN TempBufferSize;
- VOID *TempBuffer;
- UINTN NoHandles;
- EFI_HANDLE *HandleBuffer;
- UINTN Index;
+ EFI_STATUS Status;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol;
+ UINTN TempBufferSize;
+ VOID *TempBuffer;
+ UINTN NoHandles;
+ EFI_HANDLE *HandleBuffer;
+ UINTN Index;
//
// Check parameters
@@ -170,6 +170,7 @@ ReadFileToBuffer (
if (DebuggerPrivate->Vol == NULL) {
return EFI_INVALID_PARAMETER;
}
+
//
// Read file directly from Vol
//
@@ -184,12 +185,12 @@ ReadFileToBuffer (
// Get all Vol handle
//
Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiSimpleFileSystemProtocolGuid,
- NULL,
- &NoHandles,
- &HandleBuffer
- );
+ ByProtocol,
+ &gEfiSimpleFileSystemProtocolGuid,
+ NULL,
+ &NoHandles,
+ &HandleBuffer
+ );
if (EFI_ERROR (Status) && (NoHandles == 0)) {
return EFI_NOT_FOUND;
}
@@ -198,15 +199,15 @@ ReadFileToBuffer (
// Walk through each Vol
//
DebuggerPrivate->Vol = NULL;
- *BufferSize = 0;
- *Buffer = NULL;
+ *BufferSize = 0;
+ *Buffer = NULL;
for (Index = 0; Index < NoHandles; Index++) {
Status = gBS->HandleProtocol (
HandleBuffer[Index],
&gEfiSimpleFileSystemProtocolGuid,
- (VOID**) &Vol
+ (VOID **)&Vol
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
continue;
}
@@ -228,8 +229,8 @@ ReadFileToBuffer (
// Record value
//
DebuggerPrivate->Vol = Vol;
- *BufferSize = TempBufferSize;
- *Buffer = TempBuffer;
+ *BufferSize = TempBufferSize;
+ *Buffer = TempBuffer;
}
}
}
@@ -262,31 +263,32 @@ ReadFileToBuffer (
CHAR16 *
EFIAPI
GetFileNameUnderDir (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *DirName,
- IN CHAR16 *FileName,
- IN OUT UINTN *Index
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *DirName,
+ IN CHAR16 *FileName,
+ IN OUT UINTN *Index
)
{
- EFI_STATUS Status;
- EFI_FILE_HANDLE RootDir;
- EFI_FILE_HANDLE Handle;
- UINTN FileInfoSize;
- EFI_FILE_INFO *FileInfo;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol;
- VOID *TempName;
- UINTN FileIndex;
+ EFI_STATUS Status;
+ EFI_FILE_HANDLE RootDir;
+ EFI_FILE_HANDLE Handle;
+ UINTN FileInfoSize;
+ EFI_FILE_INFO *FileInfo;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Vol;
+ VOID *TempName;
+ UINTN FileIndex;
if (DebuggerPrivate->Vol == NULL) {
Status = gBS->LocateProtocol (
&gEfiSimpleFileSystemProtocolGuid,
NULL,
- (VOID**) &DebuggerPrivate->Vol
+ (VOID **)&DebuggerPrivate->Vol
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return NULL;
}
}
+
Vol = DebuggerPrivate->Vol;
//
@@ -311,6 +313,7 @@ GetFileNameUnderDir (
RootDir->Close (RootDir);
return NULL;
}
+
RootDir->Close (RootDir);
//
@@ -325,7 +328,7 @@ GetFileNameUnderDir (
//
// Get the file information
//
- FileInfoSize = sizeof(EFI_FILE_INFO) + 1024;
+ FileInfoSize = sizeof (EFI_FILE_INFO) + 1024;
FileInfo = AllocateZeroPool (FileInfoSize);
if (FileInfo == NULL) {
@@ -337,12 +340,12 @@ GetFileNameUnderDir (
// Walk through each file in the directory
//
FileIndex = 0;
- TempName = NULL;
+ TempName = NULL;
while (TRUE) {
//
// Read a file entry
//
- FileInfoSize = sizeof(EFI_FILE_INFO) + 1024;
+ FileInfoSize = sizeof (EFI_FILE_INFO) + 1024;
Status = Handle->Read (
Handle,
@@ -367,10 +370,11 @@ GetFileNameUnderDir (
if (FileIndex == *Index) {
TempName = StrDuplicate (FileInfo->FileName);
- *Index = *Index + 1;
+ *Index = *Index + 1;
break;
}
- FileIndex ++;
+
+ FileIndex++;
}
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportString.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportString.c
index 9679a23..e450e57 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportString.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportString.c
@@ -27,38 +27,41 @@ Xtoi (
ASSERT (Str != NULL);
- MaxVal = (UINTN) -1 >> 4;
+ MaxVal = (UINTN)-1 >> 4;
//
// skip preceeding white space
//
while (*Str != '\0' && *Str == ' ') {
Str += 1;
}
+
//
// skip preceeding zeros
//
while (*Str != '\0' && *Str == '0') {
Str += 1;
}
+
//
// skip preceeding white space
//
- if (*Str != '\0' && (*Str == 'x' || *Str == 'X')) {
+ if ((*Str != '\0') && ((*Str == 'x') || (*Str == 'X'))) {
Str += 1;
}
+
//
// convert hex digits
//
- RetVal = 0;
+ RetVal = 0;
TempChar = *(Str++);
while (TempChar != '\0') {
- if (TempChar >= 'a' && TempChar <= 'f') {
+ if ((TempChar >= 'a') && (TempChar <= 'f')) {
TempChar -= 'a' - 'A';
}
- if ((TempChar >= '0' && TempChar <= '9') || (TempChar >= 'A' && TempChar <= 'F')) {
+ if (((TempChar >= '0') && (TempChar <= '9')) || ((TempChar >= 'A') && (TempChar <= 'F'))) {
if (RetVal > MaxVal) {
- return (UINTN) -1;
+ return (UINTN)-1;
}
RetVal = (RetVal << 4) | (TempChar - (TempChar >= 'A' ? 'A' - 10 : '0'));
@@ -91,38 +94,41 @@ LXtoi (
ASSERT (Str != NULL);
- MaxVal = RShiftU64 ((UINT64) -1, 4);
+ MaxVal = RShiftU64 ((UINT64)-1, 4);
//
// skip preceeding white space
//
while (*Str != '\0' && *Str == ' ') {
Str += 1;
}
+
//
// skip preceeding zeros
//
while (*Str != '\0' && *Str == '0') {
Str += 1;
}
+
//
// skip preceeding white space
//
- if (*Str != '\0' && (*Str == 'x' || *Str == 'X')) {
+ if ((*Str != '\0') && ((*Str == 'x') || (*Str == 'X'))) {
Str += 1;
}
+
//
// convert hex digits
//
- RetVal = 0;
+ RetVal = 0;
TempChar = *(Str++);
while (TempChar != '\0') {
- if (TempChar >= 'a' && TempChar <= 'f') {
+ if ((TempChar >= 'a') && (TempChar <= 'f')) {
TempChar -= 'a' - 'A';
}
- if ((TempChar >= '0' && TempChar <= '9') || (TempChar >= 'A' && TempChar <= 'F')) {
+ if (((TempChar >= '0') && (TempChar <= '9')) || ((TempChar >= 'A') && (TempChar <= 'F'))) {
if (RetVal > MaxVal) {
- return (UINT64) -1;
+ return (UINT64)-1;
}
RetVal = LShiftU64 (RetVal, 4);
@@ -157,23 +163,24 @@ Atoi (
ASSERT (Str != NULL);
- MaxVal = (UINTN) -1 / 10;
- ResteVal = (UINTN) -1 % 10;
+ MaxVal = (UINTN)-1 / 10;
+ ResteVal = (UINTN)-1 % 10;
//
// skip preceeding white space
//
while (*Str != '\0' && *Str == ' ') {
Str += 1;
}
+
//
// convert digits
//
- RetVal = 0;
+ RetVal = 0;
TempChar = *(Str++);
while (TempChar != '\0') {
- if (TempChar >= '0' && TempChar <= '9') {
- if (RetVal > MaxVal || (RetVal == MaxVal && TempChar - '0' > (INTN) ResteVal)) {
- return (UINTN) -1;
+ if ((TempChar >= '0') && (TempChar <= '9')) {
+ if ((RetVal > MaxVal) || ((RetVal == MaxVal) && (TempChar - '0' > (INTN)ResteVal))) {
+ return (UINTN)-1;
}
RetVal = (RetVal * 10) + TempChar - '0';
@@ -200,44 +207,47 @@ AsciiXtoi (
CHAR8 *Str
)
{
- UINTN RetVal;
- CHAR8 TempChar;
- UINTN MaxVal;
+ UINTN RetVal;
+ CHAR8 TempChar;
+ UINTN MaxVal;
ASSERT (Str != NULL);
- MaxVal = (UINTN) -1 >> 4;
+ MaxVal = (UINTN)-1 >> 4;
//
// skip preceeding white space
//
while (*Str != '\0' && *Str == ' ') {
Str += 1;
}
+
//
// skip preceeding zeros
//
while (*Str != '\0' && *Str == '0') {
Str += 1;
}
+
//
// skip preceeding white space
//
- if (*Str != '\0' && (*Str == 'x' || *Str == 'X')) {
+ if ((*Str != '\0') && ((*Str == 'x') || (*Str == 'X'))) {
Str += 1;
}
+
//
// convert hex digits
//
- RetVal = 0;
+ RetVal = 0;
TempChar = *(Str++);
while (TempChar != '\0') {
- if (TempChar >= 'a' && TempChar <= 'f') {
+ if ((TempChar >= 'a') && (TempChar <= 'f')) {
TempChar -= 'a' - 'A';
}
- if ((TempChar >= '0' && TempChar <= '9') || (TempChar >= 'A' && TempChar <= 'F')) {
+ if (((TempChar >= '0') && (TempChar <= '9')) || ((TempChar >= 'A') && (TempChar <= 'F'))) {
if (RetVal > MaxVal) {
- return (UINTN) -1;
+ return (UINTN)-1;
}
RetVal = (RetVal << 4) | (TempChar - (TempChar >= 'A' ? 'A' - 10 : '0'));
@@ -264,30 +274,31 @@ AsciiAtoi (
CHAR8 *Str
)
{
- UINTN RetVal;
- CHAR8 TempChar;
- UINTN MaxVal;
- UINTN ResteVal;
+ UINTN RetVal;
+ CHAR8 TempChar;
+ UINTN MaxVal;
+ UINTN ResteVal;
ASSERT (Str != NULL);
- MaxVal = (UINTN) -1 / 10;
- ResteVal = (UINTN) -1 % 10;
+ MaxVal = (UINTN)-1 / 10;
+ ResteVal = (UINTN)-1 % 10;
//
// skip preceeding white space
//
while (*Str != '\0' && *Str == ' ') {
Str += 1;
}
+
//
// convert digits
//
- RetVal = 0;
+ RetVal = 0;
TempChar = *(Str++);
while (TempChar != '\0') {
- if (TempChar >= '0' && TempChar <= '9') {
- if (RetVal > MaxVal || (RetVal == MaxVal && TempChar - '0' > (INTN) ResteVal)) {
- return (UINTN) -1;
+ if ((TempChar >= '0') && (TempChar <= '9')) {
+ if ((RetVal > MaxVal) || ((RetVal == MaxVal) && (TempChar - '0' > (INTN)ResteVal))) {
+ return (UINTN)-1;
}
RetVal = (RetVal * 10) + TempChar - '0';
@@ -301,7 +312,6 @@ AsciiAtoi (
return RetVal;
}
-
/**
Compare the Unicode and Ascii string pointed by String to the string pointed by String2.
@@ -317,8 +327,8 @@ AsciiAtoi (
INTN
EFIAPI
StrCmpUnicodeAndAscii (
- IN CHAR16 *String,
- IN CHAR8 *String2
+ IN CHAR16 *String,
+ IN CHAR8 *String2
)
{
while (*String != '\0') {
@@ -326,7 +336,7 @@ StrCmpUnicodeAndAscii (
break;
}
- String += 1;
+ String += 1;
String2 += 1;
}
@@ -348,12 +358,13 @@ StrCmpUnicodeAndAscii (
INTN
EFIAPI
StriCmp (
- IN CHAR16 *String,
- IN CHAR16 *String2
+ IN CHAR16 *String,
+ IN CHAR16 *String2
)
{
while ((*String != L'\0') &&
- (CharToUpper (*String) == CharToUpper (*String2))) {
+ (CharToUpper (*String) == CharToUpper (*String2)))
+ {
String++;
String2++;
}
@@ -376,12 +387,13 @@ StriCmp (
INTN
EFIAPI
StriCmpUnicodeAndAscii (
- IN CHAR16 *String,
- IN CHAR8 *String2
+ IN CHAR16 *String,
+ IN CHAR8 *String2
)
{
while ((*String != L'\0') &&
- (CharToUpper (*String) == (CHAR16)AsciiCharToUpper (*String2))) {
+ (CharToUpper (*String) == (CHAR16)AsciiCharToUpper (*String2)))
+ {
String++;
String2++;
}
@@ -400,17 +412,17 @@ StriCmpUnicodeAndAscii (
BOOLEAN
EFIAPI
StrEndWith (
- IN CHAR16 *Str,
- IN CHAR16 *SubStr
+ IN CHAR16 *Str,
+ IN CHAR16 *SubStr
)
{
CHAR16 *Temp;
- if ((Str == NULL) || (SubStr == NULL) || (StrLen(Str) < StrLen(SubStr))) {
+ if ((Str == NULL) || (SubStr == NULL) || (StrLen (Str) < StrLen (SubStr))) {
return FALSE;
}
- Temp = Str + StrLen(Str) - StrLen(SubStr);
+ Temp = Str + StrLen (Str) - StrLen (SubStr);
//
// Compare
@@ -431,23 +443,23 @@ StrEndWith (
CHAR16 *
EFIAPI
StrDuplicate (
- IN CHAR16 *Src
+ IN CHAR16 *Src
)
{
- CHAR16 *Dest;
- UINTN Size;
+ CHAR16 *Dest;
+ UINTN Size;
- Size = (StrLen(Src) + 1) * sizeof(CHAR16);
+ Size = (StrLen (Src) + 1) * sizeof (CHAR16);
Dest = AllocateZeroPool (Size);
if (Dest != NULL) {
CopyMem (Dest, Src, Size);
}
+
return Dest;
}
-
-CHAR16 *mLineBuffer = NULL;
-CHAR16 *mFieldBuffer = NULL;
+CHAR16 *mLineBuffer = NULL;
+CHAR16 *mFieldBuffer = NULL;
/**
@@ -460,8 +472,8 @@ CHAR16 *mFieldBuffer = NULL;
UINTN
EFIAPI
StrSpn (
- IN CHAR16 *String,
- IN CHAR16 *CharSet
+ IN CHAR16 *String,
+ IN CHAR16 *CharSet
)
{
UINTN Count;
@@ -470,8 +482,8 @@ StrSpn (
Count = 0;
- for (Str1 = String; *Str1 != L'\0'; Str1 ++) {
- for (Str2 = CharSet; *Str2 != L'\0'; Str2 ++) {
+ for (Str1 = String; *Str1 != L'\0'; Str1++) {
+ for (Str2 = CharSet; *Str2 != L'\0'; Str2++) {
if (*Str1 == *Str2) {
break;
}
@@ -481,7 +493,7 @@ StrSpn (
return Count;
}
- Count ++;
+ Count++;
}
return Count;
@@ -499,17 +511,17 @@ StrSpn (
CHAR16 *
EFIAPI
StrBrk (
- IN CHAR16 *String,
- IN CHAR16 *CharSet
+ IN CHAR16 *String,
+ IN CHAR16 *CharSet
)
{
CHAR16 *Str1;
CHAR16 *Str2;
- for (Str1 = String; *Str1 != L'\0'; Str1 ++) {
- for (Str2 = CharSet; *Str2 != L'\0'; Str2 ++) {
+ for (Str1 = String; *Str1 != L'\0'; Str1++) {
+ for (Str2 = CharSet; *Str2 != L'\0'; Str2++) {
if (*Str1 == *Str2) {
- return (CHAR16 *) Str1;
+ return (CHAR16 *)Str1;
}
}
}
@@ -528,8 +540,8 @@ StrBrk (
CHAR16 *
EFIAPI
StrTokenLine (
- IN CHAR16 *String OPTIONAL,
- IN CHAR16 *CharSet
+ IN CHAR16 *String OPTIONAL,
+ IN CHAR16 *CharSet
)
{
CHAR16 *Begin;
@@ -549,7 +561,7 @@ StrTokenLine (
End = StrBrk (Begin, CharSet);
if ((End != NULL) && (*End != L'\0')) {
*End = L'\0';
- End ++;
+ End++;
}
mLineBuffer = End;
@@ -567,14 +579,13 @@ StrTokenLine (
CHAR16 *
EFIAPI
StrTokenField (
- IN CHAR16 *String OPTIONAL,
- IN CHAR16 *CharSet
+ IN CHAR16 *String OPTIONAL,
+ IN CHAR16 *CharSet
)
{
CHAR16 *Begin;
CHAR16 *End;
-
Begin = (String == NULL) ? mFieldBuffer : String;
if (Begin == NULL) {
return NULL;
@@ -588,7 +599,7 @@ StrTokenField (
End = StrBrk (Begin, CharSet);
if ((End != NULL) && (*End != L'\0')) {
*End = L'\0';
- End ++;
+ End++;
}
mFieldBuffer = End;
@@ -606,8 +617,8 @@ StrTokenField (
CHAR16 *
EFIAPI
StrGetNewTokenLine (
- IN CHAR16 *String,
- IN CHAR16 *CharSet
+ IN CHAR16 *String,
+ IN CHAR16 *CharSet
)
{
return StrTokenLine (String, CharSet);
@@ -623,7 +634,7 @@ StrGetNewTokenLine (
CHAR16 *
EFIAPI
StrGetNextTokenLine (
- IN CHAR16 *CharSet
+ IN CHAR16 *CharSet
)
{
return StrTokenLine (NULL, CharSet);
@@ -640,8 +651,8 @@ StrGetNextTokenLine (
CHAR16 *
EFIAPI
StrGetNewTokenField (
- IN CHAR16 *String,
- IN CHAR16 *CharSet
+ IN CHAR16 *String,
+ IN CHAR16 *CharSet
)
{
return StrTokenField (String, CharSet);
@@ -657,7 +668,7 @@ StrGetNewTokenField (
CHAR16 *
EFIAPI
StrGetNextTokenField (
- IN CHAR16 *CharSet
+ IN CHAR16 *CharSet
)
{
return StrTokenField (NULL, CharSet);
@@ -674,23 +685,24 @@ StrGetNextTokenField (
VOID
EFIAPI
PatchForStrTokenAfter (
- IN CHAR16 *Buffer,
- IN CHAR16 Patch
+ IN CHAR16 *Buffer,
+ IN CHAR16 Patch
)
{
- CHAR16 *Str;
+ CHAR16 *Str;
if (Buffer == NULL) {
- return ;
+ return;
}
Str = Buffer;
while (*Str != 0) {
- Str ++;
+ Str++;
}
+
*Str = Patch;
- while (*(Str ++) != '\0') {
+ while (*(Str++) != '\0') {
if (*Str == 0) {
*Str = Patch;
} else {
@@ -698,7 +710,7 @@ PatchForStrTokenAfter (
}
}
- return ;
+ return;
}
/**
@@ -711,18 +723,18 @@ PatchForStrTokenAfter (
VOID
EFIAPI
PatchForStrTokenBefore (
- IN CHAR16 *Buffer,
- IN CHAR16 Patch
+ IN CHAR16 *Buffer,
+ IN CHAR16 Patch
)
{
- CHAR16 *Str;
+ CHAR16 *Str;
if (Buffer == NULL) {
- return ;
+ return;
}
Str = Buffer;
- while (*(Str --) != '\0') {
+ while (*(Str--) != '\0') {
if ((*Str == 0) || (*Str == Patch)) {
*Str = Patch;
} else {
@@ -730,11 +742,11 @@ PatchForStrTokenBefore (
}
}
- return ;
+ return;
}
-CHAR8 *mAsciiLineBuffer = NULL;
-CHAR8 *mAsciiFieldBuffer = NULL;
+CHAR8 *mAsciiLineBuffer = NULL;
+CHAR8 *mAsciiFieldBuffer = NULL;
/**
@@ -747,18 +759,18 @@ CHAR8 *mAsciiFieldBuffer = NULL;
UINTN
EFIAPI
AsciiStrSpn (
- IN CHAR8 *String,
- IN CHAR8 *CharSet
+ IN CHAR8 *String,
+ IN CHAR8 *CharSet
)
{
- UINTN Count;
+ UINTN Count;
CHAR8 *Str1;
CHAR8 *Str2;
Count = 0;
- for (Str1 = String; *Str1 != '\0'; Str1 ++) {
- for (Str2 = CharSet; *Str2 != '\0'; Str2 ++) {
+ for (Str1 = String; *Str1 != '\0'; Str1++) {
+ for (Str2 = CharSet; *Str2 != '\0'; Str2++) {
if (*Str1 == *Str2) {
break;
}
@@ -768,7 +780,7 @@ AsciiStrSpn (
return Count;
}
- Count ++;
+ Count++;
}
return Count;
@@ -785,17 +797,17 @@ AsciiStrSpn (
CHAR8 *
EFIAPI
AsciiStrBrk (
- IN CHAR8 *String,
- IN CHAR8 *CharSet
+ IN CHAR8 *String,
+ IN CHAR8 *CharSet
)
{
CHAR8 *Str1;
CHAR8 *Str2;
- for (Str1 = String; *Str1 != '\0'; Str1 ++) {
- for (Str2 = CharSet; *Str2 != '\0'; Str2 ++) {
+ for (Str1 = String; *Str1 != '\0'; Str1++) {
+ for (Str2 = CharSet; *Str2 != '\0'; Str2++) {
if (*Str1 == *Str2) {
- return (CHAR8 *) Str1;
+ return (CHAR8 *)Str1;
}
}
}
@@ -814,8 +826,8 @@ AsciiStrBrk (
CHAR8 *
EFIAPI
AsciiStrTokenLine (
- IN CHAR8 *String OPTIONAL,
- IN CHAR8 *CharSet
+ IN CHAR8 *String OPTIONAL,
+ IN CHAR8 *CharSet
)
{
CHAR8 *Begin;
@@ -835,7 +847,7 @@ AsciiStrTokenLine (
End = AsciiStrBrk (Begin, CharSet);
if ((End != NULL) && (*End != '\0')) {
*End = '\0';
- End ++;
+ End++;
}
mAsciiLineBuffer = End;
@@ -853,14 +865,13 @@ AsciiStrTokenLine (
CHAR8 *
EFIAPI
AsciiStrTokenField (
- IN CHAR8 *String OPTIONAL,
- IN CHAR8 *CharSet
+ IN CHAR8 *String OPTIONAL,
+ IN CHAR8 *CharSet
)
{
CHAR8 *Begin;
CHAR8 *End;
-
Begin = (String == NULL) ? mAsciiFieldBuffer : String;
if (Begin == NULL) {
return NULL;
@@ -874,7 +885,7 @@ AsciiStrTokenField (
End = AsciiStrBrk (Begin, CharSet);
if ((End != NULL) && (*End != '\0')) {
*End = '\0';
- End ++;
+ End++;
}
mAsciiFieldBuffer = End;
@@ -892,8 +903,8 @@ AsciiStrTokenField (
CHAR8 *
EFIAPI
AsciiStrGetNewTokenLine (
- IN CHAR8 *String,
- IN CHAR8 *CharSet
+ IN CHAR8 *String,
+ IN CHAR8 *CharSet
)
{
return AsciiStrTokenLine (String, CharSet);
@@ -909,7 +920,7 @@ AsciiStrGetNewTokenLine (
CHAR8 *
EFIAPI
AsciiStrGetNextTokenLine (
- IN CHAR8 *CharSet
+ IN CHAR8 *CharSet
)
{
return AsciiStrTokenLine (NULL, CharSet);
@@ -926,8 +937,8 @@ AsciiStrGetNextTokenLine (
CHAR8 *
EFIAPI
AsciiStrGetNewTokenField (
- IN CHAR8 *String,
- IN CHAR8 *CharSet
+ IN CHAR8 *String,
+ IN CHAR8 *CharSet
)
{
return AsciiStrTokenField (String, CharSet);
@@ -943,7 +954,7 @@ AsciiStrGetNewTokenField (
CHAR8 *
EFIAPI
AsciiStrGetNextTokenField (
- IN CHAR8 *CharSet
+ IN CHAR8 *CharSet
)
{
return AsciiStrTokenField (NULL, CharSet);
@@ -960,23 +971,24 @@ AsciiStrGetNextTokenField (
VOID
EFIAPI
PatchForAsciiStrTokenAfter (
- IN CHAR8 *Buffer,
- IN CHAR8 Patch
+ IN CHAR8 *Buffer,
+ IN CHAR8 Patch
)
{
- CHAR8 *Str;
+ CHAR8 *Str;
if (Buffer == NULL) {
- return ;
+ return;
}
Str = Buffer;
while (*Str != 0) {
- Str ++;
+ Str++;
}
+
*Str = Patch;
- while (*(Str ++) != '\0') {
+ while (*(Str++) != '\0') {
if (*Str == 0) {
*Str = Patch;
} else {
@@ -984,7 +996,7 @@ PatchForAsciiStrTokenAfter (
}
}
- return ;
+ return;
}
/**
@@ -997,18 +1009,18 @@ PatchForAsciiStrTokenAfter (
VOID
EFIAPI
PatchForAsciiStrTokenBefore (
- IN CHAR8 *Buffer,
- IN CHAR8 Patch
+ IN CHAR8 *Buffer,
+ IN CHAR8 Patch
)
{
- CHAR8 *Str;
+ CHAR8 *Str;
if (Buffer == NULL) {
- return ;
+ return;
}
Str = Buffer;
- while (*(Str --) != '\0') {
+ while (*(Str--) != '\0') {
if ((*Str == 0) || (*Str == Patch)) {
*Str = Patch;
} else {
@@ -1016,5 +1028,5 @@ PatchForAsciiStrTokenBefore (
}
}
- return ;
+ return;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportUI.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportUI.c
index dd881a0..9844cf8 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportUI.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupportUI.c
@@ -48,8 +48,8 @@ SetCursorPosition (
EFI_STATUS
EFIAPI
WaitForSingleEvent (
- IN EFI_EVENT Event,
- IN UINT64 Timeout OPTIONAL
+ IN EFI_EVENT Event,
+ IN UINT64 Timeout OPTIONAL
)
{
EFI_STATUS Status;
@@ -67,10 +67,10 @@ WaitForSingleEvent (
// Set the timer event
//
gBS->SetTimer (
- TimerEvent,
- TimerRelative,
- Timeout
- );
+ TimerEvent,
+ TimerRelative,
+ Timeout
+ );
//
// Wait for the original event or the timer
@@ -83,7 +83,7 @@ WaitForSingleEvent (
//
// If the timer expired, change the return to timed out
//
- if (!EFI_ERROR (Status) && Index == 1) {
+ if (!EFI_ERROR (Status) && (Index == 1)) {
Status = EFI_TIMEOUT;
}
}
@@ -111,9 +111,9 @@ WaitForSingleEvent (
VOID
EFIAPI
ConMoveCursorBackward (
- IN UINTN LineLength,
- IN OUT UINTN *Column,
- IN OUT UINTN *Row
+ IN UINTN LineLength,
+ IN OUT UINTN *Column,
+ IN OUT UINTN *Row
)
{
ASSERT (Column != NULL);
@@ -149,10 +149,10 @@ ConMoveCursorBackward (
VOID
EFIAPI
ConMoveCursorForward (
- IN UINTN LineLength,
- IN UINTN TotalRow,
- IN OUT UINTN *Column,
- IN OUT UINTN *Row
+ IN UINTN LineLength,
+ IN UINTN TotalRow,
+ IN OUT UINTN *Column,
+ IN OUT UINTN *Row
)
{
ASSERT (Column != NULL);
@@ -170,8 +170,8 @@ ConMoveCursorForward (
}
}
-CHAR16 mBackupSpace[EFI_DEBUG_INPUS_BUFFER_SIZE];
-CHAR16 mInputBufferHistory[EFI_DEBUG_INPUS_BUFFER_SIZE];
+CHAR16 mBackupSpace[EFI_DEBUG_INPUS_BUFFER_SIZE];
+CHAR16 mInputBufferHistory[EFI_DEBUG_INPUS_BUFFER_SIZE];
/**
@@ -185,36 +185,36 @@ CHAR16 mInputBufferHistory[EFI_DEBUG_INPUS_BUFFER_SIZE];
VOID
EFIAPI
Input (
- IN CHAR16 *Prompt OPTIONAL,
- OUT CHAR16 *InStr,
- IN UINTN StrLength
+ IN CHAR16 *Prompt OPTIONAL,
+ OUT CHAR16 *InStr,
+ IN UINTN StrLength
)
{
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
- EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
- BOOLEAN Done;
- UINTN Column;
- UINTN Row;
- UINTN StartColumn;
- UINTN Update;
- UINTN Delete;
- UINTN Len;
- UINTN StrPos;
- UINTN Index;
- UINTN LineLength;
- UINTN TotalRow;
- UINTN SkipLength;
- UINTN OutputLength;
- UINTN TailRow;
- UINTN TailColumn;
- EFI_INPUT_KEY Key;
- BOOLEAN InsertMode;
- BOOLEAN NeedAdjust;
- UINTN SubIndex;
- CHAR16 *CommandStr;
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
+ EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
+ BOOLEAN Done;
+ UINTN Column;
+ UINTN Row;
+ UINTN StartColumn;
+ UINTN Update;
+ UINTN Delete;
+ UINTN Len;
+ UINTN StrPos;
+ UINTN Index;
+ UINTN LineLength;
+ UINTN TotalRow;
+ UINTN SkipLength;
+ UINTN OutputLength;
+ UINTN TailRow;
+ UINTN TailColumn;
+ EFI_INPUT_KEY Key;
+ BOOLEAN InsertMode;
+ BOOLEAN NeedAdjust;
+ UINTN SubIndex;
+ CHAR16 *CommandStr;
ConOut = gST->ConOut;
- ConIn = gST->ConIn;
+ ConIn = gST->ConIn;
ASSERT (ConOut != NULL);
ASSERT (ConIn != NULL);
@@ -223,23 +223,25 @@ Input (
if (Prompt != NULL) {
ConOut->OutputString (ConOut, Prompt);
}
+
//
// Read a line from the console
//
- Len = 0;
- StrPos = 0;
- OutputLength = 0;
- Update = 0;
- Delete = 0;
- InsertMode = TRUE;
- NeedAdjust = FALSE;
+ Len = 0;
+ StrPos = 0;
+ OutputLength = 0;
+ Update = 0;
+ Delete = 0;
+ InsertMode = TRUE;
+ NeedAdjust = FALSE;
//
// If buffer is not large enough to hold a CHAR16, do nothing.
//
if (StrLength < 1) {
- return ;
+ return;
}
+
//
// Get the screen setting and the current cursor location
//
@@ -248,7 +250,7 @@ Input (
Row = ConOut->Mode->CursorRow;
ConOut->QueryMode (ConOut, ConOut->Mode->Mode, &LineLength, &TotalRow);
if (LineLength == 0) {
- return ;
+ return;
}
SetMem (InStr, StrLength * sizeof (CHAR16), 0);
@@ -261,191 +263,200 @@ Input (
ConIn->ReadKeyStroke (ConIn, &Key);
switch (Key.UnicodeChar) {
- case CHAR_CARRIAGE_RETURN:
- //
- // All done, print a newline at the end of the string
- //
- TailRow = Row + (Len - StrPos + Column) / LineLength;
- TailColumn = (Len - StrPos + Column) % LineLength;
- Done = TRUE;
- break;
-
- case CHAR_BACKSPACE:
- if (StrPos != 0) {
- //
- // If not move back beyond string beginning, move all characters behind
- // the current position one character forward
+ case CHAR_CARRIAGE_RETURN:
//
- StrPos -= 1;
- Update = StrPos;
- Delete = 1;
- CopyMem (InStr + StrPos, InStr + StrPos + 1, sizeof (CHAR16) * (Len - StrPos));
-
+ // All done, print a newline at the end of the string
//
- // Adjust the current column and row
- //
- ConMoveCursorBackward (LineLength, &Column, &Row);
-
- NeedAdjust = TRUE;
- }
- break;
-
- default:
- if (Key.UnicodeChar >= ' ') {
- //
- // If we are at the buffer's end, drop the key
- //
- if (Len == StrLength - 1 && (InsertMode || StrPos == Len)) {
- break;
- }
- //
- // If in insert mode, move all characters behind the current position
- // one character backward to make space for this character. Then store
- // the character.
- //
- if (InsertMode) {
- for (Index = Len; Index > StrPos; Index -= 1) {
- InStr[Index] = InStr[Index - 1];
- }
- }
-
- InStr[StrPos] = Key.UnicodeChar;
- Update = StrPos;
-
- StrPos += 1;
- OutputLength = 1;
- }
- break;
+ TailRow = Row + (Len - StrPos + Column) / LineLength;
+ TailColumn = (Len - StrPos + Column) % LineLength;
+ Done = TRUE;
+ break;
- case 0:
- switch (Key.ScanCode) {
- case SCAN_DELETE:
- //
- // Move characters behind current position one character forward
- //
- if (Len != 0) {
+ case CHAR_BACKSPACE:
+ if (StrPos != 0) {
+ //
+ // If not move back beyond string beginning, move all characters behind
+ // the current position one character forward
+ //
+ StrPos -= 1;
Update = StrPos;
Delete = 1;
CopyMem (InStr + StrPos, InStr + StrPos + 1, sizeof (CHAR16) * (Len - StrPos));
- NeedAdjust = TRUE;
- }
- break;
-
- case SCAN_LEFT:
- //
- // Adjust current cursor position
- //
- if (StrPos != 0) {
- StrPos -= 1;
+ //
+ // Adjust the current column and row
+ //
ConMoveCursorBackward (LineLength, &Column, &Row);
- }
- break;
- case SCAN_RIGHT:
- //
- // Adjust current cursor position
- //
- if (StrPos < Len) {
- StrPos += 1;
- ConMoveCursorForward (LineLength, TotalRow, &Column, &Row);
+ NeedAdjust = TRUE;
}
- break;
- case SCAN_HOME:
- //
- // Move current cursor position to the beginning of the command line
- //
- Row -= (StrPos + StartColumn) / LineLength;
- Column = StartColumn;
- StrPos = 0;
break;
- case SCAN_END:
- //
- // Move current cursor position to the end of the command line
- //
- TailRow = Row + (Len - StrPos + Column) / LineLength;
- TailColumn = (Len - StrPos + Column) % LineLength;
- Row = TailRow;
- Column = TailColumn;
- StrPos = Len;
- break;
+ default:
+ if (Key.UnicodeChar >= ' ') {
+ //
+ // If we are at the buffer's end, drop the key
+ //
+ if ((Len == StrLength - 1) && (InsertMode || (StrPos == Len))) {
+ break;
+ }
- case SCAN_ESC:
- //
- // Prepare to clear the current command line
- //
- InStr[0] = 0;
- Update = 0;
- Delete = Len;
- Row -= (StrPos + StartColumn) / LineLength;
- Column = StartColumn;
- OutputLength = 0;
-
- NeedAdjust = TRUE;
- break;
+ //
+ // If in insert mode, move all characters behind the current position
+ // one character backward to make space for this character. Then store
+ // the character.
+ //
+ if (InsertMode) {
+ for (Index = Len; Index > StrPos; Index -= 1) {
+ InStr[Index] = InStr[Index - 1];
+ }
+ }
- case SCAN_INSERT:
- //
- // Toggle the SEnvInsertMode flag
- //
- InsertMode = (BOOLEAN)!InsertMode;
- break;
+ InStr[StrPos] = Key.UnicodeChar;
+ Update = StrPos;
- case SCAN_UP:
- case SCAN_DOWN:
- //
- // show history
- //
- CopyMem (InStr, mInputBufferHistory, StrLength * sizeof(CHAR16));
- StrPos = StrLen (mInputBufferHistory);
- Update = 0;
- Delete = 0;
- OutputLength = 0;
-
- TailRow = Row + (StrPos + StartColumn) / LineLength;
- TailColumn = (StrPos + StartColumn) % LineLength;
- Row = TailRow;
- Column = TailColumn;
- NeedAdjust = FALSE;
-
- ConOut->SetCursorPosition (ConOut, StartColumn, Row);
- for (SubIndex = 0; SubIndex < EFI_DEBUG_INPUS_BUFFER_SIZE - (StartColumn - EFI_DEBUG_PROMPT_COLUMN); SubIndex++) {
- mBackupSpace[SubIndex] = L' ';
+ StrPos += 1;
+ OutputLength = 1;
}
- EDBPrint (mBackupSpace);
- SetMem (mBackupSpace, (EFI_DEBUG_INPUS_BUFFER_SIZE - (StartColumn - EFI_DEBUG_PROMPT_COLUMN)) * sizeof(CHAR16), 0);
-
- ConOut->SetCursorPosition (ConOut, StartColumn, Row);
- Len = StrPos;
break;
- case SCAN_F1:
- case SCAN_F2:
- case SCAN_F3:
- case SCAN_F4:
- case SCAN_F5:
- case SCAN_F6:
- case SCAN_F7:
- case SCAN_F8:
- case SCAN_F9:
- case SCAN_F10:
- case SCAN_F11:
- case SCAN_F12:
- CommandStr = GetCommandNameByKey (Key);
- if (CommandStr != NULL) {
- StrnCpyS (InStr, StrLength, CommandStr, StrLength - 1);
- return ;
+ case 0:
+ switch (Key.ScanCode) {
+ case SCAN_DELETE:
+ //
+ // Move characters behind current position one character forward
+ //
+ if (Len != 0) {
+ Update = StrPos;
+ Delete = 1;
+ CopyMem (InStr + StrPos, InStr + StrPos + 1, sizeof (CHAR16) * (Len - StrPos));
+
+ NeedAdjust = TRUE;
+ }
+
+ break;
+
+ case SCAN_LEFT:
+ //
+ // Adjust current cursor position
+ //
+ if (StrPos != 0) {
+ StrPos -= 1;
+ ConMoveCursorBackward (LineLength, &Column, &Row);
+ }
+
+ break;
+
+ case SCAN_RIGHT:
+ //
+ // Adjust current cursor position
+ //
+ if (StrPos < Len) {
+ StrPos += 1;
+ ConMoveCursorForward (LineLength, TotalRow, &Column, &Row);
+ }
+
+ break;
+
+ case SCAN_HOME:
+ //
+ // Move current cursor position to the beginning of the command line
+ //
+ Row -= (StrPos + StartColumn) / LineLength;
+ Column = StartColumn;
+ StrPos = 0;
+ break;
+
+ case SCAN_END:
+ //
+ // Move current cursor position to the end of the command line
+ //
+ TailRow = Row + (Len - StrPos + Column) / LineLength;
+ TailColumn = (Len - StrPos + Column) % LineLength;
+ Row = TailRow;
+ Column = TailColumn;
+ StrPos = Len;
+ break;
+
+ case SCAN_ESC:
+ //
+ // Prepare to clear the current command line
+ //
+ InStr[0] = 0;
+ Update = 0;
+ Delete = Len;
+ Row -= (StrPos + StartColumn) / LineLength;
+ Column = StartColumn;
+ OutputLength = 0;
+
+ NeedAdjust = TRUE;
+ break;
+
+ case SCAN_INSERT:
+ //
+ // Toggle the SEnvInsertMode flag
+ //
+ InsertMode = (BOOLEAN) !InsertMode;
+ break;
+
+ case SCAN_UP:
+ case SCAN_DOWN:
+ //
+ // show history
+ //
+ CopyMem (InStr, mInputBufferHistory, StrLength * sizeof (CHAR16));
+ StrPos = StrLen (mInputBufferHistory);
+ Update = 0;
+ Delete = 0;
+ OutputLength = 0;
+
+ TailRow = Row + (StrPos + StartColumn) / LineLength;
+ TailColumn = (StrPos + StartColumn) % LineLength;
+ Row = TailRow;
+ Column = TailColumn;
+ NeedAdjust = FALSE;
+
+ ConOut->SetCursorPosition (ConOut, StartColumn, Row);
+ for (SubIndex = 0; SubIndex < EFI_DEBUG_INPUS_BUFFER_SIZE - (StartColumn - EFI_DEBUG_PROMPT_COLUMN); SubIndex++) {
+ mBackupSpace[SubIndex] = L' ';
+ }
+
+ EDBPrint (mBackupSpace);
+ SetMem (mBackupSpace, (EFI_DEBUG_INPUS_BUFFER_SIZE - (StartColumn - EFI_DEBUG_PROMPT_COLUMN)) * sizeof (CHAR16), 0);
+
+ ConOut->SetCursorPosition (ConOut, StartColumn, Row);
+ Len = StrPos;
+
+ break;
+
+ case SCAN_F1:
+ case SCAN_F2:
+ case SCAN_F3:
+ case SCAN_F4:
+ case SCAN_F5:
+ case SCAN_F6:
+ case SCAN_F7:
+ case SCAN_F8:
+ case SCAN_F9:
+ case SCAN_F10:
+ case SCAN_F11:
+ case SCAN_F12:
+ CommandStr = GetCommandNameByKey (Key);
+ if (CommandStr != NULL) {
+ StrnCpyS (InStr, StrLength, CommandStr, StrLength - 1);
+ return;
+ }
+
+ break;
}
- break;
- }
}
if (Done) {
break;
}
+
//
// If we need to update the output do so now
//
@@ -455,11 +466,13 @@ Input (
for (SubIndex = 0; SubIndex < EFI_DEBUG_INPUS_BUFFER_SIZE - (Column - EFI_DEBUG_PROMPT_COLUMN); SubIndex++) {
mBackupSpace[SubIndex] = L' ';
}
+
EDBPrint (mBackupSpace);
- SetMem (mBackupSpace, (EFI_DEBUG_INPUS_BUFFER_SIZE - (Column - EFI_DEBUG_PROMPT_COLUMN)) * sizeof(CHAR16), 0);
+ SetMem (mBackupSpace, (EFI_DEBUG_INPUS_BUFFER_SIZE - (Column - EFI_DEBUG_PROMPT_COLUMN)) * sizeof (CHAR16), 0);
ConOut->SetCursorPosition (ConOut, Column, Row);
NeedAdjust = FALSE;
}
+
EDBPrint (InStr + Update);
Len = StrLen (InStr);
@@ -471,19 +484,19 @@ Input (
StrPos = Len;
}
- Update = (UINTN) -1;
+ Update = (UINTN)-1;
//
// After using print to reflect newly updates, if we're not using
// BACKSPACE and DELETE, we need to move the cursor position forward,
// so adjust row and column here.
//
- if (Key.UnicodeChar != CHAR_BACKSPACE && !(Key.UnicodeChar == 0 && Key.ScanCode == SCAN_DELETE)) {
+ if ((Key.UnicodeChar != CHAR_BACKSPACE) && !((Key.UnicodeChar == 0) && (Key.ScanCode == SCAN_DELETE))) {
//
// Calulate row and column of the tail of current string
//
- TailRow = Row + (Len - StrPos + Column + OutputLength) / LineLength;
- TailColumn = (Len - StrPos + Column + OutputLength) % LineLength;
+ TailRow = Row + (Len - StrPos + Column + OutputLength) / LineLength;
+ TailColumn = (Len - StrPos + Column + OutputLength) % LineLength;
//
// If the tail of string reaches screen end, screen rolls up, so if
@@ -492,9 +505,10 @@ Input (
// (if we are recalling commands using UPPER and DOWN key, and if the
// old command is too long to fit the screen, TailColumn must be 79.
//
- if (TailColumn == 0 && TailRow >= TotalRow && (UINTN) Row != TailRow) {
+ if ((TailColumn == 0) && (TailRow >= TotalRow) && ((UINTN)Row != TailRow)) {
Row--;
}
+
//
// Calculate the cursor position after current operation. If cursor
// reaches line end, update both row and column, otherwise, only
@@ -504,7 +518,7 @@ Input (
SkipLength = OutputLength - (LineLength - Column);
Row += SkipLength / LineLength + 1;
- if ((UINTN) Row > TotalRow - 1) {
+ if ((UINTN)Row > TotalRow - 1) {
Row = TotalRow - 1;
}
@@ -516,18 +530,19 @@ Input (
Delete = 0;
}
+
//
// Set the cursor position for this key
//
SetCursorPosition (ConOut, Column, Row, LineLength, TotalRow, InStr, StrPos, Len);
} while (!Done);
- CopyMem (mInputBufferHistory, InStr, StrLength * sizeof(CHAR16));
+ CopyMem (mInputBufferHistory, InStr, StrLength * sizeof (CHAR16));
//
// Return the data to the caller
//
- return ;
+ return;
}
/**
@@ -546,14 +561,14 @@ Input (
VOID
EFIAPI
SetCursorPosition (
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut,
- IN UINTN Column,
- IN INTN Row,
- IN UINTN LineLength,
- IN UINTN TotalRow,
- IN CHAR16 *Str,
- IN UINTN StrPos,
- IN UINTN Len
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut,
+ IN UINTN Column,
+ IN INTN Row,
+ IN UINTN LineLength,
+ IN UINTN TotalRow,
+ IN CHAR16 *Str,
+ IN UINTN StrPos,
+ IN UINTN Len
)
{
CHAR16 Backup;
@@ -564,12 +579,12 @@ SetCursorPosition (
Backup = 0;
if (Row >= 0) {
ConOut->SetCursorPosition (ConOut, Column, Row);
- return ;
+ return;
}
if (Len - StrPos > Column * Row) {
- Backup = *(Str + StrPos + Column * Row);
- *(Str + StrPos + Column * Row) = 0;
+ Backup = *(Str + StrPos + Column * Row);
+ *(Str + StrPos + Column * Row) = 0;
}
EDBPrint (L"%s", Str + StrPos);
@@ -591,9 +606,9 @@ SetPageBreak (
VOID
)
{
- EFI_INPUT_KEY Key;
- CHAR16 Str[3];
- BOOLEAN OmitPrint;
+ EFI_INPUT_KEY Key;
+ CHAR16 Str[3];
+ BOOLEAN OmitPrint;
//
// Check
@@ -608,10 +623,10 @@ SetPageBreak (
//
// Wait for user input
//
- Str[0] = ' ';
- Str[1] = 0;
- Str[2] = 0;
- for (;;) {
+ Str[0] = ' ';
+ Str[1] = 0;
+ Str[2] = 0;
+ for ( ; ;) {
WaitForSingleEvent (gST->ConIn->WaitForKey, 0);
gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
@@ -632,6 +647,7 @@ SetPageBreak (
gST->ConOut->OutputString (gST->ConOut, L"\r\n");
break;
}
+
//
// Echo input
//
@@ -669,9 +685,9 @@ EDBPrint (
...
)
{
- UINTN Return;
- VA_LIST Marker;
- CHAR16 Buffer[EFI_DEBUG_MAX_PRINT_BUFFER];
+ UINTN Return;
+ VA_LIST Marker;
+ CHAR16 Buffer[EFI_DEBUG_MAX_PRINT_BUFFER];
VA_START (Marker, Format);
Return = UnicodeVSPrint (Buffer, sizeof (Buffer), Format, Marker);
@@ -707,8 +723,8 @@ EDBSPrint (
...
)
{
- UINTN Return;
- VA_LIST Marker;
+ UINTN Return;
+ VA_LIST Marker;
ASSERT (BufferSize > 0);
@@ -741,13 +757,13 @@ EDBSPrintWithOffset (
...
)
{
- UINTN Return;
- VA_LIST Marker;
+ UINTN Return;
+ VA_LIST Marker;
- ASSERT (BufferSize - (Offset * sizeof(CHAR16)) > 0);
+ ASSERT (BufferSize - (Offset * sizeof (CHAR16)) > 0);
VA_START (Marker, Format);
- Return = UnicodeVSPrint (Buffer + Offset, (UINTN)(BufferSize - (Offset * sizeof(CHAR16))), Format, Marker);
+ Return = UnicodeVSPrint (Buffer + Offset, (UINTN)(BufferSize - (Offset * sizeof (CHAR16))), Format, Marker);
VA_END (Marker);
return Return;
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.c b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.c
index 90a9b9f..834c90e 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.c
@@ -48,7 +48,7 @@ EdbLoadSymbolSingleEntry (
//
// Print Debug info
//
- if (sizeof (UINTN) == sizeof(UINT64)) {
+ if (sizeof (UINTN) == sizeof (UINT64)) {
DEBUG ((DEBUG_ERROR, " Symbol: %a, Address: 0x%016lx (%d)\n", Name, (UINT64)Address, (UINTN)Type));
} else {
DEBUG ((DEBUG_ERROR, " Symbol: %a, Address: 0x%08x (%d)\n", Name, Address, (UINTN)Type));
@@ -57,11 +57,12 @@ EdbLoadSymbolSingleEntry (
//
// Fill the entry - name, RVA, type
//
- AsciiStrnCpyS (Entry->Name, sizeof(Entry->Name), Name, sizeof(Entry->Name) - 1);
+ AsciiStrnCpyS (Entry->Name, sizeof (Entry->Name), Name, sizeof (Entry->Name) - 1);
if (ObjName != NULL) {
- AsciiStrnCpyS (Entry->ObjName, sizeof(Entry->ObjName), ObjName, sizeof(Entry->ObjName) - 1);
+ AsciiStrnCpyS (Entry->ObjName, sizeof (Entry->ObjName), ObjName, sizeof (Entry->ObjName) - 1);
}
- Entry->Rva = Address % EFI_DEBUGGER_DEFAULT_LINK_IMAGEBASE;
+
+ Entry->Rva = Address % EFI_DEBUGGER_DEFAULT_LINK_IMAGEBASE;
Entry->Type = Type;
//
@@ -167,34 +168,33 @@ EdbLoadSymbolEntryByIec (
IN VOID *Buffer
)
{
- CHAR8 *LineBuffer;
- CHAR8 *FieldBuffer;
- EDB_EBC_MAP_PARSE_STATE MapParseState;
- EDB_EBC_SYMBOL_PARSE_STATE SymbolParseState;
- CHAR8 *Name;
- CHAR8 *ObjName;
- UINTN Address;
- EFI_DEBUGGER_SYMBOL_TYPE Type;
-
+ CHAR8 *LineBuffer;
+ CHAR8 *FieldBuffer;
+ EDB_EBC_MAP_PARSE_STATE MapParseState;
+ EDB_EBC_SYMBOL_PARSE_STATE SymbolParseState;
+ CHAR8 *Name;
+ CHAR8 *ObjName;
+ UINTN Address;
+ EFI_DEBUGGER_SYMBOL_TYPE Type;
//
// Begin to parse the Buffer
//
- LineBuffer = AsciiStrGetNewTokenLine (Buffer, "\n\r");
+ LineBuffer = AsciiStrGetNewTokenLine (Buffer, "\n\r");
MapParseState = EdbEbcMapParseStateUninitialized;
//
// Check each line
//
while (LineBuffer != NULL) {
- FieldBuffer = AsciiStrGetNewTokenField (LineBuffer, " ");
+ FieldBuffer = AsciiStrGetNewTokenField (LineBuffer, " ");
SymbolParseState = EdbEbcSymbolParseStateUninitialized;
//
// Init entry value
//
- Name = NULL;
+ Name = NULL;
ObjName = NULL;
Address = 0;
- Type = EfiDebuggerSymbolTypeMax;
+ Type = EfiDebuggerSymbolTypeMax;
//
// Check each field
//
@@ -203,6 +203,7 @@ EdbLoadSymbolEntryByIec (
FieldBuffer = AsciiStrGetNextTokenField (" ");
continue;
}
+
//
// check "Address"
//
@@ -210,6 +211,7 @@ EdbLoadSymbolEntryByIec (
MapParseState = EdbEbcMapParseStateSymbolStart;
break;
}
+
//
// check "Static"
//
@@ -224,6 +226,7 @@ EdbLoadSymbolEntryByIec (
//
break;
}
+
if (AsciiStrCmp (FieldBuffer, "entry") == 0) {
//
// Skip entry point
@@ -235,126 +238,132 @@ EdbLoadSymbolEntryByIec (
// Now we start to parse this line for Name, Address, and Object
//
switch (SymbolParseState) {
- case EdbEbcSymbolParseStateUninitialized:
- //
- // Get the Address
- //
- SymbolParseState = EdbEbcSymbolParseStateReadyForName;
- break;
- case EdbEbcSymbolParseStateReadyForName:
- //
- // Get the Name
- //
- if (AsciiStrnCmp (FieldBuffer, "___safe_se_handler", AsciiStrLen ("___safe_se_handler")) == 0) {
+ case EdbEbcSymbolParseStateUninitialized:
//
- // skip SeHandler
+ // Get the Address
//
- MapParseState = EdbEbcMapParseStateSeHandlerSymbol;
- goto ExitFieldParse;
- } else if (AsciiStrnCmp (FieldBuffer, "varbss_init", AsciiStrLen ("varbss_init")) == 0) {
+ SymbolParseState = EdbEbcSymbolParseStateReadyForName;
+ break;
+ case EdbEbcSymbolParseStateReadyForName:
//
- // check VarbssInit
+ // Get the Name
//
- MapParseState = EdbEbcMapParseStateVarbssInitSymbol;
-// goto ExitFieldParse;
- Name = FieldBuffer;
- SymbolParseState = EdbEbcSymbolParseStateReadyForRVA;
- } else if (AsciiStrnCmp (FieldBuffer, "Crt", AsciiStrLen ("Crt")) == 0) {
+ if (AsciiStrnCmp (FieldBuffer, "___safe_se_handler", AsciiStrLen ("___safe_se_handler")) == 0) {
+ //
+ // skip SeHandler
+ //
+ MapParseState = EdbEbcMapParseStateSeHandlerSymbol;
+ goto ExitFieldParse;
+ } else if (AsciiStrnCmp (FieldBuffer, "varbss_init", AsciiStrLen ("varbss_init")) == 0) {
+ //
+ // check VarbssInit
+ //
+ MapParseState = EdbEbcMapParseStateVarbssInitSymbol;
+ // goto ExitFieldParse;
+ Name = FieldBuffer;
+ SymbolParseState = EdbEbcSymbolParseStateReadyForRVA;
+ } else if (AsciiStrnCmp (FieldBuffer, "Crt", AsciiStrLen ("Crt")) == 0) {
+ //
+ // check Crt
+ //
+ MapParseState = EdbEbcMapParseStateCrtSymbol;
+ // goto ExitFieldParse;
+ Name = FieldBuffer;
+ SymbolParseState = EdbEbcSymbolParseStateReadyForRVA;
+ } else {
+ //
+ // Now, it is normal function
+ //
+ switch (MapParseState) {
+ case EdbEbcMapParseStateSeHandlerSymbol:
+ MapParseState = EdbEbcMapParseStateFunctionSymbol;
+ break;
+ case EdbEbcMapParseStateCrtSymbol:
+ MapParseState = EdbEbcMapParseStateVariableSymbol;
+ break;
+ case EdbEbcMapParseStateFunctionSymbol:
+ case EdbEbcMapParseStateVariableSymbol:
+ case EdbEbcMapParseStateStaticFunctionSymbol:
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
+ }
+
+ Name = FieldBuffer;
+ SymbolParseState = EdbEbcSymbolParseStateReadyForRVA;
+ }
+
+ break;
+ case EdbEbcSymbolParseStateReadyForRVA:
//
- // check Crt
+ // Get the RVA
//
- MapParseState = EdbEbcMapParseStateCrtSymbol;
-// goto ExitFieldParse;
- Name = FieldBuffer;
- SymbolParseState = EdbEbcSymbolParseStateReadyForRVA;
- } else {
+ Address = AsciiXtoi (FieldBuffer);
+ SymbolParseState = EdbEbcSymbolParseStateReadyForType;
+ break;
+ case EdbEbcSymbolParseStateReadyForType:
//
- // Now, it is normal function
+ // Get the Type. This is optional, only for "f".
//
- switch (MapParseState) {
- case EdbEbcMapParseStateSeHandlerSymbol:
- MapParseState = EdbEbcMapParseStateFunctionSymbol;
- break;
- case EdbEbcMapParseStateCrtSymbol:
- MapParseState = EdbEbcMapParseStateVariableSymbol;
- break;
- case EdbEbcMapParseStateFunctionSymbol:
- case EdbEbcMapParseStateVariableSymbol:
- case EdbEbcMapParseStateStaticFunctionSymbol:
- break;
- default:
- ASSERT (FALSE);
- break;
- }
- Name = FieldBuffer;
- SymbolParseState = EdbEbcSymbolParseStateReadyForRVA;
- }
- break;
- case EdbEbcSymbolParseStateReadyForRVA:
- //
- // Get the RVA
- //
- Address = AsciiXtoi (FieldBuffer);
- SymbolParseState = EdbEbcSymbolParseStateReadyForType;
- break;
- case EdbEbcSymbolParseStateReadyForType:
- //
- // Get the Type. This is optional, only for "f".
- //
- if (AsciiStrCmp (FieldBuffer, "f") == 0) {
- SymbolParseState = EdbEbcSymbolParseStateReadyForObject;
- switch (MapParseState) {
- case EdbEbcMapParseStateFunctionSymbol:
- case EdbEbcMapParseStateVarbssInitSymbol:
- Type = EfiDebuggerSymbolFunction;
- break;
- case EdbEbcMapParseStateStaticFunctionSymbol:
- Type = EfiDebuggerSymbolStaticFunction;
- break;
- default:
- ASSERT (FALSE);
+ if (AsciiStrCmp (FieldBuffer, "f") == 0) {
+ SymbolParseState = EdbEbcSymbolParseStateReadyForObject;
+ switch (MapParseState) {
+ case EdbEbcMapParseStateFunctionSymbol:
+ case EdbEbcMapParseStateVarbssInitSymbol:
+ Type = EfiDebuggerSymbolFunction;
+ break;
+ case EdbEbcMapParseStateStaticFunctionSymbol:
+ Type = EfiDebuggerSymbolStaticFunction;
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
+ }
+
break;
}
- break;
- }
+
//
// Else it should be Object.
// let it bypass here
//
- case EdbEbcSymbolParseStateReadyForObject:
- switch (Type) {
- case EfiDebuggerSymbolTypeMax:
- switch (MapParseState) {
- case EdbEbcMapParseStateVariableSymbol:
- case EdbEbcMapParseStateCrtSymbol:
- Type = EfiDebuggerSymbolGlobalVariable;
- break;
- case EdbEbcMapParseStateSeHandlerSymbol:
- //
- // do nothing here
- //
- break;
- default:
- ASSERT (FALSE);
- break;
+ case EdbEbcSymbolParseStateReadyForObject:
+ switch (Type) {
+ case EfiDebuggerSymbolTypeMax:
+ switch (MapParseState) {
+ case EdbEbcMapParseStateVariableSymbol:
+ case EdbEbcMapParseStateCrtSymbol:
+ Type = EfiDebuggerSymbolGlobalVariable;
+ break;
+ case EdbEbcMapParseStateSeHandlerSymbol:
+ //
+ // do nothing here
+ //
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
+ }
+
+ break;
+ case EfiDebuggerSymbolFunction:
+ case EfiDebuggerSymbolStaticFunction:
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
}
- break;
- case EfiDebuggerSymbolFunction:
- case EfiDebuggerSymbolStaticFunction:
+
+ //
+ // Get the Object
+ //
+ ObjName = FieldBuffer;
+ SymbolParseState = EdbEbcSymbolParseStateUninitialized;
break;
default:
ASSERT (FALSE);
break;
- }
- //
- // Get the Object
- //
- ObjName = FieldBuffer;
- SymbolParseState = EdbEbcSymbolParseStateUninitialized;
- break;
- default:
- ASSERT (FALSE);
- break;
}
//
@@ -423,12 +432,12 @@ EdbLoadSymbolEntry (
**/
EFI_DEBUGGER_SYMBOL_OBJECT *
EdbFindSymbolFile (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- IN OUT UINTN *Index OPTIONAL
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ IN OUT UINTN *Index OPTIONAL
)
{
- UINTN ObjectIndex;
+ UINTN ObjectIndex;
//
// Check each Object
@@ -441,6 +450,7 @@ EdbFindSymbolFile (
if (Index != NULL) {
*Index = ObjectIndex;
}
+
return &DebuggerPrivate->DebuggerSymbolContext.Object[ObjectIndex];
}
}
@@ -465,22 +475,22 @@ EdbFindSymbolFile (
**/
UINTN
EbdFindSymbolAddress (
- IN UINTN Address,
- IN EDB_MATCH_SYMBOL_TYPE Type,
- OUT EFI_DEBUGGER_SYMBOL_OBJECT **RetObject,
- OUT EFI_DEBUGGER_SYMBOL_ENTRY **RetEntry
+ IN UINTN Address,
+ IN EDB_MATCH_SYMBOL_TYPE Type,
+ OUT EFI_DEBUGGER_SYMBOL_OBJECT **RetObject,
+ OUT EFI_DEBUGGER_SYMBOL_ENTRY **RetEntry
)
{
- UINTN Index;
- UINTN SubIndex;
- UINTN CandidateLowerAddress;
- UINTN CandidateUpperAddress;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
- EFI_DEBUGGER_SYMBOL_ENTRY *LowEntry;
- EFI_DEBUGGER_SYMBOL_ENTRY *UpperEntry;
- EFI_DEBUGGER_SYMBOL_OBJECT *LowObject;
- EFI_DEBUGGER_SYMBOL_OBJECT *UpperObject;
+ UINTN Index;
+ UINTN SubIndex;
+ UINTN CandidateLowerAddress;
+ UINTN CandidateUpperAddress;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ EFI_DEBUGGER_SYMBOL_ENTRY *Entry;
+ EFI_DEBUGGER_SYMBOL_ENTRY *LowEntry;
+ EFI_DEBUGGER_SYMBOL_ENTRY *UpperEntry;
+ EFI_DEBUGGER_SYMBOL_OBJECT *LowObject;
+ EFI_DEBUGGER_SYMBOL_OBJECT *UpperObject;
if ((Type < 0) || (Type >= EdbMatchSymbolTypeMax)) {
return 0;
@@ -491,10 +501,10 @@ EbdFindSymbolAddress (
//
CandidateLowerAddress = 0;
CandidateUpperAddress = (UINTN)-1;
- LowEntry = NULL;
- UpperEntry = NULL;
- LowObject = NULL;
- UpperObject = NULL;
+ LowEntry = NULL;
+ UpperEntry = NULL;
+ LowObject = NULL;
+ UpperObject = NULL;
//
// Go through each object
@@ -504,6 +514,7 @@ EbdFindSymbolAddress (
if (Object->EntryCount == 0) {
continue;
}
+
//
// Go through each entry
//
@@ -519,8 +530,8 @@ EbdFindSymbolAddress (
//
if (CandidateLowerAddress < Entry->Rva + Object->BaseAddress) {
CandidateLowerAddress = Entry->Rva + Object->BaseAddress;
- LowEntry = Entry;
- LowObject = Object;
+ LowEntry = Entry;
+ LowObject = Object;
}
} else {
//
@@ -528,16 +539,18 @@ EbdFindSymbolAddress (
//
if (CandidateUpperAddress > Entry->Rva + Object->BaseAddress) {
CandidateUpperAddress = Entry->Rva + Object->BaseAddress;
- UpperEntry = Entry;
- UpperObject = Object;
+ UpperEntry = Entry;
+ UpperObject = Object;
}
}
+
continue;
}
+
//
// address match, return directly
//
- *RetEntry = Entry;
+ *RetEntry = Entry;
*RetObject = Object;
return Address;
}
@@ -553,11 +566,12 @@ EbdFindSymbolAddress (
//
if (((Type == EdbMatchSymbolTypeNearestAddress) &&
((CandidateUpperAddress - Address) > (Address - CandidateLowerAddress))) ||
- (Type == EdbMatchSymbolTypeLowerAddress)) {
+ (Type == EdbMatchSymbolTypeLowerAddress))
+ {
//
// return nearest lower address
//
- *RetEntry = LowEntry;
+ *RetEntry = LowEntry;
*RetObject = LowObject;
return CandidateLowerAddress;
}
@@ -569,11 +583,12 @@ EbdFindSymbolAddress (
//
if (((Type == EdbMatchSymbolTypeNearestAddress) &&
((CandidateUpperAddress - Address) < (Address - CandidateLowerAddress))) ||
- (Type == EdbMatchSymbolTypeUpperAddress)) {
+ (Type == EdbMatchSymbolTypeUpperAddress))
+ {
//
// return nearest upper address
//
- *RetEntry = UpperEntry;
+ *RetEntry = UpperEntry;
*RetObject = UpperObject;
return CandidateUpperAddress;
}
@@ -597,17 +612,17 @@ EbdFindSymbolAddress (
**/
EFI_STATUS
EdbUnloadSymbol (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName
)
{
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- UINTN ObjectIndex;
- UINTN Index;
- EFI_DEBUGGER_SYMBOL_ENTRY *OldEntry;
- UINTN OldEntryCount;
- UINTN MaxEntryCount;
- VOID **OldSourceBuffer;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN ObjectIndex;
+ UINTN Index;
+ EFI_DEBUGGER_SYMBOL_ENTRY *OldEntry;
+ UINTN OldEntryCount;
+ UINTN MaxEntryCount;
+ VOID **OldSourceBuffer;
//
// Find Symbol
@@ -621,33 +636,34 @@ EdbUnloadSymbol (
//
// Record old data
//
- Object = DebuggerPrivate->DebuggerSymbolContext.Object;
- OldEntry = Object->Entry;
+ Object = DebuggerPrivate->DebuggerSymbolContext.Object;
+ OldEntry = Object->Entry;
OldSourceBuffer = Object->SourceBuffer;
- MaxEntryCount = Object->MaxEntryCount;
- OldEntryCount = Object->EntryCount;
+ MaxEntryCount = Object->MaxEntryCount;
+ OldEntryCount = Object->EntryCount;
//
// Remove the matched Object
//
for (Index = ObjectIndex; Index < DebuggerPrivate->DebuggerSymbolContext.ObjectCount - 1; Index++) {
- CopyMem (&Object[Index], &Object[Index + 1], sizeof(EFI_DEBUGGER_SYMBOL_OBJECT));
+ CopyMem (&Object[Index], &Object[Index + 1], sizeof (EFI_DEBUGGER_SYMBOL_OBJECT));
}
- ZeroMem (&Object[Index], sizeof(Object[Index]));
+
+ ZeroMem (&Object[Index], sizeof (Object[Index]));
//
// Move old data to new place
//
- Object[Index].Entry = OldEntry;
- Object[Index].SourceBuffer = OldSourceBuffer;
+ Object[Index].Entry = OldEntry;
+ Object[Index].SourceBuffer = OldSourceBuffer;
Object[Index].MaxEntryCount = MaxEntryCount;
- DebuggerPrivate->DebuggerSymbolContext.ObjectCount --;
+ DebuggerPrivate->DebuggerSymbolContext.ObjectCount--;
//
// Clean old entry data
//
for (Index = 0; Index < OldEntryCount; Index++) {
- ZeroMem (&OldEntry[Index], sizeof(OldEntry[Index]));
+ ZeroMem (&OldEntry[Index], sizeof (OldEntry[Index]));
}
//
@@ -675,14 +691,14 @@ EdbUnloadSymbol (
**/
EFI_STATUS
EdbLoadSymbol (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- EFI_STATUS Status;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ EFI_STATUS Status;
//
// Check duplicated File
@@ -690,7 +706,7 @@ EdbLoadSymbol (
Object = EdbFindSymbolFile (DebuggerPrivate, FileName, NULL);
if (Object != NULL) {
Status = EdbUnloadSymbol (DebuggerPrivate, FileName);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Unload Duplicated Symbol File Error!\n"));
return Status;
}
@@ -712,7 +728,7 @@ EdbLoadSymbol (
//
// Init Object
//
- Object->EntryCount = 0;
+ Object->EntryCount = 0;
Object->MaxEntryCount = EFI_DEBUGGER_SYMBOL_ENTRY_MAX;
//
@@ -727,14 +743,18 @@ EdbLoadSymbol (
//
// Fill Object value
//
- StrnCpyS (Object->Name, sizeof(Object->Name) / sizeof(CHAR16),
- FileName, (sizeof(Object->Name) / sizeof(CHAR16)) - 1);
+ StrnCpyS (
+ Object->Name,
+ sizeof (Object->Name) / sizeof (CHAR16),
+ FileName,
+ (sizeof (Object->Name) / sizeof (CHAR16)) - 1
+ );
Object->BaseAddress = 0;
//
// Increase the object count
//
- DebuggerPrivate->DebuggerSymbolContext.ObjectCount ++;
+ DebuggerPrivate->DebuggerSymbolContext.ObjectCount++;
return EFI_SUCCESS;
}
@@ -751,25 +771,25 @@ EdbLoadSymbol (
**/
CHAR8 *
GetPdbPath (
- VOID *ImageBase
+ VOID *ImageBase
)
{
- CHAR8 *PdbPath;
- UINT32 DirCount;
- EFI_IMAGE_DOS_HEADER *DosHdr;
- EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
- EFI_IMAGE_OPTIONAL_HEADER32 *OptionalHdr32;
- EFI_IMAGE_OPTIONAL_HEADER64 *OptionalHdr64;
- EFI_IMAGE_DATA_DIRECTORY *DirectoryEntry;
- EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *DebugEntry;
- VOID *CodeViewEntryPointer;
+ CHAR8 *PdbPath;
+ UINT32 DirCount;
+ EFI_IMAGE_DOS_HEADER *DosHdr;
+ EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;
+ EFI_IMAGE_OPTIONAL_HEADER32 *OptionalHdr32;
+ EFI_IMAGE_OPTIONAL_HEADER64 *OptionalHdr64;
+ EFI_IMAGE_DATA_DIRECTORY *DirectoryEntry;
+ EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *DebugEntry;
+ VOID *CodeViewEntryPointer;
//
// Init value
//
- CodeViewEntryPointer = NULL;
- PdbPath = NULL;
- DosHdr = ImageBase;
+ CodeViewEntryPointer = NULL;
+ PdbPath = NULL;
+ DosHdr = ImageBase;
//
// Check magic
@@ -777,7 +797,8 @@ GetPdbPath (
if (DosHdr->e_magic != EFI_IMAGE_DOS_SIGNATURE) {
return NULL;
}
- NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *) ((UINT8 *) DosHdr + DosHdr->e_lfanew);
+
+ NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)((UINT8 *)DosHdr + DosHdr->e_lfanew);
//
// Check Machine, filter for EBC
//
@@ -793,39 +814,42 @@ GetPdbPath (
// EBC spec says PE32+, but implementation uses PE32. So check dynamically here.
//
if (NtHdr->Pe32.OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {
- OptionalHdr32 = (VOID *) &NtHdr->Pe32.OptionalHeader;
- DirectoryEntry = (EFI_IMAGE_DATA_DIRECTORY *) &(OptionalHdr32->DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]);
+ OptionalHdr32 = (VOID *)&NtHdr->Pe32.OptionalHeader;
+ DirectoryEntry = (EFI_IMAGE_DATA_DIRECTORY *)&(OptionalHdr32->DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]);
} else if (NtHdr->Pe32Plus.OptionalHeader.Magic == EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
- OptionalHdr64 = (VOID *) &NtHdr->Pe32Plus.OptionalHeader;
- DirectoryEntry = (EFI_IMAGE_DATA_DIRECTORY *) &(OptionalHdr64->DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]);
+ OptionalHdr64 = (VOID *)&NtHdr->Pe32Plus.OptionalHeader;
+ DirectoryEntry = (EFI_IMAGE_DATA_DIRECTORY *)&(OptionalHdr64->DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]);
} else {
return NULL;
}
+
if (DirectoryEntry->VirtualAddress == 0) {
return NULL;
}
+
//
// Go through DirectoryEntry
//
for (DirCount = 0;
(DirCount < DirectoryEntry->Size / sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY)) && CodeViewEntryPointer == NULL;
DirCount++
- ) {
- DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *) (DirectoryEntry->VirtualAddress + (UINTN) ImageBase + DirCount * sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY));
+ )
+ {
+ DebugEntry = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *)(DirectoryEntry->VirtualAddress + (UINTN)ImageBase + DirCount * sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY));
if (DebugEntry->Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {
//
// Match DebugEntry, only CODEVIEW_SIGNATURE_NB10 and CODEVIEW_SIGNATURE_RSDS are supported.
//
- CodeViewEntryPointer = (VOID *) ((UINTN) DebugEntry->RVA + (UINTN) ImageBase);
- switch (*(UINT32 *) CodeViewEntryPointer) {
- case CODEVIEW_SIGNATURE_NB10:
- PdbPath = (CHAR8 *) CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY);
- break;
- case CODEVIEW_SIGNATURE_RSDS:
- PdbPath = (CHAR8 *) CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY);
- break;
- default:
- break;
+ CodeViewEntryPointer = (VOID *)((UINTN)DebugEntry->RVA + (UINTN)ImageBase);
+ switch (*(UINT32 *)CodeViewEntryPointer) {
+ case CODEVIEW_SIGNATURE_NB10:
+ PdbPath = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY);
+ break;
+ case CODEVIEW_SIGNATURE_RSDS:
+ PdbPath = (CHAR8 *)CodeViewEntryPointer + sizeof (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY);
+ break;
+ default:
+ break;
}
}
}
@@ -853,10 +877,10 @@ MatchPdbAndMap (
IN CHAR16 *MapFileName
)
{
- UINTN PdbNameSize;
- UINTN MapNameSize;
- CHAR8 *PurePdbFileName;
- UINTN Index;
+ UINTN PdbNameSize;
+ UINTN MapNameSize;
+ CHAR8 *PurePdbFileName;
+ UINTN Index;
//
// remove dir name
@@ -867,6 +891,7 @@ MatchPdbAndMap (
PurePdbFileName = &PdbFileName[Index + 1];
}
}
+
PdbFileName = PurePdbFileName;
//
@@ -895,9 +920,9 @@ MatchPdbAndMap (
// BUGBUG: work-around start
//
typedef struct {
- EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable;
- volatile UINT32 UpdateStatus;
- UINT32 TableSize;
+ EFI_DEBUG_IMAGE_INFO *EfiDebugImageInfoTable;
+ volatile UINT32 UpdateStatus;
+ UINT32 TableSize;
} EFI_DEBUG_IMAGE_INFO_TABLE_HEADER_OLD;
EFI_DEBUG_IMAGE_INFO_TABLE_HEADER mDebugImageInfoTableHeader;
@@ -932,7 +957,7 @@ For compatibility consideration, we handle 2 cases:
**/
VOID
EdbFixDebugImageInfoTable (
- IN OUT EFI_DEBUG_IMAGE_INFO_TABLE_HEADER **DebugImageInfoTableHeader
+ IN OUT EFI_DEBUG_IMAGE_INFO_TABLE_HEADER **DebugImageInfoTableHeader
)
{
mDebugImageInfoTableHeader.EfiDebugImageInfoTable = ((EFI_DEBUG_IMAGE_INFO_TABLE_HEADER_OLD *)(*DebugImageInfoTableHeader))->EfiDebugImageInfoTable;
@@ -941,16 +966,17 @@ EdbFixDebugImageInfoTable (
if ((*DebugImageInfoTableHeader)->UpdateStatus > 3) {
*DebugImageInfoTableHeader = &mDebugImageInfoTableHeader;
- return ;
+ return;
}
if ((*DebugImageInfoTableHeader)->TableSize % (EFI_PAGE_SIZE / (sizeof (VOID *))) != 0) {
*DebugImageInfoTableHeader = &mDebugImageInfoTableHeader;
- return ;
+ return;
}
- return ;
+ return;
}
+
//
// BUGBUG: work-around end
//
@@ -969,20 +995,20 @@ EdbFixDebugImageInfoTable (
**/
EFI_STATUS
EdbPatchSymbolRVA (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType
)
{
- EFI_STATUS Status;
- UINTN ImageNumber;
- EFI_DEBUG_IMAGE_INFO *ImageTable;
- CHAR8 *PdbPath;
- VOID *ImageBase;
- VOID *CandidateImageBase;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
-
- if (SearchType < 0 || SearchType >= EdbEbcImageRvaSearchTypeMax) {
+ EFI_STATUS Status;
+ UINTN ImageNumber;
+ EFI_DEBUG_IMAGE_INFO *ImageTable;
+ CHAR8 *PdbPath;
+ VOID *ImageBase;
+ VOID *CandidateImageBase;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+
+ if ((SearchType < 0) || (SearchType >= EdbEbcImageRvaSearchTypeMax)) {
return EFI_INVALID_PARAMETER;
}
@@ -1000,13 +1026,14 @@ EdbPatchSymbolRVA (
if (mDebuggerPrivate.DebugImageInfoTableHeader == NULL) {
Status = EfiGetSystemConfigurationTable (
&gEfiDebugImageInfoTableGuid,
- (VOID **) &mDebuggerPrivate.DebugImageInfoTableHeader
+ (VOID **)&mDebuggerPrivate.DebugImageInfoTableHeader
);
if (EFI_ERROR (Status)) {
EDBPrint (L"DebugImageInfoTable not found!\n");
return Status;
}
}
+
DEBUG ((DEBUG_ERROR, "DebugImageInfoTableHeader: %x\n", mDebuggerPrivate.DebugImageInfoTableHeader));
//
@@ -1021,31 +1048,34 @@ EdbPatchSymbolRVA (
// Go through DebugImageInfoTable for each Image
//
CandidateImageBase = NULL;
- ImageTable = mDebuggerPrivate.DebugImageInfoTableHeader->EfiDebugImageInfoTable;
+ ImageTable = mDebuggerPrivate.DebugImageInfoTableHeader->EfiDebugImageInfoTable;
for (ImageNumber = 0; ImageNumber < mDebuggerPrivate.DebugImageInfoTableHeader->TableSize; ImageNumber++) {
if (ImageTable[ImageNumber].NormalImage == NULL) {
continue;
}
+
ImageBase = ImageTable[ImageNumber].NormalImage->LoadedImageProtocolInstance->ImageBase;
//
// Get PDB path
//
- PdbPath = GetPdbPath (ImageBase);
+ PdbPath = GetPdbPath (ImageBase);
if (PdbPath == NULL) {
continue;
}
+
//
// Check PDB name
//
if (!MatchPdbAndMap (PdbPath, FileName)) {
continue;
}
+
DEBUG ((DEBUG_ERROR, "ImageBase: %x\n", ImageBase));
//
// Check SearchType
//
- if (SearchType == EdbEbcImageRvaSearchTypeAny || SearchType == EdbEbcImageRvaSearchTypeFirst) {
+ if ((SearchType == EdbEbcImageRvaSearchTypeAny) || (SearchType == EdbEbcImageRvaSearchTypeFirst)) {
//
// Assign base address and return
//
@@ -1066,6 +1096,7 @@ EdbPatchSymbolRVA (
if (CandidateImageBase == NULL) {
return EFI_NOT_FOUND;
}
+
//
// Assign base address and return
//
@@ -1096,10 +1127,10 @@ MatchObjAndCod (
IN CHAR16 *CodFileName
)
{
- UINTN ObjNameSize;
- UINTN CodNameSize;
- CHAR8 *PureObjFileName;
- UINTN Index;
+ UINTN ObjNameSize;
+ UINTN CodNameSize;
+ CHAR8 *PureObjFileName;
+ UINTN Index;
//
// remove library name
@@ -1111,6 +1142,7 @@ MatchObjAndCod (
break;
}
}
+
ObjFileName = PureObjFileName;
//
@@ -1164,30 +1196,30 @@ typedef enum {
**/
CHAR8 *
EdbLoadCodBySymbolByIec (
- IN CHAR8 *Name,
- IN VOID *Buffer,
- IN UINTN BufferSize,
- OUT UINTN *CodeBufferSize,
- OUT UINTN *FuncOffset
+ IN CHAR8 *Name,
+ IN VOID *Buffer,
+ IN UINTN BufferSize,
+ OUT UINTN *CodeBufferSize,
+ OUT UINTN *FuncOffset
)
{
- CHAR8 *LineBuffer;
- CHAR8 *FieldBuffer;
- VOID *BufferStart;
- VOID *BufferEnd;
- UINTN Offset;
- EDB_EBC_COD_PARSE_STATE CodParseState;
- CHAR8 Char[2];
+ CHAR8 *LineBuffer;
+ CHAR8 *FieldBuffer;
+ VOID *BufferStart;
+ VOID *BufferEnd;
+ UINTN Offset;
+ EDB_EBC_COD_PARSE_STATE CodParseState;
+ CHAR8 Char[2];
//
// Init
//
- Char[0] = 9;
- Char[1] = 0;
- LineBuffer = AsciiStrGetNewTokenLine (Buffer, "\n\r");
- Offset = (UINTN)-1;
- BufferStart = NULL;
- BufferEnd = NULL;
+ Char[0] = 9;
+ Char[1] = 0;
+ LineBuffer = AsciiStrGetNewTokenLine (Buffer, "\n\r");
+ Offset = (UINTN)-1;
+ BufferStart = NULL;
+ BufferEnd = NULL;
CodParseState = EdbEbcCodParseStateUninitialized;
//
@@ -1195,97 +1227,101 @@ EdbLoadCodBySymbolByIec (
//
while (LineBuffer != NULL) {
switch (CodParseState) {
- case EdbEbcCodParseStateUninitialized:
- //
- // check mark_begin, begin to check line after this match
- //
- if (AsciiStrCmp (LineBuffer, "; mark_begin;") == 0) {
- CodParseState = EdbEbcCodParseStateSymbolInitialized;
- }
- LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
- PatchForAsciiStrTokenBefore (LineBuffer, '\n');
- break;
+ case EdbEbcCodParseStateUninitialized:
+ //
+ // check mark_begin, begin to check line after this match
+ //
+ if (AsciiStrCmp (LineBuffer, "; mark_begin;") == 0) {
+ CodParseState = EdbEbcCodParseStateSymbolInitialized;
+ }
- case EdbEbcCodParseStateSymbolInitialized:
- //
- // check mark_end, not check line after this match
- //
- if (AsciiStrCmp (LineBuffer, "; mark_end;") == 0) {
- CodParseState = EdbEbcCodParseStateUninitialized;
LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
PatchForAsciiStrTokenBefore (LineBuffer, '\n');
break;
- }
- //
- // not check this line if the first char is as follows
- //
- if ((*LineBuffer == 0) ||
- (*LineBuffer == '$') ||
- (*LineBuffer == ';') ||
- (*LineBuffer == '_') ||
- (*LineBuffer == ' ')) {
+ case EdbEbcCodParseStateSymbolInitialized:
+ //
+ // check mark_end, not check line after this match
+ //
+ if (AsciiStrCmp (LineBuffer, "; mark_end;") == 0) {
+ CodParseState = EdbEbcCodParseStateUninitialized;
+ LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
+ PatchForAsciiStrTokenBefore (LineBuffer, '\n');
+ break;
+ }
+
+ //
+ // not check this line if the first char is as follows
+ //
+ if ((*LineBuffer == 0) ||
+ (*LineBuffer == '$') ||
+ (*LineBuffer == ';') ||
+ (*LineBuffer == '_') ||
+ (*LineBuffer == ' '))
+ {
+ LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
+ PatchForAsciiStrTokenBefore (LineBuffer, '\n');
+ break;
+ }
+
+ //
+ // get function name, function name is followed by char 0x09.
+ //
+ FieldBuffer = AsciiStrGetNewTokenField (LineBuffer, Char);
+ ASSERT (FieldBuffer != NULL);
+ if (AsciiStriCmp (FieldBuffer, Name) == 0) {
+ BufferStart = FieldBuffer;
+ CodParseState = EdbEbcCodParseStateSymbolStart;
+ }
+
+ PatchForAsciiStrTokenAfter (FieldBuffer, 0x9);
+
+ //
+ // Get next line
+ //
LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
PatchForAsciiStrTokenBefore (LineBuffer, '\n');
break;
- }
- //
- // get function name, function name is followed by char 0x09.
- //
- FieldBuffer = AsciiStrGetNewTokenField (LineBuffer, Char);
- ASSERT (FieldBuffer != NULL);
- if (AsciiStriCmp (FieldBuffer, Name) == 0) {
- BufferStart = FieldBuffer;
- CodParseState = EdbEbcCodParseStateSymbolStart;
- }
- PatchForAsciiStrTokenAfter (FieldBuffer, 0x9);
-
- //
- // Get next line
- //
- LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
- PatchForAsciiStrTokenBefore (LineBuffer, '\n');
- break;
-
- case EdbEbcCodParseStateSymbolStart:
- //
- // check mark_end, if this match, means the function is found successfully.
- //
- if (AsciiStrCmp (LineBuffer, "; mark_end;") == 0) {
- CodParseState = EdbEbcCodParseStateSymbolEnd;
+ case EdbEbcCodParseStateSymbolStart:
//
- // prepare CodeBufferSize, FuncOffset, and FuncStart to return
+ // check mark_end, if this match, means the function is found successfully.
//
- BufferEnd = LineBuffer + sizeof("; mark_end;") - 1;
- *CodeBufferSize = (UINTN)BufferEnd - (UINTN)BufferStart;
- *FuncOffset = Offset;
- PatchForAsciiStrTokenAfter (LineBuffer, '\n');
- return BufferStart;
- }
+ if (AsciiStrCmp (LineBuffer, "; mark_end;") == 0) {
+ CodParseState = EdbEbcCodParseStateSymbolEnd;
+ //
+ // prepare CodeBufferSize, FuncOffset, and FuncStart to return
+ //
+ BufferEnd = LineBuffer + sizeof ("; mark_end;") - 1;
+ *CodeBufferSize = (UINTN)BufferEnd - (UINTN)BufferStart;
+ *FuncOffset = Offset;
+ PatchForAsciiStrTokenAfter (LineBuffer, '\n');
+ return BufferStart;
+ }
- //
- // Get function offset
- //
- if ((Offset == (UINTN)-1) &&
- (*LineBuffer == ' ')) {
- FieldBuffer = AsciiStrGetNewTokenField (LineBuffer + 2, " ");
- Offset = AsciiXtoi (FieldBuffer);
- PatchForAsciiStrTokenAfter (FieldBuffer, ' ');
- }
+ //
+ // Get function offset
+ //
+ if ((Offset == (UINTN)-1) &&
+ (*LineBuffer == ' '))
+ {
+ FieldBuffer = AsciiStrGetNewTokenField (LineBuffer + 2, " ");
+ Offset = AsciiXtoi (FieldBuffer);
+ PatchForAsciiStrTokenAfter (FieldBuffer, ' ');
+ }
- //
- // Get next line
- //
- LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
- PatchForAsciiStrTokenBefore (LineBuffer, '\n');
- break;
+ //
+ // Get next line
+ //
+ LineBuffer = AsciiStrGetNextTokenLine ("\n\r");
+ PatchForAsciiStrTokenBefore (LineBuffer, '\n');
+ break;
- case EdbEbcCodParseStateSymbolEnd:
- break;
+ case EdbEbcCodParseStateSymbolEnd:
+ break;
- default:
- break;
+ default:
+ break;
}
}
@@ -1310,11 +1346,11 @@ EdbLoadCodBySymbolByIec (
**/
CHAR8 *
EdbLoadCodBySymbol (
- IN CHAR8 *Name,
- IN VOID *Buffer,
- IN UINTN BufferSize,
- OUT UINTN *CodeBufferSize,
- OUT UINTN *FuncOffset
+ IN CHAR8 *Name,
+ IN VOID *Buffer,
+ IN UINTN BufferSize,
+ OUT UINTN *CodeBufferSize,
+ OUT UINTN *FuncOffset
)
{
//
@@ -1342,7 +1378,7 @@ EdbFindCodeFromObject (
IN CHAR16 *FileName
)
{
- UINTN EntryIndex;
+ UINTN EntryIndex;
//
// Go througn each Entry in this Object
@@ -1352,21 +1388,25 @@ EdbFindCodeFromObject (
// This check is for Function only
//
if ((Object->Entry[EntryIndex].Type != EfiDebuggerSymbolFunction) &&
- (Object->Entry[EntryIndex].Type != EfiDebuggerSymbolStaticFunction)) {
+ (Object->Entry[EntryIndex].Type != EfiDebuggerSymbolStaticFunction))
+ {
continue;
}
+
//
// Skip match varbss_init function, because they has no source code
//
- if (AsciiStrnCmp (Object->Entry[EntryIndex].Name, "varbss_init", sizeof("varbss_init") - 1) == 0) {
+ if (AsciiStrnCmp (Object->Entry[EntryIndex].Name, "varbss_init", sizeof ("varbss_init") - 1) == 0) {
continue;
}
+
//
// check the name
//
if (!MatchObjAndCod (Object->Entry[EntryIndex].ObjName, FileName)) {
continue;
}
+
//
// found it, return source buffer
//
@@ -1396,18 +1436,18 @@ EdbFindCodeFromObject (
**/
EFI_STATUS
EdbLoadCode (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *FileName,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *FileName,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- UINTN ObjectIndex;
- UINTN EntryIndex;
- VOID *SourceBuffer;
- EFI_STATUS Status;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN ObjectIndex;
+ UINTN EntryIndex;
+ VOID *SourceBuffer;
+ EFI_STATUS Status;
//
// Find Symbol
@@ -1426,12 +1466,13 @@ EdbLoadCode (
// unnload duplicated code
//
Status = EdbUnloadCode (DebuggerPrivate, MapFileName, FileName, &SourceBuffer);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Unload Duplicated Code File Error!\n"));
return Status;
}
+
Status = EdbDeleteCodeBuffer (DebuggerPrivate, MapFileName, FileName, SourceBuffer);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Delete Duplicated Code File Error!\n"));
return Status;
}
@@ -1446,21 +1487,25 @@ EdbLoadCode (
// load symbol for function only
//
if ((Object->Entry[EntryIndex].Type != EfiDebuggerSymbolFunction) &&
- (Object->Entry[EntryIndex].Type != EfiDebuggerSymbolStaticFunction)) {
+ (Object->Entry[EntryIndex].Type != EfiDebuggerSymbolStaticFunction))
+ {
continue;
}
+
//
// skip varbss_init
//
- if (AsciiStrnCmp (Object->Entry[EntryIndex].Name, "varbss_init", sizeof("varbss_init") - 1) == 0) {
+ if (AsciiStrnCmp (Object->Entry[EntryIndex].Name, "varbss_init", sizeof ("varbss_init") - 1) == 0) {
continue;
}
+
//
// Check the name
//
if (!MatchObjAndCod (Object->Entry[EntryIndex].ObjName, FileName)) {
continue;
}
+
//
// load code for this symbol
//
@@ -1483,7 +1528,7 @@ EdbLoadCode (
if (Object->Entry[EntryIndex].CodBuffer != NULL) {
*((UINT8 *)Object->Entry[EntryIndex].CodBuffer + Object->Entry[EntryIndex].CodBufferSize) = 0;
DEBUG ((DEBUG_ERROR, " CodeSymbol: %a, FuncOffset: 0x05%x\n", Object->Entry[EntryIndex].Name, Object->Entry[EntryIndex].FuncOffsetBase));
-// DEBUG ((DEBUG_ERROR, " [CODE]:\n%a\n", Object->Entry[EntryIndex].CodBuffer));
+ // DEBUG ((DEBUG_ERROR, " [CODE]:\n%a\n", Object->Entry[EntryIndex].CodBuffer));
}
}
@@ -1507,15 +1552,15 @@ EdbLoadCode (
**/
EFI_STATUS
EdbUnloadCode (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *FileName,
- OUT VOID **Buffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *FileName,
+ OUT VOID **Buffer
)
{
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
- UINTN ObjectIndex;
- UINTN EntryIndex;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN ObjectIndex;
+ UINTN EntryIndex;
//
// Find Symbol
@@ -1540,22 +1585,26 @@ EdbUnloadCode (
//
for (EntryIndex = 0; EntryIndex < Object->EntryCount; EntryIndex++) {
if ((Object->Entry[EntryIndex].Type != EfiDebuggerSymbolFunction) &&
- (Object->Entry[EntryIndex].Type != EfiDebuggerSymbolStaticFunction)) {
+ (Object->Entry[EntryIndex].Type != EfiDebuggerSymbolStaticFunction))
+ {
continue;
}
- if (AsciiStrnCmp (Object->Entry[EntryIndex].Name, "varbss_init", sizeof("varbss_init") - 1) == 0) {
+
+ if (AsciiStrnCmp (Object->Entry[EntryIndex].Name, "varbss_init", sizeof ("varbss_init") - 1) == 0) {
continue;
}
+
if (!MatchObjAndCod (Object->Entry[EntryIndex].ObjName, FileName)) {
continue;
}
+
//
// clean up the buffer
//
- Object->Entry[EntryIndex].CodBuffer = NULL;
- Object->Entry[EntryIndex].CodBufferSize = 0;
+ Object->Entry[EntryIndex].CodBuffer = NULL;
+ Object->Entry[EntryIndex].CodBufferSize = 0;
Object->Entry[EntryIndex].FuncOffsetBase = 0;
- Object->Entry[EntryIndex].SourceBuffer = NULL;
+ Object->Entry[EntryIndex].SourceBuffer = NULL;
}
//
@@ -1579,15 +1628,15 @@ EdbUnloadCode (
**/
EFI_STATUS
EdbAddCodeBuffer (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *CodeFileName,
- IN UINTN SourceBufferSize,
- IN VOID *SourceBuffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *CodeFileName,
+ IN UINTN SourceBufferSize,
+ IN VOID *SourceBuffer
)
{
- UINTN Index;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN Index;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
//
// Find Symbol
@@ -1602,8 +1651,8 @@ EdbAddCodeBuffer (
// Add it to last entry
//
for (Index = 0; Object->SourceBuffer[Index] != NULL; Index++) {
- ;
}
+
Object->SourceBuffer[Index] = SourceBuffer;
return EFI_SUCCESS;
@@ -1623,14 +1672,14 @@ EdbAddCodeBuffer (
**/
EFI_STATUS
EdbDeleteCodeBuffer (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *CodeFileName,
- IN VOID *SourceBuffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *CodeFileName,
+ IN VOID *SourceBuffer
)
{
- UINTN Index;
- EFI_DEBUGGER_SYMBOL_OBJECT *Object;
+ UINTN Index;
+ EFI_DEBUGGER_SYMBOL_OBJECT *Object;
//
// Find Symbol
@@ -1665,6 +1714,7 @@ EdbDeleteCodeBuffer (
for (Index = Index + 1; Object->SourceBuffer[Index] != NULL; Index++) {
Object->SourceBuffer[Index - 1] = Object->SourceBuffer[Index];
}
+
Object->SourceBuffer[Index - 1] = NULL;
return EFI_SUCCESS;
@@ -1681,7 +1731,7 @@ EdbDeleteCodeBuffer (
**/
CHAR8 *
FindSymbolStr (
- IN UINTN Address
+ IN UINTN Address
)
{
UINTN ObjectIndex;
@@ -1730,8 +1780,8 @@ FindSymbolStr (
**/
UINTN
EdbGetLineNumberAndOffsetFromThisLine (
- IN VOID *Line,
- OUT UINTN *Offset
+ IN VOID *Line,
+ OUT UINTN *Offset
)
{
UINTN LineNumber;
@@ -1740,7 +1790,7 @@ EdbGetLineNumberAndOffsetFromThisLine (
LineNumber = (UINTN)-1;
LineBuffer = Line;
- *Offset = (UINTN)-1;
+ *Offset = (UINTN)-1;
while (LineBuffer != NULL) {
//
@@ -1756,7 +1806,7 @@ EdbGetLineNumberAndOffsetFromThisLine (
if (*(LineBuffer + 2) != ' ') {
if (*Offset == (UINTN)-1) {
FieldBuffer = AsciiStrGetNewTokenField (LineBuffer + 2, " ");
- *Offset = AsciiXtoi (FieldBuffer);
+ *Offset = AsciiXtoi (FieldBuffer);
PatchForAsciiStrTokenAfter (FieldBuffer, ' ');
}
}
@@ -1779,6 +1829,7 @@ EdbGetLineNumberAndOffsetFromThisLine (
PatchForAsciiStrTokenBefore (LineBuffer, '\n');
continue;
}
+
//
// 3. line number
//
@@ -1835,14 +1886,14 @@ EdbGetLineNumberFromCode (
UINTN CandidateLineNumber;
UINTN CandidateOffset;
- if (SearchType < 0 || SearchType >= EdbEbcLineSearchTypeMax) {
+ if ((SearchType < 0) || (SearchType >= EdbEbcLineSearchTypeMax)) {
return (UINTN)-1;
}
- LineNumber = (UINTN)-1;
+ LineNumber = (UINTN)-1;
CandidateLineNumber = (UINTN)-1;
- CandidateOffset = (UINTN)-1;
- LineBuffer = AsciiStrGetNewTokenLine (Entry->CodBuffer, "\n");
+ CandidateOffset = (UINTN)-1;
+ LineBuffer = AsciiStrGetNewTokenLine (Entry->CodBuffer, "\n");
while (LineBuffer != NULL) {
if (*LineBuffer != ' ') {
LineBuffer = AsciiStrGetNextTokenLine ("\n");
@@ -1904,7 +1955,7 @@ EdbGetLineNumberFromCode (
}
CandidateLineNumber = LineNumber;
- CandidateOffset = Offset;
+ CandidateOffset = Offset;
LineBuffer = AsciiStrGetNextTokenLine ("\n");
PatchForAsciiStrTokenBefore (LineBuffer, '\n');
@@ -1945,7 +1996,7 @@ EdbGetSourceStrFromCodeByLine (
VOID *FuncStart;
UINTN Number;
- FuncStart = NULL;
+ FuncStart = NULL;
LineBuffer = AsciiStrGetNewTokenLine (Entry->CodBuffer, "\n");
while (LineBuffer != NULL) {
if (*LineBuffer != ';') {
@@ -1957,6 +2008,7 @@ EdbGetSourceStrFromCodeByLine (
PatchForAsciiStrTokenAfter (LineBuffer, '\n');
return FuncStart;
}
+
LineBuffer = AsciiStrGetNextTokenLine ("\n");
PatchForAsciiStrTokenBefore (LineBuffer, '\n');
continue;
@@ -1966,7 +2018,7 @@ EdbGetSourceStrFromCodeByLine (
// Check LineNumber
//
FieldBuffer = AsciiStrGetNewTokenField (LineBuffer + 1, " ");
- Number = AsciiAtoi (FieldBuffer);
+ Number = AsciiAtoi (FieldBuffer);
PatchForAsciiStrTokenAfter (FieldBuffer, ' ');
if (Number != LineNumber) {
LineBuffer = AsciiStrGetNextTokenLine ("\n");
@@ -2032,25 +2084,25 @@ EdbGetSourceStrFromCode (
**/
UINTN
EdbPrintSource (
- IN UINTN Address,
- IN BOOLEAN IsPrint
+ IN UINTN Address,
+ IN BOOLEAN IsPrint
)
{
- UINTN SymbolAddress;
- EFI_DEBUGGER_SYMBOL_OBJECT *RetObject;
- EFI_DEBUGGER_SYMBOL_ENTRY *RetEntry;
- UINTN FuncOffset;
- UINT8 *FuncStart;
- UINT8 *FuncEnd;
- UINT8 *FuncIndex;
- CHAR8 Buffer[EFI_DEBUG_MAX_PRINT_BUFFER];
- UINTN BufferSize;
+ UINTN SymbolAddress;
+ EFI_DEBUGGER_SYMBOL_OBJECT *RetObject;
+ EFI_DEBUGGER_SYMBOL_ENTRY *RetEntry;
+ UINTN FuncOffset;
+ UINT8 *FuncStart;
+ UINT8 *FuncEnd;
+ UINT8 *FuncIndex;
+ CHAR8 Buffer[EFI_DEBUG_MAX_PRINT_BUFFER];
+ UINTN BufferSize;
//
// need we display symbol
//
if (!mDebuggerPrivate.DebuggerSymbolContext.DisplaySymbol) {
- return 0 ;
+ return 0;
}
//
@@ -2062,8 +2114,8 @@ EdbPrintSource (
&RetObject,
&RetEntry
);
- if (SymbolAddress == 0 || RetEntry == NULL) {
- return 0 ;
+ if ((SymbolAddress == 0) || (RetEntry == NULL)) {
+ return 0;
}
FuncOffset = Address - SymbolAddress + RetEntry->FuncOffsetBase;
@@ -2071,9 +2123,9 @@ EdbPrintSource (
//
// Get Func String
//
- FuncStart = EdbGetSourceStrFromCode (RetEntry, FuncOffset, (VOID**) &FuncEnd);
+ FuncStart = EdbGetSourceStrFromCode (RetEntry, FuncOffset, (VOID **)&FuncEnd);
if (FuncStart == NULL) {
- return 0 ;
+ return 0;
}
//
@@ -2096,15 +2148,17 @@ EdbPrintSource (
} else {
BufferSize = EFI_DEBUG_MAX_PRINT_BUFFER - 3;
}
+
if (BufferSize != 0) {
CopyMem (Buffer, FuncStart, BufferSize);
}
+
Buffer[BufferSize] = 0;
EDBPrint (L"%a\n", Buffer);
FuncStart = FuncIndex + 1;
FuncIndex = FuncStart;
} else {
- FuncIndex ++;
+ FuncIndex++;
}
}
@@ -2113,7 +2167,7 @@ EdbPrintSource (
//
*(UINT8 *)FuncEnd = '\n';
- return 1 ;
+ return 1;
}
/**
@@ -2135,7 +2189,7 @@ GetMapfileAndSymbol (
CHAR16 *Ch;
*MapfileName = NULL;
- *SymbolName = Symbol;
+ *SymbolName = Symbol;
for (Ch = Symbol; *Ch != 0; Ch++) {
//
@@ -2143,13 +2197,13 @@ GetMapfileAndSymbol (
//
if (*Ch == L':') {
*MapfileName = Symbol;
- *Ch = 0;
- *SymbolName = Ch + 1;
+ *Ch = 0;
+ *SymbolName = Ch + 1;
break;
}
}
- return ;
+ return;
}
/**
@@ -2166,8 +2220,8 @@ GetMapfileAndSymbol (
**/
EFI_STATUS
Symboltoi (
- IN CHAR16 *Symbol,
- OUT UINTN *Address
+ IN CHAR16 *Symbol,
+ OUT UINTN *Address
)
{
UINTN ObjectIndex;
@@ -2194,6 +2248,7 @@ Symboltoi (
if ((MapfileName != NULL) && (StriCmp (Object[ObjectIndex].Name, MapfileName) != 0)) {
continue;
}
+
//
// Go through each entry
//
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.h b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.h
index f82e5b7..a82e943 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.h
@@ -47,10 +47,10 @@ typedef enum {
**/
UINTN
EbdFindSymbolAddress (
- IN UINTN Address,
- IN EDB_MATCH_SYMBOL_TYPE Type,
- OUT EFI_DEBUGGER_SYMBOL_OBJECT **Object,
- OUT EFI_DEBUGGER_SYMBOL_ENTRY **Entry
+ IN UINTN Address,
+ IN EDB_MATCH_SYMBOL_TYPE Type,
+ OUT EFI_DEBUGGER_SYMBOL_OBJECT **Object,
+ OUT EFI_DEBUGGER_SYMBOL_ENTRY **Entry
);
/**
@@ -67,10 +67,10 @@ EbdFindSymbolAddress (
**/
EFI_STATUS
EdbLoadSymbol (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
/**
@@ -85,8 +85,8 @@ EdbLoadSymbol (
**/
EFI_STATUS
EdbUnloadSymbol (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName
);
/**
@@ -103,9 +103,9 @@ EdbUnloadSymbol (
**/
EFI_STATUS
EdbPatchSymbolRVA (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *FileName,
- IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *FileName,
+ IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType
);
/**
@@ -123,11 +123,11 @@ EdbPatchSymbolRVA (
**/
EFI_STATUS
EdbLoadCode (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *FileName,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *FileName,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
/**
@@ -144,10 +144,10 @@ EdbLoadCode (
**/
EFI_STATUS
EdbUnloadCode (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *FileName,
- OUT VOID **Buffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *FileName,
+ OUT VOID **Buffer
);
/**
@@ -165,11 +165,11 @@ EdbUnloadCode (
**/
EFI_STATUS
EdbAddCodeBuffer (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *CodeFileName,
- IN UINTN SourceBufferSize,
- IN VOID *SourceBuffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *CodeFileName,
+ IN UINTN SourceBufferSize,
+ IN VOID *SourceBuffer
);
/**
@@ -186,10 +186,10 @@ EdbAddCodeBuffer (
**/
EFI_STATUS
EdbDeleteCodeBuffer (
- IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
- IN CHAR16 *MapFileName,
- IN CHAR16 *CodeFileName,
- IN VOID *SourceBuffer
+ IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
+ IN CHAR16 *MapFileName,
+ IN CHAR16 *CodeFileName,
+ IN VOID *SourceBuffer
);
/**
@@ -203,7 +203,7 @@ EdbDeleteCodeBuffer (
**/
CHAR8 *
FindSymbolStr (
- IN UINTN Address
+ IN UINTN Address
);
/**
@@ -219,8 +219,8 @@ FindSymbolStr (
**/
UINTN
EdbPrintSource (
- IN UINTN Address,
- IN BOOLEAN IsPrint
+ IN UINTN Address,
+ IN BOOLEAN IsPrint
);
/**
@@ -237,8 +237,8 @@ EdbPrintSource (
**/
EFI_STATUS
Symboltoi (
- IN CHAR16 *Symbol,
- OUT UINTN *Address
+ IN CHAR16 *Symbol,
+ OUT UINTN *Address
);
#endif
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.c b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.c
index b516147..6b52ec5 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.c
@@ -52,7 +52,7 @@ EbcDebuggerHookUnload (
**/
VOID
EbcDebuggerHookEbcUnloadImage (
- IN EFI_HANDLE Handle
+ IN EFI_HANDLE Handle
)
{
return;
@@ -67,7 +67,7 @@ EbcDebuggerHookEbcUnloadImage (
**/
VOID
EbcDebuggerHookExecuteEbcImageEntryPoint (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -82,7 +82,7 @@ EbcDebuggerHookExecuteEbcImageEntryPoint (
**/
VOID
EbcDebuggerHookEbcInterpret (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -96,7 +96,7 @@ EbcDebuggerHookEbcInterpret (
**/
VOID
EbcDebuggerHookExecuteStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -110,7 +110,7 @@ EbcDebuggerHookExecuteStart (
**/
VOID
EbcDebuggerHookExecuteEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -125,7 +125,7 @@ EbcDebuggerHookExecuteEnd (
**/
VOID
EbcDebuggerHookCALLStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -140,7 +140,7 @@ EbcDebuggerHookCALLStart (
**/
VOID
EbcDebuggerHookCALLEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -155,7 +155,7 @@ EbcDebuggerHookCALLEnd (
**/
VOID
EbcDebuggerHookCALLEXStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -170,7 +170,7 @@ EbcDebuggerHookCALLEXStart (
**/
VOID
EbcDebuggerHookCALLEXEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -185,7 +185,7 @@ EbcDebuggerHookCALLEXEnd (
**/
VOID
EbcDebuggerHookRETStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -200,7 +200,7 @@ EbcDebuggerHookRETStart (
**/
VOID
EbcDebuggerHookRETEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -215,7 +215,7 @@ EbcDebuggerHookRETEnd (
**/
VOID
EbcDebuggerHookJMPStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -230,7 +230,7 @@ EbcDebuggerHookJMPStart (
**/
VOID
EbcDebuggerHookJMPEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -245,7 +245,7 @@ EbcDebuggerHookJMPEnd (
**/
VOID
EbcDebuggerHookJMP8Start (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
@@ -260,7 +260,7 @@ EbcDebuggerHookJMP8Start (
**/
VOID
EbcDebuggerHookJMP8End (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
return;
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h
index b166e50..79a946f 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcDebuggerHook.h
@@ -27,9 +27,9 @@
**/
EFI_STATUS
EbcDebugSignalException (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EXCEPTION_FLAGS ExceptionFlags,
- IN VM_CONTEXT *VmPtr
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN EXCEPTION_FLAGS ExceptionFlags,
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -66,10 +66,9 @@ EbcDebuggerHookUnload (
**/
VOID
EbcDebuggerHookEbcUnloadImage (
- IN EFI_HANDLE Handle
+ IN EFI_HANDLE Handle
);
-
/**
Hooks in EbcSupport.c
@@ -79,7 +78,7 @@ EbcDebuggerHookEbcUnloadImage (
**/
VOID
EbcDebuggerHookExecuteEbcImageEntryPoint (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -91,10 +90,9 @@ EbcDebuggerHookExecuteEbcImageEntryPoint (
**/
VOID
EbcDebuggerHookEbcInterpret (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
-
/**
The hook in EbcExecute, before ExecuteFunction.
@@ -103,7 +101,7 @@ EbcDebuggerHookEbcInterpret (
**/
VOID
EbcDebuggerHookExecuteStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -114,7 +112,7 @@ EbcDebuggerHookExecuteStart (
**/
VOID
EbcDebuggerHookExecuteEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -125,7 +123,7 @@ EbcDebuggerHookExecuteEnd (
**/
VOID
EbcDebuggerHookCALLStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -137,7 +135,7 @@ EbcDebuggerHookCALLStart (
**/
VOID
EbcDebuggerHookCALLEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -149,7 +147,7 @@ EbcDebuggerHookCALLEnd (
**/
VOID
EbcDebuggerHookCALLEXStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -161,7 +159,7 @@ EbcDebuggerHookCALLEXStart (
**/
VOID
EbcDebuggerHookCALLEXEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -173,7 +171,7 @@ EbcDebuggerHookCALLEXEnd (
**/
VOID
EbcDebuggerHookRETStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -186,10 +184,9 @@ EbcDebuggerHookRETStart (
**/
VOID
EbcDebuggerHookRETEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
-
/**
The hook in ExecuteJMP, before move IP.
@@ -199,7 +196,7 @@ EbcDebuggerHookRETEnd (
**/
VOID
EbcDebuggerHookJMPStart (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -211,7 +208,7 @@ EbcDebuggerHookJMPStart (
**/
VOID
EbcDebuggerHookJMPEnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -223,7 +220,7 @@ EbcDebuggerHookJMPEnd (
**/
VOID
EbcDebuggerHookJMP8Start (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -235,7 +232,7 @@ EbcDebuggerHookJMP8Start (
**/
VOID
EbcDebuggerHookJMP8End (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
#endif
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcExecute.c b/MdeModulePkg/Universal/EbcDxe/EbcExecute.c
index 1c4a4f5..82a7782 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcExecute.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcExecute.c
@@ -10,31 +10,31 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "EbcExecute.h"
#include "EbcDebuggerHook.h"
-
//
// Define some useful data size constants to allow switch statements based on
// size of operands or data.
//
-#define DATA_SIZE_INVALID 0
-#define DATA_SIZE_8 1
-#define DATA_SIZE_16 2
-#define DATA_SIZE_32 4
-#define DATA_SIZE_64 8
-#define DATA_SIZE_N 48 // 4 or 8
+#define DATA_SIZE_INVALID 0
+#define DATA_SIZE_8 1
+#define DATA_SIZE_16 2
+#define DATA_SIZE_32 4
+#define DATA_SIZE_64 8
+#define DATA_SIZE_N 48 // 4 or 8
//
// Structure we'll use to dispatch opcodes to execute functions.
//
typedef struct {
- EFI_STATUS (*ExecuteFunction) (IN VM_CONTEXT * VmPtr);
-}
-VM_TABLE_ENTRY;
+ EFI_STATUS (*ExecuteFunction)(
+ IN VM_CONTEXT *VmPtr
+ );
+} VM_TABLE_ENTRY;
typedef
UINT64
(*DATA_MANIP_EXEC_FUNCTION) (
- IN VM_CONTEXT * VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -61,8 +61,8 @@ UINT64
**/
INT16
VmReadIndex16 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 CodeOffset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 CodeOffset
);
/**
@@ -77,8 +77,8 @@ VmReadIndex16 (
**/
INT32
VmReadIndex32 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 CodeOffset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 CodeOffset
);
/**
@@ -93,8 +93,8 @@ VmReadIndex32 (
**/
INT64
VmReadIndex64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 CodeOffset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 CodeOffset
);
/**
@@ -108,8 +108,8 @@ VmReadIndex64 (
**/
UINT8
VmReadMem8 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
);
/**
@@ -123,8 +123,8 @@ VmReadMem8 (
**/
UINT16
VmReadMem16 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
);
/**
@@ -138,8 +138,8 @@ VmReadMem16 (
**/
UINT32
VmReadMem32 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
);
/**
@@ -153,8 +153,8 @@ VmReadMem32 (
**/
UINT64
VmReadMem64 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
);
/**
@@ -168,8 +168,8 @@ VmReadMem64 (
**/
UINTN
VmReadMemN (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
);
/**
@@ -197,9 +197,9 @@ VmReadMemN (
**/
EFI_STATUS
VmWriteMem8 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT8 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT8 Data
);
/**
@@ -227,9 +227,9 @@ VmWriteMem8 (
**/
EFI_STATUS
VmWriteMem16 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT16 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT16 Data
);
/**
@@ -257,9 +257,9 @@ VmWriteMem16 (
**/
EFI_STATUS
VmWriteMem32 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT32 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT32 Data
);
/**
@@ -276,8 +276,8 @@ VmWriteMem32 (
**/
UINT16
VmReadCode16 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -294,8 +294,8 @@ VmReadCode16 (
**/
UINT32
VmReadCode32 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -312,8 +312,8 @@ VmReadCode32 (
**/
UINT64
VmReadCode64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -332,8 +332,8 @@ VmReadCode64 (
**/
INT8
VmReadImmed8 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -352,8 +352,8 @@ VmReadImmed8 (
**/
INT16
VmReadImmed16 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -372,8 +372,8 @@ VmReadImmed16 (
**/
INT32
VmReadImmed32 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -392,8 +392,8 @@ VmReadImmed32 (
**/
INT64
VmReadImmed64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
);
/**
@@ -417,8 +417,8 @@ VmReadImmed64 (
**/
UINTN
ConvertStackAddr (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
);
/**
@@ -441,13 +441,14 @@ ConvertStackAddr (
**/
EFI_STATUS
ExecuteDataManip (
- IN VM_CONTEXT *VmPtr,
- IN BOOLEAN IsSignedOp
+ IN VM_CONTEXT *VmPtr,
+ IN BOOLEAN IsSignedOp
);
//
// Functions that execute VM opcodes
//
+
/**
Execute the EBC BREAK instruction.
@@ -458,7 +459,7 @@ ExecuteDataManip (
**/
EFI_STATUS
ExecuteBREAK (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -488,7 +489,7 @@ ExecuteBREAK (
**/
EFI_STATUS
ExecuteJMP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -504,7 +505,7 @@ ExecuteJMP (
**/
EFI_STATUS
ExecuteJMP8 (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -525,7 +526,7 @@ ExecuteJMP8 (
**/
EFI_STATUS
ExecuteCALL (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -541,7 +542,7 @@ ExecuteCALL (
**/
EFI_STATUS
ExecuteRET (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -558,7 +559,7 @@ ExecuteRET (
**/
EFI_STATUS
ExecuteCMP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -575,7 +576,7 @@ ExecuteCMP (
**/
EFI_STATUS
ExecuteCMPI (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -601,7 +602,7 @@ ExecuteCMPI (
**/
EFI_STATUS
ExecuteMOVxx (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -627,7 +628,7 @@ ExecuteMOVxx (
**/
EFI_STATUS
ExecuteMOVI (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -646,7 +647,7 @@ ExecuteMOVI (
**/
EFI_STATUS
ExecuteMOVIn (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -665,7 +666,7 @@ ExecuteMOVIn (
**/
EFI_STATUS
ExecuteMOVREL (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -681,7 +682,7 @@ ExecuteMOVREL (
**/
EFI_STATUS
ExecutePUSHn (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -697,7 +698,7 @@ ExecutePUSHn (
**/
EFI_STATUS
ExecutePUSH (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -713,7 +714,7 @@ ExecutePUSH (
**/
EFI_STATUS
ExecutePOPn (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -729,7 +730,7 @@ ExecutePOPn (
**/
EFI_STATUS
ExecutePOP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -751,7 +752,7 @@ ExecutePOP (
**/
EFI_STATUS
ExecuteSignedDataManip (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -773,7 +774,7 @@ ExecuteSignedDataManip (
**/
EFI_STATUS
ExecuteUnsignedDataManip (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -790,7 +791,7 @@ ExecuteUnsignedDataManip (
**/
EFI_STATUS
ExecuteLOADSP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -807,7 +808,7 @@ ExecuteLOADSP (
**/
EFI_STATUS
ExecuteSTORESP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -831,7 +832,7 @@ ExecuteSTORESP (
**/
EFI_STATUS
ExecuteMOVsnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
/**
@@ -855,12 +856,13 @@ ExecuteMOVsnd (
**/
EFI_STATUS
ExecuteMOVsnw (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
//
// Data manipulation subfunctions
//
+
/**
Execute the EBC NOT instruction.s
@@ -876,9 +878,9 @@ ExecuteMOVsnw (
**/
UINT64
ExecuteNOT (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -896,9 +898,9 @@ ExecuteNOT (
**/
UINT64
ExecuteNEG (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -916,9 +918,9 @@ ExecuteNEG (
**/
UINT64
ExecuteADD (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -936,9 +938,9 @@ ExecuteADD (
**/
UINT64
ExecuteSUB (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -956,9 +958,9 @@ ExecuteSUB (
**/
UINT64
ExecuteMUL (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -976,9 +978,9 @@ ExecuteMUL (
**/
UINT64
ExecuteMULU (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -996,9 +998,9 @@ ExecuteMULU (
**/
UINT64
ExecuteDIV (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1016,9 +1018,9 @@ ExecuteDIV (
**/
UINT64
ExecuteDIVU (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1036,9 +1038,9 @@ ExecuteDIVU (
**/
UINT64
ExecuteMOD (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1056,9 +1058,9 @@ ExecuteMOD (
**/
UINT64
ExecuteMODU (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1076,9 +1078,9 @@ ExecuteMODU (
**/
UINT64
ExecuteAND (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1096,9 +1098,9 @@ ExecuteAND (
**/
UINT64
ExecuteOR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1116,9 +1118,9 @@ ExecuteOR (
**/
UINT64
ExecuteXOR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1136,9 +1138,9 @@ ExecuteXOR (
**/
UINT64
ExecuteSHL (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1156,9 +1158,9 @@ ExecuteSHL (
**/
UINT64
ExecuteSHR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1176,9 +1178,9 @@ ExecuteSHR (
**/
UINT64
ExecuteASHR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1196,9 +1198,9 @@ ExecuteASHR (
**/
UINT64
ExecuteEXTNDB (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1216,9 +1218,9 @@ ExecuteEXTNDB (
**/
UINT64
ExecuteEXTNDW (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
/**
@@ -1236,16 +1238,16 @@ ExecuteEXTNDW (
**/
UINT64
ExecuteEXTNDD (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
);
//
// Once we retrieve the operands for the data manipulation instructions,
// call these functions to perform the operation.
//
-CONST DATA_MANIP_EXEC_FUNCTION mDataManipDispatchTable[] = {
+CONST DATA_MANIP_EXEC_FUNCTION mDataManipDispatchTable[] = {
ExecuteNOT,
ExecuteNEG,
ExecuteADD,
@@ -1267,77 +1269,77 @@ CONST DATA_MANIP_EXEC_FUNCTION mDataManipDispatchTable[] = {
ExecuteEXTNDD,
};
-CONST VM_TABLE_ENTRY mVmOpcodeTable[] = {
- { ExecuteBREAK }, // opcode 0x00
- { ExecuteJMP }, // opcode 0x01
- { ExecuteJMP8 }, // opcode 0x02
- { ExecuteCALL }, // opcode 0x03
- { ExecuteRET }, // opcode 0x04
- { ExecuteCMP }, // opcode 0x05 CMPeq
- { ExecuteCMP }, // opcode 0x06 CMPlte
- { ExecuteCMP }, // opcode 0x07 CMPgte
- { ExecuteCMP }, // opcode 0x08 CMPulte
- { ExecuteCMP }, // opcode 0x09 CMPugte
+CONST VM_TABLE_ENTRY mVmOpcodeTable[] = {
+ { ExecuteBREAK }, // opcode 0x00
+ { ExecuteJMP }, // opcode 0x01
+ { ExecuteJMP8 }, // opcode 0x02
+ { ExecuteCALL }, // opcode 0x03
+ { ExecuteRET }, // opcode 0x04
+ { ExecuteCMP }, // opcode 0x05 CMPeq
+ { ExecuteCMP }, // opcode 0x06 CMPlte
+ { ExecuteCMP }, // opcode 0x07 CMPgte
+ { ExecuteCMP }, // opcode 0x08 CMPulte
+ { ExecuteCMP }, // opcode 0x09 CMPugte
{ ExecuteUnsignedDataManip }, // opcode 0x0A NOT
- { ExecuteSignedDataManip }, // opcode 0x0B NEG
- { ExecuteSignedDataManip }, // opcode 0x0C ADD
- { ExecuteSignedDataManip }, // opcode 0x0D SUB
- { ExecuteSignedDataManip }, // opcode 0x0E MUL
+ { ExecuteSignedDataManip }, // opcode 0x0B NEG
+ { ExecuteSignedDataManip }, // opcode 0x0C ADD
+ { ExecuteSignedDataManip }, // opcode 0x0D SUB
+ { ExecuteSignedDataManip }, // opcode 0x0E MUL
{ ExecuteUnsignedDataManip }, // opcode 0x0F MULU
- { ExecuteSignedDataManip }, // opcode 0x10 DIV
+ { ExecuteSignedDataManip }, // opcode 0x10 DIV
{ ExecuteUnsignedDataManip }, // opcode 0x11 DIVU
- { ExecuteSignedDataManip }, // opcode 0x12 MOD
+ { ExecuteSignedDataManip }, // opcode 0x12 MOD
{ ExecuteUnsignedDataManip }, // opcode 0x13 MODU
{ ExecuteUnsignedDataManip }, // opcode 0x14 AND
{ ExecuteUnsignedDataManip }, // opcode 0x15 OR
{ ExecuteUnsignedDataManip }, // opcode 0x16 XOR
{ ExecuteUnsignedDataManip }, // opcode 0x17 SHL
{ ExecuteUnsignedDataManip }, // opcode 0x18 SHR
- { ExecuteSignedDataManip }, // opcode 0x19 ASHR
+ { ExecuteSignedDataManip }, // opcode 0x19 ASHR
{ ExecuteUnsignedDataManip }, // opcode 0x1A EXTNDB
{ ExecuteUnsignedDataManip }, // opcode 0x1B EXTNDW
{ ExecuteUnsignedDataManip }, // opcode 0x1C EXTNDD
- { ExecuteMOVxx }, // opcode 0x1D MOVBW
- { ExecuteMOVxx }, // opcode 0x1E MOVWW
- { ExecuteMOVxx }, // opcode 0x1F MOVDW
- { ExecuteMOVxx }, // opcode 0x20 MOVQW
- { ExecuteMOVxx }, // opcode 0x21 MOVBD
- { ExecuteMOVxx }, // opcode 0x22 MOVWD
- { ExecuteMOVxx }, // opcode 0x23 MOVDD
- { ExecuteMOVxx }, // opcode 0x24 MOVQD
- { ExecuteMOVsnw }, // opcode 0x25 MOVsnw
- { ExecuteMOVsnd }, // opcode 0x26 MOVsnd
- { NULL }, // opcode 0x27
- { ExecuteMOVxx }, // opcode 0x28 MOVqq
- { ExecuteLOADSP }, // opcode 0x29 LOADSP SP1, R2
- { ExecuteSTORESP }, // opcode 0x2A STORESP R1, SP2
- { ExecutePUSH }, // opcode 0x2B PUSH {@}R1 [imm16]
- { ExecutePOP }, // opcode 0x2C POP {@}R1 [imm16]
- { ExecuteCMPI }, // opcode 0x2D CMPIEQ
- { ExecuteCMPI }, // opcode 0x2E CMPILTE
- { ExecuteCMPI }, // opcode 0x2F CMPIGTE
- { ExecuteCMPI }, // opcode 0x30 CMPIULTE
- { ExecuteCMPI }, // opcode 0x31 CMPIUGTE
- { ExecuteMOVxx }, // opcode 0x32 MOVN
- { ExecuteMOVxx }, // opcode 0x33 MOVND
- { NULL }, // opcode 0x34
- { ExecutePUSHn }, // opcode 0x35
- { ExecutePOPn }, // opcode 0x36
- { ExecuteMOVI }, // opcode 0x37 - mov immediate data
- { ExecuteMOVIn }, // opcode 0x38 - mov immediate natural
- { ExecuteMOVREL }, // opcode 0x39 - move data relative to PC
- { NULL }, // opcode 0x3a
- { NULL }, // opcode 0x3b
- { NULL }, // opcode 0x3c
- { NULL }, // opcode 0x3d
- { NULL }, // opcode 0x3e
- { NULL } // opcode 0x3f
+ { ExecuteMOVxx }, // opcode 0x1D MOVBW
+ { ExecuteMOVxx }, // opcode 0x1E MOVWW
+ { ExecuteMOVxx }, // opcode 0x1F MOVDW
+ { ExecuteMOVxx }, // opcode 0x20 MOVQW
+ { ExecuteMOVxx }, // opcode 0x21 MOVBD
+ { ExecuteMOVxx }, // opcode 0x22 MOVWD
+ { ExecuteMOVxx }, // opcode 0x23 MOVDD
+ { ExecuteMOVxx }, // opcode 0x24 MOVQD
+ { ExecuteMOVsnw }, // opcode 0x25 MOVsnw
+ { ExecuteMOVsnd }, // opcode 0x26 MOVsnd
+ { NULL }, // opcode 0x27
+ { ExecuteMOVxx }, // opcode 0x28 MOVqq
+ { ExecuteLOADSP }, // opcode 0x29 LOADSP SP1, R2
+ { ExecuteSTORESP }, // opcode 0x2A STORESP R1, SP2
+ { ExecutePUSH }, // opcode 0x2B PUSH {@}R1 [imm16]
+ { ExecutePOP }, // opcode 0x2C POP {@}R1 [imm16]
+ { ExecuteCMPI }, // opcode 0x2D CMPIEQ
+ { ExecuteCMPI }, // opcode 0x2E CMPILTE
+ { ExecuteCMPI }, // opcode 0x2F CMPIGTE
+ { ExecuteCMPI }, // opcode 0x30 CMPIULTE
+ { ExecuteCMPI }, // opcode 0x31 CMPIUGTE
+ { ExecuteMOVxx }, // opcode 0x32 MOVN
+ { ExecuteMOVxx }, // opcode 0x33 MOVND
+ { NULL }, // opcode 0x34
+ { ExecutePUSHn }, // opcode 0x35
+ { ExecutePOPn }, // opcode 0x36
+ { ExecuteMOVI }, // opcode 0x37 - mov immediate data
+ { ExecuteMOVIn }, // opcode 0x38 - mov immediate natural
+ { ExecuteMOVREL }, // opcode 0x39 - move data relative to PC
+ { NULL }, // opcode 0x3a
+ { NULL }, // opcode 0x3b
+ { NULL }, // opcode 0x3c
+ { NULL }, // opcode 0x3d
+ { NULL }, // opcode 0x3e
+ { NULL } // opcode 0x3f
};
//
// Length of JMP instructions, depending on upper two bits of opcode.
//
-CONST UINT8 mJMPLen[] = { 2, 2, 6, 10 };
+CONST UINT8 mJMPLen[] = { 2, 2, 6, 10 };
/**
Given a pointer to a new VM context, execute one or more instructions. This
@@ -1356,9 +1358,9 @@ CONST UINT8 mJMPLen[] = { 2, 2, 6, 10 };
EFI_STATUS
EFIAPI
EbcExecuteInstructions (
- IN EFI_EBC_VM_TEST_PROTOCOL *This,
- IN VM_CONTEXT *VmPtr,
- IN OUT UINTN *InstructionCount
+ IN EFI_EBC_VM_TEST_PROTOCOL *This,
+ IN VM_CONTEXT *VmPtr,
+ IN OUT UINTN *InstructionCount
)
{
UINTN ExecFunc;
@@ -1383,8 +1385,8 @@ EbcExecuteInstructions (
// call it if it's not null.
//
while (InstructionsLeft != 0) {
- ExecFunc = (UINTN) mVmOpcodeTable[(*VmPtr->Ip & OPCODE_M_OPCODE)].ExecuteFunction;
- if (ExecFunc == (UINTN) NULL) {
+ ExecFunc = (UINTN)mVmOpcodeTable[(*VmPtr->Ip & OPCODE_M_OPCODE)].ExecuteFunction;
+ if (ExecFunc == (UINTN)NULL) {
EbcDebugSignalException (EXCEPT_EBC_INVALID_OPCODE, EXCEPTION_FLAG_FATAL, VmPtr);
return EFI_UNSUPPORTED;
} else {
@@ -1403,7 +1405,6 @@ EbcExecuteInstructions (
return Status;
}
-
/**
Execute an EBC image from an entry point or from a published protocol.
@@ -1415,7 +1416,7 @@ EbcExecuteInstructions (
**/
EFI_STATUS
EbcExecute (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINTN ExecFunc;
@@ -1431,24 +1432,25 @@ EbcExecute (
//
// Make sure the magic value has been put on the stack before we got here.
//
- if (*VmPtr->StackMagicPtr != (UINTN) VM_STACK_KEY_VALUE) {
+ if (*VmPtr->StackMagicPtr != (UINTN)VM_STACK_KEY_VALUE) {
StackCorrupted = 1;
}
- VmPtr->FramePtr = (VOID *) ((UINT8 *) (UINTN) VmPtr->Gpr[0] + 8);
+ VmPtr->FramePtr = (VOID *)((UINT8 *)(UINTN)VmPtr->Gpr[0] + 8);
//
// Try to get the debug support for EBC
//
DEBUG_CODE_BEGIN ();
- Status = gBS->LocateProtocol (
- &gEfiEbcSimpleDebuggerProtocolGuid,
- NULL,
- (VOID **) &EbcSimpleDebugger
- );
- if (EFI_ERROR (Status)) {
- EbcSimpleDebugger = NULL;
- }
+ Status = gBS->LocateProtocol (
+ &gEfiEbcSimpleDebuggerProtocolGuid,
+ NULL,
+ (VOID **)&EbcSimpleDebugger
+ );
+ if (EFI_ERROR (Status)) {
+ EbcSimpleDebugger = NULL;
+ }
+
DEBUG_CODE_END ();
//
@@ -1456,7 +1458,7 @@ EbcExecute (
// can print out the location of the exception relative to the entry point,
// which could then be used in a disassembly listing to find the problem.
//
- VmPtr->EntryPoint = (VOID *) VmPtr->Ip;
+ VmPtr->EntryPoint = (VOID *)VmPtr->Ip;
//
// We'll wait for this flag to know when we're done. The RET
@@ -1468,17 +1470,18 @@ EbcExecute (
// If we've found a simple debugger protocol, call it
//
DEBUG_CODE_BEGIN ();
- if (EbcSimpleDebugger != NULL) {
- EbcSimpleDebugger->Debugger (EbcSimpleDebugger, VmPtr);
- }
+ if (EbcSimpleDebugger != NULL) {
+ EbcSimpleDebugger->Debugger (EbcSimpleDebugger, VmPtr);
+ }
+
DEBUG_CODE_END ();
//
// Use the opcode bits to index into the opcode dispatch table. If the
// function pointer is null then generate an exception.
//
- ExecFunc = (UINTN) mVmOpcodeTable[(*VmPtr->Ip & OPCODE_M_OPCODE)].ExecuteFunction;
- if (ExecFunc == (UINTN) NULL) {
+ ExecFunc = (UINTN)mVmOpcodeTable[(*VmPtr->Ip & OPCODE_M_OPCODE)].ExecuteFunction;
+ if (ExecFunc == (UINTN)NULL) {
EbcDebugSignalException (EXCEPT_EBC_INVALID_OPCODE, EXCEPTION_FLAG_FATAL, VmPtr);
Status = EFI_UNSUPPORTED;
goto Done;
@@ -1505,26 +1508,27 @@ EbcExecute (
if (VMFLAG_ISSET (VmPtr, VMFLAGS_STEP)) {
EbcDebugSignalException (EXCEPT_EBC_STEP, EXCEPTION_FLAG_NONE, VmPtr);
}
+
//
// Make sure stack has not been corrupted. Only report it once though.
//
- if ((StackCorrupted == 0) && (*VmPtr->StackMagicPtr != (UINTN) VM_STACK_KEY_VALUE)) {
+ if ((StackCorrupted == 0) && (*VmPtr->StackMagicPtr != (UINTN)VM_STACK_KEY_VALUE)) {
EbcDebugSignalException (EXCEPT_EBC_STACK_FAULT, EXCEPTION_FLAG_FATAL, VmPtr);
StackCorrupted = 1;
}
- if ((StackCorrupted == 0) && ((UINT64)VmPtr->Gpr[0] <= (UINT64)(UINTN) VmPtr->StackTop)) {
+
+ if ((StackCorrupted == 0) && ((UINT64)VmPtr->Gpr[0] <= (UINT64)(UINTN)VmPtr->StackTop)) {
EbcDebugSignalException (EXCEPT_EBC_STACK_FAULT, EXCEPTION_FLAG_FATAL, VmPtr);
StackCorrupted = 1;
}
}
Done:
- mVmPtr = NULL;
+ mVmPtr = NULL;
return Status;
}
-
/**
Execute the MOVxx instructions.
@@ -1548,7 +1552,7 @@ Done:
**/
EFI_STATUS
ExecuteMOVxx (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -1565,7 +1569,7 @@ ExecuteMOVxx (
UINTN Source;
Opcode = GETOPCODE (VmPtr);
- OpcMasked = (UINT8) (Opcode & OPCODE_M_OPCODE);
+ OpcMasked = (UINT8)(Opcode & OPCODE_M_OPCODE);
//
// Get the operands byte so we can get R1 and R2
@@ -1575,9 +1579,9 @@ ExecuteMOVxx (
//
// Assume no indexes
//
- Index64Op1 = 0;
- Index64Op2 = 0;
- Data64 = 0;
+ Index64Op1 = 0;
+ Index64Op2 = 0;
+ Data64 = 0;
//
// Determine if we have an index/immediate data. Base instruction size
@@ -1594,30 +1598,30 @@ ExecuteMOVxx (
// Get one or both index values.
//
if ((Opcode & OPCODE_M_IMMED_OP1) != 0) {
- Index16 = VmReadIndex16 (VmPtr, 2);
- Index64Op1 = (INT64) Index16;
- Size += sizeof (UINT16);
+ Index16 = VmReadIndex16 (VmPtr, 2);
+ Index64Op1 = (INT64)Index16;
+ Size += sizeof (UINT16);
}
if ((Opcode & OPCODE_M_IMMED_OP2) != 0) {
- Index16 = VmReadIndex16 (VmPtr, Size);
- Index64Op2 = (INT64) Index16;
- Size += sizeof (UINT16);
+ Index16 = VmReadIndex16 (VmPtr, Size);
+ Index64Op2 = (INT64)Index16;
+ Size += sizeof (UINT16);
}
} else if ((OpcMasked <= OPCODE_MOVQD) || (OpcMasked == OPCODE_MOVND)) {
//
// MOVBD, MOVWD, MOVDD, MOVQD, and MOVND have 32-bit immediate index
//
if ((Opcode & OPCODE_M_IMMED_OP1) != 0) {
- Index32 = VmReadIndex32 (VmPtr, 2);
- Index64Op1 = (INT64) Index32;
- Size += sizeof (UINT32);
+ Index32 = VmReadIndex32 (VmPtr, 2);
+ Index64Op1 = (INT64)Index32;
+ Size += sizeof (UINT32);
}
if ((Opcode & OPCODE_M_IMMED_OP2) != 0) {
- Index32 = VmReadIndex32 (VmPtr, Size);
- Index64Op2 = (INT64) Index32;
- Size += sizeof (UINT32);
+ Index32 = VmReadIndex32 (VmPtr, Size);
+ Index64Op2 = (INT64)Index32;
+ Size += sizeof (UINT32);
}
} else if (OpcMasked == OPCODE_MOVQQ) {
//
@@ -1625,12 +1629,12 @@ ExecuteMOVxx (
//
if ((Opcode & OPCODE_M_IMMED_OP1) != 0) {
Index64Op1 = VmReadIndex64 (VmPtr, 2);
- Size += sizeof (UINT64);
+ Size += sizeof (UINT64);
}
if ((Opcode & OPCODE_M_IMMED_OP2) != 0) {
Index64Op2 = VmReadIndex64 (VmPtr, Size);
- Size += sizeof (UINT64);
+ Size += sizeof (UINT64);
}
} else {
//
@@ -1644,25 +1648,26 @@ ExecuteMOVxx (
return EFI_UNSUPPORTED;
}
}
+
//
// Determine the size of the move, and create a mask for it so we can
// clear unused bits.
//
if ((OpcMasked == OPCODE_MOVBW) || (OpcMasked == OPCODE_MOVBD)) {
- MoveSize = DATA_SIZE_8;
- DataMask = 0xFF;
+ MoveSize = DATA_SIZE_8;
+ DataMask = 0xFF;
} else if ((OpcMasked == OPCODE_MOVWW) || (OpcMasked == OPCODE_MOVWD)) {
- MoveSize = DATA_SIZE_16;
- DataMask = 0xFFFF;
+ MoveSize = DATA_SIZE_16;
+ DataMask = 0xFFFF;
} else if ((OpcMasked == OPCODE_MOVDW) || (OpcMasked == OPCODE_MOVDD)) {
- MoveSize = DATA_SIZE_32;
- DataMask = 0xFFFFFFFF;
+ MoveSize = DATA_SIZE_32;
+ DataMask = 0xFFFFFFFF;
} else if ((OpcMasked == OPCODE_MOVQW) || (OpcMasked == OPCODE_MOVQD) || (OpcMasked == OPCODE_MOVQQ)) {
- MoveSize = DATA_SIZE_64;
- DataMask = (UINT64)~0;
+ MoveSize = DATA_SIZE_64;
+ DataMask = (UINT64) ~0;
} else if ((OpcMasked == OPCODE_MOVNW) || (OpcMasked == OPCODE_MOVND)) {
- MoveSize = DATA_SIZE_N;
- DataMask = (UINT64)~0 >> (64 - 8 * sizeof (UINTN));
+ MoveSize = DATA_SIZE_N;
+ DataMask = (UINT64) ~0 >> (64 - 8 * sizeof (UINTN));
} else {
//
// We were dispatched to this function and we don't recognize the opcode
@@ -1670,6 +1675,7 @@ ExecuteMOVxx (
EbcDebugSignalException (EXCEPT_EBC_UNDEFINED, EXCEPTION_FLAG_FATAL, VmPtr);
return EFI_UNSUPPORTED;
}
+
//
// Now get the source address
//
@@ -1677,43 +1683,43 @@ ExecuteMOVxx (
//
// Indirect form @R2. Compute address of operand2
//
- Source = (UINTN) (VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index64Op2);
+ Source = (UINTN)(VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index64Op2);
//
// Now get the data from the source. Always 0-extend and let the compiler
// sign-extend where required.
//
switch (MoveSize) {
- case DATA_SIZE_8:
- Data64 = (UINT64) (UINT8) VmReadMem8 (VmPtr, Source);
- break;
-
- case DATA_SIZE_16:
- Data64 = (UINT64) (UINT16) VmReadMem16 (VmPtr, Source);
- break;
-
- case DATA_SIZE_32:
- Data64 = (UINT64) (UINT32) VmReadMem32 (VmPtr, Source);
- break;
-
- case DATA_SIZE_64:
- Data64 = (UINT64) VmReadMem64 (VmPtr, Source);
- break;
-
- case DATA_SIZE_N:
- Data64 = (UINT64) (UINTN) VmReadMemN (VmPtr, Source);
- break;
-
- default:
- //
- // not reached
- //
- break;
+ case DATA_SIZE_8:
+ Data64 = (UINT64)(UINT8)VmReadMem8 (VmPtr, Source);
+ break;
+
+ case DATA_SIZE_16:
+ Data64 = (UINT64)(UINT16)VmReadMem16 (VmPtr, Source);
+ break;
+
+ case DATA_SIZE_32:
+ Data64 = (UINT64)(UINT32)VmReadMem32 (VmPtr, Source);
+ break;
+
+ case DATA_SIZE_64:
+ Data64 = (UINT64)VmReadMem64 (VmPtr, Source);
+ break;
+
+ case DATA_SIZE_N:
+ Data64 = (UINT64)(UINTN)VmReadMemN (VmPtr, Source);
+ break;
+
+ default:
+ //
+ // not reached
+ //
+ break;
}
} else {
//
// Not indirect source: MOVxx {@}Rx, Ry [Index]
//
- Data64 = (UINT64) (VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index64Op2);
+ Data64 = (UINT64)(VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index64Op2);
//
// Did Operand2 have an index? If so, treat as two signed values since
// indexes are signed values.
@@ -1737,11 +1743,13 @@ ExecuteMOVxx (
(Index64Op2 > 0) &&
(OPERAND1_REGNUM (Operands) == 0) &&
(OPERAND1_INDIRECT (Operands))
- ) {
- Data64 = (UINT64) ConvertStackAddr (VmPtr, (UINTN) (INT64) Data64);
+ )
+ {
+ Data64 = (UINT64)ConvertStackAddr (VmPtr, (UINTN)(INT64)Data64);
}
}
}
+
//
// Now write it back
//
@@ -1749,36 +1757,36 @@ ExecuteMOVxx (
//
// Reuse the Source variable to now be dest.
//
- Source = (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index64Op1);
+ Source = (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index64Op1);
//
// Do the write based on the size
//
switch (MoveSize) {
- case DATA_SIZE_8:
- VmWriteMem8 (VmPtr, Source, (UINT8) Data64);
- break;
-
- case DATA_SIZE_16:
- VmWriteMem16 (VmPtr, Source, (UINT16) Data64);
- break;
-
- case DATA_SIZE_32:
- VmWriteMem32 (VmPtr, Source, (UINT32) Data64);
- break;
-
- case DATA_SIZE_64:
- VmWriteMem64 (VmPtr, Source, Data64);
- break;
-
- case DATA_SIZE_N:
- VmWriteMemN (VmPtr, Source, (UINTN) Data64);
- break;
-
- default:
- //
- // not reached
- //
- break;
+ case DATA_SIZE_8:
+ VmWriteMem8 (VmPtr, Source, (UINT8)Data64);
+ break;
+
+ case DATA_SIZE_16:
+ VmWriteMem16 (VmPtr, Source, (UINT16)Data64);
+ break;
+
+ case DATA_SIZE_32:
+ VmWriteMem32 (VmPtr, Source, (UINT32)Data64);
+ break;
+
+ case DATA_SIZE_64:
+ VmWriteMem64 (VmPtr, Source, Data64);
+ break;
+
+ case DATA_SIZE_N:
+ VmWriteMemN (VmPtr, Source, (UINTN)Data64);
+ break;
+
+ default:
+ //
+ // not reached
+ //
+ break;
}
} else {
//
@@ -1793,12 +1801,14 @@ ExecuteMOVxx (
);
return EFI_UNSUPPORTED;
}
+
//
// Direct storage in register. Clear unused bits and store back to
// register.
//
VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = Data64 & DataMask;
}
+
//
// Advance the instruction pointer
//
@@ -1806,7 +1816,6 @@ ExecuteMOVxx (
return EFI_SUCCESS;
}
-
/**
Execute the EBC BREAK instruction.
@@ -1817,7 +1826,7 @@ ExecuteMOVxx (
**/
EFI_STATUS
ExecuteBREAK (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
EFI_STATUS Status;
@@ -1827,91 +1836,92 @@ ExecuteBREAK (
UINT64 U64EbcEntryPoint;
INT32 Offset;
- Thunk = NULL;
+ Thunk = NULL;
Operands = GETOPERANDS (VmPtr);
switch (Operands) {
- //
- // Runaway program break. Generate an exception and terminate
- //
- case 0:
- EbcDebugSignalException (EXCEPT_EBC_BAD_BREAK, EXCEPTION_FLAG_FATAL, VmPtr);
- break;
-
- //
- // Get VM version -- return VM revision number in R7
- //
- case 1:
//
- // Bits:
- // 63-17 = 0
- // 16-8 = Major version
- // 7-0 = Minor version
+ // Runaway program break. Generate an exception and terminate
//
- VmPtr->Gpr[7] = GetVmVersion ();
- break;
+ case 0:
+ EbcDebugSignalException (EXCEPT_EBC_BAD_BREAK, EXCEPTION_FLAG_FATAL, VmPtr);
+ break;
- //
- // Debugger breakpoint
- //
- case 3:
- VmPtr->StopFlags |= STOPFLAG_BREAKPOINT;
//
- // See if someone has registered a handler
+ // Get VM version -- return VM revision number in R7
//
- EbcDebugSignalException (
- EXCEPT_EBC_BREAKPOINT,
- EXCEPTION_FLAG_NONE,
- VmPtr
- );
- break;
-
- //
- // System call, which there are none, so NOP it.
- //
- case 4:
- break;
+ case 1:
+ //
+ // Bits:
+ // 63-17 = 0
+ // 16-8 = Major version
+ // 7-0 = Minor version
+ //
+ VmPtr->Gpr[7] = GetVmVersion ();
+ break;
- //
- // Create a thunk for EBC code. R7 points to a 32-bit (in a 64-bit slot)
- // "offset from self" pointer to the EBC entry point.
- // After we're done, *(UINT64 *)R7 will be the address of the new thunk.
- //
- case 5:
- Offset = (INT32) VmReadMem32 (VmPtr, (UINTN) VmPtr->Gpr[7]);
- U64EbcEntryPoint = (UINT64) (VmPtr->Gpr[7] + Offset + 4);
- EbcEntryPoint = (VOID *) (UINTN) U64EbcEntryPoint;
+ //
+ // Debugger breakpoint
+ //
+ case 3:
+ VmPtr->StopFlags |= STOPFLAG_BREAKPOINT;
+ //
+ // See if someone has registered a handler
+ //
+ EbcDebugSignalException (
+ EXCEPT_EBC_BREAKPOINT,
+ EXCEPTION_FLAG_NONE,
+ VmPtr
+ );
+ break;
//
- // Now create a new thunk
+ // System call, which there are none, so NOP it.
//
- Status = EbcCreateThunks (VmPtr->ImageHandle, EbcEntryPoint, &Thunk, 0);
- if (EFI_ERROR (Status)) {
- return Status;
- }
+ case 4:
+ break;
//
- // Finally replace the EBC entry point memory with the thunk address
+ // Create a thunk for EBC code. R7 points to a 32-bit (in a 64-bit slot)
+ // "offset from self" pointer to the EBC entry point.
+ // After we're done, *(UINT64 *)R7 will be the address of the new thunk.
//
- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[7], (UINT64) (UINTN) Thunk);
- break;
+ case 5:
+ Offset = (INT32)VmReadMem32 (VmPtr, (UINTN)VmPtr->Gpr[7]);
+ U64EbcEntryPoint = (UINT64)(VmPtr->Gpr[7] + Offset + 4);
+ EbcEntryPoint = (VOID *)(UINTN)U64EbcEntryPoint;
+
+ //
+ // Now create a new thunk
+ //
+ Status = EbcCreateThunks (VmPtr->ImageHandle, EbcEntryPoint, &Thunk, 0);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ //
+ // Finally replace the EBC entry point memory with the thunk address
+ //
+ VmWriteMem64 (VmPtr, (UINTN)VmPtr->Gpr[7], (UINT64)(UINTN)Thunk);
+ break;
- //
- // Compiler setting version per value in R7
- //
- case 6:
- VmPtr->CompilerVersion = (UINT32) VmPtr->Gpr[7];
//
- // Check compiler version against VM version?
+ // Compiler setting version per value in R7
//
- break;
+ case 6:
+ VmPtr->CompilerVersion = (UINT32)VmPtr->Gpr[7];
+ //
+ // Check compiler version against VM version?
+ //
+ break;
- //
- // Unhandled break code. Signal exception.
- //
- default:
- EbcDebugSignalException (EXCEPT_EBC_BAD_BREAK, EXCEPTION_FLAG_FATAL, VmPtr);
- break;
+ //
+ // Unhandled break code. Signal exception.
+ //
+ default:
+ EbcDebugSignalException (EXCEPT_EBC_BAD_BREAK, EXCEPTION_FLAG_FATAL, VmPtr);
+ break;
}
+
//
// Advance IP
//
@@ -1919,7 +1929,6 @@ ExecuteBREAK (
return EFI_SUCCESS;
}
-
/**
Execute the JMP instruction.
@@ -1947,7 +1956,7 @@ ExecuteBREAK (
**/
EFI_STATUS
ExecuteJMP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -1972,8 +1981,8 @@ ExecuteJMP (
// Decode instruction conditions
// If we haven't met the condition, then simply advance the IP and return.
//
- CompareSet = (UINT8) (((Operand & JMP_M_CS) != 0) ? 1 : 0);
- ConditionFlag = (UINT8) VMFLAG_ISSET (VmPtr, VMFLAGS_CC);
+ CompareSet = (UINT8)(((Operand & JMP_M_CS) != 0) ? 1 : 0);
+ ConditionFlag = (UINT8)VMFLAG_ISSET (VmPtr, VMFLAGS_CC);
if ((Operand & CONDITION_M_CONDITIONAL) != 0) {
if (CompareSet != ConditionFlag) {
EbcDebuggerHookJMPStart (VmPtr);
@@ -1982,6 +1991,7 @@ ExecuteJMP (
return EFI_SUCCESS;
}
}
+
//
// Check for 64-bit form and do it right away since it's the most
// straight-forward form.
@@ -1999,12 +2009,13 @@ ExecuteJMP (
);
return EFI_UNSUPPORTED;
}
+
//
// 64-bit immediate data is full address. Read the immediate data,
// check for alignment, and jump absolute.
//
- Data64 = (UINT64) VmReadImmed64 (VmPtr, 2);
- if (!IS_ALIGNED ((UINTN) Data64, sizeof (UINT16))) {
+ Data64 = (UINT64)VmReadImmed64 (VmPtr, 2);
+ if (!IS_ALIGNED ((UINTN)Data64, sizeof (UINT16))) {
EbcDebugSignalException (
EXCEPT_EBC_ALIGNMENT_CHECK,
EXCEPTION_FLAG_FATAL,
@@ -2019,14 +2030,16 @@ ExecuteJMP (
//
EbcDebuggerHookJMPStart (VmPtr);
if ((Operand & JMP_M_RELATIVE) != 0) {
- VmPtr->Ip += (UINTN) Data64 + Size;
+ VmPtr->Ip += (UINTN)Data64 + Size;
} else {
- VmPtr->Ip = (VMIP) (UINTN) Data64;
+ VmPtr->Ip = (VMIP)(UINTN)Data64;
}
+
EbcDebuggerHookJMPEnd (VmPtr);
return EFI_SUCCESS;
}
+
//
// 32-bit forms:
// Get the index if there is one. May be either an index, or an immediate
@@ -2043,14 +2056,16 @@ ExecuteJMP (
} else {
Index32 = 0;
}
+
//
// Get the register data. If R == 0, then special case where it's ignored.
//
if (OPERAND1_REGNUM (Operand) == 0) {
Data64 = 0;
} else {
- Data64 = (UINT64) OPERAND1_REGDATA (VmPtr, Operand);
+ Data64 = (UINT64)OPERAND1_REGDATA (VmPtr, Operand);
}
+
//
// Decode the forms
//
@@ -2058,8 +2073,8 @@ ExecuteJMP (
//
// Form: JMP32 @Rx {Index32}
//
- Addr = VmReadMemN (VmPtr, (UINTN) Data64 + Index32);
- if (!IS_ALIGNED ((UINTN) Addr, sizeof (UINT16))) {
+ Addr = VmReadMemN (VmPtr, (UINTN)Data64 + Index32);
+ if (!IS_ALIGNED ((UINTN)Addr, sizeof (UINT16))) {
EbcDebugSignalException (
EXCEPT_EBC_ALIGNMENT_CHECK,
EXCEPTION_FLAG_FATAL,
@@ -2071,18 +2086,18 @@ ExecuteJMP (
EbcDebuggerHookJMPStart (VmPtr);
if ((Operand & JMP_M_RELATIVE) != 0) {
- VmPtr->Ip += (UINTN) Addr + Size;
+ VmPtr->Ip += (UINTN)Addr + Size;
} else {
- VmPtr->Ip = (VMIP) Addr;
+ VmPtr->Ip = (VMIP)Addr;
}
- EbcDebuggerHookJMPEnd (VmPtr);
+ EbcDebuggerHookJMPEnd (VmPtr);
} else {
//
// Form: JMP32 Rx {Immed32}
//
- Addr = (UINTN) (Data64 + Index32);
- if (!IS_ALIGNED ((UINTN) Addr, sizeof (UINT16))) {
+ Addr = (UINTN)(Data64 + Index32);
+ if (!IS_ALIGNED ((UINTN)Addr, sizeof (UINT16))) {
EbcDebugSignalException (
EXCEPT_EBC_ALIGNMENT_CHECK,
EXCEPTION_FLAG_FATAL,
@@ -2094,18 +2109,17 @@ ExecuteJMP (
EbcDebuggerHookJMPStart (VmPtr);
if ((Operand & JMP_M_RELATIVE) != 0) {
- VmPtr->Ip += (UINTN) Addr + Size;
+ VmPtr->Ip += (UINTN)Addr + Size;
} else {
- VmPtr->Ip = (VMIP) Addr;
+ VmPtr->Ip = (VMIP)Addr;
}
- EbcDebuggerHookJMPEnd (VmPtr);
+ EbcDebuggerHookJMPEnd (VmPtr);
}
return EFI_SUCCESS;
}
-
/**
Execute the EBC JMP8 instruction.
@@ -2119,20 +2133,20 @@ ExecuteJMP (
**/
EFI_STATUS
ExecuteJMP8 (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- UINT8 Opcode;
- UINT8 ConditionFlag;
- UINT8 CompareSet;
- INT8 Offset;
+ UINT8 Opcode;
+ UINT8 ConditionFlag;
+ UINT8 CompareSet;
+ INT8 Offset;
//
// Decode instruction.
//
Opcode = GETOPCODE (VmPtr);
- CompareSet = (UINT8) (((Opcode & JMP_M_CS) != 0) ? 1 : 0);
- ConditionFlag = (UINT8) VMFLAG_ISSET (VmPtr, VMFLAGS_CC);
+ CompareSet = (UINT8)(((Opcode & JMP_M_CS) != 0) ? 1 : 0);
+ ConditionFlag = (UINT8)VMFLAG_ISSET (VmPtr, VMFLAGS_CC);
//
// If we haven't met the condition, then simply advance the IP and return
@@ -2145,6 +2159,7 @@ ExecuteJMP8 (
return EFI_SUCCESS;
}
}
+
//
// Get the offset from the instruction stream. It's relative to the
// following instruction, and divided by 2.
@@ -2159,7 +2174,6 @@ ExecuteJMP8 (
return EFI_SUCCESS;
}
-
/**
Execute the EBC MOVI.
@@ -2183,7 +2197,7 @@ ExecuteJMP8 (
**/
EFI_STATUS
ExecuteMOVI (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2197,8 +2211,8 @@ ExecuteMOVI (
//
// Get the opcode and operands byte so we can get R1 and R2
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get the index (16-bit) if present
@@ -2210,18 +2224,19 @@ ExecuteMOVI (
Index16 = 0;
Size = 2;
}
+
//
// Extract the immediate data. Sign-extend always.
//
if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH16) {
- ImmData64 = (INT64) (INT16) VmReadImmed16 (VmPtr, Size);
- Size += 2;
+ ImmData64 = (INT64)(INT16)VmReadImmed16 (VmPtr, Size);
+ Size += 2;
} else if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH32) {
- ImmData64 = (INT64) (INT32) VmReadImmed32 (VmPtr, Size);
- Size += 4;
+ ImmData64 = (INT64)(INT32)VmReadImmed32 (VmPtr, Size);
+ Size += 4;
} else if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH64) {
- ImmData64 = (INT64) VmReadImmed64 (VmPtr, Size);
- Size += 8;
+ ImmData64 = (INT64)VmReadImmed64 (VmPtr, Size);
+ Size += 8;
} else {
//
// Invalid encoding
@@ -2233,6 +2248,7 @@ ExecuteMOVI (
);
return EFI_UNSUPPORTED;
}
+
//
// Now write back the result
//
@@ -2248,6 +2264,7 @@ ExecuteMOVI (
);
return EFI_UNSUPPORTED;
}
+
//
// Writing directly to a register. Clear unused bits.
//
@@ -2258,7 +2275,7 @@ ExecuteMOVI (
} else if ((Operands & MOVI_M_MOVEWIDTH) == MOVI_MOVEWIDTH32) {
Mask64 = 0x00000000FFFFFFFF;
} else {
- Mask64 = (UINT64)~0;
+ Mask64 = (UINT64) ~0;
}
VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = ImmData64 & Mask64;
@@ -2266,17 +2283,18 @@ ExecuteMOVI (
//
// Get the address then write back based on size of the move
//
- Op1 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
+ Op1 = (UINT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
if ((Operands & MOVI_M_MOVEWIDTH) == MOVI_MOVEWIDTH8) {
- VmWriteMem8 (VmPtr, (UINTN) Op1, (UINT8) ImmData64);
+ VmWriteMem8 (VmPtr, (UINTN)Op1, (UINT8)ImmData64);
} else if ((Operands & MOVI_M_MOVEWIDTH) == MOVI_MOVEWIDTH16) {
- VmWriteMem16 (VmPtr, (UINTN) Op1, (UINT16) ImmData64);
+ VmWriteMem16 (VmPtr, (UINTN)Op1, (UINT16)ImmData64);
} else if ((Operands & MOVI_M_MOVEWIDTH) == MOVI_MOVEWIDTH32) {
- VmWriteMem32 (VmPtr, (UINTN) Op1, (UINT32) ImmData64);
+ VmWriteMem32 (VmPtr, (UINTN)Op1, (UINT32)ImmData64);
} else {
- VmWriteMem64 (VmPtr, (UINTN) Op1, (UINT64) ImmData64);
+ VmWriteMem64 (VmPtr, (UINTN)Op1, (UINT64)ImmData64);
}
}
+
//
// Advance the instruction pointer
//
@@ -2284,7 +2302,6 @@ ExecuteMOVI (
return EFI_SUCCESS;
}
-
/**
Execute the EBC MOV immediate natural. This instruction moves an immediate
index value into a register or memory location.
@@ -2301,7 +2318,7 @@ ExecuteMOVI (
**/
EFI_STATUS
ExecuteMOVIn (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2316,8 +2333,8 @@ ExecuteMOVIn (
//
// Get the opcode and operands byte so we can get R1 and R2
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get the operand1 index (16-bit) if present
@@ -2329,20 +2346,21 @@ ExecuteMOVIn (
Index16 = 0;
Size = 2;
}
+
//
// Extract the immediate data and convert to a 64-bit index.
//
if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH16) {
- ImmedIndex16 = VmReadIndex16 (VmPtr, Size);
- ImmedIndex64 = (INT64) ImmedIndex16;
- Size += 2;
+ ImmedIndex16 = VmReadIndex16 (VmPtr, Size);
+ ImmedIndex64 = (INT64)ImmedIndex16;
+ Size += 2;
} else if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH32) {
- ImmedIndex32 = VmReadIndex32 (VmPtr, Size);
- ImmedIndex64 = (INT64) ImmedIndex32;
- Size += 4;
+ ImmedIndex32 = VmReadIndex32 (VmPtr, Size);
+ ImmedIndex64 = (INT64)ImmedIndex32;
+ Size += 4;
} else if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH64) {
ImmedIndex64 = VmReadIndex64 (VmPtr, Size);
- Size += 8;
+ Size += 8;
} else {
//
// Invalid encoding
@@ -2354,6 +2372,7 @@ ExecuteMOVIn (
);
return EFI_UNSUPPORTED;
}
+
//
// Now write back the result
//
@@ -2376,9 +2395,10 @@ ExecuteMOVIn (
//
// Get the address
//
- Op1 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
- VmWriteMemN (VmPtr, (UINTN) Op1, (UINTN)(INTN) ImmedIndex64);
+ Op1 = (UINT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
+ VmWriteMemN (VmPtr, (UINTN)Op1, (UINTN)(INTN)ImmedIndex64);
}
+
//
// Advance the instruction pointer
//
@@ -2386,7 +2406,6 @@ ExecuteMOVIn (
return EFI_SUCCESS;
}
-
/**
Execute the EBC MOVREL instruction.
Dest <- Ip + ImmData
@@ -2403,7 +2422,7 @@ ExecuteMOVIn (
**/
EFI_STATUS
ExecuteMOVREL (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2417,8 +2436,8 @@ ExecuteMOVREL (
//
// Get the opcode and operands byte so we can get R1 and R2
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get the Operand 1 index (16-bit) if present
@@ -2430,18 +2449,19 @@ ExecuteMOVREL (
Index16 = 0;
Size = 2;
}
+
//
// Get the immediate data.
//
if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH16) {
- ImmData64 = (INT64) VmReadImmed16 (VmPtr, Size);
- Size += 2;
+ ImmData64 = (INT64)VmReadImmed16 (VmPtr, Size);
+ Size += 2;
} else if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH32) {
- ImmData64 = (INT64) VmReadImmed32 (VmPtr, Size);
- Size += 4;
+ ImmData64 = (INT64)VmReadImmed32 (VmPtr, Size);
+ Size += 4;
} else if ((Opcode & MOVI_M_DATAWIDTH) == MOVI_DATAWIDTH64) {
ImmData64 = VmReadImmed64 (VmPtr, Size);
- Size += 8;
+ Size += 8;
} else {
//
// Invalid encoding
@@ -2453,10 +2473,11 @@ ExecuteMOVREL (
);
return EFI_UNSUPPORTED;
}
+
//
// Compute the value and write back the result
//
- Op2 = (UINT64) ((INT64) ((UINT64) (UINTN) VmPtr->Ip) + (INT64) ImmData64 + Size);
+ Op2 = (UINT64)((INT64)((UINT64)(UINTN)VmPtr->Ip) + (INT64)ImmData64 + Size);
if (!OPERAND1_INDIRECT (Operands)) {
//
// Check for illegal combination of operand1 direct with immediate data
@@ -2470,16 +2491,17 @@ ExecuteMOVREL (
return EFI_UNSUPPORTED;
}
- VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (VM_REGISTER) Op2;
+ VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (VM_REGISTER)Op2;
} else {
//
// Get the address = [Rx] + Index16
// Write back the result. Always a natural size write, since
// we're talking addresses here.
//
- Op1 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
- VmWriteMemN (VmPtr, (UINTN) Op1, (UINTN) Op2);
+ Op1 = (UINT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
+ VmWriteMemN (VmPtr, (UINTN)Op1, (UINTN)Op2);
}
+
//
// Advance the instruction pointer
//
@@ -2487,7 +2509,6 @@ ExecuteMOVREL (
return EFI_SUCCESS;
}
-
/**
Execute the EBC MOVsnw instruction. This instruction loads a signed
natural value from memory or register to another memory or register. On
@@ -2509,7 +2530,7 @@ ExecuteMOVREL (
**/
EFI_STATUS
ExecuteMOVsnw (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2522,16 +2543,16 @@ ExecuteMOVsnw (
//
// Get the opcode and operand bytes
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
- Op1Index = Op2Index = 0;
+ Op1Index = Op2Index = 0;
//
// Get the indexes if present.
//
Size = 2;
- if ((Opcode & OPCODE_M_IMMED_OP1) !=0) {
+ if ((Opcode & OPCODE_M_IMMED_OP1) != 0) {
if (OPERAND1_INDIRECT (Operands)) {
Op1Index = VmReadIndex16 (VmPtr, 2);
} else {
@@ -2558,21 +2579,24 @@ ExecuteMOVsnw (
Size += sizeof (UINT16);
}
+
//
// Get the data from the source.
//
Op2 = (UINT64)(INT64)(INTN)(VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Op2Index);
if (OPERAND2_INDIRECT (Operands)) {
- Op2 = (UINT64)(INT64)(INTN)VmReadMemN (VmPtr, (UINTN) Op2);
+ Op2 = (UINT64)(INT64)(INTN)VmReadMemN (VmPtr, (UINTN)Op2);
}
+
//
// Now write back the result.
//
if (!OPERAND1_INDIRECT (Operands)) {
VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = Op2;
} else {
- VmWriteMemN (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Op1Index), (UINTN) Op2);
+ VmWriteMemN (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Op1Index), (UINTN)Op2);
}
+
//
// Advance the instruction pointer
//
@@ -2580,7 +2604,6 @@ ExecuteMOVsnw (
return EFI_SUCCESS;
}
-
/**
Execute the EBC MOVsnw instruction. This instruction loads a signed
natural value from memory or register to another memory or register. On
@@ -2602,7 +2625,7 @@ ExecuteMOVsnw (
**/
EFI_STATUS
ExecuteMOVsnd (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2615,10 +2638,10 @@ ExecuteMOVsnd (
//
// Get the opcode and operand bytes
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
- Op1Index = Op2Index = 0;
+ Op1Index = Op2Index = 0;
//
// Get the indexes if present.
@@ -2651,21 +2674,24 @@ ExecuteMOVsnd (
Size += sizeof (UINT32);
}
+
//
// Get the data from the source.
//
Op2 = (UINT64)(INT64)(INTN)(INT64)(VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Op2Index);
if (OPERAND2_INDIRECT (Operands)) {
- Op2 = (UINT64)(INT64)(INTN)(INT64)VmReadMemN (VmPtr, (UINTN) Op2);
+ Op2 = (UINT64)(INT64)(INTN)(INT64)VmReadMemN (VmPtr, (UINTN)Op2);
}
+
//
// Now write back the result.
//
if (!OPERAND1_INDIRECT (Operands)) {
VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = Op2;
} else {
- VmWriteMemN (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Op1Index), (UINTN) Op2);
+ VmWriteMemN (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Op1Index), (UINTN)Op2);
}
+
//
// Advance the instruction pointer
//
@@ -2673,7 +2699,6 @@ ExecuteMOVsnd (
return EFI_SUCCESS;
}
-
/**
Execute the EBC PUSHn instruction
@@ -2687,19 +2712,19 @@ ExecuteMOVsnd (
**/
EFI_STATUS
ExecutePUSHn (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- UINT8 Opcode;
- UINT8 Operands;
- INT16 Index16;
- UINTN DataN;
+ UINT8 Opcode;
+ UINT8 Operands;
+ INT16 Index16;
+ UINTN DataN;
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get index if present
@@ -2713,26 +2738,27 @@ ExecutePUSHn (
VmPtr->Ip += 4;
} else {
- Index16 = 0;
+ Index16 = 0;
VmPtr->Ip += 2;
}
+
//
// Get the data to push
//
if (OPERAND1_INDIRECT (Operands)) {
- DataN = VmReadMemN (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16));
+ DataN = VmReadMemN (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16));
} else {
- DataN = (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16);
+ DataN = (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16);
}
+
//
// Adjust the stack down.
//
VmPtr->Gpr[0] -= sizeof (UINTN);
- VmWriteMemN (VmPtr, (UINTN) VmPtr->Gpr[0], DataN);
+ VmWriteMemN (VmPtr, (UINTN)VmPtr->Gpr[0], DataN);
return EFI_SUCCESS;
}
-
/**
Execute the EBC PUSH instruction.
@@ -2746,7 +2772,7 @@ ExecutePUSHn (
**/
EFI_STATUS
ExecutePUSH (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2758,8 +2784,8 @@ ExecutePUSH (
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get immediate index if present, then advance the IP.
//
@@ -2772,43 +2798,45 @@ ExecutePUSH (
VmPtr->Ip += 4;
} else {
- Index16 = 0;
+ Index16 = 0;
VmPtr->Ip += 2;
}
+
//
// Get the data to push
//
if ((Opcode & PUSHPOP_M_64) != 0) {
if (OPERAND1_INDIRECT (Operands)) {
- Data64 = VmReadMem64 (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16));
+ Data64 = VmReadMem64 (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16));
} else {
- Data64 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
+ Data64 = (UINT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
}
+
//
// Adjust the stack down, then write back the data
//
VmPtr->Gpr[0] -= sizeof (UINT64);
- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[0], Data64);
+ VmWriteMem64 (VmPtr, (UINTN)VmPtr->Gpr[0], Data64);
} else {
//
// 32-bit data
//
if (OPERAND1_INDIRECT (Operands)) {
- Data32 = VmReadMem32 (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16));
+ Data32 = VmReadMem32 (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16));
} else {
- Data32 = (UINT32) VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
+ Data32 = (UINT32)VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;
}
+
//
// Adjust the stack down and write the data
//
VmPtr->Gpr[0] -= sizeof (UINT32);
- VmWriteMem32 (VmPtr, (UINTN) VmPtr->Gpr[0], Data32);
+ VmWriteMem32 (VmPtr, (UINTN)VmPtr->Gpr[0], Data32);
}
return EFI_SUCCESS;
}
-
/**
Execute the EBC POPn instruction.
@@ -2822,19 +2850,19 @@ ExecutePUSH (
**/
EFI_STATUS
ExecutePOPn (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- UINT8 Opcode;
- UINT8 Operands;
- INT16 Index16;
- UINTN DataN;
+ UINT8 Opcode;
+ UINT8 Operands;
+ INT16 Index16;
+ UINTN DataN;
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get immediate data if present, and advance the IP
//
@@ -2847,27 +2875,27 @@ ExecutePOPn (
VmPtr->Ip += 4;
} else {
- Index16 = 0;
+ Index16 = 0;
VmPtr->Ip += 2;
}
+
//
// Read the data off the stack, then adjust the stack pointer
//
- DataN = VmReadMemN (VmPtr, (UINTN) VmPtr->Gpr[0]);
+ DataN = VmReadMemN (VmPtr, (UINTN)VmPtr->Gpr[0]);
VmPtr->Gpr[0] += sizeof (UINTN);
//
// Do the write-back
//
if (OPERAND1_INDIRECT (Operands)) {
- VmWriteMemN (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16), DataN);
+ VmWriteMemN (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16), DataN);
} else {
- VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (INT64) (UINT64) (UINTN) (DataN + Index16);
+ VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (INT64)(UINT64)(UINTN)(DataN + Index16);
}
return EFI_SUCCESS;
}
-
/**
Execute the EBC POP instruction.
@@ -2881,7 +2909,7 @@ ExecutePOPn (
**/
EFI_STATUS
ExecutePOP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -2893,8 +2921,8 @@ ExecutePOP (
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get immediate data if present, and advance the IP.
//
@@ -2907,9 +2935,10 @@ ExecutePOP (
VmPtr->Ip += 4;
} else {
- Index16 = 0;
+ Index16 = 0;
VmPtr->Ip += 2;
}
+
//
// Get the data off the stack, then write it to the appropriate location
//
@@ -2917,13 +2946,13 @@ ExecutePOP (
//
// Read the data off the stack, then adjust the stack pointer
//
- Data64 = VmReadMem64 (VmPtr, (UINTN) VmPtr->Gpr[0]);
+ Data64 = VmReadMem64 (VmPtr, (UINTN)VmPtr->Gpr[0]);
VmPtr->Gpr[0] += sizeof (UINT64);
//
// Do the write-back
//
if (OPERAND1_INDIRECT (Operands)) {
- VmWriteMem64 (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16), Data64);
+ VmWriteMem64 (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16), Data64);
} else {
VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = Data64 + Index16;
}
@@ -2931,22 +2960,21 @@ ExecutePOP (
//
// 32-bit pop. Read it off the stack and adjust the stack pointer
//
- Data32 = (INT32) VmReadMem32 (VmPtr, (UINTN) VmPtr->Gpr[0]);
+ Data32 = (INT32)VmReadMem32 (VmPtr, (UINTN)VmPtr->Gpr[0]);
VmPtr->Gpr[0] += sizeof (UINT32);
//
// Do the write-back
//
if (OPERAND1_INDIRECT (Operands)) {
- VmWriteMem32 (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16), Data32);
+ VmWriteMem32 (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16), Data32);
} else {
- VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (INT64) Data32 + Index16;
+ VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (INT64)Data32 + Index16;
}
}
return EFI_SUCCESS;
}
-
/**
Implements the EBC CALL instruction.
@@ -2965,21 +2993,21 @@ ExecutePOP (
**/
EFI_STATUS
ExecuteCALL (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- UINT8 Opcode;
- UINT8 Operands;
- INT32 Immed32;
- UINT8 Size;
- INT64 Immed64;
- VOID *FramePtr;
+ UINT8 Opcode;
+ UINT8 Operands;
+ INT32 Immed32;
+ UINT8 Size;
+ INT64 Immed64;
+ VOID *FramePtr;
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
if ((Operands & OPERAND_M_NATIVE_CALL) != 0) {
EbcDebuggerHookCALLEXStart (VmPtr);
@@ -2990,10 +3018,10 @@ ExecuteCALL (
//
// Assign these as well to avoid compiler warnings
//
- Immed64 = 0;
- Immed32 = 0;
+ Immed64 = 0;
+ Immed32 = 0;
- FramePtr = VmPtr->FramePtr;
+ FramePtr = VmPtr->FramePtr;
//
// Determine the instruction size, and get immediate data if present
//
@@ -3016,17 +3044,19 @@ ExecuteCALL (
} else {
Size = 2;
}
+
//
// If it's a call to EBC, adjust the stack pointer down 16 bytes and
// put our return address and frame pointer on the VM stack.
//
if ((Operands & OPERAND_M_NATIVE_CALL) == 0) {
VmPtr->Gpr[0] -= 8;
- VmWriteMemN (VmPtr, (UINTN) VmPtr->Gpr[0], (UINTN) FramePtr);
- VmPtr->FramePtr = (VOID *) (UINTN) VmPtr->Gpr[0];
- VmPtr->Gpr[0] -= 8;
- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[0], (UINT64) (UINTN) (VmPtr->Ip + Size));
+ VmWriteMemN (VmPtr, (UINTN)VmPtr->Gpr[0], (UINTN)FramePtr);
+ VmPtr->FramePtr = (VOID *)(UINTN)VmPtr->Gpr[0];
+ VmPtr->Gpr[0] -= 8;
+ VmWriteMem64 (VmPtr, (UINTN)VmPtr->Gpr[0], (UINT64)(UINTN)(VmPtr->Ip + Size));
}
+
//
// If 64-bit data, then absolute jump only
//
@@ -3035,12 +3065,12 @@ ExecuteCALL (
// Native or EBC call?
//
if ((Operands & OPERAND_M_NATIVE_CALL) == 0) {
- VmPtr->Ip = (VMIP) (UINTN) Immed64;
+ VmPtr->Ip = (VMIP)(UINTN)Immed64;
} else {
//
// Call external function, get the return value, and advance the IP
//
- EbcLLCALLEX (VmPtr, (UINTN) Immed64, (UINTN) VmPtr->Gpr[0], FramePtr, Size);
+ EbcLLCALLEX (VmPtr, (UINTN)Immed64, (UINTN)VmPtr->Gpr[0], FramePtr, Size);
}
} else {
//
@@ -3049,16 +3079,18 @@ ExecuteCALL (
// Compiler should take care of upper bits if 32-bit machine.
//
if (OPERAND1_REGNUM (Operands) != 0) {
- Immed64 = (UINT64) (UINTN) VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
+ Immed64 = (UINT64)(UINTN)VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
}
+
//
// Get final address
//
if (OPERAND1_INDIRECT (Operands)) {
- Immed64 = (INT64) (UINT64) (UINTN) VmReadMemN (VmPtr, (UINTN) (Immed64 + Immed32));
+ Immed64 = (INT64)(UINT64)(UINTN)VmReadMemN (VmPtr, (UINTN)(Immed64 + Immed32));
} else {
Immed64 += Immed32;
}
+
//
// Now determine if external call, and then if relative or absolute
//
@@ -3070,20 +3102,20 @@ ExecuteCALL (
if ((Operands & OPERAND_M_RELATIVE_ADDR) != 0) {
VmPtr->Ip += Immed64 + Size;
} else {
- VmPtr->Ip = (VMIP) (UINTN) Immed64;
+ VmPtr->Ip = (VMIP)(UINTN)Immed64;
}
} else {
//
// Native call. Relative or absolute?
//
if ((Operands & OPERAND_M_RELATIVE_ADDR) != 0) {
- EbcLLCALLEX (VmPtr, (UINTN) (Immed64 + VmPtr->Ip + Size), (UINTN) VmPtr->Gpr[0], FramePtr, Size);
+ EbcLLCALLEX (VmPtr, (UINTN)(Immed64 + VmPtr->Ip + Size), (UINTN)VmPtr->Gpr[0], FramePtr, Size);
} else {
if ((VmPtr->StopFlags & STOPFLAG_BREAK_ON_CALLEX) != 0) {
CpuBreakpoint ();
}
- EbcLLCALLEX (VmPtr, (UINTN) Immed64, (UINTN) VmPtr->Gpr[0], FramePtr, Size);
+ EbcLLCALLEX (VmPtr, (UINTN)Immed64, (UINTN)VmPtr->Gpr[0], FramePtr, Size);
}
}
}
@@ -3097,7 +3129,6 @@ ExecuteCALL (
return EFI_SUCCESS;
}
-
/**
Execute the EBC RET instruction.
@@ -3111,46 +3142,44 @@ ExecuteCALL (
**/
EFI_STATUS
ExecuteRET (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
-
EbcDebuggerHookRETStart (VmPtr);
//
// If we're at the top of the stack, then simply set the done
// flag and return
//
- if (VmPtr->StackRetAddr == (UINT64) VmPtr->Gpr[0]) {
+ if (VmPtr->StackRetAddr == (UINT64)VmPtr->Gpr[0]) {
VmPtr->StopFlags |= STOPFLAG_APP_DONE;
} else {
//
// Pull the return address off the VM app's stack and set the IP
// to it
//
- if (!IS_ALIGNED ((UINTN) VmPtr->Gpr[0], sizeof (UINT16))) {
+ if (!IS_ALIGNED ((UINTN)VmPtr->Gpr[0], sizeof (UINT16))) {
EbcDebugSignalException (
EXCEPT_EBC_ALIGNMENT_CHECK,
EXCEPTION_FLAG_FATAL,
VmPtr
);
}
+
//
// Restore the IP and frame pointer from the stack
//
- VmPtr->Ip = (VMIP) (UINTN) VmReadMem64 (VmPtr, (UINTN) VmPtr->Gpr[0]);
- VmPtr->Gpr[0] += 8;
- VmPtr->FramePtr = (VOID *) VmReadMemN (VmPtr, (UINTN) VmPtr->Gpr[0]);
- VmPtr->Gpr[0] += 8;
+ VmPtr->Ip = (VMIP)(UINTN)VmReadMem64 (VmPtr, (UINTN)VmPtr->Gpr[0]);
+ VmPtr->Gpr[0] += 8;
+ VmPtr->FramePtr = (VOID *)VmReadMemN (VmPtr, (UINTN)VmPtr->Gpr[0]);
+ VmPtr->Gpr[0] += 8;
}
-
EbcDebuggerHookRETEnd (VmPtr);
return EFI_SUCCESS;
}
-
/**
Execute the EBC CMP instruction.
@@ -3165,7 +3194,7 @@ ExecuteRET (
**/
EFI_STATUS
ExecuteCMP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -3179,8 +3208,8 @@ ExecuteCMP (
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get the register data we're going to compare to
//
@@ -3200,21 +3229,23 @@ ExecuteCMP (
Index16 = 0;
Size = 2;
}
+
//
// Now get Op2
//
if (OPERAND2_INDIRECT (Operands)) {
if ((Opcode & OPCODE_M_64BIT) != 0) {
- Op2 = (INT64) VmReadMem64 (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16));
+ Op2 = (INT64)VmReadMem64 (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16));
} else {
//
// 32-bit operations. 0-extend the values for all cases.
//
- Op2 = (INT64) (UINT64) ((UINT32) VmReadMem32 (VmPtr, (UINTN) (VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16)));
+ Op2 = (INT64)(UINT64)((UINT32)VmReadMem32 (VmPtr, (UINTN)(VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16)));
}
} else {
Op2 = VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16;
}
+
//
// Now do the compare
//
@@ -3224,78 +3255,89 @@ ExecuteCMP (
// 64-bit compares
//
switch (Opcode & OPCODE_M_OPCODE) {
- case OPCODE_CMPEQ:
- if (Op1 == Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPEQ:
+ if (Op1 == Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPLTE:
- if (Op1 <= Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPGTE:
- if (Op1 >= Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPLTE:
+ if (Op1 <= Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPULTE:
- if ((UINT64) Op1 <= (UINT64) Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPUGTE:
- if ((UINT64) Op1 >= (UINT64) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPGTE:
+ if (Op1 >= Op2) {
+ Flag = 1;
+ }
- default:
- ASSERT (0);
+ break;
+
+ case OPCODE_CMPULTE:
+ if ((UINT64)Op1 <= (UINT64)Op2) {
+ Flag = 1;
+ }
+
+ break;
+
+ case OPCODE_CMPUGTE:
+ if ((UINT64)Op1 >= (UINT64)Op2) {
+ Flag = 1;
+ }
+
+ break;
+
+ default:
+ ASSERT (0);
}
} else {
//
// 32-bit compares
//
switch (Opcode & OPCODE_M_OPCODE) {
- case OPCODE_CMPEQ:
- if ((INT32) Op1 == (INT32) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPEQ:
+ if ((INT32)Op1 == (INT32)Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPLTE:
- if ((INT32) Op1 <= (INT32) Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPGTE:
- if ((INT32) Op1 >= (INT32) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPLTE:
+ if ((INT32)Op1 <= (INT32)Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPULTE:
- if ((UINT32) Op1 <= (UINT32) Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPUGTE:
- if ((UINT32) Op1 >= (UINT32) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPGTE:
+ if ((INT32)Op1 >= (INT32)Op2) {
+ Flag = 1;
+ }
- default:
- ASSERT (0);
+ break;
+
+ case OPCODE_CMPULTE:
+ if ((UINT32)Op1 <= (UINT32)Op2) {
+ Flag = 1;
+ }
+
+ break;
+
+ case OPCODE_CMPUGTE:
+ if ((UINT32)Op1 >= (UINT32)Op2) {
+ Flag = 1;
+ }
+
+ break;
+
+ default:
+ ASSERT (0);
}
}
+
//
// Now set the flag accordingly for the comparison
//
@@ -3304,6 +3346,7 @@ ExecuteCMP (
} else {
VMFLAG_CLEAR (VmPtr, (UINT64)VMFLAGS_CC);
}
+
//
// Advance the IP
//
@@ -3311,7 +3354,6 @@ ExecuteCMP (
return EFI_SUCCESS;
}
-
/**
Execute the EBC CMPI instruction
@@ -3326,7 +3368,7 @@ ExecuteCMP (
**/
EFI_STATUS
ExecuteCMPI (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
UINT8 Opcode;
@@ -3340,8 +3382,8 @@ ExecuteCMPI (
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Get operand1 index if present
@@ -3349,22 +3391,23 @@ ExecuteCMPI (
Size = 2;
if ((Operands & OPERAND_M_CMPI_INDEX) != 0) {
Index16 = VmReadIndex16 (VmPtr, 2);
- Size += 2;
+ Size += 2;
} else {
Index16 = 0;
}
+
//
// Get operand1 data we're going to compare to
//
- Op1 = (INT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
+ Op1 = (INT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
if (OPERAND1_INDIRECT (Operands)) {
//
// Indirect operand1. Fetch 32 or 64-bit value based on compare size.
//
if ((Opcode & OPCODE_M_CMPI64) != 0) {
- Op1 = (INT64) VmReadMem64 (VmPtr, (UINTN) Op1 + Index16);
+ Op1 = (INT64)VmReadMem64 (VmPtr, (UINTN)Op1 + Index16);
} else {
- Op1 = (INT64) VmReadMem32 (VmPtr, (UINTN) Op1 + Index16);
+ Op1 = (INT64)VmReadMem32 (VmPtr, (UINTN)Op1 + Index16);
}
} else {
//
@@ -3381,19 +3424,21 @@ ExecuteCMPI (
return EFI_UNSUPPORTED;
}
}
+
//
// Get immediate data -- 16- or 32-bit sign extended
//
if ((Opcode & OPCODE_M_CMPI32_DATA) != 0) {
- Op2 = (INT64) VmReadImmed32 (VmPtr, Size);
+ Op2 = (INT64)VmReadImmed32 (VmPtr, Size);
Size += 4;
} else {
//
// 16-bit immediate data. Sign extend always.
//
- Op2 = (INT64) ((INT16) VmReadImmed16 (VmPtr, Size));
+ Op2 = (INT64)((INT16)VmReadImmed16 (VmPtr, Size));
Size += 2;
}
+
//
// Now do the compare
//
@@ -3403,78 +3448,89 @@ ExecuteCMPI (
// 64 bit comparison
//
switch (Opcode & OPCODE_M_OPCODE) {
- case OPCODE_CMPIEQ:
- if (Op1 == (INT64) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPIEQ:
+ if (Op1 == (INT64)Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPILTE:
- if (Op1 <= (INT64) Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPIGTE:
- if (Op1 >= (INT64) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPILTE:
+ if (Op1 <= (INT64)Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPIULTE:
- if ((UINT64) Op1 <= (UINT64) ((UINT32) Op2)) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPIUGTE:
- if ((UINT64) Op1 >= (UINT64) ((UINT32) Op2)) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPIGTE:
+ if (Op1 >= (INT64)Op2) {
+ Flag = 1;
+ }
- default:
- ASSERT (0);
+ break;
+
+ case OPCODE_CMPIULTE:
+ if ((UINT64)Op1 <= (UINT64)((UINT32)Op2)) {
+ Flag = 1;
+ }
+
+ break;
+
+ case OPCODE_CMPIUGTE:
+ if ((UINT64)Op1 >= (UINT64)((UINT32)Op2)) {
+ Flag = 1;
+ }
+
+ break;
+
+ default:
+ ASSERT (0);
}
} else {
//
// 32-bit comparisons
//
switch (Opcode & OPCODE_M_OPCODE) {
- case OPCODE_CMPIEQ:
- if ((INT32) Op1 == Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPIEQ:
+ if ((INT32)Op1 == Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPILTE:
- if ((INT32) Op1 <= Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPIGTE:
- if ((INT32) Op1 >= Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPILTE:
+ if ((INT32)Op1 <= Op2) {
+ Flag = 1;
+ }
- case OPCODE_CMPIULTE:
- if ((UINT32) Op1 <= (UINT32) Op2) {
- Flag = 1;
- }
- break;
+ break;
- case OPCODE_CMPIUGTE:
- if ((UINT32) Op1 >= (UINT32) Op2) {
- Flag = 1;
- }
- break;
+ case OPCODE_CMPIGTE:
+ if ((INT32)Op1 >= Op2) {
+ Flag = 1;
+ }
- default:
- ASSERT (0);
+ break;
+
+ case OPCODE_CMPIULTE:
+ if ((UINT32)Op1 <= (UINT32)Op2) {
+ Flag = 1;
+ }
+
+ break;
+
+ case OPCODE_CMPIUGTE:
+ if ((UINT32)Op1 >= (UINT32)Op2) {
+ Flag = 1;
+ }
+
+ break;
+
+ default:
+ ASSERT (0);
}
}
+
//
// Now set the flag accordingly for the comparison
//
@@ -3483,6 +3539,7 @@ ExecuteCMPI (
} else {
VMFLAG_CLEAR (VmPtr, (UINT64)VMFLAGS_CC);
}
+
//
// Advance the IP
//
@@ -3490,7 +3547,6 @@ ExecuteCMPI (
return EFI_SUCCESS;
}
-
/**
Execute the EBC NOT instruction.s
@@ -3506,15 +3562,14 @@ ExecuteCMPI (
**/
UINT64
ExecuteNOT (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
return ~Op2;
}
-
/**
Execute the EBC NEG instruction.
@@ -3530,15 +3585,14 @@ ExecuteNOT (
**/
UINT64
ExecuteNEG (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
return ~Op2 + 1;
}
-
/**
Execute the EBC ADD instruction.
@@ -3554,15 +3608,14 @@ ExecuteNEG (
**/
UINT64
ExecuteADD (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
return Op1 + Op2;
}
-
/**
Execute the EBC SUB instruction.
@@ -3578,19 +3631,18 @@ ExecuteADD (
**/
UINT64
ExecuteSUB (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
- return (UINT64) ((INT64) ((INT64) Op1 - (INT64) Op2));
+ return (UINT64)((INT64)((INT64)Op1 - (INT64)Op2));
} else {
- return (UINT64) ((INT64) ((INT32) ((INT32) Op1 - (INT32) Op2)));
+ return (UINT64)((INT64)((INT32)((INT32)Op1 - (INT32)Op2)));
}
}
-
/**
Execute the EBC MUL instruction.
@@ -3606,19 +3658,18 @@ ExecuteSUB (
**/
UINT64
ExecuteMUL (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
return MultS64x64 ((INT64)Op1, (INT64)Op2);
} else {
- return (UINT64) ((INT64) ((INT32) ((INT32) Op1 * (INT32) Op2)));
+ return (UINT64)((INT64)((INT32)((INT32)Op1 * (INT32)Op2)));
}
}
-
/**
Execute the EBC MULU instruction
@@ -3634,19 +3685,18 @@ ExecuteMUL (
**/
UINT64
ExecuteMULU (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
return MultU64x64 (Op1, Op2);
} else {
- return (UINT64) ((UINT32) ((UINT32) Op1 * (UINT32) Op2));
+ return (UINT64)((UINT32)((UINT32)Op1 * (UINT32)Op2));
}
}
-
/**
Execute the EBC DIV instruction.
@@ -3662,12 +3712,12 @@ ExecuteMULU (
**/
UINT64
ExecuteDIV (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
- INT64 Remainder;
+ INT64 Remainder;
//
// Check for divide-by-0
@@ -3682,14 +3732,13 @@ ExecuteDIV (
return 0;
} else {
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
- return (UINT64) (DivS64x64Remainder (Op1, Op2, &Remainder));
+ return (UINT64)(DivS64x64Remainder (Op1, Op2, &Remainder));
} else {
- return (UINT64) ((INT64) ((INT32) Op1 / (INT32) Op2));
+ return (UINT64)((INT64)((INT32)Op1 / (INT32)Op2));
}
}
}
-
/**
Execute the EBC DIVU instruction
@@ -3705,9 +3754,9 @@ ExecuteDIV (
**/
UINT64
ExecuteDIVU (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
UINT64 Remainder;
@@ -3727,14 +3776,13 @@ ExecuteDIVU (
// Get the destination register
//
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
- return (UINT64) (DivU64x64Remainder (Op1, Op2, &Remainder));
+ return (UINT64)(DivU64x64Remainder (Op1, Op2, &Remainder));
} else {
- return (UINT64) ((UINT32) Op1 / (UINT32) Op2);
+ return (UINT64)((UINT32)Op1 / (UINT32)Op2);
}
}
}
-
/**
Execute the EBC MOD instruction.
@@ -3750,12 +3798,12 @@ ExecuteDIVU (
**/
UINT64
ExecuteMOD (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
- INT64 Remainder;
+ INT64 Remainder;
//
// Check for divide-by-0
@@ -3773,7 +3821,6 @@ ExecuteMOD (
}
}
-
/**
Execute the EBC MODU instruction.
@@ -3789,9 +3836,9 @@ ExecuteMOD (
**/
UINT64
ExecuteMODU (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
UINT64 Remainder;
@@ -3812,7 +3859,6 @@ ExecuteMODU (
}
}
-
/**
Execute the EBC AND instruction.
@@ -3828,15 +3874,14 @@ ExecuteMODU (
**/
UINT64
ExecuteAND (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
return Op1 & Op2;
}
-
/**
Execute the EBC OR instruction.
@@ -3852,15 +3897,14 @@ ExecuteAND (
**/
UINT64
ExecuteOR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
return Op1 | Op2;
}
-
/**
Execute the EBC XOR instruction.
@@ -3876,15 +3920,14 @@ ExecuteOR (
**/
UINT64
ExecuteXOR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
return Op1 ^ Op2;
}
-
/**
Execute the EBC SHL shift left instruction.
@@ -3900,19 +3943,18 @@ ExecuteXOR (
**/
UINT64
ExecuteSHL (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
return LShiftU64 (Op1, (UINTN)Op2);
} else {
- return (UINT64) ((UINT32) ((UINT32) Op1 << (UINT32) Op2));
+ return (UINT64)((UINT32)((UINT32)Op1 << (UINT32)Op2));
}
}
-
/**
Execute the EBC SHR instruction.
@@ -3928,19 +3970,18 @@ ExecuteSHL (
**/
UINT64
ExecuteSHR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
return RShiftU64 (Op1, (UINTN)Op2);
} else {
- return (UINT64) ((UINT32) Op1 >> (UINT32) Op2);
+ return (UINT64)((UINT32)Op1 >> (UINT32)Op2);
}
}
-
/**
Execute the EBC ASHR instruction.
@@ -3956,19 +3997,18 @@ ExecuteSHR (
**/
UINT64
ExecuteASHR (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
if ((*VmPtr->Ip & DATAMANIP_M_64) != 0) {
return ARShiftU64 (Op1, (UINTN)Op2);
} else {
- return (UINT64) ((INT64) ((INT32) Op1 >> (UINT32) Op2));
+ return (UINT64)((INT64)((INT32)Op1 >> (UINT32)Op2));
}
}
-
/**
Execute the EBC EXTNDB instruction to sign-extend a byte value.
@@ -3984,24 +4024,24 @@ ExecuteASHR (
**/
UINT64
ExecuteEXTNDB (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
- INT8 Data8;
- INT64 Data64;
+ INT8 Data8;
+ INT64 Data64;
+
//
// Convert to byte, then return as 64-bit signed value to let compiler
// sign-extend the value
//
- Data8 = (INT8) Op2;
- Data64 = (INT64) Data8;
+ Data8 = (INT8)Op2;
+ Data64 = (INT64)Data8;
- return (UINT64) Data64;
+ return (UINT64)Data64;
}
-
/**
Execute the EBC EXTNDW instruction to sign-extend a 16-bit value.
@@ -4017,22 +4057,24 @@ ExecuteEXTNDB (
**/
UINT64
ExecuteEXTNDW (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
- INT16 Data16;
- INT64 Data64;
+ INT16 Data16;
+ INT64 Data64;
+
//
// Convert to word, then return as 64-bit signed value to let compiler
// sign-extend the value
//
- Data16 = (INT16) Op2;
- Data64 = (INT64) Data16;
+ Data16 = (INT16)Op2;
+ Data64 = (INT64)Data16;
- return (UINT64) Data64;
+ return (UINT64)Data64;
}
+
//
// Execute the EBC EXTNDD instruction.
//
@@ -4057,24 +4099,24 @@ ExecuteEXTNDW (
**/
UINT64
ExecuteEXTNDD (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Op1,
- IN UINT64 Op2
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Op1,
+ IN UINT64 Op2
)
{
- INT32 Data32;
- INT64 Data64;
+ INT32 Data32;
+ INT64 Data64;
+
//
// Convert to 32-bit value, then return as 64-bit signed value to let compiler
// sign-extend the value
//
- Data32 = (INT32) Op2;
- Data64 = (INT64) Data32;
+ Data32 = (INT32)Op2;
+ Data64 = (INT64)Data32;
- return (UINT64) Data64;
+ return (UINT64)Data64;
}
-
/**
Execute all the EBC signed data manipulation instructions.
Since the EBC data manipulation instructions all have the same basic form,
@@ -4094,7 +4136,7 @@ ExecuteEXTNDD (
**/
EFI_STATUS
ExecuteSignedDataManip (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
//
@@ -4104,7 +4146,6 @@ ExecuteSignedDataManip (
return ExecuteDataManip (VmPtr, TRUE);
}
-
/**
Execute all the EBC unsigned data manipulation instructions.
Since the EBC data manipulation instructions all have the same basic form,
@@ -4124,7 +4165,7 @@ ExecuteSignedDataManip (
**/
EFI_STATUS
ExecuteUnsignedDataManip (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
//
@@ -4134,7 +4175,6 @@ ExecuteUnsignedDataManip (
return ExecuteDataManip (VmPtr, FALSE);
}
-
/**
Execute all the EBC data manipulation instructions.
Since the EBC data manipulation instructions all have the same basic form,
@@ -4155,8 +4195,8 @@ ExecuteUnsignedDataManip (
**/
EFI_STATUS
ExecuteDataManip (
- IN VM_CONTEXT *VmPtr,
- IN BOOLEAN IsSignedOp
+ IN VM_CONTEXT *VmPtr,
+ IN BOOLEAN IsSignedOp
)
{
UINT8 Opcode;
@@ -4170,8 +4210,8 @@ ExecuteDataManip (
//
// Get opcode and operands
//
- Opcode = GETOPCODE (VmPtr);
- Operands = GETOPERANDS (VmPtr);
+ Opcode = GETOPCODE (VmPtr);
+ Operands = GETOPERANDS (VmPtr);
//
// Determine if we have immediate data by the opcode
@@ -4191,65 +4231,69 @@ ExecuteDataManip (
Index16 = 0;
Size = 2;
}
+
//
// Now get operand2 (source). It's of format {@}R2 {Index16|Immed16}
//
- Op2 = (UINT64) VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16;
+ Op2 = (UINT64)VmPtr->Gpr[OPERAND2_REGNUM (Operands)] + Index16;
if (OPERAND2_INDIRECT (Operands)) {
//
// Indirect form: @R2 Index16. Fetch as 32- or 64-bit data
//
if ((Opcode & DATAMANIP_M_64) != 0) {
- Op2 = VmReadMem64 (VmPtr, (UINTN) Op2);
+ Op2 = VmReadMem64 (VmPtr, (UINTN)Op2);
} else {
//
// Read as signed value where appropriate.
//
if (IsSignedOp) {
- Op2 = (UINT64) (INT64) ((INT32) VmReadMem32 (VmPtr, (UINTN) Op2));
+ Op2 = (UINT64)(INT64)((INT32)VmReadMem32 (VmPtr, (UINTN)Op2));
} else {
- Op2 = (UINT64) VmReadMem32 (VmPtr, (UINTN) Op2);
+ Op2 = (UINT64)VmReadMem32 (VmPtr, (UINTN)Op2);
}
}
} else {
if ((Opcode & DATAMANIP_M_64) == 0) {
if (IsSignedOp) {
- Op2 = (UINT64) (INT64) ((INT32) Op2);
+ Op2 = (UINT64)(INT64)((INT32)Op2);
} else {
- Op2 = (UINT64) ((UINT32) Op2);
+ Op2 = (UINT64)((UINT32)Op2);
}
}
}
+
//
// Get operand1 (destination and sometimes also an actual operand)
// of form {@}R1
//
- Op1 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
+ Op1 = (UINT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
if (OPERAND1_INDIRECT (Operands)) {
if ((Opcode & DATAMANIP_M_64) != 0) {
- Op1 = VmReadMem64 (VmPtr, (UINTN) Op1);
+ Op1 = VmReadMem64 (VmPtr, (UINTN)Op1);
} else {
if (IsSignedOp) {
- Op1 = (UINT64) (INT64) ((INT32) VmReadMem32 (VmPtr, (UINTN) Op1));
+ Op1 = (UINT64)(INT64)((INT32)VmReadMem32 (VmPtr, (UINTN)Op1));
} else {
- Op1 = (UINT64) VmReadMem32 (VmPtr, (UINTN) Op1);
+ Op1 = (UINT64)VmReadMem32 (VmPtr, (UINTN)Op1);
}
}
} else {
if ((Opcode & DATAMANIP_M_64) == 0) {
if (IsSignedOp) {
- Op1 = (UINT64) (INT64) ((INT32) Op1);
+ Op1 = (UINT64)(INT64)((INT32)Op1);
} else {
- Op1 = (UINT64) ((UINT32) Op1);
+ Op1 = (UINT64)((UINT32)Op1);
}
}
}
+
//
// Dispatch to the computation function
//
DataManipDispatchTableIndex = (Opcode & OPCODE_M_OPCODE) - OPCODE_NOT;
if ((DataManipDispatchTableIndex < 0) ||
- (DataManipDispatchTableIndex >= ARRAY_SIZE (mDataManipDispatchTable))) {
+ (DataManipDispatchTableIndex >= ARRAY_SIZE (mDataManipDispatchTable)))
+ {
EbcDebugSignalException (
EXCEPT_EBC_INVALID_OPCODE,
EXCEPTION_FLAG_ERROR,
@@ -4263,15 +4307,16 @@ ExecuteDataManip (
} else {
Op2 = mDataManipDispatchTable[DataManipDispatchTableIndex](VmPtr, Op1, Op2);
}
+
//
// Write back the result.
//
if (OPERAND1_INDIRECT (Operands)) {
- Op1 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
+ Op1 = (UINT64)VmPtr->Gpr[OPERAND1_REGNUM (Operands)];
if ((Opcode & DATAMANIP_M_64) != 0) {
- VmWriteMem64 (VmPtr, (UINTN) Op1, Op2);
+ VmWriteMem64 (VmPtr, (UINTN)Op1, Op2);
} else {
- VmWriteMem32 (VmPtr, (UINTN) Op1, (UINT32) Op2);
+ VmWriteMem32 (VmPtr, (UINTN)Op1, (UINT32)Op2);
}
} else {
//
@@ -4283,6 +4328,7 @@ ExecuteDataManip (
VmPtr->Gpr[OPERAND1_REGNUM (Operands)] &= 0xFFFFFFFF;
}
}
+
//
// Advance the instruction pointer
//
@@ -4290,7 +4336,6 @@ ExecuteDataManip (
return EFI_SUCCESS;
}
-
/**
Execute the EBC LOADSP instruction.
@@ -4305,10 +4350,10 @@ ExecuteDataManip (
**/
EFI_STATUS
ExecuteLOADSP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- UINT8 Operands;
+ UINT8 Operands;
//
// Get the operands
@@ -4319,32 +4364,31 @@ ExecuteLOADSP (
// Do the operation
//
switch (OPERAND1_REGNUM (Operands)) {
- //
- // Set flags
- //
- case 0:
//
- // Spec states that this instruction will not modify reserved bits in
- // the flags register.
+ // Set flags
//
- VmPtr->Flags = (VmPtr->Flags &~VMFLAGS_ALL_VALID) | (VmPtr->Gpr[OPERAND2_REGNUM (Operands)] & VMFLAGS_ALL_VALID);
- break;
+ case 0:
+ //
+ // Spec states that this instruction will not modify reserved bits in
+ // the flags register.
+ //
+ VmPtr->Flags = (VmPtr->Flags &~VMFLAGS_ALL_VALID) | (VmPtr->Gpr[OPERAND2_REGNUM (Operands)] & VMFLAGS_ALL_VALID);
+ break;
- default:
- EbcDebugSignalException (
- EXCEPT_EBC_INSTRUCTION_ENCODING,
- EXCEPTION_FLAG_WARNING,
- VmPtr
- );
- VmPtr->Ip += 2;
- return EFI_UNSUPPORTED;
+ default:
+ EbcDebugSignalException (
+ EXCEPT_EBC_INSTRUCTION_ENCODING,
+ EXCEPTION_FLAG_WARNING,
+ VmPtr
+ );
+ VmPtr->Ip += 2;
+ return EFI_UNSUPPORTED;
}
VmPtr->Ip += 2;
return EFI_SUCCESS;
}
-
/**
Execute the EBC STORESP instruction.
@@ -4359,10 +4403,10 @@ ExecuteLOADSP (
**/
EFI_STATUS
ExecuteSTORESP (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- UINT8 Operands;
+ UINT8 Operands;
//
// Get the operands
@@ -4373,39 +4417,38 @@ ExecuteSTORESP (
// Do the operation
//
switch (OPERAND2_REGNUM (Operands)) {
- //
- // Get flags
- //
- case 0:
//
- // Retrieve the value in the flags register, then clear reserved bits
+ // Get flags
//
- VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (UINT64) (VmPtr->Flags & VMFLAGS_ALL_VALID);
- break;
+ case 0:
+ //
+ // Retrieve the value in the flags register, then clear reserved bits
+ //
+ VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (UINT64)(VmPtr->Flags & VMFLAGS_ALL_VALID);
+ break;
- //
- // Get IP -- address of following instruction
- //
- case 1:
- VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (UINT64) (UINTN) VmPtr->Ip + 2;
- break;
+ //
+ // Get IP -- address of following instruction
+ //
+ case 1:
+ VmPtr->Gpr[OPERAND1_REGNUM (Operands)] = (UINT64)(UINTN)VmPtr->Ip + 2;
+ break;
- default:
- EbcDebugSignalException (
- EXCEPT_EBC_INSTRUCTION_ENCODING,
- EXCEPTION_FLAG_WARNING,
- VmPtr
- );
- VmPtr->Ip += 2;
- return EFI_UNSUPPORTED;
- break;
+ default:
+ EbcDebugSignalException (
+ EXCEPT_EBC_INSTRUCTION_ENCODING,
+ EXCEPTION_FLAG_WARNING,
+ VmPtr
+ );
+ VmPtr->Ip += 2;
+ return EFI_UNSUPPORTED;
+ break;
}
VmPtr->Ip += 2;
return EFI_SUCCESS;
}
-
/**
Decode a 16-bit index to determine the offset. Given an index value:
@@ -4430,8 +4473,8 @@ ExecuteSTORESP (
**/
INT16
VmReadIndex16 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 CodeOffset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 CodeOffset
)
{
UINT16 Index;
@@ -4449,7 +4492,7 @@ VmReadIndex16 (
//
// Get the mask for NaturalUnits. First get the number of bits from the index.
//
- NBits = (INT16) ((Index & 0x7000) >> 12);
+ NBits = (INT16)((Index & 0x7000) >> 12);
//
// Scale it for 16-bit indexes
@@ -4459,19 +4502,19 @@ VmReadIndex16 (
//
// Now using the number of bits, create a mask.
//
- Mask = (INT16) ((INT16)~0 << NBits);
+ Mask = (INT16)((INT16) ~0 << NBits);
//
// Now using the mask, extract NaturalUnits from the lower bits of the index.
//
- NaturalUnits = (INT16) (Index &~Mask);
+ NaturalUnits = (INT16)(Index &~Mask);
//
// Now compute ConstUnits
//
- ConstUnits = (INT16) (((Index &~0xF000) & Mask) >> NBits);
+ ConstUnits = (INT16)(((Index &~0xF000) & Mask) >> NBits);
- Offset = (INT16) (NaturalUnits * sizeof (UINTN) + ConstUnits);
+ Offset = (INT16)(NaturalUnits * sizeof (UINTN) + ConstUnits);
//
// Now set the sign
@@ -4482,13 +4525,12 @@ VmReadIndex16 (
//
// Offset = -1 * Offset;
//
- Offset = (INT16) ((INT32) Offset * -1);
+ Offset = (INT16)((INT32)Offset * -1);
}
return Offset;
}
-
/**
Decode a 32-bit index to determine the offset.
@@ -4501,8 +4543,8 @@ VmReadIndex16 (
**/
INT32
VmReadIndex32 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 CodeOffset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 CodeOffset
)
{
UINT32 Index;
@@ -4527,7 +4569,7 @@ VmReadIndex32 (
//
// Now using the number of bits, create a mask.
//
- Mask = (INT32)~0 << NBits;
+ Mask = (INT32) ~0 << NBits;
//
// Now using the mask, extract NaturalUnits from the lower bits of the index.
@@ -4537,9 +4579,9 @@ VmReadIndex32 (
//
// Now compute ConstUnits
//
- ConstUnits = ((Index &~0xF0000000) & Mask) >> NBits;
+ ConstUnits = ((Index &~0xF0000000) & Mask) >> NBits;
- Offset = NaturalUnits * sizeof (UINTN) + ConstUnits;
+ Offset = NaturalUnits * sizeof (UINTN) + ConstUnits;
//
// Now set the sign
@@ -4551,7 +4593,6 @@ VmReadIndex32 (
return Offset;
}
-
/**
Decode a 64-bit index to determine the offset.
@@ -4564,8 +4605,8 @@ VmReadIndex32 (
**/
INT64
VmReadIndex64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 CodeOffset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 CodeOffset
)
{
UINT64 Index;
@@ -4590,7 +4631,7 @@ VmReadIndex64 (
//
// Now using the number of bits, create a mask.
//
- Mask = (LShiftU64 ((UINT64)~0, (UINTN)NBits));
+ Mask = (LShiftU64 ((UINT64) ~0, (UINTN)NBits));
//
// Now using the mask, extract NaturalUnits from the lower bits of the index.
@@ -4602,7 +4643,7 @@ VmReadIndex64 (
//
ConstUnits = ARShiftU64 (((Index &~0xF000000000000000ULL) & Mask), (UINTN)NBits);
- Offset = MultU64x64 ((UINT64) NaturalUnits, sizeof (UINTN)) + ConstUnits;
+ Offset = MultU64x64 ((UINT64)NaturalUnits, sizeof (UINTN)) + ConstUnits;
//
// Now set the sign
@@ -4614,7 +4655,6 @@ VmReadIndex64 (
return Offset;
}
-
/**
Writes 8-bit data to memory address.
@@ -4640,16 +4680,16 @@ VmReadIndex64 (
**/
EFI_STATUS
VmWriteMem8 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT8 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT8 Data
)
{
//
// Convert the address if it's in the stack gap
//
- Addr = ConvertStackAddr (VmPtr, Addr);
- *(UINT8 *) Addr = Data;
+ Addr = ConvertStackAddr (VmPtr, Addr);
+ *(UINT8 *)Addr = Data;
return EFI_SUCCESS;
}
@@ -4678,9 +4718,9 @@ VmWriteMem8 (
**/
EFI_STATUS
VmWriteMem16 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT16 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT16 Data
)
{
EFI_STATUS Status;
@@ -4694,18 +4734,18 @@ VmWriteMem16 (
// Do a simple write if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINT16))) {
- *(UINT16 *) Addr = Data;
+ *(UINT16 *)Addr = Data;
} else {
//
// Write as two bytes
//
MemoryFence ();
- if ((Status = VmWriteMem8 (VmPtr, Addr, (UINT8) Data)) != EFI_SUCCESS) {
+ if ((Status = VmWriteMem8 (VmPtr, Addr, (UINT8)Data)) != EFI_SUCCESS) {
return Status;
}
MemoryFence ();
- if ((Status = VmWriteMem8 (VmPtr, Addr + 1, (UINT8) (Data >> 8))) != EFI_SUCCESS) {
+ if ((Status = VmWriteMem8 (VmPtr, Addr + 1, (UINT8)(Data >> 8))) != EFI_SUCCESS) {
return Status;
}
@@ -4715,7 +4755,6 @@ VmWriteMem16 (
return EFI_SUCCESS;
}
-
/**
Writes 32-bit data to memory address.
@@ -4741,9 +4780,9 @@ VmWriteMem16 (
**/
EFI_STATUS
VmWriteMem32 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT32 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT32 Data
)
{
EFI_STATUS Status;
@@ -4757,18 +4796,18 @@ VmWriteMem32 (
// Do a simple write if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINT32))) {
- *(UINT32 *) Addr = Data;
+ *(UINT32 *)Addr = Data;
} else {
//
// Write as two words
//
MemoryFence ();
- if ((Status = VmWriteMem16 (VmPtr, Addr, (UINT16) Data)) != EFI_SUCCESS) {
+ if ((Status = VmWriteMem16 (VmPtr, Addr, (UINT16)Data)) != EFI_SUCCESS) {
return Status;
}
MemoryFence ();
- if ((Status = VmWriteMem16 (VmPtr, Addr + sizeof (UINT16), (UINT16) (Data >> 16))) != EFI_SUCCESS) {
+ if ((Status = VmWriteMem16 (VmPtr, Addr + sizeof (UINT16), (UINT16)(Data >> 16))) != EFI_SUCCESS) {
return Status;
}
@@ -4778,7 +4817,6 @@ VmWriteMem32 (
return EFI_SUCCESS;
}
-
/**
Writes 64-bit data to memory address.
@@ -4804,9 +4842,9 @@ VmWriteMem32 (
**/
EFI_STATUS
VmWriteMem64 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT64 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT64 Data
)
{
EFI_STATUS Status;
@@ -4820,18 +4858,18 @@ VmWriteMem64 (
// Do a simple write if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINT64))) {
- *(UINT64 *) Addr = Data;
+ *(UINT64 *)Addr = Data;
} else {
//
// Write as two 32-bit words
//
MemoryFence ();
- if ((Status = VmWriteMem32 (VmPtr, Addr, (UINT32) Data)) != EFI_SUCCESS) {
+ if ((Status = VmWriteMem32 (VmPtr, Addr, (UINT32)Data)) != EFI_SUCCESS) {
return Status;
}
MemoryFence ();
- if ((Status = VmWriteMem32 (VmPtr, Addr + sizeof (UINT32), (UINT32) RShiftU64(Data, 32))) != EFI_SUCCESS) {
+ if ((Status = VmWriteMem32 (VmPtr, Addr + sizeof (UINT32), (UINT32)RShiftU64 (Data, 32))) != EFI_SUCCESS) {
return Status;
}
@@ -4841,7 +4879,6 @@ VmWriteMem64 (
return EFI_SUCCESS;
}
-
/**
Writes UINTN data to memory address.
@@ -4867,9 +4904,9 @@ VmWriteMem64 (
**/
EFI_STATUS
VmWriteMemN (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINTN Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINTN Data
)
{
EFI_STATUS Status;
@@ -4886,20 +4923,19 @@ VmWriteMemN (
// Do a simple write if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINTN))) {
- *(UINTN *) Addr = Data;
+ *(UINTN *)Addr = Data;
} else {
for (Index = 0; Index < sizeof (UINTN) / sizeof (UINT32); Index++) {
MemoryFence ();
- Status = VmWriteMem32 (VmPtr, Addr + Index * sizeof (UINT32), (UINT32) Data);
+ Status = VmWriteMem32 (VmPtr, Addr + Index * sizeof (UINT32), (UINT32)Data);
MemoryFence ();
- Data = (UINTN) RShiftU64 ((UINT64)Data, 32);
+ Data = (UINTN)RShiftU64 ((UINT64)Data, 32);
}
}
return Status;
}
-
/**
Reads 8-bit immediate value at the offset.
@@ -4916,14 +4952,14 @@ VmWriteMemN (
**/
INT8
VmReadImmed8 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
//
// Simply return the data in flat memory space
//
- return * (INT8 *) (VmPtr->Ip + Offset);
+ return *(INT8 *)(VmPtr->Ip + Offset);
}
/**
@@ -4942,15 +4978,15 @@ VmReadImmed8 (
**/
INT16
VmReadImmed16 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
//
// Read direct if aligned
//
- if (IS_ALIGNED ((UINTN) VmPtr->Ip + Offset, sizeof (INT16))) {
- return * (INT16 *) (VmPtr->Ip + Offset);
+ if (IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (INT16))) {
+ return *(INT16 *)(VmPtr->Ip + Offset);
} else {
//
// All code word reads should be aligned
@@ -4961,13 +4997,13 @@ VmReadImmed16 (
VmPtr
);
}
+
//
// Return unaligned data
//
- return (INT16) (*(UINT8 *) (VmPtr->Ip + Offset) + (*(UINT8 *) (VmPtr->Ip + Offset + 1) << 8));
+ return (INT16)(*(UINT8 *)(VmPtr->Ip + Offset) + (*(UINT8 *)(VmPtr->Ip + Offset + 1) << 8));
}
-
/**
Reads 32-bit immediate value at the offset.
@@ -4984,8 +5020,8 @@ VmReadImmed16 (
**/
INT32
VmReadImmed32 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
UINT32 Data;
@@ -4993,18 +5029,18 @@ VmReadImmed32 (
//
// Read direct if aligned
//
- if (IS_ALIGNED ((UINTN) VmPtr->Ip + Offset, sizeof (UINT32))) {
- return * (INT32 *) (VmPtr->Ip + Offset);
+ if (IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (UINT32))) {
+ return *(INT32 *)(VmPtr->Ip + Offset);
}
+
//
// Return unaligned data
//
- Data = (UINT32) VmReadCode16 (VmPtr, Offset);
+ Data = (UINT32)VmReadCode16 (VmPtr, Offset);
Data |= (UINT32)(VmReadCode16 (VmPtr, Offset + 2) << 16);
return Data;
}
-
/**
Reads 64-bit immediate value at the offset.
@@ -5021,8 +5057,8 @@ VmReadImmed32 (
**/
INT64
VmReadImmed64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
UINT64 Data64;
@@ -5032,22 +5068,22 @@ VmReadImmed64 (
//
// Read direct if aligned
//
- if (IS_ALIGNED ((UINTN) VmPtr->Ip + Offset, sizeof (UINT64))) {
- return * (UINT64 *) (VmPtr->Ip + Offset);
+ if (IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (UINT64))) {
+ return *(UINT64 *)(VmPtr->Ip + Offset);
}
+
//
// Return unaligned data.
//
- Ptr = (UINT8 *) &Data64;
- Data32 = VmReadCode32 (VmPtr, Offset);
- *(UINT32 *) Ptr = Data32;
- Ptr += sizeof (Data32);
- Data32 = VmReadCode32 (VmPtr, Offset + sizeof (UINT32));
- *(UINT32 *) Ptr = Data32;
+ Ptr = (UINT8 *)&Data64;
+ Data32 = VmReadCode32 (VmPtr, Offset);
+ *(UINT32 *)Ptr = Data32;
+ Ptr += sizeof (Data32);
+ Data32 = VmReadCode32 (VmPtr, Offset + sizeof (UINT32));
+ *(UINT32 *)Ptr = Data32;
return Data64;
}
-
/**
Reads 16-bit unsigned data from the code stream.
@@ -5062,15 +5098,15 @@ VmReadImmed64 (
**/
UINT16
VmReadCode16 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
//
// Read direct if aligned
//
- if (IS_ALIGNED ((UINTN) VmPtr->Ip + Offset, sizeof (UINT16))) {
- return * (UINT16 *) (VmPtr->Ip + Offset);
+ if (IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (UINT16))) {
+ return *(UINT16 *)(VmPtr->Ip + Offset);
} else {
//
// All code word reads should be aligned
@@ -5081,13 +5117,13 @@ VmReadCode16 (
VmPtr
);
}
+
//
// Return unaligned data
//
- return (UINT16) (*(UINT8 *) (VmPtr->Ip + Offset) + (*(UINT8 *) (VmPtr->Ip + Offset + 1) << 8));
+ return (UINT16)(*(UINT8 *)(VmPtr->Ip + Offset) + (*(UINT8 *)(VmPtr->Ip + Offset + 1) << 8));
}
-
/**
Reads 32-bit unsigned data from the code stream.
@@ -5102,26 +5138,27 @@ VmReadCode16 (
**/
UINT32
VmReadCode32 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
UINT32 Data;
+
//
// Read direct if aligned
//
- if (IS_ALIGNED ((UINTN) VmPtr->Ip + Offset, sizeof (UINT32))) {
- return * (UINT32 *) (VmPtr->Ip + Offset);
+ if (IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (UINT32))) {
+ return *(UINT32 *)(VmPtr->Ip + Offset);
}
+
//
// Return unaligned data
//
- Data = (UINT32) VmReadCode16 (VmPtr, Offset);
+ Data = (UINT32)VmReadCode16 (VmPtr, Offset);
Data |= (VmReadCode16 (VmPtr, Offset + 2) << 16);
return Data;
}
-
/**
Reads 64-bit unsigned data from the code stream.
@@ -5136,8 +5173,8 @@ VmReadCode32 (
**/
UINT64
VmReadCode64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT32 Offset
+ IN VM_CONTEXT *VmPtr,
+ IN UINT32 Offset
)
{
UINT64 Data64;
@@ -5147,22 +5184,22 @@ VmReadCode64 (
//
// Read direct if aligned
//
- if (IS_ALIGNED ((UINTN) VmPtr->Ip + Offset, sizeof (UINT64))) {
- return * (UINT64 *) (VmPtr->Ip + Offset);
+ if (IS_ALIGNED ((UINTN)VmPtr->Ip + Offset, sizeof (UINT64))) {
+ return *(UINT64 *)(VmPtr->Ip + Offset);
}
+
//
// Return unaligned data.
//
- Ptr = (UINT8 *) &Data64;
- Data32 = VmReadCode32 (VmPtr, Offset);
- *(UINT32 *) Ptr = Data32;
- Ptr += sizeof (Data32);
- Data32 = VmReadCode32 (VmPtr, Offset + sizeof (UINT32));
- *(UINT32 *) Ptr = Data32;
+ Ptr = (UINT8 *)&Data64;
+ Data32 = VmReadCode32 (VmPtr, Offset);
+ *(UINT32 *)Ptr = Data32;
+ Ptr += sizeof (Data32);
+ Data32 = VmReadCode32 (VmPtr, Offset + sizeof (UINT32));
+ *(UINT32 *)Ptr = Data32;
return Data64;
}
-
/**
Reads 8-bit data form the memory address.
@@ -5174,8 +5211,8 @@ VmReadCode64 (
**/
UINT8
VmReadMem8 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
)
{
//
@@ -5185,7 +5222,7 @@ VmReadMem8 (
//
// Simply return the data in flat memory space
//
- return * (UINT8 *) Addr;
+ return *(UINT8 *)Addr;
}
/**
@@ -5199,8 +5236,8 @@ VmReadMem8 (
**/
UINT16
VmReadMem16 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
)
{
//
@@ -5211,12 +5248,13 @@ VmReadMem16 (
// Read direct if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINT16))) {
- return * (UINT16 *) Addr;
+ return *(UINT16 *)Addr;
}
+
//
// Return unaligned data
//
- return (UINT16) (*(UINT8 *) Addr + (*(UINT8 *) (Addr + 1) << 8));
+ return (UINT16)(*(UINT8 *)Addr + (*(UINT8 *)(Addr + 1) << 8));
}
/**
@@ -5230,8 +5268,8 @@ VmReadMem16 (
**/
UINT32
VmReadMem32 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
)
{
UINT32 Data;
@@ -5244,12 +5282,13 @@ VmReadMem32 (
// Read direct if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINT32))) {
- return * (UINT32 *) Addr;
+ return *(UINT32 *)Addr;
}
+
//
// Return unaligned data
//
- Data = (UINT32) VmReadMem16 (VmPtr, Addr);
+ Data = (UINT32)VmReadMem16 (VmPtr, Addr);
Data |= (VmReadMem16 (VmPtr, Addr + 2) << 16);
return Data;
}
@@ -5265,8 +5304,8 @@ VmReadMem32 (
**/
UINT64
VmReadMem64 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
)
{
UINT64 Data;
@@ -5281,18 +5320,18 @@ VmReadMem64 (
// Read direct if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINT64))) {
- return * (UINT64 *) Addr;
+ return *(UINT64 *)Addr;
}
+
//
// Return unaligned data. Assume little endian.
//
Data32 = VmReadMem32 (VmPtr, Addr);
- Data = (UINT64) VmReadMem32 (VmPtr, Addr + sizeof (UINT32));
- Data = LShiftU64 (Data, 32) | Data32;
+ Data = (UINT64)VmReadMem32 (VmPtr, Addr + sizeof (UINT32));
+ Data = LShiftU64 (Data, 32) | Data32;
return Data;
}
-
/**
Given an address that EBC is going to read from or write to, return
an appropriate address that accounts for a gap in the stack.
@@ -5314,15 +5353,14 @@ VmReadMem64 (
**/
UINTN
ConvertStackAddr (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
)
{
- ASSERT(((Addr < VmPtr->LowStackTop) || (Addr > VmPtr->HighStackBottom)));
+ ASSERT (((Addr < VmPtr->LowStackTop) || (Addr > VmPtr->HighStackBottom)));
return Addr;
}
-
/**
Read a natural value from memory. May or may not be aligned.
@@ -5334,14 +5372,15 @@ ConvertStackAddr (
**/
UINTN
VmReadMemN (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr
)
{
- UINTN Data;
+ UINTN Data;
volatile UINT32 Size;
- UINT8 *FromPtr;
- UINT8 *ToPtr;
+ UINT8 *FromPtr;
+ UINT8 *ToPtr;
+
//
// Convert the address if it's in the stack gap
//
@@ -5350,14 +5389,15 @@ VmReadMemN (
// Read direct if aligned
//
if (IS_ALIGNED (Addr, sizeof (UINTN))) {
- return * (UINTN *) Addr;
+ return *(UINTN *)Addr;
}
+
//
// Return unaligned data
//
Data = 0;
- FromPtr = (UINT8 *) Addr;
- ToPtr = (UINT8 *) &Data;
+ FromPtr = (UINT8 *)Addr;
+ ToPtr = (UINT8 *)&Data;
for (Size = 0; Size < sizeof (Data); Size++) {
*ToPtr = *FromPtr;
@@ -5379,5 +5419,5 @@ GetVmVersion (
VOID
)
{
- return (UINT64) (((VM_MAJOR_VERSION & 0xFFFF) << 16) | ((VM_MINOR_VERSION & 0xFFFF)));
+ return (UINT64)(((VM_MAJOR_VERSION & 0xFFFF) << 16) | ((VM_MINOR_VERSION & 0xFFFF)));
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcExecute.h b/MdeModulePkg/Universal/EbcDxe/EbcExecute.h
index 1cb68bc..32b8670 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcExecute.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcExecute.h
@@ -20,8 +20,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Debug macro
//
-#define EBCMSG(s) gST->ConOut->OutputString (gST->ConOut, s)
-
+#define EBCMSG(s) gST->ConOut->OutputString (gST->ConOut, s)
/**
Execute an EBC image from an entry point or from a published protocol.
@@ -34,11 +33,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
EbcExecute (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
-
-
/**
Returns the version of the EBC virtual machine.
@@ -75,9 +72,9 @@ GetVmVersion (
**/
EFI_STATUS
VmWriteMemN (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINTN Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINTN Data
);
/**
@@ -105,9 +102,9 @@ VmWriteMemN (
**/
EFI_STATUS
VmWriteMem64 (
- IN VM_CONTEXT *VmPtr,
- IN UINTN Addr,
- IN UINT64 Data
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN Addr,
+ IN UINT64 Data
);
/**
@@ -127,9 +124,9 @@ VmWriteMem64 (
EFI_STATUS
EFIAPI
EbcExecuteInstructions (
- IN EFI_EBC_VM_TEST_PROTOCOL *This,
- IN VM_CONTEXT *VmPtr,
- IN OUT UINTN *InstructionCount
+ IN EFI_EBC_VM_TEST_PROTOCOL *This,
+ IN VM_CONTEXT *VmPtr,
+ IN OUT UINTN *InstructionCount
);
#endif // ifndef _EBC_EXECUTE_H_
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcInt.c b/MdeModulePkg/Universal/EbcDxe/EbcInt.c
index a255b4a..d2254c2 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcInt.c
+++ b/MdeModulePkg/Universal/EbcDxe/EbcInt.c
@@ -20,15 +20,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
typedef struct _EBC_THUNK_LIST EBC_THUNK_LIST;
struct _EBC_THUNK_LIST {
- VOID *ThunkBuffer;
- EBC_THUNK_LIST *Next;
+ VOID *ThunkBuffer;
+ EBC_THUNK_LIST *Next;
};
typedef struct _EBC_IMAGE_LIST EBC_IMAGE_LIST;
struct _EBC_IMAGE_LIST {
- EBC_IMAGE_LIST *Next;
- EFI_HANDLE ImageHandle;
- EBC_THUNK_LIST *ThunkList;
+ EBC_IMAGE_LIST *Next;
+ EFI_HANDLE ImageHandle;
+ EBC_THUNK_LIST *ThunkList;
};
/**
@@ -48,8 +48,8 @@ struct _EBC_IMAGE_LIST {
EFI_STATUS
EFIAPI
EbcUnloadImage (
- IN EFI_EBC_PROTOCOL *This,
- IN EFI_HANDLE ImageHandle
+ IN EFI_EBC_PROTOCOL *This,
+ IN EFI_HANDLE ImageHandle
);
/**
@@ -74,10 +74,10 @@ EbcUnloadImage (
EFI_STATUS
EFIAPI
EbcCreateThunk (
- IN EFI_EBC_PROTOCOL *This,
- IN EFI_HANDLE ImageHandle,
- IN VOID *EbcEntryPoint,
- OUT VOID **Thunk
+ IN EFI_EBC_PROTOCOL *This,
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *EbcEntryPoint,
+ OUT VOID **Thunk
);
/**
@@ -94,8 +94,8 @@ EbcCreateThunk (
EFI_STATUS
EFIAPI
EbcGetVersion (
- IN EFI_EBC_PROTOCOL *This,
- IN OUT UINT64 *Version
+ IN EFI_EBC_PROTOCOL *This,
+ IN OUT UINT64 *Version
);
/**
@@ -126,8 +126,8 @@ InitializeEbcCallback (
VOID
EFIAPI
CommonEbcExceptionHandler (
- IN EFI_EXCEPTION_TYPE InterruptType,
- IN EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_EXCEPTION_TYPE InterruptType,
+ IN EFI_SYSTEM_CONTEXT SystemContext
);
/**
@@ -141,8 +141,8 @@ CommonEbcExceptionHandler (
VOID
EFIAPI
EbcPeriodicNotifyFunction (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
/**
@@ -158,13 +158,14 @@ EbcPeriodicNotifyFunction (
EFI_STATUS
EFIAPI
EbcDebugPeriodic (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
);
//
// These two functions and the GUID are used to produce an EBC test protocol.
// This functionality is definitely not required for execution.
//
+
/**
Produces an EBC VM test protocol that can be used for regression tests.
@@ -176,7 +177,7 @@ EbcDebugPeriodic (
**/
EFI_STATUS
InitEbcVmTestProtocol (
- IN EFI_HANDLE *IHandle
+ IN EFI_HANDLE *IHandle
);
/**
@@ -204,8 +205,8 @@ EbcVmTestUnsupported (
EFI_STATUS
EFIAPI
EbcRegisterICacheFlush (
- IN EFI_EBC_PROTOCOL *This,
- IN EBC_ICACHE_FLUSH Flush
+ IN EFI_EBC_PROTOCOL *This,
+ IN EBC_ICACHE_FLUSH Flush
);
/**
@@ -222,8 +223,8 @@ EbcRegisterICacheFlush (
EFI_STATUS
EFIAPI
EbcDebugGetMaximumProcessorIndex (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- OUT UINTN *MaxProcessorIndex
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ OUT UINTN *MaxProcessorIndex
);
/**
@@ -308,10 +309,10 @@ EbcDebugRegisterExceptionCallback (
EFI_STATUS
EFIAPI
EbcDebugInvalidateInstructionCache (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN VOID *Start,
- IN UINT64 Length
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN VOID *Start,
+ IN UINT64 Length
);
//
@@ -320,28 +321,28 @@ EbcDebugInvalidateInstructionCache (
// also be global since the execution of an EBC image does not provide
// a This pointer.
//
-EBC_IMAGE_LIST *mEbcImageList = NULL;
+EBC_IMAGE_LIST *mEbcImageList = NULL;
//
// Callback function to flush the icache after thunk creation
//
-EBC_ICACHE_FLUSH mEbcICacheFlush;
+EBC_ICACHE_FLUSH mEbcICacheFlush;
//
// These get set via calls by the debug agent
//
-EFI_PERIODIC_CALLBACK mDebugPeriodicCallback = NULL;
-EFI_EXCEPTION_CALLBACK mDebugExceptionCallback[MAX_EBC_EXCEPTION + 1] = {NULL};
+EFI_PERIODIC_CALLBACK mDebugPeriodicCallback = NULL;
+EFI_EXCEPTION_CALLBACK mDebugExceptionCallback[MAX_EBC_EXCEPTION + 1] = { NULL };
-VOID *mStackBuffer[MAX_STACK_NUM];
-EFI_HANDLE mStackBufferIndex[MAX_STACK_NUM];
-UINTN mStackNum = 0;
+VOID *mStackBuffer[MAX_STACK_NUM];
+EFI_HANDLE mStackBufferIndex[MAX_STACK_NUM];
+UINTN mStackNum = 0;
//
// Event for Periodic callback
//
-EFI_EVENT mEbcPeriodicEvent;
-VM_CONTEXT *mVmPtr = NULL;
+EFI_EVENT mEbcPeriodicEvent;
+VM_CONTEXT *mVmPtr = NULL;
/**
Check whether the emulator supports executing a certain PE/COFF image
@@ -359,15 +360,17 @@ VM_CONTEXT *mVmPtr = NULL;
BOOLEAN
EFIAPI
EbcIsImageSupported (
- IN EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL *This,
- IN UINT16 ImageType,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL
+ IN EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL *This,
+ IN UINT16 ImageType,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL
)
{
- if (ImageType != EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION &&
- ImageType != EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER) {
+ if ((ImageType != EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION) &&
+ (ImageType != EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER))
+ {
return FALSE;
}
+
return TRUE;
}
@@ -396,36 +399,44 @@ EbcIsImageSupported (
EFI_STATUS
EFIAPI
EbcRegisterImage (
- IN EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL *This,
- IN EFI_PHYSICAL_ADDRESS ImageBase,
- IN UINT64 ImageSize,
- IN OUT EFI_IMAGE_ENTRY_POINT *EntryPoint
+ IN EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS ImageBase,
+ IN UINT64 ImageSize,
+ IN OUT EFI_IMAGE_ENTRY_POINT *EntryPoint
)
{
DEBUG_CODE_BEGIN ();
- PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
- EFI_STATUS Status;
+ PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
+ EFI_STATUS Status;
- ZeroMem (&ImageContext, sizeof (ImageContext));
+ ZeroMem (&ImageContext, sizeof (ImageContext));
- ImageContext.Handle = (VOID *)(UINTN)ImageBase;
- ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;
+ ImageContext.Handle = (VOID *)(UINTN)ImageBase;
+ ImageContext.ImageRead = PeCoffLoaderImageReadFromMemory;
- Status = PeCoffLoaderGetImageInfo (&ImageContext);
- if (EFI_ERROR (Status)) {
- return Status;
- }
+ Status = PeCoffLoaderGetImageInfo (&ImageContext);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
- ASSERT (ImageContext.Machine == EFI_IMAGE_MACHINE_EBC);
- ASSERT (ImageContext.ImageType == EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION ||
- ImageContext.ImageType == EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER);
+ ASSERT (ImageContext.Machine == EFI_IMAGE_MACHINE_EBC);
+ ASSERT (
+ ImageContext.ImageType == EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION ||
+ ImageContext.ImageType == EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
+ );
DEBUG_CODE_END ();
- EbcRegisterICacheFlush (NULL,
- (EBC_ICACHE_FLUSH)InvalidateInstructionCacheRange);
-
- return EbcCreateThunk (NULL, (VOID *)(UINTN)ImageBase,
- (VOID *)(UINTN)*EntryPoint, (VOID **)EntryPoint);
+ EbcRegisterICacheFlush (
+ NULL,
+ (EBC_ICACHE_FLUSH)InvalidateInstructionCacheRange
+ );
+
+ return EbcCreateThunk (
+ NULL,
+ (VOID *)(UINTN)ImageBase,
+ (VOID *)(UINTN)*EntryPoint,
+ (VOID **)EntryPoint
+ );
}
/**
@@ -442,14 +453,14 @@ EbcRegisterImage (
EFI_STATUS
EFIAPI
EbcUnregisterImage (
- IN EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL *This,
- IN EFI_PHYSICAL_ADDRESS ImageBase
+ IN EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS ImageBase
)
{
return EbcUnloadImage (NULL, (VOID *)(UINTN)ImageBase);
}
-STATIC EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL mPeCoffEmuProtocol = {
+STATIC EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL mPeCoffEmuProtocol = {
EbcIsImageSupported,
EbcRegisterImage,
EbcUnregisterImage,
@@ -470,8 +481,8 @@ STATIC EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL mPeCoffEmuProtocol = {
EFI_STATUS
EFIAPI
InitializeEbcDriver (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_EBC_PROTOCOL *EbcProtocol;
@@ -495,24 +506,24 @@ InitializeEbcDriver (
return EFI_OUT_OF_RESOURCES;
}
- EbcProtocol->CreateThunk = EbcCreateThunk;
- EbcProtocol->UnloadImage = EbcUnloadImage;
- EbcProtocol->RegisterICacheFlush = EbcRegisterICacheFlush;
- EbcProtocol->GetVersion = EbcGetVersion;
- mEbcICacheFlush = NULL;
+ EbcProtocol->CreateThunk = EbcCreateThunk;
+ EbcProtocol->UnloadImage = EbcUnloadImage;
+ EbcProtocol->RegisterICacheFlush = EbcRegisterICacheFlush;
+ EbcProtocol->GetVersion = EbcGetVersion;
+ mEbcICacheFlush = NULL;
//
// Find any already-installed EBC protocols and uninstall them
//
- Installed = FALSE;
- HandleBuffer = NULL;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiEbcProtocolGuid,
- NULL,
- &NumHandles,
- &HandleBuffer
- );
+ Installed = FALSE;
+ HandleBuffer = NULL;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiEbcProtocolGuid,
+ NULL,
+ &NumHandles,
+ &HandleBuffer
+ );
if (Status == EFI_SUCCESS) {
//
// Loop through the handles
@@ -521,15 +532,16 @@ InitializeEbcDriver (
Status = gBS->HandleProtocol (
HandleBuffer[Index],
&gEfiEbcProtocolGuid,
- (VOID **) &OldEbcProtocol
+ (VOID **)&OldEbcProtocol
);
if (Status == EFI_SUCCESS) {
if (gBS->ReinstallProtocolInterface (
- HandleBuffer[Index],
- &gEfiEbcProtocolGuid,
- OldEbcProtocol,
- EbcProtocol
- ) == EFI_SUCCESS) {
+ HandleBuffer[Index],
+ &gEfiEbcProtocolGuid,
+ OldEbcProtocol,
+ EbcProtocol
+ ) == EFI_SUCCESS)
+ {
Installed = TRUE;
}
}
@@ -540,14 +552,17 @@ InitializeEbcDriver (
FreePool (HandleBuffer);
HandleBuffer = NULL;
}
+
//
// Add the protocol so someone can locate us if we haven't already.
//
if (!Installed) {
Status = gBS->InstallMultipleProtocolInterfaces (
&ImageHandle,
- &gEfiEbcProtocolGuid, EbcProtocol,
- &gEdkiiPeCoffImageEmulatorProtocolGuid, &mPeCoffEmuProtocol,
+ &gEfiEbcProtocolGuid,
+ EbcProtocol,
+ &gEdkiiPeCoffImageEmulatorProtocolGuid,
+ &mPeCoffEmuProtocol,
NULL
);
if (EFI_ERROR (Status)) {
@@ -556,8 +571,8 @@ InitializeEbcDriver (
}
}
- Status = InitEBCStack();
- if (EFI_ERROR(Status)) {
+ Status = InitEBCStack ();
+ if (EFI_ERROR (Status)) {
goto ErrorExit;
}
@@ -570,11 +585,11 @@ InitializeEbcDriver (
goto ErrorExit;
}
- EbcDebugProtocol->Isa = IsaEbc;
- EbcDebugProtocol->GetMaximumProcessorIndex = EbcDebugGetMaximumProcessorIndex;
- EbcDebugProtocol->RegisterPeriodicCallback = EbcDebugRegisterPeriodicCallback;
- EbcDebugProtocol->RegisterExceptionCallback = EbcDebugRegisterExceptionCallback;
- EbcDebugProtocol->InvalidateInstructionCache = EbcDebugInvalidateInstructionCache;
+ EbcDebugProtocol->Isa = IsaEbc;
+ EbcDebugProtocol->GetMaximumProcessorIndex = EbcDebugGetMaximumProcessorIndex;
+ EbcDebugProtocol->RegisterPeriodicCallback = EbcDebugRegisterPeriodicCallback;
+ EbcDebugProtocol->RegisterExceptionCallback = EbcDebugRegisterExceptionCallback;
+ EbcDebugProtocol->InvalidateInstructionCache = EbcDebugInvalidateInstructionCache;
//
// Add the protocol so the debug agent can find us
@@ -592,6 +607,7 @@ InitializeEbcDriver (
FreePool (EbcDebugProtocol);
goto ErrorExit;
}
+
//
// Install EbcDebugSupport Protocol Successfully
// Now we need to initialize the Ebc default Callback
@@ -602,7 +618,7 @@ InitializeEbcDriver (
// Produce a VM test interface protocol. Not required for execution.
//
DEBUG_CODE_BEGIN ();
- InitEbcVmTestProtocol (&ImageHandle);
+ InitEbcVmTestProtocol (&ImageHandle);
DEBUG_CODE_END ();
EbcDebuggerHookInit (ImageHandle, EbcDebugProtocol);
@@ -610,15 +626,15 @@ InitializeEbcDriver (
return EFI_SUCCESS;
ErrorExit:
- FreeEBCStack();
- HandleBuffer = NULL;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiEbcProtocolGuid,
- NULL,
- &NumHandles,
- &HandleBuffer
- );
+ FreeEBCStack ();
+ HandleBuffer = NULL;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiEbcProtocolGuid,
+ NULL,
+ &NumHandles,
+ &HandleBuffer
+ );
if (Status == EFI_SUCCESS) {
//
// Loop through the handles
@@ -627,7 +643,7 @@ ErrorExit:
Status = gBS->HandleProtocol (
HandleBuffer[Index],
&gEfiEbcProtocolGuid,
- (VOID **) &OldEbcProtocol
+ (VOID **)&OldEbcProtocol
);
if (Status == EFI_SUCCESS) {
gBS->UninstallProtocolInterface (
@@ -649,7 +665,6 @@ ErrorExit:
return Status;
}
-
/**
This is the top-level routine plugged into the EBC protocol. Since thunks
are very processor-specific, from here we dispatch directly to the very
@@ -672,24 +687,23 @@ ErrorExit:
EFI_STATUS
EFIAPI
EbcCreateThunk (
- IN EFI_EBC_PROTOCOL *This,
- IN EFI_HANDLE ImageHandle,
- IN VOID *EbcEntryPoint,
- OUT VOID **Thunk
+ IN EFI_EBC_PROTOCOL *This,
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *EbcEntryPoint,
+ OUT VOID **Thunk
)
{
EFI_STATUS Status;
Status = EbcCreateThunks (
- ImageHandle,
- EbcEntryPoint,
- Thunk,
- FLAG_THUNK_ENTRY_POINT
- );
+ ImageHandle,
+ EbcEntryPoint,
+ Thunk,
+ FLAG_THUNK_ENTRY_POINT
+ );
return Status;
}
-
/**
This EBC debugger protocol service is called by the debug agent
@@ -704,15 +718,14 @@ EbcCreateThunk (
EFI_STATUS
EFIAPI
EbcDebugGetMaximumProcessorIndex (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- OUT UINTN *MaxProcessorIndex
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ OUT UINTN *MaxProcessorIndex
)
{
*MaxProcessorIndex = 0;
return EFI_SUCCESS;
}
-
/**
This protocol service is called by the debug agent to register a function
for us to call on a periodic basis.
@@ -745,6 +758,7 @@ EbcDebugRegisterPeriodicCallback (
if ((mDebugPeriodicCallback == NULL) && (PeriodicCallback == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if ((mDebugPeriodicCallback != NULL) && (PeriodicCallback != NULL)) {
return EFI_ALREADY_STARTED;
}
@@ -753,7 +767,6 @@ EbcDebugRegisterPeriodicCallback (
return EFI_SUCCESS;
}
-
/**
This protocol service is called by the debug agent to register a function
for us to call when we detect an exception.
@@ -791,17 +804,19 @@ EbcDebugRegisterExceptionCallback (
if ((ExceptionType < 0) || (ExceptionType > MAX_EBC_EXCEPTION)) {
return EFI_INVALID_PARAMETER;
}
+
if ((mDebugExceptionCallback[ExceptionType] == NULL) && (ExceptionCallback == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if ((mDebugExceptionCallback[ExceptionType] != NULL) && (ExceptionCallback != NULL)) {
return EFI_ALREADY_STARTED;
}
+
mDebugExceptionCallback[ExceptionType] = ExceptionCallback;
return EFI_SUCCESS;
}
-
/**
This EBC debugger protocol service is called by the debug agent. Required
for DebugSupport compliance but is only stubbed out for EBC.
@@ -821,16 +836,15 @@ EbcDebugRegisterExceptionCallback (
EFI_STATUS
EFIAPI
EbcDebugInvalidateInstructionCache (
- IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
- IN UINTN ProcessorIndex,
- IN VOID *Start,
- IN UINT64 Length
+ IN EFI_DEBUG_SUPPORT_PROTOCOL *This,
+ IN UINTN ProcessorIndex,
+ IN VOID *Start,
+ IN UINT64 Length
)
{
return EFI_SUCCESS;
}
-
/**
The VM interpreter calls this function when an exception is detected.
@@ -844,9 +858,9 @@ EbcDebugInvalidateInstructionCache (
**/
EFI_STATUS
EbcDebugSignalException (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EXCEPTION_FLAGS ExceptionFlags,
- IN VM_CONTEXT *VmPtr
+ IN EFI_EXCEPTION_TYPE ExceptionType,
+ IN EXCEPTION_FLAGS ExceptionFlags,
+ IN VM_CONTEXT *VmPtr
)
{
EFI_SYSTEM_CONTEXT_EBC EbcContext;
@@ -857,7 +871,7 @@ EbcDebugSignalException (
// Save the exception in the context passed in
//
VmPtr->ExceptionFlags |= ExceptionFlags;
- VmPtr->LastException = (UINTN) ExceptionType;
+ VmPtr->LastException = (UINTN)ExceptionType;
//
// If it's a fatal exception, then flag it in the VM context in case an
// attached debugger tries to return from it.
@@ -873,43 +887,41 @@ EbcDebugSignalException (
// status code via the status code API
//
if (mDebugExceptionCallback[ExceptionType] != NULL) {
-
//
// Initialize the context structure
//
- EbcContext.R0 = (UINT64) VmPtr->Gpr[0];
- EbcContext.R1 = (UINT64) VmPtr->Gpr[1];
- EbcContext.R2 = (UINT64) VmPtr->Gpr[2];
- EbcContext.R3 = (UINT64) VmPtr->Gpr[3];
- EbcContext.R4 = (UINT64) VmPtr->Gpr[4];
- EbcContext.R5 = (UINT64) VmPtr->Gpr[5];
- EbcContext.R6 = (UINT64) VmPtr->Gpr[6];
- EbcContext.R7 = (UINT64) VmPtr->Gpr[7];
- EbcContext.Ip = (UINT64)(UINTN)VmPtr->Ip;
- EbcContext.Flags = VmPtr->Flags;
- EbcContext.ControlFlags = 0;
- SystemContext.SystemContextEbc = &EbcContext;
-
- mDebugExceptionCallback[ExceptionType] (ExceptionType, SystemContext);
+ EbcContext.R0 = (UINT64)VmPtr->Gpr[0];
+ EbcContext.R1 = (UINT64)VmPtr->Gpr[1];
+ EbcContext.R2 = (UINT64)VmPtr->Gpr[2];
+ EbcContext.R3 = (UINT64)VmPtr->Gpr[3];
+ EbcContext.R4 = (UINT64)VmPtr->Gpr[4];
+ EbcContext.R5 = (UINT64)VmPtr->Gpr[5];
+ EbcContext.R6 = (UINT64)VmPtr->Gpr[6];
+ EbcContext.R7 = (UINT64)VmPtr->Gpr[7];
+ EbcContext.Ip = (UINT64)(UINTN)VmPtr->Ip;
+ EbcContext.Flags = VmPtr->Flags;
+ EbcContext.ControlFlags = 0;
+ SystemContext.SystemContextEbc = &EbcContext;
+
+ mDebugExceptionCallback[ExceptionType](ExceptionType, SystemContext);
//
// Restore the context structure and continue to execute
//
- VmPtr->Gpr[0] = EbcContext.R0;
- VmPtr->Gpr[1] = EbcContext.R1;
- VmPtr->Gpr[2] = EbcContext.R2;
- VmPtr->Gpr[3] = EbcContext.R3;
- VmPtr->Gpr[4] = EbcContext.R4;
- VmPtr->Gpr[5] = EbcContext.R5;
- VmPtr->Gpr[6] = EbcContext.R6;
- VmPtr->Gpr[7] = EbcContext.R7;
- VmPtr->Ip = (VMIP)(UINTN)EbcContext.Ip;
- VmPtr->Flags = EbcContext.Flags;
+ VmPtr->Gpr[0] = EbcContext.R0;
+ VmPtr->Gpr[1] = EbcContext.R1;
+ VmPtr->Gpr[2] = EbcContext.R2;
+ VmPtr->Gpr[3] = EbcContext.R3;
+ VmPtr->Gpr[4] = EbcContext.R4;
+ VmPtr->Gpr[5] = EbcContext.R5;
+ VmPtr->Gpr[6] = EbcContext.R6;
+ VmPtr->Gpr[7] = EbcContext.R7;
+ VmPtr->Ip = (VMIP)(UINTN)EbcContext.Ip;
+ VmPtr->Flags = EbcContext.Flags;
}
return EFI_SUCCESS;
}
-
/**
To install default Callback function for the VM interpreter.
@@ -926,8 +938,8 @@ InitializeEbcCallback (
IN EFI_DEBUG_SUPPORT_PROTOCOL *This
)
{
- INTN Index;
- EFI_STATUS Status;
+ INTN Index;
+ EFI_STATUS Status;
//
// For ExceptionCallback
@@ -951,7 +963,7 @@ InitializeEbcCallback (
&mVmPtr,
&mEbcPeriodicEvent
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -960,14 +972,13 @@ InitializeEbcCallback (
TimerPeriodic,
EBC_VM_PERIODIC_CALLBACK_RATE
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
return EFI_SUCCESS;
}
-
/**
The default Exception Callback for the VM interpreter.
In this function, we report status code, and print debug information
@@ -980,8 +991,8 @@ InitializeEbcCallback (
VOID
EFIAPI
CommonEbcExceptionHandler (
- IN EFI_EXCEPTION_TYPE InterruptType,
- IN EFI_SYSTEM_CONTEXT SystemContext
+ IN EFI_EXCEPTION_TYPE InterruptType,
+ IN EFI_SYSTEM_CONTEXT SystemContext
)
{
//
@@ -990,7 +1001,7 @@ CommonEbcExceptionHandler (
DEBUG ((
DEBUG_ERROR,
"EBC Interrupter Version - 0x%016lx\n",
- (UINT64) (((VM_MAJOR_VERSION & 0xFFFF) << 16) | ((VM_MINOR_VERSION & 0xFFFF)))
+ (UINT64)(((VM_MAJOR_VERSION & 0xFFFF) << 16) | ((VM_MINOR_VERSION & 0xFFFF)))
));
DEBUG ((
DEBUG_ERROR,
@@ -1042,10 +1053,9 @@ CommonEbcExceptionHandler (
//
CpuDeadLoop ();
- return ;
+ return;
}
-
/**
The periodic callback function for EBC VM interpreter, which is used
to support the EFI debug support protocol.
@@ -1057,11 +1067,11 @@ CommonEbcExceptionHandler (
VOID
EFIAPI
EbcPeriodicNotifyFunction (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- VM_CONTEXT *VmPtr;
+ VM_CONTEXT *VmPtr;
VmPtr = *(VM_CONTEXT **)Context;
@@ -1069,10 +1079,9 @@ EbcPeriodicNotifyFunction (
EbcDebugPeriodic (VmPtr);
}
- return ;
+ return;
}
-
/**
The VM interpreter calls this function on a periodic basis to support
the EFI debug support protocol.
@@ -1086,54 +1095,52 @@ EbcPeriodicNotifyFunction (
EFI_STATUS
EFIAPI
EbcDebugPeriodic (
- IN VM_CONTEXT *VmPtr
+ IN VM_CONTEXT *VmPtr
)
{
- EFI_SYSTEM_CONTEXT_EBC EbcContext;
- EFI_SYSTEM_CONTEXT SystemContext;
+ EFI_SYSTEM_CONTEXT_EBC EbcContext;
+ EFI_SYSTEM_CONTEXT SystemContext;
//
// If someone's registered for periodic callbacks, then call them.
//
if (mDebugPeriodicCallback != NULL) {
-
//
// Initialize the context structure
//
- EbcContext.R0 = (UINT64) VmPtr->Gpr[0];
- EbcContext.R1 = (UINT64) VmPtr->Gpr[1];
- EbcContext.R2 = (UINT64) VmPtr->Gpr[2];
- EbcContext.R3 = (UINT64) VmPtr->Gpr[3];
- EbcContext.R4 = (UINT64) VmPtr->Gpr[4];
- EbcContext.R5 = (UINT64) VmPtr->Gpr[5];
- EbcContext.R6 = (UINT64) VmPtr->Gpr[6];
- EbcContext.R7 = (UINT64) VmPtr->Gpr[7];
- EbcContext.Ip = (UINT64)(UINTN)VmPtr->Ip;
- EbcContext.Flags = VmPtr->Flags;
- EbcContext.ControlFlags = 0;
- SystemContext.SystemContextEbc = &EbcContext;
+ EbcContext.R0 = (UINT64)VmPtr->Gpr[0];
+ EbcContext.R1 = (UINT64)VmPtr->Gpr[1];
+ EbcContext.R2 = (UINT64)VmPtr->Gpr[2];
+ EbcContext.R3 = (UINT64)VmPtr->Gpr[3];
+ EbcContext.R4 = (UINT64)VmPtr->Gpr[4];
+ EbcContext.R5 = (UINT64)VmPtr->Gpr[5];
+ EbcContext.R6 = (UINT64)VmPtr->Gpr[6];
+ EbcContext.R7 = (UINT64)VmPtr->Gpr[7];
+ EbcContext.Ip = (UINT64)(UINTN)VmPtr->Ip;
+ EbcContext.Flags = VmPtr->Flags;
+ EbcContext.ControlFlags = 0;
+ SystemContext.SystemContextEbc = &EbcContext;
mDebugPeriodicCallback (SystemContext);
//
// Restore the context structure and continue to execute
//
- VmPtr->Gpr[0] = EbcContext.R0;
- VmPtr->Gpr[1] = EbcContext.R1;
- VmPtr->Gpr[2] = EbcContext.R2;
- VmPtr->Gpr[3] = EbcContext.R3;
- VmPtr->Gpr[4] = EbcContext.R4;
- VmPtr->Gpr[5] = EbcContext.R5;
- VmPtr->Gpr[6] = EbcContext.R6;
- VmPtr->Gpr[7] = EbcContext.R7;
- VmPtr->Ip = (VMIP)(UINTN)EbcContext.Ip;
- VmPtr->Flags = EbcContext.Flags;
+ VmPtr->Gpr[0] = EbcContext.R0;
+ VmPtr->Gpr[1] = EbcContext.R1;
+ VmPtr->Gpr[2] = EbcContext.R2;
+ VmPtr->Gpr[3] = EbcContext.R3;
+ VmPtr->Gpr[4] = EbcContext.R4;
+ VmPtr->Gpr[5] = EbcContext.R5;
+ VmPtr->Gpr[6] = EbcContext.R6;
+ VmPtr->Gpr[7] = EbcContext.R7;
+ VmPtr->Ip = (VMIP)(UINTN)EbcContext.Ip;
+ VmPtr->Flags = EbcContext.Flags;
}
return EFI_SUCCESS;
}
-
/**
This routine is called by the core when an image is being unloaded from
memory. Basically we now have the opportunity to do any necessary cleanup.
@@ -1151,24 +1158,26 @@ EbcDebugPeriodic (
EFI_STATUS
EFIAPI
EbcUnloadImage (
- IN EFI_EBC_PROTOCOL *This,
- IN EFI_HANDLE ImageHandle
+ IN EFI_EBC_PROTOCOL *This,
+ IN EFI_HANDLE ImageHandle
)
{
EBC_THUNK_LIST *ThunkList;
EBC_THUNK_LIST *NextThunkList;
EBC_IMAGE_LIST *ImageList;
EBC_IMAGE_LIST *PrevImageList;
+
//
// First go through our list of known image handles and see if we've already
// created an image list element for this image handle.
//
- ReturnEBCStackByHandle(ImageHandle);
+ ReturnEBCStackByHandle (ImageHandle);
PrevImageList = NULL;
for (ImageList = mEbcImageList; ImageList != NULL; ImageList = ImageList->Next) {
if (ImageList->ImageHandle == ImageHandle) {
break;
}
+
//
// Save the previous so we can connect the lists when we remove this one
//
@@ -1178,6 +1187,7 @@ EbcUnloadImage (
if (ImageList == NULL) {
return EFI_INVALID_PARAMETER;
}
+
//
// Free up all the thunk buffers and thunks list elements for this image
// handle.
@@ -1189,6 +1199,7 @@ EbcUnloadImage (
FreePool (ThunkList);
ThunkList = NextThunkList;
}
+
//
// Now remove this image list element from the chain
//
@@ -1200,6 +1211,7 @@ EbcUnloadImage (
} else {
PrevImageList->Next = ImageList->Next;
}
+
//
// Now free up the image list element
//
@@ -1210,7 +1222,6 @@ EbcUnloadImage (
return EFI_SUCCESS;
}
-
/**
Add a thunk to our list of thunks for a given image handle.
Also flush the instruction cache since we've written thunk code
@@ -1226,9 +1237,9 @@ EbcUnloadImage (
**/
EFI_STATUS
EbcAddImageThunk (
- IN EFI_HANDLE ImageHandle,
- IN VOID *ThunkBuffer,
- IN UINT32 ThunkSize
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *ThunkBuffer,
+ IN UINT32 ThunkSize
)
{
EBC_THUNK_LIST *ThunkList;
@@ -1239,11 +1250,12 @@ EbcAddImageThunk (
// It so far so good, then flush the instruction cache
//
if (mEbcICacheFlush != NULL) {
- Status = mEbcICacheFlush ((EFI_PHYSICAL_ADDRESS) (UINTN) ThunkBuffer, ThunkSize);
+ Status = mEbcICacheFlush ((EFI_PHYSICAL_ADDRESS)(UINTN)ThunkBuffer, ThunkSize);
if (EFI_ERROR (Status)) {
return Status;
}
}
+
//
// Go through our list of known image handles and see if we've already
// created a image list element for this image handle.
@@ -1264,11 +1276,12 @@ EbcAddImageThunk (
return EFI_OUT_OF_RESOURCES;
}
- ImageList->ThunkList = NULL;
- ImageList->ImageHandle = ImageHandle;
- ImageList->Next = mEbcImageList;
- mEbcImageList = ImageList;
+ ImageList->ThunkList = NULL;
+ ImageList->ImageHandle = ImageHandle;
+ ImageList->Next = mEbcImageList;
+ mEbcImageList = ImageList;
}
+
//
// Ok, now create a new thunk element to add to the list
//
@@ -1277,12 +1290,13 @@ EbcAddImageThunk (
if (ThunkList == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Add it to the head of the list
//
- ThunkList->Next = ImageList->ThunkList;
- ThunkList->ThunkBuffer = ThunkBuffer;
- ImageList->ThunkList = ThunkList;
+ ThunkList->Next = ImageList->ThunkList;
+ ThunkList->ThunkBuffer = ThunkBuffer;
+ ImageList->ThunkList = ThunkList;
return EFI_SUCCESS;
}
@@ -1299,8 +1313,8 @@ EbcAddImageThunk (
EFI_STATUS
EFIAPI
EbcRegisterICacheFlush (
- IN EFI_EBC_PROTOCOL *This,
- IN EBC_ICACHE_FLUSH Flush
+ IN EFI_EBC_PROTOCOL *This,
+ IN EBC_ICACHE_FLUSH Flush
)
{
mEbcICacheFlush = Flush;
@@ -1321,8 +1335,8 @@ EbcRegisterICacheFlush (
EFI_STATUS
EFIAPI
EbcGetVersion (
- IN EFI_EBC_PROTOCOL *This,
- IN OUT UINT64 *Version
+ IN EFI_EBC_PROTOCOL *This,
+ IN OUT UINT64 *Version
)
{
if (Version == NULL) {
@@ -1347,25 +1361,28 @@ EbcGetVersion (
**/
EFI_STATUS
-GetEBCStack(
- IN EFI_HANDLE Handle,
- OUT VOID **StackBuffer,
- OUT UINTN *BufferIndex
+GetEBCStack (
+ IN EFI_HANDLE Handle,
+ OUT VOID **StackBuffer,
+ OUT UINTN *BufferIndex
)
{
- UINTN Index;
- EFI_TPL OldTpl;
- OldTpl = gBS->RaiseTPL(TPL_HIGH_LEVEL);
- for (Index = 0; Index < mStackNum; Index ++) {
+ UINTN Index;
+ EFI_TPL OldTpl;
+
+ OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
+ for (Index = 0; Index < mStackNum; Index++) {
if (mStackBufferIndex[Index] == NULL) {
mStackBufferIndex[Index] = Handle;
break;
}
}
- gBS->RestoreTPL(OldTpl);
+
+ gBS->RestoreTPL (OldTpl);
if (Index == mStackNum) {
return EFI_OUT_OF_RESOURCES;
}
+
*BufferIndex = Index;
*StackBuffer = mStackBuffer[Index];
return EFI_SUCCESS;
@@ -1380,8 +1397,8 @@ GetEBCStack(
**/
EFI_STATUS
-ReturnEBCStack(
- IN UINTN Index
+ReturnEBCStack (
+ IN UINTN Index
)
{
mStackBufferIndex[Index] = NULL;
@@ -1397,19 +1414,22 @@ ReturnEBCStack(
**/
EFI_STATUS
-ReturnEBCStackByHandle(
- IN EFI_HANDLE Handle
+ReturnEBCStackByHandle (
+ IN EFI_HANDLE Handle
)
{
- UINTN Index;
- for (Index = 0; Index < mStackNum; Index ++) {
+ UINTN Index;
+
+ for (Index = 0; Index < mStackNum; Index++) {
if (mStackBufferIndex[Index] == Handle) {
break;
}
}
+
if (Index == mStackNum) {
return EFI_NOT_FOUND;
}
+
mStackBufferIndex[Index] = NULL;
return EFI_SUCCESS;
}
@@ -1426,20 +1446,21 @@ InitEBCStack (
VOID
)
{
- for (mStackNum = 0; mStackNum < MAX_STACK_NUM; mStackNum ++) {
- mStackBuffer[mStackNum] = AllocatePool(STACK_POOL_SIZE);
+ for (mStackNum = 0; mStackNum < MAX_STACK_NUM; mStackNum++) {
+ mStackBuffer[mStackNum] = AllocatePool (STACK_POOL_SIZE);
mStackBufferIndex[mStackNum] = NULL;
if (mStackBuffer[mStackNum] == NULL) {
break;
}
}
+
if (mStackNum == 0) {
return EFI_OUT_OF_RESOURCES;
}
+
return EFI_SUCCESS;
}
-
/**
Free all EBC stacks allocated before.
@@ -1447,14 +1468,16 @@ InitEBCStack (
**/
EFI_STATUS
-FreeEBCStack(
+FreeEBCStack (
VOID
)
{
- UINTN Index;
- for (Index = 0; Index < mStackNum; Index ++) {
- FreePool(mStackBuffer[Index]);
+ UINTN Index;
+
+ for (Index = 0; Index < mStackNum; Index++) {
+ FreePool (mStackBuffer[Index]);
}
+
return EFI_SUCCESS;
}
@@ -1469,12 +1492,12 @@ FreeEBCStack(
**/
EFI_STATUS
InitEbcVmTestProtocol (
- IN EFI_HANDLE *IHandle
+ IN EFI_HANDLE *IHandle
)
{
- EFI_HANDLE Handle;
- EFI_STATUS Status;
- EFI_EBC_VM_TEST_PROTOCOL *EbcVmTestProtocol;
+ EFI_HANDLE Handle;
+ EFI_STATUS Status;
+ EFI_EBC_VM_TEST_PROTOCOL *EbcVmTestProtocol;
//
// Allocate memory for the protocol, then fill in the fields
@@ -1483,25 +1506,26 @@ InitEbcVmTestProtocol (
if (EbcVmTestProtocol == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- EbcVmTestProtocol->Execute = (EBC_VM_TEST_EXECUTE) EbcExecuteInstructions;
+
+ EbcVmTestProtocol->Execute = (EBC_VM_TEST_EXECUTE)EbcExecuteInstructions;
DEBUG_CODE_BEGIN ();
- EbcVmTestProtocol->Assemble = (EBC_VM_TEST_ASM) EbcVmTestUnsupported;
- EbcVmTestProtocol->Disassemble = (EBC_VM_TEST_DASM) EbcVmTestUnsupported;
+ EbcVmTestProtocol->Assemble = (EBC_VM_TEST_ASM)EbcVmTestUnsupported;
+ EbcVmTestProtocol->Disassemble = (EBC_VM_TEST_DASM)EbcVmTestUnsupported;
DEBUG_CODE_END ();
//
// Publish the protocol
//
- Handle = NULL;
- Status = gBS->InstallProtocolInterface (&Handle, &gEfiEbcVmTestProtocolGuid, EFI_NATIVE_INTERFACE, EbcVmTestProtocol);
+ Handle = NULL;
+ Status = gBS->InstallProtocolInterface (&Handle, &gEfiEbcVmTestProtocolGuid, EFI_NATIVE_INTERFACE, EbcVmTestProtocol);
if (EFI_ERROR (Status)) {
FreePool (EbcVmTestProtocol);
}
+
return Status;
}
-
/**
Returns the EFI_UNSUPPORTED Status.
@@ -1538,5 +1562,6 @@ EbcAllocatePoolForThunk (
if (EFI_ERROR (Status)) {
return NULL;
}
+
return Buffer;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/EbcInt.h b/MdeModulePkg/Universal/EbcDxe/EbcInt.h
index 16f5ed4..646e3a6 100644
--- a/MdeModulePkg/Universal/EbcDxe/EbcInt.h
+++ b/MdeModulePkg/Universal/EbcDxe/EbcInt.h
@@ -10,7 +10,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _EBC_INT_H_
#define _EBC_INT_H_
-
#include <Uefi.h>
#include <Protocol/DebugSupport.h>
@@ -28,7 +27,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/UefiBootServicesTableLib.h>
#include <Library/MemoryAllocationLib.h>
-extern VM_CONTEXT *mVmPtr;
+extern VM_CONTEXT *mVmPtr;
//
// Flags passed to the internal create-thunks function.
@@ -60,10 +59,10 @@ extern VM_CONTEXT *mVmPtr;
**/
EFI_STATUS
EbcCreateThunks (
- IN EFI_HANDLE ImageHandle,
- IN VOID *EbcEntryPoint,
- OUT VOID **Thunk,
- IN UINT32 Flags
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *EbcEntryPoint,
+ OUT VOID **Thunk,
+ IN UINT32 Flags
);
/**
@@ -81,23 +80,24 @@ EbcCreateThunks (
**/
EFI_STATUS
EbcAddImageThunk (
- IN EFI_HANDLE ImageHandle,
- IN VOID *ThunkBuffer,
- IN UINT32 ThunkSize
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *ThunkBuffer,
+ IN UINT32 ThunkSize
);
//
// Define a constant of how often to call the debugger periodic callback
// function.
//
-#define EFI_TIMER_UNIT_1MS (1000 * 10)
-#define EBC_VM_PERIODIC_CALLBACK_RATE (1000 * EFI_TIMER_UNIT_1MS)
-#define STACK_POOL_SIZE (1024 * 1020)
-#define MAX_STACK_NUM 4
+#define EFI_TIMER_UNIT_1MS (1000 * 10)
+#define EBC_VM_PERIODIC_CALLBACK_RATE (1000 * EFI_TIMER_UNIT_1MS)
+#define STACK_POOL_SIZE (1024 * 1020)
+#define MAX_STACK_NUM 4
//
// External low level functions that are native-processor dependent
//
+
/**
The VM thunk code stuffs an EBC entry point into a processor
register. Since we can't use inline assembly to get it from
@@ -131,9 +131,9 @@ EbcLLGetEbcEntryPoint (
INT64
EFIAPI
EbcLLCALLEXNative (
- IN UINTN CallAddr,
- IN UINTN EbcSp,
- IN VOID *FramePtr
+ IN UINTN CallAddr,
+ IN UINTN EbcSp,
+ IN VOID *FramePtr
);
/**
@@ -153,11 +153,11 @@ EbcLLCALLEXNative (
**/
VOID
EbcLLCALLEX (
- IN VM_CONTEXT *VmPtr,
- IN UINTN FuncAddr,
- IN UINTN NewStackPointer,
- IN VOID *FramePtr,
- IN UINT8 Size
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN FuncAddr,
+ IN UINTN NewStackPointer,
+ IN VOID *FramePtr,
+ IN UINT8 Size
);
/**
@@ -174,10 +174,10 @@ EbcLLCALLEX (
**/
EFI_STATUS
-GetEBCStack(
- IN EFI_HANDLE Handle,
- OUT VOID **StackBuffer,
- OUT UINTN *BufferIndex
+GetEBCStack (
+ IN EFI_HANDLE Handle,
+ OUT VOID **StackBuffer,
+ OUT UINTN *BufferIndex
);
/**
@@ -189,8 +189,8 @@ GetEBCStack(
**/
EFI_STATUS
-ReturnEBCStack(
- IN UINTN Index
+ReturnEBCStack (
+ IN UINTN Index
);
/**
@@ -212,7 +212,7 @@ InitEBCStack (
**/
EFI_STATUS
-FreeEBCStack(
+FreeEBCStack (
VOID
);
@@ -225,24 +225,22 @@ FreeEBCStack(
**/
EFI_STATUS
-ReturnEBCStackByHandle(
- IN EFI_HANDLE Handle
+ReturnEBCStackByHandle (
+ IN EFI_HANDLE Handle
);
typedef struct {
- EFI_EBC_PROTOCOL *This;
- VOID *EntryPoint;
- EFI_HANDLE ImageHandle;
- VM_CONTEXT VmContext;
+ EFI_EBC_PROTOCOL *This;
+ VOID *EntryPoint;
+ EFI_HANDLE ImageHandle;
+ VM_CONTEXT VmContext;
} EFI_EBC_THUNK_DATA;
-#define EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('e', 'b', 'c', 'p')
-
+#define EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('e', 'b', 'c', 'p')
#define EBC_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \
CR(a, EBC_PROTOCOL_PRIVATE_DATA, EbcProtocol, EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE)
-
/**
Allocates a buffer of type EfiBootServicesCode.
diff --git a/MdeModulePkg/Universal/EbcDxe/Ia32/EbcSupport.c b/MdeModulePkg/Universal/EbcDxe/Ia32/EbcSupport.c
index a251395..d53e94e 100644
--- a/MdeModulePkg/Universal/EbcDxe/Ia32/EbcSupport.c
+++ b/MdeModulePkg/Universal/EbcDxe/Ia32/EbcSupport.c
@@ -17,21 +17,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// based on whether or not a debugger is present, and other
// platform-specific configurations.
//
-#define VM_STACK_SIZE (1024 * 4)
+#define VM_STACK_SIZE (1024 * 4)
-#define STACK_REMAIN_SIZE (1024 * 4)
+#define STACK_REMAIN_SIZE (1024 * 4)
//
// This is instruction buffer used to create EBC thunk
//
-#define EBC_ENTRYPOINT_SIGNATURE 0xAFAFAFAF
-#define EBC_LL_EBC_ENTRYPOINT_SIGNATURE 0xFAFAFAFA
+#define EBC_ENTRYPOINT_SIGNATURE 0xAFAFAFAF
+#define EBC_LL_EBC_ENTRYPOINT_SIGNATURE 0xFAFAFAFA
UINT8 mInstructionBufferTemplate[] = {
//
// Add a magic code here to help the VM recognize the thunk..
// mov eax, 0xca112ebc => B8 BC 2E 11 CA
//
- 0xB8, 0xBC, 0x2E, 0x11, 0xCA,
+ 0xB8, 0xBC, 0x2E, 0x11, 0xCA,
//
// Add code bytes to load up a processor register with the EBC entry point.
// mov eax, EbcEntryPoint => B8 XX XX XX XX (To be fixed at runtime)
@@ -39,24 +39,24 @@ UINT8 mInstructionBufferTemplate[] = {
// entry point.
//
0xB8,
- (UINT8)(EBC_ENTRYPOINT_SIGNATURE & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
+ (UINT8)(EBC_ENTRYPOINT_SIGNATURE & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
//
// Stick in a load of ecx with the address of appropriate VM function.
// mov ecx, EbcLLEbcInterpret => B9 XX XX XX XX (To be fixed at runtime)
//
0xB9,
- (UINT8)(EBC_LL_EBC_ENTRYPOINT_SIGNATURE & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
+ (UINT8)(EBC_LL_EBC_ENTRYPOINT_SIGNATURE & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
//
// Stick in jump opcode bytes
// jmp ecx => FF E1
//
- 0xFF, 0xE1,
+ 0xFF, 0xE1,
};
/**
@@ -102,60 +102,62 @@ EbcLLExecuteEbcImageEntryPoint (
**/
VOID
EbcLLCALLEX (
- IN VM_CONTEXT *VmPtr,
- IN UINTN FuncAddr,
- IN UINTN NewStackPointer,
- IN VOID *FramePtr,
- IN UINT8 Size
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN FuncAddr,
+ IN UINTN NewStackPointer,
+ IN VOID *FramePtr,
+ IN UINT8 Size
)
{
- UINTN IsThunk;
- UINTN TargetEbcAddr;
- UINT8 InstructionBuffer[sizeof(mInstructionBufferTemplate)];
- UINTN Index;
- UINTN IndexOfEbcEntrypoint;
-
- IsThunk = 1;
- TargetEbcAddr = 0;
+ UINTN IsThunk;
+ UINTN TargetEbcAddr;
+ UINT8 InstructionBuffer[sizeof (mInstructionBufferTemplate)];
+ UINTN Index;
+ UINTN IndexOfEbcEntrypoint;
+
+ IsThunk = 1;
+ TargetEbcAddr = 0;
IndexOfEbcEntrypoint = 0;
//
// Processor specific code to check whether the callee is a thunk to EBC.
//
- CopyMem (InstructionBuffer, (VOID *)FuncAddr, sizeof(InstructionBuffer));
+ CopyMem (InstructionBuffer, (VOID *)FuncAddr, sizeof (InstructionBuffer));
//
// Fill the signature according to mInstructionBufferTemplate
//
- for (Index = 0; Index < sizeof(mInstructionBufferTemplate) - sizeof(UINTN); Index++) {
+ for (Index = 0; Index < sizeof (mInstructionBufferTemplate) - sizeof (UINTN); Index++) {
if (*(UINTN *)&mInstructionBufferTemplate[Index] == EBC_ENTRYPOINT_SIGNATURE) {
*(UINTN *)&InstructionBuffer[Index] = EBC_ENTRYPOINT_SIGNATURE;
- IndexOfEbcEntrypoint = Index;
+ IndexOfEbcEntrypoint = Index;
}
+
if (*(UINTN *)&mInstructionBufferTemplate[Index] == EBC_LL_EBC_ENTRYPOINT_SIGNATURE) {
*(UINTN *)&InstructionBuffer[Index] = EBC_LL_EBC_ENTRYPOINT_SIGNATURE;
}
}
+
//
// Check if we need thunk to native
//
- if (CompareMem (InstructionBuffer, mInstructionBufferTemplate, sizeof(mInstructionBufferTemplate)) != 0) {
+ if (CompareMem (InstructionBuffer, mInstructionBufferTemplate, sizeof (mInstructionBufferTemplate)) != 0) {
IsThunk = 0;
}
- if (IsThunk == 1){
+ if (IsThunk == 1) {
//
// The callee is a thunk to EBC, adjust the stack pointer down 16 bytes and
// put our return address and frame pointer on the VM stack.
// Then set the VM's IP to new EBC code.
//
VmPtr->Gpr[0] -= 8;
- VmWriteMemN (VmPtr, (UINTN) VmPtr->Gpr[0], (UINTN) FramePtr);
- VmPtr->FramePtr = (VOID *) (UINTN) VmPtr->Gpr[0];
- VmPtr->Gpr[0] -= 8;
- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[0], (UINT64) (UINTN) (VmPtr->Ip + Size));
+ VmWriteMemN (VmPtr, (UINTN)VmPtr->Gpr[0], (UINTN)FramePtr);
+ VmPtr->FramePtr = (VOID *)(UINTN)VmPtr->Gpr[0];
+ VmPtr->Gpr[0] -= 8;
+ VmWriteMem64 (VmPtr, (UINTN)VmPtr->Gpr[0], (UINT64)(UINTN)(VmPtr->Ip + Size));
- CopyMem (&TargetEbcAddr, (UINT8 *)FuncAddr + IndexOfEbcEntrypoint, sizeof(UINTN));
- VmPtr->Ip = (VMIP) (UINTN) TargetEbcAddr;
+ CopyMem (&TargetEbcAddr, (UINT8 *)FuncAddr + IndexOfEbcEntrypoint, sizeof (UINTN));
+ VmPtr->Ip = (VMIP)(UINTN)TargetEbcAddr;
} else {
//
// The callee is not a thunk to EBC, call native code,
@@ -170,7 +172,6 @@ EbcLLCALLEX (
}
}
-
/**
Begin executing an EBC image.
@@ -202,23 +203,23 @@ EbcLLCALLEX (
UINT64
EFIAPI
EbcInterpret (
- IN UINTN EntryPoint,
- IN UINTN Arg1,
- IN UINTN Arg2,
- IN UINTN Arg3,
- IN UINTN Arg4,
- IN UINTN Arg5,
- IN UINTN Arg6,
- IN UINTN Arg7,
- IN UINTN Arg8,
- IN UINTN Arg9,
- IN UINTN Arg10,
- IN UINTN Arg11,
- IN UINTN Arg12,
- IN UINTN Arg13,
- IN UINTN Arg14,
- IN UINTN Arg15,
- IN UINTN Arg16
+ IN UINTN EntryPoint,
+ IN UINTN Arg1,
+ IN UINTN Arg2,
+ IN UINTN Arg3,
+ IN UINTN Arg4,
+ IN UINTN Arg5,
+ IN UINTN Arg6,
+ IN UINTN Arg7,
+ IN UINTN Arg8,
+ IN UINTN Arg9,
+ IN UINTN Arg10,
+ IN UINTN Arg11,
+ IN UINTN Arg12,
+ IN UINTN Arg13,
+ IN UINTN Arg14,
+ IN UINTN Arg15,
+ IN UINTN Arg16
)
{
//
@@ -237,12 +238,12 @@ EbcInterpret (
//
// Now clear out our context
//
- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT));
+ ZeroMem ((VOID *)&VmContext, sizeof (VM_CONTEXT));
//
// Set the VM instruction pointer to the correct location in memory.
//
- VmContext.Ip = (VMIP) Addr;
+ VmContext.Ip = (VMIP)Addr;
//
// Initialize the stack pointer for the EBC. Get the current system stack
// pointer and adjust it down by the max needed for the interpreter.
@@ -255,60 +256,61 @@ EbcInterpret (
//
// Allocate stack pool
//
- Status = GetEBCStack((EFI_HANDLE)-1, &VmContext.StackPool, &StackIndex);
- if (EFI_ERROR(Status)) {
+ Status = GetEBCStack ((EFI_HANDLE)-1, &VmContext.StackPool, &StackIndex);
+ if (EFI_ERROR (Status)) {
return Status;
}
- VmContext.StackTop = (UINT8*)VmContext.StackPool + (STACK_REMAIN_SIZE);
- VmContext.Gpr[0] = (UINT64)(UINTN) ((UINT8*)VmContext.StackPool + STACK_POOL_SIZE);
+
+ VmContext.StackTop = (UINT8 *)VmContext.StackPool + (STACK_REMAIN_SIZE);
+ VmContext.Gpr[0] = (UINT64)(UINTN)((UINT8 *)VmContext.StackPool + STACK_POOL_SIZE);
VmContext.HighStackBottom = (UINTN)VmContext.Gpr[0];
- VmContext.Gpr[0] &= ~((VM_REGISTER)(sizeof (UINTN) - 1));
- VmContext.Gpr[0] -= sizeof (UINTN);
+ VmContext.Gpr[0] &= ~((VM_REGISTER)(sizeof (UINTN) - 1));
+ VmContext.Gpr[0] -= sizeof (UINTN);
//
// Put a magic value in the stack gap, then adjust down again
//
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) VM_STACK_KEY_VALUE;
- VmContext.StackMagicPtr = (UINTN *) (UINTN) VmContext.Gpr[0];
- VmContext.LowStackTop = (UINTN) VmContext.Gpr[0];
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)VM_STACK_KEY_VALUE;
+ VmContext.StackMagicPtr = (UINTN *)(UINTN)VmContext.Gpr[0];
+ VmContext.LowStackTop = (UINTN)VmContext.Gpr[0];
//
// For IA32, this is where we say our return address is
//
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg16;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg15;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg14;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg13;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg12;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg11;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg10;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg9;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg8;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg7;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg6;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg5;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg4;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg3;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg2;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) Arg1;
- VmContext.Gpr[0] -= 16;
- VmContext.StackRetAddr = (UINT64) VmContext.Gpr[0];
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg16;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg15;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg14;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg13;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg12;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg11;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg10;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg9;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg8;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg7;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg6;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg5;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg4;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg3;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg2;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)Arg1;
+ VmContext.Gpr[0] -= 16;
+ VmContext.StackRetAddr = (UINT64)VmContext.Gpr[0];
//
// We need to keep track of where the EBC stack starts. This way, if the EBC
@@ -333,11 +335,10 @@ EbcInterpret (
//
// Return the value in Gpr[7] unless there was an error
//
- ReturnEBCStack(StackIndex);
- return (UINT64) VmContext.Gpr[7];
+ ReturnEBCStack (StackIndex);
+ return (UINT64)VmContext.Gpr[7];
}
-
/**
Begin executing an EBC image.
@@ -352,9 +353,9 @@ EbcInterpret (
UINT64
EFIAPI
ExecuteEbcImageEntryPoint (
- IN UINTN EntryPoint,
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN UINTN EntryPoint,
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
//
@@ -373,7 +374,7 @@ ExecuteEbcImageEntryPoint (
//
// Now clear out our context
//
- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT));
+ ZeroMem ((VOID *)&VmContext, sizeof (VM_CONTEXT));
//
// Save the image handle so we can track the thunks created for this image
@@ -384,7 +385,7 @@ ExecuteEbcImageEntryPoint (
//
// Set the VM instruction pointer to the correct location in memory.
//
- VmContext.Ip = (VMIP) Addr;
+ VmContext.Ip = (VMIP)Addr;
//
// Initialize the stack pointer for the EBC. Get the current system stack
@@ -394,33 +395,34 @@ ExecuteEbcImageEntryPoint (
//
// Allocate stack pool
//
- Status = GetEBCStack(ImageHandle, &VmContext.StackPool, &StackIndex);
- if (EFI_ERROR(Status)) {
+ Status = GetEBCStack (ImageHandle, &VmContext.StackPool, &StackIndex);
+ if (EFI_ERROR (Status)) {
return Status;
}
- VmContext.StackTop = (UINT8*)VmContext.StackPool + (STACK_REMAIN_SIZE);
- VmContext.Gpr[0] = (UINT64)(UINTN) ((UINT8*)VmContext.StackPool + STACK_POOL_SIZE);
+
+ VmContext.StackTop = (UINT8 *)VmContext.StackPool + (STACK_REMAIN_SIZE);
+ VmContext.Gpr[0] = (UINT64)(UINTN)((UINT8 *)VmContext.StackPool + STACK_POOL_SIZE);
VmContext.HighStackBottom = (UINTN)VmContext.Gpr[0];
- VmContext.Gpr[0] -= sizeof (UINTN);
+ VmContext.Gpr[0] -= sizeof (UINTN);
//
// Put a magic value in the stack gap, then adjust down again
//
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) VM_STACK_KEY_VALUE;
- VmContext.StackMagicPtr = (UINTN *) (UINTN) VmContext.Gpr[0];
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)VM_STACK_KEY_VALUE;
+ VmContext.StackMagicPtr = (UINTN *)(UINTN)VmContext.Gpr[0];
//
// Align the stack on a natural boundary
// VmContext.Gpr[0] &= ~(sizeof(UINTN) - 1);
//
- VmContext.LowStackTop = (UINTN) VmContext.Gpr[0];
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) SystemTable;
- VmContext.Gpr[0] -= sizeof (UINTN);
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) ImageHandle;
+ VmContext.LowStackTop = (UINTN)VmContext.Gpr[0];
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)SystemTable;
+ VmContext.Gpr[0] -= sizeof (UINTN);
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)ImageHandle;
- VmContext.Gpr[0] -= 16;
- VmContext.StackRetAddr = (UINT64) VmContext.Gpr[0];
+ VmContext.Gpr[0] -= 16;
+ VmContext.StackRetAddr = (UINT64)VmContext.Gpr[0];
//
// VM pushes 16-bytes for return address. Simulate that here.
//
@@ -434,11 +436,10 @@ ExecuteEbcImageEntryPoint (
//
// Return the value in Gpr[7] unless there was an error
//
- ReturnEBCStack(StackIndex);
- return (UINT64) VmContext.Gpr[7];
+ ReturnEBCStack (StackIndex);
+ return (UINT64)VmContext.Gpr[7];
}
-
/**
Create thunks for an EBC image entry point, or an EBC protocol service.
@@ -458,31 +459,32 @@ ExecuteEbcImageEntryPoint (
**/
EFI_STATUS
EbcCreateThunks (
- IN EFI_HANDLE ImageHandle,
- IN VOID *EbcEntryPoint,
- OUT VOID **Thunk,
- IN UINT32 Flags
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *EbcEntryPoint,
+ OUT VOID **Thunk,
+ IN UINT32 Flags
)
{
- UINT8 *Ptr;
- UINT8 *ThunkBase;
- UINT32 Index;
- INT32 ThunkSize;
+ UINT8 *Ptr;
+ UINT8 *ThunkBase;
+ UINT32 Index;
+ INT32 ThunkSize;
//
// Check alignment of pointer to EBC code
//
- if ((UINT32) (UINTN) EbcEntryPoint & 0x01) {
+ if ((UINT32)(UINTN)EbcEntryPoint & 0x01) {
return EFI_INVALID_PARAMETER;
}
- ThunkSize = sizeof(mInstructionBufferTemplate);
+ ThunkSize = sizeof (mInstructionBufferTemplate);
- Ptr = EbcAllocatePoolForThunk (sizeof(mInstructionBufferTemplate));
+ Ptr = EbcAllocatePoolForThunk (sizeof (mInstructionBufferTemplate));
if (Ptr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Print(L"Allocate TH: 0x%X\n", (UINT32)Ptr);
//
@@ -493,20 +495,21 @@ EbcCreateThunks (
//
// Give them the address of our buffer we're going to fix up
//
- *Thunk = (VOID *) Ptr;
+ *Thunk = (VOID *)Ptr;
//
// Copy whole thunk instruction buffer template
//
- CopyMem (Ptr, mInstructionBufferTemplate, sizeof(mInstructionBufferTemplate));
+ CopyMem (Ptr, mInstructionBufferTemplate, sizeof (mInstructionBufferTemplate));
//
// Patch EbcEntryPoint and EbcLLEbcInterpret
//
- for (Index = 0; Index < sizeof(mInstructionBufferTemplate) - sizeof(UINTN); Index++) {
+ for (Index = 0; Index < sizeof (mInstructionBufferTemplate) - sizeof (UINTN); Index++) {
if (*(UINTN *)&Ptr[Index] == EBC_ENTRYPOINT_SIGNATURE) {
*(UINTN *)&Ptr[Index] = (UINTN)EbcEntryPoint;
}
+
if (*(UINTN *)&Ptr[Index] == EBC_LL_EBC_ENTRYPOINT_SIGNATURE) {
if ((Flags & FLAG_THUNK_ENTRY_POINT) != 0) {
*(UINTN *)&Ptr[Index] = (UINTN)EbcLLExecuteEbcImageEntryPoint;
@@ -520,7 +523,7 @@ EbcCreateThunks (
// Add the thunk to the list for this image. Do this last since the add
// function flushes the cache for us.
//
- EbcAddImageThunk (ImageHandle, (VOID *) ThunkBase, ThunkSize);
+ EbcAddImageThunk (ImageHandle, (VOID *)ThunkBase, ThunkSize);
return EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c b/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c
index 25ca8db..f9def55 100644
--- a/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c
+++ b/MdeModulePkg/Universal/EbcDxe/X64/EbcSupport.c
@@ -17,54 +17,54 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// based on whether or not a debugger is present, and other
// platform-specific configurations.
//
-#define VM_STACK_SIZE (1024 * 8)
+#define VM_STACK_SIZE (1024 * 8)
-#define STACK_REMAIN_SIZE (1024 * 4)
+#define STACK_REMAIN_SIZE (1024 * 4)
//
// This is instruction buffer used to create EBC thunk
//
-#define EBC_ENTRYPOINT_SIGNATURE 0xAFAFAFAFAFAFAFAFull
-#define EBC_LL_EBC_ENTRYPOINT_SIGNATURE 0xFAFAFAFAFAFAFAFAull
+#define EBC_ENTRYPOINT_SIGNATURE 0xAFAFAFAFAFAFAFAFull
+#define EBC_LL_EBC_ENTRYPOINT_SIGNATURE 0xFAFAFAFAFAFAFAFAull
UINT8 mInstructionBufferTemplate[] = {
//
// Add a magic code here to help the VM recognize the thunk..
// mov rax, 0xca112ebcca112ebc => 48 B8 BC 2E 11 CA BC 2E 11 CA
//
- 0x48, 0xB8, 0xBC, 0x2E, 0x11, 0xCA, 0xBC, 0x2E, 0x11, 0xCA,
+ 0x48, 0xB8, 0xBC, 0x2E, 0x11, 0xCA, 0xBC, 0x2E, 0x11, 0xCA,
//
// Add code bytes to load up a processor register with the EBC entry point.
// mov r10, EbcEntryPoint => 49 BA XX XX XX XX XX XX XX XX (To be fixed at runtime)
// These 8 bytes of the thunk entry is the address of the EBC
// entry point.
//
- 0x49, 0xBA,
- (UINT8)(EBC_ENTRYPOINT_SIGNATURE & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 32) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 40) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 48) & 0xFF),
- (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 56) & 0xFF),
+ 0x49, 0xBA,
+ (UINT8)(EBC_ENTRYPOINT_SIGNATURE & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 32) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 40) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 48) & 0xFF),
+ (UINT8)((EBC_ENTRYPOINT_SIGNATURE >> 56) & 0xFF),
//
// Stick in a load of r11 with the address of appropriate VM function.
// mov r11, EbcLLEbcInterpret => 49 BB XX XX XX XX XX XX XX XX (To be fixed at runtime)
//
- 0x49, 0xBB,
- (UINT8)(EBC_LL_EBC_ENTRYPOINT_SIGNATURE & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 32) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 40) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 48) & 0xFF),
- (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 56) & 0xFF),
+ 0x49, 0xBB,
+ (UINT8)(EBC_LL_EBC_ENTRYPOINT_SIGNATURE & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 8) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 16) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 24) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 32) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 40) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 48) & 0xFF),
+ (UINT8)((EBC_LL_EBC_ENTRYPOINT_SIGNATURE >> 56) & 0xFF),
//
// Stick in jump opcode bytes
// jmp r11 => 41 FF E3
//
- 0x41, 0xFF, 0xE3,
+ 0x41, 0xFF, 0xE3,
};
/**
@@ -102,20 +102,19 @@ EbcLLExecuteEbcImageEntryPoint (
**/
VOID
PushU64 (
- IN VM_CONTEXT *VmPtr,
- IN UINT64 Arg
+ IN VM_CONTEXT *VmPtr,
+ IN UINT64 Arg
)
{
//
// Advance the VM stack down, and then copy the argument to the stack.
// Hope it's aligned.
//
- VmPtr->Gpr[0] -= sizeof (UINT64);
- *(UINT64 *) VmPtr->Gpr[0] = Arg;
+ VmPtr->Gpr[0] -= sizeof (UINT64);
+ *(UINT64 *)VmPtr->Gpr[0] = Arg;
return;
}
-
/**
Begin executing an EBC image.
@@ -147,23 +146,23 @@ PushU64 (
UINT64
EFIAPI
EbcInterpret (
- IN UINTN EntryPoint,
- IN UINTN Arg1,
- IN UINTN Arg2,
- IN UINTN Arg3,
- IN UINTN Arg4,
- IN UINTN Arg5,
- IN UINTN Arg6,
- IN UINTN Arg7,
- IN UINTN Arg8,
- IN UINTN Arg9,
- IN UINTN Arg10,
- IN UINTN Arg11,
- IN UINTN Arg12,
- IN UINTN Arg13,
- IN UINTN Arg14,
- IN UINTN Arg15,
- IN UINTN Arg16
+ IN UINTN EntryPoint,
+ IN UINTN Arg1,
+ IN UINTN Arg2,
+ IN UINTN Arg3,
+ IN UINTN Arg4,
+ IN UINTN Arg5,
+ IN UINTN Arg6,
+ IN UINTN Arg7,
+ IN UINTN Arg8,
+ IN UINTN Arg9,
+ IN UINTN Arg10,
+ IN UINTN Arg11,
+ IN UINTN Arg12,
+ IN UINTN Arg13,
+ IN UINTN Arg14,
+ IN UINTN Arg15,
+ IN UINTN Arg16
)
{
//
@@ -182,12 +181,12 @@ EbcInterpret (
//
// Now clear out our context
//
- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT));
+ ZeroMem ((VOID *)&VmContext, sizeof (VM_CONTEXT));
//
// Set the VM instruction pointer to the correct location in memory.
//
- VmContext.Ip = (VMIP) Addr;
+ VmContext.Ip = (VMIP)Addr;
//
// Initialize the stack pointer for the EBC. Get the current system stack
@@ -198,14 +197,15 @@ EbcInterpret (
// Adjust the VM's stack pointer down.
//
- Status = GetEBCStack((EFI_HANDLE)(UINTN)-1, &VmContext.StackPool, &StackIndex);
- if (EFI_ERROR(Status)) {
+ Status = GetEBCStack ((EFI_HANDLE)(UINTN)-1, &VmContext.StackPool, &StackIndex);
+ if (EFI_ERROR (Status)) {
return Status;
}
- VmContext.StackTop = (UINT8*)VmContext.StackPool + (STACK_REMAIN_SIZE);
- VmContext.Gpr[0] = (UINT64) ((UINT8*)VmContext.StackPool + STACK_POOL_SIZE);
- VmContext.HighStackBottom = (UINTN) VmContext.Gpr[0];
- VmContext.Gpr[0] -= sizeof (UINTN);
+
+ VmContext.StackTop = (UINT8 *)VmContext.StackPool + (STACK_REMAIN_SIZE);
+ VmContext.Gpr[0] = (UINT64)((UINT8 *)VmContext.StackPool + STACK_POOL_SIZE);
+ VmContext.HighStackBottom = (UINTN)VmContext.Gpr[0];
+ VmContext.Gpr[0] -= sizeof (UINTN);
//
// Align the stack on a natural boundary.
@@ -215,46 +215,46 @@ EbcInterpret (
//
// Put a magic value in the stack gap, then adjust down again.
//
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) VM_STACK_KEY_VALUE;
- VmContext.StackMagicPtr = (UINTN *) (UINTN) VmContext.Gpr[0];
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)VM_STACK_KEY_VALUE;
+ VmContext.StackMagicPtr = (UINTN *)(UINTN)VmContext.Gpr[0];
//
// The stack upper to LowStackTop is belong to the VM.
//
- VmContext.LowStackTop = (UINTN) VmContext.Gpr[0];
+ VmContext.LowStackTop = (UINTN)VmContext.Gpr[0];
//
// For the worst case, assume there are 4 arguments passed in registers, store
// them to VM's stack.
//
- PushU64 (&VmContext, (UINT64) Arg16);
- PushU64 (&VmContext, (UINT64) Arg15);
- PushU64 (&VmContext, (UINT64) Arg14);
- PushU64 (&VmContext, (UINT64) Arg13);
- PushU64 (&VmContext, (UINT64) Arg12);
- PushU64 (&VmContext, (UINT64) Arg11);
- PushU64 (&VmContext, (UINT64) Arg10);
- PushU64 (&VmContext, (UINT64) Arg9);
- PushU64 (&VmContext, (UINT64) Arg8);
- PushU64 (&VmContext, (UINT64) Arg7);
- PushU64 (&VmContext, (UINT64) Arg6);
- PushU64 (&VmContext, (UINT64) Arg5);
- PushU64 (&VmContext, (UINT64) Arg4);
- PushU64 (&VmContext, (UINT64) Arg3);
- PushU64 (&VmContext, (UINT64) Arg2);
- PushU64 (&VmContext, (UINT64) Arg1);
+ PushU64 (&VmContext, (UINT64)Arg16);
+ PushU64 (&VmContext, (UINT64)Arg15);
+ PushU64 (&VmContext, (UINT64)Arg14);
+ PushU64 (&VmContext, (UINT64)Arg13);
+ PushU64 (&VmContext, (UINT64)Arg12);
+ PushU64 (&VmContext, (UINT64)Arg11);
+ PushU64 (&VmContext, (UINT64)Arg10);
+ PushU64 (&VmContext, (UINT64)Arg9);
+ PushU64 (&VmContext, (UINT64)Arg8);
+ PushU64 (&VmContext, (UINT64)Arg7);
+ PushU64 (&VmContext, (UINT64)Arg6);
+ PushU64 (&VmContext, (UINT64)Arg5);
+ PushU64 (&VmContext, (UINT64)Arg4);
+ PushU64 (&VmContext, (UINT64)Arg3);
+ PushU64 (&VmContext, (UINT64)Arg2);
+ PushU64 (&VmContext, (UINT64)Arg1);
//
// Interpreter assumes 64-bit return address is pushed on the stack.
// The x64 does not do this so pad the stack accordingly.
//
- PushU64 (&VmContext, (UINT64) 0);
- PushU64 (&VmContext, (UINT64) 0x1234567887654321ULL);
+ PushU64 (&VmContext, (UINT64)0);
+ PushU64 (&VmContext, (UINT64)0x1234567887654321ULL);
//
// For x64, this is where we say our return address is
//
- VmContext.StackRetAddr = (UINT64) VmContext.Gpr[0];
+ VmContext.StackRetAddr = (UINT64)VmContext.Gpr[0];
//
// We need to keep track of where the EBC stack starts. This way, if the EBC
@@ -279,11 +279,10 @@ EbcInterpret (
//
// Return the value in Gpr[7] unless there was an error
//
- ReturnEBCStack(StackIndex);
- return (UINT64) VmContext.Gpr[7];
+ ReturnEBCStack (StackIndex);
+ return (UINT64)VmContext.Gpr[7];
}
-
/**
Begin executing an EBC image.
@@ -298,9 +297,9 @@ EbcInterpret (
UINT64
EFIAPI
ExecuteEbcImageEntryPoint (
- IN UINTN EntryPoint,
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN UINTN EntryPoint,
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
//
@@ -319,7 +318,7 @@ ExecuteEbcImageEntryPoint (
//
// Now clear out our context
//
- ZeroMem ((VOID *) &VmContext, sizeof (VM_CONTEXT));
+ ZeroMem ((VOID *)&VmContext, sizeof (VM_CONTEXT));
//
// Save the image handle so we can track the thunks created for this image
@@ -330,52 +329,52 @@ ExecuteEbcImageEntryPoint (
//
// Set the VM instruction pointer to the correct location in memory.
//
- VmContext.Ip = (VMIP) Addr;
+ VmContext.Ip = (VMIP)Addr;
//
// Initialize the stack pointer for the EBC. Get the current system stack
// pointer and adjust it down by the max needed for the interpreter.
//
- Status = GetEBCStack(ImageHandle, &VmContext.StackPool, &StackIndex);
- if (EFI_ERROR(Status)) {
+ Status = GetEBCStack (ImageHandle, &VmContext.StackPool, &StackIndex);
+ if (EFI_ERROR (Status)) {
return Status;
}
- VmContext.StackTop = (UINT8*)VmContext.StackPool + (STACK_REMAIN_SIZE);
- VmContext.Gpr[0] = (UINT64) ((UINT8*)VmContext.StackPool + STACK_POOL_SIZE);
- VmContext.HighStackBottom = (UINTN) VmContext.Gpr[0];
- VmContext.Gpr[0] -= sizeof (UINTN);
+ VmContext.StackTop = (UINT8 *)VmContext.StackPool + (STACK_REMAIN_SIZE);
+ VmContext.Gpr[0] = (UINT64)((UINT8 *)VmContext.StackPool + STACK_POOL_SIZE);
+ VmContext.HighStackBottom = (UINTN)VmContext.Gpr[0];
+ VmContext.Gpr[0] -= sizeof (UINTN);
//
// Put a magic value in the stack gap, then adjust down again
//
- *(UINTN *) (UINTN) (VmContext.Gpr[0]) = (UINTN) VM_STACK_KEY_VALUE;
- VmContext.StackMagicPtr = (UINTN *) (UINTN) VmContext.Gpr[0];
+ *(UINTN *)(UINTN)(VmContext.Gpr[0]) = (UINTN)VM_STACK_KEY_VALUE;
+ VmContext.StackMagicPtr = (UINTN *)(UINTN)VmContext.Gpr[0];
//
// Align the stack on a natural boundary
- VmContext.Gpr[0] &= ~(VM_REGISTER)(sizeof(UINTN) - 1);
+ VmContext.Gpr[0] &= ~(VM_REGISTER)(sizeof (UINTN) - 1);
//
- VmContext.LowStackTop = (UINTN) VmContext.Gpr[0];
+ VmContext.LowStackTop = (UINTN)VmContext.Gpr[0];
//
// Simply copy the image handle and system table onto the EBC stack.
// Greatly simplifies things by not having to spill the args.
//
- PushU64 (&VmContext, (UINT64) SystemTable);
- PushU64 (&VmContext, (UINT64) ImageHandle);
+ PushU64 (&VmContext, (UINT64)SystemTable);
+ PushU64 (&VmContext, (UINT64)ImageHandle);
//
// VM pushes 16-bytes for return address. Simulate that here.
//
- PushU64 (&VmContext, (UINT64) 0);
- PushU64 (&VmContext, (UINT64) 0x1234567887654321ULL);
+ PushU64 (&VmContext, (UINT64)0);
+ PushU64 (&VmContext, (UINT64)0x1234567887654321ULL);
//
// For x64, this is where we say our return address is
//
- VmContext.StackRetAddr = (UINT64) VmContext.Gpr[0];
+ VmContext.StackRetAddr = (UINT64)VmContext.Gpr[0];
//
// Entry function needn't access high stack context, simply
@@ -391,11 +390,10 @@ ExecuteEbcImageEntryPoint (
//
// Return the value in Gpr[7] unless there was an error
//
- ReturnEBCStack(StackIndex);
- return (UINT64) VmContext.Gpr[7];
+ ReturnEBCStack (StackIndex);
+ return (UINT64)VmContext.Gpr[7];
}
-
/**
Create thunks for an EBC image entry point, or an EBC protocol service.
@@ -415,31 +413,32 @@ ExecuteEbcImageEntryPoint (
**/
EFI_STATUS
EbcCreateThunks (
- IN EFI_HANDLE ImageHandle,
- IN VOID *EbcEntryPoint,
- OUT VOID **Thunk,
- IN UINT32 Flags
+ IN EFI_HANDLE ImageHandle,
+ IN VOID *EbcEntryPoint,
+ OUT VOID **Thunk,
+ IN UINT32 Flags
)
{
- UINT8 *Ptr;
- UINT8 *ThunkBase;
- UINT32 Index;
- INT32 ThunkSize;
+ UINT8 *Ptr;
+ UINT8 *ThunkBase;
+ UINT32 Index;
+ INT32 ThunkSize;
//
// Check alignment of pointer to EBC code
//
- if ((UINT32) (UINTN) EbcEntryPoint & 0x01) {
+ if ((UINT32)(UINTN)EbcEntryPoint & 0x01) {
return EFI_INVALID_PARAMETER;
}
- ThunkSize = sizeof(mInstructionBufferTemplate);
+ ThunkSize = sizeof (mInstructionBufferTemplate);
- Ptr = EbcAllocatePoolForThunk (sizeof(mInstructionBufferTemplate));
+ Ptr = EbcAllocatePoolForThunk (sizeof (mInstructionBufferTemplate));
if (Ptr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Print(L"Allocate TH: 0x%X\n", (UINT32)Ptr);
//
@@ -450,20 +449,21 @@ EbcCreateThunks (
//
// Give them the address of our buffer we're going to fix up
//
- *Thunk = (VOID *) Ptr;
+ *Thunk = (VOID *)Ptr;
//
// Copy whole thunk instruction buffer template
//
- CopyMem (Ptr, mInstructionBufferTemplate, sizeof(mInstructionBufferTemplate));
+ CopyMem (Ptr, mInstructionBufferTemplate, sizeof (mInstructionBufferTemplate));
//
// Patch EbcEntryPoint and EbcLLEbcInterpret
//
- for (Index = 0; Index < sizeof(mInstructionBufferTemplate) - sizeof(UINTN); Index++) {
+ for (Index = 0; Index < sizeof (mInstructionBufferTemplate) - sizeof (UINTN); Index++) {
if (*(UINTN *)&Ptr[Index] == EBC_ENTRYPOINT_SIGNATURE) {
*(UINTN *)&Ptr[Index] = (UINTN)EbcEntryPoint;
}
+
if (*(UINTN *)&Ptr[Index] == EBC_LL_EBC_ENTRYPOINT_SIGNATURE) {
if ((Flags & FLAG_THUNK_ENTRY_POINT) != 0) {
*(UINTN *)&Ptr[Index] = (UINTN)EbcLLExecuteEbcImageEntryPoint;
@@ -477,12 +477,11 @@ EbcCreateThunks (
// Add the thunk to the list for this image. Do this last since the add
// function flushes the cache for us.
//
- EbcAddImageThunk (ImageHandle, (VOID *) ThunkBase, ThunkSize);
+ EbcAddImageThunk (ImageHandle, (VOID *)ThunkBase, ThunkSize);
return EFI_SUCCESS;
}
-
/**
This function is called to execute an EBC CALLEX instruction.
The function check the callee's content to see whether it is common native
@@ -500,60 +499,62 @@ EbcCreateThunks (
**/
VOID
EbcLLCALLEX (
- IN VM_CONTEXT *VmPtr,
- IN UINTN FuncAddr,
- IN UINTN NewStackPointer,
- IN VOID *FramePtr,
- IN UINT8 Size
+ IN VM_CONTEXT *VmPtr,
+ IN UINTN FuncAddr,
+ IN UINTN NewStackPointer,
+ IN VOID *FramePtr,
+ IN UINT8 Size
)
{
- UINTN IsThunk;
- UINTN TargetEbcAddr;
- UINT8 InstructionBuffer[sizeof(mInstructionBufferTemplate)];
- UINTN Index;
- UINTN IndexOfEbcEntrypoint;
-
- IsThunk = 1;
- TargetEbcAddr = 0;
+ UINTN IsThunk;
+ UINTN TargetEbcAddr;
+ UINT8 InstructionBuffer[sizeof (mInstructionBufferTemplate)];
+ UINTN Index;
+ UINTN IndexOfEbcEntrypoint;
+
+ IsThunk = 1;
+ TargetEbcAddr = 0;
IndexOfEbcEntrypoint = 0;
//
// Processor specific code to check whether the callee is a thunk to EBC.
//
- CopyMem (InstructionBuffer, (VOID *)FuncAddr, sizeof(InstructionBuffer));
+ CopyMem (InstructionBuffer, (VOID *)FuncAddr, sizeof (InstructionBuffer));
//
// Fill the signature according to mInstructionBufferTemplate
//
- for (Index = 0; Index < sizeof(mInstructionBufferTemplate) - sizeof(UINTN); Index++) {
+ for (Index = 0; Index < sizeof (mInstructionBufferTemplate) - sizeof (UINTN); Index++) {
if (*(UINTN *)&mInstructionBufferTemplate[Index] == EBC_ENTRYPOINT_SIGNATURE) {
*(UINTN *)&InstructionBuffer[Index] = EBC_ENTRYPOINT_SIGNATURE;
- IndexOfEbcEntrypoint = Index;
+ IndexOfEbcEntrypoint = Index;
}
+
if (*(UINTN *)&mInstructionBufferTemplate[Index] == EBC_LL_EBC_ENTRYPOINT_SIGNATURE) {
*(UINTN *)&InstructionBuffer[Index] = EBC_LL_EBC_ENTRYPOINT_SIGNATURE;
}
}
+
//
// Check if we need thunk to native
//
- if (CompareMem (InstructionBuffer, mInstructionBufferTemplate, sizeof(mInstructionBufferTemplate)) != 0) {
+ if (CompareMem (InstructionBuffer, mInstructionBufferTemplate, sizeof (mInstructionBufferTemplate)) != 0) {
IsThunk = 0;
}
- if (IsThunk == 1){
+ if (IsThunk == 1) {
//
// The callee is a thunk to EBC, adjust the stack pointer down 16 bytes and
// put our return address and frame pointer on the VM stack.
// Then set the VM's IP to new EBC code.
//
VmPtr->Gpr[0] -= 8;
- VmWriteMemN (VmPtr, (UINTN) VmPtr->Gpr[0], (UINTN) FramePtr);
- VmPtr->FramePtr = (VOID *) (UINTN) VmPtr->Gpr[0];
- VmPtr->Gpr[0] -= 8;
- VmWriteMem64 (VmPtr, (UINTN) VmPtr->Gpr[0], (UINT64) (UINTN) (VmPtr->Ip + Size));
+ VmWriteMemN (VmPtr, (UINTN)VmPtr->Gpr[0], (UINTN)FramePtr);
+ VmPtr->FramePtr = (VOID *)(UINTN)VmPtr->Gpr[0];
+ VmPtr->Gpr[0] -= 8;
+ VmWriteMem64 (VmPtr, (UINTN)VmPtr->Gpr[0], (UINT64)(UINTN)(VmPtr->Ip + Size));
- CopyMem (&TargetEbcAddr, (UINT8 *)FuncAddr + IndexOfEbcEntrypoint, sizeof(UINTN));
- VmPtr->Ip = (VMIP) (UINTN) TargetEbcAddr;
+ CopyMem (&TargetEbcAddr, (UINT8 *)FuncAddr + IndexOfEbcEntrypoint, sizeof (UINTN));
+ VmPtr->Ip = (VMIP)(UINTN)TargetEbcAddr;
} else {
//
// The callee is not a thunk to EBC, call native code,
@@ -567,4 +568,3 @@ EbcLLCALLEX (
VmPtr->Ip += Size;
}
}
-
diff --git a/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c b/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c
index 83deb14..28eb4f2 100644
--- a/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c
+++ b/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c
@@ -7,21 +7,20 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "EsrtImpl.h"
-
//
// Module globals.
//
-ESRT_PRIVATE_DATA mPrivate;
+ESRT_PRIVATE_DATA mPrivate;
ESRT_MANAGEMENT_PROTOCOL mEsrtManagementProtocolTemplate = {
- EsrtDxeGetEsrtEntry,
- EsrtDxeUpdateEsrtEntry,
- EsrtDxeRegisterEsrtEntry,
- EsrtDxeUnRegisterEsrtEntry,
- EsrtDxeSyncFmp,
- EsrtDxeLockEsrtRepository
- };
+ EsrtDxeGetEsrtEntry,
+ EsrtDxeUpdateEsrtEntry,
+ EsrtDxeRegisterEsrtEntry,
+ EsrtDxeUnRegisterEsrtEntry,
+ EsrtDxeSyncFmp,
+ EsrtDxeLockEsrtRepository
+};
/**
Get ESRT entry from ESRT Cache by FwClass Guid
@@ -36,14 +35,14 @@ ESRT_MANAGEMENT_PROTOCOL mEsrtManagementProtocolTemplate = {
**/
EFI_STATUS
EFIAPI
-EsrtDxeGetEsrtEntry(
- IN EFI_GUID *FwClass,
- IN OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
+EsrtDxeGetEsrtEntry (
+ IN EFI_GUID *FwClass,
+ IN OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- if (FwClass == NULL || Entry == NULL) {
+ if ((FwClass == NULL) || (Entry == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -55,15 +54,15 @@ EsrtDxeGetEsrtEntry(
//
// Find in Non-FMP Cached Esrt Repository
//
- Status = GetEsrtEntry(
+ Status = GetEsrtEntry (
FwClass,
ESRT_FROM_NONFMP,
Entry
);
- EfiReleaseLock(&mPrivate.NonFmpLock);
+ EfiReleaseLock (&mPrivate.NonFmpLock);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
Status = EfiAcquireLockOrFail (&mPrivate.FmpLock);
if (EFI_ERROR (Status)) {
return Status;
@@ -72,13 +71,13 @@ EsrtDxeGetEsrtEntry(
//
// Find in FMP Cached Esrt NV Variable
//
- Status = GetEsrtEntry(
+ Status = GetEsrtEntry (
FwClass,
ESRT_FROM_FMP,
Entry
);
- EfiReleaseLock(&mPrivate.FmpLock);
+ EfiReleaseLock (&mPrivate.FmpLock);
}
return Status;
@@ -96,11 +95,11 @@ EsrtDxeGetEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeUpdateEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
+EsrtDxeUpdateEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (Entry == NULL) {
return EFI_INVALID_PARAMETER;
@@ -111,23 +110,23 @@ EsrtDxeUpdateEsrtEntry(
return Status;
}
- Status = UpdateEsrtEntry(Entry, ESRT_FROM_FMP);
+ Status = UpdateEsrtEntry (Entry, ESRT_FROM_FMP);
- if (!EFI_ERROR(Status)) {
- EfiReleaseLock(&mPrivate.FmpLock);
+ if (!EFI_ERROR (Status)) {
+ EfiReleaseLock (&mPrivate.FmpLock);
return Status;
}
- EfiReleaseLock(&mPrivate.FmpLock);
+ EfiReleaseLock (&mPrivate.FmpLock);
Status = EfiAcquireLockOrFail (&mPrivate.NonFmpLock);
if (EFI_ERROR (Status)) {
return Status;
}
- Status = UpdateEsrtEntry(Entry, ESRT_FROM_NONFMP);
+ Status = UpdateEsrtEntry (Entry, ESRT_FROM_NONFMP);
- EfiReleaseLock(&mPrivate.NonFmpLock);
+ EfiReleaseLock (&mPrivate.NonFmpLock);
return Status;
}
@@ -143,11 +142,11 @@ EsrtDxeUpdateEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeUnRegisterEsrtEntry(
- IN EFI_GUID *FwClass
+EsrtDxeUnRegisterEsrtEntry (
+ IN EFI_GUID *FwClass
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (FwClass == NULL) {
return EFI_INVALID_PARAMETER;
@@ -158,9 +157,9 @@ EsrtDxeUnRegisterEsrtEntry(
return Status;
}
- Status = DeleteEsrtEntry(FwClass, ESRT_FROM_NONFMP);
+ Status = DeleteEsrtEntry (FwClass, ESRT_FROM_NONFMP);
- EfiReleaseLock(&mPrivate.NonFmpLock);
+ EfiReleaseLock (&mPrivate.NonFmpLock);
return Status;
}
@@ -177,12 +176,12 @@ EsrtDxeUnRegisterEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeRegisterEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
+EsrtDxeRegisterEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
)
{
- EFI_STATUS Status;
- EFI_SYSTEM_RESOURCE_ENTRY EsrtEntryTmp;
+ EFI_STATUS Status;
+ EFI_SYSTEM_RESOURCE_ENTRY EsrtEntryTmp;
if (Entry == NULL) {
return EFI_INVALID_PARAMETER;
@@ -193,17 +192,17 @@ EsrtDxeRegisterEsrtEntry(
return Status;
}
- Status = GetEsrtEntry(
+ Status = GetEsrtEntry (
&Entry->FwClass,
ESRT_FROM_NONFMP,
&EsrtEntryTmp
);
if (Status == EFI_NOT_FOUND) {
- Status = InsertEsrtEntry(Entry, ESRT_FROM_NONFMP);
+ Status = InsertEsrtEntry (Entry, ESRT_FROM_NONFMP);
}
- EfiReleaseLock(&mPrivate.NonFmpLock);
+ EfiReleaseLock (&mPrivate.NonFmpLock);
return Status;
}
@@ -220,27 +219,27 @@ EsrtDxeRegisterEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeSyncFmp(
+EsrtDxeSyncFmp (
VOID
)
{
- EFI_STATUS Status;
- UINTN Index1;
- UINTN Index2;
- UINTN Index3;
- EFI_HANDLE *HandleBuffer;
- EFI_FIRMWARE_MANAGEMENT_PROTOCOL **FmpBuf;
- UINTN NumberOfHandles;
- UINTN *DescriptorSizeBuf;
- EFI_FIRMWARE_IMAGE_DESCRIPTOR **FmpImageInfoBuf;
- EFI_FIRMWARE_IMAGE_DESCRIPTOR *TempFmpImageInfo;
- UINT8 *FmpImageInfoCountBuf;
- UINT32 *FmpImageInfoDescriptorVerBuf;
- UINTN ImageInfoSize;
- UINT32 PackageVersion;
- CHAR16 *PackageVersionName;
- EFI_SYSTEM_RESOURCE_ENTRY *EsrtRepositoryNew;
- UINTN EntryNumNew;
+ EFI_STATUS Status;
+ UINTN Index1;
+ UINTN Index2;
+ UINTN Index3;
+ EFI_HANDLE *HandleBuffer;
+ EFI_FIRMWARE_MANAGEMENT_PROTOCOL **FmpBuf;
+ UINTN NumberOfHandles;
+ UINTN *DescriptorSizeBuf;
+ EFI_FIRMWARE_IMAGE_DESCRIPTOR **FmpImageInfoBuf;
+ EFI_FIRMWARE_IMAGE_DESCRIPTOR *TempFmpImageInfo;
+ UINT8 *FmpImageInfoCountBuf;
+ UINT32 *FmpImageInfoDescriptorVerBuf;
+ UINTN ImageInfoSize;
+ UINT32 PackageVersion;
+ CHAR16 *PackageVersionName;
+ EFI_SYSTEM_RESOURCE_ENTRY *EsrtRepositoryNew;
+ UINTN EntryNumNew;
NumberOfHandles = 0;
EntryNumNew = 0;
@@ -264,49 +263,48 @@ EsrtDxeSyncFmp(
&HandleBuffer
);
-
if (Status == EFI_NOT_FOUND) {
EntryNumNew = 0;
goto UPDATE_REPOSITORY;
- } else if (EFI_ERROR(Status)){
+ } else if (EFI_ERROR (Status)) {
goto END;
}
//
// Allocate buffer to hold new FMP ESRT Cache repository
//
- EsrtRepositoryNew = AllocateZeroPool(PcdGet32(PcdMaxFmpEsrtCacheNum) * sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
+ EsrtRepositoryNew = AllocateZeroPool (PcdGet32 (PcdMaxFmpEsrtCacheNum) * sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
if (EsrtRepositoryNew == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
}
- FmpBuf = AllocatePool(sizeof(EFI_FIRMWARE_MANAGEMENT_PROTOCOL *) * NumberOfHandles);
+ FmpBuf = AllocatePool (sizeof (EFI_FIRMWARE_MANAGEMENT_PROTOCOL *) * NumberOfHandles);
if (FmpBuf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
}
- FmpImageInfoBuf = AllocateZeroPool(sizeof(EFI_FIRMWARE_IMAGE_DESCRIPTOR *) * NumberOfHandles);
+ FmpImageInfoBuf = AllocateZeroPool (sizeof (EFI_FIRMWARE_IMAGE_DESCRIPTOR *) * NumberOfHandles);
if (FmpImageInfoBuf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
}
- FmpImageInfoCountBuf = AllocateZeroPool(sizeof(UINT8) * NumberOfHandles);
+ FmpImageInfoCountBuf = AllocateZeroPool (sizeof (UINT8) * NumberOfHandles);
if (FmpImageInfoCountBuf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
}
- DescriptorSizeBuf = AllocateZeroPool(sizeof(UINTN) * NumberOfHandles);
+ DescriptorSizeBuf = AllocateZeroPool (sizeof (UINTN) * NumberOfHandles);
if (DescriptorSizeBuf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
}
- FmpImageInfoDescriptorVerBuf = AllocateZeroPool(sizeof(UINT32) * NumberOfHandles);
- if (FmpImageInfoDescriptorVerBuf == NULL) {
+ FmpImageInfoDescriptorVerBuf = AllocateZeroPool (sizeof (UINT32) * NumberOfHandles);
+ if (FmpImageInfoDescriptorVerBuf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
}
@@ -314,31 +312,31 @@ EsrtDxeSyncFmp(
//
// Get all FmpImageInfo Descriptor into FmpImageInfoBuf
//
- for (Index1 = 0; Index1 < NumberOfHandles; Index1++){
- Status = gBS->HandleProtocol(
+ for (Index1 = 0; Index1 < NumberOfHandles; Index1++) {
+ Status = gBS->HandleProtocol (
HandleBuffer[Index1],
&gEfiFirmwareManagementProtocolGuid,
(VOID **)&FmpBuf[Index1]
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
continue;
}
ImageInfoSize = 0;
- Status = FmpBuf[Index1]->GetImageInfo (
- FmpBuf[Index1],
- &ImageInfoSize,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- );
+ Status = FmpBuf[Index1]->GetImageInfo (
+ FmpBuf[Index1],
+ &ImageInfoSize,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ );
if (Status == EFI_BUFFER_TOO_SMALL) {
- FmpImageInfoBuf[Index1] = AllocateZeroPool(ImageInfoSize);
+ FmpImageInfoBuf[Index1] = AllocateZeroPool (ImageInfoSize);
if (FmpImageInfoBuf[Index1] == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto END;
@@ -348,56 +346,59 @@ EsrtDxeSyncFmp(
}
PackageVersionName = NULL;
- Status = FmpBuf[Index1]->GetImageInfo (
- FmpBuf[Index1],
- &ImageInfoSize,
- FmpImageInfoBuf[Index1],
- &FmpImageInfoDescriptorVerBuf[Index1],
- &FmpImageInfoCountBuf[Index1],
- &DescriptorSizeBuf[Index1],
- &PackageVersion,
- &PackageVersionName
- );
+ Status = FmpBuf[Index1]->GetImageInfo (
+ FmpBuf[Index1],
+ &ImageInfoSize,
+ FmpImageInfoBuf[Index1],
+ &FmpImageInfoDescriptorVerBuf[Index1],
+ &FmpImageInfoCountBuf[Index1],
+ &DescriptorSizeBuf[Index1],
+ &PackageVersion,
+ &PackageVersionName
+ );
//
// If FMP GetInformation interface failed, skip this resource
//
- if (EFI_ERROR(Status)){
+ if (EFI_ERROR (Status)) {
FmpImageInfoCountBuf[Index1] = 0;
continue;
}
if (PackageVersionName != NULL) {
- FreePool(PackageVersionName);
+ FreePool (PackageVersionName);
}
}
//
// Create new FMP cache repository based on FmpImageInfoBuf
//
- for (Index2 = 0; Index2 < NumberOfHandles; Index2++){
+ for (Index2 = 0; Index2 < NumberOfHandles; Index2++) {
TempFmpImageInfo = FmpImageInfoBuf[Index2];
- for (Index3 = 0; Index3 < FmpImageInfoCountBuf[Index2]; Index3++){
- if ((TempFmpImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_IN_USE) != 0
- && (TempFmpImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_IN_USE) != 0){
+ for (Index3 = 0; Index3 < FmpImageInfoCountBuf[Index2]; Index3++) {
+ if ( ((TempFmpImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_IN_USE) != 0)
+ && ((TempFmpImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_IN_USE) != 0))
+ {
//
// Always put the first smallest version of Image info into ESRT cache
//
- for(Index1 = 0; Index1 < EntryNumNew; Index1++) {
- if (CompareGuid(&EsrtRepositoryNew[Index1].FwClass, &TempFmpImageInfo->ImageTypeId)) {
- if(EsrtRepositoryNew[Index1].FwVersion > TempFmpImageInfo->Version) {
- SetEsrtEntryFromFmpInfo(&EsrtRepositoryNew[Index1], TempFmpImageInfo, FmpImageInfoDescriptorVerBuf[Index2]);
+ for (Index1 = 0; Index1 < EntryNumNew; Index1++) {
+ if (CompareGuid (&EsrtRepositoryNew[Index1].FwClass, &TempFmpImageInfo->ImageTypeId)) {
+ if (EsrtRepositoryNew[Index1].FwVersion > TempFmpImageInfo->Version) {
+ SetEsrtEntryFromFmpInfo (&EsrtRepositoryNew[Index1], TempFmpImageInfo, FmpImageInfoDescriptorVerBuf[Index2]);
}
+
break;
}
}
+
//
// New ImageTypeId can't be found in EsrtRepositoryNew. Create a new one
//
- if (Index1 == EntryNumNew){
- SetEsrtEntryFromFmpInfo(&EsrtRepositoryNew[EntryNumNew], TempFmpImageInfo, FmpImageInfoDescriptorVerBuf[Index2]);
+ if (Index1 == EntryNumNew) {
+ SetEsrtEntryFromFmpInfo (&EsrtRepositoryNew[EntryNumNew], TempFmpImageInfo, FmpImageInfoDescriptorVerBuf[Index2]);
EntryNumNew++;
- if (EntryNumNew >= PcdGet32(PcdMaxFmpEsrtCacheNum)) {
+ if (EntryNumNew >= PcdGet32 (PcdMaxFmpEsrtCacheNum)) {
break;
}
}
@@ -417,48 +418,49 @@ UPDATE_REPOSITORY:
return Status;
}
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
EFI_ESRT_FMP_VARIABLE_NAME,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- EntryNumNew * sizeof(EFI_SYSTEM_RESOURCE_ENTRY),
+ EntryNumNew * sizeof (EFI_SYSTEM_RESOURCE_ENTRY),
EsrtRepositoryNew
);
- EfiReleaseLock(&mPrivate.FmpLock);
+ EfiReleaseLock (&mPrivate.FmpLock);
END:
if (EsrtRepositoryNew != NULL) {
- FreePool(EsrtRepositoryNew);
+ FreePool (EsrtRepositoryNew);
}
if (HandleBuffer != NULL) {
- FreePool(HandleBuffer);
+ FreePool (HandleBuffer);
}
if (FmpBuf != NULL) {
- FreePool(FmpBuf);
+ FreePool (FmpBuf);
}
if (FmpImageInfoCountBuf != NULL) {
- FreePool(FmpImageInfoCountBuf);
+ FreePool (FmpImageInfoCountBuf);
}
if (DescriptorSizeBuf != NULL) {
- FreePool(DescriptorSizeBuf);
+ FreePool (DescriptorSizeBuf);
}
if (FmpImageInfoDescriptorVerBuf != NULL) {
- FreePool(FmpImageInfoDescriptorVerBuf);
+ FreePool (FmpImageInfoDescriptorVerBuf);
}
if (FmpImageInfoBuf != NULL) {
- for (Index1 = 0; Index1 < NumberOfHandles; Index1++){
+ for (Index1 = 0; Index1 < NumberOfHandles; Index1++) {
if (FmpImageInfoBuf[Index1] != NULL) {
- FreePool(FmpImageInfoBuf[Index1]);
+ FreePool (FmpImageInfoBuf[Index1]);
}
}
- FreePool(FmpImageInfoBuf);
+
+ FreePool (FmpImageInfoBuf);
}
return Status;
@@ -473,22 +475,23 @@ END:
**/
EFI_STATUS
EFIAPI
-EsrtDxeLockEsrtRepository(
+EsrtDxeLockEsrtRepository (
VOID
)
{
EFI_STATUS Status;
EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock;
+
//
// Mark ACPI_GLOBAL_VARIABLE variable to read-only if the Variable Lock protocol exists
//
- Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **) &VariableLock);
+ Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **)&VariableLock);
if (!EFI_ERROR (Status)) {
Status = VariableLock->RequestToLock (VariableLock, EFI_ESRT_FMP_VARIABLE_NAME, &gEfiCallerIdGuid);
- DEBUG((DEBUG_INFO, "EsrtDxe Lock EsrtFmp Variable Status 0x%x", Status));
+ DEBUG ((DEBUG_INFO, "EsrtDxe Lock EsrtFmp Variable Status 0x%x", Status));
Status = VariableLock->RequestToLock (VariableLock, EFI_ESRT_NONFMP_VARIABLE_NAME, &gEfiCallerIdGuid);
- DEBUG((DEBUG_INFO, "EsrtDxe Lock EsrtNonFmp Variable Status 0x%x", Status));
+ DEBUG ((DEBUG_INFO, "EsrtDxe Lock EsrtNonFmp Variable Status 0x%x", Status));
}
return Status;
@@ -505,8 +508,8 @@ EsrtDxeLockEsrtRepository(
VOID
EFIAPI
EsrtReadyToBootEventNotify (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
EFI_STATUS Status;
@@ -516,7 +519,6 @@ EsrtReadyToBootEventNotify (
UINTN FmpRepositorySize;
UINTN NonFmpRepositorySize;
-
FmpEsrtRepository = NULL;
NonFmpEsrtRepository = NULL;
FmpRepositorySize = 0;
@@ -530,39 +532,39 @@ EsrtReadyToBootEventNotify (
Status = GetVariable2 (
EFI_ESRT_NONFMP_VARIABLE_NAME,
&gEfiCallerIdGuid,
- (VOID **) &NonFmpEsrtRepository,
+ (VOID **)&NonFmpEsrtRepository,
&NonFmpRepositorySize
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
NonFmpRepositorySize = 0;
}
- if (NonFmpRepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
- DEBUG((DEBUG_ERROR, "NonFmp Repository Corrupt. Need to rebuild NonFmp Repository.\n"));
+ if (NonFmpRepositorySize % sizeof (EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
+ DEBUG ((DEBUG_ERROR, "NonFmp Repository Corrupt. Need to rebuild NonFmp Repository.\n"));
NonFmpRepositorySize = 0;
}
- EfiReleaseLock(&mPrivate.NonFmpLock);
+ EfiReleaseLock (&mPrivate.NonFmpLock);
Status = EfiAcquireLockOrFail (&mPrivate.FmpLock);
Status = GetVariable2 (
EFI_ESRT_FMP_VARIABLE_NAME,
&gEfiCallerIdGuid,
- (VOID **) &FmpEsrtRepository,
+ (VOID **)&FmpEsrtRepository,
&FmpRepositorySize
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
FmpRepositorySize = 0;
}
- if (FmpRepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
- DEBUG((DEBUG_ERROR, "Fmp Repository Corrupt. Need to rebuild Fmp Repository.\n"));
+ if (FmpRepositorySize % sizeof (EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
+ DEBUG ((DEBUG_ERROR, "Fmp Repository Corrupt. Need to rebuild Fmp Repository.\n"));
FmpRepositorySize = 0;
}
- EfiReleaseLock(&mPrivate.FmpLock);
+ EfiReleaseLock (&mPrivate.FmpLock);
//
// Skip ESRT table publish if no ESRT entry exists
@@ -571,22 +573,22 @@ EsrtReadyToBootEventNotify (
goto EXIT;
}
- EsrtTable = AllocatePool(sizeof(EFI_SYSTEM_RESOURCE_TABLE) + NonFmpRepositorySize + FmpRepositorySize);
+ EsrtTable = AllocatePool (sizeof (EFI_SYSTEM_RESOURCE_TABLE) + NonFmpRepositorySize + FmpRepositorySize);
if (EsrtTable == NULL) {
DEBUG ((DEBUG_ERROR, "Esrt table memory allocation failure\n"));
goto EXIT;
}
EsrtTable->FwResourceVersion = EFI_SYSTEM_RESOURCE_TABLE_FIRMWARE_RESOURCE_VERSION;
- EsrtTable->FwResourceCount = (UINT32)((NonFmpRepositorySize + FmpRepositorySize) / sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
- EsrtTable->FwResourceCountMax = PcdGet32(PcdMaxNonFmpEsrtCacheNum) + PcdGet32(PcdMaxFmpEsrtCacheNum);
+ EsrtTable->FwResourceCount = (UINT32)((NonFmpRepositorySize + FmpRepositorySize) / sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
+ EsrtTable->FwResourceCountMax = PcdGet32 (PcdMaxNonFmpEsrtCacheNum) + PcdGet32 (PcdMaxFmpEsrtCacheNum);
- if (NonFmpRepositorySize != 0 && NonFmpEsrtRepository != NULL) {
- CopyMem(EsrtTable + 1, NonFmpEsrtRepository, NonFmpRepositorySize);
+ if ((NonFmpRepositorySize != 0) && (NonFmpEsrtRepository != NULL)) {
+ CopyMem (EsrtTable + 1, NonFmpEsrtRepository, NonFmpRepositorySize);
}
- if (FmpRepositorySize != 0 && FmpEsrtRepository != NULL) {
- CopyMem((UINT8 *)(EsrtTable + 1) + NonFmpRepositorySize, FmpEsrtRepository, FmpRepositorySize);
+ if ((FmpRepositorySize != 0) && (FmpEsrtRepository != NULL)) {
+ CopyMem ((UINT8 *)(EsrtTable + 1) + NonFmpRepositorySize, FmpEsrtRepository, FmpRepositorySize);
}
//
@@ -597,16 +599,16 @@ EsrtReadyToBootEventNotify (
//
// Only one successful install
//
- gBS->CloseEvent(Event);
+ gBS->CloseEvent (Event);
EXIT:
if (FmpEsrtRepository != NULL) {
- FreePool(FmpEsrtRepository);
+ FreePool (FmpEsrtRepository);
}
if (NonFmpEsrtRepository != NULL) {
- FreePool(NonFmpEsrtRepository);
+ FreePool (NonFmpEsrtRepository);
}
}
@@ -624,13 +626,13 @@ EXIT:
EFI_STATUS
EFIAPI
EsrtDxeEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- EfiInitializeLock (&mPrivate.FmpLock, TPL_CALLBACK);
+ EfiInitializeLock (&mPrivate.FmpLock, TPL_CALLBACK);
EfiInitializeLock (&mPrivate.NonFmpLock, TPL_CALLBACK);
//
diff --git a/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c b/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c
index 0fa8c2e..bc3a0ad 100644
--- a/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c
+++ b/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c
@@ -21,9 +21,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
GetEsrtEntry (
- IN EFI_GUID *FwClass,
- IN UINTN Attribute,
- OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
+ IN EFI_GUID *FwClass,
+ IN UINTN Attribute,
+ OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
)
{
EFI_STATUS Status;
@@ -47,25 +47,25 @@ GetEsrtEntry (
Status = GetVariable2 (
VariableName,
&gEfiCallerIdGuid,
- (VOID **) &EsrtRepository,
+ (VOID **)&EsrtRepository,
&RepositorySize
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
goto EXIT;
}
- if (RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
- DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
+ if (RepositorySize % sizeof (EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
+ DEBUG ((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
Status = EFI_ABORTED;
goto EXIT;
}
Status = EFI_NOT_FOUND;
- EsrtNum = RepositorySize/sizeof(EFI_SYSTEM_RESOURCE_ENTRY);
+ EsrtNum = RepositorySize/sizeof (EFI_SYSTEM_RESOURCE_ENTRY);
for (Index = 0; Index < EsrtNum; Index++) {
- if (CompareGuid(FwClass, &EsrtRepository[Index].FwClass)) {
- CopyMem(Entry, &EsrtRepository[Index], sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
+ if (CompareGuid (FwClass, &EsrtRepository[Index].FwClass)) {
+ CopyMem (Entry, &EsrtRepository[Index], sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
Status = EFI_SUCCESS;
break;
}
@@ -73,7 +73,7 @@ GetEsrtEntry (
EXIT:
if (EsrtRepository != NULL) {
- FreePool(EsrtRepository);
+ FreePool (EsrtRepository);
}
return Status;
@@ -89,9 +89,9 @@ EXIT:
**/
EFI_STATUS
-InsertEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
- UINTN Attribute
+InsertEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
+ UINTN Attribute
)
{
EFI_STATUS Status;
@@ -115,7 +115,7 @@ InsertEsrtEntry(
Status = GetVariable2 (
VariableName,
&gEfiCallerIdGuid,
- (VOID **) &EsrtRepository,
+ (VOID **)&EsrtRepository,
&RepositorySize
);
@@ -123,32 +123,31 @@ InsertEsrtEntry(
//
// If not exist, create new Esrt cache repository
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- sizeof(EFI_SYSTEM_RESOURCE_ENTRY),
+ sizeof (EFI_SYSTEM_RESOURCE_ENTRY),
Entry
);
return Status;
-
} else if (Status == EFI_SUCCESS) {
//
// if exist, update Esrt cache repository
//
- if (RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
- DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
+ if (RepositorySize % sizeof (EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
+ DEBUG ((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
//
// Repository is corrupt. Clear Repository before insert new entry
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
0,
EsrtRepository
);
- FreePool(EsrtRepository);
+ FreePool (EsrtRepository);
RepositorySize = 0;
EsrtRepository = NULL;
}
@@ -156,39 +155,41 @@ InsertEsrtEntry(
//
// Check Repository size constraint
//
- if ((Attribute == ESRT_FROM_FMP && RepositorySize >= PcdGet32(PcdMaxFmpEsrtCacheNum) * sizeof(EFI_SYSTEM_RESOURCE_ENTRY))
- ||(Attribute == ESRT_FROM_NONFMP && RepositorySize >= PcdGet32(PcdMaxNonFmpEsrtCacheNum) * sizeof(EFI_SYSTEM_RESOURCE_ENTRY)) ) {
+ if ( ((Attribute == ESRT_FROM_FMP) && (RepositorySize >= PcdGet32 (PcdMaxFmpEsrtCacheNum) * sizeof (EFI_SYSTEM_RESOURCE_ENTRY)))
+ || ((Attribute == ESRT_FROM_NONFMP) && (RepositorySize >= PcdGet32 (PcdMaxNonFmpEsrtCacheNum) * sizeof (EFI_SYSTEM_RESOURCE_ENTRY))))
+ {
Status = EFI_OUT_OF_RESOURCES;
goto EXIT;
}
- EsrtRepositoryNew = AllocatePool(RepositorySize + sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
+ EsrtRepositoryNew = AllocatePool (RepositorySize + sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
if (EsrtRepositoryNew == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto EXIT;
}
- if (RepositorySize != 0 && EsrtRepository != NULL) {
- CopyMem(EsrtRepositoryNew, EsrtRepository, RepositorySize);
+ if ((RepositorySize != 0) && (EsrtRepository != NULL)) {
+ CopyMem (EsrtRepositoryNew, EsrtRepository, RepositorySize);
}
- CopyMem((UINT8 *)EsrtRepositoryNew + RepositorySize, Entry, sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
- Status = gRT->SetVariable(
+ CopyMem ((UINT8 *)EsrtRepositoryNew + RepositorySize, Entry, sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
+
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- RepositorySize + sizeof(EFI_SYSTEM_RESOURCE_ENTRY),
+ RepositorySize + sizeof (EFI_SYSTEM_RESOURCE_ENTRY),
EsrtRepositoryNew
);
}
EXIT:
if (EsrtRepository != NULL) {
- FreePool(EsrtRepository);
+ FreePool (EsrtRepository);
}
if (EsrtRepositoryNew != NULL) {
- FreePool(EsrtRepositoryNew);
+ FreePool (EsrtRepositoryNew);
}
return Status;
@@ -205,9 +206,9 @@ EXIT:
**/
EFI_STATUS
-DeleteEsrtEntry(
- IN EFI_GUID *FwClass,
- IN UINTN Attribute
+DeleteEsrtEntry (
+ IN EFI_GUID *FwClass,
+ IN UINTN Attribute
)
{
EFI_STATUS Status;
@@ -231,11 +232,11 @@ DeleteEsrtEntry(
Status = GetVariable2 (
VariableName,
&gEfiCallerIdGuid,
- (VOID **) &EsrtRepository,
+ (VOID **)&EsrtRepository,
&RepositorySize
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
goto EXIT;
}
@@ -244,12 +245,12 @@ DeleteEsrtEntry(
goto EXIT;
}
- if ((RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY)) != 0) {
- DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
+ if ((RepositorySize % sizeof (EFI_SYSTEM_RESOURCE_ENTRY)) != 0) {
+ DEBUG ((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
//
// Repository is corrupt. Clear Repository before insert new entry
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -259,28 +260,28 @@ DeleteEsrtEntry(
goto EXIT;
}
- Status = EFI_NOT_FOUND;
- EsrtNum = RepositorySize/sizeof(EFI_SYSTEM_RESOURCE_ENTRY);
+ Status = EFI_NOT_FOUND;
+ EsrtNum = RepositorySize/sizeof (EFI_SYSTEM_RESOURCE_ENTRY);
for (Index = 0; Index < EsrtNum; Index++) {
//
// Delete Esrt entry if it is found in repository
//
- if (CompareGuid(FwClass, &EsrtRepository[Index].FwClass)) {
+ if (CompareGuid (FwClass, &EsrtRepository[Index].FwClass)) {
//
// If delete Esrt entry is not at the rail
//
if (Index < EsrtNum - 1) {
- CopyMem(&EsrtRepository[Index], &EsrtRepository[Index + 1], (EsrtNum - Index - 1) * sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
+ CopyMem (&EsrtRepository[Index], &EsrtRepository[Index + 1], (EsrtNum - Index - 1) * sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
}
//
// Update New Repository
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
- (EsrtNum - 1) * sizeof(EFI_SYSTEM_RESOURCE_ENTRY),
+ (EsrtNum - 1) * sizeof (EFI_SYSTEM_RESOURCE_ENTRY),
EsrtRepository
);
break;
@@ -289,11 +290,10 @@ DeleteEsrtEntry(
EXIT:
if (EsrtRepository != NULL) {
- FreePool(EsrtRepository);
+ FreePool (EsrtRepository);
}
return Status;
-
}
/**
@@ -307,9 +307,9 @@ EXIT:
**/
EFI_STATUS
-UpdateEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
- UINTN Attribute
+UpdateEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
+ UINTN Attribute
)
{
EFI_STATUS Status;
@@ -319,7 +319,7 @@ UpdateEsrtEntry(
UINTN Index;
UINTN EsrtNum;
- EsrtRepository = NULL;
+ EsrtRepository = NULL;
//
// Get Esrt index buffer
@@ -333,7 +333,7 @@ UpdateEsrtEntry(
Status = GetVariable2 (
VariableName,
&gEfiCallerIdGuid,
- (VOID **) &EsrtRepository,
+ (VOID **)&EsrtRepository,
&RepositorySize
);
@@ -342,16 +342,16 @@ UpdateEsrtEntry(
goto EXIT;
}
- if (!EFI_ERROR(Status)) {
+ if (!EFI_ERROR (Status)) {
//
// if exist, update Esrt cache repository
//
- if (RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
- DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
+ if (RepositorySize % sizeof (EFI_SYSTEM_RESOURCE_ENTRY) != 0) {
+ DEBUG ((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n"));
//
// Repository is corrupt. Clear Repository before insert new entry
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -362,19 +362,18 @@ UpdateEsrtEntry(
goto EXIT;
}
- Status = EFI_NOT_FOUND;
- EsrtNum = RepositorySize/sizeof(EFI_SYSTEM_RESOURCE_ENTRY);
+ Status = EFI_NOT_FOUND;
+ EsrtNum = RepositorySize/sizeof (EFI_SYSTEM_RESOURCE_ENTRY);
for (Index = 0; Index < EsrtNum; Index++) {
//
// Update Esrt entry if it is found in repository
//
- if (CompareGuid(&Entry->FwClass, &EsrtRepository[Index].FwClass)) {
-
- CopyMem(&EsrtRepository[Index], Entry, sizeof(EFI_SYSTEM_RESOURCE_ENTRY));
+ if (CompareGuid (&Entry->FwClass, &EsrtRepository[Index].FwClass)) {
+ CopyMem (&EsrtRepository[Index], Entry, sizeof (EFI_SYSTEM_RESOURCE_ENTRY));
//
// Update New Repository
//
- Status = gRT->SetVariable(
+ Status = gRT->SetVariable (
VariableName,
&gEfiCallerIdGuid,
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
@@ -388,7 +387,7 @@ UpdateEsrtEntry(
EXIT:
if (EsrtRepository != NULL) {
- FreePool(EsrtRepository);
+ FreePool (EsrtRepository);
}
return Status;
@@ -404,18 +403,18 @@ EXIT:
**/
BOOLEAN
IsSystemFmp (
- IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfo
+ IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfo
)
{
- GUID *Guid;
- UINTN Count;
- UINTN Index;
+ GUID *Guid;
+ UINTN Count;
+ UINTN Index;
- Guid = PcdGetPtr(PcdSystemFmpCapsuleImageTypeIdGuid);
- Count = PcdGetSize(PcdSystemFmpCapsuleImageTypeIdGuid)/sizeof(GUID);
+ Guid = PcdGetPtr (PcdSystemFmpCapsuleImageTypeIdGuid);
+ Count = PcdGetSize (PcdSystemFmpCapsuleImageTypeIdGuid)/sizeof (GUID);
for (Index = 0; Index < Count; Index++, Guid++) {
- if (CompareGuid(&FmpImageInfo->ImageTypeId, Guid)) {
+ if (CompareGuid (&FmpImageInfo->ImageTypeId, Guid)) {
return TRUE;
}
}
@@ -433,18 +432,19 @@ IsSystemFmp (
**/
VOID
SetEsrtEntryFromFmpInfo (
- IN OUT EFI_SYSTEM_RESOURCE_ENTRY *EsrtEntry,
- IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfo,
- IN UINT32 DescriptorVersion
+ IN OUT EFI_SYSTEM_RESOURCE_ENTRY *EsrtEntry,
+ IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfo,
+ IN UINT32 DescriptorVersion
)
{
- EsrtEntry->FwVersion = FmpImageInfo->Version;
- EsrtEntry->FwClass = FmpImageInfo->ImageTypeId;
- if (IsSystemFmp(FmpImageInfo)) {
- EsrtEntry->FwType = ESRT_FW_TYPE_SYSTEMFIRMWARE;
+ EsrtEntry->FwVersion = FmpImageInfo->Version;
+ EsrtEntry->FwClass = FmpImageInfo->ImageTypeId;
+ if (IsSystemFmp (FmpImageInfo)) {
+ EsrtEntry->FwType = ESRT_FW_TYPE_SYSTEMFIRMWARE;
} else {
- EsrtEntry->FwType = ESRT_FW_TYPE_DEVICEFIRMWARE;
+ EsrtEntry->FwType = ESRT_FW_TYPE_DEVICEFIRMWARE;
}
+
EsrtEntry->LowestSupportedFwVersion = 0;
EsrtEntry->CapsuleFlags = 0;
EsrtEntry->LastAttemptVersion = 0;
@@ -468,8 +468,9 @@ SetEsrtEntryFromFmpInfo (
//
// Set capsule customized flag
//
- if ((FmpImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0
- && (FmpImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0) {
- EsrtEntry->CapsuleFlags = PcdGet16(PcdSystemRebootAfterCapsuleProcessFlag);
+ if ( ((FmpImageInfo->AttributesSupported & IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0)
+ && ((FmpImageInfo->AttributesSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0))
+ {
+ EsrtEntry->CapsuleFlags = PcdGet16 (PcdSystemRebootAfterCapsuleProcessFlag);
}
}
diff --git a/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.h b/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.h
index 68d0d2b..d862317 100644
--- a/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.h
+++ b/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.h
@@ -30,38 +30,37 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Name of Variable for Non-FMP ESRT Repository
//
-#define EFI_ESRT_NONFMP_VARIABLE_NAME L"EsrtNonFmp"
+#define EFI_ESRT_NONFMP_VARIABLE_NAME L"EsrtNonFmp"
//
// Name of Variable for FMP
//
-#define EFI_ESRT_FMP_VARIABLE_NAME L"EsrtFmp"
+#define EFI_ESRT_FMP_VARIABLE_NAME L"EsrtFmp"
//
// Attribute of Cached ESRT entry
//
-#define ESRT_FROM_FMP 0x00000001
-#define ESRT_FROM_NONFMP 0x00000002
+#define ESRT_FROM_FMP 0x00000001
+#define ESRT_FROM_NONFMP 0x00000002
typedef struct {
- EFI_HANDLE Handle;
+ EFI_HANDLE Handle;
//
// Ready to boot event
//
- EFI_EVENT Event;
+ EFI_EVENT Event;
//
// Updates to Fmp storage must be locked.
//
- EFI_LOCK FmpLock;
+ EFI_LOCK FmpLock;
//
// Update to Non-Fmp storage must be locked
//
- EFI_LOCK NonFmpLock;
+ EFI_LOCK NonFmpLock;
} ESRT_PRIVATE_DATA;
-
/**
Find Esrt Entry stored in ESRT repository.
@@ -75,9 +74,9 @@ typedef struct {
**/
EFI_STATUS
GetEsrtEntry (
- IN EFI_GUID *FwClass,
- IN UINTN Attribute,
- OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
+ IN EFI_GUID *FwClass,
+ IN UINTN Attribute,
+ OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
);
/**
@@ -90,9 +89,9 @@ GetEsrtEntry (
**/
EFI_STATUS
-InsertEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
- UINTN Attribute
+InsertEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
+ UINTN Attribute
);
/**
@@ -106,9 +105,9 @@ InsertEsrtEntry(
**/
EFI_STATUS
-DeleteEsrtEntry(
- IN EFI_GUID *FwClass,
- IN UINTN Attribute
+DeleteEsrtEntry (
+ IN EFI_GUID *FwClass,
+ IN UINTN Attribute
);
/**
@@ -122,9 +121,9 @@ DeleteEsrtEntry(
**/
EFI_STATUS
-UpdateEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
- UINTN Attribute
+UpdateEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry,
+ UINTN Attribute
);
/**
@@ -137,9 +136,9 @@ UpdateEsrtEntry(
**/
VOID
SetEsrtEntryFromFmpInfo (
- IN OUT EFI_SYSTEM_RESOURCE_ENTRY *EsrtEntry,
- IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfo,
- IN UINT32 DescriptorVersion
+ IN OUT EFI_SYSTEM_RESOURCE_ENTRY *EsrtEntry,
+ IN EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfo,
+ IN UINT32 DescriptorVersion
);
/**
@@ -155,9 +154,9 @@ SetEsrtEntryFromFmpInfo (
**/
EFI_STATUS
EFIAPI
-EsrtDxeGetEsrtEntry(
- IN EFI_GUID *FwClass,
- IN OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
+EsrtDxeGetEsrtEntry (
+ IN EFI_GUID *FwClass,
+ IN OUT EFI_SYSTEM_RESOURCE_ENTRY *Entry
);
/**
@@ -172,8 +171,8 @@ EsrtDxeGetEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeUpdateEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
+EsrtDxeUpdateEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
);
/**
@@ -187,8 +186,8 @@ EsrtDxeUpdateEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeUnRegisterEsrtEntry(
- IN EFI_GUID *FwClass
+EsrtDxeUnRegisterEsrtEntry (
+ IN EFI_GUID *FwClass
);
/**
@@ -201,8 +200,8 @@ EsrtDxeUnRegisterEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeRegisterEsrtEntry(
- IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
+EsrtDxeRegisterEsrtEntry (
+ IN EFI_SYSTEM_RESOURCE_ENTRY *Entry
);
/**
@@ -217,7 +216,7 @@ EsrtDxeRegisterEsrtEntry(
**/
EFI_STATUS
EFIAPI
-EsrtDxeSyncFmp(
+EsrtDxeSyncFmp (
VOID
);
@@ -230,9 +229,8 @@ EsrtDxeSyncFmp(
**/
EFI_STATUS
EFIAPI
-EsrtDxeLockEsrtRepository(
+EsrtDxeLockEsrtRepository (
VOID
);
#endif // #ifndef _EFI_ESRT_IMPL_H_
-
diff --git a/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c b/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c
index 4670349..4f47c55 100644
--- a/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c
+++ b/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmp.c
@@ -29,12 +29,12 @@ typedef struct {
///
/// A unique GUID identifying the firmware image type.
///
- EFI_GUID ImageTypeGuid;
+ EFI_GUID ImageTypeGuid;
///
/// An optional number to identify the unique hardware instance within the
/// system for devices that may have multiple instances whenever possible.
///
- UINT64 HardwareInstance;
+ UINT64 HardwareInstance;
} GUID_HARDWAREINSTANCE_PAIR;
/**
@@ -59,10 +59,10 @@ PrintTable (
**/
EFI_STATUS
InstallEfiSystemResourceTableInUefiConfigurationTable (
- IN EFI_SYSTEM_RESOURCE_TABLE *Table
+ IN EFI_SYSTEM_RESOURCE_TABLE *Table
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = EFI_SUCCESS;
if (Table->FwResourceCount == 0) {
@@ -79,6 +79,7 @@ InstallEfiSystemResourceTableInUefiConfigurationTable (
DEBUG ((DEBUG_INFO, "EsrtFmpDxe: Installed ESRT table. \n"));
}
}
+
return Status;
}
@@ -100,7 +101,7 @@ IsSystemFmp (
UINTN Index;
Guid = PcdGetPtr (PcdSystemFmpCapsuleImageTypeIdGuid);
- Count = PcdGetSize (PcdSystemFmpCapsuleImageTypeIdGuid) / sizeof(GUID);
+ Count = PcdGetSize (PcdSystemFmpCapsuleImageTypeIdGuid) / sizeof (GUID);
for (Index = 0; Index < Count; Index++, Guid++) {
if (CompareGuid (&FmpImageInfo->ImageTypeId, Guid)) {
@@ -171,7 +172,7 @@ CreateEsrtEntry (
//
CopyGuid (&HardwareInstances[*NumberOfDescriptors].ImageTypeGuid, &FmpImageInfoBuf->ImageTypeId);
HardwareInstances[*NumberOfDescriptors].HardwareInstance = FmpHardwareInstance;
- *NumberOfDescriptors = *NumberOfDescriptors + 1;
+ *NumberOfDescriptors = *NumberOfDescriptors + 1;
DEBUG ((DEBUG_INFO, "EsrtFmpDxe: Add new image descriptor with GUID %g HardwareInstance:0x%x\n", &FmpImageInfoBuf->ImageTypeId, FmpHardwareInstance));
@@ -183,6 +184,7 @@ CreateEsrtEntry (
if (!CompareGuid (&Entry->FwClass, &FmpImageInfoBuf->ImageTypeId)) {
continue;
}
+
DEBUG ((DEBUG_INFO, "EsrtFmpDxe: ESRT Entry already exists for FMP Instance with GUID %g\n", &Entry->FwClass));
//
@@ -216,7 +218,7 @@ CreateEsrtEntry (
//
if (Entry->LastAttemptStatus == LAST_ATTEMPT_STATUS_SUCCESS) {
if (FmpImageInfoBuf->LastAttemptStatus != LAST_ATTEMPT_STATUS_SUCCESS) {
- Entry->LastAttemptStatus = FmpImageInfoBuf->LastAttemptStatus;
+ Entry->LastAttemptStatus = FmpImageInfoBuf->LastAttemptStatus;
Entry->LastAttemptVersion = FmpImageInfoBuf->LastAttemptVersion;
} else {
Entry->LastAttemptVersion =
@@ -306,16 +308,16 @@ FmpGetFirmwareImageDescriptor (
EFI_FIRMWARE_IMAGE_DESCRIPTOR *FmpImageInfoBuf;
ImageInfoSize = 0;
- Status = Fmp->GetImageInfo (
- Fmp, // FMP Pointer
- &ImageInfoSize, // Buffer Size (in this case 0)
- NULL, // NULL so we can get size
- FmpImageInfoDescriptorVer, // DescriptorVersion
- FmpImageInfoCount, // DescriptorCount
- DescriptorSize, // DescriptorSize
- &PackageVersion, // PackageVersion
- &PackageVersionName // PackageVersionName
- );
+ Status = Fmp->GetImageInfo (
+ Fmp, // FMP Pointer
+ &ImageInfoSize, // Buffer Size (in this case 0)
+ NULL, // NULL so we can get size
+ FmpImageInfoDescriptorVer, // DescriptorVersion
+ FmpImageInfoCount, // DescriptorCount
+ DescriptorSize, // DescriptorSize
+ &PackageVersion, // PackageVersion
+ &PackageVersionName // PackageVersionName
+ );
if (Status != EFI_BUFFER_TOO_SMALL) {
DEBUG ((DEBUG_ERROR, "EsrtFmpDxe: Unexpected Failure in GetImageInfo. Status = %r\n", Status));
return NULL;
@@ -328,19 +330,20 @@ FmpGetFirmwareImageDescriptor (
}
PackageVersionName = NULL;
- Status = Fmp->GetImageInfo (
- Fmp, // FMP Pointer
- &ImageInfoSize, // ImageInfoSize
- FmpImageInfoBuf, // ImageInfo
- FmpImageInfoDescriptorVer, // DescriptorVersion
- FmpImageInfoCount, // DescriptorCount
- DescriptorSize, // DescriptorSize
- &PackageVersion, // PackageVersion
- &PackageVersionName // PackageVersionName
- );
+ Status = Fmp->GetImageInfo (
+ Fmp, // FMP Pointer
+ &ImageInfoSize, // ImageInfoSize
+ FmpImageInfoBuf, // ImageInfo
+ FmpImageInfoDescriptorVer, // DescriptorVersion
+ FmpImageInfoCount, // DescriptorCount
+ DescriptorSize, // DescriptorSize
+ &PackageVersion, // PackageVersion
+ &PackageVersionName // PackageVersionName
+ );
if (PackageVersionName != NULL) {
FreePool (PackageVersionName);
}
+
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "EsrtFmpDxe: Failure in GetImageInfo. Status = %r\n", Status));
FreePool (FmpImageInfoBuf);
@@ -389,7 +392,7 @@ CreateFmpBasedEsrt (
&NoProtocols,
&Buffer
);
- if (EFI_ERROR(Status) || (Buffer == NULL)) {
+ if (EFI_ERROR (Status) || (Buffer == NULL)) {
return NULL;
}
@@ -398,7 +401,7 @@ CreateFmpBasedEsrt (
//
for (Index = 0, NumberOfDescriptors = 0; Index < NoProtocols; Index++) {
FmpImageInfoBuf = FmpGetFirmwareImageDescriptor (
- (EFI_FIRMWARE_MANAGEMENT_PROTOCOL *) Buffer[Index],
+ (EFI_FIRMWARE_MANAGEMENT_PROTOCOL *)Buffer[Index],
&FmpImageInfoDescriptorVer,
&FmpImageInfoCount,
&DescriptorSize
@@ -413,8 +416,8 @@ CreateFmpBasedEsrt (
// Allocate ESRT Table and GUID/HardwareInstance table
//
Table = AllocateZeroPool (
- (NumberOfDescriptors * sizeof (EFI_SYSTEM_RESOURCE_ENTRY)) + sizeof (EFI_SYSTEM_RESOURCE_TABLE)
- );
+ (NumberOfDescriptors * sizeof (EFI_SYSTEM_RESOURCE_ENTRY)) + sizeof (EFI_SYSTEM_RESOURCE_TABLE)
+ );
if (Table == NULL) {
DEBUG ((DEBUG_ERROR, "EsrtFmpDxe: Failed to allocate memory for ESRT.\n"));
FreePool (Buffer);
@@ -439,7 +442,7 @@ CreateFmpBasedEsrt (
NumberOfDescriptors = 0;
for (Index = 0; Index < NoProtocols; Index++) {
FmpImageInfoBuf = FmpGetFirmwareImageDescriptor (
- (EFI_FIRMWARE_MANAGEMENT_PROTOCOL *) Buffer[Index],
+ (EFI_FIRMWARE_MANAGEMENT_PROTOCOL *)Buffer[Index],
&FmpImageInfoDescriptorVer,
&FmpImageInfoCount,
&DescriptorSize
@@ -462,6 +465,7 @@ CreateFmpBasedEsrt (
//
CreateEsrtEntry (Table, HardwareInstances, &NumberOfDescriptors, FmpImageInfoBuf, FmpImageInfoDescriptorVer);
}
+
FmpImageInfoCount--;
//
// Increment the buffer pointer ahead by the size of the descriptor
diff --git a/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDebugPrint.c b/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDebugPrint.c
index e972793..8ed3385 100644
--- a/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDebugPrint.c
+++ b/MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDebugPrint.c
@@ -47,21 +47,21 @@ PrintOutEsrtEntry (
// Entry Type (12 chars plus table formatting)
//
switch (Entry->FwType) {
- case (ESRT_FW_TYPE_SYSTEMFIRMWARE) :
- DEBUG ((DEBUG_INFO, " System FW |"));
- break;
- case (ESRT_FW_TYPE_DEVICEFIRMWARE) :
- DEBUG ((DEBUG_INFO, " Device FW |"));
- break;
- case (ESRT_FW_TYPE_UEFIDRIVER) :
- DEBUG ((DEBUG_INFO, " Uefi Driver |"));
- break;
- case (ESRT_FW_TYPE_UNKNOWN) :
- DEBUG ((DEBUG_INFO, " Unknown Type |"));
- break;
- default:
- DEBUG ((DEBUG_INFO, " ? 0x%8X |", Entry->FwType));
- break;
+ case (ESRT_FW_TYPE_SYSTEMFIRMWARE):
+ DEBUG ((DEBUG_INFO, " System FW |"));
+ break;
+ case (ESRT_FW_TYPE_DEVICEFIRMWARE):
+ DEBUG ((DEBUG_INFO, " Device FW |"));
+ break;
+ case (ESRT_FW_TYPE_UEFIDRIVER):
+ DEBUG ((DEBUG_INFO, " Uefi Driver |"));
+ break;
+ case (ESRT_FW_TYPE_UNKNOWN):
+ DEBUG ((DEBUG_INFO, " Unknown Type |"));
+ break;
+ default:
+ DEBUG ((DEBUG_INFO, " ? 0x%8X |", Entry->FwType));
+ break;
}
//
@@ -71,7 +71,8 @@ PrintOutEsrtEntry (
// Last Attempt Version (10 char UINT32 string plus table formatting)
// Last Attempt Status (10 char UINT32 string plus table formatting)
//
- DEBUG ((DEBUG_INFO,
+ DEBUG ((
+ DEBUG_INFO,
" 0x%8X | 0x%8X | 0x%8X | 0x%8X | 0x%8X |\n",
Entry->FwVersion,
Entry->LowestSupportedFwVersion,
@@ -109,9 +110,9 @@ PrintTable (
}
DEBUG ((DEBUG_INFO, "+--------------------------------------------------------+\n"));
- DEBUG ((DEBUG_INFO, "| Firmware Resource Count : 0x%08x |\n", Table->FwResourceCount));
- DEBUG ((DEBUG_INFO, "| Firmware Resource Count Max : 0x%08x |\n", Table->FwResourceCountMax));
- DEBUG ((DEBUG_INFO, "| Firmware Resource Entry Version : 0x%016x |\n", Table->FwResourceVersion));
+ DEBUG ((DEBUG_INFO, "| Firmware Resource Count : 0x%08x |\n", Table->FwResourceCount));
+ DEBUG ((DEBUG_INFO, "| Firmware Resource Count Max : 0x%08x |\n", Table->FwResourceCountMax));
+ DEBUG ((DEBUG_INFO, "| Firmware Resource Entry Version : 0x%016x |\n", Table->FwResourceVersion));
DEBUG ((DEBUG_INFO, "+--------------------------------------------------------+\n"));
//
@@ -141,4 +142,3 @@ PrintTable (
DEBUG ((DEBUG_INFO, "+--------------------------------------+--------------+------------"));
DEBUG ((DEBUG_INFO, "+------------+------------+------------+------------+\n"));
}
-
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c
index dbe5c00..53f9aef 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c
@@ -13,6 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Fault Tolerant Write Protocol API
//
+
/**
Query the largest block that may be updated in a fault tolerant manner.
@@ -27,19 +28,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
FtwGetMaxBlockSize (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT UINTN *BlockSize
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT UINTN *BlockSize
)
{
EFI_FTW_DEVICE *FtwDevice;
- if (!FeaturePcdGet(PcdFullFtwServiceEnable)) {
+ if (!FeaturePcdGet (PcdFullFtwServiceEnable)) {
return EFI_UNSUPPORTED;
}
- FtwDevice = FTW_CONTEXT_FROM_THIS (This);
+ FtwDevice = FTW_CONTEXT_FROM_THIS (This);
- *BlockSize = FtwDevice->SpareAreaLength;
+ *BlockSize = FtwDevice->SpareAreaLength;
return EFI_SUCCESS;
}
@@ -68,23 +69,24 @@ FtwGetMaxBlockSize (
EFI_STATUS
EFIAPI
FtwAllocate (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_GUID *CallerId,
- IN UINTN PrivateDataSize,
- IN UINTN NumberOfWrites
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_GUID *CallerId,
+ IN UINTN PrivateDataSize,
+ IN UINTN NumberOfWrites
)
{
- EFI_STATUS Status;
- UINTN Offset;
- EFI_FTW_DEVICE *FtwDevice;
- EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader;
+ EFI_STATUS Status;
+ UINTN Offset;
+ EFI_FTW_DEVICE *FtwDevice;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader;
FtwDevice = FTW_CONTEXT_FROM_THIS (This);
- Status = WorkSpaceRefresh (FtwDevice);
+ Status = WorkSpaceRefresh (FtwDevice);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Check if there is enough space for the coming allocation
//
@@ -92,6 +94,7 @@ FtwAllocate (
DEBUG ((DEBUG_ERROR, "Ftw: Allocate() request exceed Workspace, Caller: %g\n", CallerId));
return EFI_BUFFER_TOO_SMALL;
}
+
//
// Find the last write header and record.
// If the FtwHeader is complete, skip the completed last write header/records
@@ -104,10 +107,11 @@ FtwAllocate (
if ((FtwHeader->HeaderAllocated == FTW_VALID_STATE) || (FtwHeader->WritesAllocated == FTW_VALID_STATE)) {
return EFI_ACCESS_DENIED;
}
+
//
// If workspace is not enough, then reclaim workspace
//
- Offset = (UINT8 *) FtwHeader - (UINT8 *) FtwDevice->FtwWorkSpace;
+ Offset = (UINT8 *)FtwHeader - (UINT8 *)FtwDevice->FtwWorkSpace;
if (Offset + FTW_WRITE_TOTAL_SIZE (NumberOfWrites, PrivateDataSize) > FtwDevice->FtwWorkSpaceSize) {
Status = FtwReclaimWorkSpace (FtwDevice, TRUE);
if (EFI_ERROR (Status)) {
@@ -116,16 +120,17 @@ FtwAllocate (
FtwHeader = FtwDevice->FtwLastWriteHeader;
}
+
//
// Prepare FTW write header,
// overwrite the buffer and write to workspace.
//
- FtwHeader->WritesAllocated = FTW_INVALID_STATE;
- FtwHeader->Complete = FTW_INVALID_STATE;
+ FtwHeader->WritesAllocated = FTW_INVALID_STATE;
+ FtwHeader->Complete = FTW_INVALID_STATE;
CopyMem (&FtwHeader->CallerId, CallerId, sizeof (EFI_GUID));
- FtwHeader->NumberOfWrites = NumberOfWrites;
- FtwHeader->PrivateDataSize = PrivateDataSize;
- FtwHeader->HeaderAllocated = FTW_VALID_STATE;
+ FtwHeader->NumberOfWrites = NumberOfWrites;
+ FtwHeader->PrivateDataSize = PrivateDataSize;
+ FtwHeader->HeaderAllocated = FTW_VALID_STATE;
Status = WriteWorkSpaceData (
FtwDevice->FtwFvBlock,
@@ -133,36 +138,36 @@ FtwAllocate (
FtwDevice->FtwWorkSpaceLba,
FtwDevice->FtwWorkSpaceBase + Offset,
sizeof (EFI_FAULT_TOLERANT_WRITE_HEADER),
- (UINT8 *) FtwHeader
+ (UINT8 *)FtwHeader
);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Update Header->WriteAllocated as VALID
//
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + Offset,
- WRITES_ALLOCATED
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + Offset,
+ WRITES_ALLOCATED
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
DEBUG (
(DEBUG_INFO,
- "Ftw: Allocate() success, Caller:%g, # %d\n",
- CallerId,
- NumberOfWrites)
+ "Ftw: Allocate() success, Caller:%g, # %d\n",
+ CallerId,
+ NumberOfWrites)
);
return EFI_SUCCESS;
}
-
/**
Write a record with fault tolerant manner.
Since the content has already backuped in spare block, the write is
@@ -179,17 +184,17 @@ FtwAllocate (
**/
EFI_STATUS
FtwWriteRecord (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb,
- IN UINTN BlockSize
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb,
+ IN UINTN BlockSize
)
{
- EFI_STATUS Status;
- EFI_FTW_DEVICE *FtwDevice;
- EFI_FAULT_TOLERANT_WRITE_HEADER *Header;
- EFI_FAULT_TOLERANT_WRITE_RECORD *Record;
- UINTN Offset;
- UINTN NumberOfWriteBlocks;
+ EFI_STATUS Status;
+ EFI_FTW_DEVICE *FtwDevice;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *Header;
+ EFI_FAULT_TOLERANT_WRITE_RECORD *Record;
+ UINTN Offset;
+ UINTN NumberOfWriteBlocks;
FtwDevice = FTW_CONTEXT_FROM_THIS (This);
@@ -197,8 +202,8 @@ FtwWriteRecord (
// Spare Complete but Destination not complete,
// Recover the target block with the spare block.
//
- Header = FtwDevice->FtwLastWriteHeader;
- Record = FtwDevice->FtwLastWriteRecord;
+ Header = FtwDevice->FtwLastWriteHeader;
+ Record = FtwDevice->FtwLastWriteRecord;
//
// IF target block is working block, THEN Flush Spare Block To Working Block;
@@ -209,14 +214,14 @@ FtwWriteRecord (
// If target block is working block,
// it also need to set SPARE_COMPLETED to spare block.
//
- Offset = (UINT8 *) Record - FtwDevice->FtwWorkSpace;
+ Offset = (UINT8 *)Record - FtwDevice->FtwWorkSpace;
Status = FtwUpdateFvState (
- FtwDevice->FtwBackupFvb,
- FtwDevice->SpareBlockSize,
- FtwDevice->FtwSpareLba + FtwDevice->FtwWorkSpaceLbaInSpare,
- FtwDevice->FtwWorkSpaceBaseInSpare + Offset,
- SPARE_COMPLETED
- );
+ FtwDevice->FtwBackupFvb,
+ FtwDevice->SpareBlockSize,
+ FtwDevice->FtwSpareLba + FtwDevice->FtwWorkSpaceLbaInSpare,
+ FtwDevice->FtwWorkSpaceBaseInSpare + Offset,
+ SPARE_COMPLETED
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -231,24 +236,25 @@ FtwWriteRecord (
//
// Update blocks other than working block or boot block
//
- NumberOfWriteBlocks = FTW_BLOCKS ((UINTN) (Record->Offset + Record->Length), BlockSize);
- Status = FlushSpareBlockToTargetBlock (FtwDevice, Fvb, Record->Lba, BlockSize, NumberOfWriteBlocks);
+ NumberOfWriteBlocks = FTW_BLOCKS ((UINTN)(Record->Offset + Record->Length), BlockSize);
+ Status = FlushSpareBlockToTargetBlock (FtwDevice, Fvb, Record->Lba, BlockSize, NumberOfWriteBlocks);
}
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Record the DestionationComplete in record
//
- Offset = (UINT8 *) Record - FtwDevice->FtwWorkSpace;
+ Offset = (UINT8 *)Record - FtwDevice->FtwWorkSpace;
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + Offset,
- DEST_COMPLETED
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + Offset,
+ DEST_COMPLETED
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -260,14 +266,14 @@ FtwWriteRecord (
// set the complete flag of write header.
//
if (IsLastRecordOfWrites (Header, Record)) {
- Offset = (UINT8 *) Header - FtwDevice->FtwWorkSpace;
+ Offset = (UINT8 *)Header - FtwDevice->FtwWorkSpace;
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + Offset,
- WRITES_COMPLETED
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + Offset,
+ WRITES_COMPLETED
+ );
Header->Complete = FTW_VALID_STATE;
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
@@ -305,13 +311,13 @@ FtwWriteRecord (
EFI_STATUS
EFIAPI
FtwWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- IN VOID *PrivateData,
- IN EFI_HANDLE FvBlockHandle,
- IN VOID *Buffer
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ IN VOID *PrivateData,
+ IN EFI_HANDLE FvBlockHandle,
+ IN VOID *Buffer
)
{
EFI_STATUS Status;
@@ -335,15 +341,15 @@ FtwWrite (
FtwDevice = FTW_CONTEXT_FROM_THIS (This);
- Status = WorkSpaceRefresh (FtwDevice);
+ Status = WorkSpaceRefresh (FtwDevice);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
- Header = FtwDevice->FtwLastWriteHeader;
- Record = FtwDevice->FtwLastWriteRecord;
+ Header = FtwDevice->FtwLastWriteHeader;
+ Record = FtwDevice->FtwLastWriteRecord;
- if (IsErasedFlashBuffer ((UINT8 *) Header, sizeof (EFI_FAULT_TOLERANT_WRITE_HEADER))) {
+ if (IsErasedFlashBuffer ((UINT8 *)Header, sizeof (EFI_FAULT_TOLERANT_WRITE_HEADER))) {
if (PrivateData == NULL) {
//
// Ftw Write Header is not allocated.
@@ -367,7 +373,7 @@ FtwWrite (
//
// If Record is out of the range of Header, return access denied.
//
- if (((UINTN) Record - (UINTN) Header) > FTW_WRITE_TOTAL_SIZE (Header->NumberOfWrites - 1, Header->PrivateDataSize)) {
+ if (((UINTN)Record - (UINTN)Header) > FTW_WRITE_TOTAL_SIZE (Header->NumberOfWrites - 1, Header->PrivateDataSize)) {
return EFI_ACCESS_DENIED;
}
@@ -430,19 +436,20 @@ FtwWrite (
//
ASSERT ((BlockSize == FtwDevice->SpareBlockSize) && (NumberOfWriteBlocks == FtwDevice->NumberOfSpareBlock));
}
+
//
// Write the record to the work space.
//
- Record->Lba = Lba;
- Record->Offset = Offset;
- Record->Length = Length;
- Record->RelativeOffset = (INT64) (FvbPhysicalAddress + (UINTN) Lba * BlockSize) - (INT64) FtwDevice->SpareAreaAddress;
+ Record->Lba = Lba;
+ Record->Offset = Offset;
+ Record->Length = Length;
+ Record->RelativeOffset = (INT64)(FvbPhysicalAddress + (UINTN)Lba * BlockSize) - (INT64)FtwDevice->SpareAreaAddress;
if (PrivateData != NULL) {
- CopyMem ((Record + 1), PrivateData, (UINTN) Header->PrivateDataSize);
+ CopyMem ((Record + 1), PrivateData, (UINTN)Header->PrivateDataSize);
}
- MyOffset = (UINT8 *) Record - FtwDevice->FtwWorkSpace;
- MyLength = FTW_RECORD_SIZE (Header->PrivateDataSize);
+ MyOffset = (UINT8 *)Record - FtwDevice->FtwWorkSpace;
+ MyLength = FTW_RECORD_SIZE (Header->PrivateDataSize);
Status = WriteWorkSpaceData (
FtwDevice->FtwFvBlock,
@@ -450,29 +457,31 @@ FtwWrite (
FtwDevice->FtwWorkSpaceLba,
FtwDevice->FtwWorkSpaceBase + MyOffset,
MyLength,
- (UINT8 *) Record
+ (UINT8 *)Record
);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Record has written to working block, then do the data.
//
//
// Allocate a memory buffer
//
- MyBufferSize = WriteLength;
- MyBuffer = AllocatePool (MyBufferSize);
+ MyBufferSize = WriteLength;
+ MyBuffer = AllocatePool (MyBufferSize);
if (MyBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Read all original data from target block to memory buffer
//
Ptr = MyBuffer;
for (Index = 0; Index < NumberOfWriteBlocks; Index += 1) {
- MyLength = BlockSize;
- Status = Fvb->Read (Fvb, Lba + Index, 0, &MyLength, Ptr);
+ MyLength = BlockSize;
+ Status = Fvb->Read (Fvb, Lba + Index, 0, &MyLength, Ptr);
if (EFI_ERROR (Status)) {
FreePool (MyBuffer);
return EFI_ABORTED;
@@ -480,6 +489,7 @@ FtwWrite (
Ptr += MyLength;
}
+
//
// Overwrite the updating range data with
// the input buffer content
@@ -500,13 +510,13 @@ FtwWrite (
Ptr = SpareBuffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
MyLength = FtwDevice->SpareBlockSize;
- Status = FtwDevice->FtwBackupFvb->Read (
- FtwDevice->FtwBackupFvb,
- FtwDevice->FtwSpareLba + Index,
- 0,
- &MyLength,
- Ptr
- );
+ Status = FtwDevice->FtwBackupFvb->Read (
+ FtwDevice->FtwBackupFvb,
+ FtwDevice->FtwSpareLba + Index,
+ 0,
+ &MyLength,
+ Ptr
+ );
if (EFI_ERROR (Status)) {
FreePool (MyBuffer);
FreePool (SpareBuffer);
@@ -515,23 +525,26 @@ FtwWrite (
Ptr += MyLength;
}
+
//
// Write the memory buffer to spare block
// Do not assume Spare Block and Target Block have same block size
//
- Status = FtwEraseSpareBlock (FtwDevice);
+ Status = FtwEraseSpareBlock (FtwDevice);
if (EFI_ERROR (Status)) {
FreePool (MyBuffer);
FreePool (SpareBuffer);
return EFI_ABORTED;
}
- Ptr = MyBuffer;
+
+ Ptr = MyBuffer;
for (Index = 0; MyBufferSize > 0; Index += 1) {
if (MyBufferSize > FtwDevice->SpareBlockSize) {
MyLength = FtwDevice->SpareBlockSize;
} else {
MyLength = MyBufferSize;
}
+
Status = FtwDevice->FtwBackupFvb->Write (
FtwDevice->FtwBackupFvb,
FtwDevice->FtwSpareLba + Index,
@@ -545,9 +558,10 @@ FtwWrite (
return EFI_ABORTED;
}
- Ptr += MyLength;
+ Ptr += MyLength;
MyBufferSize -= MyLength;
}
+
//
// Free MyBuffer
//
@@ -556,14 +570,14 @@ FtwWrite (
//
// Set the SpareComplete in the FTW record,
//
- MyOffset = (UINT8 *) Record - FtwDevice->FtwWorkSpace;
- Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + MyOffset,
- SPARE_COMPLETED
- );
+ MyOffset = (UINT8 *)Record - FtwDevice->FtwWorkSpace;
+ Status = FtwUpdateFvState (
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + MyOffset,
+ SPARE_COMPLETED
+ );
if (EFI_ERROR (Status)) {
FreePool (SpareBuffer);
return EFI_ABORTED;
@@ -580,24 +594,26 @@ FtwWrite (
FreePool (SpareBuffer);
return EFI_ABORTED;
}
+
//
// Restore spare backup buffer into spare block , if no failure happened during FtwWrite.
//
- Status = FtwEraseSpareBlock (FtwDevice);
+ Status = FtwEraseSpareBlock (FtwDevice);
if (EFI_ERROR (Status)) {
FreePool (SpareBuffer);
return EFI_ABORTED;
}
- Ptr = SpareBuffer;
+
+ Ptr = SpareBuffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
MyLength = FtwDevice->SpareBlockSize;
- Status = FtwDevice->FtwBackupFvb->Write (
- FtwDevice->FtwBackupFvb,
- FtwDevice->FtwSpareLba + Index,
- 0,
- &MyLength,
- Ptr
- );
+ Status = FtwDevice->FtwBackupFvb->Write (
+ FtwDevice->FtwBackupFvb,
+ FtwDevice->FtwSpareLba + Index,
+ 0,
+ &MyLength,
+ Ptr
+ );
if (EFI_ERROR (Status)) {
FreePool (SpareBuffer);
return EFI_ABORTED;
@@ -605,6 +621,7 @@ FtwWrite (
Ptr += MyLength;
}
+
//
// All success.
//
@@ -612,10 +629,10 @@ FtwWrite (
DEBUG (
(DEBUG_INFO,
- "Ftw: Write() success, (Lba:Offset)=(%lx:0x%x), Length: 0x%x\n",
- Lba,
- Offset,
- Length)
+ "Ftw: Write() success, (Lba:Offset)=(%lx:0x%x), Length: 0x%x\n",
+ Lba,
+ Offset,
+ Length)
);
return EFI_SUCCESS;
@@ -638,8 +655,8 @@ FtwWrite (
EFI_STATUS
EFIAPI
FtwRestart (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_HANDLE FvBlockHandle
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_HANDLE FvBlockHandle
)
{
EFI_STATUS Status;
@@ -652,13 +669,13 @@ FtwRestart (
FtwDevice = FTW_CONTEXT_FROM_THIS (This);
- Status = WorkSpaceRefresh (FtwDevice);
+ Status = WorkSpaceRefresh (FtwDevice);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
- Header = FtwDevice->FtwLastWriteHeader;
- Record = FtwDevice->FtwLastWriteRecord;
+ Header = FtwDevice->FtwLastWriteHeader;
+ Record = FtwDevice->FtwLastWriteRecord;
//
// Spare Complete but Destination not complete,
@@ -731,7 +748,7 @@ FtwRestart (
EFI_STATUS
EFIAPI
FtwAbort (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
)
{
EFI_STATUS Status;
@@ -740,7 +757,7 @@ FtwAbort (
FtwDevice = FTW_CONTEXT_FROM_THIS (This);
- Status = WorkSpaceRefresh (FtwDevice);
+ Status = WorkSpaceRefresh (FtwDevice);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -752,17 +769,18 @@ FtwAbort (
if (FtwDevice->FtwLastWriteHeader->Complete == FTW_VALID_STATE) {
return EFI_NOT_FOUND;
}
+
//
// Update the complete state of the header as VALID and abort.
//
- Offset = (UINT8 *) FtwDevice->FtwLastWriteHeader - FtwDevice->FtwWorkSpace;
+ Offset = (UINT8 *)FtwDevice->FtwLastWriteHeader - FtwDevice->FtwWorkSpace;
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + Offset,
- WRITES_COMPLETED
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + Offset,
+ WRITES_COMPLETED
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -799,34 +817,34 @@ FtwAbort (
EFI_STATUS
EFIAPI
FtwGetLastWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT EFI_GUID *CallerId,
- OUT EFI_LBA *Lba,
- OUT UINTN *Offset,
- OUT UINTN *Length,
- IN OUT UINTN *PrivateDataSize,
- OUT VOID *PrivateData,
- OUT BOOLEAN *Complete
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT EFI_GUID *CallerId,
+ OUT EFI_LBA *Lba,
+ OUT UINTN *Offset,
+ OUT UINTN *Length,
+ IN OUT UINTN *PrivateDataSize,
+ OUT VOID *PrivateData,
+ OUT BOOLEAN *Complete
)
{
- EFI_STATUS Status;
- EFI_FTW_DEVICE *FtwDevice;
- EFI_FAULT_TOLERANT_WRITE_HEADER *Header;
- EFI_FAULT_TOLERANT_WRITE_RECORD *Record;
+ EFI_STATUS Status;
+ EFI_FTW_DEVICE *FtwDevice;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *Header;
+ EFI_FAULT_TOLERANT_WRITE_RECORD *Record;
- if (!FeaturePcdGet(PcdFullFtwServiceEnable)) {
+ if (!FeaturePcdGet (PcdFullFtwServiceEnable)) {
return EFI_UNSUPPORTED;
}
FtwDevice = FTW_CONTEXT_FROM_THIS (This);
- Status = WorkSpaceRefresh (FtwDevice);
+ Status = WorkSpaceRefresh (FtwDevice);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
- Header = FtwDevice->FtwLastWriteHeader;
- Record = FtwDevice->FtwLastWriteRecord;
+ Header = FtwDevice->FtwLastWriteHeader;
+ Record = FtwDevice->FtwLastWriteRecord;
//
// If Header is incompleted and the last record has completed, then
@@ -835,12 +853,13 @@ FtwGetLastWrite (
if ((Header->Complete != FTW_VALID_STATE) &&
(Record->DestinationComplete == FTW_VALID_STATE) &&
IsLastRecordOfWrites (Header, Record)
- ) {
-
+ )
+ {
Status = FtwAbort (This);
*Complete = TRUE;
return EFI_NOT_FOUND;
}
+
//
// If there is no write header/record, return not found.
//
@@ -848,6 +867,7 @@ FtwGetLastWrite (
*Complete = TRUE;
return EFI_NOT_FOUND;
}
+
//
// If this record SpareComplete has not set, then it can not restart.
//
@@ -858,6 +878,7 @@ FtwGetLastWrite (
*Complete = TRUE;
return EFI_NOT_FOUND;
}
+
ASSERT (Record != NULL);
}
@@ -866,16 +887,16 @@ FtwGetLastWrite (
//
CopyMem (CallerId, &Header->CallerId, sizeof (EFI_GUID));
*Lba = Record->Lba;
- *Offset = (UINTN) Record->Offset;
- *Length = (UINTN) Record->Length;
- *Complete = (BOOLEAN) (Record->DestinationComplete == FTW_VALID_STATE);
+ *Offset = (UINTN)Record->Offset;
+ *Length = (UINTN)Record->Length;
+ *Complete = (BOOLEAN)(Record->DestinationComplete == FTW_VALID_STATE);
if (*PrivateDataSize < Header->PrivateDataSize) {
- *PrivateDataSize = (UINTN) Header->PrivateDataSize;
- PrivateData = NULL;
- Status = EFI_BUFFER_TOO_SMALL;
+ *PrivateDataSize = (UINTN)Header->PrivateDataSize;
+ PrivateData = NULL;
+ Status = EFI_BUFFER_TOO_SMALL;
} else {
- *PrivateDataSize = (UINTN) Header->PrivateDataSize;
+ *PrivateDataSize = (UINTN)Header->PrivateDataSize;
CopyMem (PrivateData, Record + 1, *PrivateDataSize);
Status = EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h
index fe1c9f3..c14e47b 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h
@@ -32,18 +32,18 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
#define FTW_ERASE_POLARITY 1
-#define FTW_ERASED_BYTE ((UINT8) (255))
-#define FTW_POLARITY_REVERT ((UINT8) (255))
+#define FTW_ERASED_BYTE ((UINT8) (255))
+#define FTW_POLARITY_REVERT ((UINT8) (255))
#define HEADER_ALLOCATED 0x1
#define WRITES_ALLOCATED 0x2
#define WRITES_COMPLETED 0x4
-#define BOOT_BLOCK_UPDATE 0x1
-#define SPARE_COMPLETED 0x2
-#define DEST_COMPLETED 0x4
+#define BOOT_BLOCK_UPDATE 0x1
+#define SPARE_COMPLETED 0x2
+#define DEST_COMPLETED 0x4
-#define FTW_BLOCKS(Length, BlockSize) ((UINTN) ((Length) / (BlockSize) + (((Length) & ((BlockSize) - 1)) ? 1 : 0)))
+#define FTW_BLOCKS(Length, BlockSize) ((UINTN) ((Length) / (BlockSize) + (((Length) & ((BlockSize) - 1)) ? 1 : 0)))
#define FTW_DEVICE_SIGNATURE SIGNATURE_32 ('F', 'T', 'W', 'D')
@@ -51,31 +51,31 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// EFI Fault tolerant protocol private data structure
//
typedef struct {
- UINTN Signature;
- EFI_HANDLE Handle;
- EFI_FAULT_TOLERANT_WRITE_PROTOCOL FtwInstance;
- EFI_PHYSICAL_ADDRESS WorkSpaceAddress; // Base address of working space range in flash.
- EFI_PHYSICAL_ADDRESS SpareAreaAddress; // Base address of spare range in flash.
- UINTN WorkSpaceLength; // Size of working space range in flash.
- UINTN NumberOfWorkSpaceBlock; // Number of the blocks in work block for work space.
- UINTN WorkBlockSize; // Block size in bytes of the work blocks in flash
- UINTN SpareAreaLength; // Size of spare range in flash.
- UINTN NumberOfSpareBlock; // Number of the blocks in spare block.
- UINTN SpareBlockSize; // Block size in bytes of the spare blocks in flash
- EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *FtwWorkSpaceHeader;// Pointer to Working Space Header in memory buffer
- EFI_FAULT_TOLERANT_WRITE_HEADER *FtwLastWriteHeader;// Pointer to last record header in memory buffer
- EFI_FAULT_TOLERANT_WRITE_RECORD *FtwLastWriteRecord;// Pointer to last record in memory buffer
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FtwFvBlock; // FVB of working block
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FtwBackupFvb; // FVB of spare block
- EFI_LBA FtwSpareLba; // Start LBA of spare block
- EFI_LBA FtwWorkBlockLba; // Start LBA of working block that contains working space in its last block.
- UINTN NumberOfWorkBlock; // Number of the blocks in work block.
- EFI_LBA FtwWorkSpaceLba; // Start LBA of working space
- UINTN FtwWorkSpaceBase; // Offset into the FtwWorkSpaceLba block.
- UINTN FtwWorkSpaceSize; // Size of working space range that stores write record.
- EFI_LBA FtwWorkSpaceLbaInSpare; // Start LBA of working space in spare block.
- UINTN FtwWorkSpaceBaseInSpare;// Offset into the FtwWorkSpaceLbaInSpare block.
- UINT8 *FtwWorkSpace; // Point to Work Space in memory buffer
+ UINTN Signature;
+ EFI_HANDLE Handle;
+ EFI_FAULT_TOLERANT_WRITE_PROTOCOL FtwInstance;
+ EFI_PHYSICAL_ADDRESS WorkSpaceAddress; // Base address of working space range in flash.
+ EFI_PHYSICAL_ADDRESS SpareAreaAddress; // Base address of spare range in flash.
+ UINTN WorkSpaceLength; // Size of working space range in flash.
+ UINTN NumberOfWorkSpaceBlock; // Number of the blocks in work block for work space.
+ UINTN WorkBlockSize; // Block size in bytes of the work blocks in flash
+ UINTN SpareAreaLength; // Size of spare range in flash.
+ UINTN NumberOfSpareBlock; // Number of the blocks in spare block.
+ UINTN SpareBlockSize; // Block size in bytes of the spare blocks in flash
+ EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *FtwWorkSpaceHeader; // Pointer to Working Space Header in memory buffer
+ EFI_FAULT_TOLERANT_WRITE_HEADER *FtwLastWriteHeader; // Pointer to last record header in memory buffer
+ EFI_FAULT_TOLERANT_WRITE_RECORD *FtwLastWriteRecord; // Pointer to last record in memory buffer
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FtwFvBlock; // FVB of working block
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FtwBackupFvb; // FVB of spare block
+ EFI_LBA FtwSpareLba; // Start LBA of spare block
+ EFI_LBA FtwWorkBlockLba; // Start LBA of working block that contains working space in its last block.
+ UINTN NumberOfWorkBlock; // Number of the blocks in work block.
+ EFI_LBA FtwWorkSpaceLba; // Start LBA of working space
+ UINTN FtwWorkSpaceBase; // Offset into the FtwWorkSpaceLba block.
+ UINTN FtwWorkSpaceSize; // Size of working space range that stores write record.
+ EFI_LBA FtwWorkSpaceLbaInSpare; // Start LBA of working space in spare block.
+ UINTN FtwWorkSpaceBaseInSpare; // Offset into the FtwWorkSpaceLbaInSpare block.
+ UINT8 *FtwWorkSpace; // Point to Work Space in memory buffer
//
// Following a buffer of FtwWorkSpace[FTW_WORK_SPACE_SIZE],
// Allocated with EFI_FTW_DEVICE.
@@ -87,6 +87,7 @@ typedef struct {
//
// Driver entry point
//
+
/**
This function is the entry point of the Fault Tolerant Write driver.
@@ -103,8 +104,8 @@ typedef struct {
EFI_STATUS
EFIAPI
InitializeFaultTolerantWrite (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
//
@@ -125,8 +126,8 @@ InitializeFaultTolerantWrite (
EFI_STATUS
EFIAPI
FtwGetMaxBlockSize (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT UINTN *BlockSize
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT UINTN *BlockSize
);
/**
@@ -153,10 +154,10 @@ FtwGetMaxBlockSize (
EFI_STATUS
EFIAPI
FtwAllocate (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_GUID *CallerId,
- IN UINTN PrivateDataSize,
- IN UINTN NumberOfWrites
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_GUID *CallerId,
+ IN UINTN PrivateDataSize,
+ IN UINTN NumberOfWrites
);
/**
@@ -188,13 +189,13 @@ FtwAllocate (
EFI_STATUS
EFIAPI
FtwWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- IN VOID *PrivateData,
- IN EFI_HANDLE FvBlockHandle,
- IN VOID *Buffer
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ IN VOID *PrivateData,
+ IN EFI_HANDLE FvBlockHandle,
+ IN VOID *Buffer
);
/**
@@ -214,8 +215,8 @@ FtwWrite (
EFI_STATUS
EFIAPI
FtwRestart (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_HANDLE FvBlockHandle
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_HANDLE FvBlockHandle
);
/**
@@ -231,7 +232,7 @@ FtwRestart (
EFI_STATUS
EFIAPI
FtwAbort (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
);
/**
@@ -260,14 +261,14 @@ FtwAbort (
EFI_STATUS
EFIAPI
FtwGetLastWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT EFI_GUID *CallerId,
- OUT EFI_LBA *Lba,
- OUT UINTN *Offset,
- OUT UINTN *Length,
- IN OUT UINTN *PrivateDataSize,
- OUT VOID *PrivateData,
- OUT BOOLEAN *Complete
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT EFI_GUID *CallerId,
+ OUT EFI_LBA *Lba,
+ OUT UINTN *Offset,
+ OUT UINTN *Length,
+ IN OUT UINTN *PrivateDataSize,
+ OUT VOID *PrivateData,
+ OUT BOOLEAN *Complete
);
/**
@@ -289,7 +290,7 @@ FtwGetLastWrite (
**/
EFI_STATUS
FtwEraseSpareBlock (
- IN EFI_FTW_DEVICE *FtwDevice
+ IN EFI_FTW_DEVICE *FtwDevice
);
/**
@@ -391,7 +392,7 @@ FlushSpareBlockToTargetBlock (
**/
EFI_STATUS
FlushSpareBlockToWorkingBlock (
- EFI_FTW_DEVICE *FtwDevice
+ EFI_FTW_DEVICE *FtwDevice
);
/**
@@ -422,7 +423,7 @@ FlushSpareBlockToWorkingBlock (
**/
EFI_STATUS
FlushSpareBlockToBootBlock (
- EFI_FTW_DEVICE *FtwDevice
+ EFI_FTW_DEVICE *FtwDevice
);
/**
@@ -489,8 +490,8 @@ FtwGetLastWriteHeader (
**/
EFI_STATUS
FtwGetLastWriteRecord (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwWriteHeader,
- OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwWriteRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwWriteHeader,
+ OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwWriteRecord
);
/**
@@ -505,8 +506,8 @@ FtwGetLastWriteRecord (
**/
BOOLEAN
IsFirstRecordOfWrites (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
- IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
+ IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
);
/**
@@ -523,8 +524,8 @@ IsFirstRecordOfWrites (
**/
BOOLEAN
IsLastRecordOfWrites (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
- IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
+ IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
);
/**
@@ -539,8 +540,8 @@ IsLastRecordOfWrites (
**/
EFI_STATUS
GetPreviousRecordOfWrites (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
- IN OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
+ IN OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwRecord
);
/**
@@ -555,9 +556,10 @@ GetPreviousRecordOfWrites (
**/
BOOLEAN
IsErasedFlashBuffer (
- IN UINT8 *Buffer,
- IN UINTN BufferSize
+ IN UINT8 *Buffer,
+ IN UINTN BufferSize
);
+
/**
Initialize a work space when there is no work space.
@@ -569,8 +571,9 @@ IsErasedFlashBuffer (
**/
EFI_STATUS
InitWorkSpaceHeader (
- IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
+ IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
);
+
/**
Read from working block to refresh the work space in memory.
@@ -584,6 +587,7 @@ EFI_STATUS
WorkSpaceRefresh (
IN EFI_FTW_DEVICE *FtwDevice
);
+
/**
Check to see if it is a valid work space.
@@ -596,8 +600,9 @@ WorkSpaceRefresh (
**/
BOOLEAN
IsValidWorkSpace (
- IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
+ IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
);
+
/**
Reclaim the work space on the working block.
@@ -629,8 +634,8 @@ FtwReclaimWorkSpace (
**/
EFI_HANDLE
GetFvbByAddress (
- IN EFI_PHYSICAL_ADDRESS Address,
- OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock
+ IN EFI_PHYSICAL_ADDRESS Address,
+ OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock
);
/**
@@ -645,7 +650,7 @@ GetFvbByAddress (
**/
EFI_STATUS
FtwGetSarProtocol (
- OUT VOID **SarProtocol
+ OUT VOID **SarProtocol
);
/**
@@ -665,11 +670,10 @@ FtwGetSarProtocol (
**/
EFI_STATUS
GetFvbCountAndBuffer (
- OUT UINTN *NumberHandles,
- OUT EFI_HANDLE **Buffer
+ OUT UINTN *NumberHandles,
+ OUT EFI_HANDLE **Buffer
);
-
/**
Allocate private data for FTW driver and initialize it.
@@ -682,10 +686,9 @@ GetFvbCountAndBuffer (
**/
EFI_STATUS
InitFtwDevice (
- OUT EFI_FTW_DEVICE **FtwData
+ OUT EFI_FTW_DEVICE **FtwData
);
-
/**
Initialization for Fault Tolerant Write is done in this handler.
@@ -697,7 +700,7 @@ InitFtwDevice (
**/
EFI_STATUS
InitFtwProtocol (
- IN OUT EFI_FTW_DEVICE *FtwDevice
+ IN OUT EFI_FTW_DEVICE *FtwDevice
);
/**
@@ -727,12 +730,12 @@ InitializeLocalWorkSpaceHeader (
**/
EFI_STATUS
ReadWorkSpaceData (
- IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
- IN UINTN BlockSize,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- OUT UINT8 *Buffer
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
+ IN UINTN BlockSize,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ OUT UINT8 *Buffer
);
/**
@@ -751,12 +754,12 @@ ReadWorkSpaceData (
**/
EFI_STATUS
WriteWorkSpaceData (
- IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
- IN UINTN BlockSize,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- IN UINT8 *Buffer
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
+ IN UINTN BlockSize,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ IN UINT8 *Buffer
);
/**
@@ -777,8 +780,8 @@ WriteWorkSpaceData (
**/
UINT32
FtwCalculateCrc32 (
- IN VOID *Buffer,
- IN UINTN Length
+ IN VOID *Buffer,
+ IN UINTN Length
);
#endif
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c
index de38ea0..965dd39 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c
@@ -47,8 +47,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/UefiBootServicesTableLib.h>
#include "FaultTolerantWrite.h"
-VOID *mFvbRegistration = NULL;
-
+VOID *mFvbRegistration = NULL;
/**
Retrieve the FVB protocol interface by HANDLE.
@@ -74,7 +73,7 @@ FtwGetFvbByHandle (
return gBS->HandleProtocol (
FvBlockHandle,
&gEfiFirmwareVolumeBlockProtocolGuid,
- (VOID **) FvBlock
+ (VOID **)FvBlock
);
}
@@ -90,10 +89,10 @@ FtwGetFvbByHandle (
**/
EFI_STATUS
FtwGetSarProtocol (
- OUT VOID **SarProtocol
+ OUT VOID **SarProtocol
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate Swap Address Range protocol
@@ -123,11 +122,11 @@ FtwGetSarProtocol (
**/
EFI_STATUS
GetFvbCountAndBuffer (
- OUT UINTN *NumberHandles,
- OUT EFI_HANDLE **Buffer
+ OUT UINTN *NumberHandles,
+ OUT EFI_HANDLE **Buffer
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate all handles of Fvb protocol
@@ -142,7 +141,6 @@ GetFvbCountAndBuffer (
return Status;
}
-
/**
Firmware Volume Block Protocol notification event handler.
@@ -153,13 +151,13 @@ GetFvbCountAndBuffer (
VOID
EFIAPI
FvbNotificationEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
- EFI_FTW_DEVICE *FtwDevice;
+ EFI_STATUS Status;
+ EFI_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
+ EFI_FTW_DEVICE *FtwDevice;
//
// Just return to avoid installing FaultTolerantWriteProtocol again
@@ -168,19 +166,19 @@ FvbNotificationEvent (
Status = gBS->LocateProtocol (
&gEfiFaultTolerantWriteProtocolGuid,
NULL,
- (VOID **) &FtwProtocol
+ (VOID **)&FtwProtocol
);
if (!EFI_ERROR (Status)) {
- return ;
+ return;
}
//
// Found proper FVB protocol and initialize FtwDevice for protocol installation
//
FtwDevice = (EFI_FTW_DEVICE *)Context;
- Status = InitFtwProtocol (FtwDevice);
- if (EFI_ERROR(Status)) {
- return ;
+ Status = InitFtwProtocol (FtwDevice);
+ if (EFI_ERROR (Status)) {
+ return;
}
//
@@ -200,7 +198,6 @@ FvbNotificationEvent (
return;
}
-
/**
This function is the entry point of the Fault Tolerant Write driver.
@@ -215,12 +212,12 @@ FvbNotificationEvent (
EFI_STATUS
EFIAPI
FaultTolerantWriteInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_FTW_DEVICE *FtwDevice;
+ EFI_STATUS Status;
+ EFI_FTW_DEVICE *FtwDevice;
FtwDevice = NULL;
@@ -228,7 +225,7 @@ FaultTolerantWriteInitialize (
// Allocate private data structure for FTW protocol and do some initialization
//
Status = InitFtwDevice (&FtwDevice);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -263,12 +260,12 @@ FaultTolerantWriteInitialize (
**/
UINT32
FtwCalculateCrc32 (
- IN VOID *Buffer,
- IN UINTN Length
+ IN VOID *Buffer,
+ IN UINTN Length
)
{
- EFI_STATUS Status;
- UINT32 ReturnValue;
+ EFI_STATUS Status;
+ UINT32 ReturnValue;
Status = gBS->CalculateCrc32 (Buffer, Length, &ReturnValue);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c
index de7544e..8c2d209 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c
@@ -56,13 +56,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "FaultTolerantWriteSmmCommon.h"
#include <Protocol/MmEndOfDxe.h>
-VOID *mFvbRegistration = NULL;
-EFI_FTW_DEVICE *mFtwDevice = NULL;
+VOID *mFvbRegistration = NULL;
+EFI_FTW_DEVICE *mFtwDevice = NULL;
///
/// The flag to indicate whether the platform has left the DXE phase of execution.
///
-BOOLEAN mEndOfDxe = FALSE;
+BOOLEAN mEndOfDxe = FALSE;
/**
Retrieve the SMM FVB protocol interface by HANDLE.
@@ -88,7 +88,7 @@ FtwGetFvbByHandle (
return gMmst->MmHandleProtocol (
FvBlockHandle,
&gEfiSmmFirmwareVolumeBlockProtocolGuid,
- (VOID **) FvBlock
+ (VOID **)FvBlock
);
}
@@ -104,10 +104,10 @@ FtwGetFvbByHandle (
**/
EFI_STATUS
FtwGetSarProtocol (
- OUT VOID **SarProtocol
+ OUT VOID **SarProtocol
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate Smm Swap Address Range protocol
@@ -137,12 +137,12 @@ FtwGetSarProtocol (
**/
EFI_STATUS
GetFvbCountAndBuffer (
- OUT UINTN *NumberHandles,
- OUT EFI_HANDLE **Buffer
+ OUT UINTN *NumberHandles,
+ OUT EFI_HANDLE **Buffer
)
{
- EFI_STATUS Status;
- UINTN BufferSize;
+ EFI_STATUS Status;
+ UINTN BufferSize;
if ((NumberHandles == NULL) || (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -151,14 +151,14 @@ GetFvbCountAndBuffer (
BufferSize = 0;
*NumberHandles = 0;
*Buffer = NULL;
- Status = gMmst->MmLocateHandle (
- ByProtocol,
- &gEfiSmmFirmwareVolumeBlockProtocolGuid,
- NULL,
- &BufferSize,
- *Buffer
- );
- if (EFI_ERROR(Status) && Status != EFI_BUFFER_TOO_SMALL) {
+ Status = gMmst->MmLocateHandle (
+ ByProtocol,
+ &gEfiSmmFirmwareVolumeBlockProtocolGuid,
+ NULL,
+ &BufferSize,
+ *Buffer
+ );
+ if (EFI_ERROR (Status) && (Status != EFI_BUFFER_TOO_SMALL)) {
return EFI_NOT_FOUND;
}
@@ -175,8 +175,8 @@ GetFvbCountAndBuffer (
*Buffer
);
- *NumberHandles = BufferSize / sizeof(EFI_HANDLE);
- if (EFI_ERROR(Status)) {
+ *NumberHandles = BufferSize / sizeof (EFI_HANDLE);
+ if (EFI_ERROR (Status)) {
*NumberHandles = 0;
FreePool (*Buffer);
*Buffer = NULL;
@@ -185,7 +185,6 @@ GetFvbCountAndBuffer (
return Status;
}
-
/**
Get the handle of the SMM FVB protocol by the FVB base address and attributes.
@@ -199,9 +198,9 @@ GetFvbCountAndBuffer (
**/
EFI_STATUS
GetFvbByAddressAndAttribute (
- IN EFI_PHYSICAL_ADDRESS Address,
- IN EFI_FVB_ATTRIBUTES_2 Attributes,
- OUT EFI_HANDLE *SmmFvbHandle
+ IN EFI_PHYSICAL_ADDRESS Address,
+ IN EFI_FVB_ATTRIBUTES_2 Attributes,
+ OUT EFI_HANDLE *SmmFvbHandle
)
{
EFI_STATUS Status;
@@ -230,6 +229,7 @@ GetFvbByAddressAndAttribute (
if (EFI_ERROR (Status)) {
break;
}
+
//
// Compare the address.
//
@@ -237,8 +237,9 @@ GetFvbByAddressAndAttribute (
if (EFI_ERROR (Status)) {
continue;
}
+
if (Address != FvbBaseAddress) {
- continue;
+ continue;
}
//
@@ -248,8 +249,9 @@ GetFvbByAddressAndAttribute (
if (EFI_ERROR (Status)) {
continue;
}
+
if (Attributes != FvbAttributes) {
- continue;
+ continue;
}
//
@@ -293,31 +295,31 @@ GetFvbByAddressAndAttribute (
EFI_STATUS
EFIAPI
SmmFaultTolerantWriteHandler (
- IN EFI_HANDLE DispatchHandle,
- IN CONST VOID *RegisterContext,
- IN OUT VOID *CommBuffer,
- IN OUT UINTN *CommBufferSize
+ IN EFI_HANDLE DispatchHandle,
+ IN CONST VOID *RegisterContext,
+ IN OUT VOID *CommBuffer,
+ IN OUT UINTN *CommBufferSize
)
{
- EFI_STATUS Status;
- SMM_FTW_COMMUNICATE_FUNCTION_HEADER *SmmFtwFunctionHeader;
- SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *SmmGetMaxBlockSizeHeader;
- SMM_FTW_ALLOCATE_HEADER *SmmFtwAllocateHeader;
- SMM_FTW_WRITE_HEADER *SmmFtwWriteHeader;
- SMM_FTW_RESTART_HEADER *SmmFtwRestartHeader;
- SMM_FTW_GET_LAST_WRITE_HEADER *SmmFtwGetLastWriteHeader;
- VOID *PrivateData;
- EFI_HANDLE SmmFvbHandle;
- UINTN InfoSize;
- UINTN CommBufferPayloadSize;
- UINTN PrivateDataSize;
- UINTN Length;
- UINTN TempCommBufferSize;
+ EFI_STATUS Status;
+ SMM_FTW_COMMUNICATE_FUNCTION_HEADER *SmmFtwFunctionHeader;
+ SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *SmmGetMaxBlockSizeHeader;
+ SMM_FTW_ALLOCATE_HEADER *SmmFtwAllocateHeader;
+ SMM_FTW_WRITE_HEADER *SmmFtwWriteHeader;
+ SMM_FTW_RESTART_HEADER *SmmFtwRestartHeader;
+ SMM_FTW_GET_LAST_WRITE_HEADER *SmmFtwGetLastWriteHeader;
+ VOID *PrivateData;
+ EFI_HANDLE SmmFvbHandle;
+ UINTN InfoSize;
+ UINTN CommBufferPayloadSize;
+ UINTN PrivateDataSize;
+ UINTN Length;
+ UINTN TempCommBufferSize;
//
// If input is invalid, stop processing this SMI
//
- if (CommBuffer == NULL || CommBufferSize == NULL) {
+ if ((CommBuffer == NULL) || (CommBufferSize == NULL)) {
return EFI_SUCCESS;
}
@@ -327,6 +329,7 @@ SmmFaultTolerantWriteHandler (
DEBUG ((DEBUG_ERROR, "SmmFtwHandler: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
+
CommBufferPayloadSize = TempCommBufferSize - SMM_FTW_COMMUNICATE_HEADER_SIZE;
if (!FtwSmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) {
@@ -351,7 +354,8 @@ SmmFaultTolerantWriteHandler (
DEBUG ((DEBUG_ERROR, "GetMaxBlockSize: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- SmmGetMaxBlockSizeHeader = (SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *) SmmFtwFunctionHeader->Data;
+
+ SmmGetMaxBlockSizeHeader = (SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *)SmmFtwFunctionHeader->Data;
Status = FtwGetMaxBlockSize (
&mFtwDevice->FtwInstance,
@@ -364,13 +368,14 @@ SmmFaultTolerantWriteHandler (
DEBUG ((DEBUG_ERROR, "Allocate: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- SmmFtwAllocateHeader = (SMM_FTW_ALLOCATE_HEADER *) SmmFtwFunctionHeader->Data;
- Status = FtwAllocate (
- &mFtwDevice->FtwInstance,
- &SmmFtwAllocateHeader->CallerId,
- SmmFtwAllocateHeader->PrivateDataSize,
- SmmFtwAllocateHeader->NumberOfWrites
- );
+
+ SmmFtwAllocateHeader = (SMM_FTW_ALLOCATE_HEADER *)SmmFtwFunctionHeader->Data;
+ Status = FtwAllocate (
+ &mFtwDevice->FtwInstance,
+ &SmmFtwAllocateHeader->CallerId,
+ SmmFtwAllocateHeader->PrivateDataSize,
+ SmmFtwAllocateHeader->NumberOfWrites
+ );
break;
case FTW_FUNCTION_WRITE:
@@ -378,17 +383,20 @@ SmmFaultTolerantWriteHandler (
DEBUG ((DEBUG_ERROR, "Write: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- SmmFtwWriteHeader = (SMM_FTW_WRITE_HEADER *) SmmFtwFunctionHeader->Data;
- Length = SmmFtwWriteHeader->Length;
- PrivateDataSize = SmmFtwWriteHeader->PrivateDataSize;
+
+ SmmFtwWriteHeader = (SMM_FTW_WRITE_HEADER *)SmmFtwFunctionHeader->Data;
+ Length = SmmFtwWriteHeader->Length;
+ PrivateDataSize = SmmFtwWriteHeader->PrivateDataSize;
if (((UINTN)(~0) - Length < OFFSET_OF (SMM_FTW_WRITE_HEADER, Data)) ||
- ((UINTN)(~0) - PrivateDataSize < OFFSET_OF (SMM_FTW_WRITE_HEADER, Data) + Length)) {
+ ((UINTN)(~0) - PrivateDataSize < OFFSET_OF (SMM_FTW_WRITE_HEADER, Data) + Length))
+ {
//
// Prevent InfoSize overflow
//
Status = EFI_ACCESS_DENIED;
break;
}
+
InfoSize = OFFSET_OF (SMM_FTW_WRITE_HEADER, Data) + Length + PrivateDataSize;
//
@@ -405,6 +413,7 @@ SmmFaultTolerantWriteHandler (
} else {
PrivateData = (VOID *)&SmmFtwWriteHeader->Data[Length];
}
+
Status = GetFvbByAddressAndAttribute (
SmmFtwWriteHeader->FvbBaseAddress,
SmmFtwWriteHeader->FvbAttributes,
@@ -417,7 +426,7 @@ SmmFaultTolerantWriteHandler (
// calling into FtwWrite().
//
SpeculationBarrier ();
- Status = FtwWrite(
+ Status = FtwWrite (
&mFtwDevice->FtwInstance,
SmmFtwWriteHeader->Lba,
SmmFtwWriteHeader->Offset,
@@ -427,6 +436,7 @@ SmmFaultTolerantWriteHandler (
SmmFtwWriteHeader->Data
);
}
+
break;
case FTW_FUNCTION_RESTART:
@@ -434,15 +444,17 @@ SmmFaultTolerantWriteHandler (
DEBUG ((DEBUG_ERROR, "Restart: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- SmmFtwRestartHeader = (SMM_FTW_RESTART_HEADER *) SmmFtwFunctionHeader->Data;
- Status = GetFvbByAddressAndAttribute (
- SmmFtwRestartHeader->FvbBaseAddress,
- SmmFtwRestartHeader->FvbAttributes,
- &SmmFvbHandle
- );
+
+ SmmFtwRestartHeader = (SMM_FTW_RESTART_HEADER *)SmmFtwFunctionHeader->Data;
+ Status = GetFvbByAddressAndAttribute (
+ SmmFtwRestartHeader->FvbBaseAddress,
+ SmmFtwRestartHeader->FvbAttributes,
+ &SmmFvbHandle
+ );
if (!EFI_ERROR (Status)) {
Status = FtwRestart (&mFtwDevice->FtwInstance, SmmFvbHandle);
}
+
break;
case FTW_FUNCTION_ABORT:
@@ -454,15 +466,17 @@ SmmFaultTolerantWriteHandler (
DEBUG ((DEBUG_ERROR, "GetLastWrite: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- SmmFtwGetLastWriteHeader = (SMM_FTW_GET_LAST_WRITE_HEADER *) SmmFtwFunctionHeader->Data;
- PrivateDataSize = SmmFtwGetLastWriteHeader->PrivateDataSize;
- if ((UINTN)(~0) - PrivateDataSize < OFFSET_OF (SMM_FTW_GET_LAST_WRITE_HEADER, Data)){
+
+ SmmFtwGetLastWriteHeader = (SMM_FTW_GET_LAST_WRITE_HEADER *)SmmFtwFunctionHeader->Data;
+ PrivateDataSize = SmmFtwGetLastWriteHeader->PrivateDataSize;
+ if ((UINTN)(~0) - PrivateDataSize < OFFSET_OF (SMM_FTW_GET_LAST_WRITE_HEADER, Data)) {
//
// Prevent InfoSize overflow
//
Status = EFI_ACCESS_DENIED;
break;
}
+
InfoSize = OFFSET_OF (SMM_FTW_GET_LAST_WRITE_HEADER, Data) + PrivateDataSize;
//
@@ -496,7 +510,6 @@ SmmFaultTolerantWriteHandler (
return EFI_SUCCESS;
}
-
/**
SMM Firmware Volume Block Protocol notification event handler.
@@ -510,14 +523,14 @@ SmmFaultTolerantWriteHandler (
EFI_STATUS
EFIAPI
FvbNotificationEvent (
- IN CONST EFI_GUID *Protocol,
- IN VOID *Interface,
- IN EFI_HANDLE Handle
+ IN CONST EFI_GUID *Protocol,
+ IN VOID *Interface,
+ IN EFI_HANDLE Handle
)
{
- EFI_STATUS Status;
- EFI_SMM_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
- EFI_HANDLE SmmFtwHandle;
+ EFI_STATUS Status;
+ EFI_SMM_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
+ EFI_HANDLE SmmFtwHandle;
//
// Just return to avoid install SMM FaultTolerantWriteProtocol again
@@ -526,7 +539,7 @@ FvbNotificationEvent (
Status = gMmst->MmLocateProtocol (
&gEfiSmmFaultTolerantWriteProtocolGuid,
NULL,
- (VOID **) &FtwProtocol
+ (VOID **)&FtwProtocol
);
if (!EFI_ERROR (Status)) {
return EFI_SUCCESS;
@@ -536,7 +549,7 @@ FvbNotificationEvent (
// Found proper FVB protocol and initialize FtwDevice for protocol installation
//
Status = InitFtwProtocol (mFtwDevice);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
@@ -578,9 +591,9 @@ FvbNotificationEvent (
EFI_STATUS
EFIAPI
MmEndOfDxeCallback (
- IN CONST EFI_GUID *Protocol,
- IN VOID *Interface,
- IN EFI_HANDLE Handle
+ IN CONST EFI_GUID *Protocol,
+ IN VOID *Interface,
+ IN EFI_HANDLE Handle
)
{
mEndOfDxe = TRUE;
@@ -599,14 +612,14 @@ MmFaultTolerantWriteInitialize (
VOID
)
{
- EFI_STATUS Status;
- VOID *MmEndOfDxeRegistration;
+ EFI_STATUS Status;
+ VOID *MmEndOfDxeRegistration;
//
// Allocate private data structure for SMM FTW protocol and do some initialization
//
Status = InitFtwDevice (&mFtwDevice);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
return Status;
}
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmCommon.h b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmCommon.h
index 5f0eec0..f717432 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmCommon.h
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmCommon.h
@@ -13,17 +13,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Protocol/SmmFirmwareVolumeBlock.h>
#include <Protocol/SmmFaultTolerantWrite.h>
-#define FTW_FUNCTION_GET_MAX_BLOCK_SIZE 1
-#define FTW_FUNCTION_ALLOCATE 2
-#define FTW_FUNCTION_WRITE 3
-#define FTW_FUNCTION_RESTART 4
-#define FTW_FUNCTION_ABORT 5
-#define FTW_FUNCTION_GET_LAST_WRITE 6
+#define FTW_FUNCTION_GET_MAX_BLOCK_SIZE 1
+#define FTW_FUNCTION_ALLOCATE 2
+#define FTW_FUNCTION_WRITE 3
+#define FTW_FUNCTION_RESTART 4
+#define FTW_FUNCTION_ABORT 5
+#define FTW_FUNCTION_GET_LAST_WRITE 6
typedef struct {
- UINTN Function;
- EFI_STATUS ReturnStatus;
- UINT8 Data[1];
+ UINTN Function;
+ EFI_STATUS ReturnStatus;
+ UINT8 Data[1];
} SMM_FTW_COMMUNICATE_FUNCTION_HEADER;
///
@@ -37,38 +37,38 @@ typedef struct {
#define SMM_FTW_COMMUNICATE_HEADER_SIZE (OFFSET_OF (SMM_FTW_COMMUNICATE_FUNCTION_HEADER, Data))
typedef struct {
- UINTN BlockSize;
+ UINTN BlockSize;
} SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER;
typedef struct {
- EFI_GUID CallerId;
- UINTN PrivateDataSize;
- UINTN NumberOfWrites;
+ EFI_GUID CallerId;
+ UINTN PrivateDataSize;
+ UINTN NumberOfWrites;
} SMM_FTW_ALLOCATE_HEADER;
typedef struct {
- EFI_LBA Lba;
- UINTN Offset;
- UINTN PrivateDataSize;
- EFI_PHYSICAL_ADDRESS FvbBaseAddress;
- EFI_FVB_ATTRIBUTES_2 FvbAttributes;
- UINTN Length;
- UINT8 Data[1];
+ EFI_LBA Lba;
+ UINTN Offset;
+ UINTN PrivateDataSize;
+ EFI_PHYSICAL_ADDRESS FvbBaseAddress;
+ EFI_FVB_ATTRIBUTES_2 FvbAttributes;
+ UINTN Length;
+ UINT8 Data[1];
} SMM_FTW_WRITE_HEADER;
typedef struct {
- EFI_PHYSICAL_ADDRESS FvbBaseAddress;
- EFI_FVB_ATTRIBUTES_2 FvbAttributes;
+ EFI_PHYSICAL_ADDRESS FvbBaseAddress;
+ EFI_FVB_ATTRIBUTES_2 FvbAttributes;
} SMM_FTW_RESTART_HEADER;
typedef struct {
- EFI_GUID CallerId;
- EFI_LBA Lba;
- UINTN Offset;
- UINTN Length;
- UINTN PrivateDataSize;
- BOOLEAN Complete;
- UINT8 Data[1];
+ EFI_GUID CallerId;
+ EFI_LBA Lba;
+ UINTN Offset;
+ UINTN Length;
+ UINTN PrivateDataSize;
+ BOOLEAN Complete;
+ UINT8 Data[1];
} SMM_FTW_GET_LAST_WRITE_HEADER;
/**
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.c
index 24c2095..d273e4d 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.c
@@ -10,9 +10,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "FaultTolerantWriteSmmDxe.h"
-EFI_HANDLE mHandle = NULL;
-EFI_MM_COMMUNICATION2_PROTOCOL *mMmCommunication2 = NULL;
-UINTN mPrivateDataSize = 0;
+EFI_HANDLE mHandle = NULL;
+EFI_MM_COMMUNICATION2_PROTOCOL *mMmCommunication2 = NULL;
+UINTN mPrivateDataSize = 0;
EFI_FAULT_TOLERANT_WRITE_PROTOCOL mFaultTolerantWriteDriver = {
FtwGetMaxBlockSize,
@@ -34,14 +34,14 @@ EFI_FAULT_TOLERANT_WRITE_PROTOCOL mFaultTolerantWriteDriver = {
**/
VOID
InitCommunicateBuffer (
- OUT VOID **CommunicateBuffer,
- OUT VOID **DataPtr,
- IN UINTN DataSize,
- IN UINTN Function
+ OUT VOID **CommunicateBuffer,
+ OUT VOID **DataPtr,
+ IN UINTN DataSize,
+ IN UINTN Function
)
{
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_FTW_COMMUNICATE_FUNCTION_HEADER *SmmFtwFunctionHeader;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_FTW_COMMUNICATE_FUNCTION_HEADER *SmmFtwFunctionHeader;
//
// The whole buffer size: SMM_COMMUNICATE_HEADER_SIZE + SMM_FTW_COMMUNICATE_HEADER_SIZE + DataSize.
@@ -55,7 +55,7 @@ InitCommunicateBuffer (
CopyGuid (&SmmCommunicateHeader->HeaderGuid, &gEfiSmmFaultTolerantWriteProtocolGuid);
SmmCommunicateHeader->MessageLength = DataSize + SMM_FTW_COMMUNICATE_HEADER_SIZE;
- SmmFtwFunctionHeader = (SMM_FTW_COMMUNICATE_FUNCTION_HEADER *) SmmCommunicateHeader->Data;
+ SmmFtwFunctionHeader = (SMM_FTW_COMMUNICATE_FUNCTION_HEADER *)SmmCommunicateHeader->Data;
SmmFtwFunctionHeader->Function = Function;
*CommunicateBuffer = SmmCommunicateHeader;
@@ -64,7 +64,6 @@ InitCommunicateBuffer (
}
}
-
/**
Send the data in communicate buffer to SMI handler and get response.
@@ -74,26 +73,27 @@ InitCommunicateBuffer (
**/
EFI_STATUS
SendCommunicateBuffer (
- IN OUT EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader,
- IN UINTN DataSize
+ IN OUT EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader,
+ IN UINTN DataSize
)
{
- EFI_STATUS Status;
- UINTN CommSize;
- SMM_FTW_COMMUNICATE_FUNCTION_HEADER *SmmFtwFunctionHeader;
+ EFI_STATUS Status;
+ UINTN CommSize;
+ SMM_FTW_COMMUNICATE_FUNCTION_HEADER *SmmFtwFunctionHeader;
CommSize = DataSize + SMM_COMMUNICATE_HEADER_SIZE + SMM_FTW_COMMUNICATE_HEADER_SIZE;
- Status = mMmCommunication2->Communicate (mMmCommunication2,
- SmmCommunicateHeader,
- SmmCommunicateHeader,
- &CommSize);
+ Status = mMmCommunication2->Communicate (
+ mMmCommunication2,
+ SmmCommunicateHeader,
+ SmmCommunicateHeader,
+ &CommSize
+ );
ASSERT_EFI_ERROR (Status);
- SmmFtwFunctionHeader = (SMM_FTW_COMMUNICATE_FUNCTION_HEADER *) SmmCommunicateHeader->Data;
- return SmmFtwFunctionHeader->ReturnStatus;
+ SmmFtwFunctionHeader = (SMM_FTW_COMMUNICATE_FUNCTION_HEADER *)SmmCommunicateHeader->Data;
+ return SmmFtwFunctionHeader->ReturnStatus;
}
-
/**
Get the FvbBaseAddress and FvbAttributes from the FVB handle FvbHandle.
@@ -107,15 +107,15 @@ SendCommunicateBuffer (
**/
EFI_STATUS
ConvertFvbHandle (
- IN EFI_HANDLE FvbHandle,
- OUT EFI_PHYSICAL_ADDRESS *FvbBaseAddress,
- OUT EFI_FVB_ATTRIBUTES_2 *FvbAttributes
+ IN EFI_HANDLE FvbHandle,
+ OUT EFI_PHYSICAL_ADDRESS *FvbBaseAddress,
+ OUT EFI_FVB_ATTRIBUTES_2 *FvbAttributes
)
{
- EFI_STATUS Status;
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
+ EFI_STATUS Status;
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
- Status = gBS->HandleProtocol (FvbHandle, &gEfiFirmwareVolumeBlockProtocolGuid, (VOID **) &Fvb);
+ Status = gBS->HandleProtocol (FvbHandle, &gEfiFirmwareVolumeBlockProtocolGuid, (VOID **)&Fvb);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -129,7 +129,6 @@ ConvertFvbHandle (
return Status;
}
-
/**
Get the size of the largest block that can be updated in a fault-tolerant manner.
@@ -145,19 +144,19 @@ ConvertFvbHandle (
EFI_STATUS
EFIAPI
FtwGetMaxBlockSize (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT UINTN *BlockSize
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT UINTN *BlockSize
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *SmmFtwBlockSizeHeader;
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *SmmFtwBlockSizeHeader;
//
// Initialize the communicate buffer.
//
- PayloadSize = sizeof (SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER);
+ PayloadSize = sizeof (SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER);
InitCommunicateBuffer ((VOID **)&SmmCommunicateHeader, (VOID **)&SmmFtwBlockSizeHeader, PayloadSize, FTW_FUNCTION_GET_MAX_BLOCK_SIZE);
//
@@ -174,7 +173,6 @@ FtwGetMaxBlockSize (
return Status;
}
-
/**
Allocates space for the protocol to maintain information about writes.
Since writes must be completed in a fault-tolerant manner and multiple
@@ -199,21 +197,21 @@ FtwGetMaxBlockSize (
EFI_STATUS
EFIAPI
FtwAllocate (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_GUID *CallerId,
- IN UINTN PrivateDataSize,
- IN UINTN NumberOfWrites
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_GUID *CallerId,
+ IN UINTN PrivateDataSize,
+ IN UINTN NumberOfWrites
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_FTW_ALLOCATE_HEADER *SmmFtwAllocateHeader;
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_FTW_ALLOCATE_HEADER *SmmFtwAllocateHeader;
//
// Initialize the communicate buffer.
//
- PayloadSize = sizeof (SMM_FTW_ALLOCATE_HEADER);
+ PayloadSize = sizeof (SMM_FTW_ALLOCATE_HEADER);
InitCommunicateBuffer ((VOID **)&SmmCommunicateHeader, (VOID **)&SmmFtwAllocateHeader, PayloadSize, FTW_FUNCTION_ALLOCATE);
CopyGuid (&SmmFtwAllocateHeader->CallerId, CallerId);
SmmFtwAllocateHeader->PrivateDataSize = PrivateDataSize;
@@ -223,7 +221,7 @@ FtwAllocate (
// Send data to SMM.
//
Status = SendCommunicateBuffer (SmmCommunicateHeader, PayloadSize);
- if (!EFI_ERROR( Status)) {
+ if (!EFI_ERROR (Status)) {
mPrivateDataSize = PrivateDataSize;
}
@@ -231,7 +229,6 @@ FtwAllocate (
return Status;
}
-
/**
Starts a target block update. This records information about the write
in fault tolerant storage, and will complete the write in a recoverable
@@ -262,30 +259,31 @@ FtwAllocate (
EFI_STATUS
EFIAPI
FtwWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- IN VOID *PrivateData,
- IN EFI_HANDLE FvBlockHandle,
- IN VOID *Buffer
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ IN VOID *PrivateData,
+ IN EFI_HANDLE FvBlockHandle,
+ IN VOID *Buffer
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_FTW_WRITE_HEADER *SmmFtwWriteHeader;
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_FTW_WRITE_HEADER *SmmFtwWriteHeader;
//
// Initialize the communicate buffer.
//
- PayloadSize = OFFSET_OF (SMM_FTW_WRITE_HEADER, Data) + Length;
+ PayloadSize = OFFSET_OF (SMM_FTW_WRITE_HEADER, Data) + Length;
if (PrivateData != NULL) {
//
// The private data buffer size should be the same one in FtwAllocate API.
//
PayloadSize += mPrivateDataSize;
}
+
InitCommunicateBuffer ((VOID **)&SmmCommunicateHeader, (VOID **)&SmmFtwWriteHeader, PayloadSize, FTW_FUNCTION_WRITE);
//
@@ -317,7 +315,6 @@ FtwWrite (
return Status;
}
-
/**
Restarts a previously interrupted write. The caller must provide the
block protocol needed to complete the interrupted write.
@@ -333,19 +330,19 @@ FtwWrite (
EFI_STATUS
EFIAPI
FtwRestart (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_HANDLE FvBlockHandle
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_HANDLE FvBlockHandle
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_FTW_RESTART_HEADER *SmmFtwRestartHeader;
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_FTW_RESTART_HEADER *SmmFtwRestartHeader;
//
// Initialize the communicate buffer.
//
- PayloadSize = sizeof (SMM_FTW_RESTART_HEADER);
+ PayloadSize = sizeof (SMM_FTW_RESTART_HEADER);
InitCommunicateBuffer ((VOID **)&SmmCommunicateHeader, (VOID **)&SmmFtwRestartHeader, PayloadSize, FTW_FUNCTION_RESTART);
//
@@ -366,7 +363,6 @@ FtwRestart (
return Status;
}
-
/**
Aborts all previously allocated writes.
@@ -380,11 +376,11 @@ FtwRestart (
EFI_STATUS
EFIAPI
FtwAbort (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
)
{
- EFI_STATUS Status;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ EFI_STATUS Status;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
//
// Initialize the communicate buffer.
@@ -400,7 +396,6 @@ FtwAbort (
return Status;
}
-
/**
Starts a target block update. This function records information about the write
in fault-tolerant storage and completes the write in a recoverable
@@ -429,25 +424,25 @@ FtwAbort (
EFI_STATUS
EFIAPI
FtwGetLastWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT EFI_GUID *CallerId,
- OUT EFI_LBA *Lba,
- OUT UINTN *Offset,
- OUT UINTN *Length,
- IN OUT UINTN *PrivateDataSize,
- OUT VOID *PrivateData,
- OUT BOOLEAN *Complete
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT EFI_GUID *CallerId,
+ OUT EFI_LBA *Lba,
+ OUT UINTN *Offset,
+ OUT UINTN *Length,
+ IN OUT UINTN *PrivateDataSize,
+ OUT VOID *PrivateData,
+ OUT BOOLEAN *Complete
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_FTW_GET_LAST_WRITE_HEADER *SmmFtwGetLastWriteHeader;
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_FTW_GET_LAST_WRITE_HEADER *SmmFtwGetLastWriteHeader;
//
// Initialize the communicate buffer.
//
- PayloadSize = OFFSET_OF (SMM_FTW_GET_LAST_WRITE_HEADER, Data) + *PrivateDataSize;
+ PayloadSize = OFFSET_OF (SMM_FTW_GET_LAST_WRITE_HEADER, Data) + *PrivateDataSize;
InitCommunicateBuffer ((VOID **)&SmmCommunicateHeader, (VOID **)&SmmFtwGetLastWriteHeader, PayloadSize, FTW_FUNCTION_GET_LAST_WRITE);
SmmFtwGetLastWriteHeader->PrivateDataSize = *PrivateDataSize;
@@ -460,7 +455,7 @@ FtwGetLastWrite (
// Get data from SMM
//
*PrivateDataSize = SmmFtwGetLastWriteHeader->PrivateDataSize;
- if (Status == EFI_SUCCESS || Status == EFI_BUFFER_TOO_SMALL) {
+ if ((Status == EFI_SUCCESS) || (Status == EFI_BUFFER_TOO_SMALL)) {
*Lba = SmmFtwGetLastWriteHeader->Lba;
*Offset = SmmFtwGetLastWriteHeader->Offset;
*Length = SmmFtwGetLastWriteHeader->Length;
@@ -488,12 +483,12 @@ FtwGetLastWrite (
VOID
EFIAPI
SmmFtwReady (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
+ EFI_STATUS Status;
+ EFI_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
//
// Just return to avoid install SMM FaultTolerantWriteProtocol again
@@ -504,7 +499,7 @@ SmmFtwReady (
return;
}
- Status = gBS->LocateProtocol (&gEfiMmCommunication2ProtocolGuid, NULL, (VOID **) &mMmCommunication2);
+ Status = gBS->LocateProtocol (&gEfiMmCommunication2ProtocolGuid, NULL, (VOID **)&mMmCommunication2);
ASSERT_EFI_ERROR (Status);
//
@@ -522,7 +517,6 @@ SmmFtwReady (
ASSERT_EFI_ERROR (Status);
}
-
/**
The driver entry point for Fault Tolerant Write driver.
@@ -537,11 +531,11 @@ SmmFtwReady (
EFI_STATUS
EFIAPI
FaultTolerantWriteSmmInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- VOID *SmmFtwRegistration;
+ VOID *SmmFtwRegistration;
//
// Smm FTW driver is ready
@@ -556,4 +550,3 @@ FaultTolerantWriteSmmInitialize (
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.h b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.h
index a15644a..894b6de 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.h
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmDxe.h
@@ -42,11 +42,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
FtwGetMaxBlockSize (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT UINTN *BlockSize
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT UINTN *BlockSize
);
-
/**
Allocates space for the protocol to maintain information about writes.
Since writes must be completed in a fault-tolerant manner and multiple
@@ -71,13 +70,12 @@ FtwGetMaxBlockSize (
EFI_STATUS
EFIAPI
FtwAllocate (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_GUID *CallerId,
- IN UINTN PrivateDataSize,
- IN UINTN NumberOfWrites
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_GUID *CallerId,
+ IN UINTN PrivateDataSize,
+ IN UINTN NumberOfWrites
);
-
/**
Starts a target block update. This records information about the write
in fault tolerant storage, and will complete the write in a recoverable
@@ -108,16 +106,15 @@ FtwAllocate (
EFI_STATUS
EFIAPI
FtwWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- IN VOID *PrivateData,
- IN EFI_HANDLE FvBlockHandle,
- IN VOID *Buffer
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ IN VOID *PrivateData,
+ IN EFI_HANDLE FvBlockHandle,
+ IN VOID *Buffer
);
-
/**
Restarts a previously interrupted write. The caller must provide the
block protocol needed to complete the interrupted write.
@@ -133,11 +130,10 @@ FtwWrite (
EFI_STATUS
EFIAPI
FtwRestart (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- IN EFI_HANDLE FvBlockHandle
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ IN EFI_HANDLE FvBlockHandle
);
-
/**
Aborts all previously allocated writes.
@@ -151,10 +147,9 @@ FtwRestart (
EFI_STATUS
EFIAPI
FtwAbort (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This
);
-
/**
Starts a target block update. This function records information about the write
in fault-tolerant storage and completes the write in a recoverable
@@ -183,14 +178,14 @@ FtwAbort (
EFI_STATUS
EFIAPI
FtwGetLastWrite (
- IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
- OUT EFI_GUID *CallerId,
- OUT EFI_LBA *Lba,
- OUT UINTN *Offset,
- OUT UINTN *Length,
- IN OUT UINTN *PrivateDataSize,
- OUT VOID *PrivateData,
- OUT BOOLEAN *Complete
+ IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This,
+ OUT EFI_GUID *CallerId,
+ OUT EFI_LBA *Lba,
+ OUT UINTN *Offset,
+ OUT UINTN *Length,
+ IN OUT UINTN *PrivateDataSize,
+ OUT VOID *PrivateData,
+ OUT BOOLEAN *Complete
);
#endif
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.c
index 5af49e0..52922a0 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.c
@@ -51,8 +51,8 @@ FtwSmmIsBufferOutsideSmmValid (
**/
UINT32
FtwCalculateCrc32 (
- IN VOID *Buffer,
- IN UINTN Length
+ IN VOID *Buffer,
+ IN UINTN Length
)
{
return CalculateCrc32 (Buffer, Length);
@@ -82,8 +82,8 @@ FtwNotifySmmReady (
EFI_STATUS
EFIAPI
StandaloneMmFaultTolerantWriteInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_MM_SYSTEM_TABLE *MmSystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_MM_SYSTEM_TABLE *MmSystemTable
)
{
return MmFaultTolerantWriteInitialize ();
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditionalMm.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditionalMm.c
index 10e56e9..a7241e6 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditionalMm.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditionalMm.c
@@ -52,12 +52,12 @@ FtwSmmIsBufferOutsideSmmValid (
**/
UINT32
FtwCalculateCrc32 (
- IN VOID *Buffer,
- IN UINTN Length
+ IN VOID *Buffer,
+ IN UINTN Length
)
{
- EFI_STATUS Status;
- UINT32 ReturnValue;
+ EFI_STATUS Status;
+ UINT32 ReturnValue;
Status = gBS->CalculateCrc32 (Buffer, Length, &ReturnValue);
ASSERT_EFI_ERROR (Status);
@@ -73,16 +73,16 @@ FtwNotifySmmReady (
VOID
)
{
- EFI_HANDLE FtwHandle;
- EFI_STATUS Status;
+ EFI_HANDLE FtwHandle;
+ EFI_STATUS Status;
FtwHandle = NULL;
- Status = gBS->InstallProtocolInterface (
- &FtwHandle,
- &gEfiSmmFaultTolerantWriteProtocolGuid,
- EFI_NATIVE_INTERFACE,
- NULL
- );
+ Status = gBS->InstallProtocolInterface (
+ &FtwHandle,
+ &gEfiSmmFaultTolerantWriteProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ NULL
+ );
ASSERT_EFI_ERROR (Status);
}
@@ -100,8 +100,8 @@ FtwNotifySmmReady (
EFI_STATUS
EFIAPI
SmmFaultTolerantWriteInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
return MmFaultTolerantWriteInitialize ();
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c
index dce50e8..661e148 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c
@@ -21,13 +21,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
IsErasedFlashBuffer (
- IN UINT8 *Buffer,
- IN UINTN BufferSize
+ IN UINT8 *Buffer,
+ IN UINTN BufferSize
)
{
- BOOLEAN IsEmpty;
- UINT8 *Ptr;
- UINTN Index;
+ BOOLEAN IsEmpty;
+ UINT8 *Ptr;
+ UINTN Index;
Ptr = Buffer;
IsEmpty = TRUE;
@@ -89,7 +89,7 @@ FtwEraseBlock (
**/
EFI_STATUS
FtwEraseSpareBlock (
- IN EFI_FTW_DEVICE *FtwDevice
+ IN EFI_FTW_DEVICE *FtwDevice
)
{
return FtwDevice->FtwBackupFvb->EraseBlocks (
@@ -124,11 +124,11 @@ IsWorkingBlock (
// 2. Lba falls into the range of working block.
//
return (BOOLEAN)
- (
- (FvBlock == FtwDevice->FtwFvBlock) &&
- (Lba >= FtwDevice->FtwWorkBlockLba) &&
- (Lba <= FtwDevice->FtwWorkSpaceLba)
- );
+ (
+ (FvBlock == FtwDevice->FtwFvBlock) &&
+ (Lba >= FtwDevice->FtwWorkBlockLba) &&
+ (Lba <= FtwDevice->FtwWorkSpaceLba)
+ );
}
/**
@@ -145,8 +145,8 @@ IsWorkingBlock (
**/
EFI_HANDLE
GetFvbByAddress (
- IN EFI_PHYSICAL_ADDRESS Address,
- OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock
+ IN EFI_PHYSICAL_ADDRESS Address,
+ OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock
)
{
EFI_STATUS Status;
@@ -159,8 +159,8 @@ GetFvbByAddress (
UINTN BlockSize;
UINTN NumberOfBlocks;
- *FvBlock = NULL;
- FvbHandle = NULL;
+ *FvBlock = NULL;
+ FvbHandle = NULL;
HandleBuffer = NULL;
//
// Locate all handles of Fvb protocol
@@ -169,6 +169,7 @@ GetFvbByAddress (
if (EFI_ERROR (Status)) {
return NULL;
}
+
//
// Get the FVB to access variable store
//
@@ -177,6 +178,7 @@ GetFvbByAddress (
if (EFI_ERROR (Status)) {
break;
}
+
//
// Compare the address and select the right one
//
@@ -195,7 +197,7 @@ GetFvbByAddress (
if ((Address >= FvbBaseAddress) && (Address < (FvbBaseAddress + BlockSize * NumberOfBlocks))) {
*FvBlock = Fvb;
- FvbHandle = HandleBuffer[Index];
+ FvbHandle = HandleBuffer[Index];
break;
}
}
@@ -230,14 +232,15 @@ IsBootBlock (
BOOLEAN IsSwapped;
EFI_HANDLE FvbHandle;
- if (!FeaturePcdGet(PcdFullFtwServiceEnable)) {
+ if (!FeaturePcdGet (PcdFullFtwServiceEnable)) {
return FALSE;
}
- Status = FtwGetSarProtocol ((VOID **) &SarProtocol);
+ Status = FtwGetSarProtocol ((VOID **)&SarProtocol);
if (EFI_ERROR (Status)) {
return FALSE;
}
+
//
// Get the boot block range
//
@@ -256,6 +259,7 @@ IsBootBlock (
if (EFI_ERROR (Status)) {
return FALSE;
}
+
//
// Get FVB by address
//
@@ -268,10 +272,11 @@ IsBootBlock (
if (FvbHandle == NULL) {
return FALSE;
}
+
//
// Compare the Fvb
//
- return (BOOLEAN) (FvBlock == BootFvb);
+ return (BOOLEAN)(FvBlock == BootFvb);
}
/**
@@ -302,7 +307,7 @@ IsBootBlock (
**/
EFI_STATUS
FlushSpareBlockToBootBlock (
- EFI_FTW_DEVICE *FtwDevice
+ EFI_FTW_DEVICE *FtwDevice
)
{
EFI_STATUS Status;
@@ -316,25 +321,27 @@ FlushSpareBlockToBootBlock (
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *BootFvb;
EFI_LBA BootLba;
- if (!FeaturePcdGet(PcdFullFtwServiceEnable)) {
+ if (!FeaturePcdGet (PcdFullFtwServiceEnable)) {
return EFI_UNSUPPORTED;
}
//
// Locate swap address range protocol
//
- Status = FtwGetSarProtocol ((VOID **) &SarProtocol);
+ Status = FtwGetSarProtocol ((VOID **)&SarProtocol);
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Allocate a memory buffer
//
Length = FtwDevice->SpareAreaLength;
- Buffer = AllocatePool (Length);
+ Buffer = AllocatePool (Length);
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Get TopSwap bit state
//
@@ -353,13 +360,14 @@ FlushSpareBlockToBootBlock (
FreePool (Buffer);
return EFI_ABORTED;
}
+
//
// Read data from current boot block
//
BootLba = 0;
Ptr = Buffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
- Count = FtwDevice->SpareBlockSize;
+ Count = FtwDevice->SpareBlockSize;
Status = BootFvb->Read (
BootFvb,
BootLba + Index,
@@ -380,7 +388,7 @@ FlushSpareBlockToBootBlock (
//
Ptr = Buffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
- Count = FtwDevice->SpareBlockSize;
+ Count = FtwDevice->SpareBlockSize;
Status = FtwDevice->FtwBackupFvb->Read (
FtwDevice->FtwBackupFvb,
FtwDevice->FtwSpareLba + Index,
@@ -395,6 +403,7 @@ FlushSpareBlockToBootBlock (
Ptr += Count;
}
+
//
// Set TopSwap bit
//
@@ -404,6 +413,7 @@ FlushSpareBlockToBootBlock (
return Status;
}
}
+
//
// Erase current spare block
// Because TopSwap is set, this actually erase the top block (boot block)!
@@ -413,12 +423,13 @@ FlushSpareBlockToBootBlock (
FreePool (Buffer);
return EFI_ABORTED;
}
+
//
// Write memory buffer to current spare block. Still top block.
//
Ptr = Buffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
- Count = FtwDevice->SpareBlockSize;
+ Count = FtwDevice->SpareBlockSize;
Status = FtwDevice->FtwBackupFvb->Write (
FtwDevice->FtwBackupFvb,
FtwDevice->FtwSpareLba + Index,
@@ -482,20 +493,22 @@ FlushSpareBlockToTargetBlock (
if ((FtwDevice == NULL) || (FvBlock == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
//
// Allocate a memory buffer
//
Length = FtwDevice->SpareAreaLength;
- Buffer = AllocatePool (Length);
+ Buffer = AllocatePool (Length);
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Read all content of spare block to memory buffer
//
Ptr = Buffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
- Count = FtwDevice->SpareBlockSize;
+ Count = FtwDevice->SpareBlockSize;
Status = FtwDevice->FtwBackupFvb->Read (
FtwDevice->FtwBackupFvb,
FtwDevice->FtwSpareLba + Index,
@@ -510,6 +523,7 @@ FlushSpareBlockToTargetBlock (
Ptr += Count;
}
+
//
// Erase the target block
//
@@ -518,13 +532,14 @@ FlushSpareBlockToTargetBlock (
FreePool (Buffer);
return EFI_ABORTED;
}
+
//
// Write memory buffer to block, using the FvBlock protocol interface
//
Ptr = Buffer;
for (Index = 0; Index < NumberOfBlocks; Index += 1) {
- Count = BlockSize;
- Status = FvBlock->Write (FvBlock, Lba + Index, 0, &Count, Ptr);
+ Count = BlockSize;
+ Status = FvBlock->Write (FvBlock, Lba + Index, 0, &Count, Ptr);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Ftw: FVB Write block - %r\n", Status));
FreePool (Buffer);
@@ -559,22 +574,22 @@ FlushSpareBlockToTargetBlock (
**/
EFI_STATUS
FlushSpareBlockToWorkingBlock (
- EFI_FTW_DEVICE *FtwDevice
+ EFI_FTW_DEVICE *FtwDevice
)
{
- EFI_STATUS Status;
- UINTN Length;
- UINT8 *Buffer;
- EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingBlockHeader;
- UINTN Count;
- UINT8 *Ptr;
- UINTN Index;
+ EFI_STATUS Status;
+ UINTN Length;
+ UINT8 *Buffer;
+ EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingBlockHeader;
+ UINTN Count;
+ UINT8 *Ptr;
+ UINTN Index;
//
// Allocate a memory buffer
//
Length = FtwDevice->SpareAreaLength;
- Buffer = AllocatePool (Length);
+ Buffer = AllocatePool (Length);
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -598,7 +613,7 @@ FlushSpareBlockToWorkingBlock (
//
Ptr = Buffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
- Count = FtwDevice->SpareBlockSize;
+ Count = FtwDevice->SpareBlockSize;
Status = FtwDevice->FtwBackupFvb->Read (
FtwDevice->FtwBackupFvb,
FtwDevice->FtwSpareLba + Index,
@@ -613,10 +628,11 @@ FlushSpareBlockToWorkingBlock (
Ptr += Count;
}
+
//
// Clear the CRC and STATE, copy data from spare to working block.
//
- WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (Buffer + (UINTN) FtwDevice->FtwWorkSpaceLbaInSpare * FtwDevice->SpareBlockSize + FtwDevice->FtwWorkSpaceBaseInSpare);
+ WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *)(Buffer + (UINTN)FtwDevice->FtwWorkSpaceLbaInSpare * FtwDevice->SpareBlockSize + FtwDevice->FtwWorkSpaceBaseInSpare);
InitWorkSpaceHeader (WorkingBlockHeader);
WorkingBlockHeader->WorkingBlockValid = FTW_ERASE_POLARITY;
WorkingBlockHeader->WorkingBlockInvalid = FTW_ERASE_POLARITY;
@@ -632,12 +648,12 @@ FlushSpareBlockToWorkingBlock (
// skip Signature and Crc.
//
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),
- WORKING_BLOCK_INVALID
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),
+ WORKING_BLOCK_INVALID
+ );
if (EFI_ERROR (Status)) {
FreePool (Buffer);
return EFI_ABORTED;
@@ -653,12 +669,13 @@ FlushSpareBlockToWorkingBlock (
FreePool (Buffer);
return EFI_ABORTED;
}
+
//
// Write memory buffer to working block, using the FvBlock protocol interface
//
Ptr = Buffer;
for (Index = 0; Index < FtwDevice->NumberOfWorkBlock; Index += 1) {
- Count = FtwDevice->WorkBlockSize;
+ Count = FtwDevice->WorkBlockSize;
Status = FtwDevice->FtwFvBlock->Write (
FtwDevice->FtwFvBlock,
FtwDevice->FtwWorkBlockLba + Index,
@@ -674,6 +691,7 @@ FlushSpareBlockToWorkingBlock (
Ptr += Count;
}
+
//
// Since the memory buffer will not be used, free memory Buffer.
//
@@ -686,18 +704,18 @@ FlushSpareBlockToWorkingBlock (
// So hardcode offset as sizeof(EFI_GUID)+sizeof(UINT32) to skip Signature and Crc.
//
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),
- WORKING_BLOCK_VALID
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),
+ WORKING_BLOCK_VALID
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
FtwDevice->FtwWorkSpaceHeader->WorkingBlockInvalid = FTW_INVALID_STATE;
- FtwDevice->FtwWorkSpaceHeader->WorkingBlockValid = FTW_VALID_STATE;
+ FtwDevice->FtwWorkSpaceHeader->WorkingBlockValid = FTW_VALID_STATE;
return EFI_SUCCESS;
}
@@ -745,21 +763,21 @@ FtwUpdateFvState (
//
// Read state from device, assume State is only one byte.
//
- Length = sizeof (UINT8);
- Status = FvBlock->Read (FvBlock, Lba, Offset, &Length, &State);
+ Length = sizeof (UINT8);
+ Status = FvBlock->Read (FvBlock, Lba, Offset, &Length, &State);
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
State ^= FTW_POLARITY_REVERT;
- State = (UINT8) (State | NewBit);
+ State = (UINT8)(State | NewBit);
State ^= FTW_POLARITY_REVERT;
//
// Write state back to device
//
- Length = sizeof (UINT8);
- Status = FvBlock->Write (FvBlock, Lba, Offset, &Length, &State);
+ Length = sizeof (UINT8);
+ Status = FvBlock->Write (FvBlock, Lba, Offset, &Length, &State);
return Status;
}
@@ -785,11 +803,11 @@ FtwGetLastWriteHeader (
OUT EFI_FAULT_TOLERANT_WRITE_HEADER **FtwWriteHeader
)
{
- UINTN Offset;
- EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader;
+ UINTN Offset;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader;
*FtwWriteHeader = NULL;
- FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *) (FtwWorkSpaceHeader + 1);
+ FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *)(FtwWorkSpaceHeader + 1);
Offset = sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER);
while (FtwHeader->Complete == FTW_VALID_STATE) {
@@ -802,8 +820,9 @@ FtwGetLastWriteHeader (
return EFI_ABORTED;
}
- FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *) ((UINT8 *) FtwWorkSpaceHeader + Offset);
+ FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *)((UINT8 *)FtwWorkSpaceHeader + Offset);
}
+
//
// Last write header is found
//
@@ -827,15 +846,15 @@ FtwGetLastWriteHeader (
**/
EFI_STATUS
FtwGetLastWriteRecord (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwWriteHeader,
- OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwWriteRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwWriteHeader,
+ OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwWriteRecord
)
{
- UINTN Index;
- EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord;
+ UINTN Index;
+ EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord;
*FtwWriteRecord = NULL;
- FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) (FtwWriteHeader + 1);
+ FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)(FtwWriteHeader + 1);
//
// Try to find the last write record "that has not completed"
@@ -852,9 +871,10 @@ FtwGetLastWriteRecord (
FtwRecord++;
if (FtwWriteHeader->PrivateDataSize != 0) {
- FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord + (UINTN) FtwWriteHeader->PrivateDataSize);
+ FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)((UINTN)FtwRecord + (UINTN)FtwWriteHeader->PrivateDataSize);
}
}
+
//
// if Index == NumberOfWrites, then
// the last record has been written successfully,
@@ -862,7 +882,7 @@ FtwGetLastWriteRecord (
// also return the last record.
//
if (Index == FtwWriteHeader->NumberOfWrites) {
- *FtwWriteRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord - FTW_RECORD_SIZE (FtwWriteHeader->PrivateDataSize));
+ *FtwWriteRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)((UINTN)FtwRecord - FTW_RECORD_SIZE (FtwWriteHeader->PrivateDataSize));
return EFI_SUCCESS;
}
@@ -881,18 +901,18 @@ FtwGetLastWriteRecord (
**/
BOOLEAN
IsFirstRecordOfWrites (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
- IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
+ IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
)
{
- UINT8 *Head;
- UINT8 *Ptr;
+ UINT8 *Head;
+ UINT8 *Ptr;
- Head = (UINT8 *) FtwHeader;
- Ptr = (UINT8 *) FtwRecord;
+ Head = (UINT8 *)FtwHeader;
+ Ptr = (UINT8 *)FtwRecord;
Head += sizeof (EFI_FAULT_TOLERANT_WRITE_HEADER);
- return (BOOLEAN) (Head == Ptr);
+ return (BOOLEAN)(Head == Ptr);
}
/**
@@ -909,18 +929,18 @@ IsFirstRecordOfWrites (
**/
BOOLEAN
IsLastRecordOfWrites (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
- IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
+ IN EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord
)
{
- UINT8 *Head;
- UINT8 *Ptr;
+ UINT8 *Head;
+ UINT8 *Ptr;
- Head = (UINT8 *) FtwHeader;
- Ptr = (UINT8 *) FtwRecord;
+ Head = (UINT8 *)FtwHeader;
+ Ptr = (UINT8 *)FtwRecord;
Head += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites - 1, FtwHeader->PrivateDataSize);
- return (BOOLEAN) (Head == Ptr);
+ return (BOOLEAN)(Head == Ptr);
}
/**
@@ -935,20 +955,20 @@ IsLastRecordOfWrites (
**/
EFI_STATUS
GetPreviousRecordOfWrites (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
- IN OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader,
+ IN OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwRecord
)
{
- UINT8 *Ptr;
+ UINT8 *Ptr;
if (IsFirstRecordOfWrites (FtwHeader, *FtwRecord)) {
*FtwRecord = NULL;
return EFI_ACCESS_DENIED;
}
- Ptr = (UINT8 *) (*FtwRecord);
- Ptr -= FTW_RECORD_SIZE (FtwHeader->PrivateDataSize);
- *FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) Ptr;
+ Ptr = (UINT8 *)(*FtwRecord);
+ Ptr -= FTW_RECORD_SIZE (FtwHeader->PrivateDataSize);
+ *FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)Ptr;
return EFI_SUCCESS;
}
@@ -964,10 +984,10 @@ GetPreviousRecordOfWrites (
**/
EFI_STATUS
InitFtwDevice (
- OUT EFI_FTW_DEVICE **FtwData
+ OUT EFI_FTW_DEVICE **FtwData
)
{
- EFI_FTW_DEVICE *FtwDevice;
+ EFI_FTW_DEVICE *FtwDevice;
//
// Allocate private data of this driver,
@@ -981,35 +1001,34 @@ InitFtwDevice (
//
// Initialize other parameters, and set WorkSpace as FTW_ERASED_BYTE.
//
- FtwDevice->WorkSpaceLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwWorkingSize);
- FtwDevice->SpareAreaLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwSpareSize);
+ FtwDevice->WorkSpaceLength = (UINTN)PcdGet32 (PcdFlashNvStorageFtwWorkingSize);
+ FtwDevice->SpareAreaLength = (UINTN)PcdGet32 (PcdFlashNvStorageFtwSpareSize);
if ((FtwDevice->WorkSpaceLength == 0) || (FtwDevice->SpareAreaLength == 0)) {
DEBUG ((DEBUG_ERROR, "Ftw: Workspace or Spare block does not exist!\n"));
FreePool (FtwDevice);
return EFI_INVALID_PARAMETER;
}
- FtwDevice->Signature = FTW_DEVICE_SIGNATURE;
- FtwDevice->FtwFvBlock = NULL;
- FtwDevice->FtwBackupFvb = NULL;
- FtwDevice->FtwWorkSpaceLba = (EFI_LBA) (-1);
- FtwDevice->FtwSpareLba = (EFI_LBA) (-1);
+ FtwDevice->Signature = FTW_DEVICE_SIGNATURE;
+ FtwDevice->FtwFvBlock = NULL;
+ FtwDevice->FtwBackupFvb = NULL;
+ FtwDevice->FtwWorkSpaceLba = (EFI_LBA)(-1);
+ FtwDevice->FtwSpareLba = (EFI_LBA)(-1);
- FtwDevice->WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS) PcdGet64 (PcdFlashNvStorageFtwWorkingBase64);
+ FtwDevice->WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdFlashNvStorageFtwWorkingBase64);
if (FtwDevice->WorkSpaceAddress == 0) {
- FtwDevice->WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageFtwWorkingBase);
+ FtwDevice->WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdFlashNvStorageFtwWorkingBase);
}
- FtwDevice->SpareAreaAddress = (EFI_PHYSICAL_ADDRESS) PcdGet64 (PcdFlashNvStorageFtwSpareBase64);
+ FtwDevice->SpareAreaAddress = (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdFlashNvStorageFtwSpareBase64);
if (FtwDevice->SpareAreaAddress == 0) {
- FtwDevice->SpareAreaAddress = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageFtwSpareBase);
+ FtwDevice->SpareAreaAddress = (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdFlashNvStorageFtwSpareBase);
}
*FtwData = FtwDevice;
return EFI_SUCCESS;
}
-
/**
Find the proper Firmware Volume Block protocol for FTW operation.
@@ -1022,7 +1041,7 @@ InitFtwDevice (
**/
EFI_STATUS
FindFvbForFtw (
- IN OUT EFI_FTW_DEVICE *FtwDevice
+ IN OUT EFI_FTW_DEVICE *FtwDevice
)
{
EFI_STATUS Status;
@@ -1064,6 +1083,7 @@ FindFvbForFtw (
if (EFI_ERROR (Status) || ((Attributes & EFI_FVB2_WRITE_STATUS) == 0)) {
continue;
}
+
//
// Compare the address and select the right one
//
@@ -1081,28 +1101,31 @@ FindFvbForFtw (
}
if ((FtwDevice->FtwFvBlock == NULL) && (FtwDevice->WorkSpaceAddress >= FvbBaseAddress) &&
- ((FtwDevice->WorkSpaceAddress + FtwDevice->WorkSpaceLength) <= (FvbBaseAddress + BlockSize * NumberOfBlocks))) {
+ ((FtwDevice->WorkSpaceAddress + FtwDevice->WorkSpaceLength) <= (FvbBaseAddress + BlockSize * NumberOfBlocks)))
+ {
FtwDevice->FtwFvBlock = Fvb;
//
// To get the LBA of work space
//
for (LbaIndex = 1; LbaIndex <= NumberOfBlocks; LbaIndex += 1) {
- if ((FtwDevice->WorkSpaceAddress >= (FvbBaseAddress + BlockSize * (LbaIndex - 1)))
- && (FtwDevice->WorkSpaceAddress < (FvbBaseAddress + BlockSize * LbaIndex))) {
+ if ( (FtwDevice->WorkSpaceAddress >= (FvbBaseAddress + BlockSize * (LbaIndex - 1)))
+ && (FtwDevice->WorkSpaceAddress < (FvbBaseAddress + BlockSize * LbaIndex)))
+ {
FtwDevice->FtwWorkSpaceLba = LbaIndex - 1;
//
// Get the Work space size and Base(Offset)
//
- FtwDevice->FtwWorkSpaceSize = FtwDevice->WorkSpaceLength;
- FtwDevice->WorkBlockSize = BlockSize;
- FtwDevice->FtwWorkSpaceBase = (UINTN) (FtwDevice->WorkSpaceAddress - (FvbBaseAddress + FtwDevice->WorkBlockSize * (LbaIndex - 1)));
+ FtwDevice->FtwWorkSpaceSize = FtwDevice->WorkSpaceLength;
+ FtwDevice->WorkBlockSize = BlockSize;
+ FtwDevice->FtwWorkSpaceBase = (UINTN)(FtwDevice->WorkSpaceAddress - (FvbBaseAddress + FtwDevice->WorkBlockSize * (LbaIndex - 1)));
FtwDevice->NumberOfWorkSpaceBlock = FTW_BLOCKS (FtwDevice->FtwWorkSpaceBase + FtwDevice->FtwWorkSpaceSize, FtwDevice->WorkBlockSize);
if (FtwDevice->FtwWorkSpaceSize >= FtwDevice->WorkBlockSize) {
//
// Check the alignment of work space address and length, they should be block size aligned when work space size is larger than one block size.
//
if (((FtwDevice->WorkSpaceAddress & (FtwDevice->WorkBlockSize - 1)) != 0) ||
- ((FtwDevice->WorkSpaceLength & (FtwDevice->WorkBlockSize - 1)) != 0)) {
+ ((FtwDevice->WorkSpaceLength & (FtwDevice->WorkBlockSize - 1)) != 0))
+ {
DEBUG ((DEBUG_ERROR, "Ftw: Work space address or length is not block size aligned when work space size is larger than one block size\n"));
FreePool (HandleBuffer);
ASSERT (FALSE);
@@ -1114,20 +1137,23 @@ FindFvbForFtw (
ASSERT (FALSE);
return EFI_ABORTED;
}
+
break;
}
}
}
if ((FtwDevice->FtwBackupFvb == NULL) && (FtwDevice->SpareAreaAddress >= FvbBaseAddress) &&
- ((FtwDevice->SpareAreaAddress + FtwDevice->SpareAreaLength) <= (FvbBaseAddress + BlockSize * NumberOfBlocks))) {
+ ((FtwDevice->SpareAreaAddress + FtwDevice->SpareAreaLength) <= (FvbBaseAddress + BlockSize * NumberOfBlocks)))
+ {
FtwDevice->FtwBackupFvb = Fvb;
//
// To get the LBA of spare
//
for (LbaIndex = 1; LbaIndex <= NumberOfBlocks; LbaIndex += 1) {
- if ((FtwDevice->SpareAreaAddress >= (FvbBaseAddress + BlockSize * (LbaIndex - 1)))
- && (FtwDevice->SpareAreaAddress < (FvbBaseAddress + BlockSize * LbaIndex))) {
+ if ( (FtwDevice->SpareAreaAddress >= (FvbBaseAddress + BlockSize * (LbaIndex - 1)))
+ && (FtwDevice->SpareAreaAddress < (FvbBaseAddress + BlockSize * LbaIndex)))
+ {
//
// Get the NumberOfSpareBlock and BlockSize
//
@@ -1143,11 +1169,13 @@ FindFvbForFtw (
ASSERT (FALSE);
return EFI_ABORTED;
}
+
//
// Check the alignment of spare area address and length, they should be block size aligned
//
if (((FtwDevice->SpareAreaAddress & (FtwDevice->SpareBlockSize - 1)) != 0) ||
- ((FtwDevice->SpareAreaLength & (FtwDevice->SpareBlockSize - 1)) != 0)) {
+ ((FtwDevice->SpareAreaLength & (FtwDevice->SpareBlockSize - 1)) != 0))
+ {
DEBUG ((DEBUG_ERROR, "Ftw: Spare area address or length is not block size aligned\n"));
FreePool (HandleBuffer);
//
@@ -1157,24 +1185,27 @@ FindFvbForFtw (
ASSERT (FALSE);
CpuDeadLoop ();
}
+
break;
}
}
}
}
+
FreePool (HandleBuffer);
if ((FtwDevice->FtwBackupFvb == NULL) || (FtwDevice->FtwFvBlock == NULL) ||
- (FtwDevice->FtwWorkSpaceLba == (EFI_LBA) (-1)) || (FtwDevice->FtwSpareLba == (EFI_LBA) (-1))) {
+ (FtwDevice->FtwWorkSpaceLba == (EFI_LBA)(-1)) || (FtwDevice->FtwSpareLba == (EFI_LBA)(-1)))
+ {
return EFI_ABORTED;
}
+
DEBUG ((DEBUG_INFO, "Ftw: FtwWorkSpaceLba - 0x%lx, WorkBlockSize - 0x%x, FtwWorkSpaceBase - 0x%x\n", FtwDevice->FtwWorkSpaceLba, FtwDevice->WorkBlockSize, FtwDevice->FtwWorkSpaceBase));
DEBUG ((DEBUG_INFO, "Ftw: FtwSpareLba - 0x%lx, SpareBlockSize - 0x%x\n", FtwDevice->FtwSpareLba, FtwDevice->SpareBlockSize));
return EFI_SUCCESS;
}
-
/**
Initialization for Fault Tolerant Write protocol.
@@ -1186,7 +1217,7 @@ FindFvbForFtw (
**/
EFI_STATUS
InitFtwProtocol (
- IN OUT EFI_FTW_DEVICE *FtwDevice
+ IN OUT EFI_FTW_DEVICE *FtwDevice
)
{
EFI_STATUS Status;
@@ -1219,11 +1250,12 @@ InitFtwProtocol (
// block, unless there are not enough blocks before the block that contains
// working space.
//
- FtwDevice->NumberOfWorkBlock = (UINTN) (FtwDevice->FtwWorkSpaceLba + FtwDevice->NumberOfWorkSpaceBlock);
+ FtwDevice->NumberOfWorkBlock = (UINTN)(FtwDevice->FtwWorkSpaceLba + FtwDevice->NumberOfWorkSpaceBlock);
while (FtwDevice->NumberOfWorkBlock * FtwDevice->WorkBlockSize > FtwDevice->SpareAreaLength) {
FtwDevice->NumberOfWorkBlock--;
}
}
+
FtwDevice->FtwWorkBlockLba = FtwDevice->FtwWorkSpaceLba + FtwDevice->NumberOfWorkSpaceBlock - FtwDevice->NumberOfWorkBlock;
DEBUG ((DEBUG_INFO, "Ftw: NumberOfWorkBlock - 0x%x, FtwWorkBlockLba - 0x%lx\n", FtwDevice->NumberOfWorkBlock, FtwDevice->FtwWorkBlockLba));
@@ -1231,16 +1263,16 @@ InitFtwProtocol (
// Calcualte the LBA and base of work space in spare block.
// Note: Do not assume Spare Block and Work Block have same block size.
//
- WorkSpaceLbaOffset = FtwDevice->FtwWorkSpaceLba - FtwDevice->FtwWorkBlockLba;
- FtwDevice->FtwWorkSpaceLbaInSpare = (EFI_LBA) (((UINTN) WorkSpaceLbaOffset * FtwDevice->WorkBlockSize + FtwDevice->FtwWorkSpaceBase) / FtwDevice->SpareBlockSize);
- FtwDevice->FtwWorkSpaceBaseInSpare = ((UINTN) WorkSpaceLbaOffset * FtwDevice->WorkBlockSize + FtwDevice->FtwWorkSpaceBase) % FtwDevice->SpareBlockSize;
+ WorkSpaceLbaOffset = FtwDevice->FtwWorkSpaceLba - FtwDevice->FtwWorkBlockLba;
+ FtwDevice->FtwWorkSpaceLbaInSpare = (EFI_LBA)(((UINTN)WorkSpaceLbaOffset * FtwDevice->WorkBlockSize + FtwDevice->FtwWorkSpaceBase) / FtwDevice->SpareBlockSize);
+ FtwDevice->FtwWorkSpaceBaseInSpare = ((UINTN)WorkSpaceLbaOffset * FtwDevice->WorkBlockSize + FtwDevice->FtwWorkSpaceBase) % FtwDevice->SpareBlockSize;
DEBUG ((DEBUG_INFO, "Ftw: WorkSpaceLbaInSpare - 0x%lx, WorkSpaceBaseInSpare - 0x%x\n", FtwDevice->FtwWorkSpaceLbaInSpare, FtwDevice->FtwWorkSpaceBaseInSpare));
//
// Initialize other parameters, and set WorkSpace as FTW_ERASED_BYTE.
//
- FtwDevice->FtwWorkSpace = (UINT8 *) (FtwDevice + 1);
- FtwDevice->FtwWorkSpaceHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) FtwDevice->FtwWorkSpace;
+ FtwDevice->FtwWorkSpace = (UINT8 *)(FtwDevice + 1);
+ FtwDevice->FtwWorkSpaceHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *)FtwDevice->FtwWorkSpace;
FtwDevice->FtwLastWriteHeader = NULL;
FtwDevice->FtwLastWriteRecord = NULL;
@@ -1274,8 +1306,12 @@ InitFtwProtocol (
//
if (IsValidWorkSpace (FtwDevice->FtwWorkSpaceHeader)) {
Status = FlushSpareBlockToWorkingBlock (FtwDevice);
- DEBUG ((DEBUG_INFO, "Ftw: Restart working block update in %a() - %r\n",
- __FUNCTION__, Status));
+ DEBUG ((
+ DEBUG_INFO,
+ "Ftw: Restart working block update in %a() - %r\n",
+ __FUNCTION__,
+ Status
+ ));
FtwAbort (&FtwDevice->FtwInstance);
//
// Refresh work space.
@@ -1283,8 +1319,10 @@ InitFtwProtocol (
Status = WorkSpaceRefresh (FtwDevice);
ASSERT_EFI_ERROR (Status);
} else {
- DEBUG ((DEBUG_INFO,
- "Ftw: Both working and spare blocks are invalid, init workspace\n"));
+ DEBUG ((
+ DEBUG_INFO,
+ "Ftw: Both working and spare blocks are invalid, init workspace\n"
+ ));
//
// If both are invalid, then initialize work space.
//
@@ -1301,34 +1339,39 @@ InitFtwProtocol (
ASSERT_EFI_ERROR (Status);
}
}
+
//
// If the FtwDevice->FtwLastWriteRecord is 1st record of write header &&
// (! SpareComplete) THEN call Abort().
//
if ((FtwDevice->FtwLastWriteHeader->HeaderAllocated == FTW_VALID_STATE) &&
- (FtwDevice->FtwLastWriteRecord->SpareComplete != FTW_VALID_STATE) &&
- IsFirstRecordOfWrites (FtwDevice->FtwLastWriteHeader, FtwDevice->FtwLastWriteRecord)
- ) {
+ (FtwDevice->FtwLastWriteRecord->SpareComplete != FTW_VALID_STATE) &&
+ IsFirstRecordOfWrites (FtwDevice->FtwLastWriteHeader, FtwDevice->FtwLastWriteRecord)
+ )
+ {
DEBUG ((DEBUG_ERROR, "Ftw: Init.. find first record not SpareCompleted, abort()\n"));
FtwAbort (&FtwDevice->FtwInstance);
}
+
//
// If Header is incompleted and the last record has completed, then
// call Abort() to set the Header->Complete FLAG.
//
if ((FtwDevice->FtwLastWriteHeader->Complete != FTW_VALID_STATE) &&
- (FtwDevice->FtwLastWriteRecord->DestinationComplete == FTW_VALID_STATE) &&
- IsLastRecordOfWrites (FtwDevice->FtwLastWriteHeader, FtwDevice->FtwLastWriteRecord)
- ) {
+ (FtwDevice->FtwLastWriteRecord->DestinationComplete == FTW_VALID_STATE) &&
+ IsLastRecordOfWrites (FtwDevice->FtwLastWriteHeader, FtwDevice->FtwLastWriteRecord)
+ )
+ {
DEBUG ((DEBUG_ERROR, "Ftw: Init.. find last record completed but header not, abort()\n"));
FtwAbort (&FtwDevice->FtwInstance);
}
+
//
// To check the workspace buffer following last Write header/records is EMPTY or not.
// If it's not EMPTY, FTW also need to call reclaim().
//
FtwHeader = FtwDevice->FtwLastWriteHeader;
- Offset = (UINT8 *) FtwHeader - FtwDevice->FtwWorkSpace;
+ Offset = (UINT8 *)FtwHeader - FtwDevice->FtwWorkSpace;
if (FtwDevice->FtwWorkSpace[Offset] != FTW_ERASED_BYTE) {
Offset += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize);
}
@@ -1342,8 +1385,9 @@ InitFtwProtocol (
// Restart if it's boot block
//
if ((FtwDevice->FtwLastWriteHeader->Complete != FTW_VALID_STATE) &&
- (FtwDevice->FtwLastWriteRecord->SpareComplete == FTW_VALID_STATE)
- ) {
+ (FtwDevice->FtwLastWriteRecord->SpareComplete == FTW_VALID_STATE)
+ )
+ {
if (FtwDevice->FtwLastWriteRecord->BootBlockUpdate == FTW_VALID_STATE) {
Status = FlushSpareBlockToBootBlock (FtwDevice);
DEBUG ((DEBUG_ERROR, "Ftw: Restart boot block update - %r\n", Status));
@@ -1354,15 +1398,17 @@ InitFtwProtocol (
// if (SpareCompleted) THEN Restart to fault tolerant write.
//
FvbHandle = NULL;
- FvbHandle = GetFvbByAddress ((EFI_PHYSICAL_ADDRESS) (UINTN) ((INT64) FtwDevice->SpareAreaAddress + FtwDevice->FtwLastWriteRecord->RelativeOffset), &Fvb);
+ FvbHandle = GetFvbByAddress ((EFI_PHYSICAL_ADDRESS)(UINTN)((INT64)FtwDevice->SpareAreaAddress + FtwDevice->FtwLastWriteRecord->RelativeOffset), &Fvb);
if (FvbHandle != NULL) {
Status = FtwRestart (&FtwDevice->FtwInstance, FvbHandle);
DEBUG ((DEBUG_ERROR, "Ftw: Restart last write - %r\n", Status));
ASSERT_EFI_ERROR (Status);
}
+
FtwAbort (&FtwDevice->FtwInstance);
}
}
+
//
// Hook the protocol API
//
diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c
index 703da6d..61e7a92 100644
--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c
+++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c
@@ -7,10 +7,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "FaultTolerantWrite.h"
-EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER mWorkingBlockHeader = {ZERO_GUID, 0, 0, 0, 0, {0, 0, 0}, 0};
+EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER mWorkingBlockHeader = { ZERO_GUID, 0, 0, 0, 0, { 0, 0, 0 }, 0 };
/**
Initialize a local work space header.
@@ -56,11 +55,13 @@ InitializeLocalWorkSpaceHeader (
//
// Calculate the Crc of woking block header
//
- mWorkingBlockHeader.Crc = FtwCalculateCrc32 (&mWorkingBlockHeader,
- sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER));
+ mWorkingBlockHeader.Crc = FtwCalculateCrc32 (
+ &mWorkingBlockHeader,
+ sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER)
+ );
- mWorkingBlockHeader.WorkingBlockValid = FTW_VALID_STATE;
- mWorkingBlockHeader.WorkingBlockInvalid = FTW_INVALID_STATE;
+ mWorkingBlockHeader.WorkingBlockValid = FTW_VALID_STATE;
+ mWorkingBlockHeader.WorkingBlockInvalid = FTW_INVALID_STATE;
}
/**
@@ -75,7 +76,7 @@ InitializeLocalWorkSpaceHeader (
**/
BOOLEAN
IsValidWorkSpace (
- IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
+ IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
)
{
if (WorkingHeader == NULL) {
@@ -101,7 +102,7 @@ IsValidWorkSpace (
**/
EFI_STATUS
InitWorkSpaceHeader (
- IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
+ IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader
)
{
if (WorkingHeader == NULL) {
@@ -129,17 +130,17 @@ InitWorkSpaceHeader (
**/
EFI_STATUS
ReadWorkSpaceData (
- IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
- IN UINTN BlockSize,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- OUT UINT8 *Buffer
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
+ IN UINTN BlockSize,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ OUT UINT8 *Buffer
)
{
- EFI_STATUS Status;
- UINT8 *Ptr;
- UINTN MyLength;
+ EFI_STATUS Status;
+ UINT8 *Ptr;
+ UINTN MyLength;
//
// Calculate the real Offset and Lba to write.
@@ -167,9 +168,10 @@ ReadWorkSpaceData (
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
- Offset = 0;
+
+ Offset = 0;
Length -= MyLength;
- Ptr += MyLength;
+ Ptr += MyLength;
Lba++;
}
@@ -192,17 +194,17 @@ ReadWorkSpaceData (
**/
EFI_STATUS
WriteWorkSpaceData (
- IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
- IN UINTN BlockSize,
- IN EFI_LBA Lba,
- IN UINTN Offset,
- IN UINTN Length,
- IN UINT8 *Buffer
+ IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
+ IN UINTN BlockSize,
+ IN EFI_LBA Lba,
+ IN UINTN Offset,
+ IN UINTN Length,
+ IN UINT8 *Buffer
)
{
- EFI_STATUS Status;
- UINT8 *Ptr;
- UINTN MyLength;
+ EFI_STATUS Status;
+ UINT8 *Ptr;
+ UINTN MyLength;
//
// Calculate the real Offset and Lba to write.
@@ -230,11 +232,13 @@ WriteWorkSpaceData (
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
- Offset = 0;
+
+ Offset = 0;
Length -= MyLength;
- Ptr += MyLength;
+ Ptr += MyLength;
Lba++;
}
+
return EFI_SUCCESS;
}
@@ -252,8 +256,8 @@ WorkSpaceRefresh (
IN EFI_FTW_DEVICE *FtwDevice
)
{
- EFI_STATUS Status;
- UINTN RemainingSpaceSize;
+ EFI_STATUS Status;
+ UINTN RemainingSpaceSize;
//
// Initialize WorkSpace as FTW_ERASED_BYTE
@@ -278,15 +282,16 @@ WorkSpaceRefresh (
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
+
//
// Refresh the FtwLastWriteHeader
//
Status = FtwGetLastWriteHeader (
- FtwDevice->FtwWorkSpaceHeader,
- FtwDevice->FtwWorkSpaceSize,
- &FtwDevice->FtwLastWriteHeader
- );
- RemainingSpaceSize = FtwDevice->FtwWorkSpaceSize - ((UINTN) FtwDevice->FtwLastWriteHeader - (UINTN) FtwDevice->FtwWorkSpace);
+ FtwDevice->FtwWorkSpaceHeader,
+ FtwDevice->FtwWorkSpaceSize,
+ &FtwDevice->FtwLastWriteHeader
+ );
+ RemainingSpaceSize = FtwDevice->FtwWorkSpaceSize - ((UINTN)FtwDevice->FtwLastWriteHeader - (UINTN)FtwDevice->FtwWorkSpace);
DEBUG ((DEBUG_INFO, "Ftw: Remaining work space size - %x\n", RemainingSpaceSize));
//
// If FtwGetLastWriteHeader() returns error, or the remaining space size is even not enough to contain
@@ -294,7 +299,7 @@ WorkSpaceRefresh (
// pointed by FtwDevice->FtwLastWriteHeader or record pointed by FtwDevice->FtwLastWriteRecord may contain invalid data),
// it needs to reclaim work space.
//
- if (EFI_ERROR (Status) || RemainingSpaceSize < sizeof (EFI_FAULT_TOLERANT_WRITE_HEADER) + sizeof (EFI_FAULT_TOLERANT_WRITE_RECORD)) {
+ if (EFI_ERROR (Status) || (RemainingSpaceSize < sizeof (EFI_FAULT_TOLERANT_WRITE_HEADER) + sizeof (EFI_FAULT_TOLERANT_WRITE_RECORD))) {
//
// reclaim work space in working block.
//
@@ -303,6 +308,7 @@ WorkSpaceRefresh (
DEBUG ((DEBUG_ERROR, "Ftw: Reclaim workspace - %r\n", Status));
return EFI_ABORTED;
}
+
//
// Read from working block again
//
@@ -319,21 +325,22 @@ WorkSpaceRefresh (
}
Status = FtwGetLastWriteHeader (
- FtwDevice->FtwWorkSpaceHeader,
- FtwDevice->FtwWorkSpaceSize,
- &FtwDevice->FtwLastWriteHeader
- );
+ FtwDevice->FtwWorkSpaceHeader,
+ FtwDevice->FtwWorkSpaceSize,
+ &FtwDevice->FtwLastWriteHeader
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
}
+
//
// Refresh the FtwLastWriteRecord
//
Status = FtwGetLastWriteRecord (
- FtwDevice->FtwLastWriteHeader,
- &FtwDevice->FtwLastWriteRecord
- );
+ FtwDevice->FtwLastWriteHeader,
+ &FtwDevice->FtwLastWriteRecord
+ );
if (EFI_ERROR (Status)) {
return EFI_ABORTED;
}
@@ -358,17 +365,17 @@ FtwReclaimWorkSpace (
IN BOOLEAN PreserveRecord
)
{
- EFI_STATUS Status;
- UINTN Length;
- EFI_FAULT_TOLERANT_WRITE_HEADER *Header;
- UINT8 *TempBuffer;
- UINTN TempBufferSize;
- UINTN SpareBufferSize;
- UINT8 *SpareBuffer;
- EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingBlockHeader;
- UINTN Index;
- UINT8 *Ptr;
- EFI_LBA WorkSpaceLbaOffset;
+ EFI_STATUS Status;
+ UINTN Length;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *Header;
+ UINT8 *TempBuffer;
+ UINTN TempBufferSize;
+ UINTN SpareBufferSize;
+ UINT8 *SpareBuffer;
+ EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingBlockHeader;
+ UINTN Index;
+ UINT8 *Ptr;
+ EFI_LBA WorkSpaceLbaOffset;
DEBUG ((DEBUG_INFO, "Ftw: start to reclaim work space\n"));
@@ -387,12 +394,12 @@ FtwReclaimWorkSpace (
for (Index = 0; Index < FtwDevice->NumberOfWorkBlock; Index += 1) {
Length = FtwDevice->WorkBlockSize;
Status = FtwDevice->FtwFvBlock->Read (
- FtwDevice->FtwFvBlock,
- FtwDevice->FtwWorkBlockLba + Index,
- 0,
- &Length,
- Ptr
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->FtwWorkBlockLba + Index,
+ 0,
+ &Length,
+ Ptr
+ );
if (EFI_ERROR (Status)) {
FreePool (TempBuffer);
return EFI_ABORTED;
@@ -400,11 +407,12 @@ FtwReclaimWorkSpace (
Ptr += Length;
}
+
//
// Clean up the workspace, remove all the completed records.
//
Ptr = TempBuffer +
- (UINTN) WorkSpaceLbaOffset * FtwDevice->WorkBlockSize +
+ (UINTN)WorkSpaceLbaOffset * FtwDevice->WorkBlockSize +
FtwDevice->FtwWorkSpaceBase;
//
@@ -459,9 +467,9 @@ FtwReclaimWorkSpace (
//
// Set the WorkingBlockValid and WorkingBlockInvalid as INVALID
//
- WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (TempBuffer +
- (UINTN) WorkSpaceLbaOffset * FtwDevice->WorkBlockSize +
- FtwDevice->FtwWorkSpaceBase);
+ WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *)(TempBuffer +
+ (UINTN)WorkSpaceLbaOffset * FtwDevice->WorkBlockSize +
+ FtwDevice->FtwWorkSpaceBase);
WorkingBlockHeader->WorkingBlockValid = FTW_INVALID_STATE;
WorkingBlockHeader->WorkingBlockInvalid = FTW_INVALID_STATE;
@@ -494,38 +502,42 @@ FtwReclaimWorkSpace (
Ptr += Length;
}
+
//
// Write the memory buffer to spare block
//
- Status = FtwEraseSpareBlock (FtwDevice);
+ Status = FtwEraseSpareBlock (FtwDevice);
if (EFI_ERROR (Status)) {
FreePool (TempBuffer);
FreePool (SpareBuffer);
return EFI_ABORTED;
}
- Ptr = TempBuffer;
+
+ Ptr = TempBuffer;
for (Index = 0; TempBufferSize > 0; Index += 1) {
if (TempBufferSize > FtwDevice->SpareBlockSize) {
Length = FtwDevice->SpareBlockSize;
} else {
Length = TempBufferSize;
}
+
Status = FtwDevice->FtwBackupFvb->Write (
- FtwDevice->FtwBackupFvb,
- FtwDevice->FtwSpareLba + Index,
- 0,
- &Length,
- Ptr
- );
+ FtwDevice->FtwBackupFvb,
+ FtwDevice->FtwSpareLba + Index,
+ 0,
+ &Length,
+ Ptr
+ );
if (EFI_ERROR (Status)) {
FreePool (TempBuffer);
FreePool (SpareBuffer);
return EFI_ABORTED;
}
- Ptr += Length;
+ Ptr += Length;
TempBufferSize -= Length;
}
+
//
// Free TempBuffer
//
@@ -535,16 +547,17 @@ FtwReclaimWorkSpace (
// Set the WorkingBlockValid in spare block
//
Status = FtwUpdateFvState (
- FtwDevice->FtwBackupFvb,
- FtwDevice->SpareBlockSize,
- FtwDevice->FtwSpareLba + FtwDevice->FtwWorkSpaceLbaInSpare,
- FtwDevice->FtwWorkSpaceBaseInSpare + sizeof (EFI_GUID) + sizeof (UINT32),
- WORKING_BLOCK_VALID
- );
+ FtwDevice->FtwBackupFvb,
+ FtwDevice->SpareBlockSize,
+ FtwDevice->FtwSpareLba + FtwDevice->FtwWorkSpaceLbaInSpare,
+ FtwDevice->FtwWorkSpaceBaseInSpare + sizeof (EFI_GUID) + sizeof (UINT32),
+ WORKING_BLOCK_VALID
+ );
if (EFI_ERROR (Status)) {
FreePool (SpareBuffer);
return EFI_ABORTED;
}
+
//
// Before erase the working block, set WorkingBlockInvalid in working block.
//
@@ -552,12 +565,12 @@ FtwReclaimWorkSpace (
// WorkingBlockInvalid);
//
Status = FtwUpdateFvState (
- FtwDevice->FtwFvBlock,
- FtwDevice->WorkBlockSize,
- FtwDevice->FtwWorkSpaceLba,
- FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),
- WORKING_BLOCK_INVALID
- );
+ FtwDevice->FtwFvBlock,
+ FtwDevice->WorkBlockSize,
+ FtwDevice->FtwWorkSpaceLba,
+ FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),
+ WORKING_BLOCK_INVALID
+ );
if (EFI_ERROR (Status)) {
FreePool (SpareBuffer);
return EFI_ABORTED;
@@ -573,15 +586,17 @@ FtwReclaimWorkSpace (
FreePool (SpareBuffer);
return Status;
}
+
//
// Restore spare backup buffer into spare block , if no failure happened during FtwWrite.
//
- Status = FtwEraseSpareBlock (FtwDevice);
+ Status = FtwEraseSpareBlock (FtwDevice);
if (EFI_ERROR (Status)) {
FreePool (SpareBuffer);
return EFI_ABORTED;
}
- Ptr = SpareBuffer;
+
+ Ptr = SpareBuffer;
for (Index = 0; Index < FtwDevice->NumberOfSpareBlock; Index += 1) {
Length = FtwDevice->SpareBlockSize;
Status = FtwDevice->FtwBackupFvb->Write (
diff --git a/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c b/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c
index ca5d5b4..15543f1 100644
--- a/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c
+++ b/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c
@@ -17,7 +17,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/BaseMemoryLib.h>
#include <Library/HobLib.h>
-EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
+EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEdkiiFaultTolerantWriteGuid,
NULL
@@ -44,11 +44,11 @@ FtwGetLastWriteHeader (
OUT EFI_FAULT_TOLERANT_WRITE_HEADER **FtwWriteHeader
)
{
- UINTN Offset;
- EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader;
+ UINTN Offset;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *FtwHeader;
*FtwWriteHeader = NULL;
- FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *) (FtwWorkSpaceHeader + 1);
+ FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *)(FtwWorkSpaceHeader + 1);
Offset = sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER);
while (FtwHeader->Complete == FTW_VALID_STATE) {
@@ -61,8 +61,9 @@ FtwGetLastWriteHeader (
return EFI_ABORTED;
}
- FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *) ((UINT8 *) FtwWorkSpaceHeader + Offset);
+ FtwHeader = (EFI_FAULT_TOLERANT_WRITE_HEADER *)((UINT8 *)FtwWorkSpaceHeader + Offset);
}
+
//
// Last write header is found
//
@@ -86,15 +87,15 @@ FtwGetLastWriteHeader (
**/
EFI_STATUS
FtwGetLastWriteRecord (
- IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwWriteHeader,
- OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwWriteRecord
+ IN EFI_FAULT_TOLERANT_WRITE_HEADER *FtwWriteHeader,
+ OUT EFI_FAULT_TOLERANT_WRITE_RECORD **FtwWriteRecord
)
{
- UINTN Index;
- EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord;
+ UINTN Index;
+ EFI_FAULT_TOLERANT_WRITE_RECORD *FtwRecord;
*FtwWriteRecord = NULL;
- FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) (FtwWriteHeader + 1);
+ FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)(FtwWriteHeader + 1);
//
// Try to find the last write record "that has not completed"
@@ -111,9 +112,10 @@ FtwGetLastWriteRecord (
FtwRecord++;
if (FtwWriteHeader->PrivateDataSize != 0) {
- FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord + (UINTN) FtwWriteHeader->PrivateDataSize);
+ FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)((UINTN)FtwRecord + (UINTN)FtwWriteHeader->PrivateDataSize);
}
}
+
//
// if Index == NumberOfWrites, then
// the last record has been written successfully,
@@ -121,7 +123,7 @@ FtwGetLastWriteRecord (
// also return the last record.
//
if (Index == FtwWriteHeader->NumberOfWrites) {
- *FtwWriteRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord - FTW_RECORD_SIZE (FtwWriteHeader->PrivateDataSize));
+ *FtwWriteRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *)((UINTN)FtwRecord - FTW_RECORD_SIZE (FtwWriteHeader->PrivateDataSize));
return EFI_SUCCESS;
}
@@ -141,11 +143,11 @@ FtwGetLastWriteRecord (
**/
BOOLEAN
IsValidWorkSpace (
- IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader,
- IN UINTN WorkingLength
+ IN EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *WorkingHeader,
+ IN UINTN WorkingLength
)
{
- UINT8 Data;
+ UINT8 Data;
if (WorkingHeader == NULL) {
return FALSE;
@@ -172,7 +174,7 @@ IsValidWorkSpace (
if (!CompareGuid (&gEfiSystemNvDataFvGuid, &WorkingHeader->Signature)) {
return FALSE;
} else {
- Data = *(UINT8 *) (WorkingHeader + 1);
+ Data = *(UINT8 *)(WorkingHeader + 1);
if (Data != 0xff) {
DEBUG ((DEBUG_ERROR, "FtwPei: Old format FTW structure can't be handled\n"));
ASSERT (FALSE);
@@ -182,7 +184,6 @@ IsValidWorkSpace (
}
return TRUE;
-
}
/**
@@ -202,39 +203,41 @@ PeimFaultTolerantWriteInitialize (
IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
- EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *FtwWorkingBlockHeader;
- EFI_FAULT_TOLERANT_WRITE_HEADER *FtwLastWriteHeader;
- EFI_FAULT_TOLERANT_WRITE_RECORD *FtwLastWriteRecord;
- EFI_PHYSICAL_ADDRESS WorkSpaceAddress;
- UINTN WorkSpaceLength;
- EFI_PHYSICAL_ADDRESS SpareAreaAddress;
- UINTN SpareAreaLength;
- EFI_PHYSICAL_ADDRESS WorkSpaceInSpareArea;
- FAULT_TOLERANT_WRITE_LAST_WRITE_DATA FtwLastWrite;
+ EFI_STATUS Status;
+ EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *FtwWorkingBlockHeader;
+ EFI_FAULT_TOLERANT_WRITE_HEADER *FtwLastWriteHeader;
+ EFI_FAULT_TOLERANT_WRITE_RECORD *FtwLastWriteRecord;
+ EFI_PHYSICAL_ADDRESS WorkSpaceAddress;
+ UINTN WorkSpaceLength;
+ EFI_PHYSICAL_ADDRESS SpareAreaAddress;
+ UINTN SpareAreaLength;
+ EFI_PHYSICAL_ADDRESS WorkSpaceInSpareArea;
+ FAULT_TOLERANT_WRITE_LAST_WRITE_DATA FtwLastWrite;
FtwWorkingBlockHeader = NULL;
- FtwLastWriteHeader = NULL;
- FtwLastWriteRecord = NULL;
+ FtwLastWriteHeader = NULL;
+ FtwLastWriteRecord = NULL;
- WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS) PcdGet64 (PcdFlashNvStorageFtwWorkingBase64);
+ WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdFlashNvStorageFtwWorkingBase64);
if (WorkSpaceAddress == 0) {
- WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageFtwWorkingBase);
+ WorkSpaceAddress = (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdFlashNvStorageFtwWorkingBase);
}
- WorkSpaceLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwWorkingSize);
- SpareAreaAddress = (EFI_PHYSICAL_ADDRESS) PcdGet64 (PcdFlashNvStorageFtwSpareBase64);
+ WorkSpaceLength = (UINTN)PcdGet32 (PcdFlashNvStorageFtwWorkingSize);
+
+ SpareAreaAddress = (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdFlashNvStorageFtwSpareBase64);
if (SpareAreaAddress == 0) {
- SpareAreaAddress = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageFtwSpareBase);
+ SpareAreaAddress = (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdFlashNvStorageFtwSpareBase);
}
- SpareAreaLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwSpareSize);
+
+ SpareAreaLength = (UINTN)PcdGet32 (PcdFlashNvStorageFtwSpareSize);
//
// The address of FTW working base and spare base must not be 0.
//
ASSERT ((WorkSpaceAddress != 0) && (SpareAreaAddress != 0));
- FtwWorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (UINTN) WorkSpaceAddress;
+ FtwWorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *)(UINTN)WorkSpaceAddress;
if (IsValidWorkSpace (FtwWorkingBlockHeader, WorkSpaceLength)) {
Status = FtwGetLastWriteHeader (
FtwWorkingBlockHeader,
@@ -257,16 +260,17 @@ PeimFaultTolerantWriteInitialize (
// but the target buffer has not been writen in target block from spare block, we need to build
// FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob to hold the FTW last write data.
//
- FtwLastWrite.TargetAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) ((INT64) SpareAreaAddress + FtwLastWriteRecord->RelativeOffset);
- FtwLastWrite.SpareAddress = SpareAreaAddress;
- FtwLastWrite.Length = SpareAreaLength;
+ FtwLastWrite.TargetAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)((INT64)SpareAreaAddress + FtwLastWriteRecord->RelativeOffset);
+ FtwLastWrite.SpareAddress = SpareAreaAddress;
+ FtwLastWrite.Length = SpareAreaLength;
DEBUG ((
DEBUG_INFO,
"FtwPei last write data: TargetAddress - 0x%x SpareAddress - 0x%x Length - 0x%x\n",
- (UINTN) FtwLastWrite.TargetAddress,
- (UINTN) FtwLastWrite.SpareAddress,
- (UINTN) FtwLastWrite.Length));
- BuildGuidDataHob (&gEdkiiFaultTolerantWriteGuid, (VOID *) &FtwLastWrite, sizeof (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA));
+ (UINTN)FtwLastWrite.TargetAddress,
+ (UINTN)FtwLastWrite.SpareAddress,
+ (UINTN)FtwLastWrite.Length
+ ));
+ BuildGuidDataHob (&gEdkiiFaultTolerantWriteGuid, (VOID *)&FtwLastWrite, sizeof (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA));
}
}
} else {
@@ -276,30 +280,33 @@ PeimFaultTolerantWriteInitialize (
//
WorkSpaceInSpareArea = SpareAreaAddress + SpareAreaLength - WorkSpaceLength;
while (WorkSpaceInSpareArea >= SpareAreaAddress) {
- if (CompareGuid (&gEdkiiWorkingBlockSignatureGuid, (EFI_GUID *) (UINTN) WorkSpaceInSpareArea)) {
+ if (CompareGuid (&gEdkiiWorkingBlockSignatureGuid, (EFI_GUID *)(UINTN)WorkSpaceInSpareArea)) {
//
// Found the workspace.
//
- DEBUG ((DEBUG_INFO, "FtwPei: workspace in spare block is at 0x%x.\n", (UINTN) WorkSpaceInSpareArea));
- FtwWorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (UINTN) WorkSpaceInSpareArea;
+ DEBUG ((DEBUG_INFO, "FtwPei: workspace in spare block is at 0x%x.\n", (UINTN)WorkSpaceInSpareArea));
+ FtwWorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *)(UINTN)WorkSpaceInSpareArea;
break;
}
+
WorkSpaceInSpareArea = WorkSpaceInSpareArea - sizeof (EFI_GUID);
}
+
if ((FtwWorkingBlockHeader != NULL) && IsValidWorkSpace (FtwWorkingBlockHeader, WorkSpaceLength)) {
//
// It was workspace self reclaim, build FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob for it.
//
FtwLastWrite.TargetAddress = WorkSpaceAddress - (WorkSpaceInSpareArea - SpareAreaAddress);
- FtwLastWrite.SpareAddress = SpareAreaAddress;
- FtwLastWrite.Length = SpareAreaLength;
+ FtwLastWrite.SpareAddress = SpareAreaAddress;
+ FtwLastWrite.Length = SpareAreaLength;
DEBUG ((
DEBUG_INFO,
"FtwPei last write data: TargetAddress - 0x%x SpareAddress - 0x%x Length - 0x%x\n",
- (UINTN) FtwLastWrite.TargetAddress,
- (UINTN) FtwLastWrite.SpareAddress,
- (UINTN) FtwLastWrite.Length));
- BuildGuidDataHob (&gEdkiiFaultTolerantWriteGuid, (VOID *) &FtwLastWrite, sizeof (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA));
+ (UINTN)FtwLastWrite.TargetAddress,
+ (UINTN)FtwLastWrite.SpareAddress,
+ (UINTN)FtwLastWrite.Length
+ ));
+ BuildGuidDataHob (&gEdkiiFaultTolerantWriteGuid, (VOID *)&FtwLastWrite, sizeof (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA));
} else {
//
// Both are invalid.
diff --git a/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c b/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c
index 19ab71b..8a7bbc9 100644
--- a/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c
+++ b/MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.c
@@ -16,7 +16,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_HANDLE mFileExplorerThunkHandle = NULL;
-CONST EFI_FILE_EXPLORER_PROTOCOL mFileExplorerProtocol = {
+CONST EFI_FILE_EXPLORER_PROTOCOL mFileExplorerProtocol = {
ChooseFile
};
@@ -35,15 +35,16 @@ CONST EFI_FILE_EXPLORER_PROTOCOL mFileExplorerProtocol = {
EFI_STATUS
EFIAPI
FileExplorerEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
Status = gBS->InstallMultipleProtocolInterfaces (
&mFileExplorerThunkHandle,
- &gEfiFileExplorerProtocolGuid, &mFileExplorerProtocol,
+ &gEfiFileExplorerProtocolGuid,
+ &mFileExplorerProtocol,
NULL
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/ComponentName.c b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/ComponentName.c
index 8ab660a..663022d 100644
--- a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/ComponentName.c
+++ b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/ComponentName.c
@@ -22,9 +22,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gFvSimpleFileSystemCo
//
// EFI Component Name 2 Protocol
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gFvSimpleFileSystemComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) FvSimpleFileSystemComponentNameGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) FvSimpleFileSystemComponentNameGetControllerName,
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gFvSimpleFileSystemComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)FvSimpleFileSystemComponentNameGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)FvSimpleFileSystemComponentNameGetControllerName,
"en"
};
@@ -32,7 +32,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gFvSimpleFileSystemCo
// Driver name table for FvSimpleFileSystem module.
// It is shared by the implementation of ComponentName & ComponentName2 Protocol.
//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mFvSimpleFileSystemDriverNameTable[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mFvSimpleFileSystemDriverNameTable[] = {
{
"eng;en",
(CHAR16 *)L"Fv Simple File System Driver"
@@ -170,11 +170,11 @@ FvSimpleFileSystemComponentNameGetDriverName (
EFI_STATUS
EFIAPI
FvSimpleFileSystemComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
diff --git a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c
index f33f7f7..0252db1 100644
--- a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c
+++ b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystem.c
@@ -23,7 +23,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Template for EFI_FILE_SYSTEM_INFO data structure.
//
-EFI_FILE_SYSTEM_INFO mFsInfoTemplate = {
+EFI_FILE_SYSTEM_INFO mFsInfoTemplate = {
0, // Populate at runtime
TRUE, // Read-only
0, // Don't know volume size
@@ -35,7 +35,7 @@ EFI_FILE_SYSTEM_INFO mFsInfoTemplate = {
//
// Template for EFI_FILE_PROTOCOL data structure.
//
-EFI_FILE_PROTOCOL mFileSystemTemplate = {
+EFI_FILE_PROTOCOL mFileSystemTemplate = {
EFI_FILE_PROTOCOL_REVISION,
FvSimpleFileSystemOpen,
FvSimpleFileSystemClose,
@@ -68,15 +68,15 @@ EFI_FILE_PROTOCOL mFileSystemTemplate = {
**/
EFI_STATUS
FvFsFindExecutableSection (
- IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
- IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
- IN OUT UINTN *BufferSize,
- IN OUT VOID **Buffer
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
+ IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
+ IN OUT UINTN *BufferSize,
+ IN OUT VOID **Buffer
)
{
- EFI_SECTION_TYPE SectionType;
- UINT32 AuthenticationStatus;
- EFI_STATUS Status;
+ EFI_SECTION_TYPE SectionType;
+ UINT32 AuthenticationStatus;
+ EFI_STATUS Status;
for (SectionType = EFI_SECTION_PE32; SectionType <= EFI_SECTION_TE; SectionType++) {
Status = FvProtocol->ReadSection (
@@ -109,16 +109,16 @@ FvFsFindExecutableSection (
**/
EFI_STATUS
FvFsGetFileSize (
- IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
- IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
+ IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
)
{
- UINT32 AuthenticationStatus;
- EFI_FV_FILETYPE FoundType;
- EFI_FV_FILE_ATTRIBUTES Attributes;
- EFI_STATUS Status;
- UINT8 IgnoredByte;
- VOID *IgnoredPtr;
+ UINT32 AuthenticationStatus;
+ EFI_FV_FILETYPE FoundType;
+ EFI_FV_FILE_ATTRIBUTES Attributes;
+ EFI_STATUS Status;
+ UINT8 IgnoredByte;
+ VOID *IgnoredPtr;
//
// To get the size of a section, we pass 0 for BufferSize. But we can't pass
@@ -126,14 +126,14 @@ FvFsGetFileSize (
// can't pass NULL for *Buffer, as that will cause the callee to allocate
// a buffer of the sections size.
//
- IgnoredPtr = &IgnoredByte;
+ IgnoredPtr = &IgnoredByte;
FvFileInfo->FileInfo.FileSize = 0;
if (FV_FILETYPE_IS_EXECUTABLE (FvFileInfo->Type)) {
//
// Get the size of the first executable section out of the file.
//
- Status = FvFsFindExecutableSection (FvProtocol, FvFileInfo, (UINTN*)&FvFileInfo->FileInfo.FileSize, &IgnoredPtr);
+ Status = FvFsFindExecutableSection (FvProtocol, FvFileInfo, (UINTN *)&FvFileInfo->FileInfo.FileSize, &IgnoredPtr);
if (Status == EFI_WARN_BUFFER_TOO_SMALL) {
return EFI_SUCCESS;
}
@@ -147,12 +147,13 @@ FvFsGetFileSize (
EFI_SECTION_RAW,
0,
&IgnoredPtr,
- (UINTN*)&FvFileInfo->FileInfo.FileSize,
+ (UINTN *)&FvFileInfo->FileInfo.FileSize,
&AuthenticationStatus
);
if (Status == EFI_WARN_BUFFER_TOO_SMALL) {
return EFI_SUCCESS;
}
+
if (EFI_ERROR (Status)) {
//
// Didn't find a raw section, just return the whole file's size.
@@ -161,7 +162,7 @@ FvFsGetFileSize (
FvProtocol,
&FvFileInfo->NameGuid,
NULL,
- (UINTN*)&FvFileInfo->FileInfo.FileSize,
+ (UINTN *)&FvFileInfo->FileInfo.FileSize,
&FoundType,
&Attributes,
&AuthenticationStatus
@@ -175,7 +176,7 @@ FvFsGetFileSize (
FvProtocol,
&FvFileInfo->NameGuid,
NULL,
- (UINTN*)&FvFileInfo->FileInfo.FileSize,
+ (UINTN *)&FvFileInfo->FileInfo.FileSize,
&FoundType,
&Attributes,
&AuthenticationStatus
@@ -211,16 +212,16 @@ FvFsGetFileSize (
**/
EFI_STATUS
FvFsReadFile (
- IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
- IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
- IN OUT UINTN *BufferSize,
- IN OUT VOID **Buffer
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
+ IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
+ IN OUT UINTN *BufferSize,
+ IN OUT VOID **Buffer
)
{
- UINT32 AuthenticationStatus;
- EFI_FV_FILETYPE FoundType;
- EFI_FV_FILE_ATTRIBUTES Attributes;
- EFI_STATUS Status;
+ UINT32 AuthenticationStatus;
+ EFI_FV_FILETYPE FoundType;
+ EFI_FV_FILE_ATTRIBUTES Attributes;
+ EFI_STATUS Status;
if (FV_FILETYPE_IS_EXECUTABLE (FvFileInfo->Type)) {
//
@@ -290,12 +291,12 @@ FvFsReadFile (
**/
EFI_STATUS
FvFsGetFileInfo (
- IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
- IN OUT UINTN *BufferSize,
- OUT EFI_FILE_INFO *FileInfo
+ IN FV_FILESYSTEM_FILE_INFO *FvFileInfo,
+ IN OUT UINTN *BufferSize,
+ OUT EFI_FILE_INFO *FileInfo
)
{
- UINTN InfoSize;
+ UINTN InfoSize;
InfoSize = (UINTN)FvFileInfo->FileInfo.Size;
if (*BufferSize < InfoSize) {
@@ -325,19 +326,21 @@ FvFsGetFileInfo (
BOOLEAN
EFIAPI
RemoveLastItemFromPath (
- IN OUT CHAR16 *Path
+ IN OUT CHAR16 *Path
)
{
- CHAR16 *Walker;
- CHAR16 *LastSlash;
+ CHAR16 *Walker;
+ CHAR16 *LastSlash;
+
//
// get directory name from path... ('chop' off extra)
//
for ( Walker = Path, LastSlash = NULL
- ; Walker != NULL && *Walker != CHAR_NULL
- ; Walker++
- ){
- if (*Walker == L'\\' && *(Walker + 1) != CHAR_NULL) {
+ ; Walker != NULL && *Walker != CHAR_NULL
+ ; Walker++
+ )
+ {
+ if ((*Walker == L'\\') && (*(Walker + 1) != CHAR_NULL)) {
LastSlash = Walker + 1;
}
}
@@ -366,10 +369,10 @@ RemoveLastItemFromPath (
@return Path in all other instances.
**/
-CHAR16*
+CHAR16 *
EFIAPI
TrimFilePathToAbsolutePath (
- IN CHAR16 *Path
+ IN CHAR16 *Path
)
{
CHAR16 *TempString;
@@ -382,7 +385,7 @@ TrimFilePathToAbsolutePath (
//
// Fix up the '/' vs '\'
//
- for (TempString = Path ; (TempString != NULL) && (*TempString != CHAR_NULL); TempString++) {
+ for (TempString = Path; (TempString != NULL) && (*TempString != CHAR_NULL); TempString++) {
if (*TempString == L'/') {
*TempString = L'\\';
}
@@ -392,15 +395,15 @@ TrimFilePathToAbsolutePath (
// Fix up the ..
//
while ((TempString = StrStr (Path, L"\\..\\")) != NULL) {
- *TempString = CHAR_NULL;
- TempString += 4;
+ *TempString = CHAR_NULL;
+ TempString += 4;
RemoveLastItemFromPath (Path);
- TempSize = StrSize (TempString);
+ TempSize = StrSize (TempString);
CopyMem (Path + StrLen (Path), TempString, TempSize);
}
if (((TempString = StrStr (Path, L"\\..")) != NULL) && (*(TempString + 3) == CHAR_NULL)) {
- *TempString = CHAR_NULL;
+ *TempString = CHAR_NULL;
RemoveLastItemFromPath (Path);
}
@@ -408,10 +411,10 @@ TrimFilePathToAbsolutePath (
// Fix up the .
//
while ((TempString = StrStr (Path, L"\\.\\")) != NULL) {
- *TempString = CHAR_NULL;
- TempString += 2;
- TempSize = StrSize (TempString);
- CopyMem(Path + StrLen (Path), TempString, TempSize);
+ *TempString = CHAR_NULL;
+ TempString += 2;
+ TempSize = StrSize (TempString);
+ CopyMem (Path + StrLen (Path), TempString, TempSize);
}
if (((TempString = StrStr (Path, L"\\.")) != NULL) && (*(TempString + 2) == CHAR_NULL)) {
@@ -419,13 +422,13 @@ TrimFilePathToAbsolutePath (
}
while ((TempString = StrStr (Path, L"\\\\")) != NULL) {
- *TempString = CHAR_NULL;
- TempString += 1;
- TempSize = StrSize(TempString);
- CopyMem(Path + StrLen(Path), TempString, TempSize);
+ *TempString = CHAR_NULL;
+ TempString += 1;
+ TempSize = StrSize (TempString);
+ CopyMem (Path + StrLen (Path), TempString, TempSize);
}
- if (((TempString = StrStr(Path, L"\\\\")) != NULL) && (*(TempString + 1) == CHAR_NULL)) {
+ if (((TempString = StrStr (Path, L"\\\\")) != NULL) && (*(TempString + 1) == CHAR_NULL)) {
*(TempString) = CHAR_NULL;
}
@@ -465,35 +468,35 @@ TrimFilePathToAbsolutePath (
EFI_STATUS
EFIAPI
FvSimpleFileSystemOpen (
- IN EFI_FILE_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **NewHandle,
- IN CHAR16 *FileName,
- IN UINT64 OpenMode,
- IN UINT64 Attributes
+ IN EFI_FILE_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **NewHandle,
+ IN CHAR16 *FileName,
+ IN UINT64 OpenMode,
+ IN UINT64 Attributes
)
{
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE *File;
- FV_FILESYSTEM_FILE *NewFile;
- FV_FILESYSTEM_FILE_INFO *FvFileInfo;
- LIST_ENTRY *FvFileInfoLink;
- EFI_STATUS Status;
- UINTN FileNameLength;
- UINTN NewFileNameLength;
- CHAR16 *FileNameWithExtension;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE *File;
+ FV_FILESYSTEM_FILE *NewFile;
+ FV_FILESYSTEM_FILE_INFO *FvFileInfo;
+ LIST_ENTRY *FvFileInfoLink;
+ EFI_STATUS Status;
+ UINTN FileNameLength;
+ UINTN NewFileNameLength;
+ CHAR16 *FileNameWithExtension;
//
// Check for a valid mode
//
switch (OpenMode) {
- case EFI_FILE_MODE_READ:
- break;
+ case EFI_FILE_MODE_READ:
+ break;
- default:
- return EFI_WRITE_PROTECTED;
+ default:
+ return EFI_WRITE_PROTECTED;
}
- File = FVFS_FILE_FROM_FILE_THIS (This);
+ File = FVFS_FILE_FROM_FILE_THIS (This);
Instance = File->Instance;
FileName = TrimFilePathToAbsolutePath (FileName);
@@ -508,13 +511,14 @@ FvSimpleFileSystemOpen (
//
// Check for opening root
//
- if (StrCmp (FileName, L".") == 0 || StrCmp (FileName, L"") == 0) {
+ if ((StrCmp (FileName, L".") == 0) || (StrCmp (FileName, L"") == 0)) {
NewFile = AllocateZeroPool (sizeof (FV_FILESYSTEM_FILE));
if (NewFile == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- NewFile->Signature = FVFS_FILE_SIGNATURE;
- NewFile->Instance = Instance;
+
+ NewFile->Signature = FVFS_FILE_SIGNATURE;
+ NewFile->Instance = Instance;
NewFile->FvFileInfo = File->FvFileInfo;
CopyMem (&NewFile->FileProtocol, &mFileSystemTemplate, sizeof (mFileSystemTemplate));
InitializeListHead (&NewFile->Link);
@@ -535,8 +539,9 @@ FvSimpleFileSystemOpen (
Status = EFI_NOT_FOUND;
FvFileInfo = NULL;
for (FvFileInfoLink = GetFirstNode (&Instance->FileInfoHead);
- !IsNull (&Instance->FileInfoHead, FvFileInfoLink);
- FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink)) {
+ !IsNull (&Instance->FileInfoHead, FvFileInfoLink);
+ FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink))
+ {
FvFileInfo = FVFS_FILE_INFO_FROM_LINK (FvFileInfoLink);
if (mUnicodeCollation->StriColl (mUnicodeCollation, &FvFileInfo->FileInfo.FileName[0], FileName) == 0) {
Status = EFI_SUCCESS;
@@ -555,14 +560,15 @@ FvSimpleFileSystemOpen (
if (mUnicodeCollation->StriColl (mUnicodeCollation, FileName + FileNameLength - 4, L".efi") != 0) {
// No, there was no extension. So add one and search again for the file
// NewFileNameLength = FileNameLength + 1 + 4 = (Number of non-null character) + (file extension) + (a null character)
- NewFileNameLength = FileNameLength + 1 + 4;
+ NewFileNameLength = FileNameLength + 1 + 4;
FileNameWithExtension = AllocatePool (NewFileNameLength * 2);
StrCpyS (FileNameWithExtension, NewFileNameLength, FileName);
StrCatS (FileNameWithExtension, NewFileNameLength, L".EFI");
for (FvFileInfoLink = GetFirstNode (&Instance->FileInfoHead);
- !IsNull (&Instance->FileInfoHead, FvFileInfoLink);
- FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink)) {
+ !IsNull (&Instance->FileInfoHead, FvFileInfoLink);
+ FvFileInfoLink = GetNextNode (&Instance->FileInfoHead, FvFileInfoLink))
+ {
FvFileInfo = FVFS_FILE_INFO_FROM_LINK (FvFileInfoLink);
if (mUnicodeCollation->StriColl (mUnicodeCollation, &FvFileInfo->FileInfo.FileName[0], FileNameWithExtension) == 0) {
Status = EFI_SUCCESS;
@@ -578,8 +584,8 @@ FvSimpleFileSystemOpen (
return EFI_OUT_OF_RESOURCES;
}
- NewFile->Signature = FVFS_FILE_SIGNATURE;
- NewFile->Instance = Instance;
+ NewFile->Signature = FVFS_FILE_SIGNATURE;
+ NewFile->Instance = Instance;
NewFile->FvFileInfo = FvFileInfo;
CopyMem (&NewFile->FileProtocol, &mFileSystemTemplate, sizeof (mFileSystemTemplate));
InitializeListHead (&NewFile->Link);
@@ -607,16 +613,17 @@ FvSimpleFileSystemClose (
IN EFI_FILE_PROTOCOL *This
)
{
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE *File;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE *File;
- File = FVFS_FILE_FROM_FILE_THIS (This);
+ File = FVFS_FILE_FROM_FILE_THIS (This);
Instance = File->Instance;
if (File != Instance->Root) {
RemoveEntryList (&File->Link);
FreePool (File);
}
+
return EFI_SUCCESS;
}
@@ -643,19 +650,19 @@ FvSimpleFileSystemClose (
EFI_STATUS
EFIAPI
FvSimpleFileSystemRead (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE *File;
- EFI_STATUS Status;
- LIST_ENTRY *FvFileInfoLink;
- VOID *FileBuffer;
- UINTN FileSize;
-
- File = FVFS_FILE_FROM_FILE_THIS (This);
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE *File;
+ EFI_STATUS Status;
+ LIST_ENTRY *FvFileInfoLink;
+ VOID *FileBuffer;
+ UINTN FileSize;
+
+ File = FVFS_FILE_FROM_FILE_THIS (This);
Instance = File->Instance;
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
@@ -679,6 +686,7 @@ FvSimpleFileSystemRead (
File->DirReadNext = FVFS_FILE_INFO_FROM_LINK (FvFileInfoLink);
}
}
+
return Status;
} else {
//
@@ -706,7 +714,7 @@ FvSimpleFileSystemRead (
*BufferSize = (UINTN)(FileSize - File->Position);
}
- CopyMem (Buffer, (UINT8*)FileBuffer + File->Position, *BufferSize);
+ CopyMem (Buffer, (UINT8 *)FileBuffer + File->Position, *BufferSize);
File->Position += *BufferSize;
FreePool (FileBuffer);
@@ -738,15 +746,15 @@ FvSimpleFileSystemRead (
EFI_STATUS
EFIAPI
FvSimpleFileSystemWrite (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
)
{
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE *File;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE *File;
- File = FVFS_FILE_FROM_FILE_THIS (This);
+ File = FVFS_FILE_FROM_FILE_THIS (This);
Instance = File->Instance;
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
@@ -771,14 +779,14 @@ FvSimpleFileSystemWrite (
EFI_STATUS
EFIAPI
FvSimpleFileSystemGetPosition (
- IN EFI_FILE_PROTOCOL *This,
- OUT UINT64 *Position
+ IN EFI_FILE_PROTOCOL *This,
+ OUT UINT64 *Position
)
{
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE *File;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE *File;
- File = FVFS_FILE_FROM_FILE_THIS (This);
+ File = FVFS_FILE_FROM_FILE_THIS (This);
Instance = File->Instance;
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
@@ -805,20 +813,21 @@ FvSimpleFileSystemGetPosition (
EFI_STATUS
EFIAPI
FvSimpleFileSystemSetPosition (
- IN EFI_FILE_PROTOCOL *This,
- IN UINT64 Position
+ IN EFI_FILE_PROTOCOL *This,
+ IN UINT64 Position
)
{
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE *File;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE *File;
- File = FVFS_FILE_FROM_FILE_THIS (This);
+ File = FVFS_FILE_FROM_FILE_THIS (This);
Instance = File->Instance;
if (File->FvFileInfo == Instance->Root->FvFileInfo) {
if (Position != 0) {
return EFI_UNSUPPORTED;
}
+
//
// Reset directory position to first entry
//
@@ -871,10 +880,10 @@ FvSimpleFileSystemFlush (
EFI_STATUS
EFIAPI
FvSimpleFileSystemDelete (
- IN EFI_FILE_PROTOCOL *This
+ IN EFI_FILE_PROTOCOL *This
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = FvSimpleFileSystemClose (This);
ASSERT_EFI_ERROR (Status);
@@ -905,18 +914,18 @@ FvSimpleFileSystemDelete (
EFI_STATUS
EFIAPI
FvSimpleFileSystemGetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
- FV_FILESYSTEM_FILE *File;
- EFI_FILE_SYSTEM_INFO *FsInfoOut;
- EFI_FILE_SYSTEM_VOLUME_LABEL *FsVolumeLabel;
- FV_FILESYSTEM_INSTANCE *Instance;
- UINTN Size;
- EFI_STATUS Status;
+ FV_FILESYSTEM_FILE *File;
+ EFI_FILE_SYSTEM_INFO *FsInfoOut;
+ EFI_FILE_SYSTEM_VOLUME_LABEL *FsVolumeLabel;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ UINTN Size;
+ EFI_STATUS Status;
File = FVFS_FILE_FROM_FILE_THIS (This);
@@ -936,14 +945,15 @@ FvSimpleFileSystemGetInfo (
//
// Cast output buffer for convenience
//
- FsInfoOut = (EFI_FILE_SYSTEM_INFO *) Buffer;
+ FsInfoOut = (EFI_FILE_SYSTEM_INFO *)Buffer;
CopyMem (FsInfoOut, &mFsInfoTemplate, sizeof (EFI_FILE_SYSTEM_INFO));
- Status = StrnCpyS ( FsInfoOut->VolumeLabel,
- (*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)) / sizeof (CHAR16),
- Instance->VolumeLabel,
- StrLen (Instance->VolumeLabel)
- );
+ Status = StrnCpyS (
+ FsInfoOut->VolumeLabel,
+ (*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_INFO, VolumeLabel)) / sizeof (CHAR16),
+ Instance->VolumeLabel,
+ StrLen (Instance->VolumeLabel)
+ );
ASSERT_EFI_ERROR (Status);
FsInfoOut->Size = Size;
return Status;
@@ -951,24 +961,25 @@ FvSimpleFileSystemGetInfo (
//
// Return file info
//
- return FvFsGetFileInfo (File->FvFileInfo, BufferSize, (EFI_FILE_INFO *) Buffer);
+ return FvFsGetFileInfo (File->FvFileInfo, BufferSize, (EFI_FILE_INFO *)Buffer);
} else if (CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid)) {
//
// Return Volume Label
//
Instance = File->Instance;
- Size = sizeof (EFI_FILE_SYSTEM_VOLUME_LABEL) + StrSize (Instance->VolumeLabel) - sizeof (CHAR16);;
+ Size = sizeof (EFI_FILE_SYSTEM_VOLUME_LABEL) + StrSize (Instance->VolumeLabel) - sizeof (CHAR16);
if (*BufferSize < Size) {
*BufferSize = Size;
return EFI_BUFFER_TOO_SMALL;
}
- FsVolumeLabel = (EFI_FILE_SYSTEM_VOLUME_LABEL*) Buffer;
- Status = StrnCpyS (FsVolumeLabel->VolumeLabel,
- (*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel)) / sizeof (CHAR16),
- Instance->VolumeLabel,
- StrLen (Instance->VolumeLabel)
- );
+ FsVolumeLabel = (EFI_FILE_SYSTEM_VOLUME_LABEL *)Buffer;
+ Status = StrnCpyS (
+ FsVolumeLabel->VolumeLabel,
+ (*BufferSize - OFFSET_OF (EFI_FILE_SYSTEM_VOLUME_LABEL, VolumeLabel)) / sizeof (CHAR16),
+ Instance->VolumeLabel,
+ StrLen (Instance->VolumeLabel)
+ );
ASSERT_EFI_ERROR (Status);
return Status;
} else {
@@ -1013,18 +1024,18 @@ FvSimpleFileSystemGetInfo (
EFI_STATUS
EFIAPI
FvSimpleFileSystemSetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
if (CompareGuid (InformationType, &gEfiFileSystemInfoGuid) ||
CompareGuid (InformationType, &gEfiFileInfoGuid) ||
- CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid)) {
+ CompareGuid (InformationType, &gEfiFileSystemVolumeLabelInfoIdGuid))
+ {
return EFI_WRITE_PROTECTED;
}
return EFI_UNSUPPORTED;
}
-
diff --git a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemEntryPoint.c b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemEntryPoint.c
index f5d6275..3f96407 100644
--- a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemEntryPoint.c
+++ b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemEntryPoint.c
@@ -20,21 +20,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "FvSimpleFileSystemInternal.h"
-EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;
+EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;
//
// A Guid string is 32 hex characters with 4 hyphens and a NULL-terminated char: 37 characters total
//
-#define GUID_STRING_SIZE (37 * sizeof (CHAR16))
+#define GUID_STRING_SIZE (37 * sizeof (CHAR16))
-#define FVFS_VOLUME_LABEL_PREFIX L"Firmware Volume: "
-#define FVFS_VOLUME_LABEL_SIZE (sizeof (FVFS_VOLUME_LABEL_PREFIX) + GUID_STRING_SIZE - sizeof (CHAR16))
-#define FVFS_FALLBACK_VOLUME_LABEL L"Firmware Volume"
+#define FVFS_VOLUME_LABEL_PREFIX L"Firmware Volume: "
+#define FVFS_VOLUME_LABEL_SIZE (sizeof (FVFS_VOLUME_LABEL_PREFIX) + GUID_STRING_SIZE - sizeof (CHAR16))
+#define FVFS_FALLBACK_VOLUME_LABEL L"Firmware Volume"
//
// Template for EFI_SIMPLE_FILE_SYSTEM_PROTOCOL data structure.
//
-EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mSimpleFsTemplate = {
+EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mSimpleFsTemplate = {
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION,
FvSimpleFileSystemOpenVolume
};
@@ -42,7 +42,7 @@ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL mSimpleFsTemplate = {
//
// Template for EFI_DRIVER_BINDING_PROTOCOL data structure.
//
-EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
+EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
FvSimpleFileSystemDriverSupported,
FvSimpleFileSystemDriverStart,
FvSimpleFileSystemDriverStop,
@@ -74,29 +74,29 @@ EFI_DRIVER_BINDING_PROTOCOL mDriverBinding = {
EFI_STATUS
EFIAPI
FvSimpleFileSystemOpenVolume (
- IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **RootFile
+ IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **RootFile
)
{
- EFI_STATUS Status;
- FV_FILESYSTEM_FILE *Root;
- CHAR16 *UiSection;
- EFI_GUID NameGuid;
- EFI_FV_FILE_ATTRIBUTES Attributes;
- UINT32 Authentication;
- UINTN Key;
- EFI_FV_FILETYPE FileType;
- UINTN Size;
- FV_FILESYSTEM_INSTANCE *Instance;
- FV_FILESYSTEM_FILE_INFO *FvFileInfo;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
- CHAR16 *Name;
- UINTN NameLen;
- UINTN NumChars;
- UINTN DestMax;
+ EFI_STATUS Status;
+ FV_FILESYSTEM_FILE *Root;
+ CHAR16 *UiSection;
+ EFI_GUID NameGuid;
+ EFI_FV_FILE_ATTRIBUTES Attributes;
+ UINT32 Authentication;
+ UINTN Key;
+ EFI_FV_FILETYPE FileType;
+ UINTN Size;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ FV_FILESYSTEM_FILE_INFO *FvFileInfo;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
+ CHAR16 *Name;
+ UINTN NameLen;
+ UINTN NumChars;
+ UINTN DestMax;
Instance = FVFS_INSTANCE_FROM_SIMPLE_FS_THIS (This);
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
if (Instance->Root == NULL) {
//
@@ -113,8 +113,9 @@ FvSimpleFileSystemOpenVolume (
CopyMem (&Root->FileProtocol, &mFileSystemTemplate, sizeof (mFileSystemTemplate));
Root->FvFileInfo = AllocateZeroPool (sizeof (FV_FILESYSTEM_FILE_INFO));
if (Root->FvFileInfo == NULL) {
- return EFI_OUT_OF_RESOURCES;
+ return EFI_OUT_OF_RESOURCES;
}
+
Root->FvFileInfo->FileInfo.Size = sizeof (EFI_FILE_INFO);
Root->FvFileInfo->FileInfo.Attribute = EFI_FILE_DIRECTORY | EFI_FILE_READ_ONLY;
@@ -149,15 +150,15 @@ FvSimpleFileSystemOpenVolume (
// its NameGuid.
//
UiSection = NULL;
- Status = FvProtocol->ReadSection (
- FvProtocol,
- &NameGuid,
- EFI_SECTION_USER_INTERFACE,
- 0,
- (VOID **)&UiSection,
- &Size,
- &Authentication
- );
+ Status = FvProtocol->ReadSection (
+ FvProtocol,
+ &NameGuid,
+ EFI_SECTION_USER_INTERFACE,
+ 0,
+ (VOID **)&UiSection,
+ &Size,
+ &Authentication
+ );
if (!EFI_ERROR (Status)) {
Name = UiSection;
} else {
@@ -165,6 +166,7 @@ FvSimpleFileSystemOpenVolume (
if (Name == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
NumChars = UnicodeSPrint (Name, GUID_STRING_SIZE, L"%g", &NameGuid);
ASSERT ((NumChars + 1) * sizeof (CHAR16) == GUID_STRING_SIZE);
}
@@ -196,12 +198,12 @@ FvSimpleFileSystemOpenVolume (
ASSERT_EFI_ERROR (Status);
if (FV_FILETYPE_IS_EXECUTABLE (FileType)) {
- Status = StrnCatS (&FvFileInfo->FileInfo.FileName[0], DestMax, L".efi", StrLen (L".efi"));
+ Status = StrnCatS (&FvFileInfo->FileInfo.FileName[0], DestMax, L".efi", StrLen (L".efi"));
ASSERT_EFI_ERROR (Status);
}
- FvFileInfo->FileInfo.Size = sizeof (EFI_FILE_INFO) + NameLen - sizeof (CHAR16);
- Status = FvFsGetFileSize (FvProtocol, FvFileInfo);
+ FvFileInfo->FileInfo.Size = sizeof (EFI_FILE_INFO) + NameLen - sizeof (CHAR16);
+ Status = FvFsGetFileSize (FvProtocol, FvFileInfo);
ASSERT_EFI_ERROR (Status);
FvFileInfo->FileInfo.PhysicalSize = FvFileInfo->FileInfo.FileSize;
FvFileInfo->FileInfo.Attribute = EFI_FILE_READ_ONLY;
@@ -209,7 +211,6 @@ FvSimpleFileSystemOpenVolume (
InsertHeadList (&Instance->FileInfoHead, &FvFileInfo->Link);
FreePool (Name);
-
} while (TRUE);
if (Status == EFI_NOT_FOUND) {
@@ -243,10 +244,10 @@ FvSimpleFileSystemOpenVolume (
**/
EFI_STATUS
InitializeUnicodeCollationSupportWorker (
- IN EFI_HANDLE AgentHandle,
- IN EFI_GUID *ProtocolGuid,
- IN CONST CHAR16 *VariableName,
- IN CONST CHAR8 *DefaultLanguage
+ IN EFI_HANDLE AgentHandle,
+ IN EFI_GUID *ProtocolGuid,
+ IN CONST CHAR16 *VariableName,
+ IN CONST CHAR8 *DefaultLanguage
)
{
EFI_STATUS ReturnStatus;
@@ -270,8 +271,8 @@ InitializeUnicodeCollationSupportWorker (
return Status;
}
- Iso639Language = (BOOLEAN) (ProtocolGuid == &gEfiUnicodeCollationProtocolGuid);
- GetEfiGlobalVariable2 (VariableName, (VOID**) &Language, NULL);
+ Iso639Language = (BOOLEAN)(ProtocolGuid == &gEfiUnicodeCollationProtocolGuid);
+ GetEfiGlobalVariable2 (VariableName, (VOID **)&Language, NULL);
ReturnStatus = EFI_UNSUPPORTED;
for (Index = 0; Index < NumHandles; Index++) {
@@ -281,7 +282,7 @@ InitializeUnicodeCollationSupportWorker (
Status = gBS->OpenProtocol (
Handles[Index],
ProtocolGuid,
- (VOID **) &Uci,
+ (VOID **)&Uci,
AgentHandle,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -304,7 +305,7 @@ InitializeUnicodeCollationSupportWorker (
if (BestLanguage != NULL) {
FreePool (BestLanguage);
mUnicodeCollation = Uci;
- ReturnStatus = EFI_SUCCESS;
+ ReturnStatus = EFI_SUCCESS;
break;
}
}
@@ -333,11 +334,10 @@ InitializeUnicodeCollationSupportWorker (
**/
EFI_STATUS
InitializeUnicodeCollationSupport (
- IN EFI_HANDLE AgentHandle
+ IN EFI_HANDLE AgentHandle
)
{
-
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = EFI_UNSUPPORTED;
@@ -348,7 +348,7 @@ InitializeUnicodeCollationSupport (
AgentHandle,
&gEfiUnicodeCollation2ProtocolGuid,
L"PlatformLang",
- (CONST CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang)
+ (CONST CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultPlatformLang)
);
//
// If the attempt to use Unicode Collation 2 Protocol fails, then we fall back
@@ -359,7 +359,7 @@ InitializeUnicodeCollationSupport (
AgentHandle,
&gEfiUnicodeCollationProtocolGuid,
L"Lang",
- (CONST CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultLang)
+ (CONST CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultLang)
);
}
@@ -419,12 +419,12 @@ FvSimpleFileSystemDriverStart (
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
)
{
- EFI_STATUS Status;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
- FV_FILESYSTEM_INSTANCE *Instance;
- EFI_DEVICE_PATH_PROTOCOL *FvDevicePath;
- EFI_GUID *FvGuid;
- UINTN NumChars;
+ EFI_STATUS Status;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ EFI_DEVICE_PATH_PROTOCOL *FvDevicePath;
+ EFI_GUID *FvGuid;
+ UINTN NumChars;
Status = InitializeUnicodeCollationSupport (DriverBinding->DriverBindingHandle);
if (EFI_ERROR (Status)) {
@@ -437,7 +437,7 @@ FvSimpleFileSystemDriverStart (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiFirmwareVolume2ProtocolGuid,
- (VOID **) &FvProtocol,
+ (VOID **)&FvProtocol,
gImageHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -452,14 +452,14 @@ FvSimpleFileSystemDriverStart (
Instance = AllocateZeroPool (sizeof (FV_FILESYSTEM_INSTANCE));
ASSERT (Instance != NULL);
- Instance->Root = NULL;
+ Instance->Root = NULL;
Instance->FvProtocol = FvProtocol;
- Instance->Signature = FVFS_INSTANCE_SIGNATURE;
+ Instance->Signature = FVFS_INSTANCE_SIGNATURE;
InitializeListHead (&Instance->FileInfoHead);
InitializeListHead (&Instance->FileHead);
CopyMem (&Instance->SimpleFs, &mSimpleFsTemplate, sizeof (mSimpleFsTemplate));
- Status = gBS->InstallProtocolInterface(
+ Status = gBS->InstallProtocolInterface (
&ControllerHandle,
&gEfiSimpleFileSystemProtocolGuid,
EFI_NATIVE_INTERFACE,
@@ -472,21 +472,22 @@ FvSimpleFileSystemDriverStart (
// Get the device path to find the FV's GUID
//
Instance->VolumeLabel = NULL;
- Status = gBS->OpenProtocol (
- ControllerHandle,
- &gEfiDevicePathProtocolGuid,
- (VOID **) &FvDevicePath,
- gImageHandle,
- ControllerHandle,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ Status = gBS->OpenProtocol (
+ ControllerHandle,
+ &gEfiDevicePathProtocolGuid,
+ (VOID **)&FvDevicePath,
+ gImageHandle,
+ ControllerHandle,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (!EFI_ERROR (Status)) {
//
// Iterate over device path until we find a firmware volume node
//
while (!IsDevicePathEndType (FvDevicePath)) {
- if (DevicePathType (FvDevicePath) == MEDIA_DEVICE_PATH &&
- DevicePathSubType (FvDevicePath) == MEDIA_PIWG_FW_VOL_DP) {
+ if ((DevicePathType (FvDevicePath) == MEDIA_DEVICE_PATH) &&
+ (DevicePathSubType (FvDevicePath) == MEDIA_PIWG_FW_VOL_DP))
+ {
//
// Allocate the volume label
//
@@ -498,7 +499,7 @@ FvSimpleFileSystemDriverStart (
//
// Extract the FV's guid
//
- FvGuid = &((MEDIA_FW_VOL_DEVICE_PATH *) FvDevicePath)->FvName;
+ FvGuid = &((MEDIA_FW_VOL_DEVICE_PATH *)FvDevicePath)->FvName;
//
// Build the volume label string
//
@@ -510,11 +511,14 @@ FvSimpleFileSystemDriverStart (
);
ASSERT ((NumChars + 1) * sizeof (CHAR16) == FVFS_VOLUME_LABEL_SIZE);
}
+
break;
}
+
FvDevicePath = NextDevicePathNode (FvDevicePath);
}
}
+
//
// If we didn't decide on a volume label, set a fallback one
//
@@ -545,10 +549,10 @@ FvSimpleFileSystemDriverStart (
EFI_STATUS
EFIAPI
FvSimpleFileSystemDriverStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
)
{
EFI_STATUS Status;
@@ -561,7 +565,7 @@ FvSimpleFileSystemDriverStop (
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiSimpleFileSystemProtocolGuid,
- (VOID **) &SimpleFile,
+ (VOID **)&SimpleFile,
DriverBinding->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -583,11 +587,11 @@ FvSimpleFileSystemDriverStop (
// Close and uninstall protocols.
//
Status = gBS->CloseProtocol (
- ControllerHandle,
- &gEfiFirmwareVolume2ProtocolGuid,
- gImageHandle,
- ControllerHandle
- );
+ ControllerHandle,
+ &gEfiFirmwareVolume2ProtocolGuid,
+ gImageHandle,
+ ControllerHandle
+ );
ASSERT_EFI_ERROR (Status);
Status = gBS->UninstallProtocolInterface (
@@ -604,9 +608,10 @@ FvSimpleFileSystemDriverStop (
//
// Free the Subtask list.
//
- for(Entry = Instance->FileInfoHead.ForwardLink;
- Entry != (&Instance->FileInfoHead);
- ) {
+ for (Entry = Instance->FileInfoHead.ForwardLink;
+ Entry != (&Instance->FileInfoHead);
+ )
+ {
DelEntry = Entry;
Entry = Entry->ForwardLink;
FvFileInfo = FVFS_FILE_INFO_FROM_LINK (DelEntry);
@@ -623,6 +628,7 @@ FvSimpleFileSystemDriverStop (
if (Instance->Root->FvFileInfo != NULL) {
FreePool (Instance->Root->FvFileInfo);
}
+
FreePool (Instance->Root);
}
@@ -632,6 +638,7 @@ FvSimpleFileSystemDriverStop (
if (Instance->VolumeLabel != NULL) {
FreePool (Instance->VolumeLabel);
}
+
FreePool (Instance);
return EFI_SUCCESS;
@@ -650,11 +657,11 @@ FvSimpleFileSystemDriverStop (
EFI_STATUS
EFIAPI
FvSimpleFileSystemEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Install driver model protocol(s).
diff --git a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemInternal.h b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemInternal.h
index dea2b7a..fea03b2 100644
--- a/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemInternal.h
+++ b/MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemInternal.h
@@ -41,14 +41,14 @@ typedef struct _FV_FILESYSTEM_INSTANCE FV_FILESYSTEM_INSTANCE;
// these structs per FV.
//
struct _FV_FILESYSTEM_INSTANCE {
- UINT32 Signature;
- LIST_ENTRY FileInfoHead;
- LIST_ENTRY FileHead;
- EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFs;
- FV_FILESYSTEM_FILE *Root;
- CHAR16 *VolumeLabel;
+ UINT32 Signature;
+ LIST_ENTRY FileInfoHead;
+ LIST_ENTRY FileHead;
+ EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol;
+ EFI_SIMPLE_FILE_SYSTEM_PROTOCOL SimpleFs;
+ FV_FILESYSTEM_FILE *Root;
+ CHAR16 *VolumeLabel;
};
//
@@ -57,59 +57,58 @@ struct _FV_FILESYSTEM_INSTANCE {
// be created once for each FV.
//
struct _FV_FILESYSTEM_FILE {
- UINT32 Signature;
- LIST_ENTRY Link;
- FV_FILESYSTEM_FILE_INFO *DirReadNext;
- FV_FILESYSTEM_INSTANCE *Instance;
- EFI_FILE_PROTOCOL FileProtocol;
- FV_FILESYSTEM_FILE_INFO *FvFileInfo;
- UINT64 Position;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ FV_FILESYSTEM_FILE_INFO *DirReadNext;
+ FV_FILESYSTEM_INSTANCE *Instance;
+ EFI_FILE_PROTOCOL FileProtocol;
+ FV_FILESYSTEM_FILE_INFO *FvFileInfo;
+ UINT64 Position;
};
//
// Struct representing the info of a file.
//
struct _FV_FILESYSTEM_FILE_INFO {
- UINT32 Signature;
- LIST_ENTRY Link;
- EFI_GUID NameGuid;
- EFI_FV_FILETYPE Type;
- EFI_FILE_INFO FileInfo;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ EFI_GUID NameGuid;
+ EFI_FV_FILETYPE Type;
+ EFI_FILE_INFO FileInfo;
};
-#define FVFS_FILE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 'i')
-#define FVFS_FILE_INFO_SIGNATURE SIGNATURE_32 ('f', 'v', 'i', 'n')
-#define FVFS_INSTANCE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 's')
+#define FVFS_FILE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 'i')
+#define FVFS_FILE_INFO_SIGNATURE SIGNATURE_32 ('f', 'v', 'i', 'n')
+#define FVFS_INSTANCE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 's')
-#define FVFS_INSTANCE_FROM_SIMPLE_FS_THIS(This) CR ( \
+#define FVFS_INSTANCE_FROM_SIMPLE_FS_THIS(This) CR ( \
This, \
FV_FILESYSTEM_INSTANCE, \
SimpleFs, \
FVFS_INSTANCE_SIGNATURE \
)
-#define FVFS_FILE_FROM_FILE_THIS(This) CR ( \
+#define FVFS_FILE_FROM_FILE_THIS(This) CR ( \
This, \
FV_FILESYSTEM_FILE, \
FileProtocol, \
FVFS_FILE_SIGNATURE \
)
-#define FVFS_FILE_INFO_FROM_LINK(This) CR ( \
+#define FVFS_FILE_INFO_FROM_LINK(This) CR ( \
This, \
FV_FILESYSTEM_FILE_INFO, \
Link, \
FVFS_FILE_INFO_SIGNATURE \
)
-#define FVFS_FILE_FROM_LINK(FileLink) CR (FileLink, FV_FILESYSTEM_FILE, Link, FVFS_FILE_SIGNATURE)
+#define FVFS_FILE_FROM_LINK(FileLink) CR (FileLink, FV_FILESYSTEM_FILE, Link, FVFS_FILE_SIGNATURE)
-#define FVFS_GET_FIRST_FILE(Instance) FVFS_FILE_FROM_LINK (GetFirstNode (&Instance->FileHead))
+#define FVFS_GET_FIRST_FILE(Instance) FVFS_FILE_FROM_LINK (GetFirstNode (&Instance->FileHead))
-#define FVFS_GET_FIRST_FILE_INFO(Instance) FVFS_FILE_INFO_FROM_LINK (GetFirstNode (&Instance->FileInfoHead))
+#define FVFS_GET_FIRST_FILE_INFO(Instance) FVFS_FILE_INFO_FROM_LINK (GetFirstNode (&Instance->FileInfoHead))
-
-#define FV_FILETYPE_IS_EXECUTABLE(Type) ((Type) == EFI_FV_FILETYPE_PEIM || \
+#define FV_FILETYPE_IS_EXECUTABLE(Type) ((Type) == EFI_FV_FILETYPE_PEIM ||\
(Type) == EFI_FV_FILETYPE_DRIVER || \
(Type) == EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER || \
(Type) == EFI_FV_FILETYPE_APPLICATION)
@@ -137,8 +136,8 @@ struct _FV_FILESYSTEM_FILE_INFO {
EFI_STATUS
EFIAPI
FvSimpleFileSystemOpenVolume (
- IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **RootFile
+ IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **RootFile
);
/**
@@ -201,10 +200,10 @@ FvSimpleFileSystemDriverStart (
EFI_STATUS
EFIAPI
FvSimpleFileSystemDriverStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
);
/**
@@ -240,11 +239,11 @@ FvSimpleFileSystemDriverStop (
EFI_STATUS
EFIAPI
FvSimpleFileSystemOpen (
- IN EFI_FILE_PROTOCOL *This,
- OUT EFI_FILE_PROTOCOL **NewHandle,
- IN CHAR16 *FileName,
- IN UINT64 OpenMode,
- IN UINT64 Attributes
+ IN EFI_FILE_PROTOCOL *This,
+ OUT EFI_FILE_PROTOCOL **NewHandle,
+ IN CHAR16 *FileName,
+ IN UINT64 OpenMode,
+ IN UINT64 Attributes
);
/**
@@ -285,9 +284,9 @@ FvSimpleFileSystemClose (
EFI_STATUS
EFIAPI
FvSimpleFileSystemRead (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
/**
@@ -313,9 +312,9 @@ FvSimpleFileSystemRead (
EFI_STATUS
EFIAPI
FvSimpleFileSystemWrite (
- IN EFI_FILE_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
);
/**
@@ -333,8 +332,8 @@ FvSimpleFileSystemWrite (
EFI_STATUS
EFIAPI
FvSimpleFileSystemGetPosition (
- IN EFI_FILE_PROTOCOL *This,
- OUT UINT64 *Position
+ IN EFI_FILE_PROTOCOL *This,
+ OUT UINT64 *Position
);
/**
@@ -353,8 +352,8 @@ FvSimpleFileSystemGetPosition (
EFI_STATUS
EFIAPI
FvSimpleFileSystemSetPosition (
- IN EFI_FILE_PROTOCOL *This,
- IN UINT64 Position
+ IN EFI_FILE_PROTOCOL *This,
+ IN UINT64 Position
);
/**
@@ -391,7 +390,7 @@ FvSimpleFileSystemFlush (
EFI_STATUS
EFIAPI
FvSimpleFileSystemDelete (
- IN EFI_FILE_PROTOCOL *This
+ IN EFI_FILE_PROTOCOL *This
);
/**
@@ -417,10 +416,10 @@ FvSimpleFileSystemDelete (
EFI_STATUS
EFIAPI
FvSimpleFileSystemGetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
/**
@@ -460,10 +459,10 @@ FvSimpleFileSystemGetInfo (
EFI_STATUS
EFIAPI
FvSimpleFileSystemSetInfo (
- IN EFI_FILE_PROTOCOL *This,
- IN EFI_GUID *InformationType,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_FILE_PROTOCOL *This,
+ IN EFI_GUID *InformationType,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
/**
@@ -479,8 +478,8 @@ FvSimpleFileSystemSetInfo (
**/
EFI_STATUS
FvFsGetFileSize (
- IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
- IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol,
+ IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo
);
/**
@@ -601,11 +600,11 @@ FvSimpleFileSystemComponentNameGetDriverName (
EFI_STATUS
EFIAPI
FvSimpleFileSystemComponentNameGetControllerName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_HANDLE ChildHandle OPTIONAL,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_HANDLE ChildHandle OPTIONAL,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
extern EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation;
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
index 69bff51..96e05d4 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c
@@ -6,10 +6,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
-extern HII_DATABASE_PRIVATE_DATA mPrivate;
+extern HII_DATABASE_PRIVATE_DATA mPrivate;
/**
Convert the hex UNICODE %02x encoding of a UEFI device path to binary
@@ -29,18 +28,18 @@ extern HII_DATABASE_PRIVATE_DATA mPrivate;
**/
EFI_STATUS
ExtractDevicePath (
- IN EFI_STRING String,
- OUT UINT8 **DevicePathData,
- OUT EFI_STRING *NextString
+ IN EFI_STRING String,
+ OUT UINT8 **DevicePathData,
+ OUT EFI_STRING *NextString
)
{
- UINTN Length;
- EFI_STRING PathHdr;
- UINT8 *DevicePathBuffer;
- CHAR16 TemStr[2];
- UINTN Index;
- UINT8 DigitUint8;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ UINTN Length;
+ EFI_STRING PathHdr;
+ UINT8 *DevicePathBuffer;
+ CHAR16 TemStr[2];
+ UINTN Index;
+ UINT8 DigitUint8;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
ASSERT (NextString != NULL && DevicePathData != NULL);
@@ -49,7 +48,7 @@ ExtractDevicePath (
//
if (String == NULL) {
*DevicePathData = NULL;
- *NextString = NULL;
+ *NextString = NULL;
return EFI_SUCCESS;
}
@@ -57,7 +56,7 @@ ExtractDevicePath (
// Skip '&' if exist.
//
if (*String == L'&') {
- String ++;
+ String++;
}
//
@@ -71,7 +70,7 @@ ExtractDevicePath (
// Not include PathHdr, return success and DevicePath = NULL.
//
*DevicePathData = NULL;
- *NextString = String;
+ *NextString = String;
return EFI_SUCCESS;
}
}
@@ -83,6 +82,7 @@ ExtractDevicePath (
if (*String == 0) {
return EFI_INVALID_PARAMETER;
}
+
PathHdr = String;
//
@@ -90,7 +90,8 @@ ExtractDevicePath (
// or '\0' (end of configuration string) is the UNICODE %02x bytes encoding
// of UEFI device path.
//
- for (Length = 0; *String != 0 && *String != L'&'; String++, Length++);
+ for (Length = 0; *String != 0 && *String != L'&'; String++, Length++) {
+ }
//
// Save the return next keyword string value.
@@ -109,7 +110,7 @@ ExtractDevicePath (
// as the device path resides in RAM memory.
// Translate the data into binary.
//
- DevicePathBuffer = (UINT8 *) AllocateZeroPool ((Length + 1) / 2);
+ DevicePathBuffer = (UINT8 *)AllocateZeroPool ((Length + 1) / 2);
if (DevicePathBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -118,20 +119,20 @@ ExtractDevicePath (
// Convert DevicePath
//
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0; Index < Length; Index ++) {
- TemStr[0] = PathHdr[Index];
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0; Index < Length; Index++) {
+ TemStr[0] = PathHdr[Index];
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- DevicePathBuffer [Index/2] = DigitUint8;
+ DevicePathBuffer[Index/2] = DigitUint8;
} else {
- DevicePathBuffer [Index/2] = (UINT8) ((DevicePathBuffer [Index/2] << 4) + DigitUint8);
+ DevicePathBuffer[Index/2] = (UINT8)((DevicePathBuffer[Index/2] << 4) + DigitUint8);
}
}
//
// Validate DevicePath
//
- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DevicePathBuffer;
+ DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)DevicePathBuffer;
while (!IsDevicePathEnd (DevicePath)) {
if ((DevicePath->Type == 0) || (DevicePath->SubType == 0) || (DevicePathNodeLength (DevicePath) < sizeof (EFI_DEVICE_PATH_PROTOCOL))) {
//
@@ -140,6 +141,7 @@ ExtractDevicePath (
FreePool (DevicePathBuffer);
return EFI_INVALID_PARAMETER;
}
+
DevicePath = NextDevicePathNode (DevicePath);
}
@@ -166,13 +168,13 @@ ExtractDevicePath (
**/
EFI_STATUS
ExtractNameSpace (
- IN EFI_STRING String,
- OUT CHAR8 **NameSpace,
- OUT EFI_STRING *NextString
+ IN EFI_STRING String,
+ OUT CHAR8 **NameSpace,
+ OUT EFI_STRING *NextString
)
{
- CHAR16 *TmpPtr;
- UINTN NameSpaceSize;
+ CHAR16 *TmpPtr;
+ UINTN NameSpaceSize;
ASSERT (NameSpace != NULL);
@@ -186,6 +188,7 @@ ExtractNameSpace (
if (NextString != NULL) {
*NextString = NULL;
}
+
return EFI_SUCCESS;
}
@@ -199,12 +202,14 @@ ExtractNameSpace (
if (StrnCmp (String, L"NAMESPACE=", StrLen (L"NAMESPACE=")) != 0) {
return EFI_INVALID_PARAMETER;
}
+
String += StrLen (L"NAMESPACE=");
TmpPtr = StrStr (String, L"&");
if (TmpPtr != NULL) {
*TmpPtr = 0;
}
+
if (NextString != NULL) {
*NextString = String + StrLen (String);
}
@@ -214,10 +219,11 @@ ExtractNameSpace (
// Here will convert the unicode string to ascii and save it.
//
NameSpaceSize = StrLen (String) + 1;
- *NameSpace = AllocatePool (NameSpaceSize);
+ *NameSpace = AllocatePool (NameSpaceSize);
if (*NameSpace == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
UnicodeStrToAsciiStrS (String, *NameSpace, NameSpaceSize);
if (TmpPtr != NULL) {
@@ -242,9 +248,9 @@ ExtractNameSpace (
**/
EFI_STATUS
ExtractKeyword (
- IN EFI_STRING String,
- OUT EFI_STRING *Keyword,
- OUT EFI_STRING *NextString
+ IN EFI_STRING String,
+ OUT EFI_STRING *Keyword,
+ OUT EFI_STRING *NextString
)
{
EFI_STRING TmpPtr;
@@ -257,7 +263,7 @@ ExtractKeyword (
// KeywordRequest == NULL case.
//
if (String == NULL) {
- *Keyword = NULL;
+ *Keyword = NULL;
*NextString = NULL;
return EFI_SUCCESS;
}
@@ -279,6 +285,7 @@ ExtractKeyword (
if (TmpPtr != NULL) {
*TmpPtr = 0;
}
+
*NextString = String + StrLen (String);
*Keyword = AllocateCopyPool (StrSize (String), String);
@@ -308,9 +315,9 @@ ExtractKeyword (
**/
EFI_STATUS
ExtractValue (
- IN EFI_STRING String,
- OUT EFI_STRING *Value,
- OUT EFI_STRING *NextString
+ IN EFI_STRING String,
+ OUT EFI_STRING *Value,
+ OUT EFI_STRING *NextString
)
{
EFI_STRING TmpPtr;
@@ -334,6 +341,7 @@ ExtractValue (
if (TmpPtr != NULL) {
*TmpPtr = 0;
}
+
*NextString = String + StrLen (String);
*Value = AllocateCopyPool (StrSize (String), String);
@@ -363,14 +371,14 @@ ExtractValue (
**/
BOOLEAN
ExtractFilter (
- IN EFI_STRING String,
- OUT UINT8 *FilterFlags,
- OUT EFI_STRING *NextString
+ IN EFI_STRING String,
+ OUT UINT8 *FilterFlags,
+ OUT EFI_STRING *NextString
)
{
- CHAR16 *PathPtr;
- CHAR16 *KeywordPtr;
- BOOLEAN RetVal;
+ CHAR16 *PathPtr;
+ CHAR16 *KeywordPtr;
+ BOOLEAN RetVal;
ASSERT ((FilterFlags != NULL) && (NextString != NULL));
@@ -383,7 +391,7 @@ ExtractFilter (
}
*FilterFlags = 0;
- RetVal = TRUE;
+ RetVal = TRUE;
//
// Skip '&' if exist.
@@ -397,19 +405,19 @@ ExtractFilter (
// Find ReadOnly filter.
//
*FilterFlags |= EFI_KEYWORD_FILTER_READONY;
- String += StrLen (L"ReadOnly");
+ String += StrLen (L"ReadOnly");
} else if (StrnCmp (String, L"ReadWrite", StrLen (L"ReadWrite")) == 0) {
//
// Find ReadWrite filter.
//
*FilterFlags |= EFI_KEYWORD_FILTER_REAWRITE;
- String += StrLen (L"ReadWrite");
+ String += StrLen (L"ReadWrite");
} else if (StrnCmp (String, L"Buffer", StrLen (L"Buffer")) == 0) {
//
// Find Buffer Filter.
//
*FilterFlags |= EFI_KEYWORD_FILTER_BUFFER;
- String += StrLen (L"Buffer");
+ String += StrLen (L"Buffer");
} else if (StrnCmp (String, L"Numeric", StrLen (L"Numeric")) == 0) {
//
// Find Numeric Filter
@@ -420,22 +428,23 @@ ExtractFilter (
} else {
String++;
switch (*String) {
- case L'1':
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_1;
- break;
- case L'2':
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_2;
- break;
- case L'4':
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_4;
- break;
- case L'8':
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_8;
- break;
- default:
- ASSERT (FALSE);
- break;
+ case L'1':
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_1;
+ break;
+ case L'2':
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_2;
+ break;
+ case L'4':
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_4;
+ break;
+ case L'8':
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_8;
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
}
+
String++;
}
} else {
@@ -443,7 +452,8 @@ ExtractFilter (
// Check whether other filter item defined by Platform.
//
if ((StrnCmp (String, L"&PATH", StrLen (L"&PATH")) == 0) ||
- (StrnCmp (String, L"&KEYWORD", StrLen (L"&KEYWORD")) == 0)) {
+ (StrnCmp (String, L"&KEYWORD", StrLen (L"&KEYWORD")) == 0))
+ {
//
// New KeywordRequest start, no platform defined filter.
//
@@ -452,9 +462,9 @@ ExtractFilter (
// Platform defined filter rule.
// Just skip platform defined filter rule, return success.
//
- PathPtr = StrStr(String, L"&PATH");
- KeywordPtr = StrStr(String, L"&KEYWORD");
- if (PathPtr != NULL && KeywordPtr != NULL) {
+ PathPtr = StrStr (String, L"&PATH");
+ KeywordPtr = StrStr (String, L"&KEYWORD");
+ if ((PathPtr != NULL) && (KeywordPtr != NULL)) {
//
// If both sections exist, return the first follow string.
//
@@ -476,6 +486,7 @@ ExtractFilter (
String += StrLen (String);
}
}
+
RetVal = FALSE;
}
@@ -497,14 +508,14 @@ ExtractFilter (
**/
BOOLEAN
ExtractReadOnlyFromOpCode (
- IN UINT8 *OpCodeData
+ IN UINT8 *OpCodeData
)
{
- EFI_IFR_QUESTION_HEADER *QuestionHdr;
+ EFI_IFR_QUESTION_HEADER *QuestionHdr;
ASSERT (OpCodeData != NULL);
- QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));
+ QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));
return (QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0;
}
@@ -525,26 +536,26 @@ ExtractReadOnlyFromOpCode (
**/
UINT32
ValidateFilter (
- IN UINT8 *OpCodeData,
- IN CHAR16 *KeywordRequest,
- OUT CHAR16 **NextString,
- OUT BOOLEAN *ReadOnly
+ IN UINT8 *OpCodeData,
+ IN CHAR16 *KeywordRequest,
+ OUT CHAR16 **NextString,
+ OUT BOOLEAN *ReadOnly
)
{
- CHAR16 *NextFilter;
- CHAR16 *StringPtr;
- UINT8 FilterFlags;
- EFI_IFR_QUESTION_HEADER *QuestionHdr;
- EFI_IFR_OP_HEADER *OpCodeHdr;
- UINT8 Flags;
- UINT32 RetVal;
-
- RetVal = KEYWORD_HANDLER_NO_ERROR;
+ CHAR16 *NextFilter;
+ CHAR16 *StringPtr;
+ UINT8 FilterFlags;
+ EFI_IFR_QUESTION_HEADER *QuestionHdr;
+ EFI_IFR_OP_HEADER *OpCodeHdr;
+ UINT8 Flags;
+ UINT32 RetVal;
+
+ RetVal = KEYWORD_HANDLER_NO_ERROR;
StringPtr = KeywordRequest;
- OpCodeHdr = (EFI_IFR_OP_HEADER *) OpCodeData;
- QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));
- if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) {
+ OpCodeHdr = (EFI_IFR_OP_HEADER *)OpCodeData;
+ QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));
+ if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP)) {
Flags = *(OpCodeData + sizeof (EFI_IFR_OP_HEADER) + sizeof (EFI_IFR_QUESTION_HEADER));
} else {
Flags = 0;
@@ -553,93 +564,102 @@ ValidateFilter (
//
// Get ReadOnly flag from Question.
//
- *ReadOnly = ExtractReadOnlyFromOpCode(OpCodeData);
+ *ReadOnly = ExtractReadOnlyFromOpCode (OpCodeData);
while (ExtractFilter (StringPtr, &FilterFlags, &NextFilter)) {
switch (FilterFlags) {
- case EFI_KEYWORD_FILTER_READONY:
- if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) == 0) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ case EFI_KEYWORD_FILTER_READONY:
+ if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) == 0) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
- case EFI_KEYWORD_FILTER_REAWRITE:
- if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ break;
- case EFI_KEYWORD_FILTER_BUFFER:
- //
- // Only these three opcode use numeric value type.
- //
- if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP || OpCodeHdr->OpCode == EFI_IFR_CHECKBOX_OP) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ case EFI_KEYWORD_FILTER_REAWRITE:
+ if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
- case EFI_KEYWORD_FILTER_NUMERIC:
- if (OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP && OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP && OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ break;
- case EFI_KEYWORD_FILTER_NUMERIC_1:
- case EFI_KEYWORD_FILTER_NUMERIC_2:
- case EFI_KEYWORD_FILTER_NUMERIC_4:
- case EFI_KEYWORD_FILTER_NUMERIC_8:
- if (OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP && OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP && OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
+ case EFI_KEYWORD_FILTER_BUFFER:
+ //
+ // Only these three opcode use numeric value type.
+ //
+ if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) || (OpCodeHdr->OpCode == EFI_IFR_CHECKBOX_OP)) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
- //
- // For numeric and oneof, it has flags field to specify the detail numeric type.
- //
- if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) {
- switch (Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_1) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ break;
- case EFI_IFR_NUMERIC_SIZE_2:
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_2) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ case EFI_KEYWORD_FILTER_NUMERIC:
+ if ((OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP) && (OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP) && (OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP)) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
- case EFI_IFR_NUMERIC_SIZE_4:
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_4) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ break;
- case EFI_IFR_NUMERIC_SIZE_8:
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_8) {
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- goto Done;
- }
- break;
+ case EFI_KEYWORD_FILTER_NUMERIC_1:
+ case EFI_KEYWORD_FILTER_NUMERIC_2:
+ case EFI_KEYWORD_FILTER_NUMERIC_4:
+ case EFI_KEYWORD_FILTER_NUMERIC_8:
+ if ((OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP) && (OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP) && (OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP)) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
- default:
- ASSERT (FALSE);
- break;
+ //
+ // For numeric and oneof, it has flags field to specify the detail numeric type.
+ //
+ if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP)) {
+ switch (Flags & EFI_IFR_NUMERIC_SIZE) {
+ case EFI_IFR_NUMERIC_SIZE_1:
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_1) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
+
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_2:
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_2) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
+
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_4:
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_4) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
+
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_8:
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_8) {
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
+ goto Done;
+ }
+
+ break;
+
+ default:
+ ASSERT (FALSE);
+ break;
+ }
}
- }
- break;
- default:
- ASSERT (FALSE);
- break;
+ break;
+
+ default:
+ ASSERT (FALSE);
+ break;
}
//
@@ -669,23 +689,23 @@ Done:
**/
HII_DATABASE_RECORD *
GetRecordFromDevicePath (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
- LIST_ENTRY *Link;
- UINT8 *DevicePathPkg;
- UINT8 *CurrentDevicePath;
- UINTN DevicePathSize;
- HII_DATABASE_RECORD *TempDatabase;
+ LIST_ENTRY *Link;
+ UINT8 *DevicePathPkg;
+ UINT8 *CurrentDevicePath;
+ UINTN DevicePathSize;
+ HII_DATABASE_RECORD *TempDatabase;
ASSERT (DevicePath != NULL);
for (Link = mPrivate.DatabaseList.ForwardLink; Link != &mPrivate.DatabaseList; Link = Link->ForwardLink) {
- TempDatabase = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
+ TempDatabase = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
DevicePathPkg = TempDatabase->PackageList->DevicePathPkg;
if (DevicePathPkg != NULL) {
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
- DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);
+ DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);
if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0)) {
return TempDatabase;
}
@@ -711,9 +731,9 @@ GetRecordFromDevicePath (
**/
EFI_STATUS
GetUnicodeStringTextAndSize (
- IN UINT8 *StringSrc,
- OUT UINTN *BufferSize,
- OUT EFI_STRING *StringDest
+ IN UINT8 *StringSrc,
+ OUT UINTN *BufferSize,
+ OUT EFI_STRING *StringDest
)
{
UINTN StringSize;
@@ -723,9 +743,9 @@ GetUnicodeStringTextAndSize (
StringSize = sizeof (CHAR16);
StringPtr = StringSrc;
- while (ReadUnaligned16 ((UINT16 *) StringPtr) != 0) {
+ while (ReadUnaligned16 ((UINT16 *)StringPtr) != 0) {
StringSize += sizeof (CHAR16);
- StringPtr += sizeof (CHAR16);
+ StringPtr += sizeof (CHAR16);
}
*StringDest = AllocatePool (StringSize);
@@ -756,237 +776,254 @@ GetUnicodeStringTextAndSize (
**/
EFI_STATUS
GetStringIdFromString (
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN CHAR16 *KeywordValue,
- OUT EFI_STRING_ID *StringId
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN CHAR16 *KeywordValue,
+ OUT EFI_STRING_ID *StringId
)
{
- UINT8 *BlockHdr;
- EFI_STRING_ID CurrentStringId;
- UINTN BlockSize;
- UINTN Index;
- UINT8 *StringTextPtr;
- UINTN Offset;
- UINT16 StringCount;
- UINT16 SkipCount;
- UINT8 Length8;
- EFI_HII_SIBT_EXT2_BLOCK Ext2;
- UINT32 Length32;
- UINTN StringSize;
- CHAR16 *String;
- CHAR8 *AsciiKeywordValue;
- UINTN KeywordValueSize;
- EFI_STATUS Status;
+ UINT8 *BlockHdr;
+ EFI_STRING_ID CurrentStringId;
+ UINTN BlockSize;
+ UINTN Index;
+ UINT8 *StringTextPtr;
+ UINTN Offset;
+ UINT16 StringCount;
+ UINT16 SkipCount;
+ UINT8 Length8;
+ EFI_HII_SIBT_EXT2_BLOCK Ext2;
+ UINT32 Length32;
+ UINTN StringSize;
+ CHAR16 *String;
+ CHAR8 *AsciiKeywordValue;
+ UINTN KeywordValueSize;
+ EFI_STATUS Status;
ASSERT (StringPackage != NULL && KeywordValue != NULL && StringId != NULL);
ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);
CurrentStringId = 1;
- Status = EFI_SUCCESS;
- String = NULL;
- BlockHdr = StringPackage->StringBlock;
- BlockSize = 0;
- Offset = 0;
+ Status = EFI_SUCCESS;
+ String = NULL;
+ BlockHdr = StringPackage->StringBlock;
+ BlockSize = 0;
+ Offset = 0;
//
// Make a ascii keyword value for later use.
//
- KeywordValueSize = StrLen (KeywordValue) + 1;
+ KeywordValueSize = StrLen (KeywordValue) + 1;
AsciiKeywordValue = AllocatePool (KeywordValueSize);
if (AsciiKeywordValue == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
UnicodeStrToAsciiStrS (KeywordValue, AsciiKeywordValue, KeywordValueSize);
while (*BlockHdr != EFI_HII_SIBT_END) {
switch (*BlockHdr) {
- case EFI_HII_SIBT_STRING_SCSU:
- Offset = sizeof (EFI_HII_STRING_BLOCK);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {
- *StringId = CurrentStringId;
- goto Done;
- }
- CurrentStringId++;
- break;
-
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);
- StringTextPtr = BlockHdr + Offset;
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {
- *StringId = CurrentStringId;
- goto Done;
- }
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- break;
-
- case EFI_HII_SIBT_STRINGS_SCSU:
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));
- BlockSize += StringTextPtr - BlockHdr;
-
- for (Index = 0; Index < StringCount; Index++) {
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {
+ case EFI_HII_SIBT_STRING_SCSU:
+ Offset = sizeof (EFI_HII_STRING_BLOCK);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {
*StringId = CurrentStringId;
goto Done;
}
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- }
- break;
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- CopyMem (
- &StringCount,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));
- BlockSize += StringTextPtr - BlockHdr;
+ CurrentStringId++;
+ break;
- for (Index = 0; Index < StringCount; Index++) {
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);
+ StringTextPtr = BlockHdr + Offset;
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {
*StringId = CurrentStringId;
goto Done;
}
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);
+
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_STRING_UCS2:
- Offset = sizeof (EFI_HII_STRING_BLOCK);
- StringTextPtr = BlockHdr + Offset;
- //
- // Use StringSize to store the size of the specified string, including the NULL
- // terminator.
- //
- Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- ASSERT (String != NULL);
- if (StrCmp(KeywordValue, String) == 0) {
- *StringId = CurrentStringId;
- goto Done;
- }
- BlockSize += Offset + StringSize;
- CurrentStringId++;
- break;
+ case EFI_HII_SIBT_STRINGS_SCSU:
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));
+ BlockSize += StringTextPtr - BlockHdr;
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- //
- // Use StringSize to store the size of the specified string, including the NULL
- // terminator.
- //
- Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- ASSERT (String != NULL);
- if (StrCmp(KeywordValue, String) == 0) {
- *StringId = CurrentStringId;
- goto Done;
- }
- BlockSize += Offset + StringSize;
- CurrentStringId++;
- break;
+ for (Index = 0; Index < StringCount; Index++) {
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {
+ *StringId = CurrentStringId;
+ goto Done;
+ }
- case EFI_HII_SIBT_STRINGS_UCS2:
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset;
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- for (Index = 0; Index < StringCount; Index++) {
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
+ }
+
+ break;
+
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ CopyMem (
+ &StringCount,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));
+ BlockSize += StringTextPtr - BlockHdr;
+
+ for (Index = 0; Index < StringCount; Index++) {
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {
+ *StringId = CurrentStringId;
+ goto Done;
+ }
+
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
+ }
+
+ break;
+
+ case EFI_HII_SIBT_STRING_UCS2:
+ Offset = sizeof (EFI_HII_STRING_BLOCK);
+ StringTextPtr = BlockHdr + Offset;
+ //
+ // Use StringSize to store the size of the specified string, including the NULL
+ // terminator.
+ //
Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (String != NULL);
- BlockSize += StringSize;
- if (StrCmp(KeywordValue, String) == 0) {
+ if (StrCmp (KeywordValue, String) == 0) {
*StringId = CurrentStringId;
goto Done;
}
- StringTextPtr = StringTextPtr + StringSize;
+
+ BlockSize += Offset + StringSize;
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset;
- CopyMem (
- &StringCount,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- for (Index = 0; Index < StringCount; Index++) {
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ //
+ // Use StringSize to store the size of the specified string, including the NULL
+ // terminator.
+ //
Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (String != NULL);
- BlockSize += StringSize;
- if (StrCmp(KeywordValue, String) == 0) {
+ if (StrCmp (KeywordValue, String) == 0) {
*StringId = CurrentStringId;
goto Done;
}
- StringTextPtr = StringTextPtr + StringSize;
+
+ BlockSize += Offset + StringSize;
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_DUPLICATE:
- BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);
- CurrentStringId++;
- break;
+ case EFI_HII_SIBT_STRINGS_UCS2:
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset;
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ for (Index = 0; Index < StringCount; Index++) {
+ Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_HII_SIBT_SKIP1:
- SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);
- BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
- break;
+ ASSERT (String != NULL);
+ BlockSize += StringSize;
+ if (StrCmp (KeywordValue, String) == 0) {
+ *StringId = CurrentStringId;
+ goto Done;
+ }
- case EFI_HII_SIBT_SKIP2:
- CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);
- BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
- break;
+ StringTextPtr = StringTextPtr + StringSize;
+ CurrentStringId++;
+ }
- case EFI_HII_SIBT_EXT1:
- CopyMem (
- &Length8,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT8)
- );
- BlockSize += Length8;
- break;
+ break;
- case EFI_HII_SIBT_EXT2:
- CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
- BlockSize += Ext2.Length;
- break;
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset;
+ CopyMem (
+ &StringCount,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ for (Index = 0; Index < StringCount; Index++) {
+ Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_HII_SIBT_EXT4:
- CopyMem (
- &Length32,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT32)
- );
+ ASSERT (String != NULL);
+ BlockSize += StringSize;
+ if (StrCmp (KeywordValue, String) == 0) {
+ *StringId = CurrentStringId;
+ goto Done;
+ }
- BlockSize += Length32;
- break;
+ StringTextPtr = StringTextPtr + StringSize;
+ CurrentStringId++;
+ }
- default:
- break;
+ break;
+
+ case EFI_HII_SIBT_DUPLICATE:
+ BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);
+ CurrentStringId++;
+ break;
+
+ case EFI_HII_SIBT_SKIP1:
+ SkipCount = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
+ break;
+
+ case EFI_HII_SIBT_SKIP2:
+ CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
+ break;
+
+ case EFI_HII_SIBT_EXT1:
+ CopyMem (
+ &Length8,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT8)
+ );
+ BlockSize += Length8;
+ break;
+
+ case EFI_HII_SIBT_EXT2:
+ CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
+ BlockSize += Ext2.Length;
+ break;
+
+ case EFI_HII_SIBT_EXT4:
+ CopyMem (
+ &Length32,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT32)
+ );
+
+ BlockSize += Length32;
+ break;
+
+ default:
+ break;
}
if (String != NULL) {
@@ -994,7 +1031,7 @@ GetStringIdFromString (
String = NULL;
}
- BlockHdr = StringPackage->StringBlock + BlockSize;
+ BlockHdr = StringPackage->StringBlock + BlockSize;
}
Status = EFI_NOT_FOUND;
@@ -1003,9 +1040,11 @@ Done:
if (AsciiKeywordValue != NULL) {
FreePool (AsciiKeywordValue);
}
+
if (String != NULL) {
FreePool (String);
}
+
return Status;
}
@@ -1023,32 +1062,32 @@ Done:
**/
EFI_STRING_ID
GetNextStringId (
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN EFI_STRING_ID StringId,
- OUT EFI_STRING *KeywordValue
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN EFI_STRING_ID StringId,
+ OUT EFI_STRING *KeywordValue
)
{
- UINT8 *BlockHdr;
- EFI_STRING_ID CurrentStringId;
- UINTN BlockSize;
- UINTN Index;
- UINT8 *StringTextPtr;
- UINTN Offset;
- UINT16 StringCount;
- UINT16 SkipCount;
- UINT8 Length8;
- EFI_HII_SIBT_EXT2_BLOCK Ext2;
- UINT32 Length32;
- BOOLEAN FindString;
- UINTN StringSize;
- CHAR16 *String;
+ UINT8 *BlockHdr;
+ EFI_STRING_ID CurrentStringId;
+ UINTN BlockSize;
+ UINTN Index;
+ UINT8 *StringTextPtr;
+ UINTN Offset;
+ UINT16 StringCount;
+ UINT16 SkipCount;
+ UINT8 Length8;
+ EFI_HII_SIBT_EXT2_BLOCK Ext2;
+ UINT32 Length32;
+ BOOLEAN FindString;
+ UINTN StringSize;
+ CHAR16 *String;
ASSERT (StringPackage != NULL);
ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);
CurrentStringId = 1;
- FindString = FALSE;
- String = NULL;
+ FindString = FALSE;
+ String = NULL;
//
// Parse the string blocks to get the string text and font.
@@ -1058,172 +1097,135 @@ GetNextStringId (
Offset = 0;
while (*BlockHdr != EFI_HII_SIBT_END) {
switch (*BlockHdr) {
- case EFI_HII_SIBT_STRING_SCSU:
- Offset = sizeof (EFI_HII_STRING_BLOCK);
- StringTextPtr = BlockHdr + Offset;
-
- if (FindString) {
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
- *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
- if (*KeywordValue == NULL) {
- return 0;
- }
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
- return CurrentStringId;
- } else if (CurrentStringId == StringId) {
- FindString = TRUE;
- }
-
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- break;
-
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);
- StringTextPtr = BlockHdr + Offset;
-
- if (FindString) {
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
- *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
- if (*KeywordValue == NULL) {
- return 0;
- }
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
- return CurrentStringId;
- } else if (CurrentStringId == StringId) {
- FindString = TRUE;
- }
-
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- break;
-
- case EFI_HII_SIBT_STRINGS_SCSU:
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));
- BlockSize += StringTextPtr - BlockHdr;
+ case EFI_HII_SIBT_STRING_SCSU:
+ Offset = sizeof (EFI_HII_STRING_BLOCK);
+ StringTextPtr = BlockHdr + Offset;
- for (Index = 0; Index < StringCount; Index++) {
if (FindString) {
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);
*KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
if (*KeywordValue == NULL) {
return 0;
}
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
+
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
}
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- CopyMem (
- &StringCount,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));
- BlockSize += StringTextPtr - BlockHdr;
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);
+ StringTextPtr = BlockHdr + Offset;
- for (Index = 0; Index < StringCount; Index++) {
if (FindString) {
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);
*KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
if (*KeywordValue == NULL) {
return 0;
}
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);
+
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
}
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_STRING_UCS2:
- Offset = sizeof (EFI_HII_STRING_BLOCK);
- StringTextPtr = BlockHdr + Offset;
- //
- // Use StringSize to store the size of the specified string, including the NULL
- // terminator.
- //
- GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
- if (FindString && (String != NULL) && (*String != L'\0')) {
- //
- // String protocol use this type for the string id which has value for other package.
- // It will allocate an empty string block for this string id. so here we also check
- // *String != L'\0' to prohibit this case.
- //
- *KeywordValue = String;
- return CurrentStringId;
- } else if (CurrentStringId == StringId) {
- FindString = TRUE;
- }
+ case EFI_HII_SIBT_STRINGS_SCSU:
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));
+ BlockSize += StringTextPtr - BlockHdr;
+
+ for (Index = 0; Index < StringCount; Index++) {
+ if (FindString) {
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
+ if (*KeywordValue == NULL) {
+ return 0;
+ }
- BlockSize += Offset + StringSize;
- CurrentStringId++;
- break;
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);
+ return CurrentStringId;
+ } else if (CurrentStringId == StringId) {
+ FindString = TRUE;
+ }
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- //
- // Use StringSize to store the size of the specified string, including the NULL
- // terminator.
- //
- GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
- if (FindString) {
- *KeywordValue = String;
- return CurrentStringId;
- } else if (CurrentStringId == StringId) {
- FindString = TRUE;
- }
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
+ }
- BlockSize += Offset + StringSize;
- CurrentStringId++;
- break;
+ break;
- case EFI_HII_SIBT_STRINGS_UCS2:
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset;
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- for (Index = 0; Index < StringCount; Index++) {
- GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ CopyMem (
+ &StringCount,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));
+ BlockSize += StringTextPtr - BlockHdr;
+
+ for (Index = 0; Index < StringCount; Index++) {
+ if (FindString) {
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));
+ if (*KeywordValue == NULL) {
+ return 0;
+ }
- if (FindString) {
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);
+ return CurrentStringId;
+ } else if (CurrentStringId == StringId) {
+ FindString = TRUE;
+ }
+
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
+ }
+
+ break;
+
+ case EFI_HII_SIBT_STRING_UCS2:
+ Offset = sizeof (EFI_HII_STRING_BLOCK);
+ StringTextPtr = BlockHdr + Offset;
+ //
+ // Use StringSize to store the size of the specified string, including the NULL
+ // terminator.
+ //
+ GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
+ if (FindString && (String != NULL) && (*String != L'\0')) {
+ //
+ // String protocol use this type for the string id which has value for other package.
+ // It will allocate an empty string block for this string id. so here we also check
+ // *String != L'\0' to prohibit this case.
+ //
*KeywordValue = String;
return CurrentStringId;
} else if (CurrentStringId == StringId) {
FindString = TRUE;
}
- BlockSize += StringSize;
- StringTextPtr = StringTextPtr + StringSize;
+ BlockSize += Offset + StringSize;
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset;
- CopyMem (
- &StringCount,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- for (Index = 0; Index < StringCount; Index++) {
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ //
+ // Use StringSize to store the size of the specified string, including the NULL
+ // terminator.
+ //
GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
if (FindString) {
*KeywordValue = String;
@@ -1232,55 +1234,100 @@ GetNextStringId (
FindString = TRUE;
}
- BlockSize += StringSize;
- StringTextPtr = StringTextPtr + StringSize;
+ BlockSize += Offset + StringSize;
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_DUPLICATE:
- BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);
- CurrentStringId++;
- break;
+ case EFI_HII_SIBT_STRINGS_UCS2:
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset;
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ for (Index = 0; Index < StringCount; Index++) {
+ GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
+
+ if (FindString) {
+ *KeywordValue = String;
+ return CurrentStringId;
+ } else if (CurrentStringId == StringId) {
+ FindString = TRUE;
+ }
- case EFI_HII_SIBT_SKIP1:
- SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);
- BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
- break;
+ BlockSize += StringSize;
+ StringTextPtr = StringTextPtr + StringSize;
+ CurrentStringId++;
+ }
- case EFI_HII_SIBT_SKIP2:
- CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);
- BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
- break;
+ break;
- case EFI_HII_SIBT_EXT1:
- CopyMem (
- &Length8,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT8)
- );
- BlockSize += Length8;
- break;
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset;
+ CopyMem (
+ &StringCount,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ for (Index = 0; Index < StringCount; Index++) {
+ GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);
+ if (FindString) {
+ *KeywordValue = String;
+ return CurrentStringId;
+ } else if (CurrentStringId == StringId) {
+ FindString = TRUE;
+ }
- case EFI_HII_SIBT_EXT2:
- CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
- BlockSize += Ext2.Length;
- break;
+ BlockSize += StringSize;
+ StringTextPtr = StringTextPtr + StringSize;
+ CurrentStringId++;
+ }
- case EFI_HII_SIBT_EXT4:
- CopyMem (
- &Length32,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT32)
- );
+ break;
- BlockSize += Length32;
- break;
+ case EFI_HII_SIBT_DUPLICATE:
+ BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);
+ CurrentStringId++;
+ break;
- default:
- break;
+ case EFI_HII_SIBT_SKIP1:
+ SkipCount = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
+ break;
+
+ case EFI_HII_SIBT_SKIP2:
+ CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
+ break;
+
+ case EFI_HII_SIBT_EXT1:
+ CopyMem (
+ &Length8,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT8)
+ );
+ BlockSize += Length8;
+ break;
+
+ case EFI_HII_SIBT_EXT2:
+ CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
+ BlockSize += Ext2.Length;
+ break;
+
+ case EFI_HII_SIBT_EXT4:
+ CopyMem (
+ &Length32,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT32)
+ );
+
+ BlockSize += Length32;
+ break;
+
+ default:
+ break;
}
if (String != NULL) {
@@ -1288,7 +1335,7 @@ GetNextStringId (
String = NULL;
}
- BlockHdr = StringPackage->StringBlock + BlockSize;
+ BlockHdr = StringPackage->StringBlock + BlockSize;
}
return 0;
@@ -1312,10 +1359,10 @@ GetNextStringId (
**/
UINT32
GetStringIdFromRecord (
- IN HII_DATABASE_RECORD *DatabaseRecord,
- IN CHAR8 **NameSpace,
- IN CHAR16 *KeywordValue,
- OUT EFI_STRING_ID *StringId
+ IN HII_DATABASE_RECORD *DatabaseRecord,
+ IN CHAR8 **NameSpace,
+ IN CHAR16 *KeywordValue,
+ OUT EFI_STRING_ID *StringId
)
{
LIST_ENTRY *Link;
@@ -1328,7 +1375,7 @@ GetStringIdFromRecord (
ASSERT (DatabaseRecord != NULL && NameSpace != NULL && KeywordValue != NULL);
PackageListNode = DatabaseRecord->PackageList;
- RetVal = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;
+ RetVal = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;
if (*NameSpace != NULL) {
Name = *NameSpace;
@@ -1339,7 +1386,7 @@ GetStringIdFromRecord (
for (Link = PackageListNode->StringPkgHdr.ForwardLink; Link != &PackageListNode->StringPkgHdr; Link = Link->ForwardLink) {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- if (AsciiStrnCmp(Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {
+ if (AsciiStrnCmp (Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {
Status = GetStringIdFromString (StringPackage, KeywordValue, StringId);
if (EFI_ERROR (Status)) {
return KEYWORD_HANDLER_KEYWORD_NOT_FOUND;
@@ -1350,6 +1397,7 @@ GetStringIdFromRecord (
return KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;
}
}
+
return KEYWORD_HANDLER_NO_ERROR;
}
}
@@ -1369,7 +1417,7 @@ GetStringIdFromRecord (
**/
BOOLEAN
IsStatementOpCode (
- IN UINT8 Operand
+ IN UINT8 Operand
)
{
if ((Operand == EFI_IFR_SUBTITLE_OP) ||
@@ -1385,7 +1433,8 @@ IsStatementOpCode (
(Operand == EFI_IFR_DATE_OP) ||
(Operand == EFI_IFR_TIME_OP) ||
(Operand == EFI_IFR_GUID_OP) ||
- (Operand == EFI_IFR_ONE_OF_OP)) {
+ (Operand == EFI_IFR_ONE_OF_OP))
+ {
return TRUE;
}
@@ -1403,12 +1452,13 @@ IsStatementOpCode (
**/
BOOLEAN
IsStorageOpCode (
- IN UINT8 Operand
+ IN UINT8 Operand
)
{
if ((Operand == EFI_IFR_VARSTORE_OP) ||
(Operand == EFI_IFR_VARSTORE_NAME_VALUE_OP) ||
- (Operand == EFI_IFR_VARSTORE_EFI_OP)) {
+ (Operand == EFI_IFR_VARSTORE_EFI_OP))
+ {
return TRUE;
}
@@ -1426,26 +1476,26 @@ IsStorageOpCode (
**/
UINT8 *
FindQuestionFromStringId (
- IN HII_IFR_PACKAGE_INSTANCE *FormPackage,
- IN EFI_STRING_ID KeywordStrId
+ IN HII_IFR_PACKAGE_INSTANCE *FormPackage,
+ IN EFI_STRING_ID KeywordStrId
)
{
- UINT8 *OpCodeData;
- UINT32 Offset;
- EFI_IFR_STATEMENT_HEADER *StatementHeader;
- EFI_IFR_OP_HEADER *OpCodeHeader;
- UINT32 FormDataLen;
+ UINT8 *OpCodeData;
+ UINT32 Offset;
+ EFI_IFR_STATEMENT_HEADER *StatementHeader;
+ EFI_IFR_OP_HEADER *OpCodeHeader;
+ UINT32 FormDataLen;
ASSERT (FormPackage != NULL);
FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
- Offset = 0;
+ Offset = 0;
while (Offset < FormDataLen) {
- OpCodeData = FormPackage->IfrData + Offset;
- OpCodeHeader = (EFI_IFR_OP_HEADER *) OpCodeData;
+ OpCodeData = FormPackage->IfrData + Offset;
+ OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;
- if (IsStatementOpCode(OpCodeHeader->OpCode)) {
- StatementHeader = (EFI_IFR_STATEMENT_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));
+ if (IsStatementOpCode (OpCodeHeader->OpCode)) {
+ StatementHeader = (EFI_IFR_STATEMENT_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));
if (StatementHeader->Prompt == KeywordStrId) {
return OpCodeData;
}
@@ -1468,45 +1518,48 @@ FindQuestionFromStringId (
**/
UINT8 *
FindStorageFromVarId (
- IN HII_IFR_PACKAGE_INSTANCE *FormPackage,
- IN EFI_VARSTORE_ID VarStoreId
+ IN HII_IFR_PACKAGE_INSTANCE *FormPackage,
+ IN EFI_VARSTORE_ID VarStoreId
)
{
- UINT8 *OpCodeData;
- UINT32 Offset;
- EFI_IFR_OP_HEADER *OpCodeHeader;
- UINT32 FormDataLen;
+ UINT8 *OpCodeData;
+ UINT32 Offset;
+ EFI_IFR_OP_HEADER *OpCodeHeader;
+ UINT32 FormDataLen;
ASSERT (FormPackage != NULL);
FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
- Offset = 0;
+ Offset = 0;
while (Offset < FormDataLen) {
- OpCodeData = FormPackage->IfrData + Offset;
- OpCodeHeader = (EFI_IFR_OP_HEADER *) OpCodeData;
+ OpCodeData = FormPackage->IfrData + Offset;
+ OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;
- if (IsStorageOpCode(OpCodeHeader->OpCode)) {
+ if (IsStorageOpCode (OpCodeHeader->OpCode)) {
switch (OpCodeHeader->OpCode) {
- case EFI_IFR_VARSTORE_OP:
- if (VarStoreId == ((EFI_IFR_VARSTORE *) OpCodeData)->VarStoreId) {
- return OpCodeData;
- }
- break;
+ case EFI_IFR_VARSTORE_OP:
+ if (VarStoreId == ((EFI_IFR_VARSTORE *)OpCodeData)->VarStoreId) {
+ return OpCodeData;
+ }
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:
- if (VarStoreId == ((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->VarStoreId) {
- return OpCodeData;
- }
- break;
+ break;
- case EFI_IFR_VARSTORE_EFI_OP:
- if (VarStoreId == ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->VarStoreId) {
- return OpCodeData;
- }
- break;
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:
+ if (VarStoreId == ((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->VarStoreId) {
+ return OpCodeData;
+ }
- default:
- break;
+ break;
+
+ case EFI_IFR_VARSTORE_EFI_OP:
+ if (VarStoreId == ((EFI_IFR_VARSTORE_EFI *)OpCodeData)->VarStoreId) {
+ return OpCodeData;
+ }
+
+ break;
+
+ default:
+ break;
}
}
@@ -1526,79 +1579,79 @@ FindStorageFromVarId (
**/
UINT16
GetWidth (
- IN UINT8 *OpCodeData
+ IN UINT8 *OpCodeData
)
{
- UINT8 *NextOpCodeData;
+ UINT8 *NextOpCodeData;
ASSERT (OpCodeData != NULL);
- switch (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode) {
- case EFI_IFR_REF_OP:
- return (UINT16) sizeof (EFI_HII_REF);
+ switch (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode) {
+ case EFI_IFR_REF_OP:
+ return (UINT16)sizeof (EFI_HII_REF);
- case EFI_IFR_ONE_OF_OP:
- case EFI_IFR_NUMERIC_OP:
- switch (((EFI_IFR_ONE_OF *) OpCodeData)->Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- return (UINT16) sizeof (UINT8);
+ case EFI_IFR_ONE_OF_OP:
+ case EFI_IFR_NUMERIC_OP:
+ switch (((EFI_IFR_ONE_OF *)OpCodeData)->Flags & EFI_IFR_NUMERIC_SIZE) {
+ case EFI_IFR_NUMERIC_SIZE_1:
+ return (UINT16)sizeof (UINT8);
- case EFI_IFR_NUMERIC_SIZE_2:
- return (UINT16) sizeof (UINT16);
+ case EFI_IFR_NUMERIC_SIZE_2:
+ return (UINT16)sizeof (UINT16);
- case EFI_IFR_NUMERIC_SIZE_4:
- return (UINT16) sizeof (UINT32);
+ case EFI_IFR_NUMERIC_SIZE_4:
+ return (UINT16)sizeof (UINT32);
- case EFI_IFR_NUMERIC_SIZE_8:
- return (UINT16) sizeof (UINT64);
+ case EFI_IFR_NUMERIC_SIZE_8:
+ return (UINT16)sizeof (UINT64);
- default:
- ASSERT (FALSE);
- return 0;
- }
+ default:
+ ASSERT (FALSE);
+ return 0;
+ }
- case EFI_IFR_ORDERED_LIST_OP:
- NextOpCodeData = OpCodeData + ((EFI_IFR_ORDERED_LIST *) OpCodeData)->Header.Length;
- //
- // OneOfOption must follow the orderedlist opcode.
- //
- ASSERT (((EFI_IFR_OP_HEADER *) NextOpCodeData)->OpCode == EFI_IFR_ONE_OF_OPTION_OP);
- switch (((EFI_IFR_ONE_OF_OPTION *) NextOpCodeData)->Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- return (UINT16) sizeof (UINT8) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;
+ case EFI_IFR_ORDERED_LIST_OP:
+ NextOpCodeData = OpCodeData + ((EFI_IFR_ORDERED_LIST *)OpCodeData)->Header.Length;
+ //
+ // OneOfOption must follow the orderedlist opcode.
+ //
+ ASSERT (((EFI_IFR_OP_HEADER *)NextOpCodeData)->OpCode == EFI_IFR_ONE_OF_OPTION_OP);
+ switch (((EFI_IFR_ONE_OF_OPTION *)NextOpCodeData)->Type) {
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ return (UINT16)sizeof (UINT8) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- return (UINT16) sizeof (UINT16) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers ;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ return (UINT16)sizeof (UINT16) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- return (UINT16) sizeof (UINT32) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ return (UINT16)sizeof (UINT32) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- return (UINT16) sizeof (UINT64) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ return (UINT16)sizeof (UINT64) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;
- default:
- ASSERT (FALSE);
- return 0;
- }
+ default:
+ ASSERT (FALSE);
+ return 0;
+ }
- case EFI_IFR_CHECKBOX_OP:
- return (UINT16) sizeof (BOOLEAN);
+ case EFI_IFR_CHECKBOX_OP:
+ return (UINT16)sizeof (BOOLEAN);
- case EFI_IFR_PASSWORD_OP:
- return (UINT16)((UINTN) ((EFI_IFR_PASSWORD *) OpCodeData)->MaxSize * sizeof (CHAR16));
+ case EFI_IFR_PASSWORD_OP:
+ return (UINT16)((UINTN)((EFI_IFR_PASSWORD *)OpCodeData)->MaxSize * sizeof (CHAR16));
- case EFI_IFR_STRING_OP:
- return (UINT16)((UINTN) ((EFI_IFR_STRING *) OpCodeData)->MaxSize * sizeof (CHAR16));
+ case EFI_IFR_STRING_OP:
+ return (UINT16)((UINTN)((EFI_IFR_STRING *)OpCodeData)->MaxSize * sizeof (CHAR16));
- case EFI_IFR_DATE_OP:
- return (UINT16) sizeof (EFI_HII_DATE);
+ case EFI_IFR_DATE_OP:
+ return (UINT16)sizeof (EFI_HII_DATE);
- case EFI_IFR_TIME_OP:
- return (UINT16) sizeof (EFI_HII_TIME);
+ case EFI_IFR_TIME_OP:
+ return (UINT16)sizeof (EFI_HII_TIME);
- default:
- ASSERT (FALSE);
- return 0;
+ default:
+ ASSERT (FALSE);
+ return 0;
}
}
@@ -1632,8 +1685,8 @@ InternalLowerConfigString (
Lower = TRUE;
} else if (*String == L'&') {
Lower = FALSE;
- } else if (Lower && *String >= L'A' && *String <= L'F') {
- *String = (CHAR16) (*String - L'A' + L'a');
+ } else if (Lower && (*String >= L'A') && (*String <= L'F')) {
+ *String = (CHAR16)(*String - L'A' + L'a');
}
}
@@ -1659,8 +1712,8 @@ InternalLowerConfigString (
**/
EFI_STRING
ConstructConfigHdr (
- IN UINT8 *OpCodeData,
- IN EFI_HANDLE DriverHandle
+ IN UINT8 *OpCodeData,
+ IN EFI_HANDLE DriverHandle
)
{
UINTN NameLength;
@@ -1679,31 +1732,31 @@ ConstructConfigHdr (
ASSERT (OpCodeData != NULL);
switch (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode) {
- case EFI_IFR_VARSTORE_OP:
- Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE *) OpCodeData)->Guid;
- AsciiName = (CHAR8 *) ((EFI_IFR_VARSTORE *) OpCodeData)->Name;
- break;
+ case EFI_IFR_VARSTORE_OP:
+ Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE *)OpCodeData)->Guid;
+ AsciiName = (CHAR8 *)((EFI_IFR_VARSTORE *)OpCodeData)->Name;
+ break;
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:
- Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->Guid;
- AsciiName = NULL;
- break;
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:
+ Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->Guid;
+ AsciiName = NULL;
+ break;
- case EFI_IFR_VARSTORE_EFI_OP:
- Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Guid;
- AsciiName = (CHAR8 *) ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Name;
- break;
+ case EFI_IFR_VARSTORE_EFI_OP:
+ Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Guid;
+ AsciiName = (CHAR8 *)((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Name;
+ break;
- default:
- ASSERT (FALSE);
- Guid = NULL;
- AsciiName = NULL;
- break;
+ default:
+ ASSERT (FALSE);
+ Guid = NULL;
+ AsciiName = NULL;
+ break;
}
if (AsciiName != NULL) {
NameSize = AsciiStrSize (AsciiName);
- Name = AllocateZeroPool (NameSize * sizeof (CHAR16));
+ Name = AllocateZeroPool (NameSize * sizeof (CHAR16));
ASSERT (Name != NULL);
AsciiStrToUnicodeStrS (AsciiName, Name, NameSize);
} else {
@@ -1719,7 +1772,7 @@ ConstructConfigHdr (
NameLength = StrLen (Name);
}
- DevicePath = NULL;
+ DevicePath = NULL;
DevicePathSize = 0;
//
// Retrieve DevicePath Protocol associated with DriverHandle
@@ -1729,6 +1782,7 @@ ConstructConfigHdr (
if (DevicePath == NULL) {
return NULL;
}
+
//
// Compute the size of the device path in bytes
//
@@ -1750,7 +1804,7 @@ ConstructConfigHdr (
//
StrCpyS (String, MaxLen, L"GUID=");
ReturnString = String;
- String += StrLen (String);
+ String += StrLen (String);
if (Guid != NULL) {
//
@@ -1778,7 +1832,7 @@ ConstructConfigHdr (
//
// Append Name converted to <Char>NameLength
//
- for (; *Name != L'\0'; Name++) {
+ for ( ; *Name != L'\0'; Name++) {
UnicodeValueToStringS (
String,
MaxLen * sizeof (CHAR16) - ((UINTN)String - (UINTN)ReturnString),
@@ -1833,13 +1887,13 @@ ConstructConfigHdr (
**/
EFI_STRING
ConstructRequestElement (
- IN CHAR16 *Name,
- IN UINT16 Offset,
- IN UINT16 Width
+ IN CHAR16 *Name,
+ IN UINT16 Offset,
+ IN UINT16 Width
)
{
- CHAR16 *StringPtr;
- UINTN Length;
+ CHAR16 *StringPtr;
+ UINTN Length;
if (Name != NULL) {
//
@@ -1874,7 +1928,7 @@ ConstructRequestElement (
(StrLen (Name) + 1) * sizeof (CHAR16),
L"%s",
Name
- );
+ );
} else {
//
// Append OFFSET=XXXX&WIDTH=YYYY\0
@@ -1885,7 +1939,7 @@ ConstructRequestElement (
L"OFFSET=%04X&WIDTH=%04X",
Offset,
Width
- );
+ );
}
return StringPtr;
@@ -1902,8 +1956,8 @@ ConstructRequestElement (
**/
CHAR16 *
GetNameFromId (
- IN HII_DATABASE_RECORD *DatabaseRecord,
- IN EFI_STRING_ID NameId
+ IN HII_DATABASE_RECORD *DatabaseRecord,
+ IN EFI_STRING_ID NameId
)
{
CHAR16 *Name;
@@ -1914,13 +1968,13 @@ GetNameFromId (
CHAR16 TempString;
EFI_STATUS Status;
- Name = NULL;
- BestLanguage = NULL;
- PlatformLanguage = NULL;
+ Name = NULL;
+ BestLanguage = NULL;
+ PlatformLanguage = NULL;
SupportedLanguages = NULL;
- GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&PlatformLanguage, NULL);
- SupportedLanguages = GetSupportedLanguages(DatabaseRecord->Handle);
+ GetEfiGlobalVariable2 (L"PlatformLang", (VOID **)&PlatformLanguage, NULL);
+ SupportedLanguages = GetSupportedLanguages (DatabaseRecord->Handle);
//
// Get the best matching language from SupportedLanguages
@@ -1938,15 +1992,15 @@ GetNameFromId (
}
StringSize = 0;
- Status = mPrivate.HiiString.GetString (
- &mPrivate.HiiString,
- BestLanguage,
- DatabaseRecord->Handle,
- NameId,
- &TempString,
- &StringSize,
- NULL
- );
+ Status = mPrivate.HiiString.GetString (
+ &mPrivate.HiiString,
+ BestLanguage,
+ DatabaseRecord->Handle,
+ NameId,
+ &TempString,
+ &StringSize,
+ NULL
+ );
if (Status != EFI_BUFFER_TOO_SMALL) {
goto Done;
}
@@ -1957,14 +2011,14 @@ GetNameFromId (
}
Status = mPrivate.HiiString.GetString (
- &mPrivate.HiiString,
- BestLanguage,
- DatabaseRecord->Handle,
- NameId,
- Name,
- &StringSize,
- NULL
- );
+ &mPrivate.HiiString,
+ BestLanguage,
+ DatabaseRecord->Handle,
+ NameId,
+ Name,
+ &StringSize,
+ NULL
+ );
if (EFI_ERROR (Status)) {
FreePool (Name);
@@ -1974,11 +2028,13 @@ GetNameFromId (
Done:
if (SupportedLanguages != NULL) {
- FreePool(SupportedLanguages);
+ FreePool (SupportedLanguages);
}
+
if (BestLanguage != NULL) {
FreePool (BestLanguage);
}
+
if (PlatformLanguage != NULL) {
FreePool (PlatformLanguage);
}
@@ -2003,10 +2059,10 @@ Done:
**/
EFI_STATUS
ExtractConfigRequest (
- IN HII_DATABASE_RECORD *DatabaseRecord,
- IN EFI_STRING_ID KeywordStrId,
- OUT UINT8 **OpCodeData,
- OUT EFI_STRING *ConfigRequest
+ IN HII_DATABASE_RECORD *DatabaseRecord,
+ IN EFI_STRING_ID KeywordStrId,
+ OUT UINT8 **OpCodeData,
+ OUT EFI_STRING *ConfigRequest
)
{
LIST_ENTRY *Link;
@@ -2041,7 +2097,7 @@ ExtractConfigRequest (
OpCode = FindQuestionFromStringId (FormPackage, KeywordStrId);
if (OpCode != NULL) {
*OpCodeData = OpCode;
- Header = (EFI_IFR_QUESTION_HEADER *) (OpCode + sizeof (EFI_IFR_OP_HEADER));
+ Header = (EFI_IFR_QUESTION_HEADER *)(OpCode + sizeof (EFI_IFR_OP_HEADER));
//
// Header->VarStoreId == 0 means no storage for this question.
//
@@ -2051,23 +2107,25 @@ ExtractConfigRequest (
Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId);
ASSERT (Storage != NULL);
- if (((EFI_IFR_OP_HEADER *) Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {
+ if (((EFI_IFR_OP_HEADER *)Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {
Name = GetNameFromId (DatabaseRecord, Header->VarStoreInfo.VarName);
} else {
Offset = Header->VarStoreInfo.VarOffset;
- Width = GetWidth (OpCode);
+ Width = GetWidth (OpCode);
}
- RequestElement = ConstructRequestElement(Name, Offset, Width);
- ConfigHdr = ConstructConfigHdr(Storage, DatabaseRecord->DriverHandle);
+
+ RequestElement = ConstructRequestElement (Name, Offset, Width);
+ ConfigHdr = ConstructConfigHdr (Storage, DatabaseRecord->DriverHandle);
ASSERT (ConfigHdr != NULL);
- MaxLen = StrLen (ConfigHdr) + 1 + StrLen(RequestElement) + 1;
+ MaxLen = StrLen (ConfigHdr) + 1 + StrLen (RequestElement) + 1;
*ConfigRequest = AllocatePool (MaxLen * sizeof (CHAR16));
if (*ConfigRequest == NULL) {
FreePool (ConfigHdr);
FreePool (RequestElement);
return EFI_OUT_OF_RESOURCES;
}
+
StringPtr = *ConfigRequest;
StrCpyS (StringPtr, MaxLen, ConfigHdr);
@@ -2105,11 +2163,11 @@ ExtractConfigRequest (
**/
EFI_STATUS
ExtractConfigResp (
- IN HII_DATABASE_RECORD *DatabaseRecord,
- IN EFI_STRING_ID KeywordStrId,
- IN EFI_STRING ValueElement,
- OUT UINT8 **OpCodeData,
- OUT EFI_STRING *ConfigResp
+ IN HII_DATABASE_RECORD *DatabaseRecord,
+ IN EFI_STRING_ID KeywordStrId,
+ IN EFI_STRING ValueElement,
+ OUT UINT8 **OpCodeData,
+ OUT EFI_STRING *ConfigResp
)
{
LIST_ENTRY *Link;
@@ -2144,7 +2202,7 @@ ExtractConfigResp (
OpCode = FindQuestionFromStringId (FormPackage, KeywordStrId);
if (OpCode != NULL) {
*OpCodeData = OpCode;
- Header = (EFI_IFR_QUESTION_HEADER *) (OpCode + sizeof (EFI_IFR_OP_HEADER));
+ Header = (EFI_IFR_QUESTION_HEADER *)(OpCode + sizeof (EFI_IFR_OP_HEADER));
//
// Header->VarStoreId == 0 means no storage for this question.
//
@@ -2154,31 +2212,32 @@ ExtractConfigResp (
Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId);
ASSERT (Storage != NULL);
- if (((EFI_IFR_OP_HEADER *) Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {
+ if (((EFI_IFR_OP_HEADER *)Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {
Name = GetNameFromId (DatabaseRecord, Header->VarStoreInfo.VarName);
} else {
Offset = Header->VarStoreInfo.VarOffset;
Width = GetWidth (OpCode);
}
- RequestElement = ConstructRequestElement(Name, Offset, Width);
- ConfigHdr = ConstructConfigHdr(Storage, DatabaseRecord->DriverHandle);
+ RequestElement = ConstructRequestElement (Name, Offset, Width);
+
+ ConfigHdr = ConstructConfigHdr (Storage, DatabaseRecord->DriverHandle);
ASSERT (ConfigHdr != NULL);
- MaxLen = StrLen (ConfigHdr) + 1 + StrLen(RequestElement) + 1 + StrLen (L"VALUE=") + StrLen(ValueElement) + 1;
+ MaxLen = StrLen (ConfigHdr) + 1 + StrLen (RequestElement) + 1 + StrLen (L"VALUE=") + StrLen (ValueElement) + 1;
*ConfigResp = AllocatePool (MaxLen * sizeof (CHAR16));
if (*ConfigResp == NULL) {
FreePool (ConfigHdr);
FreePool (RequestElement);
return EFI_OUT_OF_RESOURCES;
}
+
StringPtr = *ConfigResp;
StrCpyS (StringPtr, MaxLen, ConfigHdr);
StrCatS (StringPtr, MaxLen, L"&");
-
StrCatS (StringPtr, MaxLen, RequestElement);
StrCatS (StringPtr, MaxLen, L"&");
@@ -2212,24 +2271,24 @@ ExtractConfigResp (
**/
EFI_STATUS
ExtractValueFromDriver (
- IN CHAR16 *ConfigRequest,
- OUT CHAR16 **ValueElement
+ IN CHAR16 *ConfigRequest,
+ OUT CHAR16 **ValueElement
)
{
- EFI_STATUS Status;
- EFI_STRING Result;
- EFI_STRING Progress;
- CHAR16 *StringPtr;
- CHAR16 *StringEnd;
+ EFI_STATUS Status;
+ EFI_STRING Result;
+ EFI_STRING Progress;
+ CHAR16 *StringPtr;
+ CHAR16 *StringEnd;
ASSERT ((ConfigRequest != NULL) && (ValueElement != NULL));
Status = mPrivate.ConfigRouting.ExtractConfig (
- &mPrivate.ConfigRouting,
- (EFI_STRING) ConfigRequest,
- &Progress,
- &Result
- );
+ &mPrivate.ConfigRouting,
+ (EFI_STRING)ConfigRequest,
+ &Progress,
+ &Result
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -2252,6 +2311,7 @@ ExtractValueFromDriver (
if (StringEnd != NULL) {
*StringEnd = L'&';
}
+
FreePool (Result);
return EFI_SUCCESS;
@@ -2276,20 +2336,20 @@ ExtractValueFromDriver (
**/
EFI_STATUS
GetStringIdFromDatabase (
- IN EFI_DEVICE_PATH_PROTOCOL **DevicePath,
- IN CHAR8 **NameSpace,
- IN CHAR16 *KeywordData,
- OUT UINT32 *ProgressErr,
- OUT EFI_STRING_ID *KeywordStringId,
- OUT HII_DATABASE_RECORD **DataBaseRecord
- )
+ IN EFI_DEVICE_PATH_PROTOCOL **DevicePath,
+ IN CHAR8 **NameSpace,
+ IN CHAR16 *KeywordData,
+ OUT UINT32 *ProgressErr,
+ OUT EFI_STRING_ID *KeywordStringId,
+ OUT HII_DATABASE_RECORD **DataBaseRecord
+ )
{
- HII_DATABASE_RECORD *Record;
- LIST_ENTRY *Link;
- BOOLEAN FindNameSpace;
- EFI_DEVICE_PATH_PROTOCOL *DestDevicePath;
- UINT8 *DevicePathPkg;
- UINTN DevicePathSize;
+ HII_DATABASE_RECORD *Record;
+ LIST_ENTRY *Link;
+ BOOLEAN FindNameSpace;
+ EFI_DEVICE_PATH_PROTOCOL *DestDevicePath;
+ UINT8 *DevicePathPkg;
+ UINTN DevicePathSize;
ASSERT ((NameSpace != NULL) && (KeywordData != NULL) && (ProgressErr != NULL) && (KeywordStringId != NULL) && (DataBaseRecord != NULL));
@@ -2299,7 +2359,7 @@ GetStringIdFromDatabase (
//
// Get DataBaseRecord from device path protocol.
//
- Record = GetRecordFromDevicePath(*DevicePath);
+ Record = GetRecordFromDevicePath (*DevicePath);
if (Record == NULL) {
//
// Can't find the DatabaseRecord base on the input device path info.
@@ -2314,16 +2374,16 @@ GetStringIdFromDatabase (
//
*ProgressErr = GetStringIdFromRecord (Record, NameSpace, KeywordData, KeywordStringId);
switch (*ProgressErr) {
- case KEYWORD_HANDLER_NO_ERROR:
- *DataBaseRecord = Record;
- return EFI_SUCCESS;
+ case KEYWORD_HANDLER_NO_ERROR:
+ *DataBaseRecord = Record;
+ return EFI_SUCCESS;
- case KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND:
- return EFI_INVALID_PARAMETER;
+ case KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND:
+ return EFI_INVALID_PARAMETER;
- default:
- ASSERT (*ProgressErr == KEYWORD_HANDLER_KEYWORD_NOT_FOUND);
- return EFI_NOT_FOUND;
+ default:
+ ASSERT (*ProgressErr == KEYWORD_HANDLER_KEYWORD_NOT_FOUND);
+ return EFI_NOT_FOUND;
}
} else {
//
@@ -2337,9 +2397,9 @@ GetStringIdFromDatabase (
*DataBaseRecord = Record;
if ((DevicePathPkg = Record->PackageList->DevicePathPkg) != NULL) {
- DestDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) (DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER));
- DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DestDevicePath);
- *DevicePath = AllocateCopyPool (DevicePathSize, DestDevicePath);
+ DestDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)(DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER));
+ DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DestDevicePath);
+ *DevicePath = AllocateCopyPool (DevicePathSize, DestDevicePath);
if (*DevicePath == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2388,19 +2448,19 @@ GetStringIdFromDatabase (
**/
EFI_STATUS
GenerateKeywordResp (
- IN CHAR8 *NameSpace,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN EFI_STRING KeywordData,
- IN EFI_STRING ValueStr,
- IN BOOLEAN ReadOnly,
- OUT EFI_STRING *KeywordResp
+ IN CHAR8 *NameSpace,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN EFI_STRING KeywordData,
+ IN EFI_STRING ValueStr,
+ IN BOOLEAN ReadOnly,
+ OUT EFI_STRING *KeywordResp
)
{
- UINTN RespStrLen;
- CHAR16 *RespStr;
- CHAR16 *PathHdr;
- CHAR16 *UnicodeNameSpace;
- UINTN NameSpaceLength;
+ UINTN RespStrLen;
+ CHAR16 *RespStr;
+ CHAR16 *PathHdr;
+ CHAR16 *UnicodeNameSpace;
+ UINTN NameSpaceLength;
ASSERT ((NameSpace != NULL) && (DevicePath != NULL) && (KeywordData != NULL) && (ValueStr != NULL) && (KeywordResp != NULL));
@@ -2411,12 +2471,13 @@ GenerateKeywordResp (
// 1.1 NameSpaceId size.
// 'NAMESPACE='<String>
//
- NameSpaceLength = AsciiStrLen (NameSpace);
- RespStrLen = 10 + NameSpaceLength;
+ NameSpaceLength = AsciiStrLen (NameSpace);
+ RespStrLen = 10 + NameSpaceLength;
UnicodeNameSpace = AllocatePool ((NameSpaceLength + 1) * sizeof (CHAR16));
if (UnicodeNameSpace == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
AsciiStrToUnicodeStrS (NameSpace, UnicodeNameSpace, NameSpaceLength + 1);
//
@@ -2426,8 +2487,8 @@ GenerateKeywordResp (
//
GenerateSubStr (
L"&PATH=",
- GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DevicePath),
- (VOID *) DevicePath,
+ GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DevicePath),
+ (VOID *)DevicePath,
1,
&PathHdr
);
@@ -2456,7 +2517,7 @@ GenerateKeywordResp (
//
// 2. Allocate the buffer and create the KeywordResp string include '\0'.
//
- RespStrLen += 1;
+ RespStrLen += 1;
*KeywordResp = AllocatePool (RespStrLen * sizeof (CHAR16));
if (*KeywordResp == NULL) {
if (UnicodeNameSpace != NULL) {
@@ -2465,6 +2526,7 @@ GenerateKeywordResp (
return EFI_OUT_OF_RESOURCES;
}
+
RespStr = *KeywordResp;
//
@@ -2501,6 +2563,7 @@ GenerateKeywordResp (
if (UnicodeNameSpace != NULL) {
FreePool (UnicodeNameSpace);
}
+
if (PathHdr != NULL) {
FreePool (PathHdr);
}
@@ -2522,8 +2585,8 @@ GenerateKeywordResp (
**/
EFI_STATUS
MergeToMultiKeywordResp (
- IN OUT EFI_STRING *MultiKeywordResp,
- IN EFI_STRING *KeywordResp
+ IN OUT EFI_STRING *MultiKeywordResp,
+ IN EFI_STRING *KeywordResp
)
{
UINTN MultiKeywordRespLen;
@@ -2531,7 +2594,7 @@ MergeToMultiKeywordResp (
if (*MultiKeywordResp == NULL) {
*MultiKeywordResp = *KeywordResp;
- *KeywordResp = NULL;
+ *KeywordResp = NULL;
return EFI_SUCCESS;
}
@@ -2573,9 +2636,9 @@ MergeToMultiKeywordResp (
**/
EFI_STATUS
EnumerateAllKeywords (
- IN CHAR8 *NameSpace,
- OUT EFI_STRING *MultiResp,
- OUT UINT32 *ProgressErr
+ IN CHAR8 *NameSpace,
+ OUT EFI_STRING *MultiResp,
+ OUT UINT32 *ProgressErr
)
{
LIST_ENTRY *Link;
@@ -2597,14 +2660,14 @@ EnumerateAllKeywords (
BOOLEAN ReadOnly;
BOOLEAN FindKeywordPackages;
- DataBaseRecord = NULL;
- Status = EFI_SUCCESS;
- MultiKeywordResp = NULL;
- DevicePath = NULL;
- LocalNameSpace = NULL;
- ConfigRequest = NULL;
- ValueElement = NULL;
- KeywordResp = NULL;
+ DataBaseRecord = NULL;
+ Status = EFI_SUCCESS;
+ MultiKeywordResp = NULL;
+ DevicePath = NULL;
+ LocalNameSpace = NULL;
+ ConfigRequest = NULL;
+ ValueElement = NULL;
+ KeywordResp = NULL;
FindKeywordPackages = FALSE;
if (NameSpace == NULL) {
@@ -2619,6 +2682,7 @@ EnumerateAllKeywords (
if ((DevicePathPkg = DataBaseRecord->PackageList->DevicePathPkg) != NULL) {
DevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
}
+
PackageListNode = DataBaseRecord->PackageList;
for (StringLink = PackageListNode->StringPkgHdr.ForwardLink; StringLink != &PackageListNode->StringPkgHdr; StringLink = StringLink->ForwardLink) {
@@ -2627,7 +2691,7 @@ EnumerateAllKeywords (
//
// Check whether has keyword string package.
//
- if (AsciiStrnCmp(NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {
+ if (AsciiStrnCmp (NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {
FindKeywordPackages = TRUE;
//
// Keep the NameSpace string.
@@ -2662,7 +2726,7 @@ EnumerateAllKeywords (
//
// 3.4 Extract Value for the input keyword.
//
- Status = ExtractValueFromDriver(ConfigRequest, &ValueElement);
+ Status = ExtractValueFromDriver (ConfigRequest, &ValueElement);
if (EFI_ERROR (Status)) {
if (Status != EFI_OUT_OF_RESOURCES) {
//
@@ -2670,6 +2734,7 @@ EnumerateAllKeywords (
//
goto Error;
}
+
//
// If EFI_OUT_OF_RESOURCES error occur, no need to continue.
//
@@ -2679,13 +2744,13 @@ EnumerateAllKeywords (
//
// Extract readonly flag from opcode.
//
- ReadOnly = ExtractReadOnlyFromOpCode(OpCode);
+ ReadOnly = ExtractReadOnlyFromOpCode (OpCode);
//
// 5. Generate KeywordResp string.
//
ASSERT (DevicePath != NULL);
- Status = GenerateKeywordResp(LocalNameSpace, (EFI_DEVICE_PATH_PROTOCOL *)DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);
+ Status = GenerateKeywordResp (LocalNameSpace, (EFI_DEVICE_PATH_PROTOCOL *)DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);
if (Status != EFI_SUCCESS) {
//
// If EFI_OUT_OF_RESOURCES error occur, no need to continue.
@@ -2696,10 +2761,11 @@ EnumerateAllKeywords (
//
// 6. Merge to the MultiKeywordResp string.
//
- Status = MergeToMultiKeywordResp(&MultiKeywordResp, &KeywordResp);
+ Status = MergeToMultiKeywordResp (&MultiKeywordResp, &KeywordResp);
if (EFI_ERROR (Status)) {
goto Done;
}
+
Error:
//
// Clean the temp buffer to later use again.
@@ -2708,10 +2774,12 @@ Error:
FreePool (ConfigRequest);
ConfigRequest = NULL;
}
+
if (ValueElement != NULL) {
FreePool (ValueElement);
ValueElement = NULL;
}
+
if (KeywordResp != NULL) {
FreePool (KeywordResp);
KeywordResp = NULL;
@@ -2739,15 +2807,18 @@ Error:
} else {
Status = EFI_SUCCESS;
}
+
*MultiResp = MultiKeywordResp;
Done:
if (LocalNameSpace != NULL) {
FreePool (LocalNameSpace);
}
+
if (ConfigRequest != NULL) {
FreePool (ConfigRequest);
}
+
if (ValueElement != NULL) {
FreePool (ValueElement);
}
@@ -2817,37 +2888,37 @@ Done:
EFI_STATUS
EFIAPI
EfiConfigKeywordHandlerSetData (
- IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
- IN CONST EFI_STRING KeywordString,
- OUT EFI_STRING *Progress,
- OUT UINT32 *ProgressErr
+ IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
+ IN CONST EFI_STRING KeywordString,
+ OUT EFI_STRING *Progress,
+ OUT UINT32 *ProgressErr
)
{
- CHAR8 *NameSpace;
- EFI_STATUS Status;
- CHAR16 *StringPtr;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- CHAR16 *NextStringPtr;
- CHAR16 *KeywordData;
- EFI_STRING_ID KeywordStringId;
- UINT32 RetVal;
- HII_DATABASE_RECORD *DataBaseRecord;
- UINT8 *OpCode;
- CHAR16 *ConfigResp;
- CHAR16 *MultiConfigResp;
- CHAR16 *ValueElement;
- BOOLEAN ReadOnly;
- EFI_STRING InternalProgress;
- CHAR16 *TempString;
- CHAR16 *KeywordStartPos;
-
- if (This == NULL || Progress == NULL || ProgressErr == NULL || KeywordString == NULL) {
+ CHAR8 *NameSpace;
+ EFI_STATUS Status;
+ CHAR16 *StringPtr;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ CHAR16 *NextStringPtr;
+ CHAR16 *KeywordData;
+ EFI_STRING_ID KeywordStringId;
+ UINT32 RetVal;
+ HII_DATABASE_RECORD *DataBaseRecord;
+ UINT8 *OpCode;
+ CHAR16 *ConfigResp;
+ CHAR16 *MultiConfigResp;
+ CHAR16 *ValueElement;
+ BOOLEAN ReadOnly;
+ EFI_STRING InternalProgress;
+ CHAR16 *TempString;
+ CHAR16 *KeywordStartPos;
+
+ if ((This == NULL) || (Progress == NULL) || (ProgressErr == NULL) || (KeywordString == NULL)) {
return EFI_INVALID_PARAMETER;
}
- *Progress = KeywordString;
- *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;
- Status = EFI_SUCCESS;
+ *Progress = KeywordString;
+ *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;
+ Status = EFI_SUCCESS;
MultiConfigResp = NULL;
NameSpace = NULL;
DevicePath = NULL;
@@ -2873,13 +2944,14 @@ EfiConfigKeywordHandlerSetData (
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
goto Done;
}
+
ASSERT (NameSpace != NULL);
//
// 1.1 Check whether the input namespace is valid.
//
- if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {
+ if (AsciiStrnCmp (NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
@@ -2893,21 +2965,23 @@ EfiConfigKeywordHandlerSetData (
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
goto Done;
}
+
StringPtr = NextStringPtr;
//
// 3. Extract keyword from the KeywordRequest string.
//
KeywordStartPos = StringPtr;
- Status = ExtractKeyword(StringPtr, &KeywordData, &NextStringPtr);
+ Status = ExtractKeyword (StringPtr, &KeywordData, &NextStringPtr);
if (EFI_ERROR (Status)) {
//
// Can't find Keyword base on the input device path info.
//
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
StringPtr = NextStringPtr;
//
@@ -2919,16 +2993,17 @@ EfiConfigKeywordHandlerSetData (
// Can't find Value base on the input device path info.
//
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
StringPtr = NextStringPtr;
//
// 5. Find READONLY tag.
//
- if ((StringPtr != NULL) && StrnCmp (StringPtr, L"&READONLY", StrLen (L"&READONLY")) == 0) {
- ReadOnly = TRUE;
+ if ((StringPtr != NULL) && (StrnCmp (StringPtr, L"&READONLY", StrLen (L"&READONLY")) == 0)) {
+ ReadOnly = TRUE;
StringPtr += StrLen (L"&READONLY");
} else {
ReadOnly = FALSE;
@@ -2960,19 +3035,20 @@ EfiConfigKeywordHandlerSetData (
// If not, the input KeywordString must be incorrect, return the error status to caller.
//
*ProgressErr = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
if (ReadOnly) {
*ProgressErr = KEYWORD_HANDLER_ACCESS_NOT_PERMITTED;
- Status = EFI_ACCESS_DENIED;
+ Status = EFI_ACCESS_DENIED;
goto Done;
}
//
// 9. Merge to the MultiKeywordResp string.
//
- Status = MergeToMultiKeywordResp(&MultiConfigResp, &ConfigResp);
+ Status = MergeToMultiKeywordResp (&MultiConfigResp, &ConfigResp);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -2984,25 +3060,26 @@ EfiConfigKeywordHandlerSetData (
FreePool (DevicePath);
FreePool (KeywordData);
FreePool (ValueElement);
- NameSpace = NULL;
- DevicePath = NULL;
- KeywordData = NULL;
+ NameSpace = NULL;
+ DevicePath = NULL;
+ KeywordData = NULL;
ValueElement = NULL;
if (ConfigResp != NULL) {
FreePool (ConfigResp);
ConfigResp = NULL;
}
+
KeywordStartPos = NULL;
}
//
// 11. Set value to driver.
//
- Status = mPrivate.ConfigRouting.RouteConfig(
- &mPrivate.ConfigRouting,
- (EFI_STRING) MultiConfigResp,
- &InternalProgress
- );
+ Status = mPrivate.ConfigRouting.RouteConfig (
+ &mPrivate.ConfigRouting,
+ (EFI_STRING)MultiConfigResp,
+ &InternalProgress
+ );
if (EFI_ERROR (Status)) {
Status = EFI_DEVICE_ERROR;
goto Done;
@@ -3022,19 +3099,24 @@ Done:
if (NameSpace != NULL) {
FreePool (NameSpace);
}
+
if (DevicePath != NULL) {
FreePool (DevicePath);
}
+
if (KeywordData != NULL) {
FreePool (KeywordData);
}
+
if (ValueElement != NULL) {
FreePool (ValueElement);
}
+
if (ConfigResp != NULL) {
FreePool (ConfigResp);
}
- if (MultiConfigResp != NULL && MultiConfigResp != ConfigResp) {
+
+ if ((MultiConfigResp != NULL) && (MultiConfigResp != ConfigResp)) {
FreePool (MultiConfigResp);
}
@@ -3121,38 +3203,38 @@ EfiConfigKeywordHandlerGetData (
OUT EFI_STRING *Results
)
{
- CHAR8 *NameSpace;
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- HII_DATABASE_RECORD *DataBaseRecord;
- CHAR16 *StringPtr;
- CHAR16 *NextStringPtr;
- CHAR16 *KeywordData;
- EFI_STRING_ID KeywordStringId;
- UINT8 *OpCode;
- CHAR16 *ConfigRequest;
- CHAR16 *ValueElement;
- UINT32 RetVal;
- BOOLEAN ReadOnly;
- CHAR16 *KeywordResp;
- CHAR16 *MultiKeywordResp;
- CHAR16 *TempString;
+ CHAR8 *NameSpace;
+ EFI_STATUS Status;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ HII_DATABASE_RECORD *DataBaseRecord;
+ CHAR16 *StringPtr;
+ CHAR16 *NextStringPtr;
+ CHAR16 *KeywordData;
+ EFI_STRING_ID KeywordStringId;
+ UINT8 *OpCode;
+ CHAR16 *ConfigRequest;
+ CHAR16 *ValueElement;
+ UINT32 RetVal;
+ BOOLEAN ReadOnly;
+ CHAR16 *KeywordResp;
+ CHAR16 *MultiKeywordResp;
+ CHAR16 *TempString;
- if (This == NULL || Progress == NULL || ProgressErr == NULL || Results == NULL) {
+ if ((This == NULL) || (Progress == NULL) || (ProgressErr == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
- *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;
- Status = EFI_SUCCESS;
- DevicePath = NULL;
- NameSpace = NULL;
- KeywordData = NULL;
- ConfigRequest= NULL;
- StringPtr = KeywordString;
- ReadOnly = FALSE;
+ *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;
+ Status = EFI_SUCCESS;
+ DevicePath = NULL;
+ NameSpace = NULL;
+ KeywordData = NULL;
+ ConfigRequest = NULL;
+ StringPtr = KeywordString;
+ ReadOnly = FALSE;
MultiKeywordResp = NULL;
KeywordStringId = 0;
- TempString = NULL;
+ TempString = NULL;
//
// Use temp string to avoid changing input string buffer.
@@ -3161,6 +3243,7 @@ EfiConfigKeywordHandlerGetData (
TempString = AllocateCopyPool (StrSize (NameSpaceId), NameSpaceId);
ASSERT (TempString != NULL);
}
+
//
// 1. Get NameSpace from NameSpaceId keyword.
//
@@ -3169,15 +3252,17 @@ EfiConfigKeywordHandlerGetData (
FreePool (TempString);
TempString = NULL;
}
+
if (EFI_ERROR (Status)) {
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
return Status;
}
+
//
// 1.1 Check whether the input namespace is valid.
//
- if (NameSpace != NULL){
- if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {
+ if (NameSpace != NULL) {
+ if (AsciiStrnCmp (NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
return EFI_INVALID_PARAMETER;
}
@@ -3200,21 +3285,21 @@ EfiConfigKeywordHandlerGetData (
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
goto Done;
}
- StringPtr = NextStringPtr;
+ StringPtr = NextStringPtr;
//
// 3. Process Keyword section from the input keywordRequest string.
//
// 3.1 Extract keyword from the KeywordRequest string.
//
- Status = ExtractKeyword(StringPtr, &KeywordData, &NextStringPtr);
+ Status = ExtractKeyword (StringPtr, &KeywordData, &NextStringPtr);
if (EFI_ERROR (Status)) {
//
// Can't find Keyword base on the input device path info.
//
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
@@ -3238,13 +3323,15 @@ EfiConfigKeywordHandlerGetData (
//
// 3.4 Extract Value for the input keyword.
//
- Status = ExtractValueFromDriver(ConfigRequest, &ValueElement);
+ Status = ExtractValueFromDriver (ConfigRequest, &ValueElement);
if (EFI_ERROR (Status)) {
if (Status != EFI_OUT_OF_RESOURCES) {
Status = EFI_DEVICE_ERROR;
}
+
goto Done;
}
+
StringPtr = NextStringPtr;
//
@@ -3253,16 +3340,16 @@ EfiConfigKeywordHandlerGetData (
RetVal = ValidateFilter (OpCode, StringPtr, &NextStringPtr, &ReadOnly);
if (RetVal != KEYWORD_HANDLER_NO_ERROR) {
*ProgressErr = RetVal;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
- StringPtr = NextStringPtr;
+ StringPtr = NextStringPtr;
//
// 5. Generate KeywordResp string.
//
- Status = GenerateKeywordResp(NameSpace, DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);
+ Status = GenerateKeywordResp (NameSpace, DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);
if (Status != EFI_SUCCESS) {
goto Done;
}
@@ -3270,7 +3357,7 @@ EfiConfigKeywordHandlerGetData (
//
// 6. Merge to the MultiKeywordResp string.
//
- Status = MergeToMultiKeywordResp(&MultiKeywordResp, &KeywordResp);
+ Status = MergeToMultiKeywordResp (&MultiKeywordResp, &KeywordResp);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -3287,9 +3374,9 @@ EfiConfigKeywordHandlerGetData (
FreePool (KeywordData);
FreePool (ValueElement);
FreePool (ConfigRequest);
- DevicePath = NULL;
- KeywordData = NULL;
- ValueElement = NULL;
+ DevicePath = NULL;
+ KeywordData = NULL;
+ ValueElement = NULL;
ConfigRequest = NULL;
if (KeywordResp != NULL) {
FreePool (KeywordResp);
@@ -3300,10 +3387,11 @@ EfiConfigKeywordHandlerGetData (
//
// Enumerate all keyword in the system.
//
- Status = EnumerateAllKeywords(NameSpace, &MultiKeywordResp, ProgressErr);
+ Status = EnumerateAllKeywords (NameSpace, &MultiKeywordResp, ProgressErr);
if (EFI_ERROR (Status)) {
goto Done;
}
+
*Results = MultiKeywordResp;
}
@@ -3315,12 +3403,15 @@ Done:
if (TempString != NULL) {
FreePool (TempString);
}
+
if (NameSpace != NULL) {
FreePool (NameSpace);
}
+
if (DevicePath != NULL) {
FreePool (DevicePath);
}
+
if (KeywordData != NULL) {
FreePool (KeywordData);
}
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
index 17a9142..2f792d2 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
@@ -6,9 +6,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
-extern HII_DATABASE_PRIVATE_DATA mPrivate;
+extern HII_DATABASE_PRIVATE_DATA mPrivate;
/**
Calculate the number of Unicode characters of the incoming Configuration string,
@@ -24,7 +23,7 @@ extern HII_DATABASE_PRIVATE_DATA mPrivate;
**/
UINTN
CalculateConfigStringLen (
- IN EFI_STRING String
+ IN EFI_STRING String
)
{
EFI_STRING TmpPtr;
@@ -47,7 +46,6 @@ CalculateConfigStringLen (
return (TmpPtr - String);
}
-
/**
Convert the hex UNICODE %02x encoding of a UEFI device path to binary
from <PathHdr> of <ConfigHdr>.
@@ -66,30 +64,32 @@ CalculateConfigStringLen (
**/
EFI_STATUS
GetDevicePath (
- IN EFI_STRING String,
- OUT UINT8 **DevicePathData
+ IN EFI_STRING String,
+ OUT UINT8 **DevicePathData
)
{
- UINTN Length;
- EFI_STRING PathHdr;
- UINT8 *DevicePathBuffer;
- CHAR16 TemStr[2];
- UINTN Index;
- UINT8 DigitUint8;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
-
-
- if (String == NULL || DevicePathData == NULL) {
+ UINTN Length;
+ EFI_STRING PathHdr;
+ UINT8 *DevicePathBuffer;
+ CHAR16 TemStr[2];
+ UINTN Index;
+ UINT8 DigitUint8;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+
+ if ((String == NULL) || (DevicePathData == NULL)) {
return EFI_INVALID_PARAMETER;
}
//
// Find the 'PATH=' of <PathHdr> and skip it.
//
- for (; (*String != 0 && StrnCmp (String, L"PATH=", StrLen (L"PATH=")) != 0); String++);
+ for ( ; (*String != 0 && StrnCmp (String, L"PATH=", StrLen (L"PATH=")) != 0); String++) {
+ }
+
if (*String == 0) {
return EFI_INVALID_PARAMETER;
}
+
//
// Check whether path data does exist.
//
@@ -97,6 +97,7 @@ GetDevicePath (
if (*String == 0) {
return EFI_INVALID_PARAMETER;
}
+
PathHdr = String;
//
@@ -104,7 +105,9 @@ GetDevicePath (
// or '\0' (end of configuration string) is the UNICODE %02x bytes encoding
// of UEFI device path.
//
- for (Length = 0; *String != 0 && *String != L'&'; String++, Length++);
+ for (Length = 0; *String != 0 && *String != L'&'; String++, Length++) {
+ }
+
//
// Check DevicePath Length
//
@@ -117,7 +120,7 @@ GetDevicePath (
// as the device path resides in RAM memory.
// Translate the data into binary.
//
- DevicePathBuffer = (UINT8 *) AllocateZeroPool ((Length + 1) / 2);
+ DevicePathBuffer = (UINT8 *)AllocateZeroPool ((Length + 1) / 2);
if (DevicePathBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -126,20 +129,20 @@ GetDevicePath (
// Convert DevicePath
//
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0; Index < Length; Index ++) {
- TemStr[0] = PathHdr[Index];
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0; Index < Length; Index++) {
+ TemStr[0] = PathHdr[Index];
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- DevicePathBuffer [Index/2] = DigitUint8;
+ DevicePathBuffer[Index/2] = DigitUint8;
} else {
- DevicePathBuffer [Index/2] = (UINT8) ((DevicePathBuffer [Index/2] << 4) + DigitUint8);
+ DevicePathBuffer[Index/2] = (UINT8)((DevicePathBuffer[Index/2] << 4) + DigitUint8);
}
}
//
// Validate DevicePath
//
- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DevicePathBuffer;
+ DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)DevicePathBuffer;
while (!IsDevicePathEnd (DevicePath)) {
if ((DevicePath->Type == 0) || (DevicePath->SubType == 0) || (DevicePathNodeLength (DevicePath) < sizeof (EFI_DEVICE_PATH_PROTOCOL))) {
//
@@ -148,6 +151,7 @@ GetDevicePath (
FreePool (DevicePathBuffer);
return EFI_NOT_FOUND;
}
+
DevicePath = NextDevicePathNode (DevicePath);
}
@@ -184,8 +188,8 @@ HiiToLower (
Lower = TRUE;
} else if (*String == L'&') {
Lower = FALSE;
- } else if (Lower && *String >= L'A' && *String <= L'F') {
- *String = (CHAR16) (*String - L'A' + L'a');
+ } else if (Lower && (*String >= L'A') && (*String <= L'F')) {
+ *String = (CHAR16)(*String - L'A' + L'a');
}
}
@@ -216,11 +220,11 @@ HiiToLower (
**/
VOID
GenerateSubStr (
- IN CONST EFI_STRING String,
- IN UINTN BufferLen,
- IN VOID *Buffer,
- IN UINT8 Flag,
- OUT EFI_STRING *SubStr
+ IN CONST EFI_STRING String,
+ IN UINTN BufferLen,
+ IN VOID *Buffer,
+ IN UINT8 Flag,
+ OUT EFI_STRING *SubStr
)
{
UINTN Length;
@@ -249,63 +253,66 @@ GenerateSubStr (
StrCpyS (Str, Length, String);
StringHeader = Str + StrLen (String);
- TemString = (CHAR16 *) StringHeader;
+ TemString = (CHAR16 *)StringHeader;
switch (Flag) {
- case 1:
- //
- // Convert Buffer to Hex String in reverse order
- //
- TemBuffer = ((UINT8 *) Buffer);
- for (Index = 0; Index < BufferLen; Index ++, TemBuffer ++) {
- UnicodeValueToStringS (
- TemString,
- sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),
- PREFIX_ZERO | RADIX_HEX,
- *TemBuffer,
- 2
- );
- TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));
- }
- break;
- case 2:
- //
- // Check buffer is enough
- //
- TemName = (CHAR16 *) Buffer;
- ASSERT ((BufferLen * 2 + 1) >= (StrLen (TemName) * 4 + 1));
- //
- // Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"
- //
- for (; *TemName != L'\0'; TemName++) {
- UnicodeValueToStringS (
- TemString,
- sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),
- PREFIX_ZERO | RADIX_HEX,
- *TemName,
- 4
- );
- TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));
- }
- break;
- case 3:
- //
- // Convert Buffer to Hex String
- //
- TemBuffer = ((UINT8 *) Buffer) + BufferLen - 1;
- for (Index = 0; Index < BufferLen; Index ++, TemBuffer --) {
- UnicodeValueToStringS (
- TemString,
- sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),
- PREFIX_ZERO | RADIX_HEX,
- *TemBuffer,
- 2
- );
- TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));
- }
- break;
- default:
- break;
+ case 1:
+ //
+ // Convert Buffer to Hex String in reverse order
+ //
+ TemBuffer = ((UINT8 *)Buffer);
+ for (Index = 0; Index < BufferLen; Index++, TemBuffer++) {
+ UnicodeValueToStringS (
+ TemString,
+ sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),
+ PREFIX_ZERO | RADIX_HEX,
+ *TemBuffer,
+ 2
+ );
+ TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));
+ }
+
+ break;
+ case 2:
+ //
+ // Check buffer is enough
+ //
+ TemName = (CHAR16 *)Buffer;
+ ASSERT ((BufferLen * 2 + 1) >= (StrLen (TemName) * 4 + 1));
+ //
+ // Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"
+ //
+ for ( ; *TemName != L'\0'; TemName++) {
+ UnicodeValueToStringS (
+ TemString,
+ sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),
+ PREFIX_ZERO | RADIX_HEX,
+ *TemName,
+ 4
+ );
+ TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));
+ }
+
+ break;
+ case 3:
+ //
+ // Convert Buffer to Hex String
+ //
+ TemBuffer = ((UINT8 *)Buffer) + BufferLen - 1;
+ for (Index = 0; Index < BufferLen; Index++, TemBuffer--) {
+ UnicodeValueToStringS (
+ TemString,
+ sizeof (CHAR16) * (Length - StrnLenS (Str, Length)),
+ PREFIX_ZERO | RADIX_HEX,
+ *TemBuffer,
+ 2
+ );
+ TemString += StrnLenS (TemString, Length - StrnLenS (Str, Length));
+ }
+
+ break;
+ default:
+ break;
}
//
@@ -317,7 +324,6 @@ GenerateSubStr (
*SubStr = Str;
}
-
/**
Retrieve the <ConfigBody> from String then output it.
@@ -335,15 +341,15 @@ GenerateSubStr (
**/
EFI_STATUS
OutputConfigBody (
- IN EFI_STRING String,
- OUT EFI_STRING *ConfigBody
+ IN EFI_STRING String,
+ OUT EFI_STRING *ConfigBody
)
{
EFI_STRING TmpPtr;
EFI_STRING Result;
UINTN Length;
- if (String == NULL || ConfigBody == NULL) {
+ if ((String == NULL) || (ConfigBody == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -372,13 +378,14 @@ OutputConfigBody (
if (Length == 0) {
return EFI_NOT_FOUND;
}
+
Result = AllocateCopyPool (Length * sizeof (CHAR16), String);
if (Result == NULL) {
return EFI_OUT_OF_RESOURCES;
}
*(Result + Length - 1) = 0;
- *ConfigBody = Result;
+ *ConfigBody = Result;
return EFI_SUCCESS;
}
@@ -400,35 +407,37 @@ OutputConfigBody (
**/
EFI_STATUS
AppendToMultiString (
- IN OUT EFI_STRING *MultiString,
- IN EFI_STRING AppendString
+ IN OUT EFI_STRING *MultiString,
+ IN EFI_STRING AppendString
)
{
- UINTN AppendStringSize;
- UINTN MultiStringSize;
- UINTN MaxLen;
+ UINTN AppendStringSize;
+ UINTN MultiStringSize;
+ UINTN MaxLen;
- if (MultiString == NULL || *MultiString == NULL || AppendString == NULL) {
+ if ((MultiString == NULL) || (*MultiString == NULL) || (AppendString == NULL)) {
return EFI_INVALID_PARAMETER;
}
AppendStringSize = StrSize (AppendString);
MultiStringSize = StrSize (*MultiString);
- MaxLen = MAX_STRING_LENGTH / sizeof (CHAR16);
+ MaxLen = MAX_STRING_LENGTH / sizeof (CHAR16);
//
// Enlarge the buffer each time when length exceeds MAX_STRING_LENGTH.
//
- if (MultiStringSize + AppendStringSize > MAX_STRING_LENGTH ||
- MultiStringSize > MAX_STRING_LENGTH) {
- *MultiString = (EFI_STRING) ReallocatePool (
- MultiStringSize,
- MultiStringSize + AppendStringSize,
- (VOID *) (*MultiString)
- );
+ if ((MultiStringSize + AppendStringSize > MAX_STRING_LENGTH) ||
+ (MultiStringSize > MAX_STRING_LENGTH))
+ {
+ *MultiString = (EFI_STRING)ReallocatePool (
+ MultiStringSize,
+ MultiStringSize + AppendStringSize,
+ (VOID *)(*MultiString)
+ );
MaxLen = (MultiStringSize + AppendStringSize) / sizeof (CHAR16);
ASSERT (*MultiString != NULL);
}
+
//
// Append the incoming string
//
@@ -437,7 +446,6 @@ AppendToMultiString (
return EFI_SUCCESS;
}
-
/**
Get the value of <Number> in <BlockConfig> format, i.e. the value of OFFSET
or WIDTH or VALUE.
@@ -459,21 +467,21 @@ AppendToMultiString (
**/
EFI_STATUS
GetValueOfNumber (
- IN EFI_STRING StringPtr,
- OUT UINT8 **Number,
- OUT UINTN *Len
+ IN EFI_STRING StringPtr,
+ OUT UINT8 **Number,
+ OUT UINTN *Len
)
{
- EFI_STRING TmpPtr;
- UINTN Length;
- EFI_STRING Str;
- UINT8 *Buf;
- EFI_STATUS Status;
- UINT8 DigitUint8;
- UINTN Index;
- CHAR16 TemStr[2];
-
- if (StringPtr == NULL || *StringPtr == L'\0' || Number == NULL || Len == NULL) {
+ EFI_STRING TmpPtr;
+ UINTN Length;
+ EFI_STRING Str;
+ UINT8 *Buf;
+ EFI_STATUS Status;
+ UINT8 DigitUint8;
+ UINTN Index;
+ CHAR16 TemStr[2];
+
+ if ((StringPtr == NULL) || (*StringPtr == L'\0') || (Number == NULL) || (Len == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -483,19 +491,21 @@ GetValueOfNumber (
while (*StringPtr != L'\0' && *StringPtr != L'&') {
StringPtr++;
}
+
*Len = StringPtr - TmpPtr;
Length = *Len + 1;
- Str = (EFI_STRING) AllocateZeroPool (Length * sizeof (CHAR16));
+ Str = (EFI_STRING)AllocateZeroPool (Length * sizeof (CHAR16));
if (Str == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
CopyMem (Str, TmpPtr, *Len * sizeof (CHAR16));
*(Str + *Len) = L'\0';
Length = (Length + 1) / 2;
- Buf = (UINT8 *) AllocateZeroPool (Length);
+ Buf = (UINT8 *)AllocateZeroPool (Length);
if (Buf == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
@@ -503,13 +513,13 @@ GetValueOfNumber (
Length = *Len;
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0; Index < Length; Index ++) {
- TemStr[0] = Str[Length - Index - 1];
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0; Index < Length; Index++) {
+ TemStr[0] = Str[Length - Index - 1];
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- Buf [Index/2] = DigitUint8;
+ Buf[Index/2] = DigitUint8;
} else {
- Buf [Index/2] = (UINT8) ((DigitUint8 << 4) + Buf [Index/2]);
+ Buf[Index/2] = (UINT8)((DigitUint8 << 4) + Buf[Index/2]);
}
}
@@ -538,29 +548,30 @@ Exit:
**/
EFI_STATUS
-FindSameBlockElement(
- IN EFI_STRING String,
- IN EFI_STRING BlockName,
- IN UINT8 *Buffer,
- OUT BOOLEAN *Found,
- IN UINTN BufferLen
+FindSameBlockElement (
+ IN EFI_STRING String,
+ IN EFI_STRING BlockName,
+ IN UINT8 *Buffer,
+ OUT BOOLEAN *Found,
+ IN UINTN BufferLen
)
{
- EFI_STRING BlockPtr;
- UINTN Length;
- UINT8 *TempBuffer;
- EFI_STATUS Status;
+ EFI_STRING BlockPtr;
+ UINTN Length;
+ UINT8 *TempBuffer;
+ EFI_STATUS Status;
TempBuffer = NULL;
- *Found = FALSE;
- BlockPtr = StrStr (String, BlockName);
+ *Found = FALSE;
+ BlockPtr = StrStr (String, BlockName);
while (BlockPtr != NULL) {
BlockPtr += StrLen (BlockName);
- Status = GetValueOfNumber (BlockPtr, &TempBuffer, &Length);
+ Status = GetValueOfNumber (BlockPtr, &TempBuffer, &Length);
if (EFI_ERROR (Status)) {
return Status;
}
+
ASSERT (TempBuffer != NULL);
if ((BufferLen == Length) && (0 == CompareMem (Buffer, TempBuffer, Length))) {
*Found = TRUE;
@@ -570,9 +581,10 @@ FindSameBlockElement(
} else {
FreePool (TempBuffer);
TempBuffer = NULL;
- BlockPtr = StrStr (BlockPtr + 1, BlockName);
+ BlockPtr = StrStr (BlockPtr + 1, BlockName);
}
}
+
return EFI_SUCCESS;
}
@@ -599,19 +611,19 @@ CompareBlockElementDefault (
IN OUT EFI_STRING *ConfigAltResp,
IN EFI_STRING AltConfigHdr,
IN OUT BOOLEAN *ConfigAltRespChanged
-)
+ )
{
- EFI_STATUS Status;
- EFI_STRING BlockPtr;
- EFI_STRING BlockPtrStart;
- EFI_STRING StringPtr;
- EFI_STRING AppendString;
- EFI_STRING AltConfigHdrPtr;
- UINT8 *TempBuffer;
- UINTN OffsetLength;
- UINTN AppendSize;
- UINTN TotalSize;
- BOOLEAN FoundOffset;
+ EFI_STATUS Status;
+ EFI_STRING BlockPtr;
+ EFI_STRING BlockPtrStart;
+ EFI_STRING StringPtr;
+ EFI_STRING AppendString;
+ EFI_STRING AltConfigHdrPtr;
+ UINT8 *TempBuffer;
+ UINTN OffsetLength;
+ UINTN AppendSize;
+ UINTN TotalSize;
+ BOOLEAN FoundOffset;
AppendString = NULL;
TempBuffer = NULL;
@@ -632,12 +644,13 @@ CompareBlockElementDefault (
// Find the "&OFFSET=<Number>" block and get the value of the Number with AltConfigHdr in DefaultAltCfgResp.
//
BlockPtrStart = BlockPtr;
- BlockPtr += StrLen (L"&OFFSET=");
- Status = GetValueOfNumber (BlockPtr, &TempBuffer, &OffsetLength);
+ BlockPtr += StrLen (L"&OFFSET=");
+ Status = GetValueOfNumber (BlockPtr, &TempBuffer, &OffsetLength);
if (EFI_ERROR (Status)) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
//
// To find the same "&OFFSET=<Number>" block in ConfigAltResp.
//
@@ -646,10 +659,12 @@ CompareBlockElementDefault (
FreePool (TempBuffer);
TempBuffer = NULL;
}
+
if (EFI_ERROR (Status)) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
if (!FoundOffset) {
//
// Don't find the same "&OFFSET=<Number>" block in ConfigAltResp.
@@ -662,23 +677,25 @@ CompareBlockElementDefault (
} else {
AppendSize = StrSize (BlockPtrStart);
}
+
//
// Copy the <BlockConfig> to AppendString.
//
if (AppendString == NULL) {
- AppendString = (EFI_STRING) AllocateZeroPool (AppendSize + sizeof (CHAR16));
+ AppendString = (EFI_STRING)AllocateZeroPool (AppendSize + sizeof (CHAR16));
StrnCatS (AppendString, AppendSize / sizeof (CHAR16) + 1, BlockPtrStart, AppendSize / sizeof (CHAR16));
} else {
- TotalSize = StrSize (AppendString) + AppendSize + sizeof (CHAR16);
- AppendString = (EFI_STRING) ReallocatePool (
- StrSize (AppendString),
- TotalSize,
- AppendString
- );
+ TotalSize = StrSize (AppendString) + AppendSize + sizeof (CHAR16);
+ AppendString = (EFI_STRING)ReallocatePool (
+ StrSize (AppendString),
+ TotalSize,
+ AppendString
+ );
if (AppendString == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
StrnCatS (AppendString, TotalSize / sizeof (CHAR16), BlockPtrStart, AppendSize / sizeof (CHAR16));
}
} else {
@@ -693,16 +710,17 @@ CompareBlockElementDefault (
//
// Reallocate ConfigAltResp to copy the AppendString.
//
- TotalSize = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);
- *ConfigAltResp = (EFI_STRING) ReallocatePool (
- StrSize (*ConfigAltResp),
- TotalSize,
- *ConfigAltResp
- );
+ TotalSize = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);
+ *ConfigAltResp = (EFI_STRING)ReallocatePool (
+ StrSize (*ConfigAltResp),
+ TotalSize,
+ *ConfigAltResp
+ );
if (*ConfigAltResp == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
StrCatS (*ConfigAltResp, TotalSize / sizeof (CHAR16), AppendString);
*ConfigAltRespChanged = TRUE;
}
@@ -740,27 +758,27 @@ CompareNameElementDefault (
IN OUT EFI_STRING *ConfigAltResp,
IN EFI_STRING AltConfigHdr,
IN OUT BOOLEAN *ConfigAltRespChanged
-)
+ )
{
- EFI_STATUS Status;
- EFI_STRING NvConfigPtr;
- EFI_STRING NvConfigStart;
- EFI_STRING NvConfigValuePtr;
- EFI_STRING StringPtr;
- EFI_STRING NvConfigExist;
- EFI_STRING AppendString;
- CHAR16 TempChar;
- UINTN AppendSize;
- UINTN TotalSize;
-
- AppendString = NULL;
+ EFI_STATUS Status;
+ EFI_STRING NvConfigPtr;
+ EFI_STRING NvConfigStart;
+ EFI_STRING NvConfigValuePtr;
+ EFI_STRING StringPtr;
+ EFI_STRING NvConfigExist;
+ EFI_STRING AppendString;
+ CHAR16 TempChar;
+ UINTN AppendSize;
+ UINTN TotalSize;
+
+ AppendString = NULL;
NvConfigExist = NULL;
//
// Make NvConfigPtr point to the first <NvConfig> with AltConfigHdr in DefaultAltCfgResp.
//
NvConfigPtr = StrStr (DefaultAltCfgResp, AltConfigHdr);
ASSERT (NvConfigPtr != NULL);
- NvConfigPtr = StrStr (NvConfigPtr + StrLen(AltConfigHdr),L"&");
+ NvConfigPtr = StrStr (NvConfigPtr + StrLen (AltConfigHdr), L"&");
//
// Make StringPtr point to the first <NvConfig> with AltConfigHdr in ConfigAltResp.
//
@@ -774,10 +792,10 @@ CompareNameElementDefault (
// <NvConfig> ::= <Label>'='<String> | <Label>'='<Number>.
// Get the <Label> with AltConfigHdr in DefaultAltCfgResp.
//
- NvConfigStart = NvConfigPtr;
+ NvConfigStart = NvConfigPtr;
NvConfigValuePtr = StrStr (NvConfigPtr + 1, L"=");
ASSERT (NvConfigValuePtr != NULL);
- TempChar = *NvConfigValuePtr;
+ TempChar = *NvConfigValuePtr;
*NvConfigValuePtr = L'\0';
//
// Get the <Label> with AltConfigHdr in ConfigAltResp.
@@ -789,29 +807,31 @@ CompareNameElementDefault (
// Calculate the size of <NvConfig>.
//
*NvConfigValuePtr = TempChar;
- NvConfigPtr = StrStr (NvConfigPtr + 1, L"&");
+ NvConfigPtr = StrStr (NvConfigPtr + 1, L"&");
if (NvConfigPtr != NULL) {
AppendSize = (NvConfigPtr - NvConfigStart) * sizeof (CHAR16);
} else {
AppendSize = StrSize (NvConfigStart);
}
+
//
// Copy the <NvConfig> to AppendString.
//
if (AppendString == NULL) {
- AppendString = (EFI_STRING) AllocateZeroPool (AppendSize + sizeof (CHAR16));
+ AppendString = (EFI_STRING)AllocateZeroPool (AppendSize + sizeof (CHAR16));
StrnCatS (AppendString, AppendSize / sizeof (CHAR16) + 1, NvConfigStart, AppendSize / sizeof (CHAR16));
} else {
- TotalSize = StrSize (AppendString) + AppendSize + sizeof (CHAR16);
- AppendString = (EFI_STRING) ReallocatePool (
- StrSize (AppendString),
- TotalSize,
- AppendString
- );
+ TotalSize = StrSize (AppendString) + AppendSize + sizeof (CHAR16);
+ AppendString = (EFI_STRING)ReallocatePool (
+ StrSize (AppendString),
+ TotalSize,
+ AppendString
+ );
if (AppendString == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
StrnCatS (AppendString, TotalSize / sizeof (CHAR16), NvConfigStart, AppendSize / sizeof (CHAR16));
}
} else {
@@ -819,32 +839,36 @@ CompareNameElementDefault (
// To find next <Label> in DefaultAltCfgResp.
//
*NvConfigValuePtr = TempChar;
- NvConfigPtr = StrStr (NvConfigPtr + 1, L"&");
+ NvConfigPtr = StrStr (NvConfigPtr + 1, L"&");
}
}
+
if (AppendString != NULL) {
//
// Reallocate ConfigAltResp to copy the AppendString.
//
- TotalSize = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);
- *ConfigAltResp = (EFI_STRING) ReallocatePool (
- StrSize (*ConfigAltResp),
- StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16),
- *ConfigAltResp
- );
+ TotalSize = StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16);
+ *ConfigAltResp = (EFI_STRING)ReallocatePool (
+ StrSize (*ConfigAltResp),
+ StrSize (*ConfigAltResp) + StrSize (AppendString) + sizeof (CHAR16),
+ *ConfigAltResp
+ );
if (*ConfigAltResp == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
StrCatS (*ConfigAltResp, TotalSize / sizeof (CHAR16), AppendString);
*ConfigAltRespChanged = TRUE;
}
+
Status = EFI_SUCCESS;
Exit:
if (AppendString != NULL) {
FreePool (AppendString);
}
+
return Status;
}
@@ -872,20 +896,20 @@ CompareAndMergeDefaultString (
IN EFI_STRING AltConfigHdr
)
{
- EFI_STATUS Status;
- EFI_STRING AltCfgRespBackup;
- EFI_STRING AltConfigHdrPtr;
- EFI_STRING AltConfigHdrPtrNext;
- EFI_STRING ConfigAltResp;
- EFI_STRING StringPtr;
- EFI_STRING StringPtrNext;
- EFI_STRING BlockPtr;
- UINTN ReallocateSize;
- CHAR16 TempChar;
- CHAR16 TempCharA;
- BOOLEAN ConfigAltRespChanged;
-
- Status = EFI_OUT_OF_RESOURCES;
+ EFI_STATUS Status;
+ EFI_STRING AltCfgRespBackup;
+ EFI_STRING AltConfigHdrPtr;
+ EFI_STRING AltConfigHdrPtrNext;
+ EFI_STRING ConfigAltResp;
+ EFI_STRING StringPtr;
+ EFI_STRING StringPtrNext;
+ EFI_STRING BlockPtr;
+ UINTN ReallocateSize;
+ CHAR16 TempChar;
+ CHAR16 TempCharA;
+ BOOLEAN ConfigAltRespChanged;
+
+ Status = EFI_OUT_OF_RESOURCES;
BlockPtr = NULL;
AltConfigHdrPtrNext = NULL;
StringPtrNext = NULL;
@@ -896,15 +920,16 @@ CompareAndMergeDefaultString (
ConfigAltRespChanged = FALSE;
//
- //To find the <AltResp> with AltConfigHdr in DefaultAltCfgResp, ignore other <AltResp> which follow it.
+ // To find the <AltResp> with AltConfigHdr in DefaultAltCfgResp, ignore other <AltResp> which follow it.
//
AltConfigHdrPtr = StrStr (DefaultAltCfgResp, AltConfigHdr);
ASSERT (AltConfigHdrPtr != NULL);
AltConfigHdrPtrNext = StrStr (AltConfigHdrPtr + 1, L"&GUID");
if (AltConfigHdrPtrNext != NULL) {
- TempChar = *AltConfigHdrPtrNext;
+ TempChar = *AltConfigHdrPtrNext;
*AltConfigHdrPtrNext = L'\0';
}
+
//
// To find the <AltResp> with AltConfigHdr in AltCfgResp, ignore other <AltResp> which follow it.
//
@@ -912,9 +937,10 @@ CompareAndMergeDefaultString (
ASSERT (StringPtr != NULL);
StringPtrNext = StrStr (StringPtr + 1, L"&GUID");
if (StringPtrNext != NULL) {
- TempCharA = *StringPtrNext;
+ TempCharA = *StringPtrNext;
*StringPtrNext = L'\0';
}
+
//
// Copy the content of <ConfigAltResp> which contain current AltConfigHdr in AltCfgResp.
//
@@ -922,6 +948,7 @@ CompareAndMergeDefaultString (
if (ConfigAltResp == NULL) {
goto Exit;
}
+
//
// To find the <ConfigBody> with AltConfigHdr in DefaultAltCfgResp.
//
@@ -933,7 +960,7 @@ CompareAndMergeDefaultString (
// The ConfigAltResp which may contain the new <BlockConfig> get from DefaultAltCfgResp.
//
Status = CompareBlockElementDefault (DefaultAltCfgResp, &ConfigAltResp, AltConfigHdr, &ConfigAltRespChanged);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
goto Exit;
}
} else {
@@ -943,10 +970,11 @@ CompareAndMergeDefaultString (
// The ConfigAltResp which may contain the new <NvConfig> get from DefaultAltCfgResp.
//
Status = CompareNameElementDefault (DefaultAltCfgResp, &ConfigAltResp, AltConfigHdr, &ConfigAltRespChanged);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
goto Exit;
}
}
+
//
// Restore the AltCfgResp.
//
@@ -961,6 +989,7 @@ CompareAndMergeDefaultString (
Status = EFI_SUCCESS;
goto Exit;
}
+
//
// ConfigAltResp has been changed, need to update the content in AltCfgResp.
//
@@ -970,7 +999,7 @@ CompareAndMergeDefaultString (
ReallocateSize = StrSize (ConfigAltResp) + sizeof (CHAR16);
}
- AltCfgRespBackup = (EFI_STRING) AllocateZeroPool (ReallocateSize);
+ AltCfgRespBackup = (EFI_STRING)AllocateZeroPool (ReallocateSize);
if (AltCfgRespBackup == NULL) {
goto Exit;
}
@@ -987,14 +1016,15 @@ CompareAndMergeDefaultString (
Exit:
if (ConfigAltResp != NULL) {
- FreePool(ConfigAltResp);
+ FreePool (ConfigAltResp);
}
+
//
// Restore the DefaultAltCfgResp.
//
if ( AltConfigHdrPtrNext != NULL) {
*AltConfigHdrPtrNext = TempChar;
- AltConfigHdrPtrNext = NULL;
+ AltConfigHdrPtrNext = NULL;
}
return Status;
@@ -1022,15 +1052,15 @@ MergeDefaultString (
IN EFI_STRING DefaultAltCfgResp
)
{
- EFI_STRING StringPtrDefault;
- EFI_STRING StringPtrEnd;
- CHAR16 TempChar;
- EFI_STRING StringPtr;
- EFI_STRING AltConfigHdr;
- UINTN HeaderLength;
- UINTN SizeAltCfgResp;
- UINTN MaxLen;
- UINTN TotalSize;
+ EFI_STRING StringPtrDefault;
+ EFI_STRING StringPtrEnd;
+ CHAR16 TempChar;
+ EFI_STRING StringPtr;
+ EFI_STRING AltConfigHdr;
+ UINTN HeaderLength;
+ UINTN SizeAltCfgResp;
+ UINTN MaxLen;
+ UINTN TotalSize;
if (*AltCfgResp == NULL) {
return EFI_INVALID_PARAMETER;
@@ -1039,8 +1069,8 @@ MergeDefaultString (
//
// Get the request ConfigHdr
//
- SizeAltCfgResp = 0;
- StringPtr = *AltCfgResp;
+ SizeAltCfgResp = 0;
+ StringPtr = *AltCfgResp;
//
// Find <ConfigHdr> GUID=...&NAME=...&PATH=...
@@ -1048,30 +1078,36 @@ MergeDefaultString (
if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {
return EFI_INVALID_PARAMETER;
}
+
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&NAME=", StrLen (L"&NAME=")) != 0) {
StringPtr++;
}
+
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&PATH=", StrLen (L"&PATH=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == L'\0') {
return EFI_INVALID_PARAMETER;
}
+
StringPtr += StrLen (L"&PATH=");
while (*StringPtr != L'\0' && *StringPtr != L'&') {
- StringPtr ++;
+ StringPtr++;
}
+
HeaderLength = StringPtr - *AltCfgResp;
//
// Construct AltConfigHdr string "&<ConfigHdr>&ALTCFG=XXXX\0"
// |1| StrLen (ConfigHdr) | 8 | 4 | 1 |
//
- MaxLen = 1 + HeaderLength + 8 + 4 + 1;
+ MaxLen = 1 + HeaderLength + 8 + 4 + 1;
AltConfigHdr = AllocateZeroPool (MaxLen * sizeof (CHAR16));
if (AltConfigHdr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
StrCpyS (AltConfigHdr, MaxLen, L"&");
StrnCatS (AltConfigHdr, MaxLen, *AltCfgResp, HeaderLength);
StrCatS (AltConfigHdr, MaxLen, L"&ALTCFG=");
@@ -1095,31 +1131,33 @@ MergeDefaultString (
//
// No more default string is found.
//
- TotalSize = SizeAltCfgResp + StrSize (StringPtrDefault);
- *AltCfgResp = (EFI_STRING) ReallocatePool (
- SizeAltCfgResp,
- TotalSize,
- (VOID *) (*AltCfgResp)
- );
+ TotalSize = SizeAltCfgResp + StrSize (StringPtrDefault);
+ *AltCfgResp = (EFI_STRING)ReallocatePool (
+ SizeAltCfgResp,
+ TotalSize,
+ (VOID *)(*AltCfgResp)
+ );
if (*AltCfgResp == NULL) {
FreePool (AltConfigHdr);
return EFI_OUT_OF_RESOURCES;
}
+
StrCatS (*AltCfgResp, TotalSize / sizeof (CHAR16), StringPtrDefault);
break;
} else {
- TempChar = *StringPtrEnd;
+ TempChar = *StringPtrEnd;
*StringPtrEnd = L'\0';
- TotalSize = SizeAltCfgResp + StrSize (StringPtrDefault);
- *AltCfgResp = (EFI_STRING) ReallocatePool (
- SizeAltCfgResp,
- TotalSize,
- (VOID *) (*AltCfgResp)
- );
+ TotalSize = SizeAltCfgResp + StrSize (StringPtrDefault);
+ *AltCfgResp = (EFI_STRING)ReallocatePool (
+ SizeAltCfgResp,
+ TotalSize,
+ (VOID *)(*AltCfgResp)
+ );
if (*AltCfgResp == NULL) {
FreePool (AltConfigHdr);
return EFI_OUT_OF_RESOURCES;
}
+
StrCatS (*AltCfgResp, TotalSize / sizeof (CHAR16), StringPtrDefault);
*StringPtrEnd = TempChar;
}
@@ -1136,7 +1174,7 @@ MergeDefaultString (
// Find next AltCfg String
//
*(AltConfigHdr + HeaderLength) = L'\0';
- StringPtrDefault = StrStr (StringPtrDefault + 1, AltConfigHdr);
+ StringPtrDefault = StrStr (StringPtrDefault + 1, AltConfigHdr);
}
FreePool (AltConfigHdr);
@@ -1152,15 +1190,15 @@ MergeDefaultString (
**/
VOID
InsertDefaultValue (
- IN IFR_BLOCK_DATA *BlockData,
- IN IFR_DEFAULT_DATA *DefaultValueData
+ IN IFR_BLOCK_DATA *BlockData,
+ IN IFR_DEFAULT_DATA *DefaultValueData
)
{
- LIST_ENTRY *Link;
- IFR_DEFAULT_DATA *DefaultValueArray;
- LIST_ENTRY *DefaultLink;
+ LIST_ENTRY *Link;
+ IFR_DEFAULT_DATA *DefaultValueArray;
+ LIST_ENTRY *DefaultLink;
- DefaultLink = &BlockData->DefaultValueEntry;
+ DefaultLink = &BlockData->DefaultValueEntry;
for (Link = DefaultLink->ForwardLink; Link != DefaultLink; Link = Link->ForwardLink) {
DefaultValueArray = BASE_CR (Link, IFR_DEFAULT_DATA, Entry);
@@ -1169,14 +1207,15 @@ InsertDefaultValue (
// DEFAULT_VALUE_FROM_OPCODE has high priority, DEFAULT_VALUE_FROM_DEFAULT has low priority.
// When default types are DEFAULT_VALUE_FROM_OTHER_DEFAULT, the default value can be overrode.
//
- if ((DefaultValueData->Type > DefaultValueArray->Type) || (DefaultValueData->Type == DefaultValueArray->Type && DefaultValueData->Type == DefaultValueFromOtherDefault)) {
+ if ((DefaultValueData->Type > DefaultValueArray->Type) || ((DefaultValueData->Type == DefaultValueArray->Type) && (DefaultValueData->Type == DefaultValueFromOtherDefault))) {
//
// Update the default value array in BlockData.
//
CopyMem (&DefaultValueArray->Value, &DefaultValueData->Value, sizeof (EFI_IFR_TYPE_VALUE));
- DefaultValueArray->Type = DefaultValueData->Type;
+ DefaultValueArray->Type = DefaultValueData->Type;
DefaultValueArray->Cleaned = DefaultValueData->Cleaned;
}
+
return;
}
}
@@ -1199,13 +1238,13 @@ InsertDefaultValue (
**/
VOID
InsertBlockData (
- IN LIST_ENTRY *BlockLink,
- IN IFR_BLOCK_DATA **BlockData
+ IN LIST_ENTRY *BlockLink,
+ IN IFR_BLOCK_DATA **BlockData
)
{
- LIST_ENTRY *Link;
- IFR_BLOCK_DATA *BlockArray;
- IFR_BLOCK_DATA *BlockSingleData;
+ LIST_ENTRY *Link;
+ IFR_BLOCK_DATA *BlockArray;
+ IFR_BLOCK_DATA *BlockSingleData;
BlockSingleData = *BlockData;
@@ -1220,7 +1259,7 @@ InsertBlockData (
for (Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {
BlockArray = BASE_CR (Link, IFR_BLOCK_DATA, Entry);
if (BlockArray->Offset == BlockSingleData->Offset) {
- if ((BlockArray->Width > BlockSingleData->Width) || (BlockSingleData->IsBitVar && BlockArray->Width == BlockSingleData->Width)) {
+ if ((BlockArray->Width > BlockSingleData->Width) || (BlockSingleData->IsBitVar && (BlockArray->Width == BlockSingleData->Width))) {
//
// Insert this block data in the front of block array
//
@@ -1228,7 +1267,7 @@ InsertBlockData (
return;
}
- if ((!BlockSingleData->IsBitVar) && BlockArray->Width == BlockSingleData->Width) {
+ if ((!BlockSingleData->IsBitVar) && (BlockArray->Width == BlockSingleData->Width)) {
//
// The same block array has been added.
//
@@ -1236,6 +1275,7 @@ InsertBlockData (
FreePool (BlockSingleData);
*BlockData = BlockArray;
}
+
return;
}
} else if (BlockArray->Offset > BlockSingleData->Offset) {
@@ -1273,7 +1313,7 @@ InsertBlockData (
**/
CHAR8 *
GetSupportedLanguages (
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_HII_HANDLE HiiHandle
)
{
EFI_STATUS Status;
@@ -1287,7 +1327,7 @@ GetSupportedLanguages (
// Retrieve the size required for the supported languages buffer.
//
LanguageSize = 0;
- Status = mPrivate.HiiString.GetLanguages (&mPrivate.HiiString, HiiHandle, &TempSupportedLanguages, &LanguageSize);
+ Status = mPrivate.HiiString.GetLanguages (&mPrivate.HiiString, HiiHandle, &TempSupportedLanguages, &LanguageSize);
//
// If GetLanguages() returns EFI_SUCCESS for a zero size,
@@ -1383,7 +1423,7 @@ InternalGetString (
//
// Get the current platform language setting
//
- GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&PlatformLanguage, NULL);
+ GetEfiGlobalVariable2 (L"PlatformLang", (VOID **)&PlatformLanguage, NULL);
//
// Get the best matching language from SupportedLanguages
@@ -1404,15 +1444,15 @@ InternalGetString (
// Retrieve the size of the string in the string package for the BestLanguage
//
StringSize = 0;
- Status = mPrivate.HiiString.GetString (
- &mPrivate.HiiString,
- BestLanguage,
- HiiHandle,
- StringId,
- &TempString,
- &StringSize,
- NULL
- );
+ Status = mPrivate.HiiString.GetString (
+ &mPrivate.HiiString,
+ BestLanguage,
+ HiiHandle,
+ StringId,
+ &TempString,
+ &StringSize,
+ NULL
+ );
//
// If GetString() returns EFI_SUCCESS for a zero size,
// then there are no supported languages registered for HiiHandle. If GetString()
@@ -1435,14 +1475,14 @@ InternalGetString (
// Retrieve the string from the string package
//
Status = mPrivate.HiiString.GetString (
- &mPrivate.HiiString,
- BestLanguage,
- HiiHandle,
- StringId,
- String,
- &StringSize,
- NULL
- );
+ &mPrivate.HiiString,
+ BestLanguage,
+ HiiHandle,
+ StringId,
+ String,
+ &StringSize,
+ NULL
+ );
if (EFI_ERROR (Status)) {
//
// Free the buffer and return NULL if the supported languages can not be retrieved.
@@ -1458,9 +1498,11 @@ Error:
if (SupportedLanguages != NULL) {
FreePool (SupportedLanguages);
}
+
if (PlatformLanguage != NULL) {
FreePool (PlatformLanguage);
}
+
if (BestLanguage != NULL) {
FreePool (BestLanguage);
}
@@ -1492,9 +1534,9 @@ BlockArrayCheck (
IN EFI_HII_HANDLE HiiHandle
)
{
- LIST_ENTRY *Link;
- IFR_BLOCK_DATA *BlockData;
- EFI_STRING Name;
+ LIST_ENTRY *Link;
+ IFR_BLOCK_DATA *BlockData;
+ EFI_STRING Name;
//
// No Request Block array, all vars are got.
@@ -1517,6 +1559,7 @@ BlockArrayCheck (
FreePool (Name);
return TRUE;
}
+
FreePool (Name);
} else {
if ((VarOffset >= BlockData->Offset) && ((VarOffset + VarWidth) <= (BlockData->Offset + BlockData->Width))) {
@@ -1538,16 +1581,16 @@ BlockArrayCheck (
**/
EFI_STATUS
GetFormPackageData (
- IN HII_DATABASE_RECORD *DataBaseRecord,
- IN OUT UINT8 **HiiFormPackage,
- OUT UINTN *PackageSize
+ IN HII_DATABASE_RECORD *DataBaseRecord,
+ IN OUT UINT8 **HiiFormPackage,
+ OUT UINTN *PackageSize
)
{
- EFI_STATUS Status;
- UINTN Size;
- UINTN ResultSize;
+ EFI_STATUS Status;
+ UINTN Size;
+ UINTN ResultSize;
- if (DataBaseRecord == NULL || HiiFormPackage == NULL || PackageSize == NULL) {
+ if ((DataBaseRecord == NULL) || (HiiFormPackage == NULL) || (PackageSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1564,7 +1607,7 @@ GetFormPackageData (
Size,
HiiFormPackage,
&ResultSize
- );
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1578,17 +1621,17 @@ GetFormPackageData (
//
// Get HiiFormPackage by HiiHandle
//
- Size = ResultSize;
- ResultSize = 0;
- Status = ExportFormPackages (
- &mPrivate,
- DataBaseRecord->Handle,
- DataBaseRecord->PackageList,
- 0,
- Size,
- *HiiFormPackage,
- &ResultSize
- );
+ Size = ResultSize;
+ ResultSize = 0;
+ Status = ExportFormPackages (
+ &mPrivate,
+ DataBaseRecord->Handle,
+ DataBaseRecord->PackageList,
+ 0,
+ Size,
+ *HiiFormPackage,
+ &ResultSize
+ );
if (EFI_ERROR (Status)) {
FreePool (*HiiFormPackage);
}
@@ -1598,7 +1641,6 @@ GetFormPackageData (
return Status;
}
-
/**
This function parses Form Package to get the efi varstore info according to the request ConfigHdr.
@@ -1610,63 +1652,63 @@ GetFormPackageData (
**/
EFI_STATUS
GetVarStoreType (
- IN HII_DATABASE_RECORD *DataBaseRecord,
- IN EFI_STRING ConfigHdr,
- OUT BOOLEAN *IsEfiVarstore,
- OUT EFI_IFR_VARSTORE_EFI **EfiVarStore
+ IN HII_DATABASE_RECORD *DataBaseRecord,
+ IN EFI_STRING ConfigHdr,
+ OUT BOOLEAN *IsEfiVarstore,
+ OUT EFI_IFR_VARSTORE_EFI **EfiVarStore
)
{
- EFI_STATUS Status;
- UINTN IfrOffset;
- UINTN PackageOffset;
- EFI_IFR_OP_HEADER *IfrOpHdr;
- CHAR16 *VarStoreName;
- UINTN NameSize;
- EFI_STRING GuidStr;
- EFI_STRING NameStr;
- EFI_STRING TempStr;
- UINTN LengthString;
- UINT8 *HiiFormPackage;
- UINTN PackageSize;
- EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
- EFI_HII_PACKAGE_HEADER *PackageHeader;
+ EFI_STATUS Status;
+ UINTN IfrOffset;
+ UINTN PackageOffset;
+ EFI_IFR_OP_HEADER *IfrOpHdr;
+ CHAR16 *VarStoreName;
+ UINTN NameSize;
+ EFI_STRING GuidStr;
+ EFI_STRING NameStr;
+ EFI_STRING TempStr;
+ UINTN LengthString;
+ UINT8 *HiiFormPackage;
+ UINTN PackageSize;
+ EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
+ EFI_HII_PACKAGE_HEADER *PackageHeader;
HiiFormPackage = NULL;
- LengthString = 0;
- Status = EFI_SUCCESS;
- GuidStr = NULL;
- NameStr = NULL;
- TempStr = NULL;
- *IsEfiVarstore = FALSE;
+ LengthString = 0;
+ Status = EFI_SUCCESS;
+ GuidStr = NULL;
+ NameStr = NULL;
+ TempStr = NULL;
+ *IsEfiVarstore = FALSE;
- Status = GetFormPackageData(DataBaseRecord, &HiiFormPackage, &PackageSize);
+ Status = GetFormPackageData (DataBaseRecord, &HiiFormPackage, &PackageSize);
if (EFI_ERROR (Status)) {
return Status;
}
IfrOffset = sizeof (EFI_HII_PACKAGE_HEADER);
PackageOffset = IfrOffset;
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) HiiFormPackage;
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)HiiFormPackage;
while (IfrOffset < PackageSize) {
//
// More than one form packages exist.
//
if (PackageOffset >= PackageHeader->Length) {
- //
- // Process the new form package.
- //
- PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
- IfrOffset += PackageOffset;
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) (HiiFormPackage + IfrOffset);
+ //
+ // Process the new form package.
+ //
+ PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
+ IfrOffset += PackageOffset;
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)(HiiFormPackage + IfrOffset);
}
- IfrOpHdr = (EFI_IFR_OP_HEADER *) (HiiFormPackage + IfrOffset);
- IfrOffset += IfrOpHdr->Length;
+ IfrOpHdr = (EFI_IFR_OP_HEADER *)(HiiFormPackage + IfrOffset);
+ IfrOffset += IfrOpHdr->Length;
PackageOffset += IfrOpHdr->Length;
if (IfrOpHdr->OpCode == EFI_IFR_VARSTORE_EFI_OP ) {
- IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;
+ IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;
//
// If the length is small than the structure, this is from old efi
// varstore definition. Old efi varstore get config directly from
@@ -1676,19 +1718,20 @@ GetVarStoreType (
continue;
}
- NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
+ NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStrS ((CHAR8 *) IfrEfiVarStore->Name, VarStoreName, NameSize);
- GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) &IfrEfiVarStore->Guid, 1, &GuidStr);
- GenerateSubStr (L"NAME=", StrLen (VarStoreName) * sizeof (CHAR16), (VOID *) VarStoreName, 2, &NameStr);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
+
+ GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)&IfrEfiVarStore->Guid, 1, &GuidStr);
+ GenerateSubStr (L"NAME=", StrLen (VarStoreName) * sizeof (CHAR16), (VOID *)VarStoreName, 2, &NameStr);
LengthString = StrLen (GuidStr);
LengthString = LengthString + StrLen (NameStr) + 1;
- TempStr = AllocateZeroPool (LengthString * sizeof (CHAR16));
+ TempStr = AllocateZeroPool (LengthString * sizeof (CHAR16));
if (TempStr == NULL) {
FreePool (GuidStr);
FreePool (NameStr);
@@ -1696,10 +1739,11 @@ GetVarStoreType (
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
StrCpyS (TempStr, LengthString, GuidStr);
StrCatS (TempStr, LengthString, NameStr);
- if (ConfigHdr == NULL || StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0) {
- *EfiVarStore = (EFI_IFR_VARSTORE_EFI *) AllocateZeroPool (IfrOpHdr->Length);
+ if ((ConfigHdr == NULL) || (StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0)) {
+ *EfiVarStore = (EFI_IFR_VARSTORE_EFI *)AllocateZeroPool (IfrOpHdr->Length);
if (*EfiVarStore == NULL) {
FreePool (VarStoreName);
FreePool (GuidStr);
@@ -1708,6 +1752,7 @@ GetVarStoreType (
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
*IsEfiVarstore = TRUE;
CopyMem (*EfiVarStore, IfrEfiVarStore, IfrOpHdr->Length);
}
@@ -1728,6 +1773,7 @@ GetVarStoreType (
}
}
}
+
Done:
if (HiiFormPackage != NULL) {
FreePool (HiiFormPackage);
@@ -1749,10 +1795,10 @@ Done:
**/
BOOLEAN
GetElementsFromRequest (
- IN EFI_STRING ConfigRequest
+ IN EFI_STRING ConfigRequest
)
{
- EFI_STRING TmpRequest;
+ EFI_STRING TmpRequest;
TmpRequest = StrStr (ConfigRequest, L"PATH=");
ASSERT (TmpRequest != NULL);
@@ -1777,37 +1823,38 @@ GetElementsFromRequest (
**/
BOOLEAN
IsThisVarstore (
- IN EFI_GUID *VarstoreGuid,
- IN CHAR16 *Name,
- IN CHAR16 *ConfigHdr
+ IN EFI_GUID *VarstoreGuid,
+ IN CHAR16 *Name,
+ IN CHAR16 *ConfigHdr
)
{
- EFI_STRING GuidStr;
- EFI_STRING NameStr;
- EFI_STRING TempStr;
- UINTN LengthString;
- BOOLEAN RetVal;
+ EFI_STRING GuidStr;
+ EFI_STRING NameStr;
+ EFI_STRING TempStr;
+ UINTN LengthString;
+ BOOLEAN RetVal;
- RetVal = FALSE;
- GuidStr = NULL;
- TempStr = NULL;
+ RetVal = FALSE;
+ GuidStr = NULL;
+ TempStr = NULL;
//
// If ConfigHdr has name field and varstore not has name, return FALSE.
//
- if (Name == NULL && ConfigHdr != NULL && StrStr (ConfigHdr, L"NAME=&") == NULL) {
+ if ((Name == NULL) && (ConfigHdr != NULL) && (StrStr (ConfigHdr, L"NAME=&") == NULL)) {
return FALSE;
}
GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)VarstoreGuid, 1, &GuidStr);
if (Name != NULL) {
- GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *) Name, 2, &NameStr);
+ GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *)Name, 2, &NameStr);
} else {
GenerateSubStr (L"NAME=", 0, NULL, 2, &NameStr);
}
+
LengthString = StrLen (GuidStr);
LengthString = LengthString + StrLen (NameStr) + 1;
- TempStr = AllocateZeroPool (LengthString * sizeof (CHAR16));
+ TempStr = AllocateZeroPool (LengthString * sizeof (CHAR16));
if (TempStr == NULL) {
goto Done;
}
@@ -1815,7 +1862,7 @@ IsThisVarstore (
StrCpyS (TempStr, LengthString, GuidStr);
StrCatS (TempStr, LengthString, NameStr);
- if (ConfigHdr == NULL || StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0) {
+ if ((ConfigHdr == NULL) || (StrnCmp (ConfigHdr, TempStr, StrLen (TempStr)) == 0)) {
RetVal = TRUE;
}
@@ -1846,114 +1893,119 @@ Done:
**/
BOOLEAN
IsThisPackageList (
- IN HII_DATABASE_RECORD *DataBaseRecord,
- IN EFI_STRING ConfigHdr
+ IN HII_DATABASE_RECORD *DataBaseRecord,
+ IN EFI_STRING ConfigHdr
)
{
- EFI_STATUS Status;
- UINTN IfrOffset;
- UINTN PackageOffset;
- EFI_IFR_OP_HEADER *IfrOpHdr;
- CHAR16 *VarStoreName;
- UINTN NameSize;
- UINT8 *HiiFormPackage;
- UINTN PackageSize;
- EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
- EFI_HII_PACKAGE_HEADER *PackageHeader;
- EFI_IFR_VARSTORE *IfrVarStore;
- EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;
- BOOLEAN FindVarstore;
-
- HiiFormPackage = NULL;
- VarStoreName = NULL;
- Status = EFI_SUCCESS;
- FindVarstore = FALSE;
+ EFI_STATUS Status;
+ UINTN IfrOffset;
+ UINTN PackageOffset;
+ EFI_IFR_OP_HEADER *IfrOpHdr;
+ CHAR16 *VarStoreName;
+ UINTN NameSize;
+ UINT8 *HiiFormPackage;
+ UINTN PackageSize;
+ EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
+ EFI_HII_PACKAGE_HEADER *PackageHeader;
+ EFI_IFR_VARSTORE *IfrVarStore;
+ EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;
+ BOOLEAN FindVarstore;
- Status = GetFormPackageData(DataBaseRecord, &HiiFormPackage, &PackageSize);
+ HiiFormPackage = NULL;
+ VarStoreName = NULL;
+ Status = EFI_SUCCESS;
+ FindVarstore = FALSE;
+
+ Status = GetFormPackageData (DataBaseRecord, &HiiFormPackage, &PackageSize);
if (EFI_ERROR (Status)) {
return FALSE;
}
IfrOffset = sizeof (EFI_HII_PACKAGE_HEADER);
PackageOffset = IfrOffset;
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) HiiFormPackage;
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)HiiFormPackage;
while (IfrOffset < PackageSize) {
//
// More than one form packages exist.
//
if (PackageOffset >= PackageHeader->Length) {
- //
- // Process the new form package.
- //
- PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
- IfrOffset += PackageOffset;
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) (HiiFormPackage + IfrOffset);
+ //
+ // Process the new form package.
+ //
+ PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
+ IfrOffset += PackageOffset;
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)(HiiFormPackage + IfrOffset);
}
- IfrOpHdr = (EFI_IFR_OP_HEADER *) (HiiFormPackage + IfrOffset);
- IfrOffset += IfrOpHdr->Length;
+ IfrOpHdr = (EFI_IFR_OP_HEADER *)(HiiFormPackage + IfrOffset);
+ IfrOffset += IfrOpHdr->Length;
PackageOffset += IfrOpHdr->Length;
switch (IfrOpHdr->OpCode) {
+ case EFI_IFR_VARSTORE_OP:
+ IfrVarStore = (EFI_IFR_VARSTORE *)IfrOpHdr;
- case EFI_IFR_VARSTORE_OP:
- IfrVarStore = (EFI_IFR_VARSTORE *) IfrOpHdr;
+ NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
+ if (VarStoreName == NULL) {
+ goto Done;
+ }
- NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);
- VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
- if (VarStoreName == NULL) {
- goto Done;
- }
- AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);
- if (IsThisVarstore((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {
- FindVarstore = TRUE;
- goto Done;
- } else {
- FreePool (VarStoreName);
- VarStoreName = NULL;
- }
- break;
+ if (IsThisVarstore ((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {
+ FindVarstore = TRUE;
+ goto Done;
+ } else {
+ FreePool (VarStoreName);
+ VarStoreName = NULL;
+ }
- case EFI_IFR_VARSTORE_EFI_OP:
- IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;
- NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
- VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
- if (VarStoreName == NULL) {
- goto Done;
- }
- AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
+ break;
- if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {
- FindVarstore = TRUE;
- goto Done;
- } else {
- FreePool (VarStoreName);
- VarStoreName = NULL;
- }
- break;
+ case EFI_IFR_VARSTORE_EFI_OP:
+ IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;
+ NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
+ if (VarStoreName == NULL) {
+ goto Done;
+ }
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:
- IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *) IfrOpHdr;
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
- if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {
- FindVarstore = TRUE;
- goto Done;
- }
- break;
+ if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {
+ FindVarstore = TRUE;
+ goto Done;
+ } else {
+ FreePool (VarStoreName);
+ VarStoreName = NULL;
+ }
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
- //
- // No matched varstore is found and directly return.
- //
- goto Done;
+ break;
- default:
- break;
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:
+ IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *)IfrOpHdr;
+
+ if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {
+ FindVarstore = TRUE;
+ goto Done;
+ }
+
+ break;
+
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
+ //
+ // No matched varstore is found and directly return.
+ //
+ goto Done;
+
+ default:
+ break;
}
}
+
Done:
if (HiiFormPackage != NULL) {
FreePool (HiiFormPackage);
@@ -1984,13 +2036,13 @@ Done:
**/
EFI_STATUS
IsThisOpcodeRequired (
- IN IFR_BLOCK_DATA *RequestBlockArray,
- IN EFI_HII_HANDLE HiiHandle,
- IN OUT IFR_VARSTORAGE_DATA *VarStorageData,
- IN EFI_IFR_OP_HEADER *IfrOpHdr,
- IN UINT16 VarWidth,
- OUT IFR_BLOCK_DATA **ReturnData,
- IN BOOLEAN IsBitVar
+ IN IFR_BLOCK_DATA *RequestBlockArray,
+ IN EFI_HII_HANDLE HiiHandle,
+ IN OUT IFR_VARSTORAGE_DATA *VarStorageData,
+ IN EFI_IFR_OP_HEADER *IfrOpHdr,
+ IN UINT16 VarWidth,
+ OUT IFR_BLOCK_DATA **ReturnData,
+ IN BOOLEAN IsBitVar
)
{
IFR_BLOCK_DATA *BlockData;
@@ -2001,11 +2053,11 @@ IsThisOpcodeRequired (
UINT16 BitWidth;
UINT16 TotalBits;
- NameId = 0;
- VarOffset = 0;
- BitOffset = 0;
- BitWidth = 0;
- IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *)((CHAR8 *) IfrOpHdr + sizeof (EFI_IFR_OP_HEADER));
+ NameId = 0;
+ VarOffset = 0;
+ BitOffset = 0;
+ BitWidth = 0;
+ IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *)((CHAR8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER));
if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {
NameId = IfrQuestionHdr->VarStoreInfo.VarName;
@@ -2025,16 +2077,16 @@ IsThisOpcodeRequired (
//
if (IsBitVar) {
BitOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;
- BitWidth = VarWidth;
+ BitWidth = VarWidth;
VarOffset = BitOffset / 8;
//
// Use current bit width and the bit width before current bit (with same byte offset) to calculate the byte width.
//
TotalBits = BitOffset % 8 + BitWidth;
- VarWidth = (TotalBits % 8 == 0 ? TotalBits / 8: TotalBits / 8 + 1);
+ VarWidth = (TotalBits % 8 == 0 ? TotalBits / 8 : TotalBits / 8 + 1);
} else {
VarOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;
- BitWidth = VarWidth;
+ BitWidth = VarWidth;
BitOffset = VarOffset * 8;
}
@@ -2056,13 +2108,13 @@ IsThisOpcodeRequired (
}
}
- BlockData = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
+ BlockData = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
if (BlockData == NULL) {
return EFI_OUT_OF_RESOURCES;
}
if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {
- BlockData->Name = InternalGetString(HiiHandle, NameId);
+ BlockData->Name = InternalGetString (HiiHandle, NameId);
} else {
BlockData->Offset = VarOffset;
}
@@ -2105,49 +2157,49 @@ IsThisOpcodeRequired (
EFI_STATUS
EFIAPI
ParseIfrData (
- IN EFI_HII_HANDLE HiiHandle,
- IN UINT8 *Package,
- IN UINT32 PackageLength,
- IN EFI_STRING ConfigHdr,
- IN IFR_BLOCK_DATA *RequestBlockArray,
- IN OUT IFR_VARSTORAGE_DATA *VarStorageData,
- OUT IFR_DEFAULT_DATA *DefaultIdArray
+ IN EFI_HII_HANDLE HiiHandle,
+ IN UINT8 *Package,
+ IN UINT32 PackageLength,
+ IN EFI_STRING ConfigHdr,
+ IN IFR_BLOCK_DATA *RequestBlockArray,
+ IN OUT IFR_VARSTORAGE_DATA *VarStorageData,
+ OUT IFR_DEFAULT_DATA *DefaultIdArray
)
{
- EFI_STATUS Status;
- UINTN IfrOffset;
- UINTN PackageOffset;
- EFI_IFR_VARSTORE *IfrVarStore;
- EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
- EFI_IFR_OP_HEADER *IfrOpHdr;
- EFI_IFR_ONE_OF *IfrOneOf;
- EFI_IFR_REF4 *IfrRef;
- EFI_IFR_ONE_OF_OPTION *IfrOneOfOption;
- EFI_IFR_DEFAULT *IfrDefault;
- EFI_IFR_ORDERED_LIST *IfrOrderedList;
- EFI_IFR_CHECKBOX *IfrCheckBox;
- EFI_IFR_PASSWORD *IfrPassword;
- EFI_IFR_STRING *IfrString;
- EFI_IFR_DATE *IfrDate;
- EFI_IFR_TIME *IfrTime;
- IFR_DEFAULT_DATA DefaultData;
- IFR_DEFAULT_DATA *DefaultDataPtr;
- IFR_BLOCK_DATA *BlockData;
- CHAR16 *VarStoreName;
- UINTN NameSize;
- UINT16 VarWidth;
- UINT16 VarDefaultId;
- BOOLEAN FirstOneOfOption;
- BOOLEAN FirstOrderedList;
- LIST_ENTRY *LinkData;
- LIST_ENTRY *LinkDefault;
- EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;
- EFI_HII_PACKAGE_HEADER *PackageHeader;
- EFI_VARSTORE_ID VarStoreId;
- UINT16 SmallestDefaultId;
- BOOLEAN SmallestIdFromFlag;
- BOOLEAN FromOtherDefaultOpcode;
- BOOLEAN QuestionReferBitField;
+ EFI_STATUS Status;
+ UINTN IfrOffset;
+ UINTN PackageOffset;
+ EFI_IFR_VARSTORE *IfrVarStore;
+ EFI_IFR_VARSTORE_EFI *IfrEfiVarStore;
+ EFI_IFR_OP_HEADER *IfrOpHdr;
+ EFI_IFR_ONE_OF *IfrOneOf;
+ EFI_IFR_REF4 *IfrRef;
+ EFI_IFR_ONE_OF_OPTION *IfrOneOfOption;
+ EFI_IFR_DEFAULT *IfrDefault;
+ EFI_IFR_ORDERED_LIST *IfrOrderedList;
+ EFI_IFR_CHECKBOX *IfrCheckBox;
+ EFI_IFR_PASSWORD *IfrPassword;
+ EFI_IFR_STRING *IfrString;
+ EFI_IFR_DATE *IfrDate;
+ EFI_IFR_TIME *IfrTime;
+ IFR_DEFAULT_DATA DefaultData;
+ IFR_DEFAULT_DATA *DefaultDataPtr;
+ IFR_BLOCK_DATA *BlockData;
+ CHAR16 *VarStoreName;
+ UINTN NameSize;
+ UINT16 VarWidth;
+ UINT16 VarDefaultId;
+ BOOLEAN FirstOneOfOption;
+ BOOLEAN FirstOrderedList;
+ LIST_ENTRY *LinkData;
+ LIST_ENTRY *LinkDefault;
+ EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;
+ EFI_HII_PACKAGE_HEADER *PackageHeader;
+ EFI_VARSTORE_ID VarStoreId;
+ UINT16 SmallestDefaultId;
+ BOOLEAN SmallestIdFromFlag;
+ BOOLEAN FromOtherDefaultOpcode;
+ BOOLEAN QuestionReferBitField;
Status = EFI_SUCCESS;
BlockData = NULL;
@@ -2157,912 +2209,962 @@ ParseIfrData (
FirstOrderedList = FALSE;
VarStoreName = NULL;
ZeroMem (&DefaultData, sizeof (IFR_DEFAULT_DATA));
- SmallestDefaultId = 0xFFFF;
+ SmallestDefaultId = 0xFFFF;
FromOtherDefaultOpcode = FALSE;
- QuestionReferBitField = FALSE;
+ QuestionReferBitField = FALSE;
//
// Go through the form package to parse OpCode one by one.
//
PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) Package;
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)Package;
IfrOffset = PackageOffset;
while (IfrOffset < PackageLength) {
-
//
// More than one form package found.
//
if (PackageOffset >= PackageHeader->Length) {
+ //
+ // Already found varstore for this request, break;
+ //
+ if (VarStoreId != 0) {
+ VarStoreId = 0;
+ }
+
+ //
+ // Get next package header info.
+ //
+ IfrOffset += sizeof (EFI_HII_PACKAGE_HEADER);
+ PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
+ PackageHeader = (EFI_HII_PACKAGE_HEADER *)(Package + IfrOffset);
+ }
+
+ IfrOpHdr = (EFI_IFR_OP_HEADER *)(Package + IfrOffset);
+ switch (IfrOpHdr->OpCode) {
+ case EFI_IFR_VARSTORE_OP:
//
- // Already found varstore for this request, break;
+ // VarStore is found. Don't need to search any more.
//
if (VarStoreId != 0) {
- VarStoreId = 0;
+ break;
}
- //
- // Get next package header info.
- //
- IfrOffset += sizeof (EFI_HII_PACKAGE_HEADER);
- PackageOffset = sizeof (EFI_HII_PACKAGE_HEADER);
- PackageHeader = (EFI_HII_PACKAGE_HEADER *) (Package + IfrOffset);
- }
+ IfrVarStore = (EFI_IFR_VARSTORE *)IfrOpHdr;
+
+ NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
+ if (VarStoreName == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Done;
+ }
+
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);
+
+ if (IsThisVarstore ((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {
+ //
+ // Find the matched VarStore
+ //
+ CopyGuid (&VarStorageData->Guid, (EFI_GUID *)(VOID *)&IfrVarStore->Guid);
+ VarStorageData->Size = IfrVarStore->Size;
+ VarStorageData->Name = VarStoreName;
+ VarStorageData->Type = EFI_HII_VARSTORE_BUFFER;
+ VarStoreId = IfrVarStore->VarStoreId;
+ } else {
+ FreePool (VarStoreName);
+ VarStoreName = NULL;
+ }
- IfrOpHdr = (EFI_IFR_OP_HEADER *) (Package + IfrOffset);
- switch (IfrOpHdr->OpCode) {
- case EFI_IFR_VARSTORE_OP:
- //
- // VarStore is found. Don't need to search any more.
- //
- if (VarStoreId != 0) {
break;
- }
- IfrVarStore = (EFI_IFR_VARSTORE *) IfrOpHdr;
+ case EFI_IFR_VARSTORE_EFI_OP:
+ //
+ // VarStore is found. Don't need to search any more.
+ //
+ if (VarStoreId != 0) {
+ break;
+ }
- NameSize = AsciiStrSize ((CHAR8 *)IfrVarStore->Name);
- VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
- if (VarStoreName == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- goto Done;
- }
- AsciiStrToUnicodeStrS ((CHAR8 *)IfrVarStore->Name, VarStoreName, NameSize);
+ IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;
- if (IsThisVarstore((VOID *)&IfrVarStore->Guid, VarStoreName, ConfigHdr)) {
//
- // Find the matched VarStore
+ // If the length is small than the structure, this is from old efi
+ // varstore definition. Old efi varstore get config directly from
+ // GetVariable function.
//
- CopyGuid (&VarStorageData->Guid, (EFI_GUID *) (VOID *) &IfrVarStore->Guid);
- VarStorageData->Size = IfrVarStore->Size;
- VarStorageData->Name = VarStoreName;
- VarStorageData->Type = EFI_HII_VARSTORE_BUFFER;
- VarStoreId = IfrVarStore->VarStoreId;
- } else {
- FreePool (VarStoreName);
- VarStoreName = NULL;
- }
- break;
+ if (IfrOpHdr->Length < sizeof (EFI_IFR_VARSTORE_EFI)) {
+ break;
+ }
- case EFI_IFR_VARSTORE_EFI_OP:
- //
- // VarStore is found. Don't need to search any more.
- //
- if (VarStoreId != 0) {
- break;
- }
+ NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
+ VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
+ if (VarStoreName == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Done;
+ }
- IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
- //
- // If the length is small than the structure, this is from old efi
- // varstore definition. Old efi varstore get config directly from
- // GetVariable function.
- //
- if (IfrOpHdr->Length < sizeof (EFI_IFR_VARSTORE_EFI)) {
- break;
- }
+ if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {
+ //
+ // Find the matched VarStore
+ //
+ CopyGuid (&VarStorageData->Guid, (EFI_GUID *)(VOID *)&IfrEfiVarStore->Guid);
+ VarStorageData->Size = IfrEfiVarStore->Size;
+ VarStorageData->Name = VarStoreName;
+ VarStorageData->Type = EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER;
+ VarStoreId = IfrEfiVarStore->VarStoreId;
+ } else {
+ FreePool (VarStoreName);
+ VarStoreName = NULL;
+ }
- NameSize = AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name);
- VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
- if (VarStoreName == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- goto Done;
- }
- AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, VarStoreName, NameSize);
+ break;
- if (IsThisVarstore (&IfrEfiVarStore->Guid, VarStoreName, ConfigHdr)) {
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:
//
- // Find the matched VarStore
+ // VarStore is found. Don't need to search any more.
//
- CopyGuid (&VarStorageData->Guid, (EFI_GUID *) (VOID *) &IfrEfiVarStore->Guid);
- VarStorageData->Size = IfrEfiVarStore->Size;
- VarStorageData->Name = VarStoreName;
- VarStorageData->Type = EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER;
- VarStoreId = IfrEfiVarStore->VarStoreId;
- } else {
- FreePool (VarStoreName);
- VarStoreName = NULL;
- }
- break;
+ if (VarStoreId != 0) {
+ break;
+ }
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:
- //
- // VarStore is found. Don't need to search any more.
- //
- if (VarStoreId != 0) {
- break;
- }
+ IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *)IfrOpHdr;
- IfrNameValueVarStore = (EFI_IFR_VARSTORE_NAME_VALUE *) IfrOpHdr;
+ if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {
+ //
+ // Find the matched VarStore
+ //
+ CopyGuid (&VarStorageData->Guid, (EFI_GUID *)(VOID *)&IfrNameValueVarStore->Guid);
+ VarStorageData->Type = EFI_HII_VARSTORE_NAME_VALUE;
+ VarStoreId = IfrNameValueVarStore->VarStoreId;
+ }
+
+ break;
- if (IsThisVarstore (&IfrNameValueVarStore->Guid, NULL, ConfigHdr)) {
+ case EFI_IFR_DEFAULTSTORE_OP:
//
- // Find the matched VarStore
+ // Add new the map between default id and default name.
//
- CopyGuid (&VarStorageData->Guid, (EFI_GUID *) (VOID *) &IfrNameValueVarStore->Guid);
- VarStorageData->Type = EFI_HII_VARSTORE_NAME_VALUE;
- VarStoreId = IfrNameValueVarStore->VarStoreId;
- }
- break;
+ DefaultDataPtr = (IFR_DEFAULT_DATA *)AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
+ if (DefaultDataPtr == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Done;
+ }
- case EFI_IFR_DEFAULTSTORE_OP:
- //
- // Add new the map between default id and default name.
- //
- DefaultDataPtr = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
- if (DefaultDataPtr == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- goto Done;
- }
- DefaultDataPtr->DefaultId = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId;
- InsertTailList (&DefaultIdArray->Entry, &DefaultDataPtr->Entry);
- DefaultDataPtr = NULL;
- break;
+ DefaultDataPtr->DefaultId = ((EFI_IFR_DEFAULTSTORE *)IfrOpHdr)->DefaultId;
+ InsertTailList (&DefaultIdArray->Entry, &DefaultDataPtr->Entry);
+ DefaultDataPtr = NULL;
+ break;
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
- //
- // No matched varstore is found and directly return.
- //
- if ( VarStoreId == 0) {
- Status = EFI_SUCCESS;
- goto Done;
- }
- break;
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
+ //
+ // No matched varstore is found and directly return.
+ //
+ if ( VarStoreId == 0) {
+ Status = EFI_SUCCESS;
+ goto Done;
+ }
- case EFI_IFR_REF_OP:
- //
- // Ref question is not in IFR Form. This IFR form is not valid.
- //
- if ( VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrRef = (EFI_IFR_REF4 *) IfrOpHdr;
- if (IfrRef->Question.VarStoreId != VarStoreId) {
break;
- }
- VarWidth = (UINT16) (sizeof (EFI_HII_REF));
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ case EFI_IFR_REF_OP:
+ //
+ // Ref question is not in IFR Form. This IFR form is not valid.
+ //
+ if ( VarStoreId == 0) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
+ //
+ // Check whether this question is for the requested varstore.
+ //
+ IfrRef = (EFI_IFR_REF4 *)IfrOpHdr;
+ if (IfrRef->Question.VarStoreId != VarStoreId) {
break;
}
- goto Done;
- }
- break;
- case EFI_IFR_ONE_OF_OP:
- case EFI_IFR_NUMERIC_OP:
- //
- // Numeric and OneOf has the same opcode structure.
- //
+ VarWidth = (UINT16)(sizeof (EFI_HII_REF));
- //
- // Numeric and OneOf question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrOneOf = (EFI_IFR_ONE_OF *) IfrOpHdr;
- if (IfrOneOf->Question.VarStoreId != VarStoreId) {
- break;
- }
-
- if (QuestionReferBitField) {
- VarWidth = IfrOneOf->Flags & EDKII_IFR_NUMERIC_SIZE_BIT;
- } else {
- VarWidth = (UINT16) (1 << (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE));
- }
+ //
+ // The BlockData may allocate by other opcode,need to clean.
+ //
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
- break;
+ goto Done;
}
- goto Done;
- }
- //
- //when go to there,BlockData can't be NULLL.
- //
- ASSERT (BlockData != NULL);
+ break;
- if (IfrOpHdr->OpCode == EFI_IFR_ONE_OF_OP) {
+ case EFI_IFR_ONE_OF_OP:
+ case EFI_IFR_NUMERIC_OP:
//
- // Set this flag to TRUE for the first oneof option.
+ // Numeric and OneOf has the same opcode structure.
+ //
+
//
- FirstOneOfOption = TRUE;
- } else if (IfrOpHdr->OpCode == EFI_IFR_NUMERIC_OP) {
+ // Numeric and OneOf question is not in IFR Form. This IFR form is not valid.
//
- // Numeric minimum value will be used as default value when no default is specified.
+ if (VarStoreId == 0) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+
//
- DefaultData.Type = DefaultValueFromDefault;
+ // Check whether this question is for the requested varstore.
+ //
+ IfrOneOf = (EFI_IFR_ONE_OF *)IfrOpHdr;
+ if (IfrOneOf->Question.VarStoreId != VarStoreId) {
+ break;
+ }
+
if (QuestionReferBitField) {
- //
- // Since default value in bit field was stored as UINT32 type.
- //
- CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));
+ VarWidth = IfrOneOf->Flags & EDKII_IFR_NUMERIC_SIZE_BIT;
} else {
- switch (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- DefaultData.Value.u8 = IfrOneOf->data.u8.MinValue;
- break;
-
- case EFI_IFR_NUMERIC_SIZE_2:
- CopyMem (&DefaultData.Value.u16, &IfrOneOf->data.u16.MinValue, sizeof (UINT16));
- break;
+ VarWidth = (UINT16)(1 << (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE));
+ }
- case EFI_IFR_NUMERIC_SIZE_4:
- CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));
- break;
+ //
+ // The BlockData may allocate by other opcode,need to clean.
+ //
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
- case EFI_IFR_NUMERIC_SIZE_8:
- CopyMem (&DefaultData.Value.u64, &IfrOneOf->data.u64.MinValue, sizeof (UINT64));
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
break;
+ }
- default:
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
+ goto Done;
}
+
//
- // Set default value base on the DefaultId list get from IFR data.
+ // when go to there,BlockData can't be NULLL.
//
- for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
- DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
- DefaultData.DefaultId = DefaultDataPtr->DefaultId;
- InsertDefaultValue (BlockData, &DefaultData);
- }
- }
- break;
+ ASSERT (BlockData != NULL);
- case EFI_IFR_ORDERED_LIST_OP:
- //
- // offset by question header
- // width by EFI_IFR_ORDERED_LIST MaxContainers * OneofOption Type
- //
+ if (IfrOpHdr->OpCode == EFI_IFR_ONE_OF_OP) {
+ //
+ // Set this flag to TRUE for the first oneof option.
+ //
+ FirstOneOfOption = TRUE;
+ } else if (IfrOpHdr->OpCode == EFI_IFR_NUMERIC_OP) {
+ //
+ // Numeric minimum value will be used as default value when no default is specified.
+ //
+ DefaultData.Type = DefaultValueFromDefault;
+ if (QuestionReferBitField) {
+ //
+ // Since default value in bit field was stored as UINT32 type.
+ //
+ CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));
+ } else {
+ switch (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE) {
+ case EFI_IFR_NUMERIC_SIZE_1:
+ DefaultData.Value.u8 = IfrOneOf->data.u8.MinValue;
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_2:
+ CopyMem (&DefaultData.Value.u16, &IfrOneOf->data.u16.MinValue, sizeof (UINT16));
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_4:
+ CopyMem (&DefaultData.Value.u32, &IfrOneOf->data.u32.MinValue, sizeof (UINT32));
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_8:
+ CopyMem (&DefaultData.Value.u64, &IfrOneOf->data.u64.MinValue, sizeof (UINT64));
+ break;
+
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+ }
+
+ //
+ // Set default value base on the DefaultId list get from IFR data.
+ //
+ for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
+ DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
+ DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ InsertDefaultValue (BlockData, &DefaultData);
+ }
+ }
- FirstOrderedList = TRUE;
- //
- // OrderedList question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrOrderedList = (EFI_IFR_ORDERED_LIST *) IfrOpHdr;
- if (IfrOrderedList->Question.VarStoreId != VarStoreId) {
- BlockData = NULL;
break;
- }
- VarWidth = IfrOrderedList->MaxContainers;
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ case EFI_IFR_ORDERED_LIST_OP:
+ //
+ // offset by question header
+ // width by EFI_IFR_ORDERED_LIST MaxContainers * OneofOption Type
+ //
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
+ FirstOrderedList = TRUE;
+ //
+ // OrderedList question is not in IFR Form. This IFR form is not valid.
+ //
+ if (VarStoreId == 0) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+
+ //
+ // Check whether this question is for the requested varstore.
+ //
+ IfrOrderedList = (EFI_IFR_ORDERED_LIST *)IfrOpHdr;
+ if (IfrOrderedList->Question.VarStoreId != VarStoreId) {
+ BlockData = NULL;
break;
}
- goto Done;
- }
- break;
- case EFI_IFR_CHECKBOX_OP:
- //
- // EFI_IFR_DEFAULT_OP
- // offset by question header
- // width is 1 sizeof (BOOLEAN)
- // default id by CheckBox Flags if CheckBox flags (Default or Mau) is set, the default value is 1 to be set.
- // value by DefaultOption
- // default id by DeaultOption DefaultId can override CheckBox Flags and Default value.
- //
+ VarWidth = IfrOrderedList->MaxContainers;
- //
- // CheckBox question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrCheckBox = (EFI_IFR_CHECKBOX *) IfrOpHdr;
- if (IfrCheckBox->Question.VarStoreId != VarStoreId) {
- break;
- }
- VarWidth = (UINT16) sizeof (BOOLEAN);
+ //
+ // The BlockData may allocate by other opcode,need to clean.
+ //
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
- if (QuestionReferBitField) {
- VarWidth = 1;
- }
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
- break;
+ goto Done;
}
- goto Done;
- }
- //
- //when go to there,BlockData can't be NULLL.
- //
- ASSERT (BlockData != NULL);
+ break;
- SmallestIdFromFlag = FALSE;
+ case EFI_IFR_CHECKBOX_OP:
+ //
+ // EFI_IFR_DEFAULT_OP
+ // offset by question header
+ // width is 1 sizeof (BOOLEAN)
+ // default id by CheckBox Flags if CheckBox flags (Default or Mau) is set, the default value is 1 to be set.
+ // value by DefaultOption
+ // default id by DeaultOption DefaultId can override CheckBox Flags and Default value.
+ //
- //
- // Add default value for standard ID by CheckBox Flag
- //
- VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
- //
- // Prepare new DefaultValue
- //
- DefaultData.DefaultId = VarDefaultId;
- if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {
//
- // When flag is set, default value is TRUE.
+ // CheckBox question is not in IFR Form. This IFR form is not valid.
//
- DefaultData.Type = DefaultValueFromFlag;
- if (QuestionReferBitField) {
- DefaultData.Value.u32 = TRUE;
- } else {
- DefaultData.Value.b = TRUE;
+ if (VarStoreId == 0) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
}
- InsertDefaultValue (BlockData, &DefaultData);
- if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {
- //
- // Record the SmallestDefaultId and update the SmallestIdFromFlag.
- //
- SmallestDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
- SmallestIdFromFlag = TRUE;
+ //
+ // Check whether this question is for the requested varstore.
+ //
+ IfrCheckBox = (EFI_IFR_CHECKBOX *)IfrOpHdr;
+ if (IfrCheckBox->Question.VarStoreId != VarStoreId) {
+ break;
}
- }
- //
- // Add default value for Manufacture ID by CheckBox Flag
- //
- VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
- //
- // Prepare new DefaultValue
- //
- DefaultData.DefaultId = VarDefaultId;
- if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {
+ VarWidth = (UINT16)sizeof (BOOLEAN);
+
//
- // When flag is set, default value is TRUE.
+ // The BlockData may allocate by other opcode,need to clean.
//
- DefaultData.Type = DefaultValueFromFlag;
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
+
if (QuestionReferBitField) {
- DefaultData.Value.u32 = TRUE;
- } else {
- DefaultData.Value.b = TRUE;
+ VarWidth = 1;
}
- InsertDefaultValue (BlockData, &DefaultData);
- if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
- //
- // Record the SmallestDefaultId and update the SmallestIdFromFlag.
- //
- SmallestDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
- SmallestIdFromFlag = TRUE;
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, QuestionReferBitField);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
+
+ goto Done;
}
- }
- if (SmallestIdFromFlag) {
+
//
- // When smallest default Id is given by the flag of CheckBox, set default value with TRUE for other default Id in the DefaultId list.
+ // when go to there,BlockData can't be NULLL.
//
- DefaultData.Type = DefaultValueFromOtherDefault;
- if (QuestionReferBitField) {
- DefaultData.Value.u32 = TRUE;
- } else {
- DefaultData.Value.b = TRUE;
- }
+ ASSERT (BlockData != NULL);
+
+ SmallestIdFromFlag = FALSE;
+
//
- // Set default value for all the default id in the DefaultId list.
+ // Add default value for standard ID by CheckBox Flag
//
- for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
- DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
- DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ //
+ // Prepare new DefaultValue
+ //
+ DefaultData.DefaultId = VarDefaultId;
+ if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {
+ //
+ // When flag is set, default value is TRUE.
+ //
+ DefaultData.Type = DefaultValueFromFlag;
+ if (QuestionReferBitField) {
+ DefaultData.Value.u32 = TRUE;
+ } else {
+ DefaultData.Value.b = TRUE;
+ }
+
InsertDefaultValue (BlockData, &DefaultData);
+
+ if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {
+ //
+ // Record the SmallestDefaultId and update the SmallestIdFromFlag.
+ //
+ SmallestDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ SmallestIdFromFlag = TRUE;
+ }
}
- } else {
+
//
- // When flag is not set, default value is FASLE.
+ // Add default value for Manufacture ID by CheckBox Flag
//
- DefaultData.Type = DefaultValueFromDefault;
- if (QuestionReferBitField) {
- DefaultData.Value.u32 = FALSE;
- } else {
- DefaultData.Value.b = FALSE;
- }
+ VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
//
- // Set default value for all the default id in the DefaultId list.
+ // Prepare new DefaultValue
//
- for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
- DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
- DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ DefaultData.DefaultId = VarDefaultId;
+ if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {
+ //
+ // When flag is set, default value is TRUE.
+ //
+ DefaultData.Type = DefaultValueFromFlag;
+ if (QuestionReferBitField) {
+ DefaultData.Value.u32 = TRUE;
+ } else {
+ DefaultData.Value.b = TRUE;
+ }
+
InsertDefaultValue (BlockData, &DefaultData);
- }
- }
- break;
- case EFI_IFR_DATE_OP:
- //
- // offset by question header
- // width MaxSize * sizeof (CHAR16)
- // no default value, only block array
- //
+ if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+ //
+ // Record the SmallestDefaultId and update the SmallestIdFromFlag.
+ //
+ SmallestDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
+ SmallestIdFromFlag = TRUE;
+ }
+ }
- //
- // Date question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrDate = (EFI_IFR_DATE *) IfrOpHdr;
- if (IfrDate->Question.VarStoreId != VarStoreId) {
- break;
- }
+ if (SmallestIdFromFlag) {
+ //
+ // When smallest default Id is given by the flag of CheckBox, set default value with TRUE for other default Id in the DefaultId list.
+ //
+ DefaultData.Type = DefaultValueFromOtherDefault;
+ if (QuestionReferBitField) {
+ DefaultData.Value.u32 = TRUE;
+ } else {
+ DefaultData.Value.b = TRUE;
+ }
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ //
+ // Set default value for all the default id in the DefaultId list.
+ //
+ for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
+ DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
+ DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ InsertDefaultValue (BlockData, &DefaultData);
+ }
+ } else {
+ //
+ // When flag is not set, default value is FASLE.
+ //
+ DefaultData.Type = DefaultValueFromDefault;
+ if (QuestionReferBitField) {
+ DefaultData.Value.u32 = FALSE;
+ } else {
+ DefaultData.Value.b = FALSE;
+ }
- VarWidth = (UINT16) sizeof (EFI_HII_DATE);
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
//
- //The opcode is not required,exit and parse other opcode.
+ // Set default value for all the default id in the DefaultId list.
//
- break;
+ for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
+ DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
+ DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ InsertDefaultValue (BlockData, &DefaultData);
+ }
}
- goto Done;
- }
- break;
- case EFI_IFR_TIME_OP:
- //
- // offset by question header
- // width MaxSize * sizeof (CHAR16)
- // no default value, only block array
- //
-
- //
- // Time question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrTime = (EFI_IFR_TIME *) IfrOpHdr;
- if (IfrTime->Question.VarStoreId != VarStoreId) {
break;
- }
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ case EFI_IFR_DATE_OP:
+ //
+ // offset by question header
+ // width MaxSize * sizeof (CHAR16)
+ // no default value, only block array
+ //
- VarWidth = (UINT16) sizeof (EFI_HII_TIME);
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
- break;
+ //
+ // Date question is not in IFR Form. This IFR form is not valid.
+ //
+ if (VarStoreId == 0) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
}
- goto Done;
- }
- break;
- case EFI_IFR_STRING_OP:
- //
- // offset by question header
- // width MaxSize * sizeof (CHAR16)
- // no default value, only block array
- //
+ //
+ // Check whether this question is for the requested varstore.
+ //
+ IfrDate = (EFI_IFR_DATE *)IfrOpHdr;
+ if (IfrDate->Question.VarStoreId != VarStoreId) {
+ break;
+ }
- //
- // String question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrString = (EFI_IFR_STRING *) IfrOpHdr;
- if (IfrString->Question.VarStoreId != VarStoreId) {
- break;
- }
+ //
+ // The BlockData may allocate by other opcode,need to clean.
+ //
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ VarWidth = (UINT16)sizeof (EFI_HII_DATE);
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
- VarWidth = (UINT16) (IfrString->MaxSize * sizeof (UINT16));
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
- break;
+ goto Done;
}
- goto Done;
- }
- break;
-
- case EFI_IFR_PASSWORD_OP:
- //
- // offset by question header
- // width MaxSize * sizeof (CHAR16)
- // no default value, only block array
- //
- //
- // Password question is not in IFR Form. This IFR form is not valid.
- //
- if (VarStoreId == 0) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Check whether this question is for the requested varstore.
- //
- IfrPassword = (EFI_IFR_PASSWORD *) IfrOpHdr;
- if (IfrPassword->Question.VarStoreId != VarStoreId) {
break;
- }
- //
- // The BlockData may allocate by other opcode,need to clean.
- //
- if (BlockData != NULL){
- BlockData = NULL;
- }
+ case EFI_IFR_TIME_OP:
+ //
+ // offset by question header
+ // width MaxSize * sizeof (CHAR16)
+ // no default value, only block array
+ //
- VarWidth = (UINT16) (IfrPassword->MaxSize * sizeof (UINT16));
- Status = IsThisOpcodeRequired(RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_NOT_FOUND){
- //
- //The opcode is not required,exit and parse other opcode.
- //
+ //
+ // Time question is not in IFR Form. This IFR form is not valid.
+ //
+ if (VarStoreId == 0) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+
+ //
+ // Check whether this question is for the requested varstore.
+ //
+ IfrTime = (EFI_IFR_TIME *)IfrOpHdr;
+ if (IfrTime->Question.VarStoreId != VarStoreId) {
break;
}
- goto Done;
- }
- //
- // No default value for string.
- //
- BlockData = NULL;
- break;
+ //
+ // The BlockData may allocate by other opcode,need to clean.
+ //
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
+
+ VarWidth = (UINT16)sizeof (EFI_HII_TIME);
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
+
+ goto Done;
+ }
- case EFI_IFR_ONE_OF_OPTION_OP:
- //
- // No matched block data is ignored.
- //
- if (BlockData == NULL || BlockData->Scope == 0) {
break;
- }
- IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *) IfrOpHdr;
- if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {
+ case EFI_IFR_STRING_OP:
+ //
+ // offset by question header
+ // width MaxSize * sizeof (CHAR16)
+ // no default value, only block array
+ //
- if (!FirstOrderedList){
- break;
- }
//
- // Get ordered list option data type.
+ // String question is not in IFR Form. This IFR form is not valid.
//
- if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_8 || IfrOneOfOption->Type == EFI_IFR_TYPE_BOOLEAN) {
- VarWidth = 1;
- } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_16) {
- VarWidth = 2;
- } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_32) {
- VarWidth = 4;
- } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_64) {
- VarWidth = 8;
- } else {
- //
- // Invalid ordered list option data type.
- //
+ if (VarStoreId == 0) {
Status = EFI_INVALID_PARAMETER;
- if (BlockData->Name != NULL) {
- FreePool (BlockData->Name);
- }
- FreePool (BlockData);
goto Done;
}
//
- // Calculate Ordered list QuestionId width.
+ // Check whether this question is for the requested varstore.
//
- BlockData->Width = (UINT16) (BlockData->Width * VarWidth);
+ IfrString = (EFI_IFR_STRING *)IfrOpHdr;
+ if (IfrString->Question.VarStoreId != VarStoreId) {
+ break;
+ }
+
//
- // Check whether this question is in requested block array.
+ // The BlockData may allocate by other opcode,need to clean.
//
- if (!BlockArrayCheck (RequestBlockArray, BlockData->Offset, BlockData->Width, (BOOLEAN)(BlockData->Name != NULL), HiiHandle)) {
- //
- // This question is not in the requested string. Skip it.
- //
- if (BlockData->Name != NULL) {
- FreePool (BlockData->Name);
- }
- FreePool (BlockData);
+ if (BlockData != NULL) {
BlockData = NULL;
- break;
}
+
+ VarWidth = (UINT16)(IfrString->MaxSize * sizeof (UINT16));
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
+
+ goto Done;
+ }
+
+ break;
+
+ case EFI_IFR_PASSWORD_OP:
//
- // Check this var question is in the var storage
+ // offset by question header
+ // width MaxSize * sizeof (CHAR16)
+ // no default value, only block array
+ //
+
//
- if ((BlockData->Name == NULL) && ((BlockData->Offset + BlockData->Width) > VarStorageData->Size)) {
+ // Password question is not in IFR Form. This IFR form is not valid.
+ //
+ if (VarStoreId == 0) {
Status = EFI_INVALID_PARAMETER;
- FreePool (BlockData);
goto Done;
}
+
//
- // Add Block Data into VarStorageData BlockEntry
+ // Check whether this question is for the requested varstore.
//
- InsertBlockData (&VarStorageData->BlockEntry, &BlockData);
+ IfrPassword = (EFI_IFR_PASSWORD *)IfrOpHdr;
+ if (IfrPassword->Question.VarStoreId != VarStoreId) {
+ break;
+ }
+
+ //
+ // The BlockData may allocate by other opcode,need to clean.
+ //
+ if (BlockData != NULL) {
+ BlockData = NULL;
+ }
- FirstOrderedList = FALSE;
+ VarWidth = (UINT16)(IfrPassword->MaxSize * sizeof (UINT16));
+ Status = IsThisOpcodeRequired (RequestBlockArray, HiiHandle, VarStorageData, IfrOpHdr, VarWidth, &BlockData, FALSE);
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_NOT_FOUND) {
+ //
+ // The opcode is not required,exit and parse other opcode.
+ //
+ break;
+ }
+ goto Done;
+ }
+
+ //
+ // No default value for string.
+ //
+ BlockData = NULL;
break;
- }
- //
- // 1. Set default value for OneOf option when flag field has default attribute.
- // And set the default value with the smallest default id for other default id in the DefaultId list.
- //
- if (((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) ||
- ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG)) {
+ case EFI_IFR_ONE_OF_OPTION_OP:
//
- // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.
- // The first oneof option value will be used as default value when no default value is specified.
+ // No matched block data is ignored.
//
- FirstOneOfOption = FALSE;
+ if ((BlockData == NULL) || (BlockData->Scope == 0)) {
+ break;
+ }
- SmallestIdFromFlag = FALSE;
+ IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *)IfrOpHdr;
+ if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {
+ if (!FirstOrderedList) {
+ break;
+ }
- // Prepare new DefaultValue
- //
- DefaultData.Type = DefaultValueFromFlag;
- CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
- if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) {
- DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
- InsertDefaultValue (BlockData, &DefaultData);
- if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {
+ //
+ // Get ordered list option data type.
+ //
+ if ((IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_8) || (IfrOneOfOption->Type == EFI_IFR_TYPE_BOOLEAN)) {
+ VarWidth = 1;
+ } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_16) {
+ VarWidth = 2;
+ } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_32) {
+ VarWidth = 4;
+ } else if (IfrOneOfOption->Type == EFI_IFR_TYPE_NUM_SIZE_64) {
+ VarWidth = 8;
+ } else {
//
- // Record the SmallestDefaultId and update the SmallestIdFromFlag.
+ // Invalid ordered list option data type.
//
- SmallestDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
- SmallestIdFromFlag = TRUE;
+ Status = EFI_INVALID_PARAMETER;
+ if (BlockData->Name != NULL) {
+ FreePool (BlockData->Name);
+ }
+
+ FreePool (BlockData);
+ goto Done;
}
- }
- if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG) {
- DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
- InsertDefaultValue (BlockData, &DefaultData);
- if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+
+ //
+ // Calculate Ordered list QuestionId width.
+ //
+ BlockData->Width = (UINT16)(BlockData->Width * VarWidth);
+ //
+ // Check whether this question is in requested block array.
+ //
+ if (!BlockArrayCheck (RequestBlockArray, BlockData->Offset, BlockData->Width, (BOOLEAN)(BlockData->Name != NULL), HiiHandle)) {
//
- // Record the SmallestDefaultId and update the SmallestIdFromFlag.
+ // This question is not in the requested string. Skip it.
//
- SmallestDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
- SmallestIdFromFlag = TRUE;
+ if (BlockData->Name != NULL) {
+ FreePool (BlockData->Name);
+ }
+
+ FreePool (BlockData);
+ BlockData = NULL;
+ break;
}
+
+ //
+ // Check this var question is in the var storage
+ //
+ if ((BlockData->Name == NULL) && ((BlockData->Offset + BlockData->Width) > VarStorageData->Size)) {
+ Status = EFI_INVALID_PARAMETER;
+ FreePool (BlockData);
+ goto Done;
+ }
+
+ //
+ // Add Block Data into VarStorageData BlockEntry
+ //
+ InsertBlockData (&VarStorageData->BlockEntry, &BlockData);
+
+ FirstOrderedList = FALSE;
+
+ break;
}
- if (SmallestIdFromFlag) {
+ //
+ // 1. Set default value for OneOf option when flag field has default attribute.
+ // And set the default value with the smallest default id for other default id in the DefaultId list.
+ //
+ if (((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) ||
+ ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG))
+ {
//
- // When smallest default Id is given by the flag of oneofOption, set this option value for other default Id in the DefaultId list.
+ // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.
+ // The first oneof option value will be used as default value when no default value is specified.
//
- DefaultData.Type = DefaultValueFromOtherDefault;
+ FirstOneOfOption = FALSE;
+
+ SmallestIdFromFlag = FALSE;
+
+ // Prepare new DefaultValue
//
- // Set default value for other default id in the DefaultId list.
+ DefaultData.Type = DefaultValueFromFlag;
+ CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
+ if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) == EFI_IFR_OPTION_DEFAULT) {
+ DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ InsertDefaultValue (BlockData, &DefaultData);
+ if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_STANDARD) {
+ //
+ // Record the SmallestDefaultId and update the SmallestIdFromFlag.
+ //
+ SmallestDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ SmallestIdFromFlag = TRUE;
+ }
+ }
+
+ if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG) {
+ DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
+ InsertDefaultValue (BlockData, &DefaultData);
+ if (SmallestDefaultId > EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+ //
+ // Record the SmallestDefaultId and update the SmallestIdFromFlag.
+ //
+ SmallestDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
+ SmallestIdFromFlag = TRUE;
+ }
+ }
+
+ if (SmallestIdFromFlag) {
+ //
+ // When smallest default Id is given by the flag of oneofOption, set this option value for other default Id in the DefaultId list.
+ //
+ DefaultData.Type = DefaultValueFromOtherDefault;
+ //
+ // Set default value for other default id in the DefaultId list.
+ //
+ for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
+ DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
+ DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ InsertDefaultValue (BlockData, &DefaultData);
+ }
+ }
+ }
+
+ //
+ // 2. Set as the default value when this is the first option.
+ // The first oneof option value will be used as default value when no default value is specified.
+ //
+ if (FirstOneOfOption) {
+ // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.
+ FirstOneOfOption = FALSE;
+
//
+ // Prepare new DefaultValue
+ //
+ DefaultData.Type = DefaultValueFromDefault;
+ CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
- DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
- DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
+ DefaultData.DefaultId = DefaultDataPtr->DefaultId;
InsertDefaultValue (BlockData, &DefaultData);
}
}
- }
- //
- // 2. Set as the default value when this is the first option.
- // The first oneof option value will be used as default value when no default value is specified.
- //
- if (FirstOneOfOption) {
- // This flag is used to specify whether this option is the first. Set it to FALSE for the following options.
- FirstOneOfOption = FALSE;
+ break;
+ case EFI_IFR_DEFAULT_OP:
//
- // Prepare new DefaultValue
+ // Update Current BlockData to the default value.
//
- DefaultData.Type = DefaultValueFromDefault;
- CopyMem (&DefaultData.Value, &IfrOneOfOption->Value, IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
- for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
- DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
- DefaultData.DefaultId = DefaultDataPtr->DefaultId;
- InsertDefaultValue (BlockData, &DefaultData);
+ if ((BlockData == NULL) || (BlockData->Scope == 0)) {
+ //
+ // No matched block data is ignored.
+ //
+ break;
}
- }
- break;
- case EFI_IFR_DEFAULT_OP:
- //
- // Update Current BlockData to the default value.
- //
- if (BlockData == NULL || BlockData->Scope == 0) {
//
- // No matched block data is ignored.
+ // Get the DefaultId
//
- break;
- }
+ IfrDefault = (EFI_IFR_DEFAULT *)IfrOpHdr;
+ VarDefaultId = IfrDefault->DefaultId;
+ //
+ // Prepare new DefaultValue
+ //
+ DefaultData.Type = DefaultValueFromOpcode;
+ DefaultData.DefaultId = VarDefaultId;
+ if (QuestionReferBitField) {
+ CopyMem (&DefaultData.Value.u32, &IfrDefault->Value.u32, sizeof (UINT32));
+ } else {
+ CopyMem (&DefaultData.Value, &IfrDefault->Value, IfrDefault->Header.Length - OFFSET_OF (EFI_IFR_DEFAULT, Value));
+ }
- //
- // Get the DefaultId
- //
- IfrDefault = (EFI_IFR_DEFAULT *) IfrOpHdr;
- VarDefaultId = IfrDefault->DefaultId;
- //
- // Prepare new DefaultValue
- //
- DefaultData.Type = DefaultValueFromOpcode;
- DefaultData.DefaultId = VarDefaultId;
- if (QuestionReferBitField) {
- CopyMem (&DefaultData.Value.u32, &IfrDefault->Value.u32, sizeof (UINT32));
- } else {
- CopyMem (&DefaultData.Value, &IfrDefault->Value, IfrDefault->Header.Length - OFFSET_OF (EFI_IFR_DEFAULT, Value));
- }
+ // If the value field is expression, set the cleaned flag.
+ if (IfrDefault->Type == EFI_IFR_TYPE_OTHER) {
+ DefaultData.Cleaned = TRUE;
+ }
- // If the value field is expression, set the cleaned flag.
- if (IfrDefault->Type == EFI_IFR_TYPE_OTHER) {
- DefaultData.Cleaned = TRUE;
- }
- //
- // Add DefaultValue into current BlockData
- //
- InsertDefaultValue (BlockData, &DefaultData);
+ //
+ // Add DefaultValue into current BlockData
+ //
+ InsertDefaultValue (BlockData, &DefaultData);
- //
- // Set default value for other default id in the DefaultId list.
- // when SmallestDefaultId == VarDefaultId means there are two defaults with same default Id.
- // If the two defaults are both from default opcode, use the first default as the default value of other default Id.
- // If one from flag and the other form default opcode, use the default opcode value as the default value of other default Id.
- //
- if ((SmallestDefaultId > VarDefaultId) || (SmallestDefaultId == VarDefaultId && !FromOtherDefaultOpcode)) {
- FromOtherDefaultOpcode = TRUE;
- SmallestDefaultId = VarDefaultId;
- for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
- DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
- if (DefaultDataPtr->DefaultId != DefaultData.DefaultId){
- DefaultData.Type = DefaultValueFromOtherDefault;
- DefaultData.DefaultId = DefaultDataPtr->DefaultId;
- InsertDefaultValue (BlockData, &DefaultData);
+ //
+ // Set default value for other default id in the DefaultId list.
+ // when SmallestDefaultId == VarDefaultId means there are two defaults with same default Id.
+ // If the two defaults are both from default opcode, use the first default as the default value of other default Id.
+ // If one from flag and the other form default opcode, use the default opcode value as the default value of other default Id.
+ //
+ if ((SmallestDefaultId > VarDefaultId) || ((SmallestDefaultId == VarDefaultId) && !FromOtherDefaultOpcode)) {
+ FromOtherDefaultOpcode = TRUE;
+ SmallestDefaultId = VarDefaultId;
+ for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData != &DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
+ DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
+ if (DefaultDataPtr->DefaultId != DefaultData.DefaultId) {
+ DefaultData.Type = DefaultValueFromOtherDefault;
+ DefaultData.DefaultId = DefaultDataPtr->DefaultId;
+ InsertDefaultValue (BlockData, &DefaultData);
+ }
}
}
- }
- //
- // After insert the default value, reset the cleaned value for next
- // time used. If not set here, need to set the value before every time.
- // use it.
- //
- DefaultData.Cleaned = FALSE;
- break;
+ //
+ // After insert the default value, reset the cleaned value for next
+ // time used. If not set here, need to set the value before every time.
+ // use it.
+ //
+ DefaultData.Cleaned = FALSE;
+ break;
- case EFI_IFR_END_OP:
- //
- // End Opcode is for Var question.
- //
- QuestionReferBitField = FALSE;
- if (BlockData != NULL) {
- if (BlockData->Scope > 0) {
- BlockData->Scope--;
+ case EFI_IFR_END_OP:
+ //
+ // End Opcode is for Var question.
+ //
+ QuestionReferBitField = FALSE;
+ if (BlockData != NULL) {
+ if (BlockData->Scope > 0) {
+ BlockData->Scope--;
+ }
+
+ if (BlockData->Scope == 0) {
+ BlockData = NULL;
+ //
+ // when finishing parsing a question, clean the SmallestDefaultId and GetDefaultFromDefaultOpcode.
+ //
+ SmallestDefaultId = 0xFFFF;
+ FromOtherDefaultOpcode = FALSE;
+ }
}
- if (BlockData->Scope == 0) {
- BlockData = NULL;
- //
- // when finishing parsing a question, clean the SmallestDefaultId and GetDefaultFromDefaultOpcode.
- //
- SmallestDefaultId = 0xFFFF;
- FromOtherDefaultOpcode = FALSE;
+
+ break;
+
+ case EFI_IFR_GUID_OP:
+ if (CompareGuid ((EFI_GUID *)((UINT8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {
+ QuestionReferBitField = TRUE;
}
- }
- break;
+ break;
- case EFI_IFR_GUID_OP:
- if (CompareGuid ((EFI_GUID *)((UINT8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {
- QuestionReferBitField = TRUE;
- }
- break;
+ default:
+ if (BlockData != NULL) {
+ if (BlockData->Scope > 0) {
+ BlockData->Scope = (UINT8)(BlockData->Scope + IfrOpHdr->Scope);
+ }
- default:
- if (BlockData != NULL) {
- if (BlockData->Scope > 0) {
- BlockData->Scope = (UINT8) (BlockData->Scope + IfrOpHdr->Scope);
+ if (BlockData->Scope == 0) {
+ BlockData = NULL;
+ }
}
- if (BlockData->Scope == 0) {
- BlockData = NULL;
- }
- }
- break;
+ break;
}
IfrOffset += IfrOpHdr->Length;
@@ -3070,10 +3172,10 @@ ParseIfrData (
}
//
- //if Status == EFI_NOT_FOUND, just means the opcode is not required,not contain any error,
- //so set the Status to EFI_SUCCESS.
+ // if Status == EFI_NOT_FOUND, just means the opcode is not required,not contain any error,
+ // so set the Status to EFI_SUCCESS.
//
- if (Status == EFI_NOT_FOUND){
+ if (Status == EFI_NOT_FOUND) {
Status = EFI_SUCCESS;
}
@@ -3082,7 +3184,7 @@ Done:
BlockData = BASE_CR (LinkData, IFR_BLOCK_DATA, Entry);
for (LinkDefault = BlockData->DefaultValueEntry.ForwardLink; LinkDefault != &BlockData->DefaultValueEntry; ) {
DefaultDataPtr = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);
- LinkDefault = LinkDefault->ForwardLink;
+ LinkDefault = LinkDefault->ForwardLink;
if (DefaultDataPtr->Cleaned == TRUE) {
RemoveEntryList (&DefaultDataPtr->Entry);
FreePool (DefaultDataPtr);
@@ -3103,30 +3205,31 @@ Done:
**/
IFR_BLOCK_DATA *
GetBlockElement (
- IN EFI_STRING ConfigRequest,
- OUT EFI_STRING *Progress
+ IN EFI_STRING ConfigRequest,
+ OUT EFI_STRING *Progress
)
{
- EFI_STRING StringPtr;
- IFR_BLOCK_DATA *BlockData;
- IFR_BLOCK_DATA *RequestBlockArray;
- EFI_STATUS Status;
- UINT8 *TmpBuffer;
- UINT16 Offset;
- UINT16 Width;
- LIST_ENTRY *Link;
- IFR_BLOCK_DATA *NextBlockData;
- UINTN Length;
+ EFI_STRING StringPtr;
+ IFR_BLOCK_DATA *BlockData;
+ IFR_BLOCK_DATA *RequestBlockArray;
+ EFI_STATUS Status;
+ UINT8 *TmpBuffer;
+ UINT16 Offset;
+ UINT16 Width;
+ LIST_ENTRY *Link;
+ IFR_BLOCK_DATA *NextBlockData;
+ UINTN Length;
TmpBuffer = NULL;
//
// Init RequestBlockArray
//
- RequestBlockArray = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
+ RequestBlockArray = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
if (RequestBlockArray == NULL) {
goto Done;
}
+
InitializeListHead (&RequestBlockArray->Entry);
//
@@ -3144,7 +3247,7 @@ GetBlockElement (
//
// Skip the OFFSET string
//
- *Progress = StringPtr;
+ *Progress = StringPtr;
StringPtr += StrLen (L"&OFFSET=");
//
// Get Offset
@@ -3153,6 +3256,7 @@ GetBlockElement (
if (EFI_ERROR (Status)) {
goto Done;
}
+
Offset = 0;
CopyMem (
&Offset,
@@ -3165,6 +3269,7 @@ GetBlockElement (
if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {
goto Done;
}
+
StringPtr += StrLen (L"&WIDTH=");
//
@@ -3174,6 +3279,7 @@ GetBlockElement (
if (EFI_ERROR (Status)) {
goto Done;
}
+
Width = 0;
CopyMem (
&Width,
@@ -3183,17 +3289,18 @@ GetBlockElement (
FreePool (TmpBuffer);
StringPtr += Length;
- if (*StringPtr != 0 && *StringPtr != L'&') {
+ if ((*StringPtr != 0) && (*StringPtr != L'&')) {
goto Done;
}
//
// Set Block Data
//
- BlockData = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
+ BlockData = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
if (BlockData == NULL) {
goto Done;
}
+
BlockData->Offset = Offset;
BlockData->Width = Width;
InsertBlockData (&RequestBlockArray->Entry, &BlockData);
@@ -3211,12 +3318,14 @@ GetBlockElement (
if (EFI_ERROR (Status)) {
goto Done;
}
+
FreePool (TmpBuffer);
StringPtr += Length;
- if (*StringPtr != 0 && *StringPtr != L'&') {
+ if ((*StringPtr != 0) && (*StringPtr != L'&')) {
goto Done;
}
}
+
//
// If '\0', parsing is finished.
//
@@ -3230,16 +3339,18 @@ GetBlockElement (
//
Link = RequestBlockArray->Entry.ForwardLink;
while ((Link != &RequestBlockArray->Entry) && (Link->ForwardLink != &RequestBlockArray->Entry)) {
- BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);
+ BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);
NextBlockData = BASE_CR (Link->ForwardLink, IFR_BLOCK_DATA, Entry);
if ((NextBlockData->Offset >= BlockData->Offset) && (NextBlockData->Offset <= (BlockData->Offset + BlockData->Width))) {
if ((NextBlockData->Offset + NextBlockData->Width) > (BlockData->Offset + BlockData->Width)) {
- BlockData->Width = (UINT16) (NextBlockData->Offset + NextBlockData->Width - BlockData->Offset);
+ BlockData->Width = (UINT16)(NextBlockData->Offset + NextBlockData->Width - BlockData->Offset);
}
+
RemoveEntryList (Link->ForwardLink);
FreePool (NextBlockData);
continue;
}
+
Link = Link->ForwardLink;
}
@@ -3272,25 +3383,26 @@ Done:
**/
IFR_BLOCK_DATA *
GetNameElement (
- IN EFI_STRING ConfigRequest,
- OUT EFI_STRING *Progress
+ IN EFI_STRING ConfigRequest,
+ OUT EFI_STRING *Progress
)
{
- EFI_STRING StringPtr;
- EFI_STRING NextTag;
- IFR_BLOCK_DATA *BlockData;
- IFR_BLOCK_DATA *RequestBlockArray;
- BOOLEAN HasValue;
+ EFI_STRING StringPtr;
+ EFI_STRING NextTag;
+ IFR_BLOCK_DATA *BlockData;
+ IFR_BLOCK_DATA *RequestBlockArray;
+ BOOLEAN HasValue;
StringPtr = ConfigRequest;
//
// Init RequestBlockArray
//
- RequestBlockArray = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
+ RequestBlockArray = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
if (RequestBlockArray == NULL) {
goto Done;
}
+
InitializeListHead (&RequestBlockArray->Entry);
//
@@ -3303,8 +3415,7 @@ GetNameElement (
// <BlockName> ::= &'Name***=***
//
while (StringPtr != NULL && *StringPtr == L'&') {
-
- *Progress = StringPtr;
+ *Progress = StringPtr;
//
// Skip the L"&" string
//
@@ -3321,7 +3432,7 @@ GetNameElement (
//
// Set Block Data
//
- BlockData = (IFR_BLOCK_DATA *) AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
+ BlockData = (IFR_BLOCK_DATA *)AllocateZeroPool (sizeof (IFR_BLOCK_DATA));
if (BlockData == NULL) {
goto Done;
}
@@ -3329,7 +3440,7 @@ GetNameElement (
//
// Get Name
//
- BlockData->Name = AllocateCopyPool(StrSize (StringPtr), StringPtr);
+ BlockData->Name = AllocateCopyPool (StrSize (StringPtr), StringPtr);
InsertBlockData (&RequestBlockArray->Entry, &BlockData);
if (HasValue) {
@@ -3361,6 +3472,7 @@ Done:
if (BlockData->Name != NULL) {
FreePool (BlockData->Name);
}
+
FreePool (BlockData);
}
@@ -3383,18 +3495,18 @@ Done:
**/
BOOLEAN
GenerateConfigRequest (
- IN CHAR16 *ConfigHdr,
- IN IFR_VARSTORAGE_DATA *VarStorageData,
- OUT EFI_STATUS *Status,
- IN OUT EFI_STRING *ConfigRequest
+ IN CHAR16 *ConfigHdr,
+ IN IFR_VARSTORAGE_DATA *VarStorageData,
+ OUT EFI_STATUS *Status,
+ IN OUT EFI_STRING *ConfigRequest
)
{
- BOOLEAN DataExist;
- UINTN Length;
- LIST_ENTRY *Link;
- CHAR16 *FullConfigRequest;
- CHAR16 *StringPtr;
- IFR_BLOCK_DATA *BlockData;
+ BOOLEAN DataExist;
+ UINTN Length;
+ LIST_ENTRY *Link;
+ CHAR16 *FullConfigRequest;
+ CHAR16 *StringPtr;
+ IFR_BLOCK_DATA *BlockData;
//
// Append VarStorageData BlockEntry into *Request string
@@ -3434,6 +3546,7 @@ GenerateConfigRequest (
Length = Length + (8 + 4 + 7 + 4);
}
}
+
//
// No any request block data is found. The request string can't be constructed.
//
@@ -3450,6 +3563,7 @@ GenerateConfigRequest (
*Status = EFI_OUT_OF_RESOURCES;
return FALSE;
}
+
StringPtr = FullConfigRequest;
//
@@ -3472,7 +3586,7 @@ GenerateConfigRequest (
(1 + StrLen (BlockData->Name) + 1) * sizeof (CHAR16),
L"&%s",
BlockData->Name
- );
+ );
} else {
//
// Append &OFFSET=XXXX&WIDTH=YYYY\0
@@ -3483,10 +3597,12 @@ GenerateConfigRequest (
L"&OFFSET=%04X&WIDTH=%04X",
BlockData->Offset,
BlockData->Width
- );
+ );
}
+
StringPtr += StrLen (StringPtr);
}
+
//
// Set to the got full request string.
//
@@ -3495,6 +3611,7 @@ GenerateConfigRequest (
if (*ConfigRequest != NULL) {
FreePool (*ConfigRequest);
}
+
*ConfigRequest = FullConfigRequest;
return TRUE;
@@ -3512,16 +3629,16 @@ GenerateConfigRequest (
**/
EFI_STATUS
GenerateHdr (
- IN IFR_VARSTORAGE_DATA *VarStorageData,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- OUT EFI_STRING *ConfigHdr
+ IN IFR_VARSTORAGE_DATA *VarStorageData,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ OUT EFI_STRING *ConfigHdr
)
{
- EFI_STRING GuidStr;
- EFI_STRING NameStr;
- EFI_STRING PathStr;
- UINTN Length;
- EFI_STATUS Status;
+ EFI_STRING GuidStr;
+ EFI_STRING NameStr;
+ EFI_STRING PathStr;
+ UINTN Length;
+ EFI_STATUS Status;
Status = EFI_SUCCESS;
NameStr = NULL;
@@ -3531,16 +3648,17 @@ GenerateHdr (
//
// Construct <ConfigHdr> : "GUID=...&NAME=...&PATH=..." by VarStorageData Guid, Name and DriverHandle
//
- GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) &VarStorageData->Guid, 1, &GuidStr);
+ GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)&VarStorageData->Guid, 1, &GuidStr);
if (VarStorageData->Name != NULL) {
- GenerateSubStr (L"NAME=", StrLen (VarStorageData->Name) * sizeof (CHAR16), (VOID *) VarStorageData->Name, 2, &NameStr);
+ GenerateSubStr (L"NAME=", StrLen (VarStorageData->Name) * sizeof (CHAR16), (VOID *)VarStorageData->Name, 2, &NameStr);
} else {
GenerateSubStr (L"NAME=", 0, NULL, 2, &NameStr);
}
+
GenerateSubStr (
L"PATH=",
- GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DevicePath),
- (VOID *) DevicePath,
+ GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DevicePath),
+ (VOID *)DevicePath,
1,
&PathStr
);
@@ -3554,11 +3672,13 @@ GenerateHdr (
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
StrCpyS (*ConfigHdr, Length, GuidStr);
StrCatS (*ConfigHdr, Length, NameStr);
if (VarStorageData->Name == NULL) {
StrCatS (*ConfigHdr, Length, L"&");
}
+
StrCatS (*ConfigHdr, Length, PathStr);
//
@@ -3582,7 +3702,6 @@ Done:
return Status;
}
-
/**
Update the default value in the block data which is used as bit var store.
@@ -3609,24 +3728,25 @@ Done:
**/
VOID
UpdateDefaultValue (
- IN LIST_ENTRY *BlockLink
-)
+ IN LIST_ENTRY *BlockLink
+ )
{
- LIST_ENTRY *Link;
- LIST_ENTRY *ListEntry;
- LIST_ENTRY *LinkDefault;
- IFR_BLOCK_DATA *BlockData;
- IFR_DEFAULT_DATA *DefaultValueData;
- UINTN StartBit;
- UINTN EndBit;
- UINT32 BitFieldDefaultValue;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *ListEntry;
+ LIST_ENTRY *LinkDefault;
+ IFR_BLOCK_DATA *BlockData;
+ IFR_DEFAULT_DATA *DefaultValueData;
+ UINTN StartBit;
+ UINTN EndBit;
+ UINT32 BitFieldDefaultValue;
for ( Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {
BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);
- if (!BlockData ->IsBitVar) {
+ if (!BlockData->IsBitVar) {
continue;
}
- ListEntry = &BlockData->DefaultValueEntry;
+
+ ListEntry = &BlockData->DefaultValueEntry;
//
// Update the default value in the block data with all existing default id.
//
@@ -3635,11 +3755,11 @@ UpdateDefaultValue (
// Get the default data, and the value of the default data is for some field in the block.
// Note: Default value for bit field question is stored as UINT32.
//
- DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);
+ DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);
BitFieldDefaultValue = DefaultValueData->Value.u32;
StartBit = BlockData->BitOffset % 8;
- EndBit = StartBit + BlockData->BitWidth - 1;
+ EndBit = StartBit + BlockData->BitWidth - 1;
//
// Set the bit field default value to related bit filed, then we will got the new default vaule for the block data.
@@ -3688,36 +3808,37 @@ the first byte value of block.
**/
VOID
MergeBlockDefaultValue (
- IN OUT IFR_BLOCK_DATA *FirstBlock,
- IN OUT IFR_BLOCK_DATA *SecondBlock
-)
+ IN OUT IFR_BLOCK_DATA *FirstBlock,
+ IN OUT IFR_BLOCK_DATA *SecondBlock
+ )
{
- LIST_ENTRY *FirstListEntry;
- LIST_ENTRY *SecondListEntry;
- LIST_ENTRY *FirstDefaultLink;
- LIST_ENTRY *SecondDefaultLink;
- IFR_DEFAULT_DATA *FirstDefaultValueData;
- IFR_DEFAULT_DATA *SecondDefaultValueData;
- UINT32 *FirstDefaultValue;
- UINT32 *SecondDefaultValue;
- UINT64 TotalValue;
- UINT64 ShiftedValue;
- UINT16 OffsetShift;
+ LIST_ENTRY *FirstListEntry;
+ LIST_ENTRY *SecondListEntry;
+ LIST_ENTRY *FirstDefaultLink;
+ LIST_ENTRY *SecondDefaultLink;
+ IFR_DEFAULT_DATA *FirstDefaultValueData;
+ IFR_DEFAULT_DATA *SecondDefaultValueData;
+ UINT32 *FirstDefaultValue;
+ UINT32 *SecondDefaultValue;
+ UINT64 TotalValue;
+ UINT64 ShiftedValue;
+ UINT16 OffsetShift;
FirstListEntry = &FirstBlock->DefaultValueEntry;
for (FirstDefaultLink = FirstListEntry->ForwardLink; FirstDefaultLink != FirstListEntry; FirstDefaultLink = FirstDefaultLink->ForwardLink) {
FirstDefaultValueData = BASE_CR (FirstDefaultLink, IFR_DEFAULT_DATA, Entry);
- SecondListEntry = &SecondBlock->DefaultValueEntry;
+ SecondListEntry = &SecondBlock->DefaultValueEntry;
for (SecondDefaultLink = SecondListEntry->ForwardLink; SecondDefaultLink != SecondListEntry; SecondDefaultLink = SecondDefaultLink->ForwardLink) {
SecondDefaultValueData = BASE_CR (SecondDefaultLink, IFR_DEFAULT_DATA, Entry);
if (FirstDefaultValueData->DefaultId != SecondDefaultValueData->DefaultId) {
continue;
}
+
//
// Find default value with same default id in the two blocks.
// Note: Default value for bit field question is stored as UINT32 type.
//
- FirstDefaultValue = &FirstDefaultValueData->Value.u32;
+ FirstDefaultValue = &FirstDefaultValueData->Value.u32;
SecondDefaultValue = &SecondDefaultValueData->Value.u32;
//
// 1. Get the default value of the whole blcok that can just cover FirstBlock and SecondBlock.
@@ -3725,17 +3846,17 @@ MergeBlockDefaultValue (
// on the offset and width of FirstBlock and SecondBlock.
//
if (FirstBlock->Offset > SecondBlock->Offset) {
- OffsetShift = FirstBlock->Offset - SecondBlock->Offset;
- ShiftedValue = LShiftU64 ((UINT64) (*FirstDefaultValue), OffsetShift * 8);
- TotalValue = ShiftedValue | (UINT64) (*SecondDefaultValue);
- *SecondDefaultValue = (UINT32) BitFieldRead64 (TotalValue, 0, SecondBlock->Width * 8 -1);
- *FirstDefaultValue = (UINT32) BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + FirstBlock->Width *8 -1);
+ OffsetShift = FirstBlock->Offset - SecondBlock->Offset;
+ ShiftedValue = LShiftU64 ((UINT64)(*FirstDefaultValue), OffsetShift * 8);
+ TotalValue = ShiftedValue | (UINT64)(*SecondDefaultValue);
+ *SecondDefaultValue = (UINT32)BitFieldRead64 (TotalValue, 0, SecondBlock->Width * 8 -1);
+ *FirstDefaultValue = (UINT32)BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + FirstBlock->Width *8 -1);
} else {
- OffsetShift = SecondBlock->Offset -FirstBlock->Offset;
- ShiftedValue = LShiftU64 ((UINT64) (*SecondDefaultValue), OffsetShift * 8);
- TotalValue = ShiftedValue | (UINT64) (*FirstDefaultValue);
- *FirstDefaultValue = (UINT32) BitFieldRead64 (TotalValue, 0, FirstBlock->Width * 8 -1);
- *SecondDefaultValue = (UINT32) BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + SecondBlock->Width *8 -1);
+ OffsetShift = SecondBlock->Offset -FirstBlock->Offset;
+ ShiftedValue = LShiftU64 ((UINT64)(*SecondDefaultValue), OffsetShift * 8);
+ TotalValue = ShiftedValue | (UINT64)(*FirstDefaultValue);
+ *FirstDefaultValue = (UINT32)BitFieldRead64 (TotalValue, 0, FirstBlock->Width * 8 -1);
+ *SecondDefaultValue = (UINT32)BitFieldRead64 (TotalValue, OffsetShift * 8, OffsetShift * 8 + SecondBlock->Width *8 -1);
}
}
}
@@ -3750,13 +3871,13 @@ Update the default value in the block data which used as Bit VarStore
**/
VOID
UpdateBlockDataArray (
- IN LIST_ENTRY *BlockLink
-)
+ IN LIST_ENTRY *BlockLink
+ )
{
- LIST_ENTRY *Link;
- LIST_ENTRY *TempLink;
- IFR_BLOCK_DATA *BlockData;
- IFR_BLOCK_DATA *NextBlockData;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *TempLink;
+ IFR_BLOCK_DATA *BlockData;
+ IFR_BLOCK_DATA *NextBlockData;
//
// 1. Update default value in BitVar block data.
@@ -3773,14 +3894,16 @@ UpdateBlockDataArray (
//
for (Link = BlockLink->ForwardLink; Link != BlockLink; Link = Link->ForwardLink) {
BlockData = BASE_CR (Link, IFR_BLOCK_DATA, Entry);
- if (!BlockData ->IsBitVar) {
+ if (!BlockData->IsBitVar) {
continue;
}
+
for (TempLink = Link->ForwardLink; TempLink != BlockLink; TempLink = TempLink->ForwardLink) {
NextBlockData = BASE_CR (TempLink, IFR_BLOCK_DATA, Entry);
- if (!NextBlockData->IsBitVar || NextBlockData->Offset >= BlockData->Offset + BlockData->Width || BlockData->Offset >= NextBlockData->Offset + NextBlockData->Width) {
+ if (!NextBlockData->IsBitVar || (NextBlockData->Offset >= BlockData->Offset + BlockData->Width) || (BlockData->Offset >= NextBlockData->Offset + NextBlockData->Width)) {
continue;
}
+
//
// Find two blocks are used as bit VarStore and have overlap region, so need to merge default value of these two blocks.
//
@@ -3803,27 +3926,27 @@ UpdateBlockDataArray (
**/
EFI_STATUS
GenerateAltConfigResp (
- IN EFI_HII_HANDLE HiiHandle,
- IN CHAR16 *ConfigHdr,
- IN IFR_VARSTORAGE_DATA *VarStorageData,
- IN IFR_DEFAULT_DATA *DefaultIdArray,
- IN OUT EFI_STRING *DefaultAltCfgResp
+ IN EFI_HII_HANDLE HiiHandle,
+ IN CHAR16 *ConfigHdr,
+ IN IFR_VARSTORAGE_DATA *VarStorageData,
+ IN IFR_DEFAULT_DATA *DefaultIdArray,
+ IN OUT EFI_STRING *DefaultAltCfgResp
)
{
- BOOLEAN DataExist;
- UINTN Length;
- LIST_ENTRY *Link;
- LIST_ENTRY *LinkData;
- LIST_ENTRY *LinkDefault;
- LIST_ENTRY *ListEntry;
- CHAR16 *StringPtr;
- IFR_BLOCK_DATA *BlockData;
- IFR_DEFAULT_DATA *DefaultId;
- IFR_DEFAULT_DATA *DefaultValueData;
- UINTN Width;
- UINT8 *TmpBuffer;
- CHAR16 *DefaultString;
- UINTN StrSize;
+ BOOLEAN DataExist;
+ UINTN Length;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *LinkData;
+ LIST_ENTRY *LinkDefault;
+ LIST_ENTRY *ListEntry;
+ CHAR16 *StringPtr;
+ IFR_BLOCK_DATA *BlockData;
+ IFR_DEFAULT_DATA *DefaultId;
+ IFR_DEFAULT_DATA *DefaultValueData;
+ UINTN Width;
+ UINT8 *TmpBuffer;
+ CHAR16 *DefaultString;
+ UINTN StrSize;
BlockData = NULL;
DataExist = FALSE;
@@ -3845,12 +3968,13 @@ GenerateAltConfigResp (
for (LinkData = VarStorageData->BlockEntry.ForwardLink; LinkData != &VarStorageData->BlockEntry; LinkData = LinkData->ForwardLink) {
BlockData = BASE_CR (LinkData, IFR_BLOCK_DATA, Entry);
- ListEntry = &BlockData->DefaultValueEntry;
+ ListEntry = &BlockData->DefaultValueEntry;
for (LinkDefault = ListEntry->ForwardLink; LinkDefault != ListEntry; LinkDefault = LinkDefault->ForwardLink) {
DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);
if (DefaultValueData->DefaultId != DefaultId->DefaultId) {
continue;
}
+
if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {
//
// Add length for "&Name1=zzzzzzzzzzzz"
@@ -3864,6 +3988,7 @@ GenerateAltConfigResp (
//
Length += (8 + 4 + 7 + 4 + 7 + BlockData->Width * 2);
}
+
DataExist = TRUE;
}
}
@@ -3883,6 +4008,7 @@ GenerateAltConfigResp (
if (*DefaultAltCfgResp == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
StringPtr = *DefaultAltCfgResp;
//
@@ -3908,12 +4034,13 @@ GenerateAltConfigResp (
for (LinkData = VarStorageData->BlockEntry.ForwardLink; LinkData != &VarStorageData->BlockEntry; LinkData = LinkData->ForwardLink) {
BlockData = BASE_CR (LinkData, IFR_BLOCK_DATA, Entry);
- ListEntry = &BlockData->DefaultValueEntry;
+ ListEntry = &BlockData->DefaultValueEntry;
for (LinkDefault = ListEntry->ForwardLink; LinkDefault != ListEntry; LinkDefault = LinkDefault->ForwardLink) {
DefaultValueData = BASE_CR (LinkDefault, IFR_DEFAULT_DATA, Entry);
if (DefaultValueData->DefaultId != DefaultId->DefaultId) {
continue;
}
+
if (VarStorageData->Type == EFI_HII_VARSTORE_NAME_VALUE) {
UnicodeSPrint (
StringPtr,
@@ -3936,26 +4063,29 @@ GenerateAltConfigResp (
);
StringPtr += StrLen (StringPtr);
}
+
Width = BlockData->Width;
//
// Convert Value to a hex string in "%x" format
// NOTE: This is in the opposite byte that GUID and PATH use
//
- if (BlockData->OpCode == EFI_IFR_STRING_OP){
- DefaultString = InternalGetString(HiiHandle, DefaultValueData->Value.string);
- TmpBuffer = AllocateZeroPool (Width);
+ if (BlockData->OpCode == EFI_IFR_STRING_OP) {
+ DefaultString = InternalGetString (HiiHandle, DefaultValueData->Value.string);
+ TmpBuffer = AllocateZeroPool (Width);
ASSERT (TmpBuffer != NULL);
if (DefaultString != NULL) {
- StrSize = StrLen(DefaultString)* sizeof (CHAR16);
+ StrSize = StrLen (DefaultString)* sizeof (CHAR16);
if (StrSize > Width) {
StrSize = Width;
}
- CopyMem (TmpBuffer, (UINT8 *) DefaultString, StrSize);
+
+ CopyMem (TmpBuffer, (UINT8 *)DefaultString, StrSize);
}
} else {
- TmpBuffer = (UINT8 *) &(DefaultValueData->Value);
+ TmpBuffer = (UINT8 *)&(DefaultValueData->Value);
}
- for (; Width > 0 && (TmpBuffer != NULL); Width--) {
+
+ for ( ; Width > 0 && (TmpBuffer != NULL); Width--) {
UnicodeValueToStringS (
StringPtr,
Length * sizeof (CHAR16) - ((UINTN)StringPtr - (UINTN)*DefaultAltCfgResp),
@@ -3965,13 +4095,15 @@ GenerateAltConfigResp (
);
StringPtr += StrnLenS (StringPtr, Length - ((UINTN)StringPtr - (UINTN)*DefaultAltCfgResp) / sizeof (CHAR16));
}
- if (DefaultString != NULL){
- FreePool(DefaultString);
+
+ if (DefaultString != NULL) {
+ FreePool (DefaultString);
DefaultString = NULL;
}
- if (BlockData->OpCode == EFI_IFR_STRING_OP && TmpBuffer != NULL) {
- FreePool(TmpBuffer);
- TmpBuffer = NULL;
+
+ if ((BlockData->OpCode == EFI_IFR_STRING_OP) && (TmpBuffer != NULL)) {
+ FreePool (TmpBuffer);
+ TmpBuffer = NULL;
}
}
}
@@ -4028,28 +4160,28 @@ GenerateAltConfigResp (
EFI_STATUS
EFIAPI
GetFullStringFromHiiFormPackages (
- IN HII_DATABASE_RECORD *DataBaseRecord,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN OUT EFI_STRING *Request,
- IN OUT EFI_STRING *AltCfgResp,
- OUT EFI_STRING *PointerProgress OPTIONAL
+ IN HII_DATABASE_RECORD *DataBaseRecord,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN OUT EFI_STRING *Request,
+ IN OUT EFI_STRING *AltCfgResp,
+ OUT EFI_STRING *PointerProgress OPTIONAL
)
{
- EFI_STATUS Status;
- UINT8 *HiiFormPackage;
- UINTN PackageSize;
- IFR_BLOCK_DATA *RequestBlockArray;
- IFR_BLOCK_DATA *BlockData;
- IFR_DEFAULT_DATA *DefaultValueData;
- IFR_DEFAULT_DATA *DefaultId;
- IFR_DEFAULT_DATA *DefaultIdArray;
- IFR_VARSTORAGE_DATA *VarStorageData;
- EFI_STRING DefaultAltCfgResp;
- EFI_STRING ConfigHdr;
- EFI_STRING StringPtr;
- EFI_STRING Progress;
-
- if (DataBaseRecord == NULL || DevicePath == NULL || Request == NULL || AltCfgResp == NULL) {
+ EFI_STATUS Status;
+ UINT8 *HiiFormPackage;
+ UINTN PackageSize;
+ IFR_BLOCK_DATA *RequestBlockArray;
+ IFR_BLOCK_DATA *BlockData;
+ IFR_DEFAULT_DATA *DefaultValueData;
+ IFR_DEFAULT_DATA *DefaultId;
+ IFR_DEFAULT_DATA *DefaultIdArray;
+ IFR_VARSTORAGE_DATA *VarStorageData;
+ EFI_STRING DefaultAltCfgResp;
+ EFI_STRING ConfigHdr;
+ EFI_STRING StringPtr;
+ EFI_STRING Progress;
+
+ if ((DataBaseRecord == NULL) || (DevicePath == NULL) || (Request == NULL) || (AltCfgResp == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -4080,28 +4212,33 @@ GetFullStringFromHiiFormPackages (
// Jump <ConfigHdr>
//
if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
StringPtr += StrLen (L"GUID=");
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&NAME=", StrLen (L"&NAME=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == L'\0') {
Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
StringPtr += StrLen (L"&NAME=");
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&PATH=", StrLen (L"&PATH=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == L'\0') {
Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
StringPtr += StrLen (L"&PATH=");
while (*StringPtr != L'\0' && *StringPtr != L'&') {
- StringPtr ++;
+ StringPtr++;
}
if (*StringPtr == L'\0') {
@@ -4117,9 +4254,9 @@ GetFullStringFromHiiFormPackages (
//
if (StringPtr != NULL) {
if (StrStr (StringPtr, L"&OFFSET=") != NULL) {
- RequestBlockArray = GetBlockElement(StringPtr, &Progress);
+ RequestBlockArray = GetBlockElement (StringPtr, &Progress);
} else {
- RequestBlockArray = GetNameElement(StringPtr, &Progress);
+ RequestBlockArray = GetNameElement (StringPtr, &Progress);
}
if (RequestBlockArray == NULL) {
@@ -4131,21 +4268,23 @@ GetFullStringFromHiiFormPackages (
//
// Initialize DefaultIdArray to store the map between DeaultId and DefaultName
//
- DefaultIdArray = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
+ DefaultIdArray = (IFR_DEFAULT_DATA *)AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
if (DefaultIdArray == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
InitializeListHead (&DefaultIdArray->Entry);
//
// Initialize VarStorageData to store the var store Block and Default value information.
//
- VarStorageData = (IFR_VARSTORAGE_DATA *) AllocateZeroPool (sizeof (IFR_VARSTORAGE_DATA));
+ VarStorageData = (IFR_VARSTORAGE_DATA *)AllocateZeroPool (sizeof (IFR_VARSTORAGE_DATA));
if (VarStorageData == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
InitializeListHead (&VarStorageData->Entry);
InitializeListHead (&VarStorageData->BlockEntry);
@@ -4156,13 +4295,15 @@ GetFullStringFromHiiFormPackages (
//
// Parse the opcode in form package to get the default setting.
//
- Status = ParseIfrData (DataBaseRecord->Handle,
- HiiFormPackage,
- (UINT32) PackageSize,
- *Request,
- RequestBlockArray,
- VarStorageData,
- DefaultIdArray);
+ Status = ParseIfrData (
+ DataBaseRecord->Handle,
+ HiiFormPackage,
+ (UINT32)PackageSize,
+ *Request,
+ RequestBlockArray,
+ VarStorageData,
+ DefaultIdArray
+ );
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -4170,7 +4311,7 @@ GetFullStringFromHiiFormPackages (
//
// No requested varstore in IFR data and directly return
//
- if (VarStorageData->Type == 0 && VarStorageData->Name == NULL) {
+ if ((VarStorageData->Type == 0) && (VarStorageData->Name == NULL)) {
Status = EFI_SUCCESS;
goto Done;
}
@@ -4184,7 +4325,7 @@ GetFullStringFromHiiFormPackages (
}
if (RequestBlockArray == NULL) {
- if (!GenerateConfigRequest(ConfigHdr, VarStorageData, &Status, Request)) {
+ if (!GenerateConfigRequest (ConfigHdr, VarStorageData, &Status, Request)) {
goto Done;
}
}
@@ -4194,7 +4335,7 @@ GetFullStringFromHiiFormPackages (
// Go through all VarStorageData Entry and get the DefaultId array for each one
// Then construct them all to : ConfigHdr AltConfigHdr ConfigBody AltConfigHdr ConfigBody
//
- Status = GenerateAltConfigResp (DataBaseRecord->Handle,ConfigHdr, VarStorageData, DefaultIdArray, &DefaultAltCfgResp);
+ Status = GenerateAltConfigResp (DataBaseRecord->Handle, ConfigHdr, VarStorageData, DefaultIdArray, &DefaultAltCfgResp);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -4202,7 +4343,7 @@ GetFullStringFromHiiFormPackages (
//
// 5. Merge string into the input AltCfgResp if the input *AltCfgResp is not NULL.
//
- if (*AltCfgResp != NULL && DefaultAltCfgResp != NULL) {
+ if ((*AltCfgResp != NULL) && (DefaultAltCfgResp != NULL)) {
Status = MergeDefaultString (AltCfgResp, DefaultAltCfgResp);
FreePool (DefaultAltCfgResp);
} else if (*AltCfgResp == NULL) {
@@ -4220,6 +4361,7 @@ Done:
if (BlockData->Name != NULL) {
FreePool (BlockData->Name);
}
+
FreePool (BlockData);
}
@@ -4236,6 +4378,7 @@ Done:
if (BlockData->Name != NULL) {
FreePool (BlockData->Name);
}
+
//
// Free default value link array
//
@@ -4244,12 +4387,15 @@ Done:
RemoveEntryList (&DefaultValueData->Entry);
FreePool (DefaultValueData);
}
+
FreePool (BlockData);
}
- if (VarStorageData ->Name != NULL) {
- FreePool (VarStorageData ->Name);
- VarStorageData ->Name = NULL;
+
+ if (VarStorageData->Name != NULL) {
+ FreePool (VarStorageData->Name);
+ VarStorageData->Name = NULL;
}
+
FreePool (VarStorageData);
}
@@ -4262,6 +4408,7 @@ Done:
RemoveEntryList (&DefaultId->Entry);
FreePool (DefaultId);
}
+
FreePool (DefaultIdArray);
}
@@ -4327,11 +4474,11 @@ GetConfigRespFromEfiVarStore (
OUT EFI_STRING *AccessProgress
)
{
- EFI_STATUS Status;
- EFI_STRING VarStoreName;
- UINTN NameSize;
- UINT8 *VarStore;
- UINTN BufferSize;
+ EFI_STATUS Status;
+ EFI_STRING VarStoreName;
+ UINTN NameSize;
+ UINT8 *VarStore;
+ UINTN BufferSize;
Status = EFI_SUCCESS;
BufferSize = 0;
@@ -4339,14 +4486,14 @@ GetConfigRespFromEfiVarStore (
VarStoreName = NULL;
*AccessProgress = Request;
- NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);
+ NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);
VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStrS ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName, NameSize);
+ AsciiStrToUnicodeStrS ((CHAR8 *)EfiVarStoreInfo->Name, VarStoreName, NameSize);
Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, NULL);
if (Status != EFI_BUFFER_TOO_SMALL) {
@@ -4360,7 +4507,7 @@ GetConfigRespFromEfiVarStore (
goto Done;
}
- Status = HiiBlockToConfig(This, Request, VarStore, BufferSize, RequestResp, AccessProgress);
+ Status = HiiBlockToConfig (This, Request, VarStore, BufferSize, RequestResp, AccessProgress);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -4377,7 +4524,6 @@ Done:
return Status;
}
-
/**
This function route the full request resp string for efi varstore.
@@ -4404,26 +4550,27 @@ RouteConfigRespForEfiVarStore (
OUT EFI_STRING *Result
)
{
- EFI_STATUS Status;
- EFI_STRING VarStoreName;
- UINTN NameSize;
- UINT8 *VarStore;
- UINTN BufferSize;
- UINTN BlockSize;
+ EFI_STATUS Status;
+ EFI_STRING VarStoreName;
+ UINTN NameSize;
+ UINT8 *VarStore;
+ UINTN BufferSize;
+ UINTN BlockSize;
Status = EFI_SUCCESS;
BufferSize = 0;
VarStore = NULL;
VarStoreName = NULL;
- *Result = RequestResp;
+ *Result = RequestResp;
- NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);
+ NameSize = AsciiStrSize ((CHAR8 *)EfiVarStoreInfo->Name);
VarStoreName = AllocateZeroPool (NameSize * sizeof (CHAR16));
if (VarStoreName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- AsciiStrToUnicodeStrS ((CHAR8 *) EfiVarStoreInfo->Name, VarStoreName, NameSize);
+
+ AsciiStrToUnicodeStrS ((CHAR8 *)EfiVarStoreInfo->Name, VarStoreName, NameSize);
Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, NULL);
if (Status != EFI_BUFFER_TOO_SMALL) {
@@ -4432,14 +4579,14 @@ RouteConfigRespForEfiVarStore (
}
BlockSize = BufferSize;
- VarStore = AllocateZeroPool (BufferSize);
+ VarStore = AllocateZeroPool (BufferSize);
ASSERT (VarStore != NULL);
Status = gRT->GetVariable (VarStoreName, &EfiVarStoreInfo->Guid, NULL, &BufferSize, VarStore);
if (EFI_ERROR (Status)) {
goto Done;
}
- Status = HiiConfigToBlock(This, RequestResp, VarStore, &BlockSize, Result);
+ Status = HiiConfigToBlock (This, RequestResp, VarStore, &BlockSize, Result);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -4473,16 +4620,16 @@ Done:
**/
CHAR16 *
OffsetWidthValidate (
- CHAR16 *ConfigElements
+ CHAR16 *ConfigElements
)
{
- CHAR16 *StringPtr;
- CHAR16 *RetVal;
+ CHAR16 *StringPtr;
+ CHAR16 *RetVal;
StringPtr = ConfigElements;
while (1) {
- RetVal = StringPtr;
+ RetVal = StringPtr;
if (StrnCmp (StringPtr, L"&OFFSET=", StrLen (L"&OFFSET=")) != 0) {
return RetVal;
}
@@ -4490,13 +4637,14 @@ OffsetWidthValidate (
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == L'\0') {
return RetVal;
}
StringPtr += StrLen (L"&WIDTH=");
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&OFFSET=", StrLen (L"&OFFSET=")) != 0) {
- StringPtr ++;
+ StringPtr++;
}
if (*StringPtr == L'\0') {
@@ -4517,11 +4665,11 @@ OffsetWidthValidate (
**/
CHAR16 *
NameValueValidate (
- CHAR16 *ConfigElements
+ CHAR16 *ConfigElements
)
{
- CHAR16 *StringPtr;
- CHAR16 *RetVal;
+ CHAR16 *StringPtr;
+ CHAR16 *RetVal;
StringPtr = ConfigElements;
@@ -4530,6 +4678,7 @@ NameValueValidate (
if (*StringPtr != L'&') {
return RetVal;
}
+
StringPtr += 1;
StringPtr = StrStr (StringPtr, L"&");
@@ -4551,11 +4700,11 @@ NameValueValidate (
**/
CHAR16 *
ConfigRequestValidate (
- CHAR16 *ConfigRequest
+ CHAR16 *ConfigRequest
)
{
- BOOLEAN HasNameField;
- CHAR16 *StringPtr;
+ BOOLEAN HasNameField;
+ CHAR16 *StringPtr;
HasNameField = TRUE;
StringPtr = ConfigRequest;
@@ -4566,26 +4715,32 @@ ConfigRequestValidate (
if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {
return ConfigRequest;
}
+
StringPtr += StrLen (L"GUID=");
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&NAME=", StrLen (L"&NAME=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == L'\0') {
return ConfigRequest;
}
+
StringPtr += StrLen (L"&NAME=");
if (*StringPtr == L'&') {
HasNameField = FALSE;
}
+
while (*StringPtr != L'\0' && StrnCmp (StringPtr, L"&PATH=", StrLen (L"&PATH=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == L'\0') {
return ConfigRequest;
}
+
StringPtr += StrLen (L"&PATH=");
while (*StringPtr != L'\0' && *StringPtr != L'&') {
- StringPtr ++;
+ StringPtr++;
}
if (*StringPtr == L'\0') {
@@ -4596,12 +4751,12 @@ ConfigRequestValidate (
//
// Should be Buffer varstore, config request should be "OFFSET/Width" pairs.
//
- return OffsetWidthValidate(StringPtr);
+ return OffsetWidthValidate (StringPtr);
} else {
//
// Should be Name/Value varstore, config request should be "&name1&name2..." pairs.
//
- return NameValueValidate(StringPtr);
+ return NameValueValidate (StringPtr);
}
}
@@ -4655,36 +4810,36 @@ HiiConfigRoutingExtractConfig (
OUT EFI_STRING *Results
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_STRING StringPtr;
- EFI_STRING ConfigRequest;
- UINTN Length;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- HII_DATABASE_RECORD *Database;
- UINT8 *DevicePathPkg;
- UINT8 *CurrentDevicePath;
- EFI_HANDLE DriverHandle;
- EFI_HII_HANDLE HiiHandle;
- EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
- EFI_STRING AccessProgress;
- EFI_STRING AccessResults;
- EFI_STRING AccessProgressBackup;
- EFI_STRING AccessResultsBackup;
- EFI_STRING DefaultResults;
- BOOLEAN FirstElement;
- BOOLEAN IfrDataParsedFlag;
- BOOLEAN IsEfiVarStore;
- EFI_IFR_VARSTORE_EFI *EfiVarStoreInfo;
- EFI_STRING ErrorPtr;
- UINTN DevicePathSize;
- UINTN ConigStringSize;
- UINTN ConigStringSizeNewsize;
- EFI_STRING ConfigStringPtr;
-
- if (This == NULL || Progress == NULL || Results == NULL) {
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_STRING StringPtr;
+ EFI_STRING ConfigRequest;
+ UINTN Length;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ HII_DATABASE_RECORD *Database;
+ UINT8 *DevicePathPkg;
+ UINT8 *CurrentDevicePath;
+ EFI_HANDLE DriverHandle;
+ EFI_HII_HANDLE HiiHandle;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
+ EFI_STRING AccessProgress;
+ EFI_STRING AccessResults;
+ EFI_STRING AccessProgressBackup;
+ EFI_STRING AccessResultsBackup;
+ EFI_STRING DefaultResults;
+ BOOLEAN FirstElement;
+ BOOLEAN IfrDataParsedFlag;
+ BOOLEAN IsEfiVarStore;
+ EFI_IFR_VARSTORE_EFI *EfiVarStoreInfo;
+ EFI_STRING ErrorPtr;
+ UINTN DevicePathSize;
+ UINTN ConigStringSize;
+ UINTN ConigStringSizeNewsize;
+ EFI_STRING ConfigStringPtr;
+
+ if ((This == NULL) || (Progress == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -4693,20 +4848,20 @@ HiiConfigRoutingExtractConfig (
return EFI_INVALID_PARAMETER;
}
- Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
- StringPtr = Request;
- *Progress = StringPtr;
- DefaultResults = NULL;
- ConfigRequest = NULL;
- Status = EFI_SUCCESS;
- AccessResults = NULL;
- AccessProgress = NULL;
+ Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ StringPtr = Request;
+ *Progress = StringPtr;
+ DefaultResults = NULL;
+ ConfigRequest = NULL;
+ Status = EFI_SUCCESS;
+ AccessResults = NULL;
+ AccessProgress = NULL;
AccessResultsBackup = NULL;
AccessProgressBackup = NULL;
- DevicePath = NULL;
- IfrDataParsedFlag = FALSE;
- IsEfiVarStore = FALSE;
- EfiVarStoreInfo = NULL;
+ DevicePath = NULL;
+ IfrDataParsedFlag = FALSE;
+ IsEfiVarStore = FALSE;
+ EfiVarStoreInfo = NULL;
//
// The first element of <MultiConfigRequest> should be
@@ -4722,7 +4877,7 @@ HiiConfigRoutingExtractConfig (
// Allocate a fix length of memory to store Results. Reallocate memory for
// Results if this fix length is insufficient.
//
- *Results = (EFI_STRING) AllocateZeroPool (MAX_STRING_LENGTH);
+ *Results = (EFI_STRING)AllocateZeroPool (MAX_STRING_LENGTH);
if (*Results == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -4741,18 +4896,19 @@ HiiConfigRoutingExtractConfig (
//
// Process each <ConfigRequest> of <MultiConfigRequest>
//
- Length = CalculateConfigStringLen (StringPtr);
+ Length = CalculateConfigStringLen (StringPtr);
ConfigRequest = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), StringPtr);
if (ConfigRequest == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
*(ConfigRequest + Length) = 0;
//
// Get the UEFI device path
//
- Status = GetDevicePath (ConfigRequest, (UINT8 **) &DevicePath);
+ Status = GetDevicePath (ConfigRequest, (UINT8 **)&DevicePath);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -4760,18 +4916,19 @@ HiiConfigRoutingExtractConfig (
//
// Find driver which matches the routing data.
//
- DriverHandle = NULL;
- HiiHandle = NULL;
- Database = NULL;
+ DriverHandle = NULL;
+ HiiHandle = NULL;
+ Database = NULL;
for (Link = Private->DatabaseList.ForwardLink;
Link != &Private->DatabaseList;
Link = Link->ForwardLink
- ) {
+ )
+ {
Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
- DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);
- if ((CompareMem (DevicePath,CurrentDevicePath,DevicePathSize) == 0) && IsThisPackageList(Database, ConfigRequest)) {
+ DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);
+ if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0) && IsThisPackageList (Database, ConfigRequest)) {
DriverHandle = Database->DriverHandle;
HiiHandle = Database->Handle;
break;
@@ -4784,18 +4941,18 @@ HiiConfigRoutingExtractConfig (
//
if (DriverHandle == NULL) {
TempDevicePath = DevicePath;
- Status = gBS->LocateDevicePath (
- &gEfiDevicePathProtocolGuid,
- &TempDevicePath,
- &DriverHandle
- );
+ Status = gBS->LocateDevicePath (
+ &gEfiDevicePathProtocolGuid,
+ &TempDevicePath,
+ &DriverHandle
+ );
if (EFI_ERROR (Status) || (DriverHandle == NULL)) {
//
// Routing data does not match any known driver.
// Set Progress to the 'G' in "GUID" of the routing header.
//
*Progress = StringPtr;
- Status = EFI_NOT_FOUND;
+ Status = EFI_NOT_FOUND;
goto Done;
}
}
@@ -4803,10 +4960,10 @@ HiiConfigRoutingExtractConfig (
//
// Validate ConfigRequest String.
//
- ErrorPtr = ConfigRequestValidate(ConfigRequest);
+ ErrorPtr = ConfigRequestValidate (ConfigRequest);
if (ErrorPtr != NULL) {
*Progress = StrStr (StringPtr, ErrorPtr);
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Done;
}
@@ -4814,12 +4971,12 @@ HiiConfigRoutingExtractConfig (
// Check whether ConfigRequest contains request string.
//
IfrDataParsedFlag = FALSE;
- if ((HiiHandle != NULL) && !GetElementsFromRequest(ConfigRequest)) {
+ if ((HiiHandle != NULL) && !GetElementsFromRequest (ConfigRequest)) {
//
// Get the full request string from IFR when HiiPackage is registered to HiiHandle
//
IfrDataParsedFlag = TRUE;
- Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, &AccessProgress);
+ Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, &AccessProgress);
if (EFI_ERROR (Status)) {
//
// AccessProgress indicates the parsing progress on <ConfigRequest>.
@@ -4829,10 +4986,11 @@ HiiConfigRoutingExtractConfig (
*Progress = StrStr (StringPtr, AccessProgress);
goto Done;
}
+
//
// Not any request block is found.
//
- if (!GetElementsFromRequest(ConfigRequest)) {
+ if (!GetElementsFromRequest (ConfigRequest)) {
AccessResults = AllocateCopyPool (StrSize (ConfigRequest), ConfigRequest);
goto NextConfigString;
}
@@ -4841,7 +4999,7 @@ HiiConfigRoutingExtractConfig (
//
// Check whether this ConfigRequest is search from Efi varstore type storage.
//
- Status = GetVarStoreType(Database, ConfigRequest, &IsEfiVarStore, &EfiVarStoreInfo);
+ Status = GetVarStoreType (Database, ConfigRequest, &IsEfiVarStore, &EfiVarStoreInfo);
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -4850,7 +5008,7 @@ HiiConfigRoutingExtractConfig (
//
// Call the GetVariable function to extract settings.
//
- Status = GetConfigRespFromEfiVarStore(This, EfiVarStoreInfo, ConfigRequest, &AccessResults, &AccessProgress);
+ Status = GetConfigRespFromEfiVarStore (This, EfiVarStoreInfo, ConfigRequest, &AccessResults, &AccessProgress);
FreePool (EfiVarStoreInfo);
if (EFI_ERROR (Status)) {
//
@@ -4867,7 +5025,7 @@ HiiConfigRoutingExtractConfig (
Status = gBS->HandleProtocol (
DriverHandle,
&gEfiHiiConfigAccessProtocolGuid,
- (VOID **) &ConfigAccess
+ (VOID **)&ConfigAccess
);
if (EFI_ERROR (Status)) {
//
@@ -4882,18 +5040,19 @@ HiiConfigRoutingExtractConfig (
&AccessProgressBackup,
&AccessResultsBackup
);
- if (!EFI_ERROR(Status)) {
+ if (!EFI_ERROR (Status)) {
//
- //Merge the AltCfgResp in AccessResultsBackup to AccessResults
+ // Merge the AltCfgResp in AccessResultsBackup to AccessResults
//
if ((AccessResultsBackup != NULL) && (StrStr (AccessResultsBackup, L"&ALTCFG=") != NULL)) {
- ConigStringSize = StrSize (AccessResults);
- ConfigStringPtr = StrStr (AccessResultsBackup, L"&GUID=");
+ ConigStringSize = StrSize (AccessResults);
+ ConfigStringPtr = StrStr (AccessResultsBackup, L"&GUID=");
ConigStringSizeNewsize = StrSize (ConfigStringPtr) + ConigStringSize + sizeof (CHAR16);
- AccessResults = (EFI_STRING) ReallocatePool (
- ConigStringSize,
- ConigStringSizeNewsize,
- AccessResults);
+ AccessResults = (EFI_STRING)ReallocatePool (
+ ConigStringSize,
+ ConigStringSizeNewsize,
+ AccessResults
+ );
StrCatS (AccessResults, ConigStringSizeNewsize / sizeof (CHAR16), ConfigStringPtr);
}
} else {
@@ -4903,6 +5062,7 @@ HiiConfigRoutingExtractConfig (
//
Status = EFI_SUCCESS;
}
+
if (AccessResultsBackup != NULL) {
FreePool (AccessResultsBackup);
AccessResultsBackup = NULL;
@@ -4915,7 +5075,7 @@ HiiConfigRoutingExtractConfig (
Status = gBS->HandleProtocol (
DriverHandle,
&gEfiHiiConfigAccessProtocolGuid,
- (VOID **) &ConfigAccess
+ (VOID **)&ConfigAccess
);
if (EFI_ERROR (Status)) {
goto Done;
@@ -4928,6 +5088,7 @@ HiiConfigRoutingExtractConfig (
&AccessResults
);
}
+
if (EFI_ERROR (Status)) {
//
// AccessProgress indicates the parsing progress on <ConfigRequest>.
@@ -4946,7 +5107,7 @@ HiiConfigRoutingExtractConfig (
//
// Update AccessResults by getting default setting from IFR when HiiPackage is registered to HiiHandle
//
- if (!IfrDataParsedFlag && HiiHandle != NULL) {
+ if (!IfrDataParsedFlag && (HiiHandle != NULL)) {
Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, NULL);
ASSERT_EFI_ERROR (Status);
}
@@ -5014,7 +5175,6 @@ Done:
return Status;
}
-
/**
This function allows the caller to request the current configuration for the
entirety of the current HII database and returns the data in a
@@ -5044,27 +5204,27 @@ HiiConfigRoutingExportConfig (
OUT EFI_STRING *Results
)
{
- EFI_STATUS Status;
- EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
- EFI_STRING AccessResults;
- EFI_STRING Progress;
- EFI_STRING StringPtr;
- EFI_STRING ConfigRequest;
- UINTN Index;
- EFI_HANDLE *ConfigAccessHandles;
- UINTN NumberConfigAccessHandles;
- BOOLEAN FirstElement;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_HII_HANDLE HiiHandle;
- EFI_STRING DefaultResults;
- HII_DATABASE_PRIVATE_DATA *Private;
- LIST_ENTRY *Link;
- HII_DATABASE_RECORD *Database;
- UINT8 *DevicePathPkg;
- UINT8 *CurrentDevicePath;
- BOOLEAN IfrDataParsedFlag;
-
- if (This == NULL || Results == NULL) {
+ EFI_STATUS Status;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
+ EFI_STRING AccessResults;
+ EFI_STRING Progress;
+ EFI_STRING StringPtr;
+ EFI_STRING ConfigRequest;
+ UINTN Index;
+ EFI_HANDLE *ConfigAccessHandles;
+ UINTN NumberConfigAccessHandles;
+ BOOLEAN FirstElement;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_HII_HANDLE HiiHandle;
+ EFI_STRING DefaultResults;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ LIST_ENTRY *Link;
+ HII_DATABASE_RECORD *Database;
+ UINT8 *DevicePathPkg;
+ UINT8 *CurrentDevicePath;
+ BOOLEAN IfrDataParsedFlag;
+
+ if ((This == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -5074,19 +5234,19 @@ HiiConfigRoutingExportConfig (
// Allocate a fix length of memory to store Results. Reallocate memory for
// Results if this fix length is insufficient.
//
- *Results = (EFI_STRING) AllocateZeroPool (MAX_STRING_LENGTH);
+ *Results = (EFI_STRING)AllocateZeroPool (MAX_STRING_LENGTH);
if (*Results == NULL) {
return EFI_OUT_OF_RESOURCES;
}
NumberConfigAccessHandles = 0;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiHiiConfigAccessProtocolGuid,
- NULL,
- &NumberConfigAccessHandles,
- &ConfigAccessHandles
- );
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiHiiConfigAccessProtocolGuid,
+ NULL,
+ &NumberConfigAccessHandles,
+ &ConfigAccessHandles
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -5097,7 +5257,7 @@ HiiConfigRoutingExportConfig (
Status = gBS->HandleProtocol (
ConfigAccessHandles[Index],
&gEfiHiiConfigAccessProtocolGuid,
- (VOID **) &ConfigAccess
+ (VOID **)&ConfigAccess
);
if (EFI_ERROR (Status)) {
continue;
@@ -5107,25 +5267,27 @@ HiiConfigRoutingExportConfig (
// Get DevicePath and HiiHandle for this ConfigAccess driver handle
//
IfrDataParsedFlag = FALSE;
- Progress = NULL;
- HiiHandle = NULL;
- DefaultResults = NULL;
- Database = NULL;
- ConfigRequest = NULL;
- DevicePath = DevicePathFromHandle (ConfigAccessHandles[Index]);
+ Progress = NULL;
+ HiiHandle = NULL;
+ DefaultResults = NULL;
+ Database = NULL;
+ ConfigRequest = NULL;
+ DevicePath = DevicePathFromHandle (ConfigAccessHandles[Index]);
if (DevicePath != NULL) {
for (Link = Private->DatabaseList.ForwardLink;
Link != &Private->DatabaseList;
Link = Link->ForwardLink
- ) {
+ )
+ {
Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
if (CompareMem (
DevicePath,
CurrentDevicePath,
- GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath)
- ) == 0) {
+ GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath)
+ ) == 0)
+ {
HiiHandle = Database->Handle;
break;
}
@@ -5143,13 +5305,13 @@ HiiConfigRoutingExportConfig (
//
// Update AccessResults by getting default setting from IFR when HiiPackage is registered to HiiHandle
//
- if (HiiHandle != NULL && DevicePath != NULL) {
+ if ((HiiHandle != NULL) && (DevicePath != NULL)) {
IfrDataParsedFlag = TRUE;
- Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, NULL);
+ Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &ConfigRequest, &DefaultResults, NULL);
//
// Get the full request string to get the Current setting again.
//
- if (!EFI_ERROR (Status) && ConfigRequest != NULL) {
+ if (!EFI_ERROR (Status) && (ConfigRequest != NULL)) {
Status = ConfigAccess->ExtractConfig (
ConfigAccess,
ConfigRequest,
@@ -5167,19 +5329,22 @@ HiiConfigRoutingExportConfig (
//
// Update AccessResults by getting default setting from IFR when HiiPackage is registered to HiiHandle
//
- if (!IfrDataParsedFlag && HiiHandle != NULL && DevicePath != NULL) {
+ if (!IfrDataParsedFlag && (HiiHandle != NULL) && (DevicePath != NULL)) {
StringPtr = StrStr (AccessResults, L"&GUID=");
if (StringPtr != NULL) {
*StringPtr = 0;
}
+
if (GetElementsFromRequest (AccessResults)) {
Status = GetFullStringFromHiiFormPackages (Database, DevicePath, &AccessResults, &DefaultResults, NULL);
ASSERT_EFI_ERROR (Status);
}
+
if (StringPtr != NULL) {
*StringPtr = L'&';
}
}
+
//
// Merge the default sting from IFR code into the got setting from driver.
//
@@ -5208,12 +5373,12 @@ HiiConfigRoutingExportConfig (
AccessResults = NULL;
}
}
+
FreePool (ConfigAccessHandles);
return EFI_SUCCESS;
}
-
/**
This function processes the results of processing forms and routes it to the
appropriate handlers or storage.
@@ -5247,25 +5412,25 @@ HiiConfigRoutingRouteConfig (
OUT EFI_STRING *Progress
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_STRING StringPtr;
- EFI_STRING ConfigResp;
- UINTN Length;
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
- LIST_ENTRY *Link;
- HII_DATABASE_RECORD *Database;
- UINT8 *DevicePathPkg;
- UINT8 *CurrentDevicePath;
- EFI_HANDLE DriverHandle;
- EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
- EFI_STRING AccessProgress;
- EFI_IFR_VARSTORE_EFI *EfiVarStoreInfo;
- BOOLEAN IsEfiVarstore;
- UINTN DevicePathSize;
-
- if (This == NULL || Progress == NULL) {
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_STRING StringPtr;
+ EFI_STRING ConfigResp;
+ UINTN Length;
+ EFI_STATUS Status;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ LIST_ENTRY *Link;
+ HII_DATABASE_RECORD *Database;
+ UINT8 *DevicePathPkg;
+ UINT8 *CurrentDevicePath;
+ EFI_HANDLE DriverHandle;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
+ EFI_STRING AccessProgress;
+ EFI_IFR_VARSTORE_EFI *EfiVarStoreInfo;
+ BOOLEAN IsEfiVarstore;
+ UINTN DevicePathSize;
+
+ if ((This == NULL) || (Progress == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -5274,13 +5439,13 @@ HiiConfigRoutingRouteConfig (
return EFI_INVALID_PARAMETER;
}
- Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
- StringPtr = Configuration;
- *Progress = StringPtr;
- Database = NULL;
- AccessProgress = NULL;
- EfiVarStoreInfo= NULL;
- IsEfiVarstore = FALSE;
+ Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ StringPtr = Configuration;
+ *Progress = StringPtr;
+ Database = NULL;
+ AccessProgress = NULL;
+ EfiVarStoreInfo = NULL;
+ IsEfiVarstore = FALSE;
//
// The first element of <MultiConfigResp> should be
@@ -5304,11 +5469,12 @@ HiiConfigRoutingRouteConfig (
//
// Process each <ConfigResp> of <MultiConfigResp>
//
- Length = CalculateConfigStringLen (StringPtr);
+ Length = CalculateConfigStringLen (StringPtr);
ConfigResp = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), StringPtr);
if (ConfigResp == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Append '\0' to the end of ConfigRequest
//
@@ -5317,7 +5483,7 @@ HiiConfigRoutingRouteConfig (
//
// Get the UEFI device path
//
- Status = GetDevicePath (ConfigResp, (UINT8 **) &DevicePath);
+ Status = GetDevicePath (ConfigResp, (UINT8 **)&DevicePath);
if (EFI_ERROR (Status)) {
FreePool (ConfigResp);
return Status;
@@ -5326,17 +5492,18 @@ HiiConfigRoutingRouteConfig (
//
// Find driver which matches the routing data.
//
- DriverHandle = NULL;
+ DriverHandle = NULL;
for (Link = Private->DatabaseList.ForwardLink;
Link != &Private->DatabaseList;
Link = Link->ForwardLink
- ) {
+ )
+ {
Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
- DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);
- if ((CompareMem (DevicePath,CurrentDevicePath,DevicePathSize) == 0) && IsThisPackageList(Database, ConfigResp)) {
+ DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);
+ if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0) && IsThisPackageList (Database, ConfigResp)) {
DriverHandle = Database->DriverHandle;
break;
}
@@ -5348,11 +5515,11 @@ HiiConfigRoutingRouteConfig (
//
if (DriverHandle == NULL) {
TempDevicePath = DevicePath;
- Status = gBS->LocateDevicePath (
- &gEfiDevicePathProtocolGuid,
- &TempDevicePath,
- &DriverHandle
- );
+ Status = gBS->LocateDevicePath (
+ &gEfiDevicePathProtocolGuid,
+ &TempDevicePath,
+ &DriverHandle
+ );
if (EFI_ERROR (Status) || (DriverHandle == NULL)) {
//
// Routing data does not match any known driver.
@@ -5370,7 +5537,7 @@ HiiConfigRoutingRouteConfig (
//
// Check whether this ConfigRequest is search from Efi varstore type storage.
//
- Status = GetVarStoreType(Database, ConfigResp, &IsEfiVarstore, &EfiVarStoreInfo);
+ Status = GetVarStoreType (Database, ConfigResp, &IsEfiVarstore, &EfiVarStoreInfo);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -5379,7 +5546,7 @@ HiiConfigRoutingRouteConfig (
//
// Call the SetVariable function to route settings.
//
- Status = RouteConfigRespForEfiVarStore(This, EfiVarStoreInfo, ConfigResp, &AccessProgress);
+ Status = RouteConfigRespForEfiVarStore (This, EfiVarStoreInfo, ConfigResp, &AccessProgress);
FreePool (EfiVarStoreInfo);
} else {
//
@@ -5388,7 +5555,7 @@ HiiConfigRoutingRouteConfig (
Status = gBS->HandleProtocol (
DriverHandle,
&gEfiHiiConfigAccessProtocolGuid,
- (VOID **) &ConfigAccess
+ (VOID **)&ConfigAccess
);
if (EFI_ERROR (Status)) {
*Progress = StringPtr;
@@ -5402,6 +5569,7 @@ HiiConfigRoutingRouteConfig (
&AccessProgress
);
}
+
if (EFI_ERROR (Status)) {
ASSERT (AccessProgress != NULL);
//
@@ -5427,13 +5595,11 @@ HiiConfigRoutingRouteConfig (
}
StringPtr++;
-
}
return EFI_SUCCESS;
}
-
/**
This helper function is to be called by drivers to map configuration data
stored in byte array ("block") formats such as UEFI Variables into current
@@ -5480,33 +5646,32 @@ HiiBlockToConfig (
OUT EFI_STRING *Progress
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_STRING StringPtr;
- UINTN Length;
- EFI_STATUS Status;
- EFI_STRING TmpPtr;
- UINT8 *TmpBuffer;
- UINTN Offset;
- UINTN Width;
- UINT8 *Value;
- EFI_STRING ValueStr;
- EFI_STRING ConfigElement;
- UINTN Index;
- UINT8 *TemBuffer;
- CHAR16 *TemString;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_STRING StringPtr;
+ UINTN Length;
+ EFI_STATUS Status;
+ EFI_STRING TmpPtr;
+ UINT8 *TmpBuffer;
+ UINTN Offset;
+ UINTN Width;
+ UINT8 *Value;
+ EFI_STRING ValueStr;
+ EFI_STRING ConfigElement;
+ UINTN Index;
+ UINT8 *TemBuffer;
+ CHAR16 *TemString;
TmpBuffer = NULL;
- if (This == NULL || Progress == NULL || Config == NULL) {
+ if ((This == NULL) || (Progress == NULL) || (Config == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (Block == NULL || ConfigRequest == NULL) {
+ if ((Block == NULL) || (ConfigRequest == NULL)) {
*Progress = ConfigRequest;
return EFI_INVALID_PARAMETER;
}
-
Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
ASSERT (Private != NULL);
@@ -5519,7 +5684,7 @@ HiiBlockToConfig (
// Allocate a fix length of memory to store Results. Reallocate memory for
// Results if this fix length is insufficient.
//
- *Config = (EFI_STRING) AllocateZeroPool (MAX_STRING_LENGTH);
+ *Config = (EFI_STRING)AllocateZeroPool (MAX_STRING_LENGTH);
if (*Config == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -5529,29 +5694,33 @@ HiiBlockToConfig (
//
if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {
*Progress = StringPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
+
while (*StringPtr != 0 && StrnCmp (StringPtr, L"PATH=", StrLen (L"PATH=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == 0) {
*Progress = StringPtr - 1;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
while (*StringPtr != L'&' && *StringPtr != 0) {
StringPtr++;
}
+
if (*StringPtr == 0) {
*Progress = StringPtr;
- AppendToMultiString(Config, ConfigRequest);
+ AppendToMultiString (Config, ConfigRequest);
HiiToLower (*Config);
return EFI_SUCCESS;
}
+
//
// Skip '&'
//
@@ -5564,8 +5733,9 @@ HiiBlockToConfig (
if (TemString == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
TemString[StringPtr - ConfigRequest] = '\0';
- AppendToMultiString(Config, TemString);
+ AppendToMultiString (Config, TemString);
FreePool (TemString);
//
@@ -5588,6 +5758,7 @@ HiiBlockToConfig (
*Progress = TmpPtr - 1;
goto Exit;
}
+
Offset = 0;
CopyMem (
&Offset,
@@ -5599,9 +5770,10 @@ HiiBlockToConfig (
StringPtr += Length;
if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {
*Progress = TmpPtr - 1;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
+
StringPtr += StrLen (L"&WIDTH=");
//
@@ -5612,6 +5784,7 @@ HiiBlockToConfig (
*Progress = TmpPtr - 1;
goto Exit;
}
+
Width = 0;
CopyMem (
&Width,
@@ -5621,9 +5794,9 @@ HiiBlockToConfig (
FreePool (TmpBuffer);
StringPtr += Length;
- if (*StringPtr != 0 && *StringPtr != L'&') {
+ if ((*StringPtr != 0) && (*StringPtr != L'&')) {
*Progress = TmpPtr - 1;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
@@ -5632,30 +5805,30 @@ HiiBlockToConfig (
//
if (Offset + Width > BlockSize) {
*Progress = StringPtr;
- Status = EFI_DEVICE_ERROR;
+ Status = EFI_DEVICE_ERROR;
goto Exit;
}
- Value = (UINT8 *) AllocateZeroPool (Width);
+ Value = (UINT8 *)AllocateZeroPool (Width);
if (Value == NULL) {
*Progress = ConfigRequest;
- Status = EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
- CopyMem (Value, (UINT8 *) Block + Offset, Width);
+ CopyMem (Value, (UINT8 *)Block + Offset, Width);
- Length = Width * 2 + 1;
- ValueStr = (EFI_STRING) AllocateZeroPool (Length * sizeof (CHAR16));
+ Length = Width * 2 + 1;
+ ValueStr = (EFI_STRING)AllocateZeroPool (Length * sizeof (CHAR16));
if (ValueStr == NULL) {
*Progress = ConfigRequest;
- Status = EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
TemString = ValueStr;
TemBuffer = Value + Width - 1;
- for (Index = 0; Index < Width; Index ++, TemBuffer --) {
+ for (Index = 0; Index < Width; Index++, TemBuffer--) {
UnicodeValueToStringS (
TemString,
Length * sizeof (CHAR16) - ((UINTN)TemString - (UINTN)ValueStr),
@@ -5672,16 +5845,18 @@ HiiBlockToConfig (
//
// Build a ConfigElement
//
- Length += StringPtr - TmpPtr + 1 + StrLen (L"VALUE=");
- ConfigElement = (EFI_STRING) AllocateZeroPool (Length * sizeof (CHAR16));
+ Length += StringPtr - TmpPtr + 1 + StrLen (L"VALUE=");
+ ConfigElement = (EFI_STRING)AllocateZeroPool (Length * sizeof (CHAR16));
if (ConfigElement == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
CopyMem (ConfigElement, TmpPtr, (StringPtr - TmpPtr + 1) * sizeof (CHAR16));
if (*StringPtr == 0) {
*(ConfigElement + (StringPtr - TmpPtr)) = L'&';
}
+
*(ConfigElement + (StringPtr - TmpPtr) + 1) = 0;
StrCatS (ConfigElement, Length, L"VALUE=");
StrCatS (ConfigElement, Length, ValueStr);
@@ -5691,7 +5866,7 @@ HiiBlockToConfig (
FreePool (ConfigElement);
FreePool (ValueStr);
ConfigElement = NULL;
- ValueStr = NULL;
+ ValueStr = NULL;
//
// If '\0', parsing is finished. Otherwise skip '&' to continue
@@ -5699,14 +5874,14 @@ HiiBlockToConfig (
if (*StringPtr == 0) {
break;
}
+
AppendToMultiString (Config, L"&");
StringPtr++;
-
}
if (*StringPtr != 0) {
*Progress = StringPtr - 1;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
@@ -5716,24 +5891,25 @@ HiiBlockToConfig (
Exit:
if (*Config != NULL) {
- FreePool (*Config);
- *Config = NULL;
+ FreePool (*Config);
+ *Config = NULL;
}
+
if (ValueStr != NULL) {
FreePool (ValueStr);
}
+
if (Value != NULL) {
FreePool (Value);
}
+
if (ConfigElement != NULL) {
FreePool (ConfigElement);
}
return Status;
-
}
-
/**
This helper function is to be called by drivers to map configuration strings
to configurations stored in byte array ("block") formats such as UEFI Variables.
@@ -5784,28 +5960,28 @@ Exit:
EFI_STATUS
EFIAPI
HiiConfigToBlock (
- IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
- IN CONST EFI_STRING ConfigResp,
- IN OUT UINT8 *Block,
- IN OUT UINTN *BlockSize,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
+ IN CONST EFI_STRING ConfigResp,
+ IN OUT UINT8 *Block,
+ IN OUT UINTN *BlockSize,
+ OUT EFI_STRING *Progress
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_STRING StringPtr;
- EFI_STRING TmpPtr;
- UINTN Length;
- EFI_STATUS Status;
- UINT8 *TmpBuffer;
- UINTN Offset;
- UINTN Width;
- UINT8 *Value;
- UINTN BufferSize;
- UINTN MaxBlockSize;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_STRING StringPtr;
+ EFI_STRING TmpPtr;
+ UINTN Length;
+ EFI_STATUS Status;
+ UINT8 *TmpBuffer;
+ UINTN Offset;
+ UINTN Width;
+ UINT8 *Value;
+ UINTN BufferSize;
+ UINTN MaxBlockSize;
TmpBuffer = NULL;
- if (This == NULL || BlockSize == NULL || Progress == NULL) {
+ if ((This == NULL) || (BlockSize == NULL) || (Progress == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -5817,9 +5993,9 @@ HiiConfigToBlock (
Private = CONFIG_ROUTING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
ASSERT (Private != NULL);
- StringPtr = ConfigResp;
- BufferSize = *BlockSize;
- Value = NULL;
+ StringPtr = ConfigResp;
+ BufferSize = *BlockSize;
+ Value = NULL;
MaxBlockSize = 0;
//
@@ -5827,24 +6003,27 @@ HiiConfigToBlock (
//
if (StrnCmp (StringPtr, L"GUID=", StrLen (L"GUID=")) != 0) {
*Progress = StringPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
+
while (*StringPtr != 0 && StrnCmp (StringPtr, L"PATH=", StrLen (L"PATH=")) != 0) {
StringPtr++;
}
+
if (*StringPtr == 0) {
*Progress = StringPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
while (*StringPtr != L'&' && *StringPtr != 0) {
StringPtr++;
}
+
if (*StringPtr == 0) {
*Progress = StringPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
@@ -5864,6 +6043,7 @@ HiiConfigToBlock (
*Progress = TmpPtr;
goto Exit;
}
+
Offset = 0;
CopyMem (
&Offset,
@@ -5875,9 +6055,10 @@ HiiConfigToBlock (
StringPtr += Length;
if (StrnCmp (StringPtr, L"&WIDTH=", StrLen (L"&WIDTH=")) != 0) {
*Progress = TmpPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
+
StringPtr += StrLen (L"&WIDTH=");
//
@@ -5888,6 +6069,7 @@ HiiConfigToBlock (
*Progress = TmpPtr;
goto Exit;
}
+
Width = 0;
CopyMem (
&Width,
@@ -5899,9 +6081,10 @@ HiiConfigToBlock (
StringPtr += Length;
if (StrnCmp (StringPtr, L"&VALUE=", StrLen (L"&VALUE=")) != 0) {
*Progress = TmpPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
+
StringPtr += StrLen (L"&VALUE=");
//
@@ -5914,9 +6097,9 @@ HiiConfigToBlock (
}
StringPtr += Length;
- if (*StringPtr != 0 && *StringPtr != L'&') {
+ if ((*StringPtr != 0) && (*StringPtr != L'&')) {
*Progress = TmpPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
@@ -5926,6 +6109,7 @@ HiiConfigToBlock (
if ((Block != NULL) && (Offset + Width <= BufferSize)) {
CopyMem (Block + Offset, Value, Width);
}
+
if (Offset + Width > MaxBlockSize) {
MaxBlockSize = Offset + Width;
}
@@ -5946,11 +6130,11 @@ HiiConfigToBlock (
//
if (*StringPtr != 0) {
*Progress = StringPtr;
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_INVALID_PARAMETER;
goto Exit;
}
- *Progress = StringPtr + StrLen (StringPtr);
+ *Progress = StringPtr + StrLen (StringPtr);
*BlockSize = MaxBlockSize - 1;
if (MaxBlockSize > BufferSize) {
@@ -5972,10 +6156,10 @@ Exit:
if (Value != NULL) {
FreePool (Value);
}
+
return Status;
}
-
/**
This helper function is to be called by drivers to extract portions of
a larger configuration string.
@@ -6019,29 +6203,29 @@ Exit:
EFI_STATUS
EFIAPI
HiiGetAltCfg (
- IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- IN CONST EFI_GUID *Guid,
- IN CONST EFI_STRING Name,
- IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN CONST UINT16 *AltCfgId,
- OUT EFI_STRING *AltCfgResp
+ IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ IN CONST EFI_GUID *Guid,
+ IN CONST EFI_STRING Name,
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN CONST UINT16 *AltCfgId,
+ OUT EFI_STRING *AltCfgResp
)
{
- EFI_STATUS Status;
- EFI_STRING StringPtr;
- EFI_STRING HdrStart;
- EFI_STRING HdrEnd;
- EFI_STRING TmpPtr;
- UINTN Length;
- EFI_STRING GuidStr;
- EFI_STRING NameStr;
- EFI_STRING PathStr;
- EFI_STRING AltIdStr;
- EFI_STRING Result;
- BOOLEAN GuidFlag;
- BOOLEAN NameFlag;
- BOOLEAN PathFlag;
+ EFI_STATUS Status;
+ EFI_STRING StringPtr;
+ EFI_STRING HdrStart;
+ EFI_STRING HdrEnd;
+ EFI_STRING TmpPtr;
+ UINTN Length;
+ EFI_STRING GuidStr;
+ EFI_STRING NameStr;
+ EFI_STRING PathStr;
+ EFI_STRING AltIdStr;
+ EFI_STRING Result;
+ BOOLEAN GuidFlag;
+ BOOLEAN NameFlag;
+ BOOLEAN PathFlag;
HdrStart = NULL;
HdrEnd = NULL;
@@ -6054,7 +6238,7 @@ HiiGetAltCfg (
NameFlag = FALSE;
PathFlag = FALSE;
- if (This == NULL || Configuration == NULL || AltCfgResp == NULL) {
+ if ((This == NULL) || (Configuration == NULL) || (AltCfgResp == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -6066,19 +6250,20 @@ HiiGetAltCfg (
//
// Generate the sub string for later matching.
//
- GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *) Guid, 1, &GuidStr);
+ GenerateSubStr (L"GUID=", sizeof (EFI_GUID), (VOID *)Guid, 1, &GuidStr);
GenerateSubStr (
L"PATH=",
- GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DevicePath),
- (VOID *) DevicePath,
+ GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DevicePath),
+ (VOID *)DevicePath,
1,
&PathStr
);
if (AltCfgId != NULL) {
- GenerateSubStr (L"ALTCFG=", sizeof (UINT16), (VOID *) AltCfgId, 3, &AltIdStr);
+ GenerateSubStr (L"ALTCFG=", sizeof (UINT16), (VOID *)AltCfgId, 3, &AltIdStr);
}
+
if (Name != NULL) {
- GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *) Name, 2, &NameStr);
+ GenerateSubStr (L"NAME=", StrLen (Name) * sizeof (CHAR16), (VOID *)Name, 2, &NameStr);
} else {
GenerateSubStr (L"NAME=", 0, NULL, 2, &NameStr);
}
@@ -6093,6 +6278,7 @@ HiiGetAltCfg (
Status = EFI_NOT_FOUND;
goto Exit;
}
+
HdrStart = TmpPtr;
//
@@ -6107,6 +6293,7 @@ HiiGetAltCfg (
goto Exit;
}
}
+
GuidFlag = TRUE;
}
@@ -6129,6 +6316,7 @@ HiiGetAltCfg (
goto Exit;
}
}
+
NameFlag = TRUE;
}
}
@@ -6152,8 +6340,10 @@ HiiGetAltCfg (
Status = EFI_NOT_FOUND;
goto Exit;
}
- StringPtr ++;
+
+ StringPtr++;
}
+
PathFlag = TRUE;
HdrEnd = StringPtr;
}
@@ -6170,6 +6360,7 @@ HiiGetAltCfg (
Status = OutputConfigBody (StringPtr, &Result);
goto Exit;
}
+
//
// Search the <ConfigAltResp> to get the <AltResp> with AltCfgId.
//
@@ -6196,7 +6387,7 @@ Exit:
//
// Copy the <ConfigHdr> and <ConfigBody>
//
- Length = HdrEnd - HdrStart + StrLen (Result) + 1;
+ Length = HdrEnd - HdrStart + StrLen (Result) + 1;
*AltCfgResp = AllocateZeroPool (Length * sizeof (CHAR16));
if (*AltCfgResp == NULL) {
Status = EFI_OUT_OF_RESOURCES;
@@ -6210,21 +6401,22 @@ Exit:
if (GuidStr != NULL) {
FreePool (GuidStr);
}
+
if (NameStr != NULL) {
FreePool (NameStr);
}
+
if (PathStr != NULL) {
FreePool (PathStr);
}
+
if (AltIdStr != NULL) {
FreePool (AltIdStr);
}
+
if (Result != NULL) {
FreePool (Result);
}
return Status;
-
}
-
-
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
index 7835802..0b09c24 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
@@ -6,24 +6,23 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
-#define BASE_NUMBER 10
+#define BASE_NUMBER 10
-EFI_HII_PACKAGE_LIST_HEADER *gRTDatabaseInfoBuffer = NULL;
-EFI_STRING gRTConfigRespBuffer = NULL;
-UINTN gDatabaseInfoSize = 0;
-UINTN gConfigRespSize = 0;
-BOOLEAN gExportConfigResp = FALSE;
-UINTN gNvDefaultStoreSize = 0;
-SKU_ID gSkuId = 0xFFFFFFFFFFFFFFFF;
-LIST_ENTRY gVarStorageList = INITIALIZE_LIST_HEAD_VARIABLE (gVarStorageList);
+EFI_HII_PACKAGE_LIST_HEADER *gRTDatabaseInfoBuffer = NULL;
+EFI_STRING gRTConfigRespBuffer = NULL;
+UINTN gDatabaseInfoSize = 0;
+UINTN gConfigRespSize = 0;
+BOOLEAN gExportConfigResp = FALSE;
+UINTN gNvDefaultStoreSize = 0;
+SKU_ID gSkuId = 0xFFFFFFFFFFFFFFFF;
+LIST_ENTRY gVarStorageList = INITIALIZE_LIST_HEAD_VARIABLE (gVarStorageList);
//
// HII database lock.
//
-EFI_LOCK mHiiDatabaseLock = EFI_INITIALIZE_LOCK_VARIABLE(TPL_NOTIFY);
+EFI_LOCK mHiiDatabaseLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);
/**
This function generates a HII_DATABASE_RECORD node and adds into hii database.
@@ -41,22 +40,23 @@ EFI_LOCK mHiiDatabaseLock = EFI_INITIALIZE_LOCK_VARIABLE(TPL_NOTIFY);
**/
EFI_STATUS
GenerateHiiDatabaseRecord (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- OUT HII_DATABASE_RECORD **DatabaseNode
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ OUT HII_DATABASE_RECORD **DatabaseNode
)
{
- HII_DATABASE_RECORD *DatabaseRecord;
- HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
- HII_HANDLE *HiiHandle;
+ HII_DATABASE_RECORD *DatabaseRecord;
+ HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
+ HII_HANDLE *HiiHandle;
- if (Private == NULL || DatabaseNode == NULL) {
+ if ((Private == NULL) || (DatabaseNode == NULL)) {
return EFI_INVALID_PARAMETER;
}
- DatabaseRecord = (HII_DATABASE_RECORD *) AllocateZeroPool (sizeof (HII_DATABASE_RECORD));
+ DatabaseRecord = (HII_DATABASE_RECORD *)AllocateZeroPool (sizeof (HII_DATABASE_RECORD));
if (DatabaseRecord == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
DatabaseRecord->Signature = HII_DATABASE_RECORD_SIGNATURE;
DatabaseRecord->PackageList = AllocateZeroPool (sizeof (HII_DATABASE_PACKAGE_LIST_INSTANCE));
@@ -79,24 +79,25 @@ GenerateHiiDatabaseRecord (
//
// Create a new hii handle
//
- HiiHandle = (HII_HANDLE *) AllocateZeroPool (sizeof (HII_HANDLE));
+ HiiHandle = (HII_HANDLE *)AllocateZeroPool (sizeof (HII_HANDLE));
if (HiiHandle == NULL) {
FreePool (DatabaseRecord->PackageList);
FreePool (DatabaseRecord);
return EFI_OUT_OF_RESOURCES;
}
+
HiiHandle->Signature = HII_HANDLE_SIGNATURE;
//
// Backup the number of Hii handles
//
Private->HiiHandleCount++;
- HiiHandle->Key = (UINTN) Private->HiiHandleCount;
+ HiiHandle->Key = (UINTN)Private->HiiHandleCount;
//
// Insert the handle to hii handle list of the whole database.
//
InsertTailList (&Private->HiiHandleList, &HiiHandle->Handle);
- DatabaseRecord->Handle = (EFI_HII_HANDLE) HiiHandle;
+ DatabaseRecord->Handle = (EFI_HII_HANDLE)HiiHandle;
//
// Insert the Package List node to Package List link of the whole database.
@@ -106,10 +107,8 @@ GenerateHiiDatabaseRecord (
*DatabaseNode = DatabaseRecord;
return EFI_SUCCESS;
-
}
-
/**
This function checks whether a handle is a valid EFI_HII_HANDLE
This is a internal function.
@@ -122,12 +121,12 @@ GenerateHiiDatabaseRecord (
**/
BOOLEAN
IsHiiHandleValid (
- EFI_HII_HANDLE Handle
+ EFI_HII_HANDLE Handle
)
{
- HII_HANDLE *HiiHandle;
+ HII_HANDLE *HiiHandle;
- HiiHandle = (HII_HANDLE *) Handle;
+ HiiHandle = (HII_HANDLE *)Handle;
if (HiiHandle == NULL) {
return FALSE;
@@ -140,7 +139,6 @@ IsHiiHandleValid (
return TRUE;
}
-
/**
This function invokes the matching registered function.
This is a internal function.
@@ -160,28 +158,30 @@ IsHiiHandleValid (
**/
EFI_STATUS
InvokeRegisteredFunction (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN VOID *PackageInstance,
- IN UINT8 PackageType,
- IN EFI_HII_HANDLE Handle
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN VOID *PackageInstance,
+ IN UINT8 PackageType,
+ IN EFI_HII_HANDLE Handle
)
{
- HII_DATABASE_NOTIFY *Notify;
- LIST_ENTRY *Link;
- EFI_HII_PACKAGE_HEADER *Package;
- UINT8 *Buffer;
- UINT32 BufferSize;
- UINT32 HeaderSize;
- UINT32 ImageBlockSize;
- UINT32 PaletteInfoSize;
-
- if (Private == NULL || (NotifyType & 0xF) == 0 || PackageInstance == NULL) {
+ HII_DATABASE_NOTIFY *Notify;
+ LIST_ENTRY *Link;
+ EFI_HII_PACKAGE_HEADER *Package;
+ UINT8 *Buffer;
+ UINT32 BufferSize;
+ UINT32 HeaderSize;
+ UINT32 ImageBlockSize;
+ UINT32 PaletteInfoSize;
+
+ if ((Private == NULL) || ((NotifyType & 0xF) == 0) || (PackageInstance == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if (Private->Signature != HII_DATABASE_PRIVATE_DATA_SIGNATURE) {
return EFI_INVALID_PARAMETER;
}
+
if (!IsHiiHandleValid (Handle)) {
return EFI_INVALID_PARAMETER;
}
@@ -194,152 +194,155 @@ InvokeRegisteredFunction (
// storage format. e.g. HII_GUID_PACKAGE_INSTANCE to EFI_HII_GUID_PACKAGE_HDR.
//
switch (PackageType) {
- case EFI_HII_PACKAGE_TYPE_GUID:
- Package = (EFI_HII_PACKAGE_HEADER *) (((HII_GUID_PACKAGE_INSTANCE *) PackageInstance)->GuidPkg);
- break;
-
- case EFI_HII_PACKAGE_FORMS:
- BufferSize = ((HII_IFR_PACKAGE_INSTANCE *) PackageInstance)->FormPkgHdr.Length;
- Buffer = (UINT8 *) AllocateZeroPool (BufferSize);
- ASSERT (Buffer != NULL);
- CopyMem (
- Buffer,
- &((HII_IFR_PACKAGE_INSTANCE *) PackageInstance)->FormPkgHdr,
- sizeof (EFI_HII_PACKAGE_HEADER)
- );
- CopyMem (
- Buffer + sizeof (EFI_HII_PACKAGE_HEADER),
- ((HII_IFR_PACKAGE_INSTANCE *) PackageInstance)->IfrData,
- BufferSize - sizeof (EFI_HII_PACKAGE_HEADER)
- );
- Package = (EFI_HII_PACKAGE_HEADER *) Buffer;
- break;
-
- case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
- Package = (EFI_HII_PACKAGE_HEADER *) (((HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *) PackageInstance)->KeyboardPkg);
- break;
-
- case EFI_HII_PACKAGE_STRINGS:
- BufferSize = ((HII_STRING_PACKAGE_INSTANCE *) PackageInstance)->StringPkgHdr->Header.Length;
- HeaderSize = ((HII_STRING_PACKAGE_INSTANCE *) PackageInstance)->StringPkgHdr->HdrSize;
- Buffer = (UINT8 *) AllocateZeroPool (BufferSize);
- ASSERT (Buffer != NULL);
- CopyMem (
- Buffer,
- ((HII_STRING_PACKAGE_INSTANCE *) PackageInstance)->StringPkgHdr,
- HeaderSize
- );
- CopyMem (
- Buffer + HeaderSize,
- ((HII_STRING_PACKAGE_INSTANCE *) PackageInstance)->StringBlock,
- BufferSize - HeaderSize
- );
- Package = (EFI_HII_PACKAGE_HEADER *) Buffer;
- break;
-
- case EFI_HII_PACKAGE_FONTS:
- BufferSize = ((HII_FONT_PACKAGE_INSTANCE *) PackageInstance)->FontPkgHdr->Header.Length;
- HeaderSize = ((HII_FONT_PACKAGE_INSTANCE *) PackageInstance)->FontPkgHdr->HdrSize;
- Buffer = (UINT8 *) AllocateZeroPool (BufferSize);
- ASSERT (Buffer != NULL);
- CopyMem (
- Buffer,
- ((HII_FONT_PACKAGE_INSTANCE *) PackageInstance)->FontPkgHdr,
- HeaderSize
- );
- CopyMem (
- Buffer + HeaderSize,
- ((HII_FONT_PACKAGE_INSTANCE *) PackageInstance)->GlyphBlock,
- BufferSize - HeaderSize
- );
- Package = (EFI_HII_PACKAGE_HEADER *) Buffer;
- break;
+ case EFI_HII_PACKAGE_TYPE_GUID:
+ Package = (EFI_HII_PACKAGE_HEADER *)(((HII_GUID_PACKAGE_INSTANCE *)PackageInstance)->GuidPkg);
+ break;
- case EFI_HII_PACKAGE_IMAGES:
- BufferSize = ((HII_IMAGE_PACKAGE_INSTANCE *) PackageInstance)->ImagePkgHdr.Header.Length;
- HeaderSize = sizeof (EFI_HII_IMAGE_PACKAGE_HDR);
- Buffer = (UINT8 *) AllocateZeroPool (BufferSize);
- ASSERT (Buffer != NULL);
+ case EFI_HII_PACKAGE_FORMS:
+ BufferSize = ((HII_IFR_PACKAGE_INSTANCE *)PackageInstance)->FormPkgHdr.Length;
+ Buffer = (UINT8 *)AllocateZeroPool (BufferSize);
+ ASSERT (Buffer != NULL);
+ CopyMem (
+ Buffer,
+ &((HII_IFR_PACKAGE_INSTANCE *)PackageInstance)->FormPkgHdr,
+ sizeof (EFI_HII_PACKAGE_HEADER)
+ );
+ CopyMem (
+ Buffer + sizeof (EFI_HII_PACKAGE_HEADER),
+ ((HII_IFR_PACKAGE_INSTANCE *)PackageInstance)->IfrData,
+ BufferSize - sizeof (EFI_HII_PACKAGE_HEADER)
+ );
+ Package = (EFI_HII_PACKAGE_HEADER *)Buffer;
+ break;
- CopyMem (
- Buffer,
- &((HII_IMAGE_PACKAGE_INSTANCE *) PackageInstance)->ImagePkgHdr,
- HeaderSize
- );
- CopyMem (
- Buffer + sizeof (EFI_HII_PACKAGE_HEADER),
- &HeaderSize,
- sizeof (UINT32)
- );
+ case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
+ Package = (EFI_HII_PACKAGE_HEADER *)(((HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *)PackageInstance)->KeyboardPkg);
+ break;
- ImageBlockSize = ((HII_IMAGE_PACKAGE_INSTANCE *) PackageInstance)->ImageBlockSize;
- if (ImageBlockSize != 0) {
+ case EFI_HII_PACKAGE_STRINGS:
+ BufferSize = ((HII_STRING_PACKAGE_INSTANCE *)PackageInstance)->StringPkgHdr->Header.Length;
+ HeaderSize = ((HII_STRING_PACKAGE_INSTANCE *)PackageInstance)->StringPkgHdr->HdrSize;
+ Buffer = (UINT8 *)AllocateZeroPool (BufferSize);
+ ASSERT (Buffer != NULL);
+ CopyMem (
+ Buffer,
+ ((HII_STRING_PACKAGE_INSTANCE *)PackageInstance)->StringPkgHdr,
+ HeaderSize
+ );
CopyMem (
Buffer + HeaderSize,
- ((HII_IMAGE_PACKAGE_INSTANCE *) PackageInstance)->ImageBlock,
- ImageBlockSize
+ ((HII_STRING_PACKAGE_INSTANCE *)PackageInstance)->StringBlock,
+ BufferSize - HeaderSize
);
- }
+ Package = (EFI_HII_PACKAGE_HEADER *)Buffer;
+ break;
- PaletteInfoSize = ((HII_IMAGE_PACKAGE_INSTANCE *) PackageInstance)->PaletteInfoSize;
- if (PaletteInfoSize != 0) {
+ case EFI_HII_PACKAGE_FONTS:
+ BufferSize = ((HII_FONT_PACKAGE_INSTANCE *)PackageInstance)->FontPkgHdr->Header.Length;
+ HeaderSize = ((HII_FONT_PACKAGE_INSTANCE *)PackageInstance)->FontPkgHdr->HdrSize;
+ Buffer = (UINT8 *)AllocateZeroPool (BufferSize);
+ ASSERT (Buffer != NULL);
CopyMem (
- Buffer + HeaderSize + ImageBlockSize,
- ((HII_IMAGE_PACKAGE_INSTANCE *) PackageInstance)->PaletteBlock,
- PaletteInfoSize
+ Buffer,
+ ((HII_FONT_PACKAGE_INSTANCE *)PackageInstance)->FontPkgHdr,
+ HeaderSize
);
- HeaderSize += ImageBlockSize;
CopyMem (
- Buffer + sizeof (EFI_HII_PACKAGE_HEADER) + sizeof (UINT32),
+ Buffer + HeaderSize,
+ ((HII_FONT_PACKAGE_INSTANCE *)PackageInstance)->GlyphBlock,
+ BufferSize - HeaderSize
+ );
+ Package = (EFI_HII_PACKAGE_HEADER *)Buffer;
+ break;
+
+ case EFI_HII_PACKAGE_IMAGES:
+ BufferSize = ((HII_IMAGE_PACKAGE_INSTANCE *)PackageInstance)->ImagePkgHdr.Header.Length;
+ HeaderSize = sizeof (EFI_HII_IMAGE_PACKAGE_HDR);
+ Buffer = (UINT8 *)AllocateZeroPool (BufferSize);
+ ASSERT (Buffer != NULL);
+
+ CopyMem (
+ Buffer,
+ &((HII_IMAGE_PACKAGE_INSTANCE *)PackageInstance)->ImagePkgHdr,
+ HeaderSize
+ );
+ CopyMem (
+ Buffer + sizeof (EFI_HII_PACKAGE_HEADER),
&HeaderSize,
sizeof (UINT32)
);
- }
- Package = (EFI_HII_PACKAGE_HEADER *) Buffer;
- break;
- case EFI_HII_PACKAGE_SIMPLE_FONTS:
- BufferSize = ((HII_SIMPLE_FONT_PACKAGE_INSTANCE *) PackageInstance)->SimpleFontPkgHdr->Header.Length;
- Buffer = (UINT8 *) AllocateZeroPool (BufferSize);
- ASSERT (Buffer != NULL);
- CopyMem (
- Buffer,
- ((HII_SIMPLE_FONT_PACKAGE_INSTANCE *) PackageInstance)->SimpleFontPkgHdr,
- BufferSize
- );
- Package = (EFI_HII_PACKAGE_HEADER *) Buffer;
- break;
+ ImageBlockSize = ((HII_IMAGE_PACKAGE_INSTANCE *)PackageInstance)->ImageBlockSize;
+ if (ImageBlockSize != 0) {
+ CopyMem (
+ Buffer + HeaderSize,
+ ((HII_IMAGE_PACKAGE_INSTANCE *)PackageInstance)->ImageBlock,
+ ImageBlockSize
+ );
+ }
- case EFI_HII_PACKAGE_DEVICE_PATH:
- Package = (EFI_HII_PACKAGE_HEADER *) PackageInstance;
- break;
+ PaletteInfoSize = ((HII_IMAGE_PACKAGE_INSTANCE *)PackageInstance)->PaletteInfoSize;
+ if (PaletteInfoSize != 0) {
+ CopyMem (
+ Buffer + HeaderSize + ImageBlockSize,
+ ((HII_IMAGE_PACKAGE_INSTANCE *)PackageInstance)->PaletteBlock,
+ PaletteInfoSize
+ );
+ HeaderSize += ImageBlockSize;
+ CopyMem (
+ Buffer + sizeof (EFI_HII_PACKAGE_HEADER) + sizeof (UINT32),
+ &HeaderSize,
+ sizeof (UINT32)
+ );
+ }
- default:
- return EFI_INVALID_PARAMETER;
+ Package = (EFI_HII_PACKAGE_HEADER *)Buffer;
+ break;
+
+ case EFI_HII_PACKAGE_SIMPLE_FONTS:
+ BufferSize = ((HII_SIMPLE_FONT_PACKAGE_INSTANCE *)PackageInstance)->SimpleFontPkgHdr->Header.Length;
+ Buffer = (UINT8 *)AllocateZeroPool (BufferSize);
+ ASSERT (Buffer != NULL);
+ CopyMem (
+ Buffer,
+ ((HII_SIMPLE_FONT_PACKAGE_INSTANCE *)PackageInstance)->SimpleFontPkgHdr,
+ BufferSize
+ );
+ Package = (EFI_HII_PACKAGE_HEADER *)Buffer;
+ break;
+
+ case EFI_HII_PACKAGE_DEVICE_PATH:
+ Package = (EFI_HII_PACKAGE_HEADER *)PackageInstance;
+ break;
+
+ default:
+ return EFI_INVALID_PARAMETER;
}
for (Link = Private->DatabaseNotifyList.ForwardLink;
Link != &Private->DatabaseNotifyList;
Link = Link->ForwardLink
- ) {
+ )
+ {
Notify = CR (Link, HII_DATABASE_NOTIFY, DatabaseNotifyEntry, HII_DATABASE_NOTIFY_SIGNATURE);
- if (Notify->NotifyType == NotifyType && Notify->PackageType == PackageType) {
+ if ((Notify->NotifyType == NotifyType) && (Notify->PackageType == PackageType)) {
//
// Check in case PackageGuid is not NULL when Package is GUID package
//
if (PackageType != EFI_HII_PACKAGE_TYPE_GUID) {
Notify->PackageGuid = NULL;
}
+
//
// Status of Registered Function is unknown so did not check it
//
Notify->PackageNotifyFn (
- Notify->PackageType,
- Notify->PackageGuid,
- Package,
- Handle,
- NotifyType
- );
+ Notify->PackageType,
+ Notify->PackageGuid,
+ Package,
+ Handle,
+ NotifyType
+ );
}
}
@@ -350,7 +353,6 @@ InvokeRegisteredFunction (
return EFI_SUCCESS;
}
-
/**
This function insert a GUID package to a package list node.
This is a internal function.
@@ -370,16 +372,16 @@ InvokeRegisteredFunction (
**/
EFI_STATUS
InsertGuidPackage (
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_GUID_PACKAGE_INSTANCE **Package
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_GUID_PACKAGE_INSTANCE **Package
)
{
- HII_GUID_PACKAGE_INSTANCE *GuidPackage;
- EFI_HII_PACKAGE_HEADER PackageHeader;
+ HII_GUID_PACKAGE_INSTANCE *GuidPackage;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
- if (PackageHdr == NULL || PackageList == NULL) {
+ if ((PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -388,11 +390,12 @@ InsertGuidPackage (
//
// Create a GUID package node
//
- GuidPackage = (HII_GUID_PACKAGE_INSTANCE *) AllocateZeroPool (sizeof (HII_GUID_PACKAGE_INSTANCE));
+ GuidPackage = (HII_GUID_PACKAGE_INSTANCE *)AllocateZeroPool (sizeof (HII_GUID_PACKAGE_INSTANCE));
if (GuidPackage == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- GuidPackage->GuidPkg = (UINT8 *) AllocateZeroPool (PackageHeader.Length);
+
+ GuidPackage->GuidPkg = (UINT8 *)AllocateZeroPool (PackageHeader.Length);
if (GuidPackage->GuidPkg == NULL) {
FreePool (GuidPackage);
return EFI_OUT_OF_RESOURCES;
@@ -410,7 +413,6 @@ InsertGuidPackage (
return EFI_SUCCESS;
}
-
/**
This function exports GUID packages to a buffer.
This is a internal function.
@@ -430,26 +432,26 @@ InsertGuidPackage (
**/
EFI_STATUS
ExportGuidPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
- HII_GUID_PACKAGE_INSTANCE *GuidPackage;
- LIST_ENTRY *Link;
- UINTN PackageLength;
- EFI_HII_PACKAGE_HEADER PackageHeader;
- EFI_STATUS Status;
+ HII_GUID_PACKAGE_INSTANCE *GuidPackage;
+ LIST_ENTRY *Link;
+ UINTN PackageLength;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
+ EFI_STATUS Status;
- if (PackageList == NULL || ResultSize == NULL) {
+ if ((PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -464,13 +466,13 @@ ExportGuidPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) GuidPackage,
+ (VOID *)GuidPackage,
EFI_HII_PACKAGE_TYPE_GUID,
Handle
);
ASSERT_EFI_ERROR (Status);
CopyMem (Buffer, GuidPackage->GuidPkg, PackageHeader.Length);
- Buffer = (UINT8 *) Buffer + PackageHeader.Length;
+ Buffer = (UINT8 *)Buffer + PackageHeader.Length;
}
}
@@ -478,7 +480,6 @@ ExportGuidPackages (
return EFI_SUCCESS;
}
-
/**
This function deletes all GUID packages from a package list node.
This is a internal function.
@@ -495,15 +496,15 @@ ExportGuidPackages (
**/
EFI_STATUS
RemoveGuidPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- LIST_ENTRY *ListHead;
- HII_GUID_PACKAGE_INSTANCE *Package;
- EFI_STATUS Status;
- EFI_HII_PACKAGE_HEADER PackageHeader;
+ LIST_ENTRY *ListHead;
+ HII_GUID_PACKAGE_INSTANCE *Package;
+ EFI_STATUS Status;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
ListHead = &PackageList->GuidPkgHdr;
@@ -517,7 +518,7 @@ RemoveGuidPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_TYPE_GUID,
Handle
);
@@ -547,13 +548,14 @@ RemoveGuidPackages (
**/
UINTN
IsEfiVarStoreQuestion (
- EFI_IFR_QUESTION_HEADER *IfrQuestionHdr,
- EFI_IFR_VARSTORE_EFI **EfiVarStoreList,
- UINTN EfiVarStoreNumber
+ EFI_IFR_QUESTION_HEADER *IfrQuestionHdr,
+ EFI_IFR_VARSTORE_EFI **EfiVarStoreList,
+ UINTN EfiVarStoreNumber
)
{
- UINTN Index;
- for (Index = 0; Index < EfiVarStoreNumber; Index ++) {
+ UINTN Index;
+
+ for (Index = 0; Index < EfiVarStoreNumber; Index++) {
if (IfrQuestionHdr->VarStoreId == EfiVarStoreList[Index]->VarStoreId) {
return Index;
}
@@ -580,20 +582,22 @@ FindVariableData (
IN CHAR16 *VarName
)
{
- VARIABLE_HEADER *VariableHeader;
- VARIABLE_HEADER *VariableEnd;
+ VARIABLE_HEADER *VariableHeader;
+ VARIABLE_HEADER *VariableEnd;
- VariableEnd = (VARIABLE_HEADER *) ((UINT8 *) VariableStorage + VariableStorage->Size);
- VariableHeader = (VARIABLE_HEADER *) (VariableStorage + 1);
- VariableHeader = (VARIABLE_HEADER *) HEADER_ALIGN (VariableHeader);
+ VariableEnd = (VARIABLE_HEADER *)((UINT8 *)VariableStorage + VariableStorage->Size);
+ VariableHeader = (VARIABLE_HEADER *)(VariableStorage + 1);
+ VariableHeader = (VARIABLE_HEADER *)HEADER_ALIGN (VariableHeader);
while (VariableHeader < VariableEnd) {
if (CompareGuid (&VariableHeader->VendorGuid, VarGuid) &&
- VariableHeader->Attributes == VarAttribute &&
- StrCmp (VarName, (CHAR16 *) (VariableHeader + 1)) == 0) {
+ (VariableHeader->Attributes == VarAttribute) &&
+ (StrCmp (VarName, (CHAR16 *)(VariableHeader + 1)) == 0))
+ {
return VariableHeader;
}
- VariableHeader = (VARIABLE_HEADER *) ((UINT8 *) VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + VariableHeader->DataSize);
- VariableHeader = (VARIABLE_HEADER *) HEADER_ALIGN (VariableHeader);
+
+ VariableHeader = (VARIABLE_HEADER *)((UINT8 *)VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + VariableHeader->DataSize);
+ VariableHeader = (VARIABLE_HEADER *)HEADER_ALIGN (VariableHeader);
}
return NULL;
@@ -614,33 +618,33 @@ FindVariableData (
**/
EFI_STATUS
FindQuestionDefaultSetting (
- IN UINT16 DefaultId,
- IN EFI_IFR_VARSTORE_EFI *EfiVarStore,
- IN EFI_IFR_QUESTION_HEADER *IfrQuestionHdr,
- OUT VOID *ValueBuffer,
- IN UINTN Width,
- IN BOOLEAN BitFieldQuestion
+ IN UINT16 DefaultId,
+ IN EFI_IFR_VARSTORE_EFI *EfiVarStore,
+ IN EFI_IFR_QUESTION_HEADER *IfrQuestionHdr,
+ OUT VOID *ValueBuffer,
+ IN UINTN Width,
+ IN BOOLEAN BitFieldQuestion
)
{
- VARIABLE_HEADER *VariableHeader;
- VARIABLE_STORE_HEADER *VariableStorage;
- LIST_ENTRY *Link;
- VARSTORAGE_DEFAULT_DATA *Entry;
- VARIABLE_STORE_HEADER *NvStoreBuffer;
- UINT8 *DataBuffer;
- UINT8 *BufferEnd;
- BOOLEAN IsFound;
- UINTN Index;
- UINT32 BufferValue;
- UINT32 BitFieldVal;
- UINTN BitOffset;
- UINTN ByteOffset;
- UINTN BitWidth;
- UINTN StartBit;
- UINTN EndBit;
- PCD_DEFAULT_DATA *DataHeader;
- PCD_DEFAULT_INFO *DefaultInfo;
- PCD_DATA_DELTA *DeltaData;
+ VARIABLE_HEADER *VariableHeader;
+ VARIABLE_STORE_HEADER *VariableStorage;
+ LIST_ENTRY *Link;
+ VARSTORAGE_DEFAULT_DATA *Entry;
+ VARIABLE_STORE_HEADER *NvStoreBuffer;
+ UINT8 *DataBuffer;
+ UINT8 *BufferEnd;
+ BOOLEAN IsFound;
+ UINTN Index;
+ UINT32 BufferValue;
+ UINT32 BitFieldVal;
+ UINTN BitOffset;
+ UINTN ByteOffset;
+ UINTN BitWidth;
+ UINTN StartBit;
+ UINTN EndBit;
+ PCD_DEFAULT_DATA *DataHeader;
+ PCD_DEFAULT_INFO *DefaultInfo;
+ PCD_DATA_DELTA *DeltaData;
if (gSkuId == 0xFFFFFFFFFFFFFFFF) {
gSkuId = LibPcdGetSku ();
@@ -650,68 +654,76 @@ FindQuestionDefaultSetting (
// Find the DefaultId setting from the full DefaultSetting
//
VariableStorage = NULL;
- Link = gVarStorageList.ForwardLink;
+ Link = gVarStorageList.ForwardLink;
while (Link != &gVarStorageList) {
Entry = BASE_CR (Link, VARSTORAGE_DEFAULT_DATA, Entry);
if (Entry->DefaultId == DefaultId) {
VariableStorage = Entry->VariableStorage;
break;
}
+
Link = Link->ForwardLink;
}
if (Link == &gVarStorageList) {
- DataBuffer = (UINT8 *) PcdGetPtr (PcdNvStoreDefaultValueBuffer);
+ DataBuffer = (UINT8 *)PcdGetPtr (PcdNvStoreDefaultValueBuffer);
gNvDefaultStoreSize = ((PCD_NV_STORE_DEFAULT_BUFFER_HEADER *)DataBuffer)->Length;
//
// The first section data includes NV storage default setting.
//
- DataHeader = (PCD_DEFAULT_DATA *) (DataBuffer + sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER));
- NvStoreBuffer = (VARIABLE_STORE_HEADER *) ((UINT8 *) DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize);
- VariableStorage = AllocatePool (NvStoreBuffer->Size);
+ DataHeader = (PCD_DEFAULT_DATA *)(DataBuffer + sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER));
+ NvStoreBuffer = (VARIABLE_STORE_HEADER *)((UINT8 *)DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize);
+ VariableStorage = AllocatePool (NvStoreBuffer->Size);
ASSERT (VariableStorage != NULL);
CopyMem (VariableStorage, NvStoreBuffer, NvStoreBuffer->Size);
//
// Find the matched SkuId and DefaultId in the first section
//
- IsFound = FALSE;
- DefaultInfo = &(DataHeader->DefaultInfo[0]);
- BufferEnd = (UINT8 *) DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
- while ((UINT8 *) DefaultInfo < BufferEnd) {
- if (DefaultInfo->DefaultId == DefaultId && DefaultInfo->SkuId == gSkuId) {
+ IsFound = FALSE;
+ DefaultInfo = &(DataHeader->DefaultInfo[0]);
+ BufferEnd = (UINT8 *)DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
+ while ((UINT8 *)DefaultInfo < BufferEnd) {
+ if ((DefaultInfo->DefaultId == DefaultId) && (DefaultInfo->SkuId == gSkuId)) {
IsFound = TRUE;
break;
}
- DefaultInfo ++;
+
+ DefaultInfo++;
}
+
//
// Find the matched SkuId and DefaultId in the remaining section
//
- Index = sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER) + ((DataHeader->DataSize + 7) & (~7));
- DataHeader = (PCD_DEFAULT_DATA *) (DataBuffer + Index);
+ Index = sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER) + ((DataHeader->DataSize + 7) & (~7));
+ DataHeader = (PCD_DEFAULT_DATA *)(DataBuffer + Index);
while (!IsFound && Index < gNvDefaultStoreSize && DataHeader->DataSize != 0xFFFF) {
DefaultInfo = &(DataHeader->DefaultInfo[0]);
- BufferEnd = (UINT8 *) DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
- while ((UINT8 *) DefaultInfo < BufferEnd) {
- if (DefaultInfo->DefaultId == DefaultId && DefaultInfo->SkuId == gSkuId) {
+ BufferEnd = (UINT8 *)DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
+ while ((UINT8 *)DefaultInfo < BufferEnd) {
+ if ((DefaultInfo->DefaultId == DefaultId) && (DefaultInfo->SkuId == gSkuId)) {
IsFound = TRUE;
break;
}
- DefaultInfo ++;
+
+ DefaultInfo++;
}
+
if (IsFound) {
- DeltaData = (PCD_DATA_DELTA *) BufferEnd;
- BufferEnd = (UINT8 *) DataHeader + DataHeader->DataSize;
- while ((UINT8 *) DeltaData < BufferEnd) {
- *((UINT8 *) VariableStorage + DeltaData->Offset) = (UINT8) DeltaData->Value;
- DeltaData ++;
+ DeltaData = (PCD_DATA_DELTA *)BufferEnd;
+ BufferEnd = (UINT8 *)DataHeader + DataHeader->DataSize;
+ while ((UINT8 *)DeltaData < BufferEnd) {
+ *((UINT8 *)VariableStorage + DeltaData->Offset) = (UINT8)DeltaData->Value;
+ DeltaData++;
}
+
break;
}
+
Index = (Index + DataHeader->DataSize + 7) & (~7);
- DataHeader = (PCD_DEFAULT_DATA *) (DataBuffer + Index);
+ DataHeader = (PCD_DEFAULT_DATA *)(DataBuffer + Index);
}
+
//
// Cache the found result in VarStorageList
//
@@ -719,9 +731,10 @@ FindQuestionDefaultSetting (
FreePool (VariableStorage);
VariableStorage = NULL;
}
+
Entry = AllocatePool (sizeof (VARSTORAGE_DEFAULT_DATA));
if (Entry != NULL) {
- Entry->DefaultId = DefaultId;
+ Entry->DefaultId = DefaultId;
Entry->VariableStorage = VariableStorage;
InsertTailList (&gVarStorageList, &Entry->Entry);
} else if (VariableStorage != NULL) {
@@ -729,6 +742,7 @@ FindQuestionDefaultSetting (
VariableStorage = NULL;
}
}
+
//
// The matched variable storage is not found.
//
@@ -739,10 +753,11 @@ FindQuestionDefaultSetting (
//
// Find the question default value from the variable storage
//
- VariableHeader = FindVariableData (VariableStorage, &EfiVarStore->Guid, EfiVarStore->Attributes, (CHAR16 *) EfiVarStore->Name);
+ VariableHeader = FindVariableData (VariableStorage, &EfiVarStore->Guid, EfiVarStore->Attributes, (CHAR16 *)EfiVarStore->Name);
if (VariableHeader == NULL) {
return EFI_NOT_FOUND;
}
+
StartBit = 0;
EndBit = 0;
ByteOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;
@@ -754,6 +769,7 @@ FindQuestionDefaultSetting (
EndBit = StartBit + BitWidth - 1;
Width = EndBit / 8 + 1;
}
+
if (VariableHeader->DataSize < ByteOffset + Width) {
return EFI_INVALID_PARAMETER;
}
@@ -763,11 +779,11 @@ FindQuestionDefaultSetting (
//
if (ValueBuffer != NULL) {
if (BitFieldQuestion) {
- CopyMem (&BufferValue, (UINT8 *) VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + ByteOffset, Width);
+ CopyMem (&BufferValue, (UINT8 *)VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + ByteOffset, Width);
BitFieldVal = BitFieldRead32 (BufferValue, StartBit, EndBit);
CopyMem (ValueBuffer, &BitFieldVal, Width);
} else {
- CopyMem (ValueBuffer, (UINT8 *) VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + IfrQuestionHdr->VarStoreInfo.VarOffset, Width);
+ CopyMem (ValueBuffer, (UINT8 *)VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + IfrQuestionHdr->VarStoreInfo.VarOffset, Width);
}
}
@@ -782,7 +798,7 @@ FindQuestionDefaultSetting (
**/
VOID
UpdateDefaultSettingInFormPackage (
- HII_IFR_PACKAGE_INSTANCE *FormPackage
+ HII_IFR_PACKAGE_INSTANCE *FormPackage
)
{
UINTN IfrOffset;
@@ -818,232 +834,252 @@ UpdateDefaultSettingInFormPackage (
if (gNvDefaultStoreSize == 0) {
gNvDefaultStoreSize = PcdGetSize (PcdNvStoreDefaultValueBuffer);
}
+
if (gNvDefaultStoreSize < sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER)) {
return;
}
ZeroMem (&VarStoreQuestionHeader, sizeof (VarStoreQuestionHeader));
- PackageLength = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
- Width = 0;
- IfrOffset = 0;
- IfrScope = 0;
- IfrOpHdr = (EFI_IFR_OP_HEADER *) FormPackage->IfrData;
- IfrQuestionHdr = NULL;
- IfrQuestionType = 0;
- EfiVarStoreMaxNum = 0;
- EfiVarStoreNumber = 0;
- DefaultIdMaxNum = 0;
- DefaultIdNumber = 0;
- EfiVarStoreList = NULL;
- DefaultIdList = NULL;
- StandardDefaultIsSet = FALSE;
- ManufactDefaultIsSet = FALSE;
+ PackageLength = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
+ Width = 0;
+ IfrOffset = 0;
+ IfrScope = 0;
+ IfrOpHdr = (EFI_IFR_OP_HEADER *)FormPackage->IfrData;
+ IfrQuestionHdr = NULL;
+ IfrQuestionType = 0;
+ EfiVarStoreMaxNum = 0;
+ EfiVarStoreNumber = 0;
+ DefaultIdMaxNum = 0;
+ DefaultIdNumber = 0;
+ EfiVarStoreList = NULL;
+ DefaultIdList = NULL;
+ StandardDefaultIsSet = FALSE;
+ ManufactDefaultIsSet = FALSE;
QuestionReferBitField = FALSE;
while (IfrOffset < PackageLength) {
switch (IfrOpHdr->OpCode) {
- case EFI_IFR_VARSTORE_EFI_OP:
- if (EfiVarStoreNumber >= EfiVarStoreMaxNum) {
+ case EFI_IFR_VARSTORE_EFI_OP:
+ if (EfiVarStoreNumber >= EfiVarStoreMaxNum) {
+ //
+ // Reallocate EFI VarStore Buffer
+ //
+ EfiVarStoreList = ReallocatePool (EfiVarStoreMaxNum * sizeof (UINTN), (EfiVarStoreMaxNum + BASE_NUMBER) * sizeof (UINTN), EfiVarStoreList);
+ if (EfiVarStoreList == NULL) {
+ goto Done;
+ }
+
+ EfiVarStoreMaxNum = EfiVarStoreMaxNum + BASE_NUMBER;
+ }
+
+ IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *)IfrOpHdr;
//
- // Reallocate EFI VarStore Buffer
+ // Convert VarStore Name from ASCII string to Unicode string.
//
- EfiVarStoreList = ReallocatePool (EfiVarStoreMaxNum * sizeof (UINTN), (EfiVarStoreMaxNum + BASE_NUMBER) * sizeof (UINTN), EfiVarStoreList);
- if (EfiVarStoreList == NULL) {
- goto Done;
+ EfiVarStoreList[EfiVarStoreNumber] = AllocatePool (IfrEfiVarStore->Header.Length + AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name));
+ if (EfiVarStoreList[EfiVarStoreNumber] == NULL) {
+ break;
}
- EfiVarStoreMaxNum = EfiVarStoreMaxNum + BASE_NUMBER;
- }
- IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;
- //
- // Convert VarStore Name from ASCII string to Unicode string.
- //
- EfiVarStoreList [EfiVarStoreNumber] = AllocatePool (IfrEfiVarStore->Header.Length + AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name));
- if (EfiVarStoreList [EfiVarStoreNumber] == NULL) {
+
+ CopyMem (EfiVarStoreList[EfiVarStoreNumber], IfrEfiVarStore, IfrEfiVarStore->Header.Length);
+ AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 *)&(EfiVarStoreList[EfiVarStoreNumber]->Name[0]), AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));
+ Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_STANDARD, EfiVarStoreList[EfiVarStoreNumber], &VarStoreQuestionHeader, NULL, IfrEfiVarStore->Size, FALSE);
+ if (!EFI_ERROR (Status)) {
+ EfiVarStoreNumber++;
+ } else {
+ FreePool (EfiVarStoreList[EfiVarStoreNumber]);
+ EfiVarStoreList[EfiVarStoreNumber] = NULL;
+ }
+
break;
- }
- CopyMem (EfiVarStoreList [EfiVarStoreNumber], IfrEfiVarStore, IfrEfiVarStore->Header.Length);
- AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 *) &(EfiVarStoreList [EfiVarStoreNumber]->Name[0]), AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));
- Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_STANDARD, EfiVarStoreList[EfiVarStoreNumber], &VarStoreQuestionHeader, NULL, IfrEfiVarStore->Size, FALSE);
- if (!EFI_ERROR (Status)) {
- EfiVarStoreNumber ++;
- } else {
- FreePool (EfiVarStoreList [EfiVarStoreNumber]);
- EfiVarStoreList [EfiVarStoreNumber] = NULL;
- }
- break;
- case EFI_IFR_DEFAULTSTORE_OP:
- if (DefaultIdNumber >= DefaultIdMaxNum) {
+ case EFI_IFR_DEFAULTSTORE_OP:
+ if (DefaultIdNumber >= DefaultIdMaxNum) {
+ //
+ // Reallocate DefaultIdNumber
+ //
+ DefaultIdList = ReallocatePool (DefaultIdMaxNum * sizeof (UINT16), (DefaultIdMaxNum + BASE_NUMBER) * sizeof (UINT16), DefaultIdList);
+ if (DefaultIdList == NULL) {
+ goto Done;
+ }
+
+ DefaultIdMaxNum = DefaultIdMaxNum + BASE_NUMBER;
+ }
+
+ DefaultIdList[DefaultIdNumber++] = ((EFI_IFR_DEFAULTSTORE *)IfrOpHdr)->DefaultId;
+ break;
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
//
- // Reallocate DefaultIdNumber
+ // No EFI varstore is found and directly return.
//
- DefaultIdList = ReallocatePool (DefaultIdMaxNum * sizeof (UINT16), (DefaultIdMaxNum + BASE_NUMBER) * sizeof (UINT16), DefaultIdList);
- if (DefaultIdList == NULL) {
+ if ((EfiVarStoreNumber == 0) || (DefaultIdNumber == 0)) {
goto Done;
}
- DefaultIdMaxNum = DefaultIdMaxNum + BASE_NUMBER;
- }
- DefaultIdList[DefaultIdNumber ++] = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId;
- break;
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
- //
- // No EFI varstore is found and directly return.
- //
- if (EfiVarStoreNumber == 0 || DefaultIdNumber == 0) {
- goto Done;
- }
- break;
- case EFI_IFR_CHECKBOX_OP:
- IfrScope = IfrOpHdr->Scope;
- IfrQuestionType = IfrOpHdr->OpCode;
- IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *) (IfrOpHdr + 1);
- IfrCheckBox = (EFI_IFR_CHECKBOX *) IfrOpHdr;
- EfiVarStoreIndex = IsEfiVarStoreQuestion (IfrQuestionHdr, EfiVarStoreList, EfiVarStoreNumber);
- Width = sizeof (BOOLEAN);
- if (EfiVarStoreIndex < EfiVarStoreNumber) {
- for (Index = 0; Index < DefaultIdNumber; Index ++) {
- if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_STANDARD) {
- Status = FindQuestionDefaultSetting (DefaultIdList[Index], EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrValue, sizeof (BOOLEAN), QuestionReferBitField);
- if (!EFI_ERROR (Status)) {
- if (IfrValue.b) {
- IfrCheckBox->Flags = IfrCheckBox->Flags | EFI_IFR_CHECKBOX_DEFAULT;
- } else {
- IfrCheckBox->Flags = IfrCheckBox->Flags & (~EFI_IFR_CHECKBOX_DEFAULT);
+
+ break;
+ case EFI_IFR_CHECKBOX_OP:
+ IfrScope = IfrOpHdr->Scope;
+ IfrQuestionType = IfrOpHdr->OpCode;
+ IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *)(IfrOpHdr + 1);
+ IfrCheckBox = (EFI_IFR_CHECKBOX *)IfrOpHdr;
+ EfiVarStoreIndex = IsEfiVarStoreQuestion (IfrQuestionHdr, EfiVarStoreList, EfiVarStoreNumber);
+ Width = sizeof (BOOLEAN);
+ if (EfiVarStoreIndex < EfiVarStoreNumber) {
+ for (Index = 0; Index < DefaultIdNumber; Index++) {
+ if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_STANDARD) {
+ Status = FindQuestionDefaultSetting (DefaultIdList[Index], EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrValue, sizeof (BOOLEAN), QuestionReferBitField);
+ if (!EFI_ERROR (Status)) {
+ if (IfrValue.b) {
+ IfrCheckBox->Flags = IfrCheckBox->Flags | EFI_IFR_CHECKBOX_DEFAULT;
+ } else {
+ IfrCheckBox->Flags = IfrCheckBox->Flags & (~EFI_IFR_CHECKBOX_DEFAULT);
+ }
+ }
+ } else if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+ Status = FindQuestionDefaultSetting (DefaultIdList[Index], EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrValue, sizeof (BOOLEAN), QuestionReferBitField);
+ if (!EFI_ERROR (Status)) {
+ if (IfrValue.b) {
+ IfrCheckBox->Flags = IfrCheckBox->Flags | EFI_IFR_CHECKBOX_DEFAULT_MFG;
+ } else {
+ IfrCheckBox->Flags = IfrCheckBox->Flags & (~EFI_IFR_CHECKBOX_DEFAULT_MFG);
+ }
}
}
- } else if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
- Status = FindQuestionDefaultSetting (DefaultIdList[Index], EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrValue, sizeof (BOOLEAN), QuestionReferBitField);
- if (!EFI_ERROR (Status)) {
- if (IfrValue.b) {
- IfrCheckBox->Flags = IfrCheckBox->Flags | EFI_IFR_CHECKBOX_DEFAULT_MFG;
- } else {
- IfrCheckBox->Flags = IfrCheckBox->Flags & (~EFI_IFR_CHECKBOX_DEFAULT_MFG);
+ }
+ }
+
+ break;
+ case EFI_IFR_NUMERIC_OP:
+ IfrScope = IfrOpHdr->Scope;
+ IfrQuestionType = IfrOpHdr->OpCode;
+ IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *)(IfrOpHdr + 1);
+ if (QuestionReferBitField) {
+ Width = (UINTN)(((EFI_IFR_ONE_OF *)IfrOpHdr)->Flags & EDKII_IFR_NUMERIC_SIZE_BIT);
+ } else {
+ Width = (UINTN)((UINT32)1 << (((EFI_IFR_ONE_OF *)IfrOpHdr)->Flags & EFI_IFR_NUMERIC_SIZE));
+ }
+
+ break;
+ case EFI_IFR_ONE_OF_OP:
+ IfrScope = IfrOpHdr->Scope;
+ IfrQuestionType = IfrOpHdr->OpCode;
+ IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *)(IfrOpHdr + 1);
+ if (QuestionReferBitField) {
+ Width = (UINTN)(((EFI_IFR_ONE_OF *)IfrOpHdr)->Flags & EDKII_IFR_NUMERIC_SIZE_BIT);
+ } else {
+ Width = (UINTN)((UINT32)1 << (((EFI_IFR_ONE_OF *)IfrOpHdr)->Flags & EFI_IFR_NUMERIC_SIZE));
+ }
+
+ EfiVarStoreIndex = IsEfiVarStoreQuestion (IfrQuestionHdr, EfiVarStoreList, EfiVarStoreNumber);
+ StandardDefaultIsSet = FALSE;
+ ManufactDefaultIsSet = FALSE;
+ //
+ // Find Default and Manufacturing default for OneOf question
+ //
+ if (EfiVarStoreIndex < EfiVarStoreNumber) {
+ for (Index = 0; Index < DefaultIdNumber; Index++) {
+ if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_STANDARD) {
+ Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_STANDARD, EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrValue, Width, QuestionReferBitField);
+ if (!EFI_ERROR (Status)) {
+ StandardDefaultIsSet = TRUE;
+ }
+ } else if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+ Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_MANUFACTURING, EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrManufactValue, Width, QuestionReferBitField);
+ if (!EFI_ERROR (Status)) {
+ ManufactDefaultIsSet = TRUE;
}
}
}
}
- }
- break;
- case EFI_IFR_NUMERIC_OP:
- IfrScope = IfrOpHdr->Scope;
- IfrQuestionType = IfrOpHdr->OpCode;
- IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *) (IfrOpHdr + 1);
- if (QuestionReferBitField) {
- Width = (UINTN) (((EFI_IFR_ONE_OF *) IfrOpHdr)->Flags & EDKII_IFR_NUMERIC_SIZE_BIT);
- } else {
- Width = (UINTN) ((UINT32) 1 << (((EFI_IFR_ONE_OF *) IfrOpHdr)->Flags & EFI_IFR_NUMERIC_SIZE));
- }
- break;
- case EFI_IFR_ONE_OF_OP:
- IfrScope = IfrOpHdr->Scope;
- IfrQuestionType = IfrOpHdr->OpCode;
- IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *) (IfrOpHdr + 1);
- if (QuestionReferBitField) {
- Width = (UINTN) (((EFI_IFR_ONE_OF *) IfrOpHdr)->Flags & EDKII_IFR_NUMERIC_SIZE_BIT);
- } else {
- Width = (UINTN) ((UINT32) 1 << (((EFI_IFR_ONE_OF *) IfrOpHdr)->Flags & EFI_IFR_NUMERIC_SIZE));
- }
- EfiVarStoreIndex = IsEfiVarStoreQuestion (IfrQuestionHdr, EfiVarStoreList, EfiVarStoreNumber);
- StandardDefaultIsSet = FALSE;
- ManufactDefaultIsSet = FALSE;
- //
- // Find Default and Manufacturing default for OneOf question
- //
- if (EfiVarStoreIndex < EfiVarStoreNumber) {
- for (Index = 0; Index < DefaultIdNumber; Index ++) {
- if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_STANDARD) {
- Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_STANDARD, EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrValue, Width, QuestionReferBitField);
- if (!EFI_ERROR (Status)) {
- StandardDefaultIsSet = TRUE;
+
+ break;
+ case EFI_IFR_ORDERED_LIST_OP:
+ IfrScope = IfrOpHdr->Scope;
+ IfrQuestionType = IfrOpHdr->OpCode;
+ IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *)(IfrOpHdr + 1);
+ break;
+ case EFI_IFR_ONE_OF_OPTION_OP:
+ if ((IfrQuestionHdr != NULL) && (IfrScope > 0)) {
+ IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *)IfrOpHdr;
+ if (IfrQuestionType == EFI_IFR_ONE_OF_OP) {
+ Width = (UINTN)((UINT32)1 << (IfrOneOfOption->Flags & EFI_IFR_NUMERIC_SIZE));
+ if (StandardDefaultIsSet) {
+ if (CompareMem (&IfrOneOfOption->Value, &IfrValue, Width) == 0) {
+ IfrOneOfOption->Flags |= EFI_IFR_OPTION_DEFAULT;
+ } else {
+ IfrOneOfOption->Flags &= ~EFI_IFR_OPTION_DEFAULT;
+ }
}
- } else if (DefaultIdList[Index] == EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
- Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_MANUFACTURING, EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrManufactValue, Width, QuestionReferBitField);
- if (!EFI_ERROR (Status)) {
- ManufactDefaultIsSet = TRUE;
+
+ if (ManufactDefaultIsSet) {
+ if (CompareMem (&IfrOneOfOption->Value, &IfrManufactValue, Width) == 0) {
+ IfrOneOfOption->Flags |= EFI_IFR_OPTION_DEFAULT_MFG;
+ } else {
+ IfrOneOfOption->Flags &= ~EFI_IFR_OPTION_DEFAULT_MFG;
+ }
}
}
}
- }
- break;
- case EFI_IFR_ORDERED_LIST_OP:
- IfrScope = IfrOpHdr->Scope;
- IfrQuestionType = IfrOpHdr->OpCode;
- IfrQuestionHdr = (EFI_IFR_QUESTION_HEADER *) (IfrOpHdr + 1);
- break;
- case EFI_IFR_ONE_OF_OPTION_OP:
- if (IfrQuestionHdr != NULL && IfrScope > 0) {
- IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *) IfrOpHdr;
- if (IfrQuestionType == EFI_IFR_ONE_OF_OP) {
- Width = (UINTN) ((UINT32) 1 << (IfrOneOfOption->Flags & EFI_IFR_NUMERIC_SIZE));
- if (StandardDefaultIsSet) {
- if (CompareMem (&IfrOneOfOption->Value, &IfrValue, Width) == 0) {
- IfrOneOfOption->Flags |= EFI_IFR_OPTION_DEFAULT;
- } else {
- IfrOneOfOption->Flags &= ~EFI_IFR_OPTION_DEFAULT;
+
+ break;
+ case EFI_IFR_DEFAULT_OP:
+ if ((IfrQuestionHdr != NULL) && (IfrScope > 0)) {
+ IfrDefault = (EFI_IFR_DEFAULT *)IfrOpHdr;
+ //
+ // Collect default value width
+ //
+ if (!QuestionReferBitField) {
+ Width = 0;
+ if ((IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_8) || (IfrDefault->Type == EFI_IFR_TYPE_BOOLEAN)) {
+ Width = 1;
+ } else if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_16) {
+ Width = 2;
+ } else if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_32) {
+ Width = 4;
+ } else if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_64) {
+ Width = 8;
+ } else if (IfrDefault->Type == EFI_IFR_TYPE_BUFFER) {
+ Width = IfrDefault->Header.Length - OFFSET_OF (EFI_IFR_DEFAULT, Value);
}
}
- if (ManufactDefaultIsSet) {
- if (CompareMem (&IfrOneOfOption->Value, &IfrManufactValue, Width) == 0) {
- IfrOneOfOption->Flags |= EFI_IFR_OPTION_DEFAULT_MFG;
- } else {
- IfrOneOfOption->Flags &= ~EFI_IFR_OPTION_DEFAULT_MFG;
+
+ //
+ // Update the default value
+ //
+ if (Width > 0) {
+ EfiVarStoreIndex = IsEfiVarStoreQuestion (IfrQuestionHdr, EfiVarStoreList, EfiVarStoreNumber);
+ if (EfiVarStoreIndex < EfiVarStoreNumber) {
+ Status = FindQuestionDefaultSetting (IfrDefault->DefaultId, EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrDefault->Value, Width, QuestionReferBitField);
}
}
}
- }
- break;
- case EFI_IFR_DEFAULT_OP:
- if (IfrQuestionHdr != NULL && IfrScope > 0) {
- IfrDefault = (EFI_IFR_DEFAULT *) IfrOpHdr;
- //
- // Collect default value width
- //
- if (!QuestionReferBitField) {
- Width = 0;
- if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_8 || IfrDefault->Type == EFI_IFR_TYPE_BOOLEAN) {
- Width = 1;
- } else if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_16) {
- Width = 2;
- } else if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_32) {
- Width = 4;
- } else if (IfrDefault->Type == EFI_IFR_TYPE_NUM_SIZE_64) {
- Width = 8;
- } else if (IfrDefault->Type == EFI_IFR_TYPE_BUFFER) {
- Width = IfrDefault->Header.Length - OFFSET_OF (EFI_IFR_DEFAULT, Value);
+
+ break;
+ case EFI_IFR_END_OP:
+ if (IfrQuestionHdr != NULL) {
+ if (IfrScope > 0) {
+ IfrScope--;
}
- }
- //
- // Update the default value
- //
- if (Width > 0) {
- EfiVarStoreIndex = IsEfiVarStoreQuestion (IfrQuestionHdr, EfiVarStoreList, EfiVarStoreNumber);
- if (EfiVarStoreIndex < EfiVarStoreNumber) {
- Status = FindQuestionDefaultSetting (IfrDefault->DefaultId, EfiVarStoreList[EfiVarStoreIndex], IfrQuestionHdr, &IfrDefault->Value, Width, QuestionReferBitField);
+
+ if (IfrScope == 0) {
+ IfrQuestionHdr = NULL;
+ QuestionReferBitField = FALSE;
}
}
- }
- break;
- case EFI_IFR_END_OP:
- if (IfrQuestionHdr != NULL) {
- if (IfrScope > 0) {
- IfrScope --;
- }
- if (IfrScope == 0) {
- IfrQuestionHdr = NULL;
- QuestionReferBitField = FALSE;
+
+ break;
+ case EFI_IFR_GUID_OP:
+ if (CompareGuid ((EFI_GUID *)((UINT8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {
+ QuestionReferBitField = TRUE;
}
- }
- break;
- case EFI_IFR_GUID_OP:
- if (CompareGuid ((EFI_GUID *)((UINT8 *)IfrOpHdr + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {
- QuestionReferBitField = TRUE;
- }
- break;
- default:
- break;
+
+ break;
+ default:
+ break;
}
+
IfrOffset = IfrOffset + IfrOpHdr->Length;
- IfrOpHdr = (EFI_IFR_OP_HEADER *) ((UINT8 *) IfrOpHdr + IfrOpHdr->Length);
+ IfrOpHdr = (EFI_IFR_OP_HEADER *)((UINT8 *)IfrOpHdr + IfrOpHdr->Length);
if (IfrScope > 0) {
IfrScope += IfrOpHdr->Scope;
}
@@ -1051,10 +1087,11 @@ UpdateDefaultSettingInFormPackage (
Done:
if (EfiVarStoreList != NULL) {
- for (Index = 0; Index < EfiVarStoreNumber; Index ++) {
- FreePool (EfiVarStoreList [Index]);
+ for (Index = 0; Index < EfiVarStoreNumber; Index++) {
+ FreePool (EfiVarStoreList[Index]);
}
}
+
return;
}
@@ -1077,16 +1114,16 @@ Done:
**/
EFI_STATUS
InsertFormPackage (
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_IFR_PACKAGE_INSTANCE **Package
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_IFR_PACKAGE_INSTANCE **Package
)
{
- HII_IFR_PACKAGE_INSTANCE *FormPackage;
- EFI_HII_PACKAGE_HEADER PackageHeader;
+ HII_IFR_PACKAGE_INSTANCE *FormPackage;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
- if (PackageHdr == NULL || PackageList == NULL) {
+ if ((PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1098,12 +1135,12 @@ InsertFormPackage (
//
// Create a Form package node
//
- FormPackage = (HII_IFR_PACKAGE_INSTANCE *) AllocateZeroPool (sizeof (HII_IFR_PACKAGE_INSTANCE));
+ FormPackage = (HII_IFR_PACKAGE_INSTANCE *)AllocateZeroPool (sizeof (HII_IFR_PACKAGE_INSTANCE));
if (FormPackage == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- FormPackage->IfrData = (UINT8 *) AllocateZeroPool (PackageHeader.Length - sizeof (EFI_HII_PACKAGE_HEADER));
+ FormPackage->IfrData = (UINT8 *)AllocateZeroPool (PackageHeader.Length - sizeof (EFI_HII_PACKAGE_HEADER));
if (FormPackage->IfrData == NULL) {
FreePool (FormPackage);
return EFI_OUT_OF_RESOURCES;
@@ -1120,7 +1157,7 @@ InsertFormPackage (
//
CopyMem (
FormPackage->IfrData,
- (UINT8 *) PackageHdr + sizeof (EFI_HII_PACKAGE_HEADER),
+ (UINT8 *)PackageHdr + sizeof (EFI_HII_PACKAGE_HEADER),
PackageHeader.Length - sizeof (EFI_HII_PACKAGE_HEADER)
);
@@ -1135,10 +1172,10 @@ InsertFormPackage (
if (NotifyType == EFI_HII_DATABASE_NOTIFY_ADD_PACK) {
PackageList->PackageListHdr.PackageLength += FormPackage->FormPkgHdr.Length;
}
+
return EFI_SUCCESS;
}
-
/**
This function exports Form packages to a buffer.
This is a internal function.
@@ -1158,25 +1195,25 @@ InsertFormPackage (
**/
EFI_STATUS
ExportFormPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
- HII_IFR_PACKAGE_INSTANCE *FormPackage;
- UINTN PackageLength;
- LIST_ENTRY *Link;
- EFI_STATUS Status;
+ HII_IFR_PACKAGE_INSTANCE *FormPackage;
+ UINTN PackageLength;
+ LIST_ENTRY *Link;
+ EFI_STATUS Status;
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1187,7 +1224,7 @@ ExportFormPackages (
// Export Form packages.
//
for (Link = PackageList->FormPkgHdr.ForwardLink; Link != &PackageList->FormPkgHdr; Link = Link->ForwardLink) {
- FormPackage = CR (Link, HII_IFR_PACKAGE_INSTANCE, IfrEntry, HII_IFR_PACKAGE_SIGNATURE);
+ FormPackage = CR (Link, HII_IFR_PACKAGE_INSTANCE, IfrEntry, HII_IFR_PACKAGE_SIGNATURE);
PackageLength += FormPackage->FormPkgHdr.Length;
if ((Buffer != NULL) && (PackageLength + *ResultSize + UsedSize <= BufferSize)) {
//
@@ -1196,7 +1233,7 @@ ExportFormPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) FormPackage,
+ (VOID *)FormPackage,
EFI_HII_PACKAGE_FORMS,
Handle
);
@@ -1204,24 +1241,22 @@ ExportFormPackages (
//
// Copy the Form package content.
//
- CopyMem (Buffer, (VOID *) (&FormPackage->FormPkgHdr), sizeof (EFI_HII_PACKAGE_HEADER));
- Buffer = (UINT8 *) Buffer + sizeof (EFI_HII_PACKAGE_HEADER);
+ CopyMem (Buffer, (VOID *)(&FormPackage->FormPkgHdr), sizeof (EFI_HII_PACKAGE_HEADER));
+ Buffer = (UINT8 *)Buffer + sizeof (EFI_HII_PACKAGE_HEADER);
CopyMem (
Buffer,
- (VOID *) FormPackage->IfrData,
+ (VOID *)FormPackage->IfrData,
FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER)
);
- Buffer = (UINT8 *) Buffer + FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
+ Buffer = (UINT8 *)Buffer + FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);
}
}
*ResultSize += PackageLength;
return EFI_SUCCESS;
-
}
-
/**
This function deletes all Form packages from a package list node.
This is a internal function.
@@ -1238,14 +1273,14 @@ ExportFormPackages (
**/
EFI_STATUS
RemoveFormPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- LIST_ENTRY *ListHead;
- HII_IFR_PACKAGE_INSTANCE *Package;
- EFI_STATUS Status;
+ LIST_ENTRY *ListHead;
+ HII_IFR_PACKAGE_INSTANCE *Package;
+ EFI_STATUS Status;
ListHead = &PackageList->FormPkgHdr;
@@ -1259,7 +1294,7 @@ RemoveFormPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_FORMS,
Handle
);
@@ -1286,8 +1321,6 @@ RemoveFormPackages (
return EFI_SUCCESS;
}
-
-
/**
This function insert a String package to a package list node.
This is a internal function.
@@ -1310,41 +1343,43 @@ RemoveFormPackages (
**/
EFI_STATUS
InsertStringPackage (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_STRING_PACKAGE_INSTANCE **Package
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_STRING_PACKAGE_INSTANCE **Package
)
{
- HII_STRING_PACKAGE_INSTANCE *StringPackage;
- UINT32 HeaderSize;
- EFI_STATUS Status;
- EFI_HII_PACKAGE_HEADER PackageHeader;
- CHAR8 *Language;
- UINT32 LanguageSize;
- LIST_ENTRY *Link;
-
- if (Private == NULL || PackageHdr == NULL || PackageList == NULL) {
+ HII_STRING_PACKAGE_INSTANCE *StringPackage;
+ UINT32 HeaderSize;
+ EFI_STATUS Status;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
+ CHAR8 *Language;
+ UINT32 LanguageSize;
+ LIST_ENTRY *Link;
+
+ if ((Private == NULL) || (PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if (Private->Signature != HII_DATABASE_PRIVATE_DATA_SIGNATURE) {
return EFI_INVALID_PARAMETER;
}
CopyMem (&PackageHeader, PackageHdr, sizeof (EFI_HII_PACKAGE_HEADER));
- CopyMem (&HeaderSize, (UINT8 *) PackageHdr + sizeof (EFI_HII_PACKAGE_HEADER), sizeof (UINT32));
+ CopyMem (&HeaderSize, (UINT8 *)PackageHdr + sizeof (EFI_HII_PACKAGE_HEADER), sizeof (UINT32));
//
// It is illegal to have two string packages with same language within one packagelist
// since the stringid will be duplicate if so. Check it to avoid this potential issue.
//
LanguageSize = HeaderSize - sizeof (EFI_HII_STRING_PACKAGE_HDR) + sizeof (CHAR8);
- Language = (CHAR8 *) AllocateZeroPool (LanguageSize);
+ Language = (CHAR8 *)AllocateZeroPool (LanguageSize);
if (Language == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- AsciiStrCpyS (Language, LanguageSize / sizeof (CHAR8), (CHAR8 *) PackageHdr + HeaderSize - LanguageSize);
+
+ AsciiStrCpyS (Language, LanguageSize / sizeof (CHAR8), (CHAR8 *)PackageHdr + HeaderSize - LanguageSize);
for (Link = PackageList->StringPkgHdr.ForwardLink; Link != &PackageList->StringPkgHdr; Link = Link->ForwardLink) {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
if (HiiCompareLanguage (Language, StringPackage->StringPkgHdr->Language)) {
@@ -1352,24 +1387,25 @@ InsertStringPackage (
return EFI_UNSUPPORTED;
}
}
+
FreePool (Language);
//
// Create a String package node
//
- StringPackage = (HII_STRING_PACKAGE_INSTANCE *) AllocateZeroPool (sizeof (HII_STRING_PACKAGE_INSTANCE));
+ StringPackage = (HII_STRING_PACKAGE_INSTANCE *)AllocateZeroPool (sizeof (HII_STRING_PACKAGE_INSTANCE));
if (StringPackage == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
- StringPackage->StringPkgHdr = (EFI_HII_STRING_PACKAGE_HDR *) AllocateZeroPool (HeaderSize);
+ StringPackage->StringPkgHdr = (EFI_HII_STRING_PACKAGE_HDR *)AllocateZeroPool (HeaderSize);
if (StringPackage->StringPkgHdr == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
- StringPackage->StringBlock = (UINT8 *) AllocateZeroPool (PackageHeader.Length - HeaderSize);
+ StringPackage->StringBlock = (UINT8 *)AllocateZeroPool (PackageHeader.Length - HeaderSize);
if (StringPackage->StringBlock == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
@@ -1389,14 +1425,14 @@ InsertStringPackage (
//
CopyMem (
StringPackage->StringBlock,
- (UINT8 *) PackageHdr + HeaderSize,
+ (UINT8 *)PackageHdr + HeaderSize,
PackageHeader.Length - HeaderSize
);
//
// Collect all font block info
//
- Status = FindStringBlock (Private, StringPackage, (EFI_STRING_ID) (-1), NULL, NULL, NULL, &StringPackage->MaxStringId, NULL);
+ Status = FindStringBlock (Private, StringPackage, (EFI_STRING_ID)(-1), NULL, NULL, NULL, &StringPackage->MaxStringId, NULL);
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1419,13 +1455,15 @@ Error:
if (StringPackage->StringBlock != NULL) {
FreePool (StringPackage->StringBlock);
}
+
if (StringPackage->StringPkgHdr != NULL) {
FreePool (StringPackage->StringPkgHdr);
}
+
FreePool (StringPackage);
}
- return Status;
+ return Status;
}
/**
@@ -1439,23 +1477,24 @@ Error:
**/
EFI_STATUS
AdjustStringPackage (
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
-)
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ )
{
- LIST_ENTRY *Link;
- HII_STRING_PACKAGE_INSTANCE *StringPackage;
- UINT32 Skip2BlockSize;
- UINT32 OldBlockSize;
- UINT8 *StringBlock;
- UINT8 *BlockPtr;
- EFI_STRING_ID MaxStringId;
- UINT16 SkipCount;
+ LIST_ENTRY *Link;
+ HII_STRING_PACKAGE_INSTANCE *StringPackage;
+ UINT32 Skip2BlockSize;
+ UINT32 OldBlockSize;
+ UINT8 *StringBlock;
+ UINT8 *BlockPtr;
+ EFI_STRING_ID MaxStringId;
+ UINT16 SkipCount;
MaxStringId = 0;
for (Link = PackageList->StringPkgHdr.ForwardLink;
Link != &PackageList->StringPkgHdr;
Link = Link->ForwardLink
- ) {
+ )
+ {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
if (MaxStringId < StringPackage->MaxStringId) {
MaxStringId = StringPackage->MaxStringId;
@@ -1465,20 +1504,22 @@ AdjustStringPackage (
for (Link = PackageList->StringPkgHdr.ForwardLink;
Link != &PackageList->StringPkgHdr;
Link = Link->ForwardLink
- ) {
+ )
+ {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
if (StringPackage->MaxStringId < MaxStringId) {
OldBlockSize = StringPackage->StringPkgHdr->Header.Length - StringPackage->StringPkgHdr->HdrSize;
//
// Create SKIP2 EFI_HII_SIBT_SKIP2_BLOCKs to reserve the missing string IDs.
//
- SkipCount = (UINT16) (MaxStringId - StringPackage->MaxStringId);
- Skip2BlockSize = (UINT32) sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
+ SkipCount = (UINT16)(MaxStringId - StringPackage->MaxStringId);
+ Skip2BlockSize = (UINT32)sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
- StringBlock = (UINT8 *) AllocateZeroPool (OldBlockSize + Skip2BlockSize);
+ StringBlock = (UINT8 *)AllocateZeroPool (OldBlockSize + Skip2BlockSize);
if (StringBlock == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
//
// Copy original string blocks, except the EFI_HII_SIBT_END.
//
@@ -1489,17 +1530,17 @@ AdjustStringPackage (
BlockPtr = StringBlock + OldBlockSize - sizeof (EFI_HII_SIBT_END_BLOCK);
*BlockPtr = EFI_HII_SIBT_SKIP2;
CopyMem (BlockPtr + 1, &SkipCount, sizeof (UINT16));
- BlockPtr += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
+ BlockPtr += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
//
// Append a EFI_HII_SIBT_END block to the end.
//
*BlockPtr = EFI_HII_SIBT_END;
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = StringBlock;
+ StringPackage->StringBlock = StringBlock;
StringPackage->StringPkgHdr->Header.Length += Skip2BlockSize;
- PackageList->PackageListHdr.PackageLength += Skip2BlockSize;
- StringPackage->MaxStringId = MaxStringId;
+ PackageList->PackageListHdr.PackageLength += Skip2BlockSize;
+ StringPackage->MaxStringId = MaxStringId;
}
}
@@ -1525,25 +1566,25 @@ AdjustStringPackage (
**/
EFI_STATUS
ExportStringPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
- LIST_ENTRY *Link;
- UINTN PackageLength;
- EFI_STATUS Status;
- HII_STRING_PACKAGE_INSTANCE *StringPackage;
+ LIST_ENTRY *Link;
+ UINTN PackageLength;
+ EFI_STATUS Status;
+ HII_STRING_PACKAGE_INSTANCE *StringPackage;
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1551,7 +1592,7 @@ ExportStringPackages (
Status = EFI_SUCCESS;
for (Link = PackageList->StringPkgHdr.ForwardLink; Link != &PackageList->StringPkgHdr; Link = Link->ForwardLink) {
- StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
+ StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
PackageLength += StringPackage->StringPkgHdr->Header.Length;
if (PackageLength + *ResultSize + UsedSize <= BufferSize) {
//
@@ -1560,7 +1601,7 @@ ExportStringPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) StringPackage,
+ (VOID *)StringPackage,
EFI_HII_PACKAGE_STRINGS,
Handle
);
@@ -1569,7 +1610,7 @@ ExportStringPackages (
// Copy String package header
//
CopyMem (Buffer, StringPackage->StringPkgHdr, StringPackage->StringPkgHdr->HdrSize);
- Buffer = (UINT8 *) Buffer + StringPackage->StringPkgHdr->HdrSize;
+ Buffer = (UINT8 *)Buffer + StringPackage->StringPkgHdr->HdrSize;
//
// Copy String blocks information
@@ -1579,7 +1620,7 @@ ExportStringPackages (
StringPackage->StringBlock,
StringPackage->StringPkgHdr->Header.Length - StringPackage->StringPkgHdr->HdrSize
);
- Buffer = (UINT8 *) Buffer + StringPackage->StringPkgHdr->Header.Length - StringPackage->StringPkgHdr->HdrSize;
+ Buffer = (UINT8 *)Buffer + StringPackage->StringPkgHdr->Header.Length - StringPackage->StringPkgHdr->HdrSize;
}
}
@@ -1587,7 +1628,6 @@ ExportStringPackages (
return EFI_SUCCESS;
}
-
/**
This function deletes all String packages from a package list node.
This is a internal function.
@@ -1604,15 +1644,15 @@ ExportStringPackages (
**/
EFI_STATUS
RemoveStringPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- LIST_ENTRY *ListHead;
- HII_STRING_PACKAGE_INSTANCE *Package;
- HII_FONT_INFO *FontInfo;
- EFI_STATUS Status;
+ LIST_ENTRY *ListHead;
+ HII_STRING_PACKAGE_INSTANCE *Package;
+ HII_FONT_INFO *FontInfo;
+ EFI_STATUS Status;
ListHead = &PackageList->StringPkgHdr;
@@ -1626,7 +1666,7 @@ RemoveStringPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_STRINGS,
Handle
);
@@ -1658,7 +1698,6 @@ RemoveStringPackages (
return EFI_SUCCESS;
}
-
/**
This function insert a Font package to a package list node.
This is a internal function.
@@ -1681,28 +1720,28 @@ RemoveStringPackages (
**/
EFI_STATUS
InsertFontPackage (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_FONT_PACKAGE_INSTANCE **Package
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_FONT_PACKAGE_INSTANCE **Package
)
{
- HII_FONT_PACKAGE_INSTANCE *FontPackage;
- EFI_HII_FONT_PACKAGE_HDR *FontPkgHdr;
- UINT32 HeaderSize;
- EFI_STATUS Status;
- EFI_HII_PACKAGE_HEADER PackageHeader;
- EFI_FONT_INFO *FontInfo;
- UINT32 FontInfoSize;
- HII_GLOBAL_FONT_INFO *GlobalFont;
-
- if (Private == NULL || PackageHdr == NULL || PackageList == NULL) {
+ HII_FONT_PACKAGE_INSTANCE *FontPackage;
+ EFI_HII_FONT_PACKAGE_HDR *FontPkgHdr;
+ UINT32 HeaderSize;
+ EFI_STATUS Status;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
+ EFI_FONT_INFO *FontInfo;
+ UINT32 FontInfoSize;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+
+ if ((Private == NULL) || (PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
CopyMem (&PackageHeader, PackageHdr, sizeof (EFI_HII_PACKAGE_HEADER));
- CopyMem (&HeaderSize, (UINT8 *) PackageHdr + sizeof (EFI_HII_PACKAGE_HEADER), sizeof (UINT32));
+ CopyMem (&HeaderSize, (UINT8 *)PackageHdr + sizeof (EFI_HII_PACKAGE_HEADER), sizeof (UINT32));
FontInfo = NULL;
FontPackage = NULL;
@@ -1713,22 +1752,24 @@ InsertFontPackage (
// database. EFI_FONT_INFO (FontName, FontSize, FontStyle) describes font's
// attributes and identify a font uniquely.
//
- FontPkgHdr = (EFI_HII_FONT_PACKAGE_HDR *) AllocateZeroPool (HeaderSize);
+ FontPkgHdr = (EFI_HII_FONT_PACKAGE_HDR *)AllocateZeroPool (HeaderSize);
if (FontPkgHdr == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
+
CopyMem (FontPkgHdr, PackageHdr, HeaderSize);
FontInfoSize = sizeof (EFI_FONT_INFO) + HeaderSize - sizeof (EFI_HII_FONT_PACKAGE_HDR);
- FontInfo = (EFI_FONT_INFO *) AllocateZeroPool (FontInfoSize);
+ FontInfo = (EFI_FONT_INFO *)AllocateZeroPool (FontInfoSize);
if (FontInfo == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
+
FontInfo->FontStyle = FontPkgHdr->FontStyle;
FontInfo->FontSize = FontPkgHdr->Cell.Height;
- StrCpyS (FontInfo->FontName, (FontInfoSize - OFFSET_OF(EFI_FONT_INFO,FontName)) / sizeof (CHAR16), FontPkgHdr->FontFamily);
+ StrCpyS (FontInfo->FontName, (FontInfoSize - OFFSET_OF (EFI_FONT_INFO, FontName)) / sizeof (CHAR16), FontPkgHdr->FontFamily);
if (IsFontInfoExisted (Private, FontInfo, NULL, NULL, NULL)) {
Status = EFI_UNSUPPORTED;
@@ -1738,26 +1779,28 @@ InsertFontPackage (
//
// Create a Font package node
//
- FontPackage = (HII_FONT_PACKAGE_INSTANCE *) AllocateZeroPool (sizeof (HII_FONT_PACKAGE_INSTANCE));
+ FontPackage = (HII_FONT_PACKAGE_INSTANCE *)AllocateZeroPool (sizeof (HII_FONT_PACKAGE_INSTANCE));
if (FontPackage == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
+
FontPackage->Signature = HII_FONT_PACKAGE_SIGNATURE;
FontPackage->FontPkgHdr = FontPkgHdr;
InitializeListHead (&FontPackage->GlyphInfoList);
- FontPackage->GlyphBlock = (UINT8 *) AllocateZeroPool (PackageHeader.Length - HeaderSize);
+ FontPackage->GlyphBlock = (UINT8 *)AllocateZeroPool (PackageHeader.Length - HeaderSize);
if (FontPackage->GlyphBlock == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
- CopyMem (FontPackage->GlyphBlock, (UINT8 *) PackageHdr + HeaderSize, PackageHeader.Length - HeaderSize);
+
+ CopyMem (FontPackage->GlyphBlock, (UINT8 *)PackageHdr + HeaderSize, PackageHeader.Length - HeaderSize);
//
// Collect all default character cell information and backup in GlyphInfoList.
//
- Status = FindGlyphBlock (FontPackage, (CHAR16) (-1), NULL, NULL, NULL);
+ Status = FindGlyphBlock (FontPackage, (CHAR16)(-1), NULL, NULL, NULL);
if (EFI_ERROR (Status)) {
goto Error;
}
@@ -1766,11 +1809,12 @@ InsertFontPackage (
// This font package describes an unique EFI_FONT_INFO. Backup it in global
// font info list.
//
- GlobalFont = (HII_GLOBAL_FONT_INFO *) AllocateZeroPool (sizeof (HII_GLOBAL_FONT_INFO));
+ GlobalFont = (HII_GLOBAL_FONT_INFO *)AllocateZeroPool (sizeof (HII_GLOBAL_FONT_INFO));
if (GlobalFont == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
+
GlobalFont->Signature = HII_GLOBAL_FONT_INFO_SIGNATURE;
GlobalFont->FontPackage = FontPackage;
GlobalFont->FontInfoSize = FontInfoSize;
@@ -1794,24 +1838,26 @@ Error:
if (FontPkgHdr != NULL) {
FreePool (FontPkgHdr);
}
+
if (FontInfo != NULL) {
FreePool (FontInfo);
}
+
if (FontPackage != NULL) {
if (FontPackage->GlyphBlock != NULL) {
FreePool (FontPackage->GlyphBlock);
}
+
FreePool (FontPackage);
}
+
if (GlobalFont != NULL) {
FreePool (GlobalFont);
}
return Status;
-
}
-
/**
This function exports Font packages to a buffer.
This is a internal function.
@@ -1831,26 +1877,25 @@ Error:
**/
EFI_STATUS
ExportFontPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
- LIST_ENTRY *Link;
- UINTN PackageLength;
- EFI_STATUS Status;
- HII_FONT_PACKAGE_INSTANCE *Package;
-
+ LIST_ENTRY *Link;
+ UINTN PackageLength;
+ EFI_STATUS Status;
+ HII_FONT_PACKAGE_INSTANCE *Package;
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1858,7 +1903,7 @@ ExportFontPackages (
Status = EFI_SUCCESS;
for (Link = PackageList->FontPkgHdr.ForwardLink; Link != &PackageList->FontPkgHdr; Link = Link->ForwardLink) {
- Package = CR (Link, HII_FONT_PACKAGE_INSTANCE, FontEntry, HII_FONT_PACKAGE_SIGNATURE);
+ Package = CR (Link, HII_FONT_PACKAGE_INSTANCE, FontEntry, HII_FONT_PACKAGE_SIGNATURE);
PackageLength += Package->FontPkgHdr->Header.Length;
if (PackageLength + *ResultSize + UsedSize <= BufferSize) {
//
@@ -1867,7 +1912,7 @@ ExportFontPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_FONTS,
Handle
);
@@ -1876,7 +1921,7 @@ ExportFontPackages (
// Copy Font package header
//
CopyMem (Buffer, Package->FontPkgHdr, Package->FontPkgHdr->HdrSize);
- Buffer = (UINT8 *) Buffer + Package->FontPkgHdr->HdrSize;
+ Buffer = (UINT8 *)Buffer + Package->FontPkgHdr->HdrSize;
//
// Copy Glyph blocks information
@@ -1886,7 +1931,7 @@ ExportFontPackages (
Package->GlyphBlock,
Package->FontPkgHdr->Header.Length - Package->FontPkgHdr->HdrSize
);
- Buffer = (UINT8 *) Buffer + Package->FontPkgHdr->Header.Length - Package->FontPkgHdr->HdrSize;
+ Buffer = (UINT8 *)Buffer + Package->FontPkgHdr->Header.Length - Package->FontPkgHdr->HdrSize;
}
}
@@ -1894,7 +1939,6 @@ ExportFontPackages (
return EFI_SUCCESS;
}
-
/**
This function deletes all Font packages from a package list node.
This is a internal function.
@@ -1911,17 +1955,17 @@ ExportFontPackages (
**/
EFI_STATUS
RemoveFontPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- LIST_ENTRY *ListHead;
- HII_FONT_PACKAGE_INSTANCE *Package;
- EFI_STATUS Status;
- HII_GLYPH_INFO *GlyphInfo;
- LIST_ENTRY *Link;
- HII_GLOBAL_FONT_INFO *GlobalFont;
+ LIST_ENTRY *ListHead;
+ HII_FONT_PACKAGE_INSTANCE *Package;
+ EFI_STATUS Status;
+ HII_GLYPH_INFO *GlyphInfo;
+ LIST_ENTRY *Link;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
ListHead = &PackageList->FontPkgHdr;
@@ -1935,7 +1979,7 @@ RemoveFontPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_FONTS,
Handle
);
@@ -1949,6 +1993,7 @@ RemoveFontPackages (
if (Package->GlyphBlock != NULL) {
FreePool (Package->GlyphBlock);
}
+
FreePool (Package->FontPkgHdr);
//
// Delete default character cell information
@@ -1983,7 +2028,6 @@ RemoveFontPackages (
return EFI_SUCCESS;
}
-
/**
This function insert a Image package to a package list node.
This is a internal function.
@@ -2003,23 +2047,23 @@ RemoveFontPackages (
**/
EFI_STATUS
InsertImagePackage (
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_IMAGE_PACKAGE_INSTANCE **Package
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_IMAGE_PACKAGE_INSTANCE **Package
)
{
- HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;
- UINT32 PaletteSize;
- UINT32 ImageSize;
- UINT16 Index;
- EFI_HII_IMAGE_PALETTE_INFO_HEADER *PaletteHdr;
- EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo;
- UINT32 PaletteInfoOffset;
- UINT32 ImageInfoOffset;
- UINT16 CurrentSize;
-
- if (PackageHdr == NULL || PackageList == NULL) {
+ HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;
+ UINT32 PaletteSize;
+ UINT32 ImageSize;
+ UINT16 Index;
+ EFI_HII_IMAGE_PALETTE_INFO_HEADER *PaletteHdr;
+ EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo;
+ UINT32 PaletteInfoOffset;
+ UINT32 ImageInfoOffset;
+ UINT16 CurrentSize;
+
+ if ((PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2033,7 +2077,7 @@ InsertImagePackage (
//
// Create a Image package node
//
- ImagePackage = (HII_IMAGE_PACKAGE_INSTANCE *) AllocateZeroPool (sizeof (HII_IMAGE_PACKAGE_INSTANCE));
+ ImagePackage = (HII_IMAGE_PACKAGE_INSTANCE *)AllocateZeroPool (sizeof (HII_IMAGE_PACKAGE_INSTANCE));
if (ImagePackage == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2052,25 +2096,26 @@ InsertImagePackage (
PaletteSize = 0;
ImagePackage->PaletteBlock = NULL;
if (PaletteInfoOffset != 0) {
- PaletteHdr = (EFI_HII_IMAGE_PALETTE_INFO_HEADER *) ((UINT8 *) PackageHdr + PaletteInfoOffset);
+ PaletteHdr = (EFI_HII_IMAGE_PALETTE_INFO_HEADER *)((UINT8 *)PackageHdr + PaletteInfoOffset);
PaletteSize = sizeof (EFI_HII_IMAGE_PALETTE_INFO_HEADER);
- PaletteInfo = (EFI_HII_IMAGE_PALETTE_INFO *) ((UINT8 *) PaletteHdr + PaletteSize);
+ PaletteInfo = (EFI_HII_IMAGE_PALETTE_INFO *)((UINT8 *)PaletteHdr + PaletteSize);
for (Index = 0; Index < PaletteHdr->PaletteCount; Index++) {
CopyMem (&CurrentSize, PaletteInfo, sizeof (UINT16));
CurrentSize += sizeof (UINT16);
- PaletteSize += (UINT32) CurrentSize;
- PaletteInfo = (EFI_HII_IMAGE_PALETTE_INFO *) ((UINT8 *) PaletteInfo + CurrentSize);
+ PaletteSize += (UINT32)CurrentSize;
+ PaletteInfo = (EFI_HII_IMAGE_PALETTE_INFO *)((UINT8 *)PaletteInfo + CurrentSize);
}
- ImagePackage->PaletteBlock = (UINT8 *) AllocateZeroPool (PaletteSize);
+ ImagePackage->PaletteBlock = (UINT8 *)AllocateZeroPool (PaletteSize);
if (ImagePackage->PaletteBlock == NULL) {
FreePool (ImagePackage);
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (
ImagePackage->PaletteBlock,
- (UINT8 *) PackageHdr + PaletteInfoOffset,
+ (UINT8 *)PackageHdr + PaletteInfoOffset,
PaletteSize
);
}
@@ -2089,9 +2134,10 @@ InsertImagePackage (
FreePool (ImagePackage);
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (
ImagePackage->ImageBlock,
- (UINT8 *) PackageHdr + ImageInfoOffset,
+ (UINT8 *)PackageHdr + ImageInfoOffset,
ImageSize
);
}
@@ -2108,7 +2154,6 @@ InsertImagePackage (
return EFI_SUCCESS;
}
-
/**
This function exports Image packages to a buffer.
This is a internal function.
@@ -2128,25 +2173,24 @@ InsertImagePackage (
**/
EFI_STATUS
ExportImagePackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
UINTN PackageLength;
EFI_STATUS Status;
HII_IMAGE_PACKAGE_INSTANCE *Package;
-
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2165,33 +2209,36 @@ ExportImagePackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_IMAGES,
Handle
);
ASSERT_EFI_ERROR (Status);
- ASSERT (Package->ImagePkgHdr.Header.Length ==
- sizeof (EFI_HII_IMAGE_PACKAGE_HDR) + Package->ImageBlockSize + Package->PaletteInfoSize);
+ ASSERT (
+ Package->ImagePkgHdr.Header.Length ==
+ sizeof (EFI_HII_IMAGE_PACKAGE_HDR) + Package->ImageBlockSize + Package->PaletteInfoSize
+ );
//
// Copy Image package header,
// then justify the offset for image info and palette info in the header.
//
CopyMem (Buffer, &Package->ImagePkgHdr, sizeof (EFI_HII_IMAGE_PACKAGE_HDR));
- Buffer = (UINT8 *) Buffer + sizeof (EFI_HII_IMAGE_PACKAGE_HDR);
+ Buffer = (UINT8 *)Buffer + sizeof (EFI_HII_IMAGE_PACKAGE_HDR);
//
// Copy Image blocks information
//
if (Package->ImageBlockSize != 0) {
CopyMem (Buffer, Package->ImageBlock, Package->ImageBlockSize);
- Buffer = (UINT8 *) Buffer + Package->ImageBlockSize;
+ Buffer = (UINT8 *)Buffer + Package->ImageBlockSize;
}
+
//
// Copy Palette information
//
if (Package->PaletteInfoSize != 0) {
CopyMem (Buffer, Package->PaletteBlock, Package->PaletteInfoSize);
- Buffer = (UINT8 *) Buffer + Package->PaletteInfoSize;
+ Buffer = (UINT8 *)Buffer + Package->PaletteInfoSize;
}
}
@@ -2199,7 +2246,6 @@ ExportImagePackages (
return EFI_SUCCESS;
}
-
/**
This function deletes Image package from a package list node.
This is a internal function.
@@ -2216,13 +2262,13 @@ ExportImagePackages (
**/
EFI_STATUS
RemoveImagePackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- HII_IMAGE_PACKAGE_INSTANCE *Package;
- EFI_STATUS Status;
+ HII_IMAGE_PACKAGE_INSTANCE *Package;
+ EFI_STATUS Status;
Package = PackageList->ImagePkg;
@@ -2236,7 +2282,7 @@ RemoveImagePackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_IMAGES,
Handle
);
@@ -2250,6 +2296,7 @@ RemoveImagePackages (
if (Package->PaletteBlock != NULL) {
FreePool (Package->PaletteBlock);
}
+
FreePool (Package);
PackageList->ImagePkg = NULL;
@@ -2257,7 +2304,6 @@ RemoveImagePackages (
return EFI_SUCCESS;
}
-
/**
This function insert a Simple Font package to a package list node.
This is a internal function.
@@ -2277,17 +2323,17 @@ RemoveImagePackages (
**/
EFI_STATUS
InsertSimpleFontPackage (
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_SIMPLE_FONT_PACKAGE_INSTANCE **Package
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_SIMPLE_FONT_PACKAGE_INSTANCE **Package
)
{
- HII_SIMPLE_FONT_PACKAGE_INSTANCE *SimpleFontPackage;
- EFI_STATUS Status;
- EFI_HII_PACKAGE_HEADER Header;
+ HII_SIMPLE_FONT_PACKAGE_INSTANCE *SimpleFontPackage;
+ EFI_STATUS Status;
+ EFI_HII_PACKAGE_HEADER Header;
- if (PackageHdr == NULL || PackageList == NULL) {
+ if ((PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2299,6 +2345,7 @@ InsertSimpleFontPackage (
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
+
SimpleFontPackage->Signature = HII_S_FONT_PACKAGE_SIGNATURE;
//
@@ -2332,12 +2379,13 @@ Error:
if (SimpleFontPackage->SimpleFontPkgHdr != NULL) {
FreePool (SimpleFontPackage->SimpleFontPkgHdr);
}
+
FreePool (SimpleFontPackage);
}
+
return Status;
}
-
/**
This function exports SimpleFont packages to a buffer.
This is a internal function.
@@ -2357,13 +2405,13 @@ Error:
**/
EFI_STATUS
ExportSimpleFontPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
LIST_ENTRY *Link;
@@ -2371,11 +2419,11 @@ ExportSimpleFontPackages (
EFI_STATUS Status;
HII_SIMPLE_FONT_PACKAGE_INSTANCE *Package;
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2383,7 +2431,7 @@ ExportSimpleFontPackages (
Status = EFI_SUCCESS;
for (Link = PackageList->SimpleFontPkgHdr.ForwardLink; Link != &PackageList->SimpleFontPkgHdr; Link = Link->ForwardLink) {
- Package = CR (Link, HII_SIMPLE_FONT_PACKAGE_INSTANCE, SimpleFontEntry, HII_S_FONT_PACKAGE_SIGNATURE);
+ Package = CR (Link, HII_SIMPLE_FONT_PACKAGE_INSTANCE, SimpleFontEntry, HII_S_FONT_PACKAGE_SIGNATURE);
PackageLength += Package->SimpleFontPkgHdr->Header.Length;
if (PackageLength + *ResultSize + UsedSize <= BufferSize) {
//
@@ -2392,7 +2440,7 @@ ExportSimpleFontPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_SIMPLE_FONTS,
Handle
);
@@ -2402,7 +2450,7 @@ ExportSimpleFontPackages (
// Copy SimpleFont package
//
CopyMem (Buffer, Package->SimpleFontPkgHdr, Package->SimpleFontPkgHdr->Header.Length);
- Buffer = (UINT8 *) Buffer + Package->SimpleFontPkgHdr->Header.Length;
+ Buffer = (UINT8 *)Buffer + Package->SimpleFontPkgHdr->Header.Length;
}
}
@@ -2410,7 +2458,6 @@ ExportSimpleFontPackages (
return EFI_SUCCESS;
}
-
/**
This function deletes all Simple Font packages from a package list node.
This is a internal function.
@@ -2427,14 +2474,14 @@ ExportSimpleFontPackages (
**/
EFI_STATUS
RemoveSimpleFontPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- LIST_ENTRY *ListHead;
- HII_SIMPLE_FONT_PACKAGE_INSTANCE *Package;
- EFI_STATUS Status;
+ LIST_ENTRY *ListHead;
+ HII_SIMPLE_FONT_PACKAGE_INSTANCE *Package;
+ EFI_STATUS Status;
ListHead = &PackageList->SimpleFontPkgHdr;
@@ -2448,7 +2495,7 @@ RemoveSimpleFontPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_SIMPLE_FONTS,
Handle
);
@@ -2465,7 +2512,6 @@ RemoveSimpleFontPackages (
return EFI_SUCCESS;
}
-
/**
This function insert a Device path package to a package list node.
This is a internal function.
@@ -2484,17 +2530,18 @@ RemoveSimpleFontPackages (
**/
EFI_STATUS
InsertDevicePathPackage (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- UINT32 PackageLength;
- EFI_HII_PACKAGE_HEADER Header;
+ UINT32 PackageLength;
+ EFI_HII_PACKAGE_HEADER Header;
- if (DevicePath == NULL || PackageList == NULL) {
+ if ((DevicePath == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
//
// Less than one device path package is allowed in one package list.
//
@@ -2502,8 +2549,8 @@ InsertDevicePathPackage (
return EFI_INVALID_PARAMETER;
}
- PackageLength = (UINT32) GetDevicePathSize (DevicePath) + sizeof (EFI_HII_PACKAGE_HEADER);
- PackageList->DevicePathPkg = (UINT8 *) AllocateZeroPool (PackageLength);
+ PackageLength = (UINT32)GetDevicePathSize (DevicePath) + sizeof (EFI_HII_PACKAGE_HEADER);
+ PackageList->DevicePathPkg = (UINT8 *)AllocateZeroPool (PackageLength);
if (PackageList->DevicePathPkg == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -2525,7 +2572,6 @@ InsertDevicePathPackage (
return EFI_SUCCESS;
}
-
/**
This function exports device path package to a buffer.
This is a internal function.
@@ -2545,23 +2591,24 @@ InsertDevicePathPackage (
**/
EFI_STATUS
ExportDevicePathPackage (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
- EFI_STATUS Status;
- UINT8 *Package;
- EFI_HII_PACKAGE_HEADER Header;
+ EFI_STATUS Status;
+ UINT8 *Package;
+ EFI_HII_PACKAGE_HEADER Header;
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2580,7 +2627,7 @@ ExportDevicePathPackage (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_DEVICE_PATH,
Handle
);
@@ -2596,7 +2643,6 @@ ExportDevicePathPackage (
return EFI_SUCCESS;
}
-
/**
This function deletes Device Path package from a package list node.
This is a internal function.
@@ -2612,14 +2658,14 @@ ExportDevicePathPackage (
**/
EFI_STATUS
RemoveDevicePathPackage (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- EFI_STATUS Status;
- UINT8 *Package;
- EFI_HII_PACKAGE_HEADER Header;
+ EFI_STATUS Status;
+ UINT8 *Package;
+ EFI_HII_PACKAGE_HEADER Header;
Package = PackageList->DevicePathPkg;
@@ -2633,7 +2679,7 @@ RemoveDevicePathPackage (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_DEVICE_PATH,
Handle
);
@@ -2651,7 +2697,6 @@ RemoveDevicePathPackage (
return EFI_SUCCESS;
}
-
/**
This function will insert a device path package to package list firstly then
invoke notification functions if any.
@@ -2672,13 +2717,13 @@ RemoveDevicePathPackage (
**/
EFI_STATUS
AddDevicePathPackage (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN OUT HII_DATABASE_RECORD *DatabaseRecord
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN OUT HII_DATABASE_RECORD *DatabaseRecord
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (DevicePath == NULL) {
return EFI_SUCCESS;
@@ -2691,24 +2736,23 @@ AddDevicePathPackage (
// Create a device path package and insert to packagelist
//
Status = InsertDevicePathPackage (
- DevicePath,
- NotifyType,
- DatabaseRecord->PackageList
- );
+ DevicePath,
+ NotifyType,
+ DatabaseRecord->PackageList
+ );
if (EFI_ERROR (Status)) {
return Status;
}
return InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) DatabaseRecord->PackageList->DevicePathPkg,
- EFI_HII_PACKAGE_DEVICE_PATH,
- DatabaseRecord->Handle
- );
+ Private,
+ NotifyType,
+ (VOID *)DatabaseRecord->PackageList->DevicePathPkg,
+ EFI_HII_PACKAGE_DEVICE_PATH,
+ DatabaseRecord->Handle
+ );
}
-
/**
This function insert a Keyboard Layout package to a package list node.
This is a internal function.
@@ -2728,17 +2772,17 @@ AddDevicePathPackage (
**/
EFI_STATUS
InsertKeyboardLayoutPackage (
- IN VOID *PackageHdr,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- OUT HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE **Package
+ IN VOID *PackageHdr,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ OUT HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE **Package
)
{
- HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *KeyboardLayoutPackage;
- EFI_HII_PACKAGE_HEADER PackageHeader;
- EFI_STATUS Status;
+ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *KeyboardLayoutPackage;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
+ EFI_STATUS Status;
- if (PackageHdr == NULL || PackageList == NULL) {
+ if ((PackageHdr == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2752,9 +2796,10 @@ InsertKeyboardLayoutPackage (
Status = EFI_OUT_OF_RESOURCES;
goto Error;
}
+
KeyboardLayoutPackage->Signature = HII_KB_LAYOUT_PACKAGE_SIGNATURE;
- KeyboardLayoutPackage->KeyboardPkg = (UINT8 *) AllocateZeroPool (PackageHeader.Length);
+ KeyboardLayoutPackage->KeyboardPkg = (UINT8 *)AllocateZeroPool (PackageHeader.Length);
if (KeyboardLayoutPackage->KeyboardPkg == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Error;
@@ -2773,18 +2818,17 @@ InsertKeyboardLayoutPackage (
Error:
-
if (KeyboardLayoutPackage != NULL) {
if (KeyboardLayoutPackage->KeyboardPkg != NULL) {
FreePool (KeyboardLayoutPackage->KeyboardPkg);
}
+
FreePool (KeyboardLayoutPackage);
}
return Status;
}
-
/**
This function exports Keyboard Layout packages to a buffer.
This is a internal function.
@@ -2805,26 +2849,26 @@ Error:
**/
EFI_STATUS
ExportKeyboardLayoutPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
)
{
- LIST_ENTRY *Link;
- UINTN PackageLength;
- EFI_STATUS Status;
- HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
- EFI_HII_PACKAGE_HEADER PackageHeader;
+ LIST_ENTRY *Link;
+ UINTN PackageLength;
+ EFI_STATUS Status;
+ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
- if (Private == NULL || PackageList == NULL || ResultSize == NULL) {
+ if ((Private == NULL) || (PackageList == NULL) || (ResultSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2842,7 +2886,7 @@ ExportKeyboardLayoutPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_EXPORT_PACK,
- (EFI_HII_PACKAGE_HEADER *) Package,
+ (EFI_HII_PACKAGE_HEADER *)Package,
EFI_HII_PACKAGE_KEYBOARD_LAYOUT,
Handle
);
@@ -2852,7 +2896,7 @@ ExportKeyboardLayoutPackages (
// Copy Keyboard Layout package
//
CopyMem (Buffer, Package->KeyboardPkg, PackageHeader.Length);
- Buffer = (UINT8 *) Buffer + PackageHeader.Length;
+ Buffer = (UINT8 *)Buffer + PackageHeader.Length;
}
}
@@ -2860,7 +2904,6 @@ ExportKeyboardLayoutPackages (
return EFI_SUCCESS;
}
-
/**
This function deletes all Keyboard Layout packages from a package list node.
This is a internal function.
@@ -2878,15 +2921,15 @@ ExportKeyboardLayoutPackages (
**/
EFI_STATUS
RemoveKeyboardLayoutPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList
)
{
- LIST_ENTRY *ListHead;
- HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
- EFI_HII_PACKAGE_HEADER PackageHeader;
- EFI_STATUS Status;
+ LIST_ENTRY *ListHead;
+ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
+ EFI_STATUS Status;
ListHead = &PackageList->KeyboardLayoutHdr;
@@ -2900,7 +2943,7 @@ RemoveKeyboardLayoutPackages (
Status = InvokeRegisteredFunction (
Private,
EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
- (VOID *) Package,
+ (VOID *)Package,
EFI_HII_PACKAGE_KEYBOARD_LAYOUT,
Handle
);
@@ -2918,7 +2961,6 @@ RemoveKeyboardLayoutPackages (
return EFI_SUCCESS;
}
-
/**
This function will insert a package list to hii database firstly then
invoke notification functions if any. It is the worker function of
@@ -2941,24 +2983,24 @@ RemoveKeyboardLayoutPackages (
**/
EFI_STATUS
AddPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList,
- IN OUT HII_DATABASE_RECORD *DatabaseRecord
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList,
+ IN OUT HII_DATABASE_RECORD *DatabaseRecord
)
{
- EFI_STATUS Status;
- HII_GUID_PACKAGE_INSTANCE *GuidPackage;
- HII_IFR_PACKAGE_INSTANCE *FormPackage;
- HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *KeyboardLayoutPackage;
- HII_STRING_PACKAGE_INSTANCE *StringPackage;
- HII_FONT_PACKAGE_INSTANCE *FontPackage;
- HII_SIMPLE_FONT_PACKAGE_INSTANCE *SimpleFontPackage;
- HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;
- EFI_HII_PACKAGE_HEADER *PackageHdrPtr;
- EFI_HII_PACKAGE_HEADER PackageHeader;
- UINT32 OldPackageListLen;
- BOOLEAN StringPkgIsAdd;
+ EFI_STATUS Status;
+ HII_GUID_PACKAGE_INSTANCE *GuidPackage;
+ HII_IFR_PACKAGE_INSTANCE *FormPackage;
+ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *KeyboardLayoutPackage;
+ HII_STRING_PACKAGE_INSTANCE *StringPackage;
+ HII_FONT_PACKAGE_INSTANCE *FontPackage;
+ HII_SIMPLE_FONT_PACKAGE_INSTANCE *SimpleFontPackage;
+ HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;
+ EFI_HII_PACKAGE_HEADER *PackageHdrPtr;
+ EFI_HII_PACKAGE_HEADER PackageHeader;
+ UINT32 OldPackageListLen;
+ BOOLEAN StringPkgIsAdd;
//
// Initialize Variables
@@ -2978,179 +3020,188 @@ AddPackages (
OldPackageListLen = DatabaseRecord->PackageList->PackageListHdr.PackageLength;
CopyMem (
&DatabaseRecord->PackageList->PackageListHdr,
- (VOID *) PackageList,
+ (VOID *)PackageList,
sizeof (EFI_HII_PACKAGE_LIST_HEADER)
);
if (NotifyType == EFI_HII_DATABASE_NOTIFY_ADD_PACK) {
DatabaseRecord->PackageList->PackageListHdr.PackageLength = OldPackageListLen;
}
- PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *) ((UINT8 *) PackageList + sizeof (EFI_HII_PACKAGE_LIST_HEADER));
+ PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *)((UINT8 *)PackageList + sizeof (EFI_HII_PACKAGE_LIST_HEADER));
CopyMem (&PackageHeader, PackageHdrPtr, sizeof (EFI_HII_PACKAGE_HEADER));
Status = EFI_SUCCESS;
while (PackageHeader.Type != EFI_HII_PACKAGE_END) {
switch (PackageHeader.Type) {
- case EFI_HII_PACKAGE_TYPE_GUID:
- Status = InsertGuidPackage (
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &GuidPackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) GuidPackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- break;
- case EFI_HII_PACKAGE_FORMS:
- Status = InsertFormPackage (
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &FormPackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) FormPackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- //
- // If Hii runtime support feature is enabled,
- // will export Hii info for runtime use after ReadyToBoot event triggered.
- // If some driver add/update/remove packages from HiiDatabase after ReadyToBoot,
- // will need to export the content of HiiDatabase.
- // But if form packages added/updated, also need to export the ConfigResp string.
- //
- if (gExportAfterReadyToBoot) {
- gExportConfigResp = TRUE;
- }
- break;
- case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
- Status = InsertKeyboardLayoutPackage (
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &KeyboardLayoutPackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) KeyboardLayoutPackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- break;
- case EFI_HII_PACKAGE_STRINGS:
- Status = InsertStringPackage (
- Private,
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &StringPackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- ASSERT (StringPackage != NULL);
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) StringPackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- StringPkgIsAdd = TRUE;
- break;
- case EFI_HII_PACKAGE_FONTS:
- Status = InsertFontPackage (
- Private,
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &FontPackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) FontPackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- break;
- case EFI_HII_PACKAGE_IMAGES:
- Status = InsertImagePackage (
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &ImagePackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) ImagePackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- break;
- case EFI_HII_PACKAGE_SIMPLE_FONTS:
- Status = InsertSimpleFontPackage (
- PackageHdrPtr,
- NotifyType,
- DatabaseRecord->PackageList,
- &SimpleFontPackage
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
- Status = InvokeRegisteredFunction (
- Private,
- NotifyType,
- (VOID *) SimpleFontPackage,
- (UINT8) (PackageHeader.Type),
- DatabaseRecord->Handle
- );
- break;
- case EFI_HII_PACKAGE_DEVICE_PATH:
- Status = AddDevicePathPackage (
- Private,
- NotifyType,
- (EFI_DEVICE_PATH_PROTOCOL *) ((UINT8 *) PackageHdrPtr + sizeof (EFI_HII_PACKAGE_HEADER)),
- DatabaseRecord
- );
- break;
- default:
- break;
+ case EFI_HII_PACKAGE_TYPE_GUID:
+ Status = InsertGuidPackage (
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &GuidPackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)GuidPackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ break;
+ case EFI_HII_PACKAGE_FORMS:
+ Status = InsertFormPackage (
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &FormPackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)FormPackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ //
+ // If Hii runtime support feature is enabled,
+ // will export Hii info for runtime use after ReadyToBoot event triggered.
+ // If some driver add/update/remove packages from HiiDatabase after ReadyToBoot,
+ // will need to export the content of HiiDatabase.
+ // But if form packages added/updated, also need to export the ConfigResp string.
+ //
+ if (gExportAfterReadyToBoot) {
+ gExportConfigResp = TRUE;
+ }
+
+ break;
+ case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
+ Status = InsertKeyboardLayoutPackage (
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &KeyboardLayoutPackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)KeyboardLayoutPackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ break;
+ case EFI_HII_PACKAGE_STRINGS:
+ Status = InsertStringPackage (
+ Private,
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &StringPackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ ASSERT (StringPackage != NULL);
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)StringPackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ StringPkgIsAdd = TRUE;
+ break;
+ case EFI_HII_PACKAGE_FONTS:
+ Status = InsertFontPackage (
+ Private,
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &FontPackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)FontPackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ break;
+ case EFI_HII_PACKAGE_IMAGES:
+ Status = InsertImagePackage (
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &ImagePackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)ImagePackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ break;
+ case EFI_HII_PACKAGE_SIMPLE_FONTS:
+ Status = InsertSimpleFontPackage (
+ PackageHdrPtr,
+ NotifyType,
+ DatabaseRecord->PackageList,
+ &SimpleFontPackage
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = InvokeRegisteredFunction (
+ Private,
+ NotifyType,
+ (VOID *)SimpleFontPackage,
+ (UINT8)(PackageHeader.Type),
+ DatabaseRecord->Handle
+ );
+ break;
+ case EFI_HII_PACKAGE_DEVICE_PATH:
+ Status = AddDevicePathPackage (
+ Private,
+ NotifyType,
+ (EFI_DEVICE_PATH_PROTOCOL *)((UINT8 *)PackageHdrPtr + sizeof (EFI_HII_PACKAGE_HEADER)),
+ DatabaseRecord
+ );
+ break;
+ default:
+ break;
}
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// goto header of next package
//
- PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *) ((UINT8 *) PackageHdrPtr + PackageHeader.Length);
+ PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *)((UINT8 *)PackageHdrPtr + PackageHeader.Length);
CopyMem (&PackageHeader, PackageHdrPtr, sizeof (EFI_HII_PACKAGE_HEADER));
}
@@ -3164,7 +3215,6 @@ AddPackages (
return Status;
}
-
/**
This function exports a package list to a buffer. It is the worker function
of HiiExportPackageList.
@@ -3186,23 +3236,23 @@ AddPackages (
**/
EFI_STATUS
ExportPackageList (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN OUT UINTN *UsedSize,
- IN UINTN BufferSize,
- OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN OUT UINTN *UsedSize,
+ IN UINTN BufferSize,
+ OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
)
{
- EFI_STATUS Status;
- UINTN ResultSize;
- EFI_HII_PACKAGE_HEADER EndofPackageList;
+ EFI_STATUS Status;
+ UINTN ResultSize;
+ EFI_HII_PACKAGE_HEADER EndofPackageList;
ASSERT (Private != NULL && PackageList != NULL && UsedSize != NULL);
ASSERT (Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);
ASSERT (IsHiiHandleValid (Handle));
- if (BufferSize > 0 && Buffer == NULL ) {
+ if ((BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -3212,8 +3262,9 @@ ExportPackageList (
//
ResultSize = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
if (ResultSize + *UsedSize <= BufferSize) {
- CopyMem ((VOID *) Buffer, PackageList, ResultSize);
+ CopyMem ((VOID *)Buffer, PackageList, ResultSize);
}
+
//
// Copy the packages and invoke EXPORT_PACK notify functions if exists.
//
@@ -3223,96 +3274,104 @@ ExportPackageList (
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportFormPackages (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportKeyboardLayoutPackages (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportStringPackages (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportFontPackages (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportImagePackages (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportSimpleFontPackages (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
Status = ExportDevicePathPackage (
Private,
Handle,
PackageList,
*UsedSize,
BufferSize,
- (VOID *) ((UINT8 *) Buffer + ResultSize),
+ (VOID *)((UINT8 *)Buffer + ResultSize),
&ResultSize
);
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Append the package list end.
//
@@ -3320,8 +3379,8 @@ ExportPackageList (
EndofPackageList.Type = EFI_HII_PACKAGE_END;
if (ResultSize + *UsedSize + sizeof (EFI_HII_PACKAGE_HEADER) <= BufferSize) {
CopyMem (
- (VOID *) ((UINT8 *) Buffer + ResultSize),
- (VOID *) &EndofPackageList,
+ (VOID *)((UINT8 *)Buffer + ResultSize),
+ (VOID *)&EndofPackageList,
sizeof (EFI_HII_PACKAGE_HEADER)
);
}
@@ -3341,40 +3400,41 @@ This function mainly use to get and update ConfigResp string.
**/
EFI_STATUS
-HiiGetConfigRespInfo(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This
+HiiGetConfigRespInfo (
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_STRING ConfigAltResp;
- UINTN ConfigSize;
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_STRING ConfigAltResp;
+ UINTN ConfigSize;
- ConfigAltResp = NULL;
- ConfigSize = 0;
+ ConfigAltResp = NULL;
+ ConfigSize = 0;
Private = HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
//
// Get ConfigResp string
//
- Status = HiiConfigRoutingExportConfig(&Private->ConfigRouting,&ConfigAltResp);
+ Status = HiiConfigRoutingExportConfig (&Private->ConfigRouting, &ConfigAltResp);
- if (!EFI_ERROR (Status)){
- ConfigSize = StrSize(ConfigAltResp);
- if (ConfigSize > gConfigRespSize){
+ if (!EFI_ERROR (Status)) {
+ ConfigSize = StrSize (ConfigAltResp);
+ if (ConfigSize > gConfigRespSize) {
//
// Do 25% overallocation to minimize the number of memory allocations after ReadyToBoot.
// Since lots of allocation after ReadyToBoot may change memory map and cause S4 resume issue.
//
gConfigRespSize = ConfigSize + (ConfigSize >> 2);
- if (gRTConfigRespBuffer != NULL){
- FreePool(gRTConfigRespBuffer);
+ if (gRTConfigRespBuffer != NULL) {
+ FreePool (gRTConfigRespBuffer);
DEBUG ((DEBUG_WARN, "[HiiDatabase]: Memory allocation is required after ReadyToBoot, which may change memory map and cause S4 resume issue.\n"));
}
- gRTConfigRespBuffer = (EFI_STRING) AllocateRuntimeZeroPool (gConfigRespSize);
- if (gRTConfigRespBuffer == NULL){
- FreePool(ConfigAltResp);
+
+ gRTConfigRespBuffer = (EFI_STRING)AllocateRuntimeZeroPool (gConfigRespSize);
+ if (gRTConfigRespBuffer == NULL) {
+ FreePool (ConfigAltResp);
DEBUG ((DEBUG_ERROR, "[HiiDatabase]: No enough memory resource to store the ConfigResp string.\n"));
//
// Remove from the System Table when the configuration runtime buffer is freed.
@@ -3383,15 +3443,15 @@ HiiGetConfigRespInfo(
return EFI_OUT_OF_RESOURCES;
}
} else {
- ZeroMem(gRTConfigRespBuffer,gConfigRespSize);
+ ZeroMem (gRTConfigRespBuffer, gConfigRespSize);
}
- CopyMem(gRTConfigRespBuffer,ConfigAltResp,ConfigSize);
+
+ CopyMem (gRTConfigRespBuffer, ConfigAltResp, ConfigSize);
gBS->InstallConfigurationTable (&gEfiHiiConfigRoutingProtocolGuid, gRTConfigRespBuffer);
- FreePool(ConfigAltResp);
+ FreePool (ConfigAltResp);
}
return EFI_SUCCESS;
-
}
/**
@@ -3404,36 +3464,37 @@ This is an internal function,mainly use to get HiiDatabase information.
**/
EFI_STATUS
-HiiGetDatabaseInfo(
- IN CONST EFI_HII_DATABASE_PROTOCOL *This
+HiiGetDatabaseInfo (
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This
)
{
- EFI_STATUS Status;
- EFI_HII_PACKAGE_LIST_HEADER *DatabaseInfo;
- UINTN DatabaseInfoSize;
+ EFI_STATUS Status;
+ EFI_HII_PACKAGE_LIST_HEADER *DatabaseInfo;
+ UINTN DatabaseInfoSize;
- DatabaseInfo = NULL;
- DatabaseInfoSize = 0;
+ DatabaseInfo = NULL;
+ DatabaseInfoSize = 0;
//
// Get HiiDatabase information.
//
- Status = HiiExportPackageLists(This, NULL, &DatabaseInfoSize, DatabaseInfo);
+ Status = HiiExportPackageLists (This, NULL, &DatabaseInfoSize, DatabaseInfo);
- ASSERT(Status == EFI_BUFFER_TOO_SMALL);
+ ASSERT (Status == EFI_BUFFER_TOO_SMALL);
- if(DatabaseInfoSize > gDatabaseInfoSize ) {
+ if (DatabaseInfoSize > gDatabaseInfoSize ) {
//
// Do 25% overallocation to minimize the number of memory allocations after ReadyToBoot.
// Since lots of allocation after ReadyToBoot may change memory map and cause S4 resume issue.
//
gDatabaseInfoSize = DatabaseInfoSize + (DatabaseInfoSize >> 2);
- if (gRTDatabaseInfoBuffer != NULL){
- FreePool(gRTDatabaseInfoBuffer);
+ if (gRTDatabaseInfoBuffer != NULL) {
+ FreePool (gRTDatabaseInfoBuffer);
DEBUG ((DEBUG_WARN, "[HiiDatabase]: Memory allocation is required after ReadyToBoot, which may change memory map and cause S4 resume issue.\n"));
}
+
gRTDatabaseInfoBuffer = AllocateRuntimeZeroPool (gDatabaseInfoSize);
- if (gRTDatabaseInfoBuffer == NULL){
+ if (gRTDatabaseInfoBuffer == NULL) {
DEBUG ((DEBUG_ERROR, "[HiiDatabase]: No enough memory resource to store the HiiDatabase info.\n"));
//
// Remove from the System Table when the configuration runtime buffer is freed.
@@ -3442,14 +3503,14 @@ HiiGetDatabaseInfo(
return EFI_OUT_OF_RESOURCES;
}
} else {
- ZeroMem(gRTDatabaseInfoBuffer,gDatabaseInfoSize);
+ ZeroMem (gRTDatabaseInfoBuffer, gDatabaseInfoSize);
}
- Status = HiiExportPackageLists(This, NULL, &DatabaseInfoSize, gRTDatabaseInfoBuffer);
+
+ Status = HiiExportPackageLists (This, NULL, &DatabaseInfoSize, gRTDatabaseInfoBuffer);
ASSERT_EFI_ERROR (Status);
gBS->InstallConfigurationTable (&gEfiHiiDatabaseProtocolGuid, gRTDatabaseInfoBuffer);
return EFI_SUCCESS;
-
}
/**
@@ -3483,19 +3544,19 @@ HiiNewPackageList (
OUT EFI_HII_HANDLE *Handle
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_RECORD *DatabaseRecord;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- LIST_ENTRY *Link;
- EFI_GUID PackageListGuid;
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_RECORD *DatabaseRecord;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ LIST_ENTRY *Link;
+ EFI_GUID PackageListGuid;
- if (This == NULL || PackageList == NULL || Handle == NULL) {
+ if ((This == NULL) || (PackageList == NULL) || (Handle == NULL)) {
return EFI_INVALID_PARAMETER;
}
Private = HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
- CopyMem (&PackageListGuid, (VOID *) PackageList, sizeof (EFI_GUID));
+ CopyMem (&PackageListGuid, (VOID *)PackageList, sizeof (EFI_GUID));
//
// Check the Package list GUID to guarantee this GUID is unique in database.
@@ -3504,8 +3565,10 @@ HiiNewPackageList (
DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if (CompareGuid (
&(DatabaseRecord->PackageList->PackageListHdr.PackageListGuid),
- &PackageListGuid) &&
- DatabaseRecord->DriverHandle == DriverHandle) {
+ &PackageListGuid
+ ) &&
+ (DatabaseRecord->DriverHandle == DriverHandle))
+ {
return EFI_INVALID_PARAMETER;
}
}
@@ -3539,7 +3602,7 @@ HiiNewPackageList (
Status = gBS->HandleProtocol (
DriverHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &DevicePath
+ (VOID **)&DevicePath
);
if (!EFI_ERROR (Status)) {
Status = AddDevicePathPackage (Private, EFI_HII_DATABASE_NOTIFY_NEW_PACK, DevicePath, DatabaseRecord);
@@ -3555,6 +3618,7 @@ HiiNewPackageList (
if (gExportAfterReadyToBoot) {
HiiGetDatabaseInfo (This);
}
+
EfiReleaseLock (&mHiiDatabaseLock);
//
@@ -3576,7 +3640,6 @@ HiiNewPackageList (
return EFI_SUCCESS;
}
-
/**
This function removes the package list that is associated with Handle
from the HII database. Before removing the package, any registered functions
@@ -3596,8 +3659,8 @@ HiiNewPackageList (
EFI_STATUS
EFIAPI
HiiRemovePackageList (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE Handle
)
{
EFI_STATUS Status;
@@ -3625,7 +3688,7 @@ HiiRemovePackageList (
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if (Node->Handle == Handle) {
- PackageList = (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (Node->PackageList);
+ PackageList = (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(Node->PackageList);
ASSERT (PackageList != NULL);
//
@@ -3637,36 +3700,43 @@ HiiRemovePackageList (
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveFormPackages (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveKeyboardLayoutPackages (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveStringPackages (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveFontPackages (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveImagePackages (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveSimpleFontPackages (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
Status = RemoveDevicePathPackage (Private, Handle, PackageList);
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
@@ -3678,7 +3748,7 @@ HiiRemovePackageList (
//
RemoveEntryList (&Node->DatabaseEntry);
- HiiHandle = (HII_HANDLE *) Handle;
+ HiiHandle = (HII_HANDLE *)Handle;
RemoveEntryList (&HiiHandle->Handle);
Private->HiiHandleCount--;
ASSERT (Private->HiiHandleCount >= 0);
@@ -3695,6 +3765,7 @@ HiiRemovePackageList (
if (gExportAfterReadyToBoot) {
HiiGetDatabaseInfo (This);
}
+
EfiReleaseLock (&mHiiDatabaseLock);
//
@@ -3713,6 +3784,7 @@ HiiRemovePackageList (
if (gExportAfterReadyToBoot && gExportConfigResp) {
HiiGetConfigRespInfo (This);
}
+
return EFI_SUCCESS;
}
}
@@ -3721,7 +3793,6 @@ HiiRemovePackageList (
return EFI_NOT_FOUND;
}
-
/**
This function updates the existing package list (which has the specified Handle)
in the HII databases, using the new package list specified by PackageList.
@@ -3756,7 +3827,7 @@ HiiUpdatePackageList (
HII_DATABASE_PACKAGE_LIST_INSTANCE *OldPackageList;
EFI_HII_PACKAGE_HEADER PackageHeader;
- if (This == NULL || PackageList == NULL) {
+ if ((This == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -3766,7 +3837,7 @@ HiiUpdatePackageList (
Private = HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
- PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *) ((UINT8 *) PackageList + sizeof (EFI_HII_PACKAGE_LIST_HEADER));
+ PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *)((UINT8 *)PackageList + sizeof (EFI_HII_PACKAGE_LIST_HEADER));
Status = EFI_SUCCESS;
@@ -3785,30 +3856,30 @@ HiiUpdatePackageList (
CopyMem (&PackageHeader, PackageHdrPtr, sizeof (EFI_HII_PACKAGE_HEADER));
while (PackageHeader.Type != EFI_HII_PACKAGE_END) {
switch (PackageHeader.Type) {
- case EFI_HII_PACKAGE_TYPE_GUID:
- Status = RemoveGuidPackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_FORMS:
- Status = RemoveFormPackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
- Status = RemoveKeyboardLayoutPackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_STRINGS:
- Status = RemoveStringPackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_FONTS:
- Status = RemoveFontPackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_IMAGES:
- Status = RemoveImagePackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_SIMPLE_FONTS:
- Status = RemoveSimpleFontPackages (Private, Handle, OldPackageList);
- break;
- case EFI_HII_PACKAGE_DEVICE_PATH:
- Status = RemoveDevicePathPackage (Private, Handle, OldPackageList);
- break;
+ case EFI_HII_PACKAGE_TYPE_GUID:
+ Status = RemoveGuidPackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_FORMS:
+ Status = RemoveFormPackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
+ Status = RemoveKeyboardLayoutPackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_STRINGS:
+ Status = RemoveStringPackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_FONTS:
+ Status = RemoveFontPackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_IMAGES:
+ Status = RemoveImagePackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_SIMPLE_FONTS:
+ Status = RemoveSimpleFontPackages (Private, Handle, OldPackageList);
+ break;
+ case EFI_HII_PACKAGE_DEVICE_PATH:
+ Status = RemoveDevicePathPackage (Private, Handle, OldPackageList);
+ break;
}
if (EFI_ERROR (Status)) {
@@ -3816,7 +3887,7 @@ HiiUpdatePackageList (
return Status;
}
- PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *) ((UINT8 *) PackageHdrPtr + PackageHeader.Length);
+ PackageHdrPtr = (EFI_HII_PACKAGE_HEADER *)((UINT8 *)PackageHdrPtr + PackageHeader.Length);
CopyMem (&PackageHeader, PackageHdrPtr, sizeof (EFI_HII_PACKAGE_HEADER));
}
@@ -3829,9 +3900,10 @@ HiiUpdatePackageList (
// Check whether need to get the Database info.
// Only after ReadyToBoot, need to do the export.
//
- if (gExportAfterReadyToBoot && Status == EFI_SUCCESS) {
+ if (gExportAfterReadyToBoot && (Status == EFI_SUCCESS)) {
HiiGetDatabaseInfo (This);
}
+
EfiReleaseLock (&mHiiDatabaseLock);
//
@@ -3847,18 +3919,18 @@ HiiUpdatePackageList (
// Check whether need to get the configuration setting info from HII drivers.
// When after ReadyToBoot and need to do the export for form package update.
//
- if (gExportAfterReadyToBoot && gExportConfigResp && Status == EFI_SUCCESS) {
+ if (gExportAfterReadyToBoot && gExportConfigResp && (Status == EFI_SUCCESS)) {
HiiGetConfigRespInfo (This);
}
return Status;
}
}
+
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_NOT_FOUND;
}
-
/**
This function returns a list of the package handles of the specified type
that are currently active in the database. The pseudo-type
@@ -3896,11 +3968,11 @@ HiiUpdatePackageList (
EFI_STATUS
EFIAPI
HiiListPackageLists (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN OUT UINTN *HandleBufferLength,
- OUT EFI_HII_HANDLE *Handle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN UINT8 PackageType,
+ IN CONST EFI_GUID *PackageGuid,
+ IN OUT UINTN *HandleBufferLength,
+ OUT EFI_HII_HANDLE *Handle
)
{
HII_GUID_PACKAGE_INSTANCE *GuidPackage;
@@ -3916,77 +3988,89 @@ HiiListPackageLists (
//
// Check input parameters
//
- if (This == NULL || HandleBufferLength == NULL) {
+ if ((This == NULL) || (HandleBufferLength == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (*HandleBufferLength > 0 && Handle == NULL) {
+
+ if ((*HandleBufferLength > 0) && (Handle == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if ((PackageType == EFI_HII_PACKAGE_TYPE_GUID && PackageGuid == NULL) ||
- (PackageType != EFI_HII_PACKAGE_TYPE_GUID && PackageGuid != NULL)) {
+
+ if (((PackageType == EFI_HII_PACKAGE_TYPE_GUID) && (PackageGuid == NULL)) ||
+ ((PackageType != EFI_HII_PACKAGE_TYPE_GUID) && (PackageGuid != NULL)))
+ {
return EFI_INVALID_PARAMETER;
}
Private = HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
Matched = FALSE;
- Result = (HII_HANDLE **) Handle;
+ Result = (HII_HANDLE **)Handle;
ResultSize = 0;
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
- Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
- PackageList = (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (Node->PackageList);
+ Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
+ PackageList = (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(Node->PackageList);
switch (PackageType) {
case EFI_HII_PACKAGE_TYPE_GUID:
for (Link1 = PackageList->GuidPkgHdr.ForwardLink; Link1 != &PackageList->GuidPkgHdr; Link1 = Link1->ForwardLink) {
GuidPackage = CR (Link1, HII_GUID_PACKAGE_INSTANCE, GuidEntry, HII_GUID_PACKAGE_SIGNATURE);
if (CompareGuid (
- (EFI_GUID *) PackageGuid,
- (EFI_GUID *) (GuidPackage->GuidPkg + sizeof (EFI_HII_PACKAGE_HEADER))
- )) {
+ (EFI_GUID *)PackageGuid,
+ (EFI_GUID *)(GuidPackage->GuidPkg + sizeof (EFI_HII_PACKAGE_HEADER))
+ ))
+ {
Matched = TRUE;
break;
}
}
+
break;
case EFI_HII_PACKAGE_FORMS:
if (!IsListEmpty (&PackageList->FormPkgHdr)) {
Matched = TRUE;
}
+
break;
case EFI_HII_PACKAGE_KEYBOARD_LAYOUT:
if (!IsListEmpty (&PackageList->KeyboardLayoutHdr)) {
Matched = TRUE;
}
+
break;
case EFI_HII_PACKAGE_STRINGS:
if (!IsListEmpty (&PackageList->StringPkgHdr)) {
Matched = TRUE;
}
+
break;
case EFI_HII_PACKAGE_FONTS:
if (!IsListEmpty (&PackageList->FontPkgHdr)) {
Matched = TRUE;
}
+
break;
case EFI_HII_PACKAGE_IMAGES:
if (PackageList->ImagePkg != NULL) {
Matched = TRUE;
}
+
break;
case EFI_HII_PACKAGE_SIMPLE_FONTS:
if (!IsListEmpty (&PackageList->SimpleFontPkgHdr)) {
Matched = TRUE;
}
+
break;
case EFI_HII_PACKAGE_DEVICE_PATH:
if (PackageList->DevicePathPkg != NULL) {
Matched = TRUE;
}
+
break;
- //
- // Pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package handles
- // to be listed.
- //
+ //
+ // Pseudo-type EFI_HII_PACKAGE_TYPE_ALL will cause all package handles
+ // to be listed.
+ //
case EFI_HII_PACKAGE_TYPE_ALL:
Matched = TRUE;
break;
@@ -4003,6 +4087,7 @@ HiiListPackageLists (
*Result++ = Node->Handle;
}
}
+
Matched = FALSE;
}
@@ -4019,7 +4104,6 @@ HiiListPackageLists (
return EFI_SUCCESS;
}
-
/**
This function will export one or all package lists in the database to a buffer.
For each package list exported, this function will call functions registered
@@ -4051,24 +4135,26 @@ HiiListPackageLists (
EFI_STATUS
EFIAPI
HiiExportPackageLists (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle,
- IN OUT UINTN *BufferSize,
- OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT UINTN *BufferSize,
+ OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
)
{
- LIST_ENTRY *Link;
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_RECORD *Node;
- UINTN UsedSize;
+ LIST_ENTRY *Link;
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_RECORD *Node;
+ UINTN UsedSize;
- if (This == NULL || BufferSize == NULL) {
+ if ((This == NULL) || (BufferSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (*BufferSize > 0 && Buffer == NULL) {
+
+ if ((*BufferSize > 0) && (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if ((Handle != NULL) && (!IsHiiHandleValid (Handle))) {
return EFI_NOT_FOUND;
}
@@ -4085,17 +4171,17 @@ HiiExportPackageLists (
Status = ExportPackageList (
Private,
Node->Handle,
- (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (Node->PackageList),
+ (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(Node->PackageList),
&UsedSize,
*BufferSize,
- (EFI_HII_PACKAGE_LIST_HEADER *)((UINT8 *) Buffer + UsedSize)
+ (EFI_HII_PACKAGE_LIST_HEADER *)((UINT8 *)Buffer + UsedSize)
);
ASSERT_EFI_ERROR (Status);
- } else if (Handle != NULL && Node->Handle == Handle) {
+ } else if ((Handle != NULL) && (Node->Handle == Handle)) {
Status = ExportPackageList (
Private,
Handle,
- (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (Node->PackageList),
+ (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(Node->PackageList),
&UsedSize,
*BufferSize,
Buffer
@@ -4105,22 +4191,23 @@ HiiExportPackageLists (
*BufferSize = UsedSize;
return EFI_BUFFER_TOO_SMALL;
}
+
return EFI_SUCCESS;
}
}
- if (Handle == NULL && UsedSize != 0) {
+ if ((Handle == NULL) && (UsedSize != 0)) {
if (*BufferSize < UsedSize) {
*BufferSize = UsedSize;
return EFI_BUFFER_TOO_SMALL;
}
+
return EFI_SUCCESS;
}
return EFI_NOT_FOUND;
}
-
/**
This function registers a function which will be called when specified actions related to packages of
the specified type occur in the HII database. By registering a function, other HII-related drivers are
@@ -4160,23 +4247,25 @@ HiiExportPackageLists (
EFI_STATUS
EFIAPI
HiiRegisterPackageNotify (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- OUT EFI_HANDLE *NotifyHandle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN UINT8 PackageType,
+ IN CONST EFI_GUID *PackageGuid,
+ IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ OUT EFI_HANDLE *NotifyHandle
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_NOTIFY *Notify;
- EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_NOTIFY *Notify;
+ EFI_STATUS Status;
- if (This == NULL || NotifyHandle == NULL) {
+ if ((This == NULL) || (NotifyHandle == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if ((PackageType == EFI_HII_PACKAGE_TYPE_GUID && PackageGuid == NULL) ||
- (PackageType != EFI_HII_PACKAGE_TYPE_GUID && PackageGuid != NULL)) {
+
+ if (((PackageType == EFI_HII_PACKAGE_TYPE_GUID) && (PackageGuid == NULL)) ||
+ ((PackageType != EFI_HII_PACKAGE_TYPE_GUID) && (PackageGuid != NULL)))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -4185,7 +4274,7 @@ HiiRegisterPackageNotify (
//
// Allocate a notification node
//
- Notify = (HII_DATABASE_NOTIFY *) AllocateZeroPool (sizeof (HII_DATABASE_NOTIFY));
+ Notify = (HII_DATABASE_NOTIFY *)AllocateZeroPool (sizeof (HII_DATABASE_NOTIFY));
if (Notify == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -4206,8 +4295,8 @@ HiiRegisterPackageNotify (
//
Notify->Signature = HII_DATABASE_NOTIFY_SIGNATURE;
Notify->PackageType = PackageType;
- Notify->PackageGuid = (EFI_GUID *) PackageGuid;
- Notify->PackageNotifyFn = (EFI_HII_DATABASE_NOTIFY) PackageNotifyFn;
+ Notify->PackageGuid = (EFI_GUID *)PackageGuid;
+ Notify->PackageNotifyFn = (EFI_HII_DATABASE_NOTIFY)PackageNotifyFn;
Notify->NotifyType = NotifyType;
InsertTailList (&Private->DatabaseNotifyList, &Notify->DatabaseNotifyEntry);
@@ -4216,7 +4305,6 @@ HiiRegisterPackageNotify (
return EFI_SUCCESS;
}
-
/**
Removes the specified HII database package-related notification.
@@ -4234,14 +4322,14 @@ HiiRegisterPackageNotify (
EFI_STATUS
EFIAPI
HiiUnregisterPackageNotify (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HANDLE NotificationHandle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HANDLE NotificationHandle
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_NOTIFY *Notify;
- LIST_ENTRY *Link;
- EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_NOTIFY *Notify;
+ LIST_ENTRY *Link;
+ EFI_STATUS Status;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
@@ -4288,7 +4376,6 @@ HiiUnregisterPackageNotify (
return EFI_NOT_FOUND;
}
-
/**
This routine retrieves an array of GUID values for each keyboard layout that
was previously registered in the system.
@@ -4316,44 +4403,45 @@ HiiUnregisterPackageNotify (
EFI_STATUS
EFIAPI
HiiFindKeyboardLayouts (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN OUT UINT16 *KeyGuidBufferLength,
- OUT EFI_GUID *KeyGuidBuffer
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN OUT UINT16 *KeyGuidBufferLength,
+ OUT EFI_GUID *KeyGuidBuffer
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_RECORD *Node;
- HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
- LIST_ENTRY *Link;
- LIST_ENTRY *Link1;
- UINT16 ResultSize;
- UINTN Index;
- UINT16 LayoutCount;
- UINT16 LayoutLength;
- UINT8 *Layout;
- HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
-
- if (This == NULL || KeyGuidBufferLength == NULL) {
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_RECORD *Node;
+ HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *Link1;
+ UINT16 ResultSize;
+ UINTN Index;
+ UINT16 LayoutCount;
+ UINT16 LayoutLength;
+ UINT8 *Layout;
+ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
+
+ if ((This == NULL) || (KeyGuidBufferLength == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (*KeyGuidBufferLength > 0 && KeyGuidBuffer == NULL) {
+ if ((*KeyGuidBufferLength > 0) && (KeyGuidBuffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
- Private = HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
- ResultSize = 0;
+ Private = HII_DATABASE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ ResultSize = 0;
//
// Search all package lists in whole database to retrieve keyboard layout.
//
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
- Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
+ Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
PackageList = Node->PackageList;
for (Link1 = PackageList->KeyboardLayoutHdr.ForwardLink;
Link1 != &PackageList->KeyboardLayoutHdr;
Link1 = Link1->ForwardLink
- ) {
+ )
+ {
//
// Find out all Keyboard Layout packages in this package list.
//
@@ -4363,10 +4451,10 @@ HiiFindKeyboardLayouts (
KeyboardEntry,
HII_KB_LAYOUT_PACKAGE_SIGNATURE
);
- Layout = (UINT8 *) Package->KeyboardPkg + sizeof (EFI_HII_PACKAGE_HEADER) + sizeof (UINT16);
+ Layout = (UINT8 *)Package->KeyboardPkg + sizeof (EFI_HII_PACKAGE_HEADER) + sizeof (UINT16);
CopyMem (
&LayoutCount,
- (UINT8 *) Package->KeyboardPkg + sizeof (EFI_HII_PACKAGE_HEADER),
+ (UINT8 *)Package->KeyboardPkg + sizeof (EFI_HII_PACKAGE_HEADER),
sizeof (UINT16)
);
for (Index = 0; Index < LayoutCount; Index++) {
@@ -4393,7 +4481,6 @@ HiiFindKeyboardLayouts (
return EFI_SUCCESS;
}
-
/**
This routine retrieves the requested keyboard layout. The layout is a physical description of the keys
on a keyboard and the character(s) that are associated with a particular set of key strokes.
@@ -4423,27 +4510,28 @@ HiiFindKeyboardLayouts (
EFI_STATUS
EFIAPI
HiiGetKeyboardLayout (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_GUID *KeyGuid,
- IN OUT UINT16 *KeyboardLayoutLength,
- OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN CONST EFI_GUID *KeyGuid,
+ IN OUT UINT16 *KeyboardLayoutLength,
+ OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_RECORD *Node;
- HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
- LIST_ENTRY *Link;
- LIST_ENTRY *Link1;
- UINTN Index;
- UINT8 *Layout;
- UINT16 LayoutCount;
- UINT16 LayoutLength;
- HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
-
- if (This == NULL || KeyboardLayoutLength == NULL) {
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_RECORD *Node;
+ HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *Link1;
+ UINTN Index;
+ UINT8 *Layout;
+ UINT16 LayoutCount;
+ UINT16 LayoutLength;
+ HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE *Package;
+
+ if ((This == NULL) || (KeyboardLayoutLength == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (*KeyboardLayoutLength > 0 && KeyboardLayout == NULL) {
+
+ if ((*KeyboardLayoutLength > 0) && (KeyboardLayout == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -4455,22 +4543,25 @@ HiiGetKeyboardLayout (
if (Private->CurrentLayout == NULL) {
return EFI_NOT_FOUND;
}
+
CopyMem (&LayoutLength, Private->CurrentLayout, sizeof (UINT16));
if (*KeyboardLayoutLength < LayoutLength) {
*KeyboardLayoutLength = LayoutLength;
return EFI_BUFFER_TOO_SMALL;
}
+
CopyMem (KeyboardLayout, Private->CurrentLayout, LayoutLength);
return EFI_SUCCESS;
}
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
- Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
- PackageList = (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (Node->PackageList);
+ Node = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
+ PackageList = (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(Node->PackageList);
for (Link1 = PackageList->KeyboardLayoutHdr.ForwardLink;
Link1 != &PackageList->KeyboardLayoutHdr;
Link1 = Link1->ForwardLink
- ) {
+ )
+ {
Package = CR (
Link1,
HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE,
@@ -4478,7 +4569,7 @@ HiiGetKeyboardLayout (
HII_KB_LAYOUT_PACKAGE_SIGNATURE
);
- Layout = (UINT8 *) Package->KeyboardPkg +
+ Layout = (UINT8 *)Package->KeyboardPkg +
sizeof (EFI_HII_PACKAGE_HEADER) + sizeof (UINT16);
CopyMem (&LayoutCount, Layout - sizeof (UINT16), sizeof (UINT16));
for (Index = 0; Index < LayoutCount; Index++) {
@@ -4492,6 +4583,7 @@ HiiGetKeyboardLayout (
return EFI_BUFFER_TOO_SMALL;
}
}
+
Layout = Layout + LayoutLength;
}
}
@@ -4500,7 +4592,6 @@ HiiGetKeyboardLayout (
return EFI_NOT_FOUND;
}
-
/**
This routine sets the default keyboard layout to the one referenced by KeyGuid. When this routine
is called, an event will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID
@@ -4521,16 +4612,16 @@ HiiGetKeyboardLayout (
EFI_STATUS
EFIAPI
HiiSetKeyboardLayout (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_GUID *KeyGuid
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN CONST EFI_GUID *KeyGuid
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout;
- UINT16 KeyboardLayoutLength;
- EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout;
+ UINT16 KeyboardLayoutLength;
+ EFI_STATUS Status;
- if (This == NULL || KeyGuid == NULL) {
+ if ((This == NULL) || (KeyGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -4549,12 +4640,12 @@ HiiSetKeyboardLayout (
//
KeyboardLayoutLength = 0;
KeyboardLayout = NULL;
- Status = HiiGetKeyboardLayout (This, KeyGuid, &KeyboardLayoutLength, KeyboardLayout);
+ Status = HiiGetKeyboardLayout (This, KeyGuid, &KeyboardLayoutLength, KeyboardLayout);
if (Status != EFI_BUFFER_TOO_SMALL) {
return Status;
}
- KeyboardLayout = (EFI_HII_KEYBOARD_LAYOUT *) AllocateZeroPool (KeyboardLayoutLength);
+ KeyboardLayout = (EFI_HII_KEYBOARD_LAYOUT *)AllocateZeroPool (KeyboardLayoutLength);
ASSERT (KeyboardLayout != NULL);
Status = HiiGetKeyboardLayout (This, KeyGuid, &KeyboardLayoutLength, KeyboardLayout);
ASSERT_EFI_ERROR (Status);
@@ -4564,8 +4655,9 @@ HiiSetKeyboardLayout (
//
CopyMem (&Private->CurrentLayoutGuid, KeyGuid, sizeof (EFI_GUID));
if (Private->CurrentLayout != NULL) {
- FreePool(Private->CurrentLayout);
+ FreePool (Private->CurrentLayout);
}
+
Private->CurrentLayout = KeyboardLayout;
//
@@ -4578,7 +4670,6 @@ HiiSetKeyboardLayout (
return EFI_SUCCESS;
}
-
/**
Return the EFI handle associated with a package list.
@@ -4600,16 +4691,16 @@ HiiSetKeyboardLayout (
EFI_STATUS
EFIAPI
HiiGetPackageListHandle (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageListHandle,
- OUT EFI_HANDLE *DriverHandle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageListHandle,
+ OUT EFI_HANDLE *DriverHandle
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_RECORD *Node;
- LIST_ENTRY *Link;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_RECORD *Node;
+ LIST_ENTRY *Link;
- if (This == NULL || DriverHandle == NULL) {
+ if ((This == NULL) || (DriverHandle == NULL)) {
return EFI_INVALID_PARAMETER;
}
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c
index 3629b24..399f90f 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c
@@ -7,32 +7,30 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
-EFI_GRAPHICS_OUTPUT_BLT_PIXEL mHiiEfiColors[16] = {
+EFI_GRAPHICS_OUTPUT_BLT_PIXEL mHiiEfiColors[16] = {
//
// B G R
//
- {0x00, 0x00, 0x00, 0x00}, // BLACK
- {0x98, 0x00, 0x00, 0x00}, // BLUE
- {0x00, 0x98, 0x00, 0x00}, // GREEN
- {0x98, 0x98, 0x00, 0x00}, // CYAN
- {0x00, 0x00, 0x98, 0x00}, // RED
- {0x98, 0x00, 0x98, 0x00}, // MAGENTA
- {0x00, 0x98, 0x98, 0x00}, // BROWN
- {0x98, 0x98, 0x98, 0x00}, // LIGHTGRAY
- {0x30, 0x30, 0x30, 0x00}, // DARKGRAY - BRIGHT BLACK
- {0xff, 0x00, 0x00, 0x00}, // LIGHTBLUE
- {0x00, 0xff, 0x00, 0x00}, // LIGHTGREEN
- {0xff, 0xff, 0x00, 0x00}, // LIGHTCYAN
- {0x00, 0x00, 0xff, 0x00}, // LIGHTRED
- {0xff, 0x00, 0xff, 0x00}, // LIGHTMAGENTA
- {0x00, 0xff, 0xff, 0x00}, // YELLOW
- {0xff, 0xff, 0xff, 0x00}, // WHITE
+ { 0x00, 0x00, 0x00, 0x00 }, // BLACK
+ { 0x98, 0x00, 0x00, 0x00 }, // BLUE
+ { 0x00, 0x98, 0x00, 0x00 }, // GREEN
+ { 0x98, 0x98, 0x00, 0x00 }, // CYAN
+ { 0x00, 0x00, 0x98, 0x00 }, // RED
+ { 0x98, 0x00, 0x98, 0x00 }, // MAGENTA
+ { 0x00, 0x98, 0x98, 0x00 }, // BROWN
+ { 0x98, 0x98, 0x98, 0x00 }, // LIGHTGRAY
+ { 0x30, 0x30, 0x30, 0x00 }, // DARKGRAY - BRIGHT BLACK
+ { 0xff, 0x00, 0x00, 0x00 }, // LIGHTBLUE
+ { 0x00, 0xff, 0x00, 0x00 }, // LIGHTGREEN
+ { 0xff, 0xff, 0x00, 0x00 }, // LIGHTCYAN
+ { 0x00, 0x00, 0xff, 0x00 }, // LIGHTRED
+ { 0xff, 0x00, 0xff, 0x00 }, // LIGHTMAGENTA
+ { 0x00, 0xff, 0xff, 0x00 }, // YELLOW
+ { 0xff, 0xff, 0xff, 0x00 }, // WHITE
};
-
/**
Insert a character cell information to the list specified by GlyphInfoList.
@@ -50,16 +48,16 @@ EFI_GRAPHICS_OUTPUT_BLT_PIXEL mHiiEfiColors[16] = {
**/
EFI_STATUS
NewCell (
- IN CHAR16 CharValue,
- IN LIST_ENTRY *GlyphInfoList,
- IN EFI_HII_GLYPH_INFO *Cell
+ IN CHAR16 CharValue,
+ IN LIST_ENTRY *GlyphInfoList,
+ IN EFI_HII_GLYPH_INFO *Cell
)
{
- HII_GLYPH_INFO *GlyphInfo;
+ HII_GLYPH_INFO *GlyphInfo;
ASSERT (Cell != NULL && GlyphInfoList != NULL);
- GlyphInfo = (HII_GLYPH_INFO *) AllocateZeroPool (sizeof (HII_GLYPH_INFO));
+ GlyphInfo = (HII_GLYPH_INFO *)AllocateZeroPool (sizeof (HII_GLYPH_INFO));
if (GlyphInfo == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -73,13 +71,13 @@ NewCell (
if (Cell->AdvanceX == 0) {
Cell->AdvanceX = Cell->Width;
}
+
CopyMem (&GlyphInfo->Cell, Cell, sizeof (EFI_HII_GLYPH_INFO));
InsertTailList (GlyphInfoList, &GlyphInfo->Entry);
return EFI_SUCCESS;
}
-
/**
Get a character cell information from the list specified by GlyphInfoList.
@@ -98,13 +96,13 @@ NewCell (
**/
EFI_STATUS
GetCell (
- IN CHAR16 CharValue,
- IN LIST_ENTRY *GlyphInfoList,
- OUT EFI_HII_GLYPH_INFO *Cell
+ IN CHAR16 CharValue,
+ IN LIST_ENTRY *GlyphInfoList,
+ OUT EFI_HII_GLYPH_INFO *Cell
)
{
- HII_GLYPH_INFO *GlyphInfo;
- LIST_ENTRY *Link;
+ HII_GLYPH_INFO *GlyphInfo;
+ LIST_ENTRY *Link;
ASSERT (Cell != NULL && GlyphInfoList != NULL);
@@ -129,7 +127,6 @@ GetCell (
return EFI_NOT_FOUND;
}
-
/**
Convert the glyph for a single character into a bitmap.
@@ -152,30 +149,31 @@ GetCell (
**/
EFI_STATUS
GetGlyphBuffer (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN CHAR16 Char,
- IN EFI_FONT_INFO *StringInfo,
- OUT UINT8 **GlyphBuffer,
- OUT EFI_HII_GLYPH_INFO *Cell,
- OUT UINT8 *Attributes OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN CHAR16 Char,
+ IN EFI_FONT_INFO *StringInfo,
+ OUT UINT8 **GlyphBuffer,
+ OUT EFI_HII_GLYPH_INFO *Cell,
+ OUT UINT8 *Attributes OPTIONAL
)
{
- HII_DATABASE_RECORD *Node;
- LIST_ENTRY *Link;
- HII_SIMPLE_FONT_PACKAGE_INSTANCE *SimpleFont;
- LIST_ENTRY *Link1;
- UINT16 Index;
- EFI_NARROW_GLYPH Narrow;
- EFI_WIDE_GLYPH Wide;
- HII_GLOBAL_FONT_INFO *GlobalFont;
- UINTN HeaderSize;
- EFI_NARROW_GLYPH *NarrowPtr;
- EFI_WIDE_GLYPH *WidePtr;
-
- if (GlyphBuffer == NULL || Cell == NULL) {
+ HII_DATABASE_RECORD *Node;
+ LIST_ENTRY *Link;
+ HII_SIMPLE_FONT_PACKAGE_INSTANCE *SimpleFont;
+ LIST_ENTRY *Link1;
+ UINT16 Index;
+ EFI_NARROW_GLYPH Narrow;
+ EFI_WIDE_GLYPH Wide;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+ UINTN HeaderSize;
+ EFI_NARROW_GLYPH *NarrowPtr;
+ EFI_WIDE_GLYPH *WidePtr;
+
+ if ((GlyphBuffer == NULL) || (Cell == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (Private == NULL || Private->Signature != HII_DATABASE_PRIVATE_DATA_SIGNATURE) {
+
+ if ((Private == NULL) || (Private->Signature != HII_DATABASE_PRIVATE_DATA_SIGNATURE)) {
return EFI_INVALID_PARAMETER;
}
@@ -188,12 +186,14 @@ GetGlyphBuffer (
// default system font is the fixed font (narrow or wide glyph).
//
if (StringInfo != NULL) {
- if(!IsFontInfoExisted (Private, StringInfo, NULL, NULL, &GlobalFont)) {
+ if (!IsFontInfoExisted (Private, StringInfo, NULL, NULL, &GlobalFont)) {
return EFI_INVALID_PARAMETER;
}
+
if (Attributes != NULL) {
*Attributes = PROPORTIONAL_GLYPH;
}
+
return FindGlyphBlock (GlobalFont->FontPackage, Char, GlyphBuffer, Cell, NULL);
} else {
HeaderSize = sizeof (EFI_HII_SIMPLE_FONT_PACKAGE_HDR);
@@ -203,48 +203,54 @@ GetGlyphBuffer (
for (Link1 = Node->PackageList->SimpleFontPkgHdr.ForwardLink;
Link1 != &Node->PackageList->SimpleFontPkgHdr;
Link1 = Link1->ForwardLink
- ) {
+ )
+ {
SimpleFont = CR (Link1, HII_SIMPLE_FONT_PACKAGE_INSTANCE, SimpleFontEntry, HII_S_FONT_PACKAGE_SIGNATURE);
//
// Search the narrow glyph array
//
- NarrowPtr = (EFI_NARROW_GLYPH *) ((UINT8 *) (SimpleFont->SimpleFontPkgHdr) + HeaderSize);
+ NarrowPtr = (EFI_NARROW_GLYPH *)((UINT8 *)(SimpleFont->SimpleFontPkgHdr) + HeaderSize);
for (Index = 0; Index < SimpleFont->SimpleFontPkgHdr->NumberOfNarrowGlyphs; Index++) {
- CopyMem (&Narrow, NarrowPtr + Index,sizeof (EFI_NARROW_GLYPH));
+ CopyMem (&Narrow, NarrowPtr + Index, sizeof (EFI_NARROW_GLYPH));
if (Narrow.UnicodeWeight == Char) {
- *GlyphBuffer = (UINT8 *) AllocateZeroPool (EFI_GLYPH_HEIGHT);
+ *GlyphBuffer = (UINT8 *)AllocateZeroPool (EFI_GLYPH_HEIGHT);
if (*GlyphBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
Cell->Width = EFI_GLYPH_WIDTH;
Cell->Height = EFI_GLYPH_HEIGHT;
Cell->AdvanceX = Cell->Width;
CopyMem (*GlyphBuffer, Narrow.GlyphCol1, Cell->Height);
if (Attributes != NULL) {
- *Attributes = (UINT8) (Narrow.Attributes | NARROW_GLYPH);
+ *Attributes = (UINT8)(Narrow.Attributes | NARROW_GLYPH);
}
+
return EFI_SUCCESS;
}
}
+
//
// Search the wide glyph array
//
- WidePtr = (EFI_WIDE_GLYPH *) (NarrowPtr + SimpleFont->SimpleFontPkgHdr->NumberOfNarrowGlyphs);
+ WidePtr = (EFI_WIDE_GLYPH *)(NarrowPtr + SimpleFont->SimpleFontPkgHdr->NumberOfNarrowGlyphs);
for (Index = 0; Index < SimpleFont->SimpleFontPkgHdr->NumberOfWideGlyphs; Index++) {
CopyMem (&Wide, WidePtr + Index, sizeof (EFI_WIDE_GLYPH));
if (Wide.UnicodeWeight == Char) {
- *GlyphBuffer = (UINT8 *) AllocateZeroPool (EFI_GLYPH_HEIGHT * 2);
+ *GlyphBuffer = (UINT8 *)AllocateZeroPool (EFI_GLYPH_HEIGHT * 2);
if (*GlyphBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
Cell->Width = EFI_GLYPH_WIDTH * 2;
Cell->Height = EFI_GLYPH_HEIGHT;
Cell->AdvanceX = Cell->Width;
CopyMem (*GlyphBuffer, Wide.GlyphCol1, EFI_GLYPH_HEIGHT);
CopyMem (*GlyphBuffer + EFI_GLYPH_HEIGHT, Wide.GlyphCol2, EFI_GLYPH_HEIGHT);
if (Attributes != NULL) {
- *Attributes = (UINT8) (Wide.Attributes | EFI_GLYPH_WIDE);
+ *Attributes = (UINT8)(Wide.Attributes | EFI_GLYPH_WIDE);
}
+
return EFI_SUCCESS;
}
}
@@ -278,21 +284,21 @@ GetGlyphBuffer (
**/
VOID
NarrowGlyphToBlt (
- IN UINT8 *GlyphBuffer,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,
- IN UINT16 ImageWidth,
- IN UINTN RowWidth,
- IN UINTN RowHeight,
- IN BOOLEAN Transparent,
- IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **Origin
+ IN UINT8 *GlyphBuffer,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,
+ IN UINT16 ImageWidth,
+ IN UINTN RowWidth,
+ IN UINTN RowHeight,
+ IN BOOLEAN Transparent,
+ IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **Origin
)
{
- UINT8 Xpos;
- UINT8 Ypos;
- UINT8 Height;
- UINT8 Width;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Buffer;
+ UINT8 Xpos;
+ UINT8 Ypos;
+ UINT8 Height;
+ UINT8 Width;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Buffer;
ASSERT (GlyphBuffer != NULL && Origin != NULL && *Origin != NULL);
@@ -308,10 +314,11 @@ NarrowGlyphToBlt (
// Char may be partially displayed when CLIP_X or CLIP_Y is not set.
//
if (RowHeight < Height) {
- Height = (UINT8) RowHeight;
+ Height = (UINT8)RowHeight;
}
+
if (RowWidth < Width) {
- Width = (UINT8) RowWidth;
+ Width = (UINT8)RowWidth;
}
for (Ypos = 0; Ypos < Height; Ypos++) {
@@ -329,7 +336,6 @@ NarrowGlyphToBlt (
*Origin = *Origin + EFI_GLYPH_WIDTH;
}
-
/**
Convert bitmap data of the glyph to blt structure.
@@ -357,26 +363,26 @@ NarrowGlyphToBlt (
**/
VOID
GlyphToBlt (
- IN UINT8 *GlyphBuffer,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,
- IN UINT16 ImageWidth,
- IN UINT16 BaseLine,
- IN UINTN RowWidth,
- IN UINTN RowHeight,
- IN BOOLEAN Transparent,
- IN CONST EFI_HII_GLYPH_INFO *Cell,
- IN UINT8 Attributes,
- IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **Origin
+ IN UINT8 *GlyphBuffer,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,
+ IN UINT16 ImageWidth,
+ IN UINT16 BaseLine,
+ IN UINTN RowWidth,
+ IN UINTN RowHeight,
+ IN BOOLEAN Transparent,
+ IN CONST EFI_HII_GLYPH_INFO *Cell,
+ IN UINT8 Attributes,
+ IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **Origin
)
{
- UINT16 Xpos;
- UINT16 Ypos;
- UINT8 Data;
- UINT16 Index;
- UINT16 YposOffset;
- UINTN OffsetY;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
+ UINT16 Xpos;
+ UINT16 Ypos;
+ UINT8 Data;
+ UINT16 Index;
+ UINT16 YposOffset;
+ UINTN OffsetY;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
ASSERT (Origin != NULL && *Origin != NULL && Cell != NULL);
@@ -387,11 +393,12 @@ GlyphToBlt (
*Origin = *Origin + Cell->AdvanceX;
return;
}
+
//
// Move position to the left-top corner of char.
//
BltBuffer = *Origin + Cell->OffsetX - (Cell->OffsetY + Cell->Height) * ImageWidth;
- YposOffset = (UINT16) (BaseLine - (Cell->OffsetY + Cell->Height));
+ YposOffset = (UINT16)(BaseLine - (Cell->OffsetY + Cell->Height));
//
// Since non-spacing key will be printed OR'd with the previous glyph, don't
@@ -405,15 +412,15 @@ GlyphToBlt (
// The glyph's upper left hand corner pixel is the most significant bit of the
// first bitmap byte.
//
- for (Ypos = 0; Ypos < Cell->Height && (((UINT32) Ypos + YposOffset) < RowHeight); Ypos++) {
+ for (Ypos = 0; Ypos < Cell->Height && (((UINT32)Ypos + YposOffset) < RowHeight); Ypos++) {
OffsetY = BITMAP_LEN_1_BIT (Cell->Width, Ypos);
//
// All bits in these bytes are meaningful.
//
for (Xpos = 0; Xpos < Cell->Width / 8; Xpos++) {
- Data = *(GlyphBuffer + OffsetY + Xpos);
- for (Index = 0; Index < 8 && (((UINT32) Xpos * 8 + Index + Cell->OffsetX) < RowWidth); Index++) {
+ Data = *(GlyphBuffer + OffsetY + Xpos);
+ for (Index = 0; Index < 8 && (((UINT32)Xpos * 8 + Index + Cell->OffsetX) < RowWidth); Index++) {
if ((Data & (1 << (8 - Index - 1))) != 0) {
BltBuffer[Ypos * ImageWidth + Xpos * 8 + Index] = Foreground;
} else {
@@ -428,8 +435,8 @@ GlyphToBlt (
//
// There are some padding bits in this byte. Ignore them.
//
- Data = *(GlyphBuffer + OffsetY + Xpos);
- for (Index = 0; Index < Cell->Width % 8 && (((UINT32) Xpos * 8 + Index + Cell->OffsetX) < RowWidth); Index++) {
+ Data = *(GlyphBuffer + OffsetY + Xpos);
+ for (Index = 0; Index < Cell->Width % 8 && (((UINT32)Xpos * 8 + Index + Cell->OffsetX) < RowWidth); Index++) {
if ((Data & (1 << (8 - Index - 1))) != 0) {
BltBuffer[Ypos * ImageWidth + Xpos * 8 + Index] = Foreground;
} else {
@@ -439,13 +446,11 @@ GlyphToBlt (
}
}
} // end of if (Width % 8...)
-
} // end of for (Ypos=0...)
*Origin = *Origin + Cell->AdvanceX;
}
-
/**
Convert bitmap data of the glyph to blt structure.
@@ -474,20 +479,20 @@ GlyphToBlt (
**/
VOID
GlyphToImage (
- IN UINT8 *GlyphBuffer,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,
- IN UINT16 ImageWidth,
- IN UINT16 BaseLine,
- IN UINTN RowWidth,
- IN UINTN RowHeight,
- IN BOOLEAN Transparent,
- IN CONST EFI_HII_GLYPH_INFO *Cell,
- IN UINT8 Attributes,
- IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **Origin
+ IN UINT8 *GlyphBuffer,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground,
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background,
+ IN UINT16 ImageWidth,
+ IN UINT16 BaseLine,
+ IN UINTN RowWidth,
+ IN UINTN RowHeight,
+ IN BOOLEAN Transparent,
+ IN CONST EFI_HII_GLYPH_INFO *Cell,
+ IN UINT8 Attributes,
+ IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **Origin
)
{
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Buffer;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Buffer;
ASSERT (Origin != NULL && *Origin != NULL && Cell != NULL);
@@ -512,7 +517,6 @@ GlyphToImage (
Attributes,
&Buffer
);
-
} else if ((Attributes & EFI_GLYPH_WIDE) == EFI_GLYPH_WIDE) {
//
// This character is wide glyph, i.e. 16 pixels * 19 pixels.
@@ -539,7 +543,6 @@ GlyphToImage (
Transparent,
Origin
);
-
} else if ((Attributes & NARROW_GLYPH) == NARROW_GLYPH) {
//
// This character is narrow glyph, i.e. 8 pixels * 19 pixels.
@@ -554,7 +557,6 @@ GlyphToImage (
Transparent,
Origin
);
-
} else if ((Attributes & PROPORTIONAL_GLYPH) == PROPORTIONAL_GLYPH) {
//
// This character is proportional glyph, i.e. Cell->Width * Cell->Height pixels.
@@ -575,7 +577,6 @@ GlyphToImage (
}
}
-
/**
Write the output parameters of FindGlyphBlock().
@@ -600,15 +601,15 @@ GlyphToImage (
**/
EFI_STATUS
WriteOutputParam (
- IN UINT8 *BufferIn,
- IN UINTN BufferLen,
- IN EFI_HII_GLYPH_INFO *InputCell,
- OUT UINT8 **GlyphBuffer OPTIONAL,
- OUT EFI_HII_GLYPH_INFO *Cell OPTIONAL,
- OUT UINTN *GlyphBufferLen OPTIONAL
+ IN UINT8 *BufferIn,
+ IN UINTN BufferLen,
+ IN EFI_HII_GLYPH_INFO *InputCell,
+ OUT UINT8 **GlyphBuffer OPTIONAL,
+ OUT EFI_HII_GLYPH_INFO *Cell OPTIONAL,
+ OUT UINTN *GlyphBufferLen OPTIONAL
)
{
- if (BufferIn == NULL || InputCell == NULL) {
+ if ((BufferIn == NULL) || (InputCell == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -616,11 +617,12 @@ WriteOutputParam (
CopyMem (Cell, InputCell, sizeof (EFI_HII_GLYPH_INFO));
}
- if (GlyphBuffer != NULL && BufferLen > 0) {
- *GlyphBuffer = (UINT8 *) AllocateZeroPool (BufferLen);
+ if ((GlyphBuffer != NULL) && (BufferLen > 0)) {
+ *GlyphBuffer = (UINT8 *)AllocateZeroPool (BufferLen);
if (*GlyphBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (*GlyphBuffer, BufferIn, BufferLen);
}
@@ -631,7 +633,6 @@ WriteOutputParam (
return EFI_SUCCESS;
}
-
/**
Parse all glyph blocks to find a glyph block specified by CharValue.
If CharValue = (CHAR16) (-1), collect all default character cell information
@@ -655,32 +656,32 @@ WriteOutputParam (
**/
EFI_STATUS
FindGlyphBlock (
- IN HII_FONT_PACKAGE_INSTANCE *FontPackage,
- IN CHAR16 CharValue,
- OUT UINT8 **GlyphBuffer OPTIONAL,
- OUT EFI_HII_GLYPH_INFO *Cell OPTIONAL,
- OUT UINTN *GlyphBufferLen OPTIONAL
+ IN HII_FONT_PACKAGE_INSTANCE *FontPackage,
+ IN CHAR16 CharValue,
+ OUT UINT8 **GlyphBuffer OPTIONAL,
+ OUT EFI_HII_GLYPH_INFO *Cell OPTIONAL,
+ OUT UINTN *GlyphBufferLen OPTIONAL
)
{
- EFI_STATUS Status;
- UINT8 *BlockPtr;
- UINT16 CharCurrent;
- UINT16 Length16;
- UINT32 Length32;
- EFI_HII_GIBT_GLYPHS_BLOCK Glyphs;
- UINTN BufferLen;
- UINT16 Index;
- EFI_HII_GLYPH_INFO DefaultCell;
- EFI_HII_GLYPH_INFO LocalCell;
- INT16 MinOffsetY;
- UINT16 BaseLine;
+ EFI_STATUS Status;
+ UINT8 *BlockPtr;
+ UINT16 CharCurrent;
+ UINT16 Length16;
+ UINT32 Length32;
+ EFI_HII_GIBT_GLYPHS_BLOCK Glyphs;
+ UINTN BufferLen;
+ UINT16 Index;
+ EFI_HII_GLYPH_INFO DefaultCell;
+ EFI_HII_GLYPH_INFO LocalCell;
+ INT16 MinOffsetY;
+ UINT16 BaseLine;
ASSERT (FontPackage != NULL);
ASSERT (FontPackage->Signature == HII_FONT_PACKAGE_SIGNATURE);
- BaseLine = 0;
+ BaseLine = 0;
MinOffsetY = 0;
- if (CharValue == (CHAR16) (-1)) {
+ if (CharValue == (CHAR16)(-1)) {
//
// Collect the cell information specified in font package fixed header.
// Use CharValue =0 to represent this particular cell.
@@ -688,14 +689,15 @@ FindGlyphBlock (
Status = NewCell (
0,
&FontPackage->GlyphInfoList,
- (EFI_HII_GLYPH_INFO *) ((UINT8 *) FontPackage->FontPkgHdr + 3 * sizeof (UINT32))
+ (EFI_HII_GLYPH_INFO *)((UINT8 *)FontPackage->FontPkgHdr + 3 * sizeof (UINT32))
);
if (EFI_ERROR (Status)) {
return Status;
}
+
CopyMem (
&LocalCell,
- (UINT8 *) FontPackage->FontPkgHdr + 3 * sizeof (UINT32),
+ (UINT8 *)FontPackage->FontPkgHdr + 3 * sizeof (UINT32),
sizeof (EFI_HII_GLYPH_INFO)
);
}
@@ -706,177 +708,159 @@ FindGlyphBlock (
while (*BlockPtr != EFI_HII_GIBT_END) {
switch (*BlockPtr) {
- case EFI_HII_GIBT_DEFAULTS:
- //
- // Collect all default character cell information specified by
- // EFI_HII_GIBT_DEFAULTS.
- //
- if (CharValue == (CHAR16) (-1)) {
- Status = NewCell (
- CharCurrent,
- &FontPackage->GlyphInfoList,
- (EFI_HII_GLYPH_INFO *) (BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK))
- );
- if (EFI_ERROR (Status)) {
- return Status;
+ case EFI_HII_GIBT_DEFAULTS:
+ //
+ // Collect all default character cell information specified by
+ // EFI_HII_GIBT_DEFAULTS.
+ //
+ if (CharValue == (CHAR16)(-1)) {
+ Status = NewCell (
+ CharCurrent,
+ &FontPackage->GlyphInfoList,
+ (EFI_HII_GLYPH_INFO *)(BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK))
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ CopyMem (
+ &LocalCell,
+ BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK),
+ sizeof (EFI_HII_GLYPH_INFO)
+ );
+ if (BaseLine < LocalCell.Height + LocalCell.OffsetY) {
+ BaseLine = (UINT16)(LocalCell.Height + LocalCell.OffsetY);
+ }
+
+ if (MinOffsetY > LocalCell.OffsetY) {
+ MinOffsetY = LocalCell.OffsetY;
+ }
}
+
+ BlockPtr += sizeof (EFI_HII_GIBT_DEFAULTS_BLOCK);
+ break;
+
+ case EFI_HII_GIBT_DUPLICATE:
+ if (CharCurrent == CharValue) {
+ CopyMem (&CharValue, BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK), sizeof (CHAR16));
+ CharCurrent = 1;
+ BlockPtr = FontPackage->GlyphBlock;
+ continue;
+ }
+
+ CharCurrent++;
+ BlockPtr += sizeof (EFI_HII_GIBT_DUPLICATE_BLOCK);
+ break;
+
+ case EFI_HII_GIBT_EXT1:
+ BlockPtr += *(UINT8 *)((UINTN)BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK) + sizeof (UINT8));
+ break;
+ case EFI_HII_GIBT_EXT2:
+ CopyMem (
+ &Length16,
+ (UINT8 *)((UINTN)BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ BlockPtr += Length16;
+ break;
+ case EFI_HII_GIBT_EXT4:
+ CopyMem (
+ &Length32,
+ (UINT8 *)((UINTN)BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT32)
+ );
+ BlockPtr += Length32;
+ break;
+
+ case EFI_HII_GIBT_GLYPH:
CopyMem (
&LocalCell,
BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK),
sizeof (EFI_HII_GLYPH_INFO)
);
- if (BaseLine < LocalCell.Height + LocalCell.OffsetY) {
- BaseLine = (UINT16) (LocalCell.Height + LocalCell.OffsetY);
- }
- if (MinOffsetY > LocalCell.OffsetY) {
- MinOffsetY = LocalCell.OffsetY;
- }
- }
- BlockPtr += sizeof (EFI_HII_GIBT_DEFAULTS_BLOCK);
- break;
-
- case EFI_HII_GIBT_DUPLICATE:
- if (CharCurrent == CharValue) {
- CopyMem (&CharValue, BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK), sizeof (CHAR16));
- CharCurrent = 1;
- BlockPtr = FontPackage->GlyphBlock;
- continue;
- }
- CharCurrent++;
- BlockPtr += sizeof (EFI_HII_GIBT_DUPLICATE_BLOCK);
- break;
-
- case EFI_HII_GIBT_EXT1:
- BlockPtr += *(UINT8*)((UINTN)BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK) + sizeof (UINT8));
- break;
- case EFI_HII_GIBT_EXT2:
- CopyMem (
- &Length16,
- (UINT8*)((UINTN)BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- BlockPtr += Length16;
- break;
- case EFI_HII_GIBT_EXT4:
- CopyMem (
- &Length32,
- (UINT8*)((UINTN)BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK) + sizeof (UINT8)),
- sizeof (UINT32)
- );
- BlockPtr += Length32;
- break;
-
- case EFI_HII_GIBT_GLYPH:
- CopyMem (
- &LocalCell,
- BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK),
- sizeof (EFI_HII_GLYPH_INFO)
- );
- if (CharValue == (CHAR16) (-1)) {
- if (BaseLine < LocalCell.Height + LocalCell.OffsetY) {
- BaseLine = (UINT16) (LocalCell.Height + LocalCell.OffsetY);
- }
- if (MinOffsetY > LocalCell.OffsetY) {
- MinOffsetY = LocalCell.OffsetY;
- }
- }
- BufferLen = BITMAP_LEN_1_BIT (LocalCell.Width, LocalCell.Height);
- if (CharCurrent == CharValue) {
- return WriteOutputParam (
- (UINT8*)((UINTN)BlockPtr + sizeof (EFI_HII_GIBT_GLYPH_BLOCK) - sizeof (UINT8)),
- BufferLen,
- &LocalCell,
- GlyphBuffer,
- Cell,
- GlyphBufferLen
- );
- }
- CharCurrent++;
- BlockPtr += sizeof (EFI_HII_GIBT_GLYPH_BLOCK) - sizeof (UINT8) + BufferLen;
- break;
-
- case EFI_HII_GIBT_GLYPHS:
- BlockPtr += sizeof (EFI_HII_GLYPH_BLOCK);
- CopyMem (&Glyphs.Cell, BlockPtr, sizeof (EFI_HII_GLYPH_INFO));
- BlockPtr += sizeof (EFI_HII_GLYPH_INFO);
- CopyMem (&Glyphs.Count, BlockPtr, sizeof (UINT16));
- BlockPtr += sizeof (UINT16);
+ if (CharValue == (CHAR16)(-1)) {
+ if (BaseLine < LocalCell.Height + LocalCell.OffsetY) {
+ BaseLine = (UINT16)(LocalCell.Height + LocalCell.OffsetY);
+ }
- if (CharValue == (CHAR16) (-1)) {
- if (BaseLine < Glyphs.Cell.Height + Glyphs.Cell.OffsetY) {
- BaseLine = (UINT16) (Glyphs.Cell.Height + Glyphs.Cell.OffsetY);
- }
- if (MinOffsetY > Glyphs.Cell.OffsetY) {
- MinOffsetY = Glyphs.Cell.OffsetY;
+ if (MinOffsetY > LocalCell.OffsetY) {
+ MinOffsetY = LocalCell.OffsetY;
+ }
}
- }
- BufferLen = BITMAP_LEN_1_BIT (Glyphs.Cell.Width, Glyphs.Cell.Height);
- for (Index = 0; Index < Glyphs.Count; Index++) {
- if (CharCurrent + Index == CharValue) {
+ BufferLen = BITMAP_LEN_1_BIT (LocalCell.Width, LocalCell.Height);
+ if (CharCurrent == CharValue) {
return WriteOutputParam (
- BlockPtr,
+ (UINT8 *)((UINTN)BlockPtr + sizeof (EFI_HII_GIBT_GLYPH_BLOCK) - sizeof (UINT8)),
BufferLen,
- &Glyphs.Cell,
+ &LocalCell,
GlyphBuffer,
Cell,
GlyphBufferLen
);
}
- BlockPtr += BufferLen;
- }
- CharCurrent = (UINT16) (CharCurrent + Glyphs.Count);
- break;
- case EFI_HII_GIBT_GLYPH_DEFAULT:
- Status = GetCell (CharCurrent, &FontPackage->GlyphInfoList, &DefaultCell);
- if (EFI_ERROR (Status)) {
- return Status;
- }
- if (CharValue == (CHAR16) (-1)) {
- if (BaseLine < DefaultCell.Height + DefaultCell.OffsetY) {
- BaseLine = (UINT16) (DefaultCell.Height + DefaultCell.OffsetY);
+ CharCurrent++;
+ BlockPtr += sizeof (EFI_HII_GIBT_GLYPH_BLOCK) - sizeof (UINT8) + BufferLen;
+ break;
+
+ case EFI_HII_GIBT_GLYPHS:
+ BlockPtr += sizeof (EFI_HII_GLYPH_BLOCK);
+ CopyMem (&Glyphs.Cell, BlockPtr, sizeof (EFI_HII_GLYPH_INFO));
+ BlockPtr += sizeof (EFI_HII_GLYPH_INFO);
+ CopyMem (&Glyphs.Count, BlockPtr, sizeof (UINT16));
+ BlockPtr += sizeof (UINT16);
+
+ if (CharValue == (CHAR16)(-1)) {
+ if (BaseLine < Glyphs.Cell.Height + Glyphs.Cell.OffsetY) {
+ BaseLine = (UINT16)(Glyphs.Cell.Height + Glyphs.Cell.OffsetY);
+ }
+
+ if (MinOffsetY > Glyphs.Cell.OffsetY) {
+ MinOffsetY = Glyphs.Cell.OffsetY;
+ }
}
- if (MinOffsetY > DefaultCell.OffsetY) {
- MinOffsetY = DefaultCell.OffsetY;
+
+ BufferLen = BITMAP_LEN_1_BIT (Glyphs.Cell.Width, Glyphs.Cell.Height);
+ for (Index = 0; Index < Glyphs.Count; Index++) {
+ if (CharCurrent + Index == CharValue) {
+ return WriteOutputParam (
+ BlockPtr,
+ BufferLen,
+ &Glyphs.Cell,
+ GlyphBuffer,
+ Cell,
+ GlyphBufferLen
+ );
+ }
+
+ BlockPtr += BufferLen;
}
- }
- BufferLen = BITMAP_LEN_1_BIT (DefaultCell.Width, DefaultCell.Height);
-
- if (CharCurrent == CharValue) {
- return WriteOutputParam (
- BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK),
- BufferLen,
- &DefaultCell,
- GlyphBuffer,
- Cell,
- GlyphBufferLen
- );
- }
- CharCurrent++;
- BlockPtr += sizeof (EFI_HII_GLYPH_BLOCK) + BufferLen;
- break;
- case EFI_HII_GIBT_GLYPHS_DEFAULT:
- CopyMem (&Length16, BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK), sizeof (UINT16));
- Status = GetCell (CharCurrent, &FontPackage->GlyphInfoList, &DefaultCell);
- if (EFI_ERROR (Status)) {
- return Status;
- }
- if (CharValue == (CHAR16) (-1)) {
- if (BaseLine < DefaultCell.Height + DefaultCell.OffsetY) {
- BaseLine = (UINT16) (DefaultCell.Height + DefaultCell.OffsetY);
+ CharCurrent = (UINT16)(CharCurrent + Glyphs.Count);
+ break;
+
+ case EFI_HII_GIBT_GLYPH_DEFAULT:
+ Status = GetCell (CharCurrent, &FontPackage->GlyphInfoList, &DefaultCell);
+ if (EFI_ERROR (Status)) {
+ return Status;
}
- if (MinOffsetY > DefaultCell.OffsetY) {
- MinOffsetY = DefaultCell.OffsetY;
+
+ if (CharValue == (CHAR16)(-1)) {
+ if (BaseLine < DefaultCell.Height + DefaultCell.OffsetY) {
+ BaseLine = (UINT16)(DefaultCell.Height + DefaultCell.OffsetY);
+ }
+
+ if (MinOffsetY > DefaultCell.OffsetY) {
+ MinOffsetY = DefaultCell.OffsetY;
+ }
}
- }
- BufferLen = BITMAP_LEN_1_BIT (DefaultCell.Width, DefaultCell.Height);
- BlockPtr += sizeof (EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK) - sizeof (UINT8);
- for (Index = 0; Index < Length16; Index++) {
- if (CharCurrent + Index == CharValue) {
+
+ BufferLen = BITMAP_LEN_1_BIT (DefaultCell.Width, DefaultCell.Height);
+
+ if (CharCurrent == CharValue) {
return WriteOutputParam (
- BlockPtr,
+ BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK),
BufferLen,
&DefaultCell,
GlyphBuffer,
@@ -884,23 +868,60 @@ FindGlyphBlock (
GlyphBufferLen
);
}
- BlockPtr += BufferLen;
- }
- CharCurrent = (UINT16) (CharCurrent + Length16);
- break;
- case EFI_HII_GIBT_SKIP1:
- CharCurrent = (UINT16) (CharCurrent + (UINT16) (*(BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK))));
- BlockPtr += sizeof (EFI_HII_GIBT_SKIP1_BLOCK);
- break;
- case EFI_HII_GIBT_SKIP2:
- CopyMem (&Length16, BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK), sizeof (UINT16));
- CharCurrent = (UINT16) (CharCurrent + Length16);
- BlockPtr += sizeof (EFI_HII_GIBT_SKIP2_BLOCK);
- break;
- default:
- ASSERT (FALSE);
- break;
+ CharCurrent++;
+ BlockPtr += sizeof (EFI_HII_GLYPH_BLOCK) + BufferLen;
+ break;
+
+ case EFI_HII_GIBT_GLYPHS_DEFAULT:
+ CopyMem (&Length16, BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK), sizeof (UINT16));
+ Status = GetCell (CharCurrent, &FontPackage->GlyphInfoList, &DefaultCell);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ if (CharValue == (CHAR16)(-1)) {
+ if (BaseLine < DefaultCell.Height + DefaultCell.OffsetY) {
+ BaseLine = (UINT16)(DefaultCell.Height + DefaultCell.OffsetY);
+ }
+
+ if (MinOffsetY > DefaultCell.OffsetY) {
+ MinOffsetY = DefaultCell.OffsetY;
+ }
+ }
+
+ BufferLen = BITMAP_LEN_1_BIT (DefaultCell.Width, DefaultCell.Height);
+ BlockPtr += sizeof (EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK) - sizeof (UINT8);
+ for (Index = 0; Index < Length16; Index++) {
+ if (CharCurrent + Index == CharValue) {
+ return WriteOutputParam (
+ BlockPtr,
+ BufferLen,
+ &DefaultCell,
+ GlyphBuffer,
+ Cell,
+ GlyphBufferLen
+ );
+ }
+
+ BlockPtr += BufferLen;
+ }
+
+ CharCurrent = (UINT16)(CharCurrent + Length16);
+ break;
+
+ case EFI_HII_GIBT_SKIP1:
+ CharCurrent = (UINT16)(CharCurrent + (UINT16)(*(BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK))));
+ BlockPtr += sizeof (EFI_HII_GIBT_SKIP1_BLOCK);
+ break;
+ case EFI_HII_GIBT_SKIP2:
+ CopyMem (&Length16, BlockPtr + sizeof (EFI_HII_GLYPH_BLOCK), sizeof (UINT16));
+ CharCurrent = (UINT16)(CharCurrent + Length16);
+ BlockPtr += sizeof (EFI_HII_GIBT_SKIP2_BLOCK);
+ break;
+ default:
+ ASSERT (FALSE);
+ break;
}
if (CharValue < CharCurrent) {
@@ -908,16 +929,15 @@ FindGlyphBlock (
}
}
- if (CharValue == (CHAR16) (-1)) {
+ if (CharValue == (CHAR16)(-1)) {
FontPackage->BaseLine = BaseLine;
- FontPackage->Height = (UINT16) (BaseLine - MinOffsetY);
+ FontPackage->Height = (UINT16)(BaseLine - MinOffsetY);
return EFI_SUCCESS;
}
return EFI_NOT_FOUND;
}
-
/**
Copy a Font Name to a new created EFI_FONT_INFO structure.
@@ -934,18 +954,18 @@ FindGlyphBlock (
**/
EFI_STATUS
SaveFontName (
- IN EFI_STRING FontName,
- OUT EFI_FONT_INFO **FontInfo
+ IN EFI_STRING FontName,
+ OUT EFI_FONT_INFO **FontInfo
)
{
- UINTN FontInfoLen;
- UINTN NameSize;
+ UINTN FontInfoLen;
+ UINTN NameSize;
ASSERT (FontName != NULL && FontInfo != NULL);
- NameSize = StrSize (FontName);
+ NameSize = StrSize (FontName);
FontInfoLen = sizeof (EFI_FONT_INFO) - sizeof (CHAR16) + NameSize;
- *FontInfo = (EFI_FONT_INFO *) AllocateZeroPool (FontInfoLen);
+ *FontInfo = (EFI_FONT_INFO *)AllocateZeroPool (FontInfoLen);
if (*FontInfo == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -954,7 +974,6 @@ SaveFontName (
return EFI_SUCCESS;
}
-
/**
Retrieve system default font and color.
@@ -972,18 +991,19 @@ SaveFontName (
**/
EFI_STATUS
GetSystemFont (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- OUT EFI_FONT_DISPLAY_INFO **FontInfo,
- OUT UINTN *FontInfoSize OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ OUT EFI_FONT_DISPLAY_INFO **FontInfo,
+ OUT UINTN *FontInfoSize OPTIONAL
)
{
- EFI_FONT_DISPLAY_INFO *Info;
- UINTN InfoSize;
- UINTN NameSize;
+ EFI_FONT_DISPLAY_INFO *Info;
+ UINTN InfoSize;
+ UINTN NameSize;
- if (Private == NULL || Private->Signature != HII_DATABASE_PRIVATE_DATA_SIGNATURE) {
+ if ((Private == NULL) || (Private->Signature != HII_DATABASE_PRIVATE_DATA_SIGNATURE)) {
return EFI_INVALID_PARAMETER;
}
+
if (FontInfo == NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -993,12 +1013,12 @@ GetSystemFont (
//
NameSize = StrSize (L"sysdefault");
InfoSize = sizeof (EFI_FONT_DISPLAY_INFO) - sizeof (CHAR16) + NameSize;
- Info = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (InfoSize);
+ Info = (EFI_FONT_DISPLAY_INFO *)AllocateZeroPool (InfoSize);
if (Info == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Info->ForegroundColor = mHiiEfiColors[Private->Attribute & 0x0f];
+ Info->ForegroundColor = mHiiEfiColors[Private->Attribute & 0x0f];
ASSERT ((Private->Attribute >> 4) < 8);
Info->BackgroundColor = mHiiEfiColors[Private->Attribute >> 4];
Info->FontInfoMask = EFI_FONT_INFO_SYS_FONT | EFI_FONT_INFO_SYS_SIZE | EFI_FONT_INFO_SYS_STYLE;
@@ -1010,10 +1030,10 @@ GetSystemFont (
if (FontInfoSize != NULL) {
*FontInfoSize = InfoSize;
}
+
return EFI_SUCCESS;
}
-
/**
Check whether EFI_FONT_DISPLAY_INFO points to system default font and color or
returns the system default according to the optional inputs.
@@ -1034,20 +1054,20 @@ GetSystemFont (
**/
BOOLEAN
IsSystemFontInfo (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_FONT_DISPLAY_INFO *StringInfo,
- OUT EFI_FONT_DISPLAY_INFO **SystemInfo OPTIONAL,
- OUT UINTN *SystemInfoLen OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_FONT_DISPLAY_INFO *StringInfo,
+ OUT EFI_FONT_DISPLAY_INFO **SystemInfo OPTIONAL,
+ OUT UINTN *SystemInfoLen OPTIONAL
)
{
- EFI_STATUS Status;
- EFI_FONT_DISPLAY_INFO *SystemDefault;
- UINTN DefaultLen;
- BOOLEAN Flag;
+ EFI_STATUS Status;
+ EFI_FONT_DISPLAY_INFO *SystemDefault;
+ UINTN DefaultLen;
+ BOOLEAN Flag;
ASSERT (Private != NULL && Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);
- if (StringInfo == NULL && SystemInfo == NULL) {
+ if ((StringInfo == NULL) && (SystemInfo == NULL)) {
return TRUE;
}
@@ -1082,31 +1102,37 @@ IsSystemFontInfo (
goto Exit;
}
}
+
if ((StringInfo->FontInfoMask & (EFI_FONT_INFO_SYS_SIZE | EFI_FONT_INFO_ANY_SIZE)) == 0) {
if (StringInfo->FontInfo.FontSize != SystemDefault->FontInfo.FontSize) {
goto Exit;
}
}
+
if ((StringInfo->FontInfoMask & (EFI_FONT_INFO_SYS_STYLE | EFI_FONT_INFO_ANY_STYLE)) == 0) {
if (StringInfo->FontInfo.FontStyle != SystemDefault->FontInfo.FontStyle) {
goto Exit;
}
}
+
if ((StringInfo->FontInfoMask & EFI_FONT_INFO_SYS_FORE_COLOR) == 0) {
if (CompareMem (
&StringInfo->ForegroundColor,
&SystemDefault->ForegroundColor,
sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- ) != 0) {
+ ) != 0)
+ {
goto Exit;
}
}
+
if ((StringInfo->FontInfoMask & EFI_FONT_INFO_SYS_BACK_COLOR) == 0) {
if (CompareMem (
&StringInfo->BackgroundColor,
&SystemDefault->BackgroundColor,
sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)
- ) != 0) {
+ ) != 0)
+ {
goto Exit;
}
}
@@ -1119,10 +1145,10 @@ Exit:
FreePool (SystemDefault);
}
}
+
return Flag;
}
-
/**
This function checks whether EFI_FONT_INFO exists in current database. If
FontInfoMask is specified, check what options can be used to make a match.
@@ -1147,21 +1173,21 @@ Exit:
**/
BOOLEAN
IsFontInfoExisted (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_FONT_INFO *FontInfo,
- IN EFI_FONT_INFO_MASK *FontInfoMask OPTIONAL,
- IN EFI_FONT_HANDLE FontHandle OPTIONAL,
- OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_FONT_INFO *FontInfo,
+ IN EFI_FONT_INFO_MASK *FontInfoMask OPTIONAL,
+ IN EFI_FONT_HANDLE FontHandle OPTIONAL,
+ OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL
)
{
- HII_GLOBAL_FONT_INFO *GlobalFont;
- HII_GLOBAL_FONT_INFO *GlobalFontBackup1;
- HII_GLOBAL_FONT_INFO *GlobalFontBackup2;
- LIST_ENTRY *Link;
- EFI_FONT_INFO_MASK Mask;
- BOOLEAN Matched;
- BOOLEAN VagueMatched1;
- BOOLEAN VagueMatched2;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+ HII_GLOBAL_FONT_INFO *GlobalFontBackup1;
+ HII_GLOBAL_FONT_INFO *GlobalFontBackup2;
+ LIST_ENTRY *Link;
+ EFI_FONT_INFO_MASK Mask;
+ BOOLEAN Matched;
+ BOOLEAN VagueMatched1;
+ BOOLEAN VagueMatched2;
ASSERT (Private != NULL && Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);
ASSERT (FontInfo != NULL);
@@ -1170,9 +1196,9 @@ IsFontInfoExisted (
// Matched flag represents an exactly match; VagueMatched1 represents a RESIZE
// or RESTYLE match; VagueMatched2 represents a RESIZE | RESTYLE match.
//
- Matched = FALSE;
- VagueMatched1 = FALSE;
- VagueMatched2 = FALSE;
+ Matched = FALSE;
+ VagueMatched1 = FALSE;
+ VagueMatched2 = FALSE;
Mask = 0;
GlobalFontBackup1 = NULL;
@@ -1192,16 +1218,17 @@ IsFontInfoExisted (
if (FontHandle == NULL) {
Link = Private->FontInfoList.ForwardLink;
} else {
- Link = (LIST_ENTRY *) FontHandle;
+ Link = (LIST_ENTRY *)FontHandle;
}
- for (; Link != &Private->FontInfoList; Link = Link->ForwardLink) {
+ for ( ; Link != &Private->FontInfoList; Link = Link->ForwardLink) {
GlobalFont = CR (Link, HII_GLOBAL_FONT_INFO, Entry, HII_GLOBAL_FONT_INFO_SIGNATURE);
if (FontInfoMask == NULL) {
if (CompareMem (GlobalFont->FontInfo, FontInfo, GlobalFont->FontInfoSize) == 0) {
if (GlobalFontInfo != NULL) {
*GlobalFontInfo = GlobalFont;
}
+
return TRUE;
}
} else {
@@ -1209,208 +1236,232 @@ IsFontInfoExisted (
// Check which options could be used to make a match.
//
switch (Mask) {
- case EFI_FONT_INFO_ANY_FONT:
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle &&
- GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- }
- break;
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_STYLE:
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- }
- break;
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_SIZE:
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- Matched = TRUE;
- }
- break;
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_SIZE | EFI_FONT_INFO_ANY_STYLE:
- Matched = TRUE;
- break;
- //
- // If EFI_FONT_INFO_RESTYLE is specified, then the system may attempt to
- // remove some of the specified styles to meet the style requested.
- //
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_RESTYLE:
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ case EFI_FONT_INFO_ANY_FONT:
+ if ((GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) &&
+ (GlobalFont->FontInfo->FontSize == FontInfo->FontSize))
+ {
+ Matched = TRUE;
+ }
+
+ break;
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_STYLE:
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ Matched = TRUE;
+ }
+
+ break;
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_SIZE:
if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- Matched = TRUE;
- } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
+ Matched = TRUE;
}
- }
- break;
- //
- // If EFI_FONT_INFO_RESIZE is specified, then the system may attempt to
- // stretch or shrink a font to meet the size requested.
- //
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_RESIZE:
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- } else {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
+
+ break;
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_SIZE | EFI_FONT_INFO_ANY_STYLE:
+ Matched = TRUE;
+ break;
+ //
+ // If EFI_FONT_INFO_RESTYLE is specified, then the system may attempt to
+ // remove some of the specified styles to meet the style requested.
+ //
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_RESTYLE:
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+ Matched = TRUE;
+ } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ }
}
- }
- break;
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_RESTYLE | EFI_FONT_INFO_RESIZE:
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- } else {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
+
+ break;
+ //
+ // If EFI_FONT_INFO_RESIZE is specified, then the system may attempt to
+ // stretch or shrink a font to meet the size requested.
+ //
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_RESIZE:
+ if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ Matched = TRUE;
+ } else {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ }
}
- } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
- } else {
- VagueMatched2 = TRUE;
- GlobalFontBackup2 = GlobalFont;
+
+ break;
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_RESTYLE | EFI_FONT_INFO_RESIZE:
+ if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ Matched = TRUE;
+ } else {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ }
+ } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ } else {
+ VagueMatched2 = TRUE;
+ GlobalFontBackup2 = GlobalFont;
+ }
}
- }
- break;
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_STYLE | EFI_FONT_INFO_RESIZE:
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- } else {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
- }
- break;
- case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_SIZE | EFI_FONT_INFO_RESTYLE:
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- Matched = TRUE;
- } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
- }
- break;
- case EFI_FONT_INFO_ANY_STYLE:
- if ((CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) &&
- GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- }
- break;
- case EFI_FONT_INFO_ANY_STYLE | EFI_FONT_INFO_ANY_SIZE:
- if (CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) {
- Matched = TRUE;
- }
- break;
- case EFI_FONT_INFO_ANY_STYLE | EFI_FONT_INFO_RESIZE:
- if (CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) {
+
+ break;
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_STYLE | EFI_FONT_INFO_RESIZE:
if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
+ Matched = TRUE;
} else {
VagueMatched1 = TRUE;
GlobalFontBackup1 = GlobalFont;
}
- }
- break;
- case EFI_FONT_INFO_ANY_SIZE:
- if ((CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) &&
- GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- Matched = TRUE;
- }
- break;
- case EFI_FONT_INFO_ANY_SIZE | EFI_FONT_INFO_RESTYLE:
- if (CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) {
+
+ break;
+ case EFI_FONT_INFO_ANY_FONT | EFI_FONT_INFO_ANY_SIZE | EFI_FONT_INFO_RESTYLE:
if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- Matched = TRUE;
+ Matched = TRUE;
} else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
VagueMatched1 = TRUE;
GlobalFontBackup1 = GlobalFont;
}
- }
- break;
- case EFI_FONT_INFO_RESTYLE:
- if ((CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) &&
- GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- Matched = TRUE;
- } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
+ break;
+ case EFI_FONT_INFO_ANY_STYLE:
+ if ((CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0) &&
+ (GlobalFont->FontInfo->FontSize == FontInfo->FontSize))
+ {
+ Matched = TRUE;
}
- }
- break;
- case EFI_FONT_INFO_RESIZE:
- if ((CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) &&
- GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
- } else {
- VagueMatched1 = TRUE;
- GlobalFontBackup1 = GlobalFont;
+ break;
+ case EFI_FONT_INFO_ANY_STYLE | EFI_FONT_INFO_ANY_SIZE:
+ if (CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0)
+ {
+ Matched = TRUE;
}
- }
- break;
- case EFI_FONT_INFO_RESIZE | EFI_FONT_INFO_RESTYLE:
- if (CompareMem (
- GlobalFont->FontInfo->FontName,
- FontInfo->FontName,
- StrSize (FontInfo->FontName)
- ) == 0) {
- if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+
+ break;
+ case EFI_FONT_INFO_ANY_STYLE | EFI_FONT_INFO_RESIZE:
+ if (CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0)
+ {
if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
- Matched = TRUE;
+ Matched = TRUE;
} else {
VagueMatched1 = TRUE;
GlobalFontBackup1 = GlobalFont;
}
- } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
- if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ }
+
+ break;
+ case EFI_FONT_INFO_ANY_SIZE:
+ if ((CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0) &&
+ (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle))
+ {
+ Matched = TRUE;
+ }
+
+ break;
+ case EFI_FONT_INFO_ANY_SIZE | EFI_FONT_INFO_RESTYLE:
+ if (CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0)
+ {
+ if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+ Matched = TRUE;
+ } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
VagueMatched1 = TRUE;
GlobalFontBackup1 = GlobalFont;
+ }
+ }
+
+ break;
+ case EFI_FONT_INFO_RESTYLE:
+ if ((CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0) &&
+ (GlobalFont->FontInfo->FontSize == FontInfo->FontSize))
+ {
+ if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+ Matched = TRUE;
+ } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ }
+ }
+
+ break;
+ case EFI_FONT_INFO_RESIZE:
+ if ((CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0) &&
+ (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle))
+ {
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ Matched = TRUE;
} else {
- VagueMatched2 = TRUE;
- GlobalFontBackup2 = GlobalFont;
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
}
}
- }
- break;
- default:
- break;
+
+ break;
+ case EFI_FONT_INFO_RESIZE | EFI_FONT_INFO_RESTYLE:
+ if (CompareMem (
+ GlobalFont->FontInfo->FontName,
+ FontInfo->FontName,
+ StrSize (FontInfo->FontName)
+ ) == 0)
+ {
+ if (GlobalFont->FontInfo->FontStyle == FontInfo->FontStyle) {
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ Matched = TRUE;
+ } else {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ }
+ } else if ((GlobalFont->FontInfo->FontStyle & FontInfo->FontStyle) == FontInfo->FontStyle) {
+ if (GlobalFont->FontInfo->FontSize == FontInfo->FontSize) {
+ VagueMatched1 = TRUE;
+ GlobalFontBackup1 = GlobalFont;
+ } else {
+ VagueMatched2 = TRUE;
+ GlobalFontBackup2 = GlobalFont;
+ }
+ }
+ }
+
+ break;
+ default:
+ break;
}
if (Matched) {
if (GlobalFontInfo != NULL) {
*GlobalFontInfo = GlobalFont;
}
+
return TRUE;
}
}
@@ -1420,18 +1471,19 @@ IsFontInfoExisted (
if (GlobalFontInfo != NULL) {
*GlobalFontInfo = GlobalFontBackup1;
}
+
return TRUE;
} else if (VagueMatched2) {
if (GlobalFontInfo != NULL) {
*GlobalFontInfo = GlobalFontBackup2;
}
+
return TRUE;
}
return FALSE;
}
-
/**
Check whether the unicode represents a line break or not.
@@ -1448,7 +1500,7 @@ IsFontInfoExisted (
**/
INT8
IsLineBreak (
- IN CHAR16 Char
+ IN CHAR16 Char
)
{
switch (Char) {
@@ -1509,10 +1561,10 @@ IsLineBreak (
case 0x2014:
return 2;
}
+
return -1;
}
-
/**
Renders a string to a bitmap or to the display.
@@ -1570,65 +1622,66 @@ IsLineBreak (
EFI_STATUS
EFIAPI
HiiStringToImage (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN EFI_HII_OUT_FLAGS Flags,
- IN CONST EFI_STRING String,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY,
- OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
- OUT UINTN *RowInfoArraySize OPTIONAL,
- OUT UINTN *ColumnInfoArray OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN EFI_HII_OUT_FLAGS Flags,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY,
+ OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
+ OUT UINTN *RowInfoArraySize OPTIONAL,
+ OUT UINTN *ColumnInfoArray OPTIONAL
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- UINT8 **GlyphBuf;
- EFI_HII_GLYPH_INFO *Cell;
- UINT8 *Attributes;
- EFI_IMAGE_OUTPUT *Image;
- EFI_STRING StringPtr;
- EFI_STRING StringTmp;
- EFI_HII_ROW_INFO *RowInfo;
- UINTN LineWidth;
- UINTN LineHeight;
- UINTN LineOffset;
- UINTN LastLineHeight;
- UINTN BaseLineOffset;
- UINT16 MaxRowNum;
- UINT16 RowIndex;
- UINTN Index;
- UINTN NextIndex;
- UINTN Index1;
- EFI_FONT_DISPLAY_INFO *StringInfoOut;
- EFI_FONT_DISPLAY_INFO *SystemDefault;
- EFI_FONT_HANDLE FontHandle;
- EFI_STRING StringIn;
- EFI_STRING StringIn2;
- UINT16 Height;
- UINT16 BaseLine;
- EFI_FONT_INFO *FontInfo;
- BOOLEAN SysFontFlag;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
- BOOLEAN Transparent;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BufferPtr;
- UINTN RowInfoSize;
- BOOLEAN LineBreak;
- UINTN StrLength;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *RowBufferPtr;
- HII_GLOBAL_FONT_INFO *GlobalFont;
- UINT32 PreInitBkgnd;
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ UINT8 **GlyphBuf;
+ EFI_HII_GLYPH_INFO *Cell;
+ UINT8 *Attributes;
+ EFI_IMAGE_OUTPUT *Image;
+ EFI_STRING StringPtr;
+ EFI_STRING StringTmp;
+ EFI_HII_ROW_INFO *RowInfo;
+ UINTN LineWidth;
+ UINTN LineHeight;
+ UINTN LineOffset;
+ UINTN LastLineHeight;
+ UINTN BaseLineOffset;
+ UINT16 MaxRowNum;
+ UINT16 RowIndex;
+ UINTN Index;
+ UINTN NextIndex;
+ UINTN Index1;
+ EFI_FONT_DISPLAY_INFO *StringInfoOut;
+ EFI_FONT_DISPLAY_INFO *SystemDefault;
+ EFI_FONT_HANDLE FontHandle;
+ EFI_STRING StringIn;
+ EFI_STRING StringIn2;
+ UINT16 Height;
+ UINT16 BaseLine;
+ EFI_FONT_INFO *FontInfo;
+ BOOLEAN SysFontFlag;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
+ BOOLEAN Transparent;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BufferPtr;
+ UINTN RowInfoSize;
+ BOOLEAN LineBreak;
+ UINTN StrLength;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *RowBufferPtr;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+ UINT32 PreInitBkgnd;
//
// Check incoming parameters.
//
- if (This == NULL || String == NULL || Blt == NULL) {
+ if ((This == NULL) || (String == NULL) || (Blt == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if (*Blt == NULL) {
//
// These two flag cannot be used if Blt is NULL upon entry.
@@ -1636,19 +1689,23 @@ HiiStringToImage (
if ((Flags & EFI_HII_OUT_FLAG_TRANSPARENT) == EFI_HII_OUT_FLAG_TRANSPARENT) {
return EFI_INVALID_PARAMETER;
}
+
if ((Flags & EFI_HII_OUT_FLAG_CLIP) == EFI_HII_OUT_FLAG_CLIP) {
return EFI_INVALID_PARAMETER;
}
}
+
//
// These two flags require that EFI_HII_OUT_FLAG_CLIP be also set.
//
if ((Flags & (EFI_HII_OUT_FLAG_CLIP | EFI_HII_OUT_FLAG_CLIP_CLEAN_X)) == EFI_HII_OUT_FLAG_CLIP_CLEAN_X) {
return EFI_INVALID_PARAMETER;
}
+
if ((Flags & (EFI_HII_OUT_FLAG_CLIP | EFI_HII_OUT_FLAG_CLIP_CLEAN_Y)) == EFI_HII_OUT_FLAG_CLIP_CLEAN_Y) {
return EFI_INVALID_PARAMETER;
}
+
//
// This flag cannot be used with EFI_HII_OUT_FLAG_CLEAN_X.
//
@@ -1664,8 +1721,9 @@ HiiStringToImage (
if (Image == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Image->Width = 800;
- Image->Height = 600;
+
+ Image->Width = 800;
+ Image->Height = 600;
Image->Image.Bitmap = AllocateZeroPool (Image->Width * Image->Height *sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
if (Image->Image.Bitmap == NULL) {
FreePool (Image);
@@ -1676,15 +1734,15 @@ HiiStringToImage (
// Other flags are not permitted when Blt is NULL.
//
Flags &= EFI_HII_OUT_FLAG_WRAP | EFI_HII_IGNORE_IF_NO_GLYPH | EFI_HII_IGNORE_LINE_BREAK;
- *Blt = Image;
+ *Blt = Image;
}
- StrLength = StrLen(String);
- GlyphBuf = (UINT8 **) AllocateZeroPool (StrLength * sizeof (UINT8 *));
+ StrLength = StrLen (String);
+ GlyphBuf = (UINT8 **)AllocateZeroPool (StrLength * sizeof (UINT8 *));
ASSERT (GlyphBuf != NULL);
- Cell = (EFI_HII_GLYPH_INFO *) AllocateZeroPool (StrLength * sizeof (EFI_HII_GLYPH_INFO));
+ Cell = (EFI_HII_GLYPH_INFO *)AllocateZeroPool (StrLength * sizeof (EFI_HII_GLYPH_INFO));
ASSERT (Cell != NULL);
- Attributes = (UINT8 *) AllocateZeroPool (StrLength * sizeof (UINT8));
+ Attributes = (UINT8 *)AllocateZeroPool (StrLength * sizeof (UINT8));
ASSERT (Attributes != NULL);
RowInfo = NULL;
@@ -1701,7 +1759,7 @@ HiiStringToImage (
StringInfoOut = NULL;
FontHandle = NULL;
Private = HII_FONT_DATABASE_PRIVATE_DATA_FROM_THIS (This);
- SysFontFlag = IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *) StringInfo, &SystemDefault, NULL);
+ SysFontFlag = IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *)StringInfo, &SystemDefault, NULL);
if (SysFontFlag) {
ASSERT (SystemDefault != NULL);
@@ -1710,13 +1768,12 @@ HiiStringToImage (
BaseLine = SystemDefault->FontInfo.FontSize;
Foreground = SystemDefault->ForegroundColor;
Background = SystemDefault->BackgroundColor;
-
} else {
//
// StringInfo must not be NULL if it is not system info.
//
ASSERT (StringInfo != NULL);
- Status = HiiGetFontInfo (This, &FontHandle, (EFI_FONT_DISPLAY_INFO *) StringInfo, &StringInfoOut, NULL);
+ Status = HiiGetFontInfo (This, &FontHandle, (EFI_FONT_DISPLAY_INFO *)StringInfo, &StringInfoOut, NULL);
if (Status == EFI_NOT_FOUND) {
//
// The specified EFI_FONT_DISPLAY_INFO does not exist in current database.
@@ -1726,11 +1783,10 @@ HiiStringToImage (
FontInfo = NULL;
Height = SystemDefault->FontInfo.FontSize;
BaseLine = SystemDefault->FontInfo.FontSize;
- Foreground = ((EFI_FONT_DISPLAY_INFO *) StringInfo)->ForegroundColor;
- Background = ((EFI_FONT_DISPLAY_INFO *) StringInfo)->BackgroundColor;
-
+ Foreground = ((EFI_FONT_DISPLAY_INFO *)StringInfo)->ForegroundColor;
+ Background = ((EFI_FONT_DISPLAY_INFO *)StringInfo)->BackgroundColor;
} else if (Status == EFI_SUCCESS) {
- FontInfo = &StringInfoOut->FontInfo;
+ FontInfo = &StringInfoOut->FontInfo;
IsFontInfoExisted (Private, FontInfo, NULL, NULL, &GlobalFont);
Height = GlobalFont->FontPackage->Height;
BaseLine = GlobalFont->FontPackage->BaseLine;
@@ -1765,6 +1821,7 @@ HiiStringToImage (
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
StringTmp = StringIn;
while (*StringPtr != 0) {
if (IsLineBreak (*StringPtr) == 0) {
@@ -1773,21 +1830,24 @@ HiiStringToImage (
*StringTmp++ = *StringPtr++;
}
}
+
*StringTmp = 0;
StringPtr = StringIn;
}
+
//
// If EFI_HII_IGNORE_IF_NO_GLYPH is set, then characters which have no glyphs
// are not drawn. Otherwise they are replaced with Unicode character 0xFFFD.
//
- StringIn2 = AllocateZeroPool (StrSize (StringPtr));
+ StringIn2 = AllocateZeroPool (StrSize (StringPtr));
if (StringIn2 == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
Index = 0;
StringTmp = StringIn2;
- StrLength = StrLen(StringPtr);
+ StrLength = StrLen (StringPtr);
while (*StringPtr != 0 && Index < StrLength) {
if (IsLineBreak (*StringPtr) == 0) {
*StringTmp++ = *StringPtr++;
@@ -1826,6 +1886,7 @@ HiiStringToImage (
*StringTmp++ = *StringPtr++;
Index++;
}
+
*StringTmp = 0;
StringPtr = StringIn2;
@@ -1844,13 +1905,14 @@ HiiStringToImage (
Status = EFI_INVALID_PARAMETER;
goto Exit;
}
- MaxRowNum = (UINT16) ((Image->Height - BltY) / Height);
+
+ MaxRowNum = (UINT16)((Image->Height - BltY) / Height);
if ((Image->Height - BltY) % Height != 0) {
LastLineHeight = (Image->Height - BltY) % Height;
MaxRowNum++;
}
- RowInfo = (EFI_HII_ROW_INFO *) AllocateZeroPool (MaxRowNum * sizeof (EFI_HII_ROW_INFO));
+ RowInfo = (EFI_HII_ROW_INFO *)AllocateZeroPool (MaxRowNum * sizeof (EFI_HII_ROW_INFO));
if (RowInfo == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
@@ -1859,23 +1921,24 @@ HiiStringToImage (
//
// Format the glyph buffer according to flags.
//
- Transparent = (BOOLEAN) ((Flags & EFI_HII_OUT_FLAG_TRANSPARENT) == EFI_HII_OUT_FLAG_TRANSPARENT ? TRUE : FALSE);
+ Transparent = (BOOLEAN)((Flags & EFI_HII_OUT_FLAG_TRANSPARENT) == EFI_HII_OUT_FLAG_TRANSPARENT ? TRUE : FALSE);
for (RowIndex = 0, Index = 0; RowIndex < MaxRowNum && StringPtr[Index] != 0; ) {
- LineWidth = 0;
- LineBreak = FALSE;
+ LineWidth = 0;
+ LineBreak = FALSE;
//
// Clip the final row if the row's bottom-most on pixel cannot fit when
// EFI_HII_OUT_FLAG_CLEAN_Y is set.
//
if (RowIndex == MaxRowNum - 1) {
- if ((Flags & EFI_HII_OUT_FLAG_CLIP_CLEAN_Y) == EFI_HII_OUT_FLAG_CLIP_CLEAN_Y && LastLineHeight < LineHeight ) {
+ if (((Flags & EFI_HII_OUT_FLAG_CLIP_CLEAN_Y) == EFI_HII_OUT_FLAG_CLIP_CLEAN_Y) && (LastLineHeight < LineHeight)) {
//
// Don't draw at all if the row's bottom-most on pixel cannot fit.
//
break;
}
+
LineHeight = LastLineHeight;
}
@@ -1885,8 +1948,9 @@ HiiStringToImage (
RowInfo[RowIndex].StartIndex = Index;
while (LineWidth + BltX < Image->Width && StringPtr[Index] != 0) {
- if ((Flags & EFI_HII_IGNORE_LINE_BREAK) == 0 &&
- IsLineBreak (StringPtr[Index]) == 0) {
+ if (((Flags & EFI_HII_IGNORE_LINE_BREAK) == 0) &&
+ (IsLineBreak (StringPtr[Index]) == 0))
+ {
//
// It forces a line break that ends this row.
//
@@ -1898,7 +1962,7 @@ HiiStringToImage (
//
// If the glyph of the character is existing, then accumulate the actual printed width
//
- LineWidth += (UINTN) Cell[Index].AdvanceX;
+ LineWidth += (UINTN)Cell[Index].AdvanceX;
Index++;
}
@@ -1911,11 +1975,11 @@ HiiStringToImage (
// Return to the previous char.
//
Index--;
- if (LineBreak && Index > 0 ) {
+ if (LineBreak && (Index > 0)) {
//
// Return the previous non line break char.
//
- Index --;
+ Index--;
}
//
@@ -1927,8 +1991,9 @@ HiiStringToImage (
//
// Clip the right-most character if cannot fit when EFI_HII_OUT_FLAG_CLEAN_X is set.
//
- if (LineWidth + BltX <= Image->Width ||
- (LineWidth + BltX > Image->Width && (Flags & EFI_HII_OUT_FLAG_CLIP_CLEAN_X) == 0)) {
+ if ((LineWidth + BltX <= Image->Width) ||
+ ((LineWidth + BltX > Image->Width) && ((Flags & EFI_HII_OUT_FLAG_CLIP_CLEAN_X) == 0)))
+ {
//
// Record right-most character in RowInfo even if it is partially displayed.
//
@@ -1945,8 +2010,8 @@ HiiStringToImage (
//
// Don't draw the last char on this row. And, don't draw the second last char (AdvanceX - Width - OffsetX).
//
- LineWidth -= (Cell[Index].Width + Cell[Index].OffsetX);
- LineWidth -= (Cell[Index - 1].AdvanceX - Cell[Index - 1].Width - Cell[Index - 1].OffsetX);
+ LineWidth -= (Cell[Index].Width + Cell[Index].OffsetX);
+ LineWidth -= (Cell[Index - 1].AdvanceX - Cell[Index - 1].Width - Cell[Index - 1].OffsetX);
RowInfo[RowIndex].EndIndex = Index - 1;
RowInfo[RowIndex].LineWidth = LineWidth;
RowInfo[RowIndex].LineHeight = LineHeight;
@@ -1956,7 +2021,7 @@ HiiStringToImage (
// There is no enough column to draw any character, so set current line width to zero.
// And go to draw Next line if LineBreak is set.
//
- RowInfo[RowIndex].LineWidth = 0;
+ RowInfo[RowIndex].LineWidth = 0;
goto NextLine;
}
}
@@ -1966,9 +2031,10 @@ HiiStringToImage (
// opportunity prior to a character whose right-most extent would exceed Width.
// Search the right-most line-break opportunity here.
//
- if ((Flags & EFI_HII_OUT_FLAG_WRAP) == EFI_HII_OUT_FLAG_WRAP &&
- (RowInfo[RowIndex].LineWidth + BltX > Image->Width || StringPtr[NextIndex] != 0) &&
- !LineBreak) {
+ if (((Flags & EFI_HII_OUT_FLAG_WRAP) == EFI_HII_OUT_FLAG_WRAP) &&
+ ((RowInfo[RowIndex].LineWidth + BltX > Image->Width) || (StringPtr[NextIndex] != 0)) &&
+ !LineBreak)
+ {
if ((Flags & EFI_HII_IGNORE_LINE_BREAK) == 0) {
LineWidth = RowInfo[RowIndex].LineWidth;
for (Index1 = RowInfo[RowIndex].EndIndex; Index1 >= RowInfo[RowIndex].StartIndex; Index1--) {
@@ -1977,23 +2043,27 @@ HiiStringToImage (
} else {
LineWidth -= Cell[Index1].AdvanceX;
}
+
if (IsLineBreak (StringPtr[Index1]) > 0) {
LineBreak = TRUE;
if (Index1 > RowInfo[RowIndex].StartIndex) {
RowInfo[RowIndex].EndIndex = Index1 - 1;
}
+
//
// relocate to the character after the right-most line break opportunity of this line
//
NextIndex = Index1 + 1;
break;
}
+
//
// If don't find a line break opportunity from EndIndex to StartIndex,
// then jump out.
//
- if (Index1 == RowInfo[RowIndex].StartIndex)
+ if (Index1 == RowInfo[RowIndex].StartIndex) {
break;
+ }
}
//
@@ -2005,9 +2075,11 @@ HiiStringToImage (
} else {
LineWidth -= (Cell[Index1 - 1].AdvanceX - Cell[Index1 - 1].Width - Cell[Index1 - 1].OffsetX);
}
+
RowInfo[RowIndex].LineWidth = LineWidth;
}
}
+
//
// If no line-break opportunity can be found, then the text will
// behave as if EFI_HII_OUT_FLAG_CLEAN_X is set.
@@ -2020,10 +2092,10 @@ HiiStringToImage (
//
// Don't draw the last char on this row. And, don't draw the second last char (AdvanceX - Width - OffsetX).
//
- LineWidth -= (Cell[Index1].Width + Cell[Index1].OffsetX);
- LineWidth -= (Cell[Index1 - 1].AdvanceX - Cell[Index1 - 1].Width - Cell[Index1 - 1].OffsetX);
- RowInfo[RowIndex].EndIndex = Index1 - 1;
- RowInfo[RowIndex].LineWidth = LineWidth;
+ LineWidth -= (Cell[Index1].Width + Cell[Index1].OffsetX);
+ LineWidth -= (Cell[Index1 - 1].AdvanceX - Cell[Index1 - 1].Width - Cell[Index1 - 1].OffsetX);
+ RowInfo[RowIndex].EndIndex = Index1 - 1;
+ RowInfo[RowIndex].LineWidth = LineWidth;
} else {
//
// There is no enough column to draw any character, so set current line width to zero.
@@ -2056,18 +2128,20 @@ HiiStringToImage (
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
//
// Initialize the background color.
//
PreInitBkgnd = Background.Blue | Background.Green << 8 | Background.Red << 16;
- SetMem32 (BltBuffer,RowInfo[RowIndex].LineWidth * RowInfo[RowIndex].LineHeight * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL),PreInitBkgnd);
+ SetMem32 (BltBuffer, RowInfo[RowIndex].LineWidth * RowInfo[RowIndex].LineHeight * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), PreInitBkgnd);
//
// Set BufferPtr to Origin by adding baseline to the starting position.
//
BufferPtr = BltBuffer + BaseLine * RowInfo[RowIndex].LineWidth;
}
+
for (Index1 = RowInfo[RowIndex].StartIndex; Index1 <= RowInfo[RowIndex].EndIndex; Index1++) {
- if (RowInfo[RowIndex].LineWidth > 0 && RowInfo[RowIndex].LineWidth > LineOffset) {
+ if ((RowInfo[RowIndex].LineWidth > 0) && (RowInfo[RowIndex].LineWidth > LineOffset)) {
//
// Only BLT these character which have corresponding glyph in font database.
//
@@ -2075,7 +2149,7 @@ HiiStringToImage (
GlyphBuf[Index1],
Foreground,
Background,
- (UINT16) RowInfo[RowIndex].LineWidth,
+ (UINT16)RowInfo[RowIndex].LineWidth,
BaseLine,
RowInfo[RowIndex].LineWidth - LineOffset,
RowInfo[RowIndex].LineHeight,
@@ -2083,17 +2157,21 @@ HiiStringToImage (
&Cell[Index1],
Attributes[Index1],
&BufferPtr
- );
+ );
}
+
if (ColumnInfoArray != NULL) {
- if ((GlyphBuf[Index1] == NULL && Cell[Index1].AdvanceX == 0)
- || RowInfo[RowIndex].LineWidth == 0) {
+ if ( ((GlyphBuf[Index1] == NULL) && (Cell[Index1].AdvanceX == 0))
+ || (RowInfo[RowIndex].LineWidth == 0))
+ {
*ColumnInfoArray = (UINTN) ~0;
} else {
*ColumnInfoArray = LineOffset + Cell[Index1].OffsetX + BltX;
}
+
ColumnInfoArray++;
}
+
LineOffset += Cell[Index1].AdvanceX;
}
@@ -2127,7 +2205,7 @@ HiiStringToImage (
//
BufferPtr = BufferPtr + BaseLine * Image->Width;
for (Index1 = RowInfo[RowIndex].StartIndex; Index1 <= RowInfo[RowIndex].EndIndex; Index1++) {
- if (RowInfo[RowIndex].LineWidth > 0 && RowInfo[RowIndex].LineWidth > LineOffset) {
+ if ((RowInfo[RowIndex].LineWidth > 0) && (RowInfo[RowIndex].LineWidth > LineOffset)) {
//
// Only BLT these character which have corresponding glyph in font database.
//
@@ -2143,17 +2221,21 @@ HiiStringToImage (
&Cell[Index1],
Attributes[Index1],
&BufferPtr
- );
+ );
}
+
if (ColumnInfoArray != NULL) {
- if ((GlyphBuf[Index1] == NULL && Cell[Index1].AdvanceX == 0)
- || RowInfo[RowIndex].LineWidth == 0) {
+ if ( ((GlyphBuf[Index1] == NULL) && (Cell[Index1].AdvanceX == 0))
+ || (RowInfo[RowIndex].LineWidth == 0))
+ {
*ColumnInfoArray = (UINTN) ~0;
} else {
*ColumnInfoArray = LineOffset + Cell[Index1].OffsetX + BltX;
}
+
ColumnInfoArray++;
}
+
LineOffset += Cell[Index1].AdvanceX;
}
@@ -2195,11 +2277,13 @@ NextLine:
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
CopyMem (*RowInfoArray, RowInfo, RowInfoSize);
} else {
*RowInfoArray = NULL;
}
}
+
if (RowInfoArraySize != NULL) {
*RowInfoArraySize = RowIndex;
}
@@ -2213,27 +2297,35 @@ Exit:
FreePool (GlyphBuf[Index]);
}
}
+
if (StringIn != NULL) {
FreePool (StringIn);
}
+
if (StringIn2 != NULL) {
FreePool (StringIn2);
}
+
if (StringInfoOut != NULL) {
FreePool (StringInfoOut);
}
+
if (RowInfo != NULL) {
FreePool (RowInfo);
}
+
if (SystemDefault != NULL) {
FreePool (SystemDefault);
}
+
if (GlyphBuf != NULL) {
FreePool (GlyphBuf);
}
+
if (Cell != NULL) {
FreePool (Cell);
}
+
if (Attributes != NULL) {
FreePool (Attributes);
}
@@ -2241,7 +2333,6 @@ Exit:
return Status;
}
-
/**
Render a string to a bitmap or the screen containing the contents of the specified string.
@@ -2306,36 +2397,36 @@ Exit:
EFI_STATUS
EFIAPI
HiiStringIdToImage (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN EFI_HII_OUT_FLAGS Flags,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_STRING_ID StringId,
- IN CONST CHAR8* Language,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY,
- OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
- OUT UINTN *RowInfoArraySize OPTIONAL,
- OUT UINTN *ColumnInfoArray OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN EFI_HII_OUT_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_STRING_ID StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY,
+ OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
+ OUT UINTN *RowInfoArraySize OPTIONAL,
+ OUT UINTN *ColumnInfoArray OPTIONAL
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_HII_STRING_PROTOCOL *HiiString;
- EFI_STRING String;
- UINTN StringSize;
- UINTN FontLen;
- UINTN NameSize;
- EFI_FONT_INFO *StringFontInfo;
- EFI_FONT_DISPLAY_INFO *NewStringInfo;
- CHAR8 TempSupportedLanguages;
- CHAR8 *SupportedLanguages;
- UINTN SupportedLanguagesSize;
- CHAR8 *CurrentLanguage;
- CHAR8 *BestLanguage;
-
- if (This == NULL || PackageList == NULL || Blt == NULL || PackageList == NULL) {
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_HII_STRING_PROTOCOL *HiiString;
+ EFI_STRING String;
+ UINTN StringSize;
+ UINTN FontLen;
+ UINTN NameSize;
+ EFI_FONT_INFO *StringFontInfo;
+ EFI_FONT_DISPLAY_INFO *NewStringInfo;
+ CHAR8 TempSupportedLanguages;
+ CHAR8 *SupportedLanguages;
+ UINTN SupportedLanguagesSize;
+ CHAR8 *CurrentLanguage;
+ CHAR8 *BestLanguage;
+
+ if ((This == NULL) || (PackageList == NULL) || (Blt == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2363,12 +2454,12 @@ HiiStringIdToImage (
// Get the size of supported language.
//
SupportedLanguagesSize = 0;
- Status = HiiString->GetLanguages (
- HiiString,
- PackageList,
- &TempSupportedLanguages,
- &SupportedLanguagesSize
- );
+ Status = HiiString->GetLanguages (
+ HiiString,
+ PackageList,
+ &TempSupportedLanguages,
+ &SupportedLanguagesSize
+ );
if (Status != EFI_BUFFER_TOO_SMALL) {
return Status;
}
@@ -2391,13 +2482,14 @@ HiiStringIdToImage (
if (Language == NULL) {
Language = "";
}
- GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&CurrentLanguage, NULL);
+
+ GetEfiGlobalVariable2 (L"PlatformLang", (VOID **)&CurrentLanguage, NULL);
BestLanguage = GetBestLanguage (
SupportedLanguages,
FALSE,
Language,
(CurrentLanguage == NULL) ? CurrentLanguage : "",
- (CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang),
+ (CHAR8 *)PcdGetPtr (PcdUefiVariableDefaultPlatformLang),
NULL
);
if (BestLanguage == NULL) {
@@ -2406,7 +2498,7 @@ HiiStringIdToImage (
}
StringSize = MAX_STRING_LENGTH;
- String = (EFI_STRING) AllocateZeroPool (StringSize);
+ String = (EFI_STRING)AllocateZeroPool (StringSize);
if (String == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
@@ -2423,11 +2515,12 @@ HiiStringIdToImage (
);
if (Status == EFI_BUFFER_TOO_SMALL) {
FreePool (String);
- String = (EFI_STRING) AllocateZeroPool (StringSize);
+ String = (EFI_STRING)AllocateZeroPool (StringSize);
if (String == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
Status = HiiString->GetString (
HiiString,
BestLanguage,
@@ -2448,14 +2541,15 @@ HiiStringIdToImage (
// use particular stringfontinfo described in string package instead if exists.
// StringFontInfo equals NULL means system default font attaches with the string block.
//
- if (StringFontInfo != NULL && IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *) StringInfo, NULL, NULL)) {
- NameSize = StrSize (StringFontInfo->FontName);
- FontLen = sizeof (EFI_FONT_DISPLAY_INFO) - sizeof (CHAR16) + NameSize;
+ if ((StringFontInfo != NULL) && IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *)StringInfo, NULL, NULL)) {
+ NameSize = StrSize (StringFontInfo->FontName);
+ FontLen = sizeof (EFI_FONT_DISPLAY_INFO) - sizeof (CHAR16) + NameSize;
NewStringInfo = AllocateZeroPool (FontLen);
if (NewStringInfo == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
+
NewStringInfo->FontInfoMask = EFI_FONT_INFO_SYS_FORE_COLOR | EFI_FONT_INFO_SYS_BACK_COLOR;
NewStringInfo->FontInfo.FontStyle = StringFontInfo->FontStyle;
NewStringInfo->FontInfo.FontSize = StringFontInfo->FontSize;
@@ -2477,34 +2571,39 @@ HiiStringIdToImage (
}
Status = HiiStringToImage (
- This,
- Flags,
- String,
- StringInfo,
- Blt,
- BltX,
- BltY,
- RowInfoArray,
- RowInfoArraySize,
- ColumnInfoArray
- );
+ This,
+ Flags,
+ String,
+ StringInfo,
+ Blt,
+ BltX,
+ BltY,
+ RowInfoArray,
+ RowInfoArraySize,
+ ColumnInfoArray
+ );
Exit:
if (SupportedLanguages != NULL) {
FreePool (SupportedLanguages);
}
+
if (CurrentLanguage != NULL) {
FreePool (CurrentLanguage);
}
+
if (BestLanguage != NULL) {
FreePool (BestLanguage);
}
+
if (String != NULL) {
FreePool (String);
}
+
if (StringFontInfo != NULL) {
FreePool (StringFontInfo);
}
+
if (NewStringInfo != NULL) {
FreePool (NewStringInfo);
}
@@ -2512,7 +2611,6 @@ Exit:
return Status;
}
-
/**
Convert the glyph for a single character into a bitmap.
@@ -2538,31 +2636,31 @@ Exit:
EFI_STATUS
EFIAPI
HiiGetGlyph (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN CHAR16 Char,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfo,
- OUT EFI_IMAGE_OUTPUT **Blt,
- OUT UINTN *Baseline OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN CHAR16 Char,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfo,
+ OUT EFI_IMAGE_OUTPUT **Blt,
+ OUT UINTN *Baseline OPTIONAL
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_IMAGE_OUTPUT *Image;
- UINT8 *GlyphBuffer;
- EFI_FONT_DISPLAY_INFO *SystemDefault;
- EFI_FONT_DISPLAY_INFO *StringInfoOut;
- BOOLEAN Default;
- EFI_FONT_HANDLE FontHandle;
- EFI_STRING String;
- EFI_HII_GLYPH_INFO Cell;
- EFI_FONT_INFO *FontInfo;
- UINT8 Attributes;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
- UINT16 BaseLine;
-
- if (This == NULL || Blt == NULL || *Blt != NULL) {
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_IMAGE_OUTPUT *Image;
+ UINT8 *GlyphBuffer;
+ EFI_FONT_DISPLAY_INFO *SystemDefault;
+ EFI_FONT_DISPLAY_INFO *StringInfoOut;
+ BOOLEAN Default;
+ EFI_FONT_HANDLE FontHandle;
+ EFI_STRING String;
+ EFI_HII_GLYPH_INFO Cell;
+ EFI_FONT_INFO *FontInfo;
+ UINT8 Attributes;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
+ UINT16 BaseLine;
+
+ if ((This == NULL) || (Blt == NULL) || (*Blt != NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2580,25 +2678,27 @@ HiiGetGlyph (
ZeroMem (&Foreground, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
ZeroMem (&Background, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
- Default = IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *) StringInfo, &SystemDefault, NULL);
+ Default = IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *)StringInfo, &SystemDefault, NULL);
if (!Default) {
//
// Find out a EFI_FONT_DISPLAY_INFO which could display the character in
// the specified color and font.
//
- String = (EFI_STRING) AllocateZeroPool (sizeof (CHAR16) * 2);
+ String = (EFI_STRING)AllocateZeroPool (sizeof (CHAR16) * 2);
if (String == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
- *String = Char;
+
+ *String = Char;
*(String + 1) = 0;
Status = HiiGetFontInfo (This, &FontHandle, StringInfo, &StringInfoOut, String);
if (EFI_ERROR (Status)) {
goto Exit;
}
+
ASSERT (StringInfoOut != NULL);
FontInfo = &StringInfoOut->FontInfo;
Foreground = StringInfoOut->ForegroundColor;
@@ -2614,13 +2714,14 @@ HiiGetGlyph (
goto Exit;
}
- Image = (EFI_IMAGE_OUTPUT *) AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
+ Image = (EFI_IMAGE_OUTPUT *)AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
if (Image == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Exit;
}
- Image->Width = Cell.Width;
- Image->Height = Cell.Height;
+
+ Image->Width = Cell.Width;
+ Image->Height = Cell.Height;
if (Image->Width * Image->Height > 0) {
Image->Image.Bitmap = AllocateZeroPool (Image->Width * Image->Height * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
@@ -2633,7 +2734,7 @@ HiiGetGlyph (
//
// Set BaseLine to the char height.
//
- BaseLine = (UINT16) (Cell.Height + Cell.OffsetY);
+ BaseLine = (UINT16)(Cell.Height + Cell.OffsetY);
//
// Set BltBuffer to the position of Origin.
//
@@ -2677,14 +2778,17 @@ Exit:
}
if (SystemDefault != NULL) {
- FreePool (SystemDefault);
+ FreePool (SystemDefault);
}
+
if (StringInfoOut != NULL) {
FreePool (StringInfoOut);
}
+
if (String != NULL) {
FreePool (String);
}
+
if (GlyphBuffer != NULL) {
FreePool (GlyphBuffer);
}
@@ -2692,7 +2796,6 @@ Exit:
return Status;
}
-
/**
This function iterates through fonts which match the specified font, using
the specified criteria. If String is non-NULL, then all of the characters in
@@ -2727,31 +2830,31 @@ Exit:
EFI_STATUS
EFIAPI
HiiGetFontInfo (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN OUT EFI_FONT_HANDLE *FontHandle,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn OPTIONAL,
- OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
- IN CONST EFI_STRING String OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN OUT EFI_FONT_HANDLE *FontHandle,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn OPTIONAL,
+ OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
+ IN CONST EFI_STRING String OPTIONAL
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
- EFI_STATUS Status;
- EFI_FONT_DISPLAY_INFO *SystemDefault;
- EFI_FONT_DISPLAY_INFO InfoOut;
- UINTN StringInfoOutLen;
- EFI_FONT_INFO *FontInfo;
- HII_GLOBAL_FONT_INFO *GlobalFont;
- EFI_STRING StringIn;
- EFI_FONT_HANDLE LocalFontHandle;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ EFI_STATUS Status;
+ EFI_FONT_DISPLAY_INFO *SystemDefault;
+ EFI_FONT_DISPLAY_INFO InfoOut;
+ UINTN StringInfoOutLen;
+ EFI_FONT_INFO *FontInfo;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+ EFI_STRING StringIn;
+ EFI_FONT_HANDLE LocalFontHandle;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
}
StringInfoOutLen = 0;
- FontInfo = NULL;
- SystemDefault = NULL;
- LocalFontHandle = NULL;
+ FontInfo = NULL;
+ SystemDefault = NULL;
+ LocalFontHandle = NULL;
if (FontHandle != NULL) {
LocalFontHandle = *FontHandle;
}
@@ -2763,7 +2866,7 @@ HiiGetFontInfo (
//
if (LocalFontHandle == &Private->FontInfoList) {
LocalFontHandle = NULL;
- Status = EFI_NOT_FOUND;
+ Status = EFI_NOT_FOUND;
goto Exit;
}
@@ -2771,7 +2874,7 @@ HiiGetFontInfo (
// Get default system display info, if StringInfoIn points to
// system display info, return it directly.
//
- if (IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *) StringInfoIn, &SystemDefault, &StringInfoOutLen)) {
+ if (IsSystemFontInfo (Private, (EFI_FONT_DISPLAY_INFO *)StringInfoIn, &SystemDefault, &StringInfoOutLen)) {
//
// System font is the first node. When handle is not NULL, system font can not
// be found any more.
@@ -2780,18 +2883,18 @@ HiiGetFontInfo (
if (StringInfoOut != NULL) {
*StringInfoOut = AllocateCopyPool (StringInfoOutLen, SystemDefault);
if (*StringInfoOut == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
LocalFontHandle = NULL;
goto Exit;
}
}
LocalFontHandle = Private->FontInfoList.ForwardLink;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Exit;
} else {
LocalFontHandle = NULL;
- Status = EFI_NOT_FOUND;
+ Status = EFI_NOT_FOUND;
goto Exit;
}
}
@@ -2812,7 +2915,8 @@ HiiGetFontInfo (
((StringInfoIn->FontInfoMask & (EFI_FONT_INFO_RESIZE | EFI_FONT_INFO_ANY_SIZE)) ==
(EFI_FONT_INFO_RESIZE | EFI_FONT_INFO_ANY_SIZE)) ||
((StringInfoIn->FontInfoMask & (EFI_FONT_INFO_RESTYLE | EFI_FONT_INFO_ANY_STYLE)) ==
- (EFI_FONT_INFO_RESTYLE | EFI_FONT_INFO_ANY_STYLE))) {
+ (EFI_FONT_INFO_RESTYLE | EFI_FONT_INFO_ANY_STYLE)))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -2820,13 +2924,14 @@ HiiGetFontInfo (
// Parse the font information mask to find a matching font.
//
- CopyMem (&InfoOut, (EFI_FONT_DISPLAY_INFO *) StringInfoIn, sizeof (EFI_FONT_DISPLAY_INFO));
+ CopyMem (&InfoOut, (EFI_FONT_DISPLAY_INFO *)StringInfoIn, sizeof (EFI_FONT_DISPLAY_INFO));
if ((StringInfoIn->FontInfoMask & EFI_FONT_INFO_SYS_FONT) == EFI_FONT_INFO_SYS_FONT) {
Status = SaveFontName (SystemDefault->FontInfo.FontName, &FontInfo);
} else {
- Status = SaveFontName (((EFI_FONT_DISPLAY_INFO *) StringInfoIn)->FontInfo.FontName, &FontInfo);
+ Status = SaveFontName (((EFI_FONT_DISPLAY_INFO *)StringInfoIn)->FontInfo.FontName, &FontInfo);
}
+
if (EFI_ERROR (Status)) {
goto Exit;
}
@@ -2834,12 +2939,15 @@ HiiGetFontInfo (
if ((StringInfoIn->FontInfoMask & EFI_FONT_INFO_SYS_SIZE) == EFI_FONT_INFO_SYS_SIZE) {
InfoOut.FontInfo.FontSize = SystemDefault->FontInfo.FontSize;
}
+
if ((StringInfoIn->FontInfoMask & EFI_FONT_INFO_SYS_STYLE) == EFI_FONT_INFO_SYS_STYLE) {
InfoOut.FontInfo.FontStyle = SystemDefault->FontInfo.FontStyle;
}
+
if ((StringInfoIn->FontInfoMask & EFI_FONT_INFO_SYS_FORE_COLOR) == EFI_FONT_INFO_SYS_FORE_COLOR) {
InfoOut.ForegroundColor = SystemDefault->ForegroundColor;
}
+
if ((StringInfoIn->FontInfoMask & EFI_FONT_INFO_SYS_BACK_COLOR) == EFI_FONT_INFO_SYS_BACK_COLOR) {
InfoOut.BackgroundColor = SystemDefault->BackgroundColor;
}
@@ -2860,17 +2968,19 @@ HiiGetFontInfo (
LocalFontHandle = NULL;
goto Exit;
}
+
StringIn++;
}
}
+
//
// Write to output parameter
//
if (StringInfoOut != NULL) {
StringInfoOutLen = sizeof (EFI_FONT_DISPLAY_INFO) - sizeof (EFI_FONT_INFO) + GlobalFont->FontInfoSize;
- *StringInfoOut = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (StringInfoOutLen);
+ *StringInfoOut = (EFI_FONT_DISPLAY_INFO *)AllocateZeroPool (StringInfoOutLen);
if (*StringInfoOut == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
LocalFontHandle = NULL;
goto Exit;
}
@@ -2880,7 +2990,7 @@ HiiGetFontInfo (
}
LocalFontHandle = GlobalFont->Entry.ForwardLink;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Exit;
}
@@ -2893,10 +3003,12 @@ Exit:
}
if (SystemDefault != NULL) {
- FreePool (SystemDefault);
+ FreePool (SystemDefault);
}
+
if (FontInfo != NULL) {
- FreePool (FontInfo);
+ FreePool (FontInfo);
}
+
return Status;
}
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
index 363fef5..c4ca6ad 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
@@ -41,21 +41,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/PrintLib.h>
-#define MAX_STRING_LENGTH 1024
-#define MAX_FONT_NAME_LEN 256
-#define NARROW_BASELINE 15
-#define WIDE_BASELINE 14
-#define SYS_FONT_INFO_MASK 0x37
-#define REPLACE_UNKNOWN_GLYPH 0xFFFD
-#define PROPORTIONAL_GLYPH 0x80
-#define NARROW_GLYPH 0x40
-
-#define BITMAP_LEN_1_BIT(Width, Height) (((Width) + 7) / 8 * (Height))
-#define BITMAP_LEN_4_BIT(Width, Height) (((Width) + 1) / 2 * (Height))
-#define BITMAP_LEN_8_BIT(Width, Height) ((Width) * (Height))
-#define BITMAP_LEN_24_BIT(Width, Height) ((Width) * (Height) * 3)
-
-extern EFI_LOCK mHiiDatabaseLock;
+#define MAX_STRING_LENGTH 1024
+#define MAX_FONT_NAME_LEN 256
+#define NARROW_BASELINE 15
+#define WIDE_BASELINE 14
+#define SYS_FONT_INFO_MASK 0x37
+#define REPLACE_UNKNOWN_GLYPH 0xFFFD
+#define PROPORTIONAL_GLYPH 0x80
+#define NARROW_GLYPH 0x40
+
+#define BITMAP_LEN_1_BIT(Width, Height) (((Width) + 7) / 8 * (Height))
+#define BITMAP_LEN_4_BIT(Width, Height) (((Width) + 1) / 2 * (Height))
+#define BITMAP_LEN_8_BIT(Width, Height) ((Width) * (Height))
+#define BITMAP_LEN_24_BIT(Width, Height) ((Width) * (Height) * 3)
+
+extern EFI_LOCK mHiiDatabaseLock;
//
// IFR data structure
@@ -63,32 +63,32 @@ extern EFI_LOCK mHiiDatabaseLock;
// BASE_CR (a, IFR_DEFAULT_VALUE_DATA, Entry) to get the whole structure.
typedef struct {
- LIST_ENTRY Entry; // Link to VarStorage Default Data
- UINT16 DefaultId;
- VARIABLE_STORE_HEADER *VariableStorage;
+ LIST_ENTRY Entry; // Link to VarStorage Default Data
+ UINT16 DefaultId;
+ VARIABLE_STORE_HEADER *VariableStorage;
} VARSTORAGE_DEFAULT_DATA;
typedef struct {
- LIST_ENTRY Entry; // Link to VarStorage
- EFI_GUID Guid;
- CHAR16 *Name;
- UINT16 Size;
- UINT8 Type;
- LIST_ENTRY BlockEntry; // Link to its Block array
+ LIST_ENTRY Entry; // Link to VarStorage
+ EFI_GUID Guid;
+ CHAR16 *Name;
+ UINT16 Size;
+ UINT8 Type;
+ LIST_ENTRY BlockEntry; // Link to its Block array
} IFR_VARSTORAGE_DATA;
typedef struct {
- LIST_ENTRY Entry; // Link to Block array
- UINT16 Offset;
- UINT16 Width;
- UINT16 BitOffset;
- UINT16 BitWidth;
- EFI_QUESTION_ID QuestionId;
- UINT8 OpCode;
- UINT8 Scope;
- LIST_ENTRY DefaultValueEntry; // Link to its default value array
- CHAR16 *Name;
- BOOLEAN IsBitVar;
+ LIST_ENTRY Entry; // Link to Block array
+ UINT16 Offset;
+ UINT16 Width;
+ UINT16 BitOffset;
+ UINT16 BitWidth;
+ EFI_QUESTION_ID QuestionId;
+ UINT8 OpCode;
+ UINT8 Scope;
+ LIST_ENTRY DefaultValueEntry; // Link to its default value array
+ CHAR16 *Name;
+ BOOLEAN IsBitVar;
} IFR_BLOCK_DATA;
//
@@ -103,157 +103,155 @@ typedef enum {
} DEFAULT_VALUE_TYPE;
typedef struct {
- LIST_ENTRY Entry;
- DEFAULT_VALUE_TYPE Type;
- BOOLEAN Cleaned; // Whether this value is cleaned
+ LIST_ENTRY Entry;
+ DEFAULT_VALUE_TYPE Type;
+ BOOLEAN Cleaned; // Whether this value is cleaned
// TRUE Cleaned, the value can't be used
// FALSE Not cleaned, the value can be used.
- UINT16 DefaultId;
- EFI_IFR_TYPE_VALUE Value;
+ UINT16 DefaultId;
+ EFI_IFR_TYPE_VALUE Value;
} IFR_DEFAULT_DATA;
//
// Storage types
//
-#define EFI_HII_VARSTORE_BUFFER 0
-#define EFI_HII_VARSTORE_NAME_VALUE 1
-#define EFI_HII_VARSTORE_EFI_VARIABLE 2
-#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3
+#define EFI_HII_VARSTORE_BUFFER 0
+#define EFI_HII_VARSTORE_NAME_VALUE 1
+#define EFI_HII_VARSTORE_EFI_VARIABLE 2
+#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3
//
// Keyword handler protocol filter type.
//
-#define EFI_KEYWORD_FILTER_READONY 0x01
-#define EFI_KEYWORD_FILTER_REAWRITE 0x02
-#define EFI_KEYWORD_FILTER_BUFFER 0x10
-#define EFI_KEYWORD_FILTER_NUMERIC 0x20
-#define EFI_KEYWORD_FILTER_NUMERIC_1 0x30
-#define EFI_KEYWORD_FILTER_NUMERIC_2 0x40
-#define EFI_KEYWORD_FILTER_NUMERIC_4 0x50
-#define EFI_KEYWORD_FILTER_NUMERIC_8 0x60
-
-
-#define HII_FORMSET_STORAGE_SIGNATURE SIGNATURE_32 ('H', 'S', 'T', 'G')
+#define EFI_KEYWORD_FILTER_READONY 0x01
+#define EFI_KEYWORD_FILTER_REAWRITE 0x02
+#define EFI_KEYWORD_FILTER_BUFFER 0x10
+#define EFI_KEYWORD_FILTER_NUMERIC 0x20
+#define EFI_KEYWORD_FILTER_NUMERIC_1 0x30
+#define EFI_KEYWORD_FILTER_NUMERIC_2 0x40
+#define EFI_KEYWORD_FILTER_NUMERIC_4 0x50
+#define EFI_KEYWORD_FILTER_NUMERIC_8 0x60
+
+#define HII_FORMSET_STORAGE_SIGNATURE SIGNATURE_32 ('H', 'S', 'T', 'G')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Entry;
+ UINTN Signature;
+ LIST_ENTRY Entry;
- EFI_HII_HANDLE HiiHandle;
- EFI_HANDLE DriverHandle;
+ EFI_HII_HANDLE HiiHandle;
+ EFI_HANDLE DriverHandle;
- UINT8 Type; // EFI_HII_VARSTORE_BUFFER, EFI_HII_VARSTORE_NAME_VALUE, EFI_HII_VARSTORE_EFI_VARIABLE
- EFI_GUID Guid;
- CHAR16 *Name;
- UINT16 Size;
+ UINT8 Type; // EFI_HII_VARSTORE_BUFFER, EFI_HII_VARSTORE_NAME_VALUE, EFI_HII_VARSTORE_EFI_VARIABLE
+ EFI_GUID Guid;
+ CHAR16 *Name;
+ UINT16 Size;
} HII_FORMSET_STORAGE;
-
//
// String Package definitions
//
-#define HII_STRING_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','s','p')
+#define HII_STRING_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','s','p')
typedef struct _HII_STRING_PACKAGE_INSTANCE {
- UINTN Signature;
- EFI_HII_STRING_PACKAGE_HDR *StringPkgHdr;
- UINT8 *StringBlock;
- LIST_ENTRY StringEntry;
- LIST_ENTRY FontInfoList; // local font info list
- UINT8 FontId;
- EFI_STRING_ID MaxStringId; // record StringId
+ UINTN Signature;
+ EFI_HII_STRING_PACKAGE_HDR *StringPkgHdr;
+ UINT8 *StringBlock;
+ LIST_ENTRY StringEntry;
+ LIST_ENTRY FontInfoList; // local font info list
+ UINT8 FontId;
+ EFI_STRING_ID MaxStringId; // record StringId
} HII_STRING_PACKAGE_INSTANCE;
//
// Form Package definitions
//
-#define HII_IFR_PACKAGE_SIGNATURE SIGNATURE_32 ('h','f','r','p')
+#define HII_IFR_PACKAGE_SIGNATURE SIGNATURE_32 ('h','f','r','p')
typedef struct _HII_IFR_PACKAGE_INSTANCE {
- UINTN Signature;
- EFI_HII_PACKAGE_HEADER FormPkgHdr;
- UINT8 *IfrData;
- LIST_ENTRY IfrEntry;
+ UINTN Signature;
+ EFI_HII_PACKAGE_HEADER FormPkgHdr;
+ UINT8 *IfrData;
+ LIST_ENTRY IfrEntry;
} HII_IFR_PACKAGE_INSTANCE;
//
// Simple Font Package definitions
//
-#define HII_S_FONT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','s','f','p')
+#define HII_S_FONT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','s','f','p')
typedef struct _HII_SIMPLE_FONT_PACKAGE_INSTANCE {
- UINTN Signature;
- EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimpleFontPkgHdr;
- LIST_ENTRY SimpleFontEntry;
+ UINTN Signature;
+ EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimpleFontPkgHdr;
+ LIST_ENTRY SimpleFontEntry;
} HII_SIMPLE_FONT_PACKAGE_INSTANCE;
//
// Font Package definitions
//
-#define HII_FONT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','f','p')
+#define HII_FONT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','f','p')
typedef struct _HII_FONT_PACKAGE_INSTANCE {
- UINTN Signature;
- EFI_HII_FONT_PACKAGE_HDR *FontPkgHdr;
- UINT16 Height;
- UINT16 BaseLine;
- UINT8 *GlyphBlock;
- LIST_ENTRY FontEntry;
- LIST_ENTRY GlyphInfoList;
+ UINTN Signature;
+ EFI_HII_FONT_PACKAGE_HDR *FontPkgHdr;
+ UINT16 Height;
+ UINT16 BaseLine;
+ UINT8 *GlyphBlock;
+ LIST_ENTRY FontEntry;
+ LIST_ENTRY GlyphInfoList;
} HII_FONT_PACKAGE_INSTANCE;
-#define HII_GLYPH_INFO_SIGNATURE SIGNATURE_32 ('h','g','i','s')
+#define HII_GLYPH_INFO_SIGNATURE SIGNATURE_32 ('h','g','i','s')
typedef struct _HII_GLYPH_INFO {
- UINTN Signature;
- LIST_ENTRY Entry;
- CHAR16 CharId;
- EFI_HII_GLYPH_INFO Cell;
+ UINTN Signature;
+ LIST_ENTRY Entry;
+ CHAR16 CharId;
+ EFI_HII_GLYPH_INFO Cell;
} HII_GLYPH_INFO;
-#define HII_FONT_INFO_SIGNATURE SIGNATURE_32 ('h','l','f','i')
+#define HII_FONT_INFO_SIGNATURE SIGNATURE_32 ('h','l','f','i')
typedef struct _HII_FONT_INFO {
- UINTN Signature;
- LIST_ENTRY Entry;
- LIST_ENTRY *GlobalEntry;
- UINT8 FontId;
+ UINTN Signature;
+ LIST_ENTRY Entry;
+ LIST_ENTRY *GlobalEntry;
+ UINT8 FontId;
} HII_FONT_INFO;
#define HII_GLOBAL_FONT_INFO_SIGNATURE SIGNATURE_32 ('h','g','f','i')
typedef struct _HII_GLOBAL_FONT_INFO {
- UINTN Signature;
- LIST_ENTRY Entry;
- HII_FONT_PACKAGE_INSTANCE *FontPackage;
- UINTN FontInfoSize;
- EFI_FONT_INFO *FontInfo;
+ UINTN Signature;
+ LIST_ENTRY Entry;
+ HII_FONT_PACKAGE_INSTANCE *FontPackage;
+ UINTN FontInfoSize;
+ EFI_FONT_INFO *FontInfo;
} HII_GLOBAL_FONT_INFO;
//
// Image Package definitions
//
-#define HII_PIXEL_MASK 0x80
+#define HII_PIXEL_MASK 0x80
typedef struct _HII_IMAGE_PACKAGE_INSTANCE {
- EFI_HII_IMAGE_PACKAGE_HDR ImagePkgHdr;
- UINT32 ImageBlockSize;
- UINT32 PaletteInfoSize;
- EFI_HII_IMAGE_BLOCK *ImageBlock;
- UINT8 *PaletteBlock;
+ EFI_HII_IMAGE_PACKAGE_HDR ImagePkgHdr;
+ UINT32 ImageBlockSize;
+ UINT32 PaletteInfoSize;
+ EFI_HII_IMAGE_BLOCK *ImageBlock;
+ UINT8 *PaletteBlock;
} HII_IMAGE_PACKAGE_INSTANCE;
//
// Keyboard Layout Package definitions
//
-#define HII_KB_LAYOUT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','k','l','p')
+#define HII_KB_LAYOUT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','k','l','p')
typedef struct _HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE {
- UINTN Signature;
- UINT8 *KeyboardPkg;
- LIST_ENTRY KeyboardEntry;
+ UINTN Signature;
+ UINT8 *KeyboardPkg;
+ LIST_ENTRY KeyboardEntry;
} HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE;
//
// Guid Package definitions
//
-#define HII_GUID_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','g','p')
+#define HII_GUID_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','g','p')
typedef struct _HII_GUID_PACKAGE_INSTANCE {
- UINTN Signature;
- UINT8 *GuidPkg;
- LIST_ENTRY GuidEntry;
+ UINTN Signature;
+ UINT8 *GuidPkg;
+ LIST_ENTRY GuidEntry;
} HII_GUID_PACKAGE_INSTANCE;
//
@@ -261,26 +259,26 @@ typedef struct _HII_GUID_PACKAGE_INSTANCE {
// This rule also applies to image package since ImageId can not be duplicate.
//
typedef struct _HII_DATABASE_PACKAGE_LIST_INSTANCE {
- EFI_HII_PACKAGE_LIST_HEADER PackageListHdr;
- LIST_ENTRY GuidPkgHdr;
- LIST_ENTRY FormPkgHdr;
- LIST_ENTRY KeyboardLayoutHdr;
- LIST_ENTRY StringPkgHdr;
- LIST_ENTRY FontPkgHdr;
- HII_IMAGE_PACKAGE_INSTANCE *ImagePkg;
- LIST_ENTRY SimpleFontPkgHdr;
- UINT8 *DevicePathPkg;
+ EFI_HII_PACKAGE_LIST_HEADER PackageListHdr;
+ LIST_ENTRY GuidPkgHdr;
+ LIST_ENTRY FormPkgHdr;
+ LIST_ENTRY KeyboardLayoutHdr;
+ LIST_ENTRY StringPkgHdr;
+ LIST_ENTRY FontPkgHdr;
+ HII_IMAGE_PACKAGE_INSTANCE *ImagePkg;
+ LIST_ENTRY SimpleFontPkgHdr;
+ UINT8 *DevicePathPkg;
} HII_DATABASE_PACKAGE_LIST_INSTANCE;
-#define HII_HANDLE_SIGNATURE SIGNATURE_32 ('h','i','h','l')
+#define HII_HANDLE_SIGNATURE SIGNATURE_32 ('h','i','h','l')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Handle;
- UINTN Key;
+ UINTN Signature;
+ LIST_ENTRY Handle;
+ UINTN Key;
} HII_HANDLE;
-#define HII_DATABASE_RECORD_SIGNATURE SIGNATURE_32 ('h','i','d','r')
+#define HII_DATABASE_RECORD_SIGNATURE SIGNATURE_32 ('h','i','d','r')
typedef struct _HII_DATABASE_RECORD {
UINTN Signature;
@@ -290,37 +288,37 @@ typedef struct _HII_DATABASE_RECORD {
LIST_ENTRY DatabaseEntry;
} HII_DATABASE_RECORD;
-#define HII_DATABASE_NOTIFY_SIGNATURE SIGNATURE_32 ('h','i','d','n')
+#define HII_DATABASE_NOTIFY_SIGNATURE SIGNATURE_32 ('h','i','d','n')
typedef struct _HII_DATABASE_NOTIFY {
- UINTN Signature;
- EFI_HANDLE NotifyHandle;
- UINT8 PackageType;
- EFI_GUID *PackageGuid;
- EFI_HII_DATABASE_NOTIFY PackageNotifyFn;
- EFI_HII_DATABASE_NOTIFY_TYPE NotifyType;
- LIST_ENTRY DatabaseNotifyEntry;
+ UINTN Signature;
+ EFI_HANDLE NotifyHandle;
+ UINT8 PackageType;
+ EFI_GUID *PackageGuid;
+ EFI_HII_DATABASE_NOTIFY PackageNotifyFn;
+ EFI_HII_DATABASE_NOTIFY_TYPE NotifyType;
+ LIST_ENTRY DatabaseNotifyEntry;
} HII_DATABASE_NOTIFY;
-#define HII_DATABASE_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('H', 'i', 'D', 'p')
+#define HII_DATABASE_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('H', 'i', 'D', 'p')
typedef struct _HII_DATABASE_PRIVATE_DATA {
- UINTN Signature;
- LIST_ENTRY DatabaseList;
- LIST_ENTRY DatabaseNotifyList;
- EFI_HII_FONT_PROTOCOL HiiFont;
- EFI_HII_IMAGE_PROTOCOL HiiImage;
- EFI_HII_IMAGE_EX_PROTOCOL HiiImageEx;
- EFI_HII_STRING_PROTOCOL HiiString;
- EFI_HII_DATABASE_PROTOCOL HiiDatabase;
- EFI_HII_CONFIG_ROUTING_PROTOCOL ConfigRouting;
- EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL ConfigKeywordHandler;
- LIST_ENTRY HiiHandleList;
- INTN HiiHandleCount;
- LIST_ENTRY FontInfoList; // global font info list
- UINTN Attribute; // default system color
- EFI_GUID CurrentLayoutGuid;
- EFI_HII_KEYBOARD_LAYOUT *CurrentLayout;
+ UINTN Signature;
+ LIST_ENTRY DatabaseList;
+ LIST_ENTRY DatabaseNotifyList;
+ EFI_HII_FONT_PROTOCOL HiiFont;
+ EFI_HII_IMAGE_PROTOCOL HiiImage;
+ EFI_HII_IMAGE_EX_PROTOCOL HiiImageEx;
+ EFI_HII_STRING_PROTOCOL HiiString;
+ EFI_HII_DATABASE_PROTOCOL HiiDatabase;
+ EFI_HII_CONFIG_ROUTING_PROTOCOL ConfigRouting;
+ EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL ConfigKeywordHandler;
+ LIST_ENTRY HiiHandleList;
+ INTN HiiHandleCount;
+ LIST_ENTRY FontInfoList; // global font info list
+ UINTN Attribute; // default system color
+ EFI_GUID CurrentLayoutGuid;
+ EFI_HII_KEYBOARD_LAYOUT *CurrentLayout;
} HII_DATABASE_PRIVATE_DATA;
#define HII_FONT_DATABASE_PRIVATE_DATA_FROM_THIS(a) \
@@ -400,11 +398,11 @@ typedef struct _HII_DATABASE_PRIVATE_DATA {
**/
VOID
GenerateSubStr (
- IN CONST EFI_STRING String,
- IN UINTN BufferLen,
- IN VOID *Buffer,
- IN UINT8 Flag,
- OUT EFI_STRING *SubStr
+ IN CONST EFI_STRING String,
+ IN UINTN BufferLen,
+ IN VOID *Buffer,
+ IN UINT8 Flag,
+ OUT EFI_STRING *SubStr
);
/**
@@ -418,10 +416,9 @@ GenerateSubStr (
**/
BOOLEAN
IsHiiHandleValid (
- EFI_HII_HANDLE Handle
+ EFI_HII_HANDLE Handle
);
-
/**
This function checks whether EFI_FONT_INFO exists in current database. If
FontInfoMask is specified, check what options can be used to make a match.
@@ -446,11 +443,11 @@ IsHiiHandleValid (
**/
BOOLEAN
IsFontInfoExisted (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_FONT_INFO *FontInfo,
- IN EFI_FONT_INFO_MASK *FontInfoMask OPTIONAL,
- IN EFI_FONT_HANDLE FontHandle OPTIONAL,
- OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_FONT_INFO *FontInfo,
+ IN EFI_FONT_INFO_MASK *FontInfoMask OPTIONAL,
+ IN EFI_FONT_HANDLE FontHandle OPTIONAL,
+ OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL
);
/**
@@ -470,11 +467,11 @@ IsFontInfoExisted (
**/
EFI_STATUS
InvokeRegisteredFunction (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- IN VOID *PackageInstance,
- IN UINT8 PackageType,
- IN EFI_HII_HANDLE Handle
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ IN VOID *PackageInstance,
+ IN UINT8 PackageType,
+ IN EFI_HII_HANDLE Handle
)
;
@@ -495,12 +492,11 @@ InvokeRegisteredFunction (
**/
EFI_STATUS
GetSystemFont (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- OUT EFI_FONT_DISPLAY_INFO **FontInfo,
- OUT UINTN *FontInfoSize OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ OUT EFI_FONT_DISPLAY_INFO **FontInfo,
+ OUT UINTN *FontInfoSize OPTIONAL
);
-
/**
Parse all string blocks to find a String block specified by StringId.
If StringId = (EFI_STRING_ID) (-1), find out all EFI_HII_SIBT_FONT blocks
@@ -529,17 +525,16 @@ GetSystemFont (
**/
EFI_STATUS
FindStringBlock (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN EFI_STRING_ID StringId,
- OUT UINT8 *BlockType OPTIONAL,
- OUT UINT8 **StringBlockAddr OPTIONAL,
- OUT UINTN *StringTextOffset OPTIONAL,
- OUT EFI_STRING_ID *LastStringId OPTIONAL,
- OUT EFI_STRING_ID *StartStringId OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN EFI_STRING_ID StringId,
+ OUT UINT8 *BlockType OPTIONAL,
+ OUT UINT8 **StringBlockAddr OPTIONAL,
+ OUT UINTN *StringTextOffset OPTIONAL,
+ OUT EFI_STRING_ID *LastStringId OPTIONAL,
+ OUT EFI_STRING_ID *StartStringId OPTIONAL
);
-
/**
Parse all glyph blocks to find a glyph block specified by CharValue.
If CharValue = (CHAR16) (-1), collect all default character cell information
@@ -563,11 +558,11 @@ FindStringBlock (
**/
EFI_STATUS
FindGlyphBlock (
- IN HII_FONT_PACKAGE_INSTANCE *FontPackage,
- IN CHAR16 CharValue,
- OUT UINT8 **GlyphBuffer OPTIONAL,
- OUT EFI_HII_GLYPH_INFO *Cell OPTIONAL,
- OUT UINTN *GlyphBufferLen OPTIONAL
+ IN HII_FONT_PACKAGE_INSTANCE *FontPackage,
+ IN CHAR16 CharValue,
+ OUT UINT8 **GlyphBuffer OPTIONAL,
+ OUT EFI_HII_GLYPH_INFO *Cell OPTIONAL,
+ OUT UINTN *GlyphBufferLen OPTIONAL
);
/**
@@ -589,20 +584,19 @@ FindGlyphBlock (
**/
EFI_STATUS
ExportFormPackages (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN EFI_HII_HANDLE Handle,
- IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
- IN UINTN UsedSize,
- IN UINTN BufferSize,
- IN OUT VOID *Buffer,
- IN OUT UINTN *ResultSize
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN EFI_HII_HANDLE Handle,
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,
+ IN UINTN UsedSize,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer,
+ IN OUT UINTN *ResultSize
);
//
// EFI_HII_FONT_PROTOCOL protocol interfaces
//
-
/**
Renders a string to a bitmap or to the display.
@@ -660,19 +654,18 @@ ExportFormPackages (
EFI_STATUS
EFIAPI
HiiStringToImage (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN EFI_HII_OUT_FLAGS Flags,
- IN CONST EFI_STRING String,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY,
- OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
- OUT UINTN *RowInfoArraySize OPTIONAL,
- OUT UINTN *ColumnInfoArray OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN EFI_HII_OUT_FLAGS Flags,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY,
+ OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
+ OUT UINTN *RowInfoArraySize OPTIONAL,
+ OUT UINTN *ColumnInfoArray OPTIONAL
);
-
/**
Render a string to a bitmap or the screen containing the contents of the specified string.
@@ -737,21 +730,20 @@ HiiStringToImage (
EFI_STATUS
EFIAPI
HiiStringIdToImage (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN EFI_HII_OUT_FLAGS Flags,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_STRING_ID StringId,
- IN CONST CHAR8* Language,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY,
- OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
- OUT UINTN *RowInfoArraySize OPTIONAL,
- OUT UINTN *ColumnInfoArray OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN EFI_HII_OUT_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_STRING_ID StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfo OPTIONAL,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY,
+ OUT EFI_HII_ROW_INFO **RowInfoArray OPTIONAL,
+ OUT UINTN *RowInfoArraySize OPTIONAL,
+ OUT UINTN *ColumnInfoArray OPTIONAL
);
-
/**
Convert the glyph for a single character into a bitmap.
@@ -777,14 +769,13 @@ HiiStringIdToImage (
EFI_STATUS
EFIAPI
HiiGetGlyph (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN CHAR16 Char,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfo,
- OUT EFI_IMAGE_OUTPUT **Blt,
- OUT UINTN *Baseline OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN CHAR16 Char,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfo,
+ OUT EFI_IMAGE_OUTPUT **Blt,
+ OUT UINTN *Baseline OPTIONAL
);
-
/**
This function iterates through fonts which match the specified font, using
the specified criteria. If String is non-NULL, then all of the characters in
@@ -819,11 +810,11 @@ HiiGetGlyph (
EFI_STATUS
EFIAPI
HiiGetFontInfo (
- IN CONST EFI_HII_FONT_PROTOCOL *This,
- IN OUT EFI_FONT_HANDLE *FontHandle,
- IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn OPTIONAL,
- OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
- IN CONST EFI_STRING String OPTIONAL
+ IN CONST EFI_HII_FONT_PROTOCOL *This,
+ IN OUT EFI_FONT_HANDLE *FontHandle,
+ IN CONST EFI_FONT_DISPLAY_INFO *StringInfoIn OPTIONAL,
+ OUT EFI_FONT_DISPLAY_INFO **StringInfoOut,
+ IN CONST EFI_STRING String OPTIONAL
);
//
@@ -846,8 +837,8 @@ HiiGetFontInfo (
**/
EFI_HII_IMAGE_BLOCK *
GetImageIdOrAddress (
- IN EFI_HII_IMAGE_BLOCK *ImageBlocks,
- IN OUT EFI_IMAGE_ID *ImageId
+ IN EFI_HII_IMAGE_BLOCK *ImageBlocks,
+ IN OUT EFI_IMAGE_ID *ImageId
);
/**
@@ -860,8 +851,8 @@ GetImageIdOrAddress (
**/
HII_DATABASE_PACKAGE_LIST_INSTANCE *
LocatePackageList (
- IN LIST_ENTRY *Database,
- IN EFI_HII_HANDLE PackageList
+ IN LIST_ENTRY *Database,
+ IN EFI_HII_HANDLE PackageList
);
/**
@@ -888,11 +879,11 @@ LocatePackageList (
**/
EFI_STATUS
IGetImage (
- IN LIST_ENTRY *Database,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_INPUT *Image,
- IN BOOLEAN BitmapOnly
+ IN LIST_ENTRY *Database,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image,
+ IN BOOLEAN BitmapOnly
);
/**
@@ -904,7 +895,7 @@ IGetImage (
**/
EFI_HII_IMAGE_DECODER_PROTOCOL *
LocateHiiImageDecoder (
- UINT8 BlockType
+ UINT8 BlockType
);
/**
@@ -928,13 +919,12 @@ LocateHiiImageDecoder (
EFI_STATUS
EFIAPI
HiiNewImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- OUT EFI_IMAGE_ID *ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_IMAGE_ID *ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
);
-
/**
This function retrieves the image specified by ImageId which is associated with
the specified PackageList and copies it into the buffer specified by Image.
@@ -959,13 +949,12 @@ HiiNewImage (
EFI_STATUS
EFIAPI
HiiGetImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image
);
-
/**
This function updates the image specified by ImageId in the specified PackageListHandle to
the image specified by Image.
@@ -985,13 +974,12 @@ HiiGetImage (
EFI_STATUS
EFIAPI
HiiSetImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
);
-
/**
This function renders an image to a bitmap or the screen using the specified
color and options. It draws the image on an existing bitmap, allocates a new
@@ -1024,15 +1012,14 @@ HiiSetImage (
EFI_STATUS
EFIAPI
HiiDrawImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN CONST EFI_IMAGE_INPUT *Image,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN CONST EFI_IMAGE_INPUT *Image,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
);
-
/**
This function renders an image to a bitmap or the screen using the specified
color and options. It draws the image on an existing bitmap, allocates a new
@@ -1070,13 +1057,13 @@ HiiDrawImage (
EFI_STATUS
EFIAPI
HiiDrawImageId (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
);
/**
@@ -1098,10 +1085,10 @@ HiiDrawImageId (
EFI_STATUS
EFIAPI
HiiNewImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- OUT EFI_IMAGE_ID *ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_IMAGE_ID *ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
);
/**
@@ -1132,10 +1119,10 @@ HiiNewImageEx (
EFI_STATUS
EFIAPI
HiiGetImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image
);
/**
@@ -1160,10 +1147,10 @@ HiiGetImageEx (
EFI_STATUS
EFIAPI
HiiSetImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
);
/**
@@ -1197,12 +1184,12 @@ HiiSetImageEx (
EFI_STATUS
EFIAPI
HiiDrawImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN CONST EFI_IMAGE_INPUT *Image,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN CONST EFI_IMAGE_INPUT *Image,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
);
/**
@@ -1244,13 +1231,13 @@ HiiDrawImageEx (
EFI_STATUS
EFIAPI
HiiDrawImageIdEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
);
/**
@@ -1279,16 +1266,16 @@ HiiDrawImageIdEx (
EFI_STATUS
EFIAPI
HiiGetImageInfo (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_OUTPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_OUTPUT *Image
);
+
//
// EFI_HII_STRING_PROTOCOL
//
-
/**
This function adds the string String to the group of strings owned by PackageList, with the
specified font information StringFontInfo and returns a new string id.
@@ -1323,16 +1310,15 @@ HiiGetImageInfo (
EFI_STATUS
EFIAPI
HiiNewString (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- OUT EFI_STRING_ID *StringId,
- IN CONST CHAR8 *Language,
- IN CONST CHAR16 *LanguageName OPTIONAL,
- IN CONST EFI_STRING String,
- IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_STRING_ID *StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST CHAR16 *LanguageName OPTIONAL,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
);
-
/**
This function retrieves the string specified by StringId which is associated
with the specified PackageList in the language Language and copies it into
@@ -1371,16 +1357,15 @@ HiiNewString (
EFI_STATUS
EFIAPI
HiiGetString (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN CONST CHAR8 *Language,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_STRING_ID StringId,
- OUT EFI_STRING String,
- IN OUT UINTN *StringSize,
- OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN CONST CHAR8 *Language,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_STRING_ID StringId,
+ OUT EFI_STRING String,
+ IN OUT UINTN *StringSize,
+ OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
);
-
/**
This function updates the string specified by StringId in the specified PackageList to the text
specified by String and, optionally, the font information specified by StringFontInfo.
@@ -1406,15 +1391,14 @@ HiiGetString (
EFI_STATUS
EFIAPI
HiiSetString (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_STRING_ID StringId,
- IN CONST CHAR8 *Language,
- IN CONST EFI_STRING String,
- IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_STRING_ID StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
);
-
/**
This function returns the list of supported languages, in the format specified
in Appendix M of UEFI 2.1 spec.
@@ -1441,13 +1425,12 @@ HiiSetString (
EFI_STATUS
EFIAPI
HiiGetLanguages (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN OUT CHAR8 *Languages,
- IN OUT UINTN *LanguagesSize
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN OUT CHAR8 *Languages,
+ IN OUT UINTN *LanguagesSize
);
-
/**
Each string package has associated with it a single primary language and zero
or more secondary languages. This routine returns the secondary languages
@@ -1486,18 +1469,17 @@ HiiGetLanguages (
EFI_STATUS
EFIAPI
HiiGetSecondaryLanguages (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN CONST CHAR8 *PrimaryLanguage,
- IN OUT CHAR8 *SecondaryLanguages,
- IN OUT UINTN *SecondaryLanguagesSize
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN CONST CHAR8 *PrimaryLanguage,
+ IN OUT CHAR8 *SecondaryLanguages,
+ IN OUT UINTN *SecondaryLanguagesSize
);
//
// EFI_HII_DATABASE_PROTOCOL protocol interfaces
//
-
/**
This function adds the packages in the package list to the database and returns a handle. If there is a
EFI_DEVICE_PATH_PROTOCOL associated with the DriverHandle, then this function will
@@ -1528,7 +1510,6 @@ HiiNewPackageList (
OUT EFI_HII_HANDLE *Handle
);
-
/**
This function removes the package list that is associated with a handle Handle
from the HII database. Before removing the package, any registered functions
@@ -1547,11 +1528,10 @@ HiiNewPackageList (
EFI_STATUS
EFIAPI
HiiRemovePackageList (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE Handle
);
-
/**
This function updates the existing package list (which has the specified Handle)
in the HII databases, using the new package list specified by PackageList.
@@ -1578,7 +1558,6 @@ HiiUpdatePackageList (
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList
);
-
/**
This function returns a list of the package handles of the specified type
that are currently active in the database. The pseudo-type
@@ -1617,14 +1596,13 @@ HiiUpdatePackageList (
EFI_STATUS
EFIAPI
HiiListPackageLists (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN OUT UINTN *HandleBufferLength,
- OUT EFI_HII_HANDLE *Handle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN UINT8 PackageType,
+ IN CONST EFI_GUID *PackageGuid,
+ IN OUT UINTN *HandleBufferLength,
+ OUT EFI_HII_HANDLE *Handle
);
-
/**
This function will export one or all package lists in the database to a buffer.
For each package list exported, this function will call functions registered
@@ -1657,13 +1635,12 @@ HiiListPackageLists (
EFI_STATUS
EFIAPI
HiiExportPackageLists (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE Handle,
- IN OUT UINTN *BufferSize,
- OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE Handle,
+ IN OUT UINTN *BufferSize,
+ OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
);
-
/**
This function registers a function which will be called when specified actions related to packages of
the specified type occur in the HII database. By registering a function, other HII-related drivers are
@@ -1703,15 +1680,14 @@ HiiExportPackageLists (
EFI_STATUS
EFIAPI
HiiRegisterPackageNotify (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
- OUT EFI_HANDLE *NotifyHandle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN UINT8 PackageType,
+ IN CONST EFI_GUID *PackageGuid,
+ IN CONST EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
+ OUT EFI_HANDLE *NotifyHandle
);
-
/**
Removes the specified HII database package-related notification.
@@ -1728,11 +1704,10 @@ HiiRegisterPackageNotify (
EFI_STATUS
EFIAPI
HiiUnregisterPackageNotify (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HANDLE NotificationHandle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HANDLE NotificationHandle
);
-
/**
This routine retrieves an array of GUID values for each keyboard layout that
was previously registered in the system.
@@ -1760,12 +1735,11 @@ HiiUnregisterPackageNotify (
EFI_STATUS
EFIAPI
HiiFindKeyboardLayouts (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN OUT UINT16 *KeyGuidBufferLength,
- OUT EFI_GUID *KeyGuidBuffer
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN OUT UINT16 *KeyGuidBufferLength,
+ OUT EFI_GUID *KeyGuidBuffer
);
-
/**
This routine retrieves the requested keyboard layout. The layout is a physical description of the keys
on a keyboard and the character(s) that are associated with a particular set of key strokes.
@@ -1790,13 +1764,12 @@ HiiFindKeyboardLayouts (
EFI_STATUS
EFIAPI
HiiGetKeyboardLayout (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_GUID *KeyGuid,
- IN OUT UINT16 *KeyboardLayoutLength,
- OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN CONST EFI_GUID *KeyGuid,
+ IN OUT UINT16 *KeyboardLayoutLength,
+ OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout
);
-
/**
This routine sets the default keyboard layout to the one referenced by KeyGuid. When this routine
is called, an event will be signaled of the EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID
@@ -1817,11 +1790,10 @@ HiiGetKeyboardLayout (
EFI_STATUS
EFIAPI
HiiSetKeyboardLayout (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN CONST EFI_GUID *KeyGuid
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN CONST EFI_GUID *KeyGuid
);
-
/**
Return the EFI handle associated with a package list.
@@ -1841,16 +1813,15 @@ HiiSetKeyboardLayout (
EFI_STATUS
EFIAPI
HiiGetPackageListHandle (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageListHandle,
- OUT EFI_HANDLE *DriverHandle
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageListHandle,
+ OUT EFI_HANDLE *DriverHandle
);
//
// EFI_HII_CONFIG_ROUTING_PROTOCOL interfaces
//
-
/**
This function allows a caller to extract the current configuration
for one or more named elements from one or more drivers.
@@ -1899,7 +1870,6 @@ HiiConfigRoutingExtractConfig (
OUT EFI_STRING *Results
);
-
/**
This function allows the caller to request the current configuration for the
entirety of the current HII database and returns the data in a null-terminated Unicode string.
@@ -1928,7 +1898,6 @@ HiiConfigRoutingExportConfig (
OUT EFI_STRING *Results
);
-
/**
This function processes the results of processing forms and routes it to the
appropriate handlers or storage.
@@ -1962,8 +1931,6 @@ HiiConfigRoutingRouteConfig (
OUT EFI_STRING *Progress
);
-
-
/**
This helper function is to be called by drivers to map configuration data stored
in byte array ("block") formats such as UEFI Variables into current configuration strings.
@@ -2014,7 +1981,6 @@ HiiBlockToConfig (
OUT EFI_STRING *Progress
);
-
/**
This helper function is to be called by drivers to map configuration strings
to configurations stored in byte array ("block") formats such as UEFI Variables.
@@ -2067,14 +2033,13 @@ HiiBlockToConfig (
EFI_STATUS
EFIAPI
HiiConfigToBlock (
- IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
- IN CONST EFI_STRING ConfigResp,
- IN OUT UINT8 *Block,
- IN OUT UINTN *BlockSize,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
+ IN CONST EFI_STRING ConfigResp,
+ IN OUT UINT8 *Block,
+ IN OUT UINTN *BlockSize,
+ OUT EFI_STRING *Progress
);
-
/**
This helper function is to be called by drivers to extract portions of
a larger configuration string.
@@ -2118,13 +2083,13 @@ HiiConfigToBlock (
EFI_STATUS
EFIAPI
HiiGetAltCfg (
- IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- IN CONST EFI_GUID *Guid,
- IN CONST EFI_STRING Name,
- IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN CONST UINT16 *AltCfgId,
- OUT EFI_STRING *AltCfgResp
+ IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ IN CONST EFI_GUID *Guid,
+ IN CONST EFI_STRING Name,
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN CONST UINT16 *AltCfgId,
+ OUT EFI_STRING *AltCfgResp
);
/**
@@ -2189,10 +2154,10 @@ HiiGetAltCfg (
EFI_STATUS
EFIAPI
EfiConfigKeywordHandlerSetData (
- IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
- IN CONST EFI_STRING KeywordString,
- OUT EFI_STRING *Progress,
- OUT UINT32 *ProgressErr
+ IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,
+ IN CONST EFI_STRING KeywordString,
+ OUT EFI_STRING *Progress,
+ OUT UINT32 *ProgressErr
);
/**
@@ -2312,7 +2277,7 @@ HiiCompareLanguage (
**/
CHAR8 *
GetSupportedLanguages (
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_HII_HANDLE HiiHandle
);
/**
@@ -2326,7 +2291,7 @@ This function mainly use to get HiiDatabase information.
**/
EFI_STATUS
HiiGetDatabaseInfo (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This
);
/**
@@ -2340,13 +2305,13 @@ This function mainly use to get and update ConfigResp string.
**/
EFI_STATUS
HiiGetConfigRespInfo (
- IN CONST EFI_HII_DATABASE_PROTOCOL *This
+ IN CONST EFI_HII_DATABASE_PROTOCOL *This
);
//
// Global variables
//
-extern EFI_EVENT gHiiKeyboardLayoutChanged;
-extern BOOLEAN gExportAfterReadyToBoot;
+extern EFI_EVENT gHiiKeyboardLayoutChanged;
+extern BOOLEAN gExportAfterReadyToBoot;
#endif
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
index bbf437b..e4bdfde 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
@@ -7,24 +7,23 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
//
// Global variables
//
-EFI_EVENT gHiiKeyboardLayoutChanged;
-BOOLEAN gExportAfterReadyToBoot = FALSE;
+EFI_EVENT gHiiKeyboardLayoutChanged;
+BOOLEAN gExportAfterReadyToBoot = FALSE;
-HII_DATABASE_PRIVATE_DATA mPrivate = {
+HII_DATABASE_PRIVATE_DATA mPrivate = {
HII_DATABASE_PRIVATE_DATA_SIGNATURE,
{
- (LIST_ENTRY *) NULL,
- (LIST_ENTRY *) NULL
+ (LIST_ENTRY *)NULL,
+ (LIST_ENTRY *)NULL
},
{
- (LIST_ENTRY *) NULL,
- (LIST_ENTRY *) NULL
+ (LIST_ENTRY *)NULL,
+ (LIST_ENTRY *)NULL
},
{
HiiStringToImage,
@@ -80,20 +79,20 @@ HII_DATABASE_PRIVATE_DATA mPrivate = {
EfiConfigKeywordHandlerGetData
},
{
- (LIST_ENTRY *) NULL,
- (LIST_ENTRY *) NULL
+ (LIST_ENTRY *)NULL,
+ (LIST_ENTRY *)NULL
},
0,
{
- (LIST_ENTRY *) NULL,
- (LIST_ENTRY *) NULL
+ (LIST_ENTRY *)NULL,
+ (LIST_ENTRY *)NULL
},
- EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK),
+ EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK),
{
0x00000000,
0x0000,
0x0000,
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+ { 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00 }
},
NULL
};
@@ -111,8 +110,8 @@ HII_DATABASE_PRIVATE_DATA mPrivate = {
VOID
EFIAPI
KeyboardLayoutChangeNullEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
return;
@@ -130,8 +129,8 @@ KeyboardLayoutChangeNullEvent (
VOID
EFIAPI
OnReadyToBoot (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
//
@@ -164,13 +163,13 @@ OnReadyToBoot (
EFI_STATUS
EFIAPI
InitializeHiiDatabase (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
- EFI_EVENT ReadyToBootEvent;
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
+ EFI_EVENT ReadyToBootEvent;
//
// There will be only one HII Database in the system
@@ -227,14 +226,15 @@ InitializeHiiDatabase (
if (FeaturePcdGet (PcdSupportHiiImageProtocol)) {
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiHiiImageProtocolGuid, &mPrivate.HiiImage,
- &gEfiHiiImageExProtocolGuid, &mPrivate.HiiImageEx,
+ &gEfiHiiImageProtocolGuid,
+ &mPrivate.HiiImage,
+ &gEfiHiiImageExProtocolGuid,
+ &mPrivate.HiiImageEx,
NULL
);
-
}
- if (FeaturePcdGet(PcdHiiOsRuntimeSupport)) {
+ if (FeaturePcdGet (PcdHiiOsRuntimeSupport)) {
Status = EfiCreateEventReadyToBootEx (
TPL_CALLBACK,
OnReadyToBoot,
@@ -248,4 +248,3 @@ InitializeHiiDatabase (
return Status;
}
-
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
index a108fc6..b5b9625 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
@@ -7,10 +7,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
-#define MAX_UINT24 0xFFFFFF
+#define MAX_UINT24 0xFFFFFF
/**
Get the imageid of last image block: EFI_HII_IIBT_END_BLOCK when input
@@ -28,13 +27,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_HII_IMAGE_BLOCK *
GetImageIdOrAddress (
- IN EFI_HII_IMAGE_BLOCK *ImageBlocks,
- IN OUT EFI_IMAGE_ID *ImageId
+ IN EFI_HII_IMAGE_BLOCK *ImageBlocks,
+ IN OUT EFI_IMAGE_ID *ImageId
)
{
- EFI_IMAGE_ID ImageIdCurrent;
- EFI_HII_IMAGE_BLOCK *CurrentImageBlock;
- UINTN Length;
+ EFI_IMAGE_ID ImageIdCurrent;
+ EFI_HII_IMAGE_BLOCK *CurrentImageBlock;
+ UINTN Length;
ASSERT (ImageBlocks != NULL && ImageId != NULL);
CurrentImageBlock = ImageBlocks;
@@ -48,16 +47,17 @@ GetImageIdOrAddress (
// find the previous defined image block.
//
if (CurrentImageBlock->BlockType == EFI_HII_IIBT_DUPLICATE) {
- *ImageId = ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_DUPLICATE_BLOCK *) CurrentImageBlock)->ImageId);
+ *ImageId = ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_DUPLICATE_BLOCK *)CurrentImageBlock)->ImageId);
ASSERT (*ImageId != ImageIdCurrent);
ASSERT (*ImageId != 0);
CurrentImageBlock = ImageBlocks;
- ImageIdCurrent = 1;
+ ImageIdCurrent = 1;
continue;
}
return CurrentImageBlock;
}
+
if (*ImageId < ImageIdCurrent) {
//
// Can not find the specified image block in this image.
@@ -65,93 +65,93 @@ GetImageIdOrAddress (
return NULL;
}
}
- switch (CurrentImageBlock->BlockType) {
- case EFI_HII_IIBT_EXT1:
- Length = ((EFI_HII_IIBT_EXT1_BLOCK *) CurrentImageBlock)->Length;
- break;
- case EFI_HII_IIBT_EXT2:
- Length = ReadUnaligned16 (&((EFI_HII_IIBT_EXT2_BLOCK *) CurrentImageBlock)->Length);
- break;
- case EFI_HII_IIBT_EXT4:
- Length = ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_EXT4_BLOCK *) CurrentImageBlock)->Length);
- break;
-
- case EFI_HII_IIBT_IMAGE_1BIT:
- case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
- Length = sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8) +
- BITMAP_LEN_1_BIT (
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_IMAGE_4BIT:
- case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
- Length = sizeof (EFI_HII_IIBT_IMAGE_4BIT_BLOCK) - sizeof (UINT8) +
- BITMAP_LEN_4_BIT (
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_IMAGE_8BIT:
- case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
- Length = sizeof (EFI_HII_IIBT_IMAGE_8BIT_BLOCK) - sizeof (UINT8) +
- BITMAP_LEN_8_BIT (
- (UINT32) ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_IMAGE_24BIT:
- case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
- Length = sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL) +
- BITMAP_LEN_24_BIT (
- (UINT32) ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_DUPLICATE:
- Length = sizeof (EFI_HII_IIBT_DUPLICATE_BLOCK);
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_IMAGE_JPEG:
- Length = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size);
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_IMAGE_PNG:
- Length = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size);
- ImageIdCurrent++;
- break;
-
- case EFI_HII_IIBT_SKIP1:
- Length = sizeof (EFI_HII_IIBT_SKIP1_BLOCK);
- ImageIdCurrent += ((EFI_HII_IIBT_SKIP1_BLOCK *) CurrentImageBlock)->SkipCount;
- break;
-
- case EFI_HII_IIBT_SKIP2:
- Length = sizeof (EFI_HII_IIBT_SKIP2_BLOCK);
- ImageIdCurrent += ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_SKIP2_BLOCK *) CurrentImageBlock)->SkipCount);
- break;
- default:
- //
- // Unknown image blocks can not be skipped, processing halts.
- //
- ASSERT (FALSE);
- Length = 0;
- break;
+ switch (CurrentImageBlock->BlockType) {
+ case EFI_HII_IIBT_EXT1:
+ Length = ((EFI_HII_IIBT_EXT1_BLOCK *)CurrentImageBlock)->Length;
+ break;
+ case EFI_HII_IIBT_EXT2:
+ Length = ReadUnaligned16 (&((EFI_HII_IIBT_EXT2_BLOCK *)CurrentImageBlock)->Length);
+ break;
+ case EFI_HII_IIBT_EXT4:
+ Length = ReadUnaligned32 ((VOID *)&((EFI_HII_IIBT_EXT4_BLOCK *)CurrentImageBlock)->Length);
+ break;
+
+ case EFI_HII_IIBT_IMAGE_1BIT:
+ case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
+ Length = sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8) +
+ BITMAP_LEN_1_BIT (
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_IMAGE_4BIT:
+ case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
+ Length = sizeof (EFI_HII_IIBT_IMAGE_4BIT_BLOCK) - sizeof (UINT8) +
+ BITMAP_LEN_4_BIT (
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_IMAGE_8BIT:
+ case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
+ Length = sizeof (EFI_HII_IIBT_IMAGE_8BIT_BLOCK) - sizeof (UINT8) +
+ BITMAP_LEN_8_BIT (
+ (UINT32)ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_IMAGE_24BIT:
+ case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
+ Length = sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL) +
+ BITMAP_LEN_24_BIT (
+ (UINT32)ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_DUPLICATE:
+ Length = sizeof (EFI_HII_IIBT_DUPLICATE_BLOCK);
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_IMAGE_JPEG:
+ Length = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *)&((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Size);
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_IMAGE_PNG:
+ Length = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *)&((EFI_HII_IIBT_PNG_BLOCK *)CurrentImageBlock)->Size);
+ ImageIdCurrent++;
+ break;
+
+ case EFI_HII_IIBT_SKIP1:
+ Length = sizeof (EFI_HII_IIBT_SKIP1_BLOCK);
+ ImageIdCurrent += ((EFI_HII_IIBT_SKIP1_BLOCK *)CurrentImageBlock)->SkipCount;
+ break;
+
+ case EFI_HII_IIBT_SKIP2:
+ Length = sizeof (EFI_HII_IIBT_SKIP2_BLOCK);
+ ImageIdCurrent += ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_SKIP2_BLOCK *)CurrentImageBlock)->SkipCount);
+ break;
+
+ default:
+ //
+ // Unknown image blocks can not be skipped, processing halts.
+ //
+ ASSERT (FALSE);
+ Length = 0;
+ break;
}
- CurrentImageBlock = (EFI_HII_IMAGE_BLOCK *) ((UINT8 *) CurrentImageBlock + Length);
-
+ CurrentImageBlock = (EFI_HII_IMAGE_BLOCK *)((UINT8 *)CurrentImageBlock + Length);
}
//
@@ -165,8 +165,6 @@ GetImageIdOrAddress (
return NULL;
}
-
-
/**
Convert pixels from EFI_GRAPHICS_OUTPUT_BLT_PIXEL to EFI_HII_RGB_PIXEL style.
@@ -186,7 +184,7 @@ CopyGopToRgbPixel (
IN UINTN PixelNum
)
{
- UINTN Index;
+ UINTN Index;
ASSERT (BitMapOut != NULL && BitMapIn != NULL);
@@ -195,7 +193,6 @@ CopyGopToRgbPixel (
}
}
-
/**
Convert pixels from EFI_HII_RGB_PIXEL to EFI_GRAPHICS_OUTPUT_BLT_PIXEL style.
@@ -215,7 +212,7 @@ CopyRgbToGopPixel (
IN UINTN PixelNum
)
{
- UINTN Index;
+ UINTN Index;
ASSERT (BitMapOut != NULL && BitMapIn != NULL);
@@ -224,7 +221,6 @@ CopyRgbToGopPixel (
}
}
-
/**
Output pixels in "1 bit per pixel" format to an image.
@@ -241,20 +237,20 @@ CopyRgbToGopPixel (
**/
VOID
Output1bitPixel (
- IN OUT EFI_IMAGE_INPUT *Image,
- IN UINT8 *Data,
- IN EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo
+ IN OUT EFI_IMAGE_INPUT *Image,
+ IN UINT8 *Data,
+ IN EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo
)
{
- UINT16 Xpos;
- UINT16 Ypos;
- UINTN OffsetY;
- UINT8 Index;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL PaletteValue[2];
- EFI_HII_IMAGE_PALETTE_INFO *Palette;
- UINTN PaletteSize;
- UINT8 Byte;
+ UINT16 Xpos;
+ UINT16 Ypos;
+ UINTN OffsetY;
+ UINT8 Index;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL PaletteValue[2];
+ EFI_HII_IMAGE_PALETTE_INFO *Palette;
+ UINTN PaletteSize;
+ UINT8 Byte;
ASSERT (Image != NULL && Data != NULL && PaletteInfo != NULL);
@@ -266,11 +262,12 @@ Output1bitPixel (
PaletteSize = 0;
CopyMem (&PaletteSize, PaletteInfo, sizeof (UINT16));
PaletteSize += sizeof (UINT16);
- Palette = AllocateZeroPool (PaletteSize);
+ Palette = AllocateZeroPool (PaletteSize);
ASSERT (Palette != NULL);
if (Palette == NULL) {
return;
}
+
CopyMem (Palette, PaletteInfo, PaletteSize);
ZeroMem (PaletteValue, sizeof (PaletteValue));
@@ -313,7 +310,6 @@ Output1bitPixel (
}
}
-
/**
Output pixels in "4 bit per pixel" format to an image.
@@ -330,20 +326,20 @@ Output1bitPixel (
**/
VOID
Output4bitPixel (
- IN OUT EFI_IMAGE_INPUT *Image,
- IN UINT8 *Data,
- IN EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo
+ IN OUT EFI_IMAGE_INPUT *Image,
+ IN UINT8 *Data,
+ IN EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo
)
{
- UINT16 Xpos;
- UINT16 Ypos;
- UINTN OffsetY;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL PaletteValue[16];
- EFI_HII_IMAGE_PALETTE_INFO *Palette;
- UINTN PaletteSize;
- UINT16 PaletteNum;
- UINT8 Byte;
+ UINT16 Xpos;
+ UINT16 Ypos;
+ UINTN OffsetY;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL PaletteValue[16];
+ EFI_HII_IMAGE_PALETTE_INFO *Palette;
+ UINTN PaletteSize;
+ UINT16 PaletteNum;
+ UINT8 Byte;
ASSERT (Image != NULL && Data != NULL && PaletteInfo != NULL);
@@ -355,11 +351,12 @@ Output4bitPixel (
PaletteSize = 0;
CopyMem (&PaletteSize, PaletteInfo, sizeof (UINT16));
PaletteSize += sizeof (UINT16);
- Palette = AllocateZeroPool (PaletteSize);
+ Palette = AllocateZeroPool (PaletteSize);
ASSERT (Palette != NULL);
if (Palette == NULL) {
return;
}
+
CopyMem (Palette, PaletteInfo, PaletteSize);
PaletteNum = (UINT16)(Palette->PaletteSize / sizeof (EFI_HII_RGB_PIXEL));
@@ -376,7 +373,7 @@ Output4bitPixel (
// All bits in these bytes are meaningful
//
for (Xpos = 0; Xpos < Image->Width / 2; Xpos++) {
- Byte = *(Data + OffsetY + Xpos);
+ Byte = *(Data + OffsetY + Xpos);
BitMapPtr[Ypos * Image->Width + Xpos * 2] = PaletteValue[Byte >> 4];
BitMapPtr[Ypos * Image->Width + Xpos * 2 + 1] = PaletteValue[Byte & 0x0F];
}
@@ -385,13 +382,12 @@ Output4bitPixel (
//
// Padding bits in this byte should be ignored.
//
- Byte = *(Data + OffsetY + Xpos);
- BitMapPtr[Ypos * Image->Width + Xpos * 2] = PaletteValue[Byte >> 4];
+ Byte = *(Data + OffsetY + Xpos);
+ BitMapPtr[Ypos * Image->Width + Xpos * 2] = PaletteValue[Byte >> 4];
}
}
}
-
/**
Output pixels in "8 bit per pixel" format to an image.
@@ -408,20 +404,20 @@ Output4bitPixel (
**/
VOID
Output8bitPixel (
- IN OUT EFI_IMAGE_INPUT *Image,
- IN UINT8 *Data,
- IN EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo
+ IN OUT EFI_IMAGE_INPUT *Image,
+ IN UINT8 *Data,
+ IN EFI_HII_IMAGE_PALETTE_INFO *PaletteInfo
)
{
- UINT16 Xpos;
- UINT16 Ypos;
- UINTN OffsetY;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL PaletteValue[256];
- EFI_HII_IMAGE_PALETTE_INFO *Palette;
- UINTN PaletteSize;
- UINT16 PaletteNum;
- UINT8 Byte;
+ UINT16 Xpos;
+ UINT16 Ypos;
+ UINTN OffsetY;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL PaletteValue[256];
+ EFI_HII_IMAGE_PALETTE_INFO *Palette;
+ UINTN PaletteSize;
+ UINT16 PaletteNum;
+ UINT8 Byte;
ASSERT (Image != NULL && Data != NULL && PaletteInfo != NULL);
@@ -433,11 +429,12 @@ Output8bitPixel (
PaletteSize = 0;
CopyMem (&PaletteSize, PaletteInfo, sizeof (UINT16));
PaletteSize += sizeof (UINT16);
- Palette = AllocateZeroPool (PaletteSize);
+ Palette = AllocateZeroPool (PaletteSize);
ASSERT (Palette != NULL);
if (Palette == NULL) {
return;
}
+
CopyMem (Palette, PaletteInfo, PaletteSize);
PaletteNum = (UINT16)(Palette->PaletteSize / sizeof (EFI_HII_RGB_PIXEL));
ZeroMem (PaletteValue, sizeof (PaletteValue));
@@ -448,19 +445,17 @@ Output8bitPixel (
// Convert the pixel from 8 bits to corresponding color.
//
for (Ypos = 0; Ypos < Image->Height; Ypos++) {
- OffsetY = BITMAP_LEN_8_BIT ((UINT32) Image->Width, Ypos);
+ OffsetY = BITMAP_LEN_8_BIT ((UINT32)Image->Width, Ypos);
//
// All bits are meaningful since the bitmap is 8 bits per pixel.
//
for (Xpos = 0; Xpos < Image->Width; Xpos++) {
- Byte = *(Data + OffsetY + Xpos);
+ Byte = *(Data + OffsetY + Xpos);
BitMapPtr[OffsetY + Xpos] = PaletteValue[Byte];
}
}
-
}
-
/**
Output pixels in "24 bit per pixel" format to an image.
@@ -475,26 +470,24 @@ Output8bitPixel (
**/
VOID
Output24bitPixel (
- IN OUT EFI_IMAGE_INPUT *Image,
- IN EFI_HII_RGB_PIXEL *Data
+ IN OUT EFI_IMAGE_INPUT *Image,
+ IN EFI_HII_RGB_PIXEL *Data
)
{
- UINT16 Ypos;
- UINTN OffsetY;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
+ UINT16 Ypos;
+ UINTN OffsetY;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BitMapPtr;
ASSERT (Image != NULL && Data != NULL);
BitMapPtr = Image->Bitmap;
for (Ypos = 0; Ypos < Image->Height; Ypos++) {
- OffsetY = BITMAP_LEN_8_BIT ((UINT32) Image->Width, Ypos);
+ OffsetY = BITMAP_LEN_8_BIT ((UINT32)Image->Width, Ypos);
CopyRgbToGopPixel (&BitMapPtr[OffsetY], &Data[OffsetY], Image->Width);
}
-
}
-
/**
Convert the image from EFI_IMAGE_INPUT to EFI_IMAGE_OUTPUT format.
@@ -519,24 +512,24 @@ Output24bitPixel (
**/
EFI_STATUS
ImageToBlt (
- IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
- IN UINTN BltX,
- IN UINTN BltY,
- IN UINTN Width,
- IN UINTN Height,
- IN BOOLEAN Transparent,
- IN OUT EFI_IMAGE_OUTPUT **Blt
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
+ IN UINTN BltX,
+ IN UINTN BltY,
+ IN UINTN Width,
+ IN UINTN Height,
+ IN BOOLEAN Transparent,
+ IN OUT EFI_IMAGE_OUTPUT **Blt
)
{
- EFI_IMAGE_OUTPUT *ImageOut;
- UINTN Xpos;
- UINTN Ypos;
- UINTN OffsetY1; // src buffer
- UINTN OffsetY2; // dest buffer
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL SrcPixel;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL ZeroPixel;
-
- if (BltBuffer == NULL || Blt == NULL || *Blt == NULL) {
+ EFI_IMAGE_OUTPUT *ImageOut;
+ UINTN Xpos;
+ UINTN Ypos;
+ UINTN OffsetY1; // src buffer
+ UINTN OffsetY2; // dest buffer
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL SrcPixel;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL ZeroPixel;
+
+ if ((BltBuffer == NULL) || (Blt == NULL) || (*Blt == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -545,6 +538,7 @@ ImageToBlt (
if (Width + BltX > ImageOut->Width) {
return EFI_INVALID_PARAMETER;
}
+
if (Height + BltY > ImageOut->Height) {
return EFI_INVALID_PARAMETER;
}
@@ -579,12 +573,12 @@ ImageToBlt (
**/
HII_DATABASE_PACKAGE_LIST_INSTANCE *
LocatePackageList (
- IN LIST_ENTRY *Database,
- IN EFI_HII_HANDLE PackageList
+ IN LIST_ENTRY *Database,
+ IN EFI_HII_HANDLE PackageList
)
{
- LIST_ENTRY *Link;
- HII_DATABASE_RECORD *Record;
+ LIST_ENTRY *Link;
+ HII_DATABASE_RECORD *Record;
//
// Get the specified package list and image package.
@@ -592,12 +586,14 @@ LocatePackageList (
for (Link = GetFirstNode (Database);
!IsNull (Database, Link);
Link = GetNextNode (Database, Link)
- ) {
+ )
+ {
Record = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if (Record->Handle == PackageList) {
return Record->PackageList;
}
}
+
return NULL;
}
@@ -622,10 +618,10 @@ LocatePackageList (
EFI_STATUS
EFIAPI
HiiNewImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- OUT EFI_IMAGE_ID *ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_IMAGE_ID *ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
)
{
HII_DATABASE_PRIVATE_DATA *Private;
@@ -634,11 +630,11 @@ HiiNewImage (
EFI_HII_IMAGE_BLOCK *ImageBlocks;
UINT32 NewBlockSize;
- if (This == NULL || ImageId == NULL || Image == NULL || Image->Bitmap == NULL) {
+ if ((This == NULL) || (ImageId == NULL) || (Image == NULL) || (Image->Bitmap == NULL)) {
return EFI_INVALID_PARAMETER;
}
- Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
PackageListNode = LocatePackageList (&Private->DatabaseList, PackageList);
if (PackageListNode == NULL) {
return EFI_NOT_FOUND;
@@ -656,6 +652,7 @@ HiiNewImage (
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
NewBlockSize = NewBlockSize * 3 + (sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL));
//
@@ -684,6 +681,7 @@ HiiNewImage (
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
//
// Because ImagePackage->ImageBlockSize < ImagePackage->ImagePkgHdr.Header.Length,
// So (ImagePackage->ImageBlockSize + NewBlockSize) <= MAX_UINT24
@@ -693,6 +691,7 @@ HiiNewImage (
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
//
// Copy the original content.
//
@@ -707,16 +706,15 @@ HiiNewImage (
//
// Point to the very last block.
//
- ImageBlocks = (EFI_HII_IMAGE_BLOCK *) (
- (UINT8 *) ImageBlocks + ImagePackage->ImageBlockSize - sizeof (EFI_HII_IIBT_END_BLOCK)
- );
+ ImageBlocks = (EFI_HII_IMAGE_BLOCK *)(
+ (UINT8 *)ImageBlocks + ImagePackage->ImageBlockSize - sizeof (EFI_HII_IIBT_END_BLOCK)
+ );
//
// Update the length record.
//
ImagePackage->ImageBlockSize += NewBlockSize;
ImagePackage->ImagePkgHdr.Header.Length += NewBlockSize;
PackageListNode->PackageListHdr.PackageLength += NewBlockSize;
-
} else {
//
// Make sure the final package length doesn't overflow.
@@ -726,15 +724,17 @@ HiiNewImage (
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
//
// The specified package list does not contain image package.
// Create one to add this image block.
//
- ImagePackage = (HII_IMAGE_PACKAGE_INSTANCE *) AllocateZeroPool (sizeof (HII_IMAGE_PACKAGE_INSTANCE));
+ ImagePackage = (HII_IMAGE_PACKAGE_INSTANCE *)AllocateZeroPool (sizeof (HII_IMAGE_PACKAGE_INSTANCE));
if (ImagePackage == NULL) {
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
//
// Output the image id of the incoming image being inserted, which is the
// first image block so that id is initially to one.
@@ -758,18 +758,19 @@ HiiNewImage (
// Fill in image blocks.
//
ImagePackage->ImageBlockSize = NewBlockSize + sizeof (EFI_HII_IIBT_END_BLOCK);
- ImagePackage->ImageBlock = AllocateZeroPool (NewBlockSize + sizeof (EFI_HII_IIBT_END_BLOCK));
+ ImagePackage->ImageBlock = AllocateZeroPool (NewBlockSize + sizeof (EFI_HII_IIBT_END_BLOCK));
if (ImagePackage->ImageBlock == NULL) {
FreePool (ImagePackage);
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
ImageBlocks = ImagePackage->ImageBlock;
//
// Insert this image package.
//
- PackageListNode->ImagePkg = ImagePackage;
+ PackageListNode->ImagePkg = ImagePackage;
PackageListNode->PackageListHdr.PackageLength += ImagePackage->ImagePkgHdr.Header.Length;
}
@@ -781,14 +782,15 @@ HiiNewImage (
} else {
ImageBlocks->BlockType = EFI_HII_IIBT_IMAGE_24BIT;
}
- WriteUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) ImageBlocks)->Bitmap.Width, Image->Width);
- WriteUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) ImageBlocks)->Bitmap.Height, Image->Height);
- CopyGopToRgbPixel (((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) ImageBlocks)->Bitmap.Bitmap, Image->Bitmap, (UINT32) Image->Width * Image->Height);
+
+ WriteUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)ImageBlocks)->Bitmap.Width, Image->Width);
+ WriteUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)ImageBlocks)->Bitmap.Height, Image->Height);
+ CopyGopToRgbPixel (((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)ImageBlocks)->Bitmap.Bitmap, Image->Bitmap, (UINT32)Image->Width * Image->Height);
//
// Append the block end
//
- ImageBlocks = (EFI_HII_IMAGE_BLOCK *) ((UINT8 *) ImageBlocks + NewBlockSize);
+ ImageBlocks = (EFI_HII_IMAGE_BLOCK *)((UINT8 *)ImageBlocks + NewBlockSize);
ImageBlocks->BlockType = EFI_HII_IIBT_END;
//
@@ -796,7 +798,7 @@ HiiNewImage (
// Only after ReadyToBoot to do the export.
//
if (gExportAfterReadyToBoot) {
- HiiGetDatabaseInfo(&Private->HiiDatabase);
+ HiiGetDatabaseInfo (&Private->HiiDatabase);
}
EfiReleaseLock (&mHiiDatabaseLock);
@@ -804,7 +806,6 @@ HiiNewImage (
return EFI_SUCCESS;
}
-
/**
This function retrieves the image specified by ImageId which is associated with
the specified PackageList and copies it into the buffer specified by Image.
@@ -829,11 +830,11 @@ HiiNewImage (
**/
EFI_STATUS
IGetImage (
- IN LIST_ENTRY *Database,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_INPUT *Image,
- IN BOOLEAN BitmapOnly
+ IN LIST_ENTRY *Database,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image,
+ IN BOOLEAN BitmapOnly
)
{
EFI_STATUS Status;
@@ -850,7 +851,7 @@ IGetImage (
EFI_HII_IMAGE_DECODER_PROTOCOL *Decoder;
EFI_IMAGE_OUTPUT *ImageOut;
- if (Image == NULL || ImageId == 0) {
+ if ((Image == NULL) || (ImageId == 0)) {
return EFI_INVALID_PARAMETER;
}
@@ -858,6 +859,7 @@ IGetImage (
if (PackageListNode == NULL) {
return EFI_NOT_FOUND;
}
+
ImagePackage = PackageListNode->ImagePkg;
if (ImagePackage == NULL) {
return EFI_NOT_FOUND;
@@ -873,139 +875,150 @@ IGetImage (
Image->Flags = 0;
switch (CurrentImageBlock->BlockType) {
- case EFI_HII_IIBT_IMAGE_JPEG:
- case EFI_HII_IIBT_IMAGE_PNG:
- if (BitmapOnly) {
- return EFI_UNSUPPORTED;
- }
+ case EFI_HII_IIBT_IMAGE_JPEG:
+ case EFI_HII_IIBT_IMAGE_PNG:
+ if (BitmapOnly) {
+ return EFI_UNSUPPORTED;
+ }
- ImageOut = NULL;
- Decoder = LocateHiiImageDecoder (CurrentImageBlock->BlockType);
- if (Decoder == NULL) {
- return EFI_UNSUPPORTED;
- }
- //
- // Use the common block code since the definition of two structures is the same.
- //
- ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data));
- ASSERT (sizeof (((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Data) ==
- sizeof (((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Data));
- ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Size) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Size));
- ASSERT (sizeof (((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size) ==
- sizeof (((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size));
- Status = Decoder->DecodeImage (
- Decoder,
- ((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Data,
- ((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size,
- &ImageOut,
- FALSE
- );
+ ImageOut = NULL;
+ Decoder = LocateHiiImageDecoder (CurrentImageBlock->BlockType);
+ if (Decoder == NULL) {
+ return EFI_UNSUPPORTED;
+ }
- //
- // Spec requires to use the first capable image decoder instance.
- // The first image decoder instance may fail to decode the image.
- //
- if (!EFI_ERROR (Status)) {
- Image->Bitmap = ImageOut->Image.Bitmap;
- Image->Height = ImageOut->Height;
- Image->Width = ImageOut->Width;
- FreePool (ImageOut);
- }
- return Status;
+ //
+ // Use the common block code since the definition of two structures is the same.
+ //
+ ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data));
+ ASSERT (
+ sizeof (((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Data) ==
+ sizeof (((EFI_HII_IIBT_PNG_BLOCK *)CurrentImageBlock)->Data)
+ );
+ ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Size) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Size));
+ ASSERT (
+ sizeof (((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Size) ==
+ sizeof (((EFI_HII_IIBT_PNG_BLOCK *)CurrentImageBlock)->Size)
+ );
+ Status = Decoder->DecodeImage (
+ Decoder,
+ ((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Data,
+ ((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Size,
+ &ImageOut,
+ FALSE
+ );
+
+ //
+ // Spec requires to use the first capable image decoder instance.
+ // The first image decoder instance may fail to decode the image.
+ //
+ if (!EFI_ERROR (Status)) {
+ Image->Bitmap = ImageOut->Image.Bitmap;
+ Image->Height = ImageOut->Height;
+ Image->Width = ImageOut->Width;
+ FreePool (ImageOut);
+ }
+
+ return Status;
- case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
- case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
- case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
- Image->Flags = EFI_IMAGE_TRANSPARENT;
+ case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
+ case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
+ case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
+ Image->Flags = EFI_IMAGE_TRANSPARENT;
//
// fall through
//
- case EFI_HII_IIBT_IMAGE_1BIT:
- case EFI_HII_IIBT_IMAGE_4BIT:
- case EFI_HII_IIBT_IMAGE_8BIT:
- //
- // Use the common block code since the definition of these structures is the same.
- //
- CopyMem (&Iibt1bit, CurrentImageBlock, sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK));
- ImageLength = (UINTN) Iibt1bit.Bitmap.Width * Iibt1bit.Bitmap.Height;
- if (ImageLength > MAX_UINTN / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) {
- return EFI_OUT_OF_RESOURCES;
- }
- ImageLength *= sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
- Image->Bitmap = AllocateZeroPool (ImageLength);
- if (Image->Bitmap == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
+ case EFI_HII_IIBT_IMAGE_1BIT:
+ case EFI_HII_IIBT_IMAGE_4BIT:
+ case EFI_HII_IIBT_IMAGE_8BIT:
+ //
+ // Use the common block code since the definition of these structures is the same.
+ //
+ CopyMem (&Iibt1bit, CurrentImageBlock, sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK));
+ ImageLength = (UINTN)Iibt1bit.Bitmap.Width * Iibt1bit.Bitmap.Height;
+ if (ImageLength > MAX_UINTN / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- Image->Width = Iibt1bit.Bitmap.Width;
- Image->Height = Iibt1bit.Bitmap.Height;
+ ImageLength *= sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
+ Image->Bitmap = AllocateZeroPool (ImageLength);
+ if (Image->Bitmap == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- PaletteInfo = ImagePackage->PaletteBlock + sizeof (EFI_HII_IMAGE_PALETTE_INFO_HEADER);
- for (PaletteIndex = 1; PaletteIndex < Iibt1bit.PaletteIndex; PaletteIndex++) {
- CopyMem (&PaletteSize, PaletteInfo, sizeof (UINT16));
- PaletteInfo += PaletteSize + sizeof (UINT16);
- }
- ASSERT (PaletteIndex == Iibt1bit.PaletteIndex);
+ Image->Width = Iibt1bit.Bitmap.Width;
+ Image->Height = Iibt1bit.Bitmap.Height;
- //
- // Output bitmap data
- //
- if (CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_1BIT ||
- CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_1BIT_TRANS) {
- Output1bitPixel (
- Image,
- ((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Data,
- (EFI_HII_IMAGE_PALETTE_INFO *) PaletteInfo
- );
- } else if (CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_4BIT ||
- CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_4BIT_TRANS) {
- Output4bitPixel (
- Image,
- ((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *) CurrentImageBlock)->Bitmap.Data,
- (EFI_HII_IMAGE_PALETTE_INFO *) PaletteInfo
- );
- } else {
- Output8bitPixel (
- Image,
- ((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *) CurrentImageBlock)->Bitmap.Data,
- (EFI_HII_IMAGE_PALETTE_INFO *) PaletteInfo
- );
- }
+ PaletteInfo = ImagePackage->PaletteBlock + sizeof (EFI_HII_IMAGE_PALETTE_INFO_HEADER);
+ for (PaletteIndex = 1; PaletteIndex < Iibt1bit.PaletteIndex; PaletteIndex++) {
+ CopyMem (&PaletteSize, PaletteInfo, sizeof (UINT16));
+ PaletteInfo += PaletteSize + sizeof (UINT16);
+ }
- return EFI_SUCCESS;
+ ASSERT (PaletteIndex == Iibt1bit.PaletteIndex);
- case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
- Image->Flags = EFI_IMAGE_TRANSPARENT;
+ //
+ // Output bitmap data
+ //
+ if ((CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_1BIT) ||
+ (CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_1BIT_TRANS))
+ {
+ Output1bitPixel (
+ Image,
+ ((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Data,
+ (EFI_HII_IMAGE_PALETTE_INFO *)PaletteInfo
+ );
+ } else if ((CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_4BIT) ||
+ (CurrentImageBlock->BlockType == EFI_HII_IIBT_IMAGE_4BIT_TRANS))
+ {
+ Output4bitPixel (
+ Image,
+ ((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *)CurrentImageBlock)->Bitmap.Data,
+ (EFI_HII_IMAGE_PALETTE_INFO *)PaletteInfo
+ );
+ } else {
+ Output8bitPixel (
+ Image,
+ ((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *)CurrentImageBlock)->Bitmap.Data,
+ (EFI_HII_IMAGE_PALETTE_INFO *)PaletteInfo
+ );
+ }
+
+ return EFI_SUCCESS;
+
+ case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
+ Image->Flags = EFI_IMAGE_TRANSPARENT;
//
// fall through
//
- case EFI_HII_IIBT_IMAGE_24BIT:
- Width = ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width);
- Height = ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height);
- ImageLength = (UINTN)Width * Height;
- if (ImageLength > MAX_UINTN / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) {
- return EFI_OUT_OF_RESOURCES;
- }
- ImageLength *= sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
- Image->Bitmap = AllocateZeroPool (ImageLength);
- if (Image->Bitmap == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
+ case EFI_HII_IIBT_IMAGE_24BIT:
+ Width = ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width);
+ Height = ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height);
+ ImageLength = (UINTN)Width * Height;
+ if (ImageLength > MAX_UINTN / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- Image->Width = Width;
- Image->Height = Height;
+ ImageLength *= sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
+ Image->Bitmap = AllocateZeroPool (ImageLength);
+ if (Image->Bitmap == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- //
- // Output the bitmap data directly.
- //
- Output24bitPixel (
- Image,
- ((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Bitmap
- );
- return EFI_SUCCESS;
+ Image->Width = Width;
+ Image->Height = Height;
- default:
- return EFI_NOT_FOUND;
+ //
+ // Output the bitmap data directly.
+ //
+ Output24bitPixel (
+ Image,
+ ((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Bitmap
+ );
+ return EFI_SUCCESS;
+
+ default:
+ return EFI_NOT_FOUND;
}
}
@@ -1033,18 +1046,18 @@ IGetImage (
EFI_STATUS
EFIAPI
HiiGetImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_PRIVATE_DATA *Private;
+
Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
return IGetImage (&Private->DatabaseList, PackageList, ImageId, Image, TRUE);
}
-
/**
This function updates the image specified by ImageId in the specified PackageListHandle to
the image specified by Image.
@@ -1064,10 +1077,10 @@ HiiGetImage (
EFI_STATUS
EFIAPI
HiiSetImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
)
{
HII_DATABASE_PRIVATE_DATA *Private;
@@ -1078,18 +1091,19 @@ HiiSetImage (
EFI_HII_IMAGE_BLOCK *NewImageBlock;
UINT32 NewBlockSize;
UINT32 OldBlockSize;
- UINT32 Part1Size;
- UINT32 Part2Size;
+ UINT32 Part1Size;
+ UINT32 Part2Size;
- if (This == NULL || Image == NULL || ImageId == 0 || Image->Bitmap == NULL) {
+ if ((This == NULL) || (Image == NULL) || (ImageId == 0) || (Image->Bitmap == NULL)) {
return EFI_INVALID_PARAMETER;
}
- Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ Private = HII_IMAGE_DATABASE_PRIVATE_DATA_FROM_THIS (This);
PackageListNode = LocatePackageList (&Private->DatabaseList, PackageList);
if (PackageListNode == NULL) {
return EFI_NOT_FOUND;
}
+
ImagePackage = PackageListNode->ImagePkg;
if (ImagePackage == NULL) {
return EFI_NOT_FOUND;
@@ -1110,47 +1124,47 @@ HiiSetImage (
// since the definition of some structures is the same.
//
switch (CurrentImageBlock->BlockType) {
- case EFI_HII_IIBT_IMAGE_JPEG:
- OldBlockSize = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size);
- break;
- case EFI_HII_IIBT_IMAGE_PNG:
- OldBlockSize = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *) &((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size);
- break;
- case EFI_HII_IIBT_IMAGE_1BIT:
- case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
- OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8) +
- BITMAP_LEN_1_BIT (
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- break;
- case EFI_HII_IIBT_IMAGE_4BIT:
- case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
- OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_4BIT_BLOCK) - sizeof (UINT8) +
- BITMAP_LEN_4_BIT (
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- break;
- case EFI_HII_IIBT_IMAGE_8BIT:
- case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
- OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_8BIT_BLOCK) - sizeof (UINT8) +
- BITMAP_LEN_8_BIT (
- (UINT32) ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- break;
- case EFI_HII_IIBT_IMAGE_24BIT:
- case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
- OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL) +
- BITMAP_LEN_24_BIT (
- (UINT32) ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width),
- ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height)
- );
- break;
- default:
- EfiReleaseLock (&mHiiDatabaseLock);
- return EFI_NOT_FOUND;
+ case EFI_HII_IIBT_IMAGE_JPEG:
+ OldBlockSize = OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) + ReadUnaligned32 ((VOID *)&((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Size);
+ break;
+ case EFI_HII_IIBT_IMAGE_PNG:
+ OldBlockSize = OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data) + ReadUnaligned32 ((VOID *)&((EFI_HII_IIBT_PNG_BLOCK *)CurrentImageBlock)->Size);
+ break;
+ case EFI_HII_IIBT_IMAGE_1BIT:
+ case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
+ OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_1BIT_BLOCK) - sizeof (UINT8) +
+ BITMAP_LEN_1_BIT (
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ break;
+ case EFI_HII_IIBT_IMAGE_4BIT:
+ case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
+ OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_4BIT_BLOCK) - sizeof (UINT8) +
+ BITMAP_LEN_4_BIT (
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_4BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ break;
+ case EFI_HII_IIBT_IMAGE_8BIT:
+ case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
+ OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_8BIT_BLOCK) - sizeof (UINT8) +
+ BITMAP_LEN_8_BIT (
+ (UINT32)ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_8BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ break;
+ case EFI_HII_IIBT_IMAGE_24BIT:
+ case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
+ OldBlockSize = sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL) +
+ BITMAP_LEN_24_BIT (
+ (UINT32)ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width),
+ ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height)
+ );
+ break;
+ default:
+ EfiReleaseLock (&mHiiDatabaseLock);
+ return EFI_NOT_FOUND;
}
//
@@ -1167,10 +1181,12 @@ HiiSetImage (
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
+
NewBlockSize = NewBlockSize * 3 + (sizeof (EFI_HII_IIBT_IMAGE_24BIT_BLOCK) - sizeof (EFI_HII_RGB_PIXEL));
if ((NewBlockSize > OldBlockSize) &&
(NewBlockSize - OldBlockSize > MAX_UINT24 - ImagePackage->ImagePkgHdr.Header.Length)
- ) {
+ )
+ {
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_OUT_OF_RESOURCES;
}
@@ -1184,25 +1200,29 @@ HiiSetImage (
return EFI_OUT_OF_RESOURCES;
}
- Part1Size = (UINT32) ((UINTN) CurrentImageBlock - (UINTN) ImagePackage->ImageBlock);
+ Part1Size = (UINT32)((UINTN)CurrentImageBlock - (UINTN)ImagePackage->ImageBlock);
Part2Size = ImagePackage->ImageBlockSize - Part1Size - OldBlockSize;
CopyMem (ImageBlocks, ImagePackage->ImageBlock, Part1Size);
//
// Set the new image block
//
- NewImageBlock = (EFI_HII_IMAGE_BLOCK *) ((UINT8 *) ImageBlocks + Part1Size);
+ NewImageBlock = (EFI_HII_IMAGE_BLOCK *)((UINT8 *)ImageBlocks + Part1Size);
if ((Image->Flags & EFI_IMAGE_TRANSPARENT) == EFI_IMAGE_TRANSPARENT) {
- NewImageBlock->BlockType= EFI_HII_IIBT_IMAGE_24BIT_TRANS;
+ NewImageBlock->BlockType = EFI_HII_IIBT_IMAGE_24BIT_TRANS;
} else {
NewImageBlock->BlockType = EFI_HII_IIBT_IMAGE_24BIT;
}
- WriteUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) NewImageBlock)->Bitmap.Width, Image->Width);
- WriteUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) NewImageBlock)->Bitmap.Height, Image->Height);
- CopyGopToRgbPixel (((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) NewImageBlock)->Bitmap.Bitmap,
- Image->Bitmap, (UINT32) Image->Width * Image->Height);
- CopyMem ((UINT8 *) NewImageBlock + NewBlockSize, (UINT8 *) CurrentImageBlock + OldBlockSize, Part2Size);
+ WriteUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)NewImageBlock)->Bitmap.Width, Image->Width);
+ WriteUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)NewImageBlock)->Bitmap.Height, Image->Height);
+ CopyGopToRgbPixel (
+ ((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)NewImageBlock)->Bitmap.Bitmap,
+ Image->Bitmap,
+ (UINT32)Image->Width * Image->Height
+ );
+
+ CopyMem ((UINT8 *)NewImageBlock + NewBlockSize, (UINT8 *)CurrentImageBlock + OldBlockSize, Part2Size);
FreePool (ImagePackage->ImageBlock);
ImagePackage->ImageBlock = ImageBlocks;
@@ -1215,15 +1235,13 @@ HiiSetImage (
// Only after ReadyToBoot to do the export.
//
if (gExportAfterReadyToBoot) {
- HiiGetDatabaseInfo(&Private->HiiDatabase);
+ HiiGetDatabaseInfo (&Private->HiiDatabase);
}
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_SUCCESS;
-
}
-
/**
This function renders an image to a bitmap or the screen using the specified
color and options. It draws the image on an existing bitmap, allocates a new
@@ -1254,34 +1272,34 @@ HiiSetImage (
EFI_STATUS
EFIAPI
HiiDrawImage (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN CONST EFI_IMAGE_INPUT *Image,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN CONST EFI_IMAGE_INPUT *Image,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- BOOLEAN Transparent;
- EFI_IMAGE_OUTPUT *ImageOut;
- EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
- UINTN BufferLen;
- UINT16 Width;
- UINT16 Height;
- UINTN Xpos;
- UINTN Ypos;
- UINTN OffsetY1;
- UINTN OffsetY2;
- EFI_FONT_DISPLAY_INFO *FontInfo;
- UINTN Index;
-
- if (This == NULL || Image == NULL || Blt == NULL) {
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ BOOLEAN Transparent;
+ EFI_IMAGE_OUTPUT *ImageOut;
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer;
+ UINTN BufferLen;
+ UINT16 Width;
+ UINT16 Height;
+ UINTN Xpos;
+ UINTN Ypos;
+ UINTN OffsetY1;
+ UINTN OffsetY2;
+ EFI_FONT_DISPLAY_INFO *FontInfo;
+ UINTN Index;
+
+ if ((This == NULL) || (Image == NULL) || (Blt == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if ((Flags & EFI_HII_DRAW_FLAG_CLIP) == EFI_HII_DRAW_FLAG_CLIP && *Blt == NULL) {
+ if (((Flags & EFI_HII_DRAW_FLAG_CLIP) == EFI_HII_DRAW_FLAG_CLIP) && (*Blt == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1297,7 +1315,7 @@ HiiDrawImage (
Transparent = FALSE;
if ((Flags & EFI_HII_DRAW_FLAG_TRANSPARENT) == EFI_HII_DRAW_FLAG_FORCE_TRANS) {
Transparent = TRUE;
- } else if ((Flags & EFI_HII_DRAW_FLAG_TRANSPARENT) == EFI_HII_DRAW_FLAG_FORCE_OPAQUE){
+ } else if ((Flags & EFI_HII_DRAW_FLAG_TRANSPARENT) == EFI_HII_DRAW_FLAG_FORCE_OPAQUE) {
Transparent = FALSE;
} else {
//
@@ -1346,6 +1364,7 @@ HiiDrawImage (
if (Width > (*Blt)->Width - (UINT16)BltX) {
Width = (*Blt)->Width - (UINT16)BltX;
}
+
if (Height > (*Blt)->Height - (UINT16)BltY) {
Height = (*Blt)->Height - (UINT16)BltY;
}
@@ -1358,13 +1377,14 @@ HiiDrawImage (
if (BufferLen > MAX_UINTN / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) {
return EFI_OUT_OF_RESOURCES;
}
+
BufferLen *= sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
BltBuffer = AllocateZeroPool (BufferLen);
if (BltBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- if (Width == Image->Width && Height == Image->Height) {
+ if ((Width == Image->Width) && (Height == Image->Height)) {
CopyMem (BltBuffer, Image->Bitmap, BufferLen);
} else {
for (Ypos = 0; Ypos < Height; Ypos++) {
@@ -1412,12 +1432,10 @@ HiiDrawImage (
Transparent,
Blt
);
-
}
FreePool (BltBuffer);
return Status;
-
} else {
//
// Allocate a new bitmap to hold the incoming image.
@@ -1440,17 +1458,19 @@ HiiDrawImage (
if (BufferLen > MAX_UINTN / sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) {
return EFI_OUT_OF_RESOURCES;
}
+
BufferLen *= sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);
BltBuffer = AllocateZeroPool (BufferLen);
if (BltBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- ImageOut = (EFI_IMAGE_OUTPUT *) AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
+ ImageOut = (EFI_IMAGE_OUTPUT *)AllocateZeroPool (sizeof (EFI_IMAGE_OUTPUT));
if (ImageOut == NULL) {
FreePool (BltBuffer);
return EFI_OUT_OF_RESOURCES;
}
+
ImageOut->Width = Width;
ImageOut->Height = Height;
ImageOut->Image.Bitmap = BltBuffer;
@@ -1465,10 +1485,12 @@ HiiDrawImage (
FreePool (ImageOut);
return Status;
}
+
ASSERT (FontInfo != NULL);
for (Index = 0; Index < (UINTN)Width * Height; Index++) {
BltBuffer[Index] = FontInfo->BackgroundColor;
}
+
FreePool (FontInfo);
//
@@ -1484,11 +1506,9 @@ HiiDrawImage (
Transparent,
Blt
);
-
}
}
-
/**
This function renders an image to a bitmap or the screen using the specified
color and options. It draws the image on an existing bitmap, allocates a new
@@ -1524,22 +1544,22 @@ HiiDrawImage (
EFI_STATUS
EFIAPI
HiiDrawImageId (
- IN CONST EFI_HII_IMAGE_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
)
{
- EFI_STATUS Status;
- EFI_IMAGE_INPUT Image;
+ EFI_STATUS Status;
+ EFI_IMAGE_INPUT Image;
//
// Check input parameter.
//
- if (This == NULL || Blt == NULL) {
+ if ((This == NULL) || (Blt == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1558,6 +1578,6 @@ HiiDrawImageId (
if (Image.Bitmap != NULL) {
FreePool (Image.Bitmap);
}
+
return Status;
}
-
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ImageEx.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ImageEx.c
index 07e8b3b..f394e13 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ImageEx.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ImageEx.c
@@ -7,7 +7,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
/**
@@ -29,13 +28,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
HiiNewImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- OUT EFI_IMAGE_ID *ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_IMAGE_ID *ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_PRIVATE_DATA *Private;
Private = HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS (This);
return HiiNewImage (&Private->HiiImage, PackageList, ImageId, Image);
@@ -69,19 +68,18 @@ HiiNewImageEx (
EFI_STATUS
EFIAPI
HiiGetImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_INPUT *Image
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_PRIVATE_DATA *Private;
Private = HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS (This);
return IGetImage (&Private->DatabaseList, PackageList, ImageId, Image, FALSE);
}
-
/**
Change the information about the image.
@@ -104,18 +102,18 @@ HiiGetImageEx (
EFI_STATUS
EFIAPI
HiiSetImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN CONST EFI_IMAGE_INPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN CONST EFI_IMAGE_INPUT *Image
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_PRIVATE_DATA *Private;
+
Private = HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS (This);
return HiiSetImage (&Private->HiiImage, PackageList, ImageId, Image);
}
-
/**
Renders an image to a bitmap or to the display.
@@ -147,20 +145,20 @@ HiiSetImageEx (
EFI_STATUS
EFIAPI
HiiDrawImageEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN CONST EFI_IMAGE_INPUT *Image,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN CONST EFI_IMAGE_INPUT *Image,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
)
{
- HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_PRIVATE_DATA *Private;
+
Private = HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS (This);
return HiiDrawImage (&Private->HiiImage, Flags, Image, Blt, BltX, BltY);
}
-
/**
Renders an image to a bitmap or the screen containing the contents of the specified
image.
@@ -200,22 +198,22 @@ HiiDrawImageEx (
EFI_STATUS
EFIAPI
HiiDrawImageIdEx (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_DRAW_FLAGS Flags,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- IN OUT EFI_IMAGE_OUTPUT **Blt,
- IN UINTN BltX,
- IN UINTN BltY
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_DRAW_FLAGS Flags,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ IN OUT EFI_IMAGE_OUTPUT **Blt,
+ IN UINTN BltX,
+ IN UINTN BltY
)
{
- EFI_STATUS Status;
- EFI_IMAGE_INPUT Image;
+ EFI_STATUS Status;
+ EFI_IMAGE_INPUT Image;
//
// Check input parameter.
//
- if (This == NULL || Blt == NULL) {
+ if ((This == NULL) || (Blt == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -234,6 +232,7 @@ HiiDrawImageIdEx (
if (Image.Bitmap != NULL) {
FreePool (Image.Bitmap);
}
+
return Status;
}
@@ -246,39 +245,40 @@ HiiDrawImageIdEx (
**/
EFI_HII_IMAGE_DECODER_PROTOCOL *
LocateHiiImageDecoder (
- UINT8 BlockType
+ UINT8 BlockType
)
{
- EFI_STATUS Status;
- EFI_HII_IMAGE_DECODER_PROTOCOL *Decoder;
- EFI_HANDLE *Handles;
- UINTN HandleNum;
- UINTN Index;
- EFI_GUID *DecoderNames;
- UINT16 NumberOfDecoderName;
- UINT16 DecoderNameIndex;
- EFI_GUID *DecoderName;
+ EFI_STATUS Status;
+ EFI_HII_IMAGE_DECODER_PROTOCOL *Decoder;
+ EFI_HANDLE *Handles;
+ UINTN HandleNum;
+ UINTN Index;
+ EFI_GUID *DecoderNames;
+ UINT16 NumberOfDecoderName;
+ UINT16 DecoderNameIndex;
+ EFI_GUID *DecoderName;
switch (BlockType) {
- case EFI_HII_IIBT_IMAGE_JPEG:
- DecoderName = &gEfiHiiImageDecoderNameJpegGuid;
- break;
+ case EFI_HII_IIBT_IMAGE_JPEG:
+ DecoderName = &gEfiHiiImageDecoderNameJpegGuid;
+ break;
- case EFI_HII_IIBT_IMAGE_PNG:
- DecoderName = &gEfiHiiImageDecoderNamePngGuid;
- break;
+ case EFI_HII_IIBT_IMAGE_PNG:
+ DecoderName = &gEfiHiiImageDecoderNamePngGuid;
+ break;
- default:
- ASSERT (FALSE);
- return NULL;
+ default:
+ ASSERT (FALSE);
+ return NULL;
}
Status = gBS->LocateHandleBuffer (ByProtocol, &gEfiHiiImageDecoderProtocolGuid, NULL, &HandleNum, &Handles);
if (EFI_ERROR (Status)) {
return NULL;
}
+
for (Index = 0; Index < HandleNum; Index++) {
- Status = gBS->HandleProtocol (Handles[Index], &gEfiHiiImageDecoderProtocolGuid, (VOID **) &Decoder);
+ Status = gBS->HandleProtocol (Handles[Index], &gEfiHiiImageDecoderProtocolGuid, (VOID **)&Decoder);
if (EFI_ERROR (Status)) {
continue;
}
@@ -287,6 +287,7 @@ LocateHiiImageDecoder (
if (EFI_ERROR (Status)) {
continue;
}
+
for (DecoderNameIndex = 0; DecoderNameIndex < NumberOfDecoderName; DecoderNameIndex++) {
if (CompareGuid (DecoderName, &DecoderNames[DecoderNameIndex])) {
return Decoder;
@@ -323,29 +324,30 @@ LocateHiiImageDecoder (
EFI_STATUS
EFIAPI
HiiGetImageInfo (
- IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_IMAGE_ID ImageId,
- OUT EFI_IMAGE_OUTPUT *Image
+ IN CONST EFI_HII_IMAGE_EX_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_IMAGE_ID ImageId,
+ OUT EFI_IMAGE_OUTPUT *Image
)
{
- EFI_STATUS Status;
- HII_DATABASE_PRIVATE_DATA *Private;
- HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageListNode;
- HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;
- EFI_HII_IMAGE_BLOCK *CurrentImageBlock;
- EFI_HII_IMAGE_DECODER_PROTOCOL *Decoder;
- EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER *ImageInfo;
-
- if (Image == NULL || ImageId == 0) {
+ EFI_STATUS Status;
+ HII_DATABASE_PRIVATE_DATA *Private;
+ HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageListNode;
+ HII_IMAGE_PACKAGE_INSTANCE *ImagePackage;
+ EFI_HII_IMAGE_BLOCK *CurrentImageBlock;
+ EFI_HII_IMAGE_DECODER_PROTOCOL *Decoder;
+ EFI_HII_IMAGE_DECODER_IMAGE_INFO_HEADER *ImageInfo;
+
+ if ((Image == NULL) || (ImageId == 0)) {
return EFI_INVALID_PARAMETER;
}
- Private = HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ Private = HII_IMAGE_EX_DATABASE_PRIVATE_DATA_FROM_THIS (This);
PackageListNode = LocatePackageList (&Private->DatabaseList, PackageList);
if (PackageListNode == NULL) {
return EFI_NOT_FOUND;
}
+
ImagePackage = PackageListNode->ImagePkg;
if (ImagePackage == NULL) {
return EFI_NOT_FOUND;
@@ -360,62 +362,68 @@ HiiGetImageInfo (
}
switch (CurrentImageBlock->BlockType) {
- case EFI_HII_IIBT_IMAGE_JPEG:
- case EFI_HII_IIBT_IMAGE_PNG:
- Decoder = LocateHiiImageDecoder (CurrentImageBlock->BlockType);
- if (Decoder == NULL) {
- return EFI_UNSUPPORTED;
- }
- //
- // Use the common block code since the definition of two structures is the same.
- //
- ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data));
- ASSERT (sizeof (((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Data) ==
- sizeof (((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Data));
- ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Size) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Size));
- ASSERT (sizeof (((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size) ==
- sizeof (((EFI_HII_IIBT_PNG_BLOCK *) CurrentImageBlock)->Size));
- Status = Decoder->GetImageInfo (
- Decoder,
- ((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Data,
- ((EFI_HII_IIBT_JPEG_BLOCK *) CurrentImageBlock)->Size,
- &ImageInfo
- );
-
- //
- // Spec requires to use the first capable image decoder instance.
- // The first image decoder instance may fail to decode the image.
- //
- if (!EFI_ERROR (Status)) {
- Image->Height = ImageInfo->ImageHeight;
- Image->Width = ImageInfo->ImageWidth;
+ case EFI_HII_IIBT_IMAGE_JPEG:
+ case EFI_HII_IIBT_IMAGE_PNG:
+ Decoder = LocateHiiImageDecoder (CurrentImageBlock->BlockType);
+ if (Decoder == NULL) {
+ return EFI_UNSUPPORTED;
+ }
+
+ //
+ // Use the common block code since the definition of two structures is the same.
+ //
+ ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Data) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Data));
+ ASSERT (
+ sizeof (((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Data) ==
+ sizeof (((EFI_HII_IIBT_PNG_BLOCK *)CurrentImageBlock)->Data)
+ );
+ ASSERT (OFFSET_OF (EFI_HII_IIBT_JPEG_BLOCK, Size) == OFFSET_OF (EFI_HII_IIBT_PNG_BLOCK, Size));
+ ASSERT (
+ sizeof (((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Size) ==
+ sizeof (((EFI_HII_IIBT_PNG_BLOCK *)CurrentImageBlock)->Size)
+ );
+ Status = Decoder->GetImageInfo (
+ Decoder,
+ ((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Data,
+ ((EFI_HII_IIBT_JPEG_BLOCK *)CurrentImageBlock)->Size,
+ &ImageInfo
+ );
+
+ //
+ // Spec requires to use the first capable image decoder instance.
+ // The first image decoder instance may fail to decode the image.
+ //
+ if (!EFI_ERROR (Status)) {
+ Image->Height = ImageInfo->ImageHeight;
+ Image->Width = ImageInfo->ImageWidth;
+ Image->Image.Bitmap = NULL;
+ FreePool (ImageInfo);
+ }
+
+ return Status;
+
+ case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
+ case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
+ case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
+ case EFI_HII_IIBT_IMAGE_1BIT:
+ case EFI_HII_IIBT_IMAGE_4BIT:
+ case EFI_HII_IIBT_IMAGE_8BIT:
+ //
+ // Use the common block code since the definition of these structures is the same.
+ //
+ Image->Width = ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width);
+ Image->Height = ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height);
Image->Image.Bitmap = NULL;
- FreePool (ImageInfo);
- }
- return Status;
+ return EFI_SUCCESS;
- case EFI_HII_IIBT_IMAGE_1BIT_TRANS:
- case EFI_HII_IIBT_IMAGE_4BIT_TRANS:
- case EFI_HII_IIBT_IMAGE_8BIT_TRANS:
- case EFI_HII_IIBT_IMAGE_1BIT:
- case EFI_HII_IIBT_IMAGE_4BIT:
- case EFI_HII_IIBT_IMAGE_8BIT:
- //
- // Use the common block code since the definition of these structures is the same.
- //
- Image->Width = ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width);
- Image->Height = ReadUnaligned16 (&((EFI_HII_IIBT_IMAGE_1BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height);
- Image->Image.Bitmap = NULL;
- return EFI_SUCCESS;
-
- case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
- case EFI_HII_IIBT_IMAGE_24BIT:
- Image->Width = ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Width);
- Image->Height = ReadUnaligned16 ((VOID *) &((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *) CurrentImageBlock)->Bitmap.Height);
- Image->Image.Bitmap = NULL;
- return EFI_SUCCESS;
-
- default:
- return EFI_NOT_FOUND;
+ case EFI_HII_IIBT_IMAGE_24BIT_TRANS:
+ case EFI_HII_IIBT_IMAGE_24BIT:
+ Image->Width = ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Width);
+ Image->Height = ReadUnaligned16 ((VOID *)&((EFI_HII_IIBT_IMAGE_24BIT_BLOCK *)CurrentImageBlock)->Bitmap.Height);
+ Image->Image.Bitmap = NULL;
+ return EFI_SUCCESS;
+
+ default:
+ return EFI_NOT_FOUND;
}
}
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
index 43e3b36..e3fceed 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
@@ -8,17 +8,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "HiiDatabase.h"
-CHAR16 mLanguageWindow[16] = {
+CHAR16 mLanguageWindow[16] = {
0x0000, 0x0080, 0x0100, 0x0300,
0x2000, 0x2080, 0x2100, 0x3000,
0x0080, 0x00C0, 0x0400, 0x0600,
0x0900, 0x3040, 0x30A0, 0xFF00
};
-
/**
This function checks whether a global font info is referred by local
font info list or not. (i.e. HII_FONT_INFO is generated.) If not, create
@@ -44,16 +42,16 @@ CHAR16 mLanguageWindow[16] = {
**/
BOOLEAN
ReferFontInfoLocally (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN UINT8 FontId,
- IN BOOLEAN DuplicateEnable,
- IN HII_GLOBAL_FONT_INFO *GlobalFontInfo,
- OUT HII_FONT_INFO **LocalFontInfo
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN UINT8 FontId,
+ IN BOOLEAN DuplicateEnable,
+ IN HII_GLOBAL_FONT_INFO *GlobalFontInfo,
+ OUT HII_FONT_INFO **LocalFontInfo
)
{
- HII_FONT_INFO *LocalFont;
- LIST_ENTRY *Link;
+ HII_FONT_INFO *LocalFont;
+ LIST_ENTRY *Link;
ASSERT (Private != NULL && StringPackage != NULL && GlobalFontInfo != NULL && LocalFontInfo != NULL);
@@ -61,7 +59,8 @@ ReferFontInfoLocally (
for (Link = StringPackage->FontInfoList.ForwardLink;
Link != &StringPackage->FontInfoList;
Link = Link->ForwardLink
- ) {
+ )
+ {
LocalFont = CR (Link, HII_FONT_INFO, Entry, HII_FONT_INFO_SIGNATURE);
if (LocalFont->GlobalEntry == &GlobalFontInfo->Entry) {
//
@@ -72,11 +71,12 @@ ReferFontInfoLocally (
}
}
}
+
// FontId identifies EFI_FONT_INFO in local string package uniquely.
// GlobalEntry points to a HII_GLOBAL_FONT_INFO which identifies
// EFI_FONT_INFO uniquely in whole hii database.
//
- LocalFont = (HII_FONT_INFO *) AllocateZeroPool (sizeof (HII_FONT_INFO));
+ LocalFont = (HII_FONT_INFO *)AllocateZeroPool (sizeof (HII_FONT_INFO));
ASSERT (LocalFont != NULL);
LocalFont->Signature = HII_FONT_INFO_SIGNATURE;
@@ -88,7 +88,6 @@ ReferFontInfoLocally (
return FALSE;
}
-
/**
Convert Ascii string text to unicode string test.
@@ -108,9 +107,9 @@ ReferFontInfoLocally (
**/
EFI_STATUS
ConvertToUnicodeText (
- OUT EFI_STRING StringDest,
- IN CHAR8 *StringSrc,
- IN OUT UINTN *BufferSize
+ OUT EFI_STRING StringDest,
+ IN CHAR8 *StringSrc,
+ IN OUT UINTN *BufferSize
)
{
UINTN StringSize;
@@ -119,20 +118,19 @@ ConvertToUnicodeText (
ASSERT (StringSrc != NULL && BufferSize != NULL);
StringSize = AsciiStrSize (StringSrc) * 2;
- if (*BufferSize < StringSize || StringDest == NULL) {
+ if ((*BufferSize < StringSize) || (StringDest == NULL)) {
*BufferSize = StringSize;
return EFI_BUFFER_TOO_SMALL;
}
for (Index = 0; Index < AsciiStrLen (StringSrc); Index++) {
- StringDest[Index] = (CHAR16) StringSrc[Index];
+ StringDest[Index] = (CHAR16)StringSrc[Index];
}
StringDest[Index] = 0;
return EFI_SUCCESS;
}
-
/**
Calculate the size of StringSrc and output it. If StringDest is not NULL,
copy string text from src to dest.
@@ -152,9 +150,9 @@ ConvertToUnicodeText (
**/
EFI_STATUS
GetUnicodeStringTextOrSize (
- OUT EFI_STRING StringDest OPTIONAL,
- IN UINT8 *StringSrc,
- IN OUT UINTN *BufferSize
+ OUT EFI_STRING StringDest OPTIONAL,
+ IN UINT8 *StringSrc,
+ IN OUT UINTN *BufferSize
)
{
UINTN StringSize;
@@ -164,15 +162,16 @@ GetUnicodeStringTextOrSize (
StringSize = sizeof (CHAR16);
StringPtr = StringSrc;
- while (ReadUnaligned16 ((UINT16 *) StringPtr) != 0) {
+ while (ReadUnaligned16 ((UINT16 *)StringPtr) != 0) {
StringSize += sizeof (CHAR16);
- StringPtr += sizeof (CHAR16);
+ StringPtr += sizeof (CHAR16);
}
if (*BufferSize < StringSize) {
*BufferSize = StringSize;
return EFI_BUFFER_TOO_SMALL;
}
+
if (StringDest != NULL) {
CopyMem (StringDest, StringSrc, StringSize);
}
@@ -181,7 +180,6 @@ GetUnicodeStringTextOrSize (
return EFI_SUCCESS;
}
-
/**
Copy string font info to a buffer.
@@ -199,25 +197,26 @@ GetUnicodeStringTextOrSize (
**/
EFI_STATUS
GetStringFontInfo (
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN UINT8 FontId,
- OUT EFI_FONT_INFO **StringFontInfo
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN UINT8 FontId,
+ OUT EFI_FONT_INFO **StringFontInfo
)
{
- LIST_ENTRY *Link;
- HII_FONT_INFO *FontInfo;
- HII_GLOBAL_FONT_INFO *GlobalFont;
+ LIST_ENTRY *Link;
+ HII_FONT_INFO *FontInfo;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
ASSERT (StringFontInfo != NULL && StringPackage != NULL);
for (Link = StringPackage->FontInfoList.ForwardLink; Link != &StringPackage->FontInfoList; Link = Link->ForwardLink) {
FontInfo = CR (Link, HII_FONT_INFO, Entry, HII_FONT_INFO_SIGNATURE);
if (FontInfo->FontId == FontId) {
- GlobalFont = CR (FontInfo->GlobalEntry, HII_GLOBAL_FONT_INFO, Entry, HII_GLOBAL_FONT_INFO_SIGNATURE);
- *StringFontInfo = (EFI_FONT_INFO *) AllocateZeroPool (GlobalFont->FontInfoSize);
+ GlobalFont = CR (FontInfo->GlobalEntry, HII_GLOBAL_FONT_INFO, Entry, HII_GLOBAL_FONT_INFO_SIGNATURE);
+ *StringFontInfo = (EFI_FONT_INFO *)AllocateZeroPool (GlobalFont->FontInfoSize);
if (*StringFontInfo == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
CopyMem (*StringFontInfo, GlobalFont->FontInfo, GlobalFont->FontInfoSize);
return EFI_SUCCESS;
}
@@ -226,7 +225,6 @@ GetStringFontInfo (
return EFI_NOT_FOUND;
}
-
/**
Parse all string blocks to find a String block specified by StringId.
If StringId = (EFI_STRING_ID) (-1), find out all EFI_HII_SIBT_FONT blocks
@@ -255,51 +253,51 @@ GetStringFontInfo (
**/
EFI_STATUS
FindStringBlock (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN EFI_STRING_ID StringId,
- OUT UINT8 *BlockType OPTIONAL,
- OUT UINT8 **StringBlockAddr OPTIONAL,
- OUT UINTN *StringTextOffset OPTIONAL,
- OUT EFI_STRING_ID *LastStringId OPTIONAL,
- OUT EFI_STRING_ID *StartStringId OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN EFI_STRING_ID StringId,
+ OUT UINT8 *BlockType OPTIONAL,
+ OUT UINT8 **StringBlockAddr OPTIONAL,
+ OUT UINTN *StringTextOffset OPTIONAL,
+ OUT EFI_STRING_ID *LastStringId OPTIONAL,
+ OUT EFI_STRING_ID *StartStringId OPTIONAL
)
{
- UINT8 *BlockHdr;
- EFI_STRING_ID CurrentStringId;
- UINTN BlockSize;
- UINTN Index;
- UINT8 *StringTextPtr;
- UINTN Offset;
- HII_FONT_INFO *LocalFont;
- EFI_FONT_INFO *FontInfo;
- HII_GLOBAL_FONT_INFO *GlobalFont;
- UINTN FontInfoSize;
- UINT16 StringCount;
- UINT16 SkipCount;
- EFI_HII_FONT_STYLE FontStyle;
- UINT16 FontSize;
- UINT8 Length8;
- EFI_HII_SIBT_EXT2_BLOCK Ext2;
- UINT8 FontId;
- UINT32 Length32;
- UINTN StringSize;
- CHAR16 Zero;
+ UINT8 *BlockHdr;
+ EFI_STRING_ID CurrentStringId;
+ UINTN BlockSize;
+ UINTN Index;
+ UINT8 *StringTextPtr;
+ UINTN Offset;
+ HII_FONT_INFO *LocalFont;
+ EFI_FONT_INFO *FontInfo;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+ UINTN FontInfoSize;
+ UINT16 StringCount;
+ UINT16 SkipCount;
+ EFI_HII_FONT_STYLE FontStyle;
+ UINT16 FontSize;
+ UINT8 Length8;
+ EFI_HII_SIBT_EXT2_BLOCK Ext2;
+ UINT8 FontId;
+ UINT32 Length32;
+ UINTN StringSize;
+ CHAR16 Zero;
ASSERT (StringPackage != NULL);
ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);
CurrentStringId = 1;
- StringSize = 0;
+ StringSize = 0;
- if (StringId != (EFI_STRING_ID) (-1) && StringId != 0) {
+ if ((StringId != (EFI_STRING_ID)(-1)) && (StringId != 0)) {
ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
if (StringId > StringPackage->MaxStringId) {
return EFI_NOT_FOUND;
}
} else {
ASSERT (Private != NULL && Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);
- if (StringId == 0 && LastStringId != NULL) {
+ if ((StringId == 0) && (LastStringId != NULL)) {
*LastStringId = StringPackage->MaxStringId;
return EFI_SUCCESS;
}
@@ -315,234 +313,244 @@ FindStringBlock (
Offset = 0;
while (*BlockHdr != EFI_HII_SIBT_END) {
switch (*BlockHdr) {
- case EFI_HII_SIBT_STRING_SCSU:
- Offset = sizeof (EFI_HII_STRING_BLOCK);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- break;
-
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- break;
-
- case EFI_HII_SIBT_STRINGS_SCSU:
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));
- BlockSize += StringTextPtr - BlockHdr;
+ case EFI_HII_SIBT_STRING_SCSU:
+ Offset = sizeof (EFI_HII_STRING_BLOCK);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
+ break;
- for (Index = 0; Index < StringCount; Index++) {
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
- if (CurrentStringId == StringId) {
- ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
- *BlockType = *BlockHdr;
- *StringBlockAddr = BlockHdr;
- *StringTextOffset = StringTextPtr - BlockHdr;
- return EFI_SUCCESS;
- }
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- CopyMem (
- &StringCount,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));
- BlockSize += StringTextPtr - BlockHdr;
+ case EFI_HII_SIBT_STRINGS_SCSU:
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));
+ BlockSize += StringTextPtr - BlockHdr;
+
+ for (Index = 0; Index < StringCount; Index++) {
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);
+ if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
+ *BlockType = *BlockHdr;
+ *StringBlockAddr = BlockHdr;
+ *StringTextOffset = StringTextPtr - BlockHdr;
+ return EFI_SUCCESS;
+ }
- for (Index = 0; Index < StringCount; Index++) {
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);
- if (CurrentStringId == StringId) {
- ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
- *BlockType = *BlockHdr;
- *StringBlockAddr = BlockHdr;
- *StringTextOffset = StringTextPtr - BlockHdr;
- return EFI_SUCCESS;
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
}
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);
- CurrentStringId++;
- }
- break;
- case EFI_HII_SIBT_STRING_UCS2:
- Offset = sizeof (EFI_HII_STRING_BLOCK);
- StringTextPtr = BlockHdr + Offset;
- //
- // Use StringSize to store the size of the specified string, including the NULL
- // terminator.
- //
- GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
- BlockSize += Offset + StringSize;
- CurrentStringId++;
- break;
+ break;
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- //
- // Use StrSize to store the size of the specified string, including the NULL
- // terminator.
- //
- GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
- BlockSize += Offset + StringSize;
- CurrentStringId++;
- break;
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ CopyMem (
+ &StringCount,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));
+ BlockSize += StringTextPtr - BlockHdr;
+
+ for (Index = 0; Index < StringCount; Index++) {
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);
+ if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
+ *BlockType = *BlockHdr;
+ *StringBlockAddr = BlockHdr;
+ *StringTextOffset = StringTextPtr - BlockHdr;
+ return EFI_SUCCESS;
+ }
- case EFI_HII_SIBT_STRINGS_UCS2:
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset;
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- for (Index = 0; Index < StringCount; Index++) {
- GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
- BlockSize += StringSize;
- if (CurrentStringId == StringId) {
- ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
- *BlockType = *BlockHdr;
- *StringBlockAddr = BlockHdr;
- *StringTextOffset = StringTextPtr - BlockHdr;
- return EFI_SUCCESS;
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CurrentStringId++;
}
- StringTextPtr = StringTextPtr + StringSize;
- CurrentStringId++;
- }
- break;
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);
- StringTextPtr = BlockHdr + Offset;
- BlockSize += Offset;
- CopyMem (
- &StringCount,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT16)
- );
- for (Index = 0; Index < StringCount; Index++) {
+ break;
+
+ case EFI_HII_SIBT_STRING_UCS2:
+ Offset = sizeof (EFI_HII_STRING_BLOCK);
+ StringTextPtr = BlockHdr + Offset;
+ //
+ // Use StringSize to store the size of the specified string, including the NULL
+ // terminator.
+ //
GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
- BlockSize += StringSize;
- if (CurrentStringId == StringId) {
- ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
- *BlockType = *BlockHdr;
- *StringBlockAddr = BlockHdr;
- *StringTextOffset = StringTextPtr - BlockHdr;
- return EFI_SUCCESS;
- }
- StringTextPtr = StringTextPtr + StringSize;
+ BlockSize += Offset + StringSize;
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_DUPLICATE:
- if (CurrentStringId == StringId) {
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
//
- // Incoming StringId is an id of a duplicate string block.
- // Update the StringId to be the previous string block.
- // Go back to the header of string block to search.
+ // Use StrSize to store the size of the specified string, including the NULL
+ // terminator.
//
- CopyMem (
- &StringId,
- BlockHdr + sizeof (EFI_HII_STRING_BLOCK),
- sizeof (EFI_STRING_ID)
- );
- ASSERT (StringId != CurrentStringId);
- CurrentStringId = 1;
- BlockSize = 0;
- } else {
- BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);
+ GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
+ BlockSize += Offset + StringSize;
CurrentStringId++;
- }
- break;
+ break;
- case EFI_HII_SIBT_SKIP1:
- SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);
- BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
- break;
+ case EFI_HII_SIBT_STRINGS_UCS2:
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset;
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ for (Index = 0; Index < StringCount; Index++) {
+ GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
+ BlockSize += StringSize;
+ if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
+ *BlockType = *BlockHdr;
+ *StringBlockAddr = BlockHdr;
+ *StringTextOffset = StringTextPtr - BlockHdr;
+ return EFI_SUCCESS;
+ }
- case EFI_HII_SIBT_SKIP2:
- CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);
- BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
- break;
+ StringTextPtr = StringTextPtr + StringSize;
+ CurrentStringId++;
+ }
- case EFI_HII_SIBT_EXT1:
- CopyMem (
- &Length8,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT8)
- );
- BlockSize += Length8;
- break;
+ break;
- case EFI_HII_SIBT_EXT2:
- CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
- if (Ext2.BlockType2 == EFI_HII_SIBT_FONT && StringId == (EFI_STRING_ID) (-1)) {
- //
- // Find the relationship between global font info and the font info of
- // this EFI_HII_SIBT_FONT block then backup its information in local package.
- //
- BlockHdr += sizeof (EFI_HII_SIBT_EXT2_BLOCK);
- CopyMem (&FontId, BlockHdr, sizeof (UINT8));
- BlockHdr ++;
- CopyMem (&FontSize, BlockHdr, sizeof (UINT16));
- BlockHdr += sizeof (UINT16);
- CopyMem (&FontStyle, BlockHdr, sizeof (EFI_HII_FONT_STYLE));
- BlockHdr += sizeof (EFI_HII_FONT_STYLE);
- GetUnicodeStringTextOrSize (NULL, BlockHdr, &StringSize);
-
- FontInfoSize = sizeof (EFI_FONT_INFO) - sizeof (CHAR16) + StringSize;
- FontInfo = (EFI_FONT_INFO *) AllocateZeroPool (FontInfoSize);
- if (FontInfo == NULL) {
- return EFI_OUT_OF_RESOURCES;
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);
+ StringTextPtr = BlockHdr + Offset;
+ BlockSize += Offset;
+ CopyMem (
+ &StringCount,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT16)
+ );
+ for (Index = 0; Index < StringCount; Index++) {
+ GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
+ BlockSize += StringSize;
+ if (CurrentStringId == StringId) {
+ ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
+ *BlockType = *BlockHdr;
+ *StringBlockAddr = BlockHdr;
+ *StringTextOffset = StringTextPtr - BlockHdr;
+ return EFI_SUCCESS;
+ }
+
+ StringTextPtr = StringTextPtr + StringSize;
+ CurrentStringId++;
}
- FontInfo->FontStyle = FontStyle;
- FontInfo->FontSize = FontSize;
- CopyMem (FontInfo->FontName, BlockHdr, StringSize);
- //
- // If find the corresponding global font info, save the relationship.
- // Otherwise ignore this EFI_HII_SIBT_FONT block.
- //
- if (IsFontInfoExisted (Private, FontInfo, NULL, NULL, &GlobalFont)) {
- ReferFontInfoLocally (Private, StringPackage, FontId, TRUE, GlobalFont, &LocalFont);
+ break;
+
+ case EFI_HII_SIBT_DUPLICATE:
+ if (CurrentStringId == StringId) {
+ //
+ // Incoming StringId is an id of a duplicate string block.
+ // Update the StringId to be the previous string block.
+ // Go back to the header of string block to search.
+ //
+ CopyMem (
+ &StringId,
+ BlockHdr + sizeof (EFI_HII_STRING_BLOCK),
+ sizeof (EFI_STRING_ID)
+ );
+ ASSERT (StringId != CurrentStringId);
+ CurrentStringId = 1;
+ BlockSize = 0;
+ } else {
+ BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);
+ CurrentStringId++;
}
- //
- // Since string package tool set FontId initially to 0 and increases it
- // progressively by one, StringPackage->FondId always represents an unique
- // and available FontId.
- //
- StringPackage->FontId++;
+ break;
- FreePool (FontInfo);
- }
+ case EFI_HII_SIBT_SKIP1:
+ SkipCount = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
+ break;
- BlockSize += Ext2.Length;
+ case EFI_HII_SIBT_SKIP2:
+ CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
+ break;
- break;
+ case EFI_HII_SIBT_EXT1:
+ CopyMem (
+ &Length8,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT8)
+ );
+ BlockSize += Length8;
+ break;
- case EFI_HII_SIBT_EXT4:
- CopyMem (
- &Length32,
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
- sizeof (UINT32)
- );
+ case EFI_HII_SIBT_EXT2:
+ CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
+ if ((Ext2.BlockType2 == EFI_HII_SIBT_FONT) && (StringId == (EFI_STRING_ID)(-1))) {
+ //
+ // Find the relationship between global font info and the font info of
+ // this EFI_HII_SIBT_FONT block then backup its information in local package.
+ //
+ BlockHdr += sizeof (EFI_HII_SIBT_EXT2_BLOCK);
+ CopyMem (&FontId, BlockHdr, sizeof (UINT8));
+ BlockHdr++;
+ CopyMem (&FontSize, BlockHdr, sizeof (UINT16));
+ BlockHdr += sizeof (UINT16);
+ CopyMem (&FontStyle, BlockHdr, sizeof (EFI_HII_FONT_STYLE));
+ BlockHdr += sizeof (EFI_HII_FONT_STYLE);
+ GetUnicodeStringTextOrSize (NULL, BlockHdr, &StringSize);
+
+ FontInfoSize = sizeof (EFI_FONT_INFO) - sizeof (CHAR16) + StringSize;
+ FontInfo = (EFI_FONT_INFO *)AllocateZeroPool (FontInfoSize);
+ if (FontInfo == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- BlockSize += Length32;
- break;
+ FontInfo->FontStyle = FontStyle;
+ FontInfo->FontSize = FontSize;
+ CopyMem (FontInfo->FontName, BlockHdr, StringSize);
- default:
- break;
+ //
+ // If find the corresponding global font info, save the relationship.
+ // Otherwise ignore this EFI_HII_SIBT_FONT block.
+ //
+ if (IsFontInfoExisted (Private, FontInfo, NULL, NULL, &GlobalFont)) {
+ ReferFontInfoLocally (Private, StringPackage, FontId, TRUE, GlobalFont, &LocalFont);
+ }
+
+ //
+ // Since string package tool set FontId initially to 0 and increases it
+ // progressively by one, StringPackage->FondId always represents an unique
+ // and available FontId.
+ //
+ StringPackage->FontId++;
+
+ FreePool (FontInfo);
+ }
+
+ BlockSize += Ext2.Length;
+
+ break;
+
+ case EFI_HII_SIBT_EXT4:
+ CopyMem (
+ &Length32,
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),
+ sizeof (UINT32)
+ );
+
+ BlockSize += Length32;
+ break;
+
+ default:
+ break;
}
- if (StringId > 0 && StringId != (EFI_STRING_ID)(-1)) {
+ if ((StringId > 0) && (StringId != (EFI_STRING_ID)(-1))) {
ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);
*BlockType = *BlockHdr;
*StringBlockAddr = BlockHdr;
@@ -552,7 +560,7 @@ FindStringBlock (
//
// if only one skip item, return EFI_NOT_FOUND.
//
- if(*BlockType == EFI_HII_SIBT_SKIP2 || *BlockType == EFI_HII_SIBT_SKIP1) {
+ if ((*BlockType == EFI_HII_SIBT_SKIP2) || (*BlockType == EFI_HII_SIBT_SKIP1)) {
return EFI_NOT_FOUND;
} else {
return EFI_SUCCESS;
@@ -563,24 +571,24 @@ FindStringBlock (
return EFI_NOT_FOUND;
}
}
- BlockHdr = StringPackage->StringBlock + BlockSize;
+
+ BlockHdr = StringPackage->StringBlock + BlockSize;
if (StartStringId != NULL) {
- *StartStringId = CurrentStringId;
+ *StartStringId = CurrentStringId;
}
}
//
// Get last string ID
//
- if (StringId == (EFI_STRING_ID) (-1) && LastStringId != NULL) {
- *LastStringId = (EFI_STRING_ID) (CurrentStringId - 1);
+ if ((StringId == (EFI_STRING_ID)(-1)) && (LastStringId != NULL)) {
+ *LastStringId = (EFI_STRING_ID)(CurrentStringId - 1);
return EFI_SUCCESS;
}
return EFI_NOT_FOUND;
}
-
/**
Parse all string blocks to get a string specified by StringId.
@@ -608,20 +616,20 @@ FindStringBlock (
**/
EFI_STATUS
GetStringWorker (
- IN HII_DATABASE_PRIVATE_DATA *Private,
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN EFI_STRING_ID StringId,
- OUT EFI_STRING String,
- IN OUT UINTN *StringSize OPTIONAL,
- OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
+ IN HII_DATABASE_PRIVATE_DATA *Private,
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN EFI_STRING_ID StringId,
+ OUT EFI_STRING String,
+ IN OUT UINTN *StringSize OPTIONAL,
+ OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
)
{
- UINT8 *StringTextPtr;
- UINT8 BlockType;
- UINT8 *StringBlockAddr;
- UINTN StringTextOffset;
- EFI_STATUS Status;
- UINT8 FontId;
+ UINT8 *StringTextPtr;
+ UINT8 BlockType;
+ UINT8 *StringBlockAddr;
+ UINTN StringTextOffset;
+ EFI_STATUS Status;
+ UINT8 FontId;
ASSERT (StringPackage != NULL);
ASSERT (Private != NULL && Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);
@@ -655,21 +663,22 @@ GetStringWorker (
//
StringTextPtr = StringBlockAddr + StringTextOffset;
switch (BlockType) {
- case EFI_HII_SIBT_STRING_SCSU:
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- case EFI_HII_SIBT_STRINGS_SCSU:
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- Status = ConvertToUnicodeText (String, (CHAR8 *) StringTextPtr, StringSize);
- break;
- case EFI_HII_SIBT_STRING_UCS2:
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- case EFI_HII_SIBT_STRINGS_UCS2:
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- Status = GetUnicodeStringTextOrSize (String, StringTextPtr, StringSize);
- break;
- default:
- return EFI_NOT_FOUND;
+ case EFI_HII_SIBT_STRING_SCSU:
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ case EFI_HII_SIBT_STRINGS_SCSU:
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ Status = ConvertToUnicodeText (String, (CHAR8 *)StringTextPtr, StringSize);
+ break;
+ case EFI_HII_SIBT_STRING_UCS2:
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ case EFI_HII_SIBT_STRINGS_UCS2:
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ Status = GetUnicodeStringTextOrSize (String, StringTextPtr, StringSize);
+ break;
+ default:
+ return EFI_NOT_FOUND;
}
+
if (EFI_ERROR (Status)) {
return Status;
}
@@ -680,18 +689,19 @@ GetStringWorker (
//
if (StringFontInfo != NULL) {
switch (BlockType) {
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- FontId = *(StringBlockAddr + sizeof (EFI_HII_STRING_BLOCK));
- break;
- default:
- FontId = 0;
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ FontId = *(StringBlockAddr + sizeof (EFI_HII_STRING_BLOCK));
+ break;
+ default:
+ FontId = 0;
}
+
Status = GetStringFontInfo (StringPackage, FontId, StringFontInfo);
if (Status == EFI_NOT_FOUND) {
- *StringFontInfo = NULL;
+ *StringFontInfo = NULL;
}
}
@@ -719,23 +729,23 @@ GetStringWorker (
**/
EFI_STATUS
InsertLackStringBlock (
- IN OUT HII_STRING_PACKAGE_INSTANCE *StringPackage,
- IN EFI_STRING_ID StartStringId,
- IN EFI_STRING_ID StringId,
- IN OUT UINT8 *BlockType,
- IN OUT UINT8 **StringBlockAddr,
- IN BOOLEAN FontBlock
+ IN OUT HII_STRING_PACKAGE_INSTANCE *StringPackage,
+ IN EFI_STRING_ID StartStringId,
+ IN EFI_STRING_ID StringId,
+ IN OUT UINT8 *BlockType,
+ IN OUT UINT8 **StringBlockAddr,
+ IN BOOLEAN FontBlock
)
{
- UINT8 *BlockPtr;
- UINT8 *StringBlock;
- UINT32 SkipLen;
- UINT32 OldBlockSize;
- UINT32 NewBlockSize;
- UINT32 FrontSkipNum;
- UINT32 NewUCSBlockLen;
- UINT8 *OldStringAddr;
- UINT32 IdCount;
+ UINT8 *BlockPtr;
+ UINT8 *StringBlock;
+ UINT32 SkipLen;
+ UINT32 OldBlockSize;
+ UINT32 NewBlockSize;
+ UINT32 FrontSkipNum;
+ UINT32 NewUCSBlockLen;
+ UINT8 *OldStringAddr;
+ UINT32 IdCount;
FrontSkipNum = 0;
SkipLen = 0;
@@ -747,10 +757,10 @@ InsertLackStringBlock (
//
if (*BlockType == EFI_HII_SIBT_SKIP1) {
SkipLen = sizeof (EFI_HII_SIBT_SKIP1_BLOCK);
- IdCount = *(UINT8*)(OldStringAddr + sizeof (EFI_HII_STRING_BLOCK));
+ IdCount = *(UINT8 *)(OldStringAddr + sizeof (EFI_HII_STRING_BLOCK));
} else {
SkipLen = sizeof (EFI_HII_SIBT_SKIP2_BLOCK);
- IdCount = *(UINT16*)(OldStringAddr + sizeof (EFI_HII_STRING_BLOCK));
+ IdCount = *(UINT16 *)(OldStringAddr + sizeof (EFI_HII_STRING_BLOCK));
}
//
@@ -773,7 +783,7 @@ InsertLackStringBlock (
} else {
NewBlockSize = OldBlockSize + NewUCSBlockLen - SkipLen;
}
- } else if (StartStringId + IdCount - 1 == StringId){
+ } else if (StartStringId + IdCount - 1 == StringId) {
//
// Skip block + New block
//
@@ -787,7 +797,7 @@ InsertLackStringBlock (
FrontSkipNum = StringId - StartStringId;
}
- StringBlock = (UINT8 *) AllocateZeroPool (NewBlockSize);
+ StringBlock = (UINT8 *)AllocateZeroPool (NewBlockSize);
if (StringBlock == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -801,10 +811,11 @@ InsertLackStringBlock (
if (FrontSkipNum > 0) {
*BlockPtr = *BlockType;
if (*BlockType == EFI_HII_SIBT_SKIP1) {
- *(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT8) FrontSkipNum;
+ *(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT8)FrontSkipNum;
} else {
- *(UINT16 *)(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT16) FrontSkipNum;
+ *(UINT16 *)(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT16)FrontSkipNum;
}
+
BlockPtr += SkipLen;
}
@@ -817,15 +828,17 @@ InsertLackStringBlock (
} else {
*BlockPtr = EFI_HII_SIBT_STRING_UCS2;
}
+
BlockPtr += NewUCSBlockLen;
if (IdCount > FrontSkipNum + 1) {
*BlockPtr = *BlockType;
if (*BlockType == EFI_HII_SIBT_SKIP1) {
- *(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT8) (IdCount - FrontSkipNum - 1);
+ *(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT8)(IdCount - FrontSkipNum - 1);
} else {
- *(UINT16 *)(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT16) (IdCount - FrontSkipNum - 1);
+ *(UINT16 *)(BlockPtr + sizeof (EFI_HII_STRING_BLOCK)) = (UINT16)(IdCount - FrontSkipNum - 1);
}
+
BlockPtr += SkipLen;
}
@@ -839,8 +852,9 @@ InsertLackStringBlock (
} else {
*BlockType = EFI_HII_SIBT_STRING_UCS2;
}
+
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = StringBlock;
+ StringPackage->StringBlock = StringBlock;
StringPackage->StringPkgHdr->Header.Length += NewBlockSize - OldBlockSize;
return EFI_SUCCESS;
@@ -877,22 +891,22 @@ SetStringWorker (
IN EFI_FONT_INFO *StringFontInfo OPTIONAL
)
{
- UINT8 *StringTextPtr;
- UINT8 BlockType;
- UINT8 *StringBlockAddr;
- UINTN StringTextOffset;
- EFI_STATUS Status;
- UINT8 *Block;
- UINT8 *BlockPtr;
- UINTN BlockSize;
- UINTN OldBlockSize;
- HII_FONT_INFO *LocalFont;
- HII_GLOBAL_FONT_INFO *GlobalFont;
- BOOLEAN Referred;
- EFI_HII_SIBT_EXT2_BLOCK Ext2;
- UINTN StringSize;
- UINTN TmpSize;
- EFI_STRING_ID StartStringId;
+ UINT8 *StringTextPtr;
+ UINT8 BlockType;
+ UINT8 *StringBlockAddr;
+ UINTN StringTextOffset;
+ EFI_STATUS Status;
+ UINT8 *Block;
+ UINT8 *BlockPtr;
+ UINTN BlockSize;
+ UINTN OldBlockSize;
+ HII_FONT_INFO *LocalFont;
+ HII_GLOBAL_FONT_INFO *GlobalFont;
+ BOOLEAN Referred;
+ EFI_HII_SIBT_EXT2_BLOCK Ext2;
+ UINTN StringSize;
+ UINTN TmpSize;
+ EFI_STRING_ID StartStringId;
StartStringId = 0;
StringSize = 0;
@@ -911,17 +925,19 @@ SetStringWorker (
NULL,
&StartStringId
);
- if (EFI_ERROR (Status) && (BlockType == EFI_HII_SIBT_SKIP1 || BlockType == EFI_HII_SIBT_SKIP2)) {
- Status = InsertLackStringBlock(StringPackage,
- StartStringId,
- StringId,
- &BlockType,
- &StringBlockAddr,
- (BOOLEAN)(StringFontInfo != NULL)
- );
+ if (EFI_ERROR (Status) && ((BlockType == EFI_HII_SIBT_SKIP1) || (BlockType == EFI_HII_SIBT_SKIP2))) {
+ Status = InsertLackStringBlock (
+ StringPackage,
+ StartStringId,
+ StringId,
+ &BlockType,
+ &StringBlockAddr,
+ (BOOLEAN)(StringFontInfo != NULL)
+ );
if (EFI_ERROR (Status)) {
return Status;
}
+
if (StringFontInfo != NULL) {
StringTextOffset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);
} else {
@@ -952,23 +968,24 @@ SetStringWorker (
StringPackage->FontId++;
}
}
+
//
// Update the FontId of the specified string block to input font info.
//
switch (BlockType) {
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- *(StringBlockAddr + sizeof (EFI_HII_STRING_BLOCK)) = LocalFont->FontId;
- break;
- default:
- //
- // When modify the font info of these blocks, the block type should be updated
- // to contain font info thus the whole structure should be revised.
- // It is recommended to use tool to modify the block type not in the code.
- //
- return EFI_UNSUPPORTED;
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ *(StringBlockAddr + sizeof (EFI_HII_STRING_BLOCK)) = LocalFont->FontId;
+ break;
+ default:
+ //
+ // When modify the font info of these blocks, the block type should be updated
+ // to contain font info thus the whole structure should be revised.
+ // It is recommended to use tool to modify the block type not in the code.
+ //
+ return EFI_UNSUPPORTED;
}
}
@@ -979,75 +996,75 @@ SetStringWorker (
//
StringTextPtr = StringBlockAddr + StringTextOffset;
switch (BlockType) {
- case EFI_HII_SIBT_STRING_SCSU:
- case EFI_HII_SIBT_STRING_SCSU_FONT:
- case EFI_HII_SIBT_STRINGS_SCSU:
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:
- BlockSize = OldBlockSize + StrLen (String);
- BlockSize -= AsciiStrSize ((CHAR8 *) StringTextPtr);
- Block = AllocateZeroPool (BlockSize);
- if (Block == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
+ case EFI_HII_SIBT_STRING_SCSU:
+ case EFI_HII_SIBT_STRING_SCSU_FONT:
+ case EFI_HII_SIBT_STRINGS_SCSU:
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:
+ BlockSize = OldBlockSize + StrLen (String);
+ BlockSize -= AsciiStrSize ((CHAR8 *)StringTextPtr);
+ Block = AllocateZeroPool (BlockSize);
+ if (Block == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- CopyMem (Block, StringPackage->StringBlock, StringTextPtr - StringPackage->StringBlock);
- BlockPtr = Block + (StringTextPtr - StringPackage->StringBlock);
+ CopyMem (Block, StringPackage->StringBlock, StringTextPtr - StringPackage->StringBlock);
+ BlockPtr = Block + (StringTextPtr - StringPackage->StringBlock);
- while (*String != 0) {
- *BlockPtr++ = (CHAR8) *String++;
- }
- *BlockPtr++ = 0;
+ while (*String != 0) {
+ *BlockPtr++ = (CHAR8)*String++;
+ }
+ *BlockPtr++ = 0;
- TmpSize = OldBlockSize - (StringTextPtr - StringPackage->StringBlock) - AsciiStrSize ((CHAR8 *) StringTextPtr);
- CopyMem (
- BlockPtr,
- StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr),
- TmpSize
- );
+ TmpSize = OldBlockSize - (StringTextPtr - StringPackage->StringBlock) - AsciiStrSize ((CHAR8 *)StringTextPtr);
+ CopyMem (
+ BlockPtr,
+ StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr),
+ TmpSize
+ );
- ZeroMem (StringPackage->StringBlock, OldBlockSize);
- FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = Block;
- StringPackage->StringPkgHdr->Header.Length += (UINT32) (BlockSize - OldBlockSize);
- break;
-
- case EFI_HII_SIBT_STRING_UCS2:
- case EFI_HII_SIBT_STRING_UCS2_FONT:
- case EFI_HII_SIBT_STRINGS_UCS2:
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:
- //
- // Use StrSize to store the size of the specified string, including the NULL
- // terminator.
- //
- GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
+ ZeroMem (StringPackage->StringBlock, OldBlockSize);
+ FreePool (StringPackage->StringBlock);
+ StringPackage->StringBlock = Block;
+ StringPackage->StringPkgHdr->Header.Length += (UINT32)(BlockSize - OldBlockSize);
+ break;
- BlockSize = OldBlockSize + StrSize (String) - StringSize;
- Block = AllocateZeroPool (BlockSize);
- if (Block == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
+ case EFI_HII_SIBT_STRING_UCS2:
+ case EFI_HII_SIBT_STRING_UCS2_FONT:
+ case EFI_HII_SIBT_STRINGS_UCS2:
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:
+ //
+ // Use StrSize to store the size of the specified string, including the NULL
+ // terminator.
+ //
+ GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);
- CopyMem (Block, StringPackage->StringBlock, StringTextPtr - StringPackage->StringBlock);
- BlockPtr = Block + (StringTextPtr - StringPackage->StringBlock);
+ BlockSize = OldBlockSize + StrSize (String) - StringSize;
+ Block = AllocateZeroPool (BlockSize);
+ if (Block == NULL) {
+ return EFI_OUT_OF_RESOURCES;
+ }
- CopyMem (BlockPtr, String, StrSize (String));
- BlockPtr += StrSize (String);
+ CopyMem (Block, StringPackage->StringBlock, StringTextPtr - StringPackage->StringBlock);
+ BlockPtr = Block + (StringTextPtr - StringPackage->StringBlock);
- CopyMem (
- BlockPtr,
- StringTextPtr + StringSize,
- OldBlockSize - (StringTextPtr - StringPackage->StringBlock) - StringSize
- );
+ CopyMem (BlockPtr, String, StrSize (String));
+ BlockPtr += StrSize (String);
- ZeroMem (StringPackage->StringBlock, OldBlockSize);
- FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = Block;
- StringPackage->StringPkgHdr->Header.Length += (UINT32) (BlockSize - OldBlockSize);
- break;
+ CopyMem (
+ BlockPtr,
+ StringTextPtr + StringSize,
+ OldBlockSize - (StringTextPtr - StringPackage->StringBlock) - StringSize
+ );
- default:
- return EFI_NOT_FOUND;
+ ZeroMem (StringPackage->StringBlock, OldBlockSize);
+ FreePool (StringPackage->StringBlock);
+ StringPackage->StringBlock = Block;
+ StringPackage->StringPkgHdr->Header.Length += (UINT32)(BlockSize - OldBlockSize);
+ break;
+
+ default:
+ return EFI_NOT_FOUND;
}
//
@@ -1057,28 +1074,28 @@ SetStringWorker (
// This new block does not impact on the value of StringId.
//
//
- if (StringFontInfo == NULL || Referred) {
+ if ((StringFontInfo == NULL) || Referred) {
return EFI_SUCCESS;
}
OldBlockSize = StringPackage->StringPkgHdr->Header.Length - StringPackage->StringPkgHdr->HdrSize;
- BlockSize = OldBlockSize + sizeof (EFI_HII_SIBT_FONT_BLOCK) - sizeof (CHAR16) +
- StrSize (GlobalFont->FontInfo->FontName);
+ BlockSize = OldBlockSize + sizeof (EFI_HII_SIBT_FONT_BLOCK) - sizeof (CHAR16) +
+ StrSize (GlobalFont->FontInfo->FontName);
Block = AllocateZeroPool (BlockSize);
if (Block == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- BlockPtr = Block;
+ BlockPtr = Block;
Ext2.Header.BlockType = EFI_HII_SIBT_EXT2;
Ext2.BlockType2 = EFI_HII_SIBT_FONT;
- Ext2.Length = (UINT16) (BlockSize - OldBlockSize);
+ Ext2.Length = (UINT16)(BlockSize - OldBlockSize);
CopyMem (BlockPtr, &Ext2, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
BlockPtr += sizeof (EFI_HII_SIBT_EXT2_BLOCK);
*BlockPtr = LocalFont->FontId;
- BlockPtr ++;
+ BlockPtr++;
CopyMem (BlockPtr, &GlobalFont->FontInfo->FontSize, sizeof (UINT16));
BlockPtr += sizeof (UINT16);
CopyMem (BlockPtr, &GlobalFont->FontInfo->FontStyle, sizeof (UINT32));
@@ -1094,14 +1111,12 @@ SetStringWorker (
ZeroMem (StringPackage->StringBlock, OldBlockSize);
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = Block;
+ StringPackage->StringBlock = Block;
StringPackage->StringPkgHdr->Header.Length += Ext2.Length;
return EFI_SUCCESS;
-
}
-
/**
This function adds the string String to the group of strings owned by PackageList, with the
specified font information StringFontInfo and returns a new string id.
@@ -1139,13 +1154,13 @@ SetStringWorker (
EFI_STATUS
EFIAPI
HiiNewString (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- OUT EFI_STRING_ID *StringId,
- IN CONST CHAR8 *Language,
- IN CONST CHAR16 *LanguageName OPTIONAL,
- IN CONST EFI_STRING String,
- IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ OUT EFI_STRING_ID *StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST CHAR16 *LanguageName OPTIONAL,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
)
{
EFI_STATUS Status;
@@ -1171,8 +1186,7 @@ HiiNewString (
HII_STRING_PACKAGE_INSTANCE *MatchStringPackage;
BOOLEAN NewStringPackageCreated;
-
- if (This == NULL || String == NULL || StringId == NULL || Language == NULL || PackageList == NULL) {
+ if ((This == NULL) || (String == NULL) || (StringId == NULL) || (Language == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1187,7 +1201,7 @@ HiiNewString (
// If StringFontInfo specify a paritcular font, it should exist in current database.
//
if (StringFontInfo != NULL) {
- if (!IsFontInfoExisted (Private, (EFI_FONT_INFO *) StringFontInfo, NULL, NULL, &GlobalFont)) {
+ if (!IsFontInfoExisted (Private, (EFI_FONT_INFO *)StringFontInfo, NULL, NULL, &GlobalFont)) {
return EFI_INVALID_PARAMETER;
}
}
@@ -1203,22 +1217,24 @@ HiiNewString (
break;
}
}
+
if (PackageListNode == NULL) {
return EFI_NOT_FOUND;
}
EfiAcquireLock (&mHiiDatabaseLock);
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
NewStringPackageCreated = FALSE;
- NewStringId = 0;
- NextStringId = 0;
- StringPackage = NULL;
- MatchStringPackage = NULL;
+ NewStringId = 0;
+ NextStringId = 0;
+ StringPackage = NULL;
+ MatchStringPackage = NULL;
for (Link = PackageListNode->StringPkgHdr.ForwardLink;
Link != &PackageListNode->StringPkgHdr;
Link = Link->ForwardLink
- ) {
+ )
+ {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
//
// Create a string block and corresponding font block if exists, then append them
@@ -1237,32 +1253,35 @@ HiiNewString (
if (EFI_ERROR (Status)) {
goto Done;
}
+
//
// Make sure that new StringId is same in all String Packages for the different language.
//
- if (NewStringId != 0 && NewStringId != NextStringId) {
+ if ((NewStringId != 0) && (NewStringId != NextStringId)) {
ASSERT (FALSE);
Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
NewStringId = NextStringId;
//
// Get the matched string package with language.
//
- if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *) Language)) {
+ if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *)Language)) {
MatchStringPackage = StringPackage;
} else {
OldBlockSize = StringPackage->StringPkgHdr->Header.Length - StringPackage->StringPkgHdr->HdrSize;
//
// Create a blank EFI_HII_SIBT_STRING_UCS2_BLOCK to reserve new string ID.
//
- Ucs2BlockSize = (UINT32) sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK);
+ Ucs2BlockSize = (UINT32)sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK);
- StringBlock = (UINT8 *) AllocateZeroPool (OldBlockSize + Ucs2BlockSize);
+ StringBlock = (UINT8 *)AllocateZeroPool (OldBlockSize + Ucs2BlockSize);
if (StringBlock == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
//
// Copy original string blocks, except the EFI_HII_SIBT_END.
//
@@ -1272,7 +1291,7 @@ HiiNewString (
//
BlockPtr = StringBlock + OldBlockSize - sizeof (EFI_HII_SIBT_END_BLOCK);
*BlockPtr = EFI_HII_SIBT_STRING_UCS2;
- BlockPtr += sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK);
+ BlockPtr += sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK);
//
// Append a EFI_HII_SIBT_END block to the end.
@@ -1280,11 +1299,12 @@ HiiNewString (
*BlockPtr = EFI_HII_SIBT_END;
ZeroMem (StringPackage->StringBlock, OldBlockSize);
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = StringBlock;
- StringPackage->StringPkgHdr->Header.Length += Ucs2BlockSize;
+ StringPackage->StringBlock = StringBlock;
+ StringPackage->StringPkgHdr->Header.Length += Ucs2BlockSize;
PackageListNode->PackageListHdr.PackageLength += Ucs2BlockSize;
}
}
+
if (NewStringId == 0) {
//
// No string package is found.
@@ -1295,7 +1315,7 @@ HiiNewString (
//
// Set new StringId
//
- *StringId = (EFI_STRING_ID) (NewStringId + 1);
+ *StringId = (EFI_STRING_ID)(NewStringId + 1);
}
if (MatchStringPackage != NULL) {
@@ -1323,29 +1343,30 @@ HiiNewString (
//
// Fill in the string package header
//
- HeaderSize = (UINT32) (AsciiStrSize ((CHAR8 *) Language) - 1 + sizeof (EFI_HII_STRING_PACKAGE_HDR));
+ HeaderSize = (UINT32)(AsciiStrSize ((CHAR8 *)Language) - 1 + sizeof (EFI_HII_STRING_PACKAGE_HDR));
StringPackage->StringPkgHdr = AllocateZeroPool (HeaderSize);
if (StringPackage->StringPkgHdr == NULL) {
FreePool (StringPackage);
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
StringPackage->StringPkgHdr->Header.Type = EFI_HII_PACKAGE_STRINGS;
StringPackage->StringPkgHdr->HdrSize = HeaderSize;
StringPackage->StringPkgHdr->StringInfoOffset = HeaderSize;
CopyMem (StringPackage->StringPkgHdr->LanguageWindow, mLanguageWindow, 16 * sizeof (CHAR16));
- StringPackage->StringPkgHdr->LanguageName = 1;
- AsciiStrCpyS (StringPackage->StringPkgHdr->Language, (HeaderSize - OFFSET_OF(EFI_HII_STRING_PACKAGE_HDR,Language)) / sizeof (CHAR8), (CHAR8 *) Language);
+ StringPackage->StringPkgHdr->LanguageName = 1;
+ AsciiStrCpyS (StringPackage->StringPkgHdr->Language, (HeaderSize - OFFSET_OF (EFI_HII_STRING_PACKAGE_HDR, Language)) / sizeof (CHAR8), (CHAR8 *)Language);
//
// Calculate the length of the string blocks, including string block to record
// printable language full name and EFI_HII_SIBT_END_BLOCK.
//
- Ucs2BlockSize = (UINT32) (StrSize ((CHAR16 *) LanguageName) +
- (*StringId - 1) * sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK) - sizeof (CHAR16));
+ Ucs2BlockSize = (UINT32)(StrSize ((CHAR16 *)LanguageName) +
+ (*StringId - 1) * sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK) - sizeof (CHAR16));
- BlockSize = Ucs2BlockSize + sizeof (EFI_HII_SIBT_END_BLOCK);
- StringPackage->StringBlock = (UINT8 *) AllocateZeroPool (BlockSize);
+ BlockSize = Ucs2BlockSize + sizeof (EFI_HII_SIBT_END_BLOCK);
+ StringPackage->StringBlock = (UINT8 *)AllocateZeroPool (BlockSize);
if (StringPackage->StringBlock == NULL) {
FreePool (StringPackage->StringPkgHdr);
FreePool (StringPackage);
@@ -1358,13 +1379,14 @@ HiiNewString (
//
BlockPtr = StringPackage->StringBlock;
*BlockPtr = EFI_HII_SIBT_STRING_UCS2;
- BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
- CopyMem (BlockPtr, (EFI_STRING) LanguageName, StrSize ((EFI_STRING) LanguageName));
- BlockPtr += StrSize ((EFI_STRING) LanguageName);
- for (Index = 2; Index <= *StringId - 1; Index ++) {
+ BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
+ CopyMem (BlockPtr, (EFI_STRING)LanguageName, StrSize ((EFI_STRING)LanguageName));
+ BlockPtr += StrSize ((EFI_STRING)LanguageName);
+ for (Index = 2; Index <= *StringId - 1; Index++) {
*BlockPtr = EFI_HII_SIBT_STRING_UCS2;
BlockPtr += sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK);
}
+
//
// Insert the end block
//
@@ -1373,7 +1395,7 @@ HiiNewString (
//
// Append this string package node to string package array in this package list.
//
- StringPackage->StringPkgHdr->Header.Length = HeaderSize + BlockSize;
+ StringPackage->StringPkgHdr->Header.Length = HeaderSize + BlockSize;
PackageListNode->PackageListHdr.PackageLength += StringPackage->StringPkgHdr->Header.Length;
InsertTailList (&PackageListNode->StringPkgHdr, &StringPackage->StringEntry);
NewStringPackageCreated = TRUE;
@@ -1385,14 +1407,15 @@ HiiNewString (
//
// Create a EFI_HII_SIBT_STRING_UCS2_BLOCK since font info is not specified.
//
- Ucs2BlockSize = (UINT32) (StrSize (String) + sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK)
- - sizeof (CHAR16));
+ Ucs2BlockSize = (UINT32)(StrSize (String) + sizeof (EFI_HII_SIBT_STRING_UCS2_BLOCK)
+ - sizeof (CHAR16));
- StringBlock = (UINT8 *) AllocateZeroPool (OldBlockSize + Ucs2BlockSize);
+ StringBlock = (UINT8 *)AllocateZeroPool (OldBlockSize + Ucs2BlockSize);
if (StringBlock == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
//
// Copy original string blocks, except the EFI_HII_SIBT_END.
//
@@ -1402,9 +1425,9 @@ HiiNewString (
//
BlockPtr = StringBlock + OldBlockSize - sizeof (EFI_HII_SIBT_END_BLOCK);
*BlockPtr = EFI_HII_SIBT_STRING_UCS2;
- BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
- CopyMem (BlockPtr, (EFI_STRING) String, StrSize ((EFI_STRING) String));
- BlockPtr += StrSize ((EFI_STRING) String);
+ BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
+ CopyMem (BlockPtr, (EFI_STRING)String, StrSize ((EFI_STRING)String));
+ BlockPtr += StrSize ((EFI_STRING)String);
//
// Append a EFI_HII_SIBT_END block to the end.
@@ -1412,10 +1435,9 @@ HiiNewString (
*BlockPtr = EFI_HII_SIBT_END;
ZeroMem (StringPackage->StringBlock, OldBlockSize);
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = StringBlock;
- StringPackage->StringPkgHdr->Header.Length += Ucs2BlockSize;
+ StringPackage->StringBlock = StringBlock;
+ StringPackage->StringPkgHdr->Header.Length += Ucs2BlockSize;
PackageListNode->PackageListHdr.PackageLength += Ucs2BlockSize;
-
} else {
//
// StringFontInfo is specified here. If there is a EFI_HII_SIBT_FONT_BLOCK
@@ -1423,17 +1445,18 @@ HiiNewString (
// only. Otherwise create a EFI_HII_SIBT_FONT block with a EFI_HII_SIBT_STRING
// _UCS2_FONT block.
//
- Ucs2FontBlockSize = (UINT32) (StrSize (String) + sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) -
- sizeof (CHAR16));
+ Ucs2FontBlockSize = (UINT32)(StrSize (String) + sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) -
+ sizeof (CHAR16));
if (ReferFontInfoLocally (Private, StringPackage, StringPackage->FontId, FALSE, GlobalFont, &LocalFont)) {
//
// Create a EFI_HII_SIBT_STRING_UCS2_FONT block only.
//
- StringBlock = (UINT8 *) AllocateZeroPool (OldBlockSize + Ucs2FontBlockSize);
+ StringBlock = (UINT8 *)AllocateZeroPool (OldBlockSize + Ucs2FontBlockSize);
if (StringBlock == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
//
// Copy original string blocks, except the EFI_HII_SIBT_END.
//
@@ -1443,11 +1466,11 @@ HiiNewString (
//
BlockPtr = StringBlock + OldBlockSize - sizeof (EFI_HII_SIBT_END_BLOCK);
*BlockPtr = EFI_HII_SIBT_STRING_UCS2_FONT;
- BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
+ BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
*BlockPtr = LocalFont->FontId;
- BlockPtr ++;
- CopyMem (BlockPtr, (EFI_STRING) String, StrSize ((EFI_STRING) String));
- BlockPtr += StrSize ((EFI_STRING) String);
+ BlockPtr++;
+ CopyMem (BlockPtr, (EFI_STRING)String, StrSize ((EFI_STRING)String));
+ BlockPtr += StrSize ((EFI_STRING)String);
//
// Append a EFI_HII_SIBT_END block to the end.
@@ -1455,23 +1478,23 @@ HiiNewString (
*BlockPtr = EFI_HII_SIBT_END;
ZeroMem (StringPackage->StringBlock, OldBlockSize);
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = StringBlock;
- StringPackage->StringPkgHdr->Header.Length += Ucs2FontBlockSize;
+ StringPackage->StringBlock = StringBlock;
+ StringPackage->StringPkgHdr->Header.Length += Ucs2FontBlockSize;
PackageListNode->PackageListHdr.PackageLength += Ucs2FontBlockSize;
-
} else {
//
// EFI_HII_SIBT_FONT_BLOCK does not exist in current string package, so
// create a EFI_HII_SIBT_FONT block to record the font info, then generate
// a EFI_HII_SIBT_STRING_UCS2_FONT block to record the incoming string.
//
- FontBlockSize = (UINT32) (StrSize (((EFI_FONT_INFO *) StringFontInfo)->FontName) +
- sizeof (EFI_HII_SIBT_FONT_BLOCK) - sizeof (CHAR16));
- StringBlock = (UINT8 *) AllocateZeroPool (OldBlockSize + FontBlockSize + Ucs2FontBlockSize);
+ FontBlockSize = (UINT32)(StrSize (((EFI_FONT_INFO *)StringFontInfo)->FontName) +
+ sizeof (EFI_HII_SIBT_FONT_BLOCK) - sizeof (CHAR16));
+ StringBlock = (UINT8 *)AllocateZeroPool (OldBlockSize + FontBlockSize + Ucs2FontBlockSize);
if (StringBlock == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
//
// Copy original string blocks, except the EFI_HII_SIBT_END.
//
@@ -1485,31 +1508,31 @@ HiiNewString (
Ext2.Header.BlockType = EFI_HII_SIBT_EXT2;
Ext2.BlockType2 = EFI_HII_SIBT_FONT;
- Ext2.Length = (UINT16) FontBlockSize;
+ Ext2.Length = (UINT16)FontBlockSize;
CopyMem (BlockPtr, &Ext2, sizeof (EFI_HII_SIBT_EXT2_BLOCK));
BlockPtr += sizeof (EFI_HII_SIBT_EXT2_BLOCK);
*BlockPtr = LocalFont->FontId;
- BlockPtr ++;
- CopyMem (BlockPtr, &((EFI_FONT_INFO *) StringFontInfo)->FontSize, sizeof (UINT16));
+ BlockPtr++;
+ CopyMem (BlockPtr, &((EFI_FONT_INFO *)StringFontInfo)->FontSize, sizeof (UINT16));
BlockPtr += sizeof (UINT16);
- CopyMem (BlockPtr, &((EFI_FONT_INFO *) StringFontInfo)->FontStyle, sizeof (EFI_HII_FONT_STYLE));
+ CopyMem (BlockPtr, &((EFI_FONT_INFO *)StringFontInfo)->FontStyle, sizeof (EFI_HII_FONT_STYLE));
BlockPtr += sizeof (EFI_HII_FONT_STYLE);
CopyMem (
BlockPtr,
- &((EFI_FONT_INFO *) StringFontInfo)->FontName,
- StrSize (((EFI_FONT_INFO *) StringFontInfo)->FontName)
+ &((EFI_FONT_INFO *)StringFontInfo)->FontName,
+ StrSize (((EFI_FONT_INFO *)StringFontInfo)->FontName)
);
- BlockPtr += StrSize (((EFI_FONT_INFO *) StringFontInfo)->FontName);
+ BlockPtr += StrSize (((EFI_FONT_INFO *)StringFontInfo)->FontName);
//
// Create a EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK
//
*BlockPtr = EFI_HII_SIBT_STRING_UCS2_FONT;
- BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
+ BlockPtr += sizeof (EFI_HII_STRING_BLOCK);
*BlockPtr = LocalFont->FontId;
- BlockPtr ++;
- CopyMem (BlockPtr, (EFI_STRING) String, StrSize ((EFI_STRING) String));
- BlockPtr += StrSize ((EFI_STRING) String);
+ BlockPtr++;
+ CopyMem (BlockPtr, (EFI_STRING)String, StrSize ((EFI_STRING)String));
+ BlockPtr += StrSize ((EFI_STRING)String);
//
// Append a EFI_HII_SIBT_END block to the end.
@@ -1517,8 +1540,8 @@ HiiNewString (
*BlockPtr = EFI_HII_SIBT_END;
ZeroMem (StringPackage->StringBlock, OldBlockSize);
FreePool (StringPackage->StringBlock);
- StringPackage->StringBlock = StringBlock;
- StringPackage->StringPkgHdr->Header.Length += FontBlockSize + Ucs2FontBlockSize;
+ StringPackage->StringBlock = StringBlock;
+ StringPackage->StringPkgHdr->Header.Length += FontBlockSize + Ucs2FontBlockSize;
PackageListNode->PackageListHdr.PackageLength += FontBlockSize + Ucs2FontBlockSize;
//
@@ -1535,12 +1558,12 @@ Done:
// Trigger any registered notification function for new string package
//
Status = InvokeRegisteredFunction (
- Private,
- EFI_HII_DATABASE_NOTIFY_NEW_PACK,
- (VOID *) StringPackage,
- EFI_HII_PACKAGE_STRINGS,
- PackageList
- );
+ Private,
+ EFI_HII_DATABASE_NOTIFY_NEW_PACK,
+ (VOID *)StringPackage,
+ EFI_HII_PACKAGE_STRINGS,
+ PackageList
+ );
}
if (!EFI_ERROR (Status)) {
@@ -1548,11 +1571,12 @@ Done:
// Update MaxString Id to new StringId
//
for (Link = PackageListNode->StringPkgHdr.ForwardLink;
- Link != &PackageListNode->StringPkgHdr;
- Link = Link->ForwardLink
- ) {
- StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- StringPackage->MaxStringId = *StringId;
+ Link != &PackageListNode->StringPkgHdr;
+ Link = Link->ForwardLink
+ )
+ {
+ StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
+ StringPackage->MaxStringId = *StringId;
}
} else if (NewStringPackageCreated) {
//
@@ -1563,6 +1587,7 @@ Done:
FreePool (StringPackage->StringPkgHdr);
FreePool (StringPackage);
}
+
//
// The contents of HiiDataBase may updated,need to check.
//
@@ -1572,7 +1597,7 @@ Done:
//
if (gExportAfterReadyToBoot) {
if (!EFI_ERROR (Status)) {
- HiiGetDatabaseInfo(&Private->HiiDatabase);
+ HiiGetDatabaseInfo (&Private->HiiDatabase);
}
}
@@ -1581,7 +1606,6 @@ Done:
return Status;
}
-
/**
This function retrieves the string specified by StringId which is associated
with the specified PackageList in the language Language and copies it into
@@ -1618,13 +1642,13 @@ Done:
EFI_STATUS
EFIAPI
HiiGetString (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN CONST CHAR8 *Language,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_STRING_ID StringId,
- OUT EFI_STRING String,
- IN OUT UINTN *StringSize,
- OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN CONST CHAR8 *Language,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_STRING_ID StringId,
+ OUT EFI_STRING String,
+ IN OUT UINTN *StringSize,
+ OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
)
{
EFI_STATUS Status;
@@ -1634,11 +1658,11 @@ HiiGetString (
HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageListNode;
HII_STRING_PACKAGE_INSTANCE *StringPackage;
- if (This == NULL || Language == NULL || StringId < 1 || StringSize == NULL || PackageList == NULL) {
+ if ((This == NULL) || (Language == NULL) || (StringId < 1) || (StringSize == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (String == NULL && *StringSize != 0) {
+ if ((String == NULL) && (*StringSize != 0)) {
return EFI_INVALID_PARAMETER;
}
@@ -1646,7 +1670,7 @@ HiiGetString (
return EFI_NOT_FOUND;
}
- Private = HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ Private = HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
PackageListNode = NULL;
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
@@ -1664,24 +1688,27 @@ HiiGetString (
for (Link = PackageListNode->StringPkgHdr.ForwardLink;
Link != &PackageListNode->StringPkgHdr;
Link = Link->ForwardLink
- ) {
- StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *) Language)) {
- Status = GetStringWorker (Private, StringPackage, StringId, String, StringSize, StringFontInfo);
- if (Status != EFI_NOT_FOUND) {
- return Status;
- }
+ )
+ {
+ StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
+ if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *)Language)) {
+ Status = GetStringWorker (Private, StringPackage, StringId, String, StringSize, StringFontInfo);
+ if (Status != EFI_NOT_FOUND) {
+ return Status;
}
}
- //
- // Second search: to match the StringId in other available languages if exist.
- //
- for (Link = PackageListNode->StringPkgHdr.ForwardLink;
- Link != &PackageListNode->StringPkgHdr;
- Link = Link->ForwardLink
- ) {
+ }
+
+ //
+ // Second search: to match the StringId in other available languages if exist.
+ //
+ for (Link = PackageListNode->StringPkgHdr.ForwardLink;
+ Link != &PackageListNode->StringPkgHdr;
+ Link = Link->ForwardLink
+ )
+ {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- Status = GetStringWorker (Private, StringPackage, StringId, NULL, NULL, NULL);
+ Status = GetStringWorker (Private, StringPackage, StringId, NULL, NULL, NULL);
if (!EFI_ERROR (Status)) {
return EFI_INVALID_LANGUAGE;
}
@@ -1691,8 +1718,6 @@ HiiGetString (
return EFI_NOT_FOUND;
}
-
-
/**
This function updates the string specified by StringId in the specified PackageList to the text
specified by String and, optionally, the font information specified by StringFontInfo.
@@ -1719,12 +1744,12 @@ HiiGetString (
EFI_STATUS
EFIAPI
HiiSetString (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN EFI_STRING_ID StringId,
- IN CONST CHAR8 *Language,
- IN CONST EFI_STRING String,
- IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN EFI_STRING_ID StringId,
+ IN CONST CHAR8 *Language,
+ IN CONST EFI_STRING String,
+ IN CONST EFI_FONT_INFO *StringFontInfo OPTIONAL
)
{
EFI_STATUS Status;
@@ -1735,7 +1760,7 @@ HiiSetString (
HII_STRING_PACKAGE_INSTANCE *StringPackage;
UINT32 OldPackageLen;
- if (This == NULL || Language == NULL || StringId < 1 || String == NULL || PackageList == NULL) {
+ if ((This == NULL) || (Language == NULL) || (StringId < 1) || (String == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1745,13 +1770,13 @@ HiiSetString (
EfiAcquireLock (&mHiiDatabaseLock);
- Private = HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ Private = HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
PackageListNode = NULL;
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if (DatabaseRecord->Handle == PackageList) {
- PackageListNode = (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (DatabaseRecord->PackageList);
+ PackageListNode = (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(DatabaseRecord->PackageList);
}
}
@@ -1759,29 +1784,32 @@ HiiSetString (
for (Link = PackageListNode->StringPkgHdr.ForwardLink;
Link != &PackageListNode->StringPkgHdr;
Link = Link->ForwardLink
- ) {
+ )
+ {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *) Language)) {
+ if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *)Language)) {
OldPackageLen = StringPackage->StringPkgHdr->Header.Length;
- Status = SetStringWorker (
- Private,
- StringPackage,
- StringId,
- (EFI_STRING) String,
- (EFI_FONT_INFO *) StringFontInfo
- );
+ Status = SetStringWorker (
+ Private,
+ StringPackage,
+ StringId,
+ (EFI_STRING)String,
+ (EFI_FONT_INFO *)StringFontInfo
+ );
if (EFI_ERROR (Status)) {
EfiReleaseLock (&mHiiDatabaseLock);
return Status;
}
+
PackageListNode->PackageListHdr.PackageLength += StringPackage->StringPkgHdr->Header.Length - OldPackageLen;
//
// Check whether need to get the contents of HiiDataBase.
// Only after ReadyToBoot to do the export.
//
if (gExportAfterReadyToBoot) {
- HiiGetDatabaseInfo(&Private->HiiDatabase);
+ HiiGetDatabaseInfo (&Private->HiiDatabase);
}
+
EfiReleaseLock (&mHiiDatabaseLock);
return EFI_SUCCESS;
}
@@ -1792,8 +1820,6 @@ HiiSetString (
return EFI_NOT_FOUND;
}
-
-
/**
This function returns the list of supported languages, in the format specified
in Appendix M of UEFI 2.1 spec.
@@ -1819,10 +1845,10 @@ HiiSetString (
EFI_STATUS
EFIAPI
HiiGetLanguages (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN OUT CHAR8 *Languages,
- IN OUT UINTN *LanguagesSize
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN OUT CHAR8 *Languages,
+ IN OUT UINTN *LanguagesSize
)
{
LIST_ENTRY *Link;
@@ -1832,12 +1858,14 @@ HiiGetLanguages (
HII_STRING_PACKAGE_INSTANCE *StringPackage;
UINTN ResultSize;
- if (This == NULL || LanguagesSize == NULL || PackageList == NULL) {
+ if ((This == NULL) || (LanguagesSize == NULL) || (PackageList == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (*LanguagesSize != 0 && Languages == NULL) {
+
+ if ((*LanguagesSize != 0) && (Languages == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if (!IsHiiHandleValid (PackageList)) {
return EFI_NOT_FOUND;
}
@@ -1846,12 +1874,13 @@ HiiGetLanguages (
PackageListNode = NULL;
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
- DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
+ DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if (DatabaseRecord->Handle == PackageList) {
PackageListNode = DatabaseRecord->PackageList;
break;
}
}
+
if (PackageListNode == NULL) {
return EFI_NOT_FOUND;
}
@@ -1863,15 +1892,17 @@ HiiGetLanguages (
for (Link = PackageListNode->StringPkgHdr.ForwardLink;
Link != &PackageListNode->StringPkgHdr;
Link = Link->ForwardLink
- ) {
+ )
+ {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- ResultSize += AsciiStrSize (StringPackage->StringPkgHdr->Language);
+ ResultSize += AsciiStrSize (StringPackage->StringPkgHdr->Language);
if (ResultSize <= *LanguagesSize) {
AsciiStrCpyS (Languages, *LanguagesSize / sizeof (CHAR8), StringPackage->StringPkgHdr->Language);
- Languages += AsciiStrSize (StringPackage->StringPkgHdr->Language);
+ Languages += AsciiStrSize (StringPackage->StringPkgHdr->Language);
*(Languages - 1) = L';';
}
}
+
if (ResultSize == 0) {
return EFI_NOT_FOUND;
}
@@ -1885,7 +1916,6 @@ HiiGetLanguages (
return EFI_SUCCESS;
}
-
/**
Each string package has associated with it a single primary language and zero
or more secondary languages. This routine returns the secondary languages
@@ -1922,11 +1952,11 @@ HiiGetLanguages (
EFI_STATUS
EFIAPI
HiiGetSecondaryLanguages (
- IN CONST EFI_HII_STRING_PROTOCOL *This,
- IN EFI_HII_HANDLE PackageList,
- IN CONST CHAR8 *PrimaryLanguage,
- IN OUT CHAR8 *SecondaryLanguages,
- IN OUT UINTN *SecondaryLanguagesSize
+ IN CONST EFI_HII_STRING_PROTOCOL *This,
+ IN EFI_HII_HANDLE PackageList,
+ IN CONST CHAR8 *PrimaryLanguage,
+ IN OUT CHAR8 *SecondaryLanguages,
+ IN OUT UINTN *SecondaryLanguagesSize
)
{
LIST_ENTRY *Link;
@@ -1938,38 +1968,42 @@ HiiGetSecondaryLanguages (
CHAR8 *Languages;
UINTN ResultSize;
- if (This == NULL || PackageList == NULL || PrimaryLanguage == NULL || SecondaryLanguagesSize == NULL) {
+ if ((This == NULL) || (PackageList == NULL) || (PrimaryLanguage == NULL) || (SecondaryLanguagesSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (SecondaryLanguages == NULL && *SecondaryLanguagesSize != 0) {
+
+ if ((SecondaryLanguages == NULL) && (*SecondaryLanguagesSize != 0)) {
return EFI_INVALID_PARAMETER;
}
+
if (!IsHiiHandleValid (PackageList)) {
return EFI_NOT_FOUND;
}
- Private = HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
+ Private = HII_STRING_DATABASE_PRIVATE_DATA_FROM_THIS (This);
PackageListNode = NULL;
for (Link = Private->DatabaseList.ForwardLink; Link != &Private->DatabaseList; Link = Link->ForwardLink) {
- DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
+ DatabaseRecord = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
if (DatabaseRecord->Handle == PackageList) {
- PackageListNode = (HII_DATABASE_PACKAGE_LIST_INSTANCE *) (DatabaseRecord->PackageList);
- break;
- }
- }
- if (PackageListNode == NULL) {
- return EFI_NOT_FOUND;
+ PackageListNode = (HII_DATABASE_PACKAGE_LIST_INSTANCE *)(DatabaseRecord->PackageList);
+ break;
}
+ }
- Languages = NULL;
- ResultSize = 0;
- for (Link1 = PackageListNode->StringPkgHdr.ForwardLink;
- Link1 != &PackageListNode->StringPkgHdr;
- Link1 = Link1->ForwardLink
- ) {
+ if (PackageListNode == NULL) {
+ return EFI_NOT_FOUND;
+ }
+
+ Languages = NULL;
+ ResultSize = 0;
+ for (Link1 = PackageListNode->StringPkgHdr.ForwardLink;
+ Link1 != &PackageListNode->StringPkgHdr;
+ Link1 = Link1->ForwardLink
+ )
+ {
StringPackage = CR (Link1, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
- if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *) PrimaryLanguage)) {
+ if (HiiCompareLanguage (StringPackage->StringPkgHdr->Language, (CHAR8 *)PrimaryLanguage)) {
Languages = StringPackage->StringPkgHdr->Language;
//
// Language is a series of ';' terminated strings, first one is primary
@@ -1980,6 +2014,7 @@ HiiGetSecondaryLanguages (
if (Languages == NULL) {
break;
}
+
Languages++;
ResultSize = AsciiStrSize (Languages);
@@ -2015,9 +2050,9 @@ AsciiHiiToLower (
//
// Convert all hex digits in range [A-F] in the configuration header to [a-f]
//
- for (; *ConfigString != '\0'; ConfigString++) {
- if ( *ConfigString >= 'A' && *ConfigString <= 'Z') {
- *ConfigString = (CHAR8) (*ConfigString - 'A' + 'a');
+ for ( ; *ConfigString != '\0'; ConfigString++) {
+ if ((*ConfigString >= 'A') && (*ConfigString <= 'Z')) {
+ *ConfigString = (CHAR8)(*ConfigString - 'A' + 'a');
}
}
}
@@ -2049,13 +2084,13 @@ HiiCompareLanguage (
StrLen = AsciiStrSize (Language1);
Lan1 = AllocateZeroPool (StrLen);
ASSERT (Lan1 != NULL);
- AsciiStrCpyS(Lan1, StrLen / sizeof (CHAR8), Language1);
+ AsciiStrCpyS (Lan1, StrLen / sizeof (CHAR8), Language1);
AsciiHiiToLower (Lan1);
StrLen = AsciiStrSize (Language2);
Lan2 = AllocateZeroPool (StrLen);
ASSERT (Lan2 != NULL);
- AsciiStrCpyS(Lan2, StrLen / sizeof (CHAR8), Language2);
+ AsciiStrCpyS (Lan2, StrLen / sizeof (CHAR8), Language2);
AsciiHiiToLower (Lan2);
//
@@ -2081,5 +2116,5 @@ HiiCompareLanguage (
// Language2[Index] is not a Null-terminator, then Language2 is longer than
// the Primary Language in Language1, and FALSE must be returned.
//
- return (BOOLEAN) (Language2[Index] == 0);
+ return (BOOLEAN)(Language2[Index] == 0);
}
diff --git a/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSample.c b/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSample.c
index 01cbf37..dd0ae50 100644
--- a/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSample.c
+++ b/MdeModulePkg/Universal/HiiResourcesSampleDxe/HiiResourcesSample.c
@@ -21,13 +21,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// HII specific Vendor Device Path definition.
///
typedef struct {
- VENDOR_DEVICE_PATH VendorDevicePath;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH VendorDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL End;
} HII_VENDOR_DEVICE_PATH;
#pragma pack()
-
-EFI_HII_HANDLE mHiiHandle = NULL;
+EFI_HII_HANDLE mHiiHandle = NULL;
EFI_HANDLE mDriverHandle = NULL;
HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
@@ -36,8 +35,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
{
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
HII_RESOURCE_SAMPLE_FORM_SET_GUID
@@ -46,8 +45,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
- (UINT8) (END_DEVICE_PATH_LENGTH),
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
+ (UINT8)(END_DEVICE_PATH_LENGTH),
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
};
@@ -64,12 +63,12 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
EFI_STATUS
EFIAPI
HiiResourcesSampleInit (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_HII_PACKAGE_LIST_HEADER *PackageList;
+ EFI_STATUS Status;
+ EFI_HII_PACKAGE_LIST_HEADER *PackageList;
//
// Retrieve HII package list from ImageHandle
@@ -77,7 +76,7 @@ HiiResourcesSampleInit (
Status = gBS->OpenProtocol (
ImageHandle,
&gEfiHiiPackageListProtocolGuid,
- (VOID **) &PackageList,
+ (VOID **)&PackageList,
ImageHandle,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -103,11 +102,11 @@ HiiResourcesSampleInit (
// Publish HII package list to HII Database.
//
Status = gHiiDatabase->NewPackageList (
- gHiiDatabase,
- PackageList,
- mDriverHandle,
- &mHiiHandle
- );
+ gHiiDatabase,
+ PackageList,
+ mDriverHandle,
+ &mHiiHandle
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -130,9 +129,9 @@ HiiResourcesSampleUnload (
{
if (mDriverHandle != NULL) {
gBS->UninstallProtocolInterface (
- mDriverHandle,
- &gEfiDevicePathProtocolGuid,
- &mHiiVendorDevicePath
+ mDriverHandle,
+ &gEfiDevicePathProtocolGuid,
+ &mHiiVendorDevicePath
);
mDriverHandle = NULL;
}
diff --git a/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.c b/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.c
index c127815..daec09c 100644
--- a/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.c
+++ b/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.c
@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <LegacyRegion2.h>
-EFI_HANDLE mLegacyRegion2Handle = NULL;
+EFI_HANDLE mLegacyRegion2Handle = NULL;
EFI_LEGACY_REGION2_PROTOCOL mLegacyRegion2 = {
LegacyRegion2Decode,
@@ -90,10 +90,10 @@ LegacyRegion2Decode (
EFI_STATUS
EFIAPI
LegacyRegion2Lock (
- IN EFI_LEGACY_REGION2_PROTOCOL *This,
- IN UINT32 Start,
- IN UINT32 Length,
- OUT UINT32 *Granularity
+ IN EFI_LEGACY_REGION2_PROTOCOL *This,
+ IN UINT32 Start,
+ IN UINT32 Length,
+ OUT UINT32 *Granularity
)
{
if ((Start < 0xC0000) || ((Start + Length - 1) > 0xFFFFF)) {
@@ -133,10 +133,10 @@ LegacyRegion2Lock (
EFI_STATUS
EFIAPI
LegacyRegion2BootLock (
- IN EFI_LEGACY_REGION2_PROTOCOL *This,
- IN UINT32 Start,
- IN UINT32 Length,
- OUT UINT32 *Granularity
+ IN EFI_LEGACY_REGION2_PROTOCOL *This,
+ IN UINT32 Start,
+ IN UINT32 Length,
+ OUT UINT32 *Granularity
)
{
if ((Start < 0xC0000) || ((Start + Length - 1) > 0xFFFFF)) {
@@ -242,7 +242,8 @@ LegacyRegion2Install (
//
Status = gBS->InstallMultipleProtocolInterfaces (
&mLegacyRegion2Handle,
- &gEfiLegacyRegion2ProtocolGuid, &mLegacyRegion2,
+ &gEfiLegacyRegion2ProtocolGuid,
+ &mLegacyRegion2,
NULL
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.h b/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.h
index 56108d8..754e0b2 100644
--- a/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.h
+++ b/MdeModulePkg/Universal/LegacyRegion2Dxe/LegacyRegion2.h
@@ -70,10 +70,10 @@ LegacyRegion2Decode (
EFI_STATUS
EFIAPI
LegacyRegion2Lock (
- IN EFI_LEGACY_REGION2_PROTOCOL *This,
- IN UINT32 Start,
- IN UINT32 Length,
- OUT UINT32 *Granularity
+ IN EFI_LEGACY_REGION2_PROTOCOL *This,
+ IN UINT32 Start,
+ IN UINT32 Length,
+ OUT UINT32 *Granularity
);
/**
@@ -104,10 +104,10 @@ LegacyRegion2Lock (
EFI_STATUS
EFIAPI
LegacyRegion2BootLock (
- IN EFI_LEGACY_REGION2_PROTOCOL *This,
- IN UINT32 Start,
- IN UINT32 Length,
- OUT UINT32 *Granularity
+ IN EFI_LEGACY_REGION2_PROTOCOL *This,
+ IN UINT32 Start,
+ IN UINT32 Length,
+ OUT UINT32 *Granularity
);
/**
diff --git a/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.c b/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.c
index 58e658e..9f898e3 100644
--- a/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.c
+++ b/MdeModulePkg/Universal/LoadFileOnFv2/LoadFileOnFv2.c
@@ -25,19 +25,19 @@
#define LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('l', 'f', 'f', 'v')
typedef struct {
- UINTN Signature;
- EFI_LOAD_FILE_PROTOCOL LoadFile;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
- EFI_GUID NameGuid;
- LIST_ENTRY Link;
+ UINTN Signature;
+ EFI_LOAD_FILE_PROTOCOL LoadFile;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
+ EFI_GUID NameGuid;
+ LIST_ENTRY Link;
} LOAD_FILE_ON_FV2_PRIVATE_DATA;
-#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_THIS(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, LoadFile, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)
-#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, Link, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)
+#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_THIS(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, LoadFile, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)
+#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, Link, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)
-VOID *mFvRegistration;
-LIST_ENTRY mPrivateDataList;
+VOID *mFvRegistration;
+LIST_ENTRY mPrivateDataList;
/**
Causes the driver to load a specified file from firmware volume.
@@ -82,7 +82,7 @@ LoadFileOnFv2LoadFile (
UINTN Pe32BufferSize;
UINT32 AuthenticationStatus;
- if (This == NULL || BufferSize == NULL) {
+ if ((This == NULL) || (BufferSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -103,15 +103,15 @@ LoadFileOnFv2LoadFile (
//
Pe32Buffer = NULL;
Pe32BufferSize = 0;
- Status = Private->Fv->ReadSection (
- Private->Fv,
- &Private->NameGuid,
- EFI_SECTION_PE32,
- 0,
- &Pe32Buffer,
- &Pe32BufferSize,
- &AuthenticationStatus
- );
+ Status = Private->Fv->ReadSection (
+ Private->Fv,
+ &Private->NameGuid,
+ EFI_SECTION_PE32,
+ 0,
+ &Pe32Buffer,
+ &Pe32BufferSize,
+ &AuthenticationStatus
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -120,7 +120,7 @@ LoadFileOnFv2LoadFile (
// If the buffer passed in is not large enough, return the size of the required
// buffer in BufferSize and return EFI_BUFFER_TOO_SMALL
//
- if (*BufferSize < Pe32BufferSize || Buffer == NULL) {
+ if ((*BufferSize < Pe32BufferSize) || (Buffer == NULL)) {
*BufferSize = Pe32BufferSize;
return EFI_BUFFER_TOO_SMALL;
}
@@ -160,24 +160,25 @@ LOAD_FILE_ON_FV2_PRIVATE_DATA mLoadFileOnFv2PrivateDataTemplate = {
BOOLEAN
EFIAPI
IsInPrivateList (
- IN EFI_GUID *NameGuid
-)
+ IN EFI_GUID *NameGuid
+ )
{
- LIST_ENTRY *Entry;
- LOAD_FILE_ON_FV2_PRIVATE_DATA *PrivateData;
-
- if (IsListEmpty (&mPrivateDataList)) {
- return FALSE;
- }
-
- for(Entry = (&mPrivateDataList)->ForwardLink; Entry != (&mPrivateDataList); Entry = Entry->ForwardLink) {
- PrivateData = LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK (Entry);
- if (CompareGuid (NameGuid, &PrivateData->NameGuid)) {
- DEBUG ((DEBUG_INFO, "LoadFileOnFv2:FileLoadProtocol has been installed in:%g\n", NameGuid));
- return TRUE;
- }
- }
- return FALSE;
+ LIST_ENTRY *Entry;
+ LOAD_FILE_ON_FV2_PRIVATE_DATA *PrivateData;
+
+ if (IsListEmpty (&mPrivateDataList)) {
+ return FALSE;
+ }
+
+ for (Entry = (&mPrivateDataList)->ForwardLink; Entry != (&mPrivateDataList); Entry = Entry->ForwardLink) {
+ PrivateData = LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK (Entry);
+ if (CompareGuid (NameGuid, &PrivateData->NameGuid)) {
+ DEBUG ((DEBUG_INFO, "LoadFileOnFv2:FileLoadProtocol has been installed in:%g\n", NameGuid));
+ return TRUE;
+ }
+ }
+
+ return FALSE;
}
/**
@@ -192,27 +193,27 @@ IsInPrivateList (
EFI_DEVICE_PATH_PROTOCOL *
EFIAPI
CreateFileDevicePath (
- IN EFI_HANDLE Device,
- IN EFI_GUID *NameGuid,
- IN CONST CHAR16 *FileName
+ IN EFI_HANDLE Device,
+ IN EFI_GUID *NameGuid,
+ IN CONST CHAR16 *FileName
)
{
- UINTN Size;
- FILEPATH_DEVICE_PATH *FilePath;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- EFI_DEVICE_PATH_PROTOCOL *FileDevicePath;
- MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;
+ UINTN Size;
+ FILEPATH_DEVICE_PATH *FilePath;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *FileDevicePath;
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;
EfiInitializeFwVolDevicepathNode (&FileNode, NameGuid);
DevicePath = AppendDevicePathNode (
DevicePathFromHandle (Device),
- (EFI_DEVICE_PATH_PROTOCOL *) &FileNode
+ (EFI_DEVICE_PATH_PROTOCOL *)&FileNode
);
- Size = StrSize (FileName);
+ Size = StrSize (FileName);
FileDevicePath = AllocatePool (Size + SIZE_OF_FILEPATH_DEVICE_PATH + END_DEVICE_PATH_LENGTH);
if (FileDevicePath != NULL) {
- FilePath = (FILEPATH_DEVICE_PATH *) FileDevicePath;
+ FilePath = (FILEPATH_DEVICE_PATH *)FileDevicePath;
FilePath->Header.Type = MEDIA_DEVICE_PATH;
FilePath->Header.SubType = MEDIA_FILEPATH_DP;
CopyMem (&FilePath->PathName, FileName, Size);
@@ -235,23 +236,23 @@ CreateFileDevicePath (
VOID
EFIAPI
InstallFileLoadProtocol (
- EFI_HANDLE Handle
-)
+ EFI_HANDLE Handle
+ )
{
- EFI_STATUS Status;
- LOAD_FILE_ON_FV2_PRIVATE_DATA *Private;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
- EFI_PHYSICAL_ADDRESS Address;
- EFI_FV_FILETYPE FileType;
- UINTN Key;
- EFI_GUID NameGuid;
- EFI_FV_FILE_ATTRIBUTES Attributes;
- UINTN Size;
- EFI_HANDLE LoadFileHandle;
- UINT32 AuthenticationStatus;
- CHAR16 *UiName;
- UINTN UiNameSize;
+ EFI_STATUS Status;
+ LOAD_FILE_ON_FV2_PRIVATE_DATA *Private;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
+ EFI_PHYSICAL_ADDRESS Address;
+ EFI_FV_FILETYPE FileType;
+ UINTN Key;
+ EFI_GUID NameGuid;
+ EFI_FV_FILE_ATTRIBUTES Attributes;
+ UINTN Size;
+ EFI_HANDLE LoadFileHandle;
+ UINT32 AuthenticationStatus;
+ CHAR16 *UiName;
+ UINTN UiNameSize;
DEBUG ((DEBUG_INFO, "LoadFileOnFv2:Find a FV!\n"));
Status = gBS->HandleProtocol (Handle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Fv);
@@ -266,7 +267,7 @@ InstallFileLoadProtocol (
// each one found.
//
FileType = EFI_FV_FILETYPE_APPLICATION;
- Key = 0;
+ Key = 0;
while (TRUE) {
Status = Fv->GetNextFile (Fv, &Key, &FileType, &NameGuid, &Attributes, &Size);
if (EFI_ERROR (Status)) {
@@ -286,18 +287,21 @@ InstallFileLoadProtocol (
if (EFI_ERROR (Status)) {
continue;
}
+
if (!IsInPrivateList (&NameGuid)) {
Private = (LOAD_FILE_ON_FV2_PRIVATE_DATA *)AllocateCopyPool (sizeof (mLoadFileOnFv2PrivateDataTemplate), &mLoadFileOnFv2PrivateDataTemplate);
ASSERT (Private != NULL);
- Private->Fv = Fv;
+ Private->Fv = Fv;
Private->DevicePath = CreateFileDevicePath (Handle, &NameGuid, UiName);
CopyGuid (&Private->NameGuid, &NameGuid);
LoadFileHandle = NULL;
DEBUG ((DEBUG_INFO, "Find a APPLICATION in this FV!\n"));
Status = gBS->InstallMultipleProtocolInterfaces (
&LoadFileHandle,
- &gEfiDevicePathProtocolGuid, Private->DevicePath,
- &gEfiLoadFileProtocolGuid, &Private->LoadFile,
+ &gEfiDevicePathProtocolGuid,
+ Private->DevicePath,
+ &gEfiLoadFileProtocolGuid,
+ &Private->LoadFile,
NULL
);
if (!EFI_ERROR (Status)) {
@@ -324,16 +328,15 @@ InstallFileLoadProtocol (
VOID
EFIAPI
FvNotificationEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- UINTN BufferSize;
- EFI_HANDLE *Handle;
- UINTN Index;
- EFI_HANDLE *CurHandle;
-
+ EFI_STATUS Status;
+ UINTN BufferSize;
+ EFI_HANDLE *Handle;
+ UINTN Index;
+ EFI_HANDLE *CurHandle;
Handle = NULL;
Index = 0;
@@ -342,19 +345,21 @@ FvNotificationEvent (
if (Handle == NULL) {
return;
}
+
Status = gBS->LocateHandle (
- ByProtocol,
- &gEfiFirmwareVolume2ProtocolGuid,
- NULL,
- &BufferSize,
- Handle
- );
+ ByProtocol,
+ &gEfiFirmwareVolume2ProtocolGuid,
+ NULL,
+ &BufferSize,
+ Handle
+ );
if (EFI_BUFFER_TOO_SMALL == Status) {
FreePool (Handle);
Handle = AllocateZeroPool (BufferSize);
if (Handle == NULL) {
return;
}
+
Status = gBS->LocateHandle (
ByProtocol,
&gEfiFirmwareVolume2ProtocolGuid,
@@ -370,13 +375,14 @@ FvNotificationEvent (
}
CurHandle = Handle;
- for (Index=0; Index < BufferSize/sizeof (EFI_HANDLE); Index++) {
+ for (Index = 0; Index < BufferSize/sizeof (EFI_HANDLE); Index++) {
CurHandle = Handle + Index;
//
// Install LoadFile Protocol
//
InstallFileLoadProtocol (*CurHandle);
}
+
if (Handle != NULL) {
FreePool (Handle);
}
@@ -409,13 +415,12 @@ LoadFileOnFv2Intialize (
);
EfiCreateProtocolNotifyEvent (
- &gLzmaCustomDecompressGuid,
- TPL_CALLBACK,
- FvNotificationEvent,
- NULL,
- &mFvRegistration
+ &gLzmaCustomDecompressGuid,
+ TPL_CALLBACK,
+ FvNotificationEvent,
+ NULL,
+ &mFvRegistration
);
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
index e4659c1..c1e15c5 100644
--- a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
+++ b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c
@@ -31,7 +31,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Protocol/LockBox.h>
#include <Guid/SmmLockBox.h>
-BOOLEAN mLocked = FALSE;
+BOOLEAN mLocked = FALSE;
/**
Dispatch function for SMM lock box save.
@@ -44,11 +44,11 @@ BOOLEAN mLocked = FALSE;
**/
VOID
SmmLockBoxSave (
- IN EFI_SMM_LOCK_BOX_PARAMETER_SAVE *LockBoxParameterSave
+ IN EFI_SMM_LOCK_BOX_PARAMETER_SAVE *LockBoxParameterSave
)
{
- EFI_STATUS Status;
- EFI_SMM_LOCK_BOX_PARAMETER_SAVE TempLockBoxParameterSave;
+ EFI_STATUS Status;
+ EFI_SMM_LOCK_BOX_PARAMETER_SAVE TempLockBoxParameterSave;
//
// Sanity check
@@ -56,7 +56,7 @@ SmmLockBoxSave (
if (mLocked) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Locked!\n"));
LockBoxParameterSave->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED;
- return ;
+ return;
}
CopyMem (&TempLockBoxParameterSave, LockBoxParameterSave, sizeof (EFI_SMM_LOCK_BOX_PARAMETER_SAVE));
@@ -67,8 +67,9 @@ SmmLockBoxSave (
if (!SmmIsBufferOutsideSmmValid ((UINTN)TempLockBoxParameterSave.Buffer, (UINTN)TempLockBoxParameterSave.Length)) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Save address in SMRAM or buffer overflow!\n"));
LockBoxParameterSave->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED;
- return ;
+ return;
}
+
//
// The SpeculationBarrier() call here is to ensure the above range check for
// the CommBuffer have been completed before calling into SaveLockBox().
@@ -84,7 +85,7 @@ SmmLockBoxSave (
(UINTN)TempLockBoxParameterSave.Length
);
LockBoxParameterSave->Header.ReturnStatus = (UINT64)Status;
- return ;
+ return;
}
/**
@@ -94,11 +95,11 @@ SmmLockBoxSave (
**/
VOID
SmmLockBoxSetAttributes (
- IN EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES *LockBoxParameterSetAttributes
+ IN EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES *LockBoxParameterSetAttributes
)
{
- EFI_STATUS Status;
- EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES TempLockBoxParameterSetAttributes;
+ EFI_STATUS Status;
+ EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES TempLockBoxParameterSetAttributes;
//
// Sanity check
@@ -106,7 +107,7 @@ SmmLockBoxSetAttributes (
if (mLocked) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Locked!\n"));
LockBoxParameterSetAttributes->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED;
- return ;
+ return;
}
CopyMem (&TempLockBoxParameterSetAttributes, LockBoxParameterSetAttributes, sizeof (EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES));
@@ -119,7 +120,7 @@ SmmLockBoxSetAttributes (
TempLockBoxParameterSetAttributes.Attributes
);
LockBoxParameterSetAttributes->Header.ReturnStatus = (UINT64)Status;
- return ;
+ return;
}
/**
@@ -133,11 +134,11 @@ SmmLockBoxSetAttributes (
**/
VOID
SmmLockBoxUpdate (
- IN EFI_SMM_LOCK_BOX_PARAMETER_UPDATE *LockBoxParameterUpdate
+ IN EFI_SMM_LOCK_BOX_PARAMETER_UPDATE *LockBoxParameterUpdate
)
{
- EFI_STATUS Status;
- EFI_SMM_LOCK_BOX_PARAMETER_UPDATE TempLockBoxParameterUpdate;
+ EFI_STATUS Status;
+ EFI_SMM_LOCK_BOX_PARAMETER_UPDATE TempLockBoxParameterUpdate;
//
// Sanity check
@@ -145,7 +146,7 @@ SmmLockBoxUpdate (
if (mLocked) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Locked!\n"));
LockBoxParameterUpdate->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED;
- return ;
+ return;
}
CopyMem (&TempLockBoxParameterUpdate, LockBoxParameterUpdate, sizeof (EFI_SMM_LOCK_BOX_PARAMETER_UPDATE));
@@ -156,8 +157,9 @@ SmmLockBoxUpdate (
if (!SmmIsBufferOutsideSmmValid ((UINTN)TempLockBoxParameterUpdate.Buffer, (UINTN)TempLockBoxParameterUpdate.Length)) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Update address in SMRAM or buffer overflow!\n"));
LockBoxParameterUpdate->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED;
- return ;
+ return;
}
+
//
// The SpeculationBarrier() call here is to ensure the above range check for
// the CommBuffer have been completed before calling into UpdateLockBox().
@@ -174,7 +176,7 @@ SmmLockBoxUpdate (
(UINTN)TempLockBoxParameterUpdate.Length
);
LockBoxParameterUpdate->Header.ReturnStatus = (UINT64)Status;
- return ;
+ return;
}
/**
@@ -188,11 +190,11 @@ SmmLockBoxUpdate (
**/
VOID
SmmLockBoxRestore (
- IN EFI_SMM_LOCK_BOX_PARAMETER_RESTORE *LockBoxParameterRestore
+ IN EFI_SMM_LOCK_BOX_PARAMETER_RESTORE *LockBoxParameterRestore
)
{
- EFI_STATUS Status;
- EFI_SMM_LOCK_BOX_PARAMETER_RESTORE TempLockBoxParameterRestore;
+ EFI_STATUS Status;
+ EFI_SMM_LOCK_BOX_PARAMETER_RESTORE TempLockBoxParameterRestore;
CopyMem (&TempLockBoxParameterRestore, LockBoxParameterRestore, sizeof (EFI_SMM_LOCK_BOX_PARAMETER_RESTORE));
@@ -202,7 +204,7 @@ SmmLockBoxRestore (
if (!SmmIsBufferOutsideSmmValid ((UINTN)TempLockBoxParameterRestore.Buffer, (UINTN)TempLockBoxParameterRestore.Length)) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Restore address in SMRAM or buffer overflow!\n"));
LockBoxParameterRestore->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED;
- return ;
+ return;
}
//
@@ -227,8 +229,9 @@ SmmLockBoxRestore (
LockBoxParameterRestore->Length = TempLockBoxParameterRestore.Length;
}
}
+
LockBoxParameterRestore->Header.ReturnStatus = (UINT64)Status;
- return ;
+ return;
}
/**
@@ -238,14 +241,14 @@ SmmLockBoxRestore (
**/
VOID
SmmLockBoxRestoreAllInPlace (
- IN EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE *LockBoxParameterRestoreAllInPlace
+ IN EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE *LockBoxParameterRestoreAllInPlace
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- Status = RestoreAllLockBoxInPlace ();
+ Status = RestoreAllLockBoxInPlace ();
LockBoxParameterRestoreAllInPlace->Header.ReturnStatus = (UINT64)Status;
- return ;
+ return;
}
/**
@@ -273,15 +276,15 @@ SmmLockBoxHandler (
IN OUT UINTN *CommBufferSize OPTIONAL
)
{
- EFI_SMM_LOCK_BOX_PARAMETER_HEADER *LockBoxParameterHeader;
- UINTN TempCommBufferSize;
+ EFI_SMM_LOCK_BOX_PARAMETER_HEADER *LockBoxParameterHeader;
+ UINTN TempCommBufferSize;
DEBUG ((DEBUG_INFO, "SmmLockBox SmmLockBoxHandler Enter\n"));
//
// If input is invalid, stop processing this SMI
//
- if (CommBuffer == NULL || CommBufferSize == NULL) {
+ if ((CommBuffer == NULL) || (CommBufferSize == NULL)) {
return EFI_SUCCESS;
}
@@ -290,10 +293,11 @@ SmmLockBoxHandler (
//
// Sanity check
//
- if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_HEADER)) {
+ if (TempCommBufferSize < sizeof (EFI_SMM_LOCK_BOX_PARAMETER_HEADER)) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size invalid!\n"));
return EFI_SUCCESS;
}
+
if (!SmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) {
DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer in SMRAM or overflow!\n"));
return EFI_SUCCESS;
@@ -308,44 +312,49 @@ SmmLockBoxHandler (
DEBUG ((DEBUG_INFO, "SmmLockBox Command - %x\n", (UINTN)LockBoxParameterHeader->Command));
switch (LockBoxParameterHeader->Command) {
- case EFI_SMM_LOCK_BOX_COMMAND_SAVE:
- if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_SAVE)) {
- DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for SAVE invalid!\n"));
+ case EFI_SMM_LOCK_BOX_COMMAND_SAVE:
+ if (TempCommBufferSize < sizeof (EFI_SMM_LOCK_BOX_PARAMETER_SAVE)) {
+ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for SAVE invalid!\n"));
+ break;
+ }
+
+ SmmLockBoxSave ((EFI_SMM_LOCK_BOX_PARAMETER_SAVE *)(UINTN)LockBoxParameterHeader);
break;
- }
- SmmLockBoxSave ((EFI_SMM_LOCK_BOX_PARAMETER_SAVE *)(UINTN)LockBoxParameterHeader);
- break;
- case EFI_SMM_LOCK_BOX_COMMAND_UPDATE:
- if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_UPDATE)) {
- DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for UPDATE invalid!\n"));
+ case EFI_SMM_LOCK_BOX_COMMAND_UPDATE:
+ if (TempCommBufferSize < sizeof (EFI_SMM_LOCK_BOX_PARAMETER_UPDATE)) {
+ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for UPDATE invalid!\n"));
+ break;
+ }
+
+ SmmLockBoxUpdate ((EFI_SMM_LOCK_BOX_PARAMETER_UPDATE *)(UINTN)LockBoxParameterHeader);
break;
- }
- SmmLockBoxUpdate ((EFI_SMM_LOCK_BOX_PARAMETER_UPDATE *)(UINTN)LockBoxParameterHeader);
- break;
- case EFI_SMM_LOCK_BOX_COMMAND_RESTORE:
- if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_RESTORE)) {
- DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for RESTORE invalid!\n"));
+ case EFI_SMM_LOCK_BOX_COMMAND_RESTORE:
+ if (TempCommBufferSize < sizeof (EFI_SMM_LOCK_BOX_PARAMETER_RESTORE)) {
+ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for RESTORE invalid!\n"));
+ break;
+ }
+
+ SmmLockBoxRestore ((EFI_SMM_LOCK_BOX_PARAMETER_RESTORE *)(UINTN)LockBoxParameterHeader);
break;
- }
- SmmLockBoxRestore ((EFI_SMM_LOCK_BOX_PARAMETER_RESTORE *)(UINTN)LockBoxParameterHeader);
- break;
- case EFI_SMM_LOCK_BOX_COMMAND_SET_ATTRIBUTES:
- if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES)) {
- DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for SET_ATTRIBUTES invalid!\n"));
+ case EFI_SMM_LOCK_BOX_COMMAND_SET_ATTRIBUTES:
+ if (TempCommBufferSize < sizeof (EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES)) {
+ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for SET_ATTRIBUTES invalid!\n"));
+ break;
+ }
+
+ SmmLockBoxSetAttributes ((EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES *)(UINTN)LockBoxParameterHeader);
break;
- }
- SmmLockBoxSetAttributes ((EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES *)(UINTN)LockBoxParameterHeader);
- break;
- case EFI_SMM_LOCK_BOX_COMMAND_RESTORE_ALL_IN_PLACE:
- if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE)) {
- DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for RESTORE_ALL_IN_PLACE invalid!\n"));
+ case EFI_SMM_LOCK_BOX_COMMAND_RESTORE_ALL_IN_PLACE:
+ if (TempCommBufferSize < sizeof (EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE)) {
+ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for RESTORE_ALL_IN_PLACE invalid!\n"));
+ break;
+ }
+
+ SmmLockBoxRestoreAllInPlace ((EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE *)(UINTN)LockBoxParameterHeader);
+ break;
+ default:
+ DEBUG ((DEBUG_ERROR, "SmmLockBox Command invalid!\n"));
break;
- }
- SmmLockBoxRestoreAllInPlace ((EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE *)(UINTN)LockBoxParameterHeader);
- break;
- default:
- DEBUG ((DEBUG_ERROR, "SmmLockBox Command invalid!\n"));
- break;
}
LockBoxParameterHeader->Command = (UINT32)-1;
@@ -394,9 +403,9 @@ SmmLockBoxEntryPoint (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_HANDLE DispatchHandle;
- VOID *Registration;
+ EFI_STATUS Status;
+ EFI_HANDLE DispatchHandle;
+ VOID *Registration;
//
// Register LockBox communication handler
@@ -422,12 +431,12 @@ SmmLockBoxEntryPoint (
// Install NULL to DXE data base as notify
//
ImageHandle = NULL;
- Status = gBS->InstallProtocolInterface (
- &ImageHandle,
- &gEfiLockBoxProtocolGuid,
- EFI_NATIVE_INTERFACE,
- NULL
- );
+ Status = gBS->InstallProtocolInterface (
+ &ImageHandle,
+ &gEfiLockBoxProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ NULL
+ );
ASSERT_EFI_ERROR (Status);
return Status;
diff --git a/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.c b/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.c
index 7fd383a..8b993a7 100644
--- a/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.c
+++ b/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.c
@@ -14,12 +14,12 @@
// protocol, so we do not need to dynamically allocate the PrivateData.
//
EFI_PHYSICAL_ADDRESS mCurrentAddress;
-LIST_ENTRY *mCurrentLink;
+LIST_ENTRY *mCurrentLink;
NONTESTED_MEMORY_RANGE *mCurrentRange;
UINT64 mTestedSystemMemory;
UINT64 mNonTestedSystemMemory;
-UINT32 GenericMemoryTestMonoPattern[GENERIC_CACHELINE_SIZE / 4] = {
+UINT32 GenericMemoryTestMonoPattern[GENERIC_CACHELINE_SIZE / 4] = {
0x5a5a5a5a,
0xa5a5a5a5,
0x5a5a5a5a,
@@ -60,18 +60,20 @@ UINT32 GenericMemoryTestMonoPattern[GENERIC_CACHELINE_SIZE / 4]
INTN
EFIAPI
CompareMemWithoutCheckArgument (
- IN CONST VOID *DestinationBuffer,
- IN CONST VOID *SourceBuffer,
- IN UINTN Length
+ IN CONST VOID *DestinationBuffer,
+ IN CONST VOID *SourceBuffer,
+ IN UINTN Length
)
{
ASSERT (Length > 0);
while ((--Length != 0) &&
- (*(INT8*)DestinationBuffer == *(INT8*)SourceBuffer)) {
- DestinationBuffer = (INT8*)DestinationBuffer + 1;
- SourceBuffer = (INT8*)SourceBuffer + 1;
+ (*(INT8 *)DestinationBuffer == *(INT8 *)SourceBuffer))
+ {
+ DestinationBuffer = (INT8 *)DestinationBuffer + 1;
+ SourceBuffer = (INT8 *)SourceBuffer + 1;
}
- return (INTN)*(UINT8*)DestinationBuffer - (INTN)*(UINT8*)SourceBuffer;
+
+ return (INTN)*(UINT8 *)DestinationBuffer - (INTN)*(UINT8 *)SourceBuffer;
}
/**
@@ -89,9 +91,9 @@ ConstructBaseMemoryRange (
IN GENERIC_MEMORY_TEST_PRIVATE *Private
)
{
- UINTN NumberOfDescriptors;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;
- UINTN Index;
+ UINTN NumberOfDescriptors;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;
+ UINTN Index;
//
// Base memory will always below 4G
@@ -100,7 +102,8 @@ ConstructBaseMemoryRange (
for (Index = 0; Index < NumberOfDescriptors; Index++) {
if ((MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeSystemMemory) ||
- (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeMoreReliable)) {
+ (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeMoreReliable))
+ {
Private->BaseMemorySize += MemorySpaceMap[Index].Length;
}
}
@@ -119,7 +122,7 @@ DestroyLinkList (
IN GENERIC_MEMORY_TEST_PRIVATE *Private
)
{
- LIST_ENTRY *Link;
+ LIST_ENTRY *Link;
NONTESTED_MEMORY_RANGE *NontestedRange;
Link = Private->NonTestedMemRanList.BackLink;
@@ -128,7 +131,7 @@ DestroyLinkList (
RemoveEntryList (Link);
NontestedRange = NONTESTED_MEMORY_RANGE_FROM_LINK (Link);
gBS->FreePool (NontestedRange);
- Link = Private->NonTestedMemRanList.BackLink;;
+ Link = Private->NonTestedMemRanList.BackLink;
}
}
@@ -144,12 +147,13 @@ DestroyLinkList (
**/
EFI_STATUS
ConvertToTestedMemory (
- IN UINT64 BaseAddress,
- IN UINT64 Length,
- IN UINT64 Capabilities
+ IN UINT64 BaseAddress,
+ IN UINT64 Length,
+ IN UINT64 Capabilities
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
+
Status = gDS->RemoveMemorySpace (
BaseAddress,
Length
@@ -164,6 +168,7 @@ ConvertToTestedMemory (
(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
);
}
+
return Status;
}
@@ -181,7 +186,7 @@ UpdateMemoryMap (
IN GENERIC_MEMORY_TEST_PRIVATE *Private
)
{
- LIST_ENTRY *Link;
+ LIST_ENTRY *Link;
NONTESTED_MEMORY_RANGE *Range;
Link = Private->NonTestedMemRanList.ForwardLink;
@@ -235,15 +240,16 @@ DirectRangeTest (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Add the tested compatible memory to system memory using GCD service
//
ConvertToTestedMemory (
- StartAddress,
- Length,
- Capabilities &~
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
- );
+ StartAddress,
+ Length,
+ Capabilities &~
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
+ );
return EFI_SUCCESS;
}
@@ -263,11 +269,11 @@ ConstructNonTestedMemoryRange (
IN GENERIC_MEMORY_TEST_PRIVATE *Private
)
{
- NONTESTED_MEMORY_RANGE *Range;
- BOOLEAN NoFound;
- UINTN NumberOfDescriptors;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;
- UINTN Index;
+ NONTESTED_MEMORY_RANGE *Range;
+ BOOLEAN NoFound;
+ UINTN NumberOfDescriptors;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;
+ UINTN Index;
//
// Non tested memory range may be span 4G here
@@ -277,19 +283,20 @@ ConstructNonTestedMemoryRange (
gDS->GetMemorySpaceMap (&NumberOfDescriptors, &MemorySpaceMap);
for (Index = 0; Index < NumberOfDescriptors; Index++) {
- if (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeReserved &&
- (MemorySpaceMap[Index].Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED)
- ) {
+ if ((MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeReserved) &&
+ ((MemorySpaceMap[Index].Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED))
+ )
+ {
NoFound = FALSE;
//
// Light version do not need to process >4G memory range
//
gBS->AllocatePool (
- EfiBootServicesData,
- sizeof (NONTESTED_MEMORY_RANGE),
- (VOID **) &Range
- );
+ EfiBootServicesData,
+ sizeof (NONTESTED_MEMORY_RANGE),
+ (VOID **)&Range
+ );
Range->Signature = EFI_NONTESTED_MEMORY_RANGE_SIGNATURE;
Range->StartAddress = MemorySpaceMap[Index].BaseAddress;
@@ -339,9 +346,10 @@ WriteMemory (
}
while (Address < (Start + Size)) {
- CopyMem ((VOID *) (UINTN) Address, Private->MonoPattern, Private->MonoTestSize);
+ CopyMem ((VOID *)(UINTN)Address, Private->MonoPattern, Private->MonoTestSize);
Address += Private->CoverageSpan;
}
+
//
// bug bug: we may need GCD service to make the code cache and data uncache,
// if GCD do not support it or return fail, then just flush the whole cache.
@@ -396,10 +404,10 @@ VerifyMemory (
//
while (Address < (Start + Size)) {
ErrorFound = CompareMemWithoutCheckArgument (
- (VOID *) (UINTN) (Address),
- Private->MonoPattern,
- Private->MonoTestSize
- );
+ (VOID *)(UINTN)(Address),
+ Private->MonoPattern,
+ Private->MonoTestSize
+ );
if (ErrorFound != 0) {
//
// Report uncorrectable errors
@@ -409,23 +417,23 @@ VerifyMemory (
return EFI_OUT_OF_RESOURCES;
}
- ExtendedErrorData->DataHeader.HeaderSize = (UINT16) sizeof (EFI_STATUS_CODE_DATA);
- ExtendedErrorData->DataHeader.Size = (UINT16) (sizeof (EFI_MEMORY_EXTENDED_ERROR_DATA) - sizeof (EFI_STATUS_CODE_DATA));
- ExtendedErrorData->Granularity = EFI_MEMORY_ERROR_DEVICE;
- ExtendedErrorData->Operation = EFI_MEMORY_OPERATION_READ;
- ExtendedErrorData->Syndrome = 0x0;
- ExtendedErrorData->Address = Address;
- ExtendedErrorData->Resolution = 0x40;
+ ExtendedErrorData->DataHeader.HeaderSize = (UINT16)sizeof (EFI_STATUS_CODE_DATA);
+ ExtendedErrorData->DataHeader.Size = (UINT16)(sizeof (EFI_MEMORY_EXTENDED_ERROR_DATA) - sizeof (EFI_STATUS_CODE_DATA));
+ ExtendedErrorData->Granularity = EFI_MEMORY_ERROR_DEVICE;
+ ExtendedErrorData->Operation = EFI_MEMORY_OPERATION_READ;
+ ExtendedErrorData->Syndrome = 0x0;
+ ExtendedErrorData->Address = Address;
+ ExtendedErrorData->Resolution = 0x40;
REPORT_STATUS_CODE_EX (
- EFI_ERROR_CODE,
- EFI_COMPUTING_UNIT_MEMORY | EFI_CU_MEMORY_EC_UNCORRECTABLE,
- 0,
- &gEfiGenericMemTestProtocolGuid,
- NULL,
- (UINT8 *) ExtendedErrorData + sizeof (EFI_STATUS_CODE_DATA),
- ExtendedErrorData->DataHeader.Size
- );
+ EFI_ERROR_CODE,
+ EFI_COMPUTING_UNIT_MEMORY | EFI_CU_MEMORY_EC_UNCORRECTABLE,
+ 0,
+ &gEfiGenericMemTestProtocolGuid,
+ NULL,
+ (UINT8 *)ExtendedErrorData + sizeof (EFI_STATUS_CODE_DATA),
+ ExtendedErrorData->DataHeader.Size
+ );
return EFI_DEVICE_ERROR;
}
@@ -450,14 +458,14 @@ VerifyMemory (
EFI_STATUS
EFIAPI
InitializeMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EXTENDMEM_COVERAGE_LEVEL Level,
- OUT BOOLEAN *RequireSoftECCInit
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EXTENDMEM_COVERAGE_LEVEL Level,
+ OUT BOOLEAN *RequireSoftECCInit
)
{
- EFI_STATUS Status;
- GENERIC_MEMORY_TEST_PRIVATE *Private;
- EFI_CPU_ARCH_PROTOCOL *Cpu;
+ EFI_STATUS Status;
+ GENERIC_MEMORY_TEST_PRIVATE *Private;
+ EFI_CPU_ARCH_PROTOCOL *Cpu;
Private = GENERIC_MEMORY_TEST_PRIVATE_FROM_THIS (This);
*RequireSoftECCInit = FALSE;
@@ -487,31 +495,33 @@ InitializeMemoryTest (
Status = gBS->LocateProtocol (
&gEfiCpuArchProtocolGuid,
NULL,
- (VOID **) &Cpu
+ (VOID **)&Cpu
);
if (!EFI_ERROR (Status)) {
Private->Cpu = Cpu;
}
+
//
// Create the CoverageSpan of the memory test base on the coverage level
//
switch (Private->CoverLevel) {
- case EXTENSIVE:
- Private->CoverageSpan = GENERIC_CACHELINE_SIZE;
- break;
+ case EXTENSIVE:
+ Private->CoverageSpan = GENERIC_CACHELINE_SIZE;
+ break;
- case SPARSE:
- Private->CoverageSpan = SPARSE_SPAN_SIZE;
- break;
+ case SPARSE:
+ Private->CoverageSpan = SPARSE_SPAN_SIZE;
+ break;
- //
- // Even the BDS do not need to test any memory, but in some case it
- // still need to init ECC memory.
- //
- default:
- Private->CoverageSpan = QUICK_SPAN_SIZE;
- break;
+ //
+ // Even the BDS do not need to test any memory, but in some case it
+ // still need to init ECC memory.
+ //
+ default:
+ Private->CoverageSpan = QUICK_SPAN_SIZE;
+ break;
}
+
//
// This is the first time we construct the non-tested memory range, if no
// extended memory found, we know the system have not any extended memory
@@ -521,6 +531,7 @@ InitializeMemoryTest (
if (Status == EFI_NOT_FOUND) {
return EFI_NO_MEDIA;
}
+
//
// ready to perform the R/W/V memory test
//
@@ -550,11 +561,11 @@ InitializeMemoryTest (
EFI_STATUS
EFIAPI
GenPerformMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- OUT UINT64 *TestedMemorySize,
- OUT UINT64 *TotalMemorySize,
- OUT BOOLEAN *ErrorOut,
- IN BOOLEAN TestAbort
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ OUT UINT64 *TestedMemorySize,
+ OUT UINT64 *TotalMemorySize,
+ OUT BOOLEAN *ErrorOut,
+ IN BOOLEAN TestAbort
)
{
EFI_STATUS Status;
@@ -578,31 +589,33 @@ GenPerformMemoryTest (
} else {
BlockBoundary = mCurrentRange->StartAddress + mCurrentRange->Length - mCurrentAddress;
}
+
//
// If TestAbort is true, means user cancel the memory test
//
- if (!TestAbort && Private->CoverLevel != IGNORE) {
+ if (!TestAbort && (Private->CoverLevel != IGNORE)) {
//
// Report status code of every memory range
//
- RangeData = AllocateZeroPool (sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA));
+ RangeData = AllocateZeroPool (sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA));
if (RangeData == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- RangeData->DataHeader.HeaderSize = (UINT16) sizeof (EFI_STATUS_CODE_DATA);
- RangeData->DataHeader.Size = (UINT16) (sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA) - sizeof (EFI_STATUS_CODE_DATA));
- RangeData->Start = mCurrentAddress;
- RangeData->Length = BlockBoundary;
+
+ RangeData->DataHeader.HeaderSize = (UINT16)sizeof (EFI_STATUS_CODE_DATA);
+ RangeData->DataHeader.Size = (UINT16)(sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA) - sizeof (EFI_STATUS_CODE_DATA));
+ RangeData->Start = mCurrentAddress;
+ RangeData->Length = BlockBoundary;
REPORT_STATUS_CODE_EX (
- EFI_PROGRESS_CODE,
- EFI_COMPUTING_UNIT_MEMORY | EFI_CU_MEMORY_PC_TEST,
- 0,
- &gEfiGenericMemTestProtocolGuid,
- NULL,
- (UINT8 *) RangeData + sizeof (EFI_STATUS_CODE_DATA),
- RangeData->DataHeader.Size
- );
+ EFI_PROGRESS_CODE,
+ EFI_COMPUTING_UNIT_MEMORY | EFI_CU_MEMORY_PC_TEST,
+ 0,
+ &gEfiGenericMemTestProtocolGuid,
+ NULL,
+ (UINT8 *)RangeData + sizeof (EFI_STATUS_CODE_DATA),
+ RangeData->DataHeader.Size
+ );
//
// The software memory test (R/W/V) perform here. It will detect the
@@ -622,7 +635,7 @@ GenPerformMemoryTest (
}
mTestedSystemMemory += BlockBoundary;
- *TestedMemorySize = mTestedSystemMemory;
+ *TestedMemorySize = mTestedSystemMemory;
//
// If the memory test restart after the platform driver disable dimms,
@@ -638,6 +651,7 @@ GenPerformMemoryTest (
return EFI_SUCCESS;
}
+
//
// Change to next non tested memory range
//
@@ -654,7 +668,6 @@ GenPerformMemoryTest (
*TotalMemorySize = Private->BaseMemorySize + mNonTestedSystemMemory;
return EFI_NOT_FOUND;
}
-
}
/**
@@ -668,11 +681,11 @@ GenPerformMemoryTest (
EFI_STATUS
EFIAPI
GenMemoryTestFinished (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
)
{
- EFI_STATUS Status;
- GENERIC_MEMORY_TEST_PRIVATE *Private;
+ EFI_STATUS Status;
+ GENERIC_MEMORY_TEST_PRIVATE *Private;
Private = GENERIC_MEMORY_TEST_PRIVATE_FROM_THIS (This);
@@ -712,16 +725,16 @@ GenMemoryTestFinished (
EFI_STATUS
EFIAPI
GenCompatibleRangeTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EFI_PHYSICAL_ADDRESS StartAddress,
- IN UINT64 Length
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS StartAddress,
+ IN UINT64 Length
)
{
- EFI_STATUS Status;
- GENERIC_MEMORY_TEST_PRIVATE *Private;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR Descriptor;
- EFI_PHYSICAL_ADDRESS CurrentBase;
- UINT64 CurrentLength;
+ EFI_STATUS Status;
+ GENERIC_MEMORY_TEST_PRIVATE *Private;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR Descriptor;
+ EFI_PHYSICAL_ADDRESS CurrentBase;
+ UINT64 CurrentLength;
Private = GENERIC_MEMORY_TEST_PRIVATE_FROM_THIS (This);
@@ -731,6 +744,7 @@ GenCompatibleRangeTest (
if (StartAddress + Length > 0x1000000) {
return EFI_INVALID_PARAMETER;
}
+
CurrentBase = StartAddress;
do {
//
@@ -745,14 +759,16 @@ GenCompatibleRangeTest (
return Status;
}
- if (Descriptor.GcdMemoryType == EfiGcdMemoryTypeReserved &&
- (Descriptor.Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED)
- ) {
+ if ((Descriptor.GcdMemoryType == EfiGcdMemoryTypeReserved) &&
+ ((Descriptor.Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED))
+ )
+ {
CurrentLength = Descriptor.BaseAddress + Descriptor.Length - CurrentBase;
if (CurrentBase + CurrentLength > StartAddress + Length) {
CurrentLength = StartAddress + Length - CurrentBase;
}
+
Status = DirectRangeTest (
Private,
CurrentBase,
@@ -763,8 +779,10 @@ GenCompatibleRangeTest (
return Status;
}
}
+
CurrentBase = Descriptor.BaseAddress + Descriptor.Length;
} while (CurrentBase < StartAddress + Length);
+
//
// Here means the required range already be tested, so just return success.
//
@@ -784,7 +802,7 @@ GenCompatibleRangeTest (
**/
EFI_STATUS
PerformAddressDataLineTest (
- IN GENERIC_MEMORY_TEST_PRIVATE *Private
+ IN GENERIC_MEMORY_TEST_PRIVATE *Private
)
{
LIST_ENTRY *ExtendedLink;
@@ -795,7 +813,7 @@ PerformAddressDataLineTest (
//
// Light version no data line test, only perform the address line test
//
- TestAddress = (EFI_PHYSICAL_ADDRESS) 0x1;
+ TestAddress = (EFI_PHYSICAL_ADDRESS)0x1;
while (TestAddress < MAX_ADDRESS && TestAddress > 0) {
//
// only test if the address falls in the enabled range
@@ -806,7 +824,8 @@ PerformAddressDataLineTest (
ExtendedRange = NONTESTED_MEMORY_RANGE_FROM_LINK (ExtendedLink);
if ((TestAddress >= ExtendedRange->StartAddress) &&
(TestAddress < (ExtendedRange->StartAddress + ExtendedRange->Length))
- ) {
+ )
+ {
InExtendedRange = TRUE;
}
@@ -814,9 +833,9 @@ PerformAddressDataLineTest (
}
if (InExtendedRange) {
- *(EFI_PHYSICAL_ADDRESS *) (UINTN) TestAddress = TestAddress;
+ *(EFI_PHYSICAL_ADDRESS *)(UINTN)TestAddress = TestAddress;
Private->Cpu->FlushDataCache (Private->Cpu, TestAddress, 1, EfiCpuFlushTypeWriteBackInvalidate);
- if (*(EFI_PHYSICAL_ADDRESS *) (UINTN) TestAddress != TestAddress) {
+ if (*(EFI_PHYSICAL_ADDRESS *)(UINTN)TestAddress != TestAddress) {
return EFI_ACCESS_DENIED;
}
}
@@ -826,10 +845,11 @@ PerformAddressDataLineTest (
return EFI_SUCCESS;
}
+
//
// Driver entry here
//
-GENERIC_MEMORY_TEST_PRIVATE mGenericMemoryTestPrivate = {
+GENERIC_MEMORY_TEST_PRIVATE mGenericMemoryTestPrivate = {
EFI_GENERIC_MEMORY_TEST_PRIVATE_SIGNATURE,
NULL,
NULL,
@@ -839,7 +859,7 @@ GENERIC_MEMORY_TEST_PRIVATE mGenericMemoryTestPrivate = {
GenMemoryTestFinished,
GenCompatibleRangeTest
},
- (EXTENDMEM_COVERAGE_LEVEL) 0,
+ (EXTENDMEM_COVERAGE_LEVEL)0,
0,
0,
NULL,
@@ -867,8 +887,8 @@ GENERIC_MEMORY_TEST_PRIVATE mGenericMemoryTestPrivate = {
EFI_STATUS
EFIAPI
GenericMemoryTestEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -879,8 +899,8 @@ GenericMemoryTestEntryPoint (
//
// Use the generic pattern to test compatible memory range
//
- mGenericMemoryTestPrivate.MonoPattern = GenericMemoryTestMonoPattern;
- mGenericMemoryTestPrivate.MonoTestSize = GENERIC_CACHELINE_SIZE;
+ mGenericMemoryTestPrivate.MonoPattern = GenericMemoryTestMonoPattern;
+ mGenericMemoryTestPrivate.MonoTestSize = GENERIC_CACHELINE_SIZE;
//
// Get the platform boot mode
@@ -899,19 +919,20 @@ GenericMemoryTestEntryPoint (
// level and span size for compatible memory test using
//
switch (BootMode) {
- case BOOT_WITH_FULL_CONFIGURATION:
- case BOOT_WITH_DEFAULT_SETTINGS:
- mGenericMemoryTestPrivate.CoverageSpan = SPARSE_SPAN_SIZE;
- break;
-
- case BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS:
- mGenericMemoryTestPrivate.CoverageSpan = GENERIC_CACHELINE_SIZE;
- break;
-
- default:
- mGenericMemoryTestPrivate.CoverageSpan = QUICK_SPAN_SIZE;
- break;
+ case BOOT_WITH_FULL_CONFIGURATION:
+ case BOOT_WITH_DEFAULT_SETTINGS:
+ mGenericMemoryTestPrivate.CoverageSpan = SPARSE_SPAN_SIZE;
+ break;
+
+ case BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS:
+ mGenericMemoryTestPrivate.CoverageSpan = GENERIC_CACHELINE_SIZE;
+ break;
+
+ default:
+ mGenericMemoryTestPrivate.CoverageSpan = QUICK_SPAN_SIZE;
+ break;
}
+
//
// Install the protocol
//
diff --git a/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.h b/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.h
index 72e58ae..9806881 100644
--- a/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.h
+++ b/MdeModulePkg/Universal/MemoryTest/GenericMemoryTestDxe/LightMemoryTest.h
@@ -50,13 +50,13 @@
#define EFI_NONTESTED_MEMORY_RANGE_SIGNATURE SIGNATURE_32 ('N', 'T', 'M', 'E')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
- EFI_PHYSICAL_ADDRESS StartAddress;
- UINT64 Length;
- UINT64 Capabilities;
- BOOLEAN Above4G;
- BOOLEAN AlreadyMapped;
+ UINTN Signature;
+ LIST_ENTRY Link;
+ EFI_PHYSICAL_ADDRESS StartAddress;
+ UINT64 Length;
+ UINT64 Capabilities;
+ BOOLEAN Above4G;
+ BOOLEAN AlreadyMapped;
} NONTESTED_MEMORY_RANGE;
#define NONTESTED_MEMORY_RANGE_FROM_LINK(link) \
@@ -70,46 +70,44 @@ typedef struct {
//
// This is the memory test driver's structure definition
//
-#define EFI_GENERIC_MEMORY_TEST_PRIVATE_SIGNATURE SIGNATURE_32 ('G', 'E', 'M', 'T')
+#define EFI_GENERIC_MEMORY_TEST_PRIVATE_SIGNATURE SIGNATURE_32 ('G', 'E', 'M', 'T')
typedef struct {
-
- UINTN Signature;
- EFI_HANDLE Handle;
+ UINTN Signature;
+ EFI_HANDLE Handle;
//
// Cpu arch protocol's pointer
//
- EFI_CPU_ARCH_PROTOCOL *Cpu;
+ EFI_CPU_ARCH_PROTOCOL *Cpu;
//
// generic memory test driver's protocol
//
- EFI_GENERIC_MEMORY_TEST_PROTOCOL GenericMemoryTest;
+ EFI_GENERIC_MEMORY_TEST_PROTOCOL GenericMemoryTest;
//
// memory test covered spans
//
- EXTENDMEM_COVERAGE_LEVEL CoverLevel;
- UINTN CoverageSpan;
- UINT64 BdsBlockSize;
+ EXTENDMEM_COVERAGE_LEVEL CoverLevel;
+ UINTN CoverageSpan;
+ UINT64 BdsBlockSize;
//
// the memory test pattern and size every time R/W/V memory
//
- VOID *MonoPattern;
- UINTN MonoTestSize;
+ VOID *MonoPattern;
+ UINTN MonoTestSize;
//
// base memory's size which tested in PEI phase
//
- UINT64 BaseMemorySize;
+ UINT64 BaseMemorySize;
//
// memory range list
//
- LIST_ENTRY NonTestedMemRanList;
-
+ LIST_ENTRY NonTestedMemRanList;
} GENERIC_MEMORY_TEST_PRIVATE;
#define GENERIC_MEMORY_TEST_PRIVATE_FROM_THIS(a) \
@@ -167,7 +165,7 @@ ConstructNonTestedMemoryRange (
**/
EFI_STATUS
PerformAddressDataLineTest (
- IN GENERIC_MEMORY_TEST_PRIVATE *Private
+ IN GENERIC_MEMORY_TEST_PRIVATE *Private
);
/**
@@ -268,9 +266,9 @@ DirectRangeTest (
EFI_STATUS
EFIAPI
InitializeMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EXTENDMEM_COVERAGE_LEVEL Level,
- OUT BOOLEAN *RequireSoftECCInit
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EXTENDMEM_COVERAGE_LEVEL Level,
+ OUT BOOLEAN *RequireSoftECCInit
);
/**
@@ -291,11 +289,11 @@ InitializeMemoryTest (
EFI_STATUS
EFIAPI
GenPerformMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- OUT UINT64 *TestedMemorySize,
- OUT UINT64 *TotalMemorySize,
- OUT BOOLEAN *ErrorOut,
- IN BOOLEAN TestAbort
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ OUT UINT64 *TestedMemorySize,
+ OUT UINT64 *TotalMemorySize,
+ OUT BOOLEAN *ErrorOut,
+ IN BOOLEAN TestAbort
);
/**
@@ -309,7 +307,7 @@ GenPerformMemoryTest (
EFI_STATUS
EFIAPI
GenMemoryTestFinished (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
);
/**
@@ -327,9 +325,9 @@ GenMemoryTestFinished (
EFI_STATUS
EFIAPI
GenCompatibleRangeTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EFI_PHYSICAL_ADDRESS StartAddress,
- IN UINT64 Length
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS StartAddress,
+ IN UINT64 Length
);
#endif
diff --git a/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c b/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c
index 9c01610..846f9b8 100644
--- a/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c
+++ b/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.c
@@ -6,12 +6,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "NullMemoryTest.h"
-UINT64 mTestedSystemMemory = 0;
-UINT64 mTotalSystemMemory = 0;
-EFI_HANDLE mGenericMemoryTestHandle;
+UINT64 mTestedSystemMemory = 0;
+UINT64 mTotalSystemMemory = 0;
+EFI_HANDLE mGenericMemoryTestHandle;
EFI_GENERIC_MEMORY_TEST_PROTOCOL mGenericMemoryTest = {
InitializeMemoryTest,
@@ -35,8 +34,8 @@ EFI_GENERIC_MEMORY_TEST_PROTOCOL mGenericMemoryTest = {
EFI_STATUS
EFIAPI
GenericMemoryTestEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -64,12 +63,13 @@ GenericMemoryTestEntryPoint (
**/
EFI_STATUS
ConvertToTestedMemory (
- IN UINT64 BaseAddress,
- IN UINT64 Length,
- IN UINT64 Capabilities
+ IN UINT64 BaseAddress,
+ IN UINT64 Length,
+ IN UINT64 Capabilities
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
+
Status = gDS->RemoveMemorySpace (
BaseAddress,
Length
@@ -84,6 +84,7 @@ ConvertToTestedMemory (
(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)
);
}
+
return Status;
}
@@ -107,22 +108,23 @@ ConvertToTestedMemory (
EFI_STATUS
EFIAPI
InitializeMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EXTENDMEM_COVERAGE_LEVEL Level,
- OUT BOOLEAN *RequireSoftECCInit
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EXTENDMEM_COVERAGE_LEVEL Level,
+ OUT BOOLEAN *RequireSoftECCInit
)
{
- EFI_STATUS Status;
- UINTN NumberOfDescriptors;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;
- UINTN Index;
+ EFI_STATUS Status;
+ UINTN NumberOfDescriptors;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR *MemorySpaceMap;
+ UINTN Index;
gDS->GetMemorySpaceMap (&NumberOfDescriptors, &MemorySpaceMap);
for (Index = 0; Index < NumberOfDescriptors; Index++) {
- if (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeReserved &&
- (MemorySpaceMap[Index].Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED)
- ) {
+ if ((MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeReserved) &&
+ ((MemorySpaceMap[Index].Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED))
+ )
+ {
//
// For those reserved memory that have not been tested, simply promote to system memory.
//
@@ -133,9 +135,10 @@ InitializeMemoryTest (
);
ASSERT_EFI_ERROR (Status);
mTestedSystemMemory += MemorySpaceMap[Index].Length;
- mTotalSystemMemory += MemorySpaceMap[Index].Length;
+ mTotalSystemMemory += MemorySpaceMap[Index].Length;
} else if ((MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeSystemMemory) ||
- (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeMoreReliable)) {
+ (MemorySpaceMap[Index].GcdMemoryType == EfiGcdMemoryTypeMoreReliable))
+ {
mTotalSystemMemory += MemorySpaceMap[Index].Length;
}
}
@@ -172,11 +175,11 @@ InitializeMemoryTest (
EFI_STATUS
EFIAPI
GenPerformMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN OUT UINT64 *TestedMemorySize,
- OUT UINT64 *TotalMemorySize,
- OUT BOOLEAN *ErrorOut,
- IN BOOLEAN TestAbort
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN OUT UINT64 *TestedMemorySize,
+ OUT UINT64 *TotalMemorySize,
+ OUT BOOLEAN *ErrorOut,
+ IN BOOLEAN TestAbort
)
{
*ErrorOut = FALSE;
@@ -184,7 +187,6 @@ GenPerformMemoryTest (
*TotalMemorySize = mTotalSystemMemory;
return EFI_NOT_FOUND;
-
}
/**
@@ -203,7 +205,7 @@ GenPerformMemoryTest (
EFI_STATUS
EFIAPI
GenMemoryTestFinished (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
)
{
return EFI_SUCCESS;
@@ -227,15 +229,15 @@ GenMemoryTestFinished (
EFI_STATUS
EFIAPI
GenCompatibleRangeTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EFI_PHYSICAL_ADDRESS StartAddress,
- IN UINT64 Length
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS StartAddress,
+ IN UINT64 Length
)
{
- EFI_STATUS Status;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR Descriptor;
- EFI_PHYSICAL_ADDRESS CurrentBase;
- UINT64 CurrentLength;
+ EFI_STATUS Status;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR Descriptor;
+ EFI_PHYSICAL_ADDRESS CurrentBase;
+ UINT64 CurrentLength;
//
// Check if the parameter is below 16MB
@@ -243,6 +245,7 @@ GenCompatibleRangeTest (
if (StartAddress + Length > SIZE_16MB) {
return EFI_INVALID_PARAMETER;
}
+
CurrentBase = StartAddress;
do {
//
@@ -257,14 +260,16 @@ GenCompatibleRangeTest (
return Status;
}
- if (Descriptor.GcdMemoryType == EfiGcdMemoryTypeReserved &&
- (Descriptor.Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
- (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED)
- ) {
+ if ((Descriptor.GcdMemoryType == EfiGcdMemoryTypeReserved) &&
+ ((Descriptor.Capabilities & (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED | EFI_MEMORY_TESTED)) ==
+ (EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED))
+ )
+ {
CurrentLength = Descriptor.BaseAddress + Descriptor.Length - CurrentBase;
if (CurrentBase + CurrentLength > StartAddress + Length) {
CurrentLength = StartAddress + Length - CurrentBase;
}
+
Status = ConvertToTestedMemory (
CurrentBase,
CurrentLength,
@@ -274,11 +279,12 @@ GenCompatibleRangeTest (
return Status;
}
}
+
CurrentBase = Descriptor.BaseAddress + Descriptor.Length;
} while (CurrentBase < StartAddress + Length);
+
//
// Here means the required range already be tested, so just return success.
//
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h b/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
index cee9b78..5200600 100644
--- a/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
+++ b/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTest.h
@@ -9,10 +9,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _NULL_MEMORY_TEST_H_
#define _NULL_MEMORY_TEST_H_
-
#include <PiDxe.h>
-
#include <Protocol/GenericMemoryTest.h>
#include <Library/DebugLib.h>
@@ -48,9 +46,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
InitializeMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EXTENDMEM_COVERAGE_LEVEL Level,
- OUT BOOLEAN *RequireSoftECCInit
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EXTENDMEM_COVERAGE_LEVEL Level,
+ OUT BOOLEAN *RequireSoftECCInit
);
/**
@@ -79,11 +77,11 @@ InitializeMemoryTest (
EFI_STATUS
EFIAPI
GenPerformMemoryTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN OUT UINT64 *TestedMemorySize,
- OUT UINT64 *TotalMemorySize,
- OUT BOOLEAN *ErrorOut,
- IN BOOLEAN TestAbort
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN OUT UINT64 *TestedMemorySize,
+ OUT UINT64 *TotalMemorySize,
+ OUT BOOLEAN *ErrorOut,
+ IN BOOLEAN TestAbort
);
/**
@@ -102,7 +100,7 @@ GenPerformMemoryTest (
EFI_STATUS
EFIAPI
GenMemoryTestFinished (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This
);
/**
@@ -123,9 +121,9 @@ GenMemoryTestFinished (
EFI_STATUS
EFIAPI
GenCompatibleRangeTest (
- IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
- IN EFI_PHYSICAL_ADDRESS StartAddress,
- IN UINT64 Length
+ IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS StartAddress,
+ IN UINT64 Length
);
#endif
diff --git a/MdeModulePkg/Universal/Metronome/Metronome.c b/MdeModulePkg/Universal/Metronome/Metronome.c
index fdee1e3..023dd5b 100644
--- a/MdeModulePkg/Universal/Metronome/Metronome.c
+++ b/MdeModulePkg/Universal/Metronome/Metronome.c
@@ -26,7 +26,7 @@ EFI_HANDLE mMetronomeHandle = NULL;
//
// The Metronome Architectural Protocol instance produced by this driver
//
-EFI_METRONOME_ARCH_PROTOCOL mMetronome = {
+EFI_METRONOME_ARCH_PROTOCOL mMetronome = {
WaitForTick,
1 // TickPeriod = 1*100 ns units
};
@@ -78,6 +78,7 @@ WaitForTick (
//
MicroSecondDelay (TickNumber / 10);
}
+
return EFI_SUCCESS;
}
@@ -110,7 +111,8 @@ InstallMetronome (
//
Status = gBS->InstallMultipleProtocolInterfaces (
&mMetronomeHandle,
- &gEfiMetronomeArchProtocolGuid, &mMetronome,
+ &gEfiMetronomeArchProtocolGuid,
+ &mMetronome,
NULL
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounter.c b/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounter.c
index f74b0b8..60b6e93 100644
--- a/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounter.c
+++ b/MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounter.c
@@ -27,12 +27,12 @@ EFI_HANDLE mMonotonicCounterHandle = NULL;
//
// The current monotonic counter value
//
-UINT64 mEfiMtc;
+UINT64 mEfiMtc;
//
// Event to update the monotonic Counter's high part when low part overflows.
//
-EFI_EVENT mEfiMtcEvent;
+EFI_EVENT mEfiMtcEvent;
/**
Returns a monotonically increasing count for the platform.
@@ -59,7 +59,7 @@ MonotonicCounterDriverGetNextMonotonicCount (
OUT UINT64 *Count
)
{
- EFI_TPL OldTpl;
+ EFI_TPL OldTpl;
//
// Cannot be called after ExitBootServices()
@@ -67,17 +67,19 @@ MonotonicCounterDriverGetNextMonotonicCount (
if (EfiAtRuntime ()) {
return EFI_UNSUPPORTED;
}
+
//
// Check input parameters
//
if (Count == NULL) {
return EFI_INVALID_PARAMETER;
}
+
//
// Update the monotonic counter with a lock
//
- OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
- *Count = mEfiMtc;
+ OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
+ *Count = mEfiMtc;
mEfiMtc++;
gBS->RestoreTPL (OldTpl);
@@ -85,14 +87,13 @@ MonotonicCounterDriverGetNextMonotonicCount (
// If the low 32-bit counter overflows (MSB bit toggled),
// then signal that the high part needs update now.
//
- if ((((UINT32) mEfiMtc) ^ ((UINT32) *Count)) & BIT31) {
+ if ((((UINT32)mEfiMtc) ^ ((UINT32)*Count)) & BIT31) {
gBS->SignalEvent (mEfiMtcEvent);
}
return EFI_SUCCESS;
}
-
/**
Returns the next high 32 bits of the platform's monotonic counter.
@@ -132,7 +133,7 @@ MonotonicCounterDriverGetNextHighMonotonicCount (
OUT UINT32 *HighCount
)
{
- EFI_TPL OldTpl;
+ EFI_TPL OldTpl;
//
// Check input parameters
@@ -145,14 +146,15 @@ MonotonicCounterDriverGetNextHighMonotonicCount (
//
// Use a lock if called before ExitBootServices()
//
- OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
- *HighCount = (UINT32) RShiftU64 (mEfiMtc, 32) + 1;
- mEfiMtc = LShiftU64 (*HighCount, 32);
+ OldTpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
+ *HighCount = (UINT32)RShiftU64 (mEfiMtc, 32) + 1;
+ mEfiMtc = LShiftU64 (*HighCount, 32);
gBS->RestoreTPL (OldTpl);
} else {
- *HighCount = (UINT32) RShiftU64 (mEfiMtc, 32) + 1;
- mEfiMtc = LShiftU64 (*HighCount, 32);
+ *HighCount = (UINT32)RShiftU64 (mEfiMtc, 32) + 1;
+ mEfiMtc = LShiftU64 (*HighCount, 32);
}
+
//
// Update the NV variable to match the new high part
//
@@ -163,7 +165,6 @@ MonotonicCounterDriverGetNextHighMonotonicCount (
sizeof (UINT32),
HighCount
);
-
}
/**
@@ -176,8 +177,8 @@ MonotonicCounterDriverGetNextHighMonotonicCount (
VOID
EFIAPI
EfiMtcEventHandler (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
UINT32 HighCount;
@@ -226,16 +227,17 @@ MonotonicCounterDriverInitialize (
// Read the last high part
//
BufferSize = sizeof (UINT32);
- Status = EfiGetVariable (
- MTC_VARIABLE_NAME,
- &gMtcVendorGuid,
- NULL,
- &BufferSize,
- &HighCount
- );
+ Status = EfiGetVariable (
+ MTC_VARIABLE_NAME,
+ &gMtcVendorGuid,
+ NULL,
+ &BufferSize,
+ &HighCount
+ );
if (EFI_ERROR (Status)) {
HighCount = 0;
}
+
//
// Set the current value
//
@@ -251,8 +253,8 @@ MonotonicCounterDriverInitialize (
//
// Fill in the EFI Boot Services and EFI Runtime Services Monotonic Counter Fields
//
- gBS->GetNextMonotonicCount = MonotonicCounterDriverGetNextMonotonicCount;
- gRT->GetNextHighMonotonicCount = MonotonicCounterDriverGetNextHighMonotonicCount;
+ gBS->GetNextMonotonicCount = MonotonicCounterDriverGetNextMonotonicCount;
+ gRT->GetNextHighMonotonicCount = MonotonicCounterDriverGetNextHighMonotonicCount;
//
// Install the Monotonic Counter Architctural Protocol onto a new handle
diff --git a/MdeModulePkg/Universal/PCD/Dxe/Pcd.c b/MdeModulePkg/Universal/PCD/Dxe/Pcd.c
index 2a9135b..855ba3c 100644
--- a/MdeModulePkg/Universal/PCD/Dxe/Pcd.c
+++ b/MdeModulePkg/Universal/PCD/Dxe/Pcd.c
@@ -13,13 +13,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
///
/// PCD database lock.
///
-EFI_LOCK mPcdDatabaseLock = EFI_INITIALIZE_LOCK_VARIABLE(TPL_NOTIFY);
+EFI_LOCK mPcdDatabaseLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);
///
/// PCD_PROTOCOL the EDKII native implementation which support dynamic
/// type and dynamicEx type PCDs.
///
-PCD_PROTOCOL mPcdInstance = {
+PCD_PROTOCOL mPcdInstance = {
DxePcdSetSku,
DxePcdGet8,
@@ -62,7 +62,7 @@ PCD_PROTOCOL mPcdInstance = {
/// EFI_PCD_PROTOCOL is defined in PI 1.2 Vol 3 which only support dynamicEx type
/// PCD.
///
-EFI_PCD_PROTOCOL mEfiPcdInstance = {
+EFI_PCD_PROTOCOL mEfiPcdInstance = {
DxePcdSetSku,
DxePcdGet8Ex,
DxePcdGet16Ex,
@@ -77,8 +77,8 @@ EFI_PCD_PROTOCOL mEfiPcdInstance = {
DxePcdSet64Ex,
DxePcdSetPtrEx,
DxePcdSetBoolEx,
- (EFI_PCD_PROTOCOL_CALLBACK_ON_SET) DxeRegisterCallBackOnSet,
- (EFI_PCD_PROTOCOL_CANCEL_CALLBACK) DxeUnRegisterCallBackOnSet,
+ (EFI_PCD_PROTOCOL_CALLBACK_ON_SET)DxeRegisterCallBackOnSet,
+ (EFI_PCD_PROTOCOL_CANCEL_CALLBACK)DxeUnRegisterCallBackOnSet,
DxePcdGetNextToken,
DxePcdGetNextTokenSpace
};
@@ -87,7 +87,7 @@ EFI_PCD_PROTOCOL mEfiPcdInstance = {
/// Instance of GET_PCD_INFO_PROTOCOL protocol is EDKII native implementation.
/// This protocol instance support dynamic and dynamicEx type PCDs.
///
-GET_PCD_INFO_PROTOCOL mGetPcdInfoInstance = {
+GET_PCD_INFO_PROTOCOL mGetPcdInfoInstance = {
DxeGetPcdInfoGetInfo,
DxeGetPcdInfoGetInfoEx,
DxeGetPcdInfoGetSku
@@ -102,8 +102,8 @@ EFI_GET_PCD_INFO_PROTOCOL mEfiGetPcdInfoInstance = {
DxeGetPcdInfoGetSku
};
-EFI_HANDLE mPcdHandle = NULL;
-UINTN mVpdBaseAddress = 0;
+EFI_HANDLE mPcdHandle = NULL;
+UINTN mVpdBaseAddress = 0;
/**
Main entry for PCD DXE driver.
@@ -119,12 +119,12 @@ UINTN mVpdBaseAddress = 0;
EFI_STATUS
EFIAPI
PcdDxeInit (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- VOID *Registration;
+ EFI_STATUS Status;
+ VOID *Registration;
//
// Make sure the Pcd Protocol is not already installed in the system
@@ -140,8 +140,10 @@ PcdDxeInit (
//
Status = gBS->InstallMultipleProtocolInterfaces (
&mPcdHandle,
- &gPcdProtocolGuid, &mPcdInstance,
- &gEfiPcdProtocolGuid, &mEfiPcdInstance,
+ &gPcdProtocolGuid,
+ &mPcdInstance,
+ &gEfiPcdProtocolGuid,
+ &mEfiPcdInstance,
NULL
);
ASSERT_EFI_ERROR (Status);
@@ -152,8 +154,10 @@ PcdDxeInit (
//
Status = gBS->InstallMultipleProtocolInterfaces (
&mPcdHandle,
- &gGetPcdInfoProtocolGuid, &mGetPcdInfoInstance,
- &gEfiGetPcdInfoProtocolGuid, &mEfiGetPcdInfoInstance,
+ &gGetPcdInfoProtocolGuid,
+ &mGetPcdInfoInstance,
+ &gEfiGetPcdInfoProtocolGuid,
+ &mEfiGetPcdInfoInstance,
NULL
);
ASSERT_EFI_ERROR (Status);
@@ -177,12 +181,12 @@ PcdDxeInit (
//
// PcdVpdBaseAddress64 is DynamicEx PCD only. So, DxePcdGet64Ex() is used to get its value.
//
- mVpdBaseAddress = (UINTN) DxePcdGet64Ex (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdVpdBaseAddress64));
+ mVpdBaseAddress = (UINTN)DxePcdGet64Ex (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdVpdBaseAddress64));
if (mVpdBaseAddress == 0) {
//
// PcdVpdBaseAddress64 is not set, get value from PcdVpdBaseAddress.
//
- mVpdBaseAddress = (UINTN) PcdGet32 (PcdVpdBaseAddress);
+ mVpdBaseAddress = (UINTN)PcdGet32 (PcdVpdBaseAddress);
}
return Status;
@@ -204,8 +208,8 @@ PcdDxeInit (
EFI_STATUS
EFIAPI
DxeGetPcdInfoGetInfo (
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
return DxeGetPcdInfo (NULL, TokenNumber, PcdInfo);
@@ -228,9 +232,9 @@ DxeGetPcdInfoGetInfo (
EFI_STATUS
EFIAPI
DxeGetPcdInfoGetInfoEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
return DxeGetPcdInfo (Guid, TokenNumber, PcdInfo);
@@ -249,7 +253,7 @@ DxeGetPcdInfoGetSku (
VOID
)
{
- return (UINTN) mPcdDatabase.DxeDb->SystemSkuId;
+ return (UINTN)mPcdDatabase.DxeDb->SystemSkuId;
}
/**
@@ -276,14 +280,14 @@ DxeGetPcdInfoGetSku (
VOID
EFIAPI
DxePcdSetSku (
- IN UINTN SkuId
+ IN UINTN SkuId
)
{
- SKU_ID *SkuIdTable;
- UINTN Index;
- EFI_STATUS Status;
+ SKU_ID *SkuIdTable;
+ UINTN Index;
+ EFI_STATUS Status;
- DEBUG ((DEBUG_INFO, "PcdDxe - SkuId 0x%lx is to be set.\n", (SKU_ID) SkuId));
+ DEBUG ((DEBUG_INFO, "PcdDxe - SkuId 0x%lx is to be set.\n", (SKU_ID)SkuId));
if (SkuId == mPcdDatabase.DxeDb->SystemSkuId) {
//
@@ -293,26 +297,26 @@ DxePcdSetSku (
return;
}
- if (mPcdDatabase.DxeDb->SystemSkuId != (SKU_ID) 0) {
+ if (mPcdDatabase.DxeDb->SystemSkuId != (SKU_ID)0) {
DEBUG ((DEBUG_ERROR, "PcdDxe - The SKU Id could be changed only once."));
DEBUG ((
DEBUG_ERROR,
"PcdDxe - The SKU Id was set to 0x%lx already, it could not be set to 0x%lx any more.",
mPcdDatabase.DxeDb->SystemSkuId,
- (SKU_ID) SkuId
+ (SKU_ID)SkuId
));
ASSERT (FALSE);
return;
}
- SkuIdTable = (SKU_ID *) ((UINT8 *) mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SkuIdTableOffset);
+ SkuIdTable = (SKU_ID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SkuIdTableOffset);
for (Index = 0; Index < SkuIdTable[0]; Index++) {
if (SkuId == SkuIdTable[Index + 1]) {
DEBUG ((DEBUG_INFO, "PcdDxe - SkuId is found in SkuId table.\n"));
Status = UpdatePcdDatabase (SkuId, TRUE);
if (!EFI_ERROR (Status)) {
- mPcdDatabase.DxeDb->SystemSkuId = (SKU_ID) SkuId;
- DEBUG ((DEBUG_INFO, "PcdDxe - Set current SKU Id to 0x%lx.\n", (SKU_ID) SkuId));
+ mPcdDatabase.DxeDb->SystemSkuId = (SKU_ID)SkuId;
+ DEBUG ((DEBUG_INFO, "PcdDxe - Set current SKU Id to 0x%lx.\n", (SKU_ID)SkuId));
return;
}
}
@@ -339,10 +343,10 @@ DxePcdSetSku (
UINT8
EFIAPI
DxePcdGet8 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- return *((UINT8 *) GetWorker (TokenNumber, sizeof (UINT8)));
+ return *((UINT8 *)GetWorker (TokenNumber, sizeof (UINT8)));
}
/**
@@ -359,7 +363,7 @@ DxePcdGet8 (
UINT16
EFIAPI
DxePcdGet16 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return ReadUnaligned16 (GetWorker (TokenNumber, sizeof (UINT16)));
@@ -379,7 +383,7 @@ DxePcdGet16 (
UINT32
EFIAPI
DxePcdGet32 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return ReadUnaligned32 (GetWorker (TokenNumber, sizeof (UINT32)));
@@ -399,10 +403,10 @@ DxePcdGet32 (
UINT64
EFIAPI
DxePcdGet64 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- return ReadUnaligned64(GetWorker (TokenNumber, sizeof (UINT64)));
+ return ReadUnaligned64 (GetWorker (TokenNumber, sizeof (UINT64)));
}
/**
@@ -421,7 +425,7 @@ DxePcdGet64 (
VOID *
EFIAPI
DxePcdGetPtr (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return GetWorker (TokenNumber, 0);
@@ -443,10 +447,10 @@ DxePcdGetPtr (
BOOLEAN
EFIAPI
DxePcdGetBool (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- return *((BOOLEAN *) GetWorker (TokenNumber, sizeof (BOOLEAN)));
+ return *((BOOLEAN *)GetWorker (TokenNumber, sizeof (BOOLEAN)));
}
/**
@@ -463,14 +467,15 @@ DxePcdGetBool (
UINTN
EFIAPI
DxePcdGetSize (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- UINTN Size;
- UINT32 *LocalTokenNumberTable;
- BOOLEAN IsPeiDb;
- UINTN MaxSize;
- UINTN TmpTokenNumber;
+ UINTN Size;
+ UINT32 *LocalTokenNumberTable;
+ BOOLEAN IsPeiDb;
+ UINTN MaxSize;
+ UINTN TmpTokenNumber;
+
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
// We have to decrement TokenNumber by 1 to make it usable
@@ -491,10 +496,10 @@ DxePcdGetSize (
// EBC compiler is very choosy. It may report warning about comparison
// between UINTN and 0 . So we add 1 in each size of the
// comparison.
- IsPeiDb = (BOOLEAN) (TokenNumber + 1 < mPeiLocalTokenCount + 1);
+ IsPeiDb = (BOOLEAN)(TokenNumber + 1 < mPeiLocalTokenCount + 1);
TokenNumber = IsPeiDb ? TokenNumber :
- (TokenNumber - mPeiLocalTokenCount);
+ (TokenNumber - mPeiLocalTokenCount);
LocalTokenNumberTable = IsPeiDb ? (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset)
: (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
@@ -509,7 +514,6 @@ DxePcdGetSize (
} else {
return Size;
}
-
}
/**
@@ -529,11 +533,11 @@ DxePcdGetSize (
UINT8
EFIAPI
DxePcdGet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return *((UINT8 *) ExGetWorker (Guid, ExTokenNumber, sizeof(UINT8)));
+ return *((UINT8 *)ExGetWorker (Guid, ExTokenNumber, sizeof (UINT8)));
}
/**
@@ -553,11 +557,11 @@ DxePcdGet8Ex (
UINT16
EFIAPI
DxePcdGet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return ReadUnaligned16 (ExGetWorker (Guid, ExTokenNumber, sizeof(UINT16)));
+ return ReadUnaligned16 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT16)));
}
/**
@@ -577,11 +581,11 @@ DxePcdGet16Ex (
UINT32
EFIAPI
DxePcdGet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return ReadUnaligned32 (ExGetWorker (Guid, ExTokenNumber, sizeof(UINT32)));
+ return ReadUnaligned32 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT32)));
}
/**
@@ -601,11 +605,11 @@ DxePcdGet32Ex (
UINT64
EFIAPI
DxePcdGet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return ReadUnaligned64 (ExGetWorker (Guid, ExTokenNumber, sizeof(UINT64)));
+ return ReadUnaligned64 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT64)));
}
/**
@@ -625,11 +629,11 @@ DxePcdGet64Ex (
VOID *
EFIAPI
DxePcdGetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return ExGetWorker (Guid, ExTokenNumber, 0);
+ return ExGetWorker (Guid, ExTokenNumber, 0);
}
/**
@@ -649,11 +653,11 @@ DxePcdGetPtrEx (
BOOLEAN
EFIAPI
DxePcdGetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return *((BOOLEAN *) ExGetWorker (Guid, ExTokenNumber, sizeof(BOOLEAN)));
+ return *((BOOLEAN *)ExGetWorker (Guid, ExTokenNumber, sizeof (BOOLEAN)));
}
/**
@@ -671,11 +675,11 @@ DxePcdGetBoolEx (
UINTN
EFIAPI
DxePcdGetSizeEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return DxePcdGetSize(GetExPcdTokenNumber (Guid, (UINT32) ExTokenNumber));
+ return DxePcdGetSize (GetExPcdTokenNumber (Guid, (UINT32)ExTokenNumber));
}
/**
@@ -698,8 +702,8 @@ DxePcdGetSizeEx (
EFI_STATUS
EFIAPI
DxePcdSet8 (
- IN UINTN TokenNumber,
- IN UINT8 Value
+ IN UINTN TokenNumber,
+ IN UINT8 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -725,8 +729,8 @@ DxePcdSet8 (
EFI_STATUS
EFIAPI
DxePcdSet16 (
- IN UINTN TokenNumber,
- IN UINT16 Value
+ IN UINTN TokenNumber,
+ IN UINT16 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -752,8 +756,8 @@ DxePcdSet16 (
EFI_STATUS
EFIAPI
DxePcdSet32 (
- IN UINTN TokenNumber,
- IN UINT32 Value
+ IN UINTN TokenNumber,
+ IN UINT32 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -779,8 +783,8 @@ DxePcdSet32 (
EFI_STATUS
EFIAPI
DxePcdSet64 (
- IN UINTN TokenNumber,
- IN UINT64 Value
+ IN UINTN TokenNumber,
+ IN UINT64 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -810,9 +814,9 @@ DxePcdSet64 (
EFI_STATUS
EFIAPI
DxePcdSetPtr (
- IN UINTN TokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN UINTN TokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
)
{
return SetWorker (TokenNumber, Buffer, SizeOfBuffer, TRUE);
@@ -838,8 +842,8 @@ DxePcdSetPtr (
EFI_STATUS
EFIAPI
DxePcdSetBool (
- IN UINTN TokenNumber,
- IN BOOLEAN Value
+ IN UINTN TokenNumber,
+ IN BOOLEAN Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -866,12 +870,12 @@ DxePcdSetBool (
EFI_STATUS
EFIAPI
DxePcdSet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT8 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT8 Value
)
{
- return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
+ return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
}
/**
@@ -895,17 +899,19 @@ DxePcdSet8Ex (
EFI_STATUS
EFIAPI
DxePcdSet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT16 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT16 Value
)
{
//
// PcdSetNvStoreDefaultId should be set in PEI phase to take effect.
//
- ASSERT (!(CompareGuid (Guid, &gEfiMdeModulePkgTokenSpaceGuid) &&
- (ExTokenNumber == PcdToken(PcdSetNvStoreDefaultId))));
- return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
+ ASSERT (
+ !(CompareGuid (Guid, &gEfiMdeModulePkgTokenSpaceGuid) &&
+ (ExTokenNumber == PcdToken (PcdSetNvStoreDefaultId)))
+ );
+ return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
}
/**
@@ -929,12 +935,12 @@ DxePcdSet16Ex (
EFI_STATUS
EFIAPI
DxePcdSet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT32 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT32 Value
)
{
- return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
+ return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
}
/**
@@ -958,12 +964,12 @@ DxePcdSet32Ex (
EFI_STATUS
EFIAPI
DxePcdSet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT64 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT64 Value
)
{
- return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
+ return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
}
/**
@@ -991,13 +997,13 @@ DxePcdSet64Ex (
EFI_STATUS
EFIAPI
DxePcdSetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
)
{
- return ExSetWorker(ExTokenNumber, Guid, Buffer, SizeOfBuffer, TRUE);
+ return ExSetWorker (ExTokenNumber, Guid, Buffer, SizeOfBuffer, TRUE);
}
/**
@@ -1021,12 +1027,12 @@ DxePcdSetPtrEx (
EFI_STATUS
EFIAPI
DxePcdSetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN BOOLEAN Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN BOOLEAN Value
)
{
- return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
+ return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
}
/**
@@ -1044,16 +1050,17 @@ DxePcdSetBoolEx (
EFI_STATUS
EFIAPI
DxeRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN TokenNumber,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN TokenNumber,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (CallBackFunction == NULL) {
return EFI_INVALID_PARAMETER;
}
+
//
// Aquire lock to prevent reentrance from TPL_CALLBACK level
//
@@ -1081,12 +1088,12 @@ DxeRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
DxeUnRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN TokenNumber,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN TokenNumber,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (CallBackFunction == NULL) {
return EFI_INVALID_PARAMETER;
@@ -1133,15 +1140,15 @@ DxeUnRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
DxePcdGetNextToken (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN OUT UINTN *TokenNumber
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN OUT UINTN *TokenNumber
)
{
- EFI_STATUS Status;
- BOOLEAN PeiExMapTableEmpty;
- BOOLEAN DxeExMapTableEmpty;
+ EFI_STATUS Status;
+ BOOLEAN PeiExMapTableEmpty;
+ BOOLEAN DxeExMapTableEmpty;
- Status = EFI_NOT_FOUND;
+ Status = EFI_NOT_FOUND;
PeiExMapTableEmpty = mPeiExMapTableEmpty;
DxeExMapTableEmpty = mDxeExMapTableEmpty;
@@ -1153,13 +1160,15 @@ DxePcdGetNextToken (
// between UINTN and 0 . So we add 1 in each size of the
// comparison.
if (((*TokenNumber + 1 > mPeiNexTokenCount + 1) && (*TokenNumber + 1 <= mPeiLocalTokenCount + 1)) ||
- ((*TokenNumber + 1 > (mPeiLocalTokenCount + mDxeNexTokenCount + 1)))) {
+ ((*TokenNumber + 1 > (mPeiLocalTokenCount + mDxeNexTokenCount + 1))))
+ {
return EFI_NOT_FOUND;
}
(*TokenNumber)++;
if ((*TokenNumber + 1 > mPeiNexTokenCount + 1) &&
- (*TokenNumber + 1 <= mPeiLocalTokenCount + 1)) {
+ (*TokenNumber + 1 <= mPeiLocalTokenCount + 1))
+ {
//
// The first Non-Ex type Token Number for DXE PCD
// database is mPeiLocalTokenCount + 1
@@ -1174,6 +1183,7 @@ DxePcdGetNextToken (
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;
return EFI_NOT_FOUND;
}
+
return EFI_SUCCESS;
}
@@ -1183,13 +1193,13 @@ DxePcdGetNextToken (
if (!PeiExMapTableEmpty) {
Status = ExGetNextTokeNumber (
- Guid,
- TokenNumber,
- (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset),
- mPeiGuidTableSize,
- (DYNAMICEX_MAPPING *)((UINT8 *) mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->ExMapTableOffset),
- mPeiExMapppingTableSize
- );
+ Guid,
+ TokenNumber,
+ (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset),
+ mPeiGuidTableSize,
+ (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->ExMapTableOffset),
+ mPeiExMapppingTableSize
+ );
}
if (Status == EFI_SUCCESS) {
@@ -1198,13 +1208,13 @@ DxePcdGetNextToken (
if (!DxeExMapTableEmpty) {
Status = ExGetNextTokeNumber (
- Guid,
- TokenNumber,
- (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset),
- mDxeGuidTableSize,
- (DYNAMICEX_MAPPING *)((UINT8 *) mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->ExMapTableOffset),
- mDxeExMapppingTableSize
- );
+ Guid,
+ TokenNumber,
+ (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset),
+ mDxeGuidTableSize,
+ (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->ExMapTableOffset),
+ mDxeExMapppingTableSize
+ );
}
return Status;
@@ -1222,9 +1232,9 @@ DxePcdGetNextToken (
**/
EFI_GUID **
GetDistinctTokenSpace (
- IN OUT UINTN *ExMapTableSize,
- IN DYNAMICEX_MAPPING *ExMapTable,
- IN EFI_GUID *GuidTable
+ IN OUT UINTN *ExMapTableSize,
+ IN DYNAMICEX_MAPPING *ExMapTable,
+ IN EFI_GUID *GuidTable
)
{
EFI_GUID **DistinctTokenSpace;
@@ -1237,11 +1247,11 @@ GetDistinctTokenSpace (
DistinctTokenSpace = AllocateZeroPool (*ExMapTableSize * sizeof (EFI_GUID *));
ASSERT (DistinctTokenSpace != NULL);
- TsIdx = 0;
- OldGuidIndex = ExMapTable[0].ExGuidIndex;
+ TsIdx = 0;
+ OldGuidIndex = ExMapTable[0].ExGuidIndex;
DistinctTokenSpace[TsIdx] = &GuidTable[OldGuidIndex];
for (Idx = 1; Idx < *ExMapTableSize; Idx++) {
- Match = FALSE;
+ Match = FALSE;
OldGuidIndex = ExMapTable[Idx].ExGuidIndex;
for (TempTsIdx = 0; TempTsIdx <= TsIdx; TempTsIdx++) {
if (&GuidTable[OldGuidIndex] == DistinctTokenSpace[TempTsIdx]) {
@@ -1252,6 +1262,7 @@ GetDistinctTokenSpace (
break;
}
}
+
if (!Match) {
DistinctTokenSpace[++TsIdx] = &GuidTable[OldGuidIndex];
}
@@ -1264,7 +1275,6 @@ GetDistinctTokenSpace (
//
*ExMapTableSize = TsIdx + 1;
return DistinctTokenSpace;
-
}
/**
@@ -1286,19 +1296,19 @@ GetDistinctTokenSpace (
EFI_STATUS
EFIAPI
DxePcdGetNextTokenSpace (
- IN OUT CONST EFI_GUID **Guid
+ IN OUT CONST EFI_GUID **Guid
)
{
- UINTN Idx;
- UINTN Idx2;
- UINTN Idx3;
- UINTN PeiTokenSpaceTableSize;
- UINTN DxeTokenSpaceTableSize;
- EFI_GUID **PeiTokenSpaceTable;
- EFI_GUID **DxeTokenSpaceTable;
- BOOLEAN Match;
- BOOLEAN PeiExMapTableEmpty;
- BOOLEAN DxeExMapTableEmpty;
+ UINTN Idx;
+ UINTN Idx2;
+ UINTN Idx3;
+ UINTN PeiTokenSpaceTableSize;
+ UINTN DxeTokenSpaceTableSize;
+ EFI_GUID **PeiTokenSpaceTable;
+ EFI_GUID **DxeTokenSpaceTable;
+ BOOLEAN Match;
+ BOOLEAN PeiExMapTableEmpty;
+ BOOLEAN DxeExMapTableEmpty;
ASSERT (Guid != NULL);
@@ -1313,22 +1323,24 @@ DxePcdGetNextTokenSpace (
PeiTokenSpaceTableSize = 0;
if (!PeiExMapTableEmpty) {
- PeiTokenSpaceTableSize = mPeiExMapppingTableSize / sizeof(DYNAMICEX_MAPPING);
- PeiTokenSpaceTable = GetDistinctTokenSpace (&PeiTokenSpaceTableSize,
- (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->ExMapTableOffset),
- (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset)
- );
- CopyMem (TmpTokenSpaceBuffer, PeiTokenSpaceTable, sizeof (EFI_GUID*) * PeiTokenSpaceTableSize);
+ PeiTokenSpaceTableSize = mPeiExMapppingTableSize / sizeof (DYNAMICEX_MAPPING);
+ PeiTokenSpaceTable = GetDistinctTokenSpace (
+ &PeiTokenSpaceTableSize,
+ (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->ExMapTableOffset),
+ (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset)
+ );
+ CopyMem (TmpTokenSpaceBuffer, PeiTokenSpaceTable, sizeof (EFI_GUID *) * PeiTokenSpaceTableSize);
TmpTokenSpaceBufferCount = PeiTokenSpaceTableSize;
FreePool (PeiTokenSpaceTable);
}
if (!DxeExMapTableEmpty) {
- DxeTokenSpaceTableSize = mDxeExMapppingTableSize / sizeof(DYNAMICEX_MAPPING);
- DxeTokenSpaceTable = GetDistinctTokenSpace (&DxeTokenSpaceTableSize,
- (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->ExMapTableOffset),
- (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset)
- );
+ DxeTokenSpaceTableSize = mDxeExMapppingTableSize / sizeof (DYNAMICEX_MAPPING);
+ DxeTokenSpaceTable = GetDistinctTokenSpace (
+ &DxeTokenSpaceTableSize,
+ (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->ExMapTableOffset),
+ (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset)
+ );
//
// Make sure EFI_GUID in DxeTokenSpaceTable does not exist in PeiTokenSpaceTable
@@ -1341,6 +1353,7 @@ DxePcdGetNextTokenSpace (
break;
}
}
+
if (!Match) {
TmpTokenSpaceBuffer[Idx3++] = DxeTokenSpaceTable[Idx2];
}
diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Universal/PCD/Dxe/Service.c
index 9be7b66..3965846 100644
--- a/MdeModulePkg/Universal/PCD/Dxe/Service.c
+++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c
@@ -11,30 +11,30 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Service.h"
#include <Library/DxeServicesLib.h>
-PCD_DATABASE mPcdDatabase;
-
-UINT32 mPcdTotalTokenCount;
-UINT32 mPeiLocalTokenCount;
-UINT32 mDxeLocalTokenCount;
-UINT32 mPeiNexTokenCount;
-UINT32 mDxeNexTokenCount;
-UINT32 mPeiExMapppingTableSize;
-UINT32 mDxeExMapppingTableSize;
-UINT32 mPeiGuidTableSize;
-UINT32 mDxeGuidTableSize;
-
-BOOLEAN mPeiExMapTableEmpty;
-BOOLEAN mDxeExMapTableEmpty;
-BOOLEAN mPeiDatabaseEmpty;
-
-LIST_ENTRY *mCallbackFnTable;
-EFI_GUID **TmpTokenSpaceBuffer;
-UINTN TmpTokenSpaceBufferCount;
-
-UINTN mPeiPcdDbSize = 0;
-PEI_PCD_DATABASE *mPeiPcdDbBinary = NULL;
-UINTN mDxePcdDbSize = 0;
-DXE_PCD_DATABASE *mDxePcdDbBinary = NULL;
+PCD_DATABASE mPcdDatabase;
+
+UINT32 mPcdTotalTokenCount;
+UINT32 mPeiLocalTokenCount;
+UINT32 mDxeLocalTokenCount;
+UINT32 mPeiNexTokenCount;
+UINT32 mDxeNexTokenCount;
+UINT32 mPeiExMapppingTableSize;
+UINT32 mDxeExMapppingTableSize;
+UINT32 mPeiGuidTableSize;
+UINT32 mDxeGuidTableSize;
+
+BOOLEAN mPeiExMapTableEmpty;
+BOOLEAN mDxeExMapTableEmpty;
+BOOLEAN mPeiDatabaseEmpty;
+
+LIST_ENTRY *mCallbackFnTable;
+EFI_GUID **TmpTokenSpaceBuffer;
+UINTN TmpTokenSpaceBufferCount;
+
+UINTN mPeiPcdDbSize = 0;
+PEI_PCD_DATABASE *mPeiPcdDbBinary = NULL;
+UINTN mDxePcdDbSize = 0;
+DXE_PCD_DATABASE *mDxePcdDbBinary = NULL;
/**
Get Local Token Number by Token Number.
@@ -47,11 +47,11 @@ DXE_PCD_DATABASE *mDxePcdDbBinary = NULL;
**/
UINT32
GetLocalTokenNumber (
- IN BOOLEAN IsPeiDb,
- IN UINTN TokenNumber
+ IN BOOLEAN IsPeiDb,
+ IN UINTN TokenNumber
)
{
- UINT32 *LocalTokenNumberTable;
+ UINT32 *LocalTokenNumberTable;
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
@@ -60,9 +60,9 @@ GetLocalTokenNumber (
//
TokenNumber--;
- LocalTokenNumberTable = IsPeiDb ? (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset) :
- (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
- TokenNumber = IsPeiDb ? TokenNumber : TokenNumber - mPeiLocalTokenCount;
+ LocalTokenNumberTable = IsPeiDb ? (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset) :
+ (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
+ TokenNumber = IsPeiDb ? TokenNumber : TokenNumber - mPeiLocalTokenCount;
return LocalTokenNumberTable[TokenNumber];
}
@@ -76,7 +76,7 @@ GetLocalTokenNumber (
**/
EFI_PCD_TYPE
GetPcdType (
- IN UINT32 LocalTokenNumber
+ IN UINT32 LocalTokenNumber
)
{
switch (LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) {
@@ -88,6 +88,7 @@ GetPcdType (
} else {
return EFI_PCD_TYPE_8;
}
+
case PCD_DATUM_TYPE_UINT16:
return EFI_PCD_TYPE_16;
case PCD_DATUM_TYPE_UINT32:
@@ -113,18 +114,18 @@ GetPcdType (
**/
CHAR8 *
GetPcdName (
- IN BOOLEAN OnlyTokenSpaceName,
- IN BOOLEAN IsPeiDb,
- IN UINTN TokenNumber
+ IN BOOLEAN OnlyTokenSpaceName,
+ IN BOOLEAN IsPeiDb,
+ IN UINTN TokenNumber
)
{
- PCD_DATABASE_INIT *Database;
- UINT8 *StringTable;
- UINTN NameSize;
- PCD_NAME_INDEX *PcdNameIndex;
- CHAR8 *TokenSpaceName;
- CHAR8 *PcdName;
- CHAR8 *Name;
+ PCD_DATABASE_INIT *Database;
+ UINT8 *StringTable;
+ UINTN NameSize;
+ PCD_NAME_INDEX *PcdNameIndex;
+ CHAR8 *TokenSpaceName;
+ CHAR8 *PcdName;
+ CHAR8 *Name;
//
// Return NULL when PCD name table is absent.
@@ -146,17 +147,17 @@ GetPcdName (
//
TokenNumber--;
- Database = IsPeiDb ? mPcdDatabase.PeiDb: mPcdDatabase.DxeDb;
+ Database = IsPeiDb ? mPcdDatabase.PeiDb : mPcdDatabase.DxeDb;
TokenNumber = IsPeiDb ? TokenNumber : TokenNumber - mPeiLocalTokenCount;
- StringTable = (UINT8 *) Database + Database->StringTableOffset;
+ StringTable = (UINT8 *)Database + Database->StringTableOffset;
//
// Get the PCD name index.
//
- PcdNameIndex = (PCD_NAME_INDEX *)((UINT8 *) Database + Database->PcdNameTableOffset) + TokenNumber;
+ PcdNameIndex = (PCD_NAME_INDEX *)((UINT8 *)Database + Database->PcdNameTableOffset) + TokenNumber;
TokenSpaceName = (CHAR8 *)&StringTable[PcdNameIndex->TokenSpaceCNameIndex];
- PcdName = (CHAR8 *)&StringTable[PcdNameIndex->PcdCNameIndex];
+ PcdName = (CHAR8 *)&StringTable[PcdNameIndex->PcdCNameIndex];
if (OnlyTokenSpaceName) {
//
@@ -168,7 +169,7 @@ GetPcdName (
// Need to get the full PCD name.
//
NameSize = AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName);
- Name = AllocateZeroPool (NameSize);
+ Name = AllocateZeroPool (NameSize);
ASSERT (Name != NULL);
//
// Catenate TokenSpaceCName and PcdCName with a '.' to form the full PCD name.
@@ -199,24 +200,24 @@ GetPcdName (
**/
EFI_STATUS
ExGetPcdInfo (
- IN BOOLEAN IsPeiDb,
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN BOOLEAN IsPeiDb,
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
- PCD_DATABASE_INIT *Database;
- UINTN GuidTableIdx;
- EFI_GUID *MatchGuid;
- EFI_GUID *GuidTable;
- DYNAMICEX_MAPPING *ExMapTable;
- UINTN Index;
- UINT32 LocalTokenNumber;
+ PCD_DATABASE_INIT *Database;
+ UINTN GuidTableIdx;
+ EFI_GUID *MatchGuid;
+ EFI_GUID *GuidTable;
+ DYNAMICEX_MAPPING *ExMapTable;
+ UINTN Index;
+ UINT32 LocalTokenNumber;
- Database = IsPeiDb ? mPcdDatabase.PeiDb: mPcdDatabase.DxeDb;
+ Database = IsPeiDb ? mPcdDatabase.PeiDb : mPcdDatabase.DxeDb;
GuidTable = (EFI_GUID *)((UINT8 *)Database + Database->GuidTableOffset);
- MatchGuid = ScanGuid (GuidTable, Database->GuidTableCount * sizeof(EFI_GUID), Guid);
+ MatchGuid = ScanGuid (GuidTable, Database->GuidTableCount * sizeof (EFI_GUID), Guid);
if (MatchGuid == NULL) {
return EFI_NOT_FOUND;
@@ -273,26 +274,27 @@ ExGetPcdInfo (
**/
EFI_STATUS
DxeGetPcdInfo (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
- EFI_STATUS Status;
- BOOLEAN PeiExMapTableEmpty;
- BOOLEAN DxeExMapTableEmpty;
- UINT32 LocalTokenNumber;
- BOOLEAN IsPeiDb;
+ EFI_STATUS Status;
+ BOOLEAN PeiExMapTableEmpty;
+ BOOLEAN DxeExMapTableEmpty;
+ UINT32 LocalTokenNumber;
+ BOOLEAN IsPeiDb;
ASSERT (PcdInfo != NULL);
- Status = EFI_NOT_FOUND;
+ Status = EFI_NOT_FOUND;
PeiExMapTableEmpty = mPeiExMapTableEmpty;
DxeExMapTableEmpty = mDxeExMapTableEmpty;
if (Guid == NULL) {
if (((TokenNumber + 1 > mPeiNexTokenCount + 1) && (TokenNumber + 1 <= mPeiLocalTokenCount + 1)) ||
- ((TokenNumber + 1 > (mPeiLocalTokenCount + mDxeNexTokenCount + 1)))) {
+ ((TokenNumber + 1 > (mPeiLocalTokenCount + mDxeNexTokenCount + 1))))
+ {
return EFI_NOT_FOUND;
} else if (TokenNumber == PCD_INVALID_TOKEN_NUMBER) {
//
@@ -304,14 +306,16 @@ DxeGetPcdInfo (
PcdInfo->PcdName = NULL;
} else {
PcdInfo->PcdSize = DxePcdGetSize (TokenNumber);
- IsPeiDb = FALSE;
+ IsPeiDb = FALSE;
if ((TokenNumber + 1 <= mPeiNexTokenCount + 1)) {
IsPeiDb = TRUE;
}
+
LocalTokenNumber = GetLocalTokenNumber (IsPeiDb, TokenNumber);
PcdInfo->PcdType = GetPcdType (LocalTokenNumber);
PcdInfo->PcdName = GetPcdName (FALSE, IsPeiDb, TokenNumber);
}
+
return EFI_SUCCESS;
}
@@ -360,27 +364,27 @@ DxeGetPcdInfo (
**/
VOID *
GetWorker (
- IN UINTN TokenNumber,
- IN UINTN GetSize
+ IN UINTN TokenNumber,
+ IN UINTN GetSize
)
{
- EFI_GUID *GuidTable;
- UINT8 *StringTable;
- EFI_GUID *Guid;
- UINT16 *Name;
- VARIABLE_HEAD *VariableHead;
- UINT8 *VaraiableDefaultBuffer;
- UINT8 *Data;
- VPD_HEAD *VpdHead;
- UINT8 *PcdDb;
- VOID *RetPtr;
- UINTN TmpTokenNumber;
- UINTN DataSize;
- EFI_STATUS Status;
- UINT32 LocalTokenNumber;
- UINT32 Offset;
- STRING_HEAD StringTableIdx;
- BOOLEAN IsPeiDb;
+ EFI_GUID *GuidTable;
+ UINT8 *StringTable;
+ EFI_GUID *Guid;
+ UINT16 *Name;
+ VARIABLE_HEAD *VariableHead;
+ UINT8 *VaraiableDefaultBuffer;
+ UINT8 *Data;
+ VPD_HEAD *VpdHead;
+ UINT8 *PcdDb;
+ VOID *RetPtr;
+ UINTN TmpTokenNumber;
+ UINTN DataSize;
+ EFI_STATUS Status;
+ UINT32 LocalTokenNumber;
+ UINT32 Offset;
+ STRING_HEAD StringTableIdx;
+ BOOLEAN IsPeiDb;
//
// Aquire lock to prevent reentrance from TPL_CALLBACK level
@@ -411,51 +415,51 @@ GetWorker (
// EBC compiler is very choosy. It may report warning about comparison
// between UINTN and 0 . So we add 1 in each size of the
// comparison.
- IsPeiDb = (BOOLEAN) ((TokenNumber + 1 < mPeiLocalTokenCount + 1) ? TRUE : FALSE);
+ IsPeiDb = (BOOLEAN)((TokenNumber + 1 < mPeiLocalTokenCount + 1) ? TRUE : FALSE);
LocalTokenNumber = GetLocalTokenNumber (IsPeiDb, TokenNumber + 1);
- PcdDb = IsPeiDb ? ((UINT8 *) mPcdDatabase.PeiDb) : ((UINT8 *) mPcdDatabase.DxeDb);
+ PcdDb = IsPeiDb ? ((UINT8 *)mPcdDatabase.PeiDb) : ((UINT8 *)mPcdDatabase.DxeDb);
if (IsPeiDb) {
- StringTable = (UINT8 *) ((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->StringTableOffset);
+ StringTable = (UINT8 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->StringTableOffset);
} else {
- StringTable = (UINT8 *) ((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->StringTableOffset);
+ StringTable = (UINT8 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->StringTableOffset);
}
-
- Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
+ Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {
case PCD_TYPE_VPD:
- VpdHead = (VPD_HEAD *) ((UINT8 *) PcdDb + Offset);
+ VpdHead = (VPD_HEAD *)((UINT8 *)PcdDb + Offset);
ASSERT (mVpdBaseAddress != 0);
- RetPtr = (VOID *) (mVpdBaseAddress + VpdHead->Offset);
+ RetPtr = (VOID *)(mVpdBaseAddress + VpdHead->Offset);
break;
case PCD_TYPE_HII|PCD_TYPE_STRING:
case PCD_TYPE_HII:
if (IsPeiDb) {
- GuidTable = (EFI_GUID *) ((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset);
} else {
- GuidTable = (EFI_GUID *) ((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset);
}
- VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);
- Guid = GuidTable + VariableHead->GuidTableIndex;
- Name = (UINT16*)(StringTable + VariableHead->StringIndex);
+ VariableHead = (VARIABLE_HEAD *)(PcdDb + Offset);
+ Guid = GuidTable + VariableHead->GuidTableIndex;
+ Name = (UINT16 *)(StringTable + VariableHead->StringIndex);
if ((LocalTokenNumber & PCD_TYPE_ALL_SET) == (PCD_TYPE_HII|PCD_TYPE_STRING)) {
//
// If a HII type PCD's datum type is VOID*, the DefaultValueOffset is the index of
// string array in string table.
//
- StringTableIdx = *(STRING_HEAD*)((UINT8 *) PcdDb + VariableHead->DefaultValueOffset);
- VaraiableDefaultBuffer = (UINT8 *) (StringTable + StringTableIdx);
+ StringTableIdx = *(STRING_HEAD *)((UINT8 *)PcdDb + VariableHead->DefaultValueOffset);
+ VaraiableDefaultBuffer = (UINT8 *)(StringTable + StringTableIdx);
} else {
- VaraiableDefaultBuffer = (UINT8 *) PcdDb + VariableHead->DefaultValueOffset;
+ VaraiableDefaultBuffer = (UINT8 *)PcdDb + VariableHead->DefaultValueOffset;
}
+
Status = GetHiiVariable (Guid, Name, &Data, &DataSize);
if (Status == EFI_SUCCESS) {
if (DataSize >= (VariableHead->Offset + GetSize)) {
@@ -472,6 +476,7 @@ GetWorker (
GetSize = DataSize - VariableHead->Offset;
}
}
+
//
// If the operation is successful, we copy the data
// to the default value buffer in the PCD Database.
@@ -479,30 +484,30 @@ GetWorker (
//
CopyMem (VaraiableDefaultBuffer, Data + VariableHead->Offset, GetSize);
}
+
FreePool (Data);
}
- RetPtr = (VOID *) VaraiableDefaultBuffer;
+
+ RetPtr = (VOID *)VaraiableDefaultBuffer;
break;
case PCD_TYPE_STRING:
- StringTableIdx = *(STRING_HEAD*)((UINT8 *) PcdDb + Offset);
- RetPtr = (VOID *) (StringTable + StringTableIdx);
+ StringTableIdx = *(STRING_HEAD *)((UINT8 *)PcdDb + Offset);
+ RetPtr = (VOID *)(StringTable + StringTableIdx);
break;
case PCD_TYPE_DATA:
- RetPtr = (VOID *) ((UINT8 *) PcdDb + Offset);
+ RetPtr = (VOID *)((UINT8 *)PcdDb + Offset);
break;
default:
ASSERT (FALSE);
break;
-
}
EfiReleaseLock (&mPcdDatabaseLock);
return RetPtr;
-
}
/**
@@ -521,17 +526,17 @@ GetWorker (
**/
EFI_STATUS
DxeRegisterCallBackWorker (
- IN UINTN TokenNumber,
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
-)
+ IN UINTN TokenNumber,
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ )
{
- CALLBACK_FN_ENTRY *FnTableEntry;
- LIST_ENTRY *ListHead;
- LIST_ENTRY *ListNode;
+ CALLBACK_FN_ENTRY *FnTableEntry;
+ LIST_ENTRY *ListHead;
+ LIST_ENTRY *ListNode;
if (Guid != NULL) {
- TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) TokenNumber);
+ TokenNumber = GetExPcdTokenNumber (Guid, (UINT32)TokenNumber);
}
//
@@ -543,7 +548,7 @@ DxeRegisterCallBackWorker (
ListNode = GetFirstNode (ListHead);
while (ListNode != ListHead) {
- FnTableEntry = CR_FNENTRY_FROM_LISTNODE(ListNode, CALLBACK_FN_ENTRY, Node);
+ FnTableEntry = CR_FNENTRY_FROM_LISTNODE (ListNode, CALLBACK_FN_ENTRY, Node);
if (FnTableEntry->CallbackFn == CallBackFunction) {
//
@@ -552,10 +557,11 @@ DxeRegisterCallBackWorker (
//
return EFI_SUCCESS;
}
+
ListNode = GetNextNode (ListHead, ListNode);
}
- FnTableEntry = AllocatePool (sizeof(CALLBACK_FN_ENTRY));
+ FnTableEntry = AllocatePool (sizeof (CALLBACK_FN_ENTRY));
ASSERT (FnTableEntry != NULL);
FnTableEntry->CallbackFn = CallBackFunction;
@@ -580,17 +586,17 @@ DxeRegisterCallBackWorker (
**/
EFI_STATUS
DxeUnRegisterCallBackWorker (
- IN UINTN TokenNumber,
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
-)
+ IN UINTN TokenNumber,
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ )
{
- CALLBACK_FN_ENTRY *FnTableEntry;
- LIST_ENTRY *ListHead;
- LIST_ENTRY *ListNode;
+ CALLBACK_FN_ENTRY *FnTableEntry;
+ LIST_ENTRY *ListHead;
+ LIST_ENTRY *ListNode;
if (Guid != NULL) {
- TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) TokenNumber);
+ TokenNumber = GetExPcdTokenNumber (Guid, (UINT32)TokenNumber);
}
//
@@ -602,7 +608,7 @@ DxeUnRegisterCallBackWorker (
ListNode = GetFirstNode (ListHead);
while (ListNode != ListHead) {
- FnTableEntry = CR_FNENTRY_FROM_LISTNODE(ListNode, CALLBACK_FN_ENTRY, Node);
+ FnTableEntry = CR_FNENTRY_FROM_LISTNODE (ListNode, CALLBACK_FN_ENTRY, Node);
if (FnTableEntry->CallbackFn == CallBackFunction) {
//
@@ -615,6 +621,7 @@ DxeUnRegisterCallBackWorker (
return EFI_SUCCESS;
}
+
ListNode = GetNextNode (ListHead, ListNode);
}
@@ -648,19 +655,19 @@ DxeUnRegisterCallBackWorker (
**/
EFI_STATUS
ExGetNextTokeNumber (
- IN CONST EFI_GUID *Guid,
- IN OUT UINTN *TokenNumber,
- IN EFI_GUID *GuidTable,
- IN UINTN SizeOfGuidTable,
- IN DYNAMICEX_MAPPING *ExMapTable,
- IN UINTN SizeOfExMapTable
+ IN CONST EFI_GUID *Guid,
+ IN OUT UINTN *TokenNumber,
+ IN EFI_GUID *GuidTable,
+ IN UINTN SizeOfGuidTable,
+ IN DYNAMICEX_MAPPING *ExMapTable,
+ IN UINTN SizeOfExMapTable
)
{
- EFI_GUID *MatchGuid;
- UINTN Index;
- UINTN GuidTableIdx;
- BOOLEAN Found;
- UINTN ExMapTableCount;
+ EFI_GUID *MatchGuid;
+ UINTN Index;
+ UINTN GuidTableIdx;
+ BOOLEAN Found;
+ UINTN ExMapTableCount;
//
// Scan token space guid
@@ -673,9 +680,9 @@ ExGetNextTokeNumber (
//
// Find the token space table in dynamicEx mapping table.
//
- Found = FALSE;
- GuidTableIdx = MatchGuid - GuidTable;
- ExMapTableCount = SizeOfExMapTable / sizeof(ExMapTable[0]);
+ Found = FALSE;
+ GuidTableIdx = MatchGuid - GuidTable;
+ ExMapTableCount = SizeOfExMapTable / sizeof (ExMapTable[0]);
for (Index = 0; Index < ExMapTableCount; Index++) {
if (ExMapTable[Index].ExGuidIndex == GuidTableIdx) {
Found = TRUE;
@@ -729,9 +736,9 @@ ExGetNextTokeNumber (
DXE_PCD_DATABASE *
LocateExPcdBinary (
VOID
-)
+ )
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Search the External Pcd database from one section of current FFS,
@@ -740,7 +747,7 @@ LocateExPcdBinary (
Status = GetSectionFromFfs (
EFI_SECTION_RAW,
0,
- (VOID **) &mDxePcdDbBinary,
+ (VOID **)&mDxePcdDbBinary,
&mDxePcdDbSize
);
ASSERT_EFI_ERROR (Status);
@@ -749,7 +756,8 @@ LocateExPcdBinary (
// Check the first bytes (Header Signature Guid) and build version.
//
if (!CompareGuid ((VOID *)mDxePcdDbBinary, &gPcdDataBaseSignatureGuid) ||
- (mDxePcdDbBinary->BuildVersion != PCD_SERVICE_DXE_VERSION)) {
+ (mDxePcdDbBinary->BuildVersion != PCD_SERVICE_DXE_VERSION))
+ {
ASSERT (FALSE);
}
@@ -767,36 +775,37 @@ LocateExPcdBinary (
**/
EFI_STATUS
UpdatePcdDatabase (
- IN SKU_ID SkuId,
- IN BOOLEAN IsPeiDb
+ IN SKU_ID SkuId,
+ IN BOOLEAN IsPeiDb
)
{
- UINTN Index;
- PCD_DATABASE_SKU_DELTA *SkuDelta;
- PCD_DATA_DELTA *SkuDeltaData;
+ UINTN Index;
+ PCD_DATABASE_SKU_DELTA *SkuDelta;
+ PCD_DATA_DELTA *SkuDeltaData;
- if (IsPeiDb && mPeiPcdDbBinary != NULL) {
+ if (IsPeiDb && (mPeiPcdDbBinary != NULL)) {
//
// Find the delta data for PEI DB
//
Index = (mPcdDatabase.PeiDb->Length + 7) & (~7);
SkuDelta = NULL;
while (Index < mPeiPcdDbSize) {
- SkuDelta = (PCD_DATABASE_SKU_DELTA *) ((UINT8 *) mPeiPcdDbBinary + Index);
- if (SkuDelta->SkuId == SkuId && SkuDelta->SkuIdCompared == 0) {
+ SkuDelta = (PCD_DATABASE_SKU_DELTA *)((UINT8 *)mPeiPcdDbBinary + Index);
+ if ((SkuDelta->SkuId == SkuId) && (SkuDelta->SkuIdCompared == 0)) {
break;
}
+
Index = (Index + SkuDelta->Length + 7) & (~7);
}
//
// Patch the delta data into current PCD database
//
- if (Index < mPeiPcdDbSize && SkuDelta != NULL) {
- SkuDeltaData = (PCD_DATA_DELTA *) (SkuDelta + 1);
- while ((UINT8 *) SkuDeltaData < (UINT8 *) SkuDelta + SkuDelta->Length) {
- *((UINT8 *) mPcdDatabase.PeiDb + SkuDeltaData->Offset) = (UINT8) SkuDeltaData->Value;
- SkuDeltaData ++;
+ if ((Index < mPeiPcdDbSize) && (SkuDelta != NULL)) {
+ SkuDeltaData = (PCD_DATA_DELTA *)(SkuDelta + 1);
+ while ((UINT8 *)SkuDeltaData < (UINT8 *)SkuDelta + SkuDelta->Length) {
+ *((UINT8 *)mPcdDatabase.PeiDb + SkuDeltaData->Offset) = (UINT8)SkuDeltaData->Value;
+ SkuDeltaData++;
}
} else {
return EFI_NOT_FOUND;
@@ -809,22 +818,24 @@ UpdatePcdDatabase (
Index = (mPcdDatabase.DxeDb->Length + 7) & (~7);
SkuDelta = NULL;
while (Index < mDxePcdDbSize) {
- SkuDelta = (PCD_DATABASE_SKU_DELTA *) ((UINT8 *) mDxePcdDbBinary + Index);
- if (SkuDelta->SkuId == SkuId && SkuDelta->SkuIdCompared == 0) {
+ SkuDelta = (PCD_DATABASE_SKU_DELTA *)((UINT8 *)mDxePcdDbBinary + Index);
+ if ((SkuDelta->SkuId == SkuId) && (SkuDelta->SkuIdCompared == 0)) {
break;
}
+
Index = (Index + SkuDelta->Length + 7) & (~7);
}
//
// Patch the delta data into current PCD database
//
- if (Index < mDxePcdDbSize && SkuDelta != NULL) {
- SkuDeltaData = (PCD_DATA_DELTA *) (SkuDelta + 1);
- while ((UINT8 *) SkuDeltaData < (UINT8 *) SkuDelta + SkuDelta->Length) {
- *((UINT8 *) mPcdDatabase.DxeDb + SkuDeltaData->Offset) = (UINT8) SkuDeltaData->Value;
- SkuDeltaData ++;
+ if ((Index < mDxePcdDbSize) && (SkuDelta != NULL)) {
+ SkuDeltaData = (PCD_DATA_DELTA *)(SkuDelta + 1);
+ while ((UINT8 *)SkuDeltaData < (UINT8 *)SkuDelta + SkuDelta->Length) {
+ *((UINT8 *)mPcdDatabase.DxeDb + SkuDeltaData->Offset) = (UINT8)SkuDeltaData->Value;
+ SkuDeltaData++;
}
+
return EFI_SUCCESS;
}
@@ -843,42 +854,41 @@ BuildPcdDxeDataBase (
VOID
)
{
- PEI_PCD_DATABASE *PeiDatabase;
- EFI_HOB_GUID_TYPE *GuidHob;
- UINTN Index;
- UINT32 PcdDxeDbLen;
- VOID *PcdDxeDb;
- EFI_STATUS Status;
+ PEI_PCD_DATABASE *PeiDatabase;
+ EFI_HOB_GUID_TYPE *GuidHob;
+ UINTN Index;
+ UINT32 PcdDxeDbLen;
+ VOID *PcdDxeDb;
+ EFI_STATUS Status;
//
// Assign PCD Entries with default value to PCD DATABASE
//
mPcdDatabase.DxeDb = LocateExPcdBinary ();
- ASSERT(mPcdDatabase.DxeDb != NULL);
+ ASSERT (mPcdDatabase.DxeDb != NULL);
PcdDxeDbLen = mPcdDatabase.DxeDb->Length + mPcdDatabase.DxeDb->UninitDataBaseSize;
- PcdDxeDb = AllocateZeroPool (PcdDxeDbLen);
+ PcdDxeDb = AllocateZeroPool (PcdDxeDbLen);
ASSERT (PcdDxeDb != NULL);
CopyMem (PcdDxeDb, mPcdDatabase.DxeDb, mPcdDatabase.DxeDb->Length);
mPcdDatabase.DxeDb = PcdDxeDb;
GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid);
if (GuidHob != NULL) {
-
//
// If no PEIMs use dynamic Pcd Entry, the Pcd Service PEIM
// should not be included at all. So the GuidHob could
// be NULL. If it is NULL, we just copy over the DXE Default
// Value to PCD Database.
//
- PeiDatabase = (PEI_PCD_DATABASE *) GET_GUID_HOB_DATA (GuidHob);
+ PeiDatabase = (PEI_PCD_DATABASE *)GET_GUID_HOB_DATA (GuidHob);
//
// Get next one that stores full PEI data
//
GuidHob = GetNextGuidHob (&gPcdDataBaseHobGuid, GET_NEXT_HOB (GuidHob));
if (GuidHob != NULL) {
- mPeiPcdDbBinary = (PEI_PCD_DATABASE *) GET_GUID_HOB_DATA (GuidHob);
- mPeiPcdDbSize = (UINTN) GET_GUID_HOB_DATA_SIZE (GuidHob);
+ mPeiPcdDbBinary = (PEI_PCD_DATABASE *)GET_GUID_HOB_DATA (GuidHob);
+ mPeiPcdDbSize = (UINTN)GET_GUID_HOB_DATA_SIZE (GuidHob);
}
//
@@ -892,39 +902,40 @@ BuildPcdDxeDataBase (
Status = UpdatePcdDatabase (mPcdDatabase.PeiDb->SystemSkuId, FALSE);
ASSERT_EFI_ERROR (Status);
}
+
mPcdDatabase.DxeDb->SystemSkuId = mPcdDatabase.PeiDb->SystemSkuId;
} else {
mPcdDatabase.PeiDb = AllocateZeroPool (sizeof (PEI_PCD_DATABASE));
- ASSERT(mPcdDatabase.PeiDb != NULL);
+ ASSERT (mPcdDatabase.PeiDb != NULL);
}
//
// Initialized the external PCD database local variables
//
- mPeiLocalTokenCount = mPcdDatabase.PeiDb->LocalTokenCount;
- mDxeLocalTokenCount = mPcdDatabase.DxeDb->LocalTokenCount;
+ mPeiLocalTokenCount = mPcdDatabase.PeiDb->LocalTokenCount;
+ mDxeLocalTokenCount = mPcdDatabase.DxeDb->LocalTokenCount;
mPeiExMapppingTableSize = mPcdDatabase.PeiDb->ExTokenCount * sizeof (DYNAMICEX_MAPPING);
mDxeExMapppingTableSize = mPcdDatabase.DxeDb->ExTokenCount * sizeof (DYNAMICEX_MAPPING);
- mPeiGuidTableSize = mPcdDatabase.PeiDb->GuidTableCount * sizeof(GUID);
+ mPeiGuidTableSize = mPcdDatabase.PeiDb->GuidTableCount * sizeof (GUID);
mDxeGuidTableSize = mPcdDatabase.DxeDb->GuidTableCount * sizeof (GUID);
- mPcdTotalTokenCount = mPeiLocalTokenCount + mDxeLocalTokenCount;
- mPeiNexTokenCount = mPeiLocalTokenCount - mPcdDatabase.PeiDb->ExTokenCount;
- mDxeNexTokenCount = mDxeLocalTokenCount - mPcdDatabase.DxeDb->ExTokenCount;
+ mPcdTotalTokenCount = mPeiLocalTokenCount + mDxeLocalTokenCount;
+ mPeiNexTokenCount = mPeiLocalTokenCount - mPcdDatabase.PeiDb->ExTokenCount;
+ mDxeNexTokenCount = mDxeLocalTokenCount - mPcdDatabase.DxeDb->ExTokenCount;
- mPeiExMapTableEmpty = (mPcdDatabase.PeiDb->ExTokenCount == 0) ? TRUE : FALSE;
- mDxeExMapTableEmpty = (mPcdDatabase.DxeDb->ExTokenCount == 0) ? TRUE : FALSE;
- mPeiDatabaseEmpty = (mPeiLocalTokenCount == 0) ? TRUE : FALSE;
+ mPeiExMapTableEmpty = (mPcdDatabase.PeiDb->ExTokenCount == 0) ? TRUE : FALSE;
+ mDxeExMapTableEmpty = (mPcdDatabase.DxeDb->ExTokenCount == 0) ? TRUE : FALSE;
+ mPeiDatabaseEmpty = (mPeiLocalTokenCount == 0) ? TRUE : FALSE;
TmpTokenSpaceBufferCount = mPcdDatabase.PeiDb->ExTokenCount + mPcdDatabase.DxeDb->ExTokenCount;
- TmpTokenSpaceBuffer = (EFI_GUID **)AllocateZeroPool(TmpTokenSpaceBufferCount * sizeof (EFI_GUID *));
+ TmpTokenSpaceBuffer = (EFI_GUID **)AllocateZeroPool (TmpTokenSpaceBufferCount * sizeof (EFI_GUID *));
//
// Initialized the Callback Function Table
//
mCallbackFnTable = AllocateZeroPool (mPcdTotalTokenCount * sizeof (LIST_ENTRY));
- ASSERT(mCallbackFnTable != NULL);
+ ASSERT (mCallbackFnTable != NULL);
//
// EBC compiler is very choosy. It may report warning about comparison
@@ -948,45 +959,45 @@ BuildPcdDxeDataBase (
**/
EFI_STATUS
GetHiiVariable (
- IN EFI_GUID *VariableGuid,
- IN UINT16 *VariableName,
- OUT UINT8 **VariableData,
- OUT UINTN *VariableSize
+ IN EFI_GUID *VariableGuid,
+ IN UINT16 *VariableName,
+ OUT UINT8 **VariableData,
+ OUT UINTN *VariableSize
)
{
- UINTN Size;
- EFI_STATUS Status;
- UINT8 *Buffer;
+ UINTN Size;
+ EFI_STATUS Status;
+ UINT8 *Buffer;
- Size = 0;
+ Size = 0;
Buffer = NULL;
//
// Firstly get the real size of HII variable
//
Status = gRT->GetVariable (
- (UINT16 *)VariableName,
- VariableGuid,
- NULL,
- &Size,
- Buffer
- );
+ (UINT16 *)VariableName,
+ VariableGuid,
+ NULL,
+ &Size,
+ Buffer
+ );
//
// Allocate buffer to hold whole variable data according to variable size.
//
if (Status == EFI_BUFFER_TOO_SMALL) {
- Buffer = (UINT8 *) AllocatePool (Size);
+ Buffer = (UINT8 *)AllocatePool (Size);
ASSERT (Buffer != NULL);
Status = gRT->GetVariable (
- VariableName,
- VariableGuid,
- NULL,
- &Size,
- Buffer
- );
+ VariableName,
+ VariableGuid,
+ NULL,
+ &Size,
+ Buffer
+ );
ASSERT (Status == EFI_SUCCESS);
*VariableData = Buffer;
@@ -1017,16 +1028,16 @@ GetHiiVariable (
**/
VOID
InvokeCallbackOnSet (
- UINT32 ExTokenNumber,
- CONST EFI_GUID *Guid OPTIONAL,
- UINTN TokenNumber,
- VOID *Data,
- UINTN Size
+ UINT32 ExTokenNumber,
+ CONST EFI_GUID *Guid OPTIONAL,
+ UINTN TokenNumber,
+ VOID *Data,
+ UINTN Size
)
{
- CALLBACK_FN_ENTRY *FnTableEntry;
- LIST_ENTRY *ListHead;
- LIST_ENTRY *ListNode;
+ CALLBACK_FN_ENTRY *FnTableEntry;
+ LIST_ENTRY *ListHead;
+ LIST_ENTRY *ListNode;
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
@@ -1039,10 +1050,12 @@ InvokeCallbackOnSet (
while (ListNode != ListHead) {
FnTableEntry = CR_FNENTRY_FROM_LISTNODE (ListNode, CALLBACK_FN_ENTRY, Node);
- FnTableEntry->CallbackFn(Guid,
+ FnTableEntry->CallbackFn (
+ Guid,
(Guid == NULL) ? TokenNumber : ExTokenNumber,
Data,
- Size);
+ Size
+ );
ListNode = GetNextNode (ListHead, ListNode);
}
@@ -1050,7 +1063,6 @@ InvokeCallbackOnSet (
return;
}
-
/**
Wrapper function for setting non-pointer type value for a PCD entry.
@@ -1063,15 +1075,14 @@ InvokeCallbackOnSet (
**/
EFI_STATUS
SetValueWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN UINTN Size
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN UINTN Size
)
{
return SetWorker (TokenNumber, Data, &Size, FALSE);
}
-
/**
Set value for an PCD entry
@@ -1090,27 +1101,27 @@ SetValueWorker (
**/
EFI_STATUS
SetWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
)
{
- BOOLEAN IsPeiDb;
- UINT32 LocalTokenNumber;
- EFI_GUID *GuidTable;
- UINT8 *StringTable;
- EFI_GUID *Guid;
- UINT16 *Name;
- UINTN VariableOffset;
- UINT32 Attributes;
- VOID *InternalData;
- VARIABLE_HEAD *VariableHead;
- UINTN Offset;
- UINT8 *PcdDb;
- EFI_STATUS Status;
- UINTN MaxSize;
- UINTN TmpTokenNumber;
+ BOOLEAN IsPeiDb;
+ UINT32 LocalTokenNumber;
+ EFI_GUID *GuidTable;
+ UINT8 *StringTable;
+ EFI_GUID *Guid;
+ UINT16 *Name;
+ UINTN VariableOffset;
+ UINT32 Attributes;
+ VOID *InternalData;
+ VARIABLE_HEAD *VariableHead;
+ UINTN Offset;
+ UINT8 *PcdDb;
+ EFI_STATUS Status;
+ UINTN MaxSize;
+ UINTN TmpTokenNumber;
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
@@ -1149,7 +1160,8 @@ SetWorker (
// comparison.
//
if ((TokenNumber + 1 < mPeiNexTokenCount + 1) ||
- (TokenNumber + 1 >= mPeiLocalTokenCount + 1 && TokenNumber + 1 < (mPeiLocalTokenCount + mDxeNexTokenCount + 1))) {
+ ((TokenNumber + 1 >= mPeiLocalTokenCount + 1) && (TokenNumber + 1 < (mPeiLocalTokenCount + mDxeNexTokenCount + 1))))
+ {
InvokeCallbackOnSet (0, NULL, TokenNumber + 1, Data, *Size);
}
@@ -1163,21 +1175,20 @@ SetWorker (
// between UINTN and 0 . So we add 1 in each size of the
// comparison.
//
- IsPeiDb = (BOOLEAN) ((TokenNumber + 1 < mPeiLocalTokenCount + 1) ? TRUE : FALSE);
+ IsPeiDb = (BOOLEAN)((TokenNumber + 1 < mPeiLocalTokenCount + 1) ? TRUE : FALSE);
LocalTokenNumber = GetLocalTokenNumber (IsPeiDb, TokenNumber + 1);
Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
- PcdDb = IsPeiDb ? ((UINT8 *) mPcdDatabase.PeiDb) : ((UINT8 *) mPcdDatabase.DxeDb);
+ PcdDb = IsPeiDb ? ((UINT8 *)mPcdDatabase.PeiDb) : ((UINT8 *)mPcdDatabase.DxeDb);
if (IsPeiDb) {
- StringTable = (UINT8 *) ((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->StringTableOffset);
+ StringTable = (UINT8 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->StringTableOffset);
} else {
- StringTable = (UINT8 *) ((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->StringTableOffset);
+ StringTable = (UINT8 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->StringTableOffset);
}
-
InternalData = PcdDb + Offset;
switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {
@@ -1193,6 +1204,7 @@ SetWorker (
} else {
Status = EFI_INVALID_PARAMETER;
}
+
break;
case PCD_TYPE_HII|PCD_TYPE_STRING:
@@ -1205,18 +1217,18 @@ SetWorker (
}
if (IsPeiDb) {
- GuidTable = (EFI_GUID *) ((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset);
} else {
- GuidTable = (EFI_GUID *) ((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset);
}
- VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);
+ VariableHead = (VARIABLE_HEAD *)(PcdDb + Offset);
- Guid = GuidTable + VariableHead->GuidTableIndex;
- Name = (UINT16*) (StringTable + VariableHead->StringIndex);
+ Guid = GuidTable + VariableHead->GuidTableIndex;
+ Name = (UINT16 *)(StringTable + VariableHead->StringIndex);
VariableOffset = VariableHead->Offset;
- Attributes = VariableHead->Attributes;
- Status = SetHiiVariable (Guid, Name, Attributes, Data, *Size, VariableOffset);
+ Attributes = VariableHead->Attributes;
+ Status = SetHiiVariable (Guid, Name, Attributes, Data, *Size, VariableOffset);
break;
case PCD_TYPE_DATA:
@@ -1227,25 +1239,26 @@ SetWorker (
} else {
Status = EFI_INVALID_PARAMETER;
}
+
break;
}
Status = EFI_SUCCESS;
switch (*Size) {
- case sizeof(UINT8):
- *((UINT8 *) InternalData) = *((UINT8 *) Data);
+ case sizeof (UINT8):
+ *((UINT8 *)InternalData) = *((UINT8 *)Data);
break;
- case sizeof(UINT16):
- *((UINT16 *) InternalData) = *((UINT16 *) Data);
+ case sizeof (UINT16):
+ *((UINT16 *)InternalData) = *((UINT16 *)Data);
break;
- case sizeof(UINT32):
- *((UINT32 *) InternalData) = *((UINT32 *) Data);
+ case sizeof (UINT32):
+ *((UINT32 *)InternalData) = *((UINT32 *)Data);
break;
- case sizeof(UINT64):
- *((UINT64 *) InternalData) = *((UINT64 *) Data);
+ case sizeof (UINT64):
+ *((UINT64 *)InternalData) = *((UINT64 *)Data);
break;
default:
@@ -1253,13 +1266,14 @@ SetWorker (
Status = EFI_NOT_FOUND;
break;
}
+
break;
default:
ASSERT (FALSE);
Status = EFI_NOT_FOUND;
break;
- }
+ }
EfiReleaseLock (&mPcdDatabaseLock);
@@ -1278,12 +1292,12 @@ SetWorker (
**/
VOID *
ExGetWorker (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINTN GetSize
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINTN GetSize
)
{
- return GetWorker(GetExPcdTokenNumber (Guid, (UINT32) ExTokenNumber), GetSize);
+ return GetWorker (GetExPcdTokenNumber (Guid, (UINT32)ExTokenNumber), GetSize);
}
/**
@@ -1299,10 +1313,10 @@ ExGetWorker (
**/
EFI_STATUS
ExSetValueWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN UINTN SetSize
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN UINTN SetSize
)
{
return ExSetWorker (ExTokenNumber, Guid, Data, &SetSize, FALSE);
@@ -1328,21 +1342,20 @@ ExSetValueWorker (
**/
EFI_STATUS
ExSetWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN OUT UINTN *SetSize,
- IN BOOLEAN PtrType
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN OUT UINTN *SetSize,
+ IN BOOLEAN PtrType
)
{
- UINTN TokenNumber;
+ UINTN TokenNumber;
- TokenNumber = GetExPcdTokenNumber (Guid, (UINT32) ExTokenNumber);
+ TokenNumber = GetExPcdTokenNumber (Guid, (UINT32)ExTokenNumber);
- InvokeCallbackOnSet ((UINT32) ExTokenNumber, Guid, TokenNumber, Data, *SetSize);
+ InvokeCallbackOnSet ((UINT32)ExTokenNumber, Guid, TokenNumber, Data, *SetSize);
return SetWorker (TokenNumber, Data, SetSize, PtrType);
-
}
/**
@@ -1356,26 +1369,26 @@ ExSetWorker (
**/
VOID
GetVariableSizeAndDataFromHiiPcd (
- IN EFI_GUID *VariableGuid,
- IN UINT16 *VariableName,
- OUT UINTN *VariableSize,
- OUT VOID *VariableData OPTIONAL
+ IN EFI_GUID *VariableGuid,
+ IN UINT16 *VariableName,
+ OUT UINTN *VariableSize,
+ OUT VOID *VariableData OPTIONAL
)
{
- BOOLEAN IsPeiDb;
- PCD_DATABASE_INIT *Database;
- UINTN TokenNumber;
- UINT32 LocalTokenNumber;
- UINTN Offset;
- EFI_GUID *GuidTable;
- UINT8 *StringTable;
- VARIABLE_HEAD *VariableHead;
- EFI_GUID *Guid;
- UINT16 *Name;
- UINTN PcdDataSize;
- UINTN Size;
- UINT8 *VaraiableDefaultBuffer;
- STRING_HEAD StringTableIdx;
+ BOOLEAN IsPeiDb;
+ PCD_DATABASE_INIT *Database;
+ UINTN TokenNumber;
+ UINT32 LocalTokenNumber;
+ UINTN Offset;
+ EFI_GUID *GuidTable;
+ UINT8 *StringTable;
+ VARIABLE_HEAD *VariableHead;
+ EFI_GUID *Guid;
+ UINT16 *Name;
+ UINTN PcdDataSize;
+ UINTN Size;
+ UINT8 *VaraiableDefaultBuffer;
+ STRING_HEAD StringTableIdx;
*VariableSize = 0;
@@ -1383,40 +1396,42 @@ GetVariableSizeAndDataFromHiiPcd (
// Go through PCD database to find out DynamicHii PCDs.
//
for (TokenNumber = 1; TokenNumber <= mPcdTotalTokenCount; TokenNumber++) {
- IsPeiDb = (BOOLEAN) ((TokenNumber + 1 < mPeiLocalTokenCount + 1) ? TRUE : FALSE);
- Database = IsPeiDb ? mPcdDatabase.PeiDb: mPcdDatabase.DxeDb;
+ IsPeiDb = (BOOLEAN)((TokenNumber + 1 < mPeiLocalTokenCount + 1) ? TRUE : FALSE);
+ Database = IsPeiDb ? mPcdDatabase.PeiDb : mPcdDatabase.DxeDb;
LocalTokenNumber = GetLocalTokenNumber (IsPeiDb, TokenNumber);
if ((LocalTokenNumber & PCD_TYPE_HII) != 0) {
//
// Get the Variable Guid and Name pointer.
//
- Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
- VariableHead = (VARIABLE_HEAD *) ((UINT8 *) Database + Offset);
- StringTable = (UINT8 *) ((UINT8 *) Database + Database->StringTableOffset);
- GuidTable = (EFI_GUID *) ((UINT8 *) Database + Database->GuidTableOffset);
- Guid = GuidTable + VariableHead->GuidTableIndex;
- Name = (UINT16*) (StringTable + VariableHead->StringIndex);
+ Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
+ VariableHead = (VARIABLE_HEAD *)((UINT8 *)Database + Offset);
+ StringTable = (UINT8 *)((UINT8 *)Database + Database->StringTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)Database + Database->GuidTableOffset);
+ Guid = GuidTable + VariableHead->GuidTableIndex;
+ Name = (UINT16 *)(StringTable + VariableHead->StringIndex);
if (CompareGuid (VariableGuid, Guid) && (StrCmp (VariableName, Name) == 0)) {
//
// It is the matched DynamicHii PCD.
//
PcdDataSize = DxePcdGetSize (TokenNumber);
- Size = VariableHead->Offset + PcdDataSize;
+ Size = VariableHead->Offset + PcdDataSize;
if (Size > *VariableSize) {
*VariableSize = Size;
}
+
if (VariableData != NULL) {
if ((LocalTokenNumber & PCD_TYPE_ALL_SET) == (PCD_TYPE_HII|PCD_TYPE_STRING)) {
//
// If a HII type PCD's datum type is VOID*, the DefaultValueOffset is the index of
// string array in string table.
//
- StringTableIdx = *(STRING_HEAD *) ((UINT8 *) Database + VariableHead->DefaultValueOffset);
- VaraiableDefaultBuffer = (UINT8 *) (StringTable + StringTableIdx);
+ StringTableIdx = *(STRING_HEAD *)((UINT8 *)Database + VariableHead->DefaultValueOffset);
+ VaraiableDefaultBuffer = (UINT8 *)(StringTable + StringTableIdx);
} else {
- VaraiableDefaultBuffer = (UINT8 *) Database + VariableHead->DefaultValueOffset;
+ VaraiableDefaultBuffer = (UINT8 *)Database + VariableHead->DefaultValueOffset;
}
- CopyMem ((UINT8 *) VariableData + VariableHead->Offset, VaraiableDefaultBuffer, PcdDataSize);
+
+ CopyMem ((UINT8 *)VariableData + VariableHead->Offset, VaraiableDefaultBuffer, PcdDataSize);
}
}
}
@@ -1441,12 +1456,12 @@ GetVariableSizeAndDataFromHiiPcd (
**/
EFI_STATUS
SetHiiVariable (
- IN EFI_GUID *VariableGuid,
- IN UINT16 *VariableName,
- IN UINT32 SetAttributes,
- IN CONST VOID *Data,
- IN UINTN DataSize,
- IN UINTN Offset
+ IN EFI_GUID *VariableGuid,
+ IN UINT16 *VariableName,
+ IN UINT32 SetAttributes,
+ IN CONST VOID *Data,
+ IN UINTN DataSize,
+ IN UINTN Offset
)
{
UINTN Size;
@@ -1455,19 +1470,19 @@ SetHiiVariable (
UINT32 Attribute;
UINTN SetSize;
- Size = 0;
+ Size = 0;
SetSize = 0;
//
// Try to get original variable size information.
//
Status = gRT->GetVariable (
- (UINT16 *)VariableName,
- VariableGuid,
- NULL,
- &Size,
- NULL
- );
+ (UINT16 *)VariableName,
+ VariableGuid,
+ NULL,
+ &Size,
+ NULL
+ );
if (Status == EFI_BUFFER_TOO_SMALL) {
//
@@ -1478,16 +1493,17 @@ SetHiiVariable (
} else {
SetSize = DataSize + Offset;
}
+
Buffer = AllocatePool (SetSize);
ASSERT (Buffer != NULL);
Status = gRT->GetVariable (
- VariableName,
- VariableGuid,
- &Attribute,
- &Size,
- Buffer
- );
+ VariableName,
+ VariableGuid,
+ &Attribute,
+ &Size,
+ Buffer
+ );
ASSERT_EFI_ERROR (Status);
@@ -1498,12 +1514,12 @@ SetHiiVariable (
}
Status = gRT->SetVariable (
- VariableName,
- VariableGuid,
- SetAttributes,
- SetSize,
- Buffer
- );
+ VariableName,
+ VariableGuid,
+ SetAttributes,
+ SetSize,
+ Buffer
+ );
FreePool (Buffer);
return Status;
@@ -1530,12 +1546,12 @@ SetHiiVariable (
}
Status = gRT->SetVariable (
- VariableName,
- VariableGuid,
- SetAttributes,
- Size,
- Buffer
- );
+ VariableName,
+ VariableGuid,
+ SetAttributes,
+ Size,
+ Buffer
+ );
FreePool (Buffer);
return Status;
@@ -1562,39 +1578,39 @@ SetHiiVariable (
**/
UINTN
GetExPcdTokenNumber (
- IN CONST EFI_GUID *Guid,
- IN UINT32 ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINT32 ExTokenNumber
)
{
- UINT32 Index;
- DYNAMICEX_MAPPING *ExMap;
- EFI_GUID *GuidTable;
- EFI_GUID *MatchGuid;
- UINTN MatchGuidIdx;
+ UINT32 Index;
+ DYNAMICEX_MAPPING *ExMap;
+ EFI_GUID *GuidTable;
+ EFI_GUID *MatchGuid;
+ UINTN MatchGuidIdx;
if (!mPeiDatabaseEmpty) {
- ExMap = (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->ExMapTableOffset);
- GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset);
+ ExMap = (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->ExMapTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->GuidTableOffset);
- MatchGuid = ScanGuid (GuidTable, mPeiGuidTableSize, Guid);
+ MatchGuid = ScanGuid (GuidTable, mPeiGuidTableSize, Guid);
if (MatchGuid != NULL) {
-
MatchGuidIdx = MatchGuid - GuidTable;
for (Index = 0; Index < mPcdDatabase.PeiDb->ExTokenCount; Index++) {
if ((ExTokenNumber == ExMap[Index].ExTokenNumber) &&
- (MatchGuidIdx == ExMap[Index].ExGuidIndex)) {
- return ExMap[Index].TokenNumber;
+ (MatchGuidIdx == ExMap[Index].ExGuidIndex))
+ {
+ return ExMap[Index].TokenNumber;
}
}
}
}
- ExMap = (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->ExMapTableOffset);
- GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset);
+ ExMap = (DYNAMICEX_MAPPING *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->ExMapTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->GuidTableOffset);
- MatchGuid = ScanGuid (GuidTable, mDxeGuidTableSize, Guid);
+ MatchGuid = ScanGuid (GuidTable, mDxeGuidTableSize, Guid);
//
// We need to ASSERT here. If GUID can't be found in GuidTable, this is a
// error in the BUILD system.
@@ -1605,8 +1621,9 @@ GetExPcdTokenNumber (
for (Index = 0; Index < mPcdDatabase.DxeDb->ExTokenCount; Index++) {
if ((ExTokenNumber == ExMap[Index].ExTokenNumber) &&
- (MatchGuidIdx == ExMap[Index].ExGuidIndex)) {
- return ExMap[Index].TokenNumber;
+ (MatchGuidIdx == ExMap[Index].ExGuidIndex))
+ {
+ return ExMap[Index].TokenNumber;
}
}
@@ -1627,14 +1644,14 @@ GetExPcdTokenNumber (
**/
UINTN
GetSizeTableIndex (
- IN UINTN LocalTokenNumberTableIdx,
- IN BOOLEAN IsPeiDb
+ IN UINTN LocalTokenNumberTableIdx,
+ IN BOOLEAN IsPeiDb
)
{
- UINT32 *LocalTokenNumberTable;
- UINTN LocalTokenNumber;
- UINTN Index;
- UINTN SizeTableIdx;
+ UINT32 *LocalTokenNumberTable;
+ UINTN LocalTokenNumber;
+ UINTN Index;
+ UINTN SizeTableIdx;
if (IsPeiDb) {
LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset);
@@ -1644,7 +1661,7 @@ GetSizeTableIndex (
SizeTableIdx = 0;
- for (Index = 0; Index < LocalTokenNumberTableIdx; Index ++) {
+ for (Index = 0; Index < LocalTokenNumberTableIdx; Index++) {
LocalTokenNumber = LocalTokenNumberTable[Index];
if ((LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) == PCD_DATUM_TYPE_POINTER) {
@@ -1653,23 +1670,22 @@ GetSizeTableIndex (
// PCD entry.
//
if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {
- //
- // We have only two entry for VPD enabled PCD entry:
- // 1) MAX Size.
- // 2) Current Size
- // Current size is equal to MAX size.
- //
- SizeTableIdx += 2;
+ //
+ // We have only two entry for VPD enabled PCD entry:
+ // 1) MAX Size.
+ // 2) Current Size
+ // Current size is equal to MAX size.
+ //
+ SizeTableIdx += 2;
} else {
- //
- // We have only two entry for Non-Sku enabled PCD entry:
- // 1) MAX SIZE
- // 2) Current Size
- //
- SizeTableIdx += 2;
+ //
+ // We have only two entry for Non-Sku enabled PCD entry:
+ // 1) MAX SIZE
+ // 2) Current Size
+ //
+ SizeTableIdx += 2;
}
}
-
}
return SizeTableIdx;
@@ -1686,29 +1702,28 @@ GetSizeTableIndex (
**/
UINTN
GetPtrTypeSize (
- IN UINTN LocalTokenNumberTableIdx,
- OUT UINTN *MaxSize
+ IN UINTN LocalTokenNumberTableIdx,
+ OUT UINTN *MaxSize
)
{
- INTN SizeTableIdx;
- UINTN LocalTokenNumber;
- SIZE_INFO *SizeTable;
- BOOLEAN IsPeiDb;
- UINT32 *LocalTokenNumberTable;
+ INTN SizeTableIdx;
+ UINTN LocalTokenNumber;
+ SIZE_INFO *SizeTable;
+ BOOLEAN IsPeiDb;
+ UINT32 *LocalTokenNumberTable;
// EBC compiler is very choosy. It may report warning about comparison
// between UINTN and 0 . So we add 1 in each size of the
// comparison.
- IsPeiDb = (BOOLEAN) (LocalTokenNumberTableIdx + 1 < mPeiLocalTokenCount + 1);
-
+ IsPeiDb = (BOOLEAN)(LocalTokenNumberTableIdx + 1 < mPeiLocalTokenCount + 1);
if (IsPeiDb) {
LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset);
- SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->SizeTableOffset);
+ SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->SizeTableOffset);
} else {
LocalTokenNumberTableIdx -= mPeiLocalTokenCount;
- LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
- SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SizeTableOffset);
+ LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
+ SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SizeTableOffset);
}
LocalTokenNumber = LocalTokenNumberTable[LocalTokenNumberTableIdx];
@@ -1723,20 +1738,20 @@ GetPtrTypeSize (
// PCD entry.
//
if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {
- //
- // We have only two entry for VPD enabled PCD entry:
- // 1) MAX Size.
- // 2) Current Size
- // We consider current size is equal to MAX size.
- //
- return *MaxSize;
+ //
+ // We have only two entry for VPD enabled PCD entry:
+ // 1) MAX Size.
+ // 2) Current Size
+ // We consider current size is equal to MAX size.
+ //
+ return *MaxSize;
} else {
- //
- // We have only two entry for Non-Sku enabled PCD entry:
- // 1) MAX SIZE
- // 2) Current Size
- //
- return SizeTable[SizeTableIdx + 1];
+ //
+ // We have only two entry for Non-Sku enabled PCD entry:
+ // 1) MAX SIZE
+ // 2) Current Size
+ //
+ return SizeTable[SizeTableIdx + 1];
}
}
@@ -1752,31 +1767,31 @@ GetPtrTypeSize (
**/
BOOLEAN
SetPtrTypeSize (
- IN UINTN LocalTokenNumberTableIdx,
- IN OUT UINTN *CurrentSize
+ IN UINTN LocalTokenNumberTableIdx,
+ IN OUT UINTN *CurrentSize
)
{
- INTN SizeTableIdx;
- UINTN LocalTokenNumber;
- SIZE_INFO *SizeTable;
- UINTN MaxSize;
- BOOLEAN IsPeiDb;
- UINT32 *LocalTokenNumberTable;
+ INTN SizeTableIdx;
+ UINTN LocalTokenNumber;
+ SIZE_INFO *SizeTable;
+ UINTN MaxSize;
+ BOOLEAN IsPeiDb;
+ UINT32 *LocalTokenNumberTable;
//
// EBC compiler is very choosy. It may report warning about comparison
// between UINTN and 0 . So we add 1 in each size of the
// comparison.
//
- IsPeiDb = (BOOLEAN) (LocalTokenNumberTableIdx + 1 < mPeiLocalTokenCount + 1);
+ IsPeiDb = (BOOLEAN)(LocalTokenNumberTableIdx + 1 < mPeiLocalTokenCount + 1);
if (IsPeiDb) {
LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset);
- SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->SizeTableOffset);
+ SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->SizeTableOffset);
} else {
LocalTokenNumberTableIdx -= mPeiLocalTokenCount;
- LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
- SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SizeTableOffset);
+ LocalTokenNumberTable = (UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);
+ SizeTable = (SIZE_INFO *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->SizeTableOffset);
}
LocalTokenNumber = LocalTokenNumberTable[LocalTokenNumberTableIdx];
@@ -1791,16 +1806,17 @@ SetPtrTypeSize (
// PCD entry.
//
if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {
- //
- // We shouldn't come here as we don't support SET for VPD
- //
- ASSERT (FALSE);
- return FALSE;
+ //
+ // We shouldn't come here as we don't support SET for VPD
+ //
+ ASSERT (FALSE);
+ return FALSE;
} else {
if ((*CurrentSize > MaxSize) ||
- (*CurrentSize == MAX_ADDRESS)) {
- *CurrentSize = MaxSize;
- return FALSE;
+ (*CurrentSize == MAX_ADDRESS))
+ {
+ *CurrentSize = MaxSize;
+ return FALSE;
}
//
@@ -1808,7 +1824,7 @@ SetPtrTypeSize (
// 1) MAX SIZE
// 2) Current Size
//
- SizeTable[SizeTableIdx + 1] = (SIZE_INFO) *CurrentSize;
+ SizeTable[SizeTableIdx + 1] = (SIZE_INFO)*CurrentSize;
return TRUE;
}
}
@@ -1823,24 +1839,24 @@ SetPtrTypeSize (
**/
VOID
VariableLockDynamicHiiPcd (
- IN BOOLEAN IsPeiDb,
- IN EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock
+ IN BOOLEAN IsPeiDb,
+ IN EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock
)
{
- EFI_STATUS Status;
- PCD_DATABASE_INIT *Database;
- UINT32 LocalTokenCount;
- UINTN TokenNumber;
- UINT32 LocalTokenNumber;
- UINTN Offset;
- EFI_GUID *GuidTable;
- UINT8 *StringTable;
- VARIABLE_HEAD *VariableHead;
- EFI_GUID *Guid;
- UINT16 *Name;
-
- Database = IsPeiDb ? mPcdDatabase.PeiDb: mPcdDatabase.DxeDb;
- LocalTokenCount = IsPeiDb ? mPeiLocalTokenCount: mDxeLocalTokenCount;
+ EFI_STATUS Status;
+ PCD_DATABASE_INIT *Database;
+ UINT32 LocalTokenCount;
+ UINTN TokenNumber;
+ UINT32 LocalTokenNumber;
+ UINTN Offset;
+ EFI_GUID *GuidTable;
+ UINT8 *StringTable;
+ VARIABLE_HEAD *VariableHead;
+ EFI_GUID *Guid;
+ UINT16 *Name;
+
+ Database = IsPeiDb ? mPcdDatabase.PeiDb : mPcdDatabase.DxeDb;
+ LocalTokenCount = IsPeiDb ? mPeiLocalTokenCount : mDxeLocalTokenCount;
//
// Go through PCD database to find out DynamicHii PCDs.
@@ -1851,9 +1867,10 @@ VariableLockDynamicHiiPcd (
} else {
LocalTokenNumber = GetLocalTokenNumber (FALSE, TokenNumber + mPeiLocalTokenCount);
}
+
if ((LocalTokenNumber & PCD_TYPE_HII) != 0) {
- Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
- VariableHead = (VARIABLE_HEAD *) ((UINT8 *) Database + Offset);
+ Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
+ VariableHead = (VARIABLE_HEAD *)((UINT8 *)Database + Offset);
//
// Why not to set property by VarCheckProtocol with Attributes and Property directly here?
// It is because that set property by VarCheckProtocol will indicate the variable to
@@ -1864,11 +1881,11 @@ VariableLockDynamicHiiPcd (
//
// DynamicHii PCD with RO property set in *.dsc.
//
- StringTable = (UINT8 *) ((UINT8 *) Database + Database->StringTableOffset);
- GuidTable = (EFI_GUID *) ((UINT8 *) Database + Database->GuidTableOffset);
- Guid = GuidTable + VariableHead->GuidTableIndex;
- Name = (UINT16*) (StringTable + VariableHead->StringIndex);
- Status = VariableLock->RequestToLock (VariableLock, Name, Guid);
+ StringTable = (UINT8 *)((UINT8 *)Database + Database->StringTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)Database + Database->GuidTableOffset);
+ Guid = GuidTable + VariableHead->GuidTableIndex;
+ Name = (UINT16 *)(StringTable + VariableHead->StringIndex);
+ Status = VariableLock->RequestToLock (VariableLock, Name, Guid);
ASSERT_EFI_ERROR (Status);
}
}
@@ -1886,14 +1903,14 @@ VariableLockDynamicHiiPcd (
VOID
EFIAPI
VariableLockCallBack (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
EFI_STATUS Status;
EDKII_VARIABLE_LOCK_PROTOCOL *VariableLock;
- Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **) &VariableLock);
+ Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **)&VariableLock);
if (!EFI_ERROR (Status)) {
VariableLockDynamicHiiPcd (TRUE, VariableLock);
VariableLockDynamicHiiPcd (FALSE, VariableLock);
diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.h b/MdeModulePkg/Universal/PCD/Dxe/Service.h
index 5cf13cb..6f4a6c7 100644
--- a/MdeModulePkg/Universal/PCD/Dxe/Service.h
+++ b/MdeModulePkg/Universal/PCD/Dxe/Service.h
@@ -33,7 +33,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// Please make sure the PCD Serivce DXE Version is consistent with
// the version of the generated DXE PCD Database by build tool.
//
-#define PCD_SERVICE_DXE_VERSION 7
+#define PCD_SERVICE_DXE_VERSION 7
//
// PCD_DXE_SERVICE_DRIVER_VERSION is defined in Autogen.h.
@@ -42,7 +42,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#error "Please make sure the version of PCD DXE Service and the generated PCD DXE Database match."
#endif
-extern UINTN mVpdBaseAddress;
+extern UINTN mVpdBaseAddress;
/**
Retrieve additional information associated with a PCD token in the default token space.
@@ -60,8 +60,8 @@ extern UINTN mVpdBaseAddress;
EFI_STATUS
EFIAPI
DxeGetPcdInfoGetInfo (
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
);
/**
@@ -81,9 +81,9 @@ DxeGetPcdInfoGetInfo (
EFI_STATUS
EFIAPI
DxeGetPcdInfoGetInfoEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
);
/**
@@ -102,6 +102,7 @@ DxeGetPcdInfoGetSku (
//
// Protocol Interface function declaration.
//
+
/**
Sets the SKU value for subsequent calls to set or get PCD token values.
@@ -126,7 +127,7 @@ DxeGetPcdInfoGetSku (
VOID
EFIAPI
DxePcdSetSku (
- IN UINTN SkuId
+ IN UINTN SkuId
);
/**
@@ -143,7 +144,7 @@ DxePcdSetSku (
UINT8
EFIAPI
DxePcdGet8 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -160,7 +161,7 @@ DxePcdGet8 (
UINT16
EFIAPI
DxePcdGet16 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -177,7 +178,7 @@ DxePcdGet16 (
UINT32
EFIAPI
DxePcdGet32 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -194,7 +195,7 @@ DxePcdGet32 (
UINT64
EFIAPI
DxePcdGet64 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -213,7 +214,7 @@ DxePcdGet64 (
VOID *
EFIAPI
DxePcdGetPtr (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -232,7 +233,7 @@ DxePcdGetPtr (
BOOLEAN
EFIAPI
DxePcdGetBool (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -249,7 +250,7 @@ DxePcdGetBool (
UINTN
EFIAPI
DxePcdGetSize (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -269,8 +270,8 @@ DxePcdGetSize (
UINT8
EFIAPI
DxePcdGet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -290,8 +291,8 @@ DxePcdGet8Ex (
UINT16
EFIAPI
DxePcdGet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -311,8 +312,8 @@ DxePcdGet16Ex (
UINT32
EFIAPI
DxePcdGet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -332,8 +333,8 @@ DxePcdGet32Ex (
UINT64
EFIAPI
DxePcdGet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -353,8 +354,8 @@ DxePcdGet64Ex (
VOID *
EFIAPI
DxePcdGetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -374,8 +375,8 @@ DxePcdGetPtrEx (
BOOLEAN
EFIAPI
DxePcdGetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -393,8 +394,8 @@ DxePcdGetBoolEx (
UINTN
EFIAPI
DxePcdGetSizeEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -417,8 +418,8 @@ DxePcdGetSizeEx (
EFI_STATUS
EFIAPI
DxePcdSet8 (
- IN UINTN TokenNumber,
- IN UINT8 Value
+ IN UINTN TokenNumber,
+ IN UINT8 Value
);
/**
@@ -441,8 +442,8 @@ DxePcdSet8 (
EFI_STATUS
EFIAPI
DxePcdSet16 (
- IN UINTN TokenNumber,
- IN UINT16 Value
+ IN UINTN TokenNumber,
+ IN UINT16 Value
);
/**
@@ -465,8 +466,8 @@ DxePcdSet16 (
EFI_STATUS
EFIAPI
DxePcdSet32 (
- IN UINTN TokenNumber,
- IN UINT32 Value
+ IN UINTN TokenNumber,
+ IN UINT32 Value
);
/**
@@ -489,11 +490,10 @@ DxePcdSet32 (
EFI_STATUS
EFIAPI
DxePcdSet64 (
- IN UINTN TokenNumber,
- IN UINT64 Value
+ IN UINTN TokenNumber,
+ IN UINT64 Value
);
-
/**
Sets a value of a specified size for a given PCD token.
@@ -518,9 +518,9 @@ DxePcdSet64 (
EFI_STATUS
EFIAPI
DxePcdSetPtr (
- IN UINTN TokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN UINTN TokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
);
/**
@@ -543,11 +543,10 @@ DxePcdSetPtr (
EFI_STATUS
EFIAPI
DxePcdSetBool (
- IN UINTN TokenNumber,
- IN BOOLEAN Value
+ IN UINTN TokenNumber,
+ IN BOOLEAN Value
);
-
/**
Sets an 8-bit value for a given PCD token.
@@ -569,9 +568,9 @@ DxePcdSetBool (
EFI_STATUS
EFIAPI
DxePcdSet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT8 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT8 Value
);
/**
@@ -595,9 +594,9 @@ DxePcdSet8Ex (
EFI_STATUS
EFIAPI
DxePcdSet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT16 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT16 Value
);
/**
@@ -621,9 +620,9 @@ DxePcdSet16Ex (
EFI_STATUS
EFIAPI
DxePcdSet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT32 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT32 Value
);
/**
@@ -647,9 +646,9 @@ DxePcdSet32Ex (
EFI_STATUS
EFIAPI
DxePcdSet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT64 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT64 Value
);
/**
@@ -677,10 +676,10 @@ DxePcdSet64Ex (
EFI_STATUS
EFIAPI
DxePcdSetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
);
/**
@@ -704,9 +703,9 @@ DxePcdSetPtrEx (
EFI_STATUS
EFIAPI
DxePcdSetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN BOOLEAN Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN BOOLEAN Value
);
/**
@@ -724,9 +723,9 @@ DxePcdSetBoolEx (
EFI_STATUS
EFIAPI
DxeRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN TokenNumber,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN TokenNumber,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
);
/**
@@ -744,9 +743,9 @@ DxeRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
DxeUnRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN TokenNumber,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN TokenNumber,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
);
/**
@@ -780,8 +779,8 @@ DxeUnRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
DxePcdGetNextToken (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN OUT UINTN *TokenNumber
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN OUT UINTN *TokenNumber
);
/**
@@ -798,15 +797,15 @@ DxePcdGetNextToken (
EFI_STATUS
EFIAPI
DxePcdGetNextTokenSpace (
- IN OUT CONST EFI_GUID **Guid
+ IN OUT CONST EFI_GUID **Guid
);
typedef struct {
- LIST_ENTRY Node;
- PCD_PROTOCOL_CALLBACK CallbackFn;
+ LIST_ENTRY Node;
+ PCD_PROTOCOL_CALLBACK CallbackFn;
} CALLBACK_FN_ENTRY;
-#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) BASE_CR(Record, Type, Field)
+#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) BASE_CR(Record, Type, Field)
//
// Internal Functions
@@ -828,9 +827,9 @@ typedef struct {
**/
EFI_STATUS
DxeGetPcdInfo (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
);
/**
@@ -845,9 +844,9 @@ DxeGetPcdInfo (
**/
EFI_STATUS
SetValueWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN UINTN Size
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN UINTN Size
);
/**
@@ -868,10 +867,10 @@ SetValueWorker (
**/
EFI_STATUS
SetWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
);
/**
@@ -887,10 +886,10 @@ SetWorker (
**/
EFI_STATUS
ExSetValueWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN UINTN SetSize
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN UINTN SetSize
);
/**
@@ -913,11 +912,11 @@ ExSetValueWorker (
**/
EFI_STATUS
ExSetWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
);
/**
@@ -936,8 +935,8 @@ ExSetWorker (
**/
VOID *
GetWorker (
- IN UINTN TokenNumber,
- IN UINTN GetSize
+ IN UINTN TokenNumber,
+ IN UINTN GetSize
);
/**
@@ -952,9 +951,9 @@ GetWorker (
**/
VOID *
ExGetWorker (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINTN GetSize
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINTN GetSize
);
/**
@@ -969,10 +968,10 @@ ExGetWorker (
**/
EFI_STATUS
GetHiiVariable (
- IN EFI_GUID *VariableGuid,
- IN UINT16 *VariableName,
- OUT UINT8 **VariableData,
- OUT UINTN *VariableSize
+ IN EFI_GUID *VariableGuid,
+ IN UINT16 *VariableName,
+ OUT UINT8 **VariableData,
+ OUT UINTN *VariableSize
);
/**
@@ -993,12 +992,12 @@ GetHiiVariable (
**/
EFI_STATUS
SetHiiVariable (
- IN EFI_GUID *VariableGuid,
- IN UINT16 *VariableName,
- IN UINT32 SetAttributes,
- IN CONST VOID *Data,
- IN UINTN DataSize,
- IN UINTN Offset
+ IN EFI_GUID *VariableGuid,
+ IN UINT16 *VariableName,
+ IN UINT32 SetAttributes,
+ IN CONST VOID *Data,
+ IN UINTN DataSize,
+ IN UINTN Offset
);
/**
@@ -1017,9 +1016,9 @@ SetHiiVariable (
**/
EFI_STATUS
DxeRegisterCallBackWorker (
- IN UINTN TokenNumber,
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ IN UINTN TokenNumber,
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
);
/**
@@ -1038,9 +1037,9 @@ DxeRegisterCallBackWorker (
**/
EFI_STATUS
DxeUnRegisterCallBackWorker (
- IN UINTN TokenNumber,
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN PCD_PROTOCOL_CALLBACK CallBackFunction
+ IN UINTN TokenNumber,
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN PCD_PROTOCOL_CALLBACK CallBackFunction
);
/**
@@ -1070,8 +1069,8 @@ BuildPcdDxeDataBase (
**/
UINTN
GetExPcdTokenNumber (
- IN CONST EFI_GUID *Guid,
- IN UINT32 ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINT32 ExTokenNumber
);
/**
@@ -1101,12 +1100,12 @@ GetExPcdTokenNumber (
**/
EFI_STATUS
ExGetNextTokeNumber (
- IN CONST EFI_GUID *Guid,
- IN OUT UINTN *TokenNumber,
- IN EFI_GUID *GuidTable,
- IN UINTN SizeOfGuidTable,
- IN DYNAMICEX_MAPPING *ExMapTable,
- IN UINTN SizeOfExMapTable
+ IN CONST EFI_GUID *Guid,
+ IN OUT UINTN *TokenNumber,
+ IN EFI_GUID *GuidTable,
+ IN UINTN SizeOfGuidTable,
+ IN DYNAMICEX_MAPPING *ExMapTable,
+ IN UINTN SizeOfExMapTable
);
/**
@@ -1120,8 +1119,8 @@ ExGetNextTokeNumber (
**/
UINTN
GetPtrTypeSize (
- IN UINTN LocalTokenNumberTableIdx,
- OUT UINTN *MaxSize
+ IN UINTN LocalTokenNumberTableIdx,
+ OUT UINTN *MaxSize
);
/**
@@ -1136,8 +1135,8 @@ GetPtrTypeSize (
**/
BOOLEAN
SetPtrTypeSize (
- IN UINTN LocalTokenNumberTableIdx,
- IN OUT UINTN *CurrentSize
+ IN UINTN LocalTokenNumberTableIdx,
+ IN OUT UINTN *CurrentSize
);
/**
@@ -1151,8 +1150,8 @@ SetPtrTypeSize (
VOID
EFIAPI
VariableLockCallBack (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
);
/**
@@ -1166,29 +1165,29 @@ VariableLockCallBack (
**/
EFI_STATUS
UpdatePcdDatabase (
- IN SKU_ID SkuId,
- IN BOOLEAN IsPeiDb
+ IN SKU_ID SkuId,
+ IN BOOLEAN IsPeiDb
);
-extern PCD_DATABASE mPcdDatabase;
+extern PCD_DATABASE mPcdDatabase;
-extern UINT32 mPcdTotalTokenCount;
-extern UINT32 mPeiLocalTokenCount;
-extern UINT32 mDxeLocalTokenCount;
-extern UINT32 mPeiNexTokenCount;
-extern UINT32 mDxeNexTokenCount;
-extern UINT32 mPeiExMapppingTableSize;
-extern UINT32 mDxeExMapppingTableSize;
-extern UINT32 mPeiGuidTableSize;
-extern UINT32 mDxeGuidTableSize;
+extern UINT32 mPcdTotalTokenCount;
+extern UINT32 mPeiLocalTokenCount;
+extern UINT32 mDxeLocalTokenCount;
+extern UINT32 mPeiNexTokenCount;
+extern UINT32 mDxeNexTokenCount;
+extern UINT32 mPeiExMapppingTableSize;
+extern UINT32 mDxeExMapppingTableSize;
+extern UINT32 mPeiGuidTableSize;
+extern UINT32 mDxeGuidTableSize;
-extern BOOLEAN mPeiExMapTableEmpty;
-extern BOOLEAN mDxeExMapTableEmpty;
-extern BOOLEAN mPeiDatabaseEmpty;
+extern BOOLEAN mPeiExMapTableEmpty;
+extern BOOLEAN mDxeExMapTableEmpty;
+extern BOOLEAN mPeiDatabaseEmpty;
-extern EFI_GUID **TmpTokenSpaceBuffer;
-extern UINTN TmpTokenSpaceBufferCount;
+extern EFI_GUID **TmpTokenSpaceBuffer;
+extern UINTN TmpTokenSpaceBufferCount;
-extern EFI_LOCK mPcdDatabaseLock;
+extern EFI_LOCK mPcdDatabaseLock;
#endif
diff --git a/MdeModulePkg/Universal/PCD/Pei/Pcd.c b/MdeModulePkg/Universal/PCD/Pei/Pcd.c
index 1e418bc..c51ac96 100644
--- a/MdeModulePkg/Universal/PCD/Pei/Pcd.c
+++ b/MdeModulePkg/Universal/PCD/Pei/Pcd.c
@@ -13,7 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
/// Instance of PCD_PPI protocol is EDKII native implementation.
/// This protocol instance support dynamic and dynamicEx type PCDs.
///
-PCD_PPI mPcdPpiInstance = {
+PCD_PPI mPcdPpiInstance = {
PeiPcdSetSku,
PeiPcdGet8,
@@ -72,8 +72,8 @@ EFI_PEI_PCD_PPI mEfiPcdPpiInstance = {
PeiPcdSet64Ex,
PeiPcdSetPtrEx,
PeiPcdSetBoolEx,
- (EFI_PEI_PCD_PPI_CALLBACK_ON_SET) PeiRegisterCallBackOnSet,
- (EFI_PEI_PCD_PPI_CANCEL_CALLBACK) PcdUnRegisterCallBackOnSet,
+ (EFI_PEI_PCD_PPI_CALLBACK_ON_SET)PeiRegisterCallBackOnSet,
+ (EFI_PEI_PCD_PPI_CANCEL_CALLBACK)PcdUnRegisterCallBackOnSet,
PeiPcdGetNextToken,
PeiPcdGetNextTokenSpace
};
@@ -82,7 +82,7 @@ EFI_PEI_PCD_PPI mEfiPcdPpiInstance = {
/// Instance of GET_PCD_INFO_PPI protocol is EDKII native implementation.
/// This protocol instance support dynamic and dynamicEx type PCDs.
///
-GET_PCD_INFO_PPI mGetPcdInfoInstance = {
+GET_PCD_INFO_PPI mGetPcdInfoInstance = {
PeiGetPcdInfoGetInfo,
PeiGetPcdInfoGetInfoEx,
PeiGetPcdInfoGetSku
@@ -138,85 +138,91 @@ EFI_PEI_PPI_DESCRIPTOR mPpiList2[] = {
VOID
EFIAPI
PcdSetNvStoreDefaultIdCallBack (
- IN CONST EFI_GUID *CallBackGuid OPTIONAL,
- IN UINTN CallBackToken,
- IN OUT VOID *TokenData,
- IN UINTN TokenDataSize
+ IN CONST EFI_GUID *CallBackGuid OPTIONAL,
+ IN UINTN CallBackToken,
+ IN OUT VOID *TokenData,
+ IN UINTN TokenDataSize
)
{
- EFI_STATUS Status;
- UINT16 DefaultId;
- SKU_ID SkuId;
- UINTN FullSize;
- UINTN Index;
- UINT8 *DataBuffer;
- UINT8 *VarStoreHobData;
- UINT8 *BufferEnd;
- BOOLEAN IsFound;
- VARIABLE_STORE_HEADER *NvStoreBuffer;
- PCD_DEFAULT_DATA *DataHeader;
- PCD_DEFAULT_INFO *DefaultInfo;
- PCD_DATA_DELTA *DeltaData;
-
- DefaultId = *(UINT16 *) TokenData;
- SkuId = GetPcdDatabase()->SystemSkuId;
+ EFI_STATUS Status;
+ UINT16 DefaultId;
+ SKU_ID SkuId;
+ UINTN FullSize;
+ UINTN Index;
+ UINT8 *DataBuffer;
+ UINT8 *VarStoreHobData;
+ UINT8 *BufferEnd;
+ BOOLEAN IsFound;
+ VARIABLE_STORE_HEADER *NvStoreBuffer;
+ PCD_DEFAULT_DATA *DataHeader;
+ PCD_DEFAULT_INFO *DefaultInfo;
+ PCD_DATA_DELTA *DeltaData;
+
+ DefaultId = *(UINT16 *)TokenData;
+ SkuId = GetPcdDatabase ()->SystemSkuId;
IsFound = FALSE;
if (PeiPcdGetSizeEx (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdNvStoreDefaultValueBuffer)) > sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER)) {
- DataBuffer = (UINT8 *) PeiPcdGetPtrEx (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdNvStoreDefaultValueBuffer));
- FullSize = ((PCD_NV_STORE_DEFAULT_BUFFER_HEADER *) DataBuffer)->Length;
- DataHeader = (PCD_DEFAULT_DATA *) (DataBuffer + sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER));
+ DataBuffer = (UINT8 *)PeiPcdGetPtrEx (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdNvStoreDefaultValueBuffer));
+ FullSize = ((PCD_NV_STORE_DEFAULT_BUFFER_HEADER *)DataBuffer)->Length;
+ DataHeader = (PCD_DEFAULT_DATA *)(DataBuffer + sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER));
//
// The first section data includes NV storage default setting.
//
- NvStoreBuffer = (VARIABLE_STORE_HEADER *) ((UINT8 *) DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize);
- VarStoreHobData = (UINT8 *) BuildGuidHob (&NvStoreBuffer->Signature, NvStoreBuffer->Size);
+ NvStoreBuffer = (VARIABLE_STORE_HEADER *)((UINT8 *)DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize);
+ VarStoreHobData = (UINT8 *)BuildGuidHob (&NvStoreBuffer->Signature, NvStoreBuffer->Size);
ASSERT (VarStoreHobData != NULL);
CopyMem (VarStoreHobData, NvStoreBuffer, NvStoreBuffer->Size);
//
// Find the matched SkuId and DefaultId in the first section
//
- DefaultInfo = &(DataHeader->DefaultInfo[0]);
- BufferEnd = (UINT8 *) DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
- while ((UINT8 *) DefaultInfo < BufferEnd) {
- if (DefaultInfo->DefaultId == DefaultId && DefaultInfo->SkuId == SkuId) {
+ DefaultInfo = &(DataHeader->DefaultInfo[0]);
+ BufferEnd = (UINT8 *)DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
+ while ((UINT8 *)DefaultInfo < BufferEnd) {
+ if ((DefaultInfo->DefaultId == DefaultId) && (DefaultInfo->SkuId == SkuId)) {
IsFound = TRUE;
break;
}
- DefaultInfo ++;
+
+ DefaultInfo++;
}
+
//
// Find the matched SkuId and DefaultId in the remaining section
//
Index = sizeof (PCD_NV_STORE_DEFAULT_BUFFER_HEADER) + ((DataHeader->DataSize + 7) & (~7));
- DataHeader = (PCD_DEFAULT_DATA *) (DataBuffer + Index);
+ DataHeader = (PCD_DEFAULT_DATA *)(DataBuffer + Index);
while (!IsFound && Index < FullSize && DataHeader->DataSize != 0xFFFFFFFF) {
DefaultInfo = &(DataHeader->DefaultInfo[0]);
- BufferEnd = (UINT8 *) DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
- while ((UINT8 *) DefaultInfo < BufferEnd) {
- if (DefaultInfo->DefaultId == DefaultId && DefaultInfo->SkuId == SkuId) {
+ BufferEnd = (UINT8 *)DataHeader + sizeof (DataHeader->DataSize) + DataHeader->HeaderSize;
+ while ((UINT8 *)DefaultInfo < BufferEnd) {
+ if ((DefaultInfo->DefaultId == DefaultId) && (DefaultInfo->SkuId == SkuId)) {
IsFound = TRUE;
break;
}
- DefaultInfo ++;
+
+ DefaultInfo++;
}
+
if (IsFound) {
- DeltaData = (PCD_DATA_DELTA *) BufferEnd;
- BufferEnd = (UINT8 *) DataHeader + DataHeader->DataSize;
- while ((UINT8 *) DeltaData < BufferEnd) {
- *(VarStoreHobData + DeltaData->Offset) = (UINT8) DeltaData->Value;
- DeltaData ++;
+ DeltaData = (PCD_DATA_DELTA *)BufferEnd;
+ BufferEnd = (UINT8 *)DataHeader + DataHeader->DataSize;
+ while ((UINT8 *)DeltaData < BufferEnd) {
+ *(VarStoreHobData + DeltaData->Offset) = (UINT8)DeltaData->Value;
+ DeltaData++;
}
+
break;
}
- Index = (Index + DataHeader->DataSize + 7) & (~7) ;
- DataHeader = (PCD_DEFAULT_DATA *) (DataBuffer + Index);
+
+ Index = (Index + DataHeader->DataSize + 7) & (~7);
+ DataHeader = (PCD_DEFAULT_DATA *)(DataBuffer + Index);
}
}
Status = PcdUnRegisterCallBackOnSet (
&gEfiMdeModulePkgTokenSpaceGuid,
- PcdToken(PcdSetNvStoreDefaultId),
+ PcdToken (PcdSetNvStoreDefaultId),
PcdSetNvStoreDefaultIdCallBack
);
ASSERT_EFI_ERROR (Status);
@@ -239,17 +245,17 @@ EndOfPeiSignalPpiNotifyCallback (
IN VOID *Ppi
)
{
- PEI_PCD_DATABASE *Database;
- EFI_BOOT_MODE BootMode;
- EFI_STATUS Status;
- UINTN Instance;
- EFI_PEI_FV_HANDLE VolumeHandle;
- EFI_PEI_FILE_HANDLE FileHandle;
- VOID *PcdDb;
- UINT32 Length;
- PEI_PCD_DATABASE *PeiPcdDb;
-
- Status = PeiServicesGetBootMode(&BootMode);
+ PEI_PCD_DATABASE *Database;
+ EFI_BOOT_MODE BootMode;
+ EFI_STATUS Status;
+ UINTN Instance;
+ EFI_PEI_FV_HANDLE VolumeHandle;
+ EFI_PEI_FILE_HANDLE FileHandle;
+ VOID *PcdDb;
+ UINT32 Length;
+ PEI_PCD_DATABASE *PeiPcdDb;
+
+ Status = PeiServicesGetBootMode (&BootMode);
ASSERT_EFI_ERROR (Status);
//
@@ -259,8 +265,8 @@ EndOfPeiSignalPpiNotifyCallback (
return EFI_SUCCESS;
}
- PeiPcdDb = GetPcdDatabase();
- if (PeiPcdDb->SystemSkuId != (SKU_ID) 0) {
+ PeiPcdDb = GetPcdDatabase ();
+ if (PeiPcdDb->SystemSkuId != (SKU_ID)0) {
//
// SkuId has been set. Don't need to report it to DXE phase.
//
@@ -270,8 +276,8 @@ EndOfPeiSignalPpiNotifyCallback (
//
// Get full PCD database from PcdPeim FileHandle
//
- Instance = 0;
- FileHandle = NULL;
+ Instance = 0;
+ FileHandle = NULL;
while (TRUE) {
//
// Traverse all firmware volume instances
@@ -286,13 +292,14 @@ EndOfPeiSignalPpiNotifyCallback (
// Find PcdDb file from the beginning in this firmware volume.
//
FileHandle = NULL;
- Status = PeiServicesFfsFindFileByName (&gEfiCallerIdGuid, VolumeHandle, &FileHandle);
+ Status = PeiServicesFfsFindFileByName (&gEfiCallerIdGuid, VolumeHandle, &FileHandle);
if (!EFI_ERROR (Status)) {
//
// Find PcdPeim FileHandle in this volume
//
break;
}
+
//
// We cannot find PcdPeim in this firmware volume, then search the next volume.
//
@@ -304,14 +311,14 @@ EndOfPeiSignalPpiNotifyCallback (
//
Status = PeiServicesFfsFindSectionData (EFI_SECTION_RAW, FileHandle, &PcdDb);
ASSERT_EFI_ERROR (Status);
- Length = PeiPcdDb->LengthForAllSkus;
+ Length = PeiPcdDb->LengthForAllSkus;
Database = BuildGuidHob (&gPcdDataBaseHobGuid, Length);
CopyMem (Database, PcdDb, Length);
return EFI_SUCCESS;
}
-EFI_PEI_NOTIFY_DESCRIPTOR mEndOfPeiSignalPpiNotifyList[] = {
+EFI_PEI_NOTIFY_DESCRIPTOR mEndOfPeiSignalPpiNotifyList[] = {
{
(EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiEndOfPeiSignalPpiGuid,
@@ -337,25 +344,25 @@ PcdPeimInit (
IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = PeiServicesRegisterForShadow (FileHandle);
if (Status == EFI_ALREADY_STARTED) {
//
// This is now starting in memory, the second time starting.
//
- EFI_PEI_PPI_DESCRIPTOR *OldPpiList;
- EFI_PEI_PPI_DESCRIPTOR *OldPpiList2;
- VOID *Ppi;
- VOID *Ppi2;
+ EFI_PEI_PPI_DESCRIPTOR *OldPpiList;
+ EFI_PEI_PPI_DESCRIPTOR *OldPpiList2;
+ VOID *Ppi;
+ VOID *Ppi2;
OldPpiList = NULL;
- Status = PeiServicesLocatePpi (
- &gPcdPpiGuid,
- 0,
- &OldPpiList,
- &Ppi
- );
+ Status = PeiServicesLocatePpi (
+ &gPcdPpiGuid,
+ 0,
+ &OldPpiList,
+ &Ppi
+ );
ASSERT_EFI_ERROR (Status);
if (OldPpiList != NULL) {
@@ -364,12 +371,12 @@ PcdPeimInit (
}
OldPpiList2 = NULL;
- Status = PeiServicesLocatePpi (
- &gGetPcdInfoPpiGuid,
- 0,
- &OldPpiList2,
- &Ppi2
- );
+ Status = PeiServicesLocatePpi (
+ &gGetPcdInfoPpiGuid,
+ 0,
+ &OldPpiList2,
+ &Ppi2
+ );
ASSERT_EFI_ERROR (Status);
if (OldPpiList2 != NULL) {
@@ -378,12 +385,12 @@ PcdPeimInit (
}
OldPpiList = NULL;
- Status = PeiServicesLocatePpi (
- &gEfiPeiPcdPpiGuid,
- 0,
- &OldPpiList,
- &Ppi
- );
+ Status = PeiServicesLocatePpi (
+ &gEfiPeiPcdPpiGuid,
+ 0,
+ &OldPpiList,
+ &Ppi
+ );
ASSERT_EFI_ERROR (Status);
if (OldPpiList != NULL) {
@@ -392,12 +399,12 @@ PcdPeimInit (
}
OldPpiList2 = NULL;
- Status = PeiServicesLocatePpi (
- &gEfiGetPcdInfoPpiGuid,
- 0,
- &OldPpiList2,
- &Ppi2
- );
+ Status = PeiServicesLocatePpi (
+ &gEfiGetPcdInfoPpiGuid,
+ 0,
+ &OldPpiList2,
+ &Ppi2
+ );
ASSERT_EFI_ERROR (Status);
if (OldPpiList2 != NULL) {
@@ -427,7 +434,7 @@ PcdPeimInit (
Status = PeiRegisterCallBackOnSet (
&gEfiMdeModulePkgTokenSpaceGuid,
- PcdToken(PcdSetNvStoreDefaultId),
+ PcdToken (PcdSetNvStoreDefaultId),
PcdSetNvStoreDefaultIdCallBack
);
ASSERT_EFI_ERROR (Status);
@@ -451,8 +458,8 @@ PcdPeimInit (
EFI_STATUS
EFIAPI
PeiGetPcdInfoGetInfo (
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
return PeiGetPcdInfo (NULL, TokenNumber, PcdInfo);
@@ -475,9 +482,9 @@ PeiGetPcdInfoGetInfo (
EFI_STATUS
EFIAPI
PeiGetPcdInfoGetInfoEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
return PeiGetPcdInfo (Guid, TokenNumber, PcdInfo);
@@ -496,7 +503,7 @@ PeiGetPcdInfoGetSku (
VOID
)
{
- return (UINTN) GetPcdDatabase()->SystemSkuId;
+ return (UINTN)GetPcdDatabase ()->SystemSkuId;
}
/**
@@ -523,24 +530,24 @@ PeiGetPcdInfoGetSku (
VOID
EFIAPI
PeiPcdSetSku (
- IN UINTN SkuId
+ IN UINTN SkuId
)
{
- PEI_PCD_DATABASE *PeiPcdDb;
- SKU_ID *SkuIdTable;
- UINTN Index;
- EFI_STATUS Status;
- UINTN Instance;
- EFI_PEI_FV_HANDLE VolumeHandle;
- EFI_PEI_FILE_HANDLE FileHandle;
- VOID *PcdDb;
- UINT32 Length;
- PCD_DATABASE_SKU_DELTA *SkuDelta;
- PCD_DATA_DELTA *SkuDeltaData;
-
- DEBUG ((DEBUG_INFO, "PcdPei - SkuId 0x%lx is to be set.\n", (SKU_ID) SkuId));
+ PEI_PCD_DATABASE *PeiPcdDb;
+ SKU_ID *SkuIdTable;
+ UINTN Index;
+ EFI_STATUS Status;
+ UINTN Instance;
+ EFI_PEI_FV_HANDLE VolumeHandle;
+ EFI_PEI_FILE_HANDLE FileHandle;
+ VOID *PcdDb;
+ UINT32 Length;
+ PCD_DATABASE_SKU_DELTA *SkuDelta;
+ PCD_DATA_DELTA *SkuDeltaData;
+
+ DEBUG ((DEBUG_INFO, "PcdPei - SkuId 0x%lx is to be set.\n", (SKU_ID)SkuId));
- PeiPcdDb = GetPcdDatabase();
+ PeiPcdDb = GetPcdDatabase ();
if (SkuId == PeiPcdDb->SystemSkuId) {
//
@@ -550,19 +557,19 @@ PeiPcdSetSku (
return;
}
- if (PeiPcdDb->SystemSkuId != (SKU_ID) 0) {
+ if (PeiPcdDb->SystemSkuId != (SKU_ID)0) {
DEBUG ((DEBUG_ERROR, "PcdPei - The SKU Id could be changed only once."));
DEBUG ((
DEBUG_ERROR,
"PcdPei - The SKU Id was set to 0x%lx already, it could not be set to 0x%lx any more.",
PeiPcdDb->SystemSkuId,
- (SKU_ID) SkuId
+ (SKU_ID)SkuId
));
ASSERT (FALSE);
return;
}
- SkuIdTable = (SKU_ID *) ((UINT8 *) PeiPcdDb + PeiPcdDb->SkuIdTableOffset);
+ SkuIdTable = (SKU_ID *)((UINT8 *)PeiPcdDb + PeiPcdDb->SkuIdTableOffset);
for (Index = 0; Index < SkuIdTable[0]; Index++) {
if (SkuId == SkuIdTable[Index + 1]) {
DEBUG ((DEBUG_INFO, "PcdPei - SkuId is found in SkuId table.\n"));
@@ -574,8 +581,8 @@ PeiPcdSetSku (
//
// Get full PCD database from PcdPeim FileHandle
//
- Instance = 0;
- FileHandle = NULL;
+ Instance = 0;
+ FileHandle = NULL;
while (TRUE) {
//
// Traverse all firmware volume instances
@@ -590,13 +597,14 @@ PeiPcdSetSku (
// Find PcdDb file from the beginning in this firmware volume.
//
FileHandle = NULL;
- Status = PeiServicesFfsFindFileByName (&gEfiCallerIdGuid, VolumeHandle, &FileHandle);
+ Status = PeiServicesFfsFindFileByName (&gEfiCallerIdGuid, VolumeHandle, &FileHandle);
if (!EFI_ERROR (Status)) {
//
// Find PcdPeim FileHandle in this volume
//
break;
}
+
//
// We cannot find PcdPeim in this firmware volume, then search the next volume.
//
@@ -608,28 +616,30 @@ PeiPcdSetSku (
//
Status = PeiServicesFfsFindSectionData (EFI_SECTION_RAW, FileHandle, &PcdDb);
ASSERT_EFI_ERROR (Status);
- Length = PeiPcdDb->LengthForAllSkus;
- Index = (PeiPcdDb->Length + 7) & (~7);
+ Length = PeiPcdDb->LengthForAllSkus;
+ Index = (PeiPcdDb->Length + 7) & (~7);
SkuDelta = NULL;
while (Index < Length) {
- SkuDelta = (PCD_DATABASE_SKU_DELTA *) ((UINT8 *) PcdDb + Index);
- if (SkuDelta->SkuId == SkuId && SkuDelta->SkuIdCompared == 0) {
+ SkuDelta = (PCD_DATABASE_SKU_DELTA *)((UINT8 *)PcdDb + Index);
+ if ((SkuDelta->SkuId == SkuId) && (SkuDelta->SkuIdCompared == 0)) {
break;
}
+
Index = (Index + SkuDelta->Length + 7) & (~7);
}
//
// Patch the delta data into current PCD database
//
- if (Index < Length && SkuDelta != NULL) {
- SkuDeltaData = (PCD_DATA_DELTA *) (SkuDelta + 1);
- while ((UINT8 *) SkuDeltaData < (UINT8 *) SkuDelta + SkuDelta->Length) {
- *((UINT8 *) PeiPcdDb + SkuDeltaData->Offset) = (UINT8) SkuDeltaData->Value;
- SkuDeltaData ++;
+ if ((Index < Length) && (SkuDelta != NULL)) {
+ SkuDeltaData = (PCD_DATA_DELTA *)(SkuDelta + 1);
+ while ((UINT8 *)SkuDeltaData < (UINT8 *)SkuDelta + SkuDelta->Length) {
+ *((UINT8 *)PeiPcdDb + SkuDeltaData->Offset) = (UINT8)SkuDeltaData->Value;
+ SkuDeltaData++;
}
- PeiPcdDb->SystemSkuId = (SKU_ID) SkuId;
- DEBUG ((DEBUG_INFO, "PcdPei - Set current SKU Id to 0x%lx.\n", (SKU_ID) SkuId));
+
+ PeiPcdDb->SystemSkuId = (SKU_ID)SkuId;
+ DEBUG ((DEBUG_INFO, "PcdPei - Set current SKU Id to 0x%lx.\n", (SKU_ID)SkuId));
return;
}
}
@@ -656,10 +666,10 @@ PeiPcdSetSku (
UINT8
EFIAPI
PeiPcdGet8 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- return *((UINT8 *) GetWorker (TokenNumber, sizeof (UINT8)));
+ return *((UINT8 *)GetWorker (TokenNumber, sizeof (UINT8)));
}
/**
@@ -676,7 +686,7 @@ PeiPcdGet8 (
UINT16
EFIAPI
PeiPcdGet16 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return ReadUnaligned16 (GetWorker (TokenNumber, sizeof (UINT16)));
@@ -696,7 +706,7 @@ PeiPcdGet16 (
UINT32
EFIAPI
PeiPcdGet32 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return ReadUnaligned32 (GetWorker (TokenNumber, sizeof (UINT32)));
@@ -716,7 +726,7 @@ PeiPcdGet32 (
UINT64
EFIAPI
PeiPcdGet64 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return ReadUnaligned64 (GetWorker (TokenNumber, sizeof (UINT64)));
@@ -738,7 +748,7 @@ PeiPcdGet64 (
VOID *
EFIAPI
PeiPcdGetPtr (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
return GetWorker (TokenNumber, 0);
@@ -760,10 +770,10 @@ PeiPcdGetPtr (
BOOLEAN
EFIAPI
PeiPcdGetBool (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- return *((BOOLEAN *) GetWorker (TokenNumber, sizeof (BOOLEAN)));
+ return *((BOOLEAN *)GetWorker (TokenNumber, sizeof (BOOLEAN)));
}
/**
@@ -780,13 +790,13 @@ PeiPcdGetBool (
UINTN
EFIAPI
PeiPcdGetSize (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
)
{
- PEI_PCD_DATABASE *PeiPcdDb;
- UINTN Size;
- UINTN MaxSize;
- UINT32 LocalTokenCount;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ UINTN Size;
+ UINTN MaxSize;
+ UINT32 LocalTokenCount;
PeiPcdDb = GetPcdDatabase ();
LocalTokenCount = PeiPcdDb->LocalTokenCount;
@@ -812,7 +822,6 @@ PeiPcdGetSize (
} else {
return Size;
}
-
}
/**
@@ -832,11 +841,11 @@ PeiPcdGetSize (
UINT8
EFIAPI
PeiPcdGet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return *((UINT8 *) ExGetWorker (Guid, ExTokenNumber, sizeof (UINT8)));
+ return *((UINT8 *)ExGetWorker (Guid, ExTokenNumber, sizeof (UINT8)));
}
/**
@@ -856,8 +865,8 @@ PeiPcdGet8Ex (
UINT16
EFIAPI
PeiPcdGet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
return ReadUnaligned16 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT16)));
@@ -880,8 +889,8 @@ PeiPcdGet16Ex (
UINT32
EFIAPI
PeiPcdGet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
return ReadUnaligned32 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT32)));
@@ -904,8 +913,8 @@ PeiPcdGet32Ex (
UINT64
EFIAPI
PeiPcdGet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
return ReadUnaligned64 (ExGetWorker (Guid, ExTokenNumber, sizeof (UINT64)));
@@ -928,8 +937,8 @@ PeiPcdGet64Ex (
VOID *
EFIAPI
PeiPcdGetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
return ExGetWorker (Guid, ExTokenNumber, 0);
@@ -952,11 +961,11 @@ PeiPcdGetPtrEx (
BOOLEAN
EFIAPI
PeiPcdGetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- return *((BOOLEAN *) ExGetWorker (Guid, ExTokenNumber, sizeof (BOOLEAN)));
+ return *((BOOLEAN *)ExGetWorker (Guid, ExTokenNumber, sizeof (BOOLEAN)));
}
/**
@@ -974,8 +983,8 @@ PeiPcdGetBoolEx (
UINTN
EFIAPI
PeiPcdGetSizeEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
return PeiPcdGetSize (GetExPcdTokenNumber (Guid, ExTokenNumber));
@@ -1001,8 +1010,8 @@ PeiPcdGetSizeEx (
EFI_STATUS
EFIAPI
PeiPcdSet8 (
- IN UINTN TokenNumber,
- IN UINT8 Value
+ IN UINTN TokenNumber,
+ IN UINT8 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -1028,8 +1037,8 @@ PeiPcdSet8 (
EFI_STATUS
EFIAPI
PeiPcdSet16 (
- IN UINTN TokenNumber,
- IN UINT16 Value
+ IN UINTN TokenNumber,
+ IN UINT16 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -1055,8 +1064,8 @@ PeiPcdSet16 (
EFI_STATUS
EFIAPI
PeiPcdSet32 (
- IN UINTN TokenNumber,
- IN UINT32 Value
+ IN UINTN TokenNumber,
+ IN UINT32 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -1082,8 +1091,8 @@ PeiPcdSet32 (
EFI_STATUS
EFIAPI
PeiPcdSet64 (
- IN UINTN TokenNumber,
- IN UINT64 Value
+ IN UINTN TokenNumber,
+ IN UINT64 Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -1113,9 +1122,9 @@ PeiPcdSet64 (
EFI_STATUS
EFIAPI
PeiPcdSetPtr (
- IN UINTN TokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN UINTN TokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
)
{
return SetWorker (TokenNumber, Buffer, SizeOfBuffer, TRUE);
@@ -1141,8 +1150,8 @@ PeiPcdSetPtr (
EFI_STATUS
EFIAPI
PeiPcdSetBool (
- IN UINTN TokenNumber,
- IN BOOLEAN Value
+ IN UINTN TokenNumber,
+ IN BOOLEAN Value
)
{
return SetValueWorker (TokenNumber, &Value, sizeof (Value));
@@ -1169,9 +1178,9 @@ PeiPcdSetBool (
EFI_STATUS
EFIAPI
PeiPcdSet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT8 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT8 Value
)
{
return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
@@ -1198,9 +1207,9 @@ PeiPcdSet8Ex (
EFI_STATUS
EFIAPI
PeiPcdSet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT16 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT16 Value
)
{
return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
@@ -1227,9 +1236,9 @@ PeiPcdSet16Ex (
EFI_STATUS
EFIAPI
PeiPcdSet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT32 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT32 Value
)
{
return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
@@ -1256,9 +1265,9 @@ PeiPcdSet32Ex (
EFI_STATUS
EFIAPI
PeiPcdSet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINT64 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINT64 Value
)
{
return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
@@ -1289,10 +1298,10 @@ PeiPcdSet64Ex (
EFI_STATUS
EFIAPI
PeiPcdSetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Value
)
{
return ExSetWorker (ExTokenNumber, Guid, Value, SizeOfBuffer, TRUE);
@@ -1319,9 +1328,9 @@ PeiPcdSetPtrEx (
EFI_STATUS
EFIAPI
PeiPcdSetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN BOOLEAN Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN BOOLEAN Value
)
{
return ExSetValueWorker (ExTokenNumber, Guid, &Value, sizeof (Value));
@@ -1342,12 +1351,12 @@ PeiPcdSetBoolEx (
EFI_STATUS
EFIAPI
PeiRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN ExTokenNumber,
- IN PCD_PPI_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN ExTokenNumber,
+ IN PCD_PPI_CALLBACK CallBackFunction
)
{
- if (!FeaturePcdGet(PcdPeiFullPcdDatabaseEnable)) {
+ if (!FeaturePcdGet (PcdPeiFullPcdDatabaseEnable)) {
return EFI_UNSUPPORTED;
}
@@ -1373,12 +1382,12 @@ PeiRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
PcdUnRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN ExTokenNumber,
- IN PCD_PPI_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN ExTokenNumber,
+ IN PCD_PPI_CALLBACK CallBackFunction
)
{
- if (!FeaturePcdGet(PcdPeiFullPcdDatabaseEnable)) {
+ if (!FeaturePcdGet (PcdPeiFullPcdDatabaseEnable)) {
return EFI_UNSUPPORTED;
}
@@ -1417,19 +1426,19 @@ PcdUnRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
PeiPcdGetNextToken (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN OUT UINTN *TokenNumber
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN OUT UINTN *TokenNumber
)
{
- UINTN GuidTableIdx;
- PEI_PCD_DATABASE *PeiPcdDb;
- EFI_GUID *MatchGuid;
- EFI_GUID *GuidTable;
- DYNAMICEX_MAPPING *ExMapTable;
- UINTN Index;
- BOOLEAN Found;
- BOOLEAN PeiExMapTableEmpty;
- UINTN PeiNexTokenNumber;
+ UINTN GuidTableIdx;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ EFI_GUID *MatchGuid;
+ EFI_GUID *GuidTable;
+ DYNAMICEX_MAPPING *ExMapTable;
+ UINTN Index;
+ BOOLEAN Found;
+ BOOLEAN PeiExMapTableEmpty;
+ UINTN PeiNexTokenNumber;
if (!FeaturePcdGet (PcdPeiFullPcdDatabaseEnable)) {
return EFI_UNSUPPORTED;
@@ -1444,22 +1453,25 @@ PeiPcdGetNextToken (
} else {
PeiExMapTableEmpty = FALSE;
}
+
if (Guid == NULL) {
if (*TokenNumber > PeiNexTokenNumber) {
return EFI_NOT_FOUND;
}
+
(*TokenNumber)++;
if (*TokenNumber > PeiNexTokenNumber) {
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;
return EFI_NOT_FOUND;
}
+
return EFI_SUCCESS;
} else {
if (PeiExMapTableEmpty) {
return EFI_NOT_FOUND;
}
- MatchGuid = ScanGuid (GuidTable, PeiPcdDb->GuidTableCount * sizeof(EFI_GUID), Guid);
+ MatchGuid = ScanGuid (GuidTable, PeiPcdDb->GuidTableCount * sizeof (EFI_GUID), Guid);
if (MatchGuid == NULL) {
return EFI_NOT_FOUND;
@@ -1487,7 +1499,7 @@ PeiPcdGetNextToken (
//
if (*TokenNumber == PCD_INVALID_TOKEN_NUMBER) {
*TokenNumber = ExMapTable[Index].ExTokenNumber;
- return EFI_SUCCESS;
+ return EFI_SUCCESS;
}
for ( ; Index < PeiPcdDb->ExTokenCount; Index++) {
@@ -1537,18 +1549,18 @@ PeiPcdGetNextToken (
EFI_STATUS
EFIAPI
PeiPcdGetNextTokenSpace (
- IN OUT CONST EFI_GUID **Guid
+ IN OUT CONST EFI_GUID **Guid
)
{
- UINTN GuidTableIdx;
- EFI_GUID *MatchGuid;
- PEI_PCD_DATABASE *PeiPcdDb;
- DYNAMICEX_MAPPING *ExMapTable;
- UINTN Index;
- UINTN Index2;
- BOOLEAN Found;
- BOOLEAN PeiExMapTableEmpty;
- EFI_GUID *GuidTable;
+ UINTN GuidTableIdx;
+ EFI_GUID *MatchGuid;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ DYNAMICEX_MAPPING *ExMapTable;
+ UINTN Index;
+ UINTN Index2;
+ BOOLEAN Found;
+ BOOLEAN PeiExMapTableEmpty;
+ EFI_GUID *GuidTable;
if (!FeaturePcdGet (PcdPeiFullPcdDatabaseEnable)) {
return EFI_UNSUPPORTED;
@@ -1579,7 +1591,7 @@ PeiPcdGetNextTokenSpace (
return EFI_SUCCESS;
}
- MatchGuid = ScanGuid (GuidTable, PeiPcdDb->GuidTableCount * sizeof(GuidTable[0]), *Guid);
+ MatchGuid = ScanGuid (GuidTable, PeiPcdDb->GuidTableCount * sizeof (GuidTable[0]), *Guid);
if (MatchGuid == NULL) {
return EFI_NOT_FOUND;
@@ -1600,7 +1612,7 @@ PeiPcdGetNextTokenSpace (
for ( ; Index < PeiPcdDb->ExTokenCount; Index++ ) {
if (ExMapTable[Index].ExGuidIndex != GuidTableIdx) {
Found = FALSE;
- for (Index2 = 0 ; Index2 < Index; Index2++) {
+ for (Index2 = 0; Index2 < Index; Index2++) {
if (ExMapTable[Index2].ExGuidIndex == ExMapTable[Index].ExGuidIndex) {
//
// This token namespace should have been found and output at preceding getting.
@@ -1609,17 +1621,18 @@ PeiPcdGetNextTokenSpace (
break;
}
}
+
if (!Found) {
*Guid = (EFI_GUID *)((UINT8 *)PeiPcdDb + PeiPcdDb->GuidTableOffset) + ExMapTable[Index].ExGuidIndex;
return EFI_SUCCESS;
}
}
}
+
*Guid = NULL;
}
return EFI_NOT_FOUND;
-
}
/**
@@ -1642,9 +1655,9 @@ GetPtrTypeSize (
IN PEI_PCD_DATABASE *Database
)
{
- INTN SizeTableIdx;
- UINTN LocalTokenNumber;
- SIZE_INFO *SizeTable;
+ INTN SizeTableIdx;
+ UINTN LocalTokenNumber;
+ SIZE_INFO *SizeTable;
SizeTableIdx = GetSizeTableIndex (LocalTokenNumberTableIdx, Database);
@@ -1660,13 +1673,13 @@ GetPtrTypeSize (
// PCD entry.
//
if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {
- //
- // We have only two entry for VPD enabled PCD entry:
- // 1) MAX Size.
- // 2) Current Size
- // We consider current size is equal to MAX size.
- //
- return *MaxSize;
+ //
+ // We have only two entry for VPD enabled PCD entry:
+ // 1) MAX Size.
+ // 2) Current Size
+ // We consider current size is equal to MAX size.
+ //
+ return *MaxSize;
} else {
//
// We have only two entry for Non-Sku enabled PCD entry:
@@ -1698,10 +1711,10 @@ SetPtrTypeSize (
IN PEI_PCD_DATABASE *Database
)
{
- INTN SizeTableIdx;
- UINTN LocalTokenNumber;
- SIZE_INFO *SizeTable;
- UINTN MaxSize;
+ INTN SizeTableIdx;
+ UINTN LocalTokenNumber;
+ SIZE_INFO *SizeTable;
+ UINTN MaxSize;
SizeTableIdx = GetSizeTableIndex (LocalTokenNumberTableIdx, Database);
@@ -1717,16 +1730,17 @@ SetPtrTypeSize (
// PCD entry.
//
if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {
- //
- // We shouldn't come here as we don't support SET for VPD
- //
- ASSERT (FALSE);
- return FALSE;
+ //
+ // We shouldn't come here as we don't support SET for VPD
+ //
+ ASSERT (FALSE);
+ return FALSE;
} else {
if ((*CurrentSize > MaxSize) ||
- (*CurrentSize == MAX_ADDRESS)) {
- *CurrentSize = MaxSize;
- return FALSE;
+ (*CurrentSize == MAX_ADDRESS))
+ {
+ *CurrentSize = MaxSize;
+ return FALSE;
}
//
@@ -1734,8 +1748,7 @@ SetPtrTypeSize (
// 1) MAX SIZE
// 2) Current Size
//
- SizeTable[SizeTableIdx + 1] = (SIZE_INFO) *CurrentSize;
+ SizeTable[SizeTableIdx + 1] = (SIZE_INFO)*CurrentSize;
return TRUE;
}
-
}
diff --git a/MdeModulePkg/Universal/PCD/Pei/Service.c b/MdeModulePkg/Universal/PCD/Pei/Service.c
index a26e486..0a570a4 100644
--- a/MdeModulePkg/Universal/PCD/Pei/Service.c
+++ b/MdeModulePkg/Universal/PCD/Pei/Service.c
@@ -19,11 +19,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
UINT32
GetLocalTokenNumber (
- IN PEI_PCD_DATABASE *Database,
- IN UINTN TokenNumber
+ IN PEI_PCD_DATABASE *Database,
+ IN UINTN TokenNumber
)
{
- UINT32 LocalTokenNumber;
+ UINT32 LocalTokenNumber;
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
@@ -46,7 +46,7 @@ GetLocalTokenNumber (
**/
EFI_PCD_TYPE
GetPcdType (
- IN UINT32 LocalTokenNumber
+ IN UINT32 LocalTokenNumber
)
{
switch (LocalTokenNumber & PCD_DATUM_TYPE_ALL_SET) {
@@ -58,6 +58,7 @@ GetPcdType (
} else {
return EFI_PCD_TYPE_8;
}
+
case PCD_DATUM_TYPE_UINT16:
return EFI_PCD_TYPE_16;
case PCD_DATUM_TYPE_UINT32:
@@ -82,17 +83,17 @@ GetPcdType (
**/
CHAR8 *
GetPcdName (
- IN BOOLEAN OnlyTokenSpaceName,
- IN PEI_PCD_DATABASE *Database,
- IN UINTN TokenNumber
+ IN BOOLEAN OnlyTokenSpaceName,
+ IN PEI_PCD_DATABASE *Database,
+ IN UINTN TokenNumber
)
{
- UINT8 *StringTable;
- UINTN NameSize;
- PCD_NAME_INDEX *PcdNameIndex;
- CHAR8 *TokenSpaceName;
- CHAR8 *PcdName;
- CHAR8 *Name;
+ UINT8 *StringTable;
+ UINTN NameSize;
+ PCD_NAME_INDEX *PcdNameIndex;
+ CHAR8 *TokenSpaceName;
+ CHAR8 *PcdName;
+ CHAR8 *Name;
//
// Return NULL when PCD name table is absent.
@@ -108,14 +109,14 @@ GetPcdName (
//
TokenNumber--;
- StringTable = (UINT8 *) Database + Database->StringTableOffset;
+ StringTable = (UINT8 *)Database + Database->StringTableOffset;
//
// Get the PCD name index.
//
- PcdNameIndex = (PCD_NAME_INDEX *)((UINT8 *) Database + Database->PcdNameTableOffset) + TokenNumber;
+ PcdNameIndex = (PCD_NAME_INDEX *)((UINT8 *)Database + Database->PcdNameTableOffset) + TokenNumber;
TokenSpaceName = (CHAR8 *)&StringTable[PcdNameIndex->TokenSpaceCNameIndex];
- PcdName = (CHAR8 *)&StringTable[PcdNameIndex->PcdCNameIndex];
+ PcdName = (CHAR8 *)&StringTable[PcdNameIndex->PcdCNameIndex];
if (OnlyTokenSpaceName) {
//
@@ -127,7 +128,7 @@ GetPcdName (
// Need to get the full PCD name.
//
NameSize = AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName);
- Name = AllocateZeroPool (NameSize);
+ Name = AllocateZeroPool (NameSize);
ASSERT (Name != NULL);
//
// Catenate TokenSpaceCName and PcdCName with a '.' to form the full PCD name.
@@ -157,21 +158,21 @@ GetPcdName (
**/
EFI_STATUS
ExGetPcdInfo (
- IN PEI_PCD_DATABASE *Database,
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN PEI_PCD_DATABASE *Database,
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
- UINTN GuidTableIdx;
- EFI_GUID *MatchGuid;
- EFI_GUID *GuidTable;
- DYNAMICEX_MAPPING *ExMapTable;
- UINTN Index;
- UINT32 LocalTokenNumber;
+ UINTN GuidTableIdx;
+ EFI_GUID *MatchGuid;
+ EFI_GUID *GuidTable;
+ DYNAMICEX_MAPPING *ExMapTable;
+ UINTN Index;
+ UINT32 LocalTokenNumber;
GuidTable = (EFI_GUID *)((UINT8 *)Database + Database->GuidTableOffset);
- MatchGuid = ScanGuid (GuidTable, Database->GuidTableCount * sizeof(EFI_GUID), Guid);
+ MatchGuid = ScanGuid (GuidTable, Database->GuidTableCount * sizeof (EFI_GUID), Guid);
if (MatchGuid == NULL) {
return EFI_NOT_FOUND;
@@ -228,15 +229,15 @@ ExGetPcdInfo (
**/
EFI_STATUS
PeiGetPcdInfo (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
)
{
- PEI_PCD_DATABASE *PeiPcdDb;
- BOOLEAN PeiExMapTableEmpty;
- UINTN PeiNexTokenNumber;
- UINT32 LocalTokenNumber;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ BOOLEAN PeiExMapTableEmpty;
+ UINTN PeiNexTokenNumber;
+ UINT32 LocalTokenNumber;
ASSERT (PcdInfo != NULL);
@@ -266,11 +267,13 @@ PeiGetPcdInfo (
PcdInfo->PcdType = GetPcdType (LocalTokenNumber);
PcdInfo->PcdName = GetPcdName (FALSE, PeiPcdDb, TokenNumber);
}
+
return EFI_SUCCESS;
} else {
if (PeiExMapTableEmpty) {
return EFI_NOT_FOUND;
}
+
return ExGetPcdInfo (
PeiPcdDb,
Guid,
@@ -297,24 +300,24 @@ PeiGetPcdInfo (
**/
EFI_STATUS
PeiRegisterCallBackWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN PCD_PPI_CALLBACK CallBackFunction,
- IN BOOLEAN Register
-)
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN PCD_PPI_CALLBACK CallBackFunction,
+ IN BOOLEAN Register
+ )
{
- EFI_HOB_GUID_TYPE *GuidHob;
- PCD_PPI_CALLBACK *CallbackTable;
- PCD_PPI_CALLBACK Compare;
- PCD_PPI_CALLBACK Assign;
- UINT32 LocalTokenNumber;
- UINT32 LocalTokenCount;
- UINTN PeiNexTokenNumber;
- UINTN TokenNumber;
- UINTN Idx;
- PEI_PCD_DATABASE *PeiPcdDb;
-
- PeiPcdDb = GetPcdDatabase();
+ EFI_HOB_GUID_TYPE *GuidHob;
+ PCD_PPI_CALLBACK *CallbackTable;
+ PCD_PPI_CALLBACK Compare;
+ PCD_PPI_CALLBACK Assign;
+ UINT32 LocalTokenNumber;
+ UINT32 LocalTokenCount;
+ UINTN PeiNexTokenNumber;
+ UINTN TokenNumber;
+ UINTN Idx;
+ PEI_PCD_DATABASE *PeiPcdDb;
+
+ PeiPcdDb = GetPcdDatabase ();
LocalTokenCount = PeiPcdDb->LocalTokenCount;
PeiNexTokenNumber = PeiPcdDb->LocalTokenCount - PeiPcdDb->ExTokenCount;
@@ -332,6 +335,7 @@ PeiRegisterCallBackWorker (
if (TokenNumber == PCD_INVALID_TOKEN_NUMBER) {
return EFI_NOT_FOUND;
}
+
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
// We have to decrement TokenNumber by 1 to make it usable
@@ -344,7 +348,6 @@ PeiRegisterCallBackWorker (
ASSERT ((TokenNumber + 1) < (LocalTokenCount + 1));
}
-
LocalTokenNumber = *((UINT32 *)((UINT8 *)PeiPcdDb + PeiPcdDb->LocalTokenNumberTableOffset) + TokenNumber);
//
@@ -360,9 +363,8 @@ PeiRegisterCallBackWorker (
CallbackTable = GET_GUID_HOB_DATA (GuidHob);
CallbackTable = CallbackTable + (TokenNumber * PcdGet32 (PcdMaxPeiPcdCallBackNumberPerPcdEntry));
- Compare = Register? NULL: CallBackFunction;
- Assign = Register? CallBackFunction: NULL;
-
+ Compare = Register ? NULL : CallBackFunction;
+ Assign = Register ? CallBackFunction : NULL;
for (Idx = 0; Idx < PcdGet32 (PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {
if (CallbackTable[Idx] == Compare) {
@@ -371,11 +373,9 @@ PeiRegisterCallBackWorker (
}
}
- return Register? EFI_OUT_OF_RESOURCES : EFI_INVALID_PARAMETER;
-
+ return Register ? EFI_OUT_OF_RESOURCES : EFI_INVALID_PARAMETER;
}
-
/**
Find the Pcd database.
@@ -386,13 +386,13 @@ PeiRegisterCallBackWorker (
**/
VOID *
LocateExPcdBinary (
- IN EFI_PEI_FILE_HANDLE FileHandle
+ IN EFI_PEI_FILE_HANDLE FileHandle
)
{
- EFI_STATUS Status;
- VOID *PcdDb;
+ EFI_STATUS Status;
+ VOID *PcdDb;
- PcdDb = NULL;
+ PcdDb = NULL;
ASSERT (FileHandle != NULL);
@@ -403,13 +403,14 @@ LocateExPcdBinary (
// Check the first bytes (Header Signature Guid) and build version.
//
if (!CompareGuid (PcdDb, &gPcdDataBaseSignatureGuid) ||
- (((PEI_PCD_DATABASE *) PcdDb)->BuildVersion != PCD_SERVICE_PEIM_VERSION)) {
+ (((PEI_PCD_DATABASE *)PcdDb)->BuildVersion != PCD_SERVICE_PEIM_VERSION))
+ {
ASSERT (FALSE);
}
+
return PcdDb;
}
-
/**
The function builds the PCD database.
@@ -419,20 +420,20 @@ LocateExPcdBinary (
**/
PEI_PCD_DATABASE *
BuildPcdDatabase (
- IN EFI_PEI_FILE_HANDLE FileHandle
+ IN EFI_PEI_FILE_HANDLE FileHandle
)
{
- PEI_PCD_DATABASE *Database;
- PEI_PCD_DATABASE *PeiPcdDbBinary;
- VOID *CallbackFnTable;
- UINTN SizeOfCallbackFnTable;
+ PEI_PCD_DATABASE *Database;
+ PEI_PCD_DATABASE *PeiPcdDbBinary;
+ VOID *CallbackFnTable;
+ UINTN SizeOfCallbackFnTable;
//
// Locate the external PCD database binary for one section of current FFS
//
PeiPcdDbBinary = LocateExPcdBinary (FileHandle);
- ASSERT(PeiPcdDbBinary != NULL);
+ ASSERT (PeiPcdDbBinary != NULL);
Database = BuildGuidHob (&gPcdDataBaseHobGuid, PeiPcdDbBinary->Length + PeiPcdDbBinary->UninitDataBaseSize);
@@ -466,25 +467,25 @@ BuildPcdDatabase (
**/
EFI_STATUS
GetHiiVariable (
- IN CONST EFI_GUID *VariableGuid,
- IN UINT16 *VariableName,
- OUT VOID **VariableData,
- OUT UINTN *VariableSize
+ IN CONST EFI_GUID *VariableGuid,
+ IN UINT16 *VariableName,
+ OUT VOID **VariableData,
+ OUT UINTN *VariableSize
)
{
- UINTN Size;
- EFI_STATUS Status;
- VOID *Buffer;
- EFI_PEI_READ_ONLY_VARIABLE2_PPI *VariablePpi;
+ UINTN Size;
+ EFI_STATUS Status;
+ VOID *Buffer;
+ EFI_PEI_READ_ONLY_VARIABLE2_PPI *VariablePpi;
- Status = PeiServicesLocatePpi (&gEfiPeiReadOnlyVariable2PpiGuid, 0, NULL, (VOID **) &VariablePpi);
+ Status = PeiServicesLocatePpi (&gEfiPeiReadOnlyVariable2PpiGuid, 0, NULL, (VOID **)&VariablePpi);
ASSERT_EFI_ERROR (Status);
- Size = 0;
+ Size = 0;
Status = VariablePpi->GetVariable (
VariablePpi,
VariableName,
- (EFI_GUID *) VariableGuid,
+ (EFI_GUID *)VariableGuid,
NULL,
&Size,
NULL
@@ -495,13 +496,13 @@ GetHiiVariable (
ASSERT_EFI_ERROR (Status);
Status = VariablePpi->GetVariable (
- VariablePpi,
- (UINT16 *) VariableName,
- (EFI_GUID *) VariableGuid,
- NULL,
- &Size,
- Buffer
- );
+ VariablePpi,
+ (UINT16 *)VariableName,
+ (EFI_GUID *)VariableGuid,
+ NULL,
+ &Size,
+ Buffer
+ );
ASSERT_EFI_ERROR (Status);
*VariableSize = Size;
@@ -528,18 +529,18 @@ GetHiiVariable (
**/
VOID
InvokeCallbackOnSet (
- UINTN ExTokenNumber,
- CONST EFI_GUID *Guid OPTIONAL,
- UINTN TokenNumber,
- VOID *Data,
- UINTN Size
+ UINTN ExTokenNumber,
+ CONST EFI_GUID *Guid OPTIONAL,
+ UINTN TokenNumber,
+ VOID *Data,
+ UINTN Size
)
{
- EFI_HOB_GUID_TYPE *GuidHob;
- PCD_PPI_CALLBACK *CallbackTable;
- UINTN Idx;
- PEI_PCD_DATABASE *PeiPcdDb;
- UINT32 LocalTokenCount;
+ EFI_HOB_GUID_TYPE *GuidHob;
+ PCD_PPI_CALLBACK *CallbackTable;
+ UINTN Idx;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ UINT32 LocalTokenCount;
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
@@ -567,11 +568,11 @@ InvokeCallbackOnSet (
for (Idx = 0; Idx < PcdGet32 (PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {
if (CallbackTable[Idx] != NULL) {
- CallbackTable[Idx] (Guid,
- (Guid == NULL) ? (TokenNumber + 1) : ExTokenNumber,
- Data,
- Size
- );
+ CallbackTable[Idx](Guid,
+ (Guid == NULL) ? (TokenNumber + 1) : ExTokenNumber,
+ Data,
+ Size
+ );
}
}
}
@@ -588,9 +589,9 @@ InvokeCallbackOnSet (
**/
EFI_STATUS
SetValueWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN UINTN Size
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN UINTN Size
)
{
return SetWorker (TokenNumber, Data, &Size, FALSE);
@@ -614,22 +615,22 @@ SetValueWorker (
**/
EFI_STATUS
SetWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
)
{
- UINT32 LocalTokenNumber;
- UINTN PeiNexTokenNumber;
- PEI_PCD_DATABASE *PeiPcdDb;
- STRING_HEAD StringTableIdx;
- UINTN Offset;
- VOID *InternalData;
- UINTN MaxSize;
- UINT32 LocalTokenCount;
-
- if (!FeaturePcdGet(PcdPeiFullPcdDatabaseEnable)) {
+ UINT32 LocalTokenNumber;
+ UINTN PeiNexTokenNumber;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ STRING_HEAD StringTableIdx;
+ UINTN Offset;
+ VOID *InternalData;
+ UINTN MaxSize;
+ UINT32 LocalTokenCount;
+
+ if (!FeaturePcdGet (PcdPeiFullPcdDatabaseEnable)) {
return EFI_UNSUPPORTED;
}
@@ -674,8 +675,8 @@ SetWorker (
LocalTokenNumber = GetLocalTokenNumber (PeiPcdDb, TokenNumber + 1);
- Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
- InternalData = (VOID *) ((UINT8 *) PeiPcdDb + Offset);
+ Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;
+ InternalData = (VOID *)((UINT8 *)PeiPcdDb + Offset);
switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {
case PCD_TYPE_VPD:
@@ -707,20 +708,20 @@ SetWorker (
}
switch (*Size) {
- case sizeof(UINT8):
- *((UINT8 *) InternalData) = *((UINT8 *) Data);
+ case sizeof (UINT8):
+ *((UINT8 *)InternalData) = *((UINT8 *)Data);
return EFI_SUCCESS;
- case sizeof(UINT16):
- *((UINT16 *) InternalData) = *((UINT16 *) Data);
+ case sizeof (UINT16):
+ *((UINT16 *)InternalData) = *((UINT16 *)Data);
return EFI_SUCCESS;
- case sizeof(UINT32):
- *((UINT32 *) InternalData) = *((UINT32 *) Data);
+ case sizeof (UINT32):
+ *((UINT32 *)InternalData) = *((UINT32 *)Data);
return EFI_SUCCESS;
- case sizeof(UINT64):
- *((UINT64 *) InternalData) = *((UINT64 *) Data);
+ case sizeof (UINT64):
+ *((UINT64 *)InternalData) = *((UINT64 *)Data);
return EFI_SUCCESS;
default:
@@ -728,12 +729,10 @@ SetWorker (
return EFI_NOT_FOUND;
}
}
-
}
ASSERT (FALSE);
return EFI_NOT_FOUND;
-
}
/**
@@ -749,10 +748,10 @@ SetWorker (
**/
EFI_STATUS
ExSetValueWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN UINTN Size
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN UINTN Size
)
{
return ExSetWorker (ExTokenNumber, Guid, Data, &Size, FALSE);
@@ -778,16 +777,16 @@ ExSetValueWorker (
**/
EFI_STATUS
ExSetWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
)
{
- UINTN TokenNumber;
+ UINTN TokenNumber;
- if (!FeaturePcdGet(PcdPeiFullPcdDatabaseEnable)) {
+ if (!FeaturePcdGet (PcdPeiFullPcdDatabaseEnable)) {
return EFI_UNSUPPORTED;
}
@@ -799,7 +798,6 @@ ExSetWorker (
InvokeCallbackOnSet (ExTokenNumber, Guid, TokenNumber, Data, *Size);
return SetWorker (TokenNumber, Data, Size, PtrType);
-
}
/**
@@ -838,24 +836,24 @@ ExGetWorker (
**/
VOID *
GetWorker (
- IN UINTN TokenNumber,
- IN UINTN GetSize
+ IN UINTN TokenNumber,
+ IN UINTN GetSize
)
{
- UINT32 Offset;
- EFI_GUID *Guid;
- UINT16 *Name;
- VARIABLE_HEAD *VariableHead;
- EFI_STATUS Status;
- UINTN DataSize;
- VOID *Data;
- UINT8 *StringTable;
- STRING_HEAD StringTableIdx;
- PEI_PCD_DATABASE *PeiPcdDb;
- UINT32 LocalTokenNumber;
- UINT32 LocalTokenCount;
- UINT8 *VaraiableDefaultBuffer;
- UINTN VpdBaseAddress;
+ UINT32 Offset;
+ EFI_GUID *Guid;
+ UINT16 *Name;
+ VARIABLE_HEAD *VariableHead;
+ EFI_STATUS Status;
+ UINTN DataSize;
+ VOID *Data;
+ UINT8 *StringTable;
+ STRING_HEAD StringTableIdx;
+ PEI_PCD_DATABASE *PeiPcdDb;
+ UINT32 LocalTokenNumber;
+ UINT32 LocalTokenCount;
+ UINT8 *VaraiableDefaultBuffer;
+ UINTN VpdBaseAddress;
//
// TokenNumber Zero is reserved as PCD_INVALID_TOKEN_NUMBER.
@@ -872,7 +870,7 @@ GetWorker (
// comparison.
ASSERT (TokenNumber + 1 < (LocalTokenCount + 1));
- ASSERT ((GetSize == PeiPcdGetSize(TokenNumber + 1)) || (GetSize == 0));
+ ASSERT ((GetSize == PeiPcdGetSize (TokenNumber + 1)) || (GetSize == 0));
LocalTokenNumber = GetLocalTokenNumber (PeiPcdDb, TokenNumber + 1);
@@ -882,19 +880,20 @@ GetWorker (
switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {
case PCD_TYPE_VPD:
{
- VPD_HEAD *VpdHead;
- VpdHead = (VPD_HEAD *) ((UINT8 *)PeiPcdDb + Offset);
+ VPD_HEAD *VpdHead;
+ VpdHead = (VPD_HEAD *)((UINT8 *)PeiPcdDb + Offset);
//
// PcdVpdBaseAddress64 is DynamicEx PCD only. So, PeiPcdGet64Ex() is used to get its value.
//
- VpdBaseAddress = (UINTN) PeiPcdGet64Ex (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdVpdBaseAddress64));
+ VpdBaseAddress = (UINTN)PeiPcdGet64Ex (&gEfiMdeModulePkgTokenSpaceGuid, PcdToken (PcdVpdBaseAddress64));
if (VpdBaseAddress == 0) {
//
// PcdVpdBaseAddress64 is not set, get value from PcdVpdBaseAddress.
//
- VpdBaseAddress = (UINTN) PcdGet32 (PcdVpdBaseAddress);
+ VpdBaseAddress = (UINTN)PcdGet32 (PcdVpdBaseAddress);
}
+
ASSERT (VpdBaseAddress != 0);
return (VOID *)(VpdBaseAddress + VpdHead->Offset);
}
@@ -902,20 +901,21 @@ GetWorker (
case PCD_TYPE_HII|PCD_TYPE_STRING:
case PCD_TYPE_HII:
{
- VariableHead = (VARIABLE_HEAD *) ((UINT8 *)PeiPcdDb + Offset);
+ VariableHead = (VARIABLE_HEAD *)((UINT8 *)PeiPcdDb + Offset);
- Guid = (EFI_GUID *) ((UINT8 *)PeiPcdDb + PeiPcdDb->GuidTableOffset) + VariableHead->GuidTableIndex;
- Name = (UINT16*)&StringTable[VariableHead->StringIndex];
+ Guid = (EFI_GUID *)((UINT8 *)PeiPcdDb + PeiPcdDb->GuidTableOffset) + VariableHead->GuidTableIndex;
+ Name = (UINT16 *)&StringTable[VariableHead->StringIndex];
if ((LocalTokenNumber & PCD_TYPE_ALL_SET) == (PCD_TYPE_HII|PCD_TYPE_STRING)) {
//
// If a HII type PCD's datum type is VOID*, the DefaultValueOffset is the index of
// string array in string table.
//
- VaraiableDefaultBuffer = (UINT8 *) &StringTable[*(STRING_HEAD*)((UINT8*) PeiPcdDb + VariableHead->DefaultValueOffset)];
+ VaraiableDefaultBuffer = (UINT8 *)&StringTable[*(STRING_HEAD *)((UINT8 *)PeiPcdDb + VariableHead->DefaultValueOffset)];
} else {
- VaraiableDefaultBuffer = (UINT8 *) PeiPcdDb + VariableHead->DefaultValueOffset;
+ VaraiableDefaultBuffer = (UINT8 *)PeiPcdDb + VariableHead->DefaultValueOffset;
}
+
Status = GetHiiVariable (Guid, Name, &Data, &DataSize);
if ((Status == EFI_SUCCESS) && (DataSize >= (VariableHead->Offset + GetSize))) {
if (GetSize == 0) {
@@ -931,32 +931,32 @@ GetWorker (
GetSize = DataSize - VariableHead->Offset;
}
}
+
//
// If the operation is successful, we copy the data
// to the default value buffer in the PCD Database.
//
- CopyMem (VaraiableDefaultBuffer, (UINT8 *) Data + VariableHead->Offset, GetSize);
+ CopyMem (VaraiableDefaultBuffer, (UINT8 *)Data + VariableHead->Offset, GetSize);
}
- return (VOID *) VaraiableDefaultBuffer;
+
+ return (VOID *)VaraiableDefaultBuffer;
}
case PCD_TYPE_DATA:
- return (VOID *) ((UINT8 *)PeiPcdDb + Offset);
+ return (VOID *)((UINT8 *)PeiPcdDb + Offset);
case PCD_TYPE_STRING:
- StringTableIdx = * (STRING_HEAD*) ((UINT8 *) PeiPcdDb + Offset);
- return (VOID *) (&StringTable[StringTableIdx]);
+ StringTableIdx = *(STRING_HEAD *)((UINT8 *)PeiPcdDb + Offset);
+ return (VOID *)(&StringTable[StringTableIdx]);
default:
ASSERT (FALSE);
break;
-
}
ASSERT (FALSE);
return NULL;
-
}
/**
@@ -974,23 +974,23 @@ GetWorker (
**/
UINTN
GetExPcdTokenNumber (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
)
{
- UINT32 Index;
- DYNAMICEX_MAPPING *ExMap;
- EFI_GUID *GuidTable;
- EFI_GUID *MatchGuid;
- UINTN MatchGuidIdx;
- PEI_PCD_DATABASE *PeiPcdDb;
+ UINT32 Index;
+ DYNAMICEX_MAPPING *ExMap;
+ EFI_GUID *GuidTable;
+ EFI_GUID *MatchGuid;
+ UINTN MatchGuidIdx;
+ PEI_PCD_DATABASE *PeiPcdDb;
- PeiPcdDb = GetPcdDatabase();
+ PeiPcdDb = GetPcdDatabase ();
- ExMap = (DYNAMICEX_MAPPING *)((UINT8 *)PeiPcdDb + PeiPcdDb->ExMapTableOffset);
- GuidTable = (EFI_GUID *)((UINT8 *)PeiPcdDb + PeiPcdDb->GuidTableOffset);
+ ExMap = (DYNAMICEX_MAPPING *)((UINT8 *)PeiPcdDb + PeiPcdDb->ExMapTableOffset);
+ GuidTable = (EFI_GUID *)((UINT8 *)PeiPcdDb + PeiPcdDb->GuidTableOffset);
- MatchGuid = ScanGuid (GuidTable, PeiPcdDb->GuidTableCount * sizeof(EFI_GUID), Guid);
+ MatchGuid = ScanGuid (GuidTable, PeiPcdDb->GuidTableCount * sizeof (EFI_GUID), Guid);
//
// We need to ASSERT here. If GUID can't be found in GuidTable, this is a
// error in the BUILD system.
@@ -1001,7 +1001,8 @@ GetExPcdTokenNumber (
for (Index = 0; Index < PeiPcdDb->ExTokenCount; Index++) {
if ((ExTokenNumber == ExMap[Index].ExTokenNumber) &&
- (MatchGuidIdx == ExMap[Index].ExGuidIndex)) {
+ (MatchGuidIdx == ExMap[Index].ExGuidIndex))
+ {
return ExMap[Index].TokenNumber;
}
}
@@ -1020,12 +1021,12 @@ GetPcdDatabase (
VOID
)
{
- EFI_HOB_GUID_TYPE *GuidHob;
+ EFI_HOB_GUID_TYPE *GuidHob;
GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid);
ASSERT (GuidHob != NULL);
- return (PEI_PCD_DATABASE *) GET_GUID_HOB_DATA (GuidHob);
+ return (PEI_PCD_DATABASE *)GET_GUID_HOB_DATA (GuidHob);
}
/**
@@ -1043,9 +1044,9 @@ GetSizeTableIndex (
IN PEI_PCD_DATABASE *Database
)
{
- UINTN Index;
- UINTN SizeTableIdx;
- UINTN LocalTokenNumber;
+ UINTN Index;
+ UINTN SizeTableIdx;
+ UINTN LocalTokenNumber;
SizeTableIdx = 0;
@@ -1058,23 +1059,22 @@ GetSizeTableIndex (
// PCD entry.
//
if ((LocalTokenNumber & PCD_TYPE_VPD) != 0) {
- //
- // We have only two entry for VPD enabled PCD entry:
- // 1) MAX Size.
- // 2) Current Size
- // Current size is equal to MAX size.
- //
- SizeTableIdx += 2;
+ //
+ // We have only two entry for VPD enabled PCD entry:
+ // 1) MAX Size.
+ // 2) Current Size
+ // Current size is equal to MAX size.
+ //
+ SizeTableIdx += 2;
} else {
- //
- // We have only two entry for Non-Sku enabled PCD entry:
- // 1) MAX SIZE
- // 2) Current Size
- //
- SizeTableIdx += 2;
+ //
+ // We have only two entry for Non-Sku enabled PCD entry:
+ // 1) MAX SIZE
+ // 2) Current Size
+ //
+ SizeTableIdx += 2;
}
}
-
}
return SizeTableIdx;
diff --git a/MdeModulePkg/Universal/PCD/Pei/Service.h b/MdeModulePkg/Universal/PCD/Pei/Service.h
index a1f5781..8b94bf3 100644
--- a/MdeModulePkg/Universal/PCD/Pei/Service.h
+++ b/MdeModulePkg/Universal/PCD/Pei/Service.h
@@ -31,7 +31,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// Please make sure the PCD Serivce PEIM Version is consistent with
// the version of the generated PEIM PCD Database by build tool.
//
-#define PCD_SERVICE_PEIM_VERSION 7
+#define PCD_SERVICE_PEIM_VERSION 7
//
// PCD_PEI_SERVICE_DRIVER_VERSION is defined in Autogen.h.
@@ -56,8 +56,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
PeiGetPcdInfoGetInfo (
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
);
/**
@@ -77,9 +77,9 @@ PeiGetPcdInfoGetInfo (
EFI_STATUS
EFIAPI
PeiGetPcdInfoGetInfoEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
);
/**
@@ -123,7 +123,7 @@ PeiGetPcdInfoGetSku (
VOID
EFIAPI
PeiPcdSetSku (
- IN UINTN SkuId
+ IN UINTN SkuId
);
/**
@@ -140,7 +140,7 @@ PeiPcdSetSku (
UINT8
EFIAPI
PeiPcdGet8 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -157,7 +157,7 @@ PeiPcdGet8 (
UINT16
EFIAPI
PeiPcdGet16 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -174,7 +174,7 @@ PeiPcdGet16 (
UINT32
EFIAPI
PeiPcdGet32 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -191,7 +191,7 @@ PeiPcdGet32 (
UINT64
EFIAPI
PeiPcdGet64 (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -210,7 +210,7 @@ PeiPcdGet64 (
VOID *
EFIAPI
PeiPcdGetPtr (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -229,7 +229,7 @@ PeiPcdGetPtr (
BOOLEAN
EFIAPI
PeiPcdGetBool (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -246,7 +246,7 @@ PeiPcdGetBool (
UINTN
EFIAPI
PeiPcdGetSize (
- IN UINTN TokenNumber
+ IN UINTN TokenNumber
);
/**
@@ -266,8 +266,8 @@ PeiPcdGetSize (
UINT8
EFIAPI
PeiPcdGet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -287,8 +287,8 @@ PeiPcdGet8Ex (
UINT16
EFIAPI
PeiPcdGet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -308,8 +308,8 @@ PeiPcdGet16Ex (
UINT32
EFIAPI
PeiPcdGet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -329,8 +329,8 @@ PeiPcdGet32Ex (
UINT64
EFIAPI
PeiPcdGet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -350,8 +350,8 @@ PeiPcdGet64Ex (
VOID *
EFIAPI
PeiPcdGetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -371,8 +371,8 @@ PeiPcdGetPtrEx (
BOOLEAN
EFIAPI
PeiPcdGetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -390,8 +390,8 @@ PeiPcdGetBoolEx (
UINTN
EFIAPI
PeiPcdGetSizeEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber
);
/**
@@ -414,8 +414,8 @@ PeiPcdGetSizeEx (
EFI_STATUS
EFIAPI
PeiPcdSet8 (
- IN UINTN TokenNumber,
- IN UINT8 Value
+ IN UINTN TokenNumber,
+ IN UINT8 Value
);
/**
@@ -438,8 +438,8 @@ PeiPcdSet8 (
EFI_STATUS
EFIAPI
PeiPcdSet16 (
- IN UINTN TokenNumber,
- IN UINT16 Value
+ IN UINTN TokenNumber,
+ IN UINT16 Value
);
/**
@@ -462,8 +462,8 @@ PeiPcdSet16 (
EFI_STATUS
EFIAPI
PeiPcdSet32 (
- IN UINTN TokenNumber,
- IN UINT32 Value
+ IN UINTN TokenNumber,
+ IN UINT32 Value
);
/**
@@ -486,8 +486,8 @@ PeiPcdSet32 (
EFI_STATUS
EFIAPI
PeiPcdSet64 (
- IN UINTN TokenNumber,
- IN UINT64 Value
+ IN UINTN TokenNumber,
+ IN UINT64 Value
);
/**
@@ -514,9 +514,9 @@ PeiPcdSet64 (
EFI_STATUS
EFIAPI
PeiPcdSetPtr (
- IN UINTN TokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN UINTN TokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
);
/**
@@ -539,8 +539,8 @@ PeiPcdSetPtr (
EFI_STATUS
EFIAPI
PeiPcdSetBool (
- IN UINTN TokenNumber,
- IN BOOLEAN Value
+ IN UINTN TokenNumber,
+ IN BOOLEAN Value
);
/**
@@ -564,9 +564,9 @@ PeiPcdSetBool (
EFI_STATUS
EFIAPI
PeiPcdSet8Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT8 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT8 Value
);
/**
@@ -590,9 +590,9 @@ PeiPcdSet8Ex (
EFI_STATUS
EFIAPI
PeiPcdSet16Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT16 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT16 Value
);
/**
@@ -616,9 +616,9 @@ PeiPcdSet16Ex (
EFI_STATUS
EFIAPI
PeiPcdSet32Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT32 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT32 Value
);
/**
@@ -642,9 +642,9 @@ PeiPcdSet32Ex (
EFI_STATUS
EFIAPI
PeiPcdSet64Ex (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN UINT64 Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN UINT64 Value
);
/**
@@ -672,10 +672,10 @@ PeiPcdSet64Ex (
EFI_STATUS
EFIAPI
PeiPcdSetPtrEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN OUT UINTN *SizeOfBuffer,
- IN VOID *Buffer
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN OUT UINTN *SizeOfBuffer,
+ IN VOID *Buffer
);
/**
@@ -699,9 +699,9 @@ PeiPcdSetPtrEx (
EFI_STATUS
EFIAPI
PeiPcdSetBoolEx (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- IN BOOLEAN Value
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ IN BOOLEAN Value
);
/**
@@ -719,9 +719,9 @@ PeiPcdSetBoolEx (
EFI_STATUS
EFIAPI
PeiRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN TokenNumber,
- IN PCD_PPI_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN TokenNumber,
+ IN PCD_PPI_CALLBACK CallBackFunction
);
/**
@@ -739,9 +739,9 @@ PeiRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
PcdUnRegisterCallBackOnSet (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN UINTN TokenNumber,
- IN PCD_PPI_CALLBACK CallBackFunction
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN UINTN TokenNumber,
+ IN PCD_PPI_CALLBACK CallBackFunction
);
/**
@@ -774,8 +774,8 @@ PcdUnRegisterCallBackOnSet (
EFI_STATUS
EFIAPI
PeiPcdGetNextToken (
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN OUT UINTN *TokenNumber
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN OUT UINTN *TokenNumber
);
/**
@@ -802,7 +802,7 @@ PeiPcdGetNextToken (
EFI_STATUS
EFIAPI
PeiPcdGetNextTokenSpace (
- IN OUT CONST EFI_GUID **Guid
+ IN OUT CONST EFI_GUID **Guid
);
/**
@@ -821,12 +821,13 @@ PeiPcdGetNextTokenSpace (
**/
EFI_STATUS
PeiGetPcdInfo (
- IN CONST EFI_GUID *Guid,
- IN UINTN TokenNumber,
- OUT EFI_PCD_INFO *PcdInfo
+ IN CONST EFI_GUID *Guid,
+ IN UINTN TokenNumber,
+ OUT EFI_PCD_INFO *PcdInfo
);
/* Internal Function definitions */
+
/**
Get PCD database from GUID HOB in PEI phase.
@@ -850,9 +851,9 @@ GetPcdDatabase (
**/
EFI_STATUS
SetValueWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN UINTN Size
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN UINTN Size
);
/**
@@ -873,10 +874,10 @@ SetValueWorker (
**/
EFI_STATUS
SetWorker (
- IN UINTN TokenNumber,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN TokenNumber,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
);
/**
@@ -892,10 +893,10 @@ SetWorker (
**/
EFI_STATUS
ExSetValueWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN UINTN Size
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN UINTN Size
);
/**
@@ -918,11 +919,11 @@ ExSetValueWorker (
**/
EFI_STATUS
ExSetWorker (
- IN UINTN ExTokenNumber,
- IN CONST EFI_GUID *Guid,
- IN VOID *Data,
- IN OUT UINTN *Size,
- IN BOOLEAN PtrType
+ IN UINTN ExTokenNumber,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN OUT UINTN *Size,
+ IN BOOLEAN PtrType
);
/**
@@ -941,8 +942,8 @@ ExSetWorker (
**/
VOID *
GetWorker (
- IN UINTN TokenNumber,
- IN UINTN GetSize
+ IN UINTN TokenNumber,
+ IN UINTN GetSize
);
/**
@@ -957,15 +958,15 @@ GetWorker (
**/
VOID *
ExGetWorker (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber,
- IN UINTN GetSize
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber,
+ IN UINTN GetSize
);
typedef struct {
- UINTN TokenNumber;
- UINTN Size;
- UINT32 LocalTokenNumberAlias;
+ UINTN TokenNumber;
+ UINTN Size;
+ UINT32 LocalTokenNumberAlias;
} EX_PCD_ENTRY_ATTRIBUTE;
/**
@@ -983,8 +984,8 @@ typedef struct {
**/
UINTN
GetExPcdTokenNumber (
- IN CONST EFI_GUID *Guid,
- IN UINTN ExTokenNumber
+ IN CONST EFI_GUID *Guid,
+ IN UINTN ExTokenNumber
);
/**
@@ -1003,10 +1004,10 @@ GetExPcdTokenNumber (
**/
EFI_STATUS
PeiRegisterCallBackWorker (
- IN UINTN TokenNumber,
- IN CONST EFI_GUID *Guid OPTIONAL,
- IN PCD_PPI_CALLBACK CallBackFunction,
- IN BOOLEAN Register
+ IN UINTN TokenNumber,
+ IN CONST EFI_GUID *Guid OPTIONAL,
+ IN PCD_PPI_CALLBACK CallBackFunction,
+ IN BOOLEAN Register
);
/**
@@ -1019,7 +1020,7 @@ PeiRegisterCallBackWorker (
**/
PEI_PCD_DATABASE *
BuildPcdDatabase (
- IN EFI_PEI_FILE_HANDLE FileHandle
+ IN EFI_PEI_FILE_HANDLE FileHandle
);
/**
diff --git a/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PciCfg2.c b/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PciCfg2.c
index 41fa929..7849070 100644
--- a/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PciCfg2.c
+++ b/MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PciCfg2.c
@@ -27,7 +27,7 @@
**/
UINTN
PciCfgAddressConvert (
- EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *Address
+ EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *Address
)
{
if (Address->ExtendedRegister == 0) {
@@ -55,52 +55,52 @@ PciCfgAddressConvert (
EFI_STATUS
EFIAPI
PciCfg2Read (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN CONST EFI_PEI_PCI_CFG2_PPI *This,
- IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
- IN UINT64 Address,
- IN OUT VOID *Buffer
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN CONST EFI_PEI_PCI_CFG2_PPI *This,
+ IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN OUT VOID *Buffer
)
{
UINTN PciLibAddress;
- PciLibAddress = PciCfgAddressConvert ((EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *) &Address);
+ PciLibAddress = PciCfgAddressConvert ((EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *)&Address);
if (Width == EfiPeiPciCfgWidthUint8) {
- *((UINT8 *) Buffer) = PciRead8 (PciLibAddress);
+ *((UINT8 *)Buffer) = PciRead8 (PciLibAddress);
} else if (Width == EfiPeiPciCfgWidthUint16) {
if ((PciLibAddress & 0x01) == 0) {
//
// Aligned Pci address access
//
- WriteUnaligned16 (((UINT16 *) Buffer), PciRead16 (PciLibAddress));
+ WriteUnaligned16 (((UINT16 *)Buffer), PciRead16 (PciLibAddress));
} else {
//
// Unaligned Pci address access, break up the request into byte by byte.
//
- *((UINT8 *) Buffer) = PciRead8 (PciLibAddress);
- *((UINT8 *) Buffer + 1) = PciRead8 (PciLibAddress + 1);
+ *((UINT8 *)Buffer) = PciRead8 (PciLibAddress);
+ *((UINT8 *)Buffer + 1) = PciRead8 (PciLibAddress + 1);
}
} else if (Width == EfiPeiPciCfgWidthUint32) {
if ((PciLibAddress & 0x03) == 0) {
//
// Aligned Pci address access
//
- WriteUnaligned32 (((UINT32 *) Buffer), PciRead32 (PciLibAddress));
+ WriteUnaligned32 (((UINT32 *)Buffer), PciRead32 (PciLibAddress));
} else if ((PciLibAddress & 0x01) == 0) {
//
// Unaligned Pci address access, break up the request into word by word.
//
- WriteUnaligned16 (((UINT16 *) Buffer), PciRead16 (PciLibAddress));
- WriteUnaligned16 (((UINT16 *) Buffer + 1), PciRead16 (PciLibAddress + 2));
+ WriteUnaligned16 (((UINT16 *)Buffer), PciRead16 (PciLibAddress));
+ WriteUnaligned16 (((UINT16 *)Buffer + 1), PciRead16 (PciLibAddress + 2));
} else {
//
// Unaligned Pci address access, break up the request into byte by byte.
//
- *((UINT8 *) Buffer) = PciRead8 (PciLibAddress);
- *((UINT8 *) Buffer + 1) = PciRead8 (PciLibAddress + 1);
- *((UINT8 *) Buffer + 2) = PciRead8 (PciLibAddress + 2);
- *((UINT8 *) Buffer + 3) = PciRead8 (PciLibAddress + 3);
+ *((UINT8 *)Buffer) = PciRead8 (PciLibAddress);
+ *((UINT8 *)Buffer + 1) = PciRead8 (PciLibAddress + 1);
+ *((UINT8 *)Buffer + 2) = PciRead8 (PciLibAddress + 2);
+ *((UINT8 *)Buffer + 3) = PciRead8 (PciLibAddress + 3);
}
} else {
return EFI_INVALID_PARAMETER;
@@ -127,52 +127,52 @@ PciCfg2Read (
EFI_STATUS
EFIAPI
PciCfg2Write (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN CONST EFI_PEI_PCI_CFG2_PPI *This,
- IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
- IN UINT64 Address,
- IN OUT VOID *Buffer
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN CONST EFI_PEI_PCI_CFG2_PPI *This,
+ IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN OUT VOID *Buffer
)
{
UINTN PciLibAddress;
- PciLibAddress = PciCfgAddressConvert ((EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *) &Address);
+ PciLibAddress = PciCfgAddressConvert ((EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *)&Address);
if (Width == EfiPeiPciCfgWidthUint8) {
- PciWrite8 (PciLibAddress, *((UINT8 *) Buffer));
+ PciWrite8 (PciLibAddress, *((UINT8 *)Buffer));
} else if (Width == EfiPeiPciCfgWidthUint16) {
if ((PciLibAddress & 0x01) == 0) {
//
// Aligned Pci address access
//
- PciWrite16 (PciLibAddress, ReadUnaligned16 ((UINT16 *) Buffer));
+ PciWrite16 (PciLibAddress, ReadUnaligned16 ((UINT16 *)Buffer));
} else {
//
// Unaligned Pci address access, break up the request into byte by byte.
//
- PciWrite8 (PciLibAddress, *((UINT8 *) Buffer));
- PciWrite8 (PciLibAddress + 1, *((UINT8 *) Buffer + 1));
+ PciWrite8 (PciLibAddress, *((UINT8 *)Buffer));
+ PciWrite8 (PciLibAddress + 1, *((UINT8 *)Buffer + 1));
}
} else if (Width == EfiPeiPciCfgWidthUint32) {
if ((PciLibAddress & 0x03) == 0) {
//
// Aligned Pci address access
//
- PciWrite32 (PciLibAddress, ReadUnaligned32 ((UINT32 *) Buffer));
+ PciWrite32 (PciLibAddress, ReadUnaligned32 ((UINT32 *)Buffer));
} else if ((PciLibAddress & 0x01) == 0) {
//
// Unaligned Pci address access, break up the request into word by word.
//
- PciWrite16 (PciLibAddress, ReadUnaligned16 ((UINT16 *) Buffer));
- PciWrite16 (PciLibAddress + 2, ReadUnaligned16 ((UINT16 *) Buffer + 1));
+ PciWrite16 (PciLibAddress, ReadUnaligned16 ((UINT16 *)Buffer));
+ PciWrite16 (PciLibAddress + 2, ReadUnaligned16 ((UINT16 *)Buffer + 1));
} else {
//
// Unaligned Pci address access, break up the request into byte by byte.
//
- PciWrite8 (PciLibAddress, *((UINT8 *) Buffer));
- PciWrite8 (PciLibAddress + 1, *((UINT8 *) Buffer + 1));
- PciWrite8 (PciLibAddress + 2, *((UINT8 *) Buffer + 2));
- PciWrite8 (PciLibAddress + 3, *((UINT8 *) Buffer + 3));
+ PciWrite8 (PciLibAddress, *((UINT8 *)Buffer));
+ PciWrite8 (PciLibAddress + 1, *((UINT8 *)Buffer + 1));
+ PciWrite8 (PciLibAddress + 2, *((UINT8 *)Buffer + 2));
+ PciWrite8 (PciLibAddress + 3, *((UINT8 *)Buffer + 3));
}
} else {
return EFI_INVALID_PARAMETER;
@@ -181,7 +181,6 @@ PciCfg2Write (
return EFI_SUCCESS;
}
-
/**
This function performs a read-modify-write operation on the contents from a given
location in the PCI configuration space.
@@ -204,12 +203,12 @@ PciCfg2Write (
EFI_STATUS
EFIAPI
PciCfg2Modify (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN CONST EFI_PEI_PCI_CFG2_PPI *This,
- IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
- IN UINT64 Address,
- IN VOID *SetBits,
- IN VOID *ClearBits
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN CONST EFI_PEI_PCI_CFG2_PPI *This,
+ IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
+ IN UINT64 Address,
+ IN VOID *SetBits,
+ IN VOID *ClearBits
)
{
UINTN PciLibAddress;
@@ -218,52 +217,52 @@ PciCfg2Modify (
UINT32 ClearValue32;
UINT32 SetValue32;
- PciLibAddress = PciCfgAddressConvert ((EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *) &Address);
+ PciLibAddress = PciCfgAddressConvert ((EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS *)&Address);
if (Width == EfiPeiPciCfgWidthUint8) {
- PciAndThenOr8 (PciLibAddress, (UINT8) (~(*(UINT8 *) ClearBits)), *((UINT8 *) SetBits));
+ PciAndThenOr8 (PciLibAddress, (UINT8)(~(*(UINT8 *)ClearBits)), *((UINT8 *)SetBits));
} else if (Width == EfiPeiPciCfgWidthUint16) {
if ((PciLibAddress & 0x01) == 0) {
//
// Aligned Pci address access
//
- ClearValue16 = (UINT16) (~ReadUnaligned16 ((UINT16 *) ClearBits));
- SetValue16 = ReadUnaligned16 ((UINT16 *) SetBits);
+ ClearValue16 = (UINT16)(~ReadUnaligned16 ((UINT16 *)ClearBits));
+ SetValue16 = ReadUnaligned16 ((UINT16 *)SetBits);
PciAndThenOr16 (PciLibAddress, ClearValue16, SetValue16);
} else {
//
// Unaligned Pci address access, break up the request into byte by byte.
//
- PciAndThenOr8 (PciLibAddress, (UINT8) (~(*(UINT8 *) ClearBits)), *((UINT8 *) SetBits));
- PciAndThenOr8 (PciLibAddress + 1, (UINT8) (~(*((UINT8 *) ClearBits + 1))), *((UINT8 *) SetBits + 1));
+ PciAndThenOr8 (PciLibAddress, (UINT8)(~(*(UINT8 *)ClearBits)), *((UINT8 *)SetBits));
+ PciAndThenOr8 (PciLibAddress + 1, (UINT8)(~(*((UINT8 *)ClearBits + 1))), *((UINT8 *)SetBits + 1));
}
} else if (Width == EfiPeiPciCfgWidthUint32) {
if ((PciLibAddress & 0x03) == 0) {
//
// Aligned Pci address access
//
- ClearValue32 = (UINT32) (~ReadUnaligned32 ((UINT32 *) ClearBits));
- SetValue32 = ReadUnaligned32 ((UINT32 *) SetBits);
+ ClearValue32 = (UINT32)(~ReadUnaligned32 ((UINT32 *)ClearBits));
+ SetValue32 = ReadUnaligned32 ((UINT32 *)SetBits);
PciAndThenOr32 (PciLibAddress, ClearValue32, SetValue32);
} else if ((PciLibAddress & 0x01) == 0) {
//
// Unaligned Pci address access, break up the request into word by word.
//
- ClearValue16 = (UINT16) (~ReadUnaligned16 ((UINT16 *) ClearBits));
- SetValue16 = ReadUnaligned16 ((UINT16 *) SetBits);
+ ClearValue16 = (UINT16)(~ReadUnaligned16 ((UINT16 *)ClearBits));
+ SetValue16 = ReadUnaligned16 ((UINT16 *)SetBits);
PciAndThenOr16 (PciLibAddress, ClearValue16, SetValue16);
- ClearValue16 = (UINT16) (~ReadUnaligned16 ((UINT16 *) ClearBits + 1));
- SetValue16 = ReadUnaligned16 ((UINT16 *) SetBits + 1);
+ ClearValue16 = (UINT16)(~ReadUnaligned16 ((UINT16 *)ClearBits + 1));
+ SetValue16 = ReadUnaligned16 ((UINT16 *)SetBits + 1);
PciAndThenOr16 (PciLibAddress + 2, ClearValue16, SetValue16);
} else {
//
// Unaligned Pci address access, break up the request into byte by byte.
//
- PciAndThenOr8 (PciLibAddress, (UINT8) (~(*(UINT8 *) ClearBits)), *((UINT8 *) SetBits));
- PciAndThenOr8 (PciLibAddress + 1, (UINT8) (~(*((UINT8 *) ClearBits + 1))), *((UINT8 *) SetBits + 1));
- PciAndThenOr8 (PciLibAddress + 2, (UINT8) (~(*((UINT8 *) ClearBits + 2))), *((UINT8 *) SetBits + 2));
- PciAndThenOr8 (PciLibAddress + 3, (UINT8) (~(*((UINT8 *) ClearBits + 3))), *((UINT8 *) SetBits + 3));
+ PciAndThenOr8 (PciLibAddress, (UINT8)(~(*(UINT8 *)ClearBits)), *((UINT8 *)SetBits));
+ PciAndThenOr8 (PciLibAddress + 1, (UINT8)(~(*((UINT8 *)ClearBits + 1))), *((UINT8 *)SetBits + 1));
+ PciAndThenOr8 (PciLibAddress + 2, (UINT8)(~(*((UINT8 *)ClearBits + 2))), *((UINT8 *)SetBits + 2));
+ PciAndThenOr8 (PciLibAddress + 3, (UINT8)(~(*((UINT8 *)ClearBits + 3))), *((UINT8 *)SetBits + 3));
}
} else {
return EFI_INVALID_PARAMETER;
@@ -272,14 +271,14 @@ PciCfg2Modify (
return EFI_SUCCESS;
}
-EFI_PEI_PCI_CFG2_PPI gPciCfg2Ppi = {
+EFI_PEI_PCI_CFG2_PPI gPciCfg2Ppi = {
PciCfg2Read,
PciCfg2Write,
PciCfg2Modify,
0
};
-EFI_PEI_PPI_DESCRIPTOR gPciCfg2PpiList = {
+EFI_PEI_PPI_DESCRIPTOR gPciCfg2PpiList = {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiPciCfg2PpiGuid,
&gPciCfg2Ppi
@@ -301,10 +300,10 @@ PeimInitializePciCfg (
IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
(**(EFI_PEI_SERVICES **)PeiServices).PciCfg = &gPciCfg2Ppi;
- Status = PeiServicesInstallPpi (&gPciCfg2PpiList);
+ Status = PeiServicesInstallPpi (&gPciCfg2PpiList);
ASSERT_EFI_ERROR (Status);
return Status;
diff --git a/MdeModulePkg/Universal/PlatformDriOverrideDxe/InternalPlatDriOverrideDxe.h b/MdeModulePkg/Universal/PlatformDriOverrideDxe/InternalPlatDriOverrideDxe.h
index d7bb782..5dbb6c6 100644
--- a/MdeModulePkg/Universal/PlatformDriOverrideDxe/InternalPlatDriOverrideDxe.h
+++ b/MdeModulePkg/Universal/PlatformDriOverrideDxe/InternalPlatDriOverrideDxe.h
@@ -53,7 +53,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
FreeMappingDatabase (
- IN OUT LIST_ENTRY *MappingDataBase
+ IN OUT LIST_ENTRY *MappingDataBase
)
;
@@ -72,7 +72,7 @@ FreeMappingDatabase (
EFI_STATUS
EFIAPI
InitOverridesMapping (
- OUT LIST_ENTRY *MappingDataBase
+ OUT LIST_ENTRY *MappingDataBase
)
;
@@ -89,7 +89,7 @@ InitOverridesMapping (
EFI_STATUS
EFIAPI
SaveOverridesMapping (
- IN LIST_ENTRY *MappingDataBase
+ IN LIST_ENTRY *MappingDataBase
)
;
@@ -120,10 +120,10 @@ SaveOverridesMapping (
EFI_STATUS
EFIAPI
GetDriverFromMapping (
- IN EFI_HANDLE ControllerHandle,
- IN OUT EFI_HANDLE *DriverImageHandle,
- IN LIST_ENTRY *MappingDataBase,
- IN EFI_HANDLE CallerImageHandle
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT EFI_HANDLE *DriverImageHandle,
+ IN LIST_ENTRY *MappingDataBase,
+ IN EFI_HANDLE CallerImageHandle
)
;
@@ -147,11 +147,11 @@ GetDriverFromMapping (
EFI_STATUS
EFIAPI
CheckMapping (
- IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath OPTIONAL,
- IN LIST_ENTRY *MappingDataBase,
- OUT UINT32 *DriverInfoNum OPTIONAL,
- OUT UINT32 *DriverImageNO OPTIONAL
+ IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath OPTIONAL,
+ IN LIST_ENTRY *MappingDataBase,
+ OUT UINT32 *DriverInfoNum OPTIONAL,
+ OUT UINT32 *DriverImageNO OPTIONAL
)
;
@@ -177,10 +177,10 @@ CheckMapping (
EFI_STATUS
EFIAPI
InsertDriverImage (
- IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
- IN LIST_ENTRY *MappingDataBase,
- IN UINT32 DriverImageNO
+ IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
+ IN LIST_ENTRY *MappingDataBase,
+ IN UINT32 DriverImageNO
)
;
@@ -202,9 +202,9 @@ InsertDriverImage (
EFI_STATUS
EFIAPI
DeleteDriverImage (
- IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
- IN LIST_ENTRY *MappingDataBase
+ IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
+ IN LIST_ENTRY *MappingDataBase
)
;
diff --git a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c
index 045c574..3aa7660 100644
--- a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c
+++ b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideDxe.c
@@ -21,17 +21,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "InternalPlatDriOverrideDxe.h"
#include "PlatOverMngr.h"
-#define EFI_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('C', 'l', 'b', 'k')
+#define EFI_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('C', 'l', 'b', 'k')
#define EFI_CALLBACK_INFO_FROM_THIS(a) CR (a, EFI_CALLBACK_INFO, ConfigAccess, EFI_CALLBACK_INFO_SIGNATURE)
typedef struct {
- UINTN Signature;
- EFI_HANDLE DriverHandle;
- EFI_HII_HANDLE RegisteredHandle;
- PLAT_OVER_MNGR_DATA FakeNvData;
- EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
- EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
- EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL PlatformDriverOverride;
+ UINTN Signature;
+ EFI_HANDLE DriverHandle;
+ EFI_HII_HANDLE RegisteredHandle;
+ PLAT_OVER_MNGR_DATA FakeNvData;
+ EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
+ EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL PlatformDriverOverride;
} EFI_CALLBACK_INFO;
#pragma pack(1)
@@ -40,8 +40,8 @@ typedef struct {
/// HII specific Vendor Device Path definition.
///
typedef struct {
- VENDOR_DEVICE_PATH VendorDevicePath;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH VendorDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL End;
} HII_VENDOR_DEVICE_PATH;
#pragma pack()
@@ -55,25 +55,25 @@ extern UINT8 PlatDriOverrideDxeStrings[];
//
// module global data
//
-CHAR16 mVariableName[] = L"Data";
-LIST_ENTRY mMappingDataBase = INITIALIZE_LIST_HEAD_VARIABLE (mMappingDataBase);
-BOOLEAN mEnvironmentVariableRead = FALSE;
-EFI_HANDLE mCallerImageHandle = NULL;
-
-EFI_HANDLE *mDevicePathHandleBuffer;
-EFI_HANDLE *mDriverImageHandleBuffer;
-
-INTN mSelectedCtrIndex;
-EFI_STRING_ID *mControllerToken;
-UINTN mDriverImageHandleCount;
-EFI_STRING_ID *mDriverImageToken;
-EFI_DEVICE_PATH_PROTOCOL **mControllerDevicePathProtocol;
-UINTN mSelectedDriverImageNum;
-UINTN mLastSavedDriverImageNum;
-UINT16 mCurrentPage;
-EFI_CALLBACK_INFO *mCallbackInfo;
-BOOLEAN *mDriSelection;
-UINTN mMaxDeviceCount;
+CHAR16 mVariableName[] = L"Data";
+LIST_ENTRY mMappingDataBase = INITIALIZE_LIST_HEAD_VARIABLE (mMappingDataBase);
+BOOLEAN mEnvironmentVariableRead = FALSE;
+EFI_HANDLE mCallerImageHandle = NULL;
+
+EFI_HANDLE *mDevicePathHandleBuffer;
+EFI_HANDLE *mDriverImageHandleBuffer;
+
+INTN mSelectedCtrIndex;
+EFI_STRING_ID *mControllerToken;
+UINTN mDriverImageHandleCount;
+EFI_STRING_ID *mDriverImageToken;
+EFI_DEVICE_PATH_PROTOCOL **mControllerDevicePathProtocol;
+UINTN mSelectedDriverImageNum;
+UINTN mLastSavedDriverImageNum;
+UINT16 mCurrentPage;
+EFI_CALLBACK_INFO *mCallbackInfo;
+BOOLEAN *mDriSelection;
+UINTN mMaxDeviceCount;
HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
{
@@ -81,8 +81,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
HARDWARE_DEVICE_PATH,
HW_VENDOR_DP,
{
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
PLAT_OVER_MNGR_GUID
@@ -91,8 +91,8 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
- (UINT8) (END_DEVICE_PATH_LENGTH),
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
+ (UINT8)(END_DEVICE_PATH_LENGTH),
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
};
@@ -107,10 +107,11 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath = {
**/
CHAR16 *
DevicePathToStr (
- IN EFI_DEVICE_PATH_PROTOCOL *DevPath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevPath
)
{
- CHAR16 *Text;
+ CHAR16 *Text;
+
Text = ConvertDevicePathToText (
DevPath,
FALSE,
@@ -138,21 +139,21 @@ DevicePathToStr (
**/
CHAR16 *
GetComponentNameWorker (
- IN EFI_HANDLE DriverBindingHandle,
- IN EFI_GUID *ProtocolGuid,
- IN CONST CHAR16 *VariableName
+ IN EFI_HANDLE DriverBindingHandle,
+ IN EFI_GUID *ProtocolGuid,
+ IN CONST CHAR16 *VariableName
)
{
- EFI_STATUS Status;
- EFI_COMPONENT_NAME_PROTOCOL *ComponentName;
- CHAR16 *DriverName;
- CHAR8 *Language;
- CHAR8 *BestLanguage;
+ EFI_STATUS Status;
+ EFI_COMPONENT_NAME_PROTOCOL *ComponentName;
+ CHAR16 *DriverName;
+ CHAR8 *Language;
+ CHAR8 *BestLanguage;
Status = gBS->OpenProtocol (
DriverBindingHandle,
ProtocolGuid,
- (VOID *) &ComponentName,
+ (VOID *)&ComponentName,
NULL,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -164,10 +165,10 @@ GetComponentNameWorker (
//
// Find the best matching language.
//
- GetEfiGlobalVariable2 (VariableName, (VOID**)&Language, NULL);
+ GetEfiGlobalVariable2 (VariableName, (VOID **)&Language, NULL);
BestLanguage = GetBestLanguage (
ComponentName->SupportedLanguages,
- (BOOLEAN) (ProtocolGuid == &gEfiComponentNameProtocolGuid),
+ (BOOLEAN)(ProtocolGuid == &gEfiComponentNameProtocolGuid),
Language,
NULL
);
@@ -189,7 +190,6 @@ GetComponentNameWorker (
return DriverName;
}
-
/**
Get the driver name by ComponentName or ComponentName2 protocol
according to the driver binding handle
@@ -202,10 +202,10 @@ GetComponentNameWorker (
**/
CHAR16 *
GetComponentName (
- IN EFI_HANDLE DriverBindingHandle
+ IN EFI_HANDLE DriverBindingHandle
)
{
- CHAR16 *DriverName;
+ CHAR16 *DriverName;
//
// Try RFC 4646 Component Name 2 protocol first.
@@ -233,45 +233,46 @@ GetComponentName (
**/
CHAR16 *
GetImageName (
- IN EFI_LOADED_IMAGE_PROTOCOL *Image
+ IN EFI_LOADED_IMAGE_PROTOCOL *Image
)
{
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *DevPathNode;
- EFI_DEVICE_PATH_PROTOCOL *AlignedDevPathNode;
- MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvFilePath;
- VOID *Buffer;
- UINTN BufferSize;
- UINT32 AuthenticationStatus;
- EFI_GUID *NameGuid;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv2;
-
- Fv2 = NULL;
- Buffer = NULL;
- BufferSize = 0;
+ EFI_STATUS Status;
+ EFI_DEVICE_PATH_PROTOCOL *DevPathNode;
+ EFI_DEVICE_PATH_PROTOCOL *AlignedDevPathNode;
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvFilePath;
+ VOID *Buffer;
+ UINTN BufferSize;
+ UINT32 AuthenticationStatus;
+ EFI_GUID *NameGuid;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv2;
+
+ Fv2 = NULL;
+ Buffer = NULL;
+ BufferSize = 0;
if (Image->FilePath == NULL) {
return NULL;
}
- DevPathNode = Image->FilePath;
+
+ DevPathNode = Image->FilePath;
while (!IsDevicePathEnd (DevPathNode)) {
//
// Make sure device path node is aligned when accessing it's FV Name Guid field.
//
- AlignedDevPathNode = AllocateCopyPool (DevicePathNodeLength(DevPathNode), DevPathNode);
+ AlignedDevPathNode = AllocateCopyPool (DevicePathNodeLength (DevPathNode), DevPathNode);
//
// Find the Fv File path
//
NameGuid = EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)AlignedDevPathNode);
if (NameGuid != NULL) {
- FvFilePath = (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *) AlignedDevPathNode;
- Status = gBS->HandleProtocol (
- Image->DeviceHandle,
- &gEfiFirmwareVolume2ProtocolGuid,
- (VOID **) &Fv2
- );
+ FvFilePath = (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)AlignedDevPathNode;
+ Status = gBS->HandleProtocol (
+ Image->DeviceHandle,
+ &gEfiFirmwareVolume2ProtocolGuid,
+ (VOID **)&Fv2
+ );
//
// Locate Image EFI UI section to get the image name.
//
@@ -289,6 +290,7 @@ GetImageName (
FreePool (AlignedDevPathNode);
break;
}
+
Buffer = NULL;
}
}
@@ -319,26 +321,26 @@ GetImageName (
**/
EFI_STATUS
UpdateDeviceSelectPage (
- IN EFI_CALLBACK_INFO *Private,
- IN UINT16 KeyValue,
- IN PLAT_OVER_MNGR_DATA *FakeNvData
+ IN EFI_CALLBACK_INFO *Private,
+ IN UINT16 KeyValue,
+ IN PLAT_OVER_MNGR_DATA *FakeNvData
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN DevicePathHandleCount;
- UINTN NewStrSize;
- CHAR16 *NewString;
- EFI_STRING_ID NewStringToken;
- CHAR16 *ControllerName;
- EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
- EFI_PCI_IO_PROTOCOL *PciIo;
- EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *BusSpecificDriverOverride;
- UINTN Len;
- VOID *StartOpCodeHandle;
- VOID *EndOpCodeHandle;
- EFI_IFR_GUID_LABEL *StartLabel;
- EFI_IFR_GUID_LABEL *EndLabel;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN DevicePathHandleCount;
+ UINTN NewStrSize;
+ CHAR16 *NewString;
+ EFI_STRING_ID NewStringToken;
+ CHAR16 *ControllerName;
+ EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
+ EFI_PCI_IO_PROTOCOL *PciIo;
+ EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *BusSpecificDriverOverride;
+ UINTN Len;
+ VOID *StartOpCodeHandle;
+ VOID *EndOpCodeHandle;
+ EFI_IFR_GUID_LABEL *StartLabel;
+ EFI_IFR_GUID_LABEL *EndLabel;
//
// Set current page form ID.
@@ -363,14 +365,14 @@ UpdateDeviceSelectPage (
//
// Create Hii Extend Label OpCode as the start opcode
//
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
- StartLabel->Number = FORM_ID_DEVICE;
+ StartLabel->Number = FORM_ID_DEVICE;
//
// Create Hii Extend Label OpCode as the end opcode
//
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
EndLabel->Number = LABEL_END;
@@ -390,37 +392,39 @@ UpdateDeviceSelectPage (
// then the 'first refresh' string will be replaced by the 'refresh' string, and the two strings content are same after the replacement
//
NewStringToken = STRING_TOKEN (STR_FIRST_REFRESH);
- NewString = HiiGetString (Private->RegisteredHandle, STRING_TOKEN (STR_REFRESH), NULL);
+ NewString = HiiGetString (Private->RegisteredHandle, STRING_TOKEN (STR_REFRESH), NULL);
ASSERT (NewString != NULL);
if (HiiSetString (Private->RegisteredHandle, NewStringToken, NewString, NULL) == 0) {
ASSERT (FALSE);
}
+
FreePool (NewString);
NewStringToken = STRING_TOKEN (STR_FIRST_REFRESH_HELP);
- NewString = HiiGetString (Private->RegisteredHandle, STRING_TOKEN (STR_REFRESH_HELP), NULL);
+ NewString = HiiGetString (Private->RegisteredHandle, STRING_TOKEN (STR_REFRESH_HELP), NULL);
ASSERT (NewString != NULL);
if (HiiSetString (Private->RegisteredHandle, NewStringToken, NewString, NULL) == 0) {
ASSERT (FALSE);
}
+
FreePool (NewString);
//
// created needed controller device item in first page
//
- DevicePathHandleCount = 0;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiDevicePathProtocolGuid,
- NULL,
- &DevicePathHandleCount,
- &mDevicePathHandleBuffer
- );
+ DevicePathHandleCount = 0;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiDevicePathProtocolGuid,
+ NULL,
+ &DevicePathHandleCount,
+ &mDevicePathHandleBuffer
+ );
if (EFI_ERROR (Status) || (DevicePathHandleCount == 0)) {
return EFI_SUCCESS;
}
- mMaxDeviceCount = DevicePathHandleCount;
+ mMaxDeviceCount = DevicePathHandleCount;
mControllerDevicePathProtocol = AllocateZeroPool (DevicePathHandleCount * sizeof (EFI_DEVICE_PATH_PROTOCOL *));
ASSERT (mControllerDevicePathProtocol != NULL);
mControllerToken = AllocateZeroPool (DevicePathHandleCount * sizeof (EFI_STRING_ID));
@@ -436,39 +440,40 @@ UpdateDeviceSelectPage (
// Check whether it is a pci device
//
ControllerDevicePath = NULL;
- Status = gBS->OpenProtocol (
- mDevicePathHandleBuffer[Index],
- &gEfiPciIoProtocolGuid,
- (VOID **) &PciIo,
- NULL,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ Status = gBS->OpenProtocol (
+ mDevicePathHandleBuffer[Index],
+ &gEfiPciIoProtocolGuid,
+ (VOID **)&PciIo,
+ NULL,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
continue;
}
+
//
// Check whether it contain efi driver in its option rom
//
- Status = gBS->HandleProtocol(
- mDevicePathHandleBuffer[Index],
- &gEfiBusSpecificDriverOverrideProtocolGuid,
- (VOID **) &BusSpecificDriverOverride
- );
- if (EFI_ERROR (Status) || BusSpecificDriverOverride == NULL) {
+ Status = gBS->HandleProtocol (
+ mDevicePathHandleBuffer[Index],
+ &gEfiBusSpecificDriverOverrideProtocolGuid,
+ (VOID **)&BusSpecificDriverOverride
+ );
+ if (EFI_ERROR (Status) || (BusSpecificDriverOverride == NULL)) {
continue;
}
}
ControllerDevicePath = NULL;
- Status = gBS->OpenProtocol (
- mDevicePathHandleBuffer[Index],
- &gEfiDevicePathProtocolGuid,
- (VOID **) &ControllerDevicePath,
- NULL,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ Status = gBS->OpenProtocol (
+ mDevicePathHandleBuffer[Index],
+ &gEfiDevicePathProtocolGuid,
+ (VOID **)&ControllerDevicePath,
+ NULL,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
ASSERT_EFI_ERROR (Status);
//
// Save the device path protocol interface
@@ -483,16 +488,17 @@ UpdateDeviceSelectPage (
//
// Export the driver name string and create item in set options page
//
- Len = StrSize (ControllerName);
+ Len = StrSize (ControllerName);
NewStrSize = Len + StrSize (L"--");
- NewString = AllocateZeroPool (NewStrSize);
+ NewString = AllocateZeroPool (NewStrSize);
ASSERT (NewString != NULL);
- if (EFI_ERROR (CheckMapping (ControllerDevicePath,NULL, &mMappingDataBase, NULL, NULL))) {
- StrCatS (NewString, NewStrSize/sizeof(CHAR16), L"--");
+ if (EFI_ERROR (CheckMapping (ControllerDevicePath, NULL, &mMappingDataBase, NULL, NULL))) {
+ StrCatS (NewString, NewStrSize/sizeof (CHAR16), L"--");
} else {
- StrCatS (NewString, NewStrSize/sizeof(CHAR16), L"**");
+ StrCatS (NewString, NewStrSize/sizeof (CHAR16), L"**");
}
- StrCatS (NewString, NewStrSize/sizeof(CHAR16), ControllerName);
+
+ StrCatS (NewString, NewStrSize/sizeof (CHAR16), ControllerName);
NewStringToken = HiiSetString (Private->RegisteredHandle, mControllerToken[Index], NewString, NULL);
ASSERT (NewStringToken != 0);
@@ -508,7 +514,7 @@ UpdateDeviceSelectPage (
NewStringToken,
STRING_TOKEN (STR_GOTO_HELP_DRIVER),
EFI_IFR_FLAG_CALLBACK,
- (UINT16) (Index + KEY_VALUE_DEVICE_OFFSET)
+ (UINT16)(Index + KEY_VALUE_DEVICE_OFFSET)
);
}
@@ -540,32 +546,33 @@ UpdateDeviceSelectPage (
**/
EFI_HANDLE
GetDriverBindingHandleFromImageHandle (
- IN EFI_HANDLE ImageHandle
+ IN EFI_HANDLE ImageHandle
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN DriverBindingHandleCount;
- EFI_HANDLE *DriverBindingHandleBuffer;
- EFI_DRIVER_BINDING_PROTOCOL *DriverBindingInterface;
- EFI_HANDLE DriverBindingHandle;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN DriverBindingHandleCount;
+ EFI_HANDLE *DriverBindingHandleBuffer;
+ EFI_DRIVER_BINDING_PROTOCOL *DriverBindingInterface;
+ EFI_HANDLE DriverBindingHandle;
DriverBindingHandle = NULL;
if (ImageHandle == NULL) {
return NULL;
}
+
//
// Get all drivers which support driver binding protocol
//
- DriverBindingHandleCount = 0;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiDriverBindingProtocolGuid,
- NULL,
- &DriverBindingHandleCount,
- &DriverBindingHandleBuffer
- );
+ DriverBindingHandleCount = 0;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiDriverBindingProtocolGuid,
+ NULL,
+ &DriverBindingHandleCount,
+ &DriverBindingHandleBuffer
+ );
if (EFI_ERROR (Status) || (DriverBindingHandleCount == 0)) {
return NULL;
}
@@ -575,14 +582,14 @@ GetDriverBindingHandleFromImageHandle (
//
for (Index = 0; Index < DriverBindingHandleCount; Index++) {
DriverBindingInterface = NULL;
- Status = gBS->OpenProtocol (
- DriverBindingHandleBuffer[Index],
- &gEfiDriverBindingProtocolGuid,
- (VOID **) &DriverBindingInterface,
- NULL,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ Status = gBS->OpenProtocol (
+ DriverBindingHandleBuffer[Index],
+ &gEfiDriverBindingProtocolGuid,
+ (VOID **)&DriverBindingInterface,
+ NULL,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
continue;
}
@@ -611,37 +618,37 @@ GetDriverBindingHandleFromImageHandle (
**/
EFI_STATUS
UpdateBindingDriverSelectPage (
- IN EFI_CALLBACK_INFO *Private,
- IN UINT16 KeyValue,
- IN PLAT_OVER_MNGR_DATA *FakeNvData
+ IN EFI_CALLBACK_INFO *Private,
+ IN UINT16 KeyValue,
+ IN PLAT_OVER_MNGR_DATA *FakeNvData
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN NewStrSize;
- CHAR16 *NewString;
- EFI_STRING_ID NewStringToken;
- EFI_STRING_ID NewStringHelpToken;
- UINTN DriverImageHandleCount;
- EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
- CHAR16 *DriverName;
- BOOLEAN FreeDriverName;
- EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
- EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *BusSpecificDriverOverride;
- EFI_HANDLE DriverBindingHandle;
- VOID *StartOpCodeHandle;
- VOID *EndOpCodeHandle;
- EFI_IFR_GUID_LABEL *StartLabel;
- EFI_IFR_GUID_LABEL *EndLabel;
- EFI_LOADED_IMAGE_PROTOCOL **DriverImageProtocol;
- EFI_STRING_ID *DriverImageFilePathToken;
- UINT8 CheckFlags;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN NewStrSize;
+ CHAR16 *NewString;
+ EFI_STRING_ID NewStringToken;
+ EFI_STRING_ID NewStringHelpToken;
+ UINTN DriverImageHandleCount;
+ EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
+ CHAR16 *DriverName;
+ BOOLEAN FreeDriverName;
+ EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
+ EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *BusSpecificDriverOverride;
+ EFI_HANDLE DriverBindingHandle;
+ VOID *StartOpCodeHandle;
+ VOID *EndOpCodeHandle;
+ EFI_IFR_GUID_LABEL *StartLabel;
+ EFI_IFR_GUID_LABEL *EndLabel;
+ EFI_LOADED_IMAGE_PROTOCOL **DriverImageProtocol;
+ EFI_STRING_ID *DriverImageFilePathToken;
+ UINT8 CheckFlags;
//
// If user select a controller item in the first page the following code will be run.
// During second page, user will see all currnet driver bind protocol driver, the driver name and its device path will be shown
//
- //First acquire the list of Loaded Image Protocols, and then when want the name of the driver, look up all the Driver Binding Protocols
+ // First acquire the list of Loaded Image Protocols, and then when want the name of the driver, look up all the Driver Binding Protocols
// and find the first one whose ImageHandle field matches the image handle of the Loaded Image Protocol.
// then use the Component Name Protocol on the same handle as the first matching Driver Binding Protocol to look up the name of the driver.
//
@@ -667,14 +674,14 @@ UpdateBindingDriverSelectPage (
//
// Create Hii Extend Label OpCode as the start opcode
//
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
StartLabel->Number = FORM_ID_DRIVER;
//
// Create Hii Extend Label OpCode as the end opcode
//
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
EndLabel->Number = LABEL_END;
@@ -692,14 +699,14 @@ UpdateBindingDriverSelectPage (
//
// Show all driver which support loaded image protocol in second page
//
- DriverImageHandleCount = 0;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiLoadedImageProtocolGuid,
- NULL,
- &DriverImageHandleCount,
- &mDriverImageHandleBuffer
- );
+ DriverImageHandleCount = 0;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiLoadedImageProtocolGuid,
+ NULL,
+ &DriverImageHandleCount,
+ &mDriverImageHandleBuffer
+ );
if (EFI_ERROR (Status) || (DriverImageHandleCount == 0)) {
return EFI_NOT_FOUND;
}
@@ -723,12 +730,12 @@ UpdateBindingDriverSelectPage (
//
// Find driver's Loaded Image protocol
//
- LoadedImage =NULL;
+ LoadedImage = NULL;
Status = gBS->OpenProtocol (
mDriverImageHandleBuffer[Index],
&gEfiLoadedImageProtocolGuid,
- (VOID **) &LoadedImage,
+ (VOID **)&LoadedImage,
NULL,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -737,6 +744,7 @@ UpdateBindingDriverSelectPage (
mDriSelection[Index] = FALSE;
continue;
}
+
DriverImageProtocol[Index] = LoadedImage;
//
// Find its related driver binding protocol
@@ -751,11 +759,11 @@ UpdateBindingDriverSelectPage (
// Get the EFI Loaded Image Device Path Protocol
//
LoadedImageDevicePath = NULL;
- Status = gBS->HandleProtocol (
- mDriverImageHandleBuffer[Index],
- &gEfiLoadedImageDevicePathProtocolGuid,
- (VOID **) &LoadedImageDevicePath
- );
+ Status = gBS->HandleProtocol (
+ mDriverImageHandleBuffer[Index],
+ &gEfiLoadedImageDevicePathProtocolGuid,
+ (VOID **)&LoadedImageDevicePath
+ );
if (LoadedImageDevicePath == NULL) {
mDriSelection[Index] = FALSE;
continue;
@@ -767,12 +775,12 @@ UpdateBindingDriverSelectPage (
// and the driver's LoadedImage->DeviceHandle must point to a pci device which has efi option rom
//
if (!EFI_ERROR (Status)) {
- Status = gBS->HandleProtocol(
- LoadedImage->DeviceHandle,
- &gEfiBusSpecificDriverOverrideProtocolGuid,
- (VOID **) &BusSpecificDriverOverride
- );
- if (EFI_ERROR (Status) || BusSpecificDriverOverride == NULL) {
+ Status = gBS->HandleProtocol (
+ LoadedImage->DeviceHandle,
+ &gEfiBusSpecificDriverOverrideProtocolGuid,
+ (VOID **)&BusSpecificDriverOverride
+ );
+ if (EFI_ERROR (Status) || (BusSpecificDriverOverride == NULL)) {
mDriSelection[Index] = FALSE;
continue;
}
@@ -787,13 +795,14 @@ UpdateBindingDriverSelectPage (
// if also fail, give a default name.
//
FreeDriverName = FALSE;
- DriverName = GetComponentName (DriverBindingHandle);
+ DriverName = GetComponentName (DriverBindingHandle);
if (DriverName == NULL) {
//
// get its image name
//
DriverName = GetImageName (LoadedImage);
}
+
if (DriverName == NULL) {
//
// give a default name
@@ -803,7 +812,6 @@ UpdateBindingDriverSelectPage (
FreeDriverName = TRUE; // the DriverName string need to free pool
}
-
//
// Step2 Export the driver name string and create check box item in second page
//
@@ -812,7 +820,7 @@ UpdateBindingDriverSelectPage (
// First create the driver image name
//
NewStrSize = StrSize (DriverName);
- NewString = AllocateZeroPool (NewStrSize);
+ NewString = AllocateZeroPool (NewStrSize);
ASSERT (NewString != NULL);
if (EFI_ERROR (CheckMapping (mControllerDevicePathProtocol[mSelectedCtrIndex], LoadedImageDevicePath, &mMappingDataBase, NULL, NULL))) {
mDriSelection[Index] = FALSE;
@@ -820,7 +828,8 @@ UpdateBindingDriverSelectPage (
mDriSelection[Index] = TRUE;
mLastSavedDriverImageNum++;
}
- StrCatS (NewString, NewStrSize/sizeof(CHAR16), DriverName);
+
+ StrCatS (NewString, NewStrSize/sizeof (CHAR16), DriverName);
NewStringToken = HiiSetString (Private->RegisteredHandle, mDriverImageToken[Index], NewString, NULL);
ASSERT (NewStringToken != 0);
mDriverImageToken[Index] = NewStringToken;
@@ -835,23 +844,23 @@ UpdateBindingDriverSelectPage (
DriverName = DevicePathToStr (LoadedImageDevicePath);
NewStrSize = StrSize (DriverName);
- NewString = AllocateZeroPool (NewStrSize);
+ NewString = AllocateZeroPool (NewStrSize);
ASSERT (NewString != NULL);
- StrCatS (NewString, NewStrSize/sizeof(CHAR16), DriverName);
+ StrCatS (NewString, NewStrSize/sizeof (CHAR16), DriverName);
NewStringHelpToken = HiiSetString (Private->RegisteredHandle, DriverImageFilePathToken[Index], NewString, NULL);
ASSERT (NewStringHelpToken != 0);
DriverImageFilePathToken[Index] = NewStringHelpToken;
FreePool (NewString);
FreePool (DriverName);
- CheckFlags = 0;
+ CheckFlags = 0;
if (mDriSelection[Index]) {
CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT;
}
HiiCreateCheckBoxOpCode (
StartOpCodeHandle,
- (UINT16) (KEY_VALUE_DRIVER_OFFSET + Index),
+ (UINT16)(KEY_VALUE_DRIVER_OFFSET + Index),
0,
0,
NewStringToken,
@@ -900,24 +909,24 @@ UpdateBindingDriverSelectPage (
**/
EFI_STATUS
UpdatePrioritySelectPage (
- IN EFI_CALLBACK_INFO *Private,
- IN UINT16 KeyValue,
- IN PLAT_OVER_MNGR_DATA *FakeNvData
+ IN EFI_CALLBACK_INFO *Private,
+ IN UINT16 KeyValue,
+ IN PLAT_OVER_MNGR_DATA *FakeNvData
)
{
- UINTN Index;
- EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
- UINTN SelectedDriverImageNum;
- UINT32 DriverImageNO;
- UINTN MinNO;
- UINTN Index1;
- UINTN TempNO[100];
- UINTN OrderNO[100];
- VOID *StartOpCodeHandle;
- VOID *EndOpCodeHandle;
- VOID *OptionsOpCodeHandle;
- EFI_IFR_GUID_LABEL *StartLabel;
- EFI_IFR_GUID_LABEL *EndLabel;
+ UINTN Index;
+ EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
+ UINTN SelectedDriverImageNum;
+ UINT32 DriverImageNO;
+ UINTN MinNO;
+ UINTN Index1;
+ UINTN TempNO[100];
+ UINTN OrderNO[100];
+ VOID *StartOpCodeHandle;
+ VOID *EndOpCodeHandle;
+ VOID *OptionsOpCodeHandle;
+ EFI_IFR_GUID_LABEL *StartLabel;
+ EFI_IFR_GUID_LABEL *EndLabel;
//
// Following code will be run if user select 'order ... priority' item in second page
@@ -937,14 +946,14 @@ UpdatePrioritySelectPage (
//
// Create Hii Extend Label OpCode as the start opcode
//
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
StartLabel->Number = FORM_ID_ORDER;
//
// Create Hii Extend Label OpCode as the end opcode
//
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
EndLabel->Number = LABEL_END;
@@ -965,7 +974,7 @@ UpdatePrioritySelectPage (
SelectedDriverImageNum = 0;
for (Index = 0; Index < mDriverImageHandleCount; Index++) {
if (mDriSelection[Index]) {
- SelectedDriverImageNum ++;
+ SelectedDriverImageNum++;
}
}
@@ -999,10 +1008,10 @@ UpdatePrioritySelectPage (
//
LoadedImageDevicePath = NULL;
gBS->HandleProtocol (
- mDriverImageHandleBuffer[Index],
- &gEfiLoadedImageDevicePathProtocolGuid,
- (VOID **) &LoadedImageDevicePath
- );
+ mDriverImageHandleBuffer[Index],
+ &gEfiLoadedImageDevicePathProtocolGuid,
+ (VOID **)&LoadedImageDevicePath
+ );
ASSERT (LoadedImageDevicePath != NULL);
//
@@ -1010,19 +1019,20 @@ UpdatePrioritySelectPage (
//
DriverImageNO = 0;
CheckMapping (
- mControllerDevicePathProtocol[mSelectedCtrIndex],
- LoadedImageDevicePath,
- &mMappingDataBase,
- NULL,
- &DriverImageNO
- );
+ mControllerDevicePathProtocol[mSelectedCtrIndex],
+ LoadedImageDevicePath,
+ &mMappingDataBase,
+ NULL,
+ &DriverImageNO
+ );
if (DriverImageNO == 0) {
- DriverImageNO = (UINT32) mLastSavedDriverImageNum + 1;
+ DriverImageNO = (UINT32)mLastSavedDriverImageNum + 1;
mLastSavedDriverImageNum++;
}
- TempNO[SelectedDriverImageNum] = DriverImageNO;
+
+ TempNO[SelectedDriverImageNum] = DriverImageNO;
OrderNO[SelectedDriverImageNum] = Index + 1;
- SelectedDriverImageNum ++;
+ SelectedDriverImageNum++;
}
}
@@ -1036,21 +1046,22 @@ UpdatePrioritySelectPage (
// Order the selected drivers according to the info already in mapping database
// the less order number in mapping database the less order number in NvRamMap
//
- for (Index=0; Index < SelectedDriverImageNum; Index++) {
+ for (Index = 0; Index < SelectedDriverImageNum; Index++) {
//
// Find the minimal order number in TempNO array, its index in TempNO is same as IfrOptionList array
//
MinNO = 0;
- for (Index1=0; Index1 < SelectedDriverImageNum; Index1++) {
+ for (Index1 = 0; Index1 < SelectedDriverImageNum; Index1++) {
if (TempNO[Index1] < TempNO[MinNO]) {
MinNO = Index1;
}
}
+
//
// the IfrOptionList[MinNO].Value = the driver NO. in driver binding buffer
//
- FakeNvData->DriOrder[Index] = (UINT8) OrderNO[MinNO];
- TempNO[MinNO] = MAX_CHOICE_NUM + 1;
+ FakeNvData->DriOrder[Index] = (UINT8)OrderNO[MinNO];
+ TempNO[MinNO] = MAX_CHOICE_NUM + 1;
}
//
@@ -1058,15 +1069,15 @@ UpdatePrioritySelectPage (
//
HiiCreateOrderedListOpCode (
StartOpCodeHandle,
- (UINT16) DRIVER_ORDER_QUESTION_ID,
+ (UINT16)DRIVER_ORDER_QUESTION_ID,
VARSTORE_ID_PLAT_OVER_MNGR,
- (UINT16) DRIVER_ORDER_VAR_OFFSET,
+ (UINT16)DRIVER_ORDER_VAR_OFFSET,
mControllerToken[mSelectedCtrIndex],
mControllerToken[mSelectedCtrIndex],
EFI_IFR_FLAG_RESET_REQUIRED,
0,
EFI_IFR_NUMERIC_SIZE_1,
- (UINT8) MAX_CHOICE_NUM,
+ (UINT8)MAX_CHOICE_NUM,
OptionsOpCodeHandle,
NULL
);
@@ -1101,15 +1112,16 @@ UpdatePrioritySelectPage (
**/
EFI_STATUS
CommitChanges (
- IN EFI_CALLBACK_INFO *Private,
- IN UINT16 KeyValue,
- IN PLAT_OVER_MNGR_DATA *FakeNvData
+ IN EFI_CALLBACK_INFO *Private,
+ IN UINT16 KeyValue,
+ IN PLAT_OVER_MNGR_DATA *FakeNvData
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN SelectedDriverImageNum;
- EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN SelectedDriverImageNum;
+ EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
+
//
// Following code will be run if user select 'commint changes' in third page
// user enter 'Commit Changes' to save the mapping database
@@ -1125,20 +1137,21 @@ CommitChanges (
// Get the EFI Loaded Image Device Path Protocol
//
LoadedImageDevicePath = NULL;
- Status = gBS->HandleProtocol (
- mDriverImageHandleBuffer[Index],
- &gEfiLoadedImageDevicePathProtocolGuid,
- (VOID **) &LoadedImageDevicePath
- );
+ Status = gBS->HandleProtocol (
+ mDriverImageHandleBuffer[Index],
+ &gEfiLoadedImageDevicePathProtocolGuid,
+ (VOID **)&LoadedImageDevicePath
+ );
ASSERT (LoadedImageDevicePath != NULL);
InsertDriverImage (
- mControllerDevicePathProtocol[mSelectedCtrIndex],
- LoadedImageDevicePath,
- &mMappingDataBase,
- (UINT32)SelectedDriverImageNum + 1
- );
+ mControllerDevicePathProtocol[mSelectedCtrIndex],
+ LoadedImageDevicePath,
+ &mMappingDataBase,
+ (UINT32)SelectedDriverImageNum + 1
+ );
}
+
Status = SaveOverridesMapping (&mMappingDataBase);
return Status;
@@ -1168,10 +1181,10 @@ CommitChanges (
EFI_STATUS
EFIAPI
PlatOverMngrExtractConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Request,
- OUT EFI_STRING *Progress,
- OUT EFI_STRING *Results
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Request,
+ OUT EFI_STRING *Progress,
+ OUT EFI_STRING *Results
)
{
EFI_STATUS Status;
@@ -1183,7 +1196,7 @@ PlatOverMngrExtractConfig (
UINTN Size;
UINTN BufferSize;
- if (Progress == NULL || Results == NULL) {
+ if ((Progress == NULL) || (Results == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1199,7 +1212,7 @@ PlatOverMngrExtractConfig (
Private = EFI_CALLBACK_INFO_FROM_THIS (This);
HiiConfigRouting = Private->HiiConfigRouting;
- ConfigRequest = Request;
+ ConfigRequest = Request;
if ((Request == NULL) || (StrStr (Request, L"OFFSET") == NULL)) {
//
// Request has no request element, construct full request string.
@@ -1207,11 +1220,11 @@ PlatOverMngrExtractConfig (
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
//
ConfigRequestHdr = HiiConstructConfigHdr (&gPlatformOverridesManagerGuid, mVariableName, Private->DriverHandle);
- Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
- ConfigRequest = AllocateZeroPool (Size);
+ Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
+ ConfigRequest = AllocateZeroPool (Size);
ASSERT (ConfigRequest != NULL);
AllocatedRequest = TRUE;
- BufferSize = sizeof (PLAT_OVER_MNGR_DATA);
+ BufferSize = sizeof (PLAT_OVER_MNGR_DATA);
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);
FreePool (ConfigRequestHdr);
}
@@ -1220,13 +1233,13 @@ PlatOverMngrExtractConfig (
// Convert buffer data to <ConfigResp> by helper function BlockToConfig()
//
Status = HiiConfigRouting->BlockToConfig (
- HiiConfigRouting,
- ConfigRequest,
- (UINT8 *) &Private->FakeNvData,
- sizeof (PLAT_OVER_MNGR_DATA),
- Results,
- Progress
- );
+ HiiConfigRouting,
+ ConfigRequest,
+ (UINT8 *)&Private->FakeNvData,
+ sizeof (PLAT_OVER_MNGR_DATA),
+ Results,
+ Progress
+ );
//
// Free the allocated config request string.
@@ -1235,6 +1248,7 @@ PlatOverMngrExtractConfig (
FreePool (ConfigRequest);
ConfigRequest = NULL;
}
+
//
// Set Progress string to the original request string.
//
@@ -1265,29 +1279,30 @@ PlatOverMngrExtractConfig (
EFI_STATUS
EFIAPI
PlatOverMngrRouteConfig (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN CONST EFI_STRING Configuration,
- OUT EFI_STRING *Progress
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN CONST EFI_STRING Configuration,
+ OUT EFI_STRING *Progress
)
{
- EFI_CALLBACK_INFO *Private;
- UINT16 KeyValue;
- PLAT_OVER_MNGR_DATA *FakeNvData;
- EFI_STATUS Status;
+ EFI_CALLBACK_INFO *Private;
+ UINT16 KeyValue;
+ PLAT_OVER_MNGR_DATA *FakeNvData;
+ EFI_STATUS Status;
- if (Configuration == NULL || Progress == NULL) {
+ if ((Configuration == NULL) || (Progress == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
*Progress = Configuration;
if (!HiiIsConfigHdrMatch (Configuration, &gPlatformOverridesManagerGuid, mVariableName)) {
return EFI_NOT_FOUND;
}
- *Progress = Configuration + StrLen (Configuration);
+ *Progress = Configuration + StrLen (Configuration);
Private = EFI_CALLBACK_INFO_FROM_THIS (This);
FakeNvData = &Private->FakeNvData;
- if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {
+ if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *)FakeNvData)) {
//
// FakeNvData can't be got from SetupBrowser, which doesn't need to be set.
//
@@ -1298,7 +1313,7 @@ PlatOverMngrRouteConfig (
if (mCurrentPage == FORM_ID_ORDER) {
KeyValue = KEY_VALUE_ORDER_SAVE_AND_EXIT;
- Status = CommitChanges (Private, KeyValue, FakeNvData);
+ Status = CommitChanges (Private, KeyValue, FakeNvData);
}
return Status;
@@ -1328,19 +1343,19 @@ PlatOverMngrRouteConfig (
EFI_STATUS
EFIAPI
PlatOverMngrCallback (
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
- IN EFI_BROWSER_ACTION Action,
- IN EFI_QUESTION_ID KeyValue,
- IN UINT8 Type,
- IN EFI_IFR_TYPE_VALUE *Value,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
+ IN EFI_BROWSER_ACTION Action,
+ IN EFI_QUESTION_ID KeyValue,
+ IN UINT8 Type,
+ IN EFI_IFR_TYPE_VALUE *Value,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
)
{
- EFI_CALLBACK_INFO *Private;
- EFI_STATUS Status;
- EFI_STRING_ID NewStringToken;
- EFI_INPUT_KEY Key;
- PLAT_OVER_MNGR_DATA *FakeNvData;
+ EFI_CALLBACK_INFO *Private;
+ EFI_STATUS Status;
+ EFI_STRING_ID NewStringToken;
+ EFI_INPUT_KEY Key;
+ PLAT_OVER_MNGR_DATA *FakeNvData;
if ((Action != EFI_BROWSER_ACTION_CHANGING) && (Action != EFI_BROWSER_ACTION_CHANGED)) {
//
@@ -1349,9 +1364,9 @@ PlatOverMngrCallback (
return EFI_UNSUPPORTED;
}
- Private = EFI_CALLBACK_INFO_FROM_THIS (This);
+ Private = EFI_CALLBACK_INFO_FROM_THIS (This);
FakeNvData = &Private->FakeNvData;
- if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {
+ if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *)FakeNvData)) {
return EFI_NOT_FOUND;
}
@@ -1373,8 +1388,9 @@ PlatOverMngrCallback (
if (((KeyValue >= KEY_VALUE_DEVICE_OFFSET) && (KeyValue < KEY_VALUE_DEVICE_OFFSET + mMaxDeviceCount)) || (KeyValue == KEY_VALUE_ORDER_GOTO_PREVIOUS)) {
if (KeyValue == KEY_VALUE_ORDER_GOTO_PREVIOUS) {
- KeyValue = (EFI_QUESTION_ID) (mSelectedCtrIndex + KEY_VALUE_DEVICE_OFFSET);
+ KeyValue = (EFI_QUESTION_ID)(mSelectedCtrIndex + KEY_VALUE_DEVICE_OFFSET);
}
+
UpdateBindingDriverSelectPage (Private, KeyValue, FakeNvData);
//
// Update page title string
@@ -1409,29 +1425,31 @@ PlatOverMngrCallback (
mDriSelection[KeyValue - KEY_VALUE_DRIVER_OFFSET] = Value->b;
} else {
switch (KeyValue) {
- case KEY_VALUE_DEVICE_REFRESH:
- case KEY_VALUE_DEVICE_FILTER:
- UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);
- //
- // Update page title string
- //
- NewStringToken = STRING_TOKEN (STR_TITLE);
- if (HiiSetString (Private->RegisteredHandle, NewStringToken, L"First, Select the controller by device path", NULL) == 0) {
- ASSERT (FALSE);
- }
- break;
+ case KEY_VALUE_DEVICE_REFRESH:
+ case KEY_VALUE_DEVICE_FILTER:
+ UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);
+ //
+ // Update page title string
+ //
+ NewStringToken = STRING_TOKEN (STR_TITLE);
+ if (HiiSetString (Private->RegisteredHandle, NewStringToken, L"First, Select the controller by device path", NULL) == 0) {
+ ASSERT (FALSE);
+ }
- case KEY_VALUE_ORDER_SAVE_AND_EXIT:
- Status = CommitChanges (Private, KeyValue, FakeNvData);
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;
- if (EFI_ERROR (Status)) {
- CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, L"Single Override Info too large, Saving Error!", NULL);
- return EFI_DEVICE_ERROR;
- }
- break;
+ break;
- default:
- break;
+ case KEY_VALUE_ORDER_SAVE_AND_EXIT:
+ Status = CommitChanges (Private, KeyValue, FakeNvData);
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;
+ if (EFI_ERROR (Status)) {
+ CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, L"Single Override Info too large, Saving Error!", NULL);
+ return EFI_DEVICE_ERROR;
+ }
+
+ break;
+
+ default:
+ break;
}
}
}
@@ -1439,7 +1457,7 @@ PlatOverMngrCallback (
//
// Pass changed uncommitted data back to Form Browser
//
- HiiSetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData, NULL);
+ HiiSetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *)FakeNvData, NULL);
return EFI_SUCCESS;
}
@@ -1469,9 +1487,9 @@ PlatOverMngrCallback (
EFI_STATUS
EFIAPI
GetDriver (
- IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN OUT EFI_HANDLE *DriverImageHandle
+ IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT EFI_HANDLE *DriverImageHandle
)
{
EFI_STATUS Status;
@@ -1493,7 +1511,7 @@ GetDriver (
mEnvironmentVariableRead = TRUE;
Status = InitOverridesMapping (&mMappingDataBase);
- if (EFI_ERROR (Status)){
+ if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_INFO, "The status to Get Platform Driver Override Variable is %r\n", Status));
InitializeListHead (&mMappingDataBase);
return EFI_NOT_FOUND;
@@ -1508,11 +1526,11 @@ GetDriver (
}
return GetDriverFromMapping (
- ControllerHandle,
- DriverImageHandle,
- &mMappingDataBase,
- mCallerImageHandle
- );
+ ControllerHandle,
+ DriverImageHandle,
+ &mMappingDataBase,
+ mCallerImageHandle
+ );
}
/**
@@ -1533,15 +1551,14 @@ GetDriver (
EFI_STATUS
EFIAPI
GetDriverPath (
- IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN OUT EFI_DEVICE_PATH_PROTOCOL **DriverImagePath
+ IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT EFI_DEVICE_PATH_PROTOCOL **DriverImagePath
)
{
return EFI_UNSUPPORTED;
}
-
/**
Used to associate a driver image handle with a device path that was returned on a prior call to the
GetDriverPath() service. This driver image handle will then be available through the
@@ -1561,10 +1578,10 @@ GetDriverPath (
EFI_STATUS
EFIAPI
DriverLoaded (
- IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImagePath,
- IN EFI_HANDLE DriverImageHandle
+ IN EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImagePath,
+ IN EFI_HANDLE DriverImageHandle
)
{
return EFI_UNSUPPORTED;
@@ -1584,8 +1601,8 @@ DriverLoaded (
EFI_STATUS
EFIAPI
PlatDriOverrideDxeInit (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
@@ -1596,10 +1613,10 @@ PlatDriOverrideDxeInit (
// There should only be one Form Configuration protocol
//
Status = gBS->LocateProtocol (
- &gEfiFormBrowser2ProtocolGuid,
- NULL,
- (VOID **) &FormBrowser2
- );
+ &gEfiFormBrowser2ProtocolGuid,
+ NULL,
+ (VOID **)&FormBrowser2
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1622,18 +1639,18 @@ PlatDriOverrideDxeInit (
}
mCallerImageHandle = ImageHandle;
- mCallbackInfo = AllocateZeroPool (sizeof (EFI_CALLBACK_INFO));
+ mCallbackInfo = AllocateZeroPool (sizeof (EFI_CALLBACK_INFO));
if (mCallbackInfo == NULL) {
return EFI_BAD_BUFFER_SIZE;
}
- mCallbackInfo->Signature = EFI_CALLBACK_INFO_SIGNATURE;
- mCallbackInfo->ConfigAccess.ExtractConfig = PlatOverMngrExtractConfig;
- mCallbackInfo->ConfigAccess.RouteConfig = PlatOverMngrRouteConfig;
- mCallbackInfo->ConfigAccess.Callback = PlatOverMngrCallback;
- mCallbackInfo->PlatformDriverOverride.GetDriver = GetDriver;
- mCallbackInfo->PlatformDriverOverride.GetDriverPath = GetDriverPath;
- mCallbackInfo->PlatformDriverOverride.DriverLoaded = DriverLoaded;
+ mCallbackInfo->Signature = EFI_CALLBACK_INFO_SIGNATURE;
+ mCallbackInfo->ConfigAccess.ExtractConfig = PlatOverMngrExtractConfig;
+ mCallbackInfo->ConfigAccess.RouteConfig = PlatOverMngrRouteConfig;
+ mCallbackInfo->ConfigAccess.Callback = PlatOverMngrCallback;
+ mCallbackInfo->PlatformDriverOverride.GetDriver = GetDriver;
+ mCallbackInfo->PlatformDriverOverride.GetDriverPath = GetDriverPath;
+ mCallbackInfo->PlatformDriverOverride.DriverLoaded = DriverLoaded;
//
// Locate ConfigRouting protocol
@@ -1641,7 +1658,7 @@ PlatDriOverrideDxeInit (
Status = gBS->LocateProtocol (
&gEfiHiiConfigRoutingProtocolGuid,
NULL,
- (VOID **) &mCallbackInfo->HiiConfigRouting
+ (VOID **)&mCallbackInfo->HiiConfigRouting
);
if (EFI_ERROR (Status)) {
goto Finish;
@@ -1669,12 +1686,12 @@ PlatDriOverrideDxeInit (
// Publish our HII data
//
mCallbackInfo->RegisteredHandle = HiiAddPackages (
- &gPlatformOverridesManagerGuid,
- mCallbackInfo->DriverHandle,
- VfrBin,
- PlatDriOverrideDxeStrings,
- NULL
- );
+ &gPlatformOverridesManagerGuid,
+ mCallbackInfo->DriverHandle,
+ VfrBin,
+ PlatDriOverrideDxeStrings,
+ NULL
+ );
if (mCallbackInfo->RegisteredHandle == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Finish;
@@ -1684,7 +1701,7 @@ PlatDriOverrideDxeInit (
// Clear all the globle variable
//
mDriverImageHandleCount = 0;
- mCurrentPage = 0;
+ mCurrentPage = 0;
return EFI_SUCCESS;
diff --git a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideLib.c b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideLib.c
index bd2d044..9a6050d 100644
--- a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideLib.c
+++ b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatDriOverrideLib.c
@@ -8,38 +8,37 @@
#include "InternalPlatDriOverrideDxe.h"
-#define PLATFORM_OVERRIDE_ITEM_SIGNATURE SIGNATURE_32('p','d','o','i')
- typedef struct _PLATFORM_OVERRIDE_ITEM {
- UINTN Signature;
- LIST_ENTRY Link;
- UINT32 DriverInfoNum;
- EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
+#define PLATFORM_OVERRIDE_ITEM_SIGNATURE SIGNATURE_32('p','d','o','i')
+typedef struct _PLATFORM_OVERRIDE_ITEM {
+ UINTN Signature;
+ LIST_ENTRY Link;
+ UINT32 DriverInfoNum;
+ EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
///
/// List of DRIVER_IMAGE_INFO
///
- LIST_ENTRY DriverInfoList;
- EFI_HANDLE LastReturnedImageHandle;
+ LIST_ENTRY DriverInfoList;
+ EFI_HANDLE LastReturnedImageHandle;
} PLATFORM_OVERRIDE_ITEM;
-#define DRIVER_IMAGE_INFO_SIGNATURE SIGNATURE_32('p','d','i','i')
+#define DRIVER_IMAGE_INFO_SIGNATURE SIGNATURE_32('p','d','i','i')
typedef struct _DRIVER_IMAGE_INFO {
- UINTN Signature;
- LIST_ENTRY Link;
- EFI_HANDLE ImageHandle;
- EFI_DEVICE_PATH_PROTOCOL *DriverImagePath;
- BOOLEAN UnLoadable;
- BOOLEAN UnStartable;
+ UINTN Signature;
+ LIST_ENTRY Link;
+ EFI_HANDLE ImageHandle;
+ EFI_DEVICE_PATH_PROTOCOL *DriverImagePath;
+ BOOLEAN UnLoadable;
+ BOOLEAN UnStartable;
} DRIVER_IMAGE_INFO;
-#define DEVICE_PATH_STACK_ITEM_SIGNATURE SIGNATURE_32('d','p','s','i')
-typedef struct _DEVICE_PATH_STACK_ITEM{
- UINTN Signature;
- LIST_ENTRY Link;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+#define DEVICE_PATH_STACK_ITEM_SIGNATURE SIGNATURE_32('d','p','s','i')
+typedef struct _DEVICE_PATH_STACK_ITEM {
+ UINTN Signature;
+ LIST_ENTRY Link;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
} DEVICE_PATH_STACK_ITEM;
-
-LIST_ENTRY mDevicePathStack = INITIALIZE_LIST_HEAD_VARIABLE (mDevicePathStack);
+LIST_ENTRY mDevicePathStack = INITIALIZE_LIST_HEAD_VARIABLE (mDevicePathStack);
/**
Push a controller device path into a globle device path list.
@@ -52,20 +51,19 @@ LIST_ENTRY mDevicePathStack = INITIALIZE_LIST_HEAD_VARIABLE (mDevicePathStack)
EFI_STATUS
EFIAPI
PushDevPathStack (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
DEVICE_PATH_STACK_ITEM *DevicePathStackItem;
DevicePathStackItem = AllocateZeroPool (sizeof (DEVICE_PATH_STACK_ITEM));
ASSERT (DevicePathStackItem != NULL);
- DevicePathStackItem->Signature = DEVICE_PATH_STACK_ITEM_SIGNATURE;
+ DevicePathStackItem->Signature = DEVICE_PATH_STACK_ITEM_SIGNATURE;
DevicePathStackItem->DevicePath = DuplicateDevicePath (DevicePath);
InsertTailList (&mDevicePathStack, &DevicePathStackItem->Link);
return EFI_SUCCESS;
}
-
/**
Pop a controller device path from a globle device path list
@@ -78,7 +76,7 @@ PushDevPathStack (
EFI_STATUS
EFIAPI
PopDevPathStack (
- OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
+ OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
)
{
DEVICE_PATH_STACK_ITEM *DevicePathStackItem;
@@ -88,20 +86,21 @@ PopDevPathStack (
//
// Check if the stack is empty
//
- if (ItemListIndex != &mDevicePathStack){
- DevicePathStackItem = CR(ItemListIndex, DEVICE_PATH_STACK_ITEM, Link, DEVICE_PATH_STACK_ITEM_SIGNATURE);
+ if (ItemListIndex != &mDevicePathStack) {
+ DevicePathStackItem = CR (ItemListIndex, DEVICE_PATH_STACK_ITEM, Link, DEVICE_PATH_STACK_ITEM_SIGNATURE);
if (DevicePath != NULL) {
*DevicePath = DuplicateDevicePath (DevicePathStackItem->DevicePath);
}
+
FreePool (DevicePathStackItem->DevicePath);
RemoveEntryList (&DevicePathStackItem->Link);
FreePool (DevicePathStackItem);
return EFI_SUCCESS;
}
+
return EFI_NOT_FOUND;
}
-
/**
Check whether a controller device path is in a globle device path list
@@ -114,7 +113,7 @@ PopDevPathStack (
BOOLEAN
EFIAPI
CheckExistInStack (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
)
{
DEVICE_PATH_STACK_ITEM *DevicePathStackItem;
@@ -122,14 +121,15 @@ CheckExistInStack (
UINTN DevicePathSize;
ItemListIndex = mDevicePathStack.BackLink;
- while (ItemListIndex != &mDevicePathStack){
- DevicePathStackItem = CR(ItemListIndex, DEVICE_PATH_STACK_ITEM, Link, DEVICE_PATH_STACK_ITEM_SIGNATURE);
- DevicePathSize = GetDevicePathSize (DevicePath);
+ while (ItemListIndex != &mDevicePathStack) {
+ DevicePathStackItem = CR (ItemListIndex, DEVICE_PATH_STACK_ITEM, Link, DEVICE_PATH_STACK_ITEM_SIGNATURE);
+ DevicePathSize = GetDevicePathSize (DevicePath);
if (DevicePathSize == GetDevicePathSize (DevicePathStackItem->DevicePath)) {
if (CompareMem (DevicePath, DevicePathStackItem->DevicePath, DevicePathSize) == 0) {
return TRUE;
}
}
+
ItemListIndex = ItemListIndex->BackLink;
}
@@ -162,29 +162,29 @@ CheckExistInStack (
EFI_STATUS
EFIAPI
UpdateFvFileDevicePath (
- IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
- IN EFI_GUID *FileGuid,
- IN EFI_HANDLE CallerImageHandle
+ IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
+ IN EFI_GUID *FileGuid,
+ IN EFI_HANDLE CallerImageHandle
)
{
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
- EFI_DEVICE_PATH_PROTOCOL *LastDeviceNode;
- EFI_STATUS Status;
- EFI_GUID *GuidPoint;
- UINTN Index;
- UINTN FvHandleCount;
- EFI_HANDLE *FvHandleBuffer;
- EFI_FV_FILETYPE Type;
- UINTN Size;
- EFI_FV_FILE_ATTRIBUTES Attributes;
- UINT32 AuthenticationStatus;
- BOOLEAN FindFvFile;
- EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
- EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
- MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FvFileNode;
- EFI_HANDLE FoundFvHandle;
- EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
- BOOLEAN HasFvNode;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *LastDeviceNode;
+ EFI_STATUS Status;
+ EFI_GUID *GuidPoint;
+ UINTN Index;
+ UINTN FvHandleCount;
+ EFI_HANDLE *FvHandleBuffer;
+ EFI_FV_FILETYPE Type;
+ UINTN Size;
+ EFI_FV_FILE_ATTRIBUTES Attributes;
+ UINT32 AuthenticationStatus;
+ BOOLEAN FindFvFile;
+ EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FvFileNode;
+ EFI_HANDLE FoundFvHandle;
+ EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
+ BOOLEAN HasFvNode;
if (DevicePath == NULL) {
return EFI_INVALID_PARAMETER;
@@ -200,10 +200,11 @@ UpdateFvFileDevicePath (
TempDevicePath = *DevicePath;
LastDeviceNode = TempDevicePath;
while (!IsDevicePathEnd (TempDevicePath)) {
- LastDeviceNode = TempDevicePath;
- TempDevicePath = NextDevicePathNode (TempDevicePath);
+ LastDeviceNode = TempDevicePath;
+ TempDevicePath = NextDevicePathNode (TempDevicePath);
}
- GuidPoint = EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *) LastDeviceNode);
+
+ GuidPoint = EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)LastDeviceNode);
if (GuidPoint == NULL) {
//
// If this option does not point to a FV file, just return EFI_UNSUPPORTED.
@@ -226,16 +227,18 @@ UpdateFvFileDevicePath (
// Check to see if the device path contains memory map node
//
TempDevicePath = *DevicePath;
- HasFvNode = FALSE;
+ HasFvNode = FALSE;
while (!IsDevicePathEnd (TempDevicePath)) {
//
// Use old Device Path
//
- if (DevicePathType (TempDevicePath) == HARDWARE_DEVICE_PATH &&
- DevicePathSubType (TempDevicePath) == HW_MEMMAP_DP) {
+ if ((DevicePathType (TempDevicePath) == HARDWARE_DEVICE_PATH) &&
+ (DevicePathSubType (TempDevicePath) == HW_MEMMAP_DP))
+ {
HasFvNode = TRUE;
break;
}
+
TempDevicePath = NextDevicePathNode (TempDevicePath);
}
@@ -247,17 +250,17 @@ UpdateFvFileDevicePath (
// Check whether the input Fv file device path is valid
//
TempDevicePath = *DevicePath;
- FoundFvHandle = NULL;
- Status = gBS->LocateDevicePath (
- &gEfiFirmwareVolume2ProtocolGuid,
- &TempDevicePath,
- &FoundFvHandle
- );
+ FoundFvHandle = NULL;
+ Status = gBS->LocateDevicePath (
+ &gEfiFirmwareVolume2ProtocolGuid,
+ &TempDevicePath,
+ &FoundFvHandle
+ );
if (!EFI_ERROR (Status)) {
Status = gBS->HandleProtocol (
FoundFvHandle,
&gEfiFirmwareVolume2ProtocolGuid,
- (VOID **) &Fv
+ (VOID **)&Fv
);
if (!EFI_ERROR (Status)) {
//
@@ -282,18 +285,18 @@ UpdateFvFileDevicePath (
// Look for the input wanted FV file in current FV
// First, try to look for in Caller own FV. Caller and input wanted FV file usually are in the same FV
//
- FindFvFile = FALSE;
+ FindFvFile = FALSE;
FoundFvHandle = NULL;
- Status = gBS->HandleProtocol (
- CallerImageHandle,
- &gEfiLoadedImageProtocolGuid,
- (VOID **) &LoadedImage
- );
+ Status = gBS->HandleProtocol (
+ CallerImageHandle,
+ &gEfiLoadedImageProtocolGuid,
+ (VOID **)&LoadedImage
+ );
if (!EFI_ERROR (Status)) {
Status = gBS->HandleProtocol (
LoadedImage->DeviceHandle,
&gEfiFirmwareVolume2ProtocolGuid,
- (VOID **) &Fv
+ (VOID **)&Fv
);
if (!EFI_ERROR (Status)) {
Status = Fv->ReadFile (
@@ -306,11 +309,12 @@ UpdateFvFileDevicePath (
&AuthenticationStatus
);
if (!EFI_ERROR (Status)) {
- FindFvFile = TRUE;
+ FindFvFile = TRUE;
FoundFvHandle = LoadedImage->DeviceHandle;
}
}
}
+
//
// Second, if fail to find, try to enumerate all FV
//
@@ -326,7 +330,7 @@ UpdateFvFileDevicePath (
gBS->HandleProtocol (
FvHandleBuffer[Index],
&gEfiFirmwareVolume2ProtocolGuid,
- (VOID **) &Fv
+ (VOID **)&Fv
);
Status = Fv->ReadFile (
@@ -344,7 +348,8 @@ UpdateFvFileDevicePath (
//
continue;
}
- FindFvFile = TRUE;
+
+ FindFvFile = TRUE;
FoundFvHandle = FvHandleBuffer[Index];
break;
}
@@ -356,10 +361,11 @@ UpdateFvFileDevicePath (
//
NewDevicePath = DevicePathFromHandle (FoundFvHandle);
EfiInitializeFwVolDevicepathNode (&FvFileNode, FileGuid);
- NewDevicePath = AppendDevicePathNode (NewDevicePath, (EFI_DEVICE_PATH_PROTOCOL *) &FvFileNode);
- *DevicePath = NewDevicePath;
+ NewDevicePath = AppendDevicePathNode (NewDevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&FvFileNode);
+ *DevicePath = NewDevicePath;
return EFI_SUCCESS;
}
+
return EFI_NOT_FOUND;
}
@@ -382,9 +388,9 @@ UpdateFvFileDevicePath (
VOID *
EFIAPI
GetVariableAndSize (
- IN CHAR16 *Name,
- IN EFI_GUID *VendorGuid,
- OUT UINTN *VariableSize
+ IN CHAR16 *Name,
+ IN EFI_GUID *VendorGuid,
+ OUT UINTN *VariableSize
)
{
EFI_STATUS Status;
@@ -396,8 +402,8 @@ GetVariableAndSize (
//
// Pass in a zero size buffer to find the required buffer size.
//
- BufferSize = 0;
- Status = gRT->GetVariable (Name, VendorGuid, NULL, &BufferSize, Buffer);
+ BufferSize = 0;
+ Status = gRT->GetVariable (Name, VendorGuid, NULL, &BufferSize, Buffer);
if (Status == EFI_BUFFER_TOO_SMALL) {
//
// Allocate the buffer to return
@@ -406,6 +412,7 @@ GetVariableAndSize (
if (Buffer == NULL) {
return NULL;
}
+
//
// Read variable into the allocated buffer.
//
@@ -457,8 +464,8 @@ ConnectDevicePath (
return EFI_SUCCESS;
}
- DevicePath = DuplicateDevicePath (DevicePathToConnect);
- CopyOfDevicePath = DevicePath;
+ DevicePath = DuplicateDevicePath (DevicePathToConnect);
+ CopyOfDevicePath = DevicePath;
if (DevicePath == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -470,10 +477,10 @@ ConnectDevicePath (
//
// After this call DevicePath points to the next Instance
//
- Instance = GetNextDevicePathInstance (&DevicePath, &Size);
+ Instance = GetNextDevicePathInstance (&DevicePath, &Size);
ASSERT (Instance != NULL);
- Next = Instance;
+ Next = Instance;
while (!IsDevicePathEndType (Next)) {
Next = NextDevicePathNode (Next);
}
@@ -525,16 +532,17 @@ ConnectDevicePath (
gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE);
}
}
+
//
// Loop until RemainingDevicePath is an empty device path
//
} while (!EFI_ERROR (Status) && !IsDevicePathEnd (RemainingDevicePath));
-
} while (DevicePath != NULL);
if (CopyOfDevicePath != NULL) {
FreePool (CopyOfDevicePath);
}
+
//
// All handle with DevicePath exists in the handle database
//
@@ -553,13 +561,13 @@ ConnectDevicePath (
EFI_STATUS
EFIAPI
FreeMappingDatabase (
- IN OUT LIST_ENTRY *MappingDataBase
+ IN OUT LIST_ENTRY *MappingDataBase
)
{
- LIST_ENTRY *OverrideItemListIndex;
- LIST_ENTRY *ImageInfoListIndex;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- DRIVER_IMAGE_INFO *DriverImageInfo;
+ LIST_ENTRY *OverrideItemListIndex;
+ LIST_ENTRY *ImageInfoListIndex;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
if (MappingDataBase == NULL) {
return EFI_INVALID_PARAMETER;
@@ -567,11 +575,11 @@ FreeMappingDatabase (
OverrideItemListIndex = GetFirstNode (MappingDataBase);
while (!IsNull (MappingDataBase, OverrideItemListIndex)) {
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
//
// Free PLATFORM_OVERRIDE_ITEM.ControllerDevicePath[]
//
- if (OverrideItem->ControllerDevicePath != NULL){
+ if (OverrideItem->ControllerDevicePath != NULL) {
FreePool (OverrideItem->ControllerDevicePath);
}
@@ -580,10 +588,11 @@ FreeMappingDatabase (
//
// Free DRIVER_IMAGE_INFO.DriverImagePath[]
//
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
if (DriverImageInfo->DriverImagePath != NULL) {
- FreePool(DriverImageInfo->DriverImagePath);
+ FreePool (DriverImageInfo->DriverImagePath);
}
+
//
// Free DRIVER_IMAGE_INFO itself
//
@@ -591,6 +600,7 @@ FreeMappingDatabase (
RemoveEntryList (&DriverImageInfo->Link);
FreePool (DriverImageInfo);
}
+
//
// Free PLATFORM_OVERRIDE_ITEM itself
//
@@ -603,7 +613,6 @@ FreeMappingDatabase (
return EFI_SUCCESS;
}
-
/**
Create the mapping database according to variable.
@@ -649,23 +658,23 @@ FreeMappingDatabase (
EFI_STATUS
EFIAPI
InitOverridesMapping (
- OUT LIST_ENTRY *MappingDataBase
+ OUT LIST_ENTRY *MappingDataBase
)
{
- UINTN BufferSize;
- VOID *VariableBuffer;
- UINT8 *VariableIndex;
- UINTN VariableNum;
- CHAR16 OverrideVariableName[40];
- UINT32 NotEnd;
- UINT32 DriverNumber;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- BOOLEAN Corrupted;
- UINT32 Signature;
- EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
- EFI_DEVICE_PATH_PROTOCOL *DriverDevicePath;
- UINTN Index;
+ UINTN BufferSize;
+ VOID *VariableBuffer;
+ UINT8 *VariableIndex;
+ UINTN VariableNum;
+ CHAR16 OverrideVariableName[40];
+ UINT32 NotEnd;
+ UINT32 DriverNumber;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ BOOLEAN Corrupted;
+ UINT32 Signature;
+ EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *DriverDevicePath;
+ UINTN Index;
if (MappingDataBase == NULL) {
return EFI_INVALID_PARAMETER;
@@ -675,7 +684,7 @@ InitOverridesMapping (
// Check the environment variable(s) that contain the override mappings .
//
VariableBuffer = GetVariableAndSize (L"PlatDriOver", &gEfiCallerIdGuid, &BufferSize);
- ASSERT ((UINTN) VariableBuffer % sizeof(UINTN) == 0);
+ ASSERT ((UINTN)VariableBuffer % sizeof (UINTN) == 0);
if (VariableBuffer == NULL) {
return EFI_NOT_FOUND;
}
@@ -684,18 +693,19 @@ InitOverridesMapping (
// Traverse all variables.
//
VariableNum = 1;
- Corrupted = FALSE;
- NotEnd = 0;
+ Corrupted = FALSE;
+ NotEnd = 0;
do {
VariableIndex = VariableBuffer;
- if (VariableIndex + sizeof (UINT32) > (UINT8 *) VariableBuffer + BufferSize) {
+ if (VariableIndex + sizeof (UINT32) > (UINT8 *)VariableBuffer + BufferSize) {
Corrupted = TRUE;
} else {
//
// End flag
//
- NotEnd = *(UINT32*) VariableIndex;
+ NotEnd = *(UINT32 *)VariableIndex;
}
+
//
// Traverse the entries containing the mapping that Controller Device Path
// to a set of Driver Device Paths within this variable.
@@ -705,15 +715,17 @@ InitOverridesMapping (
//
// Check signature of this entry
//
- if (VariableIndex + sizeof (UINT32) > (UINT8 *) VariableBuffer + BufferSize) {
+ if (VariableIndex + sizeof (UINT32) > (UINT8 *)VariableBuffer + BufferSize) {
Corrupted = TRUE;
break;
}
- Signature = *(UINT32 *) VariableIndex;
+
+ Signature = *(UINT32 *)VariableIndex;
if (Signature != PLATFORM_OVERRIDE_ITEM_SIGNATURE) {
Corrupted = TRUE;
break;
}
+
//
// Create PLATFORM_OVERRIDE_ITEM for this mapping
//
@@ -725,28 +737,30 @@ InitOverridesMapping (
//
// Get DriverNum
//
- if (VariableIndex + sizeof (UINT32) >= (UINT8 *) VariableBuffer + BufferSize) {
+ if (VariableIndex + sizeof (UINT32) >= (UINT8 *)VariableBuffer + BufferSize) {
Corrupted = TRUE;
break;
}
- DriverNumber = *(UINT32*) VariableIndex;
+
+ DriverNumber = *(UINT32 *)VariableIndex;
OverrideItem->DriverInfoNum = DriverNumber;
- VariableIndex = VariableIndex + sizeof (UINT32);
+ VariableIndex = VariableIndex + sizeof (UINT32);
//
// Get ControllerDevicePath[]
//
- ControllerDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) VariableIndex;
+ ControllerDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)VariableIndex;
OverrideItem->ControllerDevicePath = DuplicateDevicePath (ControllerDevicePath);
- VariableIndex = VariableIndex + GetDevicePathSize (ControllerDevicePath);
+ VariableIndex = VariableIndex + GetDevicePathSize (ControllerDevicePath);
//
// Align the VariableIndex since the controller device path may not be aligned, refer to the SaveOverridesMapping()
//
- VariableIndex += ((sizeof(UINT32) - ((UINTN) (VariableIndex))) & (sizeof(UINT32) - 1));
+ VariableIndex += ((sizeof (UINT32) - ((UINTN)(VariableIndex))) & (sizeof (UINT32) - 1));
//
// Check buffer overflow.
//
- if ((OverrideItem->ControllerDevicePath == NULL) || (VariableIndex < (UINT8 *) ControllerDevicePath) ||
- (VariableIndex > (UINT8 *) VariableBuffer + BufferSize)) {
+ if ((OverrideItem->ControllerDevicePath == NULL) || (VariableIndex < (UINT8 *)ControllerDevicePath) ||
+ (VariableIndex > (UINT8 *)VariableBuffer + BufferSize))
+ {
Corrupted = TRUE;
break;
}
@@ -762,25 +776,27 @@ InitOverridesMapping (
ASSERT (DriverImageInfo != NULL);
DriverImageInfo->Signature = DRIVER_IMAGE_INFO_SIGNATURE;
- DriverDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) VariableIndex;
+ DriverDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)VariableIndex;
DriverImageInfo->DriverImagePath = DuplicateDevicePath (DriverDevicePath);
- VariableIndex = VariableIndex + GetDevicePathSize (DriverDevicePath);
+ VariableIndex = VariableIndex + GetDevicePathSize (DriverDevicePath);
//
// Align the VariableIndex since the driver image device path may not be aligned, refer to the SaveOverridesMapping()
//
- VariableIndex += ((sizeof(UINT32) - ((UINTN) (VariableIndex))) & (sizeof(UINT32) - 1));
+ VariableIndex += ((sizeof (UINT32) - ((UINTN)(VariableIndex))) & (sizeof (UINT32) - 1));
InsertTailList (&OverrideItem->DriverInfoList, &DriverImageInfo->Link);
//
// Check buffer overflow
//
- if ((DriverImageInfo->DriverImagePath == NULL) || (VariableIndex < (UINT8 *) DriverDevicePath) ||
- (VariableIndex > (UINT8 *) VariableBuffer + BufferSize)) {
+ if ((DriverImageInfo->DriverImagePath == NULL) || (VariableIndex < (UINT8 *)DriverDevicePath) ||
+ (VariableIndex > (UINT8 *)VariableBuffer + BufferSize))
+ {
Corrupted = TRUE;
break;
}
}
+
InsertTailList (MappingDataBase, &OverrideItem->Link);
if (Corrupted) {
break;
@@ -800,19 +816,17 @@ InitOverridesMapping (
if (NotEnd != 0) {
UnicodeSPrint (OverrideVariableName, sizeof (OverrideVariableName), L"PlatDriOver%d", VariableNum++);
VariableBuffer = GetVariableAndSize (OverrideVariableName, &gEfiCallerIdGuid, &BufferSize);
- ASSERT ((UINTN) VariableBuffer % sizeof(UINTN) == 0);
+ ASSERT ((UINTN)VariableBuffer % sizeof (UINTN) == 0);
if (VariableBuffer == NULL) {
FreeMappingDatabase (MappingDataBase);
return EFI_VOLUME_CORRUPTED;
}
}
-
} while (NotEnd != 0);
return EFI_SUCCESS;
}
-
/**
Calculate the needed size in NV variable for recording a specific PLATFORM_OVERRIDE_ITEM info.
@@ -824,37 +838,37 @@ InitOverridesMapping (
UINTN
EFIAPI
GetOneItemNeededSize (
- IN LIST_ENTRY *OverrideItemListIndex
+ IN LIST_ENTRY *OverrideItemListIndex
)
{
- UINTN NeededSize;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- LIST_ENTRY *ImageInfoListIndex;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- UINTN DevicePathSize;
-
- NeededSize = 0;
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
- NeededSize += sizeof (UINT32); //UINT32 SIGNATURE;
- NeededSize += sizeof (UINT32); //UINT32 DriverNum;
+ UINTN NeededSize;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ LIST_ENTRY *ImageInfoListIndex;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ UINTN DevicePathSize;
+
+ NeededSize = 0;
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ NeededSize += sizeof (UINT32); // UINT32 SIGNATURE;
+ NeededSize += sizeof (UINT32); // UINT32 DriverNum;
DevicePathSize = GetDevicePathSize (OverrideItem->ControllerDevicePath);
- NeededSize += DevicePathSize; // ControllerDevicePath
+ NeededSize += DevicePathSize; // ControllerDevicePath
//
// Align the controller device path
//
- NeededSize += ((sizeof(UINT32) - DevicePathSize) & (sizeof(UINT32) - 1));
+ NeededSize += ((sizeof (UINT32) - DevicePathSize) & (sizeof (UINT32) - 1));
//
// Traverse the Driver Info List of this Override Item
//
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
- DevicePathSize = GetDevicePathSize (DriverImageInfo->DriverImagePath);
- NeededSize += DevicePathSize; //DriverDevicePath
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DevicePathSize = GetDevicePathSize (DriverImageInfo->DriverImagePath);
+ NeededSize += DevicePathSize; // DriverDevicePath
//
// Align the driver image device path
//
- NeededSize += ((sizeof(UINT32) - DevicePathSize) & (sizeof(UINT32) - 1));
+ NeededSize += ((sizeof (UINT32) - DevicePathSize) & (sizeof (UINT32) - 1));
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
}
@@ -874,26 +888,27 @@ DeleteOverridesVariables (
VOID
)
{
- EFI_STATUS Status;
- VOID *VariableBuffer;
- UINTN VariableNum;
- UINTN BufferSize;
- UINTN Index;
- CHAR16 OverrideVariableName[40];
+ EFI_STATUS Status;
+ VOID *VariableBuffer;
+ UINTN VariableNum;
+ UINTN BufferSize;
+ UINTN Index;
+ CHAR16 OverrideVariableName[40];
//
// Get environment variable(s) number
//
- VariableNum = 0;
+ VariableNum = 0;
VariableBuffer = GetVariableAndSize (L"PlatDriOver", &gEfiCallerIdGuid, &BufferSize);
VariableNum++;
if (VariableBuffer == NULL) {
return EFI_NOT_FOUND;
}
+
//
// Check NotEnd to get all PlatDriOverX variable(s)
//
- while ((VariableBuffer != NULL) && ((*(UINT32*)VariableBuffer) != 0)) {
+ while ((VariableBuffer != NULL) && ((*(UINT32 *)VariableBuffer) != 0)) {
FreePool (VariableBuffer);
UnicodeSPrint (OverrideVariableName, sizeof (OverrideVariableName), L"PlatDriOver%d", VariableNum);
VariableBuffer = GetVariableAndSize (OverrideVariableName, &gEfiCallerIdGuid, &BufferSize);
@@ -922,10 +937,10 @@ DeleteOverridesVariables (
);
ASSERT (!EFI_ERROR (Status));
}
+
return EFI_SUCCESS;
}
-
/**
Save the memory mapping database into NV environment variable(s).
@@ -938,25 +953,25 @@ DeleteOverridesVariables (
EFI_STATUS
EFIAPI
SaveOverridesMapping (
- IN LIST_ENTRY *MappingDataBase
+ IN LIST_ENTRY *MappingDataBase
)
{
- EFI_STATUS Status;
- VOID *VariableBuffer;
- UINT8 *VariableIndex;
- UINTN NumIndex;
- CHAR16 OverrideVariableName[40];
- UINT32 NotEnd;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- LIST_ENTRY *OverrideItemListIndex;
- LIST_ENTRY *ItemIndex;
- LIST_ENTRY *ImageInfoListIndex;
- UINTN VariableNeededSize;
- UINT64 MaximumVariableStorageSize;
- UINT64 RemainingVariableStorageSize;
- UINT64 MaximumVariableSize;
- UINTN OneItemNeededSize;
+ EFI_STATUS Status;
+ VOID *VariableBuffer;
+ UINT8 *VariableIndex;
+ UINTN NumIndex;
+ CHAR16 OverrideVariableName[40];
+ UINT32 NotEnd;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ LIST_ENTRY *OverrideItemListIndex;
+ LIST_ENTRY *ItemIndex;
+ LIST_ENTRY *ImageInfoListIndex;
+ UINTN VariableNeededSize;
+ UINT64 MaximumVariableStorageSize;
+ UINT64 RemainingVariableStorageSize;
+ UINT64 MaximumVariableSize;
+ UINTN OneItemNeededSize;
if (MappingDataBase == NULL) {
return EFI_INVALID_PARAMETER;
@@ -971,13 +986,13 @@ SaveOverridesMapping (
// Get the the maximum size of an individual EFI variable in current system
//
gRT->QueryVariableInfo (
- EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- &MaximumVariableStorageSize,
- &RemainingVariableStorageSize,
- &MaximumVariableSize
- );
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
+ &MaximumVariableStorageSize,
+ &RemainingVariableStorageSize,
+ &MaximumVariableSize
+ );
- NumIndex = 0;
+ NumIndex = 0;
OverrideItemListIndex = GetFirstNode (MappingDataBase);
while (!IsNull (MappingDataBase, OverrideItemListIndex)) {
//
@@ -985,8 +1000,8 @@ SaveOverridesMapping (
// but can contain mapping info as much as possible
//
VariableNeededSize = sizeof (UINT32); // NotEnd;
- ItemIndex = OverrideItemListIndex;
- NotEnd = FALSE;
+ ItemIndex = OverrideItemListIndex;
+ NotEnd = FALSE;
//
// Traverse all PLATFORM_OVERRIDE_ITEMs and get the total size.
//
@@ -1000,13 +1015,14 @@ SaveOverridesMapping (
OneItemNeededSize +
StrSize (L"PlatDriOver ")
) >= MaximumVariableSize
- ) {
+ )
+ {
NotEnd = TRUE;
break;
}
VariableNeededSize += OneItemNeededSize;
- ItemIndex = GetNextNode (MappingDataBase, ItemIndex);
+ ItemIndex = GetNextNode (MappingDataBase, ItemIndex);
}
if (NotEnd != 0) {
@@ -1024,24 +1040,24 @@ SaveOverridesMapping (
//
VariableBuffer = AllocateZeroPool (VariableNeededSize);
ASSERT (VariableBuffer != NULL);
- ASSERT ((UINTN) VariableBuffer % sizeof(UINTN) == 0);
+ ASSERT ((UINTN)VariableBuffer % sizeof (UINTN) == 0);
//
// Fill the variable buffer according to MappingDataBase
//
- VariableIndex = VariableBuffer;
- *(UINT32 *) VariableIndex = NotEnd;
- VariableIndex += sizeof (UINT32); // pass NotEnd
+ VariableIndex = VariableBuffer;
+ *(UINT32 *)VariableIndex = NotEnd;
+ VariableIndex += sizeof (UINT32); // pass NotEnd
//
// ItemIndex points to the next PLATFORM_OVERRIDE_ITEM which is not covered by VariableNeededSize
//
- while (OverrideItemListIndex != ItemIndex){
- *(UINT32 *) VariableIndex = PLATFORM_OVERRIDE_ITEM_SIGNATURE;
- VariableIndex += sizeof (UINT32); // pass SIGNATURE
+ while (OverrideItemListIndex != ItemIndex) {
+ *(UINT32 *)VariableIndex = PLATFORM_OVERRIDE_ITEM_SIGNATURE;
+ VariableIndex += sizeof (UINT32); // pass SIGNATURE
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
- *(UINT32 *) VariableIndex = OverrideItem->DriverInfoNum;
- VariableIndex += sizeof (UINT32); // pass DriverNum
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ *(UINT32 *)VariableIndex = OverrideItem->DriverInfoNum;
+ VariableIndex += sizeof (UINT32); // pass DriverNum
CopyMem (VariableIndex, OverrideItem->ControllerDevicePath, GetDevicePathSize (OverrideItem->ControllerDevicePath));
VariableIndex += GetDevicePathSize (OverrideItem->ControllerDevicePath); // pass ControllerDevicePath
@@ -1049,19 +1065,19 @@ SaveOverridesMapping (
//
// Align the VariableIndex since the controller device path may not be aligned
//
- VariableIndex += ((sizeof(UINT32) - ((UINTN) (VariableIndex))) & (sizeof(UINT32) - 1));
+ VariableIndex += ((sizeof (UINT32) - ((UINTN)(VariableIndex))) & (sizeof (UINT32) - 1));
//
// Save the Driver Info List of this PLATFORM_OVERRIDE_ITEM
//
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
CopyMem (VariableIndex, DriverImageInfo->DriverImagePath, GetDevicePathSize (DriverImageInfo->DriverImagePath));
VariableIndex += GetDevicePathSize (DriverImageInfo->DriverImagePath); // pass DriverImageDevicePath
//
// Align the VariableIndex since the driver image device path may not be aligned
//
- VariableIndex += ((sizeof(UINT32) - ((UINTN) (VariableIndex))) & (sizeof(UINT32) - 1));
+ VariableIndex += ((sizeof (UINT32) - ((UINTN)(VariableIndex))) & (sizeof (UINT32) - 1));
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
}
@@ -1073,7 +1089,7 @@ SaveOverridesMapping (
if (NumIndex == 0) {
UnicodeSPrint (OverrideVariableName, sizeof (OverrideVariableName), L"PlatDriOver");
} else {
- UnicodeSPrint (OverrideVariableName, sizeof (OverrideVariableName), L"PlatDriOver%d", NumIndex );
+ UnicodeSPrint (OverrideVariableName, sizeof (OverrideVariableName), L"PlatDriOver%d", NumIndex);
}
Status = gRT->SetVariable (
@@ -1092,10 +1108,11 @@ SaveOverridesMapping (
//
DeleteOverridesVariables ();
}
+
return Status;
}
- NumIndex ++;
+ NumIndex++;
}
return EFI_SUCCESS;
@@ -1115,44 +1132,45 @@ SaveOverridesMapping (
EFI_DRIVER_BINDING_PROTOCOL *
EFIAPI
GetBindingProtocolFromImageHandle (
- IN EFI_HANDLE ImageHandle,
- OUT EFI_HANDLE *BindingHandle
+ IN EFI_HANDLE ImageHandle,
+ OUT EFI_HANDLE *BindingHandle
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINTN DriverBindingHandleCount;
- EFI_HANDLE *DriverBindingHandleBuffer;
- EFI_DRIVER_BINDING_PROTOCOL *DriverBindingInterface;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINTN DriverBindingHandleCount;
+ EFI_HANDLE *DriverBindingHandleBuffer;
+ EFI_DRIVER_BINDING_PROTOCOL *DriverBindingInterface;
- if (BindingHandle == NULL || ImageHandle == NULL) {
+ if ((BindingHandle == NULL) || (ImageHandle == NULL)) {
return NULL;
}
+
//
// Get all drivers which support driver binding protocol
//
- DriverBindingHandleCount = 0;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiDriverBindingProtocolGuid,
- NULL,
- &DriverBindingHandleCount,
- &DriverBindingHandleBuffer
- );
+ DriverBindingHandleCount = 0;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiDriverBindingProtocolGuid,
+ NULL,
+ &DriverBindingHandleCount,
+ &DriverBindingHandleBuffer
+ );
if (EFI_ERROR (Status) || (DriverBindingHandleCount == 0)) {
return NULL;
}
for (Index = 0; Index < DriverBindingHandleCount; Index++) {
DriverBindingInterface = NULL;
- Status = gBS->OpenProtocol (
- DriverBindingHandleBuffer[Index],
- &gEfiDriverBindingProtocolGuid,
- (VOID **) &DriverBindingInterface,
- NULL,
- NULL,
- EFI_OPEN_PROTOCOL_GET_PROTOCOL
- );
+ Status = gBS->OpenProtocol (
+ DriverBindingHandleBuffer[Index],
+ &gEfiDriverBindingProtocolGuid,
+ (VOID **)&DriverBindingInterface,
+ NULL,
+ NULL,
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL
+ );
if (EFI_ERROR (Status)) {
continue;
}
@@ -1183,7 +1201,7 @@ GetCurrentTpl (
VOID
)
{
- EFI_TPL Tpl;
+ EFI_TPL Tpl;
Tpl = gBS->RaiseTPL (TPL_HIGH_LEVEL);
gBS->RestoreTPL (Tpl);
@@ -1191,7 +1209,6 @@ GetCurrentTpl (
return Tpl;
}
-
/**
Retrieves the image handle of the platform override driver for a controller in
the system from the memory mapping database.
@@ -1220,32 +1237,32 @@ GetCurrentTpl (
EFI_STATUS
EFIAPI
GetDriverFromMapping (
- IN EFI_HANDLE ControllerHandle,
- IN OUT EFI_HANDLE *DriverImageHandle,
- IN LIST_ENTRY *MappingDataBase,
- IN EFI_HANDLE CallerImageHandle
+ IN EFI_HANDLE ControllerHandle,
+ IN OUT EFI_HANDLE *DriverImageHandle,
+ IN LIST_ENTRY *MappingDataBase,
+ IN EFI_HANDLE CallerImageHandle
)
{
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
- BOOLEAN ControllerFound;
- BOOLEAN ImageFound;
- EFI_HANDLE *ImageHandleBuffer;
- UINTN ImageHandleCount;
- UINTN Index;
- EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
- EFI_HANDLE DriverBindingHandle;
- BOOLEAN FoundLastReturned;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- LIST_ENTRY *OverrideItemListIndex;
- LIST_ENTRY *ImageInfoListIndex;
- EFI_DEVICE_PATH_PROTOCOL *TempDriverImagePath;
- EFI_HANDLE ImageHandle;
- EFI_HANDLE Handle;
- EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
+ EFI_STATUS Status;
+ EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath;
+ BOOLEAN ControllerFound;
+ BOOLEAN ImageFound;
+ EFI_HANDLE *ImageHandleBuffer;
+ UINTN ImageHandleCount;
+ UINTN Index;
+ EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;
+ EFI_HANDLE DriverBindingHandle;
+ BOOLEAN FoundLastReturned;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ LIST_ENTRY *OverrideItemListIndex;
+ LIST_ENTRY *ImageInfoListIndex;
+ EFI_DEVICE_PATH_PROTOCOL *TempDriverImagePath;
+ EFI_HANDLE ImageHandle;
+ EFI_HANDLE Handle;
+ EFI_DEVICE_PATH_PROTOCOL *LoadedImageDevicePath;
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *BusSpecificDriverOverride;
- UINTN DevicePathSize;
+ UINTN DevicePathSize;
//
// Check that ControllerHandle is a valid handle
@@ -1253,45 +1270,49 @@ GetDriverFromMapping (
if (ControllerHandle == NULL) {
return EFI_INVALID_PARAMETER;
}
+
//
// Get the device path of ControllerHandle
//
Status = gBS->HandleProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
- (VOID **) &ControllerDevicePath
+ (VOID **)&ControllerDevicePath
);
- if (EFI_ERROR (Status) || ControllerDevicePath == NULL) {
+ if (EFI_ERROR (Status) || (ControllerDevicePath == NULL)) {
return EFI_INVALID_PARAMETER;
}
//
// Search ControllerDevicePath in MappingDataBase
//
- OverrideItem = NULL;
+ OverrideItem = NULL;
ControllerFound = FALSE;
- DevicePathSize = GetDevicePathSize (ControllerDevicePath);
+ DevicePathSize = GetDevicePathSize (ControllerDevicePath);
OverrideItemListIndex = GetFirstNode (MappingDataBase);
while (!IsNull (MappingDataBase, OverrideItemListIndex)) {
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
if (DevicePathSize == GetDevicePathSize (OverrideItem->ControllerDevicePath)) {
if (CompareMem (
ControllerDevicePath,
OverrideItem->ControllerDevicePath,
DevicePathSize
) == 0
- ) {
+ )
+ {
ControllerFound = TRUE;
break;
}
}
+
OverrideItemListIndex = GetNextNode (MappingDataBase, OverrideItemListIndex);
}
if (!ControllerFound) {
return EFI_NOT_FOUND;
}
+
//
// Passing in a pointer to NULL, will return the first driver device path for ControllerHandle.
// Check whether the driverImagePath is not a device path that was returned on a previous call to GetDriverPath().
@@ -1301,6 +1322,7 @@ GetDriverFromMapping (
return EFI_INVALID_PARAMETER;
}
}
+
//
// The GetDriverPath() may be called recursively, because it use ConnectDevicePath() internally,
// so should check whether there is a dead loop.
@@ -1313,6 +1335,7 @@ GetDriverFromMapping (
//
return EFI_UNSUPPORTED;
}
+
PushDevPathStack (OverrideItem->ControllerDevicePath);
//
@@ -1320,7 +1343,7 @@ GetDriverFromMapping (
//
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
if (DriverImageInfo->ImageHandle == NULL) {
//
// Skip if the image is unloadable or unstartable
@@ -1338,32 +1361,33 @@ GetDriverFromMapping (
FreePool (DriverImageInfo->DriverImagePath);
DriverImageInfo->DriverImagePath = TempDriverImagePath;
}
+
//
// Get all Loaded Image protocol to check whether the driver image has been loaded and started
//
- ImageFound = FALSE;
- ImageHandleCount = 0;
- Status = gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiLoadedImageProtocolGuid,
- NULL,
- &ImageHandleCount,
- &ImageHandleBuffer
- );
+ ImageFound = FALSE;
+ ImageHandleCount = 0;
+ Status = gBS->LocateHandleBuffer (
+ ByProtocol,
+ &gEfiLoadedImageProtocolGuid,
+ NULL,
+ &ImageHandleCount,
+ &ImageHandleBuffer
+ );
if (EFI_ERROR (Status) || (ImageHandleCount == 0)) {
return EFI_NOT_FOUND;
}
- for(Index = 0; Index < ImageHandleCount; Index ++) {
+ for (Index = 0; Index < ImageHandleCount; Index++) {
//
// Get the EFI Loaded Image Device Path Protocol
//
LoadedImageDevicePath = NULL;
- Status = gBS->HandleProtocol (
- ImageHandleBuffer[Index],
- &gEfiLoadedImageDevicePathProtocolGuid,
- (VOID **) &LoadedImageDevicePath
- );
+ Status = gBS->HandleProtocol (
+ ImageHandleBuffer[Index],
+ &gEfiLoadedImageDevicePathProtocolGuid,
+ (VOID **)&LoadedImageDevicePath
+ );
if (EFI_ERROR (Status)) {
//
// Maybe not all EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL existed.
@@ -1378,7 +1402,8 @@ GetDriverFromMapping (
LoadedImageDevicePath,
GetDevicePathSize (LoadedImageDevicePath)
) == 0
- ) {
+ )
+ {
ImageFound = TRUE;
break;
}
@@ -1391,13 +1416,13 @@ GetDriverFromMapping (
// Driver binding handle may be different with its driver's Image Handle.
//
DriverBindingHandle = NULL;
- DriverBinding = GetBindingProtocolFromImageHandle (
- ImageHandleBuffer[Index],
- &DriverBindingHandle
- );
+ DriverBinding = GetBindingProtocolFromImageHandle (
+ ImageHandleBuffer[Index],
+ &DriverBindingHandle
+ );
ASSERT (DriverBinding != NULL);
DriverImageInfo->ImageHandle = ImageHandleBuffer[Index];
- } else if (GetCurrentTpl() <= TPL_CALLBACK){
+ } else if (GetCurrentTpl () <= TPL_CALLBACK) {
//
// The driver image has not been loaded and started. Try to load and start it now.
// Try to connect all device in the driver image path.
@@ -1417,31 +1442,32 @@ GetDriverFromMapping (
//
// Get the Bus Specific Driver Override Protocol instance on the Controller Handle
//
- Status = gBS->HandleProtocol(
+ Status = gBS->HandleProtocol (
Handle,
&gEfiBusSpecificDriverOverrideProtocolGuid,
- (VOID **) &BusSpecificDriverOverride
+ (VOID **)&BusSpecificDriverOverride
);
if (!EFI_ERROR (Status) && (BusSpecificDriverOverride != NULL)) {
ImageHandle = NULL;
- Status = BusSpecificDriverOverride->GetDriver (
- BusSpecificDriverOverride,
- &ImageHandle
- );
+ Status = BusSpecificDriverOverride->GetDriver (
+ BusSpecificDriverOverride,
+ &ImageHandle
+ );
if (!EFI_ERROR (Status)) {
//
// Find its related driver binding protocol
// Driver binding handle may be different with its driver's Image handle
//
DriverBindingHandle = NULL;
- DriverBinding = GetBindingProtocolFromImageHandle (
- ImageHandle,
- &DriverBindingHandle
- );
+ DriverBinding = GetBindingProtocolFromImageHandle (
+ ImageHandle,
+ &DriverBindingHandle
+ );
ASSERT (DriverBinding != NULL);
DriverImageInfo->ImageHandle = ImageHandle;
}
}
+
//
// Skip if any device cannot be connected now, future passes through GetDriver() may be able to load that driver.
// Only file path media or FwVol Device Path Node remain if all device is connected
@@ -1450,26 +1476,27 @@ GetDriverFromMapping (
gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &TempDriverImagePath, &Handle);
if (((DevicePathType (TempDriverImagePath) == MEDIA_DEVICE_PATH) &&
(DevicePathSubType (TempDriverImagePath) == MEDIA_FILEPATH_DP)) ||
- (EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *) TempDriverImagePath) != NULL)
- ) {
+ (EfiGetNameGuidFromFwVolDevicePathNode ((MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)TempDriverImagePath) != NULL)
+ )
+ {
//
// Try to load the driver
//
TempDriverImagePath = DriverImageInfo->DriverImagePath;
- Status = gBS->LoadImage (
- FALSE,
- CallerImageHandle,
- TempDriverImagePath,
- NULL,
- 0,
- &ImageHandle
- );
+ Status = gBS->LoadImage (
+ FALSE,
+ CallerImageHandle,
+ TempDriverImagePath,
+ NULL,
+ 0,
+ &ImageHandle
+ );
if (!EFI_ERROR (Status)) {
//
// Try to start the driver
//
Status = gBS->StartImage (ImageHandle, NULL, NULL);
- if (EFI_ERROR (Status)){
+ if (EFI_ERROR (Status)) {
DriverImageInfo->UnStartable = TRUE;
DriverImageInfo->ImageHandle = NULL;
} else {
@@ -1478,10 +1505,10 @@ GetDriverFromMapping (
// Driver binding handle may be different with its driver's Image handle
//
DriverBindingHandle = NULL;
- DriverBinding = GetBindingProtocolFromImageHandle (
- ImageHandle,
- &DriverBindingHandle
- );
+ DriverBinding = GetBindingProtocolFromImageHandle (
+ ImageHandle,
+ &DriverBindingHandle
+ );
ASSERT (DriverBinding != NULL);
DriverImageInfo->ImageHandle = ImageHandle;
}
@@ -1495,16 +1522,20 @@ GetDriverFromMapping (
if (Status == EFI_SECURITY_VIOLATION) {
gBS->UnloadImage (ImageHandle);
}
- DriverImageInfo->UnLoadable = TRUE;
+
+ DriverImageInfo->UnLoadable = TRUE;
DriverImageInfo->ImageHandle = NULL;
}
}
}
+
FreePool (ImageHandleBuffer);
}
}
+
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
}
+
//
// Finish try to load and start the override driver of a controller, popup the controller's device path
//
@@ -1513,10 +1544,10 @@ GetDriverFromMapping (
//
// return the DriverImageHandle for ControllerHandle
//
- FoundLastReturned = FALSE;
+ FoundLastReturned = FALSE;
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
if (DriverImageInfo->ImageHandle != NULL) {
if ((*DriverImageHandle == NULL) || FoundLastReturned) {
//
@@ -1525,22 +1556,22 @@ GetDriverFromMapping (
// For both cases, we just return the image handle of this driver.
//
OverrideItem->LastReturnedImageHandle = DriverImageInfo->ImageHandle;
- *DriverImageHandle = DriverImageInfo->ImageHandle;
+ *DriverImageHandle = DriverImageInfo->ImageHandle;
return EFI_SUCCESS;
- } else if (*DriverImageHandle == DriverImageInfo->ImageHandle){
+ } else if (*DriverImageHandle == DriverImageInfo->ImageHandle) {
//
// We have found the previously returned driver.
//
FoundLastReturned = TRUE;
}
}
+
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
}
return EFI_NOT_FOUND;
}
-
/**
Check mapping database whether already has the mapping info which
records the input Controller to input DriverImage.
@@ -1561,24 +1592,25 @@ GetDriverFromMapping (
EFI_STATUS
EFIAPI
CheckMapping (
- IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath OPTIONAL,
- IN LIST_ENTRY *MappingDataBase,
- OUT UINT32 *DriverInfoNum OPTIONAL,
- OUT UINT32 *DriverImageNO OPTIONAL
+ IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath OPTIONAL,
+ IN LIST_ENTRY *MappingDataBase,
+ OUT UINT32 *DriverInfoNum OPTIONAL,
+ OUT UINT32 *DriverImageNO OPTIONAL
)
{
- LIST_ENTRY *OverrideItemListIndex;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- LIST_ENTRY *ImageInfoListIndex;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- BOOLEAN Found;
- UINT32 ImageNO;
- UINTN DevicePathSize;
+ LIST_ENTRY *OverrideItemListIndex;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ LIST_ENTRY *ImageInfoListIndex;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ BOOLEAN Found;
+ UINT32 ImageNO;
+ UINTN DevicePathSize;
if (ControllerDevicePath == NULL) {
return EFI_INVALID_PARAMETER;
}
+
if (MappingDataBase == NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -1586,11 +1618,11 @@ CheckMapping (
//
// Search ControllerDevicePath in MappingDataBase
//
- Found = FALSE;
- OverrideItem = NULL;
+ Found = FALSE;
+ OverrideItem = NULL;
OverrideItemListIndex = GetFirstNode (MappingDataBase);
while (!IsNull (MappingDataBase, OverrideItemListIndex)) {
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
DevicePathSize = GetDevicePathSize (ControllerDevicePath);
if (DevicePathSize == GetDevicePathSize (OverrideItem->ControllerDevicePath)) {
if (CompareMem (
@@ -1598,11 +1630,13 @@ CheckMapping (
OverrideItem->ControllerDevicePath,
DevicePathSize
) == 0
- ) {
+ )
+ {
Found = TRUE;
break;
}
}
+
OverrideItemListIndex = GetNextNode (MappingDataBase, OverrideItemListIndex);
}
@@ -1625,14 +1659,15 @@ CheckMapping (
if (DriverImageDevicePath == NULL) {
return EFI_SUCCESS;
}
+
//
// return the DriverImageHandle for ControllerHandle
//
- ImageNO = 0;
- Found = FALSE;
+ ImageNO = 0;
+ Found = FALSE;
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
ImageNO++;
DevicePathSize = GetDevicePathSize (DriverImageDevicePath);
if (DevicePathSize == GetDevicePathSize (DriverImageInfo->DriverImagePath)) {
@@ -1641,11 +1676,13 @@ CheckMapping (
DriverImageInfo->DriverImagePath,
GetDevicePathSize (DriverImageInfo->DriverImagePath)
) == 0
- ) {
+ )
+ {
Found = TRUE;
break;
}
}
+
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
}
@@ -1658,11 +1695,11 @@ CheckMapping (
if (DriverImageNO != NULL) {
*DriverImageNO = ImageNO;
}
+
return EFI_SUCCESS;
}
}
-
/**
Insert a driver image as a controller's override driver into the mapping database.
The driver image's order number is indicated by DriverImageNO.
@@ -1685,27 +1722,29 @@ CheckMapping (
EFI_STATUS
EFIAPI
InsertDriverImage (
- IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
- IN LIST_ENTRY *MappingDataBase,
- IN UINT32 DriverImageNO
+ IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
+ IN LIST_ENTRY *MappingDataBase,
+ IN UINT32 DriverImageNO
)
{
- EFI_STATUS Status;
- LIST_ENTRY *OverrideItemListIndex;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- LIST_ENTRY *ImageInfoListIndex;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- BOOLEAN Found;
- UINT32 ImageNO;
- UINTN DevicePathSize;
+ EFI_STATUS Status;
+ LIST_ENTRY *OverrideItemListIndex;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ LIST_ENTRY *ImageInfoListIndex;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ BOOLEAN Found;
+ UINT32 ImageNO;
+ UINTN DevicePathSize;
if (ControllerDevicePath == NULL) {
return EFI_INVALID_PARAMETER;
}
+
if (DriverImageDevicePath == NULL) {
return EFI_INVALID_PARAMETER;
}
+
if (MappingDataBase == NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -1728,11 +1767,11 @@ InsertDriverImage (
//
// Search the input ControllerDevicePath in MappingDataBase
//
- Found = FALSE;
- OverrideItem = NULL;
+ Found = FALSE;
+ OverrideItem = NULL;
OverrideItemListIndex = GetFirstNode (MappingDataBase);
while (!IsNull (MappingDataBase, OverrideItemListIndex)) {
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
DevicePathSize = GetDevicePathSize (ControllerDevicePath);
if (DevicePathSize == GetDevicePathSize (OverrideItem->ControllerDevicePath)) {
if (CompareMem (
@@ -1740,13 +1779,16 @@ InsertDriverImage (
OverrideItem->ControllerDevicePath,
DevicePathSize
) == 0
- ) {
+ )
+ {
Found = TRUE;
break;
}
}
+
OverrideItemListIndex = GetNextNode (MappingDataBase, OverrideItemListIndex);
}
+
//
// If cannot find, this is a new controller item
// Add the Controller related PLATFORM_OVERRIDE_ITEM structrue in mapping data base
@@ -1754,7 +1796,7 @@ InsertDriverImage (
if (!Found) {
OverrideItem = AllocateZeroPool (sizeof (PLATFORM_OVERRIDE_ITEM));
ASSERT (OverrideItem != NULL);
- OverrideItem->Signature = PLATFORM_OVERRIDE_ITEM_SIGNATURE;
+ OverrideItem->Signature = PLATFORM_OVERRIDE_ITEM_SIGNATURE;
OverrideItem->ControllerDevicePath = DuplicateDevicePath (ControllerDevicePath);
InitializeListHead (&OverrideItem->DriverInfoList);
InsertTailList (MappingDataBase, &OverrideItem->Link);
@@ -1765,13 +1807,13 @@ InsertDriverImage (
//
DriverImageInfo = AllocateZeroPool (sizeof (DRIVER_IMAGE_INFO));
ASSERT (DriverImageInfo != NULL);
- DriverImageInfo->Signature = DRIVER_IMAGE_INFO_SIGNATURE;
+ DriverImageInfo->Signature = DRIVER_IMAGE_INFO_SIGNATURE;
DriverImageInfo->DriverImagePath = DuplicateDevicePath (DriverImageDevicePath);
//
// Find the driver image wanted order location
//
- ImageNO = 0;
- Found = FALSE;
+ ImageNO = 0;
+ Found = FALSE;
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
if (ImageNO == (DriverImageNO - 1)) {
@@ -1779,10 +1821,11 @@ InsertDriverImage (
// find the wanted order location, insert it
//
InsertTailList (ImageInfoListIndex, &DriverImageInfo->Link);
- OverrideItem->DriverInfoNum ++;
+ OverrideItem->DriverInfoNum++;
Found = TRUE;
break;
}
+
ImageNO++;
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
}
@@ -1792,13 +1835,12 @@ InsertDriverImage (
// if not find the wanted order location, add it as last item of the controller mapping item
//
InsertTailList (&OverrideItem->DriverInfoList, &DriverImageInfo->Link);
- OverrideItem->DriverInfoNum ++;
+ OverrideItem->DriverInfoNum++;
}
return EFI_SUCCESS;
}
-
/**
Delete a controller's override driver from the mapping database.
@@ -1817,18 +1859,18 @@ InsertDriverImage (
EFI_STATUS
EFIAPI
DeleteDriverImage (
- IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
- IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
- IN LIST_ENTRY *MappingDataBase
+ IN EFI_DEVICE_PATH_PROTOCOL *ControllerDevicePath,
+ IN EFI_DEVICE_PATH_PROTOCOL *DriverImageDevicePath,
+ IN LIST_ENTRY *MappingDataBase
)
{
- EFI_STATUS Status;
- LIST_ENTRY *OverrideItemListIndex;
- PLATFORM_OVERRIDE_ITEM *OverrideItem;
- LIST_ENTRY *ImageInfoListIndex;
- DRIVER_IMAGE_INFO *DriverImageInfo;
- BOOLEAN Found;
- UINTN DevicePathSize;
+ EFI_STATUS Status;
+ LIST_ENTRY *OverrideItemListIndex;
+ PLATFORM_OVERRIDE_ITEM *OverrideItem;
+ LIST_ENTRY *ImageInfoListIndex;
+ DRIVER_IMAGE_INFO *DriverImageInfo;
+ BOOLEAN Found;
+ UINTN DevicePathSize;
if (ControllerDevicePath == NULL) {
return EFI_INVALID_PARAMETER;
@@ -1855,11 +1897,11 @@ DeleteDriverImage (
//
// Search ControllerDevicePath in MappingDataBase
//
- Found = FALSE;
- OverrideItem = NULL;
+ Found = FALSE;
+ OverrideItem = NULL;
OverrideItemListIndex = GetFirstNode (MappingDataBase);
while (!IsNull (MappingDataBase, OverrideItemListIndex)) {
- OverrideItem = CR(OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
+ OverrideItem = CR (OverrideItemListIndex, PLATFORM_OVERRIDE_ITEM, Link, PLATFORM_OVERRIDE_ITEM_SIGNATURE);
DevicePathSize = GetDevicePathSize (ControllerDevicePath);
if (DevicePathSize == GetDevicePathSize (OverrideItem->ControllerDevicePath)) {
if (CompareMem (
@@ -1867,21 +1909,23 @@ DeleteDriverImage (
OverrideItem->ControllerDevicePath,
DevicePathSize
) == 0
- ) {
+ )
+ {
Found = TRUE;
break;
}
}
+
OverrideItemListIndex = GetNextNode (MappingDataBase, OverrideItemListIndex);
}
ASSERT (Found);
ASSERT (OverrideItem->DriverInfoNum != 0);
- Found = FALSE;
+ Found = FALSE;
ImageInfoListIndex = GetFirstNode (&OverrideItem->DriverInfoList);
while (!IsNull (&OverrideItem->DriverInfoList, ImageInfoListIndex)) {
- DriverImageInfo = CR(ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
+ DriverImageInfo = CR (ImageInfoListIndex, DRIVER_IMAGE_INFO, Link, DRIVER_IMAGE_INFO_SIGNATURE);
ImageInfoListIndex = GetNextNode (&OverrideItem->DriverInfoList, ImageInfoListIndex);
if (DriverImageDevicePath != NULL) {
//
@@ -1894,11 +1938,12 @@ DeleteDriverImage (
DriverImageInfo->DriverImagePath,
GetDevicePathSize (DriverImageInfo->DriverImagePath)
) == 0
- ) {
+ )
+ {
Found = TRUE;
- FreePool(DriverImageInfo->DriverImagePath);
+ FreePool (DriverImageInfo->DriverImagePath);
RemoveEntryList (&DriverImageInfo->Link);
- OverrideItem->DriverInfoNum --;
+ OverrideItem->DriverInfoNum--;
break;
}
}
@@ -1907,9 +1952,9 @@ DeleteDriverImage (
// Remove all existing driver image info entries, so no break here.
//
Found = TRUE;
- FreePool(DriverImageInfo->DriverImagePath);
+ FreePool (DriverImageInfo->DriverImagePath);
RemoveEntryList (&DriverImageInfo->Link);
- OverrideItem->DriverInfoNum --;
+ OverrideItem->DriverInfoNum--;
}
}
@@ -1920,11 +1965,12 @@ DeleteDriverImage (
if (DriverImageDevicePath == NULL) {
ASSERT (OverrideItem->DriverInfoNum == 0);
}
+
//
// If Override Item has no driver image info entry, then delete this item.
//
if (OverrideItem->DriverInfoNum == 0) {
- FreePool(OverrideItem->ControllerDevicePath);
+ FreePool (OverrideItem->ControllerDevicePath);
RemoveEntryList (&OverrideItem->Link);
FreePool (OverrideItem);
}
diff --git a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatOverMngr.h b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatOverMngr.h
index 7665211..0e200c0 100644
--- a/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatOverMngr.h
+++ b/MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatOverMngr.h
@@ -19,43 +19,43 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#define MAX_CHOICE_NUM 0x00FF
#define UPDATE_DATA_SIZE 0x1000
-#define FORM_ID_DEVICE 0x1100
-#define FORM_ID_DRIVER 0x1200
-#define FORM_ID_ORDER 0x1500
+#define FORM_ID_DEVICE 0x1100
+#define FORM_ID_DRIVER 0x1200
+#define FORM_ID_ORDER 0x1500
-#define KEY_VALUE_DEVICE_OFFSET 0x0100
-#define KEY_VALUE_DRIVER_OFFSET 0x0300
+#define KEY_VALUE_DEVICE_OFFSET 0x0100
+#define KEY_VALUE_DRIVER_OFFSET 0x0300
-#define KEY_VALUE_DEVICE_REFRESH 0x1234
-#define KEY_VALUE_DEVICE_FILTER 0x1235
-#define KEY_VALUE_DEVICE_CLEAR 0x1236
+#define KEY_VALUE_DEVICE_REFRESH 0x1234
+#define KEY_VALUE_DEVICE_FILTER 0x1235
+#define KEY_VALUE_DEVICE_CLEAR 0x1236
-#define KEY_VALUE_DRIVER_GOTO_PREVIOUS 0x1300
-#define KEY_VALUE_DRIVER_GOTO_ORDER 0x1301
+#define KEY_VALUE_DRIVER_GOTO_PREVIOUS 0x1300
+#define KEY_VALUE_DRIVER_GOTO_ORDER 0x1301
#define KEY_VALUE_ORDER_GOTO_PREVIOUS 0x2000
#define KEY_VALUE_ORDER_SAVE_AND_EXIT 0x1800
-#define VARSTORE_ID_PLAT_OVER_MNGR 0x1000
+#define VARSTORE_ID_PLAT_OVER_MNGR 0x1000
-#define LABEL_END 0xffff
+#define LABEL_END 0xffff
typedef struct {
- UINT8 DriOrder[MAX_CHOICE_NUM];
- UINT8 PciDeviceFilter;
+ UINT8 DriOrder[MAX_CHOICE_NUM];
+ UINT8 PciDeviceFilter;
} PLAT_OVER_MNGR_DATA;
//
// Field offset of structure PLAT_OVER_MNGR_DATA
//
-#define VAR_OFFSET(Field) ((UINTN) &(((PLAT_OVER_MNGR_DATA *) 0)->Field))
-#define DRIVER_ORDER_VAR_OFFSET (VAR_OFFSET (DriOrder))
+#define VAR_OFFSET(Field) ((UINTN) &(((PLAT_OVER_MNGR_DATA *) 0)->Field))
+#define DRIVER_ORDER_VAR_OFFSET (VAR_OFFSET (DriOrder))
//
// Tool automatic generated Question Id start from 1
// In order to avoid to conflict them, the Driver Selection and Order QuestionID offset is defined from 0x0500.
//
-#define QUESTION_ID_OFFSET 0x0500
-#define DRIVER_ORDER_QUESTION_ID (VAR_OFFSET (DriOrder) + QUESTION_ID_OFFSET)
+#define QUESTION_ID_OFFSET 0x0500
+#define DRIVER_ORDER_QUESTION_ID (VAR_OFFSET (DriOrder) + QUESTION_ID_OFFSET)
#endif
diff --git a/MdeModulePkg/Universal/PrintDxe/Print.c b/MdeModulePkg/Universal/PrintDxe/Print.c
index 95a81d0..161fed0 100644
--- a/MdeModulePkg/Universal/PrintDxe/Print.c
+++ b/MdeModulePkg/Universal/PrintDxe/Print.c
@@ -43,7 +43,6 @@ PrintDxeUnicodeValueToString (
DEBUG ((DEBUG_ERROR, "PrintDxe: Please consider using the UnicodeValueToStringS service in EFI_PRINT2S_PROTOCOL.\n"));
ASSERT (FALSE);
return 0;
-
}
/**
@@ -63,23 +62,21 @@ PrintDxeUnicodeValueToString (
UINTN
EFIAPI
PrintDxeAsciiValueToString (
- OUT CHAR8 *Buffer,
- IN UINTN Flags,
- IN INT64 Value,
- IN UINTN Width
+ OUT CHAR8 *Buffer,
+ IN UINTN Flags,
+ IN INT64 Value,
+ IN UINTN Width
)
{
-
DEBUG ((DEBUG_ERROR, "PrintDxe: The AsciiValueToString service in EFI_PRINT2_PROTOCOL is no longer supported for security reason.\n"));
DEBUG ((DEBUG_ERROR, "PrintDxe: Please consider using the AsciiValueToStringS service in EFI_PRINT2S_PROTOCOL.\n"));
ASSERT (FALSE);
return 0;
-
}
EFI_HANDLE mPrintThunkHandle = NULL;
-CONST EFI_PRINT2_PROTOCOL mPrint2Protocol = {
+CONST EFI_PRINT2_PROTOCOL mPrint2Protocol = {
UnicodeBSPrint,
UnicodeSPrint,
UnicodeBSPrintAsciiFormat,
@@ -92,7 +89,7 @@ CONST EFI_PRINT2_PROTOCOL mPrint2Protocol = {
PrintDxeAsciiValueToString
};
-CONST EFI_PRINT2S_PROTOCOL mPrint2SProtocol = {
+CONST EFI_PRINT2S_PROTOCOL mPrint2SProtocol = {
UnicodeBSPrint,
UnicodeSPrint,
UnicodeBSPrintAsciiFormat,
@@ -120,16 +117,18 @@ CONST EFI_PRINT2S_PROTOCOL mPrint2SProtocol = {
EFI_STATUS
EFIAPI
PrintEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
Status = gBS->InstallMultipleProtocolInterfaces (
&mPrintThunkHandle,
- &gEfiPrint2ProtocolGuid, &mPrint2Protocol,
- &gEfiPrint2SProtocolGuid, &mPrint2SProtocol,
+ &gEfiPrint2ProtocolGuid,
+ &mPrint2Protocol,
+ &gEfiPrint2SProtocolGuid,
+ &mPrint2SProtocol,
NULL
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c
index 4659c44..6661c67 100644
--- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c
+++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c
@@ -9,19 +9,25 @@
**/
#include "OnigurumaUefiPort.h"
-#define ONIGMEM_HEAD_SIGNATURE SIGNATURE_32('o','m','h','d')
+#define ONIGMEM_HEAD_SIGNATURE SIGNATURE_32('o','m','h','d')
typedef struct {
UINT32 Signature;
UINTN Size;
} ONIGMEM_HEAD;
-#define ONIGMEM_OVERHEAD sizeof(ONIGMEM_HEAD)
+#define ONIGMEM_OVERHEAD sizeof(ONIGMEM_HEAD)
-int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...)
+int EFIAPI
+sprintf_s (
+ char *str,
+ size_t sizeOfBuffer,
+ char const *fmt,
+ ...
+ )
{
- VA_LIST Marker;
- int NumberOfPrinted;
+ VA_LIST Marker;
+ int NumberOfPrinted;
VA_START (Marker, fmt);
NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker);
@@ -30,47 +36,62 @@ int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...)
return NumberOfPrinted;
}
-int OnigStrCmp (const char* Str1, const char* Str2)
+int
+OnigStrCmp (
+ const char *Str1,
+ const char *Str2
+ )
{
return (int)AsciiStrCmp (Str1, Str2);
}
-int strlen(const char* str)
+int
+strlen (
+ const char *str
+ )
{
- return strlen_s(str, MAX_STRING_SIZE);
+ return strlen_s (str, MAX_STRING_SIZE);
}
-void * malloc (size_t size)
+void *
+malloc (
+ size_t size
+ )
{
ONIGMEM_HEAD *PoolHdr;
- UINTN NewSize;
- VOID *Data;
+ UINTN NewSize;
+ VOID *Data;
NewSize = (UINTN)(size) + ONIGMEM_OVERHEAD;
- Data = AllocatePool (NewSize);
+ Data = AllocatePool (NewSize);
if (Data != NULL) {
- PoolHdr = (ONIGMEM_HEAD *)Data;
+ PoolHdr = (ONIGMEM_HEAD *)Data;
PoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;
PoolHdr->Size = size;
return (VOID *)(PoolHdr + 1);
}
+
return NULL;
}
-void * realloc (void *ptr, size_t size)
+void *
+realloc (
+ void *ptr,
+ size_t size
+ )
{
ONIGMEM_HEAD *OldPoolHdr;
ONIGMEM_HEAD *NewPoolHdr;
- UINTN OldSize;
- UINTN NewSize;
- VOID *Data;
+ UINTN OldSize;
+ UINTN NewSize;
+ VOID *Data;
NewSize = (UINTN)size + ONIGMEM_OVERHEAD;
- Data = AllocatePool (NewSize);
+ Data = AllocatePool (NewSize);
if (Data != NULL) {
- NewPoolHdr = (ONIGMEM_HEAD *)Data;
+ NewPoolHdr = (ONIGMEM_HEAD *)Data;
NewPoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;
NewPoolHdr->Size = size;
if (ptr != NULL) {
@@ -81,25 +102,40 @@ void * realloc (void *ptr, size_t size)
CopyMem ((VOID *)(NewPoolHdr + 1), ptr, MIN (OldSize, size));
FreePool ((VOID *)OldPoolHdr);
}
+
return (VOID *)(NewPoolHdr + 1);
}
+
return NULL;
}
-void* memcpy (void *dest, const void *src, unsigned int count)
+void *
+memcpy (
+ void *dest,
+ const void *src,
+ unsigned int count
+ )
{
return CopyMem (dest, src, (UINTN)count);
}
-void* memset (void *dest, char ch, unsigned int count)
+void *
+memset (
+ void *dest,
+ char ch,
+ unsigned int count
+ )
{
return SetMem (dest, count, ch);
}
-void free(void *ptr)
+void
+free (
+ void *ptr
+ )
{
- VOID *EvalOnce;
- ONIGMEM_HEAD *PoolHdr;
+ VOID *EvalOnce;
+ ONIGMEM_HEAD *PoolHdr;
EvalOnce = ptr;
if (EvalOnce == NULL) {
diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h
index 0bdb7be..3dc207d 100644
--- a/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h
+++ b/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.h
@@ -7,6 +7,7 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef ONIGURUMA_UEFI_PORT_H
#define ONIGURUMA_UEFI_PORT_H
@@ -16,79 +17,116 @@
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
-
#define ONIG_NO_STANDARD_C_HEADERS
#define ONIG_NO_PRINT
-#define P_(args) args
-
-#define INT_MAX 0x7FFFFFFF
-#define LONG_MAX 0x7FFFFFFF
-#define UINT_MAX 0xFFFFFFFF
-#define ULONG_MAX 0xFFFFFFFF
+#define P_(args) args
+#define INT_MAX 0x7FFFFFFF
+#define LONG_MAX 0x7FFFFFFF
+#define UINT_MAX 0xFFFFFFFF
+#define ULONG_MAX 0xFFFFFFFF
-#define SIZEOF_LONG 4
-#define SIZEOF_LONG_LONG 8
-typedef UINTN size_t;
-typedef UINT32 uint32_t;
-typedef INTN intptr_t;
+#define SIZEOF_LONG 4
+#define SIZEOF_LONG_LONG 8
+typedef UINTN size_t;
+typedef UINT32 uint32_t;
+typedef INTN intptr_t;
#ifndef offsetof
-#define offsetof OFFSET_OF
+#define offsetof OFFSET_OF
#endif
#ifdef MDE_CPU_IA32
-#define SIZEOF_VOIDP 4
+#define SIZEOF_VOIDP 4
#endif
#ifdef MDE_CPU_X64
-#define SIZEOF_VOIDP 8
+#define SIZEOF_VOIDP 8
#endif
-#define calloc(n,s) AllocateZeroPool((n)*(s))
-#define xmemmove(Dest,Src,Length) CopyMem(Dest,Src,Length)
-#define xmemcpy(Dest,Src,Length) CopyMem(Dest,Src,Length)
-#define xmemset(Buffer,Value,Length) SetMem(Buffer,Length,Value)
+#define calloc(n, s) AllocateZeroPool((n)*(s))
+#define xmemmove(Dest, Src, Length) CopyMem(Dest,Src,Length)
+#define xmemcpy(Dest, Src, Length) CopyMem(Dest,Src,Length)
+#define xmemset(Buffer, Value, Length) SetMem(Buffer,Length,Value)
-#define va_init_list(a,b) VA_START(a,b)
-#define va_list VA_LIST
-#define va_arg(a,b) VA_ARG(a,b)
-#define va_end(a) VA_END(a)
-#define va_start VA_START
+#define va_init_list(a, b) VA_START(a,b)
+#define va_list VA_LIST
+#define va_arg(a, b) VA_ARG(a,b)
+#define va_end(a) VA_END(a)
+#define va_start VA_START
-#define FILE VOID
-#define stdout NULL
+#define FILE VOID
+#define stdout NULL
#define fprintf(...)
-#define fputs(a,b)
-#define vsnprintf (int)AsciiVSPrint
-#define _vsnprintf vsnprintf
-#define xsnprintf sprintf_s
+#define fputs(a, b)
+#define vsnprintf (int)AsciiVSPrint
+#define _vsnprintf vsnprintf
+#define xsnprintf sprintf_s
#define xvsnprintf vsnprintf
-#define alloca malloc
-
-#define setlocale(a,b)
-#define LC_ALL 0
-
-#define UCHAR_MAX 255
-#define MAX_STRING_SIZE 0x1000
-#define strlen_s(String,MaxSize) AsciiStrnLenS (String, MaxSize)
-#define xstrncpy(Dest, Src, MaxSize) strcat_s(Dest,MaxSize,Src)
-#define xstrcat(Dest,Src,MaxSize) strcat(Dest,Src,MaxSize)
-#define strcat(Dest,Src,MaxSize) strcat_s(Dest,MaxSize,Src)
-#define strcat_s(Dest,MaxSize,Src) AsciiStrCatS (Dest, MaxSize, Src)
-#define strncpy_s(Dest,MaxSize,Src,Length) AsciiStrnCpyS (Dest, MaxSize, Src, Length)
-#define strcmp OnigStrCmp
-
-int OnigStrCmp (const char* Str1, const char* Str2);
-
-int EFIAPI sprintf_s (char *str, size_t sizeOfBuffer, char const *fmt, ...);
-int strlen(const char* str);
-void* malloc(size_t size);
-void* realloc(void *ptr, size_t size);
-void* memcpy (void *dest, const void *src, unsigned int count);
-void* memset (void *dest, char ch, unsigned int count);
-void free(void *ptr);
-
-#define exit(n) ASSERT(FALSE);
+#define alloca malloc
+
+#define setlocale(a, b)
+#define LC_ALL 0
+
+#define UCHAR_MAX 255
+#define MAX_STRING_SIZE 0x1000
+#define strlen_s(String, MaxSize) AsciiStrnLenS (String, MaxSize)
+#define xstrncpy(Dest, Src, MaxSize) strcat_s(Dest,MaxSize,Src)
+#define xstrcat(Dest, Src, MaxSize) strcat(Dest,Src,MaxSize)
+#define strcat(Dest, Src, MaxSize) strcat_s(Dest,MaxSize,Src)
+#define strcat_s(Dest, MaxSize, Src) AsciiStrCatS (Dest, MaxSize, Src)
+#define strncpy_s(Dest, MaxSize, Src, Length) AsciiStrnCpyS (Dest, MaxSize, Src, Length)
+#define strcmp OnigStrCmp
+
+int
+OnigStrCmp (
+ const char *Str1,
+ const char *Str2
+ );
+
+int EFIAPI
+sprintf_s (
+ char *str,
+ size_t sizeOfBuffer,
+ char const *fmt,
+ ...
+ );
+
+int
+strlen (
+ const char *str
+ );
+
+void *
+malloc (
+ size_t size
+ );
+
+void *
+realloc (
+ void *ptr,
+ size_t size
+ );
+
+void *
+memcpy (
+ void *dest,
+ const void *src,
+ unsigned int count
+ );
+
+void *
+memset (
+ void *dest,
+ char ch,
+ unsigned int count
+ );
+
+void
+free (
+ void *ptr
+ );
+
+#define exit(n) ASSERT(FALSE);
#endif // !ONIGURUMA_UEFI_PORT_H
diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c
index 2334e81..326a6e6 100644
--- a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c
+++ b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.c
@@ -11,20 +11,18 @@
#include "RegularExpressionDxe.h"
STATIC
-EFI_REGEX_SYNTAX_TYPE * CONST mSupportedSyntaxes[] = {
+EFI_REGEX_SYNTAX_TYPE *CONST mSupportedSyntaxes[] = {
&gEfiRegexSyntaxTypePosixExtendedGuid,
&gEfiRegexSyntaxTypePerlGuid
};
STATIC
-EFI_REGULAR_EXPRESSION_PROTOCOL mProtocolInstance = {
+EFI_REGULAR_EXPRESSION_PROTOCOL mProtocolInstance = {
RegularExpressionMatch,
RegularExpressionGetInfo
};
-
-
-#define CHAR16_ENCODING ONIG_ENCODING_UTF16_LE
+#define CHAR16_ENCODING ONIG_ENCODING_UTF16_LE
/**
Call the Oniguruma regex match API.
@@ -69,12 +67,12 @@ EFI_REGULAR_EXPRESSION_PROTOCOL mProtocolInstance = {
STATIC
EFI_STATUS
OnigurumaMatch (
- IN CHAR16 *String,
- IN CHAR16 *Pattern,
- IN EFI_REGEX_SYNTAX_TYPE *SyntaxType,
- OUT BOOLEAN *Result,
- OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
- OUT UINTN *CapturesCount
+ IN CHAR16 *String,
+ IN CHAR16 *Pattern,
+ IN EFI_REGEX_SYNTAX_TYPE *SyntaxType,
+ OUT BOOLEAN *Result,
+ OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
+ OUT UINTN *CapturesCount
)
{
regex_t *OnigRegex;
@@ -87,7 +85,6 @@ OnigurumaMatch (
OnigUChar *Start;
EFI_STATUS Status;
-
Status = EFI_SUCCESS;
//
@@ -106,7 +103,7 @@ OnigurumaMatch (
//
// Compile pattern
//
- Start = (OnigUChar*)Pattern;
+ Start = (OnigUChar *)Pattern;
OnigResult = onig_new (
&OnigRegex,
Start,
@@ -126,12 +123,13 @@ OnigurumaMatch (
//
// Try to match
//
- Start = (OnigUChar*)String;
+ Start = (OnigUChar *)String;
Region = onig_region_new ();
if (Region == NULL) {
onig_free (OnigRegex);
return EFI_OUT_OF_RESOURCES;
}
+
OnigResult = onig_search (
OnigRegex,
Start,
@@ -158,18 +156,18 @@ OnigurumaMatch (
//
// If successful, copy out the region (capture) information
//
- if (*Result && Captures != NULL) {
+ if (*Result && (Captures != NULL)) {
*CapturesCount = Region->num_regs;
- *Captures = AllocateZeroPool (*CapturesCount * sizeof(**Captures));
+ *Captures = AllocateZeroPool (*CapturesCount * sizeof (**Captures));
if (*Captures != NULL) {
for (Index = 0; Index < *CapturesCount; ++Index) {
//
// Region beg/end values represent bytes, not characters
//
- (*Captures)[Index].Length = (Region->end[Index] - Region->beg[Index]) / sizeof(CHAR16);
+ (*Captures)[Index].Length = (Region->end[Index] - Region->beg[Index]) / sizeof (CHAR16);
(*Captures)[Index].CapturePtr = AllocateCopyPool (
((*Captures)[Index].Length) * sizeof (CHAR16),
- (CHAR16*)((UINTN)String + Region->beg[Index])
+ (CHAR16 *)((UINTN)String + Region->beg[Index])
);
if ((*Captures)[Index].CapturePtr == NULL) {
Status = EFI_OUT_OF_RESOURCES;
@@ -180,9 +178,10 @@ OnigurumaMatch (
if (EFI_ERROR (Status)) {
for (Index = 0; Index < *CapturesCount; ++Index) {
if ((*Captures)[Index].CapturePtr != NULL) {
- FreePool ((CHAR16*)(*Captures)[Index].CapturePtr);
+ FreePool ((CHAR16 *)(*Captures)[Index].CapturePtr);
}
}
+
FreePool (*Captures);
}
}
@@ -229,23 +228,23 @@ OnigurumaMatch (
EFI_STATUS
EFIAPI
RegularExpressionGetInfo (
- IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
- IN OUT UINTN *RegExSyntaxTypeListSize,
- OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList
+ IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
+ IN OUT UINTN *RegExSyntaxTypeListSize,
+ OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList
)
{
- UINTN SyntaxSize;
- UINTN Index;
+ UINTN SyntaxSize;
+ UINTN Index;
- if (This == NULL || RegExSyntaxTypeListSize == NULL) {
+ if ((This == NULL) || (RegExSyntaxTypeListSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (*RegExSyntaxTypeListSize != 0 && RegExSyntaxTypeList == NULL) {
+ if ((*RegExSyntaxTypeListSize != 0) && (RegExSyntaxTypeList == NULL)) {
return EFI_INVALID_PARAMETER;
}
- SyntaxSize = ARRAY_SIZE (mSupportedSyntaxes) * sizeof(**mSupportedSyntaxes);
+ SyntaxSize = ARRAY_SIZE (mSupportedSyntaxes) * sizeof (**mSupportedSyntaxes);
if (*RegExSyntaxTypeListSize < SyntaxSize) {
*RegExSyntaxTypeListSize = SyntaxSize;
@@ -253,8 +252,9 @@ RegularExpressionGetInfo (
}
for (Index = 0; Index < ARRAY_SIZE (mSupportedSyntaxes); ++Index) {
- CopyMem (&RegExSyntaxTypeList[Index], mSupportedSyntaxes[Index], sizeof(**mSupportedSyntaxes));
+ CopyMem (&RegExSyntaxTypeList[Index], mSupportedSyntaxes[Index], sizeof (**mSupportedSyntaxes));
}
+
*RegExSyntaxTypeListSize = SyntaxSize;
return EFI_SUCCESS;
@@ -312,20 +312,20 @@ RegularExpressionGetInfo (
EFI_STATUS
EFIAPI
RegularExpressionMatch (
- IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
- IN CHAR16 *String,
- IN CHAR16 *Pattern,
- IN EFI_REGEX_SYNTAX_TYPE *SyntaxType OPTIONAL,
- OUT BOOLEAN *Result,
- OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
- OUT UINTN *CapturesCount
+ IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
+ IN CHAR16 *String,
+ IN CHAR16 *Pattern,
+ IN EFI_REGEX_SYNTAX_TYPE *SyntaxType OPTIONAL,
+ OUT BOOLEAN *Result,
+ OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
+ OUT UINTN *CapturesCount
)
{
EFI_STATUS Status;
UINT32 Index;
BOOLEAN Supported;
- if (This == NULL || String == NULL || Pattern == NULL || Result == NULL || CapturesCount == NULL) {
+ if ((This == NULL) || (String == NULL) || (Pattern == NULL) || (Result == NULL) || (CapturesCount == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -342,6 +342,7 @@ RegularExpressionMatch (
break;
}
}
+
if (!Supported) {
return EFI_UNSUPPORTED;
}
diff --git a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h
index a397e77..1a6961a 100644
--- a/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h
+++ b/MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.h
@@ -73,13 +73,13 @@
EFI_STATUS
EFIAPI
RegularExpressionMatch (
- IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
- IN CHAR16 *String,
- IN CHAR16 *Pattern,
- IN EFI_REGEX_SYNTAX_TYPE *SyntaxType OPTIONAL,
- OUT BOOLEAN *Result,
- OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
- OUT UINTN *CapturesCount
+ IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
+ IN CHAR16 *String,
+ IN CHAR16 *Pattern,
+ IN EFI_REGEX_SYNTAX_TYPE *SyntaxType OPTIONAL,
+ OUT BOOLEAN *Result,
+ OUT EFI_REGEX_CAPTURE **Captures OPTIONAL,
+ OUT UINTN *CapturesCount
);
/**
@@ -117,9 +117,9 @@ RegularExpressionMatch (
EFI_STATUS
EFIAPI
RegularExpressionGetInfo (
- IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
- IN OUT UINTN *RegExSyntaxTypeListSize,
- OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList
+ IN EFI_REGULAR_EXPRESSION_PROTOCOL *This,
+ IN OUT UINTN *RegExSyntaxTypeListSize,
+ OUT EFI_REGEX_SYNTAX_TYPE *RegExSyntaxTypeList
);
#endif
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.c b/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.c
index cb3eab1..b123983 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.c
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.c
@@ -8,16 +8,16 @@
#include "ReportStatusCodeRouterPei.h"
-EFI_PEI_RSC_HANDLER_PPI mRscHandlerPpi = {
+EFI_PEI_RSC_HANDLER_PPI mRscHandlerPpi = {
Register,
Unregister
- };
+};
-EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi = {
+EFI_PEI_PROGRESS_CODE_PPI mStatusCodePpi = {
ReportDispatcher
- };
+};
-EFI_PEI_PPI_DESCRIPTOR mRscHandlerPpiList[] = {
+EFI_PEI_PPI_DESCRIPTOR mRscHandlerPpiList[] = {
{
EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
&gEfiPeiRscHandlerPpiGuid,
@@ -25,7 +25,7 @@ EFI_PEI_PPI_DESCRIPTOR mRscHandlerPpiList[] = {
}
};
-EFI_PEI_PPI_DESCRIPTOR mStatusCodePpiList[] = {
+EFI_PEI_PPI_DESCRIPTOR mStatusCodePpiList[] = {
{
EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
&gEfiPeiStatusCodePpiGuid,
@@ -82,7 +82,7 @@ CreateRscHandlerCallbackPacket (
EFI_STATUS
EFIAPI
Register (
- IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
+ IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
)
{
EFI_PEI_HOB_POINTERS Hob;
@@ -101,15 +101,16 @@ Register (
FreeEntryIndex = 0;
while (Hob.Raw != NULL) {
NumberOfEntries = GET_GUID_HOB_DATA (Hob);
- CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *) (NumberOfEntries + 1);
- if (FreePacket == NULL && *NumberOfEntries < 64) {
+ CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *)(NumberOfEntries + 1);
+ if ((FreePacket == NULL) && (*NumberOfEntries < 64)) {
//
// If current total number of handlers does not exceed 64, put new handler
// at the last of packet
//
- FreePacket = NumberOfEntries;
+ FreePacket = NumberOfEntries;
FreeEntryIndex = *NumberOfEntries;
}
+
for (Index = 0; Index < *NumberOfEntries; Index++) {
if (CallbackEntry[Index] == Callback) {
//
@@ -117,24 +118,26 @@ Register (
//
return EFI_ALREADY_STARTED;
}
- if (FreePacket == NULL && CallbackEntry[Index] == NULL) {
+
+ if ((FreePacket == NULL) && (CallbackEntry[Index] == NULL)) {
//
// If the total number of handlers in current packet is max value 64,
// search an entry with NULL pointer and fill new handler into this entry.
//
- FreePacket = NumberOfEntries;
+ FreePacket = NumberOfEntries;
FreeEntryIndex = Index;
}
}
+
Hob.Raw = GET_NEXT_HOB (Hob);
Hob.Raw = GetNextGuidHob (&gStatusCodeCallbackGuid, Hob.Raw);
}
if (FreePacket == NULL) {
- FreePacket = CreateRscHandlerCallbackPacket();
+ FreePacket = CreateRscHandlerCallbackPacket ();
}
- CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *) (FreePacket + 1);
+ CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *)(FreePacket + 1);
CallbackEntry[FreeEntryIndex] = Callback;
if (*FreePacket == FreeEntryIndex) {
@@ -164,22 +167,22 @@ Register (
EFI_STATUS
EFIAPI
Unregister (
- IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
+ IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
)
{
- EFI_PEI_HOB_POINTERS Hob;
- EFI_PEI_RSC_HANDLER_CALLBACK *CallbackEntry;
- UINTN *NumberOfEntries;
- UINTN Index;
+ EFI_PEI_HOB_POINTERS Hob;
+ EFI_PEI_RSC_HANDLER_CALLBACK *CallbackEntry;
+ UINTN *NumberOfEntries;
+ UINTN Index;
if (Callback == NULL) {
return EFI_INVALID_PARAMETER;
}
- Hob.Raw = GetFirstGuidHob (&gStatusCodeCallbackGuid);
+ Hob.Raw = GetFirstGuidHob (&gStatusCodeCallbackGuid);
while (Hob.Raw != NULL) {
NumberOfEntries = GET_GUID_HOB_DATA (Hob);
- CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *) (NumberOfEntries + 1);
+ CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *)(NumberOfEntries + 1);
for (Index = 0; Index < *NumberOfEntries; Index++) {
if (CallbackEntry[Index] == Callback) {
//
@@ -189,6 +192,7 @@ Unregister (
return EFI_SUCCESS;
}
}
+
Hob.Raw = GET_NEXT_HOB (Hob);
Hob.Raw = GetNextGuidHob (&gStatusCodeCallbackGuid, Hob.Raw);
}
@@ -225,35 +229,36 @@ Unregister (
EFI_STATUS
EFIAPI
ReportDispatcher (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId OPTIONAL,
- IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId OPTIONAL,
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- EFI_PEI_HOB_POINTERS Hob;
- EFI_PEI_RSC_HANDLER_CALLBACK *CallbackEntry;
- UINTN *NumberOfEntries;
- UINTN Index;
+ EFI_PEI_HOB_POINTERS Hob;
+ EFI_PEI_RSC_HANDLER_CALLBACK *CallbackEntry;
+ UINTN *NumberOfEntries;
+ UINTN Index;
- Hob.Raw = GetFirstGuidHob (&gStatusCodeCallbackGuid);
+ Hob.Raw = GetFirstGuidHob (&gStatusCodeCallbackGuid);
while (Hob.Raw != NULL) {
NumberOfEntries = GET_GUID_HOB_DATA (Hob);
- CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *) (NumberOfEntries + 1);
+ CallbackEntry = (EFI_PEI_RSC_HANDLER_CALLBACK *)(NumberOfEntries + 1);
for (Index = 0; Index < *NumberOfEntries; Index++) {
if (CallbackEntry[Index] != NULL) {
- CallbackEntry[Index](
- PeiServices,
- CodeType,
- Value,
- Instance,
- CallerId,
- Data
- );
+ CallbackEntry[Index](
+ PeiServices,
+ CodeType,
+ Value,
+ Instance,
+ CallerId,
+ Data
+ );
}
}
+
Hob.Raw = GET_NEXT_HOB (Hob);
Hob.Raw = GetNextGuidHob (&gStatusCodeCallbackGuid, Hob.Raw);
}
@@ -302,13 +307,14 @@ GenericStatusCodePeiEntry (
&gEfiPeiStatusCodePpiGuid,
0,
&OldDescriptor,
- (VOID **) &OldStatusCodePpi
+ (VOID **)&OldStatusCodePpi
);
if (!EFI_ERROR (Status)) {
Status = PeiServicesReInstallPpi (OldDescriptor, mStatusCodePpiList);
} else {
Status = PeiServicesInstallPpi (mStatusCodePpiList);
}
+
ASSERT_EFI_ERROR (Status);
return EFI_SUCCESS;
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.h b/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.h
index b06fa5d..ce09aa8 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.h
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.h
@@ -9,7 +9,6 @@
#ifndef __PEI_REPORT_STATUS_CODE_ROUTER_H__
#define __PEI_REPORT_STATUS_CODE_ROUTER_H__
-
#include <Ppi/ReportStatusCodeHandler.h>
#include <Ppi/StatusCode.h>
@@ -39,7 +38,7 @@
EFI_STATUS
EFIAPI
Register (
- IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
+ IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
);
/**
@@ -58,7 +57,7 @@ Register (
EFI_STATUS
EFIAPI
Unregister (
- IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
+ IN EFI_PEI_RSC_HANDLER_CALLBACK Callback
);
/**
@@ -90,14 +89,12 @@ Unregister (
EFI_STATUS
EFIAPI
ReportDispatcher (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId OPTIONAL,
- IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId OPTIONAL,
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
);
#endif
-
-
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.c b/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.c
index 0464d07..9a20785 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.c
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.c
@@ -10,24 +10,24 @@
#include "ReportStatusCodeRouterRuntimeDxe.h"
-EFI_HANDLE mHandle = NULL;
-LIST_ENTRY mCallbackListHead = INITIALIZE_LIST_HEAD_VARIABLE (mCallbackListHead);
-EFI_EVENT mVirtualAddressChangeEvent = NULL;
+EFI_HANDLE mHandle = NULL;
+LIST_ENTRY mCallbackListHead = INITIALIZE_LIST_HEAD_VARIABLE (mCallbackListHead);
+EFI_EVENT mVirtualAddressChangeEvent = NULL;
//
// Report operation nest status.
// If it is set, then the report operation has nested.
//
-UINT32 mStatusCodeNestStatus = 0;
+UINT32 mStatusCodeNestStatus = 0;
-EFI_STATUS_CODE_PROTOCOL mStatusCodeProtocol = {
+EFI_STATUS_CODE_PROTOCOL mStatusCodeProtocol = {
ReportDispatcher
};
EFI_RSC_HANDLER_PROTOCOL mRscHandlerProtocol = {
Register,
Unregister
- };
+};
/**
Event callback function to invoke status code handler in list.
@@ -40,15 +40,15 @@ EFI_RSC_HANDLER_PROTOCOL mRscHandlerProtocol = {
VOID
EFIAPI
RscHandlerNotification (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
EFI_PHYSICAL_ADDRESS Address;
RSC_DATA_ENTRY *RscData;
- CallbackEntry = (RSC_HANDLER_CALLBACK_ENTRY *) Context;
+ CallbackEntry = (RSC_HANDLER_CALLBACK_ENTRY *)Context;
//
// Traverse the status code data buffer to parse all
@@ -56,7 +56,7 @@ RscHandlerNotification (
//
Address = CallbackEntry->StatusCodeDataBuffer;
while (Address < CallbackEntry->EndPointer) {
- RscData = (RSC_DATA_ENTRY *) (UINTN) Address;
+ RscData = (RSC_DATA_ENTRY *)(UINTN)Address;
CallbackEntry->RscHandlerCallback (
RscData->Type,
RscData->Value,
@@ -103,13 +103,13 @@ RscHandlerNotification (
EFI_STATUS
EFIAPI
Register (
- IN EFI_RSC_HANDLER_CALLBACK Callback,
- IN EFI_TPL Tpl
+ IN EFI_RSC_HANDLER_CALLBACK Callback,
+ IN EFI_TPL Tpl
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
if (Callback == NULL) {
return EFI_INVALID_PARAMETER;
@@ -141,16 +141,16 @@ Register (
// buffer and event trigger.
//
if (Tpl != TPL_HIGH_LEVEL) {
- CallbackEntry->StatusCodeDataBuffer = (EFI_PHYSICAL_ADDRESS) (UINTN) AllocatePool (EFI_PAGE_SIZE);
+ CallbackEntry->StatusCodeDataBuffer = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocatePool (EFI_PAGE_SIZE);
CallbackEntry->BufferSize = EFI_PAGE_SIZE;
CallbackEntry->EndPointer = CallbackEntry->StatusCodeDataBuffer;
- Status = gBS->CreateEvent (
- EVT_NOTIFY_SIGNAL,
- Tpl,
- RscHandlerNotification,
- CallbackEntry,
- &CallbackEntry->Event
- );
+ Status = gBS->CreateEvent (
+ EVT_NOTIFY_SIGNAL,
+ Tpl,
+ RscHandlerNotification,
+ CallbackEntry,
+ &CallbackEntry->Event
+ );
ASSERT_EFI_ERROR (Status);
}
@@ -176,11 +176,11 @@ Register (
EFI_STATUS
EFIAPI
Unregister (
- IN EFI_RSC_HANDLER_CALLBACK Callback
+ IN EFI_RSC_HANDLER_CALLBACK Callback
)
{
- LIST_ENTRY *Link;
- RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
+ LIST_ENTRY *Link;
+ RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
if (Callback == NULL) {
return EFI_INVALID_PARAMETER;
@@ -193,9 +193,10 @@ Unregister (
// If the function is found in list, delete it and return.
//
if (CallbackEntry->Tpl != TPL_HIGH_LEVEL) {
- FreePool ((VOID *) (UINTN) CallbackEntry->StatusCodeDataBuffer);
+ FreePool ((VOID *)(UINTN)CallbackEntry->StatusCodeDataBuffer);
gBS->CloseEvent (CallbackEntry->Event);
}
+
RemoveEntryList (&CallbackEntry->Node);
FreePool (CallbackEntry);
return EFI_SUCCESS;
@@ -226,19 +227,19 @@ Unregister (
EFI_STATUS
EFIAPI
ReportDispatcher (
- IN EFI_STATUS_CODE_TYPE Type,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId OPTIONAL,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE Type,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId OPTIONAL,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- LIST_ENTRY *Link;
- RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
- RSC_DATA_ENTRY *RscData;
- EFI_STATUS Status;
- VOID *NewBuffer;
- EFI_PHYSICAL_ADDRESS FailSafeEndPointer;
+ LIST_ENTRY *Link;
+ RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
+ RSC_DATA_ENTRY *RscData;
+ EFI_STATUS Status;
+ VOID *NewBuffer;
+ EFI_PHYSICAL_ADDRESS FailSafeEndPointer;
//
// Use atom operation to avoid the reentant of report.
@@ -269,9 +270,9 @@ ReportDispatcher (
// If callback is registered with TPL lower than TPL_HIGH_LEVEL, event must be signaled at boot time to possibly wait for
// allowed TPL to report status code. Related data should also be stored in data buffer.
//
- FailSafeEndPointer = CallbackEntry->EndPointer;
+ FailSafeEndPointer = CallbackEntry->EndPointer;
CallbackEntry->EndPointer = ALIGN_VARIABLE (CallbackEntry->EndPointer);
- RscData = (RSC_DATA_ENTRY *) (UINTN) CallbackEntry->EndPointer;
+ RscData = (RSC_DATA_ENTRY *)(UINTN)CallbackEntry->EndPointer;
CallbackEntry->EndPointer += sizeof (RSC_DATA_ENTRY);
if (Data != NULL) {
CallbackEntry->EndPointer += (Data->Size + Data->HeaderSize - sizeof (EFI_STATUS_CODE_DATA));
@@ -285,14 +286,14 @@ ReportDispatcher (
NewBuffer = ReallocatePool (
CallbackEntry->BufferSize,
CallbackEntry->BufferSize * 2,
- (VOID *) (UINTN) CallbackEntry->StatusCodeDataBuffer
+ (VOID *)(UINTN)CallbackEntry->StatusCodeDataBuffer
);
if (NewBuffer != NULL) {
- FailSafeEndPointer = (EFI_PHYSICAL_ADDRESS) (UINTN) NewBuffer + (FailSafeEndPointer - CallbackEntry->StatusCodeDataBuffer);
- CallbackEntry->EndPointer = (EFI_PHYSICAL_ADDRESS) (UINTN) NewBuffer + (CallbackEntry->EndPointer - CallbackEntry->StatusCodeDataBuffer);
- RscData = (RSC_DATA_ENTRY *) (UINTN) ((UINTN) NewBuffer + ((UINTN) RscData - CallbackEntry->StatusCodeDataBuffer));
- CallbackEntry->StatusCodeDataBuffer = (EFI_PHYSICAL_ADDRESS) (UINTN) NewBuffer;
- CallbackEntry->BufferSize *= 2;
+ FailSafeEndPointer = (EFI_PHYSICAL_ADDRESS)(UINTN)NewBuffer + (FailSafeEndPointer - CallbackEntry->StatusCodeDataBuffer);
+ CallbackEntry->EndPointer = (EFI_PHYSICAL_ADDRESS)(UINTN)NewBuffer + (CallbackEntry->EndPointer - CallbackEntry->StatusCodeDataBuffer);
+ RscData = (RSC_DATA_ENTRY *)(UINTN)((UINTN)NewBuffer + ((UINTN)RscData - CallbackEntry->StatusCodeDataBuffer));
+ CallbackEntry->StatusCodeDataBuffer = (EFI_PHYSICAL_ADDRESS)(UINTN)NewBuffer;
+ CallbackEntry->BufferSize *= 2;
}
}
}
@@ -305,12 +306,13 @@ ReportDispatcher (
continue;
}
- RscData->Type = Type;
- RscData->Value = Value;
- RscData->Instance = Instance;
+ RscData->Type = Type;
+ RscData->Value = Value;
+ RscData->Instance = Instance;
if (CallerId != NULL) {
CopyGuid (&RscData->CallerId, CallerId);
}
+
if (Data != NULL) {
CopyMem (&RscData->Data, Data, Data->HeaderSize + Data->Size);
} else {
@@ -342,17 +344,17 @@ ReportDispatcher (
VOID
EFIAPI
VirtualAddressChangeCallBack (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
for (Link = GetFirstNode (&mCallbackListHead); !IsNull (&mCallbackListHead, Link); Link = GetNextNode (&mCallbackListHead, Link)) {
CallbackEntry = CR (Link, RSC_HANDLER_CALLBACK_ENTRY, Node, RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE);
- Status = EfiConvertFunctionPointer (0, (VOID **) &CallbackEntry->RscHandlerCallback);
+ Status = EfiConvertFunctionPointer (0, (VOID **)&CallbackEntry->RscHandlerCallback);
ASSERT_EFI_ERROR (Status);
}
@@ -379,11 +381,11 @@ VirtualAddressChangeCallBack (
EFI_STATUS
EFIAPI
GenericStatusCodeRuntimeDxeEntry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = gBS->InstallMultipleProtocolInterfaces (
&mHandle,
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.h b/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.h
index d975920..2e08ac8 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.h
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.h
@@ -9,7 +9,6 @@
#ifndef __REPORT_STATUS_CODE_ROUTER_RUNTIME_DXE_H__
#define __REPORT_STATUS_CODE_ROUTER_RUNTIME_DXE_H__
-
#include <Protocol/ReportStatusCodeHandler.h>
#include <Protocol/StatusCode.h>
@@ -29,23 +28,23 @@
#define RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE SIGNATURE_32 ('r', 'h', 'c', 'e')
typedef struct {
- UINTN Signature;
- EFI_RSC_HANDLER_CALLBACK RscHandlerCallback;
- EFI_TPL Tpl;
- EFI_EVENT Event;
- EFI_PHYSICAL_ADDRESS StatusCodeDataBuffer;
- UINTN BufferSize;
- EFI_PHYSICAL_ADDRESS EndPointer;
- LIST_ENTRY Node;
+ UINTN Signature;
+ EFI_RSC_HANDLER_CALLBACK RscHandlerCallback;
+ EFI_TPL Tpl;
+ EFI_EVENT Event;
+ EFI_PHYSICAL_ADDRESS StatusCodeDataBuffer;
+ UINTN BufferSize;
+ EFI_PHYSICAL_ADDRESS EndPointer;
+ LIST_ENTRY Node;
} RSC_HANDLER_CALLBACK_ENTRY;
typedef struct {
- EFI_STATUS_CODE_TYPE Type;
- EFI_STATUS_CODE_VALUE Value;
- UINT32 Instance;
- UINT32 Reserved;
- EFI_GUID CallerId;
- EFI_STATUS_CODE_DATA Data;
+ EFI_STATUS_CODE_TYPE Type;
+ EFI_STATUS_CODE_VALUE Value;
+ UINT32 Instance;
+ UINT32 Reserved;
+ EFI_GUID CallerId;
+ EFI_STATUS_CODE_DATA Data;
} RSC_DATA_ENTRY;
/**
@@ -79,8 +78,8 @@ typedef struct {
EFI_STATUS
EFIAPI
Register (
- IN EFI_RSC_HANDLER_CALLBACK Callback,
- IN EFI_TPL Tpl
+ IN EFI_RSC_HANDLER_CALLBACK Callback,
+ IN EFI_TPL Tpl
);
/**
@@ -100,7 +99,7 @@ Register (
EFI_STATUS
EFIAPI
Unregister (
- IN EFI_RSC_HANDLER_CALLBACK Callback
+ IN EFI_RSC_HANDLER_CALLBACK Callback
);
/**
@@ -124,13 +123,11 @@ Unregister (
EFI_STATUS
EFIAPI
ReportDispatcher (
- IN EFI_STATUS_CODE_TYPE Type,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId OPTIONAL,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE Type,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId OPTIONAL,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
#endif
-
-
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.c b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.c
index c4843a7..286378e 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.c
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.c
@@ -9,22 +9,22 @@
#include "ReportStatusCodeRouterCommon.h"
-LIST_ENTRY mCallbackListHead = INITIALIZE_LIST_HEAD_VARIABLE (mCallbackListHead);
+LIST_ENTRY mCallbackListHead = INITIALIZE_LIST_HEAD_VARIABLE (mCallbackListHead);
//
// Report operation nest status.
// If it is set, then the report operation has nested.
//
-UINT32 mStatusCodeNestStatus = 0;
+UINT32 mStatusCodeNestStatus = 0;
-EFI_MM_STATUS_CODE_PROTOCOL mSmmStatusCodeProtocol = {
+EFI_MM_STATUS_CODE_PROTOCOL mSmmStatusCodeProtocol = {
ReportDispatcher
};
-EFI_MM_RSC_HANDLER_PROTOCOL mSmmRscHandlerProtocol = {
+EFI_MM_RSC_HANDLER_PROTOCOL mSmmRscHandlerProtocol = {
Register,
Unregister
- };
+};
/**
Register the callback function for ReportStatusCode() notification.
@@ -45,10 +45,10 @@ EFI_MM_RSC_HANDLER_PROTOCOL mSmmRscHandlerProtocol = {
EFI_STATUS
EFIAPI
Register (
- IN EFI_MM_RSC_HANDLER_CALLBACK Callback
+ IN EFI_MM_RSC_HANDLER_CALLBACK Callback
)
{
- LIST_ENTRY *Link;
+ LIST_ENTRY *Link;
MM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
if (Callback == NULL) {
@@ -95,8 +95,8 @@ Unregister (
IN EFI_MM_RSC_HANDLER_CALLBACK Callback
)
{
- LIST_ENTRY *Link;
- MM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
+ LIST_ENTRY *Link;
+ MM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
if (Callback == NULL) {
return EFI_INVALID_PARAMETER;
@@ -117,7 +117,6 @@ Unregister (
return EFI_NOT_FOUND;
}
-
/**
Provides an interface that a software module can call to report a status code.
@@ -140,16 +139,16 @@ Unregister (
EFI_STATUS
EFIAPI
ReportDispatcher (
- IN CONST EFI_MM_STATUS_CODE_PROTOCOL *This,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_MM_STATUS_CODE_PROTOCOL *This,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- LIST_ENTRY *Link;
- MM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
+ LIST_ENTRY *Link;
+ MM_RSC_HANDLER_CALLBACK_ENTRY *CallbackEntry;
//
// Use atom operation to avoid the reentant of report.
@@ -169,10 +168,9 @@ ReportDispatcher (
CodeType,
Value,
Instance,
- (EFI_GUID*)CallerId,
+ (EFI_GUID *)CallerId,
Data
);
-
}
//
@@ -197,10 +195,10 @@ GenericStatusCodeCommonEntry (
VOID
)
{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
- Handle = NULL;
+ Handle = NULL;
//
// Install SmmRscHandler Protocol
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.h b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.h
index 4f4d055..51b9824 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.h
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterCommon.h
@@ -22,9 +22,9 @@
#define MM_RSC_HANDLER_CALLBACK_ENTRY_SIGNATURE SIGNATURE_32 ('s', 'h', 'c', 'e')
typedef struct {
- UINTN Signature;
- EFI_MM_RSC_HANDLER_CALLBACK RscHandlerCallback;
- LIST_ENTRY Node;
+ UINTN Signature;
+ EFI_MM_RSC_HANDLER_CALLBACK RscHandlerCallback;
+ LIST_ENTRY Node;
} MM_RSC_HANDLER_CALLBACK_ENTRY;
/**
@@ -46,7 +46,7 @@ typedef struct {
EFI_STATUS
EFIAPI
Register (
- IN EFI_MM_RSC_HANDLER_CALLBACK Callback
+ IN EFI_MM_RSC_HANDLER_CALLBACK Callback
);
/**
@@ -90,12 +90,12 @@ Unregister (
EFI_STATUS
EFIAPI
ReportDispatcher (
- IN CONST EFI_MM_STATUS_CODE_PROTOCOL *This,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_MM_STATUS_CODE_PROTOCOL *This,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
/**
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c
index bd1519f..0ca8c31 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c
@@ -25,8 +25,8 @@
EFI_STATUS
EFIAPI
GenericStatusCodeStandaloneMmEntry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_MM_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_MM_SYSTEM_TABLE *SystemTable
)
{
return GenericStatusCodeCommonEntry ();
diff --git a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c
index 360a0ee..98dce68 100644
--- a/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c
+++ b/MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c
@@ -25,8 +25,8 @@
EFI_STATUS
EFIAPI
GenericStatusCodeTraditionalEntry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
return GenericStatusCodeCommonEntry ();
diff --git a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c
index ce90c86..6e7693f 100644
--- a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c
+++ b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c
@@ -9,21 +9,21 @@
#include "ResetSystem.h"
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 *mResetTypeStr[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 *mResetTypeStr[] = {
L"Cold", L"Warm", L"Shutdown", L"PlatformSpecific"
};
-EFI_PEI_RESET2_PPI mPpiReset2 = {
+EFI_PEI_RESET2_PPI mPpiReset2 = {
ResetSystem2
};
-EFI_GUID *mProcessingOrder[] = {
+EFI_GUID *mProcessingOrder[] = {
&gEdkiiPlatformSpecificResetFilterPpiGuid,
&gEdkiiPlatformSpecificResetNotificationPpiGuid,
&gEdkiiPlatformSpecificResetHandlerPpiGuid
};
-RESET_FILTER_INSTANCE mResetFilter = {
+RESET_FILTER_INSTANCE mResetFilter = {
{
RegisterResetNotify,
UnregisterResetNotify
@@ -31,7 +31,7 @@ RESET_FILTER_INSTANCE mResetFilter = {
&gEdkiiPlatformSpecificResetFilterPpiGuid
};
-RESET_FILTER_INSTANCE mResetNotification = {
+RESET_FILTER_INSTANCE mResetNotification = {
{
RegisterResetNotify,
UnregisterResetNotify
@@ -39,7 +39,7 @@ RESET_FILTER_INSTANCE mResetNotification = {
&gEdkiiPlatformSpecificResetNotificationPpiGuid
};
-RESET_FILTER_INSTANCE mResetHandler = {
+RESET_FILTER_INSTANCE mResetHandler = {
{
RegisterResetNotify,
UnregisterResetNotify
@@ -47,7 +47,7 @@ RESET_FILTER_INSTANCE mResetHandler = {
&gEdkiiPlatformSpecificResetHandlerPpiGuid
};
-EFI_PEI_PPI_DESCRIPTOR mPpiListReset[] = {
+EFI_PEI_PPI_DESCRIPTOR mPpiListReset[] = {
{
EFI_PEI_PPI_DESCRIPTOR_PPI,
&gEfiPeiReset2PpiGuid,
@@ -94,24 +94,25 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListReset[] = {
EFI_STATUS
EFIAPI
RegisterResetNotify (
- IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This,
- IN EFI_RESET_SYSTEM ResetFunction
+ IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This,
+ IN EFI_RESET_SYSTEM ResetFunction
)
{
- RESET_FILTER_INSTANCE *ResetFilter;
- RESET_FILTER_LIST *List;
- VOID *Hob;
- UINTN Index;
+ RESET_FILTER_INSTANCE *ResetFilter;
+ RESET_FILTER_LIST *List;
+ VOID *Hob;
+ UINTN Index;
if (ResetFunction == NULL) {
return EFI_INVALID_PARAMETER;
}
- ResetFilter = (RESET_FILTER_INSTANCE *) This;
- ASSERT (CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetFilterPpiGuid) ||
- CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetNotificationPpiGuid) ||
- CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetHandlerPpiGuid)
- );
+ ResetFilter = (RESET_FILTER_INSTANCE *)This;
+ ASSERT (
+ CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetFilterPpiGuid) ||
+ CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetNotificationPpiGuid) ||
+ CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetHandlerPpiGuid)
+ );
Hob = GetFirstGuidHob (ResetFilter->Guid);
if (Hob == NULL) {
@@ -125,6 +126,7 @@ RegisterResetNotify (
if (List == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
List->Signature = RESET_FILTER_LIST_SIGNATURE;
List->Count = PcdGet32 (PcdMaximumPeiResetNotifies);
ZeroMem (List->ResetFilters, sizeof (EFI_RESET_SYSTEM) * List->Count);
@@ -141,6 +143,7 @@ RegisterResetNotify (
break;
}
}
+
if (Index != List->Count) {
return EFI_ALREADY_STARTED;
}
@@ -157,6 +160,7 @@ RegisterResetNotify (
if (Index == List->Count) {
return EFI_OUT_OF_RESOURCES;
}
+
List->ResetFilters[Index] = ResetFunction;
return EFI_SUCCESS;
}
@@ -180,25 +184,25 @@ RegisterResetNotify (
EFI_STATUS
EFIAPI
UnregisterResetNotify (
- IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This,
- IN EFI_RESET_SYSTEM ResetFunction
+ IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This,
+ IN EFI_RESET_SYSTEM ResetFunction
)
{
-
- RESET_FILTER_INSTANCE *ResetFilter;
- RESET_FILTER_LIST *List;
- VOID *Hob;
- UINTN Index;
+ RESET_FILTER_INSTANCE *ResetFilter;
+ RESET_FILTER_LIST *List;
+ VOID *Hob;
+ UINTN Index;
if (ResetFunction == NULL) {
return EFI_INVALID_PARAMETER;
}
ResetFilter = (RESET_FILTER_INSTANCE *)This;
- ASSERT (CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetFilterPpiGuid) ||
+ ASSERT (
+ CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetFilterPpiGuid) ||
CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetNotificationPpiGuid) ||
CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetHandlerPpiGuid)
- );
+ );
Hob = GetFirstGuidHob (ResetFilter->Guid);
if (Hob == NULL) {
@@ -221,7 +225,6 @@ UnregisterResetNotify (
return EFI_SUCCESS;
}
-
/**
The PEIM's entry point.
@@ -273,29 +276,30 @@ InitializeResetSystem (
VOID
EFIAPI
ResetSystem2 (
- IN EFI_RESET_TYPE ResetType,
- IN EFI_STATUS ResetStatus,
- IN UINTN DataSize,
- IN VOID *ResetData OPTIONAL
+ IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL
)
{
- VOID *Hob;
- UINTN Index;
- RESET_FILTER_LIST *List;
- UINTN OrderIndex;
- UINT8 RecursionDepth;
- UINT8 *RecursionDepthPointer;
+ VOID *Hob;
+ UINTN Index;
+ RESET_FILTER_LIST *List;
+ UINTN OrderIndex;
+ UINT8 RecursionDepth;
+ UINT8 *RecursionDepthPointer;
//
// The recursion depth is stored in GUIDed HOB using gEfiCallerIdGuid.
//
Hob = GetFirstGuidHob (&gEfiCallerIdGuid);
if (Hob == NULL) {
- RecursionDepth = 0;
+ RecursionDepth = 0;
RecursionDepthPointer = BuildGuidDataHob (&gEfiCallerIdGuid, &RecursionDepth, sizeof (RecursionDepth));
} else {
RecursionDepthPointer = (UINT8 *)GET_GUID_HOB_DATA (Hob);
}
+
//
// Only do REPORT_STATUS_CODE() on first call to ResetSystem()
//
@@ -324,7 +328,7 @@ ResetSystem2 (
for (Index = 0; Index < List->Count; Index++) {
if (List->ResetFilters[Index] != NULL) {
- List->ResetFilters[Index] (ResetType, ResetStatus, DataSize, ResetData);
+ List->ResetFilters[Index](ResetType, ResetStatus, DataSize, ResetData);
}
}
}
@@ -335,24 +339,24 @@ ResetSystem2 (
}
switch (ResetType) {
- case EfiResetWarm:
- ResetWarm ();
- break;
+ case EfiResetWarm:
+ ResetWarm ();
+ break;
- case EfiResetCold:
- ResetCold ();
- break;
+ case EfiResetCold:
+ ResetCold ();
+ break;
- case EfiResetShutdown:
- ResetShutdown ();
- return ;
+ case EfiResetShutdown:
+ ResetShutdown ();
+ return;
- case EfiResetPlatformSpecific:
- ResetPlatformSpecific (DataSize, ResetData);
- return;
+ case EfiResetPlatformSpecific:
+ ResetPlatformSpecific (DataSize, ResetData);
+ return;
- default:
- return ;
+ default:
+ return;
}
//
diff --git a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h
index 4d49a30..a04e484 100644
--- a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h
+++ b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h
@@ -9,7 +9,6 @@
#ifndef _RESET_SYSTEM2_H_
#define _RESET_SYSTEM2_H_
-
#include <Uefi.h>
#include <PiPei.h>
@@ -26,26 +25,24 @@
#include <Library/ResetSystemLib.h>
#include <Library/ReportStatusCodeLib.h>
-
//
// The maximum recursion depth to ResetSystem() by reset notification handlers
//
-#define MAX_RESET_NOTIFY_DEPTH 10
+#define MAX_RESET_NOTIFY_DEPTH 10
//
// Data to put in GUIDed HOB
//
typedef struct {
- UINT32 Signature;
- UINT32 Count;
- EFI_RESET_SYSTEM ResetFilters[0]; // ResetFilters[PcdGet32 (PcdMaximumResetNotifies)]
+ UINT32 Signature;
+ UINT32 Count;
+ EFI_RESET_SYSTEM ResetFilters[0]; // ResetFilters[PcdGet32 (PcdMaximumResetNotifies)]
} RESET_FILTER_LIST;
-#define RESET_FILTER_LIST_SIGNATURE SIGNATURE_32('r', 's', 't', 'l')
-
+#define RESET_FILTER_LIST_SIGNATURE SIGNATURE_32('r', 's', 't', 'l')
typedef struct {
- EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI ResetFilter;
- EFI_GUID *Guid;
+ EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI ResetFilter;
+ EFI_GUID *Guid;
} RESET_FILTER_INSTANCE;
/**
@@ -67,11 +64,12 @@ typedef struct {
VOID
EFIAPI
ResetSystem2 (
- IN EFI_RESET_TYPE ResetType,
- IN EFI_STATUS ResetStatus,
- IN UINTN DataSize,
- IN VOID *ResetData OPTIONAL
+ IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL
);
+
/**
Register a notification function to be called when ResetSystem() is called.
@@ -93,8 +91,8 @@ ResetSystem2 (
EFI_STATUS
EFIAPI
RegisterResetNotify (
- IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This,
- IN EFI_RESET_SYSTEM ResetFunction
+ IN EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI *This,
+ IN EFI_RESET_SYSTEM ResetFunction
);
/**
@@ -115,7 +113,8 @@ RegisterResetNotify (
EFI_STATUS
EFIAPI
UnregisterResetNotify (
- IN EFI_RESET_NOTIFICATION_PROTOCOL *This,
- IN EFI_RESET_SYSTEM ResetFunction
+ IN EFI_RESET_NOTIFICATION_PROTOCOL *This,
+ IN EFI_RESET_SYSTEM ResetFunction
);
+
#endif
diff --git a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
index 77aedcb..42f1b1d 100644
--- a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
+++ b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.c
@@ -9,7 +9,7 @@
#include "ResetSystem.h"
-GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 *mResetTypeStr[] = {
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 *mResetTypeStr[] = {
L"Cold", L"Warm", L"Shutdown", L"PlatformSpecific"
};
@@ -42,13 +42,13 @@ UINTN mResetNotifyDepth = 0;
EFI_STATUS
EFIAPI
RegisterResetNotify (
- IN EFI_RESET_NOTIFICATION_PROTOCOL *This,
- IN EFI_RESET_SYSTEM ResetFunction
+ IN EFI_RESET_NOTIFICATION_PROTOCOL *This,
+ IN EFI_RESET_SYSTEM ResetFunction
)
{
- RESET_NOTIFICATION_INSTANCE *Instance;
- LIST_ENTRY *Link;
- RESET_NOTIFY_ENTRY *Entry;
+ RESET_NOTIFICATION_INSTANCE *Instance;
+ LIST_ENTRY *Link;
+ RESET_NOTIFY_ENTRY *Entry;
if (ResetFunction == NULL) {
return EFI_INVALID_PARAMETER;
@@ -57,9 +57,10 @@ RegisterResetNotify (
Instance = RESET_NOTIFICATION_INSTANCE_FROM_THIS (This);
for ( Link = GetFirstNode (&Instance->ResetNotifies)
- ; !IsNull (&Instance->ResetNotifies, Link)
- ; Link = GetNextNode (&Instance->ResetNotifies, Link)
- ) {
+ ; !IsNull (&Instance->ResetNotifies, Link)
+ ; Link = GetNextNode (&Instance->ResetNotifies, Link)
+ )
+ {
Entry = RESET_NOTIFY_ENTRY_FROM_LINK (Link);
if (Entry->ResetNotify == ResetFunction) {
return EFI_ALREADY_STARTED;
@@ -71,6 +72,7 @@ RegisterResetNotify (
if (Entry == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
Entry->Signature = RESET_NOTIFY_ENTRY_SIGNATURE;
Entry->ResetNotify = ResetFunction;
InsertTailList (&Instance->ResetNotifies, &Entry->Link);
@@ -95,13 +97,13 @@ RegisterResetNotify (
EFI_STATUS
EFIAPI
UnregisterResetNotify (
- IN EFI_RESET_NOTIFICATION_PROTOCOL *This,
- IN EFI_RESET_SYSTEM ResetFunction
+ IN EFI_RESET_NOTIFICATION_PROTOCOL *This,
+ IN EFI_RESET_SYSTEM ResetFunction
)
{
- RESET_NOTIFICATION_INSTANCE *Instance;
- LIST_ENTRY *Link;
- RESET_NOTIFY_ENTRY *Entry;
+ RESET_NOTIFICATION_INSTANCE *Instance;
+ LIST_ENTRY *Link;
+ RESET_NOTIFY_ENTRY *Entry;
if (ResetFunction == NULL) {
return EFI_INVALID_PARAMETER;
@@ -110,9 +112,10 @@ UnregisterResetNotify (
Instance = RESET_NOTIFICATION_INSTANCE_FROM_THIS (This);
for ( Link = GetFirstNode (&Instance->ResetNotifies)
- ; !IsNull (&Instance->ResetNotifies, Link)
- ; Link = GetNextNode (&Instance->ResetNotifies, Link)
- ) {
+ ; !IsNull (&Instance->ResetNotifies, Link)
+ ; Link = GetNextNode (&Instance->ResetNotifies, Link)
+ )
+ {
Entry = RESET_NOTIFY_ENTRY_FROM_LINK (Link);
if (Entry->ResetNotify == ResetFunction) {
RemoveEntryList (&Entry->Link);
@@ -124,7 +127,7 @@ UnregisterResetNotify (
return EFI_INVALID_PARAMETER;
}
-RESET_NOTIFICATION_INSTANCE mResetNotification = {
+RESET_NOTIFICATION_INSTANCE mResetNotification = {
RESET_NOTIFICATION_INSTANCE_SIGNATURE,
{
RegisterResetNotify,
@@ -133,7 +136,7 @@ RESET_NOTIFICATION_INSTANCE mResetNotification = {
INITIALIZE_LIST_HEAD_VARIABLE (mResetNotification.ResetNotifies)
};
-RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetFilter = {
+RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetFilter = {
RESET_NOTIFICATION_INSTANCE_SIGNATURE,
{
RegisterResetNotify,
@@ -142,7 +145,7 @@ RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetFilter = {
INITIALIZE_LIST_HEAD_VARIABLE (mPlatformSpecificResetFilter.ResetNotifies)
};
-RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetHandler = {
+RESET_NOTIFICATION_INSTANCE mPlatformSpecificResetHandler = {
RESET_NOTIFICATION_INSTANCE_SIGNATURE,
{
RegisterResetNotify,
@@ -189,10 +192,14 @@ InitializeResetSystem (
Handle = NULL;
Status = gBS->InstallMultipleProtocolInterfaces (
&Handle,
- &gEfiResetArchProtocolGuid, NULL,
- &gEfiResetNotificationProtocolGuid, &mResetNotification.ResetNotification,
- &gEdkiiPlatformSpecificResetFilterProtocolGuid, &mPlatformSpecificResetFilter.ResetNotification,
- &gEdkiiPlatformSpecificResetHandlerProtocolGuid, &mPlatformSpecificResetHandler.ResetNotification,
+ &gEfiResetArchProtocolGuid,
+ NULL,
+ &gEfiResetNotificationProtocolGuid,
+ &mResetNotification.ResetNotification,
+ &gEdkiiPlatformSpecificResetFilterProtocolGuid,
+ &mPlatformSpecificResetFilter.ResetNotification,
+ &gEdkiiPlatformSpecificResetHandlerProtocolGuid,
+ &mPlatformSpecificResetHandler.ResetNotification,
NULL
);
ASSERT_EFI_ERROR (Status);
@@ -218,10 +225,10 @@ InitializeResetSystem (
VOID
EFIAPI
RuntimeServiceResetSystem (
- IN EFI_RESET_TYPE ResetType,
- IN EFI_STATUS ResetStatus,
- IN UINTN DataSize,
- IN VOID *ResetData OPTIONAL
+ IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL
)
{
LIST_ENTRY *Link;
@@ -239,8 +246,10 @@ RuntimeServiceResetSystem (
mResetNotifyDepth++;
DEBUG ((
- DEBUG_INFO, "DXE ResetSystem2: ResetType %s, Call Depth = %d.\n",
- mResetTypeStr[ResetType], mResetNotifyDepth
+ DEBUG_INFO,
+ "DXE ResetSystem2: ResetType %s, Call Depth = %d.\n",
+ mResetTypeStr[ResetType],
+ mResetNotifyDepth
));
if (mResetNotifyDepth <= MAX_RESET_NOTIFY_DEPTH) {
@@ -250,31 +259,36 @@ RuntimeServiceResetSystem (
// EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PROTOCOL.
//
for ( Link = GetFirstNode (&mPlatformSpecificResetFilter.ResetNotifies)
- ; !IsNull (&mPlatformSpecificResetFilter.ResetNotifies, Link)
- ; Link = GetNextNode (&mPlatformSpecificResetFilter.ResetNotifies, Link)
- ) {
+ ; !IsNull (&mPlatformSpecificResetFilter.ResetNotifies, Link)
+ ; Link = GetNextNode (&mPlatformSpecificResetFilter.ResetNotifies, Link)
+ )
+ {
Entry = RESET_NOTIFY_ENTRY_FROM_LINK (Link);
Entry->ResetNotify (ResetType, ResetStatus, DataSize, ResetData);
}
+
//
// Call reset notification functions registered through the
// EFI_RESET_NOTIFICATION_PROTOCOL.
//
for ( Link = GetFirstNode (&mResetNotification.ResetNotifies)
- ; !IsNull (&mResetNotification.ResetNotifies, Link)
- ; Link = GetNextNode (&mResetNotification.ResetNotifies, Link)
- ) {
+ ; !IsNull (&mResetNotification.ResetNotifies, Link)
+ ; Link = GetNextNode (&mResetNotification.ResetNotifies, Link)
+ )
+ {
Entry = RESET_NOTIFY_ENTRY_FROM_LINK (Link);
Entry->ResetNotify (ResetType, ResetStatus, DataSize, ResetData);
}
+
//
// call reset notification functions registered through the
// EDKII_PLATFORM_SPECIFIC_RESET_HANDLER_PROTOCOL.
//
for ( Link = GetFirstNode (&mPlatformSpecificResetHandler.ResetNotifies)
- ; !IsNull (&mPlatformSpecificResetHandler.ResetNotifies, Link)
- ; Link = GetNextNode (&mPlatformSpecificResetHandler.ResetNotifies, Link)
- ) {
+ ; !IsNull (&mPlatformSpecificResetHandler.ResetNotifies, Link)
+ ; Link = GetNextNode (&mPlatformSpecificResetHandler.ResetNotifies, Link)
+ )
+ {
Entry = RESET_NOTIFY_ENTRY_FROM_LINK (Link);
Entry->ResetNotify (ResetType, ResetStatus, DataSize, ResetData);
}
@@ -285,25 +299,25 @@ RuntimeServiceResetSystem (
}
switch (ResetType) {
- case EfiResetWarm:
+ case EfiResetWarm:
- ResetWarm ();
- break;
+ ResetWarm ();
+ break;
- case EfiResetCold:
- ResetCold ();
- break;
+ case EfiResetCold:
+ ResetCold ();
+ break;
- case EfiResetShutdown:
- ResetShutdown ();
- return ;
+ case EfiResetShutdown:
+ ResetShutdown ();
+ return;
- case EfiResetPlatformSpecific:
- ResetPlatformSpecific (DataSize, ResetData);
- return;
+ case EfiResetPlatformSpecific:
+ ResetPlatformSpecific (DataSize, ResetData);
+ return;
- default:
- return ;
+ default:
+ return;
}
//
diff --git a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.h b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.h
index 87d9c57..238d8a3 100644
--- a/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.h
+++ b/MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystem.h
@@ -9,7 +9,6 @@
#ifndef _RESET_SYSTEM_H_
#define _RESET_SYSTEM_H_
-
#include <PiDxe.h>
#include <Protocol/Reset.h>
@@ -32,22 +31,22 @@
//
// The maximum recurstion depth to ResetSystem() by reset notification handlers
//
-#define MAX_RESET_NOTIFY_DEPTH 10
+#define MAX_RESET_NOTIFY_DEPTH 10
typedef struct {
- UINT32 Signature;
- LIST_ENTRY Link;
- EFI_RESET_SYSTEM ResetNotify;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ EFI_RESET_SYSTEM ResetNotify;
} RESET_NOTIFY_ENTRY;
-#define RESET_NOTIFY_ENTRY_SIGNATURE SIGNATURE_32('r', 's', 't', 'n')
-#define RESET_NOTIFY_ENTRY_FROM_LINK(a) CR (a, RESET_NOTIFY_ENTRY, Link, RESET_NOTIFY_ENTRY_SIGNATURE)
+#define RESET_NOTIFY_ENTRY_SIGNATURE SIGNATURE_32('r', 's', 't', 'n')
+#define RESET_NOTIFY_ENTRY_FROM_LINK(a) CR (a, RESET_NOTIFY_ENTRY, Link, RESET_NOTIFY_ENTRY_SIGNATURE)
typedef struct {
- UINT32 Signature;
- EFI_RESET_NOTIFICATION_PROTOCOL ResetNotification;
- LIST_ENTRY ResetNotifies;
+ UINT32 Signature;
+ EFI_RESET_NOTIFICATION_PROTOCOL ResetNotification;
+ LIST_ENTRY ResetNotifies;
} RESET_NOTIFICATION_INSTANCE;
-#define RESET_NOTIFICATION_INSTANCE_SIGNATURE SIGNATURE_32('r', 's', 't', 'i')
+#define RESET_NOTIFICATION_INSTANCE_SIGNATURE SIGNATURE_32('r', 's', 't', 'i')
#define RESET_NOTIFICATION_INSTANCE_FROM_THIS(a) \
CR (a, RESET_NOTIFICATION_INSTANCE, ResetNotification, RESET_NOTIFICATION_INSTANCE_SIGNATURE)
@@ -89,10 +88,10 @@ InitializeResetSystem (
VOID
EFIAPI
RuntimeServiceResetSystem (
- IN EFI_RESET_TYPE ResetType,
- IN EFI_STATUS ResetStatus,
- IN UINTN DataSize,
- IN VOID *ResetData OPTIONAL
+ IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL
);
#endif
diff --git a/MdeModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.c b/MdeModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.c
index 8cf4641..c4957de 100644
--- a/MdeModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.c
+++ b/MdeModulePkg/Universal/SectionExtractionDxe/SectionExtractionDxe.c
@@ -100,22 +100,22 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
CustomGuidedSectionExtract (
- IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
- IN CONST VOID *InputSection,
- OUT VOID **OutputBuffer,
- OUT UINTN *OutputSize,
- OUT UINT32 *AuthenticationStatus
+ IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
+ IN CONST VOID *InputSection,
+ OUT VOID **OutputBuffer,
+ OUT UINTN *OutputSize,
+ OUT UINT32 *AuthenticationStatus
);
//
// Module global for the Section Extraction Protocol handle
//
-EFI_HANDLE mSectionExtractionHandle = NULL;
+EFI_HANDLE mSectionExtractionHandle = NULL;
//
// Module global for the Section Extraction Protocol instance
//
-EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL mCustomGuidedSectionExtractionProtocol = {
+EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL mCustomGuidedSectionExtractionProtocol = {
CustomGuidedSectionExtract
};
@@ -205,19 +205,19 @@ EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL mCustomGuidedSectionExtractionProtocol =
EFI_STATUS
EFIAPI
CustomGuidedSectionExtract (
- IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
- IN CONST VOID *InputSection,
- OUT VOID **OutputBuffer,
- OUT UINTN *OutputSize,
- OUT UINT32 *AuthenticationStatus
+ IN CONST EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL *This,
+ IN CONST VOID *InputSection,
+ OUT VOID **OutputBuffer,
+ OUT UINTN *OutputSize,
+ OUT UINT32 *AuthenticationStatus
)
{
- EFI_STATUS Status;
- VOID *ScratchBuffer;
- VOID *AllocatedOutputBuffer;
- UINT32 OutputBufferSize;
- UINT32 ScratchBufferSize;
- UINT16 SectionAttribute;
+ EFI_STATUS Status;
+ VOID *ScratchBuffer;
+ VOID *AllocatedOutputBuffer;
+ UINT32 OutputBufferSize;
+ UINT32 ScratchBufferSize;
+ UINT16 SectionAttribute;
//
// Init local variable
@@ -259,6 +259,7 @@ CustomGuidedSectionExtract (
FreePool (ScratchBuffer);
return EFI_OUT_OF_RESOURCES;
}
+
*OutputBuffer = AllocatedOutputBuffer;
}
@@ -278,9 +279,11 @@ CustomGuidedSectionExtract (
if (AllocatedOutputBuffer != NULL) {
FreePool (AllocatedOutputBuffer);
}
+
if (ScratchBuffer != NULL) {
FreePool (ScratchBuffer);
}
+
DEBUG ((DEBUG_ERROR, "Extract guided section Failed - %r\n", Status));
return Status;
}
@@ -297,7 +300,7 @@ CustomGuidedSectionExtract (
//
// Set real size of output buffer.
//
- *OutputSize = (UINTN) OutputBufferSize;
+ *OutputSize = (UINTN)OutputBufferSize;
//
// Free unused scratch buffer.
@@ -344,7 +347,8 @@ SectionExtractionDxeEntry (
while (ExtractHandlerNumber-- > 0) {
Status = gBS->InstallMultipleProtocolInterfaces (
&mSectionExtractionHandle,
- &ExtractHandlerGuidTable [ExtractHandlerNumber], &mCustomGuidedSectionExtractionProtocol,
+ &ExtractHandlerGuidTable[ExtractHandlerNumber],
+ &mCustomGuidedSectionExtractionProtocol,
NULL
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.c b/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.c
index 8b0c3fd..8a11643 100644
--- a/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.c
+++ b/MdeModulePkg/Universal/SectionExtractionPei/SectionExtractionPei.c
@@ -70,17 +70,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
CustomGuidedSectionExtract (
- IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,
- IN CONST VOID *InputSection,
- OUT VOID **OutputBuffer,
- OUT UINTN *OutputSize,
- OUT UINT32 *AuthenticationStatus
+ IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,
+ IN CONST VOID *InputSection,
+ OUT VOID **OutputBuffer,
+ OUT UINTN *OutputSize,
+ OUT UINT32 *AuthenticationStatus
);
//
// Module global for the Section Extraction PPI instance
//
-CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI mCustomGuidedSectionExtractionPpi = {
+CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI mCustomGuidedSectionExtractionPpi = {
CustomGuidedSectionExtract
};
@@ -141,18 +141,18 @@ CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI mCustomGuidedSectionExtractionPpi =
EFI_STATUS
EFIAPI
CustomGuidedSectionExtract (
- IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,
- IN CONST VOID *InputSection,
- OUT VOID **OutputBuffer,
- OUT UINTN *OutputSize,
- OUT UINT32 *AuthenticationStatus
+ IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This,
+ IN CONST VOID *InputSection,
+ OUT VOID **OutputBuffer,
+ OUT UINTN *OutputSize,
+ OUT UINT32 *AuthenticationStatus
)
{
- EFI_STATUS Status;
- UINT8 *ScratchBuffer;
- UINT32 ScratchBufferSize;
- UINT32 OutputBufferSize;
- UINT16 SectionAttribute;
+ EFI_STATUS Status;
+ UINT8 *ScratchBuffer;
+ UINT32 ScratchBufferSize;
+ UINT32 OutputBufferSize;
+ UINT16 SectionAttribute;
//
// Init local variable
@@ -184,7 +184,7 @@ CustomGuidedSectionExtract (
}
}
- if (((SectionAttribute & EFI_GUIDED_SECTION_PROCESSING_REQUIRED) != 0) && OutputBufferSize > 0) {
+ if (((SectionAttribute & EFI_GUIDED_SECTION_PROCESSING_REQUIRED) != 0) && (OutputBufferSize > 0)) {
//
// Allocate output buffer
//
@@ -192,6 +192,7 @@ CustomGuidedSectionExtract (
if (*OutputBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
DEBUG ((DEBUG_INFO, "Customized Guided section Memory Size required is 0x%x and address is 0x%p\n", OutputBufferSize, *OutputBuffer));
}
@@ -209,7 +210,7 @@ CustomGuidedSectionExtract (
return Status;
}
- *OutputSize = (UINTN) OutputBufferSize;
+ *OutputSize = (UINTN)OutputBufferSize;
return EFI_SUCCESS;
}
@@ -248,13 +249,13 @@ SectionExtractionPeiEntry (
// Install custom extraction guid PPI
//
if (ExtractHandlerNumber > 0) {
- GuidPpi = (EFI_PEI_PPI_DESCRIPTOR *) AllocatePool (ExtractHandlerNumber * sizeof (EFI_PEI_PPI_DESCRIPTOR));
+ GuidPpi = (EFI_PEI_PPI_DESCRIPTOR *)AllocatePool (ExtractHandlerNumber * sizeof (EFI_PEI_PPI_DESCRIPTOR));
ASSERT (GuidPpi != NULL);
while (ExtractHandlerNumber-- > 0) {
GuidPpi->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
- GuidPpi->Ppi = (VOID *) &mCustomGuidedSectionExtractionPpi;
+ GuidPpi->Ppi = (VOID *)&mCustomGuidedSectionExtractionPpi;
GuidPpi->Guid = &ExtractHandlerGuidTable[ExtractHandlerNumber];
- Status = PeiServicesInstallPpi (GuidPpi++);
+ Status = PeiServicesInstallPpi (GuidPpi++);
ASSERT_EFI_ERROR (Status);
}
}
diff --git a/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.c b/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.c
index dfa680b..bf04a02 100644
--- a/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.c
+++ b/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.c
@@ -11,27 +11,27 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// The structure to save the deferred 3rd party image information.
//
typedef struct {
- EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath;
- BOOLEAN BootOption;
- BOOLEAN Loaded;
+ EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath;
+ BOOLEAN BootOption;
+ BOOLEAN Loaded;
} DEFERRED_3RD_PARTY_IMAGE_INFO;
//
// The table to save the deferred 3rd party image item.
//
typedef struct {
- UINTN Count; ///< deferred 3rd party image count
- DEFERRED_3RD_PARTY_IMAGE_INFO *ImageInfo; ///< deferred 3rd party image item
+ UINTN Count; ///< deferred 3rd party image count
+ DEFERRED_3RD_PARTY_IMAGE_INFO *ImageInfo; ///< deferred 3rd party image item
} DEFERRED_3RD_PARTY_IMAGE_TABLE;
-BOOLEAN mImageLoadedAfterEndOfDxe = FALSE;
-BOOLEAN mEndOfDxe = FALSE;
-DEFERRED_3RD_PARTY_IMAGE_TABLE mDeferred3rdPartyImage = {
+BOOLEAN mImageLoadedAfterEndOfDxe = FALSE;
+BOOLEAN mEndOfDxe = FALSE;
+DEFERRED_3RD_PARTY_IMAGE_TABLE mDeferred3rdPartyImage = {
0, // Deferred image count
NULL // The deferred image info
};
-EFI_DEFERRED_IMAGE_LOAD_PROTOCOL mDeferredImageLoad = {
+EFI_DEFERRED_IMAGE_LOAD_PROTOCOL mDeferredImageLoad = {
GetDefferedImageInfo
};
@@ -46,23 +46,23 @@ EFI_DEFERRED_IMAGE_LOAD_PROTOCOL mDeferredImageLoad = {
**/
BOOLEAN
FileFromFv (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *File
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *File
)
{
- EFI_STATUS Status;
- EFI_HANDLE DeviceHandle;
- EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
+ EFI_STATUS Status;
+ EFI_HANDLE DeviceHandle;
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
//
// First check to see if File is from a Firmware Volume
//
DeviceHandle = NULL;
- TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) File;
- Status = gBS->LocateDevicePath (
- &gEfiFirmwareVolume2ProtocolGuid,
- &TempDevicePath,
- &DeviceHandle
- );
+ TempDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)File;
+ Status = gBS->LocateDevicePath (
+ &gEfiFirmwareVolume2ProtocolGuid,
+ &TempDevicePath,
+ &DeviceHandle
+ );
if (!EFI_ERROR (Status)) {
Status = gBS->OpenProtocol (
DeviceHandle,
@@ -90,12 +90,12 @@ FileFromFv (
**/
DEFERRED_3RD_PARTY_IMAGE_INFO *
LookupImage (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath,
- IN BOOLEAN BootOption
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath,
+ IN BOOLEAN BootOption
)
{
- UINTN Index;
- UINTN DevicePathSize;
+ UINTN Index;
+ UINTN DevicePathSize;
DevicePathSize = GetDevicePathSize (ImageDevicePath);
@@ -118,11 +118,11 @@ LookupImage (
**/
VOID
QueueImage (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath,
- IN BOOLEAN BootOption
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath,
+ IN BOOLEAN BootOption
)
{
- DEFERRED_3RD_PARTY_IMAGE_INFO *ImageInfo;
+ DEFERRED_3RD_PARTY_IMAGE_INFO *ImageInfo;
//
// Expand memory for the new deferred image.
@@ -131,26 +131,27 @@ QueueImage (
mDeferred3rdPartyImage.Count * sizeof (DEFERRED_3RD_PARTY_IMAGE_INFO),
(mDeferred3rdPartyImage.Count + 1) * sizeof (DEFERRED_3RD_PARTY_IMAGE_INFO),
mDeferred3rdPartyImage.ImageInfo
- );
+ );
if (ImageInfo == NULL) {
return;
}
+
mDeferred3rdPartyImage.ImageInfo = ImageInfo;
//
// Save the deferred image information.
//
- ImageInfo = &mDeferred3rdPartyImage.ImageInfo[mDeferred3rdPartyImage.Count];
+ ImageInfo = &mDeferred3rdPartyImage.ImageInfo[mDeferred3rdPartyImage.Count];
ImageInfo->ImageDevicePath = DuplicateDevicePath (ImageDevicePath);
if (ImageInfo->ImageDevicePath == NULL) {
return;
}
+
ImageInfo->BootOption = BootOption;
ImageInfo->Loaded = FALSE;
mDeferred3rdPartyImage.Count++;
}
-
/**
Returns information about a deferred image.
@@ -183,14 +184,14 @@ EFIAPI
GetDefferedImageInfo (
IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *This,
IN UINTN ImageIndex,
- OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath,
- OUT VOID **Image,
- OUT UINTN *ImageSize,
- OUT BOOLEAN *BootOption
+ OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath,
+ OUT VOID **Image,
+ OUT UINTN *ImageSize,
+ OUT BOOLEAN *BootOption
)
{
- UINTN Index;
- UINTN NewCount;
+ UINTN Index;
+ UINTN NewCount;
if ((This == NULL) || (ImageSize == NULL) || (Image == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -270,8 +271,8 @@ DxeSmmReadyToLock (
IN VOID *Context
)
{
- EFI_STATUS Status;
- VOID *Interface;
+ EFI_STATUS Status;
+ VOID *Interface;
Status = gBS->LocateProtocol (&gEfiDxeSmmReadyToLockProtocolGuid, NULL, &Interface);
if (EFI_ERROR (Status)) {
@@ -311,11 +312,11 @@ DxeSmmReadyToLock (
**/
EFI_STATUS
Defer3rdPartyImageLoad (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *File,
- IN BOOLEAN BootPolicy
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *File,
+ IN BOOLEAN BootPolicy
)
{
- DEFERRED_3RD_PARTY_IMAGE_INFO *ImageInfo;
+ DEFERRED_3RD_PARTY_IMAGE_INFO *ImageInfo;
//
// Ignore if File is NULL.
@@ -331,17 +332,20 @@ Defer3rdPartyImageLoad (
ImageInfo = LookupImage (File, BootPolicy);
DEBUG_CODE_BEGIN ();
- CHAR16 *DevicePathStr;
- DevicePathStr = ConvertDevicePathToText (File, FALSE, FALSE);
- DEBUG ((
- DEBUG_INFO,
- "[Security] 3rd party image[%p] %s EndOfDxe: %s.\n", ImageInfo,
- mEndOfDxe ? L"can be loaded after": L"is deferred to load before",
- DevicePathStr
- ));
- if (DevicePathStr != NULL) {
- FreePool (DevicePathStr);
- }
+ CHAR16 *DevicePathStr;
+
+ DevicePathStr = ConvertDevicePathToText (File, FALSE, FALSE);
+ DEBUG ((
+ DEBUG_INFO,
+ "[Security] 3rd party image[%p] %s EndOfDxe: %s.\n",
+ ImageInfo,
+ mEndOfDxe ? L"can be loaded after" : L"is deferred to load before",
+ DevicePathStr
+ ));
+ if (DevicePathStr != NULL) {
+ FreePool (DevicePathStr);
+ }
+
DEBUG_CODE_END ();
if (mEndOfDxe) {
@@ -353,6 +357,7 @@ Defer3rdPartyImageLoad (
if (ImageInfo != NULL) {
ImageInfo->Loaded = TRUE;
}
+
return EFI_SUCCESS;
} else {
//
@@ -362,6 +367,7 @@ Defer3rdPartyImageLoad (
if (ImageInfo == NULL) {
QueueImage (File, BootPolicy);
}
+
return EFI_ACCESS_DENIED;
}
}
@@ -374,10 +380,10 @@ Defer3rdPartyImageLoadInitialize (
VOID
)
{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
- EFI_EVENT Event;
- VOID *Registration;
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
+ EFI_EVENT Event;
+ VOID *Registration;
Handle = NULL;
Status = gBS->InstallMultipleProtocolInterfaces (
diff --git a/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h b/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h
index 8986b3d..da4a017 100644
--- a/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h
+++ b/MdeModulePkg/Universal/SecurityStubDxe/Defer3rdPartyImageLoad.h
@@ -55,10 +55,10 @@ EFIAPI
GetDefferedImageInfo (
IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *This,
IN UINTN ImageIndex,
- OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath,
- OUT VOID **Image,
- OUT UINTN *ImageSize,
- OUT BOOLEAN *BootOption
+ OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath,
+ OUT VOID **Image,
+ OUT UINTN *ImageSize,
+ OUT BOOLEAN *BootOption
);
/**
@@ -74,8 +74,8 @@ GetDefferedImageInfo (
**/
EFI_STATUS
Defer3rdPartyImageLoad (
- IN CONST EFI_DEVICE_PATH_PROTOCOL *File,
- IN BOOLEAN BootPolicy
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *File,
+ IN BOOLEAN BootPolicy
);
/**
diff --git a/MdeModulePkg/Universal/SecurityStubDxe/SecurityStub.c b/MdeModulePkg/Universal/SecurityStubDxe/SecurityStub.c
index d9c06b6..a5bd64a 100644
--- a/MdeModulePkg/Universal/SecurityStubDxe/SecurityStub.c
+++ b/MdeModulePkg/Universal/SecurityStubDxe/SecurityStub.c
@@ -6,7 +6,6 @@
**/
-
#include <Uefi.h>
#include <Protocol/Security.h>
#include <Protocol/Security2.h>
@@ -19,7 +18,7 @@
//
// Handle for the Security Architectural Protocol instance produced by this driver
//
-EFI_HANDLE mSecurityArchProtocolHandle = NULL;
+EFI_HANDLE mSecurityArchProtocolHandle = NULL;
/**
The EFI_SECURITY_ARCH_PROTOCOL (SAP) is used to abstract platform-specific
@@ -64,15 +63,16 @@ SecurityStubAuthenticateState (
IN CONST EFI_DEVICE_PATH_PROTOCOL *File
)
{
- EFI_STATUS Status;
-
- Status = ExecuteSecurity2Handlers (EFI_AUTH_OPERATION_AUTHENTICATION_STATE,
- AuthenticationStatus,
- File,
- NULL,
- 0,
- FALSE
- );
+ EFI_STATUS Status;
+
+ Status = ExecuteSecurity2Handlers (
+ EFI_AUTH_OPERATION_AUTHENTICATION_STATE,
+ AuthenticationStatus,
+ File,
+ NULL,
+ 0,
+ FALSE
+ );
if (Status == EFI_SUCCESS) {
Status = ExecuteSecurityHandlers (AuthenticationStatus, File);
}
@@ -128,14 +128,14 @@ SecurityStubAuthenticateState (
EFI_STATUS
EFIAPI
Security2StubAuthenticate (
- IN CONST EFI_SECURITY2_ARCH_PROTOCOL *This,
- IN CONST EFI_DEVICE_PATH_PROTOCOL *File OPTIONAL,
- IN VOID *FileBuffer,
- IN UINTN FileSize,
- IN BOOLEAN BootPolicy
+ IN CONST EFI_SECURITY2_ARCH_PROTOCOL *This,
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *File OPTIONAL,
+ IN VOID *FileBuffer,
+ IN UINTN FileSize,
+ IN BOOLEAN BootPolicy
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (FileBuffer != NULL) {
Status = Defer3rdPartyImageLoad (File, BootPolicy);
@@ -144,16 +144,17 @@ Security2StubAuthenticate (
}
}
- return ExecuteSecurity2Handlers (EFI_AUTH_OPERATION_VERIFY_IMAGE |
- EFI_AUTH_OPERATION_DEFER_IMAGE_LOAD |
- EFI_AUTH_OPERATION_MEASURE_IMAGE |
- EFI_AUTH_OPERATION_CONNECT_POLICY,
- 0,
- File,
- FileBuffer,
- FileSize,
- BootPolicy
- );
+ return ExecuteSecurity2Handlers (
+ EFI_AUTH_OPERATION_VERIFY_IMAGE |
+ EFI_AUTH_OPERATION_DEFER_IMAGE_LOAD |
+ EFI_AUTH_OPERATION_MEASURE_IMAGE |
+ EFI_AUTH_OPERATION_CONNECT_POLICY,
+ 0,
+ File,
+ FileBuffer,
+ FileSize,
+ BootPolicy
+ );
}
//
@@ -163,7 +164,7 @@ EFI_SECURITY_ARCH_PROTOCOL mSecurityStub = {
SecurityStubAuthenticateState
};
-EFI_SECURITY2_ARCH_PROTOCOL mSecurity2Stub = {
+EFI_SECURITY2_ARCH_PROTOCOL mSecurity2Stub = {
Security2StubAuthenticate
};
diff --git a/MdeModulePkg/Universal/SerialDxe/SerialIo.c b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
index fb816a1..25be863 100644
--- a/MdeModulePkg/Universal/SerialDxe/SerialIo.c
+++ b/MdeModulePkg/Universal/SerialDxe/SerialIo.c
@@ -19,9 +19,9 @@
#include <Guid/SerialPortLibVendor.h>
typedef struct {
- VENDOR_DEVICE_PATH Guid;
- UART_DEVICE_PATH Uart;
- EFI_DEVICE_PATH_PROTOCOL End;
+ VENDOR_DEVICE_PATH Guid;
+ UART_DEVICE_PATH Uart;
+ EFI_DEVICE_PATH_PROTOCOL End;
} SERIAL_DEVICE_PATH;
/**
@@ -36,7 +36,7 @@ typedef struct {
EFI_STATUS
EFIAPI
SerialReset (
- IN EFI_SERIAL_IO_PROTOCOL *This
+ IN EFI_SERIAL_IO_PROTOCOL *This
);
/**
@@ -69,13 +69,13 @@ SerialReset (
EFI_STATUS
EFIAPI
SerialSetAttributes (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN UINT64 BaudRate,
- IN UINT32 ReceiveFifoDepth,
- IN UINT32 Timeout,
- IN EFI_PARITY_TYPE Parity,
- IN UINT8 DataBits,
- IN EFI_STOP_BITS_TYPE StopBits
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN UINT64 BaudRate,
+ IN UINT32 ReceiveFifoDepth,
+ IN UINT32 Timeout,
+ IN EFI_PARITY_TYPE Parity,
+ IN UINT8 DataBits,
+ IN EFI_STOP_BITS_TYPE StopBits
);
/**
@@ -92,8 +92,8 @@ SerialSetAttributes (
EFI_STATUS
EFIAPI
SerialSetControl (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN UINT32 Control
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN UINT32 Control
);
/**
@@ -109,8 +109,8 @@ SerialSetControl (
EFI_STATUS
EFIAPI
SerialGetControl (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- OUT UINT32 *Control
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ OUT UINT32 *Control
);
/**
@@ -129,9 +129,9 @@ SerialGetControl (
EFI_STATUS
EFIAPI
SerialWrite (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
);
/**
@@ -150,46 +150,49 @@ SerialWrite (
EFI_STATUS
EFIAPI
SerialRead (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
);
-EFI_HANDLE mSerialHandle = NULL;
+EFI_HANDLE mSerialHandle = NULL;
-SERIAL_DEVICE_PATH mSerialDevicePath = {
+SERIAL_DEVICE_PATH mSerialDevicePath = {
{
- { HARDWARE_DEVICE_PATH, HW_VENDOR_DP, { sizeof (VENDOR_DEVICE_PATH), 0} },
+ { HARDWARE_DEVICE_PATH, HW_VENDOR_DP, { sizeof (VENDOR_DEVICE_PATH), 0 }
+ },
EDKII_SERIAL_PORT_LIB_VENDOR_GUID
},
{
- { MESSAGING_DEVICE_PATH, MSG_UART_DP, { sizeof (UART_DEVICE_PATH), 0} },
+ { MESSAGING_DEVICE_PATH, MSG_UART_DP, { sizeof (UART_DEVICE_PATH), 0 }
+ },
0, // Reserved
0, // BaudRate
0, // DataBits
0, // Parity
0 // StopBits
},
- { END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { sizeof (EFI_DEVICE_PATH_PROTOCOL), 0 } }
+ { END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { sizeof (EFI_DEVICE_PATH_PROTOCOL), 0 }
+ }
};
//
// Template used to initialize the Serial IO protocols.
//
-EFI_SERIAL_IO_MODE mSerialIoMode = {
+EFI_SERIAL_IO_MODE mSerialIoMode = {
//
// value field set in SerialDxeInitialize()?
- //--------- ------------------- -----------------------------
- 0, // ControlMask
+ // --------- ------------------- -----------------------------
+ 0, // ControlMask
1000 * 1000, // Timeout
- 0, // BaudRate yes
- 1, // ReceiveFifoDepth
- 0, // DataBits yes
- 0, // Parity yes
- 0 // StopBits yes
+ 0, // BaudRate yes
+ 1, // ReceiveFifoDepth
+ 0, // DataBits yes
+ 0, // Parity yes
+ 0 // StopBits yes
};
-EFI_SERIAL_IO_PROTOCOL mSerialIoTemplate = {
+EFI_SERIAL_IO_PROTOCOL mSerialIoTemplate = {
SERIAL_IO_INTERFACE_REVISION,
SerialReset,
SerialSetAttributes,
@@ -212,10 +215,10 @@ EFI_SERIAL_IO_PROTOCOL mSerialIoTemplate = {
EFI_STATUS
EFIAPI
SerialReset (
- IN EFI_SERIAL_IO_PROTOCOL *This
+ IN EFI_SERIAL_IO_PROTOCOL *This
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = SerialPortInitialize ();
if (EFI_ERROR (Status)) {
@@ -230,9 +233,9 @@ SerialReset (
This->Mode->BaudRate,
This->Mode->ReceiveFifoDepth,
This->Mode->Timeout,
- (EFI_PARITY_TYPE) This->Mode->Parity,
- (UINT8) This->Mode->DataBits,
- (EFI_STOP_BITS_TYPE) This->Mode->StopBits
+ (EFI_PARITY_TYPE)This->Mode->Parity,
+ (UINT8)This->Mode->DataBits,
+ (EFI_STOP_BITS_TYPE)This->Mode->StopBits
);
//
@@ -277,36 +280,36 @@ SerialReset (
EFI_STATUS
EFIAPI
SerialSetAttributes (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN UINT64 BaudRate,
- IN UINT32 ReceiveFifoDepth,
- IN UINT32 Timeout,
- IN EFI_PARITY_TYPE Parity,
- IN UINT8 DataBits,
- IN EFI_STOP_BITS_TYPE StopBits
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN UINT64 BaudRate,
+ IN UINT32 ReceiveFifoDepth,
+ IN UINT32 Timeout,
+ IN EFI_PARITY_TYPE Parity,
+ IN UINT8 DataBits,
+ IN EFI_STOP_BITS_TYPE StopBits
)
{
- EFI_STATUS Status;
- EFI_TPL Tpl;
- UINT64 OriginalBaudRate;
- UINT32 OriginalReceiveFifoDepth;
- UINT32 OriginalTimeout;
- EFI_PARITY_TYPE OriginalParity;
- UINT8 OriginalDataBits;
- EFI_STOP_BITS_TYPE OriginalStopBits;
+ EFI_STATUS Status;
+ EFI_TPL Tpl;
+ UINT64 OriginalBaudRate;
+ UINT32 OriginalReceiveFifoDepth;
+ UINT32 OriginalTimeout;
+ EFI_PARITY_TYPE OriginalParity;
+ UINT8 OriginalDataBits;
+ EFI_STOP_BITS_TYPE OriginalStopBits;
//
// Preserve the original input values in case
// SerialPortSetAttributes() updates the input/output
// parameters even on error.
//
- OriginalBaudRate = BaudRate;
+ OriginalBaudRate = BaudRate;
OriginalReceiveFifoDepth = ReceiveFifoDepth;
- OriginalTimeout = Timeout;
- OriginalParity = Parity;
- OriginalDataBits = DataBits;
- OriginalStopBits = StopBits;
- Status = SerialPortSetAttributes (&BaudRate, &ReceiveFifoDepth, &Timeout, &Parity, &DataBits, &StopBits);
+ OriginalTimeout = Timeout;
+ OriginalParity = Parity;
+ OriginalDataBits = DataBits;
+ OriginalStopBits = StopBits;
+ Status = SerialPortSetAttributes (&BaudRate, &ReceiveFifoDepth, &Timeout, &Parity, &DataBits, &StopBits);
if (EFI_ERROR (Status)) {
//
// If it is just to set Timeout value and unsupported is returned,
@@ -316,20 +319,21 @@ SerialSetAttributes (
(This->Mode->Timeout != OriginalTimeout) &&
(This->Mode->ReceiveFifoDepth == OriginalReceiveFifoDepth) &&
(This->Mode->BaudRate == OriginalBaudRate) &&
- (This->Mode->DataBits == (UINT32) OriginalDataBits) &&
- (This->Mode->Parity == (UINT32) OriginalParity) &&
- (This->Mode->StopBits == (UINT32) OriginalStopBits)) {
+ (This->Mode->DataBits == (UINT32)OriginalDataBits) &&
+ (This->Mode->Parity == (UINT32)OriginalParity) &&
+ (This->Mode->StopBits == (UINT32)OriginalStopBits))
+ {
//
// Restore to the original input values.
//
- BaudRate = OriginalBaudRate;
+ BaudRate = OriginalBaudRate;
ReceiveFifoDepth = OriginalReceiveFifoDepth;
- Timeout = OriginalTimeout;
- Parity = OriginalParity;
- DataBits = OriginalDataBits;
- StopBits = OriginalStopBits;
- Status = EFI_SUCCESS;
- } else if (Status == EFI_INVALID_PARAMETER || Status == EFI_UNSUPPORTED) {
+ Timeout = OriginalTimeout;
+ Parity = OriginalParity;
+ DataBits = OriginalDataBits;
+ StopBits = OriginalStopBits;
+ Status = EFI_SUCCESS;
+ } else if ((Status == EFI_INVALID_PARAMETER) || (Status == EFI_UNSUPPORTED)) {
return EFI_INVALID_PARAMETER;
} else {
return EFI_DEVICE_ERROR;
@@ -345,21 +349,22 @@ SerialSetAttributes (
//
// Set the Serial I/O mode
//
- This->Mode->ReceiveFifoDepth = ReceiveFifoDepth;
- This->Mode->Timeout = Timeout;
- This->Mode->BaudRate = BaudRate;
- This->Mode->DataBits = (UINT32) DataBits;
- This->Mode->Parity = (UINT32) Parity;
- This->Mode->StopBits = (UINT32) StopBits;
+ This->Mode->ReceiveFifoDepth = ReceiveFifoDepth;
+ This->Mode->Timeout = Timeout;
+ This->Mode->BaudRate = BaudRate;
+ This->Mode->DataBits = (UINT32)DataBits;
+ This->Mode->Parity = (UINT32)Parity;
+ This->Mode->StopBits = (UINT32)StopBits;
//
// Check if the device path has actually changed
//
- if (mSerialDevicePath.Uart.BaudRate == BaudRate &&
- mSerialDevicePath.Uart.DataBits == DataBits &&
- mSerialDevicePath.Uart.Parity == (UINT8) Parity &&
- mSerialDevicePath.Uart.StopBits == (UINT8) StopBits
- ) {
+ if ((mSerialDevicePath.Uart.BaudRate == BaudRate) &&
+ (mSerialDevicePath.Uart.DataBits == DataBits) &&
+ (mSerialDevicePath.Uart.Parity == (UINT8)Parity) &&
+ (mSerialDevicePath.Uart.StopBits == (UINT8)StopBits)
+ )
+ {
gBS->RestoreTPL (Tpl);
return EFI_SUCCESS;
}
@@ -369,8 +374,8 @@ SerialSetAttributes (
//
mSerialDevicePath.Uart.BaudRate = BaudRate;
mSerialDevicePath.Uart.DataBits = DataBits;
- mSerialDevicePath.Uart.Parity = (UINT8) Parity;
- mSerialDevicePath.Uart.StopBits = (UINT8) StopBits;
+ mSerialDevicePath.Uart.Parity = (UINT8)Parity;
+ mSerialDevicePath.Uart.StopBits = (UINT8)StopBits;
Status = gBS->ReinstallProtocolInterface (
mSerialHandle,
@@ -398,8 +403,8 @@ SerialSetAttributes (
EFI_STATUS
EFIAPI
SerialSetControl (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN UINT32 Control
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN UINT32 Control
)
{
return SerialPortSetControl (Control);
@@ -418,8 +423,8 @@ SerialSetControl (
EFI_STATUS
EFIAPI
SerialGetControl (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- OUT UINT32 *Control
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ OUT UINT32 *Control
)
{
return SerialPortGetControl (Control);
@@ -441,12 +446,12 @@ SerialGetControl (
EFI_STATUS
EFIAPI
SerialWrite (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- IN VOID *Buffer
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ IN VOID *Buffer
)
{
- UINTN Count;
+ UINTN Count;
Count = SerialPortWrite (Buffer, *BufferSize);
@@ -474,13 +479,13 @@ SerialWrite (
EFI_STATUS
EFIAPI
SerialRead (
- IN EFI_SERIAL_IO_PROTOCOL *This,
- IN OUT UINTN *BufferSize,
- OUT VOID *Buffer
+ IN EFI_SERIAL_IO_PROTOCOL *This,
+ IN OUT UINTN *BufferSize,
+ OUT VOID *Buffer
)
{
- UINTN Count;
- UINTN TimeOut;
+ UINTN Count;
+ UINTN TimeOut;
Count = 0;
@@ -490,15 +495,18 @@ SerialRead (
if (SerialPortPoll ()) {
break;
}
+
gBS->Stall (10);
TimeOut += 10;
}
+
if (TimeOut >= mSerialIoMode.Timeout) {
break;
}
+
SerialPortRead (Buffer, 1);
Count++;
- Buffer = (VOID *) ((UINT8 *) Buffer + 1);
+ Buffer = (VOID *)((UINT8 *)Buffer + 1);
}
if (Count != *BufferSize) {
@@ -522,17 +530,17 @@ SerialRead (
EFI_STATUS
EFIAPI
SerialDxeInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- mSerialIoMode.BaudRate = PcdGet64 (PcdUartDefaultBaudRate);
- mSerialIoMode.DataBits = (UINT32) PcdGet8 (PcdUartDefaultDataBits);
- mSerialIoMode.Parity = (UINT32) PcdGet8 (PcdUartDefaultParity);
- mSerialIoMode.StopBits = (UINT32) PcdGet8 (PcdUartDefaultStopBits);
- mSerialIoMode.ReceiveFifoDepth = PcdGet16 (PcdUartDefaultReceiveFifoDepth);
+ mSerialIoMode.BaudRate = PcdGet64 (PcdUartDefaultBaudRate);
+ mSerialIoMode.DataBits = (UINT32)PcdGet8 (PcdUartDefaultDataBits);
+ mSerialIoMode.Parity = (UINT32)PcdGet8 (PcdUartDefaultParity);
+ mSerialIoMode.StopBits = (UINT32)PcdGet8 (PcdUartDefaultStopBits);
+ mSerialIoMode.ReceiveFifoDepth = PcdGet16 (PcdUartDefaultReceiveFifoDepth);
mSerialDevicePath.Uart.BaudRate = PcdGet64 (PcdUartDefaultBaudRate);
mSerialDevicePath.Uart.DataBits = PcdGet8 (PcdUartDefaultDataBits);
mSerialDevicePath.Uart.Parity = PcdGet8 (PcdUartDefaultParity);
@@ -551,12 +559,13 @@ SerialDxeInitialize (
//
Status = gBS->InstallMultipleProtocolInterfaces (
&mSerialHandle,
- &gEfiSerialIoProtocolGuid, &mSerialIoTemplate,
- &gEfiDevicePathProtocolGuid, &mSerialDevicePath,
+ &gEfiSerialIoProtocolGuid,
+ &mSerialIoTemplate,
+ &gEfiDevicePathProtocolGuid,
+ &mSerialDevicePath,
NULL
);
ASSERT_EFI_ERROR (Status);
return Status;
}
-
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c
index fa583ca..d21930b 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.c
@@ -11,41 +11,40 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Global stack used to evaluate boolean expresions
//
-EFI_HII_VALUE *mOpCodeScopeStack = NULL;
-EFI_HII_VALUE *mOpCodeScopeStackEnd = NULL;
-EFI_HII_VALUE *mOpCodeScopeStackPointer = NULL;
+EFI_HII_VALUE *mOpCodeScopeStack = NULL;
+EFI_HII_VALUE *mOpCodeScopeStackEnd = NULL;
+EFI_HII_VALUE *mOpCodeScopeStackPointer = NULL;
-EFI_HII_VALUE *mExpressionEvaluationStack = NULL;
-EFI_HII_VALUE *mExpressionEvaluationStackEnd = NULL;
-EFI_HII_VALUE *mExpressionEvaluationStackPointer = NULL;
-UINTN mExpressionEvaluationStackOffset = 0;
+EFI_HII_VALUE *mExpressionEvaluationStack = NULL;
+EFI_HII_VALUE *mExpressionEvaluationStackEnd = NULL;
+EFI_HII_VALUE *mExpressionEvaluationStackPointer = NULL;
+UINTN mExpressionEvaluationStackOffset = 0;
-EFI_HII_VALUE *mCurrentExpressionStack = NULL;
-EFI_HII_VALUE *mCurrentExpressionEnd = NULL;
-EFI_HII_VALUE *mCurrentExpressionPointer = NULL;
+EFI_HII_VALUE *mCurrentExpressionStack = NULL;
+EFI_HII_VALUE *mCurrentExpressionEnd = NULL;
+EFI_HII_VALUE *mCurrentExpressionPointer = NULL;
-EFI_HII_VALUE *mMapExpressionListStack = NULL;
-EFI_HII_VALUE *mMapExpressionListEnd = NULL;
-EFI_HII_VALUE *mMapExpressionListPointer = NULL;
+EFI_HII_VALUE *mMapExpressionListStack = NULL;
+EFI_HII_VALUE *mMapExpressionListEnd = NULL;
+EFI_HII_VALUE *mMapExpressionListPointer = NULL;
-FORM_EXPRESSION **mFormExpressionStack = NULL;
-FORM_EXPRESSION **mFormExpressionEnd = NULL;
-FORM_EXPRESSION **mFormExpressionPointer = NULL;
+FORM_EXPRESSION **mFormExpressionStack = NULL;
+FORM_EXPRESSION **mFormExpressionEnd = NULL;
+FORM_EXPRESSION **mFormExpressionPointer = NULL;
-FORM_EXPRESSION **mStatementExpressionStack = NULL;
-FORM_EXPRESSION **mStatementExpressionEnd = NULL;
-FORM_EXPRESSION **mStatementExpressionPointer = NULL;
-
-FORM_EXPRESSION **mOptionExpressionStack = NULL;
-FORM_EXPRESSION **mOptionExpressionEnd = NULL;
-FORM_EXPRESSION **mOptionExpressionPointer = NULL;
+FORM_EXPRESSION **mStatementExpressionStack = NULL;
+FORM_EXPRESSION **mStatementExpressionEnd = NULL;
+FORM_EXPRESSION **mStatementExpressionPointer = NULL;
+FORM_EXPRESSION **mOptionExpressionStack = NULL;
+FORM_EXPRESSION **mOptionExpressionEnd = NULL;
+FORM_EXPRESSION **mOptionExpressionPointer = NULL;
//
// Unicode collation protocol interface
//
-EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;
-EFI_USER_MANAGER_PROTOCOL *mUserManager = NULL;
+EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;
+EFI_USER_MANAGER_PROTOCOL *mUserManager = NULL;
/**
Grow size of the stack.
@@ -68,7 +67,7 @@ GrowStack (
IN OUT EFI_HII_VALUE **StackEnd
)
{
- UINTN Size;
+ UINTN Size;
EFI_HII_VALUE *NewStack;
Size = EXPRESSION_STACK_SIZE_INCREMENT;
@@ -107,7 +106,6 @@ GrowStack (
return EFI_SUCCESS;
}
-
/**
Push an element onto the Boolean Stack.
@@ -122,10 +120,10 @@ GrowStack (
**/
EFI_STATUS
PushStack (
- IN OUT EFI_HII_VALUE **Stack,
- IN OUT EFI_HII_VALUE **StackPtr,
- IN OUT EFI_HII_VALUE **StackEnd,
- IN EFI_HII_VALUE *Data
+ IN OUT EFI_HII_VALUE **Stack,
+ IN OUT EFI_HII_VALUE **StackPtr,
+ IN OUT EFI_HII_VALUE **StackEnd,
+ IN EFI_HII_VALUE *Data
)
{
EFI_STATUS Status;
@@ -148,7 +146,7 @@ PushStack (
//
CopyMem (*StackPtr, Data, sizeof (EFI_HII_VALUE));
if (Data->Type == EFI_IFR_TYPE_BUFFER) {
- (*StackPtr)->Buffer = AllocateCopyPool(Data->BufferLen, Data->Buffer);
+ (*StackPtr)->Buffer = AllocateCopyPool (Data->BufferLen, Data->Buffer);
ASSERT ((*StackPtr)->Buffer != NULL);
}
@@ -157,7 +155,6 @@ PushStack (
return EFI_SUCCESS;
}
-
/**
Pop an element from the stack.
@@ -171,9 +168,9 @@ PushStack (
**/
EFI_STATUS
PopStack (
- IN EFI_HII_VALUE *Stack,
- IN OUT EFI_HII_VALUE **StackPtr,
- OUT EFI_HII_VALUE *Data
+ IN EFI_HII_VALUE *Stack,
+ IN OUT EFI_HII_VALUE **StackPtr,
+ OUT EFI_HII_VALUE *Data
)
{
//
@@ -191,7 +188,6 @@ PopStack (
return EFI_SUCCESS;
}
-
/**
Reset stack pointer to begin of the stack.
@@ -207,7 +203,6 @@ ResetCurrentExpressionStack (
mOptionExpressionPointer = mOptionExpressionStack;
}
-
/**
Push current expression onto the Stack
@@ -224,18 +219,17 @@ PushCurrentExpression (
{
EFI_HII_VALUE Data;
- Data.Type = EFI_IFR_TYPE_NUM_SIZE_64;
- Data.Value.u64 = (UINT64) (UINTN) Pointer;
+ Data.Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Data.Value.u64 = (UINT64)(UINTN)Pointer;
return PushStack (
- &mCurrentExpressionStack,
- &mCurrentExpressionPointer,
- &mCurrentExpressionEnd,
- &Data
- );
+ &mCurrentExpressionStack,
+ &mCurrentExpressionPointer,
+ &mCurrentExpressionEnd,
+ &Data
+ );
}
-
/**
Pop current expression from the Stack
@@ -247,19 +241,19 @@ PushCurrentExpression (
**/
EFI_STATUS
PopCurrentExpression (
- OUT VOID **Pointer
+ OUT VOID **Pointer
)
{
EFI_STATUS Status;
EFI_HII_VALUE Data;
Status = PopStack (
- mCurrentExpressionStack,
- &mCurrentExpressionPointer,
- &Data
- );
+ mCurrentExpressionStack,
+ &mCurrentExpressionPointer,
+ &Data
+ );
- *Pointer = (VOID *) (UINTN) Data.Value.u64;
+ *Pointer = (VOID *)(UINTN)Data.Value.u64;
return Status;
}
@@ -276,7 +270,6 @@ ResetMapExpressionListStack (
mMapExpressionListPointer = mMapExpressionListStack;
}
-
/**
Grow size of the stack.
@@ -294,14 +287,14 @@ ResetMapExpressionListStack (
**/
EFI_STATUS
GrowConditionalStack (
- IN OUT FORM_EXPRESSION ***Stack,
- IN OUT FORM_EXPRESSION ***StackPtr,
- IN OUT FORM_EXPRESSION ***StackEnd,
- IN UINTN MemberSize
+ IN OUT FORM_EXPRESSION ***Stack,
+ IN OUT FORM_EXPRESSION ***StackPtr,
+ IN OUT FORM_EXPRESSION ***StackEnd,
+ IN UINTN MemberSize
)
{
- UINTN Size;
- FORM_EXPRESSION **NewStack;
+ UINTN Size;
+ FORM_EXPRESSION **NewStack;
Size = EXPRESSION_STACK_SIZE_INCREMENT;
if (*StackPtr != NULL) {
@@ -353,10 +346,10 @@ GrowConditionalStack (
**/
EFI_STATUS
PushConditionalStack (
- IN OUT FORM_EXPRESSION ***Stack,
- IN OUT FORM_EXPRESSION ***StackPtr,
- IN OUT FORM_EXPRESSION ***StackEnd,
- IN FORM_EXPRESSION **Data
+ IN OUT FORM_EXPRESSION ***Stack,
+ IN OUT FORM_EXPRESSION ***StackPtr,
+ IN OUT FORM_EXPRESSION ***StackEnd,
+ IN FORM_EXPRESSION **Data
)
{
EFI_STATUS Status;
@@ -381,7 +374,6 @@ PushConditionalStack (
*StackPtr = *StackPtr + 1;
return EFI_SUCCESS;
-
}
/**
@@ -397,9 +389,9 @@ PushConditionalStack (
**/
EFI_STATUS
PopConditionalStack (
- IN FORM_EXPRESSION **Stack,
- IN OUT FORM_EXPRESSION ***StackPtr,
- OUT FORM_EXPRESSION **Data
+ IN FORM_EXPRESSION **Stack,
+ IN OUT FORM_EXPRESSION ***StackPtr,
+ OUT FORM_EXPRESSION **Data
)
{
//
@@ -415,7 +407,6 @@ PopConditionalStack (
*StackPtr = *StackPtr - 1;
CopyMem (Data, *StackPtr, sizeof (FORM_EXPRESSION *));
return EFI_SUCCESS;
-
}
/**
@@ -430,7 +421,7 @@ PopConditionalStack (
**/
INTN
GetConditionalExpressionCount (
- IN EXPRESS_LEVEL Level
+ IN EXPRESS_LEVEL Level
)
{
switch (Level) {
@@ -457,7 +448,7 @@ GetConditionalExpressionCount (
**/
FORM_EXPRESSION **
GetConditionalExpressionList (
- IN EXPRESS_LEVEL Level
+ IN EXPRESS_LEVEL Level
)
{
switch (Level) {
@@ -473,7 +464,6 @@ GetConditionalExpressionList (
}
}
-
/**
Push the expression options onto the Stack.
@@ -487,32 +477,32 @@ GetConditionalExpressionList (
**/
EFI_STATUS
PushConditionalExpression (
- IN FORM_EXPRESSION *Pointer,
- IN EXPRESS_LEVEL Level
+ IN FORM_EXPRESSION *Pointer,
+ IN EXPRESS_LEVEL Level
)
{
switch (Level) {
case ExpressForm:
return PushConditionalStack (
- &mFormExpressionStack,
- &mFormExpressionPointer,
- &mFormExpressionEnd,
- &Pointer
- );
+ &mFormExpressionStack,
+ &mFormExpressionPointer,
+ &mFormExpressionEnd,
+ &Pointer
+ );
case ExpressStatement:
return PushConditionalStack (
- &mStatementExpressionStack,
- &mStatementExpressionPointer,
- &mStatementExpressionEnd,
- &Pointer
- );
+ &mStatementExpressionStack,
+ &mStatementExpressionPointer,
+ &mStatementExpressionEnd,
+ &Pointer
+ );
case ExpressOption:
return PushConditionalStack (
- &mOptionExpressionStack,
- &mOptionExpressionPointer,
- &mOptionExpressionEnd,
- &Pointer
- );
+ &mOptionExpressionStack,
+ &mOptionExpressionPointer,
+ &mOptionExpressionEnd,
+ &Pointer
+ );
default:
ASSERT (FALSE);
return EFI_INVALID_PARAMETER;
@@ -531,32 +521,32 @@ PushConditionalExpression (
**/
EFI_STATUS
PopConditionalExpression (
- IN EXPRESS_LEVEL Level
+ IN EXPRESS_LEVEL Level
)
{
- FORM_EXPRESSION *Pointer;
+ FORM_EXPRESSION *Pointer;
switch (Level) {
case ExpressForm:
return PopConditionalStack (
- mFormExpressionStack,
- &mFormExpressionPointer,
- &Pointer
- );
+ mFormExpressionStack,
+ &mFormExpressionPointer,
+ &Pointer
+ );
case ExpressStatement:
return PopConditionalStack (
- mStatementExpressionStack,
- &mStatementExpressionPointer,
- &Pointer
- );
+ mStatementExpressionStack,
+ &mStatementExpressionPointer,
+ &Pointer
+ );
case ExpressOption:
return PopConditionalStack (
- mOptionExpressionStack,
- &mOptionExpressionPointer,
- &Pointer
- );
+ mOptionExpressionStack,
+ &mOptionExpressionPointer,
+ &Pointer
+ );
default:
ASSERT (FALSE);
@@ -564,7 +554,6 @@ PopConditionalExpression (
}
}
-
/**
Push the list of map expression onto the Stack
@@ -581,18 +570,17 @@ PushMapExpressionList (
{
EFI_HII_VALUE Data;
- Data.Type = EFI_IFR_TYPE_NUM_SIZE_64;
- Data.Value.u64 = (UINT64) (UINTN) Pointer;
+ Data.Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Data.Value.u64 = (UINT64)(UINTN)Pointer;
return PushStack (
- &mMapExpressionListStack,
- &mMapExpressionListPointer,
- &mMapExpressionListEnd,
- &Data
- );
+ &mMapExpressionListStack,
+ &mMapExpressionListPointer,
+ &mMapExpressionListEnd,
+ &Data
+ );
}
-
/**
Pop the list of map expression from the Stack
@@ -604,19 +592,19 @@ PushMapExpressionList (
**/
EFI_STATUS
PopMapExpressionList (
- OUT VOID **Pointer
+ OUT VOID **Pointer
)
{
EFI_STATUS Status;
EFI_HII_VALUE Data;
Status = PopStack (
- mMapExpressionListStack,
- &mMapExpressionListPointer,
- &Data
- );
+ mMapExpressionListStack,
+ &mMapExpressionListPointer,
+ &Data
+ );
- *Pointer = (VOID *) (UINTN) Data.Value.u64;
+ *Pointer = (VOID *)(UINTN)Data.Value.u64;
return Status;
}
@@ -633,7 +621,6 @@ ResetScopeStack (
mOpCodeScopeStackPointer = mOpCodeScopeStack;
}
-
/**
Push an Operand onto the Stack
@@ -646,12 +633,12 @@ ResetScopeStack (
**/
EFI_STATUS
PushScope (
- IN UINT8 Operand
+ IN UINT8 Operand
)
{
EFI_HII_VALUE Data;
- Data.Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Data.Type = EFI_IFR_TYPE_NUM_SIZE_8;
Data.Value.u8 = Operand;
return PushStack (
@@ -662,7 +649,6 @@ PushScope (
);
}
-
/**
Pop an Operand from the Stack
@@ -675,7 +661,7 @@ PushScope (
**/
EFI_STATUS
PopScope (
- OUT UINT8 *Operand
+ OUT UINT8 *Operand
)
{
EFI_STATUS Status;
@@ -692,7 +678,6 @@ PopScope (
return Status;
}
-
/**
Push an Expression value onto the Stack
@@ -716,7 +701,6 @@ PushExpression (
);
}
-
/**
Pop an Expression value from the stack.
@@ -748,8 +732,9 @@ SaveExpressionEvaluationStackOffset (
VOID
)
{
- UINTN TempStackOffset;
- TempStackOffset = mExpressionEvaluationStackOffset;
+ UINTN TempStackOffset;
+
+ TempStackOffset = mExpressionEvaluationStackOffset;
mExpressionEvaluationStackOffset = mExpressionEvaluationStackPointer - mExpressionEvaluationStack;
return TempStackOffset;
}
@@ -762,7 +747,7 @@ SaveExpressionEvaluationStackOffset (
**/
VOID
RestoreExpressionEvaluationStackOffset (
- UINTN StackOffset
+ UINTN StackOffset
)
{
mExpressionEvaluationStackOffset = StackOffset;
@@ -801,7 +786,6 @@ IdToForm (
return NULL;
}
-
/**
Search a Question in Form scope using its QuestionId.
@@ -821,7 +805,7 @@ IdToQuestion2 (
LIST_ENTRY *Link;
FORM_BROWSER_STATEMENT *Question;
- if (QuestionId == 0 || Form == NULL) {
+ if ((QuestionId == 0) || (Form == NULL)) {
//
// The value of zero is reserved
//
@@ -842,7 +826,6 @@ IdToQuestion2 (
return NULL;
}
-
/**
Search a Question in Formset scope using its QuestionId.
@@ -898,7 +881,6 @@ IdToQuestion (
return NULL;
}
-
/**
Get Expression given its RuleId.
@@ -922,7 +904,7 @@ RuleIdToExpression (
while (!IsNull (&Form->ExpressionListHead, Link)) {
Expression = FORM_EXPRESSION_FROM_LINK (Link);
- if (Expression->Type == EFI_HII_EXPRESSION_RULE && Expression->RuleId == RuleId) {
+ if ((Expression->Type == EFI_HII_EXPRESSION_RULE) && (Expression->RuleId == RuleId)) {
return Expression;
}
@@ -932,7 +914,6 @@ RuleIdToExpression (
return NULL;
}
-
/**
Locate the Unicode Collation Protocol interface for later use.
@@ -959,7 +940,7 @@ InitializeUnicodeCollationProtocol (
Status = gBS->LocateProtocol (
&gEfiUnicodeCollation2ProtocolGuid,
NULL,
- (VOID **) &mUnicodeCollation
+ (VOID **)&mUnicodeCollation
);
return Status;
}
@@ -972,13 +953,14 @@ InitializeUnicodeCollationProtocol (
**/
VOID
IfrStrToUpper (
- IN CHAR16 *String
+ IN CHAR16 *String
)
{
while (*String != 0) {
if ((*String >= 'a') && (*String <= 'z')) {
- *String = (UINT16) ((*String) & ((UINT16) ~0x20));
+ *String = (UINT16)((*String) & ((UINT16) ~0x20));
}
+
String++;
}
}
@@ -997,18 +979,18 @@ IfrStrToUpper (
**/
BOOLEAN
IsTypeInBuffer (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_BUFFER:
- case EFI_IFR_TYPE_DATE:
- case EFI_IFR_TYPE_TIME:
- case EFI_IFR_TYPE_REF:
- return TRUE;
+ case EFI_IFR_TYPE_BUFFER:
+ case EFI_IFR_TYPE_DATE:
+ case EFI_IFR_TYPE_TIME:
+ case EFI_IFR_TYPE_REF:
+ return TRUE;
- default:
- return FALSE;
+ default:
+ return FALSE;
}
}
@@ -1023,19 +1005,19 @@ IsTypeInBuffer (
**/
BOOLEAN
IsTypeInUINT64 (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- case EFI_IFR_TYPE_NUM_SIZE_16:
- case EFI_IFR_TYPE_NUM_SIZE_32:
- case EFI_IFR_TYPE_NUM_SIZE_64:
- case EFI_IFR_TYPE_BOOLEAN:
- return TRUE;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ case EFI_IFR_TYPE_BOOLEAN:
+ return TRUE;
- default:
- return FALSE;
+ default:
+ return FALSE;
}
}
@@ -1052,24 +1034,24 @@ IsTypeInUINT64 (
**/
UINT16
GetLengthForValue (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_BUFFER:
- return Value->BufferLen;
+ case EFI_IFR_TYPE_BUFFER:
+ return Value->BufferLen;
- case EFI_IFR_TYPE_DATE:
- return (UINT16) sizeof (EFI_HII_DATE);
+ case EFI_IFR_TYPE_DATE:
+ return (UINT16)sizeof (EFI_HII_DATE);
- case EFI_IFR_TYPE_TIME:
- return (UINT16) sizeof (EFI_HII_TIME);
+ case EFI_IFR_TYPE_TIME:
+ return (UINT16)sizeof (EFI_HII_TIME);
- case EFI_IFR_TYPE_REF:
- return (UINT16) sizeof (EFI_HII_REF);
+ case EFI_IFR_TYPE_REF:
+ return (UINT16)sizeof (EFI_HII_REF);
- default:
- return 0;
+ default:
+ return 0;
}
}
@@ -1086,24 +1068,24 @@ GetLengthForValue (
**/
UINT8 *
GetBufferForValue (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
switch (Value->Type) {
- case EFI_IFR_TYPE_BUFFER:
- return Value->Buffer;
+ case EFI_IFR_TYPE_BUFFER:
+ return Value->Buffer;
- case EFI_IFR_TYPE_DATE:
- return (UINT8 *) (&Value->Value.date);
+ case EFI_IFR_TYPE_DATE:
+ return (UINT8 *)(&Value->Value.date);
- case EFI_IFR_TYPE_TIME:
- return (UINT8 *) (&Value->Value.time);
+ case EFI_IFR_TYPE_TIME:
+ return (UINT8 *)(&Value->Value.time);
- case EFI_IFR_TYPE_REF:
- return (UINT8 *) (&Value->Value.ref);
+ case EFI_IFR_TYPE_REF:
+ return (UINT8 *)(&Value->Value.ref);
- default:
- return NULL;
+ default:
+ return NULL;
}
}
@@ -1141,86 +1123,88 @@ IfrToString (
}
switch (Value.Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- case EFI_IFR_TYPE_NUM_SIZE_16:
- case EFI_IFR_TYPE_NUM_SIZE_32:
- case EFI_IFR_TYPE_NUM_SIZE_64:
- BufferSize = MAXIMUM_VALUE_CHARACTERS * sizeof (CHAR16);
- switch (Format) {
- case EFI_IFR_STRING_UNSIGNED_DEC:
- case EFI_IFR_STRING_SIGNED_DEC:
- PrintFormat = L"%ld";
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ BufferSize = MAXIMUM_VALUE_CHARACTERS * sizeof (CHAR16);
+ switch (Format) {
+ case EFI_IFR_STRING_UNSIGNED_DEC:
+ case EFI_IFR_STRING_SIGNED_DEC:
+ PrintFormat = L"%ld";
+ break;
- case EFI_IFR_STRING_LOWERCASE_HEX:
- PrintFormat = L"%lx";
- break;
+ case EFI_IFR_STRING_LOWERCASE_HEX:
+ PrintFormat = L"%lx";
+ break;
+
+ case EFI_IFR_STRING_UPPERCASE_HEX:
+ PrintFormat = L"%lX";
+ break;
+
+ default:
+ Result->Type = EFI_IFR_TYPE_UNDEFINED;
+ return EFI_SUCCESS;
+ }
- case EFI_IFR_STRING_UPPERCASE_HEX:
- PrintFormat = L"%lX";
+ UnicodeSPrint (Buffer, BufferSize, PrintFormat, Value.Value.u64);
+ String = Buffer;
break;
- default:
- Result->Type = EFI_IFR_TYPE_UNDEFINED;
+ case EFI_IFR_TYPE_STRING:
+ CopyMem (Result, &Value, sizeof (EFI_HII_VALUE));
return EFI_SUCCESS;
- }
- UnicodeSPrint (Buffer, BufferSize, PrintFormat, Value.Value.u64);
- String = Buffer;
- break;
- case EFI_IFR_TYPE_STRING:
- CopyMem (Result, &Value, sizeof (EFI_HII_VALUE));
- return EFI_SUCCESS;
+ case EFI_IFR_TYPE_BOOLEAN:
+ String = (Value.Value.b) ? L"True" : L"False";
+ break;
- case EFI_IFR_TYPE_BOOLEAN:
- String = (Value.Value.b) ? L"True" : L"False";
- break;
+ case EFI_IFR_TYPE_BUFFER:
+ case EFI_IFR_TYPE_DATE:
+ case EFI_IFR_TYPE_TIME:
+ case EFI_IFR_TYPE_REF:
+ //
+ // + 3 is base on the unicode format, the length may be odd number,
+ // so need 1 byte to align, also need 2 bytes for L'\0'.
+ //
+ if (Value.Type == EFI_IFR_TYPE_BUFFER) {
+ SrcLen = Value.BufferLen;
+ SrcBuf = Value.Buffer;
+ } else {
+ SrcBuf = GetBufferForValue (&Value);
+ SrcLen = GetLengthForValue (&Value);
+ }
- case EFI_IFR_TYPE_BUFFER:
- case EFI_IFR_TYPE_DATE:
- case EFI_IFR_TYPE_TIME:
- case EFI_IFR_TYPE_REF:
- //
- // + 3 is base on the unicode format, the length may be odd number,
- // so need 1 byte to align, also need 2 bytes for L'\0'.
- //
- if (Value.Type == EFI_IFR_TYPE_BUFFER) {
- SrcLen = Value.BufferLen;
- SrcBuf = Value.Buffer;
- } else {
- SrcBuf = GetBufferForValue(&Value);
- SrcLen = GetLengthForValue(&Value);
- }
+ TmpBuf = AllocateZeroPool (SrcLen + 3);
+ ASSERT (TmpBuf != NULL);
+ if (Format == EFI_IFR_STRING_ASCII) {
+ CopyMem (TmpBuf, SrcBuf, SrcLen);
+ PrintFormat = L"%a";
+ } else {
+ // Format == EFI_IFR_STRING_UNICODE
+ CopyMem (TmpBuf, SrcBuf, SrcLen * sizeof (CHAR16));
+ PrintFormat = L"%s";
+ }
- TmpBuf = AllocateZeroPool (SrcLen + 3);
- ASSERT (TmpBuf != NULL);
- if (Format == EFI_IFR_STRING_ASCII) {
- CopyMem (TmpBuf, SrcBuf, SrcLen);
- PrintFormat = L"%a";
- } else {
- // Format == EFI_IFR_STRING_UNICODE
- CopyMem (TmpBuf, SrcBuf, SrcLen * sizeof (CHAR16));
- PrintFormat = L"%s";
- }
- UnicodeSPrint (Buffer, sizeof (Buffer), PrintFormat, TmpBuf);
- String = Buffer;
- FreePool (TmpBuf);
- if (Value.Type == EFI_IFR_TYPE_BUFFER) {
- FreePool (Value.Buffer);
- }
- break;
+ UnicodeSPrint (Buffer, sizeof (Buffer), PrintFormat, TmpBuf);
+ String = Buffer;
+ FreePool (TmpBuf);
+ if (Value.Type == EFI_IFR_TYPE_BUFFER) {
+ FreePool (Value.Buffer);
+ }
- default:
- Result->Type = EFI_IFR_TYPE_UNDEFINED;
- return EFI_SUCCESS;
+ break;
+
+ default:
+ Result->Type = EFI_IFR_TYPE_UNDEFINED;
+ return EFI_SUCCESS;
}
- Result->Type = EFI_IFR_TYPE_STRING;
+ Result->Type = EFI_IFR_TYPE_STRING;
Result->Value.string = NewString (String, FormSet->HiiHandle);
return EFI_SUCCESS;
}
-
/**
Evaluate opcode EFI_IFR_TO_UINT.
@@ -1247,7 +1231,7 @@ IfrToUint (
return Status;
}
- if (Value.Type >= EFI_IFR_TYPE_OTHER && !IsTypeInBuffer(&Value)) {
+ if ((Value.Type >= EFI_IFR_TYPE_OTHER) && !IsTypeInBuffer (&Value)) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
@@ -1272,18 +1256,20 @@ IfrToUint (
//
Result->Value.u64 = StrDecimalToUint64 (String);
}
+
FreePool (String);
- } else if (IsTypeInBuffer(&Value)) {
+ } else if (IsTypeInBuffer (&Value)) {
if (GetLengthForValue (&Value) > 8) {
if (Value.Type == EFI_IFR_TYPE_BUFFER) {
FreePool (Value.Buffer);
}
+
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
ASSERT (GetBufferForValue (&Value) != NULL);
- Result->Value.u64 = *(UINT64*) GetBufferForValue (&Value);
+ Result->Value.u64 = *(UINT64 *)GetBufferForValue (&Value);
if (Value.Type == EFI_IFR_TYPE_BUFFER) {
FreePool (Value.Buffer);
@@ -1296,7 +1282,6 @@ IfrToUint (
return Status;
}
-
/**
Evaluate opcode EFI_IFR_CATENATE.
@@ -1331,7 +1316,7 @@ IfrCatenate (
String[0] = NULL;
String[1] = NULL;
StringPtr = NULL;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
ZeroMem (Value, sizeof (Value));
Status = PopExpression (&Value[0]);
@@ -1345,9 +1330,9 @@ IfrCatenate (
}
for (Index = 0; Index < 2; Index++) {
- if (Value[Index].Type != EFI_IFR_TYPE_STRING && !IsTypeInBuffer(&Value[Index])) {
+ if ((Value[Index].Type != EFI_IFR_TYPE_STRING) && !IsTypeInBuffer (&Value[Index])) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
@@ -1361,44 +1346,49 @@ IfrCatenate (
}
if (Value[0].Type == EFI_IFR_TYPE_STRING) {
- Size = StrSize (String[0]);
- MaxLen = (StrSize (String[1]) + Size) / sizeof (CHAR16);
- StringPtr= AllocatePool (MaxLen * sizeof (CHAR16));
+ Size = StrSize (String[0]);
+ MaxLen = (StrSize (String[1]) + Size) / sizeof (CHAR16);
+ StringPtr = AllocatePool (MaxLen * sizeof (CHAR16));
ASSERT (StringPtr != NULL);
StrCpyS (StringPtr, MaxLen, String[1]);
StrCatS (StringPtr, MaxLen, String[0]);
- Result->Type = EFI_IFR_TYPE_STRING;
+ Result->Type = EFI_IFR_TYPE_STRING;
Result->Value.string = NewString (StringPtr, FormSet->HiiHandle);
} else {
- Result->Type = EFI_IFR_TYPE_BUFFER;
- Length0 = GetLengthForValue(&Value[0]);
- Length1 = GetLengthForValue(&Value[1]);
- Result->BufferLen = (UINT16) (Length0 + Length1);
+ Result->Type = EFI_IFR_TYPE_BUFFER;
+ Length0 = GetLengthForValue (&Value[0]);
+ Length1 = GetLengthForValue (&Value[1]);
+ Result->BufferLen = (UINT16)(Length0 + Length1);
Result->Buffer = AllocateZeroPool (Result->BufferLen);
ASSERT (Result->Buffer != NULL);
- TmpBuf = GetBufferForValue(&Value[0]);
+ TmpBuf = GetBufferForValue (&Value[0]);
ASSERT (TmpBuf != NULL);
CopyMem (Result->Buffer, TmpBuf, Length0);
- TmpBuf = GetBufferForValue(&Value[1]);
+ TmpBuf = GetBufferForValue (&Value[1]);
ASSERT (TmpBuf != NULL);
CopyMem (&Result->Buffer[Length0], TmpBuf, Length1);
}
+
Done:
if (Value[0].Buffer != NULL) {
FreePool (Value[0].Buffer);
}
+
if (Value[1].Buffer != NULL) {
FreePool (Value[1].Buffer);
}
+
if (String[0] != NULL) {
FreePool (String[0]);
}
+
if (String[1] != NULL) {
FreePool (String[1]);
}
+
if (StringPtr != NULL) {
FreePool (StringPtr);
}
@@ -1406,7 +1396,6 @@ Done:
return Status;
}
-
/**
Evaluate opcode EFI_IFR_MATCH.
@@ -1434,7 +1423,7 @@ IfrMatch (
//
String[0] = NULL;
String[1] = NULL;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
ZeroMem (Value, sizeof (Value));
Status = PopExpression (&Value[0]);
@@ -1450,24 +1439,25 @@ IfrMatch (
for (Index = 0; Index < 2; Index++) {
if (Value[Index].Type != EFI_IFR_TYPE_STRING) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
String[Index] = GetToken (Value[Index].Value.string, FormSet->HiiHandle);
- if (String [Index] == NULL) {
+ if (String[Index] == NULL) {
Status = EFI_NOT_FOUND;
goto Done;
}
}
- Result->Type = EFI_IFR_TYPE_BOOLEAN;
+ Result->Type = EFI_IFR_TYPE_BOOLEAN;
Result->Value.b = mUnicodeCollation->MetaiMatch (mUnicodeCollation, String[0], String[1]);
Done:
if (String[0] != NULL) {
FreePool (String[0]);
}
+
if (String[1] != NULL) {
FreePool (String[1]);
}
@@ -1509,11 +1499,11 @@ IfrMatch2 (
// String[0] - The string to search
// String[1] - pattern
//
- String[0] = NULL;
- String[1] = NULL;
- HandleBuffer = NULL;
+ String[0] = NULL;
+ String[1] = NULL;
+ HandleBuffer = NULL;
RegExSyntaxTypeList = NULL;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
ZeroMem (Value, sizeof (Value));
Status = PopExpression (&Value[0]);
@@ -1529,59 +1519,61 @@ IfrMatch2 (
for (Index = 0; Index < 2; Index++) {
if (Value[Index].Type != EFI_IFR_TYPE_STRING) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
String[Index] = GetToken (Value[Index].Value.string, FormSet->HiiHandle);
- if (String [Index] == NULL) {
+ if (String[Index] == NULL) {
Status = EFI_NOT_FOUND;
goto Done;
}
}
- BufferSize = 0;
- HandleBuffer = NULL;
- Status = gBS->LocateHandle(
- ByProtocol,
- &gEfiRegularExpressionProtocolGuid,
- NULL,
- &BufferSize,
- HandleBuffer);
+ BufferSize = 0;
+ HandleBuffer = NULL;
+ Status = gBS->LocateHandle (
+ ByProtocol,
+ &gEfiRegularExpressionProtocolGuid,
+ NULL,
+ &BufferSize,
+ HandleBuffer
+ );
if (Status == EFI_BUFFER_TOO_SMALL) {
- HandleBuffer = AllocateZeroPool(BufferSize);
+ HandleBuffer = AllocateZeroPool (BufferSize);
if (HandleBuffer == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- Status = gBS->LocateHandle(
- ByProtocol,
- &gEfiRegularExpressionProtocolGuid,
- NULL,
- &BufferSize,
- HandleBuffer);
+ Status = gBS->LocateHandle (
+ ByProtocol,
+ &gEfiRegularExpressionProtocolGuid,
+ NULL,
+ &BufferSize,
+ HandleBuffer
+ );
}
if (EFI_ERROR (Status)) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
ASSERT (HandleBuffer != NULL);
- for ( Index = 0; Index < BufferSize / sizeof(EFI_HANDLE); Index ++) {
+ for ( Index = 0; Index < BufferSize / sizeof (EFI_HANDLE); Index++) {
Status = gBS->HandleProtocol (
- HandleBuffer[Index],
- &gEfiRegularExpressionProtocolGuid,
- (VOID**)&RegularExpressionProtocol
- );
+ HandleBuffer[Index],
+ &gEfiRegularExpressionProtocolGuid,
+ (VOID **)&RegularExpressionProtocol
+ );
if (EFI_ERROR (Status)) {
goto Done;
}
RegExSyntaxTypeListSize = 0;
- RegExSyntaxTypeList = NULL;
+ RegExSyntaxTypeList = NULL;
Status = RegularExpressionProtocol->GetInfo (
RegularExpressionProtocol,
@@ -1589,11 +1581,12 @@ IfrMatch2 (
RegExSyntaxTypeList
);
if (Status == EFI_BUFFER_TOO_SMALL) {
- RegExSyntaxTypeList = AllocateZeroPool(RegExSyntaxTypeListSize);
+ RegExSyntaxTypeList = AllocateZeroPool (RegExSyntaxTypeListSize);
if (RegExSyntaxTypeList == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
Status = RegularExpressionProtocol->GetInfo (
RegularExpressionProtocol,
&RegExSyntaxTypeListSize,
@@ -1603,21 +1596,21 @@ IfrMatch2 (
goto Done;
}
- for (GuidIndex = 0; GuidIndex < RegExSyntaxTypeListSize / sizeof(EFI_GUID); GuidIndex++) {
+ for (GuidIndex = 0; GuidIndex < RegExSyntaxTypeListSize / sizeof (EFI_GUID); GuidIndex++) {
if (CompareGuid (&RegExSyntaxTypeList[GuidIndex], SyntaxType)) {
//
// Find the match type, return the value.
//
Result->Type = EFI_IFR_TYPE_BOOLEAN;
- Status = RegularExpressionProtocol->MatchString (
- RegularExpressionProtocol,
- String[0],
- String[1],
- SyntaxType,
- &Result->Value.b,
- NULL,
- &CapturesCount
- );
+ Status = RegularExpressionProtocol->MatchString (
+ RegularExpressionProtocol,
+ String[0],
+ String[1],
+ SyntaxType,
+ &Result->Value.b,
+ NULL,
+ &CapturesCount
+ );
goto Done;
}
}
@@ -1632,21 +1625,25 @@ IfrMatch2 (
// in any of the EFI_REGULAR_EXPRESSION_PROTOCOL instances.
//
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
Done:
if (String[0] != NULL) {
FreePool (String[0]);
}
+
if (String[1] != NULL) {
FreePool (String[1]);
}
+
if (RegExSyntaxTypeList != NULL) {
FreePool (RegExSyntaxTypeList);
}
+
if (HandleBuffer != NULL) {
FreePool (HandleBuffer);
}
+
return Status;
}
@@ -1700,7 +1697,8 @@ IfrFind (
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
- Base = (UINTN) Value[0].Value.u64;
+
+ Base = (UINTN)Value[0].Value.u64;
//
// String[0] - sub-string
@@ -1711,7 +1709,7 @@ IfrFind (
for (Index = 0; Index < 2; Index++) {
if (Value[Index + 1].Type != EFI_IFR_TYPE_STRING) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
@@ -1733,7 +1731,7 @@ IfrFind (
if (Base >= StrLen (String[1])) {
Result->Value.u64 = 0xFFFFFFFFFFFFFFFFULL;
} else {
- StringPtr = StrStr (String[1] + Base, String[0]);
+ StringPtr = StrStr (String[1] + Base, String[0]);
Result->Value.u64 = (StringPtr == NULL) ? 0xFFFFFFFFFFFFFFFFULL : (StringPtr - String[1]);
}
@@ -1741,6 +1739,7 @@ Done:
if (String[0] != NULL) {
FreePool (String[0]);
}
+
if (String[1] != NULL) {
FreePool (String[1]);
}
@@ -1748,7 +1747,6 @@ Done:
return Status;
}
-
/**
Evaluate opcode EFI_IFR_MID.
@@ -1795,25 +1793,28 @@ IfrMid (
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
- Length = (UINTN) Value[0].Value.u64;
+
+ Length = (UINTN)Value[0].Value.u64;
if (Value[1].Type > EFI_IFR_TYPE_NUM_SIZE_64) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
- Base = (UINTN) Value[1].Value.u64;
- if (Value[2].Type != EFI_IFR_TYPE_STRING && !IsTypeInBuffer(&Value[2])) {
+ Base = (UINTN)Value[1].Value.u64;
+
+ if ((Value[2].Type != EFI_IFR_TYPE_STRING) && !IsTypeInBuffer (&Value[2])) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
+
if (Value[2].Type == EFI_IFR_TYPE_STRING) {
String = GetToken (Value[2].Value.string, FormSet->HiiHandle);
if (String == NULL) {
return EFI_NOT_FOUND;
}
- if (Length == 0 || Base >= StrLen (String)) {
+ if ((Length == 0) || (Base >= StrLen (String))) {
SubString = gEmptyString;
} else {
SubString = String + Base;
@@ -1822,21 +1823,21 @@ IfrMid (
}
}
- Result->Type = EFI_IFR_TYPE_STRING;
+ Result->Type = EFI_IFR_TYPE_STRING;
Result->Value.string = NewString (SubString, FormSet->HiiHandle);
FreePool (String);
} else {
BufferLen = GetLengthForValue (&Value[2]);
- Buffer = GetBufferForValue (&Value[2]);
+ Buffer = GetBufferForValue (&Value[2]);
Result->Type = EFI_IFR_TYPE_BUFFER;
- if (Length == 0 || Base >= BufferLen) {
+ if ((Length == 0) || (Base >= BufferLen)) {
Result->BufferLen = 0;
- Result->Buffer = NULL;
+ Result->Buffer = NULL;
} else {
Result->BufferLen = (UINT16)((BufferLen - Base) < Length ? (BufferLen - Base) : Length);
- Result->Buffer = AllocateZeroPool (Result->BufferLen);
+ Result->Buffer = AllocateZeroPool (Result->BufferLen);
ASSERT (Result->Buffer != NULL);
CopyMem (Result->Buffer, &Buffer[Base], Result->BufferLen);
}
@@ -1849,7 +1850,6 @@ IfrMid (
return Status;
}
-
/**
Evaluate opcode EFI_IFR_TOKEN.
@@ -1896,7 +1896,8 @@ IfrToken (
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
- Count = (UINTN) Value[0].Value.u64;
+
+ Count = (UINTN)Value[0].Value.u64;
//
// String[0] - Delimiter
@@ -1907,7 +1908,7 @@ IfrToken (
for (Index = 0; Index < 2; Index++) {
if (Value[Index + 1].Type != EFI_IFR_TYPE_STRING) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
@@ -1930,6 +1931,7 @@ IfrToken (
} else {
break;
}
+
Count--;
}
@@ -1948,13 +1950,14 @@ IfrToken (
}
}
- Result->Type = EFI_IFR_TYPE_STRING;
+ Result->Type = EFI_IFR_TYPE_STRING;
Result->Value.string = NewString (SubString, FormSet->HiiHandle);
Done:
if (String[0] != NULL) {
FreePool (String[0]);
}
+
if (String[1] != NULL) {
FreePool (String[1]);
}
@@ -1962,7 +1965,6 @@ Done:
return Status;
}
-
/**
Evaluate opcode EFI_IFR_SPAN.
@@ -2011,7 +2013,8 @@ IfrSpan (
Result->Type = EFI_IFR_TYPE_UNDEFINED;
return EFI_SUCCESS;
}
- Base = (UINTN) Value[0].Value.u64;
+
+ Base = (UINTN)Value[0].Value.u64;
//
// String[0] - Charset
@@ -2022,12 +2025,12 @@ IfrSpan (
for (Index = 0; Index < 2; Index++) {
if (Value[Index + 1].Type != EFI_IFR_TYPE_STRING) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
String[Index] = GetToken (Value[Index + 1].Value.string, FormSet->HiiHandle);
- if (String [Index] == NULL) {
+ if (String[Index] == NULL) {
Status = EFI_NOT_FOUND;
goto Done;
}
@@ -2035,17 +2038,17 @@ IfrSpan (
if (Base >= StrLen (String[1])) {
Result->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
- Found = FALSE;
+ Found = FALSE;
StringPtr = String[1] + Base;
- Charset = String[0];
+ Charset = String[0];
while (*StringPtr != 0 && !Found) {
Index = 0;
while (Charset[Index] != 0) {
- if (*StringPtr >= Charset[Index] && *StringPtr <= Charset[Index + 1]) {
+ if ((*StringPtr >= Charset[Index]) && (*StringPtr <= Charset[Index + 1])) {
if (Flags == EFI_IFR_FLAGS_FIRST_MATCHING) {
Found = TRUE;
break;
@@ -2056,6 +2059,7 @@ IfrSpan (
break;
}
}
+
//
// Skip characters pair representing low-end of a range and high-end of a range
//
@@ -2067,13 +2071,14 @@ IfrSpan (
}
}
- Result->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Result->Type = EFI_IFR_TYPE_NUM_SIZE_64;
Result->Value.u64 = StringPtr - String[1];
Done:
if (String[0] != NULL) {
FreePool (String[0]);
}
+
if (String[1] != NULL) {
FreePool (String[1]);
}
@@ -2081,7 +2086,6 @@ Done:
return Status;
}
-
/**
Zero extend integer/boolean/date/time to UINT64 for comparing.
@@ -2090,39 +2094,39 @@ Done:
**/
VOID
ExtendValueToU64 (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
UINT64 Temp;
Temp = 0;
switch (Value->Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- Temp = Value->Value.u8;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ Temp = Value->Value.u8;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- Temp = Value->Value.u16;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ Temp = Value->Value.u16;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- Temp = Value->Value.u32;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ Temp = Value->Value.u32;
+ break;
- case EFI_IFR_TYPE_BOOLEAN:
- Temp = Value->Value.b;
- break;
+ case EFI_IFR_TYPE_BOOLEAN:
+ Temp = Value->Value.b;
+ break;
- case EFI_IFR_TYPE_TIME:
- Temp = Value->Value.u32 & 0xffffff;
- break;
+ case EFI_IFR_TYPE_TIME:
+ Temp = Value->Value.u32 & 0xffffff;
+ break;
- case EFI_IFR_TYPE_DATE:
- Temp = Value->Value.u32;
- break;
+ case EFI_IFR_TYPE_DATE:
+ Temp = Value->Value.u32;
+ break;
- default:
- return;
+ default:
+ return;
}
Value->Value.u64 = Temp;
@@ -2138,7 +2142,7 @@ ExtendValueToU64 (
**/
UINT64
HiiValueToUINT64 (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
)
{
UINT64 RetVal;
@@ -2146,33 +2150,33 @@ HiiValueToUINT64 (
RetVal = 0;
switch (Value->Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- RetVal = Value->Value.u8;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ RetVal = Value->Value.u8;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- RetVal = Value->Value.u16;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ RetVal = Value->Value.u16;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- RetVal = Value->Value.u32;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ RetVal = Value->Value.u32;
+ break;
- case EFI_IFR_TYPE_BOOLEAN:
- RetVal = Value->Value.b;
- break;
+ case EFI_IFR_TYPE_BOOLEAN:
+ RetVal = Value->Value.b;
+ break;
- case EFI_IFR_TYPE_DATE:
- RetVal = *(UINT64*) &Value->Value.date;
- break;
+ case EFI_IFR_TYPE_DATE:
+ RetVal = *(UINT64 *)&Value->Value.date;
+ break;
- case EFI_IFR_TYPE_TIME:
- RetVal = (*(UINT64*) &Value->Value.time) & 0xffffff;
- break;
+ case EFI_IFR_TYPE_TIME:
+ RetVal = (*(UINT64 *)&Value->Value.time) & 0xffffff;
+ break;
- default:
- RetVal = Value->Value.u64;
- break;
+ default:
+ RetVal = Value->Value.u64;
+ break;
}
return RetVal;
@@ -2210,8 +2214,8 @@ CompareHiiValue (
UINT8 *Buf2;
UINT16 Buf2Len;
- if (Value1->Type == EFI_IFR_TYPE_STRING && Value2->Type == EFI_IFR_TYPE_STRING) {
- if (Value1->Value.string == 0 || Value2->Value.string == 0) {
+ if ((Value1->Type == EFI_IFR_TYPE_STRING) && (Value2->Type == EFI_IFR_TYPE_STRING)) {
+ if ((Value1->Value.string == 0) || (Value2->Value.string == 0)) {
//
// StringId 0 is reserved
//
@@ -2248,13 +2252,13 @@ CompareHiiValue (
//
// Take types(date, time, ref, buffer) as buffer
//
- if (IsTypeInBuffer(Value1) && IsTypeInBuffer(Value2)) {
- Buf1 = GetBufferForValue(Value1);
- Buf1Len = GetLengthForValue(Value1);
- Buf2 = GetBufferForValue(Value2);
- Buf2Len = GetLengthForValue(Value2);
+ if (IsTypeInBuffer (Value1) && IsTypeInBuffer (Value2)) {
+ Buf1 = GetBufferForValue (Value1);
+ Buf1Len = GetLengthForValue (Value1);
+ Buf2 = GetBufferForValue (Value2);
+ Buf2Len = GetLengthForValue (Value2);
- Len = Buf1Len > Buf2Len ? Buf2Len : Buf1Len;
+ Len = Buf1Len > Buf2Len ? Buf2Len : Buf1Len;
*Result = CompareMem (Buf1, Buf2, Len);
if ((*Result == 0) && (Buf1Len != Buf2Len)) {
//
@@ -2263,14 +2267,15 @@ CompareHiiValue (
//
*Result = Buf1Len > Buf2Len ? 1 : -1;
}
+
return EFI_SUCCESS;
}
//
// Take types(integer, boolean) as integer
//
- if (IsTypeInUINT64(Value1) && IsTypeInUINT64(Value2)) {
- Temp64 = HiiValueToUINT64(Value1) - HiiValueToUINT64(Value2);
+ if (IsTypeInUINT64 (Value1) && IsTypeInUINT64 (Value2)) {
+ Temp64 = HiiValueToUINT64 (Value1) - HiiValueToUINT64 (Value2);
if (Temp64 > 0) {
*Result = 1;
} else if (Temp64 < 0) {
@@ -2295,24 +2300,24 @@ CompareHiiValue (
**/
BOOLEAN
CheckUserPrivilege (
- IN EFI_GUID *Guid
+ IN EFI_GUID *Guid
)
{
- EFI_STATUS Status;
- EFI_USER_PROFILE_HANDLE UserProfileHandle;
- EFI_USER_INFO_HANDLE UserInfoHandle;
- EFI_USER_INFO *UserInfo;
- EFI_GUID *UserPermissionsGuid;
- UINTN UserInfoSize;
- UINTN AccessControlDataSize;
- EFI_USER_INFO_ACCESS_CONTROL *AccessControl;
- UINTN RemainSize;
+ EFI_STATUS Status;
+ EFI_USER_PROFILE_HANDLE UserProfileHandle;
+ EFI_USER_INFO_HANDLE UserInfoHandle;
+ EFI_USER_INFO *UserInfo;
+ EFI_GUID *UserPermissionsGuid;
+ UINTN UserInfoSize;
+ UINTN AccessControlDataSize;
+ EFI_USER_INFO_ACCESS_CONTROL *AccessControl;
+ UINTN RemainSize;
if (mUserManager == NULL) {
Status = gBS->LocateProtocol (
&gEfiUserManagerProtocolGuid,
NULL,
- (VOID **) &mUserManager
+ (VOID **)&mUserManager
);
if (EFI_ERROR (Status)) {
///
@@ -2332,59 +2337,64 @@ CheckUserPrivilege (
/// to look for any EFI_USER_INFO_ACCESS_SETUP record.
///
- for (UserInfoHandle = NULL;;) {
+ for (UserInfoHandle = NULL; ;) {
Status = mUserManager->GetNextInfo (mUserManager, UserProfileHandle, &UserInfoHandle);
if (EFI_ERROR (Status)) {
break;
}
UserInfoSize = 0;
- Status = mUserManager->GetInfo (mUserManager, UserProfileHandle, UserInfoHandle, NULL, &UserInfoSize);
+ Status = mUserManager->GetInfo (mUserManager, UserProfileHandle, UserInfoHandle, NULL, &UserInfoSize);
if (Status != EFI_BUFFER_TOO_SMALL) {
continue;
}
- UserInfo = (EFI_USER_INFO *) AllocatePool (UserInfoSize);
+ UserInfo = (EFI_USER_INFO *)AllocatePool (UserInfoSize);
if (UserInfo == NULL) {
break;
}
Status = mUserManager->GetInfo (mUserManager, UserProfileHandle, UserInfoHandle, UserInfo, &UserInfoSize);
if (EFI_ERROR (Status) ||
- UserInfo->InfoType != EFI_USER_INFO_ACCESS_POLICY_RECORD ||
- UserInfo->InfoSize <= sizeof (EFI_USER_INFO)) {
+ (UserInfo->InfoType != EFI_USER_INFO_ACCESS_POLICY_RECORD) ||
+ (UserInfo->InfoSize <= sizeof (EFI_USER_INFO)))
+ {
FreePool (UserInfo);
continue;
}
- RemainSize = UserInfo->InfoSize - sizeof (EFI_USER_INFO);
+ RemainSize = UserInfo->InfoSize - sizeof (EFI_USER_INFO);
AccessControl = (EFI_USER_INFO_ACCESS_CONTROL *)(UserInfo + 1);
while (RemainSize >= sizeof (EFI_USER_INFO_ACCESS_CONTROL)) {
- if (RemainSize < AccessControl->Size || AccessControl->Size < sizeof (EFI_USER_INFO_ACCESS_CONTROL)) {
+ if ((RemainSize < AccessControl->Size) || (AccessControl->Size < sizeof (EFI_USER_INFO_ACCESS_CONTROL))) {
break;
}
+
if (AccessControl->Type == EFI_USER_INFO_ACCESS_SETUP) {
///
/// Check if current user has the privilege specified by the permissions GUID.
///
- UserPermissionsGuid = (EFI_GUID *)(AccessControl + 1);
+ UserPermissionsGuid = (EFI_GUID *)(AccessControl + 1);
AccessControlDataSize = AccessControl->Size - sizeof (EFI_USER_INFO_ACCESS_CONTROL);
while (AccessControlDataSize >= sizeof (EFI_GUID)) {
if (CompareGuid (Guid, UserPermissionsGuid)) {
FreePool (UserInfo);
return TRUE;
}
+
UserPermissionsGuid++;
AccessControlDataSize -= sizeof (EFI_GUID);
}
}
- RemainSize -= AccessControl->Size;
+
+ RemainSize -= AccessControl->Size;
AccessControl = (EFI_USER_INFO_ACCESS_CONTROL *)((UINT8 *)AccessControl + AccessControl->Size);
}
FreePool (UserInfo);
}
+
return FALSE;
}
@@ -2409,24 +2419,26 @@ GetQuestionValueFromForm (
OUT EFI_HII_VALUE *Value
)
{
- EFI_STATUS Status;
- EFI_HII_HANDLE HiiHandle;
- FORM_BROWSER_STATEMENT *Question;
- FORM_BROWSER_FORMSET *FormSet;
- FORM_BROWSER_FORM *Form;
- BOOLEAN GetTheVal;
- LIST_ENTRY *Link;
+ EFI_STATUS Status;
+ EFI_HII_HANDLE HiiHandle;
+ FORM_BROWSER_STATEMENT *Question;
+ FORM_BROWSER_FORMSET *FormSet;
+ FORM_BROWSER_FORM *Form;
+ BOOLEAN GetTheVal;
+ LIST_ENTRY *Link;
//
// The input parameter DevicePath or InputHiiHandle must have one valid input.
//
- ASSERT ((DevicePath != NULL && InputHiiHandle == NULL) ||
- (DevicePath == NULL && InputHiiHandle != NULL) );
+ ASSERT (
+ (DevicePath != NULL && InputHiiHandle == NULL) ||
+ (DevicePath == NULL && InputHiiHandle != NULL)
+ );
- GetTheVal = TRUE;
- HiiHandle = NULL;
- Question = NULL;
- Form = NULL;
+ GetTheVal = TRUE;
+ HiiHandle = NULL;
+ Question = NULL;
+ Form = NULL;
//
// Get HiiHandle.
@@ -2439,6 +2451,7 @@ GetQuestionValueFromForm (
} else {
HiiHandle = InputHiiHandle;
}
+
ASSERT (HiiHandle != NULL);
//
@@ -2446,7 +2459,7 @@ GetQuestionValueFromForm (
//
FormSet = AllocateZeroPool (sizeof (FORM_BROWSER_FORMSET));
ASSERT (FormSet != NULL);
- Status = InitializeFormSet(HiiHandle, FormSetGuid, FormSet);
+ Status = InitializeFormSet (HiiHandle, FormSetGuid, FormSet);
if (EFI_ERROR (Status)) {
GetTheVal = FALSE;
goto Done;
@@ -2455,7 +2468,7 @@ GetQuestionValueFromForm (
//
// Base on the Question Id to get the question info.
//
- Question = IdToQuestion(FormSet, NULL, QuestionId);
+ Question = IdToQuestion (FormSet, NULL, QuestionId);
if (Question == NULL) {
GetTheVal = FALSE;
goto Done;
@@ -2476,12 +2489,13 @@ GetQuestionValueFromForm (
Link = GetNextNode (&FormSet->FormListHead, Link);
Form = NULL;
}
+
ASSERT (Form != NULL);
//
// Get the question value.
//
- Status = GetQuestionValue(FormSet, Form, Question, GetSetValueWithEditBuffer);
+ Status = GetQuestionValue (FormSet, Form, Question, GetSetValueWithEditBuffer);
if (EFI_ERROR (Status)) {
GetTheVal = FALSE;
goto Done;
@@ -2525,31 +2539,31 @@ EvaluateExpression (
IN OUT FORM_EXPRESSION *Expression
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- EXPRESSION_OPCODE *OpCode;
- FORM_BROWSER_STATEMENT *Question;
- FORM_BROWSER_STATEMENT *Question2;
- UINT16 Index;
- EFI_HII_VALUE Data1;
- EFI_HII_VALUE Data2;
- EFI_HII_VALUE Data3;
- FORM_EXPRESSION *RuleExpression;
- EFI_HII_VALUE *Value;
- INTN Result;
- CHAR16 *StrPtr;
- CHAR16 *NameValue;
- UINT32 TempValue;
- LIST_ENTRY *SubExpressionLink;
- FORM_EXPRESSION *SubExpression;
- UINTN StackOffset;
- UINTN TempLength;
- CHAR16 TempStr[5];
- UINT8 DigitUint8;
- UINT8 *TempBuffer;
- EFI_TIME EfiTime;
- EFI_HII_VALUE QuestionVal;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ EXPRESSION_OPCODE *OpCode;
+ FORM_BROWSER_STATEMENT *Question;
+ FORM_BROWSER_STATEMENT *Question2;
+ UINT16 Index;
+ EFI_HII_VALUE Data1;
+ EFI_HII_VALUE Data2;
+ EFI_HII_VALUE Data3;
+ FORM_EXPRESSION *RuleExpression;
+ EFI_HII_VALUE *Value;
+ INTN Result;
+ CHAR16 *StrPtr;
+ CHAR16 *NameValue;
+ UINT32 TempValue;
+ LIST_ENTRY *SubExpressionLink;
+ FORM_EXPRESSION *SubExpression;
+ UINTN StackOffset;
+ UINTN TempLength;
+ CHAR16 TempStr[5];
+ UINT8 DigitUint8;
+ UINT8 *TempBuffer;
+ EFI_TIME EfiTime;
+ EFI_HII_VALUE QuestionVal;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
StrPtr = NULL;
@@ -2571,1020 +2585,1063 @@ EvaluateExpression (
ZeroMem (&Data2, sizeof (EFI_HII_VALUE));
ZeroMem (&Data3, sizeof (EFI_HII_VALUE));
- Value = &Data3;
+ Value = &Data3;
Value->Type = EFI_IFR_TYPE_BOOLEAN;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
switch (OpCode->Operand) {
- //
- // Built-in functions
- //
- case EFI_IFR_EQ_ID_VAL_OP:
- Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
- if (Question == NULL) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ //
+ // Built-in functions
+ //
+ case EFI_IFR_EQ_ID_VAL_OP:
+ Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
+ if (Question == NULL) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- Status = CompareHiiValue (&Question->HiiValue, &OpCode->Value, &Result, NULL);
- if (Status == EFI_UNSUPPORTED) {
- Status = EFI_SUCCESS;
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ Status = CompareHiiValue (&Question->HiiValue, &OpCode->Value, &Result, NULL);
+ if (Status == EFI_UNSUPPORTED) {
+ Status = EFI_SUCCESS;
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- Value->Value.b = (BOOLEAN) ((Result == 0) ? TRUE : FALSE);
- break;
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_IFR_EQ_ID_ID_OP:
- Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
- if (Question == NULL) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Value->Value.b = (BOOLEAN)((Result == 0) ? TRUE : FALSE);
break;
- }
- Question2 = IdToQuestion (FormSet, Form, OpCode->QuestionId2);
- if (Question2 == NULL) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ case EFI_IFR_EQ_ID_ID_OP:
+ Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
+ if (Question == NULL) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- Status = CompareHiiValue (&Question->HiiValue, &Question2->HiiValue, &Result, FormSet->HiiHandle);
- if (Status == EFI_UNSUPPORTED) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
- break;
- }
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- Value->Value.b = (BOOLEAN) ((Result == 0) ? TRUE : FALSE);
- break;
+ Question2 = IdToQuestion (FormSet, Form, OpCode->QuestionId2);
+ if (Question2 == NULL) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
+
+ Status = CompareHiiValue (&Question->HiiValue, &Question2->HiiValue, &Result, FormSet->HiiHandle);
+ if (Status == EFI_UNSUPPORTED) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Status = EFI_SUCCESS;
+ break;
+ }
- case EFI_IFR_EQ_ID_VAL_LIST_OP:
- Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
- if (Question == NULL) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+
+ Value->Value.b = (BOOLEAN)((Result == 0) ? TRUE : FALSE);
break;
- }
- Value->Value.b = FALSE;
- for (Index =0; Index < OpCode->ListLength; Index++) {
- if (Question->HiiValue.Value.u16 == OpCode->ValueList[Index]) {
- Value->Value.b = TRUE;
+ case EFI_IFR_EQ_ID_VAL_LIST_OP:
+ Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
+ if (Question == NULL) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
}
- }
- break;
- case EFI_IFR_DUP_OP:
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
-
- Status = PushExpression (Value);
- break;
+ Value->Value.b = FALSE;
+ for (Index = 0; Index < OpCode->ListLength; Index++) {
+ if (Question->HiiValue.Value.u16 == OpCode->ValueList[Index]) {
+ Value->Value.b = TRUE;
+ break;
+ }
+ }
- case EFI_IFR_QUESTION_REF1_OP:
- case EFI_IFR_THIS_OP:
- Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
- if (Question == NULL) {
- Status = EFI_NOT_FOUND;
- goto Done;
- }
+ break;
- Value = &Question->HiiValue;
- break;
+ case EFI_IFR_DUP_OP:
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_IFR_SECURITY_OP:
- Value->Value.b = CheckUserPrivilege (&OpCode->Guid);
- break;
+ Status = PushExpression (Value);
+ break;
- case EFI_IFR_GET_OP:
- //
- // Get Value from VarStore buffer, EFI VarStore, Name/Value VarStore.
- //
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- Value->Value.u8 = 0;
- if (OpCode->VarStorage != NULL) {
- switch (OpCode->VarStorage->Type) {
- case EFI_HII_VARSTORE_BUFFER:
- case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
- //
- // Get value from Edit Buffer
- //
- Value->Type = OpCode->ValueType;
- CopyMem (&Value->Value, OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, OpCode->ValueWidth);
- break;
- case EFI_HII_VARSTORE_NAME_VALUE:
- if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {
- //
- // Get value from string except for STRING value.
- //
- Status = GetValueByName (OpCode->VarStorage, OpCode->ValueName, &StrPtr, GetSetValueWithEditBuffer);
- if (!EFI_ERROR (Status)) {
- ASSERT (StrPtr != NULL);
- TempLength = StrLen (StrPtr);
- if (OpCode->ValueWidth >= ((TempLength + 1) / 2)) {
- Value->Type = OpCode->ValueType;
- TempBuffer = (UINT8 *) &Value->Value;
- ZeroMem (TempStr, sizeof (TempStr));
- for (Index = 0; Index < TempLength; Index ++) {
- TempStr[0] = StrPtr[TempLength - Index - 1];
- DigitUint8 = (UINT8) StrHexToUint64 (TempStr);
- if ((Index & 1) == 0) {
- TempBuffer [Index/2] = DigitUint8;
- } else {
- TempBuffer [Index/2] = (UINT8) ((DigitUint8 << 4) + TempBuffer [Index/2]);
- }
- }
- }
- }
- }
- break;
- case EFI_HII_VARSTORE_EFI_VARIABLE:
- //
- // Get value from variable.
- //
- TempLength = OpCode->ValueWidth;
- Value->Type = OpCode->ValueType;
- Status = gRT->GetVariable (
- OpCode->ValueName,
- &OpCode->VarStorage->Guid,
- NULL,
- &TempLength,
- &Value->Value
- );
- if (EFI_ERROR (Status)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- Value->Value.u8 = 0;
- }
- break;
- default:
- //
- // Not recognize storage.
- //
- Status = EFI_UNSUPPORTED;
+ case EFI_IFR_QUESTION_REF1_OP:
+ case EFI_IFR_THIS_OP:
+ Question = IdToQuestion (FormSet, Form, OpCode->QuestionId);
+ if (Question == NULL) {
+ Status = EFI_NOT_FOUND;
goto Done;
}
- } else {
+
+ Value = &Question->HiiValue;
+ break;
+
+ case EFI_IFR_SECURITY_OP:
+ Value->Value.b = CheckUserPrivilege (&OpCode->Guid);
+ break;
+
+ case EFI_IFR_GET_OP:
//
- // For Time/Date Data
+ // Get Value from VarStore buffer, EFI VarStore, Name/Value VarStore.
//
- if (OpCode->ValueType != EFI_IFR_TYPE_DATE && OpCode->ValueType != EFI_IFR_TYPE_TIME) {
- //
- // Only support Data/Time data when storage doesn't exist.
- //
- Status = EFI_UNSUPPORTED;
- goto Done;
- }
- Status = gRT->GetTime (&EfiTime, NULL);
- if (!EFI_ERROR (Status)) {
- if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {
- switch (OpCode->VarStoreInfo.VarOffset) {
- case 0x00:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
- Value->Value.u16 = EfiTime.Year;
- break;
- case 0x02:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = EfiTime.Month;
- break;
- case 0x03:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = EfiTime.Day;
- break;
- default:
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Value->Value.u8 = 0;
+ if (OpCode->VarStorage != NULL) {
+ switch (OpCode->VarStorage->Type) {
+ case EFI_HII_VARSTORE_BUFFER:
+ case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
//
- // Invalid Date field.
+ // Get value from Edit Buffer
//
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- } else {
- switch (OpCode->VarStoreInfo.VarOffset) {
- case 0x00:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = EfiTime.Hour;
+ Value->Type = OpCode->ValueType;
+ CopyMem (&Value->Value, OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, OpCode->ValueWidth);
break;
- case 0x01:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = EfiTime.Minute;
+ case EFI_HII_VARSTORE_NAME_VALUE:
+ if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {
+ //
+ // Get value from string except for STRING value.
+ //
+ Status = GetValueByName (OpCode->VarStorage, OpCode->ValueName, &StrPtr, GetSetValueWithEditBuffer);
+ if (!EFI_ERROR (Status)) {
+ ASSERT (StrPtr != NULL);
+ TempLength = StrLen (StrPtr);
+ if (OpCode->ValueWidth >= ((TempLength + 1) / 2)) {
+ Value->Type = OpCode->ValueType;
+ TempBuffer = (UINT8 *)&Value->Value;
+ ZeroMem (TempStr, sizeof (TempStr));
+ for (Index = 0; Index < TempLength; Index++) {
+ TempStr[0] = StrPtr[TempLength - Index - 1];
+ DigitUint8 = (UINT8)StrHexToUint64 (TempStr);
+ if ((Index & 1) == 0) {
+ TempBuffer[Index/2] = DigitUint8;
+ } else {
+ TempBuffer[Index/2] = (UINT8)((DigitUint8 << 4) + TempBuffer[Index/2]);
+ }
+ }
+ }
+ }
+ }
+
break;
- case 0x02:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = EfiTime.Second;
+ case EFI_HII_VARSTORE_EFI_VARIABLE:
+ //
+ // Get value from variable.
+ //
+ TempLength = OpCode->ValueWidth;
+ Value->Type = OpCode->ValueType;
+ Status = gRT->GetVariable (
+ OpCode->ValueName,
+ &OpCode->VarStorage->Guid,
+ NULL,
+ &TempLength,
+ &Value->Value
+ );
+ if (EFI_ERROR (Status)) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Value->Value.u8 = 0;
+ }
+
break;
default:
//
- // Invalid Time field.
+ // Not recognize storage.
//
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_UNSUPPORTED;
goto Done;
+ }
+ } else {
+ //
+ // For Time/Date Data
+ //
+ if ((OpCode->ValueType != EFI_IFR_TYPE_DATE) && (OpCode->ValueType != EFI_IFR_TYPE_TIME)) {
+ //
+ // Only support Data/Time data when storage doesn't exist.
+ //
+ Status = EFI_UNSUPPORTED;
+ goto Done;
+ }
+
+ Status = gRT->GetTime (&EfiTime, NULL);
+ if (!EFI_ERROR (Status)) {
+ if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {
+ switch (OpCode->VarStoreInfo.VarOffset) {
+ case 0x00:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
+ Value->Value.u16 = EfiTime.Year;
+ break;
+ case 0x02:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = EfiTime.Month;
+ break;
+ case 0x03:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = EfiTime.Day;
+ break;
+ default:
+ //
+ // Invalid Date field.
+ //
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+ } else {
+ switch (OpCode->VarStoreInfo.VarOffset) {
+ case 0x00:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = EfiTime.Hour;
+ break;
+ case 0x01:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = EfiTime.Minute;
+ break;
+ case 0x02:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = EfiTime.Second;
+ break;
+ default:
+ //
+ // Invalid Time field.
+ //
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
}
}
}
- }
- break;
+ break;
- case EFI_IFR_QUESTION_REF3_OP:
- //
- // EFI_IFR_QUESTION_REF3
- // Pop an expression from the expression stack
- //
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ case EFI_IFR_QUESTION_REF3_OP:
+ //
+ // EFI_IFR_QUESTION_REF3
+ // Pop an expression from the expression stack
+ //
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- //
- // Validate the expression value
- //
- if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ //
+ // Validate the expression value
+ //
+ if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- if (OpCode->DevicePath != 0) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ if (OpCode->DevicePath != 0) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+
+ StrPtr = GetToken (OpCode->DevicePath, FormSet->HiiHandle);
+ if ((StrPtr != NULL) && (mPathFromText != NULL)) {
+ DevicePath = mPathFromText->ConvertTextToDevicePath (StrPtr);
+ if ((DevicePath != NULL) && GetQuestionValueFromForm (DevicePath, NULL, &OpCode->Guid, Value->Value.u16, &QuestionVal)) {
+ Value = &QuestionVal;
+ }
- StrPtr = GetToken (OpCode->DevicePath, FormSet->HiiHandle);
- if (StrPtr != NULL && mPathFromText != NULL) {
- DevicePath = mPathFromText->ConvertTextToDevicePath(StrPtr);
- if (DevicePath != NULL && GetQuestionValueFromForm(DevicePath, NULL, &OpCode->Guid, Value->Value.u16, &QuestionVal)) {
- Value = &QuestionVal;
+ if (DevicePath != NULL) {
+ FreePool (DevicePath);
+ }
}
- if (DevicePath != NULL) {
- FreePool (DevicePath);
+
+ if (StrPtr != NULL) {
+ FreePool (StrPtr);
+ }
+ } else if (IsZeroGuid (&OpCode->Guid)) {
+ if (!GetQuestionValueFromForm (NULL, FormSet->HiiHandle, &OpCode->Guid, Value->Value.u16, &QuestionVal)) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
}
- }
- if (StrPtr != NULL) {
- FreePool (StrPtr);
+ Value = &QuestionVal;
+ } else {
+ Question = IdToQuestion (FormSet, Form, Value->Value.u16);
+ if (Question == NULL) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
+
+ //
+ // push the questions' value on to the expression stack
+ //
+ Value = &Question->HiiValue;
}
- } else if (IsZeroGuid (&OpCode->Guid)) {
- if (!GetQuestionValueFromForm(NULL, FormSet->HiiHandle, &OpCode->Guid, Value->Value.u16, &QuestionVal)){
+
+ break;
+
+ case EFI_IFR_RULE_REF_OP:
+ //
+ // Find expression for this rule
+ //
+ RuleExpression = RuleIdToExpression (Form, OpCode->RuleId);
+ if (RuleExpression == NULL) {
Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
}
- Value = &QuestionVal;
- } else {
- Question = IdToQuestion (FormSet, Form, Value->Value.u16);
- if (Question == NULL) {
+
+ //
+ // Evaluate this rule expression
+ //
+ Status = EvaluateExpression (FormSet, Form, RuleExpression);
+ if (EFI_ERROR (Status) || (RuleExpression->Result.Type == EFI_IFR_TYPE_UNDEFINED)) {
Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
}
- //
- // push the questions' value on to the expression stack
- //
- Value = &Question->HiiValue;
- }
- break;
+ Value = &RuleExpression->Result;
+ break;
+
+ case EFI_IFR_STRING_REF1_OP:
+ Value->Type = EFI_IFR_TYPE_STRING;
+ Value->Value.string = OpCode->Value.Value.string;
+ break;
- case EFI_IFR_RULE_REF_OP:
- //
- // Find expression for this rule
//
- RuleExpression = RuleIdToExpression (Form, OpCode->RuleId);
- if (RuleExpression == NULL) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ // Constant
+ //
+ case EFI_IFR_TRUE_OP:
+ case EFI_IFR_FALSE_OP:
+ case EFI_IFR_ONE_OP:
+ case EFI_IFR_ONES_OP:
+ case EFI_IFR_UINT8_OP:
+ case EFI_IFR_UINT16_OP:
+ case EFI_IFR_UINT32_OP:
+ case EFI_IFR_UINT64_OP:
+ case EFI_IFR_UNDEFINED_OP:
+ case EFI_IFR_VERSION_OP:
+ case EFI_IFR_ZERO_OP:
+ Value = &OpCode->Value;
break;
- }
//
- // Evaluate this rule expression
+ // unary-op
//
- Status = EvaluateExpression (FormSet, Form, RuleExpression);
- if (EFI_ERROR (Status) || RuleExpression->Result.Type == EFI_IFR_TYPE_UNDEFINED) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ case EFI_IFR_LENGTH_OP:
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- Value = &RuleExpression->Result;
- break;
+ if ((Value->Type != EFI_IFR_TYPE_STRING) && !IsTypeInBuffer (Value)) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- case EFI_IFR_STRING_REF1_OP:
- Value->Type = EFI_IFR_TYPE_STRING;
- Value->Value.string = OpCode->Value.Value.string;
- break;
+ if (Value->Type == EFI_IFR_TYPE_STRING) {
+ StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);
+ if (StrPtr == NULL) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
- //
- // Constant
- //
- case EFI_IFR_TRUE_OP:
- case EFI_IFR_FALSE_OP:
- case EFI_IFR_ONE_OP:
- case EFI_IFR_ONES_OP:
- case EFI_IFR_UINT8_OP:
- case EFI_IFR_UINT16_OP:
- case EFI_IFR_UINT32_OP:
- case EFI_IFR_UINT64_OP:
- case EFI_IFR_UNDEFINED_OP:
- case EFI_IFR_VERSION_OP:
- case EFI_IFR_ZERO_OP:
- Value = &OpCode->Value;
- break;
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Value->Value.u64 = StrLen (StrPtr);
+ FreePool (StrPtr);
+ } else {
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Value->Value.u64 = GetLengthForValue (Value);
+ FreePool (Value->Buffer);
+ }
- //
- // unary-op
- //
- case EFI_IFR_LENGTH_OP:
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- if (Value->Type != EFI_IFR_TYPE_STRING && !IsTypeInBuffer (Value)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
- }
- if (Value->Type == EFI_IFR_TYPE_STRING) {
- StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);
- if (StrPtr == NULL) {
- Status = EFI_INVALID_PARAMETER;
+ case EFI_IFR_NOT_OP:
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
goto Done;
}
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- Value->Value.u64 = StrLen (StrPtr);
- FreePool (StrPtr);
- } else {
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- Value->Value.u64 = GetLengthForValue(Value);
- FreePool (Value->Buffer);
- }
- break;
-
- case EFI_IFR_NOT_OP:
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- if (Value->Type != EFI_IFR_TYPE_BOOLEAN) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
- Value->Value.b = (BOOLEAN) (!Value->Value.b);
- break;
-
- case EFI_IFR_QUESTION_REF2_OP:
- //
- // Pop an expression from the expression stack
- //
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ if (Value->Type != EFI_IFR_TYPE_BOOLEAN) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- //
- // Validate the expression value
- //
- if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Value->Value.b = (BOOLEAN)(!Value->Value.b);
break;
- }
- Question = IdToQuestion (FormSet, Form, Value->Value.u16);
- if (Question == NULL) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ case EFI_IFR_QUESTION_REF2_OP:
+ //
+ // Pop an expression from the expression stack
+ //
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- Value = &Question->HiiValue;
- break;
+ //
+ // Validate the expression value
+ //
+ if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- case EFI_IFR_STRING_REF2_OP:
- //
- // Pop an expression from the expression stack
- //
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ Question = IdToQuestion (FormSet, Form, Value->Value.u16);
+ if (Question == NULL) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- //
- // Validate the expression value
- //
- if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Value = &Question->HiiValue;
break;
- }
- Value->Type = EFI_IFR_TYPE_STRING;
- StrPtr = GetToken (Value->Value.u16, FormSet->HiiHandle);
- if (StrPtr == NULL) {
+ case EFI_IFR_STRING_REF2_OP:
//
- // If String not exit, push an empty string
+ // Pop an expression from the expression stack
//
- Value->Value.string = NewString (gEmptyString, FormSet->HiiHandle);
- } else {
- Index = (UINT16) Value->Value.u64;
- Value->Value.string = Index;
- FreePool (StrPtr);
- }
- break;
-
- case EFI_IFR_TO_BOOLEAN_OP:
- //
- // Pop an expression from the expression stack
- //
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- //
- // Convert an expression to a Boolean
- //
- if (Value->Type <= EFI_IFR_TYPE_DATE) {
//
- // When converting from an unsigned integer, zero will be converted to
- // FALSE and any other value will be converted to TRUE.
+ // Validate the expression value
//
- Value->Value.b = (BOOLEAN) (HiiValueToUINT64(Value) != 0);
+ if ((Value->Type > EFI_IFR_TYPE_NUM_SIZE_64) || (Value->Value.u64 > 0xffff)) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- Value->Type = EFI_IFR_TYPE_BOOLEAN;
- } else if (Value->Type == EFI_IFR_TYPE_STRING) {
+ Value->Type = EFI_IFR_TYPE_STRING;
+ StrPtr = GetToken (Value->Value.u16, FormSet->HiiHandle);
+ if (StrPtr == NULL) {
+ //
+ // If String not exit, push an empty string
+ //
+ Value->Value.string = NewString (gEmptyString, FormSet->HiiHandle);
+ } else {
+ Index = (UINT16)Value->Value.u64;
+ Value->Value.string = Index;
+ FreePool (StrPtr);
+ }
+
+ break;
+
+ case EFI_IFR_TO_BOOLEAN_OP:
//
- // When converting from a string, if case-insensitive compare
- // with "true" is True, then push True. If a case-insensitive compare
- // with "false" is True, then push False. Otherwise, push Undefined.
+ // Pop an expression from the expression stack
//
- StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);
- if (StrPtr == NULL) {
- Status = EFI_INVALID_PARAMETER;
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
goto Done;
}
- IfrStrToUpper (StrPtr);
- if (StrCmp (StrPtr, L"TRUE") == 0){
- Value->Value.b = TRUE;
- Value->Type = EFI_IFR_TYPE_BOOLEAN;
- } else if (StrCmp (StrPtr, L"FALSE") == 0) {
- Value->Value.b = FALSE;
- Value->Type = EFI_IFR_TYPE_BOOLEAN;
- } else {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- }
- FreePool (StrPtr);
- } else if (Value->Type == EFI_IFR_TYPE_BUFFER) {
//
- // When converting from a buffer, if the buffer is all zeroes,
- // then push False. Otherwise push True.
+ // Convert an expression to a Boolean
//
- for (Index =0; Index < Value->BufferLen; Index ++) {
- if (Value->Buffer[Index] != 0) {
- break;
+ if (Value->Type <= EFI_IFR_TYPE_DATE) {
+ //
+ // When converting from an unsigned integer, zero will be converted to
+ // FALSE and any other value will be converted to TRUE.
+ //
+ Value->Value.b = (BOOLEAN)(HiiValueToUINT64 (Value) != 0);
+
+ Value->Type = EFI_IFR_TYPE_BOOLEAN;
+ } else if (Value->Type == EFI_IFR_TYPE_STRING) {
+ //
+ // When converting from a string, if case-insensitive compare
+ // with "true" is True, then push True. If a case-insensitive compare
+ // with "false" is True, then push False. Otherwise, push Undefined.
+ //
+ StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);
+ if (StrPtr == NULL) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
}
- }
- if (Index >= Value->BufferLen) {
- Value->Value.b = FALSE;
- } else {
- Value->Value.b = TRUE;
- }
- Value->Type = EFI_IFR_TYPE_BOOLEAN;
- FreePool (Value->Buffer);
- }
- break;
+ IfrStrToUpper (StrPtr);
+ if (StrCmp (StrPtr, L"TRUE") == 0) {
+ Value->Value.b = TRUE;
+ Value->Type = EFI_IFR_TYPE_BOOLEAN;
+ } else if (StrCmp (StrPtr, L"FALSE") == 0) {
+ Value->Value.b = FALSE;
+ Value->Type = EFI_IFR_TYPE_BOOLEAN;
+ } else {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ }
- case EFI_IFR_TO_STRING_OP:
- Status = IfrToString (FormSet, OpCode->Format, Value);
- break;
+ FreePool (StrPtr);
+ } else if (Value->Type == EFI_IFR_TYPE_BUFFER) {
+ //
+ // When converting from a buffer, if the buffer is all zeroes,
+ // then push False. Otherwise push True.
+ //
+ for (Index = 0; Index < Value->BufferLen; Index++) {
+ if (Value->Buffer[Index] != 0) {
+ break;
+ }
+ }
- case EFI_IFR_TO_UINT_OP:
- Status = IfrToUint (FormSet, Value);
- break;
+ if (Index >= Value->BufferLen) {
+ Value->Value.b = FALSE;
+ } else {
+ Value->Value.b = TRUE;
+ }
- case EFI_IFR_TO_LOWER_OP:
- case EFI_IFR_TO_UPPER_OP:
- Status = InitializeUnicodeCollationProtocol ();
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ Value->Type = EFI_IFR_TYPE_BOOLEAN;
+ FreePool (Value->Buffer);
+ }
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ break;
- if (Value->Type != EFI_IFR_TYPE_STRING) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ case EFI_IFR_TO_STRING_OP:
+ Status = IfrToString (FormSet, OpCode->Format, Value);
break;
- }
- StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);
- if (StrPtr == NULL) {
- Status = EFI_NOT_FOUND;
- goto Done;
- }
+ case EFI_IFR_TO_UINT_OP:
+ Status = IfrToUint (FormSet, Value);
+ break;
- if (OpCode->Operand == EFI_IFR_TO_LOWER_OP) {
- mUnicodeCollation->StrLwr (mUnicodeCollation, StrPtr);
- } else {
- mUnicodeCollation->StrUpr (mUnicodeCollation, StrPtr);
- }
- Value->Value.string = NewString (StrPtr, FormSet->HiiHandle);
- FreePool (StrPtr);
- break;
+ case EFI_IFR_TO_LOWER_OP:
+ case EFI_IFR_TO_UPPER_OP:
+ Status = InitializeUnicodeCollationProtocol ();
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_IFR_BITWISE_NOT_OP:
- //
- // Pop an expression from the expression stack
- //
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- if (Value->Type > EFI_IFR_TYPE_DATE) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+
+ if (Value->Type != EFI_IFR_TYPE_STRING) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
+
+ StrPtr = GetToken (Value->Value.string, FormSet->HiiHandle);
+ if (StrPtr == NULL) {
+ Status = EFI_NOT_FOUND;
+ goto Done;
+ }
+
+ if (OpCode->Operand == EFI_IFR_TO_LOWER_OP) {
+ mUnicodeCollation->StrLwr (mUnicodeCollation, StrPtr);
+ } else {
+ mUnicodeCollation->StrUpr (mUnicodeCollation, StrPtr);
+ }
+
+ Value->Value.string = NewString (StrPtr, FormSet->HiiHandle);
+ FreePool (StrPtr);
break;
- }
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- Value->Value.u64 = ~ HiiValueToUINT64(Value);
- break;
+ case EFI_IFR_BITWISE_NOT_OP:
+ //
+ // Pop an expression from the expression stack
+ //
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_IFR_SET_OP:
- //
- // Pop an expression from the expression stack
- //
- Status = PopExpression (Value);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- Data1.Type = EFI_IFR_TYPE_BOOLEAN;
- Data1.Value.b = FALSE;
- //
- // Set value to var storage buffer
- //
- if (OpCode->VarStorage != NULL) {
- switch (OpCode->VarStorage->Type) {
- case EFI_HII_VARSTORE_BUFFER:
- case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
- CopyMem (OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, &Value->Value, OpCode->ValueWidth);
- Data1.Value.b = TRUE;
- break;
- case EFI_HII_VARSTORE_NAME_VALUE:
- if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {
- NameValue = AllocateZeroPool ((OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16));
- ASSERT (NameValue != NULL);
- //
- // Convert Buffer to Hex String
- //
- TempBuffer = (UINT8 *) &Value->Value + OpCode->ValueWidth - 1;
- StrPtr = NameValue;
- for (Index = 0; Index < OpCode->ValueWidth; Index ++, TempBuffer --) {
- UnicodeValueToStringS (
- StrPtr,
- (OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16) - ((UINTN)StrPtr - (UINTN)NameValue),
- PREFIX_ZERO | RADIX_HEX,
- *TempBuffer,
- 2
- );
- StrPtr += StrnLenS (StrPtr, OpCode->ValueWidth * 2 + 1 - ((UINTN)StrPtr - (UINTN)NameValue) / sizeof (CHAR16));
- }
- Status = SetValueByName (OpCode->VarStorage, OpCode->ValueName, NameValue, GetSetValueWithEditBuffer, NULL);
- FreePool (NameValue);
- if (!EFI_ERROR (Status)) {
- Data1.Value.b = TRUE;
- }
- }
- break;
- case EFI_HII_VARSTORE_EFI_VARIABLE:
- Status = gRT->SetVariable (
- OpCode->ValueName,
- &OpCode->VarStorage->Guid,
- OpCode->VarStorage->Attributes,
- OpCode->ValueWidth,
- &Value->Value
- );
- if (!EFI_ERROR (Status)) {
- Data1.Value.b = TRUE;
- }
+ if (Value->Type > EFI_IFR_TYPE_DATE) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
- default:
- //
- // Not recognize storage.
- //
- Status = EFI_UNSUPPORTED;
- goto Done;
}
- } else {
+
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Value->Value.u64 = ~HiiValueToUINT64(Value);
+ break;
+
+ case EFI_IFR_SET_OP:
//
- // For Time/Date Data
+ // Pop an expression from the expression stack
//
- if (OpCode->ValueType != EFI_IFR_TYPE_DATE && OpCode->ValueType != EFI_IFR_TYPE_TIME) {
- //
- // Only support Data/Time data when storage doesn't exist.
- //
- Status = EFI_UNSUPPORTED;
+ Status = PopExpression (Value);
+ if (EFI_ERROR (Status)) {
goto Done;
}
- Status = gRT->GetTime (&EfiTime, NULL);
- if (!EFI_ERROR (Status)) {
- if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {
- switch (OpCode->VarStoreInfo.VarOffset) {
- case 0x00:
- EfiTime.Year = Value->Value.u16;
- break;
- case 0x02:
- EfiTime.Month = Value->Value.u8;
- break;
- case 0x03:
- EfiTime.Day = Value->Value.u8;
- break;
- default:
- //
- // Invalid Date field.
- //
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- } else {
- switch (OpCode->VarStoreInfo.VarOffset) {
- case 0x00:
- EfiTime.Hour = Value->Value.u8;
+
+ Data1.Type = EFI_IFR_TYPE_BOOLEAN;
+ Data1.Value.b = FALSE;
+ //
+ // Set value to var storage buffer
+ //
+ if (OpCode->VarStorage != NULL) {
+ switch (OpCode->VarStorage->Type) {
+ case EFI_HII_VARSTORE_BUFFER:
+ case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
+ CopyMem (OpCode->VarStorage->EditBuffer + OpCode->VarStoreInfo.VarOffset, &Value->Value, OpCode->ValueWidth);
+ Data1.Value.b = TRUE;
break;
- case 0x01:
- EfiTime.Minute = Value->Value.u8;
+ case EFI_HII_VARSTORE_NAME_VALUE:
+ if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {
+ NameValue = AllocateZeroPool ((OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16));
+ ASSERT (NameValue != NULL);
+ //
+ // Convert Buffer to Hex String
+ //
+ TempBuffer = (UINT8 *)&Value->Value + OpCode->ValueWidth - 1;
+ StrPtr = NameValue;
+ for (Index = 0; Index < OpCode->ValueWidth; Index++, TempBuffer--) {
+ UnicodeValueToStringS (
+ StrPtr,
+ (OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16) - ((UINTN)StrPtr - (UINTN)NameValue),
+ PREFIX_ZERO | RADIX_HEX,
+ *TempBuffer,
+ 2
+ );
+ StrPtr += StrnLenS (StrPtr, OpCode->ValueWidth * 2 + 1 - ((UINTN)StrPtr - (UINTN)NameValue) / sizeof (CHAR16));
+ }
+
+ Status = SetValueByName (OpCode->VarStorage, OpCode->ValueName, NameValue, GetSetValueWithEditBuffer, NULL);
+ FreePool (NameValue);
+ if (!EFI_ERROR (Status)) {
+ Data1.Value.b = TRUE;
+ }
+ }
+
break;
- case 0x02:
- EfiTime.Second = Value->Value.u8;
+ case EFI_HII_VARSTORE_EFI_VARIABLE:
+ Status = gRT->SetVariable (
+ OpCode->ValueName,
+ &OpCode->VarStorage->Guid,
+ OpCode->VarStorage->Attributes,
+ OpCode->ValueWidth,
+ &Value->Value
+ );
+ if (!EFI_ERROR (Status)) {
+ Data1.Value.b = TRUE;
+ }
+
break;
default:
//
- // Invalid Time field.
+ // Not recognize storage.
//
- Status = EFI_INVALID_PARAMETER;
+ Status = EFI_UNSUPPORTED;
goto Done;
- }
}
- Status = gRT->SetTime (&EfiTime);
+ } else {
+ //
+ // For Time/Date Data
+ //
+ if ((OpCode->ValueType != EFI_IFR_TYPE_DATE) && (OpCode->ValueType != EFI_IFR_TYPE_TIME)) {
+ //
+ // Only support Data/Time data when storage doesn't exist.
+ //
+ Status = EFI_UNSUPPORTED;
+ goto Done;
+ }
+
+ Status = gRT->GetTime (&EfiTime, NULL);
if (!EFI_ERROR (Status)) {
- Data1.Value.b = TRUE;
+ if (OpCode->ValueType == EFI_IFR_TYPE_DATE) {
+ switch (OpCode->VarStoreInfo.VarOffset) {
+ case 0x00:
+ EfiTime.Year = Value->Value.u16;
+ break;
+ case 0x02:
+ EfiTime.Month = Value->Value.u8;
+ break;
+ case 0x03:
+ EfiTime.Day = Value->Value.u8;
+ break;
+ default:
+ //
+ // Invalid Date field.
+ //
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+ } else {
+ switch (OpCode->VarStoreInfo.VarOffset) {
+ case 0x00:
+ EfiTime.Hour = Value->Value.u8;
+ break;
+ case 0x01:
+ EfiTime.Minute = Value->Value.u8;
+ break;
+ case 0x02:
+ EfiTime.Second = Value->Value.u8;
+ break;
+ default:
+ //
+ // Invalid Time field.
+ //
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+ }
+
+ Status = gRT->SetTime (&EfiTime);
+ if (!EFI_ERROR (Status)) {
+ Data1.Value.b = TRUE;
+ }
}
}
- }
- Value = &Data1;
- break;
- //
- // binary-op
- //
- case EFI_IFR_ADD_OP:
- case EFI_IFR_SUBTRACT_OP:
- case EFI_IFR_MULTIPLY_OP:
- case EFI_IFR_DIVIDE_OP:
- case EFI_IFR_MODULO_OP:
- case EFI_IFR_BITWISE_AND_OP:
- case EFI_IFR_BITWISE_OR_OP:
- case EFI_IFR_SHIFT_LEFT_OP:
- case EFI_IFR_SHIFT_RIGHT_OP:
- //
- // Pop an expression from the expression stack
- //
- Status = PopExpression (&Data2);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ Value = &Data1;
+ break;
//
- // Pop another expression from the expression stack
+ // binary-op
//
- Status = PopExpression (&Data1);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ case EFI_IFR_ADD_OP:
+ case EFI_IFR_SUBTRACT_OP:
+ case EFI_IFR_MULTIPLY_OP:
+ case EFI_IFR_DIVIDE_OP:
+ case EFI_IFR_MODULO_OP:
+ case EFI_IFR_BITWISE_AND_OP:
+ case EFI_IFR_BITWISE_OR_OP:
+ case EFI_IFR_SHIFT_LEFT_OP:
+ case EFI_IFR_SHIFT_RIGHT_OP:
+ //
+ // Pop an expression from the expression stack
+ //
+ Status = PopExpression (&Data2);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- if (Data2.Type > EFI_IFR_TYPE_DATE) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ //
+ // Pop another expression from the expression stack
+ //
+ Status = PopExpression (&Data1);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+ if (Data2.Type > EFI_IFR_TYPE_DATE) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- if (Data1.Type > EFI_IFR_TYPE_DATE) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ if (Data1.Type > EFI_IFR_TYPE_DATE) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- switch (OpCode->Operand) {
- case EFI_IFR_ADD_OP:
- Value->Value.u64 = HiiValueToUINT64(&Data1) + HiiValueToUINT64(&Data2);
- break;
+ switch (OpCode->Operand) {
+ case EFI_IFR_ADD_OP:
+ Value->Value.u64 = HiiValueToUINT64 (&Data1) + HiiValueToUINT64 (&Data2);
+ break;
- case EFI_IFR_SUBTRACT_OP:
- Value->Value.u64 = HiiValueToUINT64(&Data1) - HiiValueToUINT64(&Data2);
- break;
+ case EFI_IFR_SUBTRACT_OP:
+ Value->Value.u64 = HiiValueToUINT64 (&Data1) - HiiValueToUINT64 (&Data2);
+ break;
- case EFI_IFR_MULTIPLY_OP:
- Value->Value.u64 = MultU64x32 (HiiValueToUINT64(&Data1), (UINT32) HiiValueToUINT64(&Data2));
- break;
+ case EFI_IFR_MULTIPLY_OP:
+ Value->Value.u64 = MultU64x32 (HiiValueToUINT64 (&Data1), (UINT32)HiiValueToUINT64 (&Data2));
+ break;
- case EFI_IFR_DIVIDE_OP:
- Value->Value.u64 = DivU64x32 (HiiValueToUINT64(&Data1), (UINT32) HiiValueToUINT64(&Data2));
- break;
+ case EFI_IFR_DIVIDE_OP:
+ Value->Value.u64 = DivU64x32 (HiiValueToUINT64 (&Data1), (UINT32)HiiValueToUINT64 (&Data2));
+ break;
- case EFI_IFR_MODULO_OP:
- DivU64x32Remainder (HiiValueToUINT64(&Data1), (UINT32) HiiValueToUINT64(&Data2), &TempValue);
- Value->Value.u64 = TempValue;
- break;
+ case EFI_IFR_MODULO_OP:
+ DivU64x32Remainder (HiiValueToUINT64 (&Data1), (UINT32)HiiValueToUINT64 (&Data2), &TempValue);
+ Value->Value.u64 = TempValue;
+ break;
- case EFI_IFR_BITWISE_AND_OP:
- Value->Value.u64 = HiiValueToUINT64(&Data1) & HiiValueToUINT64(&Data2);
- break;
+ case EFI_IFR_BITWISE_AND_OP:
+ Value->Value.u64 = HiiValueToUINT64 (&Data1) & HiiValueToUINT64 (&Data2);
+ break;
- case EFI_IFR_BITWISE_OR_OP:
- Value->Value.u64 = HiiValueToUINT64(&Data1) | HiiValueToUINT64(&Data2);
- break;
+ case EFI_IFR_BITWISE_OR_OP:
+ Value->Value.u64 = HiiValueToUINT64 (&Data1) | HiiValueToUINT64 (&Data2);
+ break;
- case EFI_IFR_SHIFT_LEFT_OP:
- Value->Value.u64 = LShiftU64 (HiiValueToUINT64(&Data1), (UINTN) HiiValueToUINT64(&Data2));
- break;
+ case EFI_IFR_SHIFT_LEFT_OP:
+ Value->Value.u64 = LShiftU64 (HiiValueToUINT64 (&Data1), (UINTN)HiiValueToUINT64 (&Data2));
+ break;
- case EFI_IFR_SHIFT_RIGHT_OP:
- Value->Value.u64 = RShiftU64 (HiiValueToUINT64(&Data1), (UINTN) HiiValueToUINT64(&Data2));
- break;
+ case EFI_IFR_SHIFT_RIGHT_OP:
+ Value->Value.u64 = RShiftU64 (HiiValueToUINT64 (&Data1), (UINTN)HiiValueToUINT64 (&Data2));
+ break;
- default:
+ default:
+ break;
+ }
+
+ break;
+
+ case EFI_IFR_AND_OP:
+ case EFI_IFR_OR_OP:
+ //
+ // Two Boolean operator
+ //
+ Status = PopExpression (&Data2);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+
+ //
+ // Pop another expression from the expression stack
+ //
+ Status = PopExpression (&Data1);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+
+ if (Data2.Type != EFI_IFR_TYPE_BOOLEAN) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
- }
- break;
+ }
- case EFI_IFR_AND_OP:
- case EFI_IFR_OR_OP:
- //
- // Two Boolean operator
- //
- Status = PopExpression (&Data2);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- //
- // Pop another expression from the expression stack
- //
- Status = PopExpression (&Data1);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ if (OpCode->Operand == EFI_IFR_AND_OP) {
+ Value->Value.b = (BOOLEAN)(Data1.Value.b && Data2.Value.b);
+ } else {
+ Value->Value.b = (BOOLEAN)(Data1.Value.b || Data2.Value.b);
+ }
- if (Data2.Type != EFI_IFR_TYPE_BOOLEAN) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
break;
- }
- if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ case EFI_IFR_EQUAL_OP:
+ case EFI_IFR_NOT_EQUAL_OP:
+ case EFI_IFR_GREATER_EQUAL_OP:
+ case EFI_IFR_GREATER_THAN_OP:
+ case EFI_IFR_LESS_EQUAL_OP:
+ case EFI_IFR_LESS_THAN_OP:
+ //
+ // Compare two integer, string, boolean or date/time
+ //
+ Status = PopExpression (&Data2);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- if (OpCode->Operand == EFI_IFR_AND_OP) {
- Value->Value.b = (BOOLEAN) (Data1.Value.b && Data2.Value.b);
- } else {
- Value->Value.b = (BOOLEAN) (Data1.Value.b || Data2.Value.b);
- }
- break;
+ //
+ // Pop another expression from the expression stack
+ //
+ Status = PopExpression (&Data1);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- case EFI_IFR_EQUAL_OP:
- case EFI_IFR_NOT_EQUAL_OP:
- case EFI_IFR_GREATER_EQUAL_OP:
- case EFI_IFR_GREATER_THAN_OP:
- case EFI_IFR_LESS_EQUAL_OP:
- case EFI_IFR_LESS_THAN_OP:
- //
- // Compare two integer, string, boolean or date/time
- //
- Status = PopExpression (&Data2);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ if ((Data2.Type > EFI_IFR_TYPE_BOOLEAN) &&
+ (Data2.Type != EFI_IFR_TYPE_STRING) &&
+ !IsTypeInBuffer (&Data2))
+ {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- //
- // Pop another expression from the expression stack
- //
- Status = PopExpression (&Data1);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ if ((Data1.Type > EFI_IFR_TYPE_BOOLEAN) &&
+ (Data1.Type != EFI_IFR_TYPE_STRING) &&
+ !IsTypeInBuffer (&Data1))
+ {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- if (Data2.Type > EFI_IFR_TYPE_BOOLEAN &&
- Data2.Type != EFI_IFR_TYPE_STRING &&
- !IsTypeInBuffer(&Data2)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ Status = CompareHiiValue (&Data1, &Data2, &Result, FormSet->HiiHandle);
+ if (Data1.Type == EFI_IFR_TYPE_BUFFER) {
+ FreePool (Data1.Buffer);
+ }
- if (Data1.Type > EFI_IFR_TYPE_BOOLEAN &&
- Data1.Type != EFI_IFR_TYPE_STRING &&
- !IsTypeInBuffer(&Data1)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ if (Data2.Type == EFI_IFR_TYPE_BUFFER) {
+ FreePool (Data2.Buffer);
+ }
- Status = CompareHiiValue (&Data1, &Data2, &Result, FormSet->HiiHandle);
- if (Data1.Type == EFI_IFR_TYPE_BUFFER) {
- FreePool (Data1.Buffer);
- }
- if (Data2.Type == EFI_IFR_TYPE_BUFFER) {
- FreePool (Data2.Buffer);
- }
+ if (Status == EFI_UNSUPPORTED) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Status = EFI_SUCCESS;
+ break;
+ }
- if (Status == EFI_UNSUPPORTED) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- Status = EFI_SUCCESS;
- break;
- }
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ switch (OpCode->Operand) {
+ case EFI_IFR_EQUAL_OP:
+ Value->Value.b = (BOOLEAN)((Result == 0) ? TRUE : FALSE);
+ break;
- switch (OpCode->Operand) {
- case EFI_IFR_EQUAL_OP:
- Value->Value.b = (BOOLEAN) ((Result == 0) ? TRUE : FALSE);
- break;
+ case EFI_IFR_NOT_EQUAL_OP:
+ Value->Value.b = (BOOLEAN)((Result != 0) ? TRUE : FALSE);
+ break;
- case EFI_IFR_NOT_EQUAL_OP:
- Value->Value.b = (BOOLEAN) ((Result != 0) ? TRUE : FALSE);
- break;
+ case EFI_IFR_GREATER_EQUAL_OP:
+ Value->Value.b = (BOOLEAN)((Result >= 0) ? TRUE : FALSE);
+ break;
- case EFI_IFR_GREATER_EQUAL_OP:
- Value->Value.b = (BOOLEAN) ((Result >= 0) ? TRUE : FALSE);
- break;
+ case EFI_IFR_GREATER_THAN_OP:
+ Value->Value.b = (BOOLEAN)((Result > 0) ? TRUE : FALSE);
+ break;
- case EFI_IFR_GREATER_THAN_OP:
- Value->Value.b = (BOOLEAN) ((Result > 0) ? TRUE : FALSE);
- break;
+ case EFI_IFR_LESS_EQUAL_OP:
+ Value->Value.b = (BOOLEAN)((Result <= 0) ? TRUE : FALSE);
+ break;
- case EFI_IFR_LESS_EQUAL_OP:
- Value->Value.b = (BOOLEAN) ((Result <= 0) ? TRUE : FALSE);
- break;
+ case EFI_IFR_LESS_THAN_OP:
+ Value->Value.b = (BOOLEAN)((Result < 0) ? TRUE : FALSE);
+ break;
- case EFI_IFR_LESS_THAN_OP:
- Value->Value.b = (BOOLEAN) ((Result < 0) ? TRUE : FALSE);
- break;
+ default:
+ break;
+ }
- default:
break;
- }
- break;
- case EFI_IFR_MATCH_OP:
- Status = InitializeUnicodeCollationProtocol ();
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ case EFI_IFR_MATCH_OP:
+ Status = InitializeUnicodeCollationProtocol ();
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- Status = IfrMatch (FormSet, Value);
- break;
+ Status = IfrMatch (FormSet, Value);
+ break;
- case EFI_IFR_MATCH2_OP:
- Status = IfrMatch2 (FormSet, &OpCode->Guid, Value);
- break;
+ case EFI_IFR_MATCH2_OP:
+ Status = IfrMatch2 (FormSet, &OpCode->Guid, Value);
+ break;
- case EFI_IFR_CATENATE_OP:
- Status = IfrCatenate (FormSet, Value);
- break;
+ case EFI_IFR_CATENATE_OP:
+ Status = IfrCatenate (FormSet, Value);
+ break;
- //
- // ternary-op
- //
- case EFI_IFR_CONDITIONAL_OP:
//
- // Pop third expression from the expression stack
+ // ternary-op
//
- Status = PopExpression (&Data3);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ case EFI_IFR_CONDITIONAL_OP:
+ //
+ // Pop third expression from the expression stack
+ //
+ Status = PopExpression (&Data3);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- //
- // Pop second expression from the expression stack
- //
- Status = PopExpression (&Data2);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
+ //
+ // Pop second expression from the expression stack
+ //
+ Status = PopExpression (&Data2);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- //
- // Pop first expression from the expression stack
- //
- Status = PopExpression (&Data1);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
- }
+ //
+ // Pop first expression from the expression stack
+ //
+ Status = PopExpression (&Data1);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
- if (Data1.Value.b) {
- Value = &Data3;
- } else {
- Value = &Data2;
- }
- break;
+ if (Data1.Type != EFI_IFR_TYPE_BOOLEAN) {
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
+ }
- case EFI_IFR_FIND_OP:
- Status = IfrFind (FormSet, OpCode->Format, Value);
- break;
+ if (Data1.Value.b) {
+ Value = &Data3;
+ } else {
+ Value = &Data2;
+ }
- case EFI_IFR_MID_OP:
- Status = IfrMid (FormSet, Value);
- break;
+ break;
- case EFI_IFR_TOKEN_OP:
- Status = IfrToken (FormSet, Value);
- break;
+ case EFI_IFR_FIND_OP:
+ Status = IfrFind (FormSet, OpCode->Format, Value);
+ break;
- case EFI_IFR_SPAN_OP:
- Status = IfrSpan (FormSet, OpCode->Flags, Value);
- break;
+ case EFI_IFR_MID_OP:
+ Status = IfrMid (FormSet, Value);
+ break;
- case EFI_IFR_MAP_OP:
- //
- // Pop the check value
- //
- Status = PopExpression (&Data1);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- //
- // Check MapExpression list is valid.
- //
- if (OpCode->MapExpressionList.ForwardLink == NULL) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
- }
- //
- // Go through map expression list.
- //
- SubExpressionLink = GetFirstNode(&OpCode->MapExpressionList);
- while (!IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {
- SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);
+ case EFI_IFR_TOKEN_OP:
+ Status = IfrToken (FormSet, Value);
+ break;
+
+ case EFI_IFR_SPAN_OP:
+ Status = IfrSpan (FormSet, OpCode->Flags, Value);
+ break;
+
+ case EFI_IFR_MAP_OP:
//
- // Evaluate the first expression in this pair.
+ // Pop the check value
//
- Status = EvaluateExpression (FormSet, Form, SubExpression);
+ Status = PopExpression (&Data1);
if (EFI_ERROR (Status)) {
goto Done;
}
+
+ //
+ // Check MapExpression list is valid.
+ //
+ if (OpCode->MapExpressionList.ForwardLink == NULL) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+
//
- // Compare the expression value with current value
+ // Go through map expression list.
//
- if ((CompareHiiValue (&Data1, &SubExpression->Result, &Result, NULL) == EFI_SUCCESS) && (Result == 0)) {
+ SubExpressionLink = GetFirstNode (&OpCode->MapExpressionList);
+ while (!IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {
+ SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);
+ //
+ // Evaluate the first expression in this pair.
+ //
+ Status = EvaluateExpression (FormSet, Form, SubExpression);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+
+ //
+ // Compare the expression value with current value
+ //
+ if ((CompareHiiValue (&Data1, &SubExpression->Result, &Result, NULL) == EFI_SUCCESS) && (Result == 0)) {
+ //
+ // Try get the map value.
+ //
+ SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);
+ if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {
+ Status = EFI_INVALID_PARAMETER;
+ goto Done;
+ }
+
+ SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);
+ Status = EvaluateExpression (FormSet, Form, SubExpression);
+ if (EFI_ERROR (Status)) {
+ goto Done;
+ }
+
+ Value = &SubExpression->Result;
+ break;
+ }
+
//
- // Try get the map value.
+ // Skip the second expression on this pair.
//
SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);
if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {
Status = EFI_INVALID_PARAMETER;
goto Done;
}
- SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);
- Status = EvaluateExpression (FormSet, Form, SubExpression);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- Value = &SubExpression->Result;
- break;
+
+ //
+ // Goto the first expression on next pair.
+ //
+ SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);
}
+
//
- // Skip the second expression on this pair.
+ // No map value is found.
//
- SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);
if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {
- Status = EFI_INVALID_PARAMETER;
- goto Done;
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ Value->Value.u8 = 0;
}
- //
- // Goto the first expression on next pair.
- //
- SubExpressionLink = GetNextNode (&OpCode->MapExpressionList, SubExpressionLink);
- }
- //
- // No map value is found.
- //
- if (IsNull (&OpCode->MapExpressionList, SubExpressionLink)) {
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- Value->Value.u8 = 0;
- }
- break;
+ break;
- default:
- break;
+ default:
+ break;
}
- if (EFI_ERROR (Status) || Value->Type == EFI_IFR_TYPE_UNDEFINED) {
+
+ if (EFI_ERROR (Status) || (Value->Type == EFI_IFR_TYPE_UNDEFINED)) {
goto Done;
}
@@ -3597,7 +3654,7 @@ EvaluateExpression (
//
// Pop the final result from expression stack
//
- Value = &Data1;
+ Value = &Data1;
Status = PopExpression (Value);
if (EFI_ERROR (Status)) {
goto Done;
@@ -3633,27 +3690,27 @@ Done:
**/
BOOLEAN
IsTrue (
- IN EFI_HII_VALUE *Result
+ IN EFI_HII_VALUE *Result
)
{
switch (Result->Type) {
- case EFI_IFR_TYPE_BOOLEAN:
- return Result->Value.b;
+ case EFI_IFR_TYPE_BOOLEAN:
+ return Result->Value.b;
- case EFI_IFR_TYPE_NUM_SIZE_8:
- return (BOOLEAN)(Result->Value.u8 != 0);
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ return (BOOLEAN)(Result->Value.u8 != 0);
- case EFI_IFR_TYPE_NUM_SIZE_16:
- return (BOOLEAN)(Result->Value.u16 != 0);
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ return (BOOLEAN)(Result->Value.u16 != 0);
- case EFI_IFR_TYPE_NUM_SIZE_32:
- return (BOOLEAN)(Result->Value.u32 != 0);
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ return (BOOLEAN)(Result->Value.u32 != 0);
- case EFI_IFR_TYPE_NUM_SIZE_64:
- return (BOOLEAN)(Result->Value.u64 != 0);
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ return (BOOLEAN)(Result->Value.u64 != 0);
- default:
- return FALSE;
+ default:
+ return FALSE;
}
}
@@ -3673,23 +3730,23 @@ IsTrue (
**/
EXPRESS_RESULT
EvaluateExpressionList (
- IN FORM_EXPRESSION_LIST *ExpList,
- IN BOOLEAN Evaluate,
- IN FORM_BROWSER_FORMSET *FormSet OPTIONAL,
- IN FORM_BROWSER_FORM *Form OPTIONAL
+ IN FORM_EXPRESSION_LIST *ExpList,
+ IN BOOLEAN Evaluate,
+ IN FORM_BROWSER_FORMSET *FormSet OPTIONAL,
+ IN FORM_BROWSER_FORM *Form OPTIONAL
)
{
- UINTN Index;
- EXPRESS_RESULT ReturnVal;
- EXPRESS_RESULT CompareOne;
- EFI_STATUS Status;
+ UINTN Index;
+ EXPRESS_RESULT ReturnVal;
+ EXPRESS_RESULT CompareOne;
+ EFI_STATUS Status;
if (ExpList == NULL) {
return ExpressFalse;
}
- ASSERT(ExpList->Signature == FORM_EXPRESSION_LIST_SIGNATURE);
- Index = 0;
+ ASSERT (ExpList->Signature == FORM_EXPRESSION_LIST_SIGNATURE);
+ Index = 0;
//
// Check whether need to evaluate the expression first.
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.h b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.h
index 838804e..b56c81e 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Expression.h
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Expression.h
@@ -21,7 +21,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
INTN
GetConditionalExpressionCount (
- IN EXPRESS_LEVEL Level
+ IN EXPRESS_LEVEL Level
);
/**
@@ -63,7 +63,7 @@ ResetScopeStack (
**/
EFI_STATUS
PushScope (
- IN UINT8 Operand
+ IN UINT8 Operand
);
/**
@@ -77,7 +77,7 @@ PushScope (
**/
FORM_EXPRESSION **
GetConditionalExpressionList (
- IN EXPRESS_LEVEL Level
+ IN EXPRESS_LEVEL Level
);
/**
@@ -92,7 +92,7 @@ GetConditionalExpressionList (
**/
EFI_STATUS
PopScope (
- OUT UINT8 *Operand
+ OUT UINT8 *Operand
);
/**
@@ -131,7 +131,7 @@ PushCurrentExpression (
**/
VOID
ExtendValueToU64 (
- IN EFI_HII_VALUE *Value
+ IN EFI_HII_VALUE *Value
);
/**
@@ -147,8 +147,8 @@ ExtendValueToU64 (
**/
EFI_STATUS
PushConditionalExpression (
- IN FORM_EXPRESSION *Pointer,
- IN EXPRESS_LEVEL Level
+ IN FORM_EXPRESSION *Pointer,
+ IN EXPRESS_LEVEL Level
);
/**
@@ -163,7 +163,7 @@ PushConditionalExpression (
**/
EFI_STATUS
PopConditionalExpression (
- IN EXPRESS_LEVEL Level
+ IN EXPRESS_LEVEL Level
);
/**
@@ -177,7 +177,7 @@ PopConditionalExpression (
**/
EFI_STATUS
PopMapExpressionList (
- OUT VOID **Pointer
+ OUT VOID **Pointer
);
/**
@@ -191,7 +191,7 @@ PopMapExpressionList (
**/
EFI_STATUS
PopCurrentExpression (
- OUT VOID **Pointer
+ OUT VOID **Pointer
);
/**
@@ -218,6 +218,7 @@ EvaluateExpression (
IN FORM_BROWSER_FORM *Form,
IN OUT FORM_EXPRESSION *Expression
);
+
/**
Return the result of the expression list. Check the expression list and
return the highest priority express result.
@@ -234,10 +235,10 @@ EvaluateExpression (
**/
EXPRESS_RESULT
EvaluateExpressionList (
- IN FORM_EXPRESSION_LIST *ExpList,
- IN BOOLEAN Evaluate,
- IN FORM_BROWSER_FORMSET *FormSet OPTIONAL,
- IN FORM_BROWSER_FORM *Form OPTIONAL
+ IN FORM_EXPRESSION_LIST *ExpList,
+ IN BOOLEAN Evaluate,
+ IN FORM_BROWSER_FORMSET *FormSet OPTIONAL,
+ IN FORM_BROWSER_FORM *Form OPTIONAL
);
/**
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
index edb6a0f..ed8f996 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
@@ -8,10 +8,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Setup.h"
-UINTN mStatementIndex;
-UINTN mExpressionOpCodeIndex;
-EFI_QUESTION_ID mUsedQuestionId;
-extern LIST_ENTRY gBrowserStorageList;
+UINTN mStatementIndex;
+UINTN mExpressionOpCodeIndex;
+EFI_QUESTION_ID mUsedQuestionId;
+extern LIST_ENTRY gBrowserStorageList;
+
/**
Initialize Statement header members.
@@ -24,9 +25,9 @@ extern LIST_ENTRY gBrowserStorageList;
**/
FORM_BROWSER_STATEMENT *
CreateStatement (
- IN UINT8 *OpCodeData,
- IN OUT FORM_BROWSER_FORMSET *FormSet,
- IN OUT FORM_BROWSER_FORM *Form
+ IN UINT8 *OpCodeData,
+ IN OUT FORM_BROWSER_FORMSET *FormSet,
+ IN OUT FORM_BROWSER_FORM *Form
)
{
FORM_BROWSER_STATEMENT *Statement;
@@ -37,7 +38,7 @@ CreateStatement (
//
// Only guid op may out side the form level.
//
- ASSERT (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_GUID_OP);
+ ASSERT (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode == EFI_IFR_GUID_OP);
}
Statement = &FormSet->StatementBuffer[mStatementIndex];
@@ -51,26 +52,27 @@ CreateStatement (
Statement->Signature = FORM_BROWSER_STATEMENT_SIGNATURE;
- Statement->Operand = ((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode;
- Statement->OpCode = (EFI_IFR_OP_HEADER *) OpCodeData;
+ Statement->Operand = ((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode;
+ Statement->OpCode = (EFI_IFR_OP_HEADER *)OpCodeData;
Statement->QuestionReferToBitField = FALSE;
- StatementHdr = (EFI_IFR_STATEMENT_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));
+ StatementHdr = (EFI_IFR_STATEMENT_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));
CopyMem (&Statement->Prompt, &StatementHdr->Prompt, sizeof (EFI_STRING_ID));
CopyMem (&Statement->Help, &StatementHdr->Help, sizeof (EFI_STRING_ID));
- ConditionalExprCount = GetConditionalExpressionCount(ExpressStatement);
+ ConditionalExprCount = GetConditionalExpressionCount (ExpressStatement);
if (ConditionalExprCount > 0) {
//
// Form is inside of suppressif
//
- Statement->Expression = (FORM_EXPRESSION_LIST *) AllocatePool(
- (UINTN) (sizeof(FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof(FORM_EXPRESSION *))));
+ Statement->Expression = (FORM_EXPRESSION_LIST *)AllocatePool (
+ (UINTN)(sizeof (FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof (FORM_EXPRESSION *)))
+ );
ASSERT (Statement->Expression != NULL);
- Statement->Expression->Count = (UINTN) ConditionalExprCount;
+ Statement->Expression->Count = (UINTN)ConditionalExprCount;
Statement->Expression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
- CopyMem (Statement->Expression->Expression, GetConditionalExpressionList(ExpressStatement), (UINTN) (sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
+ CopyMem (Statement->Expression->Expression, GetConditionalExpressionList (ExpressStatement), (UINTN)(sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
}
//
@@ -81,6 +83,7 @@ CreateStatement (
} else {
InsertTailList (&Form->StatementListHead, &Statement->Link);
}
+
return Statement;
}
@@ -96,9 +99,9 @@ CreateStatement (
**/
FORM_BROWSER_STATEMENT *
CreateQuestion (
- IN UINT8 *OpCodeData,
- IN OUT FORM_BROWSER_FORMSET *FormSet,
- IN OUT FORM_BROWSER_FORM *Form
+ IN UINT8 *OpCodeData,
+ IN OUT FORM_BROWSER_FORMSET *FormSet,
+ IN OUT FORM_BROWSER_FORM *Form
)
{
FORM_BROWSER_STATEMENT *Statement;
@@ -113,7 +116,7 @@ CreateQuestion (
return NULL;
}
- QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));
+ QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));
CopyMem (&Statement->QuestionId, &QuestionHdr->QuestionId, sizeof (EFI_QUESTION_ID));
CopyMem (&Statement->VarStoreId, &QuestionHdr->VarStoreId, sizeof (EFI_VARSTORE_ID));
CopyMem (&Statement->VarStoreInfo.VarOffset, &QuestionHdr->VarStoreInfo.VarOffset, sizeof (UINT16));
@@ -141,13 +144,15 @@ CreateQuestion (
Link = GetNextNode (&FormSet->StorageListHead, Link);
}
+
ASSERT (Statement->Storage != NULL);
//
// Initialilze varname for Name/Value or EFI Variable
//
if ((Statement->Storage->Type == EFI_HII_VARSTORE_NAME_VALUE) ||
- (Statement->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE)) {
+ (Statement->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE))
+ {
Statement->VariableName = GetToken (Statement->VarStoreInfo.VarName, FormSet->HiiHandle);
ASSERT (Statement->VariableName != NULL);
@@ -156,7 +161,7 @@ CreateQuestion (
// Check whether old string node already exist.
//
Find = FALSE;
- if (!IsListEmpty(&Statement->Storage->NameValueListHead)) {
+ if (!IsListEmpty (&Statement->Storage->NameValueListHead)) {
Link = GetFirstNode (&Statement->Storage->NameValueListHead);
while (!IsNull (&Statement->Storage->NameValueListHead, Link)) {
NameValueNode = NAME_VALUE_NODE_FROM_LINK (Link);
@@ -177,7 +182,7 @@ CreateQuestion (
NameValueNode = AllocateZeroPool (sizeof (NAME_VALUE_NODE));
ASSERT (NameValueNode != NULL);
NameValueNode->Signature = NAME_VALUE_NODE_SIGNATURE;
- NameValueNode->Name = AllocateCopyPool (StrSize (Statement->VariableName), Statement->VariableName);
+ NameValueNode->Name = AllocateCopyPool (StrSize (Statement->VariableName), Statement->VariableName);
ASSERT (NameValueNode->Name != NULL);
NameValueNode->Value = AllocateZeroPool (0x10);
ASSERT (NameValueNode->Value != NULL);
@@ -192,7 +197,6 @@ CreateQuestion (
return Statement;
}
-
/**
Allocate a FORM_EXPRESSION node.
@@ -204,8 +208,8 @@ CreateQuestion (
**/
FORM_EXPRESSION *
CreateExpression (
- IN OUT FORM_BROWSER_FORM *Form,
- IN UINT8 *OpCode
+ IN OUT FORM_BROWSER_FORM *Form,
+ IN UINT8 *OpCode
)
{
FORM_EXPRESSION *Expression;
@@ -214,7 +218,7 @@ CreateExpression (
ASSERT (Expression != NULL);
Expression->Signature = FORM_EXPRESSION_SIGNATURE;
InitializeListHead (&Expression->OpCodeListHead);
- Expression->OpCode = (EFI_IFR_OP_HEADER *) OpCode;
+ Expression->OpCode = (EFI_IFR_OP_HEADER *)OpCode;
return Expression;
}
@@ -234,10 +238,11 @@ InitializeConfigHdr (
IN OUT FORMSET_STORAGE *Storage
)
{
- CHAR16 *Name;
+ CHAR16 *Name;
- if (Storage->BrowserStorage->Type == EFI_HII_VARSTORE_BUFFER ||
- Storage->BrowserStorage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ if ((Storage->BrowserStorage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->BrowserStorage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
Name = Storage->BrowserStorage->Name;
} else {
Name = NULL;
@@ -278,19 +283,19 @@ InitializeConfigHdr (
**/
BROWSER_STORAGE *
FindStorageInList (
- IN UINT8 StorageType,
- IN EFI_GUID *StorageGuid,
- IN CHAR16 *StorageName,
- IN EFI_HII_HANDLE HiiHandle
+ IN UINT8 StorageType,
+ IN EFI_GUID *StorageGuid,
+ IN CHAR16 *StorageName,
+ IN EFI_HII_HANDLE HiiHandle
)
{
LIST_ENTRY *Link;
BROWSER_STORAGE *BrowserStorage;
- Link = GetFirstNode (&gBrowserStorageList);
+ Link = GetFirstNode (&gBrowserStorageList);
while (!IsNull (&gBrowserStorageList, Link)) {
BrowserStorage = BROWSER_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserStorageList, Link);
+ Link = GetNextNode (&gBrowserStorageList, Link);
if ((BrowserStorage->Type == StorageType) && CompareGuid (&BrowserStorage->Guid, StorageGuid)) {
if (StorageType == EFI_HII_VARSTORE_NAME_VALUE) {
@@ -303,9 +308,9 @@ FindStorageInList (
ASSERT (StorageName != NULL);
if (StrCmp (BrowserStorage->Name, StorageName) == 0) {
- if (StorageType == EFI_HII_VARSTORE_EFI_VARIABLE || StorageType == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ if ((StorageType == EFI_HII_VARSTORE_EFI_VARIABLE) || (StorageType == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER)) {
return BrowserStorage;
- } else if (StorageType == EFI_HII_VARSTORE_BUFFER && BrowserStorage->HiiHandle == HiiHandle) {
+ } else if ((StorageType == EFI_HII_VARSTORE_BUFFER) && (BrowserStorage->HiiHandle == HiiHandle)) {
return BrowserStorage;
}
}
@@ -325,15 +330,15 @@ FindStorageInList (
**/
VOID
IntializeBrowserStorage (
- IN BROWSER_STORAGE *BrowserStorage,
- IN UINT8 StorageType,
- IN UINT8 *OpCodeData
+ IN BROWSER_STORAGE *BrowserStorage,
+ IN UINT8 StorageType,
+ IN UINT8 *OpCodeData
)
{
switch (StorageType) {
case EFI_HII_VARSTORE_BUFFER:
- CopyMem (&BrowserStorage->Guid, &((EFI_IFR_VARSTORE *) OpCodeData)->Guid, sizeof (EFI_GUID));
- CopyMem (&BrowserStorage->Size, &((EFI_IFR_VARSTORE *) OpCodeData)->Size, sizeof (UINT16));
+ CopyMem (&BrowserStorage->Guid, &((EFI_IFR_VARSTORE *)OpCodeData)->Guid, sizeof (EFI_GUID));
+ CopyMem (&BrowserStorage->Size, &((EFI_IFR_VARSTORE *)OpCodeData)->Size, sizeof (UINT16));
BrowserStorage->Buffer = AllocateZeroPool (BrowserStorage->Size);
BrowserStorage->EditBuffer = AllocateZeroPool (BrowserStorage->Size);
@@ -341,18 +346,19 @@ IntializeBrowserStorage (
case EFI_HII_VARSTORE_EFI_VARIABLE:
case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
- CopyMem (&BrowserStorage->Guid, &((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Guid, sizeof (EFI_GUID));
- CopyMem (&BrowserStorage->Attributes, &((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Attributes, sizeof (UINT32));
- CopyMem (&BrowserStorage->Size, &((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Size, sizeof (UINT16));
+ CopyMem (&BrowserStorage->Guid, &((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Guid, sizeof (EFI_GUID));
+ CopyMem (&BrowserStorage->Attributes, &((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Attributes, sizeof (UINT32));
+ CopyMem (&BrowserStorage->Size, &((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Size, sizeof (UINT16));
if (StorageType == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
BrowserStorage->Buffer = AllocateZeroPool (BrowserStorage->Size);
BrowserStorage->EditBuffer = AllocateZeroPool (BrowserStorage->Size);
}
+
break;
case EFI_HII_VARSTORE_NAME_VALUE:
- CopyMem (&BrowserStorage->Guid, &((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->Guid, sizeof (EFI_GUID));
+ CopyMem (&BrowserStorage->Guid, &((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->Guid, sizeof (EFI_GUID));
InitializeListHead (&BrowserStorage->NameValueListHead);
break;
@@ -362,7 +368,6 @@ IntializeBrowserStorage (
}
}
-
/**
Allocate a FORMSET_STORAGE data structure and insert to FormSet Storage List.
@@ -380,30 +385,30 @@ CreateStorage (
IN UINT8 *OpCodeData
)
{
- FORMSET_STORAGE *Storage;
- CHAR16 *UnicodeString;
- UINT16 Index;
- BROWSER_STORAGE *BrowserStorage;
- EFI_GUID *StorageGuid;
- CHAR8 *StorageName;
+ FORMSET_STORAGE *Storage;
+ CHAR16 *UnicodeString;
+ UINT16 Index;
+ BROWSER_STORAGE *BrowserStorage;
+ EFI_GUID *StorageGuid;
+ CHAR8 *StorageName;
UnicodeString = NULL;
StorageName = NULL;
switch (StorageType) {
case EFI_HII_VARSTORE_BUFFER:
- StorageGuid = (EFI_GUID *) (CHAR8*) &((EFI_IFR_VARSTORE *) OpCodeData)->Guid;
- StorageName = (CHAR8 *) ((EFI_IFR_VARSTORE *) OpCodeData)->Name;
+ StorageGuid = (EFI_GUID *)(CHAR8 *)&((EFI_IFR_VARSTORE *)OpCodeData)->Guid;
+ StorageName = (CHAR8 *)((EFI_IFR_VARSTORE *)OpCodeData)->Name;
break;
case EFI_HII_VARSTORE_EFI_VARIABLE:
case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
- StorageGuid = (EFI_GUID *) (CHAR8*) &((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Guid;
- StorageName = (CHAR8 *) ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Name;
+ StorageGuid = (EFI_GUID *)(CHAR8 *)&((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Guid;
+ StorageName = (CHAR8 *)((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Name;
break;
default:
ASSERT (StorageType == EFI_HII_VARSTORE_NAME_VALUE);
- StorageGuid = &((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->Guid;
+ StorageGuid = &((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->Guid;
break;
}
@@ -413,7 +418,7 @@ CreateStorage (
UnicodeString = AllocateZeroPool (AsciiStrSize (StorageName) * 2);
ASSERT (UnicodeString != NULL);
for (Index = 0; StorageName[Index] != 0; Index++) {
- UnicodeString[Index] = (CHAR16) StorageName[Index];
+ UnicodeString[Index] = (CHAR16)StorageName[Index];
}
}
@@ -422,7 +427,7 @@ CreateStorage (
Storage->Signature = FORMSET_STORAGE_SIGNATURE;
InsertTailList (&FormSet->StorageListHead, &Storage->Link);
- BrowserStorage = FindStorageInList(StorageType, StorageGuid, UnicodeString, FormSet->HiiHandle);
+ BrowserStorage = FindStorageInList (StorageType, StorageGuid, UnicodeString, FormSet->HiiHandle);
if (BrowserStorage == NULL) {
BrowserStorage = AllocateZeroPool (sizeof (BROWSER_STORAGE));
ASSERT (BrowserStorage != NULL);
@@ -444,7 +449,7 @@ CreateStorage (
Storage->BrowserStorage = BrowserStorage;
InitializeConfigHdr (FormSet, Storage);
Storage->ConfigRequest = AllocateCopyPool (StrSize (Storage->ConfigHdr), Storage->ConfigHdr);
- Storage->SpareStrLen = 0;
+ Storage->SpareStrLen = 0;
return Storage;
}
@@ -468,7 +473,7 @@ GetFstStgFromVarId (
LIST_ENTRY *Link;
BOOLEAN Found;
- Found = FALSE;
+ Found = FALSE;
FormsetStorage = NULL;
//
// Find Formset Storage for this Question
@@ -503,27 +508,27 @@ GetFstStgFromVarId (
**/
FORMSET_STORAGE *
GetFstStgFromBrsStg (
- IN BROWSER_STORAGE *Storage
+ IN BROWSER_STORAGE *Storage
)
{
- FORMSET_STORAGE *FormsetStorage;
- LIST_ENTRY *Link;
- LIST_ENTRY *FormsetLink;
- FORM_BROWSER_FORMSET *FormSet;
- BOOLEAN Found;
+ FORMSET_STORAGE *FormsetStorage;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *FormsetLink;
+ FORM_BROWSER_FORMSET *FormSet;
+ BOOLEAN Found;
- Found = FALSE;
+ Found = FALSE;
FormsetStorage = NULL;
FormsetLink = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, FormsetLink)) {
- FormSet = FORM_BROWSER_FORMSET_FROM_LINK (FormsetLink);
+ FormSet = FORM_BROWSER_FORMSET_FROM_LINK (FormsetLink);
FormsetLink = GetNextNode (&gBrowserFormSetList, FormsetLink);
Link = GetFirstNode (&FormSet->StorageListHead);
while (!IsNull (&FormSet->StorageListHead, Link)) {
FormsetStorage = FORMSET_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
if (FormsetStorage->BrowserStorage == Storage) {
Found = TRUE;
@@ -552,21 +557,21 @@ GetFstStgFromBrsStg (
**/
EFI_STATUS
InitializeRequestElement (
- IN OUT FORM_BROWSER_FORMSET *FormSet,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN OUT FORM_BROWSER_FORM *Form
+ IN OUT FORM_BROWSER_FORMSET *FormSet,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN OUT FORM_BROWSER_FORM *Form
)
{
- BROWSER_STORAGE *Storage;
- FORMSET_STORAGE *FormsetStorage;
- UINTN StrLen;
- UINTN StringSize;
- CHAR16 *NewStr;
- CHAR16 RequestElement[30];
- LIST_ENTRY *Link;
- BOOLEAN Find;
+ BROWSER_STORAGE *Storage;
+ FORMSET_STORAGE *FormsetStorage;
+ UINTN StrLen;
+ UINTN StringSize;
+ CHAR16 *NewStr;
+ CHAR16 RequestElement[30];
+ LIST_ENTRY *Link;
+ BOOLEAN Find;
FORM_BROWSER_CONFIG_REQUEST *ConfigInfo;
- UINTN MaxLen;
+ UINTN MaxLen;
Storage = Question->Storage;
if (Storage == NULL) {
@@ -584,8 +589,9 @@ InitializeRequestElement (
//
// Prepare <RequestElement>
//
- if (Storage->Type == EFI_HII_VARSTORE_BUFFER ||
- Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ if ((Storage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
StrLen = UnicodeSPrint (
RequestElement,
30 * sizeof (CHAR16),
@@ -593,7 +599,7 @@ InitializeRequestElement (
Question->VarStoreInfo.VarOffset,
Question->StorageWidth
);
- HiiToLower(RequestElement);
+ HiiToLower (RequestElement);
Question->BlockName = AllocateCopyPool ((StrLen + 1) * sizeof (CHAR16), RequestElement);
} else {
StrLen = UnicodeSPrint (RequestElement, 30 * sizeof (CHAR16), L"&%s", Question->VariableName);
@@ -610,10 +616,10 @@ InitializeRequestElement (
//
// Find Formset Storage for this Question
//
- FormsetStorage = GetFstStgFromVarId(FormSet, Question->VarStoreId);
+ FormsetStorage = GetFstStgFromVarId (FormSet, Question->VarStoreId);
ASSERT (FormsetStorage != NULL);
StringSize = (FormsetStorage->ConfigRequest != NULL) ? StrSize (FormsetStorage->ConfigRequest) : sizeof (CHAR16);
- MaxLen = StringSize / sizeof (CHAR16) + FormsetStorage->SpareStrLen;
+ MaxLen = StringSize / sizeof (CHAR16) + FormsetStorage->SpareStrLen;
//
// Append <RequestElement> to <ConfigRequest>
@@ -629,6 +635,7 @@ InitializeRequestElement (
CopyMem (NewStr, FormsetStorage->ConfigRequest, StringSize);
FreePool (FormsetStorage->ConfigRequest);
}
+
FormsetStorage->ConfigRequest = NewStr;
FormsetStorage->SpareStrLen = CONFIG_REQUEST_STRING_INCREMENTAL;
}
@@ -642,11 +649,11 @@ InitializeRequestElement (
//
ConfigInfo = NULL;
Find = FALSE;
- Link = GetFirstNode (&Form->ConfigRequestHead);
+ Link = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
- if (ConfigInfo != NULL && ConfigInfo->Storage == FormsetStorage->BrowserStorage) {
+ if ((ConfigInfo != NULL) && (ConfigInfo->Storage == FormsetStorage->BrowserStorage)) {
Find = TRUE;
break;
}
@@ -655,17 +662,18 @@ InitializeRequestElement (
}
if (!Find) {
- ConfigInfo = AllocateZeroPool(sizeof (FORM_BROWSER_CONFIG_REQUEST));
+ ConfigInfo = AllocateZeroPool (sizeof (FORM_BROWSER_CONFIG_REQUEST));
ASSERT (ConfigInfo != NULL);
ConfigInfo->Signature = FORM_BROWSER_CONFIG_REQUEST_SIGNATURE;
ConfigInfo->ConfigRequest = AllocateCopyPool (StrSize (FormsetStorage->ConfigHdr), FormsetStorage->ConfigHdr);
ASSERT (ConfigInfo->ConfigRequest != NULL);
- ConfigInfo->SpareStrLen = 0;
- ConfigInfo->Storage = FormsetStorage->BrowserStorage;
- InsertTailList(&Form->ConfigRequestHead, &ConfigInfo->Link);
+ ConfigInfo->SpareStrLen = 0;
+ ConfigInfo->Storage = FormsetStorage->BrowserStorage;
+ InsertTailList (&Form->ConfigRequestHead, &ConfigInfo->Link);
}
+
StringSize = (ConfigInfo->ConfigRequest != NULL) ? StrSize (ConfigInfo->ConfigRequest) : sizeof (CHAR16);
- MaxLen = StringSize / sizeof (CHAR16) + ConfigInfo->SpareStrLen;
+ MaxLen = StringSize / sizeof (CHAR16) + ConfigInfo->SpareStrLen;
//
// Append <RequestElement> to <ConfigRequest>
@@ -681,6 +689,7 @@ InitializeRequestElement (
CopyMem (NewStr, ConfigInfo->ConfigRequest, StringSize);
FreePool (ConfigInfo->ConfigRequest);
}
+
ConfigInfo->ConfigRequest = NewStr;
ConfigInfo->SpareStrLen = CONFIG_REQUEST_STRING_INCREMENTAL;
}
@@ -691,7 +700,6 @@ InitializeRequestElement (
return EFI_SUCCESS;
}
-
/**
Free resources of a Expression.
@@ -700,7 +708,7 @@ InitializeRequestElement (
**/
VOID
DestroyExpression (
- IN FORM_EXPRESSION *Expression
+ IN FORM_EXPRESSION *Expression
)
{
LIST_ENTRY *Link;
@@ -709,7 +717,7 @@ DestroyExpression (
FORM_EXPRESSION *SubExpression;
while (!IsListEmpty (&Expression->OpCodeListHead)) {
- Link = GetFirstNode (&Expression->OpCodeListHead);
+ Link = GetFirstNode (&Expression->OpCodeListHead);
OpCode = EXPRESSION_OPCODE_FROM_LINK (Link);
RemoveEntryList (&OpCode->Link);
@@ -723,9 +731,9 @@ DestroyExpression (
if (OpCode->MapExpressionList.ForwardLink != NULL) {
while (!IsListEmpty (&OpCode->MapExpressionList)) {
- SubExpressionLink = GetFirstNode(&OpCode->MapExpressionList);
+ SubExpressionLink = GetFirstNode (&OpCode->MapExpressionList);
SubExpression = FORM_EXPRESSION_FROM_LINK (SubExpressionLink);
- RemoveEntryList(&SubExpression->Link);
+ RemoveEntryList (&SubExpression->Link);
DestroyExpression (SubExpression);
}
}
@@ -745,7 +753,7 @@ DestroyExpression (
**/
VOID
DestroyStorage (
- IN FORMSET_STORAGE *Storage
+ IN FORMSET_STORAGE *Storage
)
{
if (Storage == NULL) {
@@ -759,7 +767,6 @@ DestroyStorage (
FreePool (Storage);
}
-
/**
Free resources of a Statement.
@@ -782,13 +789,14 @@ DestroyStatement (
// Free Default value List
//
while (!IsListEmpty (&Statement->DefaultListHead)) {
- Link = GetFirstNode (&Statement->DefaultListHead);
+ Link = GetFirstNode (&Statement->DefaultListHead);
Default = QUESTION_DEFAULT_FROM_LINK (Link);
RemoveEntryList (&Default->Link);
if (Default->Value.Buffer != NULL) {
FreePool (Default->Value.Buffer);
}
+
FreePool (Default);
}
@@ -796,11 +804,12 @@ DestroyStatement (
// Free Options List
//
while (!IsListEmpty (&Statement->OptionListHead)) {
- Link = GetFirstNode (&Statement->OptionListHead);
+ Link = GetFirstNode (&Statement->OptionListHead);
Option = QUESTION_OPTION_FROM_LINK (Link);
if (Option->SuppressExpression != NULL) {
FreePool (Option->SuppressExpression);
}
+
RemoveEntryList (&Option->Link);
FreePool (Option);
@@ -810,7 +819,7 @@ DestroyStatement (
// Free Inconsistent List
//
while (!IsListEmpty (&Statement->InconsistentListHead)) {
- Link = GetFirstNode (&Statement->InconsistentListHead);
+ Link = GetFirstNode (&Statement->InconsistentListHead);
Expression = FORM_EXPRESSION_FROM_LINK (Link);
RemoveEntryList (&Expression->Link);
@@ -821,7 +830,7 @@ DestroyStatement (
// Free NoSubmit List
//
while (!IsListEmpty (&Statement->NoSubmitListHead)) {
- Link = GetFirstNode (&Statement->NoSubmitListHead);
+ Link = GetFirstNode (&Statement->NoSubmitListHead);
Expression = FORM_EXPRESSION_FROM_LINK (Link);
RemoveEntryList (&Expression->Link);
@@ -832,7 +841,7 @@ DestroyStatement (
// Free WarningIf List
//
while (!IsListEmpty (&Statement->WarningListHead)) {
- Link = GetFirstNode (&Statement->WarningListHead);
+ Link = GetFirstNode (&Statement->WarningListHead);
Expression = FORM_EXPRESSION_FROM_LINK (Link);
RemoveEntryList (&Expression->Link);
@@ -846,18 +855,20 @@ DestroyStatement (
if (Statement->VariableName != NULL) {
FreePool (Statement->VariableName);
}
+
if (Statement->BlockName != NULL) {
FreePool (Statement->BlockName);
}
+
if (Statement->BufferValue != NULL) {
FreePool (Statement->BufferValue);
}
- if (Statement->Operand == EFI_IFR_STRING_OP || Statement->Operand == EFI_IFR_PASSWORD_OP) {
- DeleteString(Statement->HiiValue.Value.string, FormSet->HiiHandle);
+
+ if ((Statement->Operand == EFI_IFR_STRING_OP) || (Statement->Operand == EFI_IFR_PASSWORD_OP)) {
+ DeleteString (Statement->HiiValue.Value.string, FormSet->HiiHandle);
}
}
-
/**
Free resources of a Form.
@@ -871,16 +882,16 @@ DestroyForm (
IN OUT FORM_BROWSER_FORM *Form
)
{
- LIST_ENTRY *Link;
- FORM_EXPRESSION *Expression;
- FORM_BROWSER_STATEMENT *Statement;
+ LIST_ENTRY *Link;
+ FORM_EXPRESSION *Expression;
+ FORM_BROWSER_STATEMENT *Statement;
FORM_BROWSER_CONFIG_REQUEST *ConfigInfo;
//
// Free Form Expressions
//
while (!IsListEmpty (&Form->ExpressionListHead)) {
- Link = GetFirstNode (&Form->ExpressionListHead);
+ Link = GetFirstNode (&Form->ExpressionListHead);
Expression = FORM_EXPRESSION_FROM_LINK (Link);
RemoveEntryList (&Expression->Link);
@@ -891,7 +902,7 @@ DestroyForm (
// Free Statements/Questions
//
while (!IsListEmpty (&Form->StatementListHead)) {
- Link = GetFirstNode (&Form->StatementListHead);
+ Link = GetFirstNode (&Form->StatementListHead);
Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
RemoveEntryList (&Statement->Link);
@@ -902,7 +913,7 @@ DestroyForm (
// Free ConfigRequest string.
//
while (!IsListEmpty (&Form->ConfigRequestHead)) {
- Link = GetFirstNode (&Form->ConfigRequestHead);
+ Link = GetFirstNode (&Form->ConfigRequestHead);
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
RemoveEntryList (&ConfigInfo->Link);
@@ -922,7 +933,6 @@ DestroyForm (
FreePool (Form);
}
-
/**
Free resources allocated for a FormSet.
@@ -958,7 +968,7 @@ DestroyFormSet (
//
if (FormSet->StorageListHead.ForwardLink != NULL) {
while (!IsListEmpty (&FormSet->StorageListHead)) {
- Link = GetFirstNode (&FormSet->StorageListHead);
+ Link = GetFirstNode (&FormSet->StorageListHead);
Storage = FORMSET_STORAGE_FROM_LINK (Link);
RemoveEntryList (&Storage->Link);
@@ -971,7 +981,7 @@ DestroyFormSet (
//
if (FormSet->DefaultStoreListHead.ForwardLink != NULL) {
while (!IsListEmpty (&FormSet->DefaultStoreListHead)) {
- Link = GetFirstNode (&FormSet->DefaultStoreListHead);
+ Link = GetFirstNode (&FormSet->DefaultStoreListHead);
DefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK (Link);
RemoveEntryList (&DefaultStore->Link);
@@ -983,7 +993,7 @@ DestroyFormSet (
// Free Formset Expressions
//
while (!IsListEmpty (&FormSet->ExpressionListHead)) {
- Link = GetFirstNode (&FormSet->ExpressionListHead);
+ Link = GetFirstNode (&FormSet->ExpressionListHead);
Expression = FORM_EXPRESSION_FROM_LINK (Link);
RemoveEntryList (&Expression->Link);
@@ -1006,6 +1016,7 @@ DestroyFormSet (
if (FormSet->StatementBuffer != NULL) {
FreePool (FormSet->StatementBuffer);
}
+
if (FormSet->ExpressionBuffer != NULL) {
FreePool (FormSet->ExpressionBuffer);
}
@@ -1013,7 +1024,6 @@ DestroyFormSet (
FreePool (FormSet);
}
-
/**
Tell whether this Operand is an Expression OpCode or not
@@ -1025,7 +1035,7 @@ DestroyFormSet (
**/
BOOLEAN
IsExpressionOpCode (
- IN UINT8 Operand
+ IN UINT8 Operand
)
{
if (((Operand >= EFI_IFR_EQ_ID_VAL_OP) && (Operand <= EFI_IFR_NOT_OP)) ||
@@ -1037,7 +1047,8 @@ IsExpressionOpCode (
(Operand == EFI_IFR_MAP_OP) ||
(Operand == EFI_IFR_VERSION_OP) ||
(Operand == EFI_IFR_SECURITY_OP) ||
- (Operand == EFI_IFR_MATCH2_OP)) {
+ (Operand == EFI_IFR_MATCH2_OP))
+ {
return TRUE;
} else {
return FALSE;
@@ -1055,7 +1066,7 @@ IsExpressionOpCode (
**/
BOOLEAN
IsStatementOpCode (
- IN UINT8 Operand
+ IN UINT8 Operand
)
{
if ((Operand == EFI_IFR_SUBTITLE_OP) ||
@@ -1071,7 +1082,8 @@ IsStatementOpCode (
(Operand == EFI_IFR_DATE_OP) ||
(Operand == EFI_IFR_TIME_OP) ||
(Operand == EFI_IFR_GUID_OP) ||
- (Operand == EFI_IFR_ONE_OF_OP)) {
+ (Operand == EFI_IFR_ONE_OF_OP))
+ {
return TRUE;
} else {
return FALSE;
@@ -1089,7 +1101,7 @@ IsStatementOpCode (
**/
BOOLEAN
IsUnKnownOpCode (
- IN UINT8 Operand
+ IN UINT8 Operand
)
{
return Operand > EFI_IFR_MATCH2_OP ? TRUE : FALSE;
@@ -1106,38 +1118,36 @@ IsUnKnownOpCode (
VOID
CountOpCodes (
IN FORM_BROWSER_FORMSET *FormSet,
- OUT UINTN *NumberOfStatement,
- OUT UINTN *NumberOfExpression
+ OUT UINTN *NumberOfStatement,
+ OUT UINTN *NumberOfExpression
)
{
- UINTN StatementCount;
- UINTN ExpressionCount;
- UINT8 *OpCodeData;
- UINTN Offset;
- UINTN OpCodeLen;
-
- Offset = 0;
- StatementCount = 0;
+ UINTN StatementCount;
+ UINTN ExpressionCount;
+ UINT8 *OpCodeData;
+ UINTN Offset;
+ UINTN OpCodeLen;
+
+ Offset = 0;
+ StatementCount = 0;
ExpressionCount = 0;
while (Offset < FormSet->IfrBinaryLength) {
OpCodeData = FormSet->IfrBinaryData + Offset;
- OpCodeLen = ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;
- Offset += OpCodeLen;
+ OpCodeLen = ((EFI_IFR_OP_HEADER *)OpCodeData)->Length;
+ Offset += OpCodeLen;
- if (IsExpressionOpCode (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode)) {
+ if (IsExpressionOpCode (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode)) {
ExpressionCount++;
} else {
StatementCount++;
}
}
- *NumberOfStatement = StatementCount;
+ *NumberOfStatement = StatementCount;
*NumberOfExpression = ExpressionCount;
}
-
-
/**
Parse opcodes in the formset IFR binary.
@@ -1149,87 +1159,87 @@ CountOpCodes (
**/
EFI_STATUS
ParseOpCodes (
- IN FORM_BROWSER_FORMSET *FormSet
+ IN FORM_BROWSER_FORMSET *FormSet
)
{
- EFI_STATUS Status;
- FORM_BROWSER_FORM *CurrentForm;
- FORM_BROWSER_STATEMENT *CurrentStatement;
- FORM_BROWSER_STATEMENT *ParentStatement;
- EXPRESSION_OPCODE *ExpressionOpCode;
- FORM_EXPRESSION *CurrentExpression;
- UINT8 Operand;
- UINT8 Scope;
- UINTN OpCodeOffset;
- UINTN OpCodeLength;
- UINT8 *OpCodeData;
- UINT8 ScopeOpCode;
- FORMSET_STORAGE *Storage;
- FORMSET_DEFAULTSTORE *DefaultStore;
- QUESTION_DEFAULT *CurrentDefault;
- QUESTION_OPTION *CurrentOption;
- UINT8 Width;
- UINTN NumberOfStatement;
- UINTN NumberOfExpression;
- EFI_IMAGE_ID *ImageId;
- BOOLEAN SuppressForQuestion;
- BOOLEAN SuppressForOption;
- UINT16 DepthOfDisable;
- BOOLEAN OpCodeDisabled;
- BOOLEAN SingleOpCodeExpression;
- BOOLEAN InScopeDefault;
- EFI_HII_VALUE *Value;
- EFI_IFR_FORM_MAP_METHOD *MapMethod;
- UINT8 MapScopeDepth;
- LIST_ENTRY *Link;
- FORMSET_STORAGE *VarStorage;
- LIST_ENTRY *MapExpressionList;
- EFI_VARSTORE_ID TempVarstoreId;
- BOOLEAN InScopeDisable;
- INTN ConditionalExprCount;
- BOOLEAN InUnknownScope;
- UINT8 UnknownDepth;
- FORMSET_DEFAULTSTORE *PreDefaultStore;
- LIST_ENTRY *DefaultLink;
- BOOLEAN HaveInserted;
- UINT16 TotalBits;
- BOOLEAN QuestionReferBitField;
-
- SuppressForQuestion = FALSE;
- SuppressForOption = FALSE;
- InScopeDisable = FALSE;
- DepthOfDisable = 0;
- OpCodeDisabled = FALSE;
- SingleOpCodeExpression = FALSE;
- InScopeDefault = FALSE;
- CurrentExpression = NULL;
- CurrentDefault = NULL;
- CurrentOption = NULL;
- ImageId = NULL;
- MapMethod = NULL;
- MapScopeDepth = 0;
- Link = NULL;
- VarStorage = NULL;
- MapExpressionList = NULL;
- TempVarstoreId = 0;
- ConditionalExprCount = 0;
- InUnknownScope = FALSE;
- UnknownDepth = 0;
- QuestionReferBitField = FALSE;
+ EFI_STATUS Status;
+ FORM_BROWSER_FORM *CurrentForm;
+ FORM_BROWSER_STATEMENT *CurrentStatement;
+ FORM_BROWSER_STATEMENT *ParentStatement;
+ EXPRESSION_OPCODE *ExpressionOpCode;
+ FORM_EXPRESSION *CurrentExpression;
+ UINT8 Operand;
+ UINT8 Scope;
+ UINTN OpCodeOffset;
+ UINTN OpCodeLength;
+ UINT8 *OpCodeData;
+ UINT8 ScopeOpCode;
+ FORMSET_STORAGE *Storage;
+ FORMSET_DEFAULTSTORE *DefaultStore;
+ QUESTION_DEFAULT *CurrentDefault;
+ QUESTION_OPTION *CurrentOption;
+ UINT8 Width;
+ UINTN NumberOfStatement;
+ UINTN NumberOfExpression;
+ EFI_IMAGE_ID *ImageId;
+ BOOLEAN SuppressForQuestion;
+ BOOLEAN SuppressForOption;
+ UINT16 DepthOfDisable;
+ BOOLEAN OpCodeDisabled;
+ BOOLEAN SingleOpCodeExpression;
+ BOOLEAN InScopeDefault;
+ EFI_HII_VALUE *Value;
+ EFI_IFR_FORM_MAP_METHOD *MapMethod;
+ UINT8 MapScopeDepth;
+ LIST_ENTRY *Link;
+ FORMSET_STORAGE *VarStorage;
+ LIST_ENTRY *MapExpressionList;
+ EFI_VARSTORE_ID TempVarstoreId;
+ BOOLEAN InScopeDisable;
+ INTN ConditionalExprCount;
+ BOOLEAN InUnknownScope;
+ UINT8 UnknownDepth;
+ FORMSET_DEFAULTSTORE *PreDefaultStore;
+ LIST_ENTRY *DefaultLink;
+ BOOLEAN HaveInserted;
+ UINT16 TotalBits;
+ BOOLEAN QuestionReferBitField;
+
+ SuppressForQuestion = FALSE;
+ SuppressForOption = FALSE;
+ InScopeDisable = FALSE;
+ DepthOfDisable = 0;
+ OpCodeDisabled = FALSE;
+ SingleOpCodeExpression = FALSE;
+ InScopeDefault = FALSE;
+ CurrentExpression = NULL;
+ CurrentDefault = NULL;
+ CurrentOption = NULL;
+ ImageId = NULL;
+ MapMethod = NULL;
+ MapScopeDepth = 0;
+ Link = NULL;
+ VarStorage = NULL;
+ MapExpressionList = NULL;
+ TempVarstoreId = 0;
+ ConditionalExprCount = 0;
+ InUnknownScope = FALSE;
+ UnknownDepth = 0;
+ QuestionReferBitField = FALSE;
//
// Get the number of Statements and Expressions
//
CountOpCodes (FormSet, &NumberOfStatement, &NumberOfExpression);
- mStatementIndex = 0;
- mUsedQuestionId = 1;
+ mStatementIndex = 0;
+ mUsedQuestionId = 1;
FormSet->StatementBuffer = AllocateZeroPool (NumberOfStatement * sizeof (FORM_BROWSER_STATEMENT));
if (FormSet->StatementBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- mExpressionOpCodeIndex = 0;
+ mExpressionOpCodeIndex = 0;
FormSet->ExpressionBuffer = AllocateZeroPool (NumberOfExpression * sizeof (EXPRESSION_OPCODE));
if (FormSet->ExpressionBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
@@ -1244,7 +1254,7 @@ ParseOpCodes (
ResetCurrentExpressionStack ();
ResetMapExpressionListStack ();
- CurrentForm = NULL;
+ CurrentForm = NULL;
CurrentStatement = NULL;
ParentStatement = NULL;
@@ -1254,31 +1264,31 @@ ParseOpCodes (
while (OpCodeOffset < FormSet->IfrBinaryLength) {
OpCodeData = FormSet->IfrBinaryData + OpCodeOffset;
- OpCodeLength = ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;
+ OpCodeLength = ((EFI_IFR_OP_HEADER *)OpCodeData)->Length;
OpCodeOffset += OpCodeLength;
- Operand = ((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode;
- Scope = ((EFI_IFR_OP_HEADER *) OpCodeData)->Scope;
+ Operand = ((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode;
+ Scope = ((EFI_IFR_OP_HEADER *)OpCodeData)->Scope;
if (InUnknownScope) {
if (Operand == EFI_IFR_END_OP) {
- UnknownDepth --;
+ UnknownDepth--;
if (UnknownDepth == 0) {
InUnknownScope = FALSE;
}
} else {
if (Scope != 0) {
- UnknownDepth ++;
+ UnknownDepth++;
}
}
continue;
}
- if (IsUnKnownOpCode(Operand)) {
+ if (IsUnKnownOpCode (Operand)) {
if (Scope != 0) {
InUnknownScope = TRUE;
- UnknownDepth ++;
+ UnknownDepth++;
}
continue;
@@ -1313,6 +1323,7 @@ ParseOpCodes (
}
}
}
+
continue;
}
@@ -1321,216 +1332,224 @@ ParseOpCodes (
mExpressionOpCodeIndex++;
ExpressionOpCode->Signature = EXPRESSION_OPCODE_SIGNATURE;
- ExpressionOpCode->Operand = Operand;
- Value = &ExpressionOpCode->Value;
+ ExpressionOpCode->Operand = Operand;
+ Value = &ExpressionOpCode->Value;
switch (Operand) {
- case EFI_IFR_EQ_ID_VAL_OP:
- CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_VAL *) OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
+ case EFI_IFR_EQ_ID_VAL_OP:
+ CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_VAL *)OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
- CopyMem (&Value->Value.u16, &((EFI_IFR_EQ_ID_VAL *) OpCodeData)->Value, sizeof (UINT16));
- break;
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
+ CopyMem (&Value->Value.u16, &((EFI_IFR_EQ_ID_VAL *)OpCodeData)->Value, sizeof (UINT16));
+ break;
- case EFI_IFR_EQ_ID_ID_OP:
- CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_ID *) OpCodeData)->QuestionId1, sizeof (EFI_QUESTION_ID));
- CopyMem (&ExpressionOpCode->QuestionId2, &((EFI_IFR_EQ_ID_ID *) OpCodeData)->QuestionId2, sizeof (EFI_QUESTION_ID));
- break;
+ case EFI_IFR_EQ_ID_ID_OP:
+ CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_ID *)OpCodeData)->QuestionId1, sizeof (EFI_QUESTION_ID));
+ CopyMem (&ExpressionOpCode->QuestionId2, &((EFI_IFR_EQ_ID_ID *)OpCodeData)->QuestionId2, sizeof (EFI_QUESTION_ID));
+ break;
- case EFI_IFR_EQ_ID_VAL_LIST_OP:
- CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_VAL_LIST *) OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
- CopyMem (&ExpressionOpCode->ListLength, &((EFI_IFR_EQ_ID_VAL_LIST *) OpCodeData)->ListLength, sizeof (UINT16));
- ExpressionOpCode->ValueList = AllocateCopyPool (ExpressionOpCode->ListLength * sizeof (UINT16), &((EFI_IFR_EQ_ID_VAL_LIST *) OpCodeData)->ValueList);
- break;
+ case EFI_IFR_EQ_ID_VAL_LIST_OP:
+ CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_VAL_LIST *)OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
+ CopyMem (&ExpressionOpCode->ListLength, &((EFI_IFR_EQ_ID_VAL_LIST *)OpCodeData)->ListLength, sizeof (UINT16));
+ ExpressionOpCode->ValueList = AllocateCopyPool (ExpressionOpCode->ListLength * sizeof (UINT16), &((EFI_IFR_EQ_ID_VAL_LIST *)OpCodeData)->ValueList);
+ break;
- case EFI_IFR_TO_STRING_OP:
- case EFI_IFR_FIND_OP:
- ExpressionOpCode->Format = (( EFI_IFR_TO_STRING *) OpCodeData)->Format;
- break;
+ case EFI_IFR_TO_STRING_OP:
+ case EFI_IFR_FIND_OP:
+ ExpressionOpCode->Format = ((EFI_IFR_TO_STRING *)OpCodeData)->Format;
+ break;
- case EFI_IFR_STRING_REF1_OP:
- Value->Type = EFI_IFR_TYPE_STRING;
- CopyMem (&Value->Value.string, &(( EFI_IFR_STRING_REF1 *) OpCodeData)->StringId, sizeof (EFI_STRING_ID));
- break;
+ case EFI_IFR_STRING_REF1_OP:
+ Value->Type = EFI_IFR_TYPE_STRING;
+ CopyMem (&Value->Value.string, &((EFI_IFR_STRING_REF1 *)OpCodeData)->StringId, sizeof (EFI_STRING_ID));
+ break;
- case EFI_IFR_RULE_REF_OP:
- ExpressionOpCode->RuleId = (( EFI_IFR_RULE_REF *) OpCodeData)->RuleId;
- break;
+ case EFI_IFR_RULE_REF_OP:
+ ExpressionOpCode->RuleId = ((EFI_IFR_RULE_REF *)OpCodeData)->RuleId;
+ break;
- case EFI_IFR_SPAN_OP:
- ExpressionOpCode->Flags = (( EFI_IFR_SPAN *) OpCodeData)->Flags;
- break;
+ case EFI_IFR_SPAN_OP:
+ ExpressionOpCode->Flags = ((EFI_IFR_SPAN *)OpCodeData)->Flags;
+ break;
- case EFI_IFR_THIS_OP:
- ASSERT (ParentStatement != NULL);
- ExpressionOpCode->QuestionId = ParentStatement->QuestionId;
- break;
+ case EFI_IFR_THIS_OP:
+ ASSERT (ParentStatement != NULL);
+ ExpressionOpCode->QuestionId = ParentStatement->QuestionId;
+ break;
- case EFI_IFR_SECURITY_OP:
- CopyMem (&ExpressionOpCode->Guid, &((EFI_IFR_SECURITY *) OpCodeData)->Permissions, sizeof (EFI_GUID));
- break;
+ case EFI_IFR_SECURITY_OP:
+ CopyMem (&ExpressionOpCode->Guid, &((EFI_IFR_SECURITY *)OpCodeData)->Permissions, sizeof (EFI_GUID));
+ break;
- case EFI_IFR_MATCH2_OP:
- CopyMem (&ExpressionOpCode->Guid, &((EFI_IFR_MATCH2 *) OpCodeData)->SyntaxType, sizeof (EFI_GUID));
- break;
+ case EFI_IFR_MATCH2_OP:
+ CopyMem (&ExpressionOpCode->Guid, &((EFI_IFR_MATCH2 *)OpCodeData)->SyntaxType, sizeof (EFI_GUID));
+ break;
- case EFI_IFR_GET_OP:
- case EFI_IFR_SET_OP:
- CopyMem (&TempVarstoreId, &((EFI_IFR_GET *) OpCodeData)->VarStoreId, sizeof (TempVarstoreId));
- if (TempVarstoreId != 0) {
- if (FormSet->StorageListHead.ForwardLink != NULL) {
- Link = GetFirstNode (&FormSet->StorageListHead);
- while (!IsNull (&FormSet->StorageListHead, Link)) {
- VarStorage = FORMSET_STORAGE_FROM_LINK (Link);
- if (VarStorage->VarStoreId == ((EFI_IFR_GET *) OpCodeData)->VarStoreId) {
- ExpressionOpCode->VarStorage = VarStorage->BrowserStorage;
- break;
+ case EFI_IFR_GET_OP:
+ case EFI_IFR_SET_OP:
+ CopyMem (&TempVarstoreId, &((EFI_IFR_GET *)OpCodeData)->VarStoreId, sizeof (TempVarstoreId));
+ if (TempVarstoreId != 0) {
+ if (FormSet->StorageListHead.ForwardLink != NULL) {
+ Link = GetFirstNode (&FormSet->StorageListHead);
+ while (!IsNull (&FormSet->StorageListHead, Link)) {
+ VarStorage = FORMSET_STORAGE_FROM_LINK (Link);
+ if (VarStorage->VarStoreId == ((EFI_IFR_GET *)OpCodeData)->VarStoreId) {
+ ExpressionOpCode->VarStorage = VarStorage->BrowserStorage;
+ break;
+ }
+
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
}
- Link = GetNextNode (&FormSet->StorageListHead, Link);
}
- }
- if (ExpressionOpCode->VarStorage == NULL) {
- //
- // VarStorage is not found.
- //
- return EFI_INVALID_PARAMETER;
- }
- }
- ExpressionOpCode->ValueType = ((EFI_IFR_GET *) OpCodeData)->VarStoreType;
- switch (ExpressionOpCode->ValueType) {
- case EFI_IFR_TYPE_BOOLEAN:
- case EFI_IFR_TYPE_NUM_SIZE_8:
- ExpressionOpCode->ValueWidth = 1;
- break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- case EFI_IFR_TYPE_STRING:
- ExpressionOpCode->ValueWidth = 2;
- break;
+ if (ExpressionOpCode->VarStorage == NULL) {
+ //
+ // VarStorage is not found.
+ //
+ return EFI_INVALID_PARAMETER;
+ }
+ }
- case EFI_IFR_TYPE_NUM_SIZE_32:
- ExpressionOpCode->ValueWidth = 4;
- break;
+ ExpressionOpCode->ValueType = ((EFI_IFR_GET *)OpCodeData)->VarStoreType;
+ switch (ExpressionOpCode->ValueType) {
+ case EFI_IFR_TYPE_BOOLEAN:
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ ExpressionOpCode->ValueWidth = 1;
+ break;
+
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ case EFI_IFR_TYPE_STRING:
+ ExpressionOpCode->ValueWidth = 2;
+ break;
+
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ ExpressionOpCode->ValueWidth = 4;
+ break;
+
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ ExpressionOpCode->ValueWidth = 8;
+ break;
+
+ case EFI_IFR_TYPE_DATE:
+ ExpressionOpCode->ValueWidth = (UINT8)sizeof (EFI_IFR_DATE);
+ break;
+
+ case EFI_IFR_TYPE_TIME:
+ ExpressionOpCode->ValueWidth = (UINT8)sizeof (EFI_IFR_TIME);
+ break;
+
+ case EFI_IFR_TYPE_REF:
+ ExpressionOpCode->ValueWidth = (UINT8)sizeof (EFI_IFR_REF);
+ break;
+
+ case EFI_IFR_TYPE_OTHER:
+ case EFI_IFR_TYPE_UNDEFINED:
+ case EFI_IFR_TYPE_ACTION:
+ case EFI_IFR_TYPE_BUFFER:
+ default:
+ //
+ // Invalid value type for Get/Set opcode.
+ //
+ return EFI_INVALID_PARAMETER;
+ }
- case EFI_IFR_TYPE_NUM_SIZE_64:
- ExpressionOpCode->ValueWidth = 8;
- break;
+ CopyMem (&ExpressionOpCode->VarStoreInfo.VarName, &((EFI_IFR_GET *)OpCodeData)->VarStoreInfo.VarName, sizeof (EFI_STRING_ID));
+ CopyMem (&ExpressionOpCode->VarStoreInfo.VarOffset, &((EFI_IFR_GET *)OpCodeData)->VarStoreInfo.VarOffset, sizeof (UINT16));
+ if ((ExpressionOpCode->VarStorage != NULL) &&
+ ((ExpressionOpCode->VarStorage->Type == EFI_HII_VARSTORE_NAME_VALUE) ||
+ (ExpressionOpCode->VarStorage->Type == EFI_HII_VARSTORE_EFI_VARIABLE)))
+ {
+ ExpressionOpCode->ValueName = GetToken (ExpressionOpCode->VarStoreInfo.VarName, FormSet->HiiHandle);
+ if (ExpressionOpCode->ValueName == NULL) {
+ //
+ // String ID is invalid.
+ //
+ return EFI_INVALID_PARAMETER;
+ }
+ }
- case EFI_IFR_TYPE_DATE:
- ExpressionOpCode->ValueWidth = (UINT8) sizeof (EFI_IFR_DATE);
break;
- case EFI_IFR_TYPE_TIME:
- ExpressionOpCode->ValueWidth = (UINT8) sizeof (EFI_IFR_TIME);
+ case EFI_IFR_QUESTION_REF1_OP:
+ CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_VAL_LIST *)OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
break;
- case EFI_IFR_TYPE_REF:
- ExpressionOpCode->ValueWidth = (UINT8) sizeof (EFI_IFR_REF);
- break;
+ case EFI_IFR_QUESTION_REF3_OP:
+ if (OpCodeLength >= sizeof (EFI_IFR_QUESTION_REF3_2)) {
+ CopyMem (&ExpressionOpCode->DevicePath, &((EFI_IFR_QUESTION_REF3_2 *)OpCodeData)->DevicePath, sizeof (EFI_STRING_ID));
- case EFI_IFR_TYPE_OTHER:
- case EFI_IFR_TYPE_UNDEFINED:
- case EFI_IFR_TYPE_ACTION:
- case EFI_IFR_TYPE_BUFFER:
- default:
- //
- // Invalid value type for Get/Set opcode.
- //
- return EFI_INVALID_PARAMETER;
- }
- CopyMem (&ExpressionOpCode->VarStoreInfo.VarName, &((EFI_IFR_GET *) OpCodeData)->VarStoreInfo.VarName, sizeof (EFI_STRING_ID));
- CopyMem (&ExpressionOpCode->VarStoreInfo.VarOffset, &((EFI_IFR_GET *) OpCodeData)->VarStoreInfo.VarOffset, sizeof (UINT16));
- if ((ExpressionOpCode->VarStorage != NULL) &&
- (ExpressionOpCode->VarStorage->Type == EFI_HII_VARSTORE_NAME_VALUE ||
- ExpressionOpCode->VarStorage->Type == EFI_HII_VARSTORE_EFI_VARIABLE)) {
- ExpressionOpCode->ValueName = GetToken (ExpressionOpCode->VarStoreInfo.VarName, FormSet->HiiHandle);
- if (ExpressionOpCode->ValueName == NULL) {
- //
- // String ID is invalid.
- //
- return EFI_INVALID_PARAMETER;
+ if (OpCodeLength >= sizeof (EFI_IFR_QUESTION_REF3_3)) {
+ CopyMem (&ExpressionOpCode->Guid, &((EFI_IFR_QUESTION_REF3_3 *)OpCodeData)->Guid, sizeof (EFI_GUID));
+ }
}
- }
- break;
- case EFI_IFR_QUESTION_REF1_OP:
- CopyMem (&ExpressionOpCode->QuestionId, &((EFI_IFR_EQ_ID_VAL_LIST *) OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
- break;
-
- case EFI_IFR_QUESTION_REF3_OP:
- if (OpCodeLength >= sizeof (EFI_IFR_QUESTION_REF3_2)) {
- CopyMem (&ExpressionOpCode->DevicePath, &(( EFI_IFR_QUESTION_REF3_2 *) OpCodeData)->DevicePath, sizeof (EFI_STRING_ID));
-
- if (OpCodeLength >= sizeof (EFI_IFR_QUESTION_REF3_3)) {
- CopyMem (&ExpressionOpCode->Guid, &(( EFI_IFR_QUESTION_REF3_3 *) OpCodeData)->Guid, sizeof (EFI_GUID));
- }
- }
- break;
+ break;
- //
- // constant
- //
- case EFI_IFR_TRUE_OP:
- Value->Type = EFI_IFR_TYPE_BOOLEAN;
- Value->Value.b = TRUE;
- break;
+ //
+ // constant
+ //
+ case EFI_IFR_TRUE_OP:
+ Value->Type = EFI_IFR_TYPE_BOOLEAN;
+ Value->Value.b = TRUE;
+ break;
- case EFI_IFR_FALSE_OP:
- Value->Type = EFI_IFR_TYPE_BOOLEAN;
- Value->Value.b = FALSE;
- break;
+ case EFI_IFR_FALSE_OP:
+ Value->Type = EFI_IFR_TYPE_BOOLEAN;
+ Value->Value.b = FALSE;
+ break;
- case EFI_IFR_ONE_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = 1;
- break;
+ case EFI_IFR_ONE_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = 1;
+ break;
- case EFI_IFR_ZERO_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = 0;
- break;
+ case EFI_IFR_ZERO_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = 0;
+ break;
- case EFI_IFR_ONES_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- Value->Value.u64 = 0xffffffffffffffffULL;
- break;
+ case EFI_IFR_ONES_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ Value->Value.u64 = 0xffffffffffffffffULL;
+ break;
- case EFI_IFR_UINT8_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- Value->Value.u8 = (( EFI_IFR_UINT8 *) OpCodeData)->Value;
- break;
+ case EFI_IFR_UINT8_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ Value->Value.u8 = ((EFI_IFR_UINT8 *)OpCodeData)->Value;
+ break;
- case EFI_IFR_UINT16_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
- CopyMem (&Value->Value.u16, &(( EFI_IFR_UINT16 *) OpCodeData)->Value, sizeof (UINT16));
- break;
+ case EFI_IFR_UINT16_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
+ CopyMem (&Value->Value.u16, &((EFI_IFR_UINT16 *)OpCodeData)->Value, sizeof (UINT16));
+ break;
- case EFI_IFR_UINT32_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;
- CopyMem (&Value->Value.u32, &(( EFI_IFR_UINT32 *) OpCodeData)->Value, sizeof (UINT32));
- break;
+ case EFI_IFR_UINT32_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;
+ CopyMem (&Value->Value.u32, &((EFI_IFR_UINT32 *)OpCodeData)->Value, sizeof (UINT32));
+ break;
- case EFI_IFR_UINT64_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- CopyMem (&Value->Value.u64, &(( EFI_IFR_UINT64 *) OpCodeData)->Value, sizeof (UINT64));
- break;
+ case EFI_IFR_UINT64_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ CopyMem (&Value->Value.u64, &((EFI_IFR_UINT64 *)OpCodeData)->Value, sizeof (UINT64));
+ break;
- case EFI_IFR_UNDEFINED_OP:
- Value->Type = EFI_IFR_TYPE_UNDEFINED;
- break;
+ case EFI_IFR_UNDEFINED_OP:
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ break;
- case EFI_IFR_VERSION_OP:
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
- Value->Value.u16 = EFI_IFR_SPECIFICATION_VERSION;
- break;
+ case EFI_IFR_VERSION_OP:
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
+ Value->Value.u16 = EFI_IFR_SPECIFICATION_VERSION;
+ break;
- default:
- break;
+ default:
+ break;
}
+
//
// Create sub expression nested in MAP opcode
//
- if (CurrentExpression == NULL && MapScopeDepth > 0) {
+ if ((CurrentExpression == NULL) && (MapScopeDepth > 0)) {
CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
ASSERT (MapExpressionList != NULL);
InsertTailList (MapExpressionList, &CurrentExpression->Link);
@@ -1538,6 +1557,7 @@ ParseOpCodes (
SingleOpCodeExpression = TRUE;
}
}
+
ASSERT (CurrentExpression != NULL);
InsertTailList (&CurrentExpression->OpCodeListHead, &ExpressionOpCode->Link);
if (Operand == EFI_IFR_MAP_OP) {
@@ -1547,6 +1567,7 @@ ParseOpCodes (
if (MapExpressionList != NULL) {
PushMapExpressionList (MapExpressionList);
}
+
//
// Initialize new Map Expression List.
//
@@ -1557,7 +1578,7 @@ ParseOpCodes (
//
PushCurrentExpression (CurrentExpression);
CurrentExpression = NULL;
- MapScopeDepth ++;
+ MapScopeDepth++;
} else if (SingleOpCodeExpression) {
//
// There are two cases to indicate the end of an Expression:
@@ -1566,7 +1587,7 @@ ParseOpCodes (
//
SingleOpCodeExpression = FALSE;
- if (InScopeDisable && CurrentForm == NULL) {
+ if (InScopeDisable && (CurrentForm == NULL)) {
//
// This is DisableIf expression for Form, it should be a constant expression
//
@@ -1575,7 +1596,7 @@ ParseOpCodes (
return Status;
}
- OpCodeDisabled = IsTrue(&CurrentExpression->Result);
+ OpCodeDisabled = IsTrue (&CurrentExpression->Result);
}
CurrentExpression = NULL;
@@ -1588,1097 +1609,1132 @@ ParseOpCodes (
// Parse the Opcode
//
switch (Operand) {
+ case EFI_IFR_FORM_SET_OP:
+ //
+ // Check the formset GUID
+ //
+ if (CompareMem (&FormSet->Guid, &((EFI_IFR_FORM_SET *)OpCodeData)->Guid, sizeof (EFI_GUID)) != 0) {
+ return EFI_INVALID_PARAMETER;
+ }
- case EFI_IFR_FORM_SET_OP:
- //
- // Check the formset GUID
- //
- if (CompareMem (&FormSet->Guid, &((EFI_IFR_FORM_SET *) OpCodeData)->Guid, sizeof (EFI_GUID)) != 0) {
- return EFI_INVALID_PARAMETER;
- }
+ CopyMem (&FormSet->FormSetTitle, &((EFI_IFR_FORM_SET *)OpCodeData)->FormSetTitle, sizeof (EFI_STRING_ID));
+ CopyMem (&FormSet->Help, &((EFI_IFR_FORM_SET *)OpCodeData)->Help, sizeof (EFI_STRING_ID));
+ FormSet->OpCode = (EFI_IFR_OP_HEADER *)OpCodeData;// save the opcode address of formset
- CopyMem (&FormSet->FormSetTitle, &((EFI_IFR_FORM_SET *) OpCodeData)->FormSetTitle, sizeof (EFI_STRING_ID));
- CopyMem (&FormSet->Help, &((EFI_IFR_FORM_SET *) OpCodeData)->Help, sizeof (EFI_STRING_ID));
- FormSet->OpCode = (EFI_IFR_OP_HEADER *) OpCodeData;//save the opcode address of formset
+ if (OpCodeLength > OFFSET_OF (EFI_IFR_FORM_SET, Flags)) {
+ //
+ // The formset OpCode contains ClassGuid
+ //
+ FormSet->NumberOfClassGuid = (UINT8)(((EFI_IFR_FORM_SET *)OpCodeData)->Flags & 0x3);
+ CopyMem (FormSet->ClassGuid, OpCodeData + sizeof (EFI_IFR_FORM_SET), FormSet->NumberOfClassGuid * sizeof (EFI_GUID));
+ }
+
+ break;
- if (OpCodeLength > OFFSET_OF (EFI_IFR_FORM_SET, Flags)) {
+ case EFI_IFR_FORM_OP:
//
- // The formset OpCode contains ClassGuid
+ // Create a new Form for this FormSet
//
- FormSet->NumberOfClassGuid = (UINT8) (((EFI_IFR_FORM_SET *) OpCodeData)->Flags & 0x3);
- CopyMem (FormSet->ClassGuid, OpCodeData + sizeof (EFI_IFR_FORM_SET), FormSet->NumberOfClassGuid * sizeof (EFI_GUID));
- }
- break;
+ CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM));
+ ASSERT (CurrentForm != NULL);
+ CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE;
+ InitializeListHead (&CurrentForm->ExpressionListHead);
+ InitializeListHead (&CurrentForm->StatementListHead);
+ InitializeListHead (&CurrentForm->ConfigRequestHead);
+ InitializeListHead (&CurrentForm->FormViewListHead);
+
+ CurrentForm->FormType = STANDARD_MAP_FORM_TYPE;
+ CopyMem (&CurrentForm->FormId, &((EFI_IFR_FORM *)OpCodeData)->FormId, sizeof (UINT16));
+ CopyMem (&CurrentForm->FormTitle, &((EFI_IFR_FORM *)OpCodeData)->FormTitle, sizeof (EFI_STRING_ID));
+
+ ConditionalExprCount = GetConditionalExpressionCount (ExpressForm);
+ if ( ConditionalExprCount > 0) {
+ //
+ // Form is inside of suppressif
+ //
+ CurrentForm->SuppressExpression = (FORM_EXPRESSION_LIST *)AllocatePool (
+ (UINTN)(sizeof (FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof (FORM_EXPRESSION *)))
+ );
+ ASSERT (CurrentForm->SuppressExpression != NULL);
+ CurrentForm->SuppressExpression->Count = (UINTN)ConditionalExprCount;
+ CurrentForm->SuppressExpression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
+ CopyMem (CurrentForm->SuppressExpression->Expression, GetConditionalExpressionList (ExpressForm), (UINTN)(sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
+ }
- case EFI_IFR_FORM_OP:
- //
- // Create a new Form for this FormSet
- //
- CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM));
- ASSERT (CurrentForm != NULL);
- CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE;
- InitializeListHead (&CurrentForm->ExpressionListHead);
- InitializeListHead (&CurrentForm->StatementListHead);
- InitializeListHead (&CurrentForm->ConfigRequestHead);
- InitializeListHead (&CurrentForm->FormViewListHead);
-
- CurrentForm->FormType = STANDARD_MAP_FORM_TYPE;
- CopyMem (&CurrentForm->FormId, &((EFI_IFR_FORM *) OpCodeData)->FormId, sizeof (UINT16));
- CopyMem (&CurrentForm->FormTitle, &((EFI_IFR_FORM *) OpCodeData)->FormTitle, sizeof (EFI_STRING_ID));
-
- ConditionalExprCount = GetConditionalExpressionCount(ExpressForm);
- if ( ConditionalExprCount > 0) {
- //
- // Form is inside of suppressif
- //
- CurrentForm->SuppressExpression = (FORM_EXPRESSION_LIST *) AllocatePool(
- (UINTN) (sizeof(FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof(FORM_EXPRESSION *))));
- ASSERT (CurrentForm->SuppressExpression != NULL);
- CurrentForm->SuppressExpression->Count = (UINTN) ConditionalExprCount;
- CurrentForm->SuppressExpression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
- CopyMem (CurrentForm->SuppressExpression->Expression, GetConditionalExpressionList(ExpressForm), (UINTN) (sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
- }
+ if (Scope != 0) {
+ //
+ // Enter scope of a Form, suppressif will be used for Question or Option
+ //
+ SuppressForQuestion = TRUE;
+ }
- if (Scope != 0) {
//
- // Enter scope of a Form, suppressif will be used for Question or Option
+ // Insert into Form list of this FormSet
//
- SuppressForQuestion = TRUE;
- }
-
- //
- // Insert into Form list of this FormSet
- //
- InsertTailList (&FormSet->FormListHead, &CurrentForm->Link);
- break;
+ InsertTailList (&FormSet->FormListHead, &CurrentForm->Link);
+ break;
- case EFI_IFR_FORM_MAP_OP:
- //
- // Create a new Form for this FormSet
- //
- CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM));
- ASSERT (CurrentForm != NULL);
- CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE;
- InitializeListHead (&CurrentForm->ExpressionListHead);
- InitializeListHead (&CurrentForm->StatementListHead);
- InitializeListHead (&CurrentForm->ConfigRequestHead);
- InitializeListHead (&CurrentForm->FormViewListHead);
+ case EFI_IFR_FORM_MAP_OP:
+ //
+ // Create a new Form for this FormSet
+ //
+ CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM));
+ ASSERT (CurrentForm != NULL);
+ CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE;
+ InitializeListHead (&CurrentForm->ExpressionListHead);
+ InitializeListHead (&CurrentForm->StatementListHead);
+ InitializeListHead (&CurrentForm->ConfigRequestHead);
+ InitializeListHead (&CurrentForm->FormViewListHead);
- CopyMem (&CurrentForm->FormId, &((EFI_IFR_FORM *) OpCodeData)->FormId, sizeof (UINT16));
+ CopyMem (&CurrentForm->FormId, &((EFI_IFR_FORM *)OpCodeData)->FormId, sizeof (UINT16));
- MapMethod = (EFI_IFR_FORM_MAP_METHOD *) (OpCodeData + sizeof (EFI_IFR_FORM_MAP));
- //
- // FormMap Form must contain at least one Map Method.
- //
- if (((EFI_IFR_OP_HEADER *) OpCodeData)->Length < ((UINTN) (UINT8 *) (MapMethod + 1) - (UINTN) OpCodeData)) {
- return EFI_INVALID_PARAMETER;
- }
- //
- // Try to find the standard form map method.
- //
- while (((UINTN) (UINT8 *) MapMethod - (UINTN) OpCodeData) < ((EFI_IFR_OP_HEADER *) OpCodeData)->Length) {
- if (CompareGuid ((EFI_GUID *) (VOID *) &MapMethod->MethodIdentifier, &gEfiHiiStandardFormGuid)) {
- CopyMem (&CurrentForm->FormTitle, &MapMethod->MethodTitle, sizeof (EFI_STRING_ID));
- CurrentForm->FormType = STANDARD_MAP_FORM_TYPE;
- break;
+ MapMethod = (EFI_IFR_FORM_MAP_METHOD *)(OpCodeData + sizeof (EFI_IFR_FORM_MAP));
+ //
+ // FormMap Form must contain at least one Map Method.
+ //
+ if (((EFI_IFR_OP_HEADER *)OpCodeData)->Length < ((UINTN)(UINT8 *)(MapMethod + 1) - (UINTN)OpCodeData)) {
+ return EFI_INVALID_PARAMETER;
}
- MapMethod ++;
- }
- //
- // If the standard form map method is not found, the first map method title will be used.
- //
- if (CurrentForm->FormTitle == 0) {
- MapMethod = (EFI_IFR_FORM_MAP_METHOD *) (OpCodeData + sizeof (EFI_IFR_FORM_MAP));
- CopyMem (&CurrentForm->FormTitle, &MapMethod->MethodTitle, sizeof (EFI_STRING_ID));
- }
- ConditionalExprCount = GetConditionalExpressionCount(ExpressForm);
- if ( ConditionalExprCount > 0) {
//
- // Form is inside of suppressif
+ // Try to find the standard form map method.
//
- CurrentForm->SuppressExpression = (FORM_EXPRESSION_LIST *) AllocatePool(
- (UINTN) (sizeof(FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof(FORM_EXPRESSION *))));
- ASSERT (CurrentForm->SuppressExpression != NULL);
- CurrentForm->SuppressExpression->Count = (UINTN) ConditionalExprCount;
- CurrentForm->SuppressExpression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
- CopyMem (CurrentForm->SuppressExpression->Expression, GetConditionalExpressionList(ExpressForm), (UINTN) (sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
- }
+ while (((UINTN)(UINT8 *)MapMethod - (UINTN)OpCodeData) < ((EFI_IFR_OP_HEADER *)OpCodeData)->Length) {
+ if (CompareGuid ((EFI_GUID *)(VOID *)&MapMethod->MethodIdentifier, &gEfiHiiStandardFormGuid)) {
+ CopyMem (&CurrentForm->FormTitle, &MapMethod->MethodTitle, sizeof (EFI_STRING_ID));
+ CurrentForm->FormType = STANDARD_MAP_FORM_TYPE;
+ break;
+ }
+
+ MapMethod++;
+ }
- if (Scope != 0) {
//
- // Enter scope of a Form, suppressif will be used for Question or Option
+ // If the standard form map method is not found, the first map method title will be used.
//
- SuppressForQuestion = TRUE;
- }
+ if (CurrentForm->FormTitle == 0) {
+ MapMethod = (EFI_IFR_FORM_MAP_METHOD *)(OpCodeData + sizeof (EFI_IFR_FORM_MAP));
+ CopyMem (&CurrentForm->FormTitle, &MapMethod->MethodTitle, sizeof (EFI_STRING_ID));
+ }
- //
- // Insert into Form list of this FormSet
- //
- InsertTailList (&FormSet->FormListHead, &CurrentForm->Link);
- break;
+ ConditionalExprCount = GetConditionalExpressionCount (ExpressForm);
+ if ( ConditionalExprCount > 0) {
+ //
+ // Form is inside of suppressif
+ //
+ CurrentForm->SuppressExpression = (FORM_EXPRESSION_LIST *)AllocatePool (
+ (UINTN)(sizeof (FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof (FORM_EXPRESSION *)))
+ );
+ ASSERT (CurrentForm->SuppressExpression != NULL);
+ CurrentForm->SuppressExpression->Count = (UINTN)ConditionalExprCount;
+ CurrentForm->SuppressExpression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
+ CopyMem (CurrentForm->SuppressExpression->Expression, GetConditionalExpressionList (ExpressForm), (UINTN)(sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
+ }
- //
- // Storage
- //
- case EFI_IFR_VARSTORE_OP:
- //
- // Create a buffer Storage for this FormSet
- //
- Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_BUFFER, OpCodeData);
- CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE *) OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));
- break;
+ if (Scope != 0) {
+ //
+ // Enter scope of a Form, suppressif will be used for Question or Option
+ //
+ SuppressForQuestion = TRUE;
+ }
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:
- //
- // Create a name/value Storage for this FormSet
- //
- Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_NAME_VALUE, OpCodeData);
- CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));
- break;
+ //
+ // Insert into Form list of this FormSet
+ //
+ InsertTailList (&FormSet->FormListHead, &CurrentForm->Link);
+ break;
- case EFI_IFR_VARSTORE_EFI_OP:
//
- // Create a EFI variable Storage for this FormSet
+ // Storage
//
- if (OpCodeLength < sizeof (EFI_IFR_VARSTORE_EFI)) {
+ case EFI_IFR_VARSTORE_OP:
//
- // Create efi varstore with format follow UEFI spec before 2.3.1.
+ // Create a buffer Storage for this FormSet
//
- Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_EFI_VARIABLE, OpCodeData);
- } else {
+ Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_BUFFER, OpCodeData);
+ CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE *)OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));
+ break;
+
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:
//
- // Create efi varstore with format follow UEFI spec 2.3.1 and later.
+ // Create a name/value Storage for this FormSet
//
- Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER, OpCodeData);
- }
- CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE_EFI *) OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));
- break;
+ Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_NAME_VALUE, OpCodeData);
+ CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));
+ break;
+
+ case EFI_IFR_VARSTORE_EFI_OP:
+ //
+ // Create a EFI variable Storage for this FormSet
+ //
+ if (OpCodeLength < sizeof (EFI_IFR_VARSTORE_EFI)) {
+ //
+ // Create efi varstore with format follow UEFI spec before 2.3.1.
+ //
+ Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_EFI_VARIABLE, OpCodeData);
+ } else {
+ //
+ // Create efi varstore with format follow UEFI spec 2.3.1 and later.
+ //
+ Storage = CreateStorage (FormSet, EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER, OpCodeData);
+ }
+
+ CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE_EFI *)OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));
+ break;
- //
- // DefaultStore
- //
- case EFI_IFR_DEFAULTSTORE_OP:
- HaveInserted = FALSE;
- DefaultStore = AllocateZeroPool (sizeof (FORMSET_DEFAULTSTORE));
- ASSERT (DefaultStore != NULL);
- DefaultStore->Signature = FORMSET_DEFAULTSTORE_SIGNATURE;
-
- CopyMem (&DefaultStore->DefaultId, &((EFI_IFR_DEFAULTSTORE *) OpCodeData)->DefaultId, sizeof (UINT16));
- CopyMem (&DefaultStore->DefaultName, &((EFI_IFR_DEFAULTSTORE *) OpCodeData)->DefaultName, sizeof (EFI_STRING_ID));
//
- // Insert it to the DefaultStore list of this Formset with ascending order.
+ // DefaultStore
//
- if (!IsListEmpty (&FormSet->DefaultStoreListHead)) {
- DefaultLink = GetFirstNode (&FormSet->DefaultStoreListHead);
- while (!IsNull (&FormSet->DefaultStoreListHead, DefaultLink)) {
- PreDefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK(DefaultLink);
- DefaultLink = GetNextNode (&FormSet->DefaultStoreListHead, DefaultLink);
- if (DefaultStore->DefaultId < PreDefaultStore->DefaultId) {
- InsertTailList (&PreDefaultStore->Link, &DefaultStore->Link);
- HaveInserted = TRUE;
- break;
+ case EFI_IFR_DEFAULTSTORE_OP:
+ HaveInserted = FALSE;
+ DefaultStore = AllocateZeroPool (sizeof (FORMSET_DEFAULTSTORE));
+ ASSERT (DefaultStore != NULL);
+ DefaultStore->Signature = FORMSET_DEFAULTSTORE_SIGNATURE;
+
+ CopyMem (&DefaultStore->DefaultId, &((EFI_IFR_DEFAULTSTORE *)OpCodeData)->DefaultId, sizeof (UINT16));
+ CopyMem (&DefaultStore->DefaultName, &((EFI_IFR_DEFAULTSTORE *)OpCodeData)->DefaultName, sizeof (EFI_STRING_ID));
+ //
+ // Insert it to the DefaultStore list of this Formset with ascending order.
+ //
+ if (!IsListEmpty (&FormSet->DefaultStoreListHead)) {
+ DefaultLink = GetFirstNode (&FormSet->DefaultStoreListHead);
+ while (!IsNull (&FormSet->DefaultStoreListHead, DefaultLink)) {
+ PreDefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK (DefaultLink);
+ DefaultLink = GetNextNode (&FormSet->DefaultStoreListHead, DefaultLink);
+ if (DefaultStore->DefaultId < PreDefaultStore->DefaultId) {
+ InsertTailList (&PreDefaultStore->Link, &DefaultStore->Link);
+ HaveInserted = TRUE;
+ break;
+ }
}
}
- }
- if (!HaveInserted) {
- InsertTailList (&FormSet->DefaultStoreListHead, &DefaultStore->Link);
- }
- break;
- //
- // Statements
- //
- case EFI_IFR_SUBTITLE_OP:
- CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
+ if (!HaveInserted) {
+ InsertTailList (&FormSet->DefaultStoreListHead, &DefaultStore->Link);
+ }
- CurrentStatement->Flags = ((EFI_IFR_SUBTITLE *) OpCodeData)->Flags;
- CurrentStatement->FakeQuestionId = mUsedQuestionId++;
- break;
+ break;
- case EFI_IFR_TEXT_OP:
- CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
- CurrentStatement->FakeQuestionId = mUsedQuestionId++;
- CopyMem (&CurrentStatement->TextTwo, &((EFI_IFR_TEXT *) OpCodeData)->TextTwo, sizeof (EFI_STRING_ID));
- break;
+ //
+ // Statements
+ //
+ case EFI_IFR_SUBTITLE_OP:
+ CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
- case EFI_IFR_RESET_BUTTON_OP:
- CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
- CurrentStatement->FakeQuestionId = mUsedQuestionId++;
- CopyMem (&CurrentStatement->DefaultId, &((EFI_IFR_RESET_BUTTON *) OpCodeData)->DefaultId, sizeof (EFI_DEFAULT_ID));
- break;
+ CurrentStatement->Flags = ((EFI_IFR_SUBTITLE *)OpCodeData)->Flags;
+ CurrentStatement->FakeQuestionId = mUsedQuestionId++;
+ break;
- //
- // Questions
- //
- case EFI_IFR_ACTION_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_ACTION;
+ case EFI_IFR_TEXT_OP:
+ CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
+ CurrentStatement->FakeQuestionId = mUsedQuestionId++;
+ CopyMem (&CurrentStatement->TextTwo, &((EFI_IFR_TEXT *)OpCodeData)->TextTwo, sizeof (EFI_STRING_ID));
+ break;
- if (OpCodeLength == sizeof (EFI_IFR_ACTION_1)) {
- //
- // No QuestionConfig present, so no configuration string will be processed
- //
- CurrentStatement->QuestionConfig = 0;
- } else {
- CopyMem (&CurrentStatement->QuestionConfig, &((EFI_IFR_ACTION *) OpCodeData)->QuestionConfig, sizeof (EFI_STRING_ID));
- }
- break;
+ case EFI_IFR_RESET_BUTTON_OP:
+ CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
+ CurrentStatement->FakeQuestionId = mUsedQuestionId++;
+ CopyMem (&CurrentStatement->DefaultId, &((EFI_IFR_RESET_BUTTON *)OpCodeData)->DefaultId, sizeof (EFI_DEFAULT_ID));
+ break;
+
+ //
+ // Questions
+ //
+ case EFI_IFR_ACTION_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_ACTION;
+
+ if (OpCodeLength == sizeof (EFI_IFR_ACTION_1)) {
+ //
+ // No QuestionConfig present, so no configuration string will be processed
+ //
+ CurrentStatement->QuestionConfig = 0;
+ } else {
+ CopyMem (&CurrentStatement->QuestionConfig, &((EFI_IFR_ACTION *)OpCodeData)->QuestionConfig, sizeof (EFI_STRING_ID));
+ }
+
+ break;
- case EFI_IFR_REF_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
- Value = &CurrentStatement->HiiValue;
- Value->Type = EFI_IFR_TYPE_REF;
- if (OpCodeLength >= sizeof (EFI_IFR_REF)) {
- CopyMem (&Value->Value.ref.FormId, &((EFI_IFR_REF *) OpCodeData)->FormId, sizeof (EFI_FORM_ID));
+ case EFI_IFR_REF_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
+ Value = &CurrentStatement->HiiValue;
+ Value->Type = EFI_IFR_TYPE_REF;
+ if (OpCodeLength >= sizeof (EFI_IFR_REF)) {
+ CopyMem (&Value->Value.ref.FormId, &((EFI_IFR_REF *)OpCodeData)->FormId, sizeof (EFI_FORM_ID));
- if (OpCodeLength >= sizeof (EFI_IFR_REF2)) {
- CopyMem (&Value->Value.ref.QuestionId, &((EFI_IFR_REF2 *) OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
+ if (OpCodeLength >= sizeof (EFI_IFR_REF2)) {
+ CopyMem (&Value->Value.ref.QuestionId, &((EFI_IFR_REF2 *)OpCodeData)->QuestionId, sizeof (EFI_QUESTION_ID));
- if (OpCodeLength >= sizeof (EFI_IFR_REF3)) {
- CopyMem (&Value->Value.ref.FormSetGuid, &((EFI_IFR_REF3 *) OpCodeData)->FormSetId, sizeof (EFI_GUID));
+ if (OpCodeLength >= sizeof (EFI_IFR_REF3)) {
+ CopyMem (&Value->Value.ref.FormSetGuid, &((EFI_IFR_REF3 *)OpCodeData)->FormSetId, sizeof (EFI_GUID));
- if (OpCodeLength >= sizeof (EFI_IFR_REF4)) {
- CopyMem (&Value->Value.ref.DevicePath, &((EFI_IFR_REF4 *) OpCodeData)->DevicePath, sizeof (EFI_STRING_ID));
+ if (OpCodeLength >= sizeof (EFI_IFR_REF4)) {
+ CopyMem (&Value->Value.ref.DevicePath, &((EFI_IFR_REF4 *)OpCodeData)->DevicePath, sizeof (EFI_STRING_ID));
+ }
}
}
}
- }
- CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_HII_REF);
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- break;
- case EFI_IFR_ONE_OF_OP:
- case EFI_IFR_NUMERIC_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT(CurrentStatement != NULL);
+ CurrentStatement->StorageWidth = (UINT16)sizeof (EFI_HII_REF);
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ break;
- CurrentStatement->Flags = ((EFI_IFR_ONE_OF *) OpCodeData)->Flags;
- Value = &CurrentStatement->HiiValue;
+ case EFI_IFR_ONE_OF_OP:
+ case EFI_IFR_NUMERIC_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
- if (QuestionReferBitField) {
- //
- // Get the bit var store info (bit/byte offset, bit/byte offset)
- //
- CurrentStatement->QuestionReferToBitField = TRUE;
- CurrentStatement->BitStorageWidth = CurrentStatement->Flags & EDKII_IFR_NUMERIC_SIZE_BIT;
- CurrentStatement->BitVarOffset = CurrentStatement->VarStoreInfo.VarOffset;
- CurrentStatement->VarStoreInfo.VarOffset = CurrentStatement->BitVarOffset / 8;
- TotalBits = CurrentStatement->BitVarOffset % 8 + CurrentStatement->BitStorageWidth;
- CurrentStatement->StorageWidth = (TotalBits % 8 == 0? TotalBits / 8: TotalBits / 8 + 1);
+ CurrentStatement->Flags = ((EFI_IFR_ONE_OF *)OpCodeData)->Flags;
+ Value = &CurrentStatement->HiiValue;
- //
- // Get the Minimum/Maximum/Step value(Note: bit field type has been stored as UINT32 type)
- //
- CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MinValue;
- CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MaxValue;
- CurrentStatement->Step = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.Step;
+ if (QuestionReferBitField) {
+ //
+ // Get the bit var store info (bit/byte offset, bit/byte offset)
+ //
+ CurrentStatement->QuestionReferToBitField = TRUE;
+ CurrentStatement->BitStorageWidth = CurrentStatement->Flags & EDKII_IFR_NUMERIC_SIZE_BIT;
+ CurrentStatement->BitVarOffset = CurrentStatement->VarStoreInfo.VarOffset;
+ CurrentStatement->VarStoreInfo.VarOffset = CurrentStatement->BitVarOffset / 8;
+ TotalBits = CurrentStatement->BitVarOffset % 8 + CurrentStatement->BitStorageWidth;
+ CurrentStatement->StorageWidth = (TotalBits % 8 == 0 ? TotalBits / 8 : TotalBits / 8 + 1);
- //
- // Update the Flag and type of Minimum/Maximum/Step according to the actual width of bit field,
- // in order to make Browser handle these question with bit varstore correctly.
- //
- ((EFI_IFR_NUMERIC *) OpCodeData)->Flags &= EDKII_IFR_DISPLAY_BIT;
- ((EFI_IFR_NUMERIC *) OpCodeData)->Flags >>= 2;
- switch (CurrentStatement->StorageWidth) {
- case 1:
- ((EFI_IFR_NUMERIC *) OpCodeData)->Flags |= EFI_IFR_TYPE_NUM_SIZE_8;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MinValue = (UINT8)CurrentStatement->Minimum;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MaxValue = (UINT8)CurrentStatement->Maximum;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.Step = (UINT8)CurrentStatement->Step;
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- break;
- case 2:
- ((EFI_IFR_NUMERIC *) OpCodeData)->Flags |= EFI_IFR_TYPE_NUM_SIZE_16;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MinValue = (UINT16)CurrentStatement->Minimum;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MaxValue = (UINT16)CurrentStatement->Maximum;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.Step = (UINT16)CurrentStatement->Step;
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
- break;
- case 3:
- case 4:
- ((EFI_IFR_NUMERIC *) OpCodeData)->Flags |= EFI_IFR_TYPE_NUM_SIZE_32;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MinValue = (UINT32)CurrentStatement->Minimum;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MaxValue = (UINT32)CurrentStatement->Maximum;
- ((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.Step = (UINT32)CurrentStatement->Step;
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;
- break;
- default:
- break;
+ //
+ // Get the Minimum/Maximum/Step value(Note: bit field type has been stored as UINT32 type)
+ //
+ CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.MinValue;
+ CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.MaxValue;
+ CurrentStatement->Step = ((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.Step;
+
+ //
+ // Update the Flag and type of Minimum/Maximum/Step according to the actual width of bit field,
+ // in order to make Browser handle these question with bit varstore correctly.
+ //
+ ((EFI_IFR_NUMERIC *)OpCodeData)->Flags &= EDKII_IFR_DISPLAY_BIT;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->Flags >>= 2;
+ switch (CurrentStatement->StorageWidth) {
+ case 1:
+ ((EFI_IFR_NUMERIC *)OpCodeData)->Flags |= EFI_IFR_TYPE_NUM_SIZE_8;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u8.MinValue = (UINT8)CurrentStatement->Minimum;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u8.MaxValue = (UINT8)CurrentStatement->Maximum;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u8.Step = (UINT8)CurrentStatement->Step;
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ break;
+ case 2:
+ ((EFI_IFR_NUMERIC *)OpCodeData)->Flags |= EFI_IFR_TYPE_NUM_SIZE_16;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u16.MinValue = (UINT16)CurrentStatement->Minimum;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u16.MaxValue = (UINT16)CurrentStatement->Maximum;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u16.Step = (UINT16)CurrentStatement->Step;
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
+ break;
+ case 3:
+ case 4:
+ ((EFI_IFR_NUMERIC *)OpCodeData)->Flags |= EFI_IFR_TYPE_NUM_SIZE_32;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.MinValue = (UINT32)CurrentStatement->Minimum;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.MaxValue = (UINT32)CurrentStatement->Maximum;
+ ((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.Step = (UINT32)CurrentStatement->Step;
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;
+ break;
+ default:
+ break;
+ }
+ } else {
+ switch (CurrentStatement->Flags & EFI_IFR_NUMERIC_SIZE) {
+ case EFI_IFR_NUMERIC_SIZE_1:
+ CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *)OpCodeData)->data.u8.MinValue;
+ CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *)OpCodeData)->data.u8.MaxValue;
+ CurrentStatement->Step = ((EFI_IFR_NUMERIC *)OpCodeData)->data.u8.Step;
+ CurrentStatement->StorageWidth = (UINT16)sizeof (UINT8);
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_2:
+ CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u16.MinValue, sizeof (UINT16));
+ CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u16.MaxValue, sizeof (UINT16));
+ CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u16.Step, sizeof (UINT16));
+ CurrentStatement->StorageWidth = (UINT16)sizeof (UINT16);
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_4:
+ CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.MinValue, sizeof (UINT32));
+ CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.MaxValue, sizeof (UINT32));
+ CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u32.Step, sizeof (UINT32));
+ CurrentStatement->StorageWidth = (UINT16)sizeof (UINT32);
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;
+ break;
+
+ case EFI_IFR_NUMERIC_SIZE_8:
+ CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u64.MinValue, sizeof (UINT64));
+ CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u64.MaxValue, sizeof (UINT64));
+ CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *)OpCodeData)->data.u64.Step, sizeof (UINT64));
+ CurrentStatement->StorageWidth = (UINT16)sizeof (UINT64);
+ Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
+ break;
+
+ default:
+ break;
+ }
}
- } else {
- switch (CurrentStatement->Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MinValue;
- CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MaxValue;
- CurrentStatement->Step = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.Step;
- CurrentStatement->StorageWidth = (UINT16) sizeof (UINT8);
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;
- break;
- case EFI_IFR_NUMERIC_SIZE_2:
- CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MinValue, sizeof (UINT16));
- CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MaxValue, sizeof (UINT16));
- CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.Step, sizeof (UINT16));
- CurrentStatement->StorageWidth = (UINT16) sizeof (UINT16);
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;
- break;
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- case EFI_IFR_NUMERIC_SIZE_4:
- CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MinValue, sizeof (UINT32));
- CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MaxValue, sizeof (UINT32));
- CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.Step, sizeof (UINT32));
- CurrentStatement->StorageWidth = (UINT16) sizeof (UINT32);
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;
- break;
+ if ((Operand == EFI_IFR_ONE_OF_OP) && (Scope != 0)) {
+ SuppressForOption = TRUE;
+ }
- case EFI_IFR_NUMERIC_SIZE_8:
- CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MinValue, sizeof (UINT64));
- CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MaxValue, sizeof (UINT64));
- CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.Step, sizeof (UINT64));
- CurrentStatement->StorageWidth = (UINT16) sizeof (UINT64);
- Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;
- break;
+ break;
- default:
- break;
- }
- }
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ case EFI_IFR_ORDERED_LIST_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
- if ((Operand == EFI_IFR_ONE_OF_OP) && Scope != 0) {
- SuppressForOption = TRUE;
- }
- break;
+ CurrentStatement->Flags = ((EFI_IFR_ORDERED_LIST *)OpCodeData)->Flags;
+ CurrentStatement->MaxContainers = ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;
- case EFI_IFR_ORDERED_LIST_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT(CurrentStatement != NULL);
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BUFFER;
+ CurrentStatement->BufferValue = NULL;
- CurrentStatement->Flags = ((EFI_IFR_ORDERED_LIST *) OpCodeData)->Flags;
- CurrentStatement->MaxContainers = ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;
+ if (Scope != 0) {
+ SuppressForOption = TRUE;
+ }
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BUFFER;
- CurrentStatement->BufferValue = NULL;
+ break;
- if (Scope != 0) {
- SuppressForOption = TRUE;
- }
- break;
+ case EFI_IFR_CHECKBOX_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
- case EFI_IFR_CHECKBOX_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT(CurrentStatement != NULL);
+ CurrentStatement->Flags = ((EFI_IFR_CHECKBOX *)OpCodeData)->Flags;
+ CurrentStatement->StorageWidth = (UINT16)sizeof (BOOLEAN);
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BOOLEAN;
- CurrentStatement->Flags = ((EFI_IFR_CHECKBOX *) OpCodeData)->Flags;
- CurrentStatement->StorageWidth = (UINT16) sizeof (BOOLEAN);
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BOOLEAN;
+ if (QuestionReferBitField) {
+ //
+ // Get the bit var store info (bit/byte offset, bit/byte offset)
+ //
+ CurrentStatement->QuestionReferToBitField = TRUE;
+ CurrentStatement->BitStorageWidth = 1;
+ CurrentStatement->BitVarOffset = CurrentStatement->VarStoreInfo.VarOffset;
+ CurrentStatement->VarStoreInfo.VarOffset = CurrentStatement->BitVarOffset / 8;
+ TotalBits = CurrentStatement->BitVarOffset % 8 + CurrentStatement->BitStorageWidth;
+ CurrentStatement->StorageWidth = (TotalBits % 8 == 0 ? TotalBits / 8 : TotalBits / 8 + 1);
+ }
- if (QuestionReferBitField) {
- //
- // Get the bit var store info (bit/byte offset, bit/byte offset)
- //
- CurrentStatement->QuestionReferToBitField = TRUE;
- CurrentStatement->BitStorageWidth = 1;
- CurrentStatement->BitVarOffset = CurrentStatement->VarStoreInfo.VarOffset;
- CurrentStatement->VarStoreInfo.VarOffset = CurrentStatement->BitVarOffset / 8;
- TotalBits = CurrentStatement->BitVarOffset % 8 + CurrentStatement->BitStorageWidth;
- CurrentStatement->StorageWidth = (TotalBits % 8 == 0? TotalBits / 8: TotalBits / 8 + 1);
- }
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ break;
- break;
+ case EFI_IFR_STRING_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
+ //
+ // MinSize is the minimum number of characters that can be accepted for this opcode,
+ // MaxSize is the maximum number of characters that can be accepted for this opcode.
+ // The characters are stored as Unicode, so the storage width should multiply 2.
+ //
+ CurrentStatement->Minimum = ((EFI_IFR_STRING *)OpCodeData)->MinSize;
+ CurrentStatement->Maximum = ((EFI_IFR_STRING *)OpCodeData)->MaxSize;
+ CurrentStatement->StorageWidth = (UINT16)((UINTN)CurrentStatement->Maximum * sizeof (CHAR16));
+ CurrentStatement->Flags = ((EFI_IFR_STRING *)OpCodeData)->Flags;
- case EFI_IFR_STRING_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
- //
- // MinSize is the minimum number of characters that can be accepted for this opcode,
- // MaxSize is the maximum number of characters that can be accepted for this opcode.
- // The characters are stored as Unicode, so the storage width should multiply 2.
- //
- CurrentStatement->Minimum = ((EFI_IFR_STRING *) OpCodeData)->MinSize;
- CurrentStatement->Maximum = ((EFI_IFR_STRING *) OpCodeData)->MaxSize;
- CurrentStatement->StorageWidth = (UINT16)((UINTN) CurrentStatement->Maximum * sizeof (CHAR16));
- CurrentStatement->Flags = ((EFI_IFR_STRING *) OpCodeData)->Flags;
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_STRING;
+ CurrentStatement->BufferValue = AllocateZeroPool (CurrentStatement->StorageWidth + sizeof (CHAR16));
+ CurrentStatement->HiiValue.Value.string = NewString ((CHAR16 *)CurrentStatement->BufferValue, FormSet->HiiHandle);
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_STRING;
- CurrentStatement->BufferValue = AllocateZeroPool (CurrentStatement->StorageWidth + sizeof (CHAR16));
- CurrentStatement->HiiValue.Value.string = NewString ((CHAR16*) CurrentStatement->BufferValue, FormSet->HiiHandle);
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ break;
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- break;
+ case EFI_IFR_PASSWORD_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
+ //
+ // MinSize is the minimum number of characters that can be accepted for this opcode,
+ // MaxSize is the maximum number of characters that can be accepted for this opcode.
+ // The characters are stored as Unicode, so the storage width should multiply 2.
+ //
+ CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_PASSWORD *)OpCodeData)->MinSize, sizeof (UINT16));
+ CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_PASSWORD *)OpCodeData)->MaxSize, sizeof (UINT16));
+ CurrentStatement->StorageWidth = (UINT16)((UINTN)CurrentStatement->Maximum * sizeof (CHAR16));
- case EFI_IFR_PASSWORD_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT (CurrentStatement != NULL);
- //
- // MinSize is the minimum number of characters that can be accepted for this opcode,
- // MaxSize is the maximum number of characters that can be accepted for this opcode.
- // The characters are stored as Unicode, so the storage width should multiply 2.
- //
- CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_PASSWORD *) OpCodeData)->MinSize, sizeof (UINT16));
- CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_PASSWORD *) OpCodeData)->MaxSize, sizeof (UINT16));
- CurrentStatement->StorageWidth = (UINT16)((UINTN) CurrentStatement->Maximum * sizeof (CHAR16));
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_STRING;
+ CurrentStatement->BufferValue = AllocateZeroPool ((CurrentStatement->StorageWidth + sizeof (CHAR16)));
+ CurrentStatement->HiiValue.Value.string = NewString ((CHAR16 *)CurrentStatement->BufferValue, FormSet->HiiHandle);
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_STRING;
- CurrentStatement->BufferValue = AllocateZeroPool ((CurrentStatement->StorageWidth + sizeof (CHAR16)));
- CurrentStatement->HiiValue.Value.string = NewString ((CHAR16*) CurrentStatement->BufferValue, FormSet->HiiHandle);
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ break;
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- break;
+ case EFI_IFR_DATE_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
- case EFI_IFR_DATE_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT(CurrentStatement != NULL);
+ CurrentStatement->Flags = ((EFI_IFR_DATE *)OpCodeData)->Flags;
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_DATE;
- CurrentStatement->Flags = ((EFI_IFR_DATE *) OpCodeData)->Flags;
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_DATE;
+ if ((CurrentStatement->Flags & EFI_QF_DATE_STORAGE) == QF_DATE_STORAGE_NORMAL) {
+ CurrentStatement->StorageWidth = (UINT16)sizeof (EFI_HII_DATE);
- if ((CurrentStatement->Flags & EFI_QF_DATE_STORAGE) == QF_DATE_STORAGE_NORMAL) {
- CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_HII_DATE);
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ } else {
+ //
+ // Don't assign storage for RTC type of date/time
+ //
+ CurrentStatement->Storage = NULL;
+ CurrentStatement->StorageWidth = 0;
+ }
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- } else {
- //
- // Don't assign storage for RTC type of date/time
- //
- CurrentStatement->Storage = NULL;
- CurrentStatement->StorageWidth = 0;
- }
- break;
+ break;
- case EFI_IFR_TIME_OP:
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
- ASSERT(CurrentStatement != NULL);
+ case EFI_IFR_TIME_OP:
+ CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);
+ ASSERT (CurrentStatement != NULL);
- CurrentStatement->Flags = ((EFI_IFR_TIME *) OpCodeData)->Flags;
- CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_TIME;
+ CurrentStatement->Flags = ((EFI_IFR_TIME *)OpCodeData)->Flags;
+ CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_TIME;
- if ((CurrentStatement->Flags & QF_TIME_STORAGE) == QF_TIME_STORAGE_NORMAL) {
- CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_HII_TIME);
+ if ((CurrentStatement->Flags & QF_TIME_STORAGE) == QF_TIME_STORAGE_NORMAL) {
+ CurrentStatement->StorageWidth = (UINT16)sizeof (EFI_HII_TIME);
- InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
- } else {
- //
- // Don't assign storage for RTC type of date/time
- //
- CurrentStatement->Storage = NULL;
- CurrentStatement->StorageWidth = 0;
- }
- break;
+ InitializeRequestElement (FormSet, CurrentStatement, CurrentForm);
+ } else {
+ //
+ // Don't assign storage for RTC type of date/time
+ //
+ CurrentStatement->Storage = NULL;
+ CurrentStatement->StorageWidth = 0;
+ }
- //
- // Default
- //
- case EFI_IFR_DEFAULT_OP:
- //
- // EFI_IFR_DEFAULT appear in scope of a Question,
- // It creates a default value for the current question.
- // A Question may have more than one Default value which have different default types.
- //
- CurrentDefault = AllocateZeroPool (sizeof (QUESTION_DEFAULT));
- ASSERT (CurrentDefault != NULL);
- CurrentDefault->Signature = QUESTION_DEFAULT_SIGNATURE;
-
- CurrentDefault->Value.Type = ((EFI_IFR_DEFAULT *) OpCodeData)->Type;
- CopyMem (&CurrentDefault->DefaultId, &((EFI_IFR_DEFAULT *) OpCodeData)->DefaultId, sizeof (UINT16));
- if (CurrentDefault->Value.Type == EFI_IFR_TYPE_BUFFER) {
- CurrentDefault->Value.BufferLen = (UINT16) (OpCodeLength - OFFSET_OF (EFI_IFR_DEFAULT, Value));
- CurrentDefault->Value.Buffer = AllocateCopyPool (CurrentDefault->Value.BufferLen, &((EFI_IFR_DEFAULT *) OpCodeData)->Value);
- ASSERT (CurrentDefault->Value.Buffer != NULL);
- } else {
- CopyMem (&CurrentDefault->Value.Value, &((EFI_IFR_DEFAULT *) OpCodeData)->Value, OpCodeLength - OFFSET_OF (EFI_IFR_DEFAULT, Value));
- ExtendValueToU64 (&CurrentDefault->Value);
- }
+ break;
//
- // Insert to Default Value list of current Question
+ // Default
//
- InsertTailList (&ParentStatement->DefaultListHead, &CurrentDefault->Link);
-
- if (Scope != 0) {
- InScopeDefault = TRUE;
- }
- break;
-
- //
- // Option
- //
- case EFI_IFR_ONE_OF_OPTION_OP:
- ASSERT (ParentStatement != NULL);
- if (ParentStatement->Operand == EFI_IFR_ORDERED_LIST_OP && ((((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags & (EFI_IFR_OPTION_DEFAULT | EFI_IFR_OPTION_DEFAULT_MFG)) != 0)) {
+ case EFI_IFR_DEFAULT_OP:
//
- // It's keep the default value for ordered list opcode.
+ // EFI_IFR_DEFAULT appear in scope of a Question,
+ // It creates a default value for the current question.
+ // A Question may have more than one Default value which have different default types.
//
CurrentDefault = AllocateZeroPool (sizeof (QUESTION_DEFAULT));
ASSERT (CurrentDefault != NULL);
CurrentDefault->Signature = QUESTION_DEFAULT_SIGNATURE;
- CurrentDefault->Value.Type = EFI_IFR_TYPE_BUFFER;
- if ((((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags & EFI_IFR_OPTION_DEFAULT) != 0) {
- CurrentDefault->DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ CurrentDefault->Value.Type = ((EFI_IFR_DEFAULT *)OpCodeData)->Type;
+ CopyMem (&CurrentDefault->DefaultId, &((EFI_IFR_DEFAULT *)OpCodeData)->DefaultId, sizeof (UINT16));
+ if (CurrentDefault->Value.Type == EFI_IFR_TYPE_BUFFER) {
+ CurrentDefault->Value.BufferLen = (UINT16)(OpCodeLength - OFFSET_OF (EFI_IFR_DEFAULT, Value));
+ CurrentDefault->Value.Buffer = AllocateCopyPool (CurrentDefault->Value.BufferLen, &((EFI_IFR_DEFAULT *)OpCodeData)->Value);
+ ASSERT (CurrentDefault->Value.Buffer != NULL);
} else {
- CurrentDefault->DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
+ CopyMem (&CurrentDefault->Value.Value, &((EFI_IFR_DEFAULT *)OpCodeData)->Value, OpCodeLength - OFFSET_OF (EFI_IFR_DEFAULT, Value));
+ ExtendValueToU64 (&CurrentDefault->Value);
}
- CurrentDefault->Value.BufferLen = (UINT16) (OpCodeLength - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
- CurrentDefault->Value.Buffer = AllocateCopyPool (CurrentDefault->Value.BufferLen, &((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Value);
- ASSERT (CurrentDefault->Value.Buffer != NULL);
-
//
// Insert to Default Value list of current Question
//
InsertTailList (&ParentStatement->DefaultListHead, &CurrentDefault->Link);
- break;
- }
- //
- // EFI_IFR_ONE_OF_OPTION appear in scope of a Question.
- // It create a selection for use in current Question.
- //
- CurrentOption = AllocateZeroPool (sizeof (QUESTION_OPTION));
- ASSERT (CurrentOption != NULL);
- CurrentOption->Signature = QUESTION_OPTION_SIGNATURE;
- CurrentOption->OpCode = (EFI_IFR_ONE_OF_OPTION *) OpCodeData;
-
- CurrentOption->Flags = ((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags;
- CurrentOption->Value.Type = ((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Type;
- CopyMem (&CurrentOption->Text, &((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Option, sizeof (EFI_STRING_ID));
- CopyMem (&CurrentOption->Value.Value, &((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Value, OpCodeLength - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
- ExtendValueToU64 (&CurrentOption->Value);
-
- ConditionalExprCount = GetConditionalExpressionCount(ExpressOption);
- if ( ConditionalExprCount > 0) {
- //
- // Form is inside of suppressif
- //
- CurrentOption->SuppressExpression = (FORM_EXPRESSION_LIST *) AllocatePool(
- (UINTN) (sizeof(FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof(FORM_EXPRESSION *))));
- ASSERT (CurrentOption->SuppressExpression != NULL);
- CurrentOption->SuppressExpression->Count = (UINTN) ConditionalExprCount;
- CurrentOption->SuppressExpression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
- CopyMem (CurrentOption->SuppressExpression->Expression, GetConditionalExpressionList(ExpressOption), (UINTN) (sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
- }
+ if (Scope != 0) {
+ InScopeDefault = TRUE;
+ }
+
+ break;
//
- // Insert to Option list of current Question
- //
- InsertTailList (&ParentStatement->OptionListHead, &CurrentOption->Link);
- //
- // Now we know the Storage width of nested Ordered List
+ // Option
//
- if ((ParentStatement->Operand == EFI_IFR_ORDERED_LIST_OP) && (ParentStatement->BufferValue == NULL)) {
- Width = 1;
- switch (CurrentOption->Value.Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- Width = 1;
- break;
-
- case EFI_IFR_TYPE_NUM_SIZE_16:
- Width = 2;
- break;
+ case EFI_IFR_ONE_OF_OPTION_OP:
+ ASSERT (ParentStatement != NULL);
+ if ((ParentStatement->Operand == EFI_IFR_ORDERED_LIST_OP) && ((((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Flags & (EFI_IFR_OPTION_DEFAULT | EFI_IFR_OPTION_DEFAULT_MFG)) != 0)) {
+ //
+ // It's keep the default value for ordered list opcode.
+ //
+ CurrentDefault = AllocateZeroPool (sizeof (QUESTION_DEFAULT));
+ ASSERT (CurrentDefault != NULL);
+ CurrentDefault->Signature = QUESTION_DEFAULT_SIGNATURE;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- Width = 4;
- break;
+ CurrentDefault->Value.Type = EFI_IFR_TYPE_BUFFER;
+ if ((((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Flags & EFI_IFR_OPTION_DEFAULT) != 0) {
+ CurrentDefault->DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ } else {
+ CurrentDefault->DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
+ }
- case EFI_IFR_TYPE_NUM_SIZE_64:
- Width = 8;
- break;
+ CurrentDefault->Value.BufferLen = (UINT16)(OpCodeLength - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
+ CurrentDefault->Value.Buffer = AllocateCopyPool (CurrentDefault->Value.BufferLen, &((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Value);
+ ASSERT (CurrentDefault->Value.Buffer != NULL);
- default:
//
- // Invalid type for Ordered List
+ // Insert to Default Value list of current Question
//
+ InsertTailList (&ParentStatement->DefaultListHead, &CurrentDefault->Link);
break;
}
- ParentStatement->StorageWidth = (UINT16) (ParentStatement->MaxContainers * Width);
- ParentStatement->BufferValue = AllocateZeroPool (ParentStatement->StorageWidth);
- ParentStatement->ValueType = CurrentOption->Value.Type;
- if (ParentStatement->HiiValue.Type == EFI_IFR_TYPE_BUFFER) {
- ParentStatement->HiiValue.Buffer = ParentStatement->BufferValue;
- ParentStatement->HiiValue.BufferLen = ParentStatement->StorageWidth;
- }
+ //
+ // EFI_IFR_ONE_OF_OPTION appear in scope of a Question.
+ // It create a selection for use in current Question.
+ //
+ CurrentOption = AllocateZeroPool (sizeof (QUESTION_OPTION));
+ ASSERT (CurrentOption != NULL);
+ CurrentOption->Signature = QUESTION_OPTION_SIGNATURE;
+ CurrentOption->OpCode = (EFI_IFR_ONE_OF_OPTION *)OpCodeData;
- InitializeRequestElement (FormSet, ParentStatement, CurrentForm);
- }
- break;
+ CurrentOption->Flags = ((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Flags;
+ CurrentOption->Value.Type = ((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Type;
+ CopyMem (&CurrentOption->Text, &((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Option, sizeof (EFI_STRING_ID));
+ CopyMem (&CurrentOption->Value.Value, &((EFI_IFR_ONE_OF_OPTION *)OpCodeData)->Value, OpCodeLength - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
+ ExtendValueToU64 (&CurrentOption->Value);
- //
- // Conditional
- //
- case EFI_IFR_NO_SUBMIT_IF_OP:
- case EFI_IFR_INCONSISTENT_IF_OP:
- //
- // Create an Expression node
- //
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CopyMem (&CurrentExpression->Error, &((EFI_IFR_INCONSISTENT_IF *) OpCodeData)->Error, sizeof (EFI_STRING_ID));
+ ConditionalExprCount = GetConditionalExpressionCount (ExpressOption);
+ if ( ConditionalExprCount > 0) {
+ //
+ // Form is inside of suppressif
+ //
+ CurrentOption->SuppressExpression = (FORM_EXPRESSION_LIST *)AllocatePool (
+ (UINTN)(sizeof (FORM_EXPRESSION_LIST) + ((ConditionalExprCount -1) * sizeof (FORM_EXPRESSION *)))
+ );
+ ASSERT (CurrentOption->SuppressExpression != NULL);
+ CurrentOption->SuppressExpression->Count = (UINTN)ConditionalExprCount;
+ CurrentOption->SuppressExpression->Signature = FORM_EXPRESSION_LIST_SIGNATURE;
+ CopyMem (CurrentOption->SuppressExpression->Expression, GetConditionalExpressionList (ExpressOption), (UINTN)(sizeof (FORM_EXPRESSION *) * ConditionalExprCount));
+ }
- if (Operand == EFI_IFR_NO_SUBMIT_IF_OP) {
- CurrentExpression->Type = EFI_HII_EXPRESSION_NO_SUBMIT_IF;
- InsertTailList (&ParentStatement->NoSubmitListHead, &CurrentExpression->Link);
- } else {
- CurrentExpression->Type = EFI_HII_EXPRESSION_INCONSISTENT_IF;
- InsertTailList (&ParentStatement->InconsistentListHead, &CurrentExpression->Link);
- }
+ //
+ // Insert to Option list of current Question
+ //
+ InsertTailList (&ParentStatement->OptionListHead, &CurrentOption->Link);
+ //
+ // Now we know the Storage width of nested Ordered List
+ //
+ if ((ParentStatement->Operand == EFI_IFR_ORDERED_LIST_OP) && (ParentStatement->BufferValue == NULL)) {
+ Width = 1;
+ switch (CurrentOption->Value.Type) {
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ Width = 1;
+ break;
+
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ Width = 2;
+ break;
+
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ Width = 4;
+ break;
+
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ Width = 8;
+ break;
+
+ default:
+ //
+ // Invalid type for Ordered List
+ //
+ break;
+ }
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ ParentStatement->StorageWidth = (UINT16)(ParentStatement->MaxContainers * Width);
+ ParentStatement->BufferValue = AllocateZeroPool (ParentStatement->StorageWidth);
+ ParentStatement->ValueType = CurrentOption->Value.Type;
+ if (ParentStatement->HiiValue.Type == EFI_IFR_TYPE_BUFFER) {
+ ParentStatement->HiiValue.Buffer = ParentStatement->BufferValue;
+ ParentStatement->HiiValue.BufferLen = ParentStatement->StorageWidth;
+ }
- case EFI_IFR_WARNING_IF_OP:
- //
- // Create an Expression node
- //
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CopyMem (&CurrentExpression->Error, &((EFI_IFR_WARNING_IF *) OpCodeData)->Warning, sizeof (EFI_STRING_ID));
- CurrentExpression->TimeOut = ((EFI_IFR_WARNING_IF *) OpCodeData)->TimeOut;
- CurrentExpression->Type = EFI_HII_EXPRESSION_WARNING_IF;
- InsertTailList (&ParentStatement->WarningListHead, &CurrentExpression->Link);
+ InitializeRequestElement (FormSet, ParentStatement, CurrentForm);
+ }
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ break;
- case EFI_IFR_SUPPRESS_IF_OP:
//
- // Question and Option will appear in scope of this OpCode
+ // Conditional
//
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CurrentExpression->Type = EFI_HII_EXPRESSION_SUPPRESS_IF;
+ case EFI_IFR_NO_SUBMIT_IF_OP:
+ case EFI_IFR_INCONSISTENT_IF_OP:
+ //
+ // Create an Expression node
+ //
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CopyMem (&CurrentExpression->Error, &((EFI_IFR_INCONSISTENT_IF *)OpCodeData)->Error, sizeof (EFI_STRING_ID));
- if (CurrentForm == NULL) {
- InsertTailList (&FormSet->ExpressionListHead, &CurrentExpression->Link);
- } else {
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
- }
+ if (Operand == EFI_IFR_NO_SUBMIT_IF_OP) {
+ CurrentExpression->Type = EFI_HII_EXPRESSION_NO_SUBMIT_IF;
+ InsertTailList (&ParentStatement->NoSubmitListHead, &CurrentExpression->Link);
+ } else {
+ CurrentExpression->Type = EFI_HII_EXPRESSION_INCONSISTENT_IF;
+ InsertTailList (&ParentStatement->InconsistentListHead, &CurrentExpression->Link);
+ }
- if (SuppressForOption) {
- PushConditionalExpression(CurrentExpression, ExpressOption);
- } else if (SuppressForQuestion) {
- PushConditionalExpression(CurrentExpression, ExpressStatement);
- } else {
- PushConditionalExpression(CurrentExpression, ExpressForm);
- }
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ break;
- case EFI_IFR_GRAY_OUT_IF_OP:
- //
- // Questions will appear in scope of this OpCode
- //
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CurrentExpression->Type = EFI_HII_EXPRESSION_GRAY_OUT_IF;
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
- PushConditionalExpression(CurrentExpression, ExpressStatement);
+ case EFI_IFR_WARNING_IF_OP:
+ //
+ // Create an Expression node
+ //
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CopyMem (&CurrentExpression->Error, &((EFI_IFR_WARNING_IF *)OpCodeData)->Warning, sizeof (EFI_STRING_ID));
+ CurrentExpression->TimeOut = ((EFI_IFR_WARNING_IF *)OpCodeData)->TimeOut;
+ CurrentExpression->Type = EFI_HII_EXPRESSION_WARNING_IF;
+ InsertTailList (&ParentStatement->WarningListHead, &CurrentExpression->Link);
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- case EFI_IFR_DISABLE_IF_OP:
- //
- // The DisableIf expression should only rely on constant, so it could be
- // evaluated at initialization and it will not be queued
- //
- CurrentExpression = AllocateZeroPool (sizeof (FORM_EXPRESSION));
- ASSERT (CurrentExpression != NULL);
- CurrentExpression->Signature = FORM_EXPRESSION_SIGNATURE;
- CurrentExpression->Type = EFI_HII_EXPRESSION_DISABLE_IF;
- InitializeListHead (&CurrentExpression->OpCodeListHead);
+ break;
- if (CurrentForm != NULL) {
+ case EFI_IFR_SUPPRESS_IF_OP:
//
- // This is DisableIf for Question, enqueue it to Form expression list
+ // Question and Option will appear in scope of this OpCode
//
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
- PushConditionalExpression(CurrentExpression, ExpressStatement);
- }
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CurrentExpression->Type = EFI_HII_EXPRESSION_SUPPRESS_IF;
- OpCodeDisabled = FALSE;
- InScopeDisable = TRUE;
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ if (CurrentForm == NULL) {
+ InsertTailList (&FormSet->ExpressionListHead, &CurrentExpression->Link);
+ } else {
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ }
- //
- // Expression
- //
- case EFI_IFR_VALUE_OP:
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CurrentExpression->Type = EFI_HII_EXPRESSION_VALUE;
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ if (SuppressForOption) {
+ PushConditionalExpression (CurrentExpression, ExpressOption);
+ } else if (SuppressForQuestion) {
+ PushConditionalExpression (CurrentExpression, ExpressStatement);
+ } else {
+ PushConditionalExpression (CurrentExpression, ExpressForm);
+ }
- if (InScopeDefault) {
//
- // Used for default (EFI_IFR_DEFAULT)
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
//
- CurrentDefault->ValueExpression = CurrentExpression;
- } else {
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
+
+ break;
+
+ case EFI_IFR_GRAY_OUT_IF_OP:
//
- // If used for a question, then the question will be read-only
+ // Questions will appear in scope of this OpCode
//
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CurrentExpression->Type = EFI_HII_EXPRESSION_GRAY_OUT_IF;
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ PushConditionalExpression (CurrentExpression, ExpressStatement);
+
//
- // Make sure CurrentStatement is not NULL.
- // If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
- // file is wrongly generated by tools such as VFR Compiler. There may be a bug in VFR Compiler.
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
//
- ASSERT (ParentStatement != NULL);
- ParentStatement->ValueExpression = CurrentExpression;
- }
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ break;
- case EFI_IFR_RULE_OP:
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CurrentExpression->Type = EFI_HII_EXPRESSION_RULE;
+ case EFI_IFR_DISABLE_IF_OP:
+ //
+ // The DisableIf expression should only rely on constant, so it could be
+ // evaluated at initialization and it will not be queued
+ //
+ CurrentExpression = AllocateZeroPool (sizeof (FORM_EXPRESSION));
+ ASSERT (CurrentExpression != NULL);
+ CurrentExpression->Signature = FORM_EXPRESSION_SIGNATURE;
+ CurrentExpression->Type = EFI_HII_EXPRESSION_DISABLE_IF;
+ InitializeListHead (&CurrentExpression->OpCodeListHead);
- CurrentExpression->RuleId = ((EFI_IFR_RULE *) OpCodeData)->RuleId;
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ if (CurrentForm != NULL) {
+ //
+ // This is DisableIf for Question, enqueue it to Form expression list
+ //
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ PushConditionalExpression (CurrentExpression, ExpressStatement);
+ }
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ OpCodeDisabled = FALSE;
+ InScopeDisable = TRUE;
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- case EFI_IFR_READ_OP:
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CurrentExpression->Type = EFI_HII_EXPRESSION_READ;
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ break;
//
- // Make sure CurrentStatement is not NULL.
- // If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
- // file is wrongly generated by tools such as VFR Compiler. There may be a bug in VFR Compiler.
+ // Expression
//
- ASSERT (ParentStatement != NULL);
- ParentStatement->ReadExpression = CurrentExpression;
+ case EFI_IFR_VALUE_OP:
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CurrentExpression->Type = EFI_HII_EXPRESSION_VALUE;
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ if (InScopeDefault) {
+ //
+ // Used for default (EFI_IFR_DEFAULT)
+ //
+ CurrentDefault->ValueExpression = CurrentExpression;
+ } else {
+ //
+ // If used for a question, then the question will be read-only
+ //
+ //
+ // Make sure CurrentStatement is not NULL.
+ // If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
+ // file is wrongly generated by tools such as VFR Compiler. There may be a bug in VFR Compiler.
+ //
+ ASSERT (ParentStatement != NULL);
+ ParentStatement->ValueExpression = CurrentExpression;
+ }
- case EFI_IFR_WRITE_OP:
- CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
- CurrentExpression->Type = EFI_HII_EXPRESSION_WRITE;
- InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- //
- // Make sure CurrentStatement is not NULL.
- // If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
- // file is wrongly generated by tools such as VFR Compiler. There may be a bug in VFR Compiler.
- //
- ASSERT (ParentStatement != NULL);
- ParentStatement->WriteExpression = CurrentExpression;
+ break;
- //
- // Take a look at next OpCode to see whether current expression consists
- // of single OpCode
- //
- if (((EFI_IFR_OP_HEADER *) (OpCodeData + OpCodeLength))->Scope == 0) {
- SingleOpCodeExpression = TRUE;
- }
- break;
+ case EFI_IFR_RULE_OP:
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CurrentExpression->Type = EFI_HII_EXPRESSION_RULE;
- //
- // Image
- //
- case EFI_IFR_IMAGE_OP:
- //
- // Get ScopeOpcode from top of stack
- //
- PopScope (&ScopeOpCode);
- PushScope (ScopeOpCode);
+ CurrentExpression->RuleId = ((EFI_IFR_RULE *)OpCodeData)->RuleId;
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
- switch (ScopeOpCode) {
- case EFI_IFR_FORM_SET_OP:
- ImageId = &FormSet->ImageId;
- break;
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
- ASSERT (CurrentForm != NULL);
- ImageId = &CurrentForm->ImageId;
break;
- case EFI_IFR_ONE_OF_OPTION_OP:
- ASSERT (CurrentOption != NULL);
- ImageId = &CurrentOption->ImageId;
- break;
+ case EFI_IFR_READ_OP:
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CurrentExpression->Type = EFI_HII_EXPRESSION_READ;
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
- default:
//
// Make sure CurrentStatement is not NULL.
// If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
- // file is wrongly generated by tools such as VFR Compiler.
+ // file is wrongly generated by tools such as VFR Compiler. There may be a bug in VFR Compiler.
//
ASSERT (ParentStatement != NULL);
- ImageId = &ParentStatement->ImageId;
- break;
- }
-
- ASSERT (ImageId != NULL);
- CopyMem (ImageId, &((EFI_IFR_IMAGE *) OpCodeData)->Id, sizeof (EFI_IMAGE_ID));
- break;
-
- //
- // Refresh
- //
- case EFI_IFR_REFRESH_OP:
- ASSERT (ParentStatement != NULL);
- ParentStatement->RefreshInterval = ((EFI_IFR_REFRESH *) OpCodeData)->RefreshInterval;
- break;
+ ParentStatement->ReadExpression = CurrentExpression;
- //
- // Refresh guid.
- //
- case EFI_IFR_REFRESH_ID_OP:
- //
- // Get ScopeOpcode from top of stack
- //
- PopScope (&ScopeOpCode);
- PushScope (ScopeOpCode);
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
- switch (ScopeOpCode) {
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
- ASSERT (CurrentForm != NULL);
- CopyMem (&CurrentForm->RefreshGuid, &((EFI_IFR_REFRESH_ID *) OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));
break;
- default:
+ case EFI_IFR_WRITE_OP:
+ CurrentExpression = CreateExpression (CurrentForm, OpCodeData);
+ CurrentExpression->Type = EFI_HII_EXPRESSION_WRITE;
+ InsertTailList (&CurrentForm->ExpressionListHead, &CurrentExpression->Link);
+
+ //
+ // Make sure CurrentStatement is not NULL.
+ // If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
+ // file is wrongly generated by tools such as VFR Compiler. There may be a bug in VFR Compiler.
+ //
ASSERT (ParentStatement != NULL);
- CopyMem (&ParentStatement->RefreshGuid, &((EFI_IFR_REFRESH_ID *) OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));
- break;
- }
- break;
+ ParentStatement->WriteExpression = CurrentExpression;
- //
- // Modal tag
- //
- case EFI_IFR_MODAL_TAG_OP:
- ASSERT (CurrentForm != NULL);
- CurrentForm->ModalForm = TRUE;
- break;
+ //
+ // Take a look at next OpCode to see whether current expression consists
+ // of single OpCode
+ //
+ if (((EFI_IFR_OP_HEADER *)(OpCodeData + OpCodeLength))->Scope == 0) {
+ SingleOpCodeExpression = TRUE;
+ }
+
+ break;
- //
- // Lock tag, used by form and statement.
- //
- case EFI_IFR_LOCKED_OP:
//
- // Get ScopeOpcode from top of stack
+ // Image
//
- PopScope (&ScopeOpCode);
- PushScope (ScopeOpCode);
- switch (ScopeOpCode) {
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
- ASSERT (CurrentForm != NULL);
- CurrentForm->Locked = TRUE;
- break;
+ case EFI_IFR_IMAGE_OP:
+ //
+ // Get ScopeOpcode from top of stack
+ //
+ PopScope (&ScopeOpCode);
+ PushScope (ScopeOpCode);
- default:
- ASSERT (ParentStatement != NULL);
- ParentStatement->Locked = TRUE;
- }
- break;
+ switch (ScopeOpCode) {
+ case EFI_IFR_FORM_SET_OP:
+ ImageId = &FormSet->ImageId;
+ break;
- //
- // Vendor specific
- //
- case EFI_IFR_GUID_OP:
- CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
- if (CompareGuid ((EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {
- Scope = 0;
- QuestionReferBitField = TRUE;
- }
- break;
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
+ ASSERT (CurrentForm != NULL);
+ ImageId = &CurrentForm->ImageId;
+ break;
- //
- // Scope End
- //
- case EFI_IFR_END_OP:
- QuestionReferBitField = FALSE;
- Status = PopScope (&ScopeOpCode);
- if (EFI_ERROR (Status)) {
- ResetScopeStack ();
- return Status;
- }
+ case EFI_IFR_ONE_OF_OPTION_OP:
+ ASSERT (CurrentOption != NULL);
+ ImageId = &CurrentOption->ImageId;
+ break;
+
+ default:
+ //
+ // Make sure CurrentStatement is not NULL.
+ // If it is NULL, 1) ParseOpCodes functions may parse the IFR wrongly. Or 2) the IFR
+ // file is wrongly generated by tools such as VFR Compiler.
+ //
+ ASSERT (ParentStatement != NULL);
+ ImageId = &ParentStatement->ImageId;
+ break;
+ }
+
+ ASSERT (ImageId != NULL);
+ CopyMem (ImageId, &((EFI_IFR_IMAGE *)OpCodeData)->Id, sizeof (EFI_IMAGE_ID));
+ break;
//
- // Parent statement end tag found, update ParentStatement info.
+ // Refresh
//
- if (IsStatementOpCode(ScopeOpCode) && (ParentStatement != NULL) && (ParentStatement->Operand == ScopeOpCode)) {
- ParentStatement = ParentStatement->ParentStatement;
- }
-
- switch (ScopeOpCode) {
- case EFI_IFR_FORM_SET_OP:
- //
- // End of FormSet, update FormSet IFR binary length
- // to stop parsing substantial OpCodes
- //
- FormSet->IfrBinaryLength = OpCodeOffset;
+ case EFI_IFR_REFRESH_OP:
+ ASSERT (ParentStatement != NULL);
+ ParentStatement->RefreshInterval = ((EFI_IFR_REFRESH *)OpCodeData)->RefreshInterval;
break;
- case EFI_IFR_FORM_OP:
- case EFI_IFR_FORM_MAP_OP:
+ //
+ // Refresh guid.
+ //
+ case EFI_IFR_REFRESH_ID_OP:
//
- // End of Form
+ // Get ScopeOpcode from top of stack
//
- CurrentForm = NULL;
- SuppressForQuestion = FALSE;
+ PopScope (&ScopeOpCode);
+ PushScope (ScopeOpCode);
+
+ switch (ScopeOpCode) {
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
+ ASSERT (CurrentForm != NULL);
+ CopyMem (&CurrentForm->RefreshGuid, &((EFI_IFR_REFRESH_ID *)OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));
+ break;
+
+ default:
+ ASSERT (ParentStatement != NULL);
+ CopyMem (&ParentStatement->RefreshGuid, &((EFI_IFR_REFRESH_ID *)OpCodeData)->RefreshEventGroupId, sizeof (EFI_GUID));
+ break;
+ }
+
break;
- case EFI_IFR_ONE_OF_OPTION_OP:
- //
- // End of Option
- //
- CurrentOption = NULL;
+ //
+ // Modal tag
+ //
+ case EFI_IFR_MODAL_TAG_OP:
+ ASSERT (CurrentForm != NULL);
+ CurrentForm->ModalForm = TRUE;
break;
- case EFI_IFR_NO_SUBMIT_IF_OP:
- case EFI_IFR_INCONSISTENT_IF_OP:
- case EFI_IFR_WARNING_IF_OP:
+ //
+ // Lock tag, used by form and statement.
+ //
+ case EFI_IFR_LOCKED_OP:
//
- // Ignore end of EFI_IFR_NO_SUBMIT_IF and EFI_IFR_INCONSISTENT_IF
+ // Get ScopeOpcode from top of stack
//
- break;
+ PopScope (&ScopeOpCode);
+ PushScope (ScopeOpCode);
+ switch (ScopeOpCode) {
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
+ ASSERT (CurrentForm != NULL);
+ CurrentForm->Locked = TRUE;
+ break;
- case EFI_IFR_SUPPRESS_IF_OP:
- if (SuppressForOption) {
- PopConditionalExpression(ExpressOption);
- } else if (SuppressForQuestion) {
- PopConditionalExpression(ExpressStatement);
- } else {
- PopConditionalExpression(ExpressForm);
+ default:
+ ASSERT (ParentStatement != NULL);
+ ParentStatement->Locked = TRUE;
}
- break;
- case EFI_IFR_GRAY_OUT_IF_OP:
- PopConditionalExpression(ExpressStatement);
break;
- case EFI_IFR_DISABLE_IF_OP:
- if (CurrentForm != NULL) {
- PopConditionalExpression(ExpressStatement);
+ //
+ // Vendor specific
+ //
+ case EFI_IFR_GUID_OP:
+ CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);
+ if (CompareGuid ((EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)), &gEdkiiIfrBitVarstoreGuid)) {
+ Scope = 0;
+ QuestionReferBitField = TRUE;
}
- InScopeDisable = FALSE;
- OpCodeDisabled = FALSE;
- break;
- case EFI_IFR_ONE_OF_OP:
- case EFI_IFR_ORDERED_LIST_OP:
- SuppressForOption = FALSE;
break;
- case EFI_IFR_DEFAULT_OP:
- InScopeDefault = FALSE;
- break;
+ //
+ // Scope End
+ //
+ case EFI_IFR_END_OP:
+ QuestionReferBitField = FALSE;
+ Status = PopScope (&ScopeOpCode);
+ if (EFI_ERROR (Status)) {
+ ResetScopeStack ();
+ return Status;
+ }
- case EFI_IFR_MAP_OP:
//
- // Get current Map Expression List.
+ // Parent statement end tag found, update ParentStatement info.
//
- Status = PopMapExpressionList ((VOID **) &MapExpressionList);
- if (Status == EFI_ACCESS_DENIED) {
- MapExpressionList = NULL;
+ if (IsStatementOpCode (ScopeOpCode) && (ParentStatement != NULL) && (ParentStatement->Operand == ScopeOpCode)) {
+ ParentStatement = ParentStatement->ParentStatement;
}
- //
- // Get current expression.
- //
- Status = PopCurrentExpression ((VOID **) &CurrentExpression);
- ASSERT_EFI_ERROR (Status);
- ASSERT (MapScopeDepth > 0);
- MapScopeDepth --;
- break;
- default:
- if (IsExpressionOpCode (ScopeOpCode)) {
- if (InScopeDisable && CurrentForm == NULL) {
+ switch (ScopeOpCode) {
+ case EFI_IFR_FORM_SET_OP:
+ //
+ // End of FormSet, update FormSet IFR binary length
+ // to stop parsing substantial OpCodes
//
- // This is DisableIf expression for Form, it should be a constant expression
+ FormSet->IfrBinaryLength = OpCodeOffset;
+ break;
+
+ case EFI_IFR_FORM_OP:
+ case EFI_IFR_FORM_MAP_OP:
+ //
+ // End of Form
+ //
+ CurrentForm = NULL;
+ SuppressForQuestion = FALSE;
+ break;
+
+ case EFI_IFR_ONE_OF_OPTION_OP:
//
- ASSERT (CurrentExpression != NULL);
- Status = EvaluateExpression (FormSet, CurrentForm, CurrentExpression);
- if (EFI_ERROR (Status)) {
- return Status;
+ // End of Option
+ //
+ CurrentOption = NULL;
+ break;
+
+ case EFI_IFR_NO_SUBMIT_IF_OP:
+ case EFI_IFR_INCONSISTENT_IF_OP:
+ case EFI_IFR_WARNING_IF_OP:
+ //
+ // Ignore end of EFI_IFR_NO_SUBMIT_IF and EFI_IFR_INCONSISTENT_IF
+ //
+ break;
+
+ case EFI_IFR_SUPPRESS_IF_OP:
+ if (SuppressForOption) {
+ PopConditionalExpression (ExpressOption);
+ } else if (SuppressForQuestion) {
+ PopConditionalExpression (ExpressStatement);
+ } else {
+ PopConditionalExpression (ExpressForm);
}
- OpCodeDisabled = IsTrue (&CurrentExpression->Result);
+ break;
+
+ case EFI_IFR_GRAY_OUT_IF_OP:
+ PopConditionalExpression (ExpressStatement);
+ break;
+
+ case EFI_IFR_DISABLE_IF_OP:
+ if (CurrentForm != NULL) {
+ PopConditionalExpression (ExpressStatement);
+ }
+
+ InScopeDisable = FALSE;
+ OpCodeDisabled = FALSE;
+ break;
+
+ case EFI_IFR_ONE_OF_OP:
+ case EFI_IFR_ORDERED_LIST_OP:
+ SuppressForOption = FALSE;
+ break;
+
+ case EFI_IFR_DEFAULT_OP:
+ InScopeDefault = FALSE;
+ break;
+ case EFI_IFR_MAP_OP:
//
- // DisableIf Expression is only used once and not queued, free it
+ // Get current Map Expression List.
//
- DestroyExpression (CurrentExpression);
- }
+ Status = PopMapExpressionList ((VOID **)&MapExpressionList);
+ if (Status == EFI_ACCESS_DENIED) {
+ MapExpressionList = NULL;
+ }
- //
- // End of current Expression
- //
- CurrentExpression = NULL;
+ //
+ // Get current expression.
+ //
+ Status = PopCurrentExpression ((VOID **)&CurrentExpression);
+ ASSERT_EFI_ERROR (Status);
+ ASSERT (MapScopeDepth > 0);
+ MapScopeDepth--;
+ break;
+
+ default:
+ if (IsExpressionOpCode (ScopeOpCode)) {
+ if (InScopeDisable && (CurrentForm == NULL)) {
+ //
+ // This is DisableIf expression for Form, it should be a constant expression
+ //
+ ASSERT (CurrentExpression != NULL);
+ Status = EvaluateExpression (FormSet, CurrentForm, CurrentExpression);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ OpCodeDisabled = IsTrue (&CurrentExpression->Result);
+
+ //
+ // DisableIf Expression is only used once and not queued, free it
+ //
+ DestroyExpression (CurrentExpression);
+ }
+
+ //
+ // End of current Expression
+ //
+ CurrentExpression = NULL;
+ }
+
+ break;
}
+
break;
- }
- break;
- default:
- break;
+ default:
+ break;
}
- if (IsStatementOpCode(Operand)) {
+ if (IsStatementOpCode (Operand)) {
CurrentStatement->ParentStatement = ParentStatement;
if (Scope != 0) {
//
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
index 7f85873..9587b08 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
@@ -9,17 +9,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "Setup.h"
-BOOLEAN mHiiPackageListUpdated;
-UI_MENU_SELECTION *gCurrentSelection;
-EFI_HII_HANDLE mCurrentHiiHandle = NULL;
-EFI_GUID mCurrentFormSetGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
-UINT16 mCurrentFormId = 0;
-EFI_EVENT mValueChangedEvent = NULL;
-LIST_ENTRY mRefreshEventList = INITIALIZE_LIST_HEAD_VARIABLE (mRefreshEventList);
-UINT16 mCurFakeQestId;
-FORM_DISPLAY_ENGINE_FORM gDisplayFormData;
-BOOLEAN mFinishRetrieveCall = FALSE;
-BOOLEAN mDynamicFormUpdated = FALSE;
+BOOLEAN mHiiPackageListUpdated;
+UI_MENU_SELECTION *gCurrentSelection;
+EFI_HII_HANDLE mCurrentHiiHandle = NULL;
+EFI_GUID mCurrentFormSetGuid = {
+ 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+UINT16 mCurrentFormId = 0;
+EFI_EVENT mValueChangedEvent = NULL;
+LIST_ENTRY mRefreshEventList = INITIALIZE_LIST_HEAD_VARIABLE (mRefreshEventList);
+UINT16 mCurFakeQestId;
+FORM_DISPLAY_ENGINE_FORM gDisplayFormData;
+BOOLEAN mFinishRetrieveCall = FALSE;
+BOOLEAN mDynamicFormUpdated = FALSE;
/**
Check whether the ConfigAccess protocol is available.
@@ -30,16 +32,16 @@ BOOLEAN mDynamicFormUpdated = FALSE;
**/
EFI_STATUS
-CheckConfigAccess(
+CheckConfigAccess (
IN FORM_BROWSER_FORMSET *FormSet
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = gBS->HandleProtocol (
FormSet->DriverHandle,
&gEfiHiiConfigAccessProtocolGuid,
- (VOID **) &FormSet->ConfigAccess
+ (VOID **)&FormSet->ConfigAccess
);
if (EFI_ERROR (Status)) {
//
@@ -75,13 +77,14 @@ EvaluateFormExpressions (
Link = GetFirstNode (&Form->ExpressionListHead);
while (!IsNull (&Form->ExpressionListHead, Link)) {
Expression = FORM_EXPRESSION_FROM_LINK (Link);
- Link = GetNextNode (&Form->ExpressionListHead, Link);
-
- if (Expression->Type == EFI_HII_EXPRESSION_INCONSISTENT_IF ||
- Expression->Type == EFI_HII_EXPRESSION_NO_SUBMIT_IF ||
- Expression->Type == EFI_HII_EXPRESSION_WARNING_IF ||
- Expression->Type == EFI_HII_EXPRESSION_WRITE ||
- (Expression->Type == EFI_HII_EXPRESSION_READ && Form->FormType != STANDARD_MAP_FORM_TYPE)) {
+ Link = GetNextNode (&Form->ExpressionListHead, Link);
+
+ if ((Expression->Type == EFI_HII_EXPRESSION_INCONSISTENT_IF) ||
+ (Expression->Type == EFI_HII_EXPRESSION_NO_SUBMIT_IF) ||
+ (Expression->Type == EFI_HII_EXPRESSION_WARNING_IF) ||
+ (Expression->Type == EFI_HII_EXPRESSION_WRITE) ||
+ ((Expression->Type == EFI_HII_EXPRESSION_READ) && (Form->FormType != STANDARD_MAP_FORM_TYPE)))
+ {
//
// Postpone Form validation to Question editing or Form submitting or Question Write or Question Read for nonstandard form.
//
@@ -107,11 +110,11 @@ EvaluateFormExpressions (
**/
FORM_DISPLAY_ENGINE_STATEMENT *
GetDisplayStatement (
- IN EFI_IFR_OP_HEADER *OpCode
+ IN EFI_IFR_OP_HEADER *OpCode
)
{
- FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement;
- LIST_ENTRY *Link;
+ FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement;
+ LIST_ENTRY *Link;
Link = GetFirstNode (&gDisplayFormData.StatementListHead);
while (!IsNull (&gDisplayFormData.StatementListHead, Link)) {
@@ -120,6 +123,7 @@ GetDisplayStatement (
if (DisplayStatement->OpCode == OpCode) {
return DisplayStatement;
}
+
Link = GetNextNode (&gDisplayFormData.StatementListHead, Link);
}
@@ -135,11 +139,11 @@ FreeRefreshEvent (
VOID
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
while (!IsListEmpty (&mRefreshEventList)) {
- Link = GetFirstNode (&mRefreshEventList);
+ Link = GetFirstNode (&mRefreshEventList);
EventNode = FORM_BROWSER_REFRESH_EVENT_FROM_LINK (Link);
RemoveEntryList (&EventNode->Link);
@@ -158,7 +162,7 @@ FreeRefreshEvent (
**/
VOID
UpdateStatement (
- IN OUT FORM_BROWSER_STATEMENT *Statement
+ IN OUT FORM_BROWSER_STATEMENT *Statement
)
{
GetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithHiiDriver);
@@ -177,7 +181,7 @@ UpdateStatement (
//
// Package list is updated, force to reparse IFR binary of target Formset
//
- mHiiPackageListUpdated = FALSE;
+ mHiiPackageListUpdated = FALSE;
gCurrentSelection->Action = UI_ACTION_REFRESH_FORMSET;
}
}
@@ -190,15 +194,15 @@ UpdateStatement (
**/
VOID
EFIAPI
-RefreshEventNotifyForStatement(
- IN EFI_EVENT Event,
- IN VOID *Context
+RefreshEventNotifyForStatement (
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- FORM_BROWSER_STATEMENT *Statement;
+ FORM_BROWSER_STATEMENT *Statement;
Statement = (FORM_BROWSER_STATEMENT *)Context;
- UpdateStatement(Statement);
+ UpdateStatement (Statement);
gBS->SignalEvent (mValueChangedEvent);
}
@@ -210,9 +214,9 @@ RefreshEventNotifyForStatement(
**/
VOID
EFIAPI
-RefreshEventNotifyForForm(
- IN EFI_EVENT Event,
- IN VOID *Context
+RefreshEventNotifyForForm (
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
gCurrentSelection->Action = UI_ACTION_REFRESH_FORMSET;
@@ -228,29 +232,30 @@ RefreshEventNotifyForForm(
**/
VOID
CreateRefreshEventForStatement (
- IN FORM_BROWSER_STATEMENT *Statement
+ IN FORM_BROWSER_STATEMENT *Statement
)
{
- EFI_STATUS Status;
- EFI_EVENT RefreshEvent;
- FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
+ EFI_STATUS Status;
+ EFI_EVENT RefreshEvent;
+ FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
//
// If question has refresh guid, create the notify function.
//
Status = gBS->CreateEventEx (
- EVT_NOTIFY_SIGNAL,
- TPL_CALLBACK,
- RefreshEventNotifyForStatement,
- Statement,
- &Statement->RefreshGuid,
- &RefreshEvent);
+ EVT_NOTIFY_SIGNAL,
+ TPL_CALLBACK,
+ RefreshEventNotifyForStatement,
+ Statement,
+ &Statement->RefreshGuid,
+ &RefreshEvent
+ );
ASSERT_EFI_ERROR (Status);
EventNode = AllocateZeroPool (sizeof (FORM_BROWSER_REFRESH_EVENT_NODE));
ASSERT (EventNode != NULL);
EventNode->RefreshEvent = RefreshEvent;
- InsertTailList(&mRefreshEventList, &EventNode->Link);
+ InsertTailList (&mRefreshEventList, &EventNode->Link);
}
/**
@@ -261,29 +266,30 @@ CreateRefreshEventForStatement (
**/
VOID
CreateRefreshEventForForm (
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORM *Form
)
{
- EFI_STATUS Status;
- EFI_EVENT RefreshEvent;
- FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
+ EFI_STATUS Status;
+ EFI_EVENT RefreshEvent;
+ FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
//
// If question has refresh guid, create the notify function.
//
Status = gBS->CreateEventEx (
- EVT_NOTIFY_SIGNAL,
- TPL_CALLBACK,
- RefreshEventNotifyForForm,
- Form,
- &Form->RefreshGuid,
- &RefreshEvent);
+ EVT_NOTIFY_SIGNAL,
+ TPL_CALLBACK,
+ RefreshEventNotifyForForm,
+ Form,
+ &Form->RefreshGuid,
+ &RefreshEvent
+ );
ASSERT_EFI_ERROR (Status);
EventNode = AllocateZeroPool (sizeof (FORM_BROWSER_REFRESH_EVENT_NODE));
ASSERT (EventNode != NULL);
EventNode->RefreshEvent = RefreshEvent;
- InsertTailList(&mRefreshEventList, &EventNode->Link);
+ InsertTailList (&mRefreshEventList, &EventNode->Link);
}
/**
@@ -295,14 +301,14 @@ CreateRefreshEventForForm (
**/
VOID
InitializeDisplayStatement (
- IN OUT FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement,
- IN FORM_BROWSER_STATEMENT *Statement
+ IN OUT FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement,
+ IN FORM_BROWSER_STATEMENT *Statement
)
{
- LIST_ENTRY *Link;
- QUESTION_OPTION *Option;
- DISPLAY_QUESTION_OPTION *DisplayOption;
- FORM_DISPLAY_ENGINE_STATEMENT *ParentStatement;
+ LIST_ENTRY *Link;
+ QUESTION_OPTION *Option;
+ DISPLAY_QUESTION_OPTION *DisplayOption;
+ FORM_DISPLAY_ENGINE_STATEMENT *ParentStatement;
DisplayStatement->Signature = FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE;
DisplayStatement->Version = FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1;
@@ -310,9 +316,10 @@ InitializeDisplayStatement (
InitializeListHead (&DisplayStatement->NestStatementList);
InitializeListHead (&DisplayStatement->OptionListHead);
- if ((EvaluateExpressionList(Statement->Expression, FALSE, NULL, NULL) == ExpressGrayOut) || Statement->Locked) {
+ if ((EvaluateExpressionList (Statement->Expression, FALSE, NULL, NULL) == ExpressGrayOut) || Statement->Locked) {
DisplayStatement->Attribute |= HII_DISPLAY_GRAYOUT;
}
+
if ((Statement->ValueExpression != NULL) || ((Statement->QuestionFlags & EFI_IFR_FLAG_READ_ONLY) != 0)) {
DisplayStatement->Attribute |= HII_DISPLAY_READONLY;
}
@@ -323,9 +330,10 @@ InitializeDisplayStatement (
Link = GetFirstNode (&Statement->OptionListHead);
while (!IsNull (&Statement->OptionListHead, Link)) {
Option = QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Statement->OptionListHead, Link);
+ Link = GetNextNode (&Statement->OptionListHead, Link);
if ((Option->SuppressExpression != NULL) &&
- ((EvaluateExpressionList(Option->SuppressExpression, FALSE, NULL, NULL) == ExpressSuppress))) {
+ ((EvaluateExpressionList (Option->SuppressExpression, FALSE, NULL, NULL) == ExpressSuppress)))
+ {
continue;
}
@@ -335,7 +343,7 @@ InitializeDisplayStatement (
DisplayOption->ImageId = Option->ImageId;
DisplayOption->Signature = DISPLAY_QUESTION_OPTION_SIGNATURE;
DisplayOption->OptionOpCode = Option->OpCode;
- InsertTailList(&DisplayStatement->OptionListHead, &DisplayOption->Link);
+ InsertTailList (&DisplayStatement->OptionListHead, &DisplayOption->Link);
}
CopyMem (&DisplayStatement->CurrentValue, &Statement->HiiValue, sizeof (EFI_HII_VALUE));
@@ -348,11 +356,11 @@ InitializeDisplayStatement (
//
// Ordered list opcode may not initilized, get default value here.
//
- if (Statement->OpCode->OpCode == EFI_IFR_ORDERED_LIST_OP && GetArrayData (Statement->BufferValue, Statement->ValueType, 0) == 0) {
+ if ((Statement->OpCode->OpCode == EFI_IFR_ORDERED_LIST_OP) && (GetArrayData (Statement->BufferValue, Statement->ValueType, 0) == 0)) {
GetQuestionDefault (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, 0);
}
- DisplayStatement->CurrentValue.Buffer = AllocateCopyPool(Statement->StorageWidth,Statement->BufferValue);
+ DisplayStatement->CurrentValue.Buffer = AllocateCopyPool (Statement->StorageWidth, Statement->BufferValue);
DisplayStatement->CurrentValue.BufferLen = Statement->StorageWidth;
}
@@ -362,7 +370,8 @@ InitializeDisplayStatement (
// Get the highlight statement for current form.
//
if (((gCurrentSelection->QuestionId != 0) && (Statement->QuestionId == gCurrentSelection->QuestionId)) ||
- ((mCurFakeQestId != 0) && (Statement->FakeQuestionId == mCurFakeQestId))) {
+ ((mCurFakeQestId != 0) && (Statement->FakeQuestionId == mCurFakeQestId)))
+ {
gDisplayFormData.HighLightedStatement = DisplayStatement;
}
@@ -376,7 +385,7 @@ InitializeDisplayStatement (
//
// For RTC type of date/time, set default refresh interval to be 1 second.
//
- if ((Statement->Operand == EFI_IFR_DATE_OP || Statement->Operand == EFI_IFR_TIME_OP) && Statement->Storage == NULL) {
+ if (((Statement->Operand == EFI_IFR_DATE_OP) || (Statement->Operand == EFI_IFR_TIME_OP)) && (Statement->Storage == NULL)) {
Statement->RefreshInterval = 1;
}
@@ -400,11 +409,11 @@ InitializeDisplayStatement (
// else insert to the form it belongs to.
//
if (Statement->ParentStatement != NULL) {
- ParentStatement = GetDisplayStatement(Statement->ParentStatement->OpCode);
+ ParentStatement = GetDisplayStatement (Statement->ParentStatement->OpCode);
ASSERT (ParentStatement != NULL);
- InsertTailList(&ParentStatement->NestStatementList, &DisplayStatement->DisplayLink);
+ InsertTailList (&ParentStatement->NestStatementList, &DisplayStatement->DisplayLink);
} else {
- InsertTailList(&gDisplayFormData.StatementListHead, &DisplayStatement->DisplayLink);
+ InsertTailList (&gDisplayFormData.StatementListHead, &DisplayStatement->DisplayLink);
}
}
@@ -418,23 +427,23 @@ InitializeDisplayStatement (
VOID
EFIAPI
RefreshIntervalProcess (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- FORM_BROWSER_STATEMENT *Statement;
- LIST_ENTRY *Link;
+ FORM_BROWSER_STATEMENT *Statement;
+ LIST_ENTRY *Link;
Link = GetFirstNode (&gCurrentSelection->Form->StatementListHead);
while (!IsNull (&gCurrentSelection->Form->StatementListHead, Link)) {
Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
+ Link = GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
if (Statement->RefreshInterval == 0) {
continue;
}
- UpdateStatement(Statement);
+ UpdateStatement (Statement);
}
gBS->SignalEvent (mValueChangedEvent);
@@ -458,14 +467,14 @@ UpdateHotkeyList (
while (!IsNull (&gBrowserHotKeyList, Link)) {
HotKey = BROWSER_HOT_KEY_FROM_LINK (Link);
- CopyKey = AllocateCopyPool(sizeof (BROWSER_HOT_KEY), HotKey);
+ CopyKey = AllocateCopyPool (sizeof (BROWSER_HOT_KEY), HotKey);
ASSERT (CopyKey != NULL);
- CopyKey->KeyData = AllocateCopyPool(sizeof (EFI_INPUT_KEY), HotKey->KeyData);
+ CopyKey->KeyData = AllocateCopyPool (sizeof (EFI_INPUT_KEY), HotKey->KeyData);
ASSERT (CopyKey->KeyData != NULL);
- CopyKey->HelpString = AllocateCopyPool(StrSize (HotKey->HelpString), HotKey->HelpString);
+ CopyKey->HelpString = AllocateCopyPool (StrSize (HotKey->HelpString), HotKey->HelpString);
ASSERT (CopyKey->HelpString != NULL);
- InsertTailList(&gDisplayFormData.HotKeyListHead, &CopyKey->Link);
+ InsertTailList (&gDisplayFormData.HotKeyListHead, &CopyKey->Link);
Link = GetNextNode (&gBrowserHotKeyList, Link);
}
@@ -499,12 +508,13 @@ ProcessQuestionExtraAttr (
Link = GetFirstNode (&mPrivateData.FormBrowserEx2.OverrideQestListHead);
while (!IsNull (&mPrivateData.FormBrowserEx2.OverrideQestListHead, Link)) {
QuestionDesc = FORM_QUESTION_ATTRIBUTE_OVERRIDE_FROM_LINK (Link);
- Link = GetNextNode (&mPrivateData.FormBrowserEx2.OverrideQestListHead, Link);
+ Link = GetNextNode (&mPrivateData.FormBrowserEx2.OverrideQestListHead, Link);
if ((QuestionDesc->QuestionId == QuestionId) &&
(QuestionDesc->FormId == gCurrentSelection->FormId) &&
(QuestionDesc->HiiHandle == gCurrentSelection->Handle) &&
- CompareGuid (&QuestionDesc->FormSetGuid, &gCurrentSelection->FormSetGuid)) {
+ CompareGuid (&QuestionDesc->FormSetGuid, &gCurrentSelection->FormSetGuid))
+ {
return QuestionDesc->Attribute;
}
}
@@ -523,18 +533,18 @@ AddStatementToDisplayForm (
VOID
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- FORM_BROWSER_STATEMENT *Statement;
- FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement;
- UINT8 MinRefreshInterval;
- EFI_EVENT RefreshIntervalEvent;
- FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
- BOOLEAN FormEditable;
- UINT32 ExtraAttribute;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_STATEMENT *Statement;
+ FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement;
+ UINT8 MinRefreshInterval;
+ EFI_EVENT RefreshIntervalEvent;
+ FORM_BROWSER_REFRESH_EVENT_NODE *EventNode;
+ BOOLEAN FormEditable;
+ UINT32 ExtraAttribute;
- MinRefreshInterval = 0;
- FormEditable = FALSE;
+ MinRefreshInterval = 0;
+ FormEditable = FALSE;
//
// Process the statement outside the form, these statements are not recognized
@@ -543,18 +553,18 @@ AddStatementToDisplayForm (
Link = GetFirstNode (&gCurrentSelection->FormSet->StatementListOSF);
while (!IsNull (&gCurrentSelection->FormSet->StatementListOSF, Link)) {
Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&gCurrentSelection->FormSet->StatementListOSF, Link);
+ Link = GetNextNode (&gCurrentSelection->FormSet->StatementListOSF, Link);
DisplayStatement = AllocateZeroPool (sizeof (FORM_DISPLAY_ENGINE_STATEMENT));
ASSERT (DisplayStatement != NULL);
DisplayStatement->Signature = FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE;
DisplayStatement->Version = FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1;
- DisplayStatement->OpCode = Statement->OpCode;
+ DisplayStatement->OpCode = Statement->OpCode;
InitializeListHead (&DisplayStatement->NestStatementList);
InitializeListHead (&DisplayStatement->OptionListHead);
- InsertTailList(&gDisplayFormData.StatementListOSF, &DisplayStatement->DisplayLink);
+ InsertTailList (&gDisplayFormData.StatementListOSF, &DisplayStatement->DisplayLink);
}
//
@@ -565,12 +575,12 @@ AddStatementToDisplayForm (
DisplayStatement->Signature = FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE;
DisplayStatement->Version = FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1;
- DisplayStatement->OpCode = gCurrentSelection->FormSet->OpCode;
+ DisplayStatement->OpCode = gCurrentSelection->FormSet->OpCode;
InitializeListHead (&DisplayStatement->NestStatementList);
InitializeListHead (&DisplayStatement->OptionListHead);
- InsertTailList(&gDisplayFormData.StatementListOSF, &DisplayStatement->DisplayLink);
+ InsertTailList (&gDisplayFormData.StatementListOSF, &DisplayStatement->DisplayLink);
//
// Process the statement in this form.
@@ -578,12 +588,12 @@ AddStatementToDisplayForm (
Link = GetFirstNode (&gCurrentSelection->Form->StatementListHead);
while (!IsNull (&gCurrentSelection->Form->StatementListHead, Link)) {
Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
+ Link = GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
//
// This statement can't be show, skip it.
//
- if (EvaluateExpressionList(Statement->Expression, FALSE, NULL, NULL) > ExpressGrayOut) {
+ if (EvaluateExpressionList (Statement->Expression, FALSE, NULL, NULL) > ExpressGrayOut) {
continue;
}
@@ -601,7 +611,7 @@ AddStatementToDisplayForm (
//
// Initialize this statement and add it to the display form.
//
- InitializeDisplayStatement(DisplayStatement, Statement);
+ InitializeDisplayStatement (DisplayStatement, Statement);
//
// Set the extra attribute.
@@ -616,7 +626,8 @@ AddStatementToDisplayForm (
// Get the minimal refresh interval value for later use.
//
if ((Statement->RefreshInterval != 0) &&
- (MinRefreshInterval == 0 || Statement->RefreshInterval < MinRefreshInterval)) {
+ ((MinRefreshInterval == 0) || (Statement->RefreshInterval < MinRefreshInterval)))
+ {
MinRefreshInterval = Statement->RefreshInterval;
}
}
@@ -633,7 +644,7 @@ AddStatementToDisplayForm (
EventNode = AllocateZeroPool (sizeof (FORM_BROWSER_REFRESH_EVENT_NODE));
ASSERT (EventNode != NULL);
EventNode->RefreshEvent = RefreshIntervalEvent;
- InsertTailList(&mRefreshEventList, &EventNode->Link);
+ InsertTailList (&mRefreshEventList, &EventNode->Link);
}
//
@@ -649,8 +660,8 @@ AddStatementToDisplayForm (
//
// Update hotkey list field.
//
- if (gBrowserSettingScope == SystemLevel || FormEditable) {
- UpdateHotkeyList();
+ if ((gBrowserSettingScope == SystemLevel) || FormEditable) {
+ UpdateHotkeyList ();
}
}
@@ -664,10 +675,10 @@ UpdateDataChangedFlag (
VOID
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORMSET *LocalFormSet;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORMSET *LocalFormSet;
- gDisplayFormData.SettingChangedFlag = FALSE;
+ gDisplayFormData.SettingChangedFlag = FALSE;
if (IsNvUpdateRequiredForForm (gCurrentSelection->Form)) {
gDisplayFormData.SettingChangedFlag = TRUE;
@@ -678,30 +689,33 @@ UpdateDataChangedFlag (
// Base on the system level to check whether need to show the NV flag.
//
switch (gBrowserSettingScope) {
- case SystemLevel:
- //
- // Check the maintain list to see whether there is any change.
- //
- Link = GetFirstNode (&gBrowserFormSetList);
- while (!IsNull (&gBrowserFormSetList, Link)) {
- LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- if (IsNvUpdateRequiredForFormSet(LocalFormSet)) {
+ case SystemLevel:
+ //
+ // Check the maintain list to see whether there is any change.
+ //
+ Link = GetFirstNode (&gBrowserFormSetList);
+ while (!IsNull (&gBrowserFormSetList, Link)) {
+ LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
+ if (IsNvUpdateRequiredForFormSet (LocalFormSet)) {
+ gDisplayFormData.SettingChangedFlag = TRUE;
+ return;
+ }
+
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ }
+
+ break;
+
+ case FormSetLevel:
+ if (IsNvUpdateRequiredForFormSet (gCurrentSelection->FormSet)) {
gDisplayFormData.SettingChangedFlag = TRUE;
return;
}
- Link = GetNextNode (&gBrowserFormSetList, Link);
- }
- break;
- case FormSetLevel:
- if (IsNvUpdateRequiredForFormSet(gCurrentSelection->FormSet)) {
- gDisplayFormData.SettingChangedFlag = TRUE;
- return;
- }
- break;
+ break;
- default:
- break;
+ default:
+ break;
}
}
@@ -727,12 +741,12 @@ InitializeDisplayFormData (
InitializeListHead (&gDisplayFormData.HotKeyListHead);
Status = gBS->CreateEvent (
- EVT_NOTIFY_WAIT,
- TPL_CALLBACK,
- EfiEventEmptyFunction,
- NULL,
- &mValueChangedEvent
- );
+ EVT_NOTIFY_WAIT,
+ TPL_CALLBACK,
+ EfiEventEmptyFunction,
+ NULL,
+ &mValueChangedEvent
+ );
ASSERT_EFI_ERROR (Status);
}
@@ -750,7 +764,7 @@ FreeHotkeyList (
LIST_ENTRY *Link;
while (!IsListEmpty (&gDisplayFormData.HotKeyListHead)) {
- Link = GetFirstNode (&gDisplayFormData.HotKeyListHead);
+ Link = GetFirstNode (&gDisplayFormData.HotKeyListHead);
HotKey = BROWSER_HOT_KEY_FROM_LINK (Link);
RemoveEntryList (&HotKey->Link);
@@ -771,14 +785,14 @@ UpdateDisplayFormData (
VOID
)
{
- gDisplayFormData.FormTitle = gCurrentSelection->Form->FormTitle;
- gDisplayFormData.FormId = gCurrentSelection->FormId;
- gDisplayFormData.HiiHandle = gCurrentSelection->Handle;
+ gDisplayFormData.FormTitle = gCurrentSelection->Form->FormTitle;
+ gDisplayFormData.FormId = gCurrentSelection->FormId;
+ gDisplayFormData.HiiHandle = gCurrentSelection->Handle;
CopyGuid (&gDisplayFormData.FormSetGuid, &gCurrentSelection->FormSetGuid);
- gDisplayFormData.Attribute = 0;
- gDisplayFormData.Attribute |= gCurrentSelection->Form->ModalForm ? HII_DISPLAY_MODAL : 0;
- gDisplayFormData.Attribute |= gCurrentSelection->Form->Locked ? HII_DISPLAY_LOCK : 0;
+ gDisplayFormData.Attribute = 0;
+ gDisplayFormData.Attribute |= gCurrentSelection->Form->ModalForm ? HII_DISPLAY_MODAL : 0;
+ gDisplayFormData.Attribute |= gCurrentSelection->Form->Locked ? HII_DISPLAY_LOCK : 0;
gDisplayFormData.FormRefreshEvent = NULL;
gDisplayFormData.HighLightedStatement = NULL;
@@ -797,19 +811,19 @@ UpdateDisplayFormData (
**/
VOID
FreeStatementData (
- LIST_ENTRY *StatementList
+ LIST_ENTRY *StatementList
)
{
- LIST_ENTRY *Link;
- LIST_ENTRY *OptionLink;
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- DISPLAY_QUESTION_OPTION *Option;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *OptionLink;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ DISPLAY_QUESTION_OPTION *Option;
//
// Free Statements/Questions
//
while (!IsListEmpty (StatementList)) {
- Link = GetFirstNode (StatementList);
+ Link = GetFirstNode (StatementList);
Statement = FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK (Link);
//
@@ -817,7 +831,7 @@ FreeStatementData (
//
while (!IsListEmpty (&Statement->OptionListHead)) {
OptionLink = GetFirstNode (&Statement->OptionListHead);
- Option = DISPLAY_QUESTION_OPTION_FROM_LINK (OptionLink);
+ Option = DISPLAY_QUESTION_OPTION_FROM_LINK (OptionLink);
RemoveEntryList (&Option->Link);
FreePool (Option);
}
@@ -826,7 +840,7 @@ FreeStatementData (
// Free nest statement List
//
if (!IsListEmpty (&Statement->NestStatementList)) {
- FreeStatementData(&Statement->NestStatementList);
+ FreeStatementData (&Statement->NestStatementList);
}
RemoveEntryList (&Statement->DisplayLink);
@@ -847,9 +861,9 @@ FreeDisplayFormData (
FreeStatementData (&gDisplayFormData.StatementListHead);
FreeStatementData (&gDisplayFormData.StatementListOSF);
- FreeRefreshEvent();
+ FreeRefreshEvent ();
- FreeHotkeyList();
+ FreeHotkeyList ();
}
/**
@@ -863,11 +877,11 @@ FreeDisplayFormData (
**/
FORM_BROWSER_STATEMENT *
GetBrowserStatement (
- IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
+ IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
)
{
- FORM_BROWSER_STATEMENT *Statement;
- LIST_ENTRY *Link;
+ FORM_BROWSER_STATEMENT *Statement;
+ LIST_ENTRY *Link;
Link = GetFirstNode (&gCurrentSelection->Form->StatementListHead);
while (!IsNull (&gCurrentSelection->Form->StatementListHead, Link)) {
@@ -892,17 +906,17 @@ GetBrowserStatement (
**/
VOID
UpdateStatementStatusForForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_STATEMENT *Question;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_STATEMENT *Question;
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&Form->StatementListHead, Link);
+ Link = GetNextNode (&Form->StatementListHead, Link);
//
// For password opcode, not set the the value changed flag.
@@ -911,7 +925,7 @@ UpdateStatementStatusForForm (
continue;
}
- IsQuestionValueChanged(FormSet, Form, Question, GetSetValueWithBuffer);
+ IsQuestionValueChanged (FormSet, Form, Question, GetSetValueWithBuffer);
}
}
@@ -923,11 +937,11 @@ UpdateStatementStatusForForm (
**/
VOID
UpdateStatementStatusForFormSet (
- IN FORM_BROWSER_FORMSET *FormSet
+ IN FORM_BROWSER_FORMSET *FormSet
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORM *Form;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORM *Form;
Link = GetFirstNode (&FormSet->FormListHead);
while (!IsNull (&FormSet->FormListHead, Link)) {
@@ -948,38 +962,39 @@ UpdateStatementStatusForFormSet (
**/
VOID
UpdateStatementStatus (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN BROWSER_SETTING_SCOPE SettingScope
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN BROWSER_SETTING_SCOPE SettingScope
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORMSET *LocalFormSet;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORMSET *LocalFormSet;
switch (SettingScope) {
- case SystemLevel:
- Link = GetFirstNode (&gBrowserFormSetList);
- while (!IsNull (&gBrowserFormSetList, Link)) {
- LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserFormSetList, Link);
- if (!ValidateFormSet(LocalFormSet)) {
- continue;
+ case SystemLevel:
+ Link = GetFirstNode (&gBrowserFormSetList);
+ while (!IsNull (&gBrowserFormSetList, Link)) {
+ LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ if (!ValidateFormSet (LocalFormSet)) {
+ continue;
+ }
+
+ UpdateStatementStatusForFormSet (LocalFormSet);
}
- UpdateStatementStatusForFormSet (LocalFormSet);
- }
- break;
+ break;
- case FormSetLevel:
- UpdateStatementStatusForFormSet (FormSet);
- break;
+ case FormSetLevel:
+ UpdateStatementStatusForFormSet (FormSet);
+ break;
- case FormLevel:
- UpdateStatementStatusForForm (FormSet, Form);
- break;
+ case FormLevel:
+ UpdateStatementStatusForForm (FormSet, Form);
+ break;
- default:
- break;
+ default:
+ break;
}
}
@@ -995,8 +1010,8 @@ UpdateStatementStatus (
**/
EFI_STATUS
ProcessAction (
- IN UINT32 Action,
- IN UINT16 DefaultId
+ IN UINT32 Action,
+ IN UINT16 DefaultId
)
{
//
@@ -1024,7 +1039,7 @@ ProcessAction (
}
if ((Action & BROWSER_ACTION_RESET) == BROWSER_ACTION_RESET) {
- gResetRequiredFormLevel = TRUE;
+ gResetRequiredFormLevel = TRUE;
gResetRequiredSystemLevel = TRUE;
}
@@ -1035,12 +1050,13 @@ ProcessAction (
// System Exit without saving, CallExitHandler and Exit SendForm.
//
DiscardForm (gCurrentSelection->FormSet, gCurrentSelection->Form, gBrowserSettingScope);
- if (gBrowserSettingScope == FormLevel || gBrowserSettingScope == FormSetLevel) {
+ if ((gBrowserSettingScope == FormLevel) || (gBrowserSettingScope == FormSetLevel)) {
FindNextMenu (gCurrentSelection, gBrowserSettingScope);
} else if (gBrowserSettingScope == SystemLevel) {
if (ExitHandlerFunction != NULL) {
ExitHandlerFunction ();
}
+
gCurrentSelection->Action = UI_ACTION_EXIT;
}
}
@@ -1060,8 +1076,8 @@ ProcessAction (
**/
BOOLEAN
GetFormsetGuidFromHiiHandle (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_GUID *FormSetGuid
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_GUID *FormSetGuid
)
{
EFI_HII_PACKAGE_LIST_HEADER *HiiPackageList;
@@ -1086,19 +1102,20 @@ GetFormsetGuidFromHiiHandle (
Status = mHiiDatabase->ExportPackageLists (mHiiDatabase, HiiHandle, &BufferSize, HiiPackageList);
}
- if (EFI_ERROR (Status) || HiiPackageList == NULL) {
+
+ if (EFI_ERROR (Status) || (HiiPackageList == NULL)) {
return FALSE;
}
//
// Get Form package from this HII package List
//
- Offset = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
+ Offset = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
Offset2 = 0;
CopyMem (&PackageListLength, &HiiPackageList->PackageLength, sizeof (UINT32));
while (Offset < PackageListLength) {
- Package = ((UINT8 *) HiiPackageList) + Offset;
+ Package = ((UINT8 *)HiiPackageList) + Offset;
CopyMem (&PackageHeader, Package, sizeof (EFI_HII_PACKAGE_HEADER));
Offset += PackageHeader.Length;
@@ -1110,16 +1127,17 @@ GetFormsetGuidFromHiiHandle (
while (Offset2 < PackageHeader.Length) {
OpCodeData = Package + Offset2;
- if (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) {
- if (CompareGuid (FormSetGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))){
+ if (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) {
+ if (CompareGuid (FormSetGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {
FindGuid = TRUE;
break;
}
}
- Offset2 += ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;
+ Offset2 += ((EFI_IFR_OP_HEADER *)OpCodeData)->Length;
}
}
+
if (FindGuid) {
break;
}
@@ -1146,17 +1164,17 @@ GetFormsetGuidFromHiiHandle (
**/
EFI_HII_HANDLE
DevicePathToHiiHandle (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN EFI_GUID *FormsetGuid
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN EFI_GUID *FormsetGuid
)
{
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *TmpDevicePath;
- UINTN Index;
- EFI_HANDLE Handle;
- EFI_HANDLE DriverHandle;
- EFI_HII_HANDLE *HiiHandles;
- EFI_HII_HANDLE HiiHandle;
+ EFI_STATUS Status;
+ EFI_DEVICE_PATH_PROTOCOL *TmpDevicePath;
+ UINTN Index;
+ EFI_HANDLE Handle;
+ EFI_HANDLE DriverHandle;
+ EFI_HII_HANDLE *HiiHandles;
+ EFI_HII_HANDLE HiiHandle;
ASSERT (DevicePath != NULL);
@@ -1192,7 +1210,7 @@ DevicePathToHiiHandle (
&Handle
);
if (!EFI_ERROR (Status) && (Handle == DriverHandle)) {
- if (GetFormsetGuidFromHiiHandle(HiiHandles[Index], FormsetGuid)) {
+ if (GetFormsetGuidFromHiiHandle (HiiHandles[Index], FormsetGuid)) {
HiiHandle = HiiHandles[Index];
break;
}
@@ -1222,16 +1240,16 @@ DevicePathToHiiHandle (
**/
EFI_HII_HANDLE
FormSetGuidToHiiHandle (
- EFI_GUID *ComparingGuid
+ EFI_GUID *ComparingGuid
)
{
- EFI_HII_HANDLE *HiiHandles;
- EFI_HII_HANDLE HiiHandle;
- UINTN Index;
+ EFI_HII_HANDLE *HiiHandles;
+ EFI_HII_HANDLE HiiHandle;
+ UINTN Index;
ASSERT (ComparingGuid != NULL);
- HiiHandle = NULL;
+ HiiHandle = NULL;
//
// Get all the Hii handles
//
@@ -1242,7 +1260,7 @@ FormSetGuidToHiiHandle (
// Search for formset of each class type
//
for (Index = 0; HiiHandles[Index] != NULL; Index++) {
- if (GetFormsetGuidFromHiiHandle(HiiHandles[Index], ComparingGuid)) {
+ if (GetFormsetGuidFromHiiHandle (HiiHandles[Index], ComparingGuid)) {
HiiHandle = HiiHandles[Index];
break;
}
@@ -1272,15 +1290,15 @@ FormSetGuidToHiiHandle (
**/
BOOLEAN
ProcessChangedData (
- IN OUT UI_MENU_SELECTION *Selection,
- IN BROWSER_SETTING_SCOPE Scope
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN BROWSER_SETTING_SCOPE Scope
)
{
- BOOLEAN RetValue;
- EFI_STATUS Status;
+ BOOLEAN RetValue;
+ EFI_STATUS Status;
RetValue = TRUE;
- switch (mFormDisplay->ConfirmDataChange()) {
+ switch (mFormDisplay->ConfirmDataChange ()) {
case BROWSER_ACTION_DISCARD:
DiscardForm (Selection->FormSet, Selection->Form, Scope);
break;
@@ -1290,6 +1308,7 @@ ProcessChangedData (
if (EFI_ERROR (Status)) {
RetValue = FALSE;
}
+
break;
case BROWSER_ACTION_NONE:
@@ -1316,18 +1335,18 @@ ProcessChangedData (
**/
VOID
FindParentFormSet (
- IN OUT UI_MENU_SELECTION *Selection
+ IN OUT UI_MENU_SELECTION *Selection
)
{
- FORM_ENTRY_INFO *CurrentMenu;
- FORM_ENTRY_INFO *ParentMenu;
+ FORM_ENTRY_INFO *CurrentMenu;
+ FORM_ENTRY_INFO *ParentMenu;
CurrentMenu = Selection->CurrentMenu;
- ParentMenu = UiFindParentMenu(CurrentMenu, FormSetLevel);
+ ParentMenu = UiFindParentMenu (CurrentMenu, FormSetLevel);
if (ParentMenu != NULL) {
CopyMem (&Selection->FormSetGuid, &ParentMenu->FormSetGuid, sizeof (EFI_GUID));
- Selection->Handle = ParentMenu->HiiHandle;
+ Selection->Handle = ParentMenu->HiiHandle;
Selection->FormId = ParentMenu->FormId;
Selection->QuestionId = ParentMenu->QuestionId;
} else {
@@ -1335,7 +1354,7 @@ FindParentFormSet (
Selection->QuestionId = CurrentMenu->QuestionId;
}
- Selection->Statement = NULL;
+ Selection->Statement = NULL;
}
/**
@@ -1349,15 +1368,15 @@ FindParentFormSet (
**/
EFI_STATUS
ProcessGotoOpCode (
- IN OUT FORM_BROWSER_STATEMENT *Statement,
- IN OUT UI_MENU_SELECTION *Selection
+ IN OUT FORM_BROWSER_STATEMENT *Statement,
+ IN OUT UI_MENU_SELECTION *Selection
)
{
- CHAR16 *StringPtr;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- FORM_BROWSER_FORM *RefForm;
- EFI_STATUS Status;
- EFI_HII_HANDLE HiiHandle;
+ CHAR16 *StringPtr;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ FORM_BROWSER_FORM *RefForm;
+ EFI_STATUS Status;
+ EFI_HII_HANDLE HiiHandle;
Status = EFI_SUCCESS;
StringPtr = NULL;
@@ -1373,7 +1392,7 @@ ProcessGotoOpCode (
//
// Check whether the device path string is a valid string.
//
- if (Statement->HiiValue.Value.ref.DevicePath != 0 && StringPtr != NULL && StringPtr[0] != L'\0') {
+ if ((Statement->HiiValue.Value.ref.DevicePath != 0) && (StringPtr != NULL) && (StringPtr[0] != L'\0')) {
if (Selection->Form->ModalForm) {
return Status;
}
@@ -1382,17 +1401,18 @@ ProcessGotoOpCode (
// Goto another Hii Package list
//
if (mPathFromText != NULL) {
- DevicePath = mPathFromText->ConvertTextToDevicePath(StringPtr);
+ DevicePath = mPathFromText->ConvertTextToDevicePath (StringPtr);
if (DevicePath != NULL) {
HiiHandle = DevicePathToHiiHandle (DevicePath, &Statement->HiiValue.Value.ref.FormSetGuid);
FreePool (DevicePath);
}
+
FreePool (StringPtr);
} else {
//
// Not found the EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL protocol.
//
- PopupErrorMessage(BROWSER_PROTOCOL_NOT_FOUND, NULL, NULL, NULL);
+ PopupErrorMessage (BROWSER_PROTOCOL_NOT_FOUND, NULL, NULL, NULL);
FreePool (StringPtr);
return Status;
}
@@ -1401,9 +1421,10 @@ ProcessGotoOpCode (
//
// Goto another Formset, check for uncommitted data
//
- if ((gBrowserSettingScope == FormLevel || gBrowserSettingScope == FormSetLevel) &&
- IsNvUpdateRequiredForFormSet(Selection->FormSet)) {
- if (!ProcessChangedData(Selection, FormSetLevel)) {
+ if (((gBrowserSettingScope == FormLevel) || (gBrowserSettingScope == FormSetLevel)) &&
+ IsNvUpdateRequiredForFormSet (Selection->FormSet))
+ {
+ if (!ProcessChangedData (Selection, FormSetLevel)) {
return EFI_SUCCESS;
}
}
@@ -1415,48 +1436,50 @@ ProcessGotoOpCode (
//
// If target Hii Handle not found, exit current formset.
//
- FindParentFormSet(Selection);
+ FindParentFormSet (Selection);
return EFI_SUCCESS;
}
- CopyMem (&Selection->FormSetGuid,&Statement->HiiValue.Value.ref.FormSetGuid, sizeof (EFI_GUID));
- Selection->FormId = Statement->HiiValue.Value.ref.FormId;
+ CopyMem (&Selection->FormSetGuid, &Statement->HiiValue.Value.ref.FormSetGuid, sizeof (EFI_GUID));
+ Selection->FormId = Statement->HiiValue.Value.ref.FormId;
Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
} else if (!IsZeroGuid (&Statement->HiiValue.Value.ref.FormSetGuid)) {
if (Selection->Form->ModalForm) {
return Status;
}
+
if (!CompareGuid (&Statement->HiiValue.Value.ref.FormSetGuid, &Selection->FormSetGuid)) {
//
// Goto another Formset, check for uncommitted data
//
- if ((gBrowserSettingScope == FormLevel || gBrowserSettingScope == FormSetLevel) &&
- IsNvUpdateRequiredForFormSet(Selection->FormSet)) {
- if (!ProcessChangedData(Selection, FormSetLevel)) {
+ if (((gBrowserSettingScope == FormLevel) || (gBrowserSettingScope == FormSetLevel)) &&
+ IsNvUpdateRequiredForFormSet (Selection->FormSet))
+ {
+ if (!ProcessChangedData (Selection, FormSetLevel)) {
return EFI_SUCCESS;
}
}
}
Selection->Action = UI_ACTION_REFRESH_FORMSET;
- Selection->Handle = FormSetGuidToHiiHandle(&Statement->HiiValue.Value.ref.FormSetGuid);
+ Selection->Handle = FormSetGuidToHiiHandle (&Statement->HiiValue.Value.ref.FormSetGuid);
if (Selection->Handle == NULL) {
//
// If target Hii Handle not found, exit current formset.
//
- FindParentFormSet(Selection);
+ FindParentFormSet (Selection);
return EFI_SUCCESS;
}
CopyMem (&Selection->FormSetGuid, &Statement->HiiValue.Value.ref.FormSetGuid, sizeof (EFI_GUID));
- Selection->FormId = Statement->HiiValue.Value.ref.FormId;
+ Selection->FormId = Statement->HiiValue.Value.ref.FormId;
Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
} else if (Statement->HiiValue.Value.ref.FormId != 0) {
//
// Goto another Form, check for uncommitted data
//
if (Statement->HiiValue.Value.ref.FormId != Selection->FormId) {
- if ((gBrowserSettingScope == FormLevel && IsNvUpdateRequiredForForm(Selection->Form))) {
+ if (((gBrowserSettingScope == FormLevel) && IsNvUpdateRequiredForForm (Selection->Form))) {
if (!ProcessChangedData (Selection, FormLevel)) {
return EFI_SUCCESS;
}
@@ -1465,16 +1488,16 @@ ProcessGotoOpCode (
RefForm = IdToForm (Selection->FormSet, Statement->HiiValue.Value.ref.FormId);
if ((RefForm != NULL) && (RefForm->SuppressExpression != NULL)) {
- if (EvaluateExpressionList(RefForm->SuppressExpression, TRUE, Selection->FormSet, RefForm) != ExpressFalse) {
+ if (EvaluateExpressionList (RefForm->SuppressExpression, TRUE, Selection->FormSet, RefForm) != ExpressFalse) {
//
// Form is suppressed.
//
- PopupErrorMessage(BROWSER_FORM_SUPPRESS, NULL, NULL, NULL);
+ PopupErrorMessage (BROWSER_FORM_SUPPRESS, NULL, NULL, NULL);
return EFI_SUCCESS;
}
}
- Selection->FormId = Statement->HiiValue.Value.ref.FormId;
+ Selection->FormId = Statement->HiiValue.Value.ref.FormId;
Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
} else if (Statement->HiiValue.Value.ref.QuestionId != 0) {
Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
@@ -1483,7 +1506,6 @@ ProcessGotoOpCode (
return Status;
}
-
/**
Process Question Config.
@@ -1500,9 +1522,9 @@ ProcessQuestionConfig (
IN FORM_BROWSER_STATEMENT *Question
)
{
- EFI_STATUS Status;
- CHAR16 *ConfigResp;
- CHAR16 *Progress;
+ EFI_STATUS Status;
+ CHAR16 *ConfigResp;
+ CHAR16 *Progress;
if (Question->QuestionConfig == 0) {
return EFI_SUCCESS;
@@ -1522,10 +1544,10 @@ ProcessQuestionConfig (
// Send config to Configuration Driver
//
Status = mHiiConfigRouting->RouteConfig (
- mHiiConfigRouting,
- ConfigResp,
- &Progress
- );
+ mHiiConfigRouting,
+ ConfigResp,
+ &Progress
+ );
return Status;
}
@@ -1541,11 +1563,11 @@ ProcessQuestionConfig (
**/
EFI_STATUS
ProcessUserInput (
- IN USER_INPUT *UserInput
+ IN USER_INPUT *UserInput
)
{
- EFI_STATUS Status;
- FORM_BROWSER_STATEMENT *Statement;
+ EFI_STATUS Status;
+ FORM_BROWSER_STATEMENT *Statement;
Status = EFI_SUCCESS;
Statement = NULL;
@@ -1559,8 +1581,8 @@ ProcessUserInput (
// Remove the last highligh question id, this id will update when show next form.
//
gCurrentSelection->QuestionId = 0;
- if (UserInput->SelectedStatement != NULL){
- Statement = GetBrowserStatement(UserInput->SelectedStatement);
+ if (UserInput->SelectedStatement != NULL) {
+ Statement = GetBrowserStatement (UserInput->SelectedStatement);
ASSERT (Statement != NULL);
//
@@ -1583,77 +1605,79 @@ ProcessUserInput (
// First process the Action field in USER_INPUT.
//
if (UserInput->Action != 0) {
- Status = ProcessAction (UserInput->Action, UserInput->DefaultId);
+ Status = ProcessAction (UserInput->Action, UserInput->DefaultId);
gCurrentSelection->Statement = NULL;
} else {
ASSERT (Statement != NULL);
gCurrentSelection->Statement = Statement;
switch (Statement->Operand) {
- case EFI_IFR_REF_OP:
- Status = ProcessGotoOpCode(Statement, gCurrentSelection);
- break;
-
- case EFI_IFR_ACTION_OP:
- //
- // Process the Config string <ConfigResp>
- //
- Status = ProcessQuestionConfig (gCurrentSelection, Statement);
- break;
-
- case EFI_IFR_RESET_BUTTON_OP:
- //
- // Reset Question to default value specified by DefaultId
- //
- Status = ExtractDefault (gCurrentSelection->FormSet, NULL, Statement->DefaultId, FormSetLevel, GetDefaultForAll, NULL, FALSE, FALSE);
- UpdateStatementStatus (gCurrentSelection->FormSet, NULL, FormSetLevel);
- break;
-
- default:
- switch (Statement->Operand) {
- case EFI_IFR_STRING_OP:
- DeleteString(Statement->HiiValue.Value.string, gCurrentSelection->FormSet->HiiHandle);
- Statement->HiiValue.Value.string = UserInput->InputValue.Value.string;
- CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, (UINTN) UserInput->InputValue.BufferLen);
- FreePool (UserInput->InputValue.Buffer);
+ case EFI_IFR_REF_OP:
+ Status = ProcessGotoOpCode (Statement, gCurrentSelection);
break;
- case EFI_IFR_PASSWORD_OP:
- if (UserInput->InputValue.Buffer == NULL) {
- //
- // User not input new password, just return.
- //
- break;
- }
-
- DeleteString(Statement->HiiValue.Value.string, gCurrentSelection->FormSet->HiiHandle);
- Statement->HiiValue.Value.string = UserInput->InputValue.Value.string;
- CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, (UINTN) UserInput->InputValue.BufferLen);
- ZeroMem (UserInput->InputValue.Buffer, (UINTN) UserInput->InputValue.BufferLen);
- FreePool (UserInput->InputValue.Buffer);
+ case EFI_IFR_ACTION_OP:
//
- // Two password match, send it to Configuration Driver
+ // Process the Config string <ConfigResp>
//
- if ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != 0) {
- PasswordCheck (NULL, UserInput->SelectedStatement, (CHAR16 *) Statement->BufferValue);
- //
- // Clean the value after saved it.
- //
- ZeroMem (Statement->BufferValue, (UINTN) UserInput->InputValue.BufferLen);
- HiiSetString (gCurrentSelection->FormSet->HiiHandle, Statement->HiiValue.Value.string, (CHAR16*)Statement->BufferValue, NULL);
- } else {
- SetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithHiiDriver);
- }
+ Status = ProcessQuestionConfig (gCurrentSelection, Statement);
break;
- case EFI_IFR_ORDERED_LIST_OP:
- CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, UserInput->InputValue.BufferLen);
+ case EFI_IFR_RESET_BUTTON_OP:
+ //
+ // Reset Question to default value specified by DefaultId
+ //
+ Status = ExtractDefault (gCurrentSelection->FormSet, NULL, Statement->DefaultId, FormSetLevel, GetDefaultForAll, NULL, FALSE, FALSE);
+ UpdateStatementStatus (gCurrentSelection->FormSet, NULL, FormSetLevel);
break;
default:
- CopyMem (&Statement->HiiValue, &UserInput->InputValue, sizeof (EFI_HII_VALUE));
+ switch (Statement->Operand) {
+ case EFI_IFR_STRING_OP:
+ DeleteString (Statement->HiiValue.Value.string, gCurrentSelection->FormSet->HiiHandle);
+ Statement->HiiValue.Value.string = UserInput->InputValue.Value.string;
+ CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, (UINTN)UserInput->InputValue.BufferLen);
+ FreePool (UserInput->InputValue.Buffer);
+ break;
+
+ case EFI_IFR_PASSWORD_OP:
+ if (UserInput->InputValue.Buffer == NULL) {
+ //
+ // User not input new password, just return.
+ //
+ break;
+ }
+
+ DeleteString (Statement->HiiValue.Value.string, gCurrentSelection->FormSet->HiiHandle);
+ Statement->HiiValue.Value.string = UserInput->InputValue.Value.string;
+ CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, (UINTN)UserInput->InputValue.BufferLen);
+ ZeroMem (UserInput->InputValue.Buffer, (UINTN)UserInput->InputValue.BufferLen);
+ FreePool (UserInput->InputValue.Buffer);
+ //
+ // Two password match, send it to Configuration Driver
+ //
+ if ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != 0) {
+ PasswordCheck (NULL, UserInput->SelectedStatement, (CHAR16 *)Statement->BufferValue);
+ //
+ // Clean the value after saved it.
+ //
+ ZeroMem (Statement->BufferValue, (UINTN)UserInput->InputValue.BufferLen);
+ HiiSetString (gCurrentSelection->FormSet->HiiHandle, Statement->HiiValue.Value.string, (CHAR16 *)Statement->BufferValue, NULL);
+ } else {
+ SetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithHiiDriver);
+ }
+
+ break;
+
+ case EFI_IFR_ORDERED_LIST_OP:
+ CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, UserInput->InputValue.BufferLen);
+ break;
+
+ default:
+ CopyMem (&Statement->HiiValue, &UserInput->InputValue, sizeof (EFI_HII_VALUE));
+ break;
+ }
+
break;
- }
- break;
}
}
@@ -1672,9 +1696,9 @@ DisplayForm (
VOID
)
{
- EFI_STATUS Status;
- USER_INPUT UserInput;
- FORM_ENTRY_INFO *CurrentMenu;
+ EFI_STATUS Status;
+ USER_INPUT UserInput;
+ FORM_ENTRY_INFO *CurrentMenu;
ZeroMem (&UserInput, sizeof (USER_INPUT));
@@ -1686,15 +1710,19 @@ DisplayForm (
//
// Current menu not found, add it to the menu tree
//
- CurrentMenu = UiAddMenuList (gCurrentSelection->Handle, &gCurrentSelection->FormSetGuid,
- gCurrentSelection->FormId, gCurrentSelection->QuestionId);
+ CurrentMenu = UiAddMenuList (
+ gCurrentSelection->Handle,
+ &gCurrentSelection->FormSetGuid,
+ gCurrentSelection->FormId,
+ gCurrentSelection->QuestionId
+ );
ASSERT (CurrentMenu != NULL);
}
//
// Back up the form view history data for this form.
//
- UiCopyMenuList(&gCurrentSelection->Form->FormViewListHead, &mPrivateData.FormBrowserEx2.FormViewHistoryHead);
+ UiCopyMenuList (&gCurrentSelection->Form->FormViewListHead, &mPrivateData.FormBrowserEx2.FormViewHistoryHead);
gCurrentSelection->CurrentMenu = CurrentMenu;
@@ -1715,14 +1743,14 @@ DisplayForm (
ASSERT (gDisplayFormData.BrowserStatus == BROWSER_SUCCESS);
Status = mFormDisplay->FormDisplay (&gDisplayFormData, &UserInput);
if (EFI_ERROR (Status)) {
- FreeDisplayFormData();
+ FreeDisplayFormData ();
return Status;
}
- CheckConfigAccess(gCurrentSelection->FormSet);
+ CheckConfigAccess (gCurrentSelection->FormSet);
Status = ProcessUserInput (&UserInput);
- FreeDisplayFormData();
+ FreeDisplayFormData ();
return Status;
}
@@ -1755,15 +1783,15 @@ DisplayForm (
EFI_STATUS
EFIAPI
FormUpdateNotify (
- IN UINT8 PackageType,
- IN CONST EFI_GUID *PackageGuid,
- IN CONST EFI_HII_PACKAGE_HEADER *Package,
- IN EFI_HII_HANDLE Handle,
- IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
+ IN UINT8 PackageType,
+ IN CONST EFI_GUID *PackageGuid,
+ IN CONST EFI_HII_PACKAGE_HEADER *Package,
+ IN EFI_HII_HANDLE Handle,
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
)
{
mHiiPackageListUpdated = TRUE;
- mDynamicFormUpdated = TRUE;
+ mDynamicFormUpdated = TRUE;
return EFI_SUCCESS;
}
@@ -1779,9 +1807,9 @@ IsNvUpdateRequiredForFormSet (
IN FORM_BROWSER_FORMSET *FormSet
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORM *Form;
- BOOLEAN RetVal;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORM *Form;
+ BOOLEAN RetVal;
//
// Not finished question initialization, return FALSE.
@@ -1796,7 +1824,7 @@ IsNvUpdateRequiredForFormSet (
while (!IsNull (&FormSet->FormListHead, Link)) {
Form = FORM_BROWSER_FORM_FROM_LINK (Link);
- RetVal = IsNvUpdateRequiredForForm(Form);
+ RetVal = IsNvUpdateRequiredForForm (Form);
if (RetVal) {
break;
}
@@ -1815,7 +1843,7 @@ IsNvUpdateRequiredForFormSet (
**/
BOOLEAN
IsNvUpdateRequiredForForm (
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORM *Form
)
{
LIST_ENTRY *Link;
@@ -1850,20 +1878,20 @@ IsNvUpdateRequiredForForm (
**/
BOOLEAN
FindNextMenu (
- IN OUT UI_MENU_SELECTION *Selection,
- IN BROWSER_SETTING_SCOPE SettingLevel
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN BROWSER_SETTING_SCOPE SettingLevel
)
{
- FORM_ENTRY_INFO *CurrentMenu;
- FORM_ENTRY_INFO *ParentMenu;
- BROWSER_SETTING_SCOPE Scope;
+ FORM_ENTRY_INFO *CurrentMenu;
+ FORM_ENTRY_INFO *ParentMenu;
+ BROWSER_SETTING_SCOPE Scope;
CurrentMenu = Selection->CurrentMenu;
Scope = FormSetLevel;
- ParentMenu = UiFindParentMenu(CurrentMenu, SettingLevel);
- while (ParentMenu != NULL && !ValidateHiiHandle(ParentMenu->HiiHandle)) {
- ParentMenu = UiFindParentMenu(ParentMenu, SettingLevel);
+ ParentMenu = UiFindParentMenu (CurrentMenu, SettingLevel);
+ while (ParentMenu != NULL && !ValidateHiiHandle (ParentMenu->HiiHandle)) {
+ ParentMenu = UiFindParentMenu (ParentMenu, SettingLevel);
}
if (ParentMenu != NULL) {
@@ -1877,9 +1905,10 @@ FindNextMenu (
//
// Form Level Check whether the data is changed.
//
- if ((gBrowserSettingScope == FormLevel && IsNvUpdateRequiredForForm (Selection->Form)) ||
- (gBrowserSettingScope == FormSetLevel && IsNvUpdateRequiredForFormSet(Selection->FormSet) && Scope == FormSetLevel)) {
- if (!ProcessChangedData(Selection, gBrowserSettingScope)) {
+ if (((gBrowserSettingScope == FormLevel) && IsNvUpdateRequiredForForm (Selection->Form)) ||
+ ((gBrowserSettingScope == FormSetLevel) && IsNvUpdateRequiredForFormSet (Selection->FormSet) && (Scope == FormSetLevel)))
+ {
+ if (!ProcessChangedData (Selection, gBrowserSettingScope)) {
return FALSE;
}
}
@@ -1898,7 +1927,7 @@ FindNextMenu (
Selection->Statement = NULL;
- Selection->FormId = ParentMenu->FormId;
+ Selection->FormId = ParentMenu->FormId;
Selection->QuestionId = ParentMenu->QuestionId;
//
@@ -1927,14 +1956,14 @@ FindNextMenu (
**/
BOOLEAN
ReconnectController (
- IN EFI_HANDLE DriverHandle
+ IN EFI_HANDLE DriverHandle
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- Status = gBS->DisconnectController(DriverHandle, NULL, NULL);
+ Status = gBS->DisconnectController (DriverHandle, NULL, NULL);
if (!EFI_ERROR (Status)) {
- Status = gBS->ConnectController(DriverHandle, NULL, NULL, TRUE);
+ Status = gBS->ConnectController (DriverHandle, NULL, NULL, TRUE);
}
return Status == EFI_SUCCESS;
@@ -1958,12 +1987,12 @@ ReconnectController (
**/
EFI_STATUS
ProcessCallBackFunction (
- IN OUT UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question,
- IN EFI_BROWSER_ACTION Action,
- IN BOOLEAN SkipSaveOrDiscard
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN EFI_BROWSER_ACTION Action,
+ IN BOOLEAN SkipSaveOrDiscard
)
{
EFI_STATUS Status;
@@ -1982,7 +2011,7 @@ ProcessCallBackFunction (
UINT8 *BackUpBuffer;
CHAR16 *NewString;
- ConfigAccess = FormSet->ConfigAccess;
+ ConfigAccess = FormSet->ConfigAccess;
SubmitFormIsRequired = FALSE;
SettingLevel = FormSetLevel;
DiscardFormIsRequired = FALSE;
@@ -1998,7 +2027,7 @@ ProcessCallBackFunction (
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&Form->StatementListHead, Link);
+ Link = GetNextNode (&Form->StatementListHead, Link);
//
// if Question != NULL, only process the question. Else, process all question in this form.
@@ -2015,18 +2044,18 @@ ProcessCallBackFunction (
// Check whether Statement is disabled.
//
if (Statement->Expression != NULL) {
- if (EvaluateExpressionList(Statement->Expression, TRUE, FormSet, Form) == ExpressDisable) {
+ if (EvaluateExpressionList (Statement->Expression, TRUE, FormSet, Form) == ExpressDisable) {
continue;
}
}
- HiiValue = &Statement->HiiValue;
+ HiiValue = &Statement->HiiValue;
TypeValue = &HiiValue->Value;
if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
//
// For OrderedList, passing in the value buffer to Callback()
//
- TypeValue = (EFI_IFR_TYPE_VALUE *) Statement->BufferValue;
+ TypeValue = (EFI_IFR_TYPE_VALUE *)Statement->BufferValue;
}
//
@@ -2034,7 +2063,7 @@ ProcessCallBackFunction (
//
if (Action == EFI_BROWSER_ACTION_CHANGING) {
if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
- BackUpBuffer = AllocateCopyPool(Statement->StorageWidth, Statement->BufferValue);
+ BackUpBuffer = AllocateCopyPool (Statement->StorageWidth, Statement->BufferValue);
ASSERT (BackUpBuffer != NULL);
} else {
CopyMem (&BackUpValue, &HiiValue->Value, sizeof (EFI_IFR_TYPE_VALUE));
@@ -2042,14 +2071,14 @@ ProcessCallBackFunction (
}
ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
- Status = ConfigAccess->Callback (
- ConfigAccess,
- Action,
- Statement->QuestionId,
- HiiValue->Type,
- TypeValue,
- &ActionRequest
- );
+ Status = ConfigAccess->Callback (
+ ConfigAccess,
+ Action,
+ Statement->QuestionId,
+ HiiValue->Type,
+ TypeValue,
+ &ActionRequest
+ );
if (!EFI_ERROR (Status)) {
//
// Need to sync the value between Statement->HiiValue->Value and Statement->BufferValue
@@ -2065,6 +2094,7 @@ ProcessCallBackFunction (
} else {
CopyMem (Statement->BufferValue, NewString, Statement->StorageWidth);
}
+
FreePool (NewString);
}
@@ -2072,85 +2102,87 @@ ProcessCallBackFunction (
// Only for EFI_BROWSER_ACTION_CHANGED need to handle this ActionRequest.
//
switch (Action) {
- case EFI_BROWSER_ACTION_CHANGED:
- switch (ActionRequest) {
- case EFI_BROWSER_ACTION_REQUEST_RESET:
- DiscardFormIsRequired = TRUE;
- gResetRequiredFormLevel = TRUE;
- gResetRequiredSystemLevel = TRUE;
- NeedExit = TRUE;
- break;
-
- case EFI_BROWSER_ACTION_REQUEST_SUBMIT:
- SubmitFormIsRequired = TRUE;
- NeedExit = TRUE;
- break;
-
- case EFI_BROWSER_ACTION_REQUEST_EXIT:
- DiscardFormIsRequired = TRUE;
- NeedExit = TRUE;
- break;
-
- case EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT:
- SubmitFormIsRequired = TRUE;
- SettingLevel = FormLevel;
- NeedExit = TRUE;
- break;
-
- case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT:
- DiscardFormIsRequired = TRUE;
- SettingLevel = FormLevel;
- NeedExit = TRUE;
- break;
-
- case EFI_BROWSER_ACTION_REQUEST_FORM_APPLY:
- SubmitFormIsRequired = TRUE;
- SettingLevel = FormLevel;
- break;
+ case EFI_BROWSER_ACTION_CHANGED:
+ switch (ActionRequest) {
+ case EFI_BROWSER_ACTION_REQUEST_RESET:
+ DiscardFormIsRequired = TRUE;
+ gResetRequiredFormLevel = TRUE;
+ gResetRequiredSystemLevel = TRUE;
+ NeedExit = TRUE;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_SUBMIT:
+ SubmitFormIsRequired = TRUE;
+ NeedExit = TRUE;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_EXIT:
+ DiscardFormIsRequired = TRUE;
+ NeedExit = TRUE;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT:
+ SubmitFormIsRequired = TRUE;
+ SettingLevel = FormLevel;
+ NeedExit = TRUE;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT:
+ DiscardFormIsRequired = TRUE;
+ SettingLevel = FormLevel;
+ NeedExit = TRUE;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_FORM_APPLY:
+ SubmitFormIsRequired = TRUE;
+ SettingLevel = FormLevel;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD:
+ DiscardFormIsRequired = TRUE;
+ SettingLevel = FormLevel;
+ break;
+
+ case EFI_BROWSER_ACTION_REQUEST_RECONNECT:
+ gCallbackReconnect = TRUE;
+ break;
+
+ default:
+ break;
+ }
- case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD:
- DiscardFormIsRequired = TRUE;
- SettingLevel = FormLevel;
break;
- case EFI_BROWSER_ACTION_REQUEST_RECONNECT:
- gCallbackReconnect = TRUE;
- break;
+ case EFI_BROWSER_ACTION_CHANGING:
+ //
+ // Do the question validation.
+ //
+ Status = ValueChangedValidation (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement);
+ if (!EFI_ERROR (Status)) {
+ //
+ // check whether the question value changed compared with edit buffer before updating edit buffer
+ // if changed, set the ValueChanged flag to TRUE,in order to trig the CHANGED callback function
+ //
+ IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
+ //
+ // According the spec, return value from call back of "changing" and
+ // "retrieve" should update to the question's temp buffer.
+ //
+ SetQuestionValue (FormSet, Form, Statement, GetSetValueWithEditBuffer);
+ }
- default:
break;
- }
- break;
- case EFI_BROWSER_ACTION_CHANGING:
- //
- // Do the question validation.
- //
- Status = ValueChangedValidation (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement);
- if (!EFI_ERROR (Status)) {
- //
- //check whether the question value changed compared with edit buffer before updating edit buffer
- // if changed, set the ValueChanged flag to TRUE,in order to trig the CHANGED callback function
- //
- IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
+ case EFI_BROWSER_ACTION_RETRIEVE:
//
// According the spec, return value from call back of "changing" and
// "retrieve" should update to the question's temp buffer.
//
- SetQuestionValue(FormSet, Form, Statement, GetSetValueWithEditBuffer);
- }
- break;
-
- case EFI_BROWSER_ACTION_RETRIEVE:
- //
- // According the spec, return value from call back of "changing" and
- // "retrieve" should update to the question's temp buffer.
- //
- SetQuestionValue(FormSet, Form, Statement, GetSetValueWithEditBuffer);
- break;
+ SetQuestionValue (FormSet, Form, Statement, GetSetValueWithEditBuffer);
+ break;
- default:
- break;
+ default:
+ break;
}
} else {
//
@@ -2158,7 +2190,7 @@ ProcessCallBackFunction (
// then the browser will use the value passed to Callback() and ignore the
// value returned by Callback().
//
- if (Action == EFI_BROWSER_ACTION_CHANGING && Status == EFI_UNSUPPORTED) {
+ if ((Action == EFI_BROWSER_ACTION_CHANGING) && (Status == EFI_UNSUPPORTED)) {
if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
CopyMem (Statement->BufferValue, BackUpBuffer, Statement->StorageWidth);
} else {
@@ -2171,11 +2203,11 @@ ProcessCallBackFunction (
InternalStatus = ValueChangedValidation (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement);
if (!EFI_ERROR (InternalStatus)) {
//
- //check whether the question value changed compared with edit buffer before updating edit buffer
+ // check whether the question value changed compared with edit buffer before updating edit buffer
// if changed, set the ValueChanged flag to TRUE,in order to trig the CHANGED callback function
//
- IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
- SetQuestionValue(FormSet, Form, Statement, GetSetValueWithEditBuffer);
+ IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
+ SetQuestionValue (FormSet, Form, Statement, GetSetValueWithEditBuffer);
}
}
@@ -2183,16 +2215,16 @@ ProcessCallBackFunction (
// According the spec, return fail from call back of "changing" and
// "retrieve", should restore the question's value.
//
- if (Action == EFI_BROWSER_ACTION_CHANGING && Status != EFI_UNSUPPORTED) {
+ if ((Action == EFI_BROWSER_ACTION_CHANGING) && (Status != EFI_UNSUPPORTED)) {
if (Statement->Storage != NULL) {
- GetQuestionValue(FormSet, Form, Statement, GetSetValueWithEditBuffer);
+ GetQuestionValue (FormSet, Form, Statement, GetSetValueWithEditBuffer);
} else if ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != 0) {
ProcessCallBackFunction (Selection, FormSet, Form, Question, EFI_BROWSER_ACTION_RETRIEVE, FALSE);
}
}
if (Action == EFI_BROWSER_ACTION_RETRIEVE) {
- GetQuestionValue(FormSet, Form, Statement, GetSetValueWithEditBuffer);
+ GetQuestionValue (FormSet, Form, Statement, GetSetValueWithEditBuffer);
}
if (Status == EFI_UNSUPPORTED) {
@@ -2221,21 +2253,21 @@ ProcessCallBackFunction (
//
// Confirm changes with user first.
//
- if (IsNvUpdateRequiredForFormSet(FormSet)) {
- if (BROWSER_ACTION_DISCARD == PopupErrorMessage(BROWSER_RECONNECT_SAVE_CHANGES, NULL, NULL, NULL)) {
- gCallbackReconnect = FALSE;
+ if (IsNvUpdateRequiredForFormSet (FormSet)) {
+ if (BROWSER_ACTION_DISCARD == PopupErrorMessage (BROWSER_RECONNECT_SAVE_CHANGES, NULL, NULL, NULL)) {
+ gCallbackReconnect = FALSE;
DiscardFormIsRequired = TRUE;
} else {
SubmitFormIsRequired = TRUE;
}
} else {
- PopupErrorMessage(BROWSER_RECONNECT_REQUIRED, NULL, NULL, NULL);
+ PopupErrorMessage (BROWSER_RECONNECT_REQUIRED, NULL, NULL, NULL);
}
//
// Exit current formset before do the reconnect.
//
- NeedExit = TRUE;
+ NeedExit = TRUE;
SettingLevel = FormSetLevel;
}
@@ -2274,16 +2306,16 @@ ProcessRetrieveForQuestion (
IN FORM_BROWSER_FORMSET *FormSet
)
{
- EFI_STATUS Status;
- EFI_BROWSER_ACTION_REQUEST ActionRequest;
- EFI_HII_VALUE *HiiValue;
- EFI_IFR_TYPE_VALUE *TypeValue;
- CHAR16 *NewString;
+ EFI_STATUS Status;
+ EFI_BROWSER_ACTION_REQUEST ActionRequest;
+ EFI_HII_VALUE *HiiValue;
+ EFI_IFR_TYPE_VALUE *TypeValue;
+ CHAR16 *NewString;
- Status = EFI_SUCCESS;
- ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
+ Status = EFI_SUCCESS;
+ ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
- if (((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != EFI_IFR_FLAG_CALLBACK) || ConfigAccess == NULL) {
+ if (((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != EFI_IFR_FLAG_CALLBACK) || (ConfigAccess == NULL)) {
return EFI_UNSUPPORTED;
}
@@ -2293,19 +2325,19 @@ ProcessRetrieveForQuestion (
//
// For OrderedList, passing in the value buffer to Callback()
//
- TypeValue = (EFI_IFR_TYPE_VALUE *) Statement->BufferValue;
+ TypeValue = (EFI_IFR_TYPE_VALUE *)Statement->BufferValue;
}
ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
- Status = ConfigAccess->Callback (
- ConfigAccess,
- EFI_BROWSER_ACTION_RETRIEVE,
- Statement->QuestionId,
- HiiValue->Type,
- TypeValue,
- &ActionRequest
- );
- if (!EFI_ERROR (Status) && HiiValue->Type == EFI_IFR_TYPE_STRING) {
+ Status = ConfigAccess->Callback (
+ ConfigAccess,
+ EFI_BROWSER_ACTION_RETRIEVE,
+ Statement->QuestionId,
+ HiiValue->Type,
+ TypeValue,
+ &ActionRequest
+ );
+ if (!EFI_ERROR (Status) && (HiiValue->Type == EFI_IFR_TYPE_STRING)) {
NewString = GetToken (Statement->HiiValue.Value.string, FormSet->HiiHandle);
ASSERT (NewString != NULL);
@@ -2316,6 +2348,7 @@ ProcessRetrieveForQuestion (
} else {
CopyMem (Statement->BufferValue, NewString, Statement->StorageWidth);
}
+
FreePool (NewString);
}
@@ -2337,7 +2370,7 @@ ProcessRetrieveForQuestion (
**/
EFI_STATUS
SetupBrowser (
- IN OUT UI_MENU_SELECTION *Selection
+ IN OUT UI_MENU_SELECTION *Selection
)
{
EFI_STATUS Status;
@@ -2379,7 +2412,6 @@ SetupBrowser (
mCurFakeQestId = 0;
do {
-
//
// Reset Status to prevent the next break from returning incorrect error status.
//
@@ -2391,7 +2423,7 @@ SetupBrowser (
// EFI_BROWSER_ACTION_RETRIEVE, so code place here.
//
if (mHiiPackageListUpdated) {
- Selection->Action = UI_ACTION_REFRESH_FORMSET;
+ Selection->Action = UI_ACTION_REFRESH_FORMSET;
mHiiPackageListUpdated = FALSE;
break;
}
@@ -2405,7 +2437,7 @@ SetupBrowser (
//
Link = GetFirstNode (&Selection->FormSet->FormListHead);
- Selection->Form = FORM_BROWSER_FORM_FROM_LINK (Link);
+ Selection->Form = FORM_BROWSER_FORM_FROM_LINK (Link);
Selection->FormId = Selection->Form->FormId;
} else {
Selection->Form = IdToForm (Selection->FormSet, Selection->FormId);
@@ -2423,11 +2455,11 @@ SetupBrowser (
// Check Form is suppressed.
//
if (Selection->Form->SuppressExpression != NULL) {
- if (EvaluateExpressionList(Selection->Form->SuppressExpression, TRUE, Selection->FormSet, Selection->Form) == ExpressSuppress) {
+ if (EvaluateExpressionList (Selection->Form->SuppressExpression, TRUE, Selection->FormSet, Selection->Form) == ExpressSuppress) {
//
// Form is suppressed.
//
- PopupErrorMessage(BROWSER_FORM_SUPPRESS, NULL, NULL, NULL);
+ PopupErrorMessage (BROWSER_FORM_SUPPRESS, NULL, NULL, NULL);
Status = EFI_NOT_FOUND;
goto Done;
}
@@ -2439,8 +2471,9 @@ SetupBrowser (
// New form may be the first form, or the different form after another form close.
//
if (((Selection->Handle != mCurrentHiiHandle) ||
- (!CompareGuid (&Selection->FormSetGuid, &mCurrentFormSetGuid)) ||
- (Selection->FormId != mCurrentFormId))) {
+ (!CompareGuid (&Selection->FormSetGuid, &mCurrentFormSetGuid)) ||
+ (Selection->FormId != mCurrentFormId)))
+ {
//
// Update Retrieve flag.
//
@@ -2449,9 +2482,9 @@ SetupBrowser (
//
// Keep current form information
//
- mCurrentHiiHandle = Selection->Handle;
+ mCurrentHiiHandle = Selection->Handle;
CopyGuid (&mCurrentFormSetGuid, &Selection->FormSetGuid);
- mCurrentFormId = Selection->FormId;
+ mCurrentFormId = Selection->FormId;
if (ConfigAccess != NULL) {
Status = ProcessCallBackFunction (Selection, Selection->FormSet, Selection->Form, NULL, EFI_BROWSER_ACTION_FORM_OPEN, FALSE);
@@ -2463,7 +2496,7 @@ SetupBrowser (
// IFR is updated during callback of EFI_BROWSER_ACTION_FORM_OPEN, force to reparse the IFR binary
//
if (mHiiPackageListUpdated) {
- Selection->Action = UI_ACTION_REFRESH_FORMSET;
+ Selection->Action = UI_ACTION_REFRESH_FORMSET;
mHiiPackageListUpdated = FALSE;
break;
}
@@ -2494,7 +2527,7 @@ SetupBrowser (
// IFR is updated during callback of open form, force to reparse the IFR binary
//
if (mHiiPackageListUpdated) {
- Selection->Action = UI_ACTION_REFRESH_FORMSET;
+ Selection->Action = UI_ACTION_REFRESH_FORMSET;
mHiiPackageListUpdated = FALSE;
break;
}
@@ -2516,14 +2549,15 @@ SetupBrowser (
if (Statement != NULL) {
if ((ConfigAccess != NULL) &&
((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) &&
- (Statement->Operand != EFI_IFR_PASSWORD_OP)) {
- Status = ProcessCallBackFunction(Selection, Selection->FormSet, Selection->Form, Statement, EFI_BROWSER_ACTION_CHANGING, FALSE);
+ (Statement->Operand != EFI_IFR_PASSWORD_OP))
+ {
+ Status = ProcessCallBackFunction (Selection, Selection->FormSet, Selection->Form, Statement, EFI_BROWSER_ACTION_CHANGING, FALSE);
if (Statement->Operand == EFI_IFR_REF_OP) {
//
// Process dynamic update ref opcode.
//
if (!EFI_ERROR (Status)) {
- Status = ProcessGotoOpCode(Statement, Selection);
+ Status = ProcessGotoOpCode (Statement, Selection);
}
//
@@ -2535,25 +2569,25 @@ SetupBrowser (
//
Selection->Handle = mCurrentHiiHandle;
CopyMem (&Selection->FormSetGuid, &mCurrentFormSetGuid, sizeof (EFI_GUID));
- Selection->FormId = mCurrentFormId;
+ Selection->FormId = mCurrentFormId;
Selection->QuestionId = 0;
- Selection->Action = UI_ACTION_REFRESH_FORM;
+ Selection->Action = UI_ACTION_REFRESH_FORM;
}
}
-
if (!EFI_ERROR (Status) &&
(Statement->Operand != EFI_IFR_REF_OP) &&
- ((Statement->Storage == NULL) || (Statement->Storage != NULL && Statement->ValueChanged))) {
+ ((Statement->Storage == NULL) || ((Statement->Storage != NULL) && Statement->ValueChanged)))
+ {
//
// Only question value has been changed, browser will trig CHANGED callback.
//
- ProcessCallBackFunction(Selection, Selection->FormSet, Selection->Form, Statement, EFI_BROWSER_ACTION_CHANGED, FALSE);
+ ProcessCallBackFunction (Selection, Selection->FormSet, Selection->Form, Statement, EFI_BROWSER_ACTION_CHANGED, FALSE);
//
- //check whether the question value changed compared with buffer value
- //if doesn't change ,set the ValueChanged flag to FALSE ,in order not to display the "configuration changed "information on the screen
+ // check whether the question value changed compared with buffer value
+ // if doesn't change ,set the ValueChanged flag to FALSE ,in order not to display the "configuration changed "information on the screen
//
- IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer);
+ IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer);
}
} else {
//
@@ -2565,7 +2599,7 @@ SetupBrowser (
//
// Verify whether question value has checked, update the ValueChanged flag in Question.
//
- IsQuestionValueChanged(gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer);
+ IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer);
}
}
@@ -2574,9 +2608,10 @@ SetupBrowser (
// and process question success till here, trig the gResetFlag/gFlagReconnect.
//
if ((Status == EFI_SUCCESS) &&
- (Statement->Storage == NULL)) {
+ (Statement->Storage == NULL))
+ {
if ((Statement->QuestionFlags & EFI_IFR_FLAG_RESET_REQUIRED) != 0) {
- gResetRequiredFormLevel = TRUE;
+ gResetRequiredFormLevel = TRUE;
gResetRequiredSystemLevel = TRUE;
}
@@ -2591,17 +2626,17 @@ SetupBrowser (
//
if (gExitRequired) {
switch (gBrowserSettingScope) {
- case SystemLevel:
- Selection->Action = UI_ACTION_EXIT;
- break;
+ case SystemLevel:
+ Selection->Action = UI_ACTION_EXIT;
+ break;
- case FormSetLevel:
- case FormLevel:
- FindNextMenu (Selection, gBrowserSettingScope);
- break;
+ case FormSetLevel:
+ case FormLevel:
+ FindNextMenu (Selection, gBrowserSettingScope);
+ break;
- default:
- break;
+ default:
+ break;
}
gExitRequired = FALSE;
@@ -2615,8 +2650,8 @@ SetupBrowser (
((Selection->Action == UI_ACTION_EXIT) ||
(Selection->Handle != mCurrentHiiHandle) ||
(!CompareGuid (&Selection->FormSetGuid, &mCurrentFormSetGuid)) ||
- (Selection->FormId != mCurrentFormId))) {
-
+ (Selection->FormId != mCurrentFormId)))
+ {
Status = ProcessCallBackFunction (Selection, Selection->FormSet, Selection->Form, NULL, EFI_BROWSER_ACTION_FORM_CLOSE, FALSE);
if (EFI_ERROR (Status)) {
goto Done;
@@ -2628,7 +2663,7 @@ Done:
//
// Reset current form information to the initial setting when error happens or form exit.
//
- if (EFI_ERROR (Status) || Selection->Action == UI_ACTION_EXIT) {
+ if (EFI_ERROR (Status) || (Selection->Action == UI_ACTION_EXIT)) {
mCurrentHiiHandle = NULL;
CopyGuid (&mCurrentFormSetGuid, &gZeroGuid);
mCurrentFormId = 0;
@@ -2638,8 +2673,8 @@ Done:
// Unregister notify for Form package update
//
mHiiDatabase->UnregisterPackageNotify (
- mHiiDatabase,
- NotifyHandle
- );
+ mHiiDatabase,
+ NotifyHandle
+ );
return Status;
}
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
index d046472..fe0d46d 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
@@ -29,46 +29,46 @@ SETUP_DRIVER_PRIVATE_DATA mPrivateData = {
RegiserExitHandler,
IsBrowserDataModified,
ExecuteAction,
- {NULL,NULL},
- {NULL,NULL},
+ { NULL, NULL },
+ { NULL, NULL },
IsResetRequired
}
};
-EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
-EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
-EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *mPathFromText;
-EDKII_FORM_DISPLAY_ENGINE_PROTOCOL *mFormDisplay;
-
-UINTN gBrowserContextCount = 0;
-LIST_ENTRY gBrowserContextList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserContextList);
-LIST_ENTRY gBrowserFormSetList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserFormSetList);
-LIST_ENTRY gBrowserHotKeyList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserHotKeyList);
-LIST_ENTRY gBrowserStorageList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserStorageList);
-LIST_ENTRY gBrowserSaveFailFormSetList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserSaveFailFormSetList);
-
-BOOLEAN mSystemSubmit = FALSE;
-BOOLEAN gResetRequiredFormLevel;
-BOOLEAN gResetRequiredSystemLevel = FALSE;
-BOOLEAN gExitRequired;
-BOOLEAN gFlagReconnect;
-BOOLEAN gCallbackReconnect;
-BROWSER_SETTING_SCOPE gBrowserSettingScope = FormSetLevel;
-BOOLEAN mBrowserScopeFirstSet = TRUE;
-EXIT_HANDLER ExitHandlerFunction = NULL;
-FORM_BROWSER_FORMSET *mSystemLevelFormSet;
+EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
+EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
+EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *mPathFromText;
+EDKII_FORM_DISPLAY_ENGINE_PROTOCOL *mFormDisplay;
+
+UINTN gBrowserContextCount = 0;
+LIST_ENTRY gBrowserContextList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserContextList);
+LIST_ENTRY gBrowserFormSetList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserFormSetList);
+LIST_ENTRY gBrowserHotKeyList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserHotKeyList);
+LIST_ENTRY gBrowserStorageList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserStorageList);
+LIST_ENTRY gBrowserSaveFailFormSetList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserSaveFailFormSetList);
+
+BOOLEAN mSystemSubmit = FALSE;
+BOOLEAN gResetRequiredFormLevel;
+BOOLEAN gResetRequiredSystemLevel = FALSE;
+BOOLEAN gExitRequired;
+BOOLEAN gFlagReconnect;
+BOOLEAN gCallbackReconnect;
+BROWSER_SETTING_SCOPE gBrowserSettingScope = FormSetLevel;
+BOOLEAN mBrowserScopeFirstSet = TRUE;
+EXIT_HANDLER ExitHandlerFunction = NULL;
+FORM_BROWSER_FORMSET *mSystemLevelFormSet;
//
// Browser Global Strings
//
-CHAR16 *gEmptyString;
-CHAR16 *mUnknownString = L"!";
+CHAR16 *gEmptyString;
+CHAR16 *mUnknownString = L"!";
-extern EFI_GUID mCurrentFormSetGuid;
-extern EFI_HII_HANDLE mCurrentHiiHandle;
-extern UINT16 mCurrentFormId;
-extern FORM_DISPLAY_ENGINE_FORM gDisplayFormData;
-extern BOOLEAN mDynamicFormUpdated;
+extern EFI_GUID mCurrentFormSetGuid;
+extern EFI_HII_HANDLE mCurrentHiiHandle;
+extern UINT16 mCurrentFormId;
+extern FORM_DISPLAY_ENGINE_FORM gDisplayFormData;
+extern BOOLEAN mDynamicFormUpdated;
/**
Create a menu with specified formset GUID and form ID, and add it as a child
@@ -84,10 +84,10 @@ extern BOOLEAN mDynamicFormUpdated;
**/
FORM_ENTRY_INFO *
UiAddMenuList (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_GUID *FormSetGuid,
- IN UINT16 FormId,
- IN UINT16 QuestionId
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_GUID *FormSetGuid,
+ IN UINT16 FormId,
+ IN UINT16 QuestionId
)
{
FORM_ENTRY_INFO *MenuList;
@@ -99,7 +99,7 @@ UiAddMenuList (
MenuList->Signature = FORM_ENTRY_INFO_SIGNATURE;
- MenuList->HiiHandle = HiiHandle;
+ MenuList->HiiHandle = HiiHandle;
CopyMem (&MenuList->FormSetGuid, FormSetGuid, sizeof (EFI_GUID));
MenuList->FormId = FormId;
MenuList->QuestionId = QuestionId;
@@ -123,8 +123,8 @@ UiAddMenuList (
**/
EFI_FORM_ID
GetFirstFormId (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_GUID *FormSetGuid
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_GUID *FormSetGuid
)
{
LIST_ENTRY *Link;
@@ -148,22 +148,22 @@ GetFirstFormId (
**/
FORM_ENTRY_INFO *
UiFindMenuList (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_GUID *FormSetGuid,
- IN UINT16 FormId
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_GUID *FormSetGuid,
+ IN UINT16 FormId
)
{
- LIST_ENTRY *Link;
- FORM_ENTRY_INFO *MenuList;
- FORM_ENTRY_INFO *RetMenu;
- EFI_FORM_ID FirstFormId;
+ LIST_ENTRY *Link;
+ FORM_ENTRY_INFO *MenuList;
+ FORM_ENTRY_INFO *RetMenu;
+ EFI_FORM_ID FirstFormId;
RetMenu = NULL;
Link = GetFirstNode (&mPrivateData.FormBrowserEx2.FormViewHistoryHead);
while (!IsNull (&mPrivateData.FormBrowserEx2.FormViewHistoryHead, Link)) {
MenuList = FORM_ENTRY_INFO_FROM_LINK (Link);
- Link = GetNextNode (&mPrivateData.FormBrowserEx2.FormViewHistoryHead, Link);
+ Link = GetNextNode (&mPrivateData.FormBrowserEx2.FormViewHistoryHead, Link);
//
// If already find the menu, free the menus behind it.
@@ -186,9 +186,9 @@ UiFindMenuList (
} else if (CompareGuid (&MenuList->FormSetGuid, FormSetGuid)) {
if (MenuList->FormId == FormId) {
RetMenu = MenuList;
- } else if (FormId == 0 || MenuList->FormId == 0 ) {
+ } else if ((FormId == 0) || (MenuList->FormId == 0)) {
FirstFormId = GetFirstFormId (HiiHandle, FormSetGuid);
- if ((FormId == 0 && FirstFormId == MenuList->FormId) || (MenuList->FormId ==0 && FirstFormId == FormId)) {
+ if (((FormId == 0) && (FirstFormId == MenuList->FormId)) || ((MenuList->FormId == 0) && (FirstFormId == FormId))) {
RetMenu = MenuList;
}
}
@@ -212,12 +212,12 @@ UiFindMenuList (
**/
FORM_ENTRY_INFO *
UiFindParentMenu (
- IN FORM_ENTRY_INFO *CurrentMenu,
- IN BROWSER_SETTING_SCOPE SettingLevel
+ IN FORM_ENTRY_INFO *CurrentMenu,
+ IN BROWSER_SETTING_SCOPE SettingLevel
)
{
- FORM_ENTRY_INFO *ParentMenu;
- LIST_ENTRY *Link;
+ FORM_ENTRY_INFO *ParentMenu;
+ LIST_ENTRY *Link;
ASSERT (SettingLevel == FormLevel || SettingLevel == FormSetLevel);
@@ -266,10 +266,10 @@ UiFindParentMenu (
**/
VOID
UiFreeMenuList (
- LIST_ENTRY *MenuListHead
+ LIST_ENTRY *MenuListHead
)
{
- FORM_ENTRY_INFO *MenuList;
+ FORM_ENTRY_INFO *MenuList;
while (!IsListEmpty (MenuListHead)) {
MenuList = FORM_ENTRY_INFO_FROM_LINK (MenuListHead->ForwardLink);
@@ -288,13 +288,13 @@ UiFreeMenuList (
**/
VOID
UiCopyMenuList (
- OUT LIST_ENTRY *NewMenuListHead,
- IN LIST_ENTRY *CurrentMenuListHead
+ OUT LIST_ENTRY *NewMenuListHead,
+ IN LIST_ENTRY *CurrentMenuListHead
)
{
- LIST_ENTRY *Link;
- FORM_ENTRY_INFO *MenuList;
- FORM_ENTRY_INFO *NewMenuEntry;
+ LIST_ENTRY *Link;
+ FORM_ENTRY_INFO *MenuList;
+ FORM_ENTRY_INFO *NewMenuEntry;
//
// If new menu list not empty, free it first.
@@ -304,12 +304,12 @@ UiCopyMenuList (
Link = GetFirstNode (CurrentMenuListHead);
while (!IsNull (CurrentMenuListHead, Link)) {
MenuList = FORM_ENTRY_INFO_FROM_LINK (Link);
- Link = GetNextNode (CurrentMenuListHead, Link);
+ Link = GetNextNode (CurrentMenuListHead, Link);
NewMenuEntry = AllocateZeroPool (sizeof (FORM_ENTRY_INFO));
ASSERT (NewMenuEntry != NULL);
- NewMenuEntry->Signature = FORM_ENTRY_INFO_SIGNATURE;
- NewMenuEntry->HiiHandle = MenuList->HiiHandle;
+ NewMenuEntry->Signature = FORM_ENTRY_INFO_SIGNATURE;
+ NewMenuEntry->HiiHandle = MenuList->HiiHandle;
CopyMem (&NewMenuEntry->FormSetGuid, &MenuList->FormSetGuid, sizeof (EFI_GUID));
NewMenuEntry->FormId = MenuList->FormId;
NewMenuEntry->QuestionId = MenuList->QuestionId;
@@ -327,12 +327,12 @@ LoadAllHiiFormset (
VOID
)
{
- FORM_BROWSER_FORMSET *LocalFormSet;
- EFI_HII_HANDLE *HiiHandles;
- UINTN Index;
- EFI_GUID ZeroGuid;
- EFI_STATUS Status;
- FORM_BROWSER_FORMSET *OldFormset;
+ FORM_BROWSER_FORMSET *LocalFormSet;
+ EFI_HII_HANDLE *HiiHandles;
+ UINTN Index;
+ EFI_GUID ZeroGuid;
+ EFI_STATUS Status;
+ FORM_BROWSER_FORMSET *OldFormset;
OldFormset = mSystemLevelFormSet;
@@ -366,6 +366,7 @@ LoadAllHiiFormset (
DestroyFormSet (LocalFormSet);
continue;
}
+
InitializeCurrentSetting (LocalFormSet);
//
@@ -397,21 +398,21 @@ LoadAllHiiFormset (
**/
UINT32
PopupErrorMessage (
- IN UINT32 BrowserStatus,
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_IFR_OP_HEADER *OpCode OPTIONAL,
- IN CHAR16 *ErrorString
+ IN UINT32 BrowserStatus,
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_IFR_OP_HEADER *OpCode OPTIONAL,
+ IN CHAR16 *ErrorString
)
{
- FORM_DISPLAY_ENGINE_STATEMENT *Statement;
- USER_INPUT UserInputData;
+ FORM_DISPLAY_ENGINE_STATEMENT *Statement;
+ USER_INPUT UserInputData;
Statement = NULL;
if (OpCode != NULL) {
- Statement = AllocateZeroPool (sizeof(FORM_DISPLAY_ENGINE_STATEMENT));
+ Statement = AllocateZeroPool (sizeof (FORM_DISPLAY_ENGINE_STATEMENT));
ASSERT (Statement != NULL);
- Statement->OpCode = OpCode;
+ Statement->OpCode = OpCode;
gDisplayFormData.HighLightedStatement = Statement;
}
@@ -423,7 +424,7 @@ PopupErrorMessage (
gDisplayFormData.BrowserStatus = BrowserStatus;
if (HiiHandle != NULL) {
- gDisplayFormData.HiiHandle = HiiHandle;
+ gDisplayFormData.HiiHandle = HiiHandle;
}
mFormDisplay->FormDisplay (&gDisplayFormData, &UserInputData);
@@ -466,21 +467,21 @@ PopupErrorMessage (
EFI_STATUS
EFIAPI
SendForm (
- IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
- IN EFI_HII_HANDLE *Handles,
- IN UINTN HandleCount,
- IN EFI_GUID *FormSetGuid OPTIONAL,
- IN UINT16 FormId OPTIONAL,
- IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions OPTIONAL,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
+ IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
+ IN EFI_HII_HANDLE *Handles,
+ IN UINTN HandleCount,
+ IN EFI_GUID *FormSetGuid OPTIONAL,
+ IN UINT16 FormId OPTIONAL,
+ IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions OPTIONAL,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
)
{
- EFI_STATUS Status;
- UI_MENU_SELECTION *Selection;
- UINTN Index;
- FORM_BROWSER_FORMSET *FormSet;
- FORM_ENTRY_INFO *MenuList;
- BOOLEAN RetVal;
+ EFI_STATUS Status;
+ UI_MENU_SELECTION *Selection;
+ UINTN Index;
+ FORM_BROWSER_FORMSET *FormSet;
+ FORM_ENTRY_INFO *MenuList;
+ BOOLEAN RetVal;
//
// If EDKII_FORM_DISPLAY_ENGINE_PROTOCOL not found, return EFI_UNSUPPORTED.
@@ -495,13 +496,13 @@ SendForm (
//
SaveBrowserContext ();
- gFlagReconnect = FALSE;
- gResetRequiredFormLevel = FALSE;
- gExitRequired = FALSE;
- gCallbackReconnect = FALSE;
- Status = EFI_SUCCESS;
- gEmptyString = L"";
- gDisplayFormData.ScreenDimensions = (EFI_SCREEN_DESCRIPTOR *) ScreenDimensions;
+ gFlagReconnect = FALSE;
+ gResetRequiredFormLevel = FALSE;
+ gExitRequired = FALSE;
+ gCallbackReconnect = FALSE;
+ Status = EFI_SUCCESS;
+ gEmptyString = L"";
+ gDisplayFormData.ScreenDimensions = (EFI_SCREEN_DESCRIPTOR *)ScreenDimensions;
for (Index = 0; Index < HandleCount; Index++) {
Selection = AllocateZeroPool (sizeof (UI_MENU_SELECTION));
@@ -523,7 +524,7 @@ SendForm (
// Validate the HiiHandle
// if validate failed, find the first validate parent HiiHandle.
//
- if (!ValidateHiiHandle(Selection->Handle)) {
+ if (!ValidateHiiHandle (Selection->Handle)) {
FindNextMenu (Selection, FormSetLevel);
}
@@ -535,7 +536,8 @@ SendForm (
DestroyFormSet (FormSet);
break;
}
- Selection->FormSet = FormSet;
+
+ Selection->FormSet = FormSet;
mSystemLevelFormSet = FormSet;
mDynamicFormUpdated = FALSE;
@@ -546,7 +548,7 @@ SendForm (
Status = SetupBrowser (Selection);
- gCurrentSelection = NULL;
+ gCurrentSelection = NULL;
mSystemLevelFormSet = NULL;
//
@@ -556,9 +558,10 @@ SendForm (
if (!mDynamicFormUpdated && (gFlagReconnect || gCallbackReconnect)) {
RetVal = ReconnectController (FormSet->DriverHandle);
if (!RetVal) {
- PopupErrorMessage(BROWSER_RECONNECT_FAIL, NULL, NULL, NULL);
+ PopupErrorMessage (BROWSER_RECONNECT_FAIL, NULL, NULL, NULL);
}
- gFlagReconnect = FALSE;
+
+ gFlagReconnect = FALSE;
gCallbackReconnect = FALSE;
}
@@ -566,7 +569,7 @@ SendForm (
// If no data is changed, don't need to save current FormSet into the maintain list.
//
if (!IsNvUpdateRequiredForFormSet (FormSet)) {
- CleanBrowserStorage(FormSet);
+ CleanBrowserStorage (FormSet);
RemoveEntryList (&FormSet->Link);
DestroyFormSet (FormSet);
}
@@ -586,7 +589,7 @@ SendForm (
}
}
- mFormDisplay->ExitDisplay();
+ mFormDisplay->ExitDisplay ();
//
// Clear the menu history data.
@@ -625,19 +628,19 @@ SendForm (
**/
EFI_STATUS
ProcessStorage (
- IN OUT UINTN *ResultsDataSize,
- IN OUT EFI_STRING *ResultsData,
- IN BOOLEAN RetrieveData,
- IN BROWSER_STORAGE *Storage
+ IN OUT UINTN *ResultsDataSize,
+ IN OUT EFI_STRING *ResultsData,
+ IN BOOLEAN RetrieveData,
+ IN BROWSER_STORAGE *Storage
)
{
- CHAR16 *ConfigResp;
- EFI_STATUS Status;
- CHAR16 *StrPtr;
- UINTN BufferSize;
- UINTN TmpSize;
- UINTN MaxLen;
- FORMSET_STORAGE *BrowserStorage;
+ CHAR16 *ConfigResp;
+ EFI_STATUS Status;
+ CHAR16 *StrPtr;
+ UINTN BufferSize;
+ UINTN TmpSize;
+ UINTN MaxLen;
+ FORMSET_STORAGE *BrowserStorage;
if (RetrieveData) {
//
@@ -654,8 +657,8 @@ ProcessStorage (
//
StrPtr = StrStr (ConfigResp, L"PATH");
ASSERT (StrPtr != NULL);
- StrPtr = StrStr (StrPtr, L"&");
- StrPtr += 1;
+ StrPtr = StrStr (StrPtr, L"&");
+ StrPtr += 1;
BufferSize = StrSize (StrPtr);
//
@@ -673,9 +676,9 @@ ProcessStorage (
//
BrowserStorage = GetFstStgFromBrsStg (Storage);
ASSERT (BrowserStorage != NULL);
- TmpSize = StrLen (*ResultsData);
+ TmpSize = StrLen (*ResultsData);
BufferSize = (TmpSize + StrLen (BrowserStorage->ConfigHdr) + 2) * sizeof (CHAR16);
- MaxLen = BufferSize / sizeof (CHAR16);
+ MaxLen = BufferSize / sizeof (CHAR16);
ConfigResp = AllocateZeroPool (BufferSize);
ASSERT (ConfigResp != NULL);
@@ -734,14 +737,14 @@ BrowserCallback (
IN CONST CHAR16 *VariableName OPTIONAL
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- BROWSER_STORAGE *Storage;
- FORMSET_STORAGE *FormsetStorage;
- UINTN TotalSize;
- BOOLEAN Found;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ BROWSER_STORAGE *Storage;
+ FORMSET_STORAGE *FormsetStorage;
+ UINTN TotalSize;
+ BOOLEAN Found;
- if (ResultsDataSize == NULL || ResultsData == NULL) {
+ if ((ResultsDataSize == NULL) || (ResultsData == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -757,16 +760,17 @@ BrowserCallback (
Link = GetFirstNode (&gBrowserStorageList);
while (!IsNull (&gBrowserStorageList, Link)) {
Storage = BROWSER_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserStorageList, Link);
+ Link = GetNextNode (&gBrowserStorageList, Link);
//
// Check the current storage.
//
- if (!CompareGuid (&Storage->Guid, (EFI_GUID *) VariableGuid)) {
+ if (!CompareGuid (&Storage->Guid, (EFI_GUID *)VariableGuid)) {
continue;
}
- if (Storage->Type == EFI_HII_VARSTORE_BUFFER ||
- Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ if ((Storage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
//
// Buffer storage require both GUID and Name
//
@@ -774,14 +778,15 @@ BrowserCallback (
return EFI_NOT_FOUND;
}
- if (StrCmp (Storage->Name, (CHAR16 *) VariableName) != 0) {
+ if (StrCmp (Storage->Name, (CHAR16 *)VariableName) != 0) {
continue;
}
}
- if (Storage->Type == EFI_HII_VARSTORE_NAME_VALUE ||
- Storage->Type == EFI_HII_VARSTORE_BUFFER) {
- if (mSystemLevelFormSet == NULL || mSystemLevelFormSet->HiiHandle == NULL) {
+ if ((Storage->Type == EFI_HII_VARSTORE_NAME_VALUE) ||
+ (Storage->Type == EFI_HII_VARSTORE_BUFFER))
+ {
+ if ((mSystemLevelFormSet == NULL) || (mSystemLevelFormSet->HiiHandle == NULL)) {
return EFI_NOT_FOUND;
}
@@ -835,15 +840,13 @@ BrowserCallback (
}
if (RetrieveData) {
- Status = TotalSize <= *ResultsDataSize ? EFI_SUCCESS : EFI_BUFFER_TOO_SMALL;
+ Status = TotalSize <= *ResultsDataSize ? EFI_SUCCESS : EFI_BUFFER_TOO_SMALL;
*ResultsDataSize = TotalSize;
}
return Status;
-
}
-
/**
Callback function for SimpleTextInEx protocol install events
@@ -854,8 +857,8 @@ BrowserCallback (
VOID
EFIAPI
FormDisplayCallback (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
if (mFormDisplay != NULL) {
@@ -863,10 +866,10 @@ FormDisplayCallback (
}
gBS->LocateProtocol (
- &gEdkiiFormDisplayEngineProtocolGuid,
- NULL,
- (VOID **) &mFormDisplay
- );
+ &gEdkiiFormDisplayEngineProtocolGuid,
+ NULL,
+ (VOID **)&mFormDisplay
+ );
}
/**
@@ -882,12 +885,12 @@ FormDisplayCallback (
EFI_STATUS
EFIAPI
InitializeSetup (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- VOID *Registration;
+ EFI_STATUS Status;
+ VOID *Registration;
//
// Locate required Hii relative protocols
@@ -895,33 +898,33 @@ InitializeSetup (
Status = gBS->LocateProtocol (
&gEfiHiiDatabaseProtocolGuid,
NULL,
- (VOID **) &mHiiDatabase
+ (VOID **)&mHiiDatabase
);
ASSERT_EFI_ERROR (Status);
Status = gBS->LocateProtocol (
&gEfiHiiConfigRoutingProtocolGuid,
NULL,
- (VOID **) &mHiiConfigRouting
+ (VOID **)&mHiiConfigRouting
);
ASSERT_EFI_ERROR (Status);
Status = gBS->LocateProtocol (
&gEfiDevicePathFromTextProtocolGuid,
NULL,
- (VOID **) &mPathFromText
+ (VOID **)&mPathFromText
);
//
// Install FormBrowser2 protocol
//
mPrivateData.Handle = NULL;
- Status = gBS->InstallProtocolInterface (
- &mPrivateData.Handle,
- &gEfiFormBrowser2ProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mPrivateData.FormBrowser2
- );
+ Status = gBS->InstallProtocolInterface (
+ &mPrivateData.Handle,
+ &gEfiFormBrowser2ProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mPrivateData.FormBrowser2
+ );
ASSERT_EFI_ERROR (Status);
//
@@ -930,12 +933,12 @@ InitializeSetup (
InitializeListHead (&mPrivateData.FormBrowserEx2.FormViewHistoryHead);
InitializeListHead (&mPrivateData.FormBrowserEx2.OverrideQestListHead);
mPrivateData.Handle = NULL;
- Status = gBS->InstallProtocolInterface (
- &mPrivateData.Handle,
- &gEdkiiFormBrowserEx2ProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mPrivateData.FormBrowserEx2
- );
+ Status = gBS->InstallProtocolInterface (
+ &mPrivateData.Handle,
+ &gEdkiiFormBrowserEx2ProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mPrivateData.FormBrowserEx2
+ );
ASSERT_EFI_ERROR (Status);
Status = gBS->InstallProtocolInterface (
@@ -951,7 +954,7 @@ InitializeSetup (
Status = gBS->LocateProtocol (
&gEdkiiFormDisplayEngineProtocolGuid,
NULL,
- (VOID **) &mFormDisplay
+ (VOID **)&mFormDisplay
);
if (EFI_ERROR (Status)) {
@@ -967,7 +970,6 @@ InitializeSetup (
return EFI_SUCCESS;
}
-
/**
Create a new string in HII Package List.
@@ -980,8 +982,8 @@ InitializeSetup (
**/
EFI_STRING_ID
NewString (
- IN CHAR16 *String,
- IN EFI_HII_HANDLE HiiHandle
+ IN CHAR16 *String,
+ IN EFI_HII_HANDLE HiiHandle
)
{
EFI_STRING_ID StringId;
@@ -992,7 +994,6 @@ NewString (
return StringId;
}
-
/**
Delete a string from HII Package List.
@@ -1004,8 +1005,8 @@ NewString (
**/
EFI_STATUS
DeleteString (
- IN EFI_STRING_ID StringId,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID StringId,
+ IN EFI_HII_HANDLE HiiHandle
)
{
CHAR16 NullChar;
@@ -1015,7 +1016,6 @@ DeleteString (
return EFI_SUCCESS;
}
-
/**
Get the string based on the StringId and HII Package List Handle.
@@ -1028,8 +1028,8 @@ DeleteString (
**/
CHAR16 *
GetToken (
- IN EFI_STRING_ID Token,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID Token,
+ IN EFI_HII_HANDLE HiiHandle
)
{
EFI_STRING String;
@@ -1043,9 +1043,9 @@ GetToken (
String = AllocateCopyPool (StrSize (mUnknownString), mUnknownString);
ASSERT (String != NULL);
}
- return (CHAR16 *) String;
-}
+ return (CHAR16 *)String;
+}
/**
Allocate new memory and then copy the Unicode string Source to Destination.
@@ -1056,18 +1056,18 @@ GetToken (
**/
VOID
NewStringCpy (
- IN OUT CHAR16 **Dest,
- IN CHAR16 *Src
+ IN OUT CHAR16 **Dest,
+ IN CHAR16 *Src
)
{
if (*Dest != NULL) {
FreePool (*Dest);
}
+
*Dest = AllocateCopyPool (StrSize (Src), Src);
ASSERT (*Dest != NULL);
}
-
/**
Allocate new memory and concatinate Source on the end of Destination.
@@ -1077,8 +1077,8 @@ NewStringCpy (
**/
VOID
NewStringCat (
- IN OUT CHAR16 **Dest,
- IN CHAR16 *Src
+ IN OUT CHAR16 **Dest,
+ IN CHAR16 *Src
)
{
CHAR16 *NewString;
@@ -1089,7 +1089,7 @@ NewStringCat (
return;
}
- MaxLen = ( StrSize (*Dest) + StrSize (Src) - 1) / sizeof (CHAR16);
+ MaxLen = (StrSize (*Dest) + StrSize (Src) - 1) / sizeof (CHAR16);
NewString = AllocateZeroPool (MaxLen * sizeof (CHAR16));
ASSERT (NewString != NULL);
@@ -1114,16 +1114,16 @@ NewStringCat (
**/
EFI_STATUS
GetValueByName (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *Name,
- IN OUT CHAR16 **Value,
- IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *Name,
+ IN OUT CHAR16 **Value,
+ IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
)
{
- LIST_ENTRY *Link;
- NAME_VALUE_NODE *Node;
+ LIST_ENTRY *Link;
+ NAME_VALUE_NODE *Node;
- if (GetValueFrom != GetSetValueWithEditBuffer && GetValueFrom != GetSetValueWithBuffer) {
+ if ((GetValueFrom != GetSetValueWithEditBuffer) && (GetValueFrom != GetSetValueWithBuffer)) {
return EFI_INVALID_PARAMETER;
}
@@ -1139,6 +1139,7 @@ GetValueByName (
} else {
NewStringCpy (Value, Node->Value);
}
+
return EFI_SUCCESS;
}
@@ -1148,7 +1149,6 @@ GetValueByName (
return EFI_NOT_FOUND;
}
-
/**
Set Value of given Name in a NameValue Storage.
@@ -1164,18 +1164,18 @@ GetValueByName (
**/
EFI_STATUS
SetValueByName (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *Name,
- IN CHAR16 *Value,
- IN GET_SET_QUESTION_VALUE_WITH SetValueTo,
- OUT NAME_VALUE_NODE **ReturnNode
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *Name,
+ IN CHAR16 *Value,
+ IN GET_SET_QUESTION_VALUE_WITH SetValueTo,
+ OUT NAME_VALUE_NODE **ReturnNode
)
{
- LIST_ENTRY *Link;
- NAME_VALUE_NODE *Node;
- CHAR16 *Buffer;
+ LIST_ENTRY *Link;
+ NAME_VALUE_NODE *Node;
+ CHAR16 *Buffer;
- if (SetValueTo != GetSetValueWithEditBuffer && SetValueTo != GetSetValueWithBuffer) {
+ if ((SetValueTo != GetSetValueWithEditBuffer) && (SetValueTo != GetSetValueWithBuffer)) {
return EFI_INVALID_PARAMETER;
}
@@ -1189,9 +1189,11 @@ SetValueByName (
} else {
Buffer = Node->Value;
}
+
if (Buffer != NULL) {
FreePool (Buffer);
}
+
Buffer = AllocateCopyPool (StrSize (Value), Value);
ASSERT (Buffer != NULL);
if (SetValueTo == GetSetValueWithEditBuffer) {
@@ -1213,7 +1215,6 @@ SetValueByName (
return EFI_NOT_FOUND;
}
-
/**
Convert setting of Buffer Storage or NameValue Storage to <ConfigResp>.
@@ -1228,69 +1229,70 @@ SetValueByName (
**/
EFI_STATUS
StorageToConfigResp (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 **ConfigResp,
- IN CHAR16 *ConfigRequest,
- IN BOOLEAN GetEditBuf
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 **ConfigResp,
+ IN CHAR16 *ConfigRequest,
+ IN BOOLEAN GetEditBuf
)
{
- EFI_STATUS Status;
- EFI_STRING Progress;
- LIST_ENTRY *Link;
- NAME_VALUE_NODE *Node;
- UINT8 *SourceBuf;
- FORMSET_STORAGE *FormsetStorage;
+ EFI_STATUS Status;
+ EFI_STRING Progress;
+ LIST_ENTRY *Link;
+ NAME_VALUE_NODE *Node;
+ UINT8 *SourceBuf;
+ FORMSET_STORAGE *FormsetStorage;
Status = EFI_SUCCESS;
switch (Storage->Type) {
- case EFI_HII_VARSTORE_BUFFER:
- case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
- SourceBuf = GetEditBuf ? Storage->EditBuffer : Storage->Buffer;
- Status = mHiiConfigRouting->BlockToConfig (
- mHiiConfigRouting,
- ConfigRequest,
- SourceBuf,
- Storage->Size,
- ConfigResp,
- &Progress
- );
- break;
-
- case EFI_HII_VARSTORE_NAME_VALUE:
- *ConfigResp = NULL;
- FormsetStorage = GetFstStgFromBrsStg(Storage);
- ASSERT (FormsetStorage != NULL);
- NewStringCat (ConfigResp, FormsetStorage->ConfigHdr);
-
- Link = GetFirstNode (&Storage->NameValueListHead);
- while (!IsNull (&Storage->NameValueListHead, Link)) {
- Node = NAME_VALUE_NODE_FROM_LINK (Link);
+ case EFI_HII_VARSTORE_BUFFER:
+ case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
+ SourceBuf = GetEditBuf ? Storage->EditBuffer : Storage->Buffer;
+ Status = mHiiConfigRouting->BlockToConfig (
+ mHiiConfigRouting,
+ ConfigRequest,
+ SourceBuf,
+ Storage->Size,
+ ConfigResp,
+ &Progress
+ );
+ break;
- if (StrStr (ConfigRequest, Node->Name) != NULL) {
- NewStringCat (ConfigResp, L"&");
- NewStringCat (ConfigResp, Node->Name);
- NewStringCat (ConfigResp, L"=");
- if (GetEditBuf) {
- NewStringCat (ConfigResp, Node->EditValue);
- } else {
- NewStringCat (ConfigResp, Node->Value);
+ case EFI_HII_VARSTORE_NAME_VALUE:
+ *ConfigResp = NULL;
+ FormsetStorage = GetFstStgFromBrsStg (Storage);
+ ASSERT (FormsetStorage != NULL);
+ NewStringCat (ConfigResp, FormsetStorage->ConfigHdr);
+
+ Link = GetFirstNode (&Storage->NameValueListHead);
+ while (!IsNull (&Storage->NameValueListHead, Link)) {
+ Node = NAME_VALUE_NODE_FROM_LINK (Link);
+
+ if (StrStr (ConfigRequest, Node->Name) != NULL) {
+ NewStringCat (ConfigResp, L"&");
+ NewStringCat (ConfigResp, Node->Name);
+ NewStringCat (ConfigResp, L"=");
+ if (GetEditBuf) {
+ NewStringCat (ConfigResp, Node->EditValue);
+ } else {
+ NewStringCat (ConfigResp, Node->Value);
+ }
}
+
+ Link = GetNextNode (&Storage->NameValueListHead, Link);
}
- Link = GetNextNode (&Storage->NameValueListHead, Link);
- }
- break;
- case EFI_HII_VARSTORE_EFI_VARIABLE:
- default:
- Status = EFI_INVALID_PARAMETER;
- break;
+ break;
+
+ case EFI_HII_VARSTORE_EFI_VARIABLE:
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ break;
}
return Status;
}
-
/**
Convert <ConfigResp> to settings in Buffer Storage or NameValue Storage.
@@ -1303,8 +1305,8 @@ StorageToConfigResp (
**/
EFI_STATUS
ConfigRespToStorage (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *ConfigResp
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *ConfigResp
)
{
EFI_STATUS Status;
@@ -1317,53 +1319,57 @@ ConfigRespToStorage (
Status = EFI_SUCCESS;
switch (Storage->Type) {
- case EFI_HII_VARSTORE_BUFFER:
- case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
- BufferSize = Storage->Size;
- Status = mHiiConfigRouting->ConfigToBlock (
- mHiiConfigRouting,
- ConfigResp,
- Storage->EditBuffer,
- &BufferSize,
- &Progress
- );
- break;
-
- case EFI_HII_VARSTORE_NAME_VALUE:
- StrPtr = StrStr (ConfigResp, L"PATH");
- if (StrPtr == NULL) {
+ case EFI_HII_VARSTORE_BUFFER:
+ case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
+ BufferSize = Storage->Size;
+ Status = mHiiConfigRouting->ConfigToBlock (
+ mHiiConfigRouting,
+ ConfigResp,
+ Storage->EditBuffer,
+ &BufferSize,
+ &Progress
+ );
break;
- }
- StrPtr = StrStr (ConfigResp, L"&");
- while (StrPtr != NULL) {
- //
- // Skip '&'
- //
- StrPtr = StrPtr + 1;
- Name = StrPtr;
- StrPtr = StrStr (StrPtr, L"=");
+
+ case EFI_HII_VARSTORE_NAME_VALUE:
+ StrPtr = StrStr (ConfigResp, L"PATH");
if (StrPtr == NULL) {
break;
}
- *StrPtr = 0;
- //
- // Skip '='
- //
- StrPtr = StrPtr + 1;
- Value = StrPtr;
- StrPtr = StrStr (StrPtr, L"&");
- if (StrPtr != NULL) {
+ StrPtr = StrStr (ConfigResp, L"&");
+ while (StrPtr != NULL) {
+ //
+ // Skip '&'
+ //
+ StrPtr = StrPtr + 1;
+ Name = StrPtr;
+ StrPtr = StrStr (StrPtr, L"=");
+ if (StrPtr == NULL) {
+ break;
+ }
+
*StrPtr = 0;
+
+ //
+ // Skip '='
+ //
+ StrPtr = StrPtr + 1;
+ Value = StrPtr;
+ StrPtr = StrStr (StrPtr, L"&");
+ if (StrPtr != NULL) {
+ *StrPtr = 0;
+ }
+
+ SetValueByName (Storage, Name, Value, GetSetValueWithEditBuffer, NULL);
}
- SetValueByName (Storage, Name, Value, GetSetValueWithEditBuffer, NULL);
- }
- break;
- case EFI_HII_VARSTORE_EFI_VARIABLE:
- default:
- Status = EFI_INVALID_PARAMETER;
- break;
+ break;
+
+ case EFI_HII_VARSTORE_EFI_VARIABLE:
+ default:
+ Status = EFI_INVALID_PARAMETER;
+ break;
}
return Status;
@@ -1379,19 +1385,19 @@ ConfigRespToStorage (
**/
VOID
GetBitsQuestionValue (
- IN FORM_BROWSER_STATEMENT *Question,
- IN UINT8 *Buffer
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN UINT8 *Buffer
)
{
- UINTN StartBit;
- UINTN EndBit;
- UINT32 RetVal;
- UINT32 BufferValue;
+ UINTN StartBit;
+ UINTN EndBit;
+ UINT32 RetVal;
+ UINT32 BufferValue;
StartBit = Question->BitVarOffset % 8;
- EndBit = StartBit + Question->BitStorageWidth - 1;
+ EndBit = StartBit + Question->BitStorageWidth - 1;
- CopyMem ((UINT8 *) &BufferValue, Buffer, Question->StorageWidth);
+ CopyMem ((UINT8 *)&BufferValue, Buffer, Question->StorageWidth);
RetVal = BitFieldRead32 (BufferValue, StartBit, EndBit);
@@ -1400,7 +1406,7 @@ GetBitsQuestionValue (
// Note: Since Question with BufferValue (orderedlist, password, string)are not supported to refer bit field.
// Only oneof/checkbox/oneof can support bit field.So we can copy the value to the Hiivalue of Question directly.
//
- CopyMem ((UINT8 *) &Question->HiiValue.Value, (UINT8 *) &RetVal, Question->StorageWidth);
+ CopyMem ((UINT8 *)&Question->HiiValue.Value, (UINT8 *)&RetVal, Question->StorageWidth);
}
/**
@@ -1414,24 +1420,24 @@ GetBitsQuestionValue (
**/
VOID
SetBitsQuestionValue (
- IN FORM_BROWSER_STATEMENT *Question,
- IN OUT UINT8 *Buffer,
- IN UINT32 Value
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN OUT UINT8 *Buffer,
+ IN UINT32 Value
)
{
- UINT32 Operand;
- UINTN StartBit;
- UINTN EndBit;
- UINT32 RetVal;
+ UINT32 Operand;
+ UINTN StartBit;
+ UINTN EndBit;
+ UINT32 RetVal;
StartBit = Question->BitVarOffset % 8;
- EndBit = StartBit + Question->BitStorageWidth - 1;
+ EndBit = StartBit + Question->BitStorageWidth - 1;
- CopyMem ((UINT8*) &Operand, Buffer, Question->StorageWidth);
+ CopyMem ((UINT8 *)&Operand, Buffer, Question->StorageWidth);
RetVal = BitFieldWrite32 (Operand, StartBit, EndBit, Value);
- CopyMem (Buffer, (UINT8*) &RetVal, Question->StorageWidth);
+ CopyMem (Buffer, (UINT8 *)&RetVal, Question->StorageWidth);
}
/**
@@ -1445,29 +1451,30 @@ SetBitsQuestionValue (
**/
EFI_STATUS
BufferToValue (
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN CHAR16 *Value
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN CHAR16 *Value
)
{
- CHAR16 *StringPtr;
- BOOLEAN IsBufferStorage;
- CHAR16 *DstBuf;
- CHAR16 TempChar;
- UINTN LengthStr;
- UINT8 *Dst;
- CHAR16 TemStr[5];
- UINTN Index;
- UINT8 DigitUint8;
- BOOLEAN IsString;
- UINTN Length;
- EFI_STATUS Status;
- UINT8 *Buffer;
+ CHAR16 *StringPtr;
+ BOOLEAN IsBufferStorage;
+ CHAR16 *DstBuf;
+ CHAR16 TempChar;
+ UINTN LengthStr;
+ UINT8 *Dst;
+ CHAR16 TemStr[5];
+ UINTN Index;
+ UINT8 DigitUint8;
+ BOOLEAN IsString;
+ UINTN Length;
+ EFI_STATUS Status;
+ UINT8 *Buffer;
Buffer = NULL;
- IsString = (BOOLEAN) ((Question->HiiValue.Type == EFI_IFR_TYPE_STRING) ? TRUE : FALSE);
- if (Question->Storage->Type == EFI_HII_VARSTORE_BUFFER ||
- Question->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ IsString = (BOOLEAN)((Question->HiiValue.Type == EFI_IFR_TYPE_STRING) ? TRUE : FALSE);
+ if ((Question->Storage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Question->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
IsBufferStorage = TRUE;
} else {
IsBufferStorage = FALSE;
@@ -1490,9 +1497,10 @@ BufferToValue (
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
+
Dst = Buffer;
} else {
- Dst = (UINT8 *) &Question->HiiValue.Value;
+ Dst = (UINT8 *)&Question->HiiValue.Value;
}
}
@@ -1503,7 +1511,8 @@ BufferToValue (
while (*StringPtr != L'\0' && *StringPtr != L'&') {
StringPtr++;
}
- TempChar = *StringPtr;
+
+ TempChar = *StringPtr;
*StringPtr = L'\0';
LengthStr = StrLen (Value);
@@ -1514,44 +1523,45 @@ BufferToValue (
// So the maximum value string length of a question is : Question->StorageWidth * 2.
// If the value string length > Question->StorageWidth * 2, only set the string length as Question->StorageWidth * 2, then convert.
//
- if (LengthStr > (UINTN) Question->StorageWidth * 2) {
- Length = (UINTN) Question->StorageWidth * 2;
+ if (LengthStr > (UINTN)Question->StorageWidth * 2) {
+ Length = (UINTN)Question->StorageWidth * 2;
} else {
Length = LengthStr;
}
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
if (!IsBufferStorage && IsString) {
//
// Convert Config String to Unicode String, e.g "0041004200430044" => "ABCD"
// Add string tail char L'\0' into Length
//
- DstBuf = (CHAR16 *) Dst;
+ DstBuf = (CHAR16 *)Dst;
ZeroMem (TemStr, sizeof (TemStr));
for (Index = 0; Index < Length; Index += 4) {
StrnCpyS (TemStr, sizeof (TemStr) / sizeof (CHAR16), Value + Index, 4);
- DstBuf[Index/4] = (CHAR16) StrHexToUint64 (TemStr);
+ DstBuf[Index/4] = (CHAR16)StrHexToUint64 (TemStr);
}
+
//
// Add tailing L'\0' character
//
DstBuf[Index/4] = L'\0';
} else {
ZeroMem (TemStr, sizeof (TemStr));
- for (Index = 0; Index < Length; Index ++) {
- TemStr[0] = Value[LengthStr - Index - 1];
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);
+ for (Index = 0; Index < Length; Index++) {
+ TemStr[0] = Value[LengthStr - Index - 1];
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);
if ((Index & 1) == 0) {
- Dst [Index/2] = DigitUint8;
+ Dst[Index/2] = DigitUint8;
} else {
- Dst [Index/2] = (UINT8) ((DigitUint8 << 4) + Dst [Index/2]);
+ Dst[Index/2] = (UINT8)((DigitUint8 << 4) + Dst[Index/2]);
}
}
}
*StringPtr = TempChar;
- if (Buffer != NULL && Question->QuestionReferToBitField) {
+ if ((Buffer != NULL) && Question->QuestionReferToBitField) {
GetBitsQuestionValue (Question, Buffer);
FreePool (Buffer);
}
@@ -1572,10 +1582,10 @@ BufferToValue (
**/
EFI_STATUS
GetQuestionValue (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
)
{
EFI_STATUS Status;
@@ -1618,21 +1628,25 @@ GetQuestionValue (
CopyMem (Question->HiiValue.Buffer, Question->ValueExpression->Result.Buffer, Question->StorageWidth);
Question->HiiValue.BufferLen = Question->StorageWidth;
}
+
FreePool (Question->ValueExpression->Result.Buffer);
}
+
Question->HiiValue.Type = Question->ValueExpression->Result.Type;
CopyMem (&Question->HiiValue.Value, &Question->ValueExpression->Result.Value, sizeof (EFI_IFR_TYPE_VALUE));
}
+
return Status;
}
//
// Get question value by read expression.
//
- if (Question->ReadExpression != NULL && Form->FormType == STANDARD_MAP_FORM_TYPE) {
+ if ((Question->ReadExpression != NULL) && (Form->FormType == STANDARD_MAP_FORM_TYPE)) {
Status = EvaluateExpression (FormSet, Form, Question->ReadExpression);
if (!EFI_ERROR (Status) &&
- ((Question->ReadExpression->Result.Type < EFI_IFR_TYPE_OTHER) || (Question->ReadExpression->Result.Type == EFI_IFR_TYPE_BUFFER))) {
+ ((Question->ReadExpression->Result.Type < EFI_IFR_TYPE_OTHER) || (Question->ReadExpression->Result.Type == EFI_IFR_TYPE_BUFFER)))
+ {
//
// Only update question value to the valid result.
//
@@ -1645,8 +1659,10 @@ GetQuestionValue (
CopyMem (Question->HiiValue.Buffer, Question->ReadExpression->Result.Buffer, Question->StorageWidth);
Question->HiiValue.BufferLen = Question->StorageWidth;
}
+
FreePool (Question->ReadExpression->Result.Buffer);
}
+
Question->HiiValue.Type = Question->ReadExpression->Result.Type;
CopyMem (&Question->HiiValue.Value, &Question->ReadExpression->Result.Value, sizeof (EFI_IFR_TYPE_VALUE));
return EFI_SUCCESS;
@@ -1656,35 +1672,35 @@ GetQuestionValue (
//
// Question value is provided by RTC
//
- Storage = Question->Storage;
+ Storage = Question->Storage;
QuestionValue = &Question->HiiValue.Value;
if (Storage == NULL) {
//
// It's a Question without storage, or RTC date/time
//
- if (Question->Operand == EFI_IFR_DATE_OP || Question->Operand == EFI_IFR_TIME_OP) {
+ if ((Question->Operand == EFI_IFR_DATE_OP) || (Question->Operand == EFI_IFR_TIME_OP)) {
//
// Date and time define the same Flags bit
//
switch (Question->Flags & EFI_QF_DATE_STORAGE) {
- case QF_DATE_STORAGE_TIME:
- Status = gRT->GetTime (&EfiTime, NULL);
- break;
+ case QF_DATE_STORAGE_TIME:
+ Status = gRT->GetTime (&EfiTime, NULL);
+ break;
- case QF_DATE_STORAGE_WAKEUP:
- Status = gRT->GetWakeupTime (&Enabled, &Pending, &EfiTime);
- break;
+ case QF_DATE_STORAGE_WAKEUP:
+ Status = gRT->GetWakeupTime (&Enabled, &Pending, &EfiTime);
+ break;
- case QF_DATE_STORAGE_NORMAL:
- default:
- //
- // For date/time without storage
- //
- return EFI_SUCCESS;
+ case QF_DATE_STORAGE_NORMAL:
+ default:
+ //
+ // For date/time without storage
+ //
+ return EFI_SUCCESS;
}
if (EFI_ERROR (Status)) {
- if (Question->Operand == EFI_IFR_DATE_OP){
+ if (Question->Operand == EFI_IFR_DATE_OP) {
QuestionValue->date.Year = 0xff;
QuestionValue->date.Month = 0xff;
QuestionValue->date.Day = 0xff;
@@ -1693,6 +1709,7 @@ GetQuestionValue (
QuestionValue->time.Minute = 0xff;
QuestionValue->time.Second = 0xff;
}
+
return EFI_SUCCESS;
}
@@ -1718,16 +1735,16 @@ GetQuestionValue (
if (Question->BufferValue != NULL) {
Dst = Question->BufferValue;
} else {
- Dst = (UINT8 *) QuestionValue;
+ Dst = (UINT8 *)QuestionValue;
}
Status = gRT->GetVariable (
- Question->VariableName,
- &Storage->Guid,
- NULL,
- &StorageWidth,
- Dst
- );
+ Question->VariableName,
+ &Storage->Guid,
+ NULL,
+ &StorageWidth,
+ Dst
+ );
//
// Always return success, even this EFI variable doesn't exist
//
@@ -1746,16 +1763,18 @@ GetQuestionValue (
//
// Other type of Questions
//
- Dst = (UINT8 *) &Question->HiiValue.Value;
+ Dst = (UINT8 *)&Question->HiiValue.Value;
}
- if (Storage->Type == EFI_HII_VARSTORE_BUFFER ||
- Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ if ((Storage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
IsBufferStorage = TRUE;
} else {
IsBufferStorage = FALSE;
}
- if (GetValueFrom == GetSetValueWithEditBuffer || GetValueFrom == GetSetValueWithBuffer ) {
+
+ if ((GetValueFrom == GetSetValueWithEditBuffer) || (GetValueFrom == GetSetValueWithBuffer)) {
if (IsBufferStorage) {
if (GetValueFrom == GetSetValueWithEditBuffer) {
//
@@ -1779,7 +1798,7 @@ GetQuestionValue (
}
}
} else {
- Value = NULL;
+ Value = NULL;
Status = GetValueByName (Storage, Question->VariableName, &Value, GetValueFrom);
if (EFI_ERROR (Status)) {
return Status;
@@ -1790,21 +1809,22 @@ GetQuestionValue (
FreePool (Value);
}
} else {
- FormsetStorage = GetFstStgFromVarId(FormSet, Question->VarStoreId);
+ FormsetStorage = GetFstStgFromVarId (FormSet, Question->VarStoreId);
ASSERT (FormsetStorage != NULL);
//
// <ConfigRequest> ::= <ConfigHdr> + <BlockName> ||
// <ConfigHdr> + "&" + <VariableName>
//
if (IsBufferStorage) {
- Length = StrLen (FormsetStorage->ConfigHdr);
+ Length = StrLen (FormsetStorage->ConfigHdr);
Length += StrLen (Question->BlockName);
} else {
- Length = StrLen (FormsetStorage->ConfigHdr);
+ Length = StrLen (FormsetStorage->ConfigHdr);
Length += StrLen (Question->VariableName) + 1;
}
+
// Allocate buffer include '\0'
- MaxLen = Length + 1;
+ MaxLen = Length + 1;
ConfigRequest = AllocateZeroPool (MaxLen * sizeof (CHAR16));
ASSERT (ConfigRequest != NULL);
@@ -1820,11 +1840,11 @@ GetQuestionValue (
// Request current settings from Configuration Driver
//
Status = mHiiConfigRouting->ExtractConfig (
- mHiiConfigRouting,
- ConfigRequest,
- &Progress,
- &Result
- );
+ mHiiConfigRouting,
+ ConfigRequest,
+ &Progress,
+ &Result
+ );
FreePool (ConfigRequest);
if (EFI_ERROR (Status)) {
return Status;
@@ -1839,6 +1859,7 @@ GetQuestionValue (
FreePool (Result);
return EFI_NOT_FOUND;
}
+
//
// Skip "&VALUE"
//
@@ -1846,10 +1867,12 @@ GetQuestionValue (
} else {
Value = Result + Length;
}
+
if (*Value != '=') {
FreePool (Result);
return EFI_NOT_FOUND;
}
+
//
// Skip '=', point to value
//
@@ -1878,7 +1901,6 @@ GetQuestionValue (
return Status;
}
-
/**
Save Question Value to edit copy(cached) or Storage(uncached).
@@ -1892,10 +1914,10 @@ GetQuestionValue (
**/
EFI_STATUS
SetQuestionValue (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN GET_SET_QUESTION_VALUE_WITH SetValueTo
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN GET_SET_QUESTION_VALUE_WITH SetValueTo
)
{
EFI_STATUS Status;
@@ -1938,7 +1960,7 @@ SetQuestionValue (
//
// Before set question value, evaluate its write expression.
//
- if (Question->WriteExpression != NULL && Form->FormType == STANDARD_MAP_FORM_TYPE) {
+ if ((Question->WriteExpression != NULL) && (Form->FormType == STANDARD_MAP_FORM_TYPE)) {
Status = EvaluateExpression (FormSet, Form, Question->WriteExpression);
if (EFI_ERROR (Status)) {
return Status;
@@ -1948,31 +1970,31 @@ SetQuestionValue (
//
// Question value is provided by RTC
//
- Storage = Question->Storage;
+ Storage = Question->Storage;
QuestionValue = &Question->HiiValue.Value;
if (Storage == NULL) {
//
// It's a Question without storage, or RTC date/time
//
- if (Question->Operand == EFI_IFR_DATE_OP || Question->Operand == EFI_IFR_TIME_OP) {
+ if ((Question->Operand == EFI_IFR_DATE_OP) || (Question->Operand == EFI_IFR_TIME_OP)) {
//
// Date and time define the same Flags bit
//
switch (Question->Flags & EFI_QF_DATE_STORAGE) {
- case QF_DATE_STORAGE_TIME:
- Status = gRT->GetTime (&EfiTime, NULL);
- break;
+ case QF_DATE_STORAGE_TIME:
+ Status = gRT->GetTime (&EfiTime, NULL);
+ break;
- case QF_DATE_STORAGE_WAKEUP:
- Status = gRT->GetWakeupTime (&Enabled, &Pending, &EfiTime);
- break;
+ case QF_DATE_STORAGE_WAKEUP:
+ Status = gRT->GetWakeupTime (&Enabled, &Pending, &EfiTime);
+ break;
- case QF_DATE_STORAGE_NORMAL:
- default:
- //
- // For date/time without storage
- //
- return EFI_SUCCESS;
+ case QF_DATE_STORAGE_NORMAL:
+ default:
+ //
+ // For date/time without storage
+ //
+ return EFI_SUCCESS;
}
if (EFI_ERROR (Status)) {
@@ -2007,16 +2029,16 @@ SetQuestionValue (
if (Question->BufferValue != NULL) {
Src = Question->BufferValue;
} else {
- Src = (UINT8 *) QuestionValue;
+ Src = (UINT8 *)QuestionValue;
}
Status = gRT->SetVariable (
- Question->VariableName,
- &Storage->Guid,
- Storage->Attributes,
- StorageWidth,
- Src
- );
+ Question->VariableName,
+ &Storage->Guid,
+ Storage->Attributes,
+ StorageWidth,
+ Src
+ );
return Status;
}
@@ -2026,18 +2048,20 @@ SetQuestionValue (
if (Question->BufferValue != NULL) {
Src = Question->BufferValue;
} else {
- Src = (UINT8 *) &Question->HiiValue.Value;
+ Src = (UINT8 *)&Question->HiiValue.Value;
}
- if (Storage->Type == EFI_HII_VARSTORE_BUFFER ||
- Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
+ if ((Storage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
IsBufferStorage = TRUE;
} else {
IsBufferStorage = FALSE;
}
- IsString = (BOOLEAN) ((Question->HiiValue.Type == EFI_IFR_TYPE_STRING) ? TRUE : FALSE);
- if (SetValueTo == GetSetValueWithEditBuffer || SetValueTo == GetSetValueWithBuffer) {
+ IsString = (BOOLEAN)((Question->HiiValue.Type == EFI_IFR_TYPE_STRING) ? TRUE : FALSE);
+
+ if ((SetValueTo == GetSetValueWithEditBuffer) || (SetValueTo == GetSetValueWithBuffer)) {
if (IsBufferStorage) {
if (SetValueTo == GetSetValueWithEditBuffer) {
//
@@ -2065,16 +2089,16 @@ SetQuestionValue (
//
// Allocate enough string buffer.
//
- Value = NULL;
- BufferLen = ((StrLen ((CHAR16 *) Src) * 4) + 1) * sizeof (CHAR16);
- Value = AllocateZeroPool (BufferLen);
+ Value = NULL;
+ BufferLen = ((StrLen ((CHAR16 *)Src) * 4) + 1) * sizeof (CHAR16);
+ Value = AllocateZeroPool (BufferLen);
ASSERT (Value != NULL);
//
// Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"
//
- TemName = (CHAR16 *) Src;
+ TemName = (CHAR16 *)Src;
TemString = Value;
- for (; *TemName != L'\0'; TemName++) {
+ for ( ; *TemName != L'\0'; TemName++) {
UnicodeValueToStringS (
TemString,
BufferLen - ((UINTN)TemString - (UINTN)Value),
@@ -2086,14 +2110,14 @@ SetQuestionValue (
}
} else {
BufferLen = StorageWidth * 2 + 1;
- Value = AllocateZeroPool (BufferLen * sizeof (CHAR16));
+ Value = AllocateZeroPool (BufferLen * sizeof (CHAR16));
ASSERT (Value != NULL);
//
// Convert Buffer to Hex String
//
TemBuffer = Src + StorageWidth - 1;
TemString = Value;
- for (Index = 0; Index < StorageWidth; Index ++, TemBuffer --) {
+ for (Index = 0; Index < StorageWidth; Index++, TemBuffer--) {
UnicodeValueToStringS (
TemString,
BufferLen * sizeof (CHAR16) - ((UINTN)TemString - (UINTN)Value),
@@ -2121,14 +2145,16 @@ SetQuestionValue (
} else {
Length = StrLen (Question->VariableName) + 2;
}
+
if (!IsBufferStorage && IsString) {
- Length += (StrLen ((CHAR16 *) Src) * 4);
+ Length += (StrLen ((CHAR16 *)Src) * 4);
} else {
Length += (StorageWidth * 2);
}
- FormsetStorage = GetFstStgFromVarId(FormSet, Question->VarStoreId);
+
+ FormsetStorage = GetFstStgFromVarId (FormSet, Question->VarStoreId);
ASSERT (FormsetStorage != NULL);
- MaxLen = StrLen (FormsetStorage->ConfigHdr) + Length + 1;
+ MaxLen = StrLen (FormsetStorage->ConfigHdr) + Length + 1;
ConfigResp = AllocateZeroPool (MaxLen * sizeof (CHAR16));
ASSERT (ConfigResp != NULL);
@@ -2148,9 +2174,9 @@ SetQuestionValue (
//
// Convert Unicode String to Config String, e.g. "ABCD" => "0041004200430044"
//
- TemName = (CHAR16 *) Src;
+ TemName = (CHAR16 *)Src;
TemString = Value;
- for (; *TemName != L'\0'; TemName++) {
+ for ( ; *TemName != L'\0'; TemName++) {
UnicodeValueToStringS (
TemString,
MaxLen * sizeof (CHAR16) - ((UINTN)TemString - (UINTN)ConfigResp),
@@ -2166,7 +2192,7 @@ SetQuestionValue (
//
TemBuffer = Src + StorageWidth - 1;
TemString = Value;
- for (Index = 0; Index < StorageWidth; Index ++, TemBuffer --) {
+ for (Index = 0; Index < StorageWidth; Index++, TemBuffer--) {
UnicodeValueToStringS (
TemString,
MaxLen * sizeof (CHAR16) - ((UINTN)TemString - (UINTN)ConfigResp),
@@ -2182,8 +2208,8 @@ SetQuestionValue (
// Convert to lower char.
//
for (TemString = Value; *Value != L'\0'; Value++) {
- if (*Value >= L'A' && *Value <= L'Z') {
- *Value = (CHAR16) (*Value - L'A' + L'a');
+ if ((*Value >= L'A') && (*Value <= L'Z')) {
+ *Value = (CHAR16)(*Value - L'A' + L'a');
}
}
@@ -2191,14 +2217,15 @@ SetQuestionValue (
// Submit Question Value to Configuration Driver
//
Status = mHiiConfigRouting->RouteConfig (
- mHiiConfigRouting,
- ConfigResp,
- &Progress
- );
+ mHiiConfigRouting,
+ ConfigResp,
+ &Progress
+ );
if (EFI_ERROR (Status)) {
FreePool (ConfigResp);
return Status;
}
+
FreePool (ConfigResp);
//
@@ -2210,7 +2237,6 @@ SetQuestionValue (
return Status;
}
-
/**
Perform nosubmitif check for a Form.
@@ -2225,38 +2251,38 @@ SetQuestionValue (
**/
EFI_STATUS
ValidateQuestion (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question,
- IN UINTN Type
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN UINTN Type
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- LIST_ENTRY *ListHead;
- FORM_EXPRESSION *Expression;
- UINT32 BrowserStatus;
- CHAR16 *ErrorStr;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *ListHead;
+ FORM_EXPRESSION *Expression;
+ UINT32 BrowserStatus;
+ CHAR16 *ErrorStr;
BrowserStatus = BROWSER_SUCCESS;
ErrorStr = NULL;
switch (Type) {
- case EFI_HII_EXPRESSION_INCONSISTENT_IF:
- ListHead = &Question->InconsistentListHead;
- break;
+ case EFI_HII_EXPRESSION_INCONSISTENT_IF:
+ ListHead = &Question->InconsistentListHead;
+ break;
- case EFI_HII_EXPRESSION_WARNING_IF:
- ListHead = &Question->WarningListHead;
- break;
+ case EFI_HII_EXPRESSION_WARNING_IF:
+ ListHead = &Question->WarningListHead;
+ break;
- case EFI_HII_EXPRESSION_NO_SUBMIT_IF:
- ListHead = &Question->NoSubmitListHead;
- break;
+ case EFI_HII_EXPRESSION_NO_SUBMIT_IF:
+ ListHead = &Question->NoSubmitListHead;
+ break;
- default:
- ASSERT (FALSE);
- return EFI_UNSUPPORTED;
+ default:
+ ASSERT (FALSE);
+ return EFI_UNSUPPORTED;
}
Link = GetFirstNode (ListHead);
@@ -2273,28 +2299,29 @@ ValidateQuestion (
if (IsTrue (&Expression->Result)) {
switch (Type) {
- case EFI_HII_EXPRESSION_INCONSISTENT_IF:
- BrowserStatus = BROWSER_INCONSISTENT_IF;
- break;
+ case EFI_HII_EXPRESSION_INCONSISTENT_IF:
+ BrowserStatus = BROWSER_INCONSISTENT_IF;
+ break;
- case EFI_HII_EXPRESSION_WARNING_IF:
- BrowserStatus = BROWSER_WARNING_IF;
- break;
+ case EFI_HII_EXPRESSION_WARNING_IF:
+ BrowserStatus = BROWSER_WARNING_IF;
+ break;
- case EFI_HII_EXPRESSION_NO_SUBMIT_IF:
- BrowserStatus = BROWSER_NO_SUBMIT_IF;
- //
- // This code only used to compatible with old display engine,
- // New display engine will not use this field.
- //
- if (Expression->Error != 0) {
- ErrorStr = GetToken (Expression->Error, FormSet->HiiHandle);
- }
- break;
+ case EFI_HII_EXPRESSION_NO_SUBMIT_IF:
+ BrowserStatus = BROWSER_NO_SUBMIT_IF;
+ //
+ // This code only used to compatible with old display engine,
+ // New display engine will not use this field.
+ //
+ if (Expression->Error != 0) {
+ ErrorStr = GetToken (Expression->Error, FormSet->HiiHandle);
+ }
- default:
- ASSERT (FALSE);
- break;
+ break;
+
+ default:
+ ASSERT (FALSE);
+ break;
}
if (!((Type == EFI_HII_EXPRESSION_NO_SUBMIT_IF) && mSystemSubmit)) {
@@ -2302,7 +2329,7 @@ ValidateQuestion (
// If in system submit process and for no_submit_if check, not popup this error message.
// Will process this fail again later in not system submit process.
//
- PopupErrorMessage(BrowserStatus, FormSet->HiiHandle, Expression->OpCode, ErrorStr);
+ PopupErrorMessage (BrowserStatus, FormSet->HiiHandle, Expression->OpCode, ErrorStr);
}
if (ErrorStr != NULL) {
@@ -2338,12 +2365,12 @@ ValidateQuestion (
**/
EFI_STATUS
ValueChangedValidation (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = EFI_SUCCESS;
@@ -2380,9 +2407,9 @@ ValueChangedValidation (
**/
EFI_STATUS
NoSubmitCheck (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN OUT FORM_BROWSER_FORM **CurrentForm,
- OUT FORM_BROWSER_STATEMENT **Statement
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN OUT FORM_BROWSER_FORM **CurrentForm,
+ OUT FORM_BROWSER_STATEMENT **Statement
)
{
EFI_STATUS Status;
@@ -2393,24 +2420,26 @@ NoSubmitCheck (
LinkForm = GetFirstNode (&FormSet->FormListHead);
while (!IsNull (&FormSet->FormListHead, LinkForm)) {
- Form = FORM_BROWSER_FORM_FROM_LINK (LinkForm);
+ Form = FORM_BROWSER_FORM_FROM_LINK (LinkForm);
LinkForm = GetNextNode (&FormSet->FormListHead, LinkForm);
- if (*CurrentForm != NULL && *CurrentForm != Form) {
+ if ((*CurrentForm != NULL) && (*CurrentForm != Form)) {
continue;
}
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Status = ValidateQuestion (FormSet, Form, Question, EFI_HII_EXPRESSION_NO_SUBMIT_IF);
+ Status = ValidateQuestion (FormSet, Form, Question, EFI_HII_EXPRESSION_NO_SUBMIT_IF);
if (EFI_ERROR (Status)) {
if (*CurrentForm == NULL) {
*CurrentForm = Form;
}
+
if (Statement != NULL) {
*Statement = Question;
}
+
return Status;
}
@@ -2436,25 +2465,26 @@ NoSubmitCheck (
**/
EFI_STATUS
SynchronizeStorage (
- OUT BROWSER_STORAGE *Storage,
- IN CHAR16 *ConfigRequest,
- IN BOOLEAN SyncOrRestore
+ OUT BROWSER_STORAGE *Storage,
+ IN CHAR16 *ConfigRequest,
+ IN BOOLEAN SyncOrRestore
)
{
- EFI_STATUS Status;
- EFI_STRING Progress;
- EFI_STRING Result;
- UINTN BufferSize;
- LIST_ENTRY *Link;
- NAME_VALUE_NODE *Node;
- UINT8 *Src;
- UINT8 *Dst;
+ EFI_STATUS Status;
+ EFI_STRING Progress;
+ EFI_STRING Result;
+ UINTN BufferSize;
+ LIST_ENTRY *Link;
+ NAME_VALUE_NODE *Node;
+ UINT8 *Src;
+ UINT8 *Dst;
Status = EFI_SUCCESS;
Result = NULL;
- if (Storage->Type == EFI_HII_VARSTORE_BUFFER ||
- (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER)) {
+ if ((Storage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER))
+ {
BufferSize = Storage->Size;
if (SyncOrRestore) {
@@ -2466,7 +2496,7 @@ SynchronizeStorage (
}
if (ConfigRequest != NULL) {
- Status = mHiiConfigRouting->BlockToConfig(
+ Status = mHiiConfigRouting->BlockToConfig (
mHiiConfigRouting,
ConfigRequest,
Src,
@@ -2496,8 +2526,9 @@ SynchronizeStorage (
while (!IsNull (&Storage->NameValueListHead, Link)) {
Node = NAME_VALUE_NODE_FROM_LINK (Link);
- if ((ConfigRequest != NULL && StrStr (ConfigRequest, Node->Name) != NULL) ||
- (ConfigRequest == NULL)) {
+ if (((ConfigRequest != NULL) && (StrStr (ConfigRequest, Node->Name) != NULL)) ||
+ (ConfigRequest == NULL))
+ {
if (SyncOrRestore) {
NewStringCpy (&Node->Value, Node->EditValue);
} else {
@@ -2522,8 +2553,8 @@ SynchronizeStorage (
**/
VOID
SendDiscardInfoToDriver (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
LIST_ENTRY *Link;
@@ -2538,9 +2569,9 @@ SendDiscardInfoToDriver (
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&Form->StatementListHead, Link);
+ Link = GetNextNode (&Form->StatementListHead, Link);
- if (Question->Storage == NULL || Question->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE) {
+ if ((Question->Storage == NULL) || (Question->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE)) {
continue;
}
@@ -2561,12 +2592,12 @@ SendDiscardInfoToDriver (
//
GetQuestionValue (FormSet, Form, Question, GetSetValueWithEditBuffer);
- if (Question->Operand == EFI_IFR_STRING_OP){
- HiiSetString (FormSet->HiiHandle, Question->HiiValue.Value.string, (CHAR16*)Question->BufferValue, NULL);
+ if (Question->Operand == EFI_IFR_STRING_OP) {
+ HiiSetString (FormSet->HiiHandle, Question->HiiValue.Value.string, (CHAR16 *)Question->BufferValue, NULL);
}
if (Question->HiiValue.Type == EFI_IFR_TYPE_BUFFER) {
- TypeValue = (EFI_IFR_TYPE_VALUE *) Question->BufferValue;
+ TypeValue = (EFI_IFR_TYPE_VALUE *)Question->BufferValue;
} else {
TypeValue = &Question->HiiValue.Value;
}
@@ -2593,8 +2624,8 @@ SendDiscardInfoToDriver (
**/
VOID
SubmitCallbackForForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
LIST_ENTRY *Link;
@@ -2609,22 +2640,22 @@ SubmitCallbackForForm (
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&Form->StatementListHead, Link);
+ Link = GetNextNode (&Form->StatementListHead, Link);
- if (Question->Storage == NULL || Question->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE) {
+ if ((Question->Storage == NULL) || (Question->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE)) {
continue;
}
if ((Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != EFI_IFR_FLAG_CALLBACK) {
- continue;
+ continue;
}
if (Question->Operand == EFI_IFR_PASSWORD_OP) {
- continue;
+ continue;
}
if (Question->HiiValue.Type == EFI_IFR_TYPE_BUFFER) {
- TypeValue = (EFI_IFR_TYPE_VALUE *) Question->BufferValue;
+ TypeValue = (EFI_IFR_TYPE_VALUE *)Question->BufferValue;
} else {
TypeValue = &Question->HiiValue.Value;
}
@@ -2650,24 +2681,24 @@ SubmitCallbackForForm (
**/
VOID
SubmitCallback (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
- FORM_BROWSER_FORM *CurrentForm;
- LIST_ENTRY *Link;
+ FORM_BROWSER_FORM *CurrentForm;
+ LIST_ENTRY *Link;
if (Form != NULL) {
- SubmitCallbackForForm(FormSet, Form);
+ SubmitCallbackForForm (FormSet, Form);
return;
}
Link = GetFirstNode (&FormSet->FormListHead);
while (!IsNull (&FormSet->FormListHead, Link)) {
CurrentForm = FORM_BROWSER_FORM_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->FormListHead, Link);
+ Link = GetNextNode (&FormSet->FormListHead, Link);
- SubmitCallbackForForm(FormSet, CurrentForm);
+ SubmitCallbackForForm (FormSet, CurrentForm);
}
}
@@ -2682,12 +2713,12 @@ SubmitCallback (
**/
BOOLEAN
ValidateHiiHandle (
- EFI_HII_HANDLE HiiHandle
+ EFI_HII_HANDLE HiiHandle
)
{
- EFI_HII_HANDLE *HiiHandles;
- UINTN Index;
- BOOLEAN Find;
+ EFI_HII_HANDLE *HiiHandles;
+ UINTN Index;
+ BOOLEAN Find;
if (HiiHandle == NULL) {
return FALSE;
@@ -2721,25 +2752,26 @@ ValidateHiiHandle (
**/
BOOLEAN
ValidateFormSet (
- FORM_BROWSER_FORMSET *FormSet
+ FORM_BROWSER_FORMSET *FormSet
)
{
BOOLEAN Find;
ASSERT (FormSet != NULL);
- Find = ValidateHiiHandle(FormSet->HiiHandle);
+ Find = ValidateHiiHandle (FormSet->HiiHandle);
//
// Should not remove the formset which is being used.
//
if (!Find && (FormSet != gCurrentSelection->FormSet)) {
- CleanBrowserStorage(FormSet);
+ CleanBrowserStorage (FormSet);
RemoveEntryList (&FormSet->Link);
DestroyFormSet (FormSet);
}
return Find;
}
+
/**
Check whether need to enable the reset flag in form level.
Also clean all ValueChanged flag in question.
@@ -2751,9 +2783,9 @@ ValidateFormSet (
**/
VOID
UpdateFlagForForm (
- IN BOOLEAN SetFlag,
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN BOOLEAN SetFlag,
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
LIST_ENTRY *Link;
@@ -2763,7 +2795,7 @@ UpdateFlagForForm (
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&Form->StatementListHead, Link);
+ Link = GetNextNode (&Form->StatementListHead, Link);
if (!Question->ValueChanged) {
continue;
@@ -2774,14 +2806,14 @@ UpdateFlagForForm (
//
// Compare the buffer and editbuffer data to see whether the data has been saved.
//
- Question->ValueChanged = IsQuestionValueChanged(FormSet, Form, Question, GetSetValueWithBothBuffer);
+ Question->ValueChanged = IsQuestionValueChanged (FormSet, Form, Question, GetSetValueWithBothBuffer);
//
// Only the changed data has been saved, then need to set the reset flag.
//
if (SetFlag && OldValue && !Question->ValueChanged) {
if ((Question->QuestionFlags & EFI_IFR_FLAG_RESET_REQUIRED) != 0) {
- gResetRequiredFormLevel = TRUE;
+ gResetRequiredFormLevel = TRUE;
gResetRequiredSystemLevel = TRUE;
}
@@ -2805,25 +2837,25 @@ UpdateFlagForForm (
**/
VOID
ValueChangeResetFlagUpdate (
- IN BOOLEAN SetFlag,
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN BOOLEAN SetFlag,
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
- FORM_BROWSER_FORM *CurrentForm;
- LIST_ENTRY *Link;
+ FORM_BROWSER_FORM *CurrentForm;
+ LIST_ENTRY *Link;
if (Form != NULL) {
- UpdateFlagForForm(SetFlag, FormSet, Form);
+ UpdateFlagForForm (SetFlag, FormSet, Form);
return;
}
Link = GetFirstNode (&FormSet->FormListHead);
while (!IsNull (&FormSet->FormListHead, Link)) {
CurrentForm = FORM_BROWSER_FORM_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->FormListHead, Link);
+ Link = GetNextNode (&FormSet->FormListHead, Link);
- UpdateFlagForForm(SetFlag, FormSet, CurrentForm);
+ UpdateFlagForForm (SetFlag, FormSet, CurrentForm);
}
}
@@ -2845,11 +2877,11 @@ ValueChangeResetFlagUpdate (
**/
BOOLEAN
FindQuestionFromProgress (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN BROWSER_STORAGE *Storage,
- IN EFI_STRING Progress,
- OUT FORM_BROWSER_FORM **RetForm,
- OUT FORM_BROWSER_STATEMENT **RetQuestion
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN BROWSER_STORAGE *Storage,
+ IN EFI_STRING Progress,
+ OUT FORM_BROWSER_FORM **RetForm,
+ OUT FORM_BROWSER_STATEMENT **RetQuestion
)
{
LIST_ENTRY *Link;
@@ -2932,7 +2964,7 @@ FindQuestionFromProgress (
//
LinkStorage = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, LinkStorage)) {
- ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (LinkStorage);
+ ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (LinkStorage);
LinkStorage = GetNextNode (&Form->ConfigRequestHead, LinkStorage);
if (Storage != ConfigInfo->Storage) {
@@ -2951,15 +2983,15 @@ FindQuestionFromProgress (
if (*RetForm != NULL) {
LinkStatement = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, LinkStatement)) {
- Statement = FORM_BROWSER_STATEMENT_FROM_LINK (LinkStatement);
+ Statement = FORM_BROWSER_STATEMENT_FROM_LINK (LinkStatement);
LinkStatement = GetNextNode (&Form->StatementListHead, LinkStatement);
- if (Statement->BlockName != NULL && StrStr (Statement->BlockName, Progress) != NULL) {
+ if ((Statement->BlockName != NULL) && (StrStr (Statement->BlockName, Progress) != NULL)) {
*RetQuestion = Statement;
break;
}
- if (Statement->VariableName != NULL && StrStr (Statement->VariableName, Progress) != NULL) {
+ if ((Statement->VariableName != NULL) && (StrStr (Statement->VariableName, Progress) != NULL)) {
*RetQuestion = Statement;
break;
}
@@ -2980,7 +3012,7 @@ FindQuestionFromProgress (
*EndStr = '&';
}
- return (BOOLEAN) (*RetForm != NULL);
+ return (BOOLEAN)(*RetForm != NULL);
}
/**
@@ -2995,20 +3027,20 @@ FindQuestionFromProgress (
**/
VOID
-GetSyncRestoreConfigRequest(
- IN BROWSER_STORAGE *Storage,
- IN EFI_STRING ConfigRequest,
- IN EFI_STRING Progress,
- OUT EFI_STRING *RestoreConfigRequest,
- OUT EFI_STRING *SyncConfigRequest
+GetSyncRestoreConfigRequest (
+ IN BROWSER_STORAGE *Storage,
+ IN EFI_STRING ConfigRequest,
+ IN EFI_STRING Progress,
+ OUT EFI_STRING *RestoreConfigRequest,
+ OUT EFI_STRING *SyncConfigRequest
)
{
- EFI_STRING EndStr;
- EFI_STRING ConfigHdrEndStr;
- EFI_STRING ElementStr;
- UINTN TotalSize;
- UINTN RestoreEleSize;
- UINTN SyncSize;
+ EFI_STRING EndStr;
+ EFI_STRING ConfigHdrEndStr;
+ EFI_STRING ElementStr;
+ UINTN TotalSize;
+ UINTN RestoreEleSize;
+ UINTN SyncSize;
ASSERT ((*Progress == L'&') || (*Progress == L'G'));
//
@@ -3053,6 +3085,7 @@ GetSyncRestoreConfigRequest(
//
ConfigHdrEndStr = StrStr (ConfigRequest, L"&OFFSET=");
}
+
//
// Find the first fail pair in the ConfigRequest.
//
@@ -3061,8 +3094,8 @@ GetSyncRestoreConfigRequest(
//
// To get the RestoreConfigRequest.
//
- RestoreEleSize = StrSize (ElementStr);
- TotalSize = (ConfigHdrEndStr - ConfigRequest) * sizeof (CHAR16) + RestoreEleSize + sizeof (CHAR16);
+ RestoreEleSize = StrSize (ElementStr);
+ TotalSize = (ConfigHdrEndStr - ConfigRequest) * sizeof (CHAR16) + RestoreEleSize + sizeof (CHAR16);
*RestoreConfigRequest = AllocateZeroPool (TotalSize);
ASSERT (*RestoreConfigRequest != NULL);
StrnCpyS (*RestoreConfigRequest, TotalSize / sizeof (CHAR16), ConfigRequest, ConfigHdrEndStr - ConfigRequest);
@@ -3070,7 +3103,7 @@ GetSyncRestoreConfigRequest(
//
// To get the SyncConfigRequest.
//
- SyncSize = StrSize (ConfigRequest) - RestoreEleSize + sizeof (CHAR16);
+ SyncSize = StrSize (ConfigRequest) - RestoreEleSize + sizeof (CHAR16);
*SyncConfigRequest = AllocateZeroPool (SyncSize);
ASSERT (*SyncConfigRequest != NULL);
StrnCpyS (*SyncConfigRequest, SyncSize / sizeof (CHAR16), ConfigRequest, SyncSize / sizeof (CHAR16) - 1);
@@ -3096,13 +3129,13 @@ GetSyncRestoreConfigRequest(
**/
UINT32
ConfirmSaveFail (
- IN EFI_STRING_ID TitleId,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID TitleId,
+ IN EFI_HII_HANDLE HiiHandle
)
{
- CHAR16 *FormTitle;
- CHAR16 *StringBuffer;
- UINT32 RetVal;
+ CHAR16 *FormTitle;
+ CHAR16 *StringBuffer;
+ UINT32 RetVal;
FormTitle = GetToken (TitleId, HiiHandle);
@@ -3116,7 +3149,7 @@ ConfirmSaveFail (
FormTitle
);
- RetVal = PopupErrorMessage(BROWSER_SUBMIT_FAIL, NULL, NULL, StringBuffer);
+ RetVal = PopupErrorMessage (BROWSER_SUBMIT_FAIL, NULL, NULL, StringBuffer);
FreePool (StringBuffer);
FreePool (FormTitle);
@@ -3135,13 +3168,13 @@ ConfirmSaveFail (
**/
UINT32
ConfirmNoSubmitFail (
- IN EFI_STRING_ID TitleId,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID TitleId,
+ IN EFI_HII_HANDLE HiiHandle
)
{
- CHAR16 *FormTitle;
- CHAR16 *StringBuffer;
- UINT32 RetVal;
+ CHAR16 *FormTitle;
+ CHAR16 *StringBuffer;
+ UINT32 RetVal;
FormTitle = GetToken (TitleId, HiiHandle);
@@ -3155,7 +3188,7 @@ ConfirmNoSubmitFail (
FormTitle
);
- RetVal = PopupErrorMessage(BROWSER_SUBMIT_FAIL_NO_SUBMIT_IF, NULL, NULL, StringBuffer);
+ RetVal = PopupErrorMessage (BROWSER_SUBMIT_FAIL_NO_SUBMIT_IF, NULL, NULL, StringBuffer);
FreePool (StringBuffer);
FreePool (FormTitle);
@@ -3176,9 +3209,9 @@ ConfirmNoSubmitFail (
**/
EFI_STATUS
DiscardForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN BROWSER_SETTING_SCOPE SettingScope
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN BROWSER_SETTING_SCOPE SettingScope
)
{
LIST_ENTRY *Link;
@@ -3194,12 +3227,12 @@ DiscardForm (
return EFI_UNSUPPORTED;
}
- if (SettingScope == FormLevel && IsNvUpdateRequiredForForm (Form)) {
+ if ((SettingScope == FormLevel) && IsNvUpdateRequiredForForm (Form)) {
ConfigInfo = NULL;
- Link = GetFirstNode (&Form->ConfigRequestHead);
+ Link = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
- Link = GetNextNode (&Form->ConfigRequestHead, Link);
+ Link = GetNextNode (&Form->ConfigRequestHead, Link);
if (ConfigInfo->Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE) {
continue;
@@ -3215,7 +3248,7 @@ DiscardForm (
//
// Prepare <ConfigResp>
//
- SynchronizeStorage(ConfigInfo->Storage, ConfigInfo->ConfigRequest, FALSE);
+ SynchronizeStorage (ConfigInfo->Storage, ConfigInfo->ConfigRequest, FALSE);
//
// Call callback with Changed type to inform the driver.
@@ -3224,15 +3257,14 @@ DiscardForm (
}
ValueChangeResetFlagUpdate (FALSE, FormSet, Form);
- } else if (SettingScope == FormSetLevel && IsNvUpdateRequiredForFormSet (FormSet)) {
-
+ } else if ((SettingScope == FormSetLevel) && IsNvUpdateRequiredForFormSet (FormSet)) {
//
// Discard Buffer storage or Name/Value storage
//
Link = GetFirstNode (&FormSet->StorageListHead);
while (!IsNull (&FormSet->StorageListHead, Link)) {
Storage = FORMSET_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
if (Storage->BrowserStorage->Type == EFI_HII_VARSTORE_EFI_VARIABLE) {
continue;
@@ -3245,7 +3277,7 @@ DiscardForm (
continue;
}
- SynchronizeStorage(Storage->BrowserStorage, Storage->ConfigRequest, FALSE);
+ SynchronizeStorage (Storage->BrowserStorage, Storage->ConfigRequest, FALSE);
}
Link = GetFirstNode (&FormSet->FormListHead);
@@ -3259,7 +3291,7 @@ DiscardForm (
SendDiscardInfoToDriver (FormSet, Form);
}
- ValueChangeResetFlagUpdate(FALSE, FormSet, NULL);
+ ValueChangeResetFlagUpdate (FALSE, FormSet, NULL);
} else if (SettingScope == SystemLevel) {
//
// System Level Discard.
@@ -3272,8 +3304,8 @@ DiscardForm (
Link = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, Link)) {
LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserFormSetList, Link);
- if (!ValidateFormSet(LocalFormSet)) {
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ if (!ValidateFormSet (LocalFormSet)) {
continue;
}
@@ -3284,7 +3316,7 @@ DiscardForm (
//
// Remove maintain backup list after discard except for the current using FormSet.
//
- CleanBrowserStorage(LocalFormSet);
+ CleanBrowserStorage (LocalFormSet);
RemoveEntryList (&LocalFormSet->Link);
DestroyFormSet (LocalFormSet);
}
@@ -3308,17 +3340,17 @@ DiscardForm (
**/
EFI_STATUS
SubmitForForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- EFI_STRING ConfigResp;
- EFI_STRING Progress;
- BROWSER_STORAGE *Storage;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ EFI_STRING ConfigResp;
+ EFI_STRING Progress;
+ BROWSER_STORAGE *Storage;
FORM_BROWSER_CONFIG_REQUEST *ConfigInfo;
- BOOLEAN SubmitFormFail;
+ BOOLEAN SubmitFormFail;
SubmitFormFail = FALSE;
@@ -3334,7 +3366,7 @@ SubmitForForm (
Link = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
- Link = GetNextNode (&Form->ConfigRequestHead, Link);
+ Link = GetNextNode (&Form->ConfigRequestHead, Link);
Storage = ConfigInfo->Storage;
if (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE) {
@@ -3360,10 +3392,10 @@ SubmitForForm (
// 2. Set value to hii config routine protocol.
//
Status = mHiiConfigRouting->RouteConfig (
- mHiiConfigRouting,
- ConfigResp,
- &Progress
- );
+ mHiiConfigRouting,
+ ConfigResp,
+ &Progress
+ );
if (EFI_ERROR (Status)) {
//
@@ -3391,7 +3423,7 @@ SubmitForForm (
Link = GetFirstNode (&gBrowserSaveFailFormSetList);
while (!IsNull (&gBrowserSaveFailFormSetList, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_SAVE_FAIL_LINK (Link);
- Link = GetNextNode (&gBrowserSaveFailFormSetList, Link);
+ Link = GetNextNode (&gBrowserSaveFailFormSetList, Link);
//
// Process the submit fail question, base on the RestoreConfigRequest to restore the EditBuffer
// base on the SyncConfigRequest to Sync the buffer.
@@ -3400,14 +3432,15 @@ SubmitForForm (
FreePool (ConfigInfo->RestoreConfigRequest);
ConfigInfo->RestoreConfigRequest = NULL;
if (ConfigInfo->SyncConfigRequest != NULL) {
- SynchronizeStorage(ConfigInfo->Storage, ConfigInfo->SyncConfigRequest, TRUE);
+ SynchronizeStorage (ConfigInfo->Storage, ConfigInfo->SyncConfigRequest, TRUE);
FreePool (ConfigInfo->SyncConfigRequest);
ConfigInfo->SyncConfigRequest = NULL;
}
Status = EFI_SUCCESS;
}
- SendDiscardInfoToDriver (FormSet,Form);
+
+ SendDiscardInfoToDriver (FormSet, Form);
} else {
Status = EFI_UNSUPPORTED;
}
@@ -3416,7 +3449,7 @@ SubmitForForm (
// Free Form save fail list.
//
while (!IsListEmpty (&gBrowserSaveFailFormSetList)) {
- Link = GetFirstNode (&gBrowserSaveFailFormSetList);
+ Link = GetFirstNode (&gBrowserSaveFailFormSetList);
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_SAVE_FAIL_LINK (Link);
RemoveEntryList (&ConfigInfo->SaveFailLink);
}
@@ -3425,7 +3458,7 @@ SubmitForForm (
//
// 5. Update the NV flag.
//
- ValueChangeResetFlagUpdate(TRUE, FormSet, Form);
+ ValueChangeResetFlagUpdate (TRUE, FormSet, Form);
//
// 6 Call callback with Submitted type to inform the driver.
@@ -3455,8 +3488,8 @@ SubmitForForm (
**/
EFI_STATUS
SubmitForFormSet (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN BOOLEAN SkipProcessFail
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN BOOLEAN SkipProcessFail
)
{
EFI_STATUS Status;
@@ -3471,7 +3504,7 @@ SubmitForFormSet (
BOOLEAN SubmitFormSetFail;
BOOLEAN DiscardChange;
- HasInserted = FALSE;
+ HasInserted = FALSE;
SubmitFormSetFail = FALSE;
DiscardChange = FALSE;
@@ -3479,14 +3512,14 @@ SubmitForFormSet (
return EFI_SUCCESS;
}
- Form = NULL;
+ Form = NULL;
Status = NoSubmitCheck (FormSet, &Form, &Question);
if (EFI_ERROR (Status)) {
if (SkipProcessFail) {
//
// Process NO_SUBMIT check first, so insert it at head.
//
- FormSet->SaveFailForm = Form;
+ FormSet->SaveFailForm = Form;
FormSet->SaveFailStatement = Question;
InsertHeadList (&gBrowserSaveFailFormSetList, &FormSet->SaveFailLink);
}
@@ -3494,7 +3527,7 @@ SubmitForFormSet (
return Status;
}
- Form = NULL;
+ Form = NULL;
Question = NULL;
//
// Submit Buffer storage or Name/Value storage
@@ -3503,7 +3536,7 @@ SubmitForFormSet (
while (!IsNull (&FormSet->StorageListHead, Link)) {
FormSetStorage = FORMSET_STORAGE_FROM_LINK (Link);
Storage = FormSetStorage->BrowserStorage;
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
if (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE) {
continue;
@@ -3528,10 +3561,10 @@ SubmitForFormSet (
// 2. Send <ConfigResp> to Routine config Protocol.
//
Status = mHiiConfigRouting->RouteConfig (
- mHiiConfigRouting,
- ConfigResp,
- &Progress
- );
+ mHiiConfigRouting,
+ ConfigResp,
+ &Progress
+ );
if (EFI_ERROR (Status)) {
//
// Submit fail, to get the RestoreConfigRequest and SyncConfigRequest.
@@ -3544,13 +3577,14 @@ SubmitForFormSet (
// Call submit formset for system level, save the formset info
// and process later.
//
- FindQuestionFromProgress(FormSet, Storage, Progress, &Form, &Question);
+ FindQuestionFromProgress (FormSet, Storage, Progress, &Form, &Question);
ASSERT (Form != NULL && Question != NULL);
- FormSet->SaveFailForm = Form;
+ FormSet->SaveFailForm = Form;
FormSet->SaveFailStatement = Question;
if (SkipProcessFail) {
InsertTailList (&gBrowserSaveFailFormSetList, &FormSet->SaveFailLink);
}
+
HasInserted = TRUE;
}
@@ -3575,11 +3609,11 @@ SubmitForFormSet (
//
if (ConfirmSaveFail (Form->FormTitle, FormSet->HiiHandle) == BROWSER_ACTION_DISCARD) {
DiscardChange = TRUE;
- Link = GetFirstNode (&FormSet->SaveFailStorageListHead);
+ Link = GetFirstNode (&FormSet->SaveFailStorageListHead);
while (!IsNull (&FormSet->SaveFailStorageListHead, Link)) {
FormSetStorage = FORMSET_STORAGE_FROM_SAVE_FAIL_LINK (Link);
Storage = FormSetStorage->BrowserStorage;
- Link = GetNextNode (&FormSet->SaveFailStorageListHead, Link);
+ Link = GetNextNode (&FormSet->SaveFailStorageListHead, Link);
//
// Process the submit fail question, base on the RestoreConfigRequest to restore the EditBuffer
// base on the SyncConfigRequest to Sync the buffer.
@@ -3588,7 +3622,7 @@ SubmitForFormSet (
FreePool (FormSetStorage->RestoreConfigRequest);
FormSetStorage->RestoreConfigRequest = NULL;
if (FormSetStorage->SyncConfigRequest != NULL) {
- SynchronizeStorage(FormSetStorage->BrowserStorage, FormSetStorage->SyncConfigRequest, TRUE);
+ SynchronizeStorage (FormSetStorage->BrowserStorage, FormSetStorage->SyncConfigRequest, TRUE);
FreePool (FormSetStorage->SyncConfigRequest);
FormSetStorage->SyncConfigRequest = NULL;
}
@@ -3596,12 +3630,12 @@ SubmitForFormSet (
Status = EFI_SUCCESS;
}
} else {
- UiCopyMenuList(&mPrivateData.FormBrowserEx2.FormViewHistoryHead, &Form->FormViewListHead);
+ UiCopyMenuList (&mPrivateData.FormBrowserEx2.FormViewHistoryHead, &Form->FormViewListHead);
gCurrentSelection->Action = UI_ACTION_REFRESH_FORMSET;
gCurrentSelection->Handle = FormSet->HiiHandle;
CopyGuid (&gCurrentSelection->FormSetGuid, &FormSet->Guid);
- gCurrentSelection->FormId = Form->FormId;
+ gCurrentSelection->FormId = Form->FormId;
gCurrentSelection->QuestionId = Question->QuestionId;
Status = EFI_UNSUPPORTED;
@@ -3611,7 +3645,7 @@ SubmitForFormSet (
// Free FormSet save fail list.
//
while (!IsListEmpty (&FormSet->SaveFailStorageListHead)) {
- Link = GetFirstNode (&FormSet->SaveFailStorageListHead);
+ Link = GetFirstNode (&FormSet->SaveFailStorageListHead);
FormSetStorage = FORMSET_STORAGE_FROM_SAVE_FAIL_LINK (Link);
RemoveEntryList (&FormSetStorage->SaveFailLink);
}
@@ -3641,7 +3675,7 @@ SubmitForFormSet (
//
// 5. Update the NV flag.
//
- ValueChangeResetFlagUpdate(TRUE, FormSet, NULL);
+ ValueChangeResetFlagUpdate (TRUE, FormSet, NULL);
//
// 6. Call callback with Submitted type to inform the driver.
@@ -3676,11 +3710,11 @@ SubmitForSystem (
FORM_BROWSER_STATEMENT *Question;
mSystemSubmit = TRUE;
- Link = GetFirstNode (&gBrowserFormSetList);
+ Link = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, Link)) {
LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserFormSetList, Link);
- if (!ValidateFormSet(LocalFormSet)) {
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ if (!ValidateFormSet (LocalFormSet)) {
continue;
}
@@ -3693,11 +3727,12 @@ SubmitForSystem (
// Remove maintain backup list after save except for the current using FormSet.
//
if (!IsHiiHandleInBrowserContext (LocalFormSet->HiiHandle)) {
- CleanBrowserStorage(LocalFormSet);
+ CleanBrowserStorage (LocalFormSet);
RemoveEntryList (&LocalFormSet->Link);
DestroyFormSet (LocalFormSet);
}
}
+
mSystemSubmit = FALSE;
Status = EFI_SUCCESS;
@@ -3708,14 +3743,14 @@ SubmitForSystem (
Link = GetFirstNode (&gBrowserSaveFailFormSetList);
while (!IsNull (&gBrowserSaveFailFormSetList, Link)) {
LocalFormSet = FORM_BROWSER_FORMSET_FROM_SAVE_FAIL_LINK (Link);
- Link = GetNextNode (&gBrowserSaveFailFormSetList, Link);
+ Link = GetNextNode (&gBrowserSaveFailFormSetList, Link);
- if (!ValidateFormSet(LocalFormSet)) {
+ if (!ValidateFormSet (LocalFormSet)) {
continue;
}
- Form = LocalFormSet->SaveFailForm;
- Question= LocalFormSet->SaveFailStatement;
+ Form = LocalFormSet->SaveFailForm;
+ Question = LocalFormSet->SaveFailStatement;
//
// Confirm with user, get user input.
@@ -3734,15 +3769,15 @@ SubmitForSystem (
StorageLink = GetFirstNode (&LocalFormSet->StorageListHead);
while (!IsNull (&LocalFormSet->StorageListHead, StorageLink)) {
FormSetStorage = FORMSET_STORAGE_FROM_LINK (StorageLink);
- StorageLink = GetNextNode (&LocalFormSet->StorageListHead, StorageLink);
+ StorageLink = GetNextNode (&LocalFormSet->StorageListHead, StorageLink);
- SynchronizeStorage(FormSetStorage->BrowserStorage, FormSetStorage->ConfigRequest, FALSE);
+ SynchronizeStorage (FormSetStorage->BrowserStorage, FormSetStorage->ConfigRequest, FALSE);
}
} else {
StorageLink = GetFirstNode (&LocalFormSet->SaveFailStorageListHead);
while (!IsNull (&LocalFormSet->SaveFailStorageListHead, StorageLink)) {
FormSetStorage = FORMSET_STORAGE_FROM_SAVE_FAIL_LINK (StorageLink);
- StorageLink = GetNextNode (&LocalFormSet->SaveFailStorageListHead, StorageLink);
+ StorageLink = GetNextNode (&LocalFormSet->SaveFailStorageListHead, StorageLink);
//
// Process the submit fail question, base on the RestoreConfigRequest to restore the EditBuffer
// base on the SyncConfigRequest to Sync the buffer.
@@ -3760,7 +3795,7 @@ SubmitForSystem (
FormLink = GetFirstNode (&LocalFormSet->FormListHead);
while (!IsNull (&LocalFormSet->FormListHead, FormLink)) {
- Form = FORM_BROWSER_FORM_FROM_LINK (FormLink);
+ Form = FORM_BROWSER_FORM_FROM_LINK (FormLink);
FormLink = GetNextNode (&LocalFormSet->FormListHead, FormLink);
//
// Call callback with Changed type to inform the driver.
@@ -3769,24 +3804,24 @@ SubmitForSystem (
}
if (!IsHiiHandleInBrowserContext (LocalFormSet->HiiHandle)) {
- CleanBrowserStorage(LocalFormSet);
+ CleanBrowserStorage (LocalFormSet);
RemoveEntryList (&LocalFormSet->Link);
RemoveEntryList (&LocalFormSet->SaveFailLink);
DestroyFormSet (LocalFormSet);
} else {
- ValueChangeResetFlagUpdate(FALSE, LocalFormSet, NULL);
+ ValueChangeResetFlagUpdate (FALSE, LocalFormSet, NULL);
}
} else {
if (IsListEmpty (&LocalFormSet->SaveFailStorageListHead)) {
NoSubmitCheck (LocalFormSet, &Form, &Question);
}
- UiCopyMenuList(&mPrivateData.FormBrowserEx2.FormViewHistoryHead, &Form->FormViewListHead);
+ UiCopyMenuList (&mPrivateData.FormBrowserEx2.FormViewHistoryHead, &Form->FormViewListHead);
gCurrentSelection->Action = UI_ACTION_REFRESH_FORMSET;
gCurrentSelection->Handle = LocalFormSet->HiiHandle;
CopyGuid (&gCurrentSelection->FormSetGuid, &LocalFormSet->Guid);
- gCurrentSelection->FormId = Form->FormId;
+ gCurrentSelection->FormId = Form->FormId;
gCurrentSelection->QuestionId = Question->QuestionId;
Status = EFI_UNSUPPORTED;
@@ -3798,12 +3833,12 @@ SubmitForSystem (
// Clean the list which will not process.
//
while (!IsListEmpty (&gBrowserSaveFailFormSetList)) {
- Link = GetFirstNode (&gBrowserSaveFailFormSetList);
+ Link = GetFirstNode (&gBrowserSaveFailFormSetList);
LocalFormSet = FORM_BROWSER_FORMSET_FROM_SAVE_FAIL_LINK (Link);
RemoveEntryList (&LocalFormSet->SaveFailLink);
while (!IsListEmpty (&LocalFormSet->SaveFailStorageListHead)) {
- StorageLink = GetFirstNode (&LocalFormSet->SaveFailStorageListHead);
+ StorageLink = GetFirstNode (&LocalFormSet->SaveFailStorageListHead);
FormSetStorage = FORMSET_STORAGE_FROM_SAVE_FAIL_LINK (StorageLink);
RemoveEntryList (&FormSetStorage->SaveFailLink);
}
@@ -3825,29 +3860,29 @@ SubmitForSystem (
**/
EFI_STATUS
SubmitForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN BROWSER_SETTING_SCOPE SettingScope
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN BROWSER_SETTING_SCOPE SettingScope
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
switch (SettingScope) {
- case FormLevel:
- Status = SubmitForForm(FormSet, Form);
- break;
+ case FormLevel:
+ Status = SubmitForForm (FormSet, Form);
+ break;
- case FormSetLevel:
- Status = SubmitForFormSet (FormSet, FALSE);
- break;
+ case FormSetLevel:
+ Status = SubmitForFormSet (FormSet, FALSE);
+ break;
- case SystemLevel:
- Status = SubmitForSystem ();
- break;
+ case SystemLevel:
+ Status = SubmitForSystem ();
+ break;
- default:
- Status = EFI_UNSUPPORTED;
- break;
+ default:
+ Status = EFI_UNSUPPORTED;
+ break;
}
return Status;
@@ -3879,8 +3914,8 @@ HiiToLower (
Lower = TRUE;
} else if (*String == L'&') {
Lower = FALSE;
- } else if (Lower && *String >= L'A' && *String <= L'F') {
- *String = (CHAR16) (*String - L'A' + L'a');
+ } else if (Lower && (*String >= L'A') && (*String <= L'F')) {
+ *String = (CHAR16)(*String - L'A' + L'a');
}
}
}
@@ -3896,12 +3931,12 @@ HiiToLower (
**/
CHAR16 *
GetOffsetFromConfigResp (
- IN FORM_BROWSER_STATEMENT *Question,
- IN CHAR16 *ConfigResp
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN CHAR16 *ConfigResp
)
{
- CHAR16 *RequestElement;
- CHAR16 *BlockData;
+ CHAR16 *RequestElement;
+ CHAR16 *BlockData;
//
// Type is EFI_HII_VARSTORE_NAME_VALUE.
@@ -3942,7 +3977,7 @@ GetOffsetFromConfigResp (
//
// 2. Change all hex digits in Question->BlockName to lower and compare again.
//
- BlockData = AllocateCopyPool (StrSize(Question->BlockName), Question->BlockName);
+ BlockData = AllocateCopyPool (StrSize (Question->BlockName), Question->BlockName);
ASSERT (BlockData != NULL);
HiiToLower (BlockData);
RequestElement = StrStr (ConfigResp, BlockData);
@@ -3970,9 +4005,9 @@ GetOffsetFromConfigResp (
**/
EFI_STATUS
GetDefaultValueFromAltCfg (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question
)
{
BROWSER_STORAGE *Storage;
@@ -3991,11 +4026,11 @@ GetDefaultValueFromAltCfg (
// Try to get AltCfg string from form. If not found it, then
// try to get it from formset.
//
- ConfigResp = NULL;
- Link = GetFirstNode (&Form->ConfigRequestHead);
+ ConfigResp = NULL;
+ Link = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
- Link = GetNextNode (&Form->ConfigRequestHead, Link);
+ Link = GetNextNode (&Form->ConfigRequestHead, Link);
if (Storage == ConfigInfo->Storage) {
ConfigResp = ConfigInfo->ConfigAltResp;
@@ -4007,7 +4042,7 @@ GetDefaultValueFromAltCfg (
Link = GetFirstNode (&FormSet->StorageListHead);
while (!IsNull (&FormSet->StorageListHead, Link)) {
FormSetStorage = FORMSET_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
if (Storage == FormSetStorage->BrowserStorage) {
ConfigResp = FormSetStorage->ConfigAltResp;
@@ -4038,7 +4073,7 @@ GetDefaultValueFromAltCfg (
**/
INTN
GetDefaultIdForCallBack (
- UINTN DefaultId
+ UINTN DefaultId
)
{
if (DefaultId == EFI_HII_DEFAULT_CLASS_STANDARD) {
@@ -4047,19 +4082,17 @@ GetDefaultIdForCallBack (
return EFI_BROWSER_ACTION_DEFAULT_MANUFACTURING;
} else if (DefaultId == EFI_HII_DEFAULT_CLASS_SAFE) {
return EFI_BROWSER_ACTION_DEFAULT_SAFE;
- } else if (DefaultId >= EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN && DefaultId < EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN + 0x1000) {
+ } else if ((DefaultId >= EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN) && (DefaultId < EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN + 0x1000)) {
return EFI_BROWSER_ACTION_DEFAULT_PLATFORM + DefaultId - EFI_HII_DEFAULT_CLASS_PLATFORM_BEGIN;
- } else if (DefaultId >= EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN && DefaultId < EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN + 0x1000) {
+ } else if ((DefaultId >= EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN) && (DefaultId < EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN + 0x1000)) {
return EFI_BROWSER_ACTION_DEFAULT_HARDWARE + DefaultId - EFI_HII_DEFAULT_CLASS_HARDWARE_BEGIN;
- } else if (DefaultId >= EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN && DefaultId < EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN + 0x1000) {
+ } else if ((DefaultId >= EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN) && (DefaultId < EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN + 0x1000)) {
return EFI_BROWSER_ACTION_DEFAULT_FIRMWARE + DefaultId - EFI_HII_DEFAULT_CLASS_FIRMWARE_BEGIN;
} else {
return -1;
}
}
-
-
/**
Return data element in an Array by its Index.
@@ -4072,41 +4105,40 @@ GetDefaultIdForCallBack (
**/
UINT64
GetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index
)
{
- UINT64 Data;
+ UINT64 Data;
ASSERT (Array != NULL);
Data = 0;
switch (Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- Data = (UINT64) *(((UINT8 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ Data = (UINT64)*(((UINT8 *)Array) + Index);
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- Data = (UINT64) *(((UINT16 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ Data = (UINT64)*(((UINT16 *)Array) + Index);
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- Data = (UINT64) *(((UINT32 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ Data = (UINT64)*(((UINT32 *)Array) + Index);
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- Data = (UINT64) *(((UINT64 *) Array) + Index);
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ Data = (UINT64)*(((UINT64 *)Array) + Index);
+ break;
- default:
- break;
+ default:
+ break;
}
return Data;
}
-
/**
Set value of a data element in an Array by its Index.
@@ -4118,34 +4150,33 @@ GetArrayData (
**/
VOID
SetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index,
- IN UINT64 Value
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index,
+ IN UINT64 Value
)
{
-
ASSERT (Array != NULL);
switch (Type) {
- case EFI_IFR_TYPE_NUM_SIZE_8:
- *(((UINT8 *) Array) + Index) = (UINT8) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_8:
+ *(((UINT8 *)Array) + Index) = (UINT8)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_16:
- *(((UINT16 *) Array) + Index) = (UINT16) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_16:
+ *(((UINT16 *)Array) + Index) = (UINT16)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_32:
- *(((UINT32 *) Array) + Index) = (UINT32) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_32:
+ *(((UINT32 *)Array) + Index) = (UINT32)Value;
+ break;
- case EFI_IFR_TYPE_NUM_SIZE_64:
- *(((UINT64 *) Array) + Index) = (UINT64) Value;
- break;
+ case EFI_IFR_TYPE_NUM_SIZE_64:
+ *(((UINT64 *)Array) + Index) = (UINT64)Value;
+ break;
- default:
- break;
+ default:
+ break;
}
}
@@ -4161,8 +4192,8 @@ SetArrayData (
**/
QUESTION_OPTION *
ValueToOption (
- IN FORM_BROWSER_STATEMENT *Question,
- IN EFI_HII_VALUE *OptionValue
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN EFI_HII_VALUE *OptionValue
)
{
LIST_ENTRY *Link;
@@ -4178,7 +4209,8 @@ ValueToOption (
// Check the suppressif condition, only a valid option can be return.
//
if ((Option->SuppressExpression == NULL) ||
- ((EvaluateExpressionList(Option->SuppressExpression, FALSE, NULL, NULL) == ExpressFalse))) {
+ ((EvaluateExpressionList (Option->SuppressExpression, FALSE, NULL, NULL) == ExpressFalse)))
+ {
return Option;
}
}
@@ -4189,7 +4221,6 @@ ValueToOption (
return NULL;
}
-
/**
Reset Question to its default value.
@@ -4203,19 +4234,19 @@ ValueToOption (
**/
EFI_STATUS
GetQuestionDefault (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question,
- IN UINT16 DefaultId
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN UINT16 DefaultId
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- QUESTION_DEFAULT *Default;
- QUESTION_OPTION *Option;
- EFI_HII_VALUE *HiiValue;
- UINT8 Index;
- EFI_STRING StrValue;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ QUESTION_DEFAULT *Default;
+ QUESTION_OPTION *Option;
+ EFI_HII_VALUE *HiiValue;
+ UINT8 Index;
+ EFI_STRING StrValue;
EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
EFI_BROWSER_ACTION_REQUEST ActionRequest;
INTN Action;
@@ -4225,10 +4256,10 @@ GetQuestionDefault (
FORMSET_DEFAULTSTORE *DefaultStore;
LIST_ENTRY *DefaultLink;
- Status = EFI_NOT_FOUND;
- StrValue = NULL;
- OriginalDefaultId = DefaultId;
- DefaultLink = GetFirstNode (&FormSet->DefaultStoreListHead);
+ Status = EFI_NOT_FOUND;
+ StrValue = NULL;
+ OriginalDefaultId = DefaultId;
+ DefaultLink = GetFirstNode (&FormSet->DefaultStoreListHead);
//
// Statement don't have storage, skip them
@@ -4246,30 +4277,30 @@ GetQuestionDefault (
// 5, set flags of EFI_IFR_CHECKBOX (provide Standard and Manufacturing default) (lowest priority)
//
ReGetDefault:
- HiiValue = &Question->HiiValue;
+ HiiValue = &Question->HiiValue;
TypeValue = &HiiValue->Value;
if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
//
// For orderedlist, need to pass the BufferValue to Callback function.
//
- TypeValue = (EFI_IFR_TYPE_VALUE *) Question->BufferValue;
+ TypeValue = (EFI_IFR_TYPE_VALUE *)Question->BufferValue;
}
//
// Get Question defaut value from call back function.
//
ConfigAccess = FormSet->ConfigAccess;
- Action = GetDefaultIdForCallBack (DefaultId);
+ Action = GetDefaultIdForCallBack (DefaultId);
if ((Action > 0) && ((Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != 0) && (ConfigAccess != NULL)) {
ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
- Status = ConfigAccess->Callback (
- ConfigAccess,
- Action,
- Question->QuestionId,
- HiiValue->Type,
- TypeValue,
- &ActionRequest
- );
+ Status = ConfigAccess->Callback (
+ ConfigAccess,
+ Action,
+ Question->QuestionId,
+ HiiValue->Type,
+ TypeValue,
+ &ActionRequest
+ );
if (!EFI_ERROR (Status)) {
if (HiiValue->Type == EFI_IFR_TYPE_STRING) {
NewString = GetToken (Question->HiiValue.Value.string, FormSet->HiiHandle);
@@ -4285,6 +4316,7 @@ ReGetDefault:
FreePool (NewString);
}
+
return Status;
}
}
@@ -4293,9 +4325,9 @@ ReGetDefault:
// Get default value from altcfg string.
//
if (ConfigAccess != NULL) {
- Status = GetDefaultValueFromAltCfg(FormSet, Form, Question);
+ Status = GetDefaultValueFromAltCfg (FormSet, Form, Question);
if (!EFI_ERROR (Status)) {
- return Status;
+ return Status;
}
}
@@ -4326,8 +4358,10 @@ ReGetDefault:
CopyMem (Question->HiiValue.Buffer, Default->ValueExpression->Result.Buffer, Question->StorageWidth);
Question->HiiValue.BufferLen = Question->StorageWidth;
}
+
FreePool (Default->ValueExpression->Result.Buffer);
}
+
HiiValue->Type = Default->ValueExpression->Result.Type;
CopyMem (&HiiValue->Value, &Default->ValueExpression->Result.Value, sizeof (EFI_IFR_TYPE_VALUE));
} else {
@@ -4347,6 +4381,7 @@ ReGetDefault:
if (StrValue == NULL) {
return EFI_NOT_FOUND;
}
+
if (Question->StorageWidth > StrSize (StrValue)) {
ZeroMem (Question->BufferValue, Question->StorageWidth);
CopyMem (Question->BufferValue, StrValue, StrSize (StrValue));
@@ -4366,23 +4401,25 @@ ReGetDefault:
// EFI_ONE_OF_OPTION
//
if ((Question->Operand == EFI_IFR_ONE_OF_OP) && !IsListEmpty (&Question->OptionListHead)) {
- if (DefaultId <= EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+ if (DefaultId <= EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
//
// OneOfOption could only provide Standard and Manufacturing default
//
Link = GetFirstNode (&Question->OptionListHead);
while (!IsNull (&Question->OptionListHead, Link)) {
Option = QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
if ((Option->SuppressExpression != NULL) &&
- EvaluateExpressionList(Option->SuppressExpression, FALSE, NULL, NULL) != ExpressFalse) {
+ (EvaluateExpressionList (Option->SuppressExpression, FALSE, NULL, NULL) != ExpressFalse))
+ {
continue;
}
if (((DefaultId == EFI_HII_DEFAULT_CLASS_STANDARD) && ((Option->Flags & EFI_IFR_OPTION_DEFAULT) != 0)) ||
((DefaultId == EFI_HII_DEFAULT_CLASS_MANUFACTURING) && ((Option->Flags & EFI_IFR_OPTION_DEFAULT_MFG) != 0))
- ) {
+ )
+ {
CopyMem (HiiValue, &Option->Value, sizeof (EFI_HII_VALUE));
return EFI_SUCCESS;
@@ -4395,13 +4432,14 @@ ReGetDefault:
// EFI_IFR_CHECKBOX - lowest priority
//
if (Question->Operand == EFI_IFR_CHECKBOX_OP) {
- if (DefaultId <= EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
+ if (DefaultId <= EFI_HII_DEFAULT_CLASS_MANUFACTURING) {
//
// Checkbox could only provide Standard and Manufacturing default
//
if (((DefaultId == EFI_HII_DEFAULT_CLASS_STANDARD) && ((Question->Flags & EFI_IFR_CHECKBOX_DEFAULT) != 0)) ||
((DefaultId == EFI_HII_DEFAULT_CLASS_MANUFACTURING) && ((Question->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) != 0))
- ) {
+ )
+ {
HiiValue->Value.b = TRUE;
}
@@ -4414,13 +4452,14 @@ ReGetDefault:
// If get, will exit the function, if not, will choose next default id in the DefaultStoreList.
// The default id in DefaultStoreList are in ascending order to make sure choose the smallest default id every time.
//
- while (!IsNull(&FormSet->DefaultStoreListHead, DefaultLink)) {
- DefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK(DefaultLink);
- DefaultLink = GetNextNode (&FormSet->DefaultStoreListHead,DefaultLink);
- DefaultId = DefaultStore->DefaultId;
+ while (!IsNull (&FormSet->DefaultStoreListHead, DefaultLink)) {
+ DefaultStore = FORMSET_DEFAULTSTORE_FROM_LINK (DefaultLink);
+ DefaultLink = GetNextNode (&FormSet->DefaultStoreListHead, DefaultLink);
+ DefaultId = DefaultStore->DefaultId;
if (DefaultId == OriginalDefaultId) {
continue;
}
+
goto ReGetDefault;
}
@@ -4429,104 +4468,113 @@ ReGetDefault:
//
Status = EFI_NOT_FOUND;
switch (Question->Operand) {
- case EFI_IFR_CHECKBOX_OP:
- HiiValue->Value.b = FALSE;
- Status = EFI_SUCCESS;
- break;
+ case EFI_IFR_CHECKBOX_OP:
+ HiiValue->Value.b = FALSE;
+ Status = EFI_SUCCESS;
+ break;
- case EFI_IFR_NUMERIC_OP:
- //
- // Take minimum value as numeric default value
- //
- if ((Question->Flags & EFI_IFR_DISPLAY) == 0) {
+ case EFI_IFR_NUMERIC_OP:
//
- // In EFI_IFR_DISPLAY_INT_DEC type, should check value with int* type.
+ // Take minimum value as numeric default value
//
- switch (Question->Flags & EFI_IFR_NUMERIC_SIZE) {
- case EFI_IFR_NUMERIC_SIZE_1:
- if (((INT8) HiiValue->Value.u8 < (INT8) Question->Minimum) || ((INT8) HiiValue->Value.u8 > (INT8) Question->Maximum)) {
- HiiValue->Value.u8 = (UINT8) Question->Minimum;
- Status = EFI_SUCCESS;
- }
- break;
- case EFI_IFR_NUMERIC_SIZE_2:
- if (((INT16) HiiValue->Value.u16 < (INT16) Question->Minimum) || ((INT16) HiiValue->Value.u16 > (INT16) Question->Maximum)) {
- HiiValue->Value.u16 = (UINT16) Question->Minimum;
- Status = EFI_SUCCESS;
- }
- break;
- case EFI_IFR_NUMERIC_SIZE_4:
- if (((INT32) HiiValue->Value.u32 < (INT32) Question->Minimum) || ((INT32) HiiValue->Value.u32 > (INT32) Question->Maximum)) {
- HiiValue->Value.u32 = (UINT32) Question->Minimum;
- Status = EFI_SUCCESS;
+ if ((Question->Flags & EFI_IFR_DISPLAY) == 0) {
+ //
+ // In EFI_IFR_DISPLAY_INT_DEC type, should check value with int* type.
+ //
+ switch (Question->Flags & EFI_IFR_NUMERIC_SIZE) {
+ case EFI_IFR_NUMERIC_SIZE_1:
+ if (((INT8)HiiValue->Value.u8 < (INT8)Question->Minimum) || ((INT8)HiiValue->Value.u8 > (INT8)Question->Maximum)) {
+ HiiValue->Value.u8 = (UINT8)Question->Minimum;
+ Status = EFI_SUCCESS;
+ }
+
+ break;
+ case EFI_IFR_NUMERIC_SIZE_2:
+ if (((INT16)HiiValue->Value.u16 < (INT16)Question->Minimum) || ((INT16)HiiValue->Value.u16 > (INT16)Question->Maximum)) {
+ HiiValue->Value.u16 = (UINT16)Question->Minimum;
+ Status = EFI_SUCCESS;
+ }
+
+ break;
+ case EFI_IFR_NUMERIC_SIZE_4:
+ if (((INT32)HiiValue->Value.u32 < (INT32)Question->Minimum) || ((INT32)HiiValue->Value.u32 > (INT32)Question->Maximum)) {
+ HiiValue->Value.u32 = (UINT32)Question->Minimum;
+ Status = EFI_SUCCESS;
+ }
+
+ break;
+ case EFI_IFR_NUMERIC_SIZE_8:
+ if (((INT64)HiiValue->Value.u64 < (INT64)Question->Minimum) || ((INT64)HiiValue->Value.u64 > (INT64)Question->Maximum)) {
+ HiiValue->Value.u64 = Question->Minimum;
+ Status = EFI_SUCCESS;
+ }
+
+ break;
+ default:
+ break;
}
- break;
- case EFI_IFR_NUMERIC_SIZE_8:
- if (((INT64) HiiValue->Value.u64 < (INT64) Question->Minimum) || ((INT64) HiiValue->Value.u64 > (INT64) Question->Maximum)) {
+ } else {
+ if ((HiiValue->Value.u64 < Question->Minimum) || (HiiValue->Value.u64 > Question->Maximum)) {
HiiValue->Value.u64 = Question->Minimum;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
}
- break;
- default:
- break;
}
- } else {
- if ((HiiValue->Value.u64 < Question->Minimum) || (HiiValue->Value.u64 > Question->Maximum)) {
- HiiValue->Value.u64 = Question->Minimum;
- Status = EFI_SUCCESS;
+
+ break;
+
+ case EFI_IFR_ONE_OF_OP:
+ //
+ // Take first oneof option as oneof's default value
+ //
+ if (ValueToOption (Question, HiiValue) == NULL) {
+ Link = GetFirstNode (&Question->OptionListHead);
+ while (!IsNull (&Question->OptionListHead, Link)) {
+ Option = QUESTION_OPTION_FROM_LINK (Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
+
+ if ((Option->SuppressExpression != NULL) &&
+ (EvaluateExpressionList (Option->SuppressExpression, FALSE, NULL, NULL) != ExpressFalse))
+ {
+ continue;
+ }
+
+ CopyMem (HiiValue, &Option->Value, sizeof (EFI_HII_VALUE));
+ Status = EFI_SUCCESS;
+ break;
+ }
}
- }
- break;
- case EFI_IFR_ONE_OF_OP:
- //
- // Take first oneof option as oneof's default value
- //
- if (ValueToOption (Question, HiiValue) == NULL) {
- Link = GetFirstNode (&Question->OptionListHead);
+ break;
+
+ case EFI_IFR_ORDERED_LIST_OP:
+ //
+ // Take option sequence in IFR as ordered list's default value
+ //
+ Index = 0;
+ Link = GetFirstNode (&Question->OptionListHead);
while (!IsNull (&Question->OptionListHead, Link)) {
+ Status = EFI_SUCCESS;
Option = QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
+ Link = GetNextNode (&Question->OptionListHead, Link);
if ((Option->SuppressExpression != NULL) &&
- EvaluateExpressionList(Option->SuppressExpression, FALSE, NULL, NULL) != ExpressFalse) {
+ (EvaluateExpressionList (Option->SuppressExpression, FALSE, NULL, NULL) != ExpressFalse))
+ {
continue;
}
- CopyMem (HiiValue, &Option->Value, sizeof (EFI_HII_VALUE));
- Status = EFI_SUCCESS;
- break;
- }
- }
- break;
+ SetArrayData (Question->BufferValue, Question->ValueType, Index, Option->Value.Value.u64);
- case EFI_IFR_ORDERED_LIST_OP:
- //
- // Take option sequence in IFR as ordered list's default value
- //
- Index = 0;
- Link = GetFirstNode (&Question->OptionListHead);
- while (!IsNull (&Question->OptionListHead, Link)) {
- Status = EFI_SUCCESS;
- Option = QUESTION_OPTION_FROM_LINK (Link);
- Link = GetNextNode (&Question->OptionListHead, Link);
-
- if ((Option->SuppressExpression != NULL) &&
- EvaluateExpressionList(Option->SuppressExpression, FALSE, NULL, NULL) != ExpressFalse) {
- continue;
+ Index++;
+ if (Index >= Question->MaxContainers) {
+ break;
+ }
}
- SetArrayData (Question->BufferValue, Question->ValueType, Index, Option->Value.Value.u64);
-
- Index++;
- if (Index >= Question->MaxContainers) {
- break;
- }
- }
- break;
+ break;
- default:
- break;
+ default:
+ break;
}
return Status;
@@ -4543,10 +4591,10 @@ ReGetDefault:
**/
VOID
ExtractAltCfgForForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN UINT16 DefaultId,
- IN BROWSER_STORAGE *BrowserStorage
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN UINT16 DefaultId,
+ IN BROWSER_STORAGE *BrowserStorage
)
{
EFI_STATUS Status;
@@ -4566,14 +4614,15 @@ ExtractAltCfgForForm (
while (!IsNull (&FormSet->StorageListHead, Link)) {
FormSetStorage = FORMSET_STORAGE_FROM_LINK (Link);
Storage = FormSetStorage->BrowserStorage;
- Link = GetNextNode (&FormSet->StorageListHead, Link);
- if (BrowserStorage != NULL && BrowserStorage != Storage) {
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
+ if ((BrowserStorage != NULL) && (BrowserStorage != Storage)) {
continue;
}
- if (Storage->Type != EFI_HII_VARSTORE_EFI_VARIABLE &&
- FormSetStorage->ElementCount != 0 &&
- FormSetStorage->HasCallAltCfg) {
+ if ((Storage->Type != EFI_HII_VARSTORE_EFI_VARIABLE) &&
+ (FormSetStorage->ElementCount != 0) &&
+ FormSetStorage->HasCallAltCfg)
+ {
return;
}
}
@@ -4584,10 +4633,10 @@ ExtractAltCfgForForm (
Link = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
- Link = GetNextNode (&Form->ConfigRequestHead, Link);
+ Link = GetNextNode (&Form->ConfigRequestHead, Link);
Storage = ConfigInfo->Storage;
- if (BrowserStorage != NULL && BrowserStorage != Storage) {
+ if ((BrowserStorage != NULL) && (BrowserStorage != Storage)) {
continue;
}
@@ -4606,11 +4655,11 @@ ExtractAltCfgForForm (
// 2. Get value through hii config routine protocol.
//
Status = mHiiConfigRouting->ExtractConfig (
- mHiiConfigRouting,
- ConfigInfo->ConfigRequest,
- &Progress,
- &Result
- );
+ mHiiConfigRouting,
+ ConfigInfo->ConfigRequest,
+ &Progress,
+ &Result
+ );
if (EFI_ERROR (Status)) {
continue;
}
@@ -4627,7 +4676,7 @@ ExtractAltCfgForForm (
NULL,
&DefaultId, // it can be NULL to get the current setting.
&ConfigResp
- );
+ );
FreePool (Result);
if (EFI_ERROR (Status)) {
continue;
@@ -4645,16 +4694,16 @@ ExtractAltCfgForForm (
**/
VOID
CleanAltCfgForForm (
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORM *Form
)
{
- LIST_ENTRY *Link;
+ LIST_ENTRY *Link;
FORM_BROWSER_CONFIG_REQUEST *ConfigInfo;
Link = GetFirstNode (&Form->ConfigRequestHead);
while (!IsNull (&Form->ConfigRequestHead, Link)) {
ConfigInfo = FORM_BROWSER_CONFIG_REQUEST_FROM_LINK (Link);
- Link = GetNextNode (&Form->ConfigRequestHead, Link);
+ Link = GetNextNode (&Form->ConfigRequestHead, Link);
if (ConfigInfo->ConfigAltResp != NULL) {
FreePool (ConfigInfo->ConfigAltResp);
@@ -4673,26 +4722,26 @@ CleanAltCfgForForm (
**/
VOID
ExtractAltCfgForFormSet (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN UINT16 DefaultId,
- IN BROWSER_STORAGE *BrowserStorage
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN UINT16 DefaultId,
+ IN BROWSER_STORAGE *BrowserStorage
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- CHAR16 *ConfigResp;
- CHAR16 *Progress;
- CHAR16 *Result;
- BROWSER_STORAGE *Storage;
- FORMSET_STORAGE *FormSetStorage;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ CHAR16 *ConfigResp;
+ CHAR16 *Progress;
+ CHAR16 *Result;
+ BROWSER_STORAGE *Storage;
+ FORMSET_STORAGE *FormSetStorage;
Link = GetFirstNode (&FormSet->StorageListHead);
while (!IsNull (&FormSet->StorageListHead, Link)) {
FormSetStorage = FORMSET_STORAGE_FROM_LINK (Link);
Storage = FormSetStorage->BrowserStorage;
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
- if (BrowserStorage != NULL && BrowserStorage != Storage) {
+ if ((BrowserStorage != NULL) && (BrowserStorage != Storage)) {
continue;
}
@@ -4713,11 +4762,11 @@ ExtractAltCfgForFormSet (
// 2. Get value through hii config routine protocol.
//
Status = mHiiConfigRouting->ExtractConfig (
- mHiiConfigRouting,
- FormSetStorage->ConfigRequest,
- &Progress,
- &Result
- );
+ mHiiConfigRouting,
+ FormSetStorage->ConfigRequest,
+ &Progress,
+ &Result
+ );
if (EFI_ERROR (Status)) {
continue;
}
@@ -4734,7 +4783,7 @@ ExtractAltCfgForFormSet (
NULL,
&DefaultId, // it can be NULL to get the current setting.
&ConfigResp
- );
+ );
FreePool (Result);
if (EFI_ERROR (Status)) {
@@ -4743,7 +4792,6 @@ ExtractAltCfgForFormSet (
FormSetStorage->ConfigAltResp = ConfigResp;
}
-
}
/**
@@ -4754,16 +4802,16 @@ ExtractAltCfgForFormSet (
**/
VOID
CleanAltCfgForFormSet (
- IN FORM_BROWSER_FORMSET *FormSet
+ IN FORM_BROWSER_FORMSET *FormSet
)
{
- LIST_ENTRY *Link;
- FORMSET_STORAGE *FormSetStorage;
+ LIST_ENTRY *Link;
+ FORMSET_STORAGE *FormSetStorage;
Link = GetFirstNode (&FormSet->StorageListHead);
while (!IsNull (&FormSet->StorageListHead, Link)) {
FormSetStorage = FORMSET_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
if (FormSetStorage->ConfigAltResp != NULL) {
FreePool (FormSetStorage->ConfigAltResp);
@@ -4797,14 +4845,14 @@ CleanAltCfgForFormSet (
**/
EFI_STATUS
ExtractDefault (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN UINT16 DefaultId,
- IN BROWSER_SETTING_SCOPE SettingScope,
- IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope,
- IN BROWSER_STORAGE *Storage OPTIONAL,
- IN BOOLEAN RetrieveValueFirst,
- IN BOOLEAN SkipGetAltCfg
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN UINT16 DefaultId,
+ IN BROWSER_SETTING_SCOPE SettingScope,
+ IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope,
+ IN BROWSER_STORAGE *Storage OPTIONAL,
+ IN BOOLEAN RetrieveValueFirst,
+ IN BOOLEAN SkipGetAltCfg
)
{
EFI_STATUS Status;
@@ -4819,11 +4867,11 @@ ExtractDefault (
//
// Check the supported setting level.
//
- if (SettingScope >= MaxLevel || GetDefaultValueScope >= GetDefaultForMax) {
+ if ((SettingScope >= MaxLevel) || (GetDefaultValueScope >= GetDefaultForMax)) {
return EFI_UNSUPPORTED;
}
- if (GetDefaultValueScope == GetDefaultForStorage && Storage == NULL) {
+ if ((GetDefaultValueScope == GetDefaultForStorage) && (Storage == NULL)) {
return EFI_UNSUPPORTED;
}
@@ -4841,7 +4889,7 @@ ExtractDefault (
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
- Link = GetNextNode (&Form->StatementListHead, Link);
+ Link = GetNextNode (&Form->StatementListHead, Link);
//
// If get default value only for this storage, check the storage first.
@@ -4861,7 +4909,7 @@ ExtractDefault (
// If Question is disabled, don't reset it to default
//
if (Question->Expression != NULL) {
- if (EvaluateExpressionList(Question->Expression, TRUE, FormSet, Form) == ExpressDisable) {
+ if (EvaluateExpressionList (Question->Expression, TRUE, FormSet, Form) == ExpressDisable) {
continue;
}
}
@@ -4870,7 +4918,7 @@ ExtractDefault (
//
// Call the Retrieve call back to get the initial question value.
//
- Status = ProcessRetrieveForQuestion(FormSet->ConfigAccess, Question, FormSet);
+ Status = ProcessRetrieveForQuestion (FormSet->ConfigAccess, Question, FormSet);
}
//
@@ -4887,7 +4935,8 @@ ExtractDefault (
// Synchronize Buffer storage's Edit buffer
//
if ((Question->Storage != NULL) &&
- (Question->Storage->Type != EFI_HII_VARSTORE_EFI_VARIABLE)) {
+ (Question->Storage->Type != EFI_HII_VARSTORE_EFI_VARIABLE))
+ {
SetQuestionValue (FormSet, Form, Question, GetSetValueWithEditBuffer);
}
}
@@ -4896,7 +4945,7 @@ ExtractDefault (
// Clean the AltCfg String.
//
if (!SkipGetAltCfg && (GetDefaultValueScope != GetDefaultForNoStorage)) {
- CleanAltCfgForForm(Form);
+ CleanAltCfgForForm (Form);
}
} else if (SettingScope == FormSetLevel) {
//
@@ -4923,7 +4972,7 @@ ExtractDefault (
//
// Preload all Hii formset.
//
- LoadAllHiiFormset();
+ LoadAllHiiFormset ();
OldFormSet = mSystemLevelFormSet;
@@ -4933,8 +4982,8 @@ ExtractDefault (
Link = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, Link)) {
LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserFormSetList, Link);
- if (!ValidateFormSet(LocalFormSet)) {
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ if (!ValidateFormSet (LocalFormSet)) {
continue;
}
@@ -4949,7 +4998,6 @@ ExtractDefault (
return EFI_SUCCESS;
}
-
/**
Validate whether this question's value has changed.
@@ -4964,30 +5012,30 @@ ExtractDefault (
**/
BOOLEAN
IsQuestionValueChanged (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
)
{
- EFI_HII_VALUE BackUpValue;
- CHAR8 *BackUpBuffer;
- EFI_HII_VALUE BackUpValue2;
- CHAR8 *BackUpBuffer2;
- EFI_STATUS Status;
- BOOLEAN ValueChanged;
- UINTN BufferWidth;
+ EFI_HII_VALUE BackUpValue;
+ CHAR8 *BackUpBuffer;
+ EFI_HII_VALUE BackUpValue2;
+ CHAR8 *BackUpBuffer2;
+ EFI_STATUS Status;
+ BOOLEAN ValueChanged;
+ UINTN BufferWidth;
//
// For quetion without storage, always mark it as data not changed.
//
- if (Question->Storage == NULL && Question->Operand != EFI_IFR_TIME_OP && Question->Operand != EFI_IFR_DATE_OP) {
+ if ((Question->Storage == NULL) && (Question->Operand != EFI_IFR_TIME_OP) && (Question->Operand != EFI_IFR_DATE_OP)) {
return FALSE;
}
- BackUpBuffer = NULL;
+ BackUpBuffer = NULL;
BackUpBuffer2 = NULL;
- ValueChanged = FALSE;
+ ValueChanged = FALSE;
switch (Question->Operand) {
case EFI_IFR_ORDERED_LIST_OP:
@@ -4998,7 +5046,7 @@ IsQuestionValueChanged (
case EFI_IFR_STRING_OP:
case EFI_IFR_PASSWORD_OP:
- BufferWidth = (UINTN) Question->Maximum * sizeof (CHAR16);
+ BufferWidth = (UINTN)Question->Maximum * sizeof (CHAR16);
BackUpBuffer = AllocateCopyPool (BufferWidth, Question->BufferValue);
ASSERT (BackUpBuffer != NULL);
break;
@@ -5007,22 +5055,23 @@ IsQuestionValueChanged (
BufferWidth = 0;
break;
}
+
CopyMem (&BackUpValue, &Question->HiiValue, sizeof (EFI_HII_VALUE));
if (GetValueFrom == GetSetValueWithBothBuffer) {
Status = GetQuestionValue (FormSet, Form, Question, GetSetValueWithEditBuffer);
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
switch (Question->Operand) {
case EFI_IFR_ORDERED_LIST_OP:
- BufferWidth = Question->StorageWidth;
+ BufferWidth = Question->StorageWidth;
BackUpBuffer2 = AllocateCopyPool (BufferWidth, Question->BufferValue);
ASSERT (BackUpBuffer2 != NULL);
break;
case EFI_IFR_STRING_OP:
case EFI_IFR_PASSWORD_OP:
- BufferWidth = (UINTN) Question->Maximum * sizeof (CHAR16);
+ BufferWidth = (UINTN)Question->Maximum * sizeof (CHAR16);
BackUpBuffer2 = AllocateCopyPool (BufferWidth, Question->BufferValue);
ASSERT (BackUpBuffer2 != NULL);
break;
@@ -5031,21 +5080,24 @@ IsQuestionValueChanged (
BufferWidth = 0;
break;
}
+
CopyMem (&BackUpValue2, &Question->HiiValue, sizeof (EFI_HII_VALUE));
Status = GetQuestionValue (FormSet, Form, Question, GetSetValueWithBuffer);
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
- if (CompareMem (&BackUpValue2, &Question->HiiValue, sizeof (EFI_HII_VALUE)) != 0 ||
- CompareMem (BackUpBuffer2, Question->BufferValue, BufferWidth) != 0) {
+ if ((CompareMem (&BackUpValue2, &Question->HiiValue, sizeof (EFI_HII_VALUE)) != 0) ||
+ (CompareMem (BackUpBuffer2, Question->BufferValue, BufferWidth) != 0))
+ {
ValueChanged = TRUE;
}
} else {
Status = GetQuestionValue (FormSet, Form, Question, GetValueFrom);
- ASSERT_EFI_ERROR(Status);
+ ASSERT_EFI_ERROR (Status);
- if (CompareMem (&BackUpValue, &Question->HiiValue, sizeof (EFI_HII_VALUE)) != 0 ||
- CompareMem (BackUpBuffer, Question->BufferValue, BufferWidth) != 0) {
+ if ((CompareMem (&BackUpValue, &Question->HiiValue, sizeof (EFI_HII_VALUE)) != 0) ||
+ (CompareMem (BackUpBuffer, Question->BufferValue, BufferWidth) != 0))
+ {
ValueChanged = TRUE;
}
}
@@ -5080,14 +5132,14 @@ IsQuestionValueChanged (
**/
EFI_STATUS
LoadFormConfig (
- IN OUT UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- FORM_BROWSER_STATEMENT *Question;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_STATEMENT *Question;
Link = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, Link)) {
@@ -5096,17 +5148,18 @@ LoadFormConfig (
//
// Initialize local copy of Value for each Question
//
- if (Question->Operand == EFI_IFR_PASSWORD_OP && (Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK)== 0) {
+ if ((Question->Operand == EFI_IFR_PASSWORD_OP) && ((Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == 0)) {
Status = GetQuestionValue (FormSet, Form, Question, GetSetValueWithHiiDriver);
} else {
Status = GetQuestionValue (FormSet, Form, Question, GetSetValueWithEditBuffer);
}
+
if (EFI_ERROR (Status)) {
return Status;
}
if ((Question->Operand == EFI_IFR_STRING_OP) || (Question->Operand == EFI_IFR_PASSWORD_OP)) {
- HiiSetString (FormSet->HiiHandle, Question->HiiValue.Value.string, (CHAR16*)Question->BufferValue, NULL);
+ HiiSetString (FormSet->HiiHandle, Question->HiiValue.Value.string, (CHAR16 *)Question->BufferValue, NULL);
}
Link = GetNextNode (&Form->StatementListHead, Link);
@@ -5129,13 +5182,13 @@ LoadFormConfig (
**/
EFI_STATUS
LoadFormSetConfig (
- IN OUT UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_FORMSET *FormSet
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_FORMSET *FormSet
)
{
- EFI_STATUS Status;
- LIST_ENTRY *Link;
- FORM_BROWSER_FORM *Form;
+ EFI_STATUS Status;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORM *Form;
Link = GetFirstNode (&FormSet->FormListHead);
while (!IsNull (&FormSet->FormListHead, Link)) {
@@ -5169,12 +5222,12 @@ LoadFormSetConfig (
**/
VOID
RemoveElement (
- IN OUT BROWSER_STORAGE *Storage,
- IN CHAR16 *RequestElement
+ IN OUT BROWSER_STORAGE *Storage,
+ IN CHAR16 *RequestElement
)
{
- CHAR16 *NewStr;
- CHAR16 *DestStr;
+ CHAR16 *NewStr;
+ CHAR16 *DestStr;
ASSERT (Storage->ConfigRequest != NULL && RequestElement != NULL);
@@ -5203,13 +5256,13 @@ RemoveElement (
**/
VOID
RemoveConfigRequest (
- FORMSET_STORAGE *Storage,
- CHAR16 *ConfigRequest
+ FORMSET_STORAGE *Storage,
+ CHAR16 *ConfigRequest
)
{
- CHAR16 *RequestElement;
- CHAR16 *NextRequestElement;
- CHAR16 *SearchKey;
+ CHAR16 *RequestElement;
+ CHAR16 *NextRequestElement;
+ CHAR16 *SearchKey;
//
// No request element in it, just return.
@@ -5290,26 +5343,28 @@ CleanBrowserStorage (
IN OUT FORM_BROWSER_FORMSET *FormSet
)
{
- LIST_ENTRY *Link;
- FORMSET_STORAGE *Storage;
+ LIST_ENTRY *Link;
+ FORMSET_STORAGE *Storage;
Link = GetFirstNode (&FormSet->StorageListHead);
while (!IsNull (&FormSet->StorageListHead, Link)) {
Storage = FORMSET_STORAGE_FROM_LINK (Link);
- Link = GetNextNode (&FormSet->StorageListHead, Link);
+ Link = GetNextNode (&FormSet->StorageListHead, Link);
if (Storage->BrowserStorage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER) {
- if (Storage->ConfigRequest == NULL || Storage->BrowserStorage->ConfigRequest == NULL) {
+ if ((Storage->ConfigRequest == NULL) || (Storage->BrowserStorage->ConfigRequest == NULL)) {
continue;
}
RemoveConfigRequest (Storage, Storage->ConfigRequest);
- } else if (Storage->BrowserStorage->Type == EFI_HII_VARSTORE_BUFFER ||
- Storage->BrowserStorage->Type == EFI_HII_VARSTORE_NAME_VALUE) {
+ } else if ((Storage->BrowserStorage->Type == EFI_HII_VARSTORE_BUFFER) ||
+ (Storage->BrowserStorage->Type == EFI_HII_VARSTORE_NAME_VALUE))
+ {
if (Storage->BrowserStorage->ConfigRequest != NULL) {
FreePool (Storage->BrowserStorage->ConfigRequest);
Storage->BrowserStorage->ConfigRequest = NULL;
}
+
Storage->BrowserStorage->Initialized = FALSE;
}
}
@@ -5327,8 +5382,8 @@ CleanBrowserStorage (
**/
BOOLEAN
ElementValidation (
- BROWSER_STORAGE *BrowserStorage,
- CHAR16 *RequestElement
+ BROWSER_STORAGE *BrowserStorage,
+ CHAR16 *RequestElement
)
{
return StrStr (BrowserStorage->ConfigRequest, RequestElement) != NULL ? TRUE : FALSE;
@@ -5344,19 +5399,19 @@ ElementValidation (
**/
VOID
AppendConfigRequest (
- IN OUT CHAR16 **ConfigRequest,
- IN OUT UINTN *SpareStrLen,
- IN CHAR16 *RequestElement
+ IN OUT CHAR16 **ConfigRequest,
+ IN OUT UINTN *SpareStrLen,
+ IN CHAR16 *RequestElement
)
{
- CHAR16 *NewStr;
- UINTN StringSize;
- UINTN StrLength;
- UINTN MaxLen;
+ CHAR16 *NewStr;
+ UINTN StringSize;
+ UINTN StrLength;
+ UINTN MaxLen;
- StrLength = StrLen (RequestElement);
+ StrLength = StrLen (RequestElement);
StringSize = (*ConfigRequest != NULL) ? StrSize (*ConfigRequest) : sizeof (CHAR16);
- MaxLen = StringSize / sizeof (CHAR16) + *SpareStrLen;
+ MaxLen = StringSize / sizeof (CHAR16) + *SpareStrLen;
//
// Append <RequestElement> to <ConfigRequest>
@@ -5373,6 +5428,7 @@ AppendConfigRequest (
CopyMem (NewStr, *ConfigRequest, StringSize);
FreePool (*ConfigRequest);
}
+
*ConfigRequest = NewStr;
*SpareStrLen = CONFIG_REQUEST_STRING_INCREMENTAL;
}
@@ -5394,20 +5450,20 @@ AppendConfigRequest (
**/
BOOLEAN
ConfigRequestAdjust (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *Request,
- IN BOOLEAN RespString
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *Request,
+ IN BOOLEAN RespString
)
{
- CHAR16 *RequestElement;
- CHAR16 *NextRequestElement;
- CHAR16 *NextElementBakup;
- CHAR16 *SearchKey;
- CHAR16 *ValueKey;
- BOOLEAN RetVal;
- CHAR16 *ConfigRequest;
-
- RetVal = FALSE;
+ CHAR16 *RequestElement;
+ CHAR16 *NextRequestElement;
+ CHAR16 *NextElementBakup;
+ CHAR16 *SearchKey;
+ CHAR16 *ValueKey;
+ BOOLEAN RetVal;
+ CHAR16 *ConfigRequest;
+
+ RetVal = FALSE;
NextElementBakup = NULL;
ValueKey = NULL;
@@ -5447,7 +5503,6 @@ ConfigRequestAdjust (
}
while (RequestElement != NULL) {
-
//
// +1 to avoid find header itself.
//
@@ -5458,17 +5513,18 @@ ConfigRequestAdjust (
//
if (NextRequestElement != NULL) {
if (RespString && (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER)) {
- NextElementBakup = NextRequestElement;
+ NextElementBakup = NextRequestElement;
NextRequestElement = StrStr (RequestElement, ValueKey);
ASSERT (NextRequestElement != NULL);
}
+
//
// Replace "&" with '\0'.
//
*NextRequestElement = L'\0';
} else {
if (RespString && (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER)) {
- NextElementBakup = NextRequestElement;
+ NextElementBakup = NextRequestElement;
NextRequestElement = StrStr (RequestElement, ValueKey);
ASSERT (NextRequestElement != NULL);
//
@@ -5482,7 +5538,7 @@ ConfigRequestAdjust (
//
// Add this element to the Storage->BrowserStorage->AllRequestElement.
//
- AppendConfigRequest(&Storage->ConfigRequest, &Storage->SpareStrLen, RequestElement);
+ AppendConfigRequest (&Storage->ConfigRequest, &Storage->SpareStrLen, RequestElement);
RetVal = TRUE;
}
@@ -5512,8 +5568,8 @@ ConfigRequestAdjust (
**/
VOID
LoadStorage (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORMSET_STORAGE *Storage
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORMSET_STORAGE *Storage
)
{
EFI_STATUS Status;
@@ -5531,9 +5587,10 @@ LoadStorage (
case EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER:
if (Storage->BrowserStorage->ConfigRequest != NULL) {
- ConfigRequestAdjust(Storage->BrowserStorage, Storage->ConfigRequest, FALSE);
+ ConfigRequestAdjust (Storage->BrowserStorage, Storage->ConfigRequest, FALSE);
return;
}
+
break;
case EFI_HII_VARSTORE_BUFFER:
@@ -5549,7 +5606,7 @@ LoadStorage (
// Just update the ConfigRequest, if storage already initialized.
//
if (Storage->BrowserStorage->Initialized) {
- ConfigRequestAdjust(Storage->BrowserStorage, Storage->ConfigRequest, FALSE);
+ ConfigRequestAdjust (Storage->BrowserStorage, Storage->ConfigRequest, FALSE);
return;
}
@@ -5566,15 +5623,16 @@ LoadStorage (
// Allocate and fill a buffer large enough to hold the <ConfigHdr> template
// followed by "&OFFSET=0&WIDTH=WWWW"followed by a Null-terminator
//
- StrLen = StrSize (Storage->ConfigHdr) + 20 * sizeof (CHAR16);
+ StrLen = StrSize (Storage->ConfigHdr) + 20 * sizeof (CHAR16);
ConfigRequest = AllocateZeroPool (StrLen);
ASSERT (ConfigRequest != NULL);
UnicodeSPrint (
- ConfigRequest,
- StrLen,
- L"%s&OFFSET=0&WIDTH=%04x",
- Storage->ConfigHdr,
- Storage->BrowserStorage->Size);
+ ConfigRequest,
+ StrLen,
+ L"%s&OFFSET=0&WIDTH=%04x",
+ Storage->ConfigHdr,
+ Storage->BrowserStorage->Size
+ );
} else {
ConfigRequest = Storage->ConfigRequest;
}
@@ -5583,11 +5641,11 @@ LoadStorage (
// Request current settings from Configuration Driver
//
Status = mHiiConfigRouting->ExtractConfig (
- mHiiConfigRouting,
- ConfigRequest,
- &Progress,
- &Result
- );
+ mHiiConfigRouting,
+ ConfigRequest,
+ &Progress,
+ &Result
+ );
//
// If get value fail, extract default from IFR binary
@@ -5612,7 +5670,7 @@ LoadStorage (
//
// Input NULL for ConfigRequest field means sync all fields from editbuffer to buffer.
//
- SynchronizeStorage(Storage->BrowserStorage, NULL, TRUE);
+ SynchronizeStorage (Storage->BrowserStorage, NULL, TRUE);
if (Storage->BrowserStorage->Type != EFI_HII_VARSTORE_NAME_VALUE) {
if (ConfigRequest != NULL) {
@@ -5630,14 +5688,14 @@ LoadStorage (
**/
VOID
SyncStatusForQuestion (
- IN OUT FORM_BROWSER_FORMSET *NewFormSet,
- IN FORM_BROWSER_STATEMENT *OldQuestion
+ IN OUT FORM_BROWSER_FORMSET *NewFormSet,
+ IN FORM_BROWSER_STATEMENT *OldQuestion
)
{
- LIST_ENTRY *Link;
- LIST_ENTRY *QuestionLink;
- FORM_BROWSER_FORM *Form;
- FORM_BROWSER_STATEMENT *Question;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *QuestionLink;
+ FORM_BROWSER_FORM *Form;
+ FORM_BROWSER_STATEMENT *Question;
//
// For each form in one formset.
@@ -5652,7 +5710,7 @@ SyncStatusForQuestion (
//
QuestionLink = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, QuestionLink)) {
- Question = FORM_BROWSER_STATEMENT_FROM_LINK (QuestionLink);
+ Question = FORM_BROWSER_STATEMENT_FROM_LINK (QuestionLink);
QuestionLink = GetNextNode (&Form->StatementListHead, QuestionLink);
if (Question->QuestionId == OldQuestion->QuestionId) {
@@ -5672,14 +5730,14 @@ SyncStatusForQuestion (
**/
VOID
SyncStatusForFormSet (
- IN OUT FORM_BROWSER_FORMSET *NewFormSet,
- IN FORM_BROWSER_FORMSET *OldFormSet
+ IN OUT FORM_BROWSER_FORMSET *NewFormSet,
+ IN FORM_BROWSER_FORMSET *OldFormSet
)
{
- LIST_ENTRY *Link;
- LIST_ENTRY *QuestionLink;
- FORM_BROWSER_FORM *Form;
- FORM_BROWSER_STATEMENT *Question;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *QuestionLink;
+ FORM_BROWSER_FORM *Form;
+ FORM_BROWSER_STATEMENT *Question;
//
// For each form in one formset.
@@ -5694,7 +5752,7 @@ SyncStatusForFormSet (
//
QuestionLink = GetFirstNode (&Form->StatementListHead);
while (!IsNull (&Form->StatementListHead, QuestionLink)) {
- Question = FORM_BROWSER_STATEMENT_FROM_LINK (QuestionLink);
+ Question = FORM_BROWSER_STATEMENT_FROM_LINK (QuestionLink);
QuestionLink = GetNextNode (&Form->StatementListHead, QuestionLink);
if (!Question->ValueChanged) {
@@ -5717,12 +5775,12 @@ SyncStatusForFormSet (
**/
VOID
InitializeCurrentSetting (
- IN OUT FORM_BROWSER_FORMSET *FormSet
+ IN OUT FORM_BROWSER_FORMSET *FormSet
)
{
- LIST_ENTRY *Link;
- FORMSET_STORAGE *Storage;
- FORM_BROWSER_FORMSET *OldFormSet;
+ LIST_ENTRY *Link;
+ FORMSET_STORAGE *Storage;
+ FORM_BROWSER_FORMSET *OldFormSet;
//
// Try to find pre FormSet in the maintain backup list.
@@ -5734,6 +5792,7 @@ InitializeCurrentSetting (
RemoveEntryList (&OldFormSet->Link);
DestroyFormSet (OldFormSet);
}
+
InsertTailList (&gBrowserFormSetList, &FormSet->Link);
//
@@ -5754,7 +5813,6 @@ InitializeCurrentSetting (
}
}
-
/**
Fetch the Ifr binary data of a FormSet.
@@ -5776,10 +5834,10 @@ InitializeCurrentSetting (
**/
EFI_STATUS
GetIfrBinaryData (
- IN EFI_HII_HANDLE Handle,
- IN OUT EFI_GUID *FormSetGuid,
- OUT UINTN *BinaryLength,
- OUT UINT8 **BinaryData
+ IN EFI_HII_HANDLE Handle,
+ IN OUT EFI_GUID *FormSetGuid,
+ OUT UINTN *BinaryLength,
+ OUT UINT8 **BinaryData
)
{
EFI_STATUS Status;
@@ -5798,7 +5856,7 @@ GetIfrBinaryData (
EFI_GUID *ComparingGuid;
OpCodeData = NULL;
- Package = NULL;
+ Package = NULL;
ZeroMem (&PackageHeader, sizeof (EFI_HII_PACKAGE_HEADER));
//
@@ -5813,30 +5871,32 @@ GetIfrBinaryData (
//
// Get HII PackageList
//
- BufferSize = 0;
+ BufferSize = 0;
HiiPackageList = NULL;
- Status = mHiiDatabase->ExportPackageLists (mHiiDatabase, Handle, &BufferSize, HiiPackageList);
+ Status = mHiiDatabase->ExportPackageLists (mHiiDatabase, Handle, &BufferSize, HiiPackageList);
if (Status == EFI_BUFFER_TOO_SMALL) {
HiiPackageList = AllocatePool (BufferSize);
ASSERT (HiiPackageList != NULL);
Status = mHiiDatabase->ExportPackageLists (mHiiDatabase, Handle, &BufferSize, HiiPackageList);
}
+
if (EFI_ERROR (Status)) {
return Status;
}
+
ASSERT (HiiPackageList != NULL);
//
// Get Form package from this HII package List
//
- Offset = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
+ Offset = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
Offset2 = 0;
CopyMem (&PackageListLength, &HiiPackageList->PackageLength, sizeof (UINT32));
ClassGuidMatch = FALSE;
while (Offset < PackageListLength) {
- Package = ((UINT8 *) HiiPackageList) + Offset;
+ Package = ((UINT8 *)HiiPackageList) + Offset;
CopyMem (&PackageHeader, Package, sizeof (EFI_HII_PACKAGE_HEADER));
if (PackageHeader.Type == EFI_HII_PACKAGE_FORMS) {
@@ -5847,27 +5907,29 @@ GetIfrBinaryData (
while (Offset2 < PackageHeader.Length) {
OpCodeData = Package + Offset2;
- if (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) {
+ if (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode == EFI_IFR_FORM_SET_OP) {
//
// Try to compare against formset GUID
//
if (IsZeroGuid (ComparingGuid) ||
- CompareGuid (ComparingGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER)))) {
+ CompareGuid (ComparingGuid, (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER))))
+ {
break;
}
- if (((EFI_IFR_OP_HEADER *) OpCodeData)->Length > OFFSET_OF (EFI_IFR_FORM_SET, Flags)) {
+ if (((EFI_IFR_OP_HEADER *)OpCodeData)->Length > OFFSET_OF (EFI_IFR_FORM_SET, Flags)) {
//
// Try to compare against formset class GUID
//
- NumberOfClassGuid = (UINT8) (((EFI_IFR_FORM_SET *) OpCodeData)->Flags & 0x3);
- ClassGuid = (EFI_GUID *) (OpCodeData + sizeof (EFI_IFR_FORM_SET));
+ NumberOfClassGuid = (UINT8)(((EFI_IFR_FORM_SET *)OpCodeData)->Flags & 0x3);
+ ClassGuid = (EFI_GUID *)(OpCodeData + sizeof (EFI_IFR_FORM_SET));
for (Index = 0; Index < NumberOfClassGuid; Index++) {
if (CompareGuid (ComparingGuid, ClassGuid + Index)) {
ClassGuidMatch = TRUE;
break;
}
}
+
if (ClassGuidMatch) {
break;
}
@@ -5877,7 +5939,7 @@ GetIfrBinaryData (
}
}
- Offset2 += ((EFI_IFR_OP_HEADER *) OpCodeData)->Length;
+ Offset2 += ((EFI_IFR_OP_HEADER *)OpCodeData)->Length;
}
if (Offset2 < PackageHeader.Length) {
@@ -5903,7 +5965,7 @@ GetIfrBinaryData (
//
// Return the FormSet GUID
//
- CopyMem (FormSetGuid, &((EFI_IFR_FORM_SET *) OpCodeData)->Guid, sizeof (EFI_GUID));
+ CopyMem (FormSetGuid, &((EFI_IFR_FORM_SET *)OpCodeData)->Guid, sizeof (EFI_GUID));
}
//
@@ -5912,7 +5974,7 @@ GetIfrBinaryData (
// of the Form Package.
//
*BinaryLength = PackageHeader.Length - Offset2;
- *BinaryData = AllocateCopyPool (*BinaryLength, OpCodeData);
+ *BinaryData = AllocateCopyPool (*BinaryLength, OpCodeData);
FreePool (HiiPackageList);
@@ -5923,7 +5985,6 @@ GetIfrBinaryData (
return EFI_SUCCESS;
}
-
/**
Initialize the internal data structure of a FormSet.
@@ -5941,13 +6002,13 @@ GetIfrBinaryData (
**/
EFI_STATUS
InitializeFormSet (
- IN EFI_HII_HANDLE Handle,
- IN OUT EFI_GUID *FormSetGuid,
- OUT FORM_BROWSER_FORMSET *FormSet
+ IN EFI_HII_HANDLE Handle,
+ IN OUT EFI_GUID *FormSetGuid,
+ OUT FORM_BROWSER_FORMSET *FormSet
)
{
- EFI_STATUS Status;
- EFI_HANDLE DriverHandle;
+ EFI_STATUS Status;
+ EFI_HANDLE DriverHandle;
Status = GetIfrBinaryData (Handle, FormSetGuid, &FormSet->IfrBinaryLength, &FormSet->IfrBinaryData);
if (EFI_ERROR (Status)) {
@@ -5966,12 +6027,13 @@ InitializeFormSet (
if (EFI_ERROR (Status)) {
return Status;
}
+
FormSet->DriverHandle = DriverHandle;
- Status = gBS->HandleProtocol (
- DriverHandle,
- &gEfiHiiConfigAccessProtocolGuid,
- (VOID **) &FormSet->ConfigAccess
- );
+ Status = gBS->HandleProtocol (
+ DriverHandle,
+ &gEfiHiiConfigAccessProtocolGuid,
+ (VOID **)&FormSet->ConfigAccess
+ );
if (EFI_ERROR (Status)) {
//
// Configuration Driver don't attach ConfigAccess protocol to its HII package
@@ -5988,7 +6050,6 @@ InitializeFormSet (
return Status;
}
-
/**
Save globals used by previous call to SendForm(). SendForm() may be called from
HiiConfigAccess.Callback(), this will cause SendForm() be reentried.
@@ -6000,9 +6061,9 @@ SaveBrowserContext (
VOID
)
{
- BROWSER_CONTEXT *Context;
- FORM_ENTRY_INFO *MenuList;
- FORM_BROWSER_FORMSET *FormSet;
+ BROWSER_CONTEXT *Context;
+ FORM_ENTRY_INFO *MenuList;
+ FORM_BROWSER_FORMSET *FormSet;
gBrowserContextCount++;
if (gBrowserContextCount == 1) {
@@ -6020,39 +6081,39 @@ SaveBrowserContext (
//
// Save FormBrowser context
//
- Context->Selection = gCurrentSelection;
- Context->ResetRequired = gResetRequiredFormLevel;
- Context->FlagReconnect = gFlagReconnect;
- Context->CallbackReconnect = gCallbackReconnect;
- Context->ExitRequired = gExitRequired;
- Context->HiiHandle = mCurrentHiiHandle;
- Context->FormId = mCurrentFormId;
+ Context->Selection = gCurrentSelection;
+ Context->ResetRequired = gResetRequiredFormLevel;
+ Context->FlagReconnect = gFlagReconnect;
+ Context->CallbackReconnect = gCallbackReconnect;
+ Context->ExitRequired = gExitRequired;
+ Context->HiiHandle = mCurrentHiiHandle;
+ Context->FormId = mCurrentFormId;
CopyGuid (&Context->FormSetGuid, &mCurrentFormSetGuid);
- Context->SystemLevelFormSet = mSystemLevelFormSet;
- Context->CurFakeQestId = mCurFakeQestId;
+ Context->SystemLevelFormSet = mSystemLevelFormSet;
+ Context->CurFakeQestId = mCurFakeQestId;
Context->HiiPackageListUpdated = mHiiPackageListUpdated;
- Context->FinishRetrieveCall = mFinishRetrieveCall;
+ Context->FinishRetrieveCall = mFinishRetrieveCall;
//
// Save the menu history data.
//
- InitializeListHead(&Context->FormHistoryList);
+ InitializeListHead (&Context->FormHistoryList);
while (!IsListEmpty (&mPrivateData.FormBrowserEx2.FormViewHistoryHead)) {
MenuList = FORM_ENTRY_INFO_FROM_LINK (mPrivateData.FormBrowserEx2.FormViewHistoryHead.ForwardLink);
RemoveEntryList (&MenuList->Link);
- InsertTailList(&Context->FormHistoryList, &MenuList->Link);
+ InsertTailList (&Context->FormHistoryList, &MenuList->Link);
}
//
// Save formset list.
//
- InitializeListHead(&Context->FormSetList);
+ InitializeListHead (&Context->FormSetList);
while (!IsListEmpty (&gBrowserFormSetList)) {
FormSet = FORM_BROWSER_FORMSET_FROM_LINK (gBrowserFormSetList.ForwardLink);
RemoveEntryList (&FormSet->Link);
- InsertTailList(&Context->FormSetList, &FormSet->Link);
+ InsertTailList (&Context->FormSetList, &FormSet->Link);
}
//
@@ -6061,7 +6122,6 @@ SaveBrowserContext (
InsertHeadList (&gBrowserContextList, &Context->Link);
}
-
/**
Restore globals used by previous call to SendForm().
@@ -6071,10 +6131,10 @@ RestoreBrowserContext (
VOID
)
{
- LIST_ENTRY *Link;
- BROWSER_CONTEXT *Context;
- FORM_ENTRY_INFO *MenuList;
- FORM_BROWSER_FORMSET *FormSet;
+ LIST_ENTRY *Link;
+ BROWSER_CONTEXT *Context;
+ FORM_ENTRY_INFO *MenuList;
+ FORM_BROWSER_FORMSET *FormSet;
ASSERT (gBrowserContextCount != 0);
gBrowserContextCount--;
@@ -6087,24 +6147,24 @@ RestoreBrowserContext (
ASSERT (!IsListEmpty (&gBrowserContextList));
- Link = GetFirstNode (&gBrowserContextList);
+ Link = GetFirstNode (&gBrowserContextList);
Context = BROWSER_CONTEXT_FROM_LINK (Link);
//
// Restore FormBrowser context
//
- gCurrentSelection = Context->Selection;
+ gCurrentSelection = Context->Selection;
gResetRequiredFormLevel = Context->ResetRequired;
- gFlagReconnect = Context->FlagReconnect;
- gCallbackReconnect = Context->CallbackReconnect;
- gExitRequired = Context->ExitRequired;
- mCurrentHiiHandle = Context->HiiHandle;
- mCurrentFormId = Context->FormId;
+ gFlagReconnect = Context->FlagReconnect;
+ gCallbackReconnect = Context->CallbackReconnect;
+ gExitRequired = Context->ExitRequired;
+ mCurrentHiiHandle = Context->HiiHandle;
+ mCurrentFormId = Context->FormId;
CopyGuid (&mCurrentFormSetGuid, &Context->FormSetGuid);
- mSystemLevelFormSet = Context->SystemLevelFormSet;
- mCurFakeQestId = Context->CurFakeQestId;
+ mSystemLevelFormSet = Context->SystemLevelFormSet;
+ mCurFakeQestId = Context->CurFakeQestId;
mHiiPackageListUpdated = Context->HiiPackageListUpdated;
- mFinishRetrieveCall = Context->FinishRetrieveCall;
+ mFinishRetrieveCall = Context->FinishRetrieveCall;
//
// Restore the menu history data.
@@ -6113,7 +6173,7 @@ RestoreBrowserContext (
MenuList = FORM_ENTRY_INFO_FROM_LINK (Context->FormHistoryList.ForwardLink);
RemoveEntryList (&MenuList->Link);
- InsertTailList(&mPrivateData.FormBrowserEx2.FormViewHistoryHead, &MenuList->Link);
+ InsertTailList (&mPrivateData.FormBrowserEx2.FormViewHistoryHead, &MenuList->Link);
}
//
@@ -6123,7 +6183,7 @@ RestoreBrowserContext (
FormSet = FORM_BROWSER_FORMSET_FROM_LINK (Context->FormSetList.ForwardLink);
RemoveEntryList (&FormSet->Link);
- InsertTailList(&gBrowserFormSetList, &FormSet->Link);
+ InsertTailList (&gBrowserFormSetList, &FormSet->Link);
}
//
@@ -6143,19 +6203,20 @@ RestoreBrowserContext (
**/
FORM_BROWSER_FORMSET *
GetFormSetFromHiiHandle (
- EFI_HII_HANDLE Handle
+ EFI_HII_HANDLE Handle
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORMSET *FormSet;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORMSET *FormSet;
Link = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, Link)) {
FormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserFormSetList, Link);
- if (!ValidateFormSet(FormSet)) {
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ if (!ValidateFormSet (FormSet)) {
continue;
}
+
if (FormSet->HiiHandle == Handle) {
return FormSet;
}
@@ -6175,7 +6236,7 @@ GetFormSetFromHiiHandle (
**/
BOOLEAN
IsHiiHandleInBrowserContext (
- EFI_HII_HANDLE Handle
+ EFI_HII_HANDLE Handle
)
{
LIST_ENTRY *Link;
@@ -6200,6 +6261,7 @@ IsHiiHandleInBrowserContext (
//
return TRUE;
}
+
Link = GetNextNode (&gBrowserContextList, Link);
}
@@ -6221,9 +6283,9 @@ IsHiiHandleInBrowserContext (
EFI_STATUS
EFIAPI
PasswordCheck (
- IN FORM_DISPLAY_ENGINE_FORM *Form,
- IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
- IN EFI_STRING PasswordString OPTIONAL
+ IN FORM_DISPLAY_ENGINE_FORM *Form,
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
+ IN EFI_STRING PasswordString OPTIONAL
)
{
EFI_STATUS Status;
@@ -6233,7 +6295,7 @@ PasswordCheck (
FORM_BROWSER_STATEMENT *Question;
ConfigAccess = gCurrentSelection->FormSet->ConfigAccess;
- Question = GetBrowserStatement(Statement);
+ Question = GetBrowserStatement (Statement);
ASSERT (Question != NULL);
if ((Question->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) {
@@ -6288,7 +6350,7 @@ PasswordCheck (
**/
BROWSER_HOT_KEY *
GetHotKeyFromRegisterList (
- IN EFI_INPUT_KEY *KeyData
+ IN EFI_INPUT_KEY *KeyData
)
{
LIST_ENTRY *Link;
@@ -6300,6 +6362,7 @@ GetHotKeyFromRegisterList (
if (HotKey->KeyData->ScanCode == KeyData->ScanCode) {
return HotKey;
}
+
Link = GetNextNode (&gBrowserHotKeyList, Link);
}
@@ -6322,7 +6385,7 @@ GetHotKeyFromRegisterList (
EFI_STATUS
EFIAPI
SetScope (
- IN BROWSER_SETTING_SCOPE Scope
+ IN BROWSER_SETTING_SCOPE Scope
)
{
if (Scope >= MaxLevel) {
@@ -6366,10 +6429,10 @@ SetScope (
EFI_STATUS
EFIAPI
RegisterHotKey (
- IN EFI_INPUT_KEY *KeyData,
- IN UINT32 Action,
- IN UINT16 DefaultId,
- IN EFI_STRING HelpString OPTIONAL
+ IN EFI_INPUT_KEY *KeyData,
+ IN UINT32 Action,
+ IN UINT16 DefaultId,
+ IN EFI_STRING HelpString OPTIONAL
)
{
BROWSER_HOT_KEY *HotKey;
@@ -6377,8 +6440,9 @@ RegisterHotKey (
//
// Check input parameters.
//
- if (KeyData == NULL || KeyData->UnicodeChar != CHAR_NULL ||
- (Action != BROWSER_ACTION_UNREGISTER && HelpString == NULL)) {
+ if ((KeyData == NULL) || (KeyData->UnicodeChar != CHAR_NULL) ||
+ ((Action != BROWSER_ACTION_UNREGISTER) && (HelpString == NULL)))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -6424,11 +6488,12 @@ RegisterHotKey (
//
// Fill HotKey information.
//
- HotKey->Action = Action;
- HotKey->DefaultId = DefaultId;
+ HotKey->Action = Action;
+ HotKey->DefaultId = DefaultId;
if (HotKey->HelpString != NULL) {
FreePool (HotKey->HelpString);
}
+
HotKey->HelpString = AllocateCopyPool (StrSize (HelpString), HelpString);
return EFI_SUCCESS;
@@ -6445,7 +6510,7 @@ RegisterHotKey (
VOID
EFIAPI
RegiserExitHandler (
- IN EXIT_HANDLER Handler
+ IN EXIT_HANDLER Handler
)
{
ExitHandlerFunction = Handler;
@@ -6465,35 +6530,39 @@ IsBrowserDataModified (
VOID
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORMSET *FormSet;
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORMSET *FormSet;
switch (gBrowserSettingScope) {
case FormLevel:
if (gCurrentSelection == NULL) {
return FALSE;
}
+
return IsNvUpdateRequiredForForm (gCurrentSelection->Form);
case FormSetLevel:
if (gCurrentSelection == NULL) {
return FALSE;
}
+
return IsNvUpdateRequiredForFormSet (gCurrentSelection->FormSet);
case SystemLevel:
Link = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, Link)) {
FormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- if (!ValidateFormSet(FormSet)) {
+ if (!ValidateFormSet (FormSet)) {
continue;
}
if (IsNvUpdateRequiredForFormSet (FormSet)) {
return TRUE;
}
+
Link = GetNextNode (&gBrowserFormSetList, Link);
}
+
return FALSE;
default:
@@ -6514,15 +6583,15 @@ IsBrowserDataModified (
EFI_STATUS
EFIAPI
ExecuteAction (
- IN UINT32 Action,
- IN UINT16 DefaultId
+ IN UINT32 Action,
+ IN UINT16 DefaultId
)
{
- EFI_STATUS Status;
- FORM_BROWSER_FORMSET *FormSet;
- FORM_BROWSER_FORM *Form;
+ EFI_STATUS Status;
+ FORM_BROWSER_FORMSET *FormSet;
+ FORM_BROWSER_FORM *Form;
- if (gBrowserSettingScope < SystemLevel && gCurrentSelection == NULL) {
+ if ((gBrowserSettingScope < SystemLevel) && (gCurrentSelection == NULL)) {
return EFI_NOT_READY;
}
@@ -6552,6 +6621,7 @@ ExecuteAction (
if (EFI_ERROR (Status)) {
return Status;
}
+
UpdateStatementStatus (FormSet, Form, gBrowserSettingScope);
}
@@ -6569,7 +6639,7 @@ ExecuteAction (
// Executet the reset action.
//
if ((Action & BROWSER_ACTION_RESET) != 0) {
- gResetRequiredFormLevel = TRUE;
+ gResetRequiredFormLevel = TRUE;
gResetRequiredSystemLevel = TRUE;
}
@@ -6606,21 +6676,22 @@ SaveReminder (
VOID
)
{
- LIST_ENTRY *Link;
- FORM_BROWSER_FORMSET *FormSet;
- BOOLEAN IsDataChanged;
- UINT32 DataSavedAction;
- UINT32 ConfirmRet;
-
- DataSavedAction = BROWSER_NO_CHANGES;
- IsDataChanged = FALSE;
- Link = GetFirstNode (&gBrowserFormSetList);
+ LIST_ENTRY *Link;
+ FORM_BROWSER_FORMSET *FormSet;
+ BOOLEAN IsDataChanged;
+ UINT32 DataSavedAction;
+ UINT32 ConfirmRet;
+
+ DataSavedAction = BROWSER_NO_CHANGES;
+ IsDataChanged = FALSE;
+ Link = GetFirstNode (&gBrowserFormSetList);
while (!IsNull (&gBrowserFormSetList, Link)) {
FormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
- Link = GetNextNode (&gBrowserFormSetList, Link);
- if (!ValidateFormSet(FormSet)) {
+ Link = GetNextNode (&gBrowserFormSetList, Link);
+ if (!ValidateFormSet (FormSet)) {
continue;
}
+
if (IsNvUpdateRequiredForFormSet (FormSet)) {
IsDataChanged = TRUE;
break;
@@ -6638,7 +6709,7 @@ SaveReminder (
// If data is changed, prompt user to save or discard it.
//
do {
- ConfirmRet = (UINT32) mFormDisplay->ConfirmDataChange();
+ ConfirmRet = (UINT32)mFormDisplay->ConfirmDataChange ();
if (ConfirmRet == BROWSER_ACTION_SUBMIT) {
SubmitForm (NULL, NULL, SystemLevel);
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
index 54681fa..b66806d 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
@@ -10,7 +10,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _SETUP_H_
#define _SETUP_H_
-
#include <PiDxe.h>
#include <Protocol/SimpleTextOut.h>
@@ -46,15 +45,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/DevicePathLib.h>
#include <Library/UefiLib.h>
-
//
// This is the generated header file which includes whatever needs to be exported (strings + IFR)
//
-#define UI_ACTION_NONE 0
-#define UI_ACTION_REFRESH_FORM 1
-#define UI_ACTION_REFRESH_FORMSET 2
-#define UI_ACTION_EXIT 3
+#define UI_ACTION_NONE 0
+#define UI_ACTION_REFRESH_FORM 1
+#define UI_ACTION_REFRESH_FORMSET 2
+#define UI_ACTION_EXIT 3
//
//
@@ -69,57 +67,55 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// Incremental size of stack for expression
//
-#define EXPRESSION_STACK_SIZE_INCREMENT 0x100
+#define EXPRESSION_STACK_SIZE_INCREMENT 0x100
#define EFI_IFR_SPECIFICATION_VERSION (UINT16) (((EFI_SYSTEM_TABLE_REVISION >> 16) << 8) | (((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) / 10) << 4) | ((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) % 10))
-
-#define SETUP_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'B', 'D', 'V')
+#define SETUP_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'B', 'D', 'V')
typedef struct {
- UINT32 Signature;
+ UINT32 Signature;
- EFI_HANDLE Handle;
+ EFI_HANDLE Handle;
//
// Produced protocol
//
- EFI_FORM_BROWSER2_PROTOCOL FormBrowser2;
- EDKII_FORM_BROWSER_EXTENSION_PROTOCOL FormBrowserEx;
-
- EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL FormBrowserEx2;
+ EFI_FORM_BROWSER2_PROTOCOL FormBrowser2;
+ EDKII_FORM_BROWSER_EXTENSION_PROTOCOL FormBrowserEx;
+ EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL FormBrowserEx2;
} SETUP_DRIVER_PRIVATE_DATA;
//
// IFR relative definition
//
-#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
-#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
-#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
-#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
-#define EFI_HII_EXPRESSION_DISABLE_IF 4
-#define EFI_HII_EXPRESSION_VALUE 5
-#define EFI_HII_EXPRESSION_RULE 6
-#define EFI_HII_EXPRESSION_READ 7
-#define EFI_HII_EXPRESSION_WRITE 8
-#define EFI_HII_EXPRESSION_WARNING_IF 9
-
-#define EFI_HII_VARSTORE_BUFFER 0
-#define EFI_HII_VARSTORE_NAME_VALUE 1
-#define EFI_HII_VARSTORE_EFI_VARIABLE 2 // EFI Varstore type follow UEFI spec before 2.3.1.
-#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3 // EFI varstore type follow UEFI spec 2.3.1 and later.
-
-#define FORM_INCONSISTENT_VALIDATION 0
-#define FORM_NO_SUBMIT_VALIDATION 1
+#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
+#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
+#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
+#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
+#define EFI_HII_EXPRESSION_DISABLE_IF 4
+#define EFI_HII_EXPRESSION_VALUE 5
+#define EFI_HII_EXPRESSION_RULE 6
+#define EFI_HII_EXPRESSION_READ 7
+#define EFI_HII_EXPRESSION_WRITE 8
+#define EFI_HII_EXPRESSION_WARNING_IF 9
+
+#define EFI_HII_VARSTORE_BUFFER 0
+#define EFI_HII_VARSTORE_NAME_VALUE 1
+#define EFI_HII_VARSTORE_EFI_VARIABLE 2 // EFI Varstore type follow UEFI spec before 2.3.1.
+#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3 // EFI varstore type follow UEFI spec 2.3.1 and later.
+
+#define FORM_INCONSISTENT_VALIDATION 0
+#define FORM_NO_SUBMIT_VALIDATION 1
#define NAME_VALUE_NODE_SIGNATURE SIGNATURE_32 ('N', 'V', 'S', 'T')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
- CHAR16 *Name;
- CHAR16 *Value;
- CHAR16 *EditValue;
+ UINTN Signature;
+ LIST_ENTRY Link;
+ CHAR16 *Name;
+ CHAR16 *Value;
+ CHAR16 *EditValue;
} NAME_VALUE_NODE;
#define NAME_VALUE_NODE_FROM_LINK(a) CR (a, NAME_VALUE_NODE, Link, NAME_VALUE_NODE_SIGNATURE)
@@ -127,28 +123,28 @@ typedef struct {
#define BROWSER_STORAGE_SIGNATURE SIGNATURE_32 ('B', 'S', 'T', 'G')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- UINT8 Type; // Storage type
+ UINT8 Type; // Storage type
- BOOLEAN Initialized; // Whether this varstore is initialized, efi varstore not used.
+ BOOLEAN Initialized; // Whether this varstore is initialized, efi varstore not used.
- EFI_HII_HANDLE HiiHandle; // HiiHandle for this varstore, efi varstore not used.
- EFI_GUID Guid;
+ EFI_HII_HANDLE HiiHandle; // HiiHandle for this varstore, efi varstore not used.
+ EFI_GUID Guid;
- CHAR16 *Name; // For EFI_IFR_VARSTORE
- UINT16 Size;
- UINT8 *Buffer;
- UINT8 *EditBuffer; // Edit copy for Buffer Storage
+ CHAR16 *Name; // For EFI_IFR_VARSTORE
+ UINT16 Size;
+ UINT8 *Buffer;
+ UINT8 *EditBuffer; // Edit copy for Buffer Storage
- LIST_ENTRY NameValueListHead; // List of NAME_VALUE_NODE
+ LIST_ENTRY NameValueListHead; // List of NAME_VALUE_NODE
- UINT32 Attributes; // For EFI_IFR_VARSTORE_EFI: EFI Variable attribute
+ UINT32 Attributes; // For EFI_IFR_VARSTORE_EFI: EFI Variable attribute
- CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
- // <RequestElement> includes all fields which is used by current form sets.
- UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
+ CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
+ // <RequestElement> includes all fields which is used by current form sets.
+ UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
} BROWSER_STORAGE;
#define BROWSER_STORAGE_FROM_LINK(a) CR (a, BROWSER_STORAGE, Link, BROWSER_STORAGE_SIGNATURE)
@@ -156,63 +152,63 @@ typedef struct {
#define FORMSET_STORAGE_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'G')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- LIST_ENTRY SaveFailLink;
+ LIST_ENTRY SaveFailLink;
- UINT16 VarStoreId;
+ UINT16 VarStoreId;
- BROWSER_STORAGE *BrowserStorage;
+ BROWSER_STORAGE *BrowserStorage;
- CHAR16 *ConfigHdr; // <ConfigHdr>
+ CHAR16 *ConfigHdr; // <ConfigHdr>
- CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
- CHAR16 *ConfigAltResp; // Alt config response string for this ConfigRequest.
- BOOLEAN HasCallAltCfg; // Flag to show whether browser has call ExtractConfig to get Altcfg string.
- UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
- UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
- CHAR16 *RestoreConfigRequest; // When submit formset fail, the element need to be restored
- CHAR16 *SyncConfigRequest; // When submit formset fail, the element need to be synced
+ CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
+ CHAR16 *ConfigAltResp; // Alt config response string for this ConfigRequest.
+ BOOLEAN HasCallAltCfg; // Flag to show whether browser has call ExtractConfig to get Altcfg string.
+ UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
+ UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
+ CHAR16 *RestoreConfigRequest; // When submit formset fail, the element need to be restored
+ CHAR16 *SyncConfigRequest; // When submit formset fail, the element need to be synced
} FORMSET_STORAGE;
-#define FORMSET_STORAGE_FROM_LINK(a) CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)
+#define FORMSET_STORAGE_FROM_LINK(a) CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)
#define FORMSET_STORAGE_FROM_SAVE_FAIL_LINK(a) CR (a, FORMSET_STORAGE, SaveFailLink, FORMSET_STORAGE_SIGNATURE)
typedef union {
- EFI_STRING_ID VarName;
- UINT16 VarOffset;
+ EFI_STRING_ID VarName;
+ UINT16 VarOffset;
} VAR_STORE_INFO;
#define EXPRESSION_OPCODE_SIGNATURE SIGNATURE_32 ('E', 'X', 'O', 'P')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- UINT8 Operand;
+ UINT8 Operand;
- UINT8 Format; // For EFI_IFR_TO_STRING, EFI_IFR_FIND
- UINT8 Flags; // For EFI_IFR_SPAN
- UINT8 RuleId; // For EFI_IFR_RULE_REF
+ UINT8 Format; // For EFI_IFR_TO_STRING, EFI_IFR_FIND
+ UINT8 Flags; // For EFI_IFR_SPAN
+ UINT8 RuleId; // For EFI_IFR_RULE_REF
- EFI_HII_VALUE Value; // For EFI_IFR_EQ_ID_VAL, EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1
+ EFI_HII_VALUE Value; // For EFI_IFR_EQ_ID_VAL, EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1
- EFI_QUESTION_ID QuestionId; // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_VAL_LIST, EFI_IFR_QUESTION_REF1
- EFI_QUESTION_ID QuestionId2;
+ EFI_QUESTION_ID QuestionId; // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_VAL_LIST, EFI_IFR_QUESTION_REF1
+ EFI_QUESTION_ID QuestionId2;
- UINT16 ListLength; // For EFI_IFR_EQ_ID_VAL_LIST
- UINT16 *ValueList;
+ UINT16 ListLength; // For EFI_IFR_EQ_ID_VAL_LIST
+ UINT16 *ValueList;
- EFI_STRING_ID DevicePath; // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3
- EFI_GUID Guid;
+ EFI_STRING_ID DevicePath; // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3
+ EFI_GUID Guid;
- BROWSER_STORAGE *VarStorage; // For EFI_IFR_SET, EFI_IFR_GET
- VAR_STORE_INFO VarStoreInfo;// For EFI_IFR_SET, EFI_IFR_GET
- UINT8 ValueType; // For EFI_IFR_SET, EFI_IFR_GET
- UINT8 ValueWidth; // For EFI_IFR_SET, EFI_IFR_GET
- CHAR16 *ValueName; // For EFI_IFR_SET, EFI_IFR_GET
- LIST_ENTRY MapExpressionList; // nested expressions inside of Map opcode.
+ BROWSER_STORAGE *VarStorage; // For EFI_IFR_SET, EFI_IFR_GET
+ VAR_STORE_INFO VarStoreInfo; // For EFI_IFR_SET, EFI_IFR_GET
+ UINT8 ValueType; // For EFI_IFR_SET, EFI_IFR_GET
+ UINT8 ValueWidth; // For EFI_IFR_SET, EFI_IFR_GET
+ CHAR16 *ValueName; // For EFI_IFR_SET, EFI_IFR_GET
+ LIST_ENTRY MapExpressionList; // nested expressions inside of Map opcode.
} EXPRESSION_OPCODE;
#define EXPRESSION_OPCODE_FROM_LINK(a) CR (a, EXPRESSION_OPCODE, Link, EXPRESSION_OPCODE_SIGNATURE)
@@ -220,20 +216,20 @@ typedef struct {
#define FORM_EXPRESSION_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'P')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- UINT8 Type; // Type for this expression
+ UINT8 Type; // Type for this expression
- UINT8 RuleId; // For EFI_IFR_RULE only
- EFI_STRING_ID Error; // For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only
+ UINT8 RuleId; // For EFI_IFR_RULE only
+ EFI_STRING_ID Error; // For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only
- EFI_HII_VALUE Result; // Expression evaluation result
+ EFI_HII_VALUE Result; // Expression evaluation result
- UINT8 TimeOut; // For EFI_IFR_WARNING_IF
- EFI_IFR_OP_HEADER *OpCode; // Save the opcode buffer.
+ UINT8 TimeOut; // For EFI_IFR_WARNING_IF
+ EFI_IFR_OP_HEADER *OpCode; // Save the opcode buffer.
- LIST_ENTRY OpCodeListHead; // OpCodes consist of this expression (EXPRESSION_OPCODE)
+ LIST_ENTRY OpCodeListHead; // OpCodes consist of this expression (EXPRESSION_OPCODE)
} FORM_EXPRESSION;
#define FORM_EXPRESSION_FROM_LINK(a) CR (a, FORM_EXPRESSION, Link, FORM_EXPRESSION_SIGNATURE)
@@ -241,21 +237,21 @@ typedef struct {
#define FORM_EXPRESSION_LIST_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'R')
typedef struct {
- UINTN Signature;
- UINTN Count;
- FORM_EXPRESSION *Expression[1]; // Array[Count] of expressions
+ UINTN Signature;
+ UINTN Count;
+ FORM_EXPRESSION *Expression[1]; // Array[Count] of expressions
} FORM_EXPRESSION_LIST;
#define QUESTION_DEFAULT_SIGNATURE SIGNATURE_32 ('Q', 'D', 'F', 'T')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- UINT16 DefaultId;
- EFI_HII_VALUE Value; // Default value
+ UINT16 DefaultId;
+ EFI_HII_VALUE Value; // Default value
- FORM_EXPRESSION *ValueExpression; // Not-NULL indicates default value is provided by EFI_IFR_VALUE
+ FORM_EXPRESSION *ValueExpression; // Not-NULL indicates default value is provided by EFI_IFR_VALUE
} QUESTION_DEFAULT;
#define QUESTION_DEFAULT_FROM_LINK(a) CR (a, QUESTION_DEFAULT, Link, QUESTION_DEFAULT_SIGNATURE)
@@ -263,17 +259,17 @@ typedef struct {
#define QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- EFI_IFR_ONE_OF_OPTION *OpCode; // OneOfOption Data
+ EFI_IFR_ONE_OF_OPTION *OpCode; // OneOfOption Data
- EFI_STRING_ID Text;
- UINT8 Flags;
- EFI_HII_VALUE Value;
- EFI_IMAGE_ID ImageId;
+ EFI_STRING_ID Text;
+ UINT8 Flags;
+ EFI_HII_VALUE Value;
+ EFI_IMAGE_ID ImageId;
- FORM_EXPRESSION_LIST *SuppressExpression; // Non-NULL indicates nested inside of SuppressIf
+ FORM_EXPRESSION_LIST *SuppressExpression; // Non-NULL indicates nested inside of SuppressIf
} QUESTION_OPTION;
#define QUESTION_OPTION_FROM_LINK(a) CR (a, QUESTION_OPTION, Link, QUESTION_OPTION_SIGNATURE)
@@ -296,126 +292,126 @@ typedef struct _FORM_BROWSER_STATEMENT FORM_BROWSER_STATEMENT;
#define FORM_BROWSER_STATEMENT_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'A')
-struct _FORM_BROWSER_STATEMENT{
- UINTN Signature;
- LIST_ENTRY Link;
+struct _FORM_BROWSER_STATEMENT {
+ UINTN Signature;
+ LIST_ENTRY Link;
- UINT8 Operand; // The operand (first byte) of this Statement or Question
- EFI_IFR_OP_HEADER *OpCode;
+ UINT8 Operand; // The operand (first byte) of this Statement or Question
+ EFI_IFR_OP_HEADER *OpCode;
//
// Statement Header
//
- EFI_STRING_ID Prompt;
- EFI_STRING_ID Help;
- EFI_STRING_ID TextTwo; // For EFI_IFR_TEXT
+ EFI_STRING_ID Prompt;
+ EFI_STRING_ID Help;
+ EFI_STRING_ID TextTwo; // For EFI_IFR_TEXT
//
// Fake Question Id, used for statement not has true QuestionId.
//
- EFI_QUESTION_ID FakeQuestionId;
+ EFI_QUESTION_ID FakeQuestionId;
//
// Question Header
//
- EFI_QUESTION_ID QuestionId; // The value of zero is reserved
- EFI_VARSTORE_ID VarStoreId; // A value of zero indicates no variable storage
- BROWSER_STORAGE *Storage;
- VAR_STORE_INFO VarStoreInfo;
- UINT16 StorageWidth;
- UINT16 BitStorageWidth;
- UINT16 BitVarOffset;
- UINT8 QuestionFlags;
- BOOLEAN QuestionReferToBitField;// Whether the question is stored in a bit field.
- CHAR16 *VariableName; // Name/Value or EFI Variable name
- CHAR16 *BlockName; // Buffer storage block name: "OFFSET=...WIDTH=..."
-
- EFI_HII_VALUE HiiValue; // Edit copy for checkbox, numberic, oneof
- UINT8 *BufferValue; // Edit copy for string, password, orderedlist
- UINT8 ValueType; // Data type for orderedlist value array
+ EFI_QUESTION_ID QuestionId; // The value of zero is reserved
+ EFI_VARSTORE_ID VarStoreId; // A value of zero indicates no variable storage
+ BROWSER_STORAGE *Storage;
+ VAR_STORE_INFO VarStoreInfo;
+ UINT16 StorageWidth;
+ UINT16 BitStorageWidth;
+ UINT16 BitVarOffset;
+ UINT8 QuestionFlags;
+ BOOLEAN QuestionReferToBitField; // Whether the question is stored in a bit field.
+ CHAR16 *VariableName; // Name/Value or EFI Variable name
+ CHAR16 *BlockName; // Buffer storage block name: "OFFSET=...WIDTH=..."
+
+ EFI_HII_VALUE HiiValue; // Edit copy for checkbox, numberic, oneof
+ UINT8 *BufferValue; // Edit copy for string, password, orderedlist
+ UINT8 ValueType; // Data type for orderedlist value array
//
// OpCode specific members
//
- UINT8 Flags; // for EFI_IFR_CHECKBOX, EFI_IFR_DATE, EFI_IFR_NUMERIC, EFI_IFR_ONE_OF,
- // EFI_IFR_ORDERED_LIST, EFI_IFR_STRING,EFI_IFR_SUBTITLE,EFI_IFR_TIME, EFI_IFR_BANNER
- UINT8 MaxContainers; // for EFI_IFR_ORDERED_LIST
+ UINT8 Flags; // for EFI_IFR_CHECKBOX, EFI_IFR_DATE, EFI_IFR_NUMERIC, EFI_IFR_ONE_OF,
+ // EFI_IFR_ORDERED_LIST, EFI_IFR_STRING,EFI_IFR_SUBTITLE,EFI_IFR_TIME, EFI_IFR_BANNER
+ UINT8 MaxContainers; // for EFI_IFR_ORDERED_LIST
- UINT16 BannerLineNumber; // for EFI_IFR_BANNER, 1-based line number
- EFI_STRING_ID QuestionConfig; // for EFI_IFR_ACTION, if 0 then no configuration string will be processed
+ UINT16 BannerLineNumber; // for EFI_IFR_BANNER, 1-based line number
+ EFI_STRING_ID QuestionConfig; // for EFI_IFR_ACTION, if 0 then no configuration string will be processed
- UINT64 Minimum; // for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value
- UINT64 Maximum; // for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length
- UINT64 Step;
+ UINT64 Minimum; // for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value
+ UINT64 Maximum; // for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length
+ UINT64 Step;
- EFI_DEFAULT_ID DefaultId; // for EFI_IFR_RESET_BUTTON
- EFI_GUID RefreshGuid; // for EFI_IFR_REFRESH_ID
- BOOLEAN Locked; // Whether this statement is locked.
- BOOLEAN ValueChanged; // Whether this statement's value is changed.
+ EFI_DEFAULT_ID DefaultId; // for EFI_IFR_RESET_BUTTON
+ EFI_GUID RefreshGuid; // for EFI_IFR_REFRESH_ID
+ BOOLEAN Locked; // Whether this statement is locked.
+ BOOLEAN ValueChanged; // Whether this statement's value is changed.
//
// Get from IFR parsing
//
- FORM_EXPRESSION *ValueExpression; // nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly
- LIST_ENTRY DefaultListHead; // nested EFI_IFR_DEFAULT list (QUESTION_DEFAULT), provide default values
- LIST_ENTRY OptionListHead; // nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)
+ FORM_EXPRESSION *ValueExpression; // nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly
+ LIST_ENTRY DefaultListHead; // nested EFI_IFR_DEFAULT list (QUESTION_DEFAULT), provide default values
+ LIST_ENTRY OptionListHead; // nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)
- EFI_IMAGE_ID ImageId; // nested EFI_IFR_IMAGE
- UINT8 RefreshInterval; // nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh
+ EFI_IMAGE_ID ImageId; // nested EFI_IFR_IMAGE
+ UINT8 RefreshInterval; // nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh
- FORM_BROWSER_STATEMENT *ParentStatement;
+ FORM_BROWSER_STATEMENT *ParentStatement;
- LIST_ENTRY InconsistentListHead;// nested inconsistent expression list (FORM_EXPRESSION)
- LIST_ENTRY NoSubmitListHead; // nested nosubmit expression list (FORM_EXPRESSION)
- LIST_ENTRY WarningListHead; // nested warning expression list (FORM_EXPRESSION)
- FORM_EXPRESSION_LIST *Expression; // nesting inside of GrayOutIf/DisableIf/SuppressIf
+ LIST_ENTRY InconsistentListHead; // nested inconsistent expression list (FORM_EXPRESSION)
+ LIST_ENTRY NoSubmitListHead; // nested nosubmit expression list (FORM_EXPRESSION)
+ LIST_ENTRY WarningListHead; // nested warning expression list (FORM_EXPRESSION)
+ FORM_EXPRESSION_LIST *Expression; // nesting inside of GrayOutIf/DisableIf/SuppressIf
- FORM_EXPRESSION *ReadExpression; // nested EFI_IFR_READ, provide this question value by read expression.
- FORM_EXPRESSION *WriteExpression; // nested EFI_IFR_WRITE, evaluate write expression after this question value is set.
+ FORM_EXPRESSION *ReadExpression; // nested EFI_IFR_READ, provide this question value by read expression.
+ FORM_EXPRESSION *WriteExpression; // nested EFI_IFR_WRITE, evaluate write expression after this question value is set.
};
#define FORM_BROWSER_STATEMENT_FROM_LINK(a) CR (a, FORM_BROWSER_STATEMENT, Link, FORM_BROWSER_STATEMENT_SIGNATURE)
#define FORM_BROWSER_CONFIG_REQUEST_SIGNATURE SIGNATURE_32 ('F', 'C', 'R', 'S')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- LIST_ENTRY SaveFailLink;
+ LIST_ENTRY SaveFailLink;
- CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
- CHAR16 *ConfigAltResp; // Alt config response string for this ConfigRequest.
- UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
- UINTN SpareStrLen;
- CHAR16 *RestoreConfigRequest; // When submit form fail, the element need to be restored
- CHAR16 *SyncConfigRequest; // When submit form fail, the element need to be synced
+ CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
+ CHAR16 *ConfigAltResp; // Alt config response string for this ConfigRequest.
+ UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
+ UINTN SpareStrLen;
+ CHAR16 *RestoreConfigRequest; // When submit form fail, the element need to be restored
+ CHAR16 *SyncConfigRequest; // When submit form fail, the element need to be synced
- BROWSER_STORAGE *Storage;
+ BROWSER_STORAGE *Storage;
} FORM_BROWSER_CONFIG_REQUEST;
-#define FORM_BROWSER_CONFIG_REQUEST_FROM_LINK(a) CR (a, FORM_BROWSER_CONFIG_REQUEST, Link, FORM_BROWSER_CONFIG_REQUEST_SIGNATURE)
+#define FORM_BROWSER_CONFIG_REQUEST_FROM_LINK(a) CR (a, FORM_BROWSER_CONFIG_REQUEST, Link, FORM_BROWSER_CONFIG_REQUEST_SIGNATURE)
#define FORM_BROWSER_CONFIG_REQUEST_FROM_SAVE_FAIL_LINK(a) CR (a, FORM_BROWSER_CONFIG_REQUEST, SaveFailLink, FORM_BROWSER_CONFIG_REQUEST_SIGNATURE)
#define FORM_BROWSER_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M')
-#define STANDARD_MAP_FORM_TYPE 0x01
+#define STANDARD_MAP_FORM_TYPE 0x01
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
- UINT16 FormId; // FormId of normal form or formmap form.
- EFI_STRING_ID FormTitle; // FormTile of normal form, or FormMapMethod title of formmap form.
- UINT16 FormType; // Specific form type for the different form.
+ UINT16 FormId; // FormId of normal form or formmap form.
+ EFI_STRING_ID FormTitle; // FormTile of normal form, or FormMapMethod title of formmap form.
+ UINT16 FormType; // Specific form type for the different form.
- EFI_IMAGE_ID ImageId;
+ EFI_IMAGE_ID ImageId;
- BOOLEAN ModalForm; // Whether this is a modal form.
- BOOLEAN Locked; // Whether this form is locked.
- EFI_GUID RefreshGuid; // Form refresh event guid.
+ BOOLEAN ModalForm; // Whether this is a modal form.
+ BOOLEAN Locked; // Whether this form is locked.
+ EFI_GUID RefreshGuid; // Form refresh event guid.
- LIST_ENTRY FormViewListHead; // List of type FORMID_INFO is Browser View Form History List.
- LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
- LIST_ENTRY StatementListHead; // List of Statements and Questions (FORM_BROWSER_STATEMENT)
- LIST_ENTRY ConfigRequestHead; // List of configreques for all storage.
- FORM_EXPRESSION_LIST *SuppressExpression; // nesting inside of SuppressIf
+ LIST_ENTRY FormViewListHead; // List of type FORMID_INFO is Browser View Form History List.
+ LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
+ LIST_ENTRY StatementListHead; // List of Statements and Questions (FORM_BROWSER_STATEMENT)
+ LIST_ENTRY ConfigRequestHead; // List of configreques for all storage.
+ FORM_EXPRESSION_LIST *SuppressExpression; // nesting inside of SuppressIf
} FORM_BROWSER_FORM;
#define FORM_BROWSER_FORM_FROM_LINK(a) CR (a, FORM_BROWSER_FORM, Link, FORM_BROWSER_FORM_SIGNATURE)
@@ -435,69 +431,68 @@ typedef struct {
#define FORM_BROWSER_FORMSET_SIGNATURE SIGNATURE_32 ('F', 'B', 'F', 'S')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
- LIST_ENTRY SaveFailLink;
-
- EFI_HII_HANDLE HiiHandle; // unique id for formset.
- EFI_HANDLE DriverHandle;
- EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
-
- UINTN IfrBinaryLength;
- UINT8 *IfrBinaryData;
-
- BOOLEAN QuestionInited; // Have finished question initilization?
- EFI_GUID Guid;
- EFI_STRING_ID FormSetTitle;
- EFI_STRING_ID Help;
- UINT8 NumberOfClassGuid;
- EFI_GUID ClassGuid[3]; // Up to three ClassGuid
- UINT16 Class; // Tiano extended Class code
- UINT16 SubClass; // Tiano extended Subclass code
- EFI_IMAGE_ID ImageId;
- EFI_IFR_OP_HEADER *OpCode; //mainly for formset op to get ClassGuid
-
- FORM_BROWSER_STATEMENT *StatementBuffer; // Buffer for all Statements and Questions
- EXPRESSION_OPCODE *ExpressionBuffer; // Buffer for all Expression OpCode
- FORM_BROWSER_FORM *SaveFailForm; // The form which failed to save.
- FORM_BROWSER_STATEMENT *SaveFailStatement; // The Statement which failed to save.
-
- LIST_ENTRY StatementListOSF; // Statement list out side of the form.
- LIST_ENTRY StorageListHead; // Storage list (FORMSET_STORAGE)
- LIST_ENTRY SaveFailStorageListHead; // Storage list for the save fail storage.
- LIST_ENTRY DefaultStoreListHead; // DefaultStore list (FORMSET_DEFAULTSTORE)
- LIST_ENTRY FormListHead; // Form list (FORM_BROWSER_FORM)
- LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
+ UINTN Signature;
+ LIST_ENTRY Link;
+ LIST_ENTRY SaveFailLink;
+
+ EFI_HII_HANDLE HiiHandle; // unique id for formset.
+ EFI_HANDLE DriverHandle;
+ EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+
+ UINTN IfrBinaryLength;
+ UINT8 *IfrBinaryData;
+
+ BOOLEAN QuestionInited; // Have finished question initilization?
+ EFI_GUID Guid;
+ EFI_STRING_ID FormSetTitle;
+ EFI_STRING_ID Help;
+ UINT8 NumberOfClassGuid;
+ EFI_GUID ClassGuid[3]; // Up to three ClassGuid
+ UINT16 Class; // Tiano extended Class code
+ UINT16 SubClass; // Tiano extended Subclass code
+ EFI_IMAGE_ID ImageId;
+ EFI_IFR_OP_HEADER *OpCode; // mainly for formset op to get ClassGuid
+
+ FORM_BROWSER_STATEMENT *StatementBuffer; // Buffer for all Statements and Questions
+ EXPRESSION_OPCODE *ExpressionBuffer; // Buffer for all Expression OpCode
+ FORM_BROWSER_FORM *SaveFailForm; // The form which failed to save.
+ FORM_BROWSER_STATEMENT *SaveFailStatement; // The Statement which failed to save.
+
+ LIST_ENTRY StatementListOSF; // Statement list out side of the form.
+ LIST_ENTRY StorageListHead; // Storage list (FORMSET_STORAGE)
+ LIST_ENTRY SaveFailStorageListHead; // Storage list for the save fail storage.
+ LIST_ENTRY DefaultStoreListHead; // DefaultStore list (FORMSET_DEFAULTSTORE)
+ LIST_ENTRY FormListHead; // Form list (FORM_BROWSER_FORM)
+ LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
} FORM_BROWSER_FORMSET;
#define FORM_BROWSER_FORMSET_FROM_LINK(a) CR (a, FORM_BROWSER_FORMSET, Link, FORM_BROWSER_FORMSET_SIGNATURE)
#define FORM_BROWSER_FORMSET_FROM_SAVE_FAIL_LINK(a) CR (a, FORM_BROWSER_FORMSET, SaveFailLink, FORM_BROWSER_FORMSET_SIGNATURE)
typedef struct {
- LIST_ENTRY Link;
- EFI_EVENT RefreshEvent;
+ LIST_ENTRY Link;
+ EFI_EVENT RefreshEvent;
} FORM_BROWSER_REFRESH_EVENT_NODE;
-#define FORM_BROWSER_REFRESH_EVENT_FROM_LINK(a) BASE_CR (a, FORM_BROWSER_REFRESH_EVENT_NODE, Link)
-
+#define FORM_BROWSER_REFRESH_EVENT_FROM_LINK(a) BASE_CR (a, FORM_BROWSER_REFRESH_EVENT_NODE, Link)
typedef struct {
- EFI_HII_HANDLE Handle;
+ EFI_HII_HANDLE Handle;
//
// Target formset/form/Question information
//
- EFI_GUID FormSetGuid;
- UINT16 FormId;
- UINT16 QuestionId;
- UINTN Sequence; // used for time/date only.
+ EFI_GUID FormSetGuid;
+ UINT16 FormId;
+ UINT16 QuestionId;
+ UINTN Sequence; // used for time/date only.
- UINTN TopRow;
- UINTN BottomRow;
- UINTN PromptCol;
- UINTN OptionCol;
- UINTN CurrentRow;
+ UINTN TopRow;
+ UINTN BottomRow;
+ UINTN PromptCol;
+ UINTN OptionCol;
+ UINTN CurrentRow;
//
// Ation for Browser to taken:
@@ -505,46 +500,46 @@ typedef struct {
// UI_ACTION_REFRESH_FORM - re-evaluate expressions and repaint form
// UI_ACTION_REFRESH_FORMSET - re-parse formset IFR binary
//
- UINTN Action;
+ UINTN Action;
//
// Current selected fomset/form/Question
//
- FORM_BROWSER_FORMSET *FormSet;
- FORM_BROWSER_FORM *Form;
- FORM_BROWSER_STATEMENT *Statement;
+ FORM_BROWSER_FORMSET *FormSet;
+ FORM_BROWSER_FORM *Form;
+ FORM_BROWSER_STATEMENT *Statement;
//
// Whether the Form is editable
//
- BOOLEAN FormEditable;
+ BOOLEAN FormEditable;
- FORM_ENTRY_INFO *CurrentMenu;
+ FORM_ENTRY_INFO *CurrentMenu;
} UI_MENU_SELECTION;
#define BROWSER_CONTEXT_SIGNATURE SIGNATURE_32 ('B', 'C', 'T', 'X')
typedef struct {
- UINTN Signature;
- LIST_ENTRY Link;
+ UINTN Signature;
+ LIST_ENTRY Link;
//
// Globals defined in Setup.c
//
- BOOLEAN FlagReconnect;
- BOOLEAN CallbackReconnect;
- BOOLEAN ResetRequired;
- BOOLEAN ExitRequired;
- EFI_HII_HANDLE HiiHandle;
- EFI_GUID FormSetGuid;
- EFI_FORM_ID FormId;
- UI_MENU_SELECTION *Selection;
- FORM_BROWSER_FORMSET *SystemLevelFormSet;
- EFI_QUESTION_ID CurFakeQestId;
- BOOLEAN HiiPackageListUpdated;
- BOOLEAN FinishRetrieveCall;
- LIST_ENTRY FormHistoryList;
- LIST_ENTRY FormSetList;
+ BOOLEAN FlagReconnect;
+ BOOLEAN CallbackReconnect;
+ BOOLEAN ResetRequired;
+ BOOLEAN ExitRequired;
+ EFI_HII_HANDLE HiiHandle;
+ EFI_GUID FormSetGuid;
+ EFI_FORM_ID FormId;
+ UI_MENU_SELECTION *Selection;
+ FORM_BROWSER_FORMSET *SystemLevelFormSet;
+ EFI_QUESTION_ID CurFakeQestId;
+ BOOLEAN HiiPackageListUpdated;
+ BOOLEAN FinishRetrieveCall;
+ LIST_ENTRY FormHistoryList;
+ LIST_ENTRY FormSetList;
} BROWSER_CONTEXT;
#define BROWSER_CONTEXT_FROM_LINK(a) CR (a, BROWSER_CONTEXT, Link, BROWSER_CONTEXT_SIGNATURE)
@@ -570,26 +565,26 @@ typedef enum {
GetSetValueWithMax // Invalid value.
} GET_SET_QUESTION_VALUE_WITH;
-extern EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
-extern EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
-extern EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *mPathFromText;
-extern EDKII_FORM_DISPLAY_ENGINE_PROTOCOL *mFormDisplay;
-
-extern BOOLEAN gCallbackReconnect;
-extern BOOLEAN gFlagReconnect;
-extern BOOLEAN gResetRequiredFormLevel;
-extern BOOLEAN gResetRequiredSystemLevel;
-extern BOOLEAN gExitRequired;
-extern LIST_ENTRY gBrowserFormSetList;
-extern LIST_ENTRY gBrowserHotKeyList;
-extern BROWSER_SETTING_SCOPE gBrowserSettingScope;
-extern EXIT_HANDLER ExitHandlerFunction;
-extern EFI_HII_HANDLE mCurrentHiiHandle;
-extern SETUP_DRIVER_PRIVATE_DATA mPrivateData;
+extern EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
+extern EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
+extern EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *mPathFromText;
+extern EDKII_FORM_DISPLAY_ENGINE_PROTOCOL *mFormDisplay;
+
+extern BOOLEAN gCallbackReconnect;
+extern BOOLEAN gFlagReconnect;
+extern BOOLEAN gResetRequiredFormLevel;
+extern BOOLEAN gResetRequiredSystemLevel;
+extern BOOLEAN gExitRequired;
+extern LIST_ENTRY gBrowserFormSetList;
+extern LIST_ENTRY gBrowserHotKeyList;
+extern BROWSER_SETTING_SCOPE gBrowserSettingScope;
+extern EXIT_HANDLER ExitHandlerFunction;
+extern EFI_HII_HANDLE mCurrentHiiHandle;
+extern SETUP_DRIVER_PRIVATE_DATA mPrivateData;
//
// Browser Global Strings
//
-extern CHAR16 *gEmptyString;
+extern CHAR16 *gEmptyString;
extern UI_MENU_SELECTION *gCurrentSelection;
extern BOOLEAN mHiiPackageListUpdated;
@@ -621,7 +616,7 @@ InitializeBrowserStrings (
**/
EFI_STATUS
ParseOpCodes (
- IN FORM_BROWSER_FORMSET *FormSet
+ IN FORM_BROWSER_FORMSET *FormSet
);
/**
@@ -635,7 +630,6 @@ DestroyFormSet (
IN OUT FORM_BROWSER_FORMSET *FormSet
);
-
/**
Create a new string in HII Package List.
@@ -648,8 +642,8 @@ DestroyFormSet (
**/
EFI_STRING_ID
NewString (
- IN CHAR16 *String,
- IN EFI_HII_HANDLE HiiHandle
+ IN CHAR16 *String,
+ IN EFI_HII_HANDLE HiiHandle
);
/**
@@ -663,8 +657,8 @@ NewString (
**/
EFI_STATUS
DeleteString (
- IN EFI_STRING_ID StringId,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID StringId,
+ IN EFI_HII_HANDLE HiiHandle
);
/**
@@ -679,8 +673,8 @@ DeleteString (
**/
CHAR16 *
GetToken (
- IN EFI_STRING_ID Token,
- IN EFI_HII_HANDLE HiiHandle
+ IN EFI_STRING_ID Token,
+ IN EFI_HII_HANDLE HiiHandle
);
/**
@@ -697,10 +691,10 @@ GetToken (
**/
EFI_STATUS
GetValueByName (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *Name,
- IN OUT CHAR16 **Value,
- IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *Name,
+ IN OUT CHAR16 **Value,
+ IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
);
/**
@@ -718,11 +712,11 @@ GetValueByName (
**/
EFI_STATUS
SetValueByName (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *Name,
- IN CHAR16 *Value,
- IN GET_SET_QUESTION_VALUE_WITH SetValueTo,
- OUT NAME_VALUE_NODE **ReturnNode
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *Name,
+ IN CHAR16 *Value,
+ IN GET_SET_QUESTION_VALUE_WITH SetValueTo,
+ OUT NAME_VALUE_NODE **ReturnNode
);
/**
@@ -739,10 +733,10 @@ SetValueByName (
**/
BOOLEAN
IsQuestionValueChanged (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
);
/**
@@ -756,7 +750,7 @@ IsQuestionValueChanged (
**/
BOOLEAN
ValidateFormSet (
- FORM_BROWSER_FORMSET *FormSet
+ FORM_BROWSER_FORMSET *FormSet
);
/**
@@ -769,9 +763,9 @@ ValidateFormSet (
**/
VOID
UpdateStatementStatus (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN BROWSER_SETTING_SCOPE SettingScope
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN BROWSER_SETTING_SCOPE SettingScope
);
/**
@@ -787,10 +781,10 @@ UpdateStatementStatus (
**/
EFI_STATUS
GetQuestionValue (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
);
/**
@@ -806,10 +800,10 @@ GetQuestionValue (
**/
EFI_STATUS
SetQuestionValue (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN OUT FORM_BROWSER_STATEMENT *Question,
- IN GET_SET_QUESTION_VALUE_WITH SetValueTo
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN OUT FORM_BROWSER_STATEMENT *Question,
+ IN GET_SET_QUESTION_VALUE_WITH SetValueTo
);
/**
@@ -826,13 +820,12 @@ SetQuestionValue (
**/
EFI_STATUS
ValidateQuestion (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question,
- IN UINTN Type
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN UINTN Type
);
-
/**
Discard data based on the input setting scope (Form, FormSet or System).
@@ -846,9 +839,9 @@ ValidateQuestion (
**/
EFI_STATUS
DiscardForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN BROWSER_SETTING_SCOPE SettingScope
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN BROWSER_SETTING_SCOPE SettingScope
);
/**
@@ -864,9 +857,9 @@ DiscardForm (
**/
EFI_STATUS
SubmitForm (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN BROWSER_SETTING_SCOPE SettingScope
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN BROWSER_SETTING_SCOPE SettingScope
);
/**
@@ -882,10 +875,10 @@ SubmitForm (
**/
EFI_STATUS
GetQuestionDefault (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question,
- IN UINT16 DefaultId
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN UINT16 DefaultId
);
/**
@@ -896,7 +889,7 @@ GetQuestionDefault (
**/
VOID
InitializeCurrentSetting (
- IN OUT FORM_BROWSER_FORMSET *FormSet
+ IN OUT FORM_BROWSER_FORMSET *FormSet
);
/**
@@ -914,9 +907,9 @@ InitializeCurrentSetting (
**/
EFI_STATUS
InitializeFormSet (
- IN EFI_HII_HANDLE Handle,
- IN OUT EFI_GUID *FormSetGuid,
- OUT FORM_BROWSER_FORMSET *FormSet
+ IN EFI_HII_HANDLE Handle,
+ IN OUT EFI_GUID *FormSetGuid,
+ OUT FORM_BROWSER_FORMSET *FormSet
);
/**
@@ -942,14 +935,14 @@ InitializeFormSet (
**/
EFI_STATUS
ExtractDefault (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN UINT16 DefaultId,
- IN BROWSER_SETTING_SCOPE SettingScope,
- IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope,
- IN BROWSER_STORAGE *Storage,
- IN BOOLEAN RetrieveValueFirst,
- IN BOOLEAN SkipGetAltCfg
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN UINT16 DefaultId,
+ IN BROWSER_SETTING_SCOPE SettingScope,
+ IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope,
+ IN BROWSER_STORAGE *Storage,
+ IN BOOLEAN RetrieveValueFirst,
+ IN BOOLEAN SkipGetAltCfg
);
/**
@@ -967,9 +960,9 @@ ExtractDefault (
**/
EFI_STATUS
LoadFormConfig (
- IN OUT UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form
);
/**
@@ -986,8 +979,8 @@ LoadFormConfig (
**/
EFI_STATUS
LoadFormSetConfig (
- IN OUT UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_FORMSET *FormSet
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_FORMSET *FormSet
);
/**
@@ -1004,10 +997,10 @@ LoadFormSetConfig (
**/
EFI_STATUS
StorageToConfigResp (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 **ConfigResp,
- IN CHAR16 *ConfigRequest,
- IN BOOLEAN GetEditBuf
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 **ConfigResp,
+ IN CHAR16 *ConfigRequest,
+ IN BOOLEAN GetEditBuf
);
/**
@@ -1022,8 +1015,8 @@ StorageToConfigResp (
**/
EFI_STATUS
ConfigRespToStorage (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *ConfigResp
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *ConfigResp
);
/**
@@ -1035,8 +1028,8 @@ ConfigRespToStorage (
**/
VOID
LoadStorage (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORMSET_STORAGE *Storage
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORMSET_STORAGE *Storage
);
/**
@@ -1058,10 +1051,10 @@ LoadStorage (
**/
EFI_STATUS
GetIfrBinaryData (
- IN EFI_HII_HANDLE Handle,
- IN OUT EFI_GUID *FormSetGuid,
- OUT UINTN *BinaryLength,
- OUT UINT8 **BinaryData
+ IN EFI_HII_HANDLE Handle,
+ IN OUT EFI_GUID *FormSetGuid,
+ OUT UINTN *BinaryLength,
+ OUT UINT8 **BinaryData
);
/**
@@ -1115,13 +1108,13 @@ RestoreBrowserContext (
EFI_STATUS
EFIAPI
SendForm (
- IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
- IN EFI_HII_HANDLE *Handles,
- IN UINTN HandleCount,
- IN EFI_GUID *FormSetGuid OPTIONAL,
- IN UINT16 FormId OPTIONAL,
- IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions OPTIONAL,
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
+ IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
+ IN EFI_HII_HANDLE *Handles,
+ IN UINTN HandleCount,
+ IN EFI_GUID *FormSetGuid OPTIONAL,
+ IN UINT16 FormId OPTIONAL,
+ IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions OPTIONAL,
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
);
/**
@@ -1191,7 +1184,7 @@ FindNextMenu (
**/
BOOLEAN
IsNvUpdateRequiredForForm (
- IN FORM_BROWSER_FORM *Form
+ IN FORM_BROWSER_FORM *Form
);
/**
@@ -1225,12 +1218,12 @@ IsNvUpdateRequiredForFormSet (
**/
EFI_STATUS
ProcessCallBackFunction (
- IN OUT UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question,
- IN EFI_BROWSER_ACTION Action,
- IN BOOLEAN SkipSaveOrDiscard
+ IN OUT UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN EFI_BROWSER_ACTION Action,
+ IN BOOLEAN SkipSaveOrDiscard
);
/**
@@ -1263,7 +1256,7 @@ ProcessRetrieveForQuestion (
**/
FORM_BROWSER_FORMSET *
GetFormSetFromHiiHandle (
- EFI_HII_HANDLE Handle
+ EFI_HII_HANDLE Handle
);
/**
@@ -1277,7 +1270,7 @@ GetFormSetFromHiiHandle (
**/
BOOLEAN
IsHiiHandleInBrowserContext (
- EFI_HII_HANDLE Handle
+ EFI_HII_HANDLE Handle
);
/**
@@ -1296,7 +1289,7 @@ IsHiiHandleInBrowserContext (
EFI_STATUS
EFIAPI
SetScope (
- IN BROWSER_SETTING_SCOPE Scope
+ IN BROWSER_SETTING_SCOPE Scope
);
/**
@@ -1322,10 +1315,10 @@ SetScope (
EFI_STATUS
EFIAPI
RegisterHotKey (
- IN EFI_INPUT_KEY *KeyData,
- IN UINT32 Action,
- IN UINT16 DefaultId,
- IN EFI_STRING HelpString OPTIONAL
+ IN EFI_INPUT_KEY *KeyData,
+ IN UINT32 Action,
+ IN UINT16 DefaultId,
+ IN EFI_STRING HelpString OPTIONAL
);
/**
@@ -1339,7 +1332,7 @@ RegisterHotKey (
VOID
EFIAPI
RegiserExitHandler (
- IN EXIT_HANDLER Handler
+ IN EXIT_HANDLER Handler
);
/**
@@ -1370,8 +1363,8 @@ IsBrowserDataModified (
EFI_STATUS
EFIAPI
ExecuteAction (
- IN UINT32 Action,
- IN UINT16 DefaultId
+ IN UINT32 Action,
+ IN UINT16 DefaultId
);
/**
@@ -1413,7 +1406,7 @@ IsResetRequired (
**/
BROWSER_HOT_KEY *
GetHotKeyFromRegisterList (
- IN EFI_INPUT_KEY *KeyData
+ IN EFI_INPUT_KEY *KeyData
);
/**
@@ -1427,7 +1420,7 @@ GetHotKeyFromRegisterList (
**/
FORM_BROWSER_STATEMENT *
GetBrowserStatement (
- IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
+ IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
);
/**
@@ -1458,9 +1451,9 @@ GetBrowserStatement (
**/
EFI_STATUS
PasswordCallback (
- IN UI_MENU_SELECTION *Selection,
- IN FORM_BROWSER_STATEMENT *Question,
- IN CHAR16 *String
+ IN UI_MENU_SELECTION *Selection,
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN CHAR16 *String
);
/**
@@ -1487,7 +1480,7 @@ PasswordInvalid (
**/
EFI_STATUS
SetupBrowser (
- IN OUT UI_MENU_SELECTION *Selection
+ IN OUT UI_MENU_SELECTION *Selection
);
/**
@@ -1514,10 +1507,10 @@ FreeBrowserStrings (
**/
FORM_ENTRY_INFO *
UiAddMenuList (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_GUID *FormSetGuid,
- IN UINT16 FormId,
- IN UINT16 QuestionId
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_GUID *FormSetGuid,
+ IN UINT16 FormId,
+ IN UINT16 QuestionId
);
/**
@@ -1532,9 +1525,9 @@ UiAddMenuList (
**/
FORM_ENTRY_INFO *
UiFindMenuList (
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_GUID *FormSetGuid,
- IN UINT16 FormId
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_GUID *FormSetGuid,
+ IN UINT16 FormId
);
/**
@@ -1545,7 +1538,7 @@ UiFindMenuList (
**/
VOID
UiFreeMenuList (
- LIST_ENTRY *MenuListHead
+ LIST_ENTRY *MenuListHead
);
/**
@@ -1561,8 +1554,8 @@ UiFreeMenuList (
**/
FORM_ENTRY_INFO *
UiFindParentMenu (
- IN FORM_ENTRY_INFO *CurrentMenu,
- IN BROWSER_SETTING_SCOPE SettingLevel
+ IN FORM_ENTRY_INFO *CurrentMenu,
+ IN BROWSER_SETTING_SCOPE SettingLevel
);
/**
@@ -1576,7 +1569,7 @@ UiFindParentMenu (
**/
BOOLEAN
ValidateHiiHandle (
- EFI_HII_HANDLE HiiHandle
+ EFI_HII_HANDLE HiiHandle
);
/**
@@ -1588,8 +1581,8 @@ ValidateHiiHandle (
**/
VOID
UiCopyMenuList (
- OUT LIST_ENTRY *NewMenuListHead,
- IN LIST_ENTRY *CurrentMenuListHead
+ OUT LIST_ENTRY *NewMenuListHead,
+ IN LIST_ENTRY *CurrentMenuListHead
);
/**
@@ -1604,9 +1597,10 @@ UiCopyMenuList (
**/
QUESTION_OPTION *
ValueToOption (
- IN FORM_BROWSER_STATEMENT *Question,
- IN EFI_HII_VALUE *OptionValue
+ IN FORM_BROWSER_STATEMENT *Question,
+ IN EFI_HII_VALUE *OptionValue
);
+
/**
Return data element in an Array by its Index.
@@ -1619,9 +1613,9 @@ ValueToOption (
**/
UINT64
GetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index
);
/**
@@ -1635,10 +1629,10 @@ GetArrayData (
**/
VOID
SetArrayData (
- IN VOID *Array,
- IN UINT8 Type,
- IN UINTN Index,
- IN UINT64 Value
+ IN VOID *Array,
+ IN UINT8 Type,
+ IN UINTN Index,
+ IN UINT64 Value
);
/**
@@ -1679,9 +1673,9 @@ CompareHiiValue (
EFI_STATUS
EFIAPI
PasswordCheck (
- IN FORM_DISPLAY_ENGINE_FORM *Form,
- IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
- IN EFI_STRING PasswordString OPTIONAL
+ IN FORM_DISPLAY_ENGINE_FORM *Form,
+ IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,
+ IN EFI_STRING PasswordString OPTIONAL
);
/**
@@ -1695,7 +1689,7 @@ PasswordCheck (
**/
FORM_BROWSER_STATEMENT *
GetBrowserStatement (
- IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
+ IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
);
/**
@@ -1708,7 +1702,6 @@ InitializeDisplayFormData (
VOID
);
-
/**
Base on the current formset info, clean the ConfigRequest string in browser storage.
@@ -1736,8 +1729,8 @@ CleanBrowserStorage (
**/
EFI_HII_HANDLE
DevicePathToHiiHandle (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
- IN EFI_GUID *FormsetGuid
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
+ IN EFI_GUID *FormsetGuid
);
/**
@@ -1753,9 +1746,9 @@ DevicePathToHiiHandle (
**/
BOOLEAN
ConfigRequestAdjust (
- IN BROWSER_STORAGE *Storage,
- IN CHAR16 *Request,
- IN BOOLEAN RespString
+ IN BROWSER_STORAGE *Storage,
+ IN CHAR16 *Request,
+ IN BOOLEAN RespString
);
/**
@@ -1773,9 +1766,9 @@ ConfigRequestAdjust (
**/
EFI_STATUS
ValueChangedValidation (
- IN FORM_BROWSER_FORMSET *FormSet,
- IN FORM_BROWSER_FORM *Form,
- IN FORM_BROWSER_STATEMENT *Question
+ IN FORM_BROWSER_FORMSET *FormSet,
+ IN FORM_BROWSER_FORM *Form,
+ IN FORM_BROWSER_STATEMENT *Question
);
/**
@@ -1789,10 +1782,10 @@ ValueChangedValidation (
**/
UINT32
PopupErrorMessage (
- IN UINT32 BrowserStatus,
- IN EFI_HII_HANDLE HiiHandle,
- IN EFI_IFR_OP_HEADER *OpCode OPTIONAL,
- IN CHAR16 *ErrorString
+ IN UINT32 BrowserStatus,
+ IN EFI_HII_HANDLE HiiHandle,
+ IN EFI_IFR_OP_HEADER *OpCode OPTIONAL,
+ IN CHAR16 *ErrorString
);
/**
@@ -1809,7 +1802,7 @@ PopupErrorMessage (
**/
BOOLEAN
IsTrue (
- IN EFI_HII_VALUE *Result
+ IN EFI_HII_VALUE *Result
);
/**
@@ -1842,7 +1835,7 @@ GetFstStgFromVarId (
**/
FORMSET_STORAGE *
GetFstStgFromBrsStg (
- IN BROWSER_STORAGE *Storage
+ IN BROWSER_STORAGE *Storage
);
/**
@@ -1856,7 +1849,7 @@ GetFstStgFromBrsStg (
**/
BOOLEAN
ReconnectController (
- IN EFI_HANDLE DriverHandle
+ IN EFI_HANDLE DriverHandle
);
/**
diff --git a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c
index 804eedb..81df59c 100644
--- a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c
+++ b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c
@@ -14,16 +14,16 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
// Since this driver will only ever produce one instance of the
// protocol you are not required to dynamically allocate the PrivateData.
//
-SMBIOS_INSTANCE mPrivateData;
+SMBIOS_INSTANCE mPrivateData;
-UINTN mPreAllocatedPages = 0;
-UINTN mPre64BitAllocatedPages = 0;
+UINTN mPreAllocatedPages = 0;
+UINTN mPre64BitAllocatedPages = 0;
//
// Chassis for SMBIOS entry point structure that is to be installed into EFI system config table.
//
-SMBIOS_TABLE_ENTRY_POINT *EntryPointStructure = NULL;
-SMBIOS_TABLE_ENTRY_POINT EntryPointStructureData = {
+SMBIOS_TABLE_ENTRY_POINT *EntryPointStructure = NULL;
+SMBIOS_TABLE_ENTRY_POINT EntryPointStructureData = {
//
// AnchorString
//
@@ -99,8 +99,8 @@ SMBIOS_TABLE_ENTRY_POINT EntryPointStructureData = {
0
};
-SMBIOS_TABLE_3_0_ENTRY_POINT *Smbios30EntryPointStructure = NULL;
-SMBIOS_TABLE_3_0_ENTRY_POINT Smbios30EntryPointStructureData = {
+SMBIOS_TABLE_3_0_ENTRY_POINT *Smbios30EntryPointStructure = NULL;
+SMBIOS_TABLE_3_0_ENTRY_POINT Smbios30EntryPointStructureData = {
//
// AnchorString _SM3_
//
@@ -149,9 +149,9 @@ SMBIOS_TABLE_3_0_ENTRY_POINT Smbios30EntryPointStructureData = {
0
};
-IS_SMBIOS_TABLE_VALID_ENTRY mIsSmbiosTableValid[] = {
- {&gUniversalPayloadSmbios3TableGuid, IsValidSmbios30Table },
- {&gUniversalPayloadSmbiosTableGuid, IsValidSmbios20Table }
+IS_SMBIOS_TABLE_VALID_ENTRY mIsSmbiosTableValid[] = {
+ { &gUniversalPayloadSmbios3TableGuid, IsValidSmbios30Table },
+ { &gUniversalPayloadSmbiosTableGuid, IsValidSmbios20Table }
};
/**
@@ -170,26 +170,26 @@ IS_SMBIOS_TABLE_VALID_ENTRY mIsSmbiosTableValid[] = {
EFI_STATUS
EFIAPI
GetSmbiosStructureSize (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN EFI_SMBIOS_TABLE_HEADER *Head,
- OUT UINTN *Size,
- OUT UINTN *NumberOfStrings
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN EFI_SMBIOS_TABLE_HEADER *Head,
+ OUT UINTN *Size,
+ OUT UINTN *NumberOfStrings
)
{
UINTN FullSize;
UINTN StrLen;
UINTN MaxLen;
- INT8* CharInStr;
+ INT8 *CharInStr;
- if (Size == NULL || NumberOfStrings == NULL) {
+ if ((Size == NULL) || (NumberOfStrings == NULL)) {
return EFI_INVALID_PARAMETER;
}
- FullSize = Head->Length;
- CharInStr = (INT8*)Head + Head->Length;
- *Size = FullSize;
+ FullSize = Head->Length;
+ CharInStr = (INT8 *)Head + Head->Length;
+ *Size = FullSize;
*NumberOfStrings = 0;
- StrLen = 0;
+ StrLen = 0;
//
// look for the two consecutive zeros, check the string limit by the way.
//
@@ -199,7 +199,7 @@ GetSmbiosStructureSize (
CharInStr++;
}
- if (This->MajorVersion < 2 || (This->MajorVersion == 2 && This->MinorVersion < 7)){
+ if ((This->MajorVersion < 2) || ((This->MajorVersion == 2) && (This->MinorVersion < 7))) {
MaxLen = SMBIOS_STRING_MAX_LENGTH;
} else if (This->MajorVersion < 3) {
//
@@ -217,7 +217,7 @@ GetSmbiosStructureSize (
MaxLen = SMBIOS_3_0_TABLE_MAX_LENGTH;
}
- for (StrLen = 0 ; StrLen < MaxLen; StrLen++) {
+ for (StrLen = 0; StrLen < MaxLen; StrLen++) {
if (*(CharInStr+StrLen) == 0) {
break;
}
@@ -230,8 +230,8 @@ GetSmbiosStructureSize (
//
// forward the pointer
//
- CharInStr += StrLen;
- *Size += StrLen;
+ CharInStr += StrLen;
+ *Size += StrLen;
*NumberOfStrings += 1;
}
@@ -256,15 +256,15 @@ GetSmbiosStructureSize (
BOOLEAN
EFIAPI
CheckSmbiosHandleExistance (
- IN LIST_ENTRY *Head,
- IN EFI_SMBIOS_HANDLE Handle
+ IN LIST_ENTRY *Head,
+ IN EFI_SMBIOS_HANDLE Handle
)
{
- LIST_ENTRY *Link;
- SMBIOS_HANDLE_ENTRY *HandleEntry;
+ LIST_ENTRY *Link;
+ SMBIOS_HANDLE_ENTRY *HandleEntry;
for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) {
- HandleEntry = SMBIOS_HANDLE_ENTRY_FROM_LINK(Link);
+ HandleEntry = SMBIOS_HANDLE_ENTRY_FROM_LINK (Link);
if (HandleEntry->SmbiosHandle == Handle) {
return TRUE;
}
@@ -284,11 +284,11 @@ CheckSmbiosHandleExistance (
VOID
EFIAPI
GetMaxSmbiosHandle (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN OUT EFI_SMBIOS_HANDLE *MaxHandle
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN OUT EFI_SMBIOS_HANDLE *MaxHandle
)
{
- if (This->MajorVersion == 2 && This->MinorVersion == 0) {
+ if ((This->MajorVersion == 2) && (This->MinorVersion == 0)) {
*MaxHandle = 0xFFFE;
} else {
*MaxHandle = 0xFEFF;
@@ -309,21 +309,21 @@ GetMaxSmbiosHandle (
EFI_STATUS
EFIAPI
GetAvailableSmbiosHandle (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN OUT EFI_SMBIOS_HANDLE *Handle
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN OUT EFI_SMBIOS_HANDLE *Handle
)
{
- LIST_ENTRY *Head;
- SMBIOS_INSTANCE *Private;
- EFI_SMBIOS_HANDLE MaxSmbiosHandle;
- EFI_SMBIOS_HANDLE AvailableHandle;
+ LIST_ENTRY *Head;
+ SMBIOS_INSTANCE *Private;
+ EFI_SMBIOS_HANDLE MaxSmbiosHandle;
+ EFI_SMBIOS_HANDLE AvailableHandle;
- GetMaxSmbiosHandle(This, &MaxSmbiosHandle);
+ GetMaxSmbiosHandle (This, &MaxSmbiosHandle);
Private = SMBIOS_INSTANCE_FROM_THIS (This);
- Head = &Private->AllocatedHandleListHead;
+ Head = &Private->AllocatedHandleListHead;
for (AvailableHandle = 0; AvailableHandle < MaxSmbiosHandle; AvailableHandle++) {
- if (!CheckSmbiosHandleExistance(Head, AvailableHandle)) {
+ if (!CheckSmbiosHandleExistance (Head, AvailableHandle)) {
*Handle = AvailableHandle;
return EFI_SUCCESS;
}
@@ -332,7 +332,6 @@ GetAvailableSmbiosHandle (
return EFI_OUT_OF_RESOURCES;
}
-
/**
Add an SMBIOS record.
@@ -361,20 +360,20 @@ SmbiosAdd (
IN EFI_SMBIOS_TABLE_HEADER *Record
)
{
- VOID *Raw;
- UINTN TotalSize;
- UINTN RecordSize;
- UINTN StructureSize;
- UINTN NumberOfStrings;
- EFI_STATUS Status;
- LIST_ENTRY *Head;
- SMBIOS_INSTANCE *Private;
- EFI_SMBIOS_ENTRY *SmbiosEntry;
- EFI_SMBIOS_HANDLE MaxSmbiosHandle;
- SMBIOS_HANDLE_ENTRY *HandleEntry;
- EFI_SMBIOS_RECORD_HEADER *InternalRecord;
- BOOLEAN Smbios32BitTable;
- BOOLEAN Smbios64BitTable;
+ VOID *Raw;
+ UINTN TotalSize;
+ UINTN RecordSize;
+ UINTN StructureSize;
+ UINTN NumberOfStrings;
+ EFI_STATUS Status;
+ LIST_ENTRY *Head;
+ SMBIOS_INSTANCE *Private;
+ EFI_SMBIOS_ENTRY *SmbiosEntry;
+ EFI_SMBIOS_HANDLE MaxSmbiosHandle;
+ SMBIOS_HANDLE_ENTRY *HandleEntry;
+ EFI_SMBIOS_RECORD_HEADER *InternalRecord;
+ BOOLEAN Smbios32BitTable;
+ BOOLEAN Smbios64BitTable;
if (SmbiosHandle == NULL) {
return EFI_INVALID_PARAMETER;
@@ -385,7 +384,7 @@ SmbiosAdd (
// Check whether SmbiosHandle is already in use
//
Head = &Private->AllocatedHandleListHead;
- if (*SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED && CheckSmbiosHandleExistance(Head, *SmbiosHandle)) {
+ if ((*SmbiosHandle != SMBIOS_HANDLE_PI_RESERVED) && CheckSmbiosHandleExistance (Head, *SmbiosHandle)) {
return EFI_ALREADY_STARTED;
}
@@ -393,15 +392,15 @@ SmbiosAdd (
// when SmbiosHandle is 0xFFFE, an available handle will be assigned
//
if (*SmbiosHandle == SMBIOS_HANDLE_PI_RESERVED) {
- Status = GetAvailableSmbiosHandle(This, SmbiosHandle);
- if (EFI_ERROR(Status)) {
+ Status = GetAvailableSmbiosHandle (This, SmbiosHandle);
+ if (EFI_ERROR (Status)) {
return Status;
}
} else {
//
// Check this handle validity
//
- GetMaxSmbiosHandle(This, &MaxSmbiosHandle);
+ GetMaxSmbiosHandle (This, &MaxSmbiosHandle);
if (*SmbiosHandle > MaxSmbiosHandle) {
return EFI_INVALID_PARAMETER;
}
@@ -410,22 +409,24 @@ SmbiosAdd (
//
// Calculate record size and string number
//
- Status = GetSmbiosStructureSize(This, Record, &StructureSize, &NumberOfStrings);
- if (EFI_ERROR(Status)) {
+ Status = GetSmbiosStructureSize (This, Record, &StructureSize, &NumberOfStrings);
+ if (EFI_ERROR (Status)) {
return Status;
}
Smbios32BitTable = FALSE;
Smbios64BitTable = FALSE;
if ((This->MajorVersion < 0x3) ||
- ((This->MajorVersion >= 0x3) && ((PcdGet32 (PcdSmbiosEntryPointProvideMethod) & BIT0) == BIT0))) {
+ ((This->MajorVersion >= 0x3) && ((PcdGet32 (PcdSmbiosEntryPointProvideMethod) & BIT0) == BIT0)))
+ {
//
// For SMBIOS 32-bit table, the length of the entire structure table (including all strings) must be reported
// in the Structure Table Length field of the SMBIOS Structure Table Entry Point,
// which is a WORD field limited to 65,535 bytes. So the max size of 32-bit table should not exceed 65,535 bytes.
//
if ((EntryPointStructure != NULL) &&
- (EntryPointStructure->TableLength + StructureSize > SMBIOS_TABLE_MAX_LENGTH)) {
+ (EntryPointStructure->TableLength + StructureSize > SMBIOS_TABLE_MAX_LENGTH))
+ {
DEBUG ((DEBUG_INFO, "SmbiosAdd: Total length exceeds max 32-bit table length with type = %d size = 0x%x\n", Record->Type, StructureSize));
} else {
Smbios32BitTable = TRUE;
@@ -442,7 +443,8 @@ SmbiosAdd (
// is a DWORD field limited to 0xFFFFFFFF bytes. So the max size of 64-bit table should not exceed 0xFFFFFFFF bytes.
//
if ((Smbios30EntryPointStructure != NULL) &&
- (Smbios30EntryPointStructure->TableMaximumSize + StructureSize > SMBIOS_3_0_TABLE_MAX_LENGTH)) {
+ (Smbios30EntryPointStructure->TableMaximumSize + StructureSize > SMBIOS_3_0_TABLE_MAX_LENGTH))
+ {
DEBUG ((DEBUG_INFO, "SmbiosAdd: Total length exceeds max 64-bit table length with type = %d size = 0x%x\n", Record->Type, StructureSize));
} else {
DEBUG ((DEBUG_INFO, "SmbiosAdd: Smbios type %d with size 0x%x is added to 64-bit table\n", Record->Type, StructureSize));
@@ -465,8 +467,8 @@ SmbiosAdd (
return Status;
}
- RecordSize = sizeof (EFI_SMBIOS_RECORD_HEADER) + StructureSize;
- TotalSize = sizeof (EFI_SMBIOS_ENTRY) + RecordSize;
+ RecordSize = sizeof (EFI_SMBIOS_RECORD_HEADER) + StructureSize;
+ TotalSize = sizeof (EFI_SMBIOS_ENTRY) + RecordSize;
//
// Allocate internal buffer
@@ -476,7 +478,8 @@ SmbiosAdd (
EfiReleaseLock (&Private->DataLock);
return EFI_OUT_OF_RESOURCES;
}
- HandleEntry = AllocateZeroPool (sizeof(SMBIOS_HANDLE_ENTRY));
+
+ HandleEntry = AllocateZeroPool (sizeof (SMBIOS_HANDLE_ENTRY));
if (HandleEntry == NULL) {
EfiReleaseLock (&Private->DataLock);
return EFI_OUT_OF_RESOURCES;
@@ -485,33 +488,33 @@ SmbiosAdd (
//
// Build Handle Entry and insert into linked list
//
- HandleEntry->Signature = SMBIOS_HANDLE_ENTRY_SIGNATURE;
- HandleEntry->SmbiosHandle = *SmbiosHandle;
- InsertTailList(&Private->AllocatedHandleListHead, &HandleEntry->Link);
+ HandleEntry->Signature = SMBIOS_HANDLE_ENTRY_SIGNATURE;
+ HandleEntry->SmbiosHandle = *SmbiosHandle;
+ InsertTailList (&Private->AllocatedHandleListHead, &HandleEntry->Link);
- InternalRecord = (EFI_SMBIOS_RECORD_HEADER *) (SmbiosEntry + 1);
- Raw = (VOID *) (InternalRecord + 1);
+ InternalRecord = (EFI_SMBIOS_RECORD_HEADER *)(SmbiosEntry + 1);
+ Raw = (VOID *)(InternalRecord + 1);
//
// Build internal record Header
//
- InternalRecord->Version = EFI_SMBIOS_RECORD_HEADER_VERSION;
- InternalRecord->HeaderSize = (UINT16) sizeof (EFI_SMBIOS_RECORD_HEADER);
- InternalRecord->RecordSize = RecordSize;
- InternalRecord->ProducerHandle = ProducerHandle;
+ InternalRecord->Version = EFI_SMBIOS_RECORD_HEADER_VERSION;
+ InternalRecord->HeaderSize = (UINT16)sizeof (EFI_SMBIOS_RECORD_HEADER);
+ InternalRecord->RecordSize = RecordSize;
+ InternalRecord->ProducerHandle = ProducerHandle;
InternalRecord->NumberOfStrings = NumberOfStrings;
//
// Insert record into the internal linked list
//
- SmbiosEntry->Signature = EFI_SMBIOS_ENTRY_SIGNATURE;
- SmbiosEntry->RecordHeader = InternalRecord;
- SmbiosEntry->RecordSize = TotalSize;
+ SmbiosEntry->Signature = EFI_SMBIOS_ENTRY_SIGNATURE;
+ SmbiosEntry->RecordHeader = InternalRecord;
+ SmbiosEntry->RecordSize = TotalSize;
SmbiosEntry->Smbios32BitTable = Smbios32BitTable;
SmbiosEntry->Smbios64BitTable = Smbios64BitTable;
InsertTailList (&Private->DataListHead, &SmbiosEntry->Link);
CopyMem (Raw, Record, StructureSize);
- ((EFI_SMBIOS_TABLE_HEADER*)Raw)->Handle = *SmbiosHandle;
+ ((EFI_SMBIOS_TABLE_HEADER *)Raw)->Handle = *SmbiosHandle;
//
// Some UEFI drivers (such as network) need some information in SMBIOS table.
@@ -545,10 +548,10 @@ SmbiosAdd (
EFI_STATUS
EFIAPI
SmbiosUpdateString (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN EFI_SMBIOS_HANDLE *SmbiosHandle,
- IN UINTN *StringNumber,
- IN CHAR8 *String
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN EFI_SMBIOS_HANDLE *SmbiosHandle,
+ IN UINTN *StringNumber,
+ IN CHAR8 *String
)
{
UINTN InputStrLen;
@@ -571,7 +574,7 @@ SmbiosUpdateString (
//
// Check args validity
//
- GetMaxSmbiosHandle(This, &MaxSmbiosHandle);
+ GetMaxSmbiosHandle (This, &MaxSmbiosHandle);
if (*SmbiosHandle > MaxSmbiosHandle) {
return EFI_INVALID_PARAMETER;
@@ -585,9 +588,9 @@ SmbiosUpdateString (
return EFI_NOT_FOUND;
}
- InputStrLen = AsciiStrLen(String);
+ InputStrLen = AsciiStrLen (String);
- if (This->MajorVersion < 2 || (This->MajorVersion == 2 && This->MinorVersion < 7)) {
+ if ((This->MajorVersion < 2) || ((This->MajorVersion == 2) && (This->MinorVersion < 7))) {
if (InputStrLen > SMBIOS_STRING_MAX_LENGTH) {
return EFI_UNSUPPORTED;
}
@@ -622,8 +625,8 @@ SmbiosUpdateString (
Head = &Private->DataListHead;
for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) {
- SmbiosEntry = SMBIOS_ENTRY_FROM_LINK(Link);
- Record = (EFI_SMBIOS_TABLE_HEADER*)(SmbiosEntry->RecordHeader + 1);
+ SmbiosEntry = SMBIOS_ENTRY_FROM_LINK (Link);
+ Record = (EFI_SMBIOS_TABLE_HEADER *)(SmbiosEntry->RecordHeader + 1);
if (Record->Handle == *SmbiosHandle) {
//
@@ -633,10 +636,11 @@ SmbiosUpdateString (
EfiReleaseLock (&Private->DataLock);
return EFI_NOT_FOUND;
}
+
//
// Point to unformed string section
//
- StrStart = (CHAR8 *) Record + Record->Length;
+ StrStart = (CHAR8 *)Record + Record->Length;
for (StrIndex = 1, TargetStrOffset = 0; StrIndex < *StringNumber; StrStart++, TargetStrOffset++) {
//
@@ -649,7 +653,7 @@ SmbiosUpdateString (
//
// String section ends in double-null (0000h)
//
- if (*StrStart == 0 && *(StrStart + 1) == 0) {
+ if ((*StrStart == 0) && (*(StrStart + 1) == 0)) {
EfiReleaseLock (&Private->DataLock);
return EFI_NOT_FOUND;
}
@@ -663,9 +667,9 @@ SmbiosUpdateString (
//
// Now we get the string target
//
- TargetStrLen = AsciiStrLen(StrStart);
+ TargetStrLen = AsciiStrLen (StrStart);
if (InputStrLen == TargetStrLen) {
- AsciiStrCpyS(StrStart, TargetStrLen + 1, String);
+ AsciiStrCpyS (StrStart, TargetStrLen + 1, String);
//
// Some UEFI drivers (such as network) need some information in SMBIOS table.
// Here we create SMBIOS table and publish it in
@@ -680,12 +684,14 @@ SmbiosUpdateString (
SmbiosEntry->Smbios32BitTable = FALSE;
SmbiosEntry->Smbios64BitTable = FALSE;
if ((This->MajorVersion < 0x3) ||
- ((This->MajorVersion >= 0x3) && ((PcdGet32 (PcdSmbiosEntryPointProvideMethod) & BIT0) == BIT0))) {
+ ((This->MajorVersion >= 0x3) && ((PcdGet32 (PcdSmbiosEntryPointProvideMethod) & BIT0) == BIT0)))
+ {
//
// 32-bit table is produced, check the valid length.
//
if ((EntryPointStructure != NULL) &&
- (EntryPointStructure->TableLength + InputStrLen - TargetStrLen > SMBIOS_TABLE_MAX_LENGTH)) {
+ (EntryPointStructure->TableLength + InputStrLen - TargetStrLen > SMBIOS_TABLE_MAX_LENGTH))
+ {
//
// The length of the entire structure table (including all strings) must be reported
// in the Structure Table Length field of the SMBIOS Structure Table Entry Point,
@@ -703,7 +709,8 @@ SmbiosUpdateString (
// 64-bit table is produced, check the valid length.
//
if ((Smbios30EntryPointStructure != NULL) &&
- (Smbios30EntryPointStructure->TableMaximumSize + InputStrLen - TargetStrLen > SMBIOS_3_0_TABLE_MAX_LENGTH)) {
+ (Smbios30EntryPointStructure->TableMaximumSize + InputStrLen - TargetStrLen > SMBIOS_3_0_TABLE_MAX_LENGTH))
+ {
DEBUG ((DEBUG_INFO, "SmbiosUpdateString: Total length exceeds max 64-bit table length\n"));
} else {
DEBUG ((DEBUG_INFO, "SmbiosUpdateString: New smbios record add to 64-bit table\n"));
@@ -720,7 +727,7 @@ SmbiosUpdateString (
// Original string buffer size is not exactly match input string length.
// Re-allocate buffer is needed.
//
- NewEntrySize = SmbiosEntry->RecordSize + InputStrLen - TargetStrLen;
+ NewEntrySize = SmbiosEntry->RecordSize + InputStrLen - TargetStrLen;
ResizedSmbiosEntry = AllocateZeroPool (NewEntrySize);
if (ResizedSmbiosEntry == NULL) {
@@ -728,33 +735,35 @@ SmbiosUpdateString (
return EFI_OUT_OF_RESOURCES;
}
- InternalRecord = (EFI_SMBIOS_RECORD_HEADER *) (ResizedSmbiosEntry + 1);
- Raw = (VOID *) (InternalRecord + 1);
+ InternalRecord = (EFI_SMBIOS_RECORD_HEADER *)(ResizedSmbiosEntry + 1);
+ Raw = (VOID *)(InternalRecord + 1);
//
// Build internal record Header
//
- InternalRecord->Version = EFI_SMBIOS_RECORD_HEADER_VERSION;
- InternalRecord->HeaderSize = (UINT16) sizeof (EFI_SMBIOS_RECORD_HEADER);
- InternalRecord->RecordSize = SmbiosEntry->RecordHeader->RecordSize + InputStrLen - TargetStrLen;
- InternalRecord->ProducerHandle = SmbiosEntry->RecordHeader->ProducerHandle;
+ InternalRecord->Version = EFI_SMBIOS_RECORD_HEADER_VERSION;
+ InternalRecord->HeaderSize = (UINT16)sizeof (EFI_SMBIOS_RECORD_HEADER);
+ InternalRecord->RecordSize = SmbiosEntry->RecordHeader->RecordSize + InputStrLen - TargetStrLen;
+ InternalRecord->ProducerHandle = SmbiosEntry->RecordHeader->ProducerHandle;
InternalRecord->NumberOfStrings = SmbiosEntry->RecordHeader->NumberOfStrings;
//
// Copy SMBIOS structure and optional strings.
//
CopyMem (Raw, SmbiosEntry->RecordHeader + 1, Record->Length + TargetStrOffset);
- CopyMem ((VOID*)((UINTN)Raw + Record->Length + TargetStrOffset), String, InputStrLen + 1);
- CopyMem ((CHAR8*)((UINTN)Raw + Record->Length + TargetStrOffset + InputStrLen + 1),
- (CHAR8*)Record + Record->Length + TargetStrOffset + TargetStrLen + 1,
- SmbiosEntry->RecordHeader->RecordSize - sizeof (EFI_SMBIOS_RECORD_HEADER) - Record->Length - TargetStrOffset - TargetStrLen - 1);
+ CopyMem ((VOID *)((UINTN)Raw + Record->Length + TargetStrOffset), String, InputStrLen + 1);
+ CopyMem (
+ (CHAR8 *)((UINTN)Raw + Record->Length + TargetStrOffset + InputStrLen + 1),
+ (CHAR8 *)Record + Record->Length + TargetStrOffset + TargetStrLen + 1,
+ SmbiosEntry->RecordHeader->RecordSize - sizeof (EFI_SMBIOS_RECORD_HEADER) - Record->Length - TargetStrOffset - TargetStrLen - 1
+ );
//
// Insert new record
//
- ResizedSmbiosEntry->Signature = EFI_SMBIOS_ENTRY_SIGNATURE;
- ResizedSmbiosEntry->RecordHeader = InternalRecord;
- ResizedSmbiosEntry->RecordSize = NewEntrySize;
+ ResizedSmbiosEntry->Signature = EFI_SMBIOS_ENTRY_SIGNATURE;
+ ResizedSmbiosEntry->RecordHeader = InternalRecord;
+ ResizedSmbiosEntry->RecordSize = NewEntrySize;
ResizedSmbiosEntry->Smbios32BitTable = SmbiosEntry->Smbios32BitTable;
ResizedSmbiosEntry->Smbios64BitTable = SmbiosEntry->Smbios64BitTable;
InsertTailList (Link->ForwardLink, &ResizedSmbiosEntry->Link);
@@ -762,8 +771,8 @@ SmbiosUpdateString (
//
// Remove old record
//
- RemoveEntryList(Link);
- FreePool(SmbiosEntry);
+ RemoveEntryList (Link);
+ FreePool (SmbiosEntry);
//
// Some UEFI drivers (such as network) need some information in SMBIOS table.
// Here we create SMBIOS table and publish it in
@@ -793,23 +802,23 @@ SmbiosUpdateString (
EFI_STATUS
EFIAPI
SmbiosRemove (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN EFI_SMBIOS_HANDLE SmbiosHandle
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN EFI_SMBIOS_HANDLE SmbiosHandle
)
{
- LIST_ENTRY *Link;
- LIST_ENTRY *Head;
- EFI_STATUS Status;
- EFI_SMBIOS_HANDLE MaxSmbiosHandle;
- SMBIOS_INSTANCE *Private;
- EFI_SMBIOS_ENTRY *SmbiosEntry;
- SMBIOS_HANDLE_ENTRY *HandleEntry;
- EFI_SMBIOS_TABLE_HEADER *Record;
+ LIST_ENTRY *Link;
+ LIST_ENTRY *Head;
+ EFI_STATUS Status;
+ EFI_SMBIOS_HANDLE MaxSmbiosHandle;
+ SMBIOS_INSTANCE *Private;
+ EFI_SMBIOS_ENTRY *SmbiosEntry;
+ SMBIOS_HANDLE_ENTRY *HandleEntry;
+ EFI_SMBIOS_TABLE_HEADER *Record;
//
// Check args validity
//
- GetMaxSmbiosHandle(This, &MaxSmbiosHandle);
+ GetMaxSmbiosHandle (This, &MaxSmbiosHandle);
if (SmbiosHandle > MaxSmbiosHandle) {
return EFI_INVALID_PARAMETER;
@@ -826,25 +835,26 @@ SmbiosRemove (
Head = &Private->DataListHead;
for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) {
- SmbiosEntry = SMBIOS_ENTRY_FROM_LINK(Link);
- Record = (EFI_SMBIOS_TABLE_HEADER*)(SmbiosEntry->RecordHeader + 1);
+ SmbiosEntry = SMBIOS_ENTRY_FROM_LINK (Link);
+ Record = (EFI_SMBIOS_TABLE_HEADER *)(SmbiosEntry->RecordHeader + 1);
if (Record->Handle == SmbiosHandle) {
//
// Remove specified smobios record from DataList
//
- RemoveEntryList(Link);
+ RemoveEntryList (Link);
//
// Remove this handle from AllocatedHandleList
//
Head = &Private->AllocatedHandleListHead;
for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) {
- HandleEntry = SMBIOS_HANDLE_ENTRY_FROM_LINK(Link);
+ HandleEntry = SMBIOS_HANDLE_ENTRY_FROM_LINK (Link);
if (HandleEntry->SmbiosHandle == SmbiosHandle) {
- RemoveEntryList(Link);
- FreePool(HandleEntry);
+ RemoveEntryList (Link);
+ FreePool (HandleEntry);
break;
}
}
+
//
// Some UEFI drivers (such as network) need some information in SMBIOS table.
// Here we create SMBIOS table and publish it in
@@ -854,14 +864,16 @@ SmbiosRemove (
if (SmbiosEntry->Smbios32BitTable) {
DEBUG ((DEBUG_INFO, "SmbiosRemove: remove from 32-bit table\n"));
}
+
if (SmbiosEntry->Smbios64BitTable) {
DEBUG ((DEBUG_INFO, "SmbiosRemove: remove from 64-bit table\n"));
}
+
//
// Update the whole SMBIOS table again based on which table the removed SMBIOS record is in.
//
SmbiosTableConstruction (SmbiosEntry->Smbios32BitTable, SmbiosEntry->Smbios64BitTable);
- FreePool(SmbiosEntry);
+ FreePool (SmbiosEntry);
EfiReleaseLock (&Private->DataLock);
return EFI_SUCCESS;
}
@@ -872,7 +884,6 @@ SmbiosRemove (
//
EfiReleaseLock (&Private->DataLock);
return EFI_INVALID_PARAMETER;
-
}
/**
@@ -896,11 +907,11 @@ SmbiosRemove (
EFI_STATUS
EFIAPI
SmbiosGetNext (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle,
- IN EFI_SMBIOS_TYPE *Type OPTIONAL,
- OUT EFI_SMBIOS_TABLE_HEADER **Record,
- OUT EFI_HANDLE *ProducerHandle OPTIONAL
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN OUT EFI_SMBIOS_HANDLE *SmbiosHandle,
+ IN EFI_SMBIOS_TYPE *Type OPTIONAL,
+ OUT EFI_SMBIOS_TABLE_HEADER **Record,
+ OUT EFI_HANDLE *ProducerHandle OPTIONAL
)
{
BOOLEAN StartPointFound;
@@ -915,11 +926,11 @@ SmbiosGetNext (
}
StartPointFound = FALSE;
- Private = SMBIOS_INSTANCE_FROM_THIS (This);
- Head = &Private->DataListHead;
+ Private = SMBIOS_INSTANCE_FROM_THIS (This);
+ Head = &Private->DataListHead;
for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) {
- SmbiosEntry = SMBIOS_ENTRY_FROM_LINK(Link);
- SmbiosTableHeader = (EFI_SMBIOS_TABLE_HEADER*)(SmbiosEntry->RecordHeader + 1);
+ SmbiosEntry = SMBIOS_ENTRY_FROM_LINK (Link);
+ SmbiosTableHeader = (EFI_SMBIOS_TABLE_HEADER *)(SmbiosEntry->RecordHeader + 1);
//
// If SmbiosHandle is 0xFFFE, the first matched SMBIOS record handle will be returned
@@ -930,10 +941,11 @@ SmbiosGetNext (
}
*SmbiosHandle = SmbiosTableHeader->Handle;
- *Record =SmbiosTableHeader;
+ *Record = SmbiosTableHeader;
if (ProducerHandle != NULL) {
*ProducerHandle = SmbiosEntry->RecordHeader->ProducerHandle;
}
+
return EFI_SUCCESS;
}
@@ -951,7 +963,7 @@ SmbiosGetNext (
}
*SmbiosHandle = SmbiosTableHeader->Handle;
- *Record = SmbiosTableHeader;
+ *Record = SmbiosTableHeader;
if (ProducerHandle != NULL) {
*ProducerHandle = SmbiosEntry->RecordHeader->ProducerHandle;
}
@@ -962,7 +974,6 @@ SmbiosGetNext (
*SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
return EFI_NOT_FOUND;
-
}
/**
@@ -982,9 +993,9 @@ SmbiosGetNext (
EFI_STATUS
EFIAPI
GetNextSmbiosRecord (
- IN CONST EFI_SMBIOS_PROTOCOL *This,
- IN OUT EFI_SMBIOS_ENTRY **CurrentSmbiosEntry,
- OUT EFI_SMBIOS_TABLE_HEADER **Record
+ IN CONST EFI_SMBIOS_PROTOCOL *This,
+ IN OUT EFI_SMBIOS_ENTRY **CurrentSmbiosEntry,
+ OUT EFI_SMBIOS_TABLE_HEADER **Record
)
{
LIST_ENTRY *Link;
@@ -1006,7 +1017,7 @@ GetNextSmbiosRecord (
Head = &(*CurrentSmbiosEntry)->Link;
}
- Link = Head->ForwardLink;
+ Link = Head->ForwardLink;
if (Link == &Private->DataListHead) {
//
@@ -1015,9 +1026,9 @@ GetNextSmbiosRecord (
return EFI_NOT_FOUND;
}
- SmbiosEntry = SMBIOS_ENTRY_FROM_LINK(Link);
- SmbiosTableHeader = (EFI_SMBIOS_TABLE_HEADER*)(SmbiosEntry->RecordHeader + 1);
- *Record = SmbiosTableHeader;
+ SmbiosEntry = SMBIOS_ENTRY_FROM_LINK (Link);
+ SmbiosTableHeader = (EFI_SMBIOS_TABLE_HEADER *)(SmbiosEntry->RecordHeader + 1);
+ *Record = SmbiosTableHeader;
*CurrentSmbiosEntry = SmbiosEntry;
return EFI_SUCCESS;
}
@@ -1035,7 +1046,7 @@ GetNextSmbiosRecord (
EFI_STATUS
EFIAPI
SmbiosCreateTable (
- OUT VOID **TableEntryPointStructure
+ OUT VOID **TableEntryPointStructure
)
{
UINT8 *BufferPointer;
@@ -1049,8 +1060,8 @@ SmbiosCreateTable (
EFI_SMBIOS_TABLE_END_STRUCTURE EndStructure;
EFI_SMBIOS_ENTRY *CurrentSmbiosEntry;
- Status = EFI_SUCCESS;
- BufferPointer = NULL;
+ Status = EFI_SUCCESS;
+ BufferPointer = NULL;
if (EntryPointStructure == NULL) {
//
@@ -1059,16 +1070,16 @@ SmbiosCreateTable (
// Allocate memory (below 4GB).
//
DEBUG ((DEBUG_INFO, "SmbiosCreateTable: Initialize 32-bit entry point structure\n"));
- EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersion;
- EntryPointStructureData.MinorVersion = mPrivateData.Smbios.MinorVersion;
- EntryPointStructureData.SmbiosBcdRevision = (UINT8) ((PcdGet16 (PcdSmbiosVersion) >> 4) & 0xf0) | (UINT8) (PcdGet16 (PcdSmbiosVersion) & 0x0f);
- PhysicalAddress = 0xffffffff;
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- EfiRuntimeServicesData,
- EFI_SIZE_TO_PAGES (sizeof (SMBIOS_TABLE_ENTRY_POINT)),
- &PhysicalAddress
- );
+ EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersion;
+ EntryPointStructureData.MinorVersion = mPrivateData.Smbios.MinorVersion;
+ EntryPointStructureData.SmbiosBcdRevision = (UINT8)((PcdGet16 (PcdSmbiosVersion) >> 4) & 0xf0) | (UINT8)(PcdGet16 (PcdSmbiosVersion) & 0x0f);
+ PhysicalAddress = 0xffffffff;
+ Status = gBS->AllocatePages (
+ AllocateMaxAddress,
+ EfiRuntimeServicesData,
+ EFI_SIZE_TO_PAGES (sizeof (SMBIOS_TABLE_ENTRY_POINT)),
+ &PhysicalAddress
+ );
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "SmbiosCreateTable () could not allocate EntryPointStructure < 4GB\n"));
Status = gBS->AllocatePages (
@@ -1077,12 +1088,12 @@ SmbiosCreateTable (
EFI_SIZE_TO_PAGES (sizeof (SMBIOS_TABLE_ENTRY_POINT)),
&PhysicalAddress
);
- if (EFI_ERROR (Status)) {
+ if (EFI_ERROR (Status)) {
return EFI_OUT_OF_RESOURCES;
}
}
- EntryPointStructure = (SMBIOS_TABLE_ENTRY_POINT *) (UINTN) PhysicalAddress;
+ EntryPointStructure = (SMBIOS_TABLE_ENTRY_POINT *)(UINTN)PhysicalAddress;
CopyMem (
EntryPointStructure,
@@ -1111,66 +1122,69 @@ SmbiosCreateTable (
Status = GetNextSmbiosRecord (SmbiosProtocol, &CurrentSmbiosEntry, &SmbiosRecord);
if ((Status == EFI_SUCCESS) && (CurrentSmbiosEntry->Smbios32BitTable)) {
- GetSmbiosStructureSize(SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
+ GetSmbiosStructureSize (SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
//
// Record NumberOfSmbiosStructures, TableLength and MaxStructureSize
//
EntryPointStructure->NumberOfSmbiosStructures++;
- EntryPointStructure->TableLength = (UINT16) (EntryPointStructure->TableLength + RecordSize);
+ EntryPointStructure->TableLength = (UINT16)(EntryPointStructure->TableLength + RecordSize);
if (RecordSize > EntryPointStructure->MaxStructureSize) {
- EntryPointStructure->MaxStructureSize = (UINT16) RecordSize;
+ EntryPointStructure->MaxStructureSize = (UINT16)RecordSize;
}
}
- } while (!EFI_ERROR(Status));
+ } while (!EFI_ERROR (Status));
//
// Create End-Of-Table structure
//
- GetMaxSmbiosHandle(SmbiosProtocol, &SmbiosHandle);
- EndStructure.Header.Type = SMBIOS_TYPE_END_OF_TABLE;
- EndStructure.Header.Length = (UINT8) sizeof (EFI_SMBIOS_TABLE_HEADER);
+ GetMaxSmbiosHandle (SmbiosProtocol, &SmbiosHandle);
+ EndStructure.Header.Type = SMBIOS_TYPE_END_OF_TABLE;
+ EndStructure.Header.Length = (UINT8)sizeof (EFI_SMBIOS_TABLE_HEADER);
EndStructure.Header.Handle = SmbiosHandle;
- EndStructure.Tailing[0] = 0;
- EndStructure.Tailing[1] = 0;
+ EndStructure.Tailing[0] = 0;
+ EndStructure.Tailing[1] = 0;
EntryPointStructure->NumberOfSmbiosStructures++;
- EntryPointStructure->TableLength = (UINT16) (EntryPointStructure->TableLength + sizeof (EndStructure));
+ EntryPointStructure->TableLength = (UINT16)(EntryPointStructure->TableLength + sizeof (EndStructure));
if (sizeof (EndStructure) > EntryPointStructure->MaxStructureSize) {
- EntryPointStructure->MaxStructureSize = (UINT16) sizeof (EndStructure);
+ EntryPointStructure->MaxStructureSize = (UINT16)sizeof (EndStructure);
}
- if (EFI_SIZE_TO_PAGES ((UINT32) EntryPointStructure->TableLength) > mPreAllocatedPages) {
+ if (EFI_SIZE_TO_PAGES ((UINT32)EntryPointStructure->TableLength) > mPreAllocatedPages) {
//
// If new SMBIOS table size exceeds the previous allocated page,
// it is time to re-allocate memory (below 4GB).
//
- DEBUG ((DEBUG_INFO, "%a() re-allocate SMBIOS 32-bit table\n",
- __FUNCTION__));
+ DEBUG ((
+ DEBUG_INFO,
+ "%a() re-allocate SMBIOS 32-bit table\n",
+ __FUNCTION__
+ ));
if (EntryPointStructure->TableAddress != 0) {
//
// Free the previous allocated page
//
FreePages (
- (VOID*)(UINTN)EntryPointStructure->TableAddress,
- mPreAllocatedPages
- );
+ (VOID *)(UINTN)EntryPointStructure->TableAddress,
+ mPreAllocatedPages
+ );
EntryPointStructure->TableAddress = 0;
- mPreAllocatedPages = 0;
+ mPreAllocatedPages = 0;
}
PhysicalAddress = 0xffffffff;
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- EfiRuntimeServicesData,
- EFI_SIZE_TO_PAGES (EntryPointStructure->TableLength),
- &PhysicalAddress
- );
+ Status = gBS->AllocatePages (
+ AllocateMaxAddress,
+ EfiRuntimeServicesData,
+ EFI_SIZE_TO_PAGES (EntryPointStructure->TableLength),
+ &PhysicalAddress
+ );
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "SmbiosCreateTable() could not allocate SMBIOS table < 4GB\n"));
EntryPointStructure->TableAddress = 0;
return EFI_OUT_OF_RESOURCES;
} else {
- EntryPointStructure->TableAddress = (UINT32) PhysicalAddress;
- mPreAllocatedPages = EFI_SIZE_TO_PAGES (EntryPointStructure->TableLength);
+ EntryPointStructure->TableAddress = (UINT32)PhysicalAddress;
+ mPreAllocatedPages = EFI_SIZE_TO_PAGES (EntryPointStructure->TableLength);
}
}
@@ -1178,17 +1192,17 @@ SmbiosCreateTable (
// Assemble the tables
//
ASSERT (EntryPointStructure->TableAddress != 0);
- BufferPointer = (UINT8 *) (UINTN) EntryPointStructure->TableAddress;
+ BufferPointer = (UINT8 *)(UINTN)EntryPointStructure->TableAddress;
CurrentSmbiosEntry = NULL;
do {
Status = GetNextSmbiosRecord (SmbiosProtocol, &CurrentSmbiosEntry, &SmbiosRecord);
if ((Status == EFI_SUCCESS) && (CurrentSmbiosEntry->Smbios32BitTable)) {
- GetSmbiosStructureSize(SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
+ GetSmbiosStructureSize (SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
CopyMem (BufferPointer, SmbiosRecord, RecordSize);
BufferPointer = BufferPointer + RecordSize;
}
- } while (!EFI_ERROR(Status));
+ } while (!EFI_ERROR (Status));
//
// Assemble End-Of-Table structure
@@ -1198,13 +1212,13 @@ SmbiosCreateTable (
//
// Fixup checksums in the Entry Point Structure
//
- EntryPointStructure->IntermediateChecksum = 0;
+ EntryPointStructure->IntermediateChecksum = 0;
EntryPointStructure->EntryPointStructureChecksum = 0;
EntryPointStructure->IntermediateChecksum =
- CalculateCheckSum8 ((UINT8 *) EntryPointStructure + 0x10, EntryPointStructure->EntryPointLength - 0x10);
+ CalculateCheckSum8 ((UINT8 *)EntryPointStructure + 0x10, EntryPointStructure->EntryPointLength - 0x10);
EntryPointStructure->EntryPointStructureChecksum =
- CalculateCheckSum8 ((UINT8 *) EntryPointStructure, EntryPointStructure->EntryPointLength);
+ CalculateCheckSum8 ((UINT8 *)EntryPointStructure, EntryPointStructure->EntryPointLength);
//
// Returns the pointer
@@ -1227,7 +1241,7 @@ SmbiosCreateTable (
EFI_STATUS
EFIAPI
SmbiosCreate64BitTable (
- OUT VOID **TableEntryPointStructure
+ OUT VOID **TableEntryPointStructure
)
{
UINT8 *BufferPointer;
@@ -1241,8 +1255,8 @@ SmbiosCreate64BitTable (
EFI_SMBIOS_TABLE_END_STRUCTURE EndStructure;
EFI_SMBIOS_ENTRY *CurrentSmbiosEntry;
- Status = EFI_SUCCESS;
- BufferPointer = NULL;
+ Status = EFI_SUCCESS;
+ BufferPointer = NULL;
if (Smbios30EntryPointStructure == NULL) {
//
@@ -1251,21 +1265,21 @@ SmbiosCreate64BitTable (
// Allocate memory at any address.
//
DEBUG ((DEBUG_INFO, "SmbiosCreateTable: Initialize 64-bit entry point structure\n"));
- Smbios30EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersion;
- Smbios30EntryPointStructureData.MinorVersion = mPrivateData.Smbios.MinorVersion;
- Smbios30EntryPointStructureData.DocRev = PcdGet8 (PcdSmbiosDocRev);
- Status = gBS->AllocatePages (
- AllocateAnyPages,
- EfiRuntimeServicesData,
- EFI_SIZE_TO_PAGES (sizeof (SMBIOS_TABLE_3_0_ENTRY_POINT)),
- &PhysicalAddress
- );
+ Smbios30EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersion;
+ Smbios30EntryPointStructureData.MinorVersion = mPrivateData.Smbios.MinorVersion;
+ Smbios30EntryPointStructureData.DocRev = PcdGet8 (PcdSmbiosDocRev);
+ Status = gBS->AllocatePages (
+ AllocateAnyPages,
+ EfiRuntimeServicesData,
+ EFI_SIZE_TO_PAGES (sizeof (SMBIOS_TABLE_3_0_ENTRY_POINT)),
+ &PhysicalAddress
+ );
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "SmbiosCreate64BitTable() could not allocate Smbios30EntryPointStructure\n"));
return EFI_OUT_OF_RESOURCES;
}
- Smbios30EntryPointStructure = (SMBIOS_TABLE_3_0_ENTRY_POINT *) (UINTN) PhysicalAddress;
+ Smbios30EntryPointStructure = (SMBIOS_TABLE_3_0_ENTRY_POINT *)(UINTN)PhysicalAddress;
CopyMem (
Smbios30EntryPointStructure,
@@ -1277,7 +1291,7 @@ SmbiosCreate64BitTable (
//
// Get Smbios protocol to traverse SMBIOS records.
//
- SmbiosProtocol = &mPrivateData.Smbios;
+ SmbiosProtocol = &mPrivateData.Smbios;
Smbios30EntryPointStructure->TableMaximumSize = 0;
//
@@ -1288,42 +1302,45 @@ SmbiosCreate64BitTable (
Status = GetNextSmbiosRecord (SmbiosProtocol, &CurrentSmbiosEntry, &SmbiosRecord);
if ((Status == EFI_SUCCESS) && (CurrentSmbiosEntry->Smbios64BitTable)) {
- GetSmbiosStructureSize(SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
+ GetSmbiosStructureSize (SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
//
// Record TableMaximumSize
//
- Smbios30EntryPointStructure->TableMaximumSize = (UINT32) (Smbios30EntryPointStructure->TableMaximumSize + RecordSize);
+ Smbios30EntryPointStructure->TableMaximumSize = (UINT32)(Smbios30EntryPointStructure->TableMaximumSize + RecordSize);
}
- } while (!EFI_ERROR(Status));
+ } while (!EFI_ERROR (Status));
//
// Create End-Of-Table structure
//
- GetMaxSmbiosHandle(SmbiosProtocol, &SmbiosHandle);
- EndStructure.Header.Type = SMBIOS_TYPE_END_OF_TABLE;
- EndStructure.Header.Length = (UINT8) sizeof (EFI_SMBIOS_TABLE_HEADER);
- EndStructure.Header.Handle = SmbiosHandle;
- EndStructure.Tailing[0] = 0;
- EndStructure.Tailing[1] = 0;
- Smbios30EntryPointStructure->TableMaximumSize = (UINT32) (Smbios30EntryPointStructure->TableMaximumSize + sizeof (EndStructure));
+ GetMaxSmbiosHandle (SmbiosProtocol, &SmbiosHandle);
+ EndStructure.Header.Type = SMBIOS_TYPE_END_OF_TABLE;
+ EndStructure.Header.Length = (UINT8)sizeof (EFI_SMBIOS_TABLE_HEADER);
+ EndStructure.Header.Handle = SmbiosHandle;
+ EndStructure.Tailing[0] = 0;
+ EndStructure.Tailing[1] = 0;
+ Smbios30EntryPointStructure->TableMaximumSize = (UINT32)(Smbios30EntryPointStructure->TableMaximumSize + sizeof (EndStructure));
if (EFI_SIZE_TO_PAGES (Smbios30EntryPointStructure->TableMaximumSize) > mPre64BitAllocatedPages) {
//
// If new SMBIOS table size exceeds the previous allocated page,
// it is time to re-allocate memory at anywhere.
//
- DEBUG ((DEBUG_INFO, "%a() re-allocate SMBIOS 64-bit table\n",
- __FUNCTION__));
+ DEBUG ((
+ DEBUG_INFO,
+ "%a() re-allocate SMBIOS 64-bit table\n",
+ __FUNCTION__
+ ));
if (Smbios30EntryPointStructure->TableAddress != 0) {
//
// Free the previous allocated page
//
FreePages (
- (VOID*)(UINTN)Smbios30EntryPointStructure->TableAddress,
- mPre64BitAllocatedPages
- );
+ (VOID *)(UINTN)Smbios30EntryPointStructure->TableAddress,
+ mPre64BitAllocatedPages
+ );
Smbios30EntryPointStructure->TableAddress = 0;
- mPre64BitAllocatedPages = 0;
+ mPre64BitAllocatedPages = 0;
}
Status = gBS->AllocatePages (
@@ -1338,7 +1355,7 @@ SmbiosCreate64BitTable (
return EFI_OUT_OF_RESOURCES;
} else {
Smbios30EntryPointStructure->TableAddress = PhysicalAddress;
- mPre64BitAllocatedPages = EFI_SIZE_TO_PAGES (Smbios30EntryPointStructure->TableMaximumSize);
+ mPre64BitAllocatedPages = EFI_SIZE_TO_PAGES (Smbios30EntryPointStructure->TableMaximumSize);
}
}
@@ -1346,7 +1363,7 @@ SmbiosCreate64BitTable (
// Assemble the tables
//
ASSERT (Smbios30EntryPointStructure->TableAddress != 0);
- BufferPointer = (UINT8 *) (UINTN) Smbios30EntryPointStructure->TableAddress;
+ BufferPointer = (UINT8 *)(UINTN)Smbios30EntryPointStructure->TableAddress;
CurrentSmbiosEntry = NULL;
do {
Status = GetNextSmbiosRecord (SmbiosProtocol, &CurrentSmbiosEntry, &SmbiosRecord);
@@ -1355,11 +1372,11 @@ SmbiosCreate64BitTable (
//
// This record can be added to 64-bit table
//
- GetSmbiosStructureSize(SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
+ GetSmbiosStructureSize (SmbiosProtocol, SmbiosRecord, &RecordSize, &NumOfStr);
CopyMem (BufferPointer, SmbiosRecord, RecordSize);
BufferPointer = BufferPointer + RecordSize;
}
- } while (!EFI_ERROR(Status));
+ } while (!EFI_ERROR (Status));
//
// Assemble End-Of-Table structure
@@ -1371,7 +1388,7 @@ SmbiosCreate64BitTable (
//
Smbios30EntryPointStructure->EntryPointStructureChecksum = 0;
Smbios30EntryPointStructure->EntryPointStructureChecksum =
- CalculateCheckSum8 ((UINT8 *) Smbios30EntryPointStructure, Smbios30EntryPointStructure->EntryPointLength);
+ CalculateCheckSum8 ((UINT8 *)Smbios30EntryPointStructure, Smbios30EntryPointStructure->EntryPointLength);
//
// Returns the pointer
@@ -1391,8 +1408,8 @@ SmbiosCreate64BitTable (
VOID
EFIAPI
SmbiosTableConstruction (
- BOOLEAN Smbios32BitTable,
- BOOLEAN Smbios64BitTable
+ BOOLEAN Smbios32BitTable,
+ BOOLEAN Smbios64BitTable
)
{
UINT8 *Eps;
@@ -1400,14 +1417,14 @@ SmbiosTableConstruction (
EFI_STATUS Status;
if (Smbios32BitTable) {
- Status = SmbiosCreateTable ((VOID **) &Eps);
+ Status = SmbiosCreateTable ((VOID **)&Eps);
if (!EFI_ERROR (Status)) {
gBS->InstallConfigurationTable (&gEfiSmbiosTableGuid, Eps);
}
}
if (Smbios64BitTable) {
- Status = SmbiosCreate64BitTable ((VOID **) &Eps64Bit);
+ Status = SmbiosCreate64BitTable ((VOID **)&Eps64Bit);
if (!EFI_ERROR (Status)) {
gBS->InstallConfigurationTable (&gEfiSmbios3TableGuid, Eps64Bit);
}
@@ -1428,14 +1445,15 @@ SmbiosTableConstruction (
STATIC
BOOLEAN
IsValidSmbios20Table (
- IN VOID *TableEntry,
- OUT VOID **TableAddress,
- OUT UINTN *TableMaximumSize
+ IN VOID *TableEntry,
+ OUT VOID **TableAddress,
+ OUT UINTN *TableMaximumSize
)
{
- UINT8 Checksum;
- SMBIOS_TABLE_ENTRY_POINT *SmbiosTable;
- SmbiosTable = (SMBIOS_TABLE_ENTRY_POINT *) TableEntry;
+ UINT8 Checksum;
+ SMBIOS_TABLE_ENTRY_POINT *SmbiosTable;
+
+ SmbiosTable = (SMBIOS_TABLE_ENTRY_POINT *)TableEntry;
if (CompareMem (SmbiosTable->AnchorString, "_SM_", 4) != 0) {
return FALSE;
@@ -1450,7 +1468,7 @@ IsValidSmbios20Table (
// However, it was incorrectly stated in version 2.1 of smbios specification.
// Therefore, 0x1F and 0x1E are both accepted.
//
- if (SmbiosTable->EntryPointLength != 0x1E && SmbiosTable->EntryPointLength != sizeof (SMBIOS_TABLE_ENTRY_POINT)) {
+ if ((SmbiosTable->EntryPointLength != 0x1E) && (SmbiosTable->EntryPointLength != sizeof (SMBIOS_TABLE_ENTRY_POINT))) {
return FALSE;
}
@@ -1465,7 +1483,7 @@ IsValidSmbios20Table (
// The whole struct check sum should be zero
//
Checksum = CalculateSum8 (
- (UINT8 *) SmbiosTable,
+ (UINT8 *)SmbiosTable,
SmbiosTable->EntryPointLength
);
if (Checksum != 0) {
@@ -1476,14 +1494,14 @@ IsValidSmbios20Table (
// The Intermediate Entry Point Structure check sum should be zero.
//
Checksum = CalculateSum8 (
- (UINT8 *) SmbiosTable + OFFSET_OF (SMBIOS_TABLE_ENTRY_POINT, IntermediateAnchorString),
+ (UINT8 *)SmbiosTable + OFFSET_OF (SMBIOS_TABLE_ENTRY_POINT, IntermediateAnchorString),
SmbiosTable->EntryPointLength - OFFSET_OF (SMBIOS_TABLE_ENTRY_POINT, IntermediateAnchorString)
);
if (Checksum != 0) {
return FALSE;
}
- *TableAddress = (VOID *) (UINTN) SmbiosTable->TableAddress;
+ *TableAddress = (VOID *)(UINTN)SmbiosTable->TableAddress;
*TableMaximumSize = SmbiosTable->TableLength;
return TRUE;
}
@@ -1502,21 +1520,24 @@ IsValidSmbios20Table (
STATIC
BOOLEAN
IsValidSmbios30Table (
- IN VOID *TableEntry,
- OUT VOID **TableAddress,
- OUT UINTN *TableMaximumSize
+ IN VOID *TableEntry,
+ OUT VOID **TableAddress,
+ OUT UINTN *TableMaximumSize
)
{
- UINT8 Checksum;
- SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable;
- SmbiosTable = (SMBIOS_TABLE_3_0_ENTRY_POINT *) TableEntry;
+ UINT8 Checksum;
+ SMBIOS_TABLE_3_0_ENTRY_POINT *SmbiosTable;
+
+ SmbiosTable = (SMBIOS_TABLE_3_0_ENTRY_POINT *)TableEntry;
if (CompareMem (SmbiosTable->AnchorString, "_SM3_", 5) != 0) {
return FALSE;
}
+
if (SmbiosTable->EntryPointLength < sizeof (SMBIOS_TABLE_3_0_ENTRY_POINT)) {
return FALSE;
}
+
if (SmbiosTable->MajorVersion < 3) {
return FALSE;
}
@@ -1525,14 +1546,14 @@ IsValidSmbios30Table (
// The whole struct check sum should be zero
//
Checksum = CalculateSum8 (
- (UINT8 *) SmbiosTable,
+ (UINT8 *)SmbiosTable,
SmbiosTable->EntryPointLength
);
if (Checksum != 0) {
return FALSE;
}
- *TableAddress = (VOID *) (UINTN) SmbiosTable->TableAddress;
+ *TableAddress = (VOID *)(UINTN)SmbiosTable->TableAddress;
*TableMaximumSize = SmbiosTable->TableMaximumSize;
return TRUE;
}
@@ -1552,19 +1573,19 @@ IsValidSmbios30Table (
STATIC
EFI_STATUS
ParseAndAddExistingSmbiosTable (
- IN EFI_HANDLE ImageHandle,
- IN SMBIOS_STRUCTURE_POINTER Smbios,
- IN UINTN Length
+ IN EFI_HANDLE ImageHandle,
+ IN SMBIOS_STRUCTURE_POINTER Smbios,
+ IN UINTN Length
)
{
- EFI_STATUS Status;
- CHAR8 *String;
- EFI_SMBIOS_HANDLE SmbiosHandle;
- SMBIOS_STRUCTURE_POINTER SmbiosEnd;
+ EFI_STATUS Status;
+ CHAR8 *String;
+ EFI_SMBIOS_HANDLE SmbiosHandle;
+ SMBIOS_STRUCTURE_POINTER SmbiosEnd;
SmbiosEnd.Raw = Smbios.Raw + Length;
- if (Smbios.Raw >= SmbiosEnd.Raw || Smbios.Raw == NULL) {
+ if ((Smbios.Raw >= SmbiosEnd.Raw) || (Smbios.Raw == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1572,39 +1593,45 @@ ParseAndAddExistingSmbiosTable (
//
// Make sure not to access memory beyond SmbiosEnd
//
- if (Smbios.Raw + sizeof (SMBIOS_STRUCTURE) > SmbiosEnd.Raw ||
- Smbios.Raw + sizeof (SMBIOS_STRUCTURE) < Smbios.Raw) {
+ if ((Smbios.Raw + sizeof (SMBIOS_STRUCTURE) > SmbiosEnd.Raw) ||
+ (Smbios.Raw + sizeof (SMBIOS_STRUCTURE) < Smbios.Raw))
+ {
return EFI_INVALID_PARAMETER;
}
+
//
// Check for end marker
//
if (Smbios.Hdr->Type == SMBIOS_TYPE_END_OF_TABLE) {
break;
}
+
//
// Make sure not to access memory beyond SmbiosEnd
// Each structure shall be terminated by a double-null (0000h).
//
- if (Smbios.Raw + Smbios.Hdr->Length + 2 * sizeof (UINT8) > SmbiosEnd.Raw ||
- Smbios.Raw + Smbios.Hdr->Length + 2 * sizeof (UINT8) < Smbios.Raw) {
+ if ((Smbios.Raw + Smbios.Hdr->Length + 2 * sizeof (UINT8) > SmbiosEnd.Raw) ||
+ (Smbios.Raw + Smbios.Hdr->Length + 2 * sizeof (UINT8) < Smbios.Raw))
+ {
return EFI_INVALID_PARAMETER;
}
+
//
// Install the table
//
SmbiosHandle = Smbios.Hdr->Handle;
- Status = SmbiosAdd (
- &mPrivateData.Smbios,
- ImageHandle,
- &SmbiosHandle,
- Smbios.Hdr
- );
+ Status = SmbiosAdd (
+ &mPrivateData.Smbios,
+ ImageHandle,
+ &SmbiosHandle,
+ Smbios.Hdr
+ );
ASSERT_EFI_ERROR (Status);
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Go to the next SMBIOS structure. Each SMBIOS structure may include 2 parts:
// 1. Formatted section; 2. Unformatted string section. So, 2 steps are needed
@@ -1614,7 +1641,7 @@ ParseAndAddExistingSmbiosTable (
//
// Step 1: Skip over formatted section.
//
- String = (CHAR8 *) (Smbios.Raw + Smbios.Hdr->Length);
+ String = (CHAR8 *)(Smbios.Raw + Smbios.Hdr->Length);
//
// Step 2: Skip over unformatted string section.
@@ -1625,16 +1652,16 @@ ParseAndAddExistingSmbiosTable (
// is terminated with an additional NULL(00h) BYTE.
//
for ( ; *String != 0; String++) {
- if ((UINTN) String >= (UINTN) SmbiosEnd.Raw - sizeof (UINT8)) {
+ if ((UINTN)String >= (UINTN)SmbiosEnd.Raw - sizeof (UINT8)) {
return EFI_INVALID_PARAMETER;
}
}
- if (*(UINT8 *) ++String == 0) {
+ if (*(UINT8 *)++String == 0) {
//
// Pointer to the next SMBIOS structure.
//
- Smbios.Raw = (UINT8 *) ++String;
+ Smbios.Raw = (UINT8 *)++String;
break;
}
} while (TRUE);
@@ -1654,17 +1681,17 @@ ParseAndAddExistingSmbiosTable (
**/
EFI_STATUS
RetrieveSmbiosFromHob (
- IN EFI_HANDLE ImageHandle
+ IN EFI_HANDLE ImageHandle
)
{
- EFI_STATUS Status;
- UINTN Index;
- SMBIOS_STRUCTURE_POINTER Smbios;
- EFI_HOB_GUID_TYPE *GuidHob;
- UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmBiosTableAdress;
- UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader;
- VOID *TableAddress;
- UINTN TableMaximumSize;
+ EFI_STATUS Status;
+ UINTN Index;
+ SMBIOS_STRUCTURE_POINTER Smbios;
+ EFI_HOB_GUID_TYPE *GuidHob;
+ UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmBiosTableAdress;
+ UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader;
+ VOID *TableAddress;
+ UINTN TableMaximumSize;
Status = EFI_NOT_FOUND;
@@ -1673,17 +1700,18 @@ RetrieveSmbiosFromHob (
if (GuidHob == NULL) {
continue;
}
- GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *) GET_GUID_HOB_DATA (GuidHob);
+
+ GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *)GET_GUID_HOB_DATA (GuidHob);
if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) <= GET_GUID_HOB_DATA_SIZE (GuidHob)) && (GenericHeader->Length <= GET_GUID_HOB_DATA_SIZE (GuidHob))) {
if (GenericHeader->Revision == UNIVERSAL_PAYLOAD_SMBIOS_TABLE_REVISION) {
//
// UNIVERSAL_PAYLOAD_SMBIOS_TABLE structure is used when Revision equals to UNIVERSAL_PAYLOAD_SMBIOS_TABLE_REVISION
//
- SmBiosTableAdress = (UNIVERSAL_PAYLOAD_SMBIOS_TABLE *) GET_GUID_HOB_DATA (GuidHob);
+ SmBiosTableAdress = (UNIVERSAL_PAYLOAD_SMBIOS_TABLE *)GET_GUID_HOB_DATA (GuidHob);
if (GenericHeader->Length >= UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UNIVERSAL_PAYLOAD_SMBIOS_TABLE, SmBiosEntryPoint)) {
- if (mIsSmbiosTableValid[Index].IsValid ((VOID *) (UINTN )SmBiosTableAdress->SmBiosEntryPoint, &TableAddress, &TableMaximumSize)) {
+ if (mIsSmbiosTableValid[Index].IsValid ((VOID *)(UINTN)SmBiosTableAdress->SmBiosEntryPoint, &TableAddress, &TableMaximumSize)) {
Smbios.Raw = TableAddress;
- Status = ParseAndAddExistingSmbiosTable (ImageHandle, Smbios, TableMaximumSize);
+ Status = ParseAndAddExistingSmbiosTable (ImageHandle, Smbios, TableMaximumSize);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "RetrieveSmbiosFromHob: Failed to parse preinstalled tables from Guid Hob\n"));
Status = EFI_UNSUPPORTED;
@@ -1695,6 +1723,7 @@ RetrieveSmbiosFromHob (
}
}
}
+
return Status;
}
@@ -1712,19 +1741,19 @@ RetrieveSmbiosFromHob (
EFI_STATUS
EFIAPI
SmbiosDriverEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- mPrivateData.Signature = SMBIOS_INSTANCE_SIGNATURE;
- mPrivateData.Smbios.Add = SmbiosAdd;
- mPrivateData.Smbios.UpdateString = SmbiosUpdateString;
- mPrivateData.Smbios.Remove = SmbiosRemove;
- mPrivateData.Smbios.GetNext = SmbiosGetNext;
- mPrivateData.Smbios.MajorVersion = (UINT8) (PcdGet16 (PcdSmbiosVersion) >> 8);
- mPrivateData.Smbios.MinorVersion = (UINT8) (PcdGet16 (PcdSmbiosVersion) & 0x00ff);
+ mPrivateData.Signature = SMBIOS_INSTANCE_SIGNATURE;
+ mPrivateData.Smbios.Add = SmbiosAdd;
+ mPrivateData.Smbios.UpdateString = SmbiosUpdateString;
+ mPrivateData.Smbios.Remove = SmbiosRemove;
+ mPrivateData.Smbios.GetNext = SmbiosGetNext;
+ mPrivateData.Smbios.MajorVersion = (UINT8)(PcdGet16 (PcdSmbiosVersion) >> 8);
+ mPrivateData.Smbios.MinorVersion = (UINT8)(PcdGet16 (PcdSmbiosVersion) & 0x00ff);
InitializeListHead (&mPrivateData.DataListHead);
InitializeListHead (&mPrivateData.AllocatedHandleListHead);
@@ -1734,12 +1763,12 @@ SmbiosDriverEntryPoint (
// Make a new handle and install the protocol
//
mPrivateData.Handle = NULL;
- Status = gBS->InstallProtocolInterface (
- &mPrivateData.Handle,
- &gEfiSmbiosProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &mPrivateData.Smbios
- );
+ Status = gBS->InstallProtocolInterface (
+ &mPrivateData.Handle,
+ &gEfiSmbiosProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mPrivateData.Smbios
+ );
RetrieveSmbiosFromHob (ImageHandle);
return Status;
diff --git a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
index a131bda..019798e 100644
--- a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
+++ b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.h
@@ -9,7 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _SMBIOS_DXE_H_
#define _SMBIOS_DXE_H_
-
#include <PiDxe.h>
#include <Protocol/Smbios.h>
@@ -27,26 +26,26 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/HobLib.h>
#include <UniversalPayload/SmbiosTable.h>
-#define SMBIOS_INSTANCE_SIGNATURE SIGNATURE_32 ('S', 'B', 'i', 's')
+#define SMBIOS_INSTANCE_SIGNATURE SIGNATURE_32 ('S', 'B', 'i', 's')
typedef struct {
- UINT32 Signature;
- EFI_HANDLE Handle;
+ UINT32 Signature;
+ EFI_HANDLE Handle;
//
// Produced protocol
//
- EFI_SMBIOS_PROTOCOL Smbios;
+ EFI_SMBIOS_PROTOCOL Smbios;
//
// Updates to record list must be locked.
//
- EFI_LOCK DataLock;
+ EFI_LOCK DataLock;
//
// List of EFI_SMBIOS_ENTRY structures.
//
- LIST_ENTRY DataListHead;
+ LIST_ENTRY DataListHead;
//
// List of allocated SMBIOS handle.
//
- LIST_ENTRY AllocatedHandleListHead;
+ LIST_ENTRY AllocatedHandleListHead;
} SMBIOS_INSTANCE;
#define SMBIOS_INSTANCE_FROM_THIS(this) CR (this, SMBIOS_INSTANCE, Smbios, SMBIOS_INSTANCE_SIGNATURE)
@@ -60,29 +59,28 @@ typedef struct {
//
#define EFI_SMBIOS_RECORD_HEADER_VERSION 0x0100
typedef struct {
- UINT16 Version;
- UINT16 HeaderSize;
- UINTN RecordSize;
- EFI_HANDLE ProducerHandle;
- UINTN NumberOfStrings;
+ UINT16 Version;
+ UINT16 HeaderSize;
+ UINTN RecordSize;
+ EFI_HANDLE ProducerHandle;
+ UINTN NumberOfStrings;
} EFI_SMBIOS_RECORD_HEADER;
-
//
// Private data structure to contain the SMBIOS record. One record per
// structure. SmbiosRecord is a copy of the data passed in and follows RecordHeader .
//
#define EFI_SMBIOS_ENTRY_SIGNATURE SIGNATURE_32 ('S', 'r', 'e', 'c')
typedef struct {
- UINT32 Signature;
- LIST_ENTRY Link;
- EFI_SMBIOS_RECORD_HEADER *RecordHeader;
- UINTN RecordSize;
+ UINT32 Signature;
+ LIST_ENTRY Link;
+ EFI_SMBIOS_RECORD_HEADER *RecordHeader;
+ UINTN RecordSize;
//
// Indicate which table this record is added to.
//
- BOOLEAN Smbios32BitTable;
- BOOLEAN Smbios64BitTable;
+ BOOLEAN Smbios32BitTable;
+ BOOLEAN Smbios64BitTable;
} EFI_SMBIOS_ENTRY;
#define SMBIOS_ENTRY_FROM_LINK(link) CR (link, EFI_SMBIOS_ENTRY, Link, EFI_SMBIOS_ENTRY_SIGNATURE)
@@ -99,14 +97,13 @@ typedef struct {
// Filter driver will register what record guid filter should be used.
//
EFI_SMBIOS_HANDLE SmbiosHandle;
-
} SMBIOS_HANDLE_ENTRY;
#define SMBIOS_HANDLE_ENTRY_FROM_LINK(link) CR (link, SMBIOS_HANDLE_ENTRY, Link, SMBIOS_HANDLE_ENTRY_SIGNATURE)
typedef struct {
- EFI_SMBIOS_TABLE_HEADER Header;
- UINT8 Tailing[2];
+ EFI_SMBIOS_TABLE_HEADER Header;
+ UINT8 Tailing[2];
} EFI_SMBIOS_TABLE_END_STRUCTURE;
/**
@@ -119,8 +116,8 @@ typedef struct {
VOID
EFIAPI
SmbiosTableConstruction (
- BOOLEAN Smbios32BitTable,
- BOOLEAN Smbios64BitTable
+ BOOLEAN Smbios32BitTable,
+ BOOLEAN Smbios64BitTable
);
/**
@@ -137,9 +134,9 @@ SmbiosTableConstruction (
STATIC
BOOLEAN
IsValidSmbios30Table (
- IN VOID *TableEntry,
- OUT VOID **TableAddress,
- OUT UINTN *TableMaximumSize
+ IN VOID *TableEntry,
+ OUT VOID **TableAddress,
+ OUT UINTN *TableMaximumSize
);
/**
@@ -156,9 +153,9 @@ IsValidSmbios30Table (
STATIC
BOOLEAN
IsValidSmbios20Table (
- IN VOID *TableEntry,
- OUT VOID **TableAddress,
- OUT UINTN *TableMaximumSize
+ IN VOID *TableEntry,
+ OUT VOID **TableAddress,
+ OUT UINTN *TableMaximumSize
);
/**
@@ -174,14 +171,14 @@ IsValidSmbios20Table (
**/
typedef
BOOLEAN
-(* IS_SMBIOS_TABLE_VALID) (
- IN VOID *TableEntry,
- OUT VOID **TableAddress,
- OUT UINTN *TableMaximumSize
+(*IS_SMBIOS_TABLE_VALID) (
+ IN VOID *TableEntry,
+ OUT VOID **TableAddress,
+ OUT UINTN *TableMaximumSize
);
typedef struct {
- EFI_GUID *Guid;
- IS_SMBIOS_TABLE_VALID IsValid;
+ EFI_GUID *Guid;
+ IS_SMBIOS_TABLE_VALID IsValid;
} IS_SMBIOS_TABLE_VALID_ENTRY;
#endif
diff --git a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c
index 98788ea..348082f 100644
--- a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c
+++ b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c
@@ -23,100 +23,100 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/PcdLib.h>
#include <Library/TpmMeasurementLib.h>
-#define FIELD_SIZE_OF(TYPE, Field) ((UINTN)sizeof(((TYPE *)0)->Field))
+#define FIELD_SIZE_OF(TYPE, Field) ((UINTN)sizeof(((TYPE *)0)->Field))
typedef struct {
- UINT8 Type;
- UINTN Offset;
- UINTN Size;
- UINT32 Flags;
+ UINT8 Type;
+ UINTN Offset;
+ UINTN Size;
+ UINT32 Flags;
} SMBIOS_FILTER_TABLE;
#define SMBIOS_FILTER_TABLE_FLAG_IS_STRING BIT0
typedef struct {
- UINT8 Type;
- SMBIOS_FILTER_TABLE *Filter; // NULL means all fields
- UINTN FilterCount;
+ UINT8 Type;
+ SMBIOS_FILTER_TABLE *Filter; // NULL means all fields
+ UINTN FilterCount;
} SMBIOS_FILTER_STRUCT;
//
// Platform Specific Policy
//
SMBIOS_FILTER_TABLE mSmbiosFilterType1BlackList[] = {
- {0x01, OFFSET_OF(SMBIOS_TABLE_TYPE1, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE1, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x01, OFFSET_OF(SMBIOS_TABLE_TYPE1, Uuid), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE1, Uuid), 0},
- {0x01, OFFSET_OF(SMBIOS_TABLE_TYPE1, WakeUpType), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE1, WakeUpType), 0},
+ { 0x01, OFFSET_OF (SMBIOS_TABLE_TYPE1, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE1, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x01, OFFSET_OF (SMBIOS_TABLE_TYPE1, Uuid), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE1, Uuid), 0 },
+ { 0x01, OFFSET_OF (SMBIOS_TABLE_TYPE1, WakeUpType), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE1, WakeUpType), 0 },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType2BlackList[] = {
- {0x02, OFFSET_OF(SMBIOS_TABLE_TYPE2, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE2, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x02, OFFSET_OF(SMBIOS_TABLE_TYPE2, LocationInChassis), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE2, LocationInChassis), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
+ { 0x02, OFFSET_OF (SMBIOS_TABLE_TYPE2, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE2, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x02, OFFSET_OF (SMBIOS_TABLE_TYPE2, LocationInChassis), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE2, LocationInChassis), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType3BlackList[] = {
- {0x03, OFFSET_OF(SMBIOS_TABLE_TYPE3, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE3, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x03, OFFSET_OF(SMBIOS_TABLE_TYPE3, AssetTag), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE3, AssetTag), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
+ { 0x03, OFFSET_OF (SMBIOS_TABLE_TYPE3, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE3, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x03, OFFSET_OF (SMBIOS_TABLE_TYPE3, AssetTag), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE3, AssetTag), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType4BlackList[] = {
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, AssetTag), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, AssetTag), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, PartNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, PartNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, CoreCount), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, CoreCount), 0},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, EnabledCoreCount), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, EnabledCoreCount), 0},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, ThreadCount), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, ThreadCount), 0},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, CoreCount2), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, CoreCount2), 0},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, EnabledCoreCount2), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, EnabledCoreCount2), 0},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, ThreadCount2), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, ThreadCount2), 0},
- {0x04, OFFSET_OF(SMBIOS_TABLE_TYPE4, Voltage), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE4, Voltage), 0},
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, AssetTag), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, AssetTag), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, PartNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, PartNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, CoreCount), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, CoreCount), 0 },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, EnabledCoreCount), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, EnabledCoreCount), 0 },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, ThreadCount), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, ThreadCount), 0 },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, CoreCount2), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, CoreCount2), 0 },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, EnabledCoreCount2), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, EnabledCoreCount2), 0 },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, ThreadCount2), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, ThreadCount2), 0 },
+ { 0x04, OFFSET_OF (SMBIOS_TABLE_TYPE4, Voltage), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE4, Voltage), 0 },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType17BlackList[] = {
- {0x11, OFFSET_OF(SMBIOS_TABLE_TYPE17, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE17, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x11, OFFSET_OF(SMBIOS_TABLE_TYPE17, AssetTag), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE17, AssetTag), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x11, OFFSET_OF(SMBIOS_TABLE_TYPE17, PartNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE17, PartNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
+ { 0x11, OFFSET_OF (SMBIOS_TABLE_TYPE17, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE17, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x11, OFFSET_OF (SMBIOS_TABLE_TYPE17, AssetTag), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE17, AssetTag), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x11, OFFSET_OF (SMBIOS_TABLE_TYPE17, PartNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE17, PartNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType22BlackList[] = {
- {0x16, OFFSET_OF(SMBIOS_TABLE_TYPE22, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE22, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x16, OFFSET_OF(SMBIOS_TABLE_TYPE22, SBDSSerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE22, SBDSSerialNumber), 0},
- {0x16, OFFSET_OF(SMBIOS_TABLE_TYPE22, SBDSManufactureDate), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE22, SBDSManufactureDate), 0},
+ { 0x16, OFFSET_OF (SMBIOS_TABLE_TYPE22, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE22, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x16, OFFSET_OF (SMBIOS_TABLE_TYPE22, SBDSSerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE22, SBDSSerialNumber), 0 },
+ { 0x16, OFFSET_OF (SMBIOS_TABLE_TYPE22, SBDSManufactureDate), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE22, SBDSManufactureDate), 0 },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType23BlackList[] = {
- {0x17, OFFSET_OF(SMBIOS_TABLE_TYPE23, ResetCount), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE23, ResetCount), 0},
+ { 0x17, OFFSET_OF (SMBIOS_TABLE_TYPE23, ResetCount), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE23, ResetCount), 0 },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType27BlackList[] = {
- {0x1B, OFFSET_OF(SMBIOS_TABLE_TYPE27, NominalSpeed), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE27, NominalSpeed), 0},
+ { 0x1B, OFFSET_OF (SMBIOS_TABLE_TYPE27, NominalSpeed), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE27, NominalSpeed), 0 },
};
SMBIOS_FILTER_TABLE mSmbiosFilterType39BlackList[] = {
- {0x27, OFFSET_OF(SMBIOS_TABLE_TYPE39, SerialNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE39, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x27, OFFSET_OF(SMBIOS_TABLE_TYPE39, AssetTagNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE39, AssetTagNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
- {0x27, OFFSET_OF(SMBIOS_TABLE_TYPE39, ModelPartNumber), FIELD_SIZE_OF(SMBIOS_TABLE_TYPE39, ModelPartNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING},
+ { 0x27, OFFSET_OF (SMBIOS_TABLE_TYPE39, SerialNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE39, SerialNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x27, OFFSET_OF (SMBIOS_TABLE_TYPE39, AssetTagNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE39, AssetTagNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
+ { 0x27, OFFSET_OF (SMBIOS_TABLE_TYPE39, ModelPartNumber), FIELD_SIZE_OF (SMBIOS_TABLE_TYPE39, ModelPartNumber), SMBIOS_FILTER_TABLE_FLAG_IS_STRING },
};
SMBIOS_FILTER_STRUCT mSmbiosFilterStandardTableBlackList[] = {
- {0x01, mSmbiosFilterType1BlackList, sizeof(mSmbiosFilterType1BlackList)/sizeof(mSmbiosFilterType1BlackList[0])},
- {0x02, mSmbiosFilterType2BlackList, sizeof(mSmbiosFilterType2BlackList)/sizeof(mSmbiosFilterType2BlackList[0])},
- {0x03, mSmbiosFilterType3BlackList, sizeof(mSmbiosFilterType3BlackList)/sizeof(mSmbiosFilterType3BlackList[0])},
- {0x04, mSmbiosFilterType4BlackList, sizeof(mSmbiosFilterType4BlackList)/sizeof(mSmbiosFilterType4BlackList[0])},
- {0x0B, NULL, 0},
- {0x0F, NULL, 0},
- {0x11, mSmbiosFilterType17BlackList, sizeof(mSmbiosFilterType17BlackList)/sizeof(mSmbiosFilterType17BlackList[0])},
- {0x12, NULL, 0},
- {0x16, mSmbiosFilterType22BlackList, sizeof(mSmbiosFilterType22BlackList)/sizeof(mSmbiosFilterType22BlackList[0])},
- {0x17, mSmbiosFilterType23BlackList, sizeof(mSmbiosFilterType23BlackList)/sizeof(mSmbiosFilterType23BlackList[0])},
- {0x1B, mSmbiosFilterType27BlackList, sizeof(mSmbiosFilterType27BlackList)/sizeof(mSmbiosFilterType27BlackList[0])},
- {0x1F, NULL, 0},
- {0x21, NULL, 0},
- {0x27, mSmbiosFilterType39BlackList, sizeof(mSmbiosFilterType39BlackList)/sizeof(mSmbiosFilterType39BlackList[0])},
+ { 0x01, mSmbiosFilterType1BlackList, sizeof (mSmbiosFilterType1BlackList)/sizeof (mSmbiosFilterType1BlackList[0]) },
+ { 0x02, mSmbiosFilterType2BlackList, sizeof (mSmbiosFilterType2BlackList)/sizeof (mSmbiosFilterType2BlackList[0]) },
+ { 0x03, mSmbiosFilterType3BlackList, sizeof (mSmbiosFilterType3BlackList)/sizeof (mSmbiosFilterType3BlackList[0]) },
+ { 0x04, mSmbiosFilterType4BlackList, sizeof (mSmbiosFilterType4BlackList)/sizeof (mSmbiosFilterType4BlackList[0]) },
+ { 0x0B, NULL, 0 },
+ { 0x0F, NULL, 0 },
+ { 0x11, mSmbiosFilterType17BlackList, sizeof (mSmbiosFilterType17BlackList)/sizeof (mSmbiosFilterType17BlackList[0]) },
+ { 0x12, NULL, 0 },
+ { 0x16, mSmbiosFilterType22BlackList, sizeof (mSmbiosFilterType22BlackList)/sizeof (mSmbiosFilterType22BlackList[0]) },
+ { 0x17, mSmbiosFilterType23BlackList, sizeof (mSmbiosFilterType23BlackList)/sizeof (mSmbiosFilterType23BlackList[0]) },
+ { 0x1B, mSmbiosFilterType27BlackList, sizeof (mSmbiosFilterType27BlackList)/sizeof (mSmbiosFilterType27BlackList[0]) },
+ { 0x1F, NULL, 0 },
+ { 0x21, NULL, 0 },
+ { 0x27, mSmbiosFilterType39BlackList, sizeof (mSmbiosFilterType39BlackList)/sizeof (mSmbiosFilterType39BlackList[0]) },
};
-EFI_SMBIOS_PROTOCOL *mSmbios;
-UINTN mMaxLen;
+EFI_SMBIOS_PROTOCOL *mSmbios;
+UINTN mMaxLen;
#pragma pack (1)
#define SMBIOS_HANDOFF_TABLE_DESC "SmbiosTable"
typedef struct {
- UINT8 TableDescriptionSize;
- UINT8 TableDescription[sizeof(SMBIOS_HANDOFF_TABLE_DESC)];
- UINT64 NumberOfTables;
- EFI_CONFIGURATION_TABLE TableEntry[1];
+ UINT8 TableDescriptionSize;
+ UINT8 TableDescription[sizeof (SMBIOS_HANDOFF_TABLE_DESC)];
+ UINT64 NumberOfTables;
+ EFI_CONFIGURATION_TABLE TableEntry[1];
} SMBIOS_HANDOFF_TABLE_POINTERS2;
#pragma pack ()
@@ -136,6 +136,7 @@ InternalDumpData (
)
{
UINTN Index;
+
for (Index = 0; Index < Size; Index++) {
DEBUG ((DEBUG_VERBOSE, "%02x", (UINTN)Data[Index]));
}
@@ -155,11 +156,11 @@ InternalDumpHex (
IN UINTN Size
)
{
- UINTN Index;
- UINTN Count;
- UINTN Left;
+ UINTN Index;
+ UINTN Count;
+ UINTN Left;
-#define COLUME_SIZE (16 * 2)
+ #define COLUME_SIZE (16 * 2)
Count = Size / COLUME_SIZE;
Left = Size % COLUME_SIZE;
@@ -176,7 +177,6 @@ InternalDumpHex (
}
}
-
/**
This function get filter structure by SMBIOS type.
@@ -186,15 +186,17 @@ InternalDumpHex (
**/
SMBIOS_FILTER_STRUCT *
GetFilterStructByType (
- IN UINT8 Type
+ IN UINT8 Type
)
{
UINTN Index;
- for (Index = 0; Index < sizeof(mSmbiosFilterStandardTableBlackList)/sizeof(mSmbiosFilterStandardTableBlackList[0]); Index++) {
+
+ for (Index = 0; Index < sizeof (mSmbiosFilterStandardTableBlackList)/sizeof (mSmbiosFilterStandardTableBlackList[0]); Index++) {
if (mSmbiosFilterStandardTableBlackList[Index].Type == Type) {
return &mSmbiosFilterStandardTableBlackList[Index];
}
}
+
return NULL;
}
@@ -210,9 +212,9 @@ GetFilterStructByType (
**/
CHAR8 *
GetSmbiosStringById (
- IN EFI_SMBIOS_TABLE_HEADER *Head,
- IN SMBIOS_TABLE_STRING StringId,
- OUT UINTN *StringLen
+ IN EFI_SMBIOS_TABLE_HEADER *Head,
+ IN SMBIOS_TABLE_STRING StringId,
+ OUT UINTN *StringLen
)
{
UINTN Size;
@@ -221,10 +223,10 @@ GetSmbiosStringById (
UINTN StringsNumber;
CHAR8 *String;
- CharInStr = (CHAR8 *)Head + Head->Length;
- Size = Head->Length;
+ CharInStr = (CHAR8 *)Head + Head->Length;
+ Size = Head->Length;
StringsNumber = 0;
- StrLen = 0;
+ StrLen = 0;
//
// look for the two consecutive zeros, check the string limit by the way.
//
@@ -234,13 +236,15 @@ GetSmbiosStringById (
Size += 1;
CharInStr++;
}
+
String = CharInStr;
- for (StrLen = 0 ; StrLen < mMaxLen; StrLen++) {
+ for (StrLen = 0; StrLen < mMaxLen; StrLen++) {
if (*(CharInStr+StrLen) == 0) {
break;
}
}
+
*StringLen = StrLen;
if (StrLen == mMaxLen) {
@@ -250,8 +254,8 @@ GetSmbiosStringById (
//
// forward the pointer
//
- CharInStr += StrLen;
- Size += StrLen;
+ CharInStr += StrLen;
+ Size += StrLen;
StringsNumber += 1;
if (StringsNumber == StringId) {
break;
@@ -271,8 +275,8 @@ GetSmbiosStringById (
**/
VOID
FilterSmbiosEntry (
- IN OUT VOID *TableEntry,
- IN UINTN TableEntrySize
+ IN OUT VOID *TableEntry,
+ IN UINTN TableEntrySize
)
{
SMBIOS_FILTER_STRUCT *FilterStruct;
@@ -283,37 +287,40 @@ FilterSmbiosEntry (
UINTN StringLen;
DEBUG ((DEBUG_INFO, "Smbios Table (Type - %d):\n", ((SMBIOS_STRUCTURE *)TableEntry)->Type));
- DEBUG_CODE (InternalDumpHex (TableEntry, TableEntrySize););
+ DEBUG_CODE (
+ InternalDumpHex (TableEntry, TableEntrySize);
+ );
//
// Skip measurement for OEM types.
//
if (((SMBIOS_STRUCTURE *)TableEntry)->Type >= SMBIOS_OEM_BEGIN) {
// zero all table fields, except header
- ZeroMem ((UINT8 *)TableEntry + sizeof(SMBIOS_STRUCTURE), TableEntrySize - sizeof(SMBIOS_STRUCTURE));
+ ZeroMem ((UINT8 *)TableEntry + sizeof (SMBIOS_STRUCTURE), TableEntrySize - sizeof (SMBIOS_STRUCTURE));
} else {
FilterStruct = GetFilterStructByType (((SMBIOS_STRUCTURE *)TableEntry)->Type);
if (FilterStruct != NULL) {
- if (FilterStruct->Filter == NULL || FilterStruct->FilterCount == 0) {
+ if ((FilterStruct->Filter == NULL) || (FilterStruct->FilterCount == 0)) {
// zero all table fields, except header
- ZeroMem ((UINT8 *)TableEntry + sizeof(SMBIOS_STRUCTURE), TableEntrySize - sizeof(SMBIOS_STRUCTURE));
+ ZeroMem ((UINT8 *)TableEntry + sizeof (SMBIOS_STRUCTURE), TableEntrySize - sizeof (SMBIOS_STRUCTURE));
} else {
Filter = FilterStruct->Filter;
for (Index = 0; Index < FilterStruct->FilterCount; Index++) {
- if (((SMBIOS_STRUCTURE *) TableEntry)->Length >= (Filter[Index].Offset + Filter[Index].Size)) {
+ if (((SMBIOS_STRUCTURE *)TableEntry)->Length >= (Filter[Index].Offset + Filter[Index].Size)) {
//
// The field is present in the SMBIOS entry.
//
if ((Filter[Index].Flags & SMBIOS_FILTER_TABLE_FLAG_IS_STRING) != 0) {
- CopyMem (&StringId, (UINT8 *)TableEntry + Filter[Index].Offset, sizeof(StringId));
+ CopyMem (&StringId, (UINT8 *)TableEntry + Filter[Index].Offset, sizeof (StringId));
if (StringId != 0) {
// set ' ' for string field
String = GetSmbiosStringById (TableEntry, StringId, &StringLen);
ASSERT (String != NULL);
- //DEBUG ((DEBUG_INFO,"StrId(0x%x)-%a(%d)\n", StringId, String, StringLen));
+ // DEBUG ((DEBUG_INFO,"StrId(0x%x)-%a(%d)\n", StringId, String, StringLen));
SetMem (String, StringLen, ' ');
}
}
+
// zero non-string field
ZeroMem ((UINT8 *)TableEntry + Filter[Index].Offset, Filter[Index].Size);
}
@@ -323,7 +330,9 @@ FilterSmbiosEntry (
}
DEBUG ((DEBUG_INFO, "Filter Smbios Table (Type - %d):\n", ((SMBIOS_STRUCTURE *)TableEntry)->Type));
- DEBUG_CODE (InternalDumpHex (TableEntry, TableEntrySize););
+ DEBUG_CODE (
+ InternalDumpHex (TableEntry, TableEntrySize);
+ );
}
/**
@@ -337,8 +346,8 @@ FilterSmbiosEntry (
**/
UINTN
GetSmbiosStructureSize (
- IN EFI_SMBIOS_TABLE_HEADER *Head,
- OUT UINTN *NumberOfStrings
+ IN EFI_SMBIOS_TABLE_HEADER *Head,
+ OUT UINTN *NumberOfStrings
)
{
UINTN Size;
@@ -346,10 +355,10 @@ GetSmbiosStructureSize (
CHAR8 *CharInStr;
UINTN StringsNumber;
- CharInStr = (CHAR8 *)Head + Head->Length;
- Size = Head->Length;
+ CharInStr = (CHAR8 *)Head + Head->Length;
+ Size = Head->Length;
StringsNumber = 0;
- StrLen = 0;
+ StrLen = 0;
//
// look for the two consecutive zeros, check the string limit by the way.
//
@@ -359,7 +368,7 @@ GetSmbiosStructureSize (
CharInStr++;
}
- for (StrLen = 0 ; StrLen < mMaxLen; StrLen++) {
+ for (StrLen = 0; StrLen < mMaxLen; StrLen++) {
if (*(CharInStr+StrLen) == 0) {
break;
}
@@ -372,8 +381,8 @@ GetSmbiosStructureSize (
//
// forward the pointer
//
- CharInStr += StrLen;
- Size += StrLen;
+ CharInStr += StrLen;
+ Size += StrLen;
StringsNumber += 1;
}
@@ -385,6 +394,7 @@ GetSmbiosStructureSize (
if (NumberOfStrings != NULL) {
*NumberOfStrings = StringsNumber;
}
+
return Size;
}
@@ -400,25 +410,27 @@ GetSmbiosStructureSize (
**/
UINTN
GetSmbiosTableLength (
- IN VOID *TableAddress,
- IN UINTN TableMaximumSize
+ IN VOID *TableAddress,
+ IN UINTN TableMaximumSize
)
{
- VOID *TableEntry;
- VOID *TableAddressEnd;
- UINTN TableEntryLength;
+ VOID *TableEntry;
+ VOID *TableAddressEnd;
+ UINTN TableEntryLength;
TableAddressEnd = (VOID *)((UINTN)TableAddress + TableMaximumSize);
- TableEntry = TableAddress;
+ TableEntry = TableAddress;
while (TableEntry < TableAddressEnd) {
TableEntryLength = GetSmbiosStructureSize (TableEntry, NULL);
if (TableEntryLength == 0) {
break;
}
+
if (((SMBIOS_STRUCTURE *)TableEntry)->Type == 127) {
TableEntry = (VOID *)((UINTN)TableEntry + TableEntryLength);
break;
}
+
TableEntry = (VOID *)((UINTN)TableEntry + TableEntryLength);
}
@@ -443,7 +455,7 @@ FilterSmbiosTable (
VOID *TableEntry;
UINTN TableEntryLength;
- TableEntry = TableAddress;
+ TableEntry = TableAddress;
TableAddressEnd = (VOID *)((UINTN)TableAddress + TableLength);
while ((UINTN)TableEntry < (UINTN)TableAddressEnd) {
TableEntryLength = GetSmbiosStructureSize (TableEntry, NULL);
@@ -467,35 +479,37 @@ FilterSmbiosTable (
VOID
EFIAPI
MeasureSmbiosTable (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_HANDOFF_TABLE_POINTERS HandoffTables;
- SMBIOS_HANDOFF_TABLE_POINTERS2 SmbiosHandoffTables2;
- UINT32 EventType;
- VOID *EventLog;
- UINT32 EventLogSize;
- SMBIOS_TABLE_ENTRY_POINT *SmbiosTable;
- SMBIOS_TABLE_3_0_ENTRY_POINT *Smbios3Table;
- VOID *SmbiosTableAddress;
- VOID *TableAddress;
- UINTN TableLength;
-
- SmbiosTable = NULL;
- Smbios3Table = NULL;
+ EFI_STATUS Status;
+ EFI_HANDOFF_TABLE_POINTERS HandoffTables;
+ SMBIOS_HANDOFF_TABLE_POINTERS2 SmbiosHandoffTables2;
+ UINT32 EventType;
+ VOID *EventLog;
+ UINT32 EventLogSize;
+ SMBIOS_TABLE_ENTRY_POINT *SmbiosTable;
+ SMBIOS_TABLE_3_0_ENTRY_POINT *Smbios3Table;
+ VOID *SmbiosTableAddress;
+ VOID *TableAddress;
+ UINTN TableLength;
+
+ SmbiosTable = NULL;
+ Smbios3Table = NULL;
SmbiosTableAddress = NULL;
- TableLength = 0;
+ TableLength = 0;
if (mSmbios->MajorVersion >= 3) {
Status = EfiGetSystemConfigurationTable (
&gEfiSmbios3TableGuid,
- (VOID **) &Smbios3Table
+ (VOID **)&Smbios3Table
);
if (!EFI_ERROR (Status)) {
DEBUG ((DEBUG_INFO, "Smbios3Table:\n"));
- DEBUG ((DEBUG_INFO, " AnchorString - '%c%c%c%c%c'\n",
+ DEBUG ((
+ DEBUG_INFO,
+ " AnchorString - '%c%c%c%c%c'\n",
Smbios3Table->AnchorString[0],
Smbios3Table->AnchorString[1],
Smbios3Table->AnchorString[2],
@@ -516,11 +530,13 @@ MeasureSmbiosTable (
if (Smbios3Table == NULL) {
Status = EfiGetSystemConfigurationTable (
&gEfiSmbiosTableGuid,
- (VOID **) &SmbiosTable
+ (VOID **)&SmbiosTable
);
if (!EFI_ERROR (Status)) {
DEBUG ((DEBUG_INFO, "SmbiosTable:\n"));
- DEBUG ((DEBUG_INFO, " AnchorString - '%c%c%c%c'\n",
+ DEBUG ((
+ DEBUG_INFO,
+ " AnchorString - '%c%c%c%c'\n",
SmbiosTable->AnchorString[0],
SmbiosTable->AnchorString[1],
SmbiosTable->AnchorString[2],
@@ -532,14 +548,18 @@ MeasureSmbiosTable (
DEBUG ((DEBUG_INFO, " MinorVersion - 0x%02x\n", SmbiosTable->MinorVersion));
DEBUG ((DEBUG_INFO, " MaxStructureSize - 0x%08x\n", SmbiosTable->MaxStructureSize));
DEBUG ((DEBUG_INFO, " EntryPointRevision - 0x%02x\n", SmbiosTable->EntryPointRevision));
- DEBUG ((DEBUG_INFO, " FormattedArea - '%c%c%c%c%c'\n",
+ DEBUG ((
+ DEBUG_INFO,
+ " FormattedArea - '%c%c%c%c%c'\n",
SmbiosTable->FormattedArea[0],
SmbiosTable->FormattedArea[1],
SmbiosTable->FormattedArea[2],
SmbiosTable->FormattedArea[3],
SmbiosTable->FormattedArea[4]
));
- DEBUG ((DEBUG_INFO, " IntermediateAnchorString - '%c%c%c%c%c'\n",
+ DEBUG ((
+ DEBUG_INFO,
+ " IntermediateAnchorString - '%c%c%c%c%c'\n",
SmbiosTable->IntermediateAnchorString[0],
SmbiosTable->IntermediateAnchorString[1],
SmbiosTable->IntermediateAnchorString[2],
@@ -556,27 +576,31 @@ MeasureSmbiosTable (
if (Smbios3Table != NULL) {
SmbiosTableAddress = (VOID *)(UINTN)Smbios3Table->TableAddress;
- TableLength = GetSmbiosTableLength (SmbiosTableAddress, Smbios3Table->TableMaximumSize);
+ TableLength = GetSmbiosTableLength (SmbiosTableAddress, Smbios3Table->TableMaximumSize);
} else if (SmbiosTable != NULL) {
SmbiosTableAddress = (VOID *)(UINTN)SmbiosTable->TableAddress;
- TableLength = SmbiosTable->TableLength;
+ TableLength = SmbiosTable->TableLength;
}
if (SmbiosTableAddress != NULL) {
DEBUG ((DEBUG_INFO, "The Smbios Table starts at: 0x%x\n", SmbiosTableAddress));
DEBUG ((DEBUG_INFO, "The Smbios Table size: 0x%x\n", TableLength));
- DEBUG_CODE (InternalDumpHex ((UINT8 *)(UINTN)SmbiosTableAddress, TableLength););
+ DEBUG_CODE (
+ InternalDumpHex ((UINT8 *)(UINTN)SmbiosTableAddress, TableLength);
+ );
TableAddress = AllocateCopyPool ((UINTN)TableLength, (VOID *)(UINTN)SmbiosTableAddress);
if (TableAddress == NULL) {
- return ;
+ return;
}
FilterSmbiosTable (TableAddress, TableLength);
DEBUG ((DEBUG_INFO, "The final Smbios Table starts at: 0x%x\n", TableAddress));
DEBUG ((DEBUG_INFO, "The final Smbios Table size: 0x%x\n", TableLength));
- DEBUG_CODE (InternalDumpHex (TableAddress, TableLength););
+ DEBUG_CODE (
+ InternalDumpHex (TableAddress, TableLength);
+ );
HandoffTables.NumberOfTables = 1;
if (Smbios3Table != NULL) {
@@ -586,19 +610,21 @@ MeasureSmbiosTable (
CopyGuid (&(HandoffTables.TableEntry[0].VendorGuid), &gEfiSmbiosTableGuid);
HandoffTables.TableEntry[0].VendorTable = SmbiosTable;
}
- EventType = EV_EFI_HANDOFF_TABLES;
- EventLog = &HandoffTables;
+
+ EventType = EV_EFI_HANDOFF_TABLES;
+ EventLog = &HandoffTables;
EventLogSize = sizeof (HandoffTables);
- if (PcdGet32(PcdTcgPfpMeasurementRevision) >= TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_105) {
- SmbiosHandoffTables2.TableDescriptionSize = sizeof(SmbiosHandoffTables2.TableDescription);
- CopyMem (SmbiosHandoffTables2.TableDescription, SMBIOS_HANDOFF_TABLE_DESC, sizeof(SmbiosHandoffTables2.TableDescription));
+ if (PcdGet32 (PcdTcgPfpMeasurementRevision) >= TCG_EfiSpecIDEventStruct_SPEC_ERRATA_TPM2_REV_105) {
+ SmbiosHandoffTables2.TableDescriptionSize = sizeof (SmbiosHandoffTables2.TableDescription);
+ CopyMem (SmbiosHandoffTables2.TableDescription, SMBIOS_HANDOFF_TABLE_DESC, sizeof (SmbiosHandoffTables2.TableDescription));
SmbiosHandoffTables2.NumberOfTables = HandoffTables.NumberOfTables;
- CopyMem (&(SmbiosHandoffTables2.TableEntry[0]), &(HandoffTables.TableEntry[0]), sizeof(SmbiosHandoffTables2.TableEntry[0]));
- EventType = EV_EFI_HANDOFF_TABLES2;
- EventLog = &SmbiosHandoffTables2;
+ CopyMem (&(SmbiosHandoffTables2.TableEntry[0]), &(HandoffTables.TableEntry[0]), sizeof (SmbiosHandoffTables2.TableEntry[0]));
+ EventType = EV_EFI_HANDOFF_TABLES2;
+ EventLog = &SmbiosHandoffTables2;
EventLogSize = sizeof (SmbiosHandoffTables2);
}
+
Status = TpmMeasureAndLogData (
1, // PCRIndex
EventType, // EventType
@@ -608,11 +634,11 @@ MeasureSmbiosTable (
TableLength // HashDataLen
);
if (!EFI_ERROR (Status)) {
- gBS->CloseEvent (Event) ;
+ gBS->CloseEvent (Event);
}
}
- return ;
+ return;
}
/**
@@ -628,18 +654,18 @@ MeasureSmbiosTable (
EFI_STATUS
EFIAPI
SmbiosMeasurementDriverEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_EVENT Event;
+ EFI_STATUS Status;
+ EFI_EVENT Event;
- Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **) &mSmbios);
+ Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **)&mSmbios);
ASSERT_EFI_ERROR (Status);
DEBUG ((DEBUG_INFO, "The Smbios Table Version: %x.%x\n", mSmbios->MajorVersion, mSmbios->MinorVersion));
- if (mSmbios->MajorVersion < 2 || (mSmbios->MajorVersion == 2 && mSmbios->MinorVersion < 7)){
+ if ((mSmbios->MajorVersion < 2) || ((mSmbios->MajorVersion == 2) && (mSmbios->MinorVersion < 7))) {
mMaxLen = SMBIOS_STRING_MAX_LENGTH;
} else if (mSmbios->MajorVersion < 3) {
//
diff --git a/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c b/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c
index a243490..663cfff 100644
--- a/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c
+++ b/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c
@@ -45,28 +45,28 @@ SmmCommunicationBufferEntryPoint (
EDKII_PI_SMM_COMMUNICATION_REGION_TABLE *PiSmmCommunicationRegionTable;
EFI_MEMORY_DESCRIPTOR *Entry;
- DescriptorSize = sizeof(EFI_MEMORY_DESCRIPTOR);
+ DescriptorSize = sizeof (EFI_MEMORY_DESCRIPTOR);
//
// Make sure Size != sizeof(EFI_MEMORY_DESCRIPTOR). This will
// prevent people from having pointer math bugs in their code.
// now you have to use *DescriptorSize to make things work.
//
- DescriptorSize += sizeof(UINT64) - (DescriptorSize % sizeof (UINT64));
+ DescriptorSize += sizeof (UINT64) - (DescriptorSize % sizeof (UINT64));
//
// Allocate and fill PiSmmCommunicationRegionTable
//
- PiSmmCommunicationRegionTable = AllocateReservedPool (sizeof(EDKII_PI_SMM_COMMUNICATION_REGION_TABLE) + DescriptorSize);
- ASSERT(PiSmmCommunicationRegionTable != NULL);
- ZeroMem (PiSmmCommunicationRegionTable, sizeof(EDKII_PI_SMM_COMMUNICATION_REGION_TABLE) + DescriptorSize);
+ PiSmmCommunicationRegionTable = AllocateReservedPool (sizeof (EDKII_PI_SMM_COMMUNICATION_REGION_TABLE) + DescriptorSize);
+ ASSERT (PiSmmCommunicationRegionTable != NULL);
+ ZeroMem (PiSmmCommunicationRegionTable, sizeof (EDKII_PI_SMM_COMMUNICATION_REGION_TABLE) + DescriptorSize);
PiSmmCommunicationRegionTable->Version = EDKII_PI_SMM_COMMUNICATION_REGION_TABLE_VERSION;
PiSmmCommunicationRegionTable->NumberOfEntries = 1;
PiSmmCommunicationRegionTable->DescriptorSize = DescriptorSize;
- Entry = (EFI_MEMORY_DESCRIPTOR *)(PiSmmCommunicationRegionTable + 1);
- Entry->Type = EfiConventionalMemory;
- Entry->PhysicalStart = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateReservedPages (DEFAULT_COMMON_PI_SMM_COMMUNIATION_REGION_PAGES);
- ASSERT(Entry->PhysicalStart != 0);
+ Entry = (EFI_MEMORY_DESCRIPTOR *)(PiSmmCommunicationRegionTable + 1);
+ Entry->Type = EfiConventionalMemory;
+ Entry->PhysicalStart = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateReservedPages (DEFAULT_COMMON_PI_SMM_COMMUNIATION_REGION_PAGES);
+ ASSERT (Entry->PhysicalStart != 0);
Entry->VirtualStart = 0;
Entry->NumberOfPages = DEFAULT_COMMON_PI_SMM_COMMUNIATION_REGION_PAGES;
Entry->Attribute = 0;
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/MemoryStausCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Pei/MemoryStausCodeWorker.c
index 6c11670..1980ab8 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/MemoryStausCodeWorker.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/MemoryStausCodeWorker.c
@@ -22,7 +22,7 @@ MemoryStatusCodeInitializeWorker (
//
// Create memory status code GUID'ed HOB.
//
- MEMORY_STATUSCODE_PACKET_HEADER *PacketHeader;
+ MEMORY_STATUSCODE_PACKET_HEADER *PacketHeader;
//
// Build GUID'ed HOB with PCD defined size.
@@ -40,7 +40,6 @@ MemoryStatusCodeInitializeWorker (
return EFI_SUCCESS;
}
-
/**
Report status code into GUID'ed HOB.
@@ -70,18 +69,17 @@ MemoryStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
MemoryStatusCodeReportWorker (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
-
- EFI_PEI_HOB_POINTERS Hob;
- MEMORY_STATUSCODE_PACKET_HEADER *PacketHeader;
- MEMORY_STATUSCODE_RECORD *Record;
+ EFI_PEI_HOB_POINTERS Hob;
+ MEMORY_STATUSCODE_PACKET_HEADER *PacketHeader;
+ MEMORY_STATUSCODE_RECORD *Record;
//
// Find GUID'ed HOBs to locate current record buffer.
@@ -89,9 +87,9 @@ MemoryStatusCodeReportWorker (
Hob.Raw = GetFirstGuidHob (&gMemoryStatusCodeRecordGuid);
ASSERT (Hob.Raw != NULL);
- PacketHeader = (MEMORY_STATUSCODE_PACKET_HEADER *) GET_GUID_HOB_DATA (Hob.Guid);
- Record = (MEMORY_STATUSCODE_RECORD *) (PacketHeader + 1);
- Record = &Record[PacketHeader->RecordIndex++];
+ PacketHeader = (MEMORY_STATUSCODE_PACKET_HEADER *)GET_GUID_HOB_DATA (Hob.Guid);
+ Record = (MEMORY_STATUSCODE_RECORD *)(PacketHeader + 1);
+ Record = &Record[PacketHeader->RecordIndex++];
//
// Save status code.
@@ -113,9 +111,8 @@ MemoryStatusCodeReportWorker (
// Wrap around record index.
//
PacketHeader->RecordIndex = 0;
- PacketHeader->PacketIndex ++;
+ PacketHeader->PacketIndex++;
}
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c
index 3aa5642..c0ad678 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c
@@ -33,27 +33,28 @@
EFI_STATUS
EFIAPI
SerialStatusCodeReportWorker (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- CHAR8 *Filename;
- CHAR8 *Description;
- CHAR8 *Format;
- CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
- UINT32 ErrorLevel;
- UINT32 LineNumber;
- UINTN CharCount;
- BASE_LIST Marker;
+ CHAR8 *Filename;
+ CHAR8 *Description;
+ CHAR8 *Format;
+ CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
+ UINT32 ErrorLevel;
+ UINT32 LineNumber;
+ UINTN CharCount;
+ BASE_LIST Marker;
Buffer[0] = '\0';
- if (Data != NULL &&
- ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
+ if ((Data != NULL) &&
+ ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber))
+ {
//
// Print ASSERT() information into output buffer.
//
@@ -65,8 +66,9 @@ SerialStatusCodeReportWorker (
LineNumber,
Description
);
- } else if (Data != NULL &&
- ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
+ } else if ((Data != NULL) &&
+ ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format))
+ {
//
// Print DEBUG() information into output buffer.
//
@@ -89,7 +91,7 @@ SerialStatusCodeReportWorker (
Instance
);
- ASSERT(CharCount > 0);
+ ASSERT (CharCount > 0);
if (CallerId != NULL) {
CharCount += AsciiSPrint (
@@ -125,9 +127,10 @@ SerialStatusCodeReportWorker (
Value,
Instance
);
- } else if (Data != NULL &&
+ } else if ((Data != NULL) &&
CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeStringGuid) &&
- ((EFI_STATUS_CODE_STRING_DATA *) Data)->StringType == EfiStringAscii) {
+ (((EFI_STATUS_CODE_STRING_DATA *)Data)->StringType == EfiStringAscii))
+ {
//
// EFI_STATUS_CODE_STRING_DATA
//
@@ -135,7 +138,7 @@ SerialStatusCodeReportWorker (
Buffer,
sizeof (Buffer),
"%a",
- ((EFI_STATUS_CODE_STRING_DATA *) Data)->String.Ascii
+ ((EFI_STATUS_CODE_STRING_DATA *)Data)->String.Ascii
);
} else {
//
@@ -154,8 +157,7 @@ SerialStatusCodeReportWorker (
//
// Call SerialPort Lib function to do print.
//
- SerialPortWrite ((UINT8 *) Buffer, CharCount);
+ SerialPortWrite ((UINT8 *)Buffer, CharCount);
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
index 9b2ea4e..d740a62 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
@@ -29,14 +29,14 @@ StatusCodeHandlerPeiEntry (
IN CONST EFI_PEI_SERVICES **PeiServices
)
{
- EFI_STATUS Status;
- EFI_PEI_RSC_HANDLER_PPI *RscHandlerPpi;
+ EFI_STATUS Status;
+ EFI_PEI_RSC_HANDLER_PPI *RscHandlerPpi;
Status = PeiServicesLocatePpi (
&gEfiPeiRscHandlerPpiGuid,
0,
NULL,
- (VOID **) &RscHandlerPpi
+ (VOID **)&RscHandlerPpi
);
ASSERT_EFI_ERROR (Status);
@@ -46,11 +46,12 @@ StatusCodeHandlerPeiEntry (
// if enable UseMemory, then initialize memory status code worker.
//
if (PcdGetBool (PcdStatusCodeUseSerial)) {
- Status = SerialPortInitialize();
+ Status = SerialPortInitialize ();
ASSERT_EFI_ERROR (Status);
Status = RscHandlerPpi->Register (SerialStatusCodeReportWorker);
ASSERT_EFI_ERROR (Status);
}
+
if (PcdGetBool (PcdStatusCodeUseMemory)) {
Status = MemoryStatusCodeInitializeWorker ();
ASSERT_EFI_ERROR (Status);
@@ -60,4 +61,3 @@ StatusCodeHandlerPeiEntry (
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h
index 34901f2..20cba5d 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.h
@@ -9,7 +9,6 @@
#ifndef __STATUS_CODE_HANDLER_PEI_H__
#define __STATUS_CODE_HANDLER_PEI_H__
-
#include <Ppi/ReportStatusCodeHandler.h>
#include <Guid/MemoryStatusCodeRecord.h>
@@ -29,7 +28,7 @@
//
// Define the maximum message length
//
-#define MAX_DEBUG_MESSAGE_LENGTH 0x100
+#define MAX_DEBUG_MESSAGE_LENGTH 0x100
/**
Convert status code value and extended data to readable ASCII string, send string to serial I/O device.
@@ -57,15 +56,14 @@
EFI_STATUS
EFIAPI
SerialStatusCodeReportWorker (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
);
-
/**
Create the first memory status code GUID'ed HOB as initialization for memory status code worker.
@@ -106,14 +104,12 @@ MemoryStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
MemoryStatusCodeReportWorker (
- IN CONST EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN CONST EFI_GUID *CallerId,
- IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN CONST EFI_PEI_SERVICES **PeiServices,
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN CONST EFI_GUID *CallerId,
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL
);
#endif
-
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/MemoryStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/MemoryStatusCodeWorker.c
index 9a3431b..3397820 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/MemoryStatusCodeWorker.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/MemoryStatusCodeWorker.c
@@ -23,7 +23,7 @@ RtMemoryStatusCodeInitializeWorker (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Allocate runtime memory status code pool.
@@ -43,7 +43,6 @@ RtMemoryStatusCodeInitializeWorker (
return Status;
}
-
/**
Report status code into runtime memory. If the runtime pool is full, roll back to the
first record and overwrite it.
@@ -65,19 +64,19 @@ RtMemoryStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
RtMemoryStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- MEMORY_STATUSCODE_RECORD *Record;
+ MEMORY_STATUSCODE_RECORD *Record;
//
// Locate current record buffer.
//
- Record = (MEMORY_STATUSCODE_RECORD *) (mRtMemoryStatusCodeTable + 1);
+ Record = (MEMORY_STATUSCODE_RECORD *)(mRtMemoryStatusCodeTable + 1);
Record = &Record[mRtMemoryStatusCodeTable->RecordIndex++];
//
@@ -105,6 +104,3 @@ RtMemoryStatusCodeReportWorker (
return EFI_SUCCESS;
}
-
-
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c
index 348f55e..09ba5d7 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c
@@ -30,26 +30,27 @@
EFI_STATUS
EFIAPI
SerialStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- CHAR8 *Filename;
- CHAR8 *Description;
- CHAR8 *Format;
- CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
- UINT32 ErrorLevel;
- UINT32 LineNumber;
- UINTN CharCount;
- BASE_LIST Marker;
+ CHAR8 *Filename;
+ CHAR8 *Description;
+ CHAR8 *Format;
+ CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
+ UINT32 ErrorLevel;
+ UINT32 LineNumber;
+ UINTN CharCount;
+ BASE_LIST Marker;
Buffer[0] = '\0';
- if (Data != NULL &&
- ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
+ if ((Data != NULL) &&
+ ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber))
+ {
//
// Print ASSERT() information into output buffer.
//
@@ -61,8 +62,9 @@ SerialStatusCodeReportWorker (
LineNumber,
Description
);
- } else if (Data != NULL &&
- ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
+ } else if ((Data != NULL) &&
+ ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format))
+ {
//
// Print DEBUG() information into output buffer.
//
@@ -120,9 +122,10 @@ SerialStatusCodeReportWorker (
Value,
Instance
);
- } else if (Data != NULL &&
+ } else if ((Data != NULL) &&
CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeStringGuid) &&
- ((EFI_STATUS_CODE_STRING_DATA *) Data)->StringType == EfiStringAscii) {
+ (((EFI_STATUS_CODE_STRING_DATA *)Data)->StringType == EfiStringAscii))
+ {
//
// EFI_STATUS_CODE_STRING_DATA
//
@@ -130,7 +133,7 @@ SerialStatusCodeReportWorker (
Buffer,
sizeof (Buffer),
"%a",
- ((EFI_STATUS_CODE_STRING_DATA *) Data)->String.Ascii
+ ((EFI_STATUS_CODE_STRING_DATA *)Data)->String.Ascii
);
} else {
//
@@ -149,18 +152,18 @@ SerialStatusCodeReportWorker (
//
// Call SerialPort Lib function to do print.
//
- SerialPortWrite ((UINT8 *) Buffer, CharCount);
+ SerialPortWrite ((UINT8 *)Buffer, CharCount);
//
// If register an unregister function of gEfiEventExitBootServicesGuid,
// then some log called in ExitBootServices() will be lost,
// so unregister the handler after receive the value of exit boot service.
//
- if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE &&
- Value == (EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES)) {
- UnregisterSerialBootTimeHandlers();
+ if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) &&
+ (Value == (EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES)))
+ {
+ UnregisterSerialBootTimeHandlers ();
}
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c
index d50335a..6ef41ce 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c
@@ -40,8 +40,8 @@ UnregisterSerialBootTimeHandlers (
VOID
EFIAPI
VirtualAddressChangeCallBack (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
//
@@ -49,7 +49,7 @@ VirtualAddressChangeCallBack (
//
EfiConvertPointer (
0,
- (VOID **) &mRtMemoryStatusCodeTable
+ (VOID **)&mRtMemoryStatusCodeTable
);
}
@@ -63,12 +63,12 @@ InitializationDispatcherWorker (
VOID
)
{
- EFI_PEI_HOB_POINTERS Hob;
- EFI_STATUS Status;
- MEMORY_STATUSCODE_PACKET_HEADER *PacketHeader;
- MEMORY_STATUSCODE_RECORD *Record;
- UINTN Index;
- UINTN MaxRecordNumber;
+ EFI_PEI_HOB_POINTERS Hob;
+ EFI_STATUS Status;
+ MEMORY_STATUSCODE_PACKET_HEADER *PacketHeader;
+ MEMORY_STATUSCODE_RECORD *Record;
+ UINTN Index;
+ UINTN MaxRecordNumber;
//
// If enable UseSerial, then initialize serial port.
@@ -81,6 +81,7 @@ InitializationDispatcherWorker (
Status = SerialPortInitialize ();
ASSERT_EFI_ERROR (Status);
}
+
if (PcdGetBool (PcdStatusCodeUseMemory)) {
Status = RtMemoryStatusCodeInitializeWorker ();
ASSERT_EFI_ERROR (Status);
@@ -94,17 +95,18 @@ InitializationDispatcherWorker (
// Journal GUID'ed HOBs to find all record entry, if found,
// then output record to support replay device.
//
- Hob.Raw = GetFirstGuidHob (&gMemoryStatusCodeRecordGuid);
+ Hob.Raw = GetFirstGuidHob (&gMemoryStatusCodeRecordGuid);
if (Hob.Raw != NULL) {
- PacketHeader = (MEMORY_STATUSCODE_PACKET_HEADER *) GET_GUID_HOB_DATA (Hob.Guid);
- Record = (MEMORY_STATUSCODE_RECORD *) (PacketHeader + 1);
- MaxRecordNumber = (UINTN) PacketHeader->RecordIndex;
+ PacketHeader = (MEMORY_STATUSCODE_PACKET_HEADER *)GET_GUID_HOB_DATA (Hob.Guid);
+ Record = (MEMORY_STATUSCODE_RECORD *)(PacketHeader + 1);
+ MaxRecordNumber = (UINTN)PacketHeader->RecordIndex;
if (PacketHeader->PacketIndex > 0) {
//
// Record has been wrapped around. So, record number has arrived at max number.
//
- MaxRecordNumber = (UINTN) PacketHeader->MaxRecordsNumber;
+ MaxRecordNumber = (UINTN)PacketHeader->MaxRecordsNumber;
}
+
for (Index = 0; Index < MaxRecordNumber; Index++) {
//
// Dispatch records to devices based on feature flag.
@@ -118,6 +120,7 @@ InitializationDispatcherWorker (
NULL
);
}
+
if (PcdGetBool (PcdStatusCodeUseMemory)) {
RtMemoryStatusCodeReportWorker (
Record[Index].CodeType,
@@ -147,16 +150,16 @@ InitializationDispatcherWorker (
EFI_STATUS
EFIAPI
StatusCodeHandlerRuntimeDxeEntry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = gBS->LocateProtocol (
&gEfiRscHandlerProtocolGuid,
NULL,
- (VOID **) &mRscHandlerProtocol
+ (VOID **)&mRscHandlerProtocol
);
ASSERT_EFI_ERROR (Status);
@@ -168,6 +171,7 @@ StatusCodeHandlerRuntimeDxeEntry (
if (PcdGetBool (PcdStatusCodeUseSerial)) {
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker, TPL_HIGH_LEVEL);
}
+
if (PcdGetBool (PcdStatusCodeUseMemory)) {
mRscHandlerProtocol->Register (RtMemoryStatusCodeReportWorker, TPL_HIGH_LEVEL);
}
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h
index a2cf2ae..7fa0638 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h
+++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.h
@@ -33,7 +33,7 @@
//
// Define the maximum message length
//
-#define MAX_DEBUG_MESSAGE_LENGTH 0x100
+#define MAX_DEBUG_MESSAGE_LENGTH 0x100
extern RUNTIME_MEMORY_STATUSCODE_HEADER *mRtMemoryStatusCodeTable;
@@ -48,7 +48,6 @@ EfiSerialStatusCodeInitializeWorker (
VOID
);
-
/**
Convert status code value and extended data to readable ASCII string, send string to serial I/O device.
@@ -71,11 +70,11 @@ EfiSerialStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
SerialStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
/**
@@ -111,11 +110,11 @@ RtMemoryStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
RtMemoryStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
/**
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/MemoryStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Smm/MemoryStatusCodeWorker.c
index 14bac8e..80c94e4 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/MemoryStatusCodeWorker.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/MemoryStatusCodeWorker.c
@@ -22,7 +22,7 @@ MemoryStatusCodeInitializeWorker (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Allocate MM memory status code pool.
@@ -31,16 +31,15 @@ MemoryStatusCodeInitializeWorker (
ASSERT (mMmMemoryStatusCodeTable != NULL);
mMmMemoryStatusCodeTable->MaxRecordsNumber = (PcdGet16 (PcdStatusCodeMemorySize) * 1024) / sizeof (MEMORY_STATUSCODE_RECORD);
- Status = gMmst->MmInstallConfigurationTable (
- gMmst,
- &gMemoryStatusCodeRecordGuid,
- &mMmMemoryStatusCodeTable,
- sizeof (mMmMemoryStatusCodeTable)
- );
+ Status = gMmst->MmInstallConfigurationTable (
+ gMmst,
+ &gMemoryStatusCodeRecordGuid,
+ &mMmMemoryStatusCodeTable,
+ sizeof (mMmMemoryStatusCodeTable)
+ );
return Status;
}
-
/**
Report status code into runtime memory. If the runtime pool is full, roll back to the
first record and overwrite it.
@@ -62,19 +61,19 @@ MemoryStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
MemoryStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- MEMORY_STATUSCODE_RECORD *Record;
+ MEMORY_STATUSCODE_RECORD *Record;
//
// Locate current record buffer.
//
- Record = (MEMORY_STATUSCODE_RECORD *) (mMmMemoryStatusCodeTable + 1);
+ Record = (MEMORY_STATUSCODE_RECORD *)(mMmMemoryStatusCodeTable + 1);
Record = &Record[mMmMemoryStatusCodeTable->RecordIndex++];
//
@@ -102,6 +101,3 @@ MemoryStatusCodeReportWorker (
return EFI_SUCCESS;
}
-
-
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c
index bcb75bc..e994e69 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c
@@ -30,26 +30,27 @@
EFI_STATUS
EFIAPI
SerialStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
- CHAR8 *Filename;
- CHAR8 *Description;
- CHAR8 *Format;
- CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
- UINT32 ErrorLevel;
- UINT32 LineNumber;
- UINTN CharCount;
- BASE_LIST Marker;
+ CHAR8 *Filename;
+ CHAR8 *Description;
+ CHAR8 *Format;
+ CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
+ UINT32 ErrorLevel;
+ UINT32 LineNumber;
+ UINTN CharCount;
+ BASE_LIST Marker;
Buffer[0] = '\0';
- if (Data != NULL &&
- ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {
+ if ((Data != NULL) &&
+ ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber))
+ {
//
// Print ASSERT() information into output buffer.
//
@@ -61,8 +62,9 @@ SerialStatusCodeReportWorker (
LineNumber,
Description
);
- } else if (Data != NULL &&
- ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {
+ } else if ((Data != NULL) &&
+ ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format))
+ {
//
// Print DEBUG() information into output buffer.
//
@@ -120,9 +122,10 @@ SerialStatusCodeReportWorker (
Value,
Instance
);
- } else if (Data != NULL &&
+ } else if ((Data != NULL) &&
CompareGuid (&Data->Type, &gEfiStatusCodeDataTypeStringGuid) &&
- ((EFI_STATUS_CODE_STRING_DATA *) Data)->StringType == EfiStringAscii) {
+ (((EFI_STATUS_CODE_STRING_DATA *)Data)->StringType == EfiStringAscii))
+ {
//
// EFI_STATUS_CODE_STRING_DATA
//
@@ -130,7 +133,7 @@ SerialStatusCodeReportWorker (
Buffer,
sizeof (Buffer),
"%a",
- ((EFI_STATUS_CODE_STRING_DATA *) Data)->String.Ascii
+ ((EFI_STATUS_CODE_STRING_DATA *)Data)->String.Ascii
);
} else {
//
@@ -149,8 +152,7 @@ SerialStatusCodeReportWorker (
//
// Call SerialPort Lib function to do print.
//
- SerialPortWrite ((UINT8 *) Buffer, CharCount);
+ SerialPortWrite ((UINT8 *)Buffer, CharCount);
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.c b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.c
index 4948d3d..6286210 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.c
@@ -9,8 +9,7 @@
#include "StatusCodeHandlerMm.h"
-EFI_MM_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
-
+EFI_MM_RSC_HANDLER_PROTOCOL *mRscHandlerProtocol = NULL;
/**
Dispatch initialization request to sub status code devices based on
@@ -22,7 +21,7 @@ InitializationDispatcherWorker (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// If enable UseSerial, then initialize serial port.
@@ -35,6 +34,7 @@ InitializationDispatcherWorker (
Status = SerialPortInitialize ();
ASSERT_EFI_ERROR (Status);
}
+
if (PcdGetBool (PcdStatusCodeUseMemory)) {
Status = MemoryStatusCodeInitializeWorker ();
ASSERT_EFI_ERROR (Status);
@@ -54,12 +54,12 @@ StatusCodeHandlerCommonEntry (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = gMmst->MmLocateProtocol (
&gEfiMmRscHandlerProtocolGuid,
NULL,
- (VOID **) &mRscHandlerProtocol
+ (VOID **)&mRscHandlerProtocol
);
ASSERT_EFI_ERROR (Status);
@@ -71,6 +71,7 @@ StatusCodeHandlerCommonEntry (
if (PcdGetBool (PcdStatusCodeUseSerial)) {
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker);
}
+
if (PcdGetBool (PcdStatusCodeUseMemory)) {
mRscHandlerProtocol->Register (MemoryStatusCodeReportWorker);
}
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.h b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.h
index 7871ee4..e416220 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.h
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerMm.h
@@ -30,7 +30,7 @@
//
// Define the maximum message length
//
-#define MAX_DEBUG_MESSAGE_LENGTH 0x100
+#define MAX_DEBUG_MESSAGE_LENGTH 0x100
extern RUNTIME_MEMORY_STATUSCODE_HEADER *mMmMemoryStatusCodeTable;
@@ -45,7 +45,6 @@ EfiSerialStatusCodeInitializeWorker (
VOID
);
-
/**
Convert status code value and extended data to readable ASCII string, send string to serial I/O device.
@@ -68,11 +67,11 @@ EfiSerialStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
SerialStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
/**
@@ -107,11 +106,11 @@ MemoryStatusCodeInitializeWorker (
EFI_STATUS
EFIAPI
MemoryStatusCodeReportWorker (
- IN EFI_STATUS_CODE_TYPE CodeType,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
+ IN EFI_STATUS_CODE_TYPE CodeType,
+ IN EFI_STATUS_CODE_VALUE Value,
+ IN UINT32 Instance,
+ IN EFI_GUID *CallerId,
+ IN EFI_STATUS_CODE_DATA *Data OPTIONAL
);
/**
diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c
index 1105f18..da49829 100644
--- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c
+++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c
@@ -23,8 +23,8 @@
EFI_STATUS
EFIAPI
StatusCodeHandlerTraditionalMmEntry (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
return StatusCodeHandlerCommonEntry ();
diff --git a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c
index a318ae0..c6ac039 100644
--- a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c
+++ b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c
@@ -17,17 +17,17 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
//
// The StartValue in TimerLib
//
-UINT64 mTimerLibStartValue = 0;
+UINT64 mTimerLibStartValue = 0;
//
// The EndValue in TimerLib
//
-UINT64 mTimerLibEndValue = 0;
+UINT64 mTimerLibEndValue = 0;
//
// The properties of timestamp
//
-EFI_TIMESTAMP_PROPERTIES mTimestampProperties = {
+EFI_TIMESTAMP_PROPERTIES mTimestampProperties = {
0,
0
};
@@ -56,15 +56,16 @@ TimestampDriverGetTimestamp (
// The timestamp of Timestamp Protocol
//
UINT64 TimestampValue;
+
TimestampValue = 0;
//
// Get the timestamp
//
if (mTimerLibStartValue > mTimerLibEndValue) {
- TimestampValue = mTimerLibStartValue - GetPerformanceCounter();
+ TimestampValue = mTimerLibStartValue - GetPerformanceCounter ();
} else {
- TimestampValue = GetPerformanceCounter() - mTimerLibStartValue;
+ TimestampValue = GetPerformanceCounter () - mTimerLibStartValue;
}
return TimestampValue;
@@ -83,8 +84,8 @@ TimestampDriverGetTimestamp (
**/
EFI_STATUS
EFIAPI
-TimestampDriverGetProperties(
- OUT EFI_TIMESTAMP_PROPERTIES *Properties
+TimestampDriverGetProperties (
+ OUT EFI_TIMESTAMP_PROPERTIES *Properties
)
{
if (Properties == NULL) {
@@ -94,7 +95,7 @@ TimestampDriverGetProperties(
//
// Get timestamp properties
//
- CopyMem((VOID *) Properties, (VOID *) &mTimestampProperties, sizeof (mTimestampProperties));
+ CopyMem ((VOID *)Properties, (VOID *)&mTimestampProperties, sizeof (mTimestampProperties));
return EFI_SUCCESS;
}
@@ -126,12 +127,13 @@ TimestampDriverInitialize (
EFI_STATUS Status;
EFI_HANDLE TimestampHandle;
+
TimestampHandle = NULL;
//
// Get the start value, end value and frequency in Timerlib
//
- mTimestampProperties.Frequency = GetPerformanceCounterProperties(&mTimerLibStartValue, &mTimerLibEndValue);
+ mTimestampProperties.Frequency = GetPerformanceCounterProperties (&mTimerLibStartValue, &mTimerLibEndValue);
//
// Set the EndValue
diff --git a/MdeModulePkg/Universal/Variable/Pei/Variable.c b/MdeModulePkg/Universal/Variable/Pei/Variable.c
index 7e4fa60..b36dd0d 100644
--- a/MdeModulePkg/Universal/Variable/Pei/Variable.c
+++ b/MdeModulePkg/Universal/Variable/Pei/Variable.c
@@ -8,24 +8,22 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
-
#include "Variable.h"
//
// Module globals
//
-EFI_PEI_READ_ONLY_VARIABLE2_PPI mVariablePpi = {
+EFI_PEI_READ_ONLY_VARIABLE2_PPI mVariablePpi = {
PeiGetVariable,
PeiGetNextVariableName
};
-EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
+EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
&gEfiPeiReadOnlyVariable2PpiGuid,
&mVariablePpi
};
-
/**
Provide the functionality of the variable services.
@@ -39,8 +37,8 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListVariable = {
EFI_STATUS
EFIAPI
PeimInitializeVariableServices (
- IN EFI_PEI_FILE_HANDLE FileHandle,
- IN CONST EFI_PEI_SERVICES **PeiServices
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
)
{
return PeiServicesInstallPpi (&mPpiListVariable);
@@ -57,16 +55,15 @@ PeimInitializeVariableServices (
**/
VARIABLE_HEADER *
GetStartPointer (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
)
{
//
// The start of variable store
//
- return (VARIABLE_HEADER *) HEADER_ALIGN (VarStoreHeader + 1);
+ return (VARIABLE_HEADER *)HEADER_ALIGN (VarStoreHeader + 1);
}
-
/**
Gets the pointer to the end of the variable storage area.
@@ -81,16 +78,15 @@ GetStartPointer (
**/
VARIABLE_HEADER *
GetEndPointer (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
)
{
//
// The end of variable store
//
- return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) VarStoreHeader + VarStoreHeader->Size);
+ return (VARIABLE_HEADER *)HEADER_ALIGN ((UINTN)VarStoreHeader + VarStoreHeader->Size);
}
-
/**
This code checks if variable header is valid or not.
@@ -102,10 +98,10 @@ GetEndPointer (
**/
BOOLEAN
IsValidVariableHeader (
- IN VARIABLE_HEADER *Variable
+ IN VARIABLE_HEADER *Variable
)
{
- if (Variable == NULL || Variable->StartId != VARIABLE_DATA ) {
+ if ((Variable == NULL) || (Variable->StartId != VARIABLE_DATA)) {
return FALSE;
}
@@ -122,10 +118,10 @@ IsValidVariableHeader (
**/
UINTN
GetVariableHeaderSize (
- IN BOOLEAN AuthFlag
+ IN BOOLEAN AuthFlag
)
{
- UINTN Value;
+ UINTN Value;
if (AuthFlag) {
Value = sizeof (AUTHENTICATED_VARIABLE_HEADER);
@@ -147,33 +143,36 @@ GetVariableHeaderSize (
**/
UINTN
NameSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFlag
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFlag
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFlag) {
- if (AuthVariable->State == (UINT8) (-1) ||
- AuthVariable->DataSize == (UINT32) (-1) ||
- AuthVariable->NameSize == (UINT32) (-1) ||
- AuthVariable->Attributes == (UINT32) (-1)) {
+ if ((AuthVariable->State == (UINT8)(-1)) ||
+ (AuthVariable->DataSize == (UINT32)(-1)) ||
+ (AuthVariable->NameSize == (UINT32)(-1)) ||
+ (AuthVariable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) AuthVariable->NameSize;
+
+ return (UINTN)AuthVariable->NameSize;
} else {
- if (Variable->State == (UINT8) (-1) ||
- Variable->DataSize == (UINT32) (-1) ||
- Variable->NameSize == (UINT32) (-1) ||
- Variable->Attributes == (UINT32) (-1)) {
+ if ((Variable->State == (UINT8)(-1)) ||
+ (Variable->DataSize == (UINT32)(-1)) ||
+ (Variable->NameSize == (UINT32)(-1)) ||
+ (Variable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) Variable->NameSize;
+
+ return (UINTN)Variable->NameSize;
}
}
-
/**
This code gets the size of data of variable.
@@ -185,29 +184,33 @@ NameSizeOfVariable (
**/
UINTN
DataSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFlag
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFlag
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFlag) {
- if (AuthVariable->State == (UINT8) (-1) ||
- AuthVariable->DataSize == (UINT32) (-1) ||
- AuthVariable->NameSize == (UINT32) (-1) ||
- AuthVariable->Attributes == (UINT32) (-1)) {
+ if ((AuthVariable->State == (UINT8)(-1)) ||
+ (AuthVariable->DataSize == (UINT32)(-1)) ||
+ (AuthVariable->NameSize == (UINT32)(-1)) ||
+ (AuthVariable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) AuthVariable->DataSize;
+
+ return (UINTN)AuthVariable->DataSize;
} else {
- if (Variable->State == (UINT8) (-1) ||
- Variable->DataSize == (UINT32) (-1) ||
- Variable->NameSize == (UINT32) (-1) ||
- Variable->Attributes == (UINT32) (-1)) {
+ if ((Variable->State == (UINT8)(-1)) ||
+ (Variable->DataSize == (UINT32)(-1)) ||
+ (Variable->NameSize == (UINT32)(-1)) ||
+ (Variable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) Variable->DataSize;
+
+ return (UINTN)Variable->DataSize;
}
}
@@ -222,11 +225,11 @@ DataSizeOfVariable (
**/
CHAR16 *
GetVariableNamePtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFlag
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFlag
)
{
- return (CHAR16 *) ((UINTN) Variable + GetVariableHeaderSize (AuthFlag));
+ return (CHAR16 *)((UINTN)Variable + GetVariableHeaderSize (AuthFlag));
}
/**
@@ -240,13 +243,13 @@ GetVariableNamePtr (
**/
EFI_GUID *
GetVendorGuidPtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFlag
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFlag
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFlag) {
return &AuthVariable->VendorGuid;
} else {
@@ -266,24 +269,23 @@ GetVendorGuidPtr (
**/
UINT8 *
GetVariableDataPtr (
- IN VARIABLE_HEADER *Variable,
- IN VARIABLE_HEADER *VariableHeader,
- IN BOOLEAN AuthFlag
+ IN VARIABLE_HEADER *Variable,
+ IN VARIABLE_HEADER *VariableHeader,
+ IN BOOLEAN AuthFlag
)
{
- UINTN Value;
+ UINTN Value;
//
// Be careful about pad size for alignment
//
- Value = (UINTN) GetVariableNamePtr (Variable, AuthFlag);
+ Value = (UINTN)GetVariableNamePtr (Variable, AuthFlag);
Value += NameSizeOfVariable (VariableHeader, AuthFlag);
Value += GET_PAD_SIZE (NameSizeOfVariable (VariableHeader, AuthFlag));
- return (UINT8 *) Value;
+ return (UINT8 *)Value;
}
-
/**
This code gets the pointer to the next variable header.
@@ -296,16 +298,16 @@ GetVariableDataPtr (
**/
VARIABLE_HEADER *
GetNextVariablePtr (
- IN VARIABLE_STORE_INFO *StoreInfo,
- IN VARIABLE_HEADER *Variable,
- IN VARIABLE_HEADER *VariableHeader
+ IN VARIABLE_STORE_INFO *StoreInfo,
+ IN VARIABLE_HEADER *Variable,
+ IN VARIABLE_HEADER *VariableHeader
)
{
EFI_PHYSICAL_ADDRESS TargetAddress;
EFI_PHYSICAL_ADDRESS SpareAddress;
UINTN Value;
- Value = (UINTN) GetVariableDataPtr (Variable, VariableHeader, StoreInfo->AuthFlag);
+ Value = (UINTN)GetVariableDataPtr (Variable, VariableHeader, StoreInfo->AuthFlag);
Value += DataSizeOfVariable (VariableHeader, StoreInfo->AuthFlag);
Value += GET_PAD_SIZE (DataSizeOfVariable (VariableHeader, StoreInfo->AuthFlag));
//
@@ -315,16 +317,16 @@ GetNextVariablePtr (
if (StoreInfo->FtwLastWriteData != NULL) {
TargetAddress = StoreInfo->FtwLastWriteData->TargetAddress;
- SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
- if (((UINTN) Variable < (UINTN) TargetAddress) && (Value >= (UINTN) TargetAddress)) {
+ SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
+ if (((UINTN)Variable < (UINTN)TargetAddress) && (Value >= (UINTN)TargetAddress)) {
//
// Next variable is in spare block.
//
- Value = (UINTN) SpareAddress + (Value - (UINTN) TargetAddress);
+ Value = (UINTN)SpareAddress + (Value - (UINTN)TargetAddress);
}
}
- return (VARIABLE_HEADER *) Value;
+ return (VARIABLE_HEADER *)Value;
}
/**
@@ -339,27 +341,27 @@ GetNextVariablePtr (
**/
VARIABLE_STORE_STATUS
GetVariableStoreStatus (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
)
{
if ((CompareGuid (&VarStoreHeader->Signature, &gEfiAuthenticatedVariableGuid) ||
CompareGuid (&VarStoreHeader->Signature, &gEfiVariableGuid)) &&
- VarStoreHeader->Format == VARIABLE_STORE_FORMATTED &&
- VarStoreHeader->State == VARIABLE_STORE_HEALTHY
- ) {
-
+ (VarStoreHeader->Format == VARIABLE_STORE_FORMATTED) &&
+ (VarStoreHeader->State == VARIABLE_STORE_HEALTHY)
+ )
+ {
return EfiValid;
}
- if (((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff &&
- ((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff &&
- ((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff &&
- ((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff &&
- VarStoreHeader->Size == 0xffffffff &&
- VarStoreHeader->Format == 0xff &&
- VarStoreHeader->State == 0xff
- ) {
-
+ if ((((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff) &&
+ (((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff) &&
+ (((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff) &&
+ (((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff) &&
+ (VarStoreHeader->Size == 0xffffffff) &&
+ (VarStoreHeader->Format == 0xff) &&
+ (VarStoreHeader->State == 0xff)
+ )
+ {
return EfiRaw;
} else {
return EfiInvalid;
@@ -380,10 +382,10 @@ GetVariableStoreStatus (
**/
BOOLEAN
CompareVariableName (
- IN VARIABLE_STORE_INFO *StoreInfo,
- IN CONST CHAR16 *Name1,
- IN CONST CHAR16 *Name2,
- IN UINTN NameSize
+ IN VARIABLE_STORE_INFO *StoreInfo,
+ IN CONST CHAR16 *Name1,
+ IN CONST CHAR16 *Name2,
+ IN UINTN NameSize
)
{
EFI_PHYSICAL_ADDRESS TargetAddress;
@@ -392,40 +394,42 @@ CompareVariableName (
if (StoreInfo->FtwLastWriteData != NULL) {
TargetAddress = StoreInfo->FtwLastWriteData->TargetAddress;
- SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
- if (((UINTN) Name1 < (UINTN) TargetAddress) && (((UINTN) Name1 + NameSize) > (UINTN) TargetAddress)) {
+ SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
+ if (((UINTN)Name1 < (UINTN)TargetAddress) && (((UINTN)Name1 + NameSize) > (UINTN)TargetAddress)) {
//
// Name1 is inconsecutive.
//
- PartialNameSize = (UINTN) TargetAddress - (UINTN) Name1;
+ PartialNameSize = (UINTN)TargetAddress - (UINTN)Name1;
//
// Partial content is in NV storage.
//
- if (CompareMem ((UINT8 *) Name1, (UINT8 *) Name2, PartialNameSize) == 0) {
+ if (CompareMem ((UINT8 *)Name1, (UINT8 *)Name2, PartialNameSize) == 0) {
//
// Another partial content is in spare block.
//
- if (CompareMem ((UINT8 *) (UINTN) SpareAddress, (UINT8 *) Name2 + PartialNameSize, NameSize - PartialNameSize) == 0) {
+ if (CompareMem ((UINT8 *)(UINTN)SpareAddress, (UINT8 *)Name2 + PartialNameSize, NameSize - PartialNameSize) == 0) {
return TRUE;
}
}
+
return FALSE;
- } else if (((UINTN) Name2 < (UINTN) TargetAddress) && (((UINTN) Name2 + NameSize) > (UINTN) TargetAddress)) {
+ } else if (((UINTN)Name2 < (UINTN)TargetAddress) && (((UINTN)Name2 + NameSize) > (UINTN)TargetAddress)) {
//
// Name2 is inconsecutive.
//
- PartialNameSize = (UINTN) TargetAddress - (UINTN) Name2;
+ PartialNameSize = (UINTN)TargetAddress - (UINTN)Name2;
//
// Partial content is in NV storage.
//
- if (CompareMem ((UINT8 *) Name2, (UINT8 *) Name1, PartialNameSize) == 0) {
+ if (CompareMem ((UINT8 *)Name2, (UINT8 *)Name1, PartialNameSize) == 0) {
//
// Another partial content is in spare block.
//
- if (CompareMem ((UINT8 *) (UINTN) SpareAddress, (UINT8 *) Name1 + PartialNameSize, NameSize - PartialNameSize) == 0) {
+ if (CompareMem ((UINT8 *)(UINTN)SpareAddress, (UINT8 *)Name1 + PartialNameSize, NameSize - PartialNameSize) == 0) {
return TRUE;
}
}
+
return FALSE;
}
}
@@ -433,9 +437,10 @@ CompareVariableName (
//
// Both Name1 and Name2 are consecutive.
//
- if (CompareMem ((UINT8 *) Name1, (UINT8 *) Name2, NameSize) == 0) {
+ if (CompareMem ((UINT8 *)Name1, (UINT8 *)Name2, NameSize) == 0) {
return TRUE;
}
+
return FALSE;
}
@@ -455,12 +460,12 @@ CompareVariableName (
**/
EFI_STATUS
CompareWithValidVariable (
- IN VARIABLE_STORE_INFO *StoreInfo,
- IN VARIABLE_HEADER *Variable,
- IN VARIABLE_HEADER *VariableHeader,
- IN CONST CHAR16 *VariableName,
- IN CONST EFI_GUID *VendorGuid,
- OUT VARIABLE_POINTER_TRACK *PtrTrack
+ IN VARIABLE_STORE_INFO *StoreInfo,
+ IN VARIABLE_HEADER *Variable,
+ IN VARIABLE_HEADER *VariableHeader,
+ IN CONST CHAR16 *VariableName,
+ IN CONST EFI_GUID *VendorGuid,
+ OUT VARIABLE_POINTER_TRACK *PtrTrack
)
{
VOID *Point;
@@ -477,13 +482,14 @@ CompareWithValidVariable (
// Instead we compare the GUID a UINT32 at a time and branch
// on the first failed comparison.
//
- if ((((INT32 *) VendorGuid)[0] == ((INT32 *) TempVendorGuid)[0]) &&
- (((INT32 *) VendorGuid)[1] == ((INT32 *) TempVendorGuid)[1]) &&
- (((INT32 *) VendorGuid)[2] == ((INT32 *) TempVendorGuid)[2]) &&
- (((INT32 *) VendorGuid)[3] == ((INT32 *) TempVendorGuid)[3])
- ) {
+ if ((((INT32 *)VendorGuid)[0] == ((INT32 *)TempVendorGuid)[0]) &&
+ (((INT32 *)VendorGuid)[1] == ((INT32 *)TempVendorGuid)[1]) &&
+ (((INT32 *)VendorGuid)[2] == ((INT32 *)TempVendorGuid)[2]) &&
+ (((INT32 *)VendorGuid)[3] == ((INT32 *)TempVendorGuid)[3])
+ )
+ {
ASSERT (NameSizeOfVariable (VariableHeader, StoreInfo->AuthFlag) != 0);
- Point = (VOID *) GetVariableNamePtr (Variable, StoreInfo->AuthFlag);
+ Point = (VOID *)GetVariableNamePtr (Variable, StoreInfo->AuthFlag);
if (CompareVariableName (StoreInfo, VariableName, Point, NameSizeOfVariable (VariableHeader, StoreInfo->AuthFlag))) {
PtrTrack->CurrPtr = Variable;
return EFI_SUCCESS;
@@ -503,45 +509,46 @@ CompareWithValidVariable (
**/
VOID
GetHobVariableStore (
- OUT VARIABLE_STORE_INFO *StoreInfo,
- OUT VARIABLE_STORE_HEADER **VariableStoreHeader
+ OUT VARIABLE_STORE_INFO *StoreInfo,
+ OUT VARIABLE_STORE_HEADER **VariableStoreHeader
)
{
- EFI_HOB_GUID_TYPE *GuidHob;
+ EFI_HOB_GUID_TYPE *GuidHob;
//
// Make sure there is no more than one Variable HOB.
//
DEBUG_CODE_BEGIN ();
- GuidHob = GetFirstGuidHob (&gEfiAuthenticatedVariableGuid);
+ GuidHob = GetFirstGuidHob (&gEfiAuthenticatedVariableGuid);
+ if (GuidHob != NULL) {
+ if ((GetNextGuidHob (&gEfiAuthenticatedVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
+ DEBUG ((DEBUG_ERROR, "ERROR: Found two Auth Variable HOBs\n"));
+ ASSERT (FALSE);
+ } else if (GetFirstGuidHob (&gEfiVariableGuid) != NULL) {
+ DEBUG ((DEBUG_ERROR, "ERROR: Found one Auth + one Normal Variable HOBs\n"));
+ ASSERT (FALSE);
+ }
+ } else {
+ GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
if (GuidHob != NULL) {
- if ((GetNextGuidHob (&gEfiAuthenticatedVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found two Auth Variable HOBs\n"));
+ if ((GetNextGuidHob (&gEfiVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
+ DEBUG ((DEBUG_ERROR, "ERROR: Found two Normal Variable HOBs\n"));
ASSERT (FALSE);
- } else if (GetFirstGuidHob (&gEfiVariableGuid) != NULL) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found one Auth + one Normal Variable HOBs\n"));
- ASSERT (FALSE);
- }
- } else {
- GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
- if (GuidHob != NULL) {
- if ((GetNextGuidHob (&gEfiVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found two Normal Variable HOBs\n"));
- ASSERT (FALSE);
- }
}
}
+ }
+
DEBUG_CODE_END ();
GuidHob = GetFirstGuidHob (&gEfiAuthenticatedVariableGuid);
if (GuidHob != NULL) {
- *VariableStoreHeader = (VARIABLE_STORE_HEADER *) GET_GUID_HOB_DATA (GuidHob);
- StoreInfo->AuthFlag = TRUE;
+ *VariableStoreHeader = (VARIABLE_STORE_HEADER *)GET_GUID_HOB_DATA (GuidHob);
+ StoreInfo->AuthFlag = TRUE;
} else {
GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
if (GuidHob != NULL) {
- *VariableStoreHeader = (VARIABLE_STORE_HEADER *) GET_GUID_HOB_DATA (GuidHob);
- StoreInfo->AuthFlag = FALSE;
+ *VariableStoreHeader = (VARIABLE_STORE_HEADER *)GET_GUID_HOB_DATA (GuidHob);
+ StoreInfo->AuthFlag = FALSE;
}
}
}
@@ -556,8 +563,8 @@ GetHobVariableStore (
**/
VARIABLE_STORE_HEADER *
GetVariableStore (
- IN VARIABLE_STORE_TYPE Type,
- OUT VARIABLE_STORE_INFO *StoreInfo
+ IN VARIABLE_STORE_TYPE Type,
+ OUT VARIABLE_STORE_INFO *StoreInfo
)
{
EFI_HOB_GUID_TYPE *GuidHob;
@@ -568,10 +575,10 @@ GetVariableStore (
FAULT_TOLERANT_WRITE_LAST_WRITE_DATA *FtwLastWriteData;
UINT32 BackUpOffset;
- StoreInfo->IndexTable = NULL;
+ StoreInfo->IndexTable = NULL;
StoreInfo->FtwLastWriteData = NULL;
- StoreInfo->AuthFlag = FALSE;
- VariableStoreHeader = NULL;
+ StoreInfo->AuthFlag = FALSE;
+ VariableStoreHeader = NULL;
switch (Type) {
case VariableStoreTypeHob:
GetHobVariableStore (StoreInfo, &VariableStoreHeader);
@@ -585,37 +592,37 @@ GetVariableStore (
//
NvStorageSize = PcdGet32 (PcdFlashNvStorageVariableSize);
- NvStorageBase = (EFI_PHYSICAL_ADDRESS) (PcdGet64 (PcdFlashNvStorageVariableBase64) != 0 ?
- PcdGet64 (PcdFlashNvStorageVariableBase64) :
- PcdGet32 (PcdFlashNvStorageVariableBase)
+ NvStorageBase = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageVariableBase64) != 0 ?
+ PcdGet64 (PcdFlashNvStorageVariableBase64) :
+ PcdGet32 (PcdFlashNvStorageVariableBase)
);
ASSERT (NvStorageBase != 0);
//
// First let FvHeader point to NV storage base.
//
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) NvStorageBase;
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)NvStorageBase;
//
// Check the FTW last write data hob.
//
BackUpOffset = 0;
- GuidHob = GetFirstGuidHob (&gEdkiiFaultTolerantWriteGuid);
+ GuidHob = GetFirstGuidHob (&gEdkiiFaultTolerantWriteGuid);
if (GuidHob != NULL) {
- FtwLastWriteData = (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA *) GET_GUID_HOB_DATA (GuidHob);
+ FtwLastWriteData = (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA *)GET_GUID_HOB_DATA (GuidHob);
if (FtwLastWriteData->TargetAddress == NvStorageBase) {
//
// Let FvHeader point to spare block.
//
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) FtwLastWriteData->SpareAddress;
- DEBUG ((DEBUG_INFO, "PeiVariable: NV storage is backed up in spare block: 0x%x\n", (UINTN) FtwLastWriteData->SpareAddress));
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FtwLastWriteData->SpareAddress;
+ DEBUG ((DEBUG_INFO, "PeiVariable: NV storage is backed up in spare block: 0x%x\n", (UINTN)FtwLastWriteData->SpareAddress));
} else if ((FtwLastWriteData->TargetAddress > NvStorageBase) && (FtwLastWriteData->TargetAddress < (NvStorageBase + NvStorageSize))) {
StoreInfo->FtwLastWriteData = FtwLastWriteData;
//
// Flash NV storage from the offset is backed up in spare block.
//
- BackUpOffset = (UINT32) (FtwLastWriteData->TargetAddress - NvStorageBase);
- DEBUG ((DEBUG_INFO, "PeiVariable: High partial NV storage from offset: %x is backed up in spare block: 0x%x\n", BackUpOffset, (UINTN) FtwLastWriteData->SpareAddress));
+ BackUpOffset = (UINT32)(FtwLastWriteData->TargetAddress - NvStorageBase);
+ DEBUG ((DEBUG_INFO, "PeiVariable: High partial NV storage from offset: %x is backed up in spare block: 0x%x\n", BackUpOffset, (UINTN)FtwLastWriteData->SpareAddress));
//
// At least one block data in flash NV storage is still valid, so still leave FvHeader point to NV storage base.
//
@@ -630,9 +637,9 @@ GetVariableStore (
break;
}
- VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINT8 *) FvHeader + FvHeader->HeaderLength);
+ VariableStoreHeader = (VARIABLE_STORE_HEADER *)((UINT8 *)FvHeader + FvHeader->HeaderLength);
- StoreInfo->AuthFlag = (BOOLEAN) (CompareGuid (&VariableStoreHeader->Signature, &gEfiAuthenticatedVariableGuid));
+ StoreInfo->AuthFlag = (BOOLEAN)(CompareGuid (&VariableStoreHeader->Signature, &gEfiAuthenticatedVariableGuid));
GuidHob = GetFirstGuidHob (&gEfiVariableIndexTableGuid);
if (GuidHob != NULL) {
@@ -644,13 +651,14 @@ GetVariableStore (
// Note that as the resource of PEI phase is limited, only store the limited number of
// VAR_ADDED type variables to reduce access time.
//
- StoreInfo->IndexTable = (VARIABLE_INDEX_TABLE *) BuildGuidHob (&gEfiVariableIndexTableGuid, sizeof (VARIABLE_INDEX_TABLE));
+ StoreInfo->IndexTable = (VARIABLE_INDEX_TABLE *)BuildGuidHob (&gEfiVariableIndexTableGuid, sizeof (VARIABLE_INDEX_TABLE));
StoreInfo->IndexTable->Length = 0;
StoreInfo->IndexTable->StartPtr = GetStartPointer (VariableStoreHeader);
- StoreInfo->IndexTable->EndPtr = GetEndPointer (VariableStoreHeader);
+ StoreInfo->IndexTable->EndPtr = GetEndPointer (VariableStoreHeader);
StoreInfo->IndexTable->GoneThrough = 0;
}
}
+
break;
default:
@@ -675,9 +683,9 @@ GetVariableStore (
**/
BOOLEAN
GetVariableHeader (
- IN VARIABLE_STORE_INFO *StoreInfo,
- IN VARIABLE_HEADER *Variable,
- OUT VARIABLE_HEADER **VariableHeader
+ IN VARIABLE_STORE_INFO *StoreInfo,
+ IN VARIABLE_HEADER *Variable,
+ OUT VARIABLE_HEADER **VariableHeader
)
{
EFI_PHYSICAL_ADDRESS TargetAddress;
@@ -696,33 +704,35 @@ GetVariableHeader (
if (StoreInfo->FtwLastWriteData != NULL) {
TargetAddress = StoreInfo->FtwLastWriteData->TargetAddress;
- SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
- if (((UINTN) Variable > (UINTN) SpareAddress) &&
- (((UINTN) Variable - (UINTN) SpareAddress + (UINTN) TargetAddress) >= (UINTN) GetEndPointer (StoreInfo->VariableStoreHeader))) {
+ SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
+ if (((UINTN)Variable > (UINTN)SpareAddress) &&
+ (((UINTN)Variable - (UINTN)SpareAddress + (UINTN)TargetAddress) >= (UINTN)GetEndPointer (StoreInfo->VariableStoreHeader)))
+ {
//
// Reach the end of variable store.
//
return FALSE;
}
- if (((UINTN) Variable < (UINTN) TargetAddress) && (((UINTN) Variable + GetVariableHeaderSize (StoreInfo->AuthFlag)) > (UINTN) TargetAddress)) {
+
+ if (((UINTN)Variable < (UINTN)TargetAddress) && (((UINTN)Variable + GetVariableHeaderSize (StoreInfo->AuthFlag)) > (UINTN)TargetAddress)) {
//
// Variable header pointed by Variable is inconsecutive,
// create a guid hob to combine the two partial variable header content together.
//
GuidHob = GetFirstGuidHob (&gEfiCallerIdGuid);
if (GuidHob != NULL) {
- *VariableHeader = (VARIABLE_HEADER *) GET_GUID_HOB_DATA (GuidHob);
+ *VariableHeader = (VARIABLE_HEADER *)GET_GUID_HOB_DATA (GuidHob);
} else {
- *VariableHeader = (VARIABLE_HEADER *) BuildGuidHob (&gEfiCallerIdGuid, GetVariableHeaderSize (StoreInfo->AuthFlag));
- PartialHeaderSize = (UINTN) TargetAddress - (UINTN) Variable;
+ *VariableHeader = (VARIABLE_HEADER *)BuildGuidHob (&gEfiCallerIdGuid, GetVariableHeaderSize (StoreInfo->AuthFlag));
+ PartialHeaderSize = (UINTN)TargetAddress - (UINTN)Variable;
//
// Partial content is in NV storage.
//
- CopyMem ((UINT8 *) *VariableHeader, (UINT8 *) Variable, PartialHeaderSize);
+ CopyMem ((UINT8 *)*VariableHeader, (UINT8 *)Variable, PartialHeaderSize);
//
// Another partial content is in spare block.
//
- CopyMem ((UINT8 *) *VariableHeader + PartialHeaderSize, (UINT8 *) (UINTN) SpareAddress, GetVariableHeaderSize (StoreInfo->AuthFlag) - PartialHeaderSize);
+ CopyMem ((UINT8 *)*VariableHeader + PartialHeaderSize, (UINT8 *)(UINTN)SpareAddress, GetVariableHeaderSize (StoreInfo->AuthFlag) - PartialHeaderSize);
}
}
} else {
@@ -748,10 +758,10 @@ GetVariableHeader (
**/
VOID
GetVariableNameOrData (
- IN VARIABLE_STORE_INFO *StoreInfo,
- IN UINT8 *NameOrData,
- IN UINTN Size,
- OUT UINT8 *Buffer
+ IN VARIABLE_STORE_INFO *StoreInfo,
+ IN UINT8 *NameOrData,
+ IN UINTN Size,
+ OUT UINT8 *Buffer
)
{
EFI_PHYSICAL_ADDRESS TargetAddress;
@@ -760,12 +770,12 @@ GetVariableNameOrData (
if (StoreInfo->FtwLastWriteData != NULL) {
TargetAddress = StoreInfo->FtwLastWriteData->TargetAddress;
- SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
- if (((UINTN) NameOrData < (UINTN) TargetAddress) && (((UINTN) NameOrData + Size) > (UINTN) TargetAddress)) {
+ SpareAddress = StoreInfo->FtwLastWriteData->SpareAddress;
+ if (((UINTN)NameOrData < (UINTN)TargetAddress) && (((UINTN)NameOrData + Size) > (UINTN)TargetAddress)) {
//
// Variable name/data is inconsecutive.
//
- PartialSize = (UINTN) TargetAddress - (UINTN) NameOrData;
+ PartialSize = (UINTN)TargetAddress - (UINTN)NameOrData;
//
// Partial content is in NV storage.
//
@@ -773,7 +783,7 @@ GetVariableNameOrData (
//
// Another partial content is in spare block.
//
- CopyMem (Buffer + PartialSize, (UINT8 *) (UINTN) SpareAddress, Size - PartialSize);
+ CopyMem (Buffer + PartialSize, (UINT8 *)(UINTN)SpareAddress, Size - PartialSize);
return;
}
}
@@ -799,22 +809,22 @@ GetVariableNameOrData (
**/
EFI_STATUS
FindVariableEx (
- IN VARIABLE_STORE_INFO *StoreInfo,
- IN CONST CHAR16 *VariableName,
- IN CONST EFI_GUID *VendorGuid,
- OUT VARIABLE_POINTER_TRACK *PtrTrack
+ IN VARIABLE_STORE_INFO *StoreInfo,
+ IN CONST CHAR16 *VariableName,
+ IN CONST EFI_GUID *VendorGuid,
+ OUT VARIABLE_POINTER_TRACK *PtrTrack
)
{
- VARIABLE_HEADER *Variable;
- VARIABLE_HEADER *LastVariable;
- VARIABLE_HEADER *MaxIndex;
- UINTN Index;
- UINTN Offset;
- BOOLEAN StopRecord;
- VARIABLE_HEADER *InDeletedVariable;
- VARIABLE_STORE_HEADER *VariableStoreHeader;
- VARIABLE_INDEX_TABLE *IndexTable;
- VARIABLE_HEADER *VariableHeader;
+ VARIABLE_HEADER *Variable;
+ VARIABLE_HEADER *LastVariable;
+ VARIABLE_HEADER *MaxIndex;
+ UINTN Index;
+ UINTN Offset;
+ BOOLEAN StopRecord;
+ VARIABLE_HEADER *InDeletedVariable;
+ VARIABLE_STORE_HEADER *VariableStoreHeader;
+ VARIABLE_INDEX_TABLE *IndexTable;
+ VARIABLE_HEADER *VariableHeader;
VariableStoreHeader = StoreInfo->VariableStoreHeader;
@@ -830,16 +840,16 @@ FindVariableEx (
return EFI_NOT_FOUND;
}
- IndexTable = StoreInfo->IndexTable;
+ IndexTable = StoreInfo->IndexTable;
PtrTrack->StartPtr = GetStartPointer (VariableStoreHeader);
- PtrTrack->EndPtr = GetEndPointer (VariableStoreHeader);
+ PtrTrack->EndPtr = GetEndPointer (VariableStoreHeader);
InDeletedVariable = NULL;
//
// No Variable Address equals zero, so 0 as initial value is safe.
//
- MaxIndex = NULL;
+ MaxIndex = NULL;
VariableHeader = NULL;
if (IndexTable != NULL) {
@@ -849,8 +859,8 @@ FindVariableEx (
//
for (Offset = 0, Index = 0; Index < IndexTable->Length; Index++) {
ASSERT (Index < sizeof (IndexTable->Index) / sizeof (IndexTable->Index[0]));
- Offset += IndexTable->Index[Index];
- MaxIndex = (VARIABLE_HEADER *) ((UINT8 *) IndexTable->StartPtr + Offset);
+ Offset += IndexTable->Index[Index];
+ MaxIndex = (VARIABLE_HEADER *)((UINT8 *)IndexTable->StartPtr + Offset);
GetVariableHeader (StoreInfo, MaxIndex, &VariableHeader);
if (CompareWithValidVariable (StoreInfo, MaxIndex, VariableHeader, VariableName, VendorGuid, PtrTrack) == EFI_SUCCESS) {
if (VariableHeader->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
@@ -891,12 +901,12 @@ FindVariableEx (
//
StopRecord = FALSE;
while (GetVariableHeader (StoreInfo, Variable, &VariableHeader)) {
- if (VariableHeader->State == VAR_ADDED || VariableHeader->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
+ if ((VariableHeader->State == VAR_ADDED) || (VariableHeader->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED))) {
//
// Record Variable in VariableIndex HOB
//
if ((IndexTable != NULL) && !StopRecord) {
- Offset = (UINTN) Variable - (UINTN) LastVariable;
+ Offset = (UINTN)Variable - (UINTN)LastVariable;
if ((Offset > 0x0FFFF) || (IndexTable->Length >= sizeof (IndexTable->Index) / sizeof (IndexTable->Index[0]))) {
//
// Stop to record if the distance of two neighbouring VAR_ADDED variable is larger than the allowable scope(UINT16),
@@ -904,8 +914,8 @@ FindVariableEx (
//
StopRecord = TRUE;
} else {
- IndexTable->Index[IndexTable->Length++] = (UINT16) Offset;
- LastVariable = Variable;
+ IndexTable->Index[IndexTable->Length++] = (UINT16)Offset;
+ LastVariable = Variable;
}
}
@@ -920,6 +930,7 @@ FindVariableEx (
Variable = GetNextVariablePtr (StoreInfo, Variable, VariableHeader);
}
+
//
// If gone through the VariableStore, that means we never find in Firmware any more.
//
@@ -952,14 +963,14 @@ FindVariable (
OUT VARIABLE_STORE_INFO *StoreInfo
)
{
- EFI_STATUS Status;
- VARIABLE_STORE_TYPE Type;
+ EFI_STATUS Status;
+ VARIABLE_STORE_TYPE Type;
- if (VariableName[0] != 0 && VendorGuid == NULL) {
+ if ((VariableName[0] != 0) && (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
- for (Type = (VARIABLE_STORE_TYPE) 0; Type < VariableStoreTypeMax; Type++) {
+ for (Type = (VARIABLE_STORE_TYPE)0; Type < VariableStoreTypeMax; Type++) {
GetVariableStore (Type, StoreInfo);
Status = FindVariableEx (
StoreInfo,
@@ -1005,12 +1016,12 @@ FindVariable (
EFI_STATUS
EFIAPI
PeiGetVariable (
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
- IN CONST CHAR16 *VariableName,
- IN CONST EFI_GUID *VariableGuid,
- OUT UINT32 *Attributes,
- IN OUT UINTN *DataSize,
- OUT VOID *Data OPTIONAL
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
+ IN CONST CHAR16 *VariableName,
+ IN CONST EFI_GUID *VariableGuid,
+ OUT UINT32 *Attributes,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data OPTIONAL
)
{
VARIABLE_POINTER_TRACK Variable;
@@ -1019,7 +1030,7 @@ PeiGetVariable (
VARIABLE_STORE_INFO StoreInfo;
VARIABLE_HEADER *VariableHeader;
- if (VariableName == NULL || VariableGuid == NULL || DataSize == NULL) {
+ if ((VariableName == NULL) || (VariableGuid == NULL) || (DataSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1036,6 +1047,7 @@ PeiGetVariable (
if (EFI_ERROR (Status)) {
return Status;
}
+
GetVariableHeader (&StoreInfo, Variable.CurrPtr, &VariableHeader);
//
@@ -1056,6 +1068,7 @@ PeiGetVariable (
if (Attributes != NULL) {
*Attributes = VariableHeader->Attributes;
}
+
*DataSize = VarDataSize;
return Status;
@@ -1093,10 +1106,10 @@ PeiGetVariable (
EFI_STATUS
EFIAPI
PeiGetNextVariableName (
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VariableGuid
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VariableGuid
)
{
VARIABLE_STORE_TYPE Type;
@@ -1111,14 +1124,14 @@ PeiGetNextVariableName (
VARIABLE_STORE_INFO StoreInfoForNv;
VARIABLE_STORE_INFO StoreInfoForHob;
- if (VariableName == NULL || VariableGuid == NULL || VariableNameSize == NULL) {
+ if ((VariableName == NULL) || (VariableGuid == NULL) || (VariableNameSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
VariableHeader = NULL;
Status = FindVariable (VariableName, VariableGuid, &Variable, &StoreInfo);
- if (Variable.CurrPtr == NULL || Status != EFI_SUCCESS) {
+ if ((Variable.CurrPtr == NULL) || (Status != EFI_SUCCESS)) {
return Status;
}
@@ -1141,11 +1154,12 @@ PeiGetNextVariableName (
//
// Find current storage index
//
- for (Type = (VARIABLE_STORE_TYPE) 0; Type < VariableStoreTypeMax; Type++) {
+ for (Type = (VARIABLE_STORE_TYPE)0; Type < VariableStoreTypeMax; Type++) {
if ((VariableStoreHeader[Type] != NULL) && (Variable.StartPtr == GetStartPointer (VariableStoreHeader[Type]))) {
break;
}
}
+
ASSERT (Type < VariableStoreTypeMax);
//
// Switch to next storage
@@ -1155,6 +1169,7 @@ PeiGetNextVariableName (
break;
}
}
+
//
// Capture the case that
// 1. current storage is the last one, or
@@ -1163,13 +1178,14 @@ PeiGetNextVariableName (
if (Type == VariableStoreTypeMax) {
return EFI_NOT_FOUND;
}
+
Variable.StartPtr = GetStartPointer (VariableStoreHeader[Type]);
- Variable.EndPtr = GetEndPointer (VariableStoreHeader[Type]);
+ Variable.EndPtr = GetEndPointer (VariableStoreHeader[Type]);
Variable.CurrPtr = Variable.StartPtr;
GetVariableStore (Type, &StoreInfo);
}
- if (VariableHeader->State == VAR_ADDED || VariableHeader->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
+ if ((VariableHeader->State == VAR_ADDED) || (VariableHeader->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED))) {
if (VariableHeader->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
//
// If it is a IN_DELETED_TRANSITION variable,
@@ -1182,7 +1198,7 @@ PeiGetNextVariableName (
GetVendorGuidPtr (VariableHeader, StoreInfo.AuthFlag),
&VariablePtrTrack
);
- if (!EFI_ERROR (Status) && VariablePtrTrack.CurrPtr != Variable.CurrPtr) {
+ if (!EFI_ERROR (Status) && (VariablePtrTrack.CurrPtr != Variable.CurrPtr)) {
Variable.CurrPtr = GetNextVariablePtr (&StoreInfo, Variable.CurrPtr, VariableHeader);
continue;
}
@@ -1193,7 +1209,8 @@ PeiGetNextVariableName (
//
if ((VariableStoreHeader[VariableStoreTypeHob] != NULL) && (VariableStoreHeader[VariableStoreTypeNv] != NULL) &&
(Variable.StartPtr == GetStartPointer (VariableStoreHeader[VariableStoreTypeNv]))
- ) {
+ )
+ {
Status = FindVariableEx (
&StoreInfoForHob,
GetVariableNamePtr (Variable.CurrPtr, StoreInfo.AuthFlag),
@@ -1210,7 +1227,7 @@ PeiGetNextVariableName (
ASSERT (VarNameSize != 0);
if (VarNameSize <= *VariableNameSize) {
- GetVariableNameOrData (&StoreInfo, (UINT8 *) GetVariableNamePtr (Variable.CurrPtr, StoreInfo.AuthFlag), VarNameSize, (UINT8 *) VariableName);
+ GetVariableNameOrData (&StoreInfo, (UINT8 *)GetVariableNamePtr (Variable.CurrPtr, StoreInfo.AuthFlag), VarNameSize, (UINT8 *)VariableName);
CopyMem (VariableGuid, GetVendorGuidPtr (VariableHeader, StoreInfo.AuthFlag), sizeof (EFI_GUID));
diff --git a/MdeModulePkg/Universal/Variable/Pei/Variable.h b/MdeModulePkg/Universal/Variable/Pei/Variable.h
index 5f660b3..7f9ad5b 100644
--- a/MdeModulePkg/Universal/Variable/Pei/Variable.h
+++ b/MdeModulePkg/Universal/Variable/Pei/Variable.h
@@ -47,6 +47,7 @@ typedef struct {
//
// Functions
//
+
/**
Provide the functionality of the variable services.
@@ -61,8 +62,8 @@ typedef struct {
EFI_STATUS
EFIAPI
PeimInitializeVariableServices (
- IN EFI_PEI_FILE_HANDLE FileHandle,
- IN CONST EFI_PEI_SERVICES **PeiServices
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ IN CONST EFI_PEI_SERVICES **PeiServices
);
/**
@@ -95,12 +96,12 @@ PeimInitializeVariableServices (
EFI_STATUS
EFIAPI
PeiGetVariable (
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
- IN CONST CHAR16 *VariableName,
- IN CONST EFI_GUID *VariableGuid,
- OUT UINT32 *Attributes,
- IN OUT UINTN *DataSize,
- OUT VOID *Data OPTIONAL
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
+ IN CONST CHAR16 *VariableName,
+ IN CONST EFI_GUID *VariableGuid,
+ OUT UINT32 *Attributes,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data OPTIONAL
);
/**
@@ -135,10 +136,10 @@ PeiGetVariable (
EFI_STATUS
EFIAPI
PeiGetNextVariableName (
- IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VariableGuid
+ IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This,
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VariableGuid
);
#endif
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c
index 6f459e9..c15cce9 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c
@@ -21,25 +21,25 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "PrivilegePolymorphic.h"
typedef struct {
- CHAR16 *VariableName;
- EFI_GUID *VendorGuid;
+ CHAR16 *VariableName;
+ EFI_GUID *VendorGuid;
} VARIABLE_TYPE;
VARIABLE_TYPE mVariableType[] = {
- {EFI_SECURE_BOOT_MODE_NAME, &gEfiGlobalVariableGuid},
- {EFI_PLATFORM_KEY_NAME, &gEfiGlobalVariableGuid},
- {EFI_KEY_EXCHANGE_KEY_NAME, &gEfiGlobalVariableGuid},
- {EFI_IMAGE_SECURITY_DATABASE, &gEfiImageSecurityDatabaseGuid},
- {EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid},
- {EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid},
+ { EFI_SECURE_BOOT_MODE_NAME, &gEfiGlobalVariableGuid },
+ { EFI_PLATFORM_KEY_NAME, &gEfiGlobalVariableGuid },
+ { EFI_KEY_EXCHANGE_KEY_NAME, &gEfiGlobalVariableGuid },
+ { EFI_IMAGE_SECURITY_DATABASE, &gEfiImageSecurityDatabaseGuid },
+ { EFI_IMAGE_SECURITY_DATABASE1, &gEfiImageSecurityDatabaseGuid },
+ { EFI_IMAGE_SECURITY_DATABASE2, &gEfiImageSecurityDatabaseGuid },
};
//
// "SecureBoot" may update following PK Del/Add
// Cache its value to detect value update
//
-UINT8 *mSecureBootVarData = NULL;
-UINTN mSecureBootVarDataSize = 0;
+UINT8 *mSecureBootVarData = NULL;
+UINTN mSecureBootVarDataSize = 0;
/**
This function will return if this variable is SecureBootPolicy Variable.
@@ -52,18 +52,20 @@ UINTN mSecureBootVarDataSize = 0;
**/
BOOLEAN
IsSecureBootPolicyVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
- UINTN Index;
+ UINTN Index;
- for (Index = 0; Index < sizeof(mVariableType)/sizeof(mVariableType[0]); Index++) {
+ for (Index = 0; Index < sizeof (mVariableType)/sizeof (mVariableType[0]); Index++) {
if ((StrCmp (VariableName, mVariableType[Index].VariableName) == 0) &&
- (CompareGuid (VendorGuid, mVariableType[Index].VendorGuid))) {
+ (CompareGuid (VendorGuid, mVariableType[Index].VendorGuid)))
+ {
return TRUE;
}
}
+
return FALSE;
}
@@ -83,42 +85,42 @@ IsSecureBootPolicyVariable (
EFI_STATUS
EFIAPI
MeasureVariable (
- IN CHAR16 *VarName,
- IN EFI_GUID *VendorGuid,
- IN VOID *VarData,
- IN UINTN VarSize
+ IN CHAR16 *VarName,
+ IN EFI_GUID *VendorGuid,
+ IN VOID *VarData,
+ IN UINTN VarSize
)
{
- EFI_STATUS Status;
- UINTN VarNameLength;
- UEFI_VARIABLE_DATA *VarLog;
- UINT32 VarLogSize;
+ EFI_STATUS Status;
+ UINTN VarNameLength;
+ UEFI_VARIABLE_DATA *VarLog;
+ UINT32 VarLogSize;
ASSERT ((VarSize == 0 && VarData == NULL) || (VarSize != 0 && VarData != NULL));
- VarNameLength = StrLen (VarName);
- VarLogSize = (UINT32)(sizeof (*VarLog) + VarNameLength * sizeof (*VarName) + VarSize
- - sizeof (VarLog->UnicodeName) - sizeof (VarLog->VariableData));
+ VarNameLength = StrLen (VarName);
+ VarLogSize = (UINT32)(sizeof (*VarLog) + VarNameLength * sizeof (*VarName) + VarSize
+ - sizeof (VarLog->UnicodeName) - sizeof (VarLog->VariableData));
- VarLog = (UEFI_VARIABLE_DATA *) AllocateZeroPool (VarLogSize);
+ VarLog = (UEFI_VARIABLE_DATA *)AllocateZeroPool (VarLogSize);
if (VarLog == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- CopyMem (&VarLog->VariableName, VendorGuid, sizeof(VarLog->VariableName));
+ CopyMem (&VarLog->VariableName, VendorGuid, sizeof (VarLog->VariableName));
VarLog->UnicodeNameLength = VarNameLength;
VarLog->VariableDataLength = VarSize;
CopyMem (
- VarLog->UnicodeName,
- VarName,
- VarNameLength * sizeof (*VarName)
- );
+ VarLog->UnicodeName,
+ VarName,
+ VarNameLength * sizeof (*VarName)
+ );
if (VarSize != 0) {
CopyMem (
- (CHAR16 *)VarLog->UnicodeName + VarNameLength,
- VarData,
- VarSize
- );
+ (CHAR16 *)VarLog->UnicodeName + VarNameLength,
+ VarData,
+ VarSize
+ );
}
DEBUG ((DEBUG_INFO, "VariableDxe: MeasureVariable (Pcr - %x, EventType - %x, ", (UINTN)7, (UINTN)EV_EFI_VARIABLE_DRIVER_CONFIG));
@@ -171,10 +173,10 @@ InternalGetVariable (
BufferSize = 0;
*Value = NULL;
if (Size != NULL) {
- *Size = 0;
+ *Size = 0;
}
- Status = gRT->GetVariable ((CHAR16 *) Name, (EFI_GUID *) Guid, NULL, &BufferSize, *Value);
+ Status = gRT->GetVariable ((CHAR16 *)Name, (EFI_GUID *)Guid, NULL, &BufferSize, *Value);
if (Status != EFI_BUFFER_TOO_SMALL) {
return Status;
}
@@ -191,9 +193,9 @@ InternalGetVariable (
//
// Get the variable data.
//
- Status = gRT->GetVariable ((CHAR16 *) Name, (EFI_GUID *) Guid, NULL, &BufferSize, *Value);
+ Status = gRT->GetVariable ((CHAR16 *)Name, (EFI_GUID *)Guid, NULL, &BufferSize, *Value);
if (EFI_ERROR (Status)) {
- FreePool(*Value);
+ FreePool (*Value);
*Value = NULL;
}
@@ -214,16 +216,16 @@ InternalGetVariable (
VOID
EFIAPI
SecureBootHook (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- UINTN VariableDataSize;
- VOID *VariableData;
+ EFI_STATUS Status;
+ UINTN VariableDataSize;
+ VOID *VariableData;
if (!IsSecureBootPolicyVariable (VariableName, VendorGuid)) {
- return ;
+ return;
}
//
@@ -241,9 +243,10 @@ SecureBootHook (
//
// Measure DBT only if present and not empty
//
- if (StrCmp (VariableName, EFI_IMAGE_SECURITY_DATABASE2) == 0 &&
- CompareGuid (VendorGuid, &gEfiImageSecurityDatabaseGuid)) {
- DEBUG((DEBUG_INFO, "Skip measuring variable %s since it's deleted\n", EFI_IMAGE_SECURITY_DATABASE2));
+ if ((StrCmp (VariableName, EFI_IMAGE_SECURITY_DATABASE2) == 0) &&
+ CompareGuid (VendorGuid, &gEfiImageSecurityDatabaseGuid))
+ {
+ DEBUG ((DEBUG_INFO, "Skip measuring variable %s since it's deleted\n", EFI_IMAGE_SECURITY_DATABASE2));
return;
} else {
VariableData = NULL;
@@ -267,44 +270,45 @@ SecureBootHook (
// "SecureBoot" is 8bit & read-only. It can only be changed according to PK update
//
if ((StrCmp (VariableName, EFI_PLATFORM_KEY_NAME) == 0) &&
- CompareGuid (VendorGuid, &gEfiGlobalVariableGuid)) {
- Status = InternalGetVariable (
- EFI_SECURE_BOOT_MODE_NAME,
- &gEfiGlobalVariableGuid,
- &VariableData,
- &VariableDataSize
- );
- if (EFI_ERROR (Status)) {
- return;
- }
-
- //
- // If PK update is successful. "SecureBoot" shall always exist ever since variable write service is ready
- //
- ASSERT(mSecureBootVarData != NULL);
-
- if (CompareMem(mSecureBootVarData, VariableData, VariableDataSize) != 0) {
- FreePool(mSecureBootVarData);
- mSecureBootVarData = VariableData;
- mSecureBootVarDataSize = VariableDataSize;
-
- DEBUG((DEBUG_INFO, "%s variable updated according to PK change. Remeasure the value!\n", EFI_SECURE_BOOT_MODE_NAME));
- Status = MeasureVariable (
- EFI_SECURE_BOOT_MODE_NAME,
- &gEfiGlobalVariableGuid,
- mSecureBootVarData,
- mSecureBootVarDataSize
- );
- DEBUG ((DEBUG_INFO, "MeasureBootPolicyVariable - %r\n", Status));
- } else {
- //
- // "SecureBoot" variable is not changed
- //
- FreePool(VariableData);
- }
+ CompareGuid (VendorGuid, &gEfiGlobalVariableGuid))
+ {
+ Status = InternalGetVariable (
+ EFI_SECURE_BOOT_MODE_NAME,
+ &gEfiGlobalVariableGuid,
+ &VariableData,
+ &VariableDataSize
+ );
+ if (EFI_ERROR (Status)) {
+ return;
+ }
+
+ //
+ // If PK update is successful. "SecureBoot" shall always exist ever since variable write service is ready
+ //
+ ASSERT (mSecureBootVarData != NULL);
+
+ if (CompareMem (mSecureBootVarData, VariableData, VariableDataSize) != 0) {
+ FreePool (mSecureBootVarData);
+ mSecureBootVarData = VariableData;
+ mSecureBootVarDataSize = VariableDataSize;
+
+ DEBUG ((DEBUG_INFO, "%s variable updated according to PK change. Remeasure the value!\n", EFI_SECURE_BOOT_MODE_NAME));
+ Status = MeasureVariable (
+ EFI_SECURE_BOOT_MODE_NAME,
+ &gEfiGlobalVariableGuid,
+ mSecureBootVarData,
+ mSecureBootVarDataSize
+ );
+ DEBUG ((DEBUG_INFO, "MeasureBootPolicyVariable - %r\n", Status));
+ } else {
+ //
+ // "SecureBoot" variable is not changed
+ //
+ FreePool (VariableData);
+ }
}
- return ;
+ return;
}
/**
@@ -314,11 +318,11 @@ SecureBootHook (
**/
VOID
EFIAPI
-RecordSecureBootPolicyVarData(
+RecordSecureBootPolicyVarData (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Record initial "SecureBoot" variable value.
@@ -330,10 +334,10 @@ RecordSecureBootPolicyVarData(
(VOID **)&mSecureBootVarData,
&mSecureBootVarDataSize
);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
//
// Read could fail when Auth Variable solution is not supported
//
- DEBUG((DEBUG_INFO, "RecordSecureBootPolicyVarData GetVariable %s Status %x\n", EFI_SECURE_BOOT_MODE_NAME, Status));
+ DEBUG ((DEBUG_INFO, "RecordSecureBootPolicyVarData GetVariable %s Status %x\n", EFI_SECURE_BOOT_MODE_NAME, Status));
}
}
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/PrivilegePolymorphic.h b/MdeModulePkg/Universal/Variable/RuntimeDxe/PrivilegePolymorphic.h
index 2f5695f..065c75a 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/PrivilegePolymorphic.h
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/PrivilegePolymorphic.h
@@ -11,6 +11,7 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
+
#ifndef _PRIVILEGE_POLYMORPHIC_H_
#define _PRIVILEGE_POLYMORPHIC_H_
@@ -25,8 +26,8 @@
VOID
EFIAPI
SecureBootHook (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
);
/**
@@ -71,11 +72,11 @@ MorLockInitAtEndOfDxe (
**/
EFI_STATUS
SetVariableCheckHandlerMor (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
);
/**
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Reclaim.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Reclaim.c
index 1def8e2..fe64d0a 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Reclaim.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Reclaim.c
@@ -28,9 +28,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
GetLbaAndOffsetByAddress (
- IN EFI_PHYSICAL_ADDRESS Address,
- OUT EFI_LBA *Lba,
- OUT UINTN *Offset
+ IN EFI_PHYSICAL_ADDRESS Address,
+ OUT EFI_LBA *Lba,
+ OUT UINTN *Offset
)
{
EFI_STATUS Status;
@@ -41,7 +41,7 @@ GetLbaAndOffsetByAddress (
UINT32 LbaIndex;
Fvb = NULL;
- *Lba = (EFI_LBA) (-1);
+ *Lba = (EFI_LBA)(-1);
*Offset = 0;
//
@@ -60,7 +60,7 @@ GetLbaAndOffsetByAddress (
return Status;
}
- FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *) ((UINTN) FvbBaseAddress);
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)((UINTN)FvbBaseAddress);
//
// Get the (LBA, Offset) of Address.
@@ -76,9 +76,9 @@ GetLbaAndOffsetByAddress (
// Found the (Lba, Offset).
//
*Lba = LbaIndex - 1;
- *Offset = (UINTN) (Address - (FvbBaseAddress + FvbMapEntry->Length * (LbaIndex - 1)));
+ *Offset = (UINTN)(Address - (FvbBaseAddress + FvbMapEntry->Length * (LbaIndex - 1)));
return EFI_SUCCESS;
- }
+ }
}
}
@@ -116,10 +116,11 @@ FtwVariableSpace (
//
// Locate fault tolerant write protocol.
//
- Status = GetFtwProtocol((VOID **) &FtwProtocol);
+ Status = GetFtwProtocol ((VOID **)&FtwProtocol);
if (EFI_ERROR (Status)) {
return EFI_NOT_FOUND;
}
+
//
// Locate Fvb handle by address.
//
@@ -127,6 +128,7 @@ FtwVariableSpace (
if (EFI_ERROR (Status)) {
return Status;
}
+
//
// Get LBA and Offset by address.
//
@@ -135,7 +137,7 @@ FtwVariableSpace (
return EFI_ABORTED;
}
- FtwBufferSize = ((VARIABLE_STORE_HEADER *) ((UINTN) VariableBase))->Size;
+ FtwBufferSize = ((VARIABLE_STORE_HEADER *)((UINTN)VariableBase))->Size;
ASSERT (FtwBufferSize == VariableBuffer->Size);
//
@@ -143,12 +145,12 @@ FtwVariableSpace (
//
Status = FtwProtocol->Write (
FtwProtocol,
- VarLba, // LBA
- VarOffset, // Offset
- FtwBufferSize, // NumBytes
- NULL, // PrivateData NULL
- FvbHandle, // Fvb Handle
- (VOID *) VariableBuffer // write buffer
+ VarLba, // LBA
+ VarOffset, // Offset
+ FtwBufferSize, // NumBytes
+ NULL, // PrivateData NULL
+ FvbHandle, // Fvb Handle
+ (VOID *)VariableBuffer // write buffer
);
return Status;
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/VariableLockRequestToLockUnitTest.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/VariableLockRequestToLockUnitTest.c
index aafe3ca..b2bcb97 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/VariableLockRequestToLockUnitTest.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/VariableLockRequestToLockUnitTest.c
@@ -23,10 +23,10 @@
#include <Protocol/VariableLock.h>
-#define UNIT_TEST_NAME "VarPol/VarLock Shim Unit Test"
-#define UNIT_TEST_VERSION "1.0"
+#define UNIT_TEST_NAME "VarPol/VarLock Shim Unit Test"
+#define UNIT_TEST_VERSION "1.0"
-///=== CODE UNDER TEST ===========================================================================
+/// === CODE UNDER TEST ===========================================================================
EFI_STATUS
EFIAPI
@@ -36,41 +36,41 @@ VariableLockRequestToLock (
IN EFI_GUID *VendorGuid
);
-///=== TEST DATA ==================================================================================
+/// === TEST DATA ==================================================================================
//
// Test GUID 1 {F955BA2D-4A2C-480C-BFD1-3CC522610592}
//
EFI_GUID mTestGuid1 = {
- 0xf955ba2d, 0x4a2c, 0x480c, {0xbf, 0xd1, 0x3c, 0xc5, 0x22, 0x61, 0x5, 0x92}
+ 0xf955ba2d, 0x4a2c, 0x480c, { 0xbf, 0xd1, 0x3c, 0xc5, 0x22, 0x61, 0x5, 0x92 }
};
//
// Test GUID 2 {2DEA799E-5E73-43B9-870E-C945CE82AF3A}
//
EFI_GUID mTestGuid2 = {
- 0x2dea799e, 0x5e73, 0x43b9, {0x87, 0xe, 0xc9, 0x45, 0xce, 0x82, 0xaf, 0x3a}
+ 0x2dea799e, 0x5e73, 0x43b9, { 0x87, 0xe, 0xc9, 0x45, 0xce, 0x82, 0xaf, 0x3a }
};
//
// Test GUID 3 {698A2BFD-A616-482D-B88C-7100BD6682A9}
//
EFI_GUID mTestGuid3 = {
- 0x698a2bfd, 0xa616, 0x482d, {0xb8, 0x8c, 0x71, 0x0, 0xbd, 0x66, 0x82, 0xa9}
+ 0x698a2bfd, 0xa616, 0x482d, { 0xb8, 0x8c, 0x71, 0x0, 0xbd, 0x66, 0x82, 0xa9 }
};
-#define TEST_VAR_1_NAME L"TestVar1"
-#define TEST_VAR_2_NAME L"TestVar2"
-#define TEST_VAR_3_NAME L"TestVar3"
+#define TEST_VAR_1_NAME L"TestVar1"
+#define TEST_VAR_2_NAME L"TestVar2"
+#define TEST_VAR_3_NAME L"TestVar3"
#define TEST_POLICY_ATTRIBUTES_NULL 0
#define TEST_POLICY_MIN_SIZE_NULL 0
#define TEST_POLICY_MAX_SIZE_NULL MAX_UINT32
-#define TEST_POLICY_MIN_SIZE_10 10
-#define TEST_POLICY_MAX_SIZE_200 200
+#define TEST_POLICY_MIN_SIZE_10 10
+#define TEST_POLICY_MAX_SIZE_200 200
-///=== HELPER FUNCTIONS ===========================================================================
+/// === HELPER FUNCTIONS ===========================================================================
/**
Mocked version of GetVariable, for testing.
@@ -100,15 +100,16 @@ StubGetVariableNull (
check_expected_ptr (VendorGuid);
check_expected_ptr (DataSize);
- MockedAttr = (UINT32)mock();
- MockedDataSize = (UINTN)mock();
- MockedData = (VOID*)(UINTN)mock();
- MockedReturn = (EFI_STATUS)mock();
+ MockedAttr = (UINT32)mock ();
+ MockedDataSize = (UINTN)mock ();
+ MockedData = (VOID *)(UINTN)mock ();
+ MockedReturn = (EFI_STATUS)mock ();
if (Attributes != NULL) {
*Attributes = MockedAttr;
}
- if (Data != NULL && !EFI_ERROR (MockedReturn)) {
+
+ if ((Data != NULL) && !EFI_ERROR (MockedReturn)) {
CopyMem (Data, MockedData, MockedDataSize);
}
@@ -152,12 +153,12 @@ LibCleanup (
IN UNIT_TEST_CONTEXT Context
)
{
- DeinitVariablePolicyLib();
+ DeinitVariablePolicyLib ();
}
-///=== TEST CASES =================================================================================
+/// === TEST CASES =================================================================================
-///===== SHIM SUITE ===========================================================
+/// ===== SHIM SUITE ===========================================================
/**
Test Case that locks a single variable using the Variable Lock Protocol.
@@ -257,38 +258,40 @@ LockingALockedVariableShouldSucceed (
UNIT_TEST_STATUS
EFIAPI
LockingAnUnlockedVariableShouldFail (
- IN UNIT_TEST_CONTEXT Context
+ IN UNIT_TEST_CONTEXT Context
)
{
- EFI_STATUS Status;
- VARIABLE_POLICY_ENTRY *NewEntry;
+ EFI_STATUS Status;
+ VARIABLE_POLICY_ENTRY *NewEntry;
// Create a variable policy that locks the variable.
- Status = CreateVarStateVariablePolicy (&mTestGuid1,
- TEST_VAR_1_NAME,
- TEST_POLICY_MIN_SIZE_NULL,
- TEST_POLICY_MAX_SIZE_200,
- TEST_POLICY_ATTRIBUTES_NULL,
- TEST_POLICY_ATTRIBUTES_NULL,
- &mTestGuid2,
- 1,
- TEST_VAR_2_NAME,
- &NewEntry);
+ Status = CreateVarStateVariablePolicy (
+ &mTestGuid1,
+ TEST_VAR_1_NAME,
+ TEST_POLICY_MIN_SIZE_NULL,
+ TEST_POLICY_MAX_SIZE_200,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ &mTestGuid2,
+ 1,
+ TEST_VAR_2_NAME,
+ &NewEntry
+ );
UT_ASSERT_NOT_EFI_ERROR (Status);
// Register the new policy.
Status = RegisterVariablePolicy (NewEntry);
- // Configure the stub to not care about parameters. We're testing errors.
- expect_any_always( StubGetVariableNull, VariableName );
- expect_any_always( StubGetVariableNull, VendorGuid );
- expect_any_always( StubGetVariableNull, DataSize );
+ // Configure the stub to not care about parameters. We're testing errors.
+ expect_any_always (StubGetVariableNull, VariableName);
+ expect_any_always (StubGetVariableNull, VendorGuid);
+ expect_any_always (StubGetVariableNull, DataSize);
// With a policy, make sure that writes still work, since the variable doesn't exist.
- will_return( StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL ); // Attributes
- will_return( StubGetVariableNull, 0 ); // Size
- will_return( StubGetVariableNull, (UINTN)NULL ); // DataPtr
- will_return( StubGetVariableNull, EFI_NOT_FOUND); // Status
+ will_return (StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL); // Attributes
+ will_return (StubGetVariableNull, 0); // Size
+ will_return (StubGetVariableNull, (UINTN)NULL); // DataPtr
+ will_return (StubGetVariableNull, EFI_NOT_FOUND); // Status
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);
UT_ASSERT_TRUE (EFI_ERROR (Status));
@@ -310,40 +313,42 @@ LockingAnUnlockedVariableShouldFail (
UNIT_TEST_STATUS
EFIAPI
LockingALockedVariableWithMatchingDataShouldSucceed (
- IN UNIT_TEST_CONTEXT Context
+ IN UNIT_TEST_CONTEXT Context
)
{
- EFI_STATUS Status;
- VARIABLE_POLICY_ENTRY *NewEntry;
- UINT8 Data;
+ EFI_STATUS Status;
+ VARIABLE_POLICY_ENTRY *NewEntry;
+ UINT8 Data;
// Create a variable policy that locks the variable.
- Status = CreateVarStateVariablePolicy (&mTestGuid1,
- TEST_VAR_1_NAME,
- TEST_POLICY_MIN_SIZE_NULL,
- TEST_POLICY_MAX_SIZE_200,
- TEST_POLICY_ATTRIBUTES_NULL,
- TEST_POLICY_ATTRIBUTES_NULL,
- &mTestGuid2,
- 1,
- TEST_VAR_2_NAME,
- &NewEntry);
+ Status = CreateVarStateVariablePolicy (
+ &mTestGuid1,
+ TEST_VAR_1_NAME,
+ TEST_POLICY_MIN_SIZE_NULL,
+ TEST_POLICY_MAX_SIZE_200,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ &mTestGuid2,
+ 1,
+ TEST_VAR_2_NAME,
+ &NewEntry
+ );
UT_ASSERT_NOT_EFI_ERROR (Status);
// Register the new policy.
Status = RegisterVariablePolicy (NewEntry);
- // Configure the stub to not care about parameters. We're testing errors.
- expect_any_always( StubGetVariableNull, VariableName );
- expect_any_always( StubGetVariableNull, VendorGuid );
- expect_any_always( StubGetVariableNull, DataSize );
+ // Configure the stub to not care about parameters. We're testing errors.
+ expect_any_always (StubGetVariableNull, VariableName);
+ expect_any_always (StubGetVariableNull, VendorGuid);
+ expect_any_always (StubGetVariableNull, DataSize);
// With a policy, make sure that writes still work, since the variable doesn't exist.
Data = 1;
- will_return( StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL ); // Attributes
- will_return( StubGetVariableNull, sizeof (Data) ); // Size
- will_return( StubGetVariableNull, (UINTN)&Data ); // DataPtr
- will_return( StubGetVariableNull, EFI_SUCCESS); // Status
+ will_return (StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL); // Attributes
+ will_return (StubGetVariableNull, sizeof (Data)); // Size
+ will_return (StubGetVariableNull, (UINTN)&Data); // DataPtr
+ will_return (StubGetVariableNull, EFI_SUCCESS); // Status
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);
UT_ASSERT_TRUE (!EFI_ERROR (Status));
@@ -365,40 +370,42 @@ LockingALockedVariableWithMatchingDataShouldSucceed (
UNIT_TEST_STATUS
EFIAPI
LockingALockedVariableWithNonMatchingDataShouldFail (
- IN UNIT_TEST_CONTEXT Context
+ IN UNIT_TEST_CONTEXT Context
)
{
- EFI_STATUS Status;
- VARIABLE_POLICY_ENTRY *NewEntry;
- UINT8 Data;
+ EFI_STATUS Status;
+ VARIABLE_POLICY_ENTRY *NewEntry;
+ UINT8 Data;
// Create a variable policy that locks the variable.
- Status = CreateVarStateVariablePolicy (&mTestGuid1,
- TEST_VAR_1_NAME,
- TEST_POLICY_MIN_SIZE_NULL,
- TEST_POLICY_MAX_SIZE_200,
- TEST_POLICY_ATTRIBUTES_NULL,
- TEST_POLICY_ATTRIBUTES_NULL,
- &mTestGuid2,
- 1,
- TEST_VAR_2_NAME,
- &NewEntry);
+ Status = CreateVarStateVariablePolicy (
+ &mTestGuid1,
+ TEST_VAR_1_NAME,
+ TEST_POLICY_MIN_SIZE_NULL,
+ TEST_POLICY_MAX_SIZE_200,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ &mTestGuid2,
+ 1,
+ TEST_VAR_2_NAME,
+ &NewEntry
+ );
UT_ASSERT_NOT_EFI_ERROR (Status);
// Register the new policy.
Status = RegisterVariablePolicy (NewEntry);
- // Configure the stub to not care about parameters. We're testing errors.
- expect_any_always( StubGetVariableNull, VariableName );
- expect_any_always( StubGetVariableNull, VendorGuid );
- expect_any_always( StubGetVariableNull, DataSize );
+ // Configure the stub to not care about parameters. We're testing errors.
+ expect_any_always (StubGetVariableNull, VariableName);
+ expect_any_always (StubGetVariableNull, VendorGuid);
+ expect_any_always (StubGetVariableNull, DataSize);
// With a policy, make sure that writes still work, since the variable doesn't exist.
Data = 2;
- will_return( StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL ); // Attributes
- will_return( StubGetVariableNull, sizeof (Data) ); // Size
- will_return( StubGetVariableNull, (UINTN)&Data ); // DataPtr
- will_return( StubGetVariableNull, EFI_SUCCESS); // Status
+ will_return (StubGetVariableNull, TEST_POLICY_ATTRIBUTES_NULL); // Attributes
+ will_return (StubGetVariableNull, sizeof (Data)); // Size
+ will_return (StubGetVariableNull, (UINTN)&Data); // DataPtr
+ will_return (StubGetVariableNull, EFI_SUCCESS); // Status
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);
UT_ASSERT_TRUE (EFI_ERROR (Status));
@@ -419,27 +426,29 @@ LockingALockedVariableWithNonMatchingDataShouldFail (
UNIT_TEST_STATUS
EFIAPI
SettingPolicyForALockedVariableShouldFail (
- IN UNIT_TEST_CONTEXT Context
+ IN UNIT_TEST_CONTEXT Context
)
{
- EFI_STATUS Status;
- VARIABLE_POLICY_ENTRY *NewEntry;
+ EFI_STATUS Status;
+ VARIABLE_POLICY_ENTRY *NewEntry;
// Lock the variable.
Status = VariableLockRequestToLock (NULL, TEST_VAR_1_NAME, &mTestGuid1);
UT_ASSERT_NOT_EFI_ERROR (Status);
// Create a variable policy that locks the variable.
- Status = CreateVarStateVariablePolicy (&mTestGuid1,
- TEST_VAR_1_NAME,
- TEST_POLICY_MIN_SIZE_NULL,
- TEST_POLICY_MAX_SIZE_200,
- TEST_POLICY_ATTRIBUTES_NULL,
- TEST_POLICY_ATTRIBUTES_NULL,
- &mTestGuid2,
- 1,
- TEST_VAR_2_NAME,
- &NewEntry);
+ Status = CreateVarStateVariablePolicy (
+ &mTestGuid1,
+ TEST_VAR_1_NAME,
+ TEST_POLICY_MIN_SIZE_NULL,
+ TEST_POLICY_MAX_SIZE_200,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ TEST_POLICY_ATTRIBUTES_NULL,
+ &mTestGuid2,
+ 1,
+ TEST_VAR_2_NAME,
+ &NewEntry
+ );
UT_ASSERT_NOT_EFI_ERROR (Status);
// Register the new policy.
@@ -483,48 +492,81 @@ UnitTestMain (
// Add all test suites and tests.
//
Status = CreateUnitTestSuite (
- &ShimTests, Framework,
- "Variable Lock Shim Tests", "VarPolicy.VarLockShim", NULL, NULL
+ &ShimTests,
+ Framework,
+ "Variable Lock Shim Tests",
+ "VarPolicy.VarLockShim",
+ NULL,
+ NULL
);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestSuite for ShimTests\n"));
Status = EFI_OUT_OF_RESOURCES;
goto EXIT;
}
+
AddTestCase (
ShimTests,
- "Locking a variable with no matching policies should always work", "EmptyPolicies",
- LockingWithoutAnyPoliciesShouldSucceed, LibInitMocked, LibCleanup, NULL
+ "Locking a variable with no matching policies should always work",
+ "EmptyPolicies",
+ LockingWithoutAnyPoliciesShouldSucceed,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
AddTestCase (
ShimTests,
- "Locking a variable twice should always work", "DoubleLock",
- LockingTwiceShouldSucceed, LibInitMocked, LibCleanup, NULL
+ "Locking a variable twice should always work",
+ "DoubleLock",
+ LockingTwiceShouldSucceed,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
AddTestCase (
ShimTests,
- "Locking a variable that's already locked by another policy should work", "LockAfterPolicy",
- LockingALockedVariableShouldSucceed, LibInitMocked, LibCleanup, NULL
+ "Locking a variable that's already locked by another policy should work",
+ "LockAfterPolicy",
+ LockingALockedVariableShouldSucceed,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
AddTestCase (
ShimTests,
- "Locking a variable that already has an unlocked policy should fail", "LockAfterUnlockedPolicy",
- LockingAnUnlockedVariableShouldFail, LibInitMocked, LibCleanup, NULL
+ "Locking a variable that already has an unlocked policy should fail",
+ "LockAfterUnlockedPolicy",
+ LockingAnUnlockedVariableShouldFail,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
AddTestCase (
ShimTests,
- "Locking a variable that already has an locked policy should succeed", "LockAfterLockedPolicyMatchingData",
- LockingALockedVariableWithMatchingDataShouldSucceed, LibInitMocked, LibCleanup, NULL
+ "Locking a variable that already has an locked policy should succeed",
+ "LockAfterLockedPolicyMatchingData",
+ LockingALockedVariableWithMatchingDataShouldSucceed,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
AddTestCase (
ShimTests,
- "Locking a variable that already has an locked policy with matching data should succeed", "LockAfterLockedPolicyNonMatchingData",
- LockingALockedVariableWithNonMatchingDataShouldFail, LibInitMocked, LibCleanup, NULL
+ "Locking a variable that already has an locked policy with matching data should succeed",
+ "LockAfterLockedPolicyNonMatchingData",
+ LockingALockedVariableWithNonMatchingDataShouldFail,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
AddTestCase (
ShimTests,
- "Adding a policy for a variable that has previously been locked should always fail", "SetPolicyAfterLock",
- SettingPolicyForALockedVariableShouldFail, LibInitMocked, LibCleanup, NULL
+ "Adding a policy for a variable that has previously been locked should always fail",
+ "SetPolicyAfterLock",
+ SettingPolicyForALockedVariableShouldFail,
+ LibInitMocked,
+ LibCleanup,
+ NULL
);
//
@@ -543,7 +585,7 @@ EXIT:
///
/// Avoid ECC error for function name that starts with lower case letter
///
-#define Main main
+#define Main main
/**
Standard POSIX C entry point for host based unit test execution.
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockDxe.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockDxe.c
index b85f08c..88984c3 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockDxe.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockDxe.c
@@ -42,11 +42,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
EFI_STATUS
SetVariableCheckHandlerMor (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
//
@@ -110,38 +110,43 @@ MorLockInitAtEndOfDxe (
VOID
)
{
- EFI_STATUS Status;
- EDKII_VARIABLE_POLICY_PROTOCOL *VariablePolicy;
+ EFI_STATUS Status;
+ EDKII_VARIABLE_POLICY_PROTOCOL *VariablePolicy;
// First, we obviously need to locate the VariablePolicy protocol.
- Status = gBS->LocateProtocol( &gEdkiiVariablePolicyProtocolGuid, NULL, (VOID**)&VariablePolicy );
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Could not locate VariablePolicy protocol! %r\n", __FUNCTION__, Status ));
+ Status = gBS->LocateProtocol (&gEdkiiVariablePolicyProtocolGuid, NULL, (VOID **)&VariablePolicy);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Could not locate VariablePolicy protocol! %r\n", __FUNCTION__, Status));
return;
}
// If we're successful, go ahead and set the policies to protect the target variables.
- Status = RegisterBasicVariablePolicy( VariablePolicy,
- &gEfiMemoryOverwriteRequestControlLockGuid,
- MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
- VARIABLE_POLICY_NO_MIN_SIZE,
- VARIABLE_POLICY_NO_MAX_SIZE,
- VARIABLE_POLICY_NO_MUST_ATTR,
- VARIABLE_POLICY_NO_CANT_ATTR,
- VARIABLE_POLICY_TYPE_LOCK_NOW );
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Could not lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, Status ));
+ Status = RegisterBasicVariablePolicy (
+ VariablePolicy,
+ &gEfiMemoryOverwriteRequestControlLockGuid,
+ MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
+ VARIABLE_POLICY_NO_MIN_SIZE,
+ VARIABLE_POLICY_NO_MAX_SIZE,
+ VARIABLE_POLICY_NO_MUST_ATTR,
+ VARIABLE_POLICY_NO_CANT_ATTR,
+ VARIABLE_POLICY_TYPE_LOCK_NOW
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Could not lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, Status));
}
- Status = RegisterBasicVariablePolicy( VariablePolicy,
- &gEfiMemoryOverwriteControlDataGuid,
- MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
- VARIABLE_POLICY_NO_MIN_SIZE,
- VARIABLE_POLICY_NO_MAX_SIZE,
- VARIABLE_POLICY_NO_MUST_ATTR,
- VARIABLE_POLICY_NO_CANT_ATTR,
- VARIABLE_POLICY_TYPE_LOCK_NOW );
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Could not lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, Status ));
+
+ Status = RegisterBasicVariablePolicy (
+ VariablePolicy,
+ &gEfiMemoryOverwriteControlDataGuid,
+ MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
+ VARIABLE_POLICY_NO_MIN_SIZE,
+ VARIABLE_POLICY_NO_MAX_SIZE,
+ VARIABLE_POLICY_NO_MUST_ATTR,
+ VARIABLE_POLICY_NO_CANT_ATTR,
+ VARIABLE_POLICY_TYPE_LOCK_NOW
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Could not lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, Status));
}
return;
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c
index ee37942..296afd2 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c
@@ -23,34 +23,34 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/VariablePolicyLib.h>
typedef struct {
- CHAR16 *VariableName;
- EFI_GUID *VendorGuid;
+ CHAR16 *VariableName;
+ EFI_GUID *VendorGuid;
} VARIABLE_TYPE;
VARIABLE_TYPE mMorVariableType[] = {
- {MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, &gEfiMemoryOverwriteControlDataGuid},
- {MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, &gEfiMemoryOverwriteRequestControlLockGuid},
+ { MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, &gEfiMemoryOverwriteControlDataGuid },
+ { MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, &gEfiMemoryOverwriteRequestControlLockGuid },
};
-BOOLEAN mMorPassThru = FALSE;
+BOOLEAN mMorPassThru = FALSE;
-#define MOR_LOCK_DATA_UNLOCKED 0x0
-#define MOR_LOCK_DATA_LOCKED_WITHOUT_KEY 0x1
-#define MOR_LOCK_DATA_LOCKED_WITH_KEY 0x2
+#define MOR_LOCK_DATA_UNLOCKED 0x0
+#define MOR_LOCK_DATA_LOCKED_WITHOUT_KEY 0x1
+#define MOR_LOCK_DATA_LOCKED_WITH_KEY 0x2
#define MOR_LOCK_V1_SIZE 1
#define MOR_LOCK_V2_KEY_SIZE 8
typedef enum {
MorLockStateUnlocked = 0,
- MorLockStateLocked = 1,
+ MorLockStateLocked = 1,
} MOR_LOCK_STATE;
BOOLEAN mMorLockInitializationRequired = FALSE;
UINT8 mMorLockKey[MOR_LOCK_V2_KEY_SIZE];
BOOLEAN mMorLockKeyEmpty = TRUE;
BOOLEAN mMorLockPassThru = FALSE;
-MOR_LOCK_STATE mMorLockState = MorLockStateUnlocked;
+MOR_LOCK_STATE mMorLockState = MorLockStateUnlocked;
/**
Returns if this is MOR related variable.
@@ -63,18 +63,20 @@ MOR_LOCK_STATE mMorLockState = MorLockStateUnlocked;
**/
BOOLEAN
IsAnyMorVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
- UINTN Index;
+ UINTN Index;
- for (Index = 0; Index < sizeof(mMorVariableType)/sizeof(mMorVariableType[0]); Index++) {
+ for (Index = 0; Index < sizeof (mMorVariableType)/sizeof (mMorVariableType[0]); Index++) {
if ((StrCmp (VariableName, mMorVariableType[Index].VariableName) == 0) &&
- (CompareGuid (VendorGuid, mMorVariableType[Index].VendorGuid))) {
+ (CompareGuid (VendorGuid, mMorVariableType[Index].VendorGuid)))
+ {
return TRUE;
}
}
+
return FALSE;
}
@@ -89,14 +91,16 @@ IsAnyMorVariable (
**/
BOOLEAN
IsMorLockVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
if ((StrCmp (VariableName, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME) == 0) &&
- (CompareGuid (VendorGuid, &gEfiMemoryOverwriteRequestControlLockGuid))) {
+ (CompareGuid (VendorGuid, &gEfiMemoryOverwriteRequestControlLockGuid)))
+ {
return TRUE;
}
+
return FALSE;
}
@@ -127,13 +131,13 @@ SetMorLockVariable (
EFI_STATUS Status;
mMorLockPassThru = TRUE;
- Status = VariableServiceSetVariable (
- MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
- &gEfiMemoryOverwriteRequestControlLockGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
- sizeof(Data),
- &Data
- );
+ Status = VariableServiceSetVariable (
+ MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
+ &gEfiMemoryOverwriteRequestControlLockGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
+ sizeof (Data),
+ &Data
+ );
mMorLockPassThru = FALSE;
return Status;
}
@@ -158,11 +162,11 @@ SetMorLockVariable (
**/
EFI_STATUS
SetVariableCheckHandlerMorLock (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
EFI_STATUS Status;
@@ -170,7 +174,7 @@ SetVariableCheckHandlerMorLock (
//
// Basic Check
//
- if (Attributes == 0 || DataSize == 0 || Data == NULL) {
+ if ((Attributes == 0) || (DataSize == 0) || (Data == NULL)) {
//
// Permit deletion for passthru request, deny it otherwise.
//
@@ -178,7 +182,8 @@ SetVariableCheckHandlerMorLock (
}
if ((Attributes != (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)) ||
- ((DataSize != MOR_LOCK_V1_SIZE) && (DataSize != MOR_LOCK_V2_KEY_SIZE))) {
+ ((DataSize != MOR_LOCK_V1_SIZE) && (DataSize != MOR_LOCK_V2_KEY_SIZE)))
+ {
return EFI_INVALID_PARAMETER;
}
@@ -245,7 +250,7 @@ SetVariableCheckHandlerMorLock (
// Need set here because the data value on flash is different
//
Status = SetMorLockVariable (MOR_LOCK_DATA_LOCKED_WITH_KEY);
- if (EFI_ERROR(Status)) {
+ if (EFI_ERROR (Status)) {
//
// SetVar fail, do not provision the key
//
@@ -273,6 +278,7 @@ SetVariableCheckHandlerMorLock (
if (mMorLockKeyEmpty || (DataSize != MOR_LOCK_V2_KEY_SIZE)) {
return EFI_ACCESS_DENIED;
}
+
if ((CompareMem (Data, mMorLockKey, MOR_LOCK_V2_KEY_SIZE) == 0)) {
//
// Key match - unlock
@@ -291,9 +297,9 @@ SetVariableCheckHandlerMorLock (
//
// Unlock Success
//
- mMorLockState = MorLockStateUnlocked;
+ mMorLockState = MorLockStateUnlocked;
mMorLockKeyEmpty = TRUE;
- ZeroMem (mMorLockKey, sizeof(mMorLockKey));
+ ZeroMem (mMorLockKey, sizeof (mMorLockKey));
//
// return EFI_ALREADY_STARTED to skip variable set.
//
@@ -303,9 +309,9 @@ SetVariableCheckHandlerMorLock (
//
// Key mismatch - Prevent Dictionary Attack
//
- mMorLockState = MorLockStateLocked;
+ mMorLockState = MorLockStateLocked;
mMorLockKeyEmpty = TRUE;
- ZeroMem (mMorLockKey, sizeof(mMorLockKey));
+ ZeroMem (mMorLockKey, sizeof (mMorLockKey));
return EFI_ACCESS_DENIED;
}
}
@@ -332,11 +338,11 @@ SetVariableCheckHandlerMorLock (
**/
EFI_STATUS
SetVariableCheckHandlerMor (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
//
@@ -347,7 +353,7 @@ SetVariableCheckHandlerMor (
}
// Permit deletion when policy is disabled.
- if (!IsVariablePolicyEnabled() && ((Attributes == 0) || (DataSize == 0))) {
+ if (!IsVariablePolicyEnabled () && ((Attributes == 0) || (DataSize == 0))) {
return EFI_SUCCESS;
}
@@ -379,16 +385,19 @@ SetVariableCheckHandlerMor (
// Basic Check
//
if ((Attributes != (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)) ||
- (DataSize != sizeof(UINT8)) ||
- (Data == NULL)) {
+ (DataSize != sizeof (UINT8)) ||
+ (Data == NULL))
+ {
return EFI_INVALID_PARAMETER;
}
+
if (mMorLockState == MorLockStateLocked) {
//
// If lock, deny access
//
return EFI_ACCESS_DENIED;
}
+
//
// grant access
//
@@ -420,10 +429,10 @@ MorLockInitAtEndOfDxe (
VOID
)
{
- UINTN MorSize;
- EFI_STATUS MorStatus;
- EFI_STATUS Status;
- VARIABLE_POLICY_ENTRY *NewPolicy;
+ UINTN MorSize;
+ EFI_STATUS MorStatus;
+ EFI_STATUS Status;
+ VARIABLE_POLICY_ENTRY *NewPolicy;
if (!mMorLockInitializationRequired) {
//
@@ -437,7 +446,7 @@ MorLockInitAtEndOfDxe (
//
// Check if the MOR variable exists.
//
- MorSize = 0;
+ MorSize = 0;
MorStatus = VariableServiceGetVariable (
MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
&gEfiMemoryOverwriteControlDataGuid,
@@ -497,23 +506,27 @@ MorLockInitAtEndOfDxe (
// Lock the variable so that no other module may create it.
//
NewPolicy = NULL;
- Status = CreateBasicVariablePolicy( &gEfiMemoryOverwriteControlDataGuid,
- MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
- VARIABLE_POLICY_NO_MIN_SIZE,
- VARIABLE_POLICY_NO_MAX_SIZE,
- VARIABLE_POLICY_NO_MUST_ATTR,
- VARIABLE_POLICY_NO_CANT_ATTR,
- VARIABLE_POLICY_TYPE_LOCK_NOW,
- &NewPolicy );
- if (!EFI_ERROR( Status )) {
- Status = RegisterVariablePolicy( NewPolicy );
+ Status = CreateBasicVariablePolicy (
+ &gEfiMemoryOverwriteControlDataGuid,
+ MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
+ VARIABLE_POLICY_NO_MIN_SIZE,
+ VARIABLE_POLICY_NO_MAX_SIZE,
+ VARIABLE_POLICY_NO_MUST_ATTR,
+ VARIABLE_POLICY_NO_CANT_ATTR,
+ VARIABLE_POLICY_TYPE_LOCK_NOW,
+ &NewPolicy
+ );
+ if (!EFI_ERROR (Status)) {
+ Status = RegisterVariablePolicy (NewPolicy);
}
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, Status ));
- ASSERT_EFI_ERROR( Status );
+
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, Status));
+ ASSERT_EFI_ERROR (Status);
}
+
if (NewPolicy != NULL) {
- FreePool( NewPolicy );
+ FreePool (NewPolicy);
}
//
@@ -531,22 +544,26 @@ MorLockInitAtEndOfDxe (
mMorLockPassThru = FALSE;
NewPolicy = NULL;
- Status = CreateBasicVariablePolicy( &gEfiMemoryOverwriteRequestControlLockGuid,
- MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
- VARIABLE_POLICY_NO_MIN_SIZE,
- VARIABLE_POLICY_NO_MAX_SIZE,
- VARIABLE_POLICY_NO_MUST_ATTR,
- VARIABLE_POLICY_NO_CANT_ATTR,
- VARIABLE_POLICY_TYPE_LOCK_NOW,
- &NewPolicy );
- if (!EFI_ERROR( Status )) {
- Status = RegisterVariablePolicy( NewPolicy );
+ Status = CreateBasicVariablePolicy (
+ &gEfiMemoryOverwriteRequestControlLockGuid,
+ MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
+ VARIABLE_POLICY_NO_MIN_SIZE,
+ VARIABLE_POLICY_NO_MAX_SIZE,
+ VARIABLE_POLICY_NO_MUST_ATTR,
+ VARIABLE_POLICY_NO_CANT_ATTR,
+ VARIABLE_POLICY_TYPE_LOCK_NOW,
+ &NewPolicy
+ );
+ if (!EFI_ERROR (Status)) {
+ Status = RegisterVariablePolicy (NewPolicy);
}
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, Status ));
- ASSERT_EFI_ERROR( Status );
+
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, Status));
+ ASSERT_EFI_ERROR (Status);
}
+
if (NewPolicy != NULL) {
- FreePool( NewPolicy );
+ FreePool (NewPolicy);
}
}
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c
index 486d85b..a94b0b0 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VarCheck.c
@@ -27,10 +27,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
VarCheckRegisterSetVariableCheckHandler (
- IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
+ IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
Status = VarCheckLibRegisterSetVariableCheckHandler (Handler);
@@ -57,12 +57,12 @@ VarCheckRegisterSetVariableCheckHandler (
EFI_STATUS
EFIAPI
VarCheckVariablePropertySet (
- IN CHAR16 *Name,
- IN EFI_GUID *Guid,
- IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
+ IN CHAR16 *Name,
+ IN EFI_GUID *Guid,
+ IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
Status = VarCheckLibVariablePropertySet (Name, Guid, VariableProperty);
@@ -86,12 +86,12 @@ VarCheckVariablePropertySet (
EFI_STATUS
EFIAPI
VarCheckVariablePropertyGet (
- IN CHAR16 *Name,
- IN EFI_GUID *Guid,
- OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
+ IN CHAR16 *Name,
+ IN EFI_GUID *Guid,
+ OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
Status = VarCheckLibVariablePropertyGet (Name, Guid, VariableProperty);
@@ -99,4 +99,3 @@ VarCheckVariablePropertyGet (
return Status;
}
-
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
index adb3e97..9722a94 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
@@ -35,35 +35,35 @@ VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
/// Define a memory cache that improves the search performance for a variable.
/// For EmuNvMode == TRUE, it will be equal to NonVolatileVariableBase.
///
-VARIABLE_STORE_HEADER *mNvVariableCache = NULL;
+VARIABLE_STORE_HEADER *mNvVariableCache = NULL;
///
/// Memory cache of Fv Header.
///
-EFI_FIRMWARE_VOLUME_HEADER *mNvFvHeaderCache = NULL;
+EFI_FIRMWARE_VOLUME_HEADER *mNvFvHeaderCache = NULL;
///
/// The memory entry used for variable statistics data.
///
-VARIABLE_INFO_ENTRY *gVariableInfo = NULL;
+VARIABLE_INFO_ENTRY *gVariableInfo = NULL;
///
/// The flag to indicate whether the platform has left the DXE phase of execution.
///
-BOOLEAN mEndOfDxe = FALSE;
+BOOLEAN mEndOfDxe = FALSE;
///
/// It indicates the var check request source.
/// In the implementation, DXE is regarded as untrusted, and SMM is trusted.
///
-VAR_CHECK_REQUEST_SOURCE mRequestSource = VarCheckFromUntrusted;
+VAR_CHECK_REQUEST_SOURCE mRequestSource = VarCheckFromUntrusted;
//
// It will record the current boot error flag before EndOfDxe.
//
-VAR_ERROR_FLAG mCurrentBootVarErrFlag = VAR_ERROR_FLAG_NO_ERROR;
+VAR_ERROR_FLAG mCurrentBootVarErrFlag = VAR_ERROR_FLAG_NO_ERROR;
-VARIABLE_ENTRY_PROPERTY mVariableEntryProperty[] = {
+VARIABLE_ENTRY_PROPERTY mVariableEntryProperty[] = {
{
&gEdkiiVarErrorFlagGuid,
VAR_ERROR_FLAG_NAME,
@@ -77,7 +77,7 @@ VARIABLE_ENTRY_PROPERTY mVariableEntryProperty[] = {
},
};
-AUTH_VAR_LIB_CONTEXT_IN mAuthContextIn = {
+AUTH_VAR_LIB_CONTEXT_IN mAuthContextIn = {
AUTH_VAR_LIB_CONTEXT_IN_STRUCT_VERSION,
//
// StructSize, TO BE FILLED
@@ -95,7 +95,7 @@ AUTH_VAR_LIB_CONTEXT_IN mAuthContextIn = {
VariableExLibAtRuntime,
};
-AUTH_VAR_LIB_CONTEXT_OUT mAuthContextOut;
+AUTH_VAR_LIB_CONTEXT_OUT mAuthContextOut;
/**
@@ -129,21 +129,21 @@ UpdateVariableStore (
IN UINT8 *Buffer
)
{
- EFI_FV_BLOCK_MAP_ENTRY *PtrBlockMapEntry;
- UINTN BlockIndex2;
- UINTN LinearOffset;
- UINTN CurrWriteSize;
- UINTN CurrWritePtr;
- UINT8 *CurrBuffer;
- EFI_LBA LbaNumber;
- UINTN Size;
- VARIABLE_STORE_HEADER *VolatileBase;
- EFI_PHYSICAL_ADDRESS FvVolHdr;
- EFI_PHYSICAL_ADDRESS DataPtr;
- EFI_STATUS Status;
+ EFI_FV_BLOCK_MAP_ENTRY *PtrBlockMapEntry;
+ UINTN BlockIndex2;
+ UINTN LinearOffset;
+ UINTN CurrWriteSize;
+ UINTN CurrWritePtr;
+ UINT8 *CurrBuffer;
+ EFI_LBA LbaNumber;
+ UINTN Size;
+ VARIABLE_STORE_HEADER *VolatileBase;
+ EFI_PHYSICAL_ADDRESS FvVolHdr;
+ EFI_PHYSICAL_ADDRESS DataPtr;
+ EFI_STATUS Status;
- FvVolHdr = 0;
- DataPtr = DataPtrIndex;
+ FvVolHdr = 0;
+ DataPtr = DataPtrIndex;
//
// Check if the Data is Volatile.
@@ -152,7 +152,8 @@ UpdateVariableStore (
if (Fvb == NULL) {
return EFI_UNSUPPORTED;
}
- Status = Fvb->GetPhysicalAddress(Fvb, &FvVolHdr);
+
+ Status = Fvb->GetPhysicalAddress (Fvb, &FvVolHdr);
ASSERT_EFI_ERROR (Status);
//
@@ -172,12 +173,12 @@ UpdateVariableStore (
// written.
//
if (Volatile) {
- VolatileBase = (VARIABLE_STORE_HEADER *) ((UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase);
+ VolatileBase = (VARIABLE_STORE_HEADER *)((UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase);
if (SetByIndex) {
DataPtr += mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
}
- if ((DataPtr + DataSize) > ((UINTN) VolatileBase + VolatileBase->Size)) {
+ if ((DataPtr + DataSize) > ((UINTN)VolatileBase + VolatileBase->Size)) {
return EFI_OUT_OF_RESOURCES;
}
} else {
@@ -185,10 +186,10 @@ UpdateVariableStore (
// Emulated non-volatile variable mode.
//
if (SetByIndex) {
- DataPtr += (UINTN) mNvVariableCache;
+ DataPtr += (UINTN)mNvVariableCache;
}
- if ((DataPtr + DataSize) > ((UINTN) mNvVariableCache + mNvVariableCache->Size)) {
+ if ((DataPtr + DataSize) > ((UINTN)mNvVariableCache + mNvVariableCache->Size)) {
return EFI_OUT_OF_RESOURCES;
}
}
@@ -203,8 +204,8 @@ UpdateVariableStore (
//
// If we are here we are dealing with Non-Volatile Variables.
//
- LinearOffset = (UINTN) FvVolHdr;
- CurrWritePtr = (UINTN) DataPtr;
+ LinearOffset = (UINTN)FvVolHdr;
+ CurrWritePtr = (UINTN)DataPtr;
CurrWriteSize = DataSize;
CurrBuffer = Buffer;
LbaNumber = 0;
@@ -222,22 +223,22 @@ UpdateVariableStore (
if ((CurrWritePtr >= LinearOffset) && (CurrWritePtr < LinearOffset + PtrBlockMapEntry->Length)) {
if ((CurrWritePtr + CurrWriteSize) <= (LinearOffset + PtrBlockMapEntry->Length)) {
Status = Fvb->Write (
- Fvb,
- LbaNumber,
- (UINTN) (CurrWritePtr - LinearOffset),
- &CurrWriteSize,
- CurrBuffer
- );
+ Fvb,
+ LbaNumber,
+ (UINTN)(CurrWritePtr - LinearOffset),
+ &CurrWriteSize,
+ CurrBuffer
+ );
return Status;
} else {
- Size = (UINT32) (LinearOffset + PtrBlockMapEntry->Length - CurrWritePtr);
+ Size = (UINT32)(LinearOffset + PtrBlockMapEntry->Length - CurrWritePtr);
Status = Fvb->Write (
- Fvb,
- LbaNumber,
- (UINTN) (CurrWritePtr - LinearOffset),
- &Size,
- CurrBuffer
- );
+ Fvb,
+ LbaNumber,
+ (UINTN)(CurrWritePtr - LinearOffset),
+ &Size,
+ CurrBuffer
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -268,29 +269,30 @@ UpdateVariableStore (
**/
VOID
RecordVarErrorFlag (
- IN VAR_ERROR_FLAG Flag,
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN VariableSize
+ IN VAR_ERROR_FLAG Flag,
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN VariableSize
)
{
- EFI_STATUS Status;
- VARIABLE_POINTER_TRACK Variable;
- VAR_ERROR_FLAG *VarErrFlag;
- VAR_ERROR_FLAG TempFlag;
+ EFI_STATUS Status;
+ VARIABLE_POINTER_TRACK Variable;
+ VAR_ERROR_FLAG *VarErrFlag;
+ VAR_ERROR_FLAG TempFlag;
DEBUG_CODE_BEGIN ();
- DEBUG ((DEBUG_ERROR, "RecordVarErrorFlag (0x%02x) %s:%g - 0x%08x - 0x%x\n", Flag, VariableName, VendorGuid, Attributes, VariableSize));
- if (Flag == VAR_ERROR_FLAG_SYSTEM_ERROR) {
- if (AtRuntime ()) {
- DEBUG ((DEBUG_ERROR, "CommonRuntimeVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonRuntimeVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize));
- } else {
- DEBUG ((DEBUG_ERROR, "CommonVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize));
- }
+ DEBUG ((DEBUG_ERROR, "RecordVarErrorFlag (0x%02x) %s:%g - 0x%08x - 0x%x\n", Flag, VariableName, VendorGuid, Attributes, VariableSize));
+ if (Flag == VAR_ERROR_FLAG_SYSTEM_ERROR) {
+ if (AtRuntime ()) {
+ DEBUG ((DEBUG_ERROR, "CommonRuntimeVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonRuntimeVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize));
} else {
- DEBUG ((DEBUG_ERROR, "CommonMaxUserVariableSpace = 0x%x - CommonUserVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonMaxUserVariableSpace, mVariableModuleGlobal->CommonUserVariableTotalSize));
+ DEBUG ((DEBUG_ERROR, "CommonVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize));
}
+ } else {
+ DEBUG ((DEBUG_ERROR, "CommonMaxUserVariableSpace = 0x%x - CommonUserVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonMaxUserVariableSpace, mVariableModuleGlobal->CommonUserVariableTotalSize));
+ }
+
DEBUG_CODE_END ();
if (!mEndOfDxe) {
@@ -315,18 +317,19 @@ RecordVarErrorFlag (
FALSE
);
if (!EFI_ERROR (Status)) {
- VarErrFlag = (VAR_ERROR_FLAG *) GetVariableDataPtr (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- TempFlag = *VarErrFlag;
- TempFlag &= Flag;
+ VarErrFlag = (VAR_ERROR_FLAG *)GetVariableDataPtr (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ TempFlag = *VarErrFlag;
+ TempFlag &= Flag;
if (TempFlag == *VarErrFlag) {
return;
}
+
Status = UpdateVariableStore (
&mVariableModuleGlobal->VariableGlobal,
FALSE,
FALSE,
mVariableModuleGlobal->FvbInstance,
- (UINTN) VarErrFlag - (UINTN) mNvVariableCache + (UINTN) mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase,
+ (UINTN)VarErrFlag - (UINTN)mNvVariableCache + (UINTN)mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase,
sizeof (TempFlag),
&TempFlag
);
@@ -335,11 +338,11 @@ RecordVarErrorFlag (
// Update the data in NV cache.
//
*VarErrFlag = TempFlag;
- Status = SynchronizeRuntimeVariableCache (
- &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache,
- 0,
- mNvVariableCache->Size
- );
+ Status = SynchronizeRuntimeVariableCache (
+ &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache,
+ 0,
+ mNvVariableCache->Size
+ );
ASSERT_EFI_ERROR (Status);
}
}
@@ -359,10 +362,10 @@ InitializeVarErrorFlag (
VOID
)
{
- EFI_STATUS Status;
- VARIABLE_POINTER_TRACK Variable;
- VAR_ERROR_FLAG Flag;
- VAR_ERROR_FLAG VarErrFlag;
+ EFI_STATUS Status;
+ VARIABLE_POINTER_TRACK Variable;
+ VAR_ERROR_FLAG Flag;
+ VAR_ERROR_FLAG VarErrFlag;
if (!mEndOfDxe) {
return;
@@ -379,7 +382,7 @@ InitializeVarErrorFlag (
FALSE
);
if (!EFI_ERROR (Status)) {
- VarErrFlag = *((VAR_ERROR_FLAG *) GetVariableDataPtr (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat));
+ VarErrFlag = *((VAR_ERROR_FLAG *)GetVariableDataPtr (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat));
if (VarErrFlag == Flag) {
return;
}
@@ -409,10 +412,10 @@ InitializeVarErrorFlag (
**/
BOOLEAN
IsUserVariable (
- IN VARIABLE_HEADER *Variable
+ IN VARIABLE_HEADER *Variable
)
{
- VAR_CHECK_VARIABLE_PROPERTY Property;
+ VAR_CHECK_VARIABLE_PROPERTY Property;
//
// Only after End Of Dxe, the variables belong to system variable are fixed.
@@ -424,10 +427,12 @@ IsUserVariable (
GetVariableNamePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
GetVendorGuidPtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
&Property
- ) == EFI_NOT_FOUND) {
+ ) == EFI_NOT_FOUND)
+ {
return TRUE;
}
}
+
return FALSE;
}
@@ -440,10 +445,10 @@ CalculateCommonUserVariableTotalSize (
VOID
)
{
- VARIABLE_HEADER *Variable;
- VARIABLE_HEADER *NextVariable;
- UINTN VariableSize;
- VAR_CHECK_VARIABLE_PROPERTY Property;
+ VARIABLE_HEADER *Variable;
+ VARIABLE_HEADER *NextVariable;
+ UINTN VariableSize;
+ VAR_CHECK_VARIABLE_PROPERTY Property;
//
// Only after End Of Dxe, the variables belong to system variable are fixed.
@@ -454,13 +459,14 @@ CalculateCommonUserVariableTotalSize (
Variable = GetStartPointer (mNvVariableCache);
while (IsValidVariableHeader (Variable, GetEndPointer (mNvVariableCache))) {
NextVariable = GetNextVariablePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;
+ VariableSize = (UINTN)NextVariable - (UINTN)Variable;
if ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) != EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
if (VarCheckLibVariablePropertyGet (
GetVariableNamePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
GetVendorGuidPtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
&Property
- ) == EFI_NOT_FOUND) {
+ ) == EFI_NOT_FOUND)
+ {
//
// No property, it is user variable.
//
@@ -509,49 +515,49 @@ InitializeVariableQuota (
**/
EFI_STATUS
Reclaim (
- IN EFI_PHYSICAL_ADDRESS VariableBase,
- OUT UINTN *LastVariableOffset,
- IN BOOLEAN IsVolatile,
- IN OUT VARIABLE_POINTER_TRACK *UpdatingPtrTrack,
- IN VARIABLE_HEADER *NewVariable,
- IN UINTN NewVariableSize
+ IN EFI_PHYSICAL_ADDRESS VariableBase,
+ OUT UINTN *LastVariableOffset,
+ IN BOOLEAN IsVolatile,
+ IN OUT VARIABLE_POINTER_TRACK *UpdatingPtrTrack,
+ IN VARIABLE_HEADER *NewVariable,
+ IN UINTN NewVariableSize
)
{
- VARIABLE_HEADER *Variable;
- VARIABLE_HEADER *AddedVariable;
- VARIABLE_HEADER *NextVariable;
- VARIABLE_HEADER *NextAddedVariable;
- VARIABLE_STORE_HEADER *VariableStoreHeader;
- UINT8 *ValidBuffer;
- UINTN MaximumBufferSize;
- UINTN VariableSize;
- UINTN NameSize;
- UINT8 *CurrPtr;
- VOID *Point0;
- VOID *Point1;
- BOOLEAN FoundAdded;
- EFI_STATUS Status;
- EFI_STATUS DoneStatus;
- UINTN CommonVariableTotalSize;
- UINTN CommonUserVariableTotalSize;
- UINTN HwErrVariableTotalSize;
- VARIABLE_HEADER *UpdatingVariable;
- VARIABLE_HEADER *UpdatingInDeletedTransition;
- BOOLEAN AuthFormat;
-
- AuthFormat = mVariableModuleGlobal->VariableGlobal.AuthFormat;
- UpdatingVariable = NULL;
+ VARIABLE_HEADER *Variable;
+ VARIABLE_HEADER *AddedVariable;
+ VARIABLE_HEADER *NextVariable;
+ VARIABLE_HEADER *NextAddedVariable;
+ VARIABLE_STORE_HEADER *VariableStoreHeader;
+ UINT8 *ValidBuffer;
+ UINTN MaximumBufferSize;
+ UINTN VariableSize;
+ UINTN NameSize;
+ UINT8 *CurrPtr;
+ VOID *Point0;
+ VOID *Point1;
+ BOOLEAN FoundAdded;
+ EFI_STATUS Status;
+ EFI_STATUS DoneStatus;
+ UINTN CommonVariableTotalSize;
+ UINTN CommonUserVariableTotalSize;
+ UINTN HwErrVariableTotalSize;
+ VARIABLE_HEADER *UpdatingVariable;
+ VARIABLE_HEADER *UpdatingInDeletedTransition;
+ BOOLEAN AuthFormat;
+
+ AuthFormat = mVariableModuleGlobal->VariableGlobal.AuthFormat;
+ UpdatingVariable = NULL;
UpdatingInDeletedTransition = NULL;
if (UpdatingPtrTrack != NULL) {
- UpdatingVariable = UpdatingPtrTrack->CurrPtr;
+ UpdatingVariable = UpdatingPtrTrack->CurrPtr;
UpdatingInDeletedTransition = UpdatingPtrTrack->InDeletedTransitionPtr;
}
- VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) VariableBase);
+ VariableStoreHeader = (VARIABLE_STORE_HEADER *)((UINTN)VariableBase);
- CommonVariableTotalSize = 0;
+ CommonVariableTotalSize = 0;
CommonUserVariableTotalSize = 0;
- HwErrVariableTotalSize = 0;
+ HwErrVariableTotalSize = 0;
if (IsVolatile || mVariableModuleGlobal->VariableGlobal.EmuNvMode) {
//
@@ -562,11 +568,12 @@ Reclaim (
while (IsValidVariableHeader (Variable, GetEndPointer (VariableStoreHeader))) {
NextVariable = GetNextVariablePtr (Variable, AuthFormat);
- if ((Variable->State == VAR_ADDED || Variable->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) &&
- Variable != UpdatingVariable &&
- Variable != UpdatingInDeletedTransition
- ) {
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;
+ if (((Variable->State == VAR_ADDED) || (Variable->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED))) &&
+ (Variable != UpdatingVariable) &&
+ (Variable != UpdatingInDeletedTransition)
+ )
+ {
+ VariableSize = (UINTN)NextVariable - (UINTN)Variable;
MaximumBufferSize += VariableSize;
}
@@ -585,7 +592,7 @@ Reclaim (
// end of the variable buffer.
//
MaximumBufferSize += 1;
- ValidBuffer = AllocatePool (MaximumBufferSize);
+ ValidBuffer = AllocatePool (MaximumBufferSize);
if (ValidBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -595,7 +602,7 @@ Reclaim (
// as the buffer to reduce SMRAM consumption for SMM variable driver.
//
MaximumBufferSize = mNvVariableCache->Size;
- ValidBuffer = (UINT8 *) mNvVariableCache;
+ ValidBuffer = (UINT8 *)mNvVariableCache;
}
SetMem (ValidBuffer, MaximumBufferSize, 0xff);
@@ -604,7 +611,7 @@ Reclaim (
// Copy variable store header.
//
CopyMem (ValidBuffer, VariableStoreHeader, sizeof (VARIABLE_STORE_HEADER));
- CurrPtr = (UINT8 *) GetStartPointer ((VARIABLE_STORE_HEADER *) ValidBuffer);
+ CurrPtr = (UINT8 *)GetStartPointer ((VARIABLE_STORE_HEADER *)ValidBuffer);
//
// Reinstall all ADDED variables as long as they are not identical to Updating Variable.
@@ -612,9 +619,9 @@ Reclaim (
Variable = GetStartPointer (VariableStoreHeader);
while (IsValidVariableHeader (Variable, GetEndPointer (VariableStoreHeader))) {
NextVariable = GetNextVariablePtr (Variable, AuthFormat);
- if (Variable != UpdatingVariable && Variable->State == VAR_ADDED) {
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;
- CopyMem (CurrPtr, (UINT8 *) Variable, VariableSize);
+ if ((Variable != UpdatingVariable) && (Variable->State == VAR_ADDED)) {
+ VariableSize = (UINTN)NextVariable - (UINTN)Variable;
+ CopyMem (CurrPtr, (UINT8 *)Variable, VariableSize);
CurrPtr += VariableSize;
if ((!IsVolatile) && ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD)) {
HwErrVariableTotalSize += VariableSize;
@@ -625,6 +632,7 @@ Reclaim (
}
}
}
+
Variable = NextVariable;
}
@@ -634,40 +642,42 @@ Reclaim (
Variable = GetStartPointer (VariableStoreHeader);
while (IsValidVariableHeader (Variable, GetEndPointer (VariableStoreHeader))) {
NextVariable = GetNextVariablePtr (Variable, AuthFormat);
- if (Variable != UpdatingVariable && Variable != UpdatingInDeletedTransition && Variable->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
-
+ if ((Variable != UpdatingVariable) && (Variable != UpdatingInDeletedTransition) && (Variable->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED))) {
//
// Buffer has cached all ADDED variable.
// Per IN_DELETED variable, we have to guarantee that
// no ADDED one in previous buffer.
//
- FoundAdded = FALSE;
- AddedVariable = GetStartPointer ((VARIABLE_STORE_HEADER *) ValidBuffer);
- while (IsValidVariableHeader (AddedVariable, GetEndPointer ((VARIABLE_STORE_HEADER *) ValidBuffer))) {
+ FoundAdded = FALSE;
+ AddedVariable = GetStartPointer ((VARIABLE_STORE_HEADER *)ValidBuffer);
+ while (IsValidVariableHeader (AddedVariable, GetEndPointer ((VARIABLE_STORE_HEADER *)ValidBuffer))) {
NextAddedVariable = GetNextVariablePtr (AddedVariable, AuthFormat);
- NameSize = NameSizeOfVariable (AddedVariable, AuthFormat);
+ NameSize = NameSizeOfVariable (AddedVariable, AuthFormat);
if (CompareGuid (
GetVendorGuidPtr (AddedVariable, AuthFormat),
GetVendorGuidPtr (Variable, AuthFormat)
- ) && NameSize == NameSizeOfVariable (Variable, AuthFormat)) {
- Point0 = (VOID *) GetVariableNamePtr (AddedVariable, AuthFormat);
- Point1 = (VOID *) GetVariableNamePtr (Variable, AuthFormat);
+ ) && (NameSize == NameSizeOfVariable (Variable, AuthFormat)))
+ {
+ Point0 = (VOID *)GetVariableNamePtr (AddedVariable, AuthFormat);
+ Point1 = (VOID *)GetVariableNamePtr (Variable, AuthFormat);
if (CompareMem (Point0, Point1, NameSize) == 0) {
FoundAdded = TRUE;
break;
}
}
+
AddedVariable = NextAddedVariable;
}
+
if (!FoundAdded) {
//
// Promote VAR_IN_DELETED_TRANSITION to VAR_ADDED.
//
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;
- CopyMem (CurrPtr, (UINT8 *) Variable, VariableSize);
- ((VARIABLE_HEADER *) CurrPtr)->State = VAR_ADDED;
- CurrPtr += VariableSize;
+ VariableSize = (UINTN)NextVariable - (UINTN)Variable;
+ CopyMem (CurrPtr, (UINT8 *)Variable, VariableSize);
+ ((VARIABLE_HEADER *)CurrPtr)->State = VAR_ADDED;
+ CurrPtr += VariableSize;
if ((!IsVolatile) && ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD)) {
HwErrVariableTotalSize += VariableSize;
} else if ((!IsVolatile) && ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) != EFI_VARIABLE_HARDWARE_ERROR_RECORD)) {
@@ -686,13 +696,14 @@ Reclaim (
// Install the new variable if it is not NULL.
//
if (NewVariable != NULL) {
- if (((UINTN) CurrPtr - (UINTN) ValidBuffer) + NewVariableSize > VariableStoreHeader->Size) {
+ if (((UINTN)CurrPtr - (UINTN)ValidBuffer) + NewVariableSize > VariableStoreHeader->Size) {
//
// No enough space to store the new variable.
//
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
if (!IsVolatile) {
if ((NewVariable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
HwErrVariableTotalSize += NewVariableSize;
@@ -702,9 +713,11 @@ Reclaim (
CommonUserVariableTotalSize += NewVariableSize;
}
}
+
if ((HwErrVariableTotalSize > PcdGet32 (PcdHwErrStorageSize)) ||
(CommonVariableTotalSize > mVariableModuleGlobal->CommonVariableSpace) ||
- (CommonUserVariableTotalSize > mVariableModuleGlobal->CommonMaxUserVariableSpace)) {
+ (CommonUserVariableTotalSize > mVariableModuleGlobal->CommonMaxUserVariableSpace))
+ {
//
// No enough space to store the new variable by NV or NV+HR attribute.
//
@@ -713,12 +726,13 @@ Reclaim (
}
}
- CopyMem (CurrPtr, (UINT8 *) NewVariable, NewVariableSize);
- ((VARIABLE_HEADER *) CurrPtr)->State = VAR_ADDED;
+ CopyMem (CurrPtr, (UINT8 *)NewVariable, NewVariableSize);
+ ((VARIABLE_HEADER *)CurrPtr)->State = VAR_ADDED;
if (UpdatingVariable != NULL) {
- UpdatingPtrTrack->CurrPtr = (VARIABLE_HEADER *)((UINTN)UpdatingPtrTrack->StartPtr + ((UINTN)CurrPtr - (UINTN)GetStartPointer ((VARIABLE_STORE_HEADER *) ValidBuffer)));
+ UpdatingPtrTrack->CurrPtr = (VARIABLE_HEADER *)((UINTN)UpdatingPtrTrack->StartPtr + ((UINTN)CurrPtr - (UINTN)GetStartPointer ((VARIABLE_STORE_HEADER *)ValidBuffer)));
UpdatingPtrTrack->InDeletedTransitionPtr = NULL;
}
+
CurrPtr += NewVariableSize;
}
@@ -726,39 +740,40 @@ Reclaim (
//
// If volatile/emulated non-volatile variable store, just copy valid buffer.
//
- SetMem ((UINT8 *) (UINTN) VariableBase, VariableStoreHeader->Size, 0xff);
- CopyMem ((UINT8 *) (UINTN) VariableBase, ValidBuffer, (UINTN) CurrPtr - (UINTN) ValidBuffer);
- *LastVariableOffset = (UINTN) CurrPtr - (UINTN) ValidBuffer;
+ SetMem ((UINT8 *)(UINTN)VariableBase, VariableStoreHeader->Size, 0xff);
+ CopyMem ((UINT8 *)(UINTN)VariableBase, ValidBuffer, (UINTN)CurrPtr - (UINTN)ValidBuffer);
+ *LastVariableOffset = (UINTN)CurrPtr - (UINTN)ValidBuffer;
if (!IsVolatile) {
//
// Emulated non-volatile variable mode.
//
- mVariableModuleGlobal->HwErrVariableTotalSize = HwErrVariableTotalSize;
- mVariableModuleGlobal->CommonVariableTotalSize = CommonVariableTotalSize;
+ mVariableModuleGlobal->HwErrVariableTotalSize = HwErrVariableTotalSize;
+ mVariableModuleGlobal->CommonVariableTotalSize = CommonVariableTotalSize;
mVariableModuleGlobal->CommonUserVariableTotalSize = CommonUserVariableTotalSize;
}
- Status = EFI_SUCCESS;
+
+ Status = EFI_SUCCESS;
} else {
//
// If non-volatile variable store, perform FTW here.
//
Status = FtwVariableSpace (
- VariableBase,
- (VARIABLE_STORE_HEADER *) ValidBuffer
- );
+ VariableBase,
+ (VARIABLE_STORE_HEADER *)ValidBuffer
+ );
if (!EFI_ERROR (Status)) {
- *LastVariableOffset = (UINTN) CurrPtr - (UINTN) ValidBuffer;
- mVariableModuleGlobal->HwErrVariableTotalSize = HwErrVariableTotalSize;
- mVariableModuleGlobal->CommonVariableTotalSize = CommonVariableTotalSize;
+ *LastVariableOffset = (UINTN)CurrPtr - (UINTN)ValidBuffer;
+ mVariableModuleGlobal->HwErrVariableTotalSize = HwErrVariableTotalSize;
+ mVariableModuleGlobal->CommonVariableTotalSize = CommonVariableTotalSize;
mVariableModuleGlobal->CommonUserVariableTotalSize = CommonUserVariableTotalSize;
} else {
- mVariableModuleGlobal->HwErrVariableTotalSize = 0;
- mVariableModuleGlobal->CommonVariableTotalSize = 0;
+ mVariableModuleGlobal->HwErrVariableTotalSize = 0;
+ mVariableModuleGlobal->CommonVariableTotalSize = 0;
mVariableModuleGlobal->CommonUserVariableTotalSize = 0;
- Variable = GetStartPointer ((VARIABLE_STORE_HEADER *)(UINTN)VariableBase);
+ Variable = GetStartPointer ((VARIABLE_STORE_HEADER *)(UINTN)VariableBase);
while (IsValidVariableHeader (Variable, GetEndPointer ((VARIABLE_STORE_HEADER *)(UINTN)VariableBase))) {
NextVariable = GetNextVariablePtr (Variable, AuthFormat);
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;
+ VariableSize = (UINTN)NextVariable - (UINTN)Variable;
if ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
mVariableModuleGlobal->HwErrVariableTotalSize += VariableSize;
} else if ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) != EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
@@ -770,7 +785,8 @@ Reclaim (
Variable = NextVariable;
}
- *LastVariableOffset = (UINTN) Variable - (UINTN) VariableBase;
+
+ *LastVariableOffset = (UINTN)Variable - (UINTN)VariableBase;
}
}
@@ -788,7 +804,7 @@ Done:
//
// For NV variable reclaim, we use mNvVariableCache as the buffer, so copy the data back.
//
- CopyMem (mNvVariableCache, (UINT8 *) (UINTN) VariableBase, VariableStoreHeader->Size);
+ CopyMem (mNvVariableCache, (UINT8 *)(UINTN)VariableBase, VariableStoreHeader->Size);
DoneStatus = SynchronizeRuntimeVariableCache (
&mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache,
0,
@@ -839,11 +855,11 @@ FindVariable (
IN BOOLEAN IgnoreRtCheck
)
{
- EFI_STATUS Status;
- VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
- VARIABLE_STORE_TYPE Type;
+ EFI_STATUS Status;
+ VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
+ VARIABLE_STORE_TYPE Type;
- if (VariableName[0] != 0 && VendorGuid == NULL) {
+ if ((VariableName[0] != 0) && (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -852,21 +868,21 @@ FindVariable (
// The index and attributes mapping must be kept in this order as RuntimeServiceGetNextVariableName
// make use of this mapping to implement search algorithm.
//
- VariableStoreHeader[VariableStoreTypeVolatile] = (VARIABLE_STORE_HEADER *) (UINTN) Global->VolatileVariableBase;
- VariableStoreHeader[VariableStoreTypeHob] = (VARIABLE_STORE_HEADER *) (UINTN) Global->HobVariableBase;
+ VariableStoreHeader[VariableStoreTypeVolatile] = (VARIABLE_STORE_HEADER *)(UINTN)Global->VolatileVariableBase;
+ VariableStoreHeader[VariableStoreTypeHob] = (VARIABLE_STORE_HEADER *)(UINTN)Global->HobVariableBase;
VariableStoreHeader[VariableStoreTypeNv] = mNvVariableCache;
//
// Find the variable by walk through HOB, volatile and non-volatile variable store.
//
- for (Type = (VARIABLE_STORE_TYPE) 0; Type < VariableStoreTypeMax; Type++) {
+ for (Type = (VARIABLE_STORE_TYPE)0; Type < VariableStoreTypeMax; Type++) {
if (VariableStoreHeader[Type] == NULL) {
continue;
}
PtrTrack->StartPtr = GetStartPointer (VariableStoreHeader[Type]);
- PtrTrack->EndPtr = GetEndPointer (VariableStoreHeader[Type]);
- PtrTrack->Volatile = (BOOLEAN) (Type == VariableStoreTypeVolatile);
+ PtrTrack->EndPtr = GetEndPointer (VariableStoreHeader[Type]);
+ PtrTrack->Volatile = (BOOLEAN)(Type == VariableStoreTypeVolatile);
Status = FindVariableEx (
VariableName,
@@ -879,6 +895,7 @@ FindVariable (
return Status;
}
}
+
return EFI_NOT_FOUND;
}
@@ -909,15 +926,15 @@ FindVariable (
**/
UINTN
-GetIndexFromSupportedLangCodes(
- IN CHAR8 *SupportedLang,
- IN CHAR8 *Lang,
- IN BOOLEAN Iso639Language
+GetIndexFromSupportedLangCodes (
+ IN CHAR8 *SupportedLang,
+ IN CHAR8 *Lang,
+ IN BOOLEAN Iso639Language
)
{
- UINTN Index;
- UINTN CompareLength;
- UINTN LanguageLength;
+ UINTN Index;
+ UINTN CompareLength;
+ UINTN LanguageLength;
if (Iso639Language) {
CompareLength = ISO_639_2_ENTRY_SIZE;
@@ -930,6 +947,7 @@ GetIndexFromSupportedLangCodes(
return Index;
}
}
+
ASSERT (FALSE);
return 0;
} else {
@@ -937,26 +955,32 @@ GetIndexFromSupportedLangCodes(
// Compare RFC4646 language code
//
Index = 0;
- for (LanguageLength = 0; Lang[LanguageLength] != '\0'; LanguageLength++);
+ for (LanguageLength = 0; Lang[LanguageLength] != '\0'; LanguageLength++) {
+ }
for (Index = 0; *SupportedLang != '\0'; Index++, SupportedLang += CompareLength) {
//
// Skip ';' characters in SupportedLang
//
- for (; *SupportedLang != '\0' && *SupportedLang == ';'; SupportedLang++);
+ for ( ; *SupportedLang != '\0' && *SupportedLang == ';'; SupportedLang++) {
+ }
+
//
// Determine the length of the next language code in SupportedLang
//
- for (CompareLength = 0; SupportedLang[CompareLength] != '\0' && SupportedLang[CompareLength] != ';'; CompareLength++);
+ for (CompareLength = 0; SupportedLang[CompareLength] != '\0' && SupportedLang[CompareLength] != ';'; CompareLength++) {
+ }
if ((CompareLength == LanguageLength) &&
- (AsciiStrnCmp (Lang, SupportedLang, CompareLength) == 0)) {
+ (AsciiStrnCmp (Lang, SupportedLang, CompareLength) == 0))
+ {
//
// Successfully find the index of Lang string in SupportedLang string.
//
return Index;
}
}
+
ASSERT (FALSE);
return 0;
}
@@ -990,14 +1014,14 @@ GetIndexFromSupportedLangCodes(
**/
CHAR8 *
GetLangFromSupportedLangCodes (
- IN CHAR8 *SupportedLang,
- IN UINTN Index,
- IN BOOLEAN Iso639Language
-)
+ IN CHAR8 *SupportedLang,
+ IN UINTN Index,
+ IN BOOLEAN Iso639Language
+ )
{
- UINTN SubIndex;
- UINTN CompareLength;
- CHAR8 *Supported;
+ UINTN SubIndex;
+ UINTN CompareLength;
+ CHAR8 *Supported;
SubIndex = 0;
Supported = SupportedLang;
@@ -1007,10 +1031,9 @@ GetLangFromSupportedLangCodes (
// This code will be invoked in RUNTIME, therefore there is not a memory allocate/free operation.
// In driver entry, it pre-allocates a runtime attribute memory to accommodate this string.
//
- CompareLength = ISO_639_2_ENTRY_SIZE;
+ CompareLength = ISO_639_2_ENTRY_SIZE;
mVariableModuleGlobal->Lang[CompareLength] = '\0';
return CopyMem (mVariableModuleGlobal->Lang, SupportedLang + Index * CompareLength, CompareLength);
-
} else {
while (TRUE) {
//
@@ -1019,14 +1042,16 @@ GetLangFromSupportedLangCodes (
for (CompareLength = 0; *Supported != ';' && *Supported != '\0'; CompareLength++) {
Supported++;
}
+
if ((*Supported == '\0') && (SubIndex != Index)) {
//
// Have completed the traverse, but not find corrsponding string.
// This case is not allowed to happen.
//
- ASSERT(FALSE);
+ ASSERT (FALSE);
return NULL;
}
+
if (SubIndex == Index) {
//
// According to the index of Lang string in SupportedLang string to get the language.
@@ -1036,12 +1061,14 @@ GetLangFromSupportedLangCodes (
mVariableModuleGlobal->PlatformLang[CompareLength] = '\0';
return CopyMem (mVariableModuleGlobal->PlatformLang, Supported - CompareLength, CompareLength);
}
+
SubIndex++;
//
// Skip ';' characters in Supported
//
- for (; *Supported != '\0' && *Supported == ';'; Supported++);
+ for ( ; *Supported != '\0' && *Supported == ';'; Supported++) {
+ }
}
}
}
@@ -1116,7 +1143,8 @@ VariableGetBestLanguage (
// If in RFC 4646 mode, then determine the length of the first RFC 4646 language code in Language
//
if (Iso639Language == 0) {
- for (LanguageLength = 0; Language[LanguageLength] != 0 && Language[LanguageLength] != ';'; LanguageLength++);
+ for (LanguageLength = 0; Language[LanguageLength] != 0 && Language[LanguageLength] != ';'; LanguageLength++) {
+ }
}
//
@@ -1134,11 +1162,15 @@ VariableGetBestLanguage (
//
// Skip ';' characters in Supported
//
- for (; *Supported != '\0' && *Supported == ';'; Supported++);
+ for ( ; *Supported != '\0' && *Supported == ';'; Supported++) {
+ }
+
//
// Determine the length of the next language code in Supported
//
- for (CompareLength = 0; Supported[CompareLength] != 0 && Supported[CompareLength] != ';'; CompareLength++);
+ for (CompareLength = 0; Supported[CompareLength] != 0 && Supported[CompareLength] != ';'; CompareLength++) {
+ }
+
//
// If Language is longer than the Supported, then skip to the next language
//
@@ -1146,13 +1178,14 @@ VariableGetBestLanguage (
continue;
}
}
+
//
// See if the first LanguageLength characters in Supported match Language
//
if (AsciiStrnCmp (Supported, Language, LanguageLength) == 0) {
VA_END (Args);
- Buffer = (Iso639Language != 0) ? mVariableModuleGlobal->Lang : mVariableModuleGlobal->PlatformLang;
+ Buffer = (Iso639Language != 0) ? mVariableModuleGlobal->Lang : mVariableModuleGlobal->PlatformLang;
Buffer[CompareLength] = '\0';
return CopyMem (Buffer, Supported, CompareLength);
}
@@ -1167,10 +1200,12 @@ VariableGetBestLanguage (
//
// If RFC 4646 mode, then trim Language from the right to the next '-' character
//
- for (LanguageLength--; LanguageLength > 0 && Language[LanguageLength] != '-'; LanguageLength--);
+ for (LanguageLength--; LanguageLength > 0 && Language[LanguageLength] != '-'; LanguageLength--) {
+ }
}
}
}
+
VA_END (Args);
//
@@ -1202,23 +1237,23 @@ VariableGetBestLanguage (
BOOLEAN
EFIAPI
CheckRemainingSpaceForConsistencyInternal (
- IN UINT32 Attributes,
- IN VA_LIST Marker
+ IN UINT32 Attributes,
+ IN VA_LIST Marker
)
{
- EFI_STATUS Status;
- VA_LIST Args;
- VARIABLE_ENTRY_CONSISTENCY *VariableEntry;
- UINT64 MaximumVariableStorageSize;
- UINT64 RemainingVariableStorageSize;
- UINT64 MaximumVariableSize;
- UINTN TotalNeededSize;
- UINTN OriginalVarSize;
- VARIABLE_STORE_HEADER *VariableStoreHeader;
- VARIABLE_POINTER_TRACK VariablePtrTrack;
- VARIABLE_HEADER *NextVariable;
- UINTN VarNameSize;
- UINTN VarDataSize;
+ EFI_STATUS Status;
+ VA_LIST Args;
+ VARIABLE_ENTRY_CONSISTENCY *VariableEntry;
+ UINT64 MaximumVariableStorageSize;
+ UINT64 RemainingVariableStorageSize;
+ UINT64 MaximumVariableSize;
+ UINTN TotalNeededSize;
+ UINTN OriginalVarSize;
+ VARIABLE_STORE_HEADER *VariableStoreHeader;
+ VARIABLE_POINTER_TRACK VariablePtrTrack;
+ VARIABLE_HEADER *NextVariable;
+ UINTN VarNameSize;
+ UINTN VarDataSize;
//
// Non-Volatile related.
@@ -1240,10 +1275,10 @@ CheckRemainingSpaceForConsistencyInternal (
//
// Calculate variable total size.
//
- VarNameSize = StrSize (VariableEntry->Name);
- VarNameSize += GET_PAD_SIZE (VarNameSize);
- VarDataSize = VariableEntry->VariableSize;
- VarDataSize += GET_PAD_SIZE (VarDataSize);
+ VarNameSize = StrSize (VariableEntry->Name);
+ VarNameSize += GET_PAD_SIZE (VarNameSize);
+ VarDataSize = VariableEntry->VariableSize;
+ VarDataSize += GET_PAD_SIZE (VarDataSize);
VariableEntry->VariableSize = HEADER_ALIGN (
GetVariableHeaderSize (
mVariableModuleGlobal->VariableGlobal.AuthFormat
@@ -1251,9 +1286,10 @@ CheckRemainingSpaceForConsistencyInternal (
);
TotalNeededSize += VariableEntry->VariableSize;
- VariableEntry = VA_ARG (Args, VARIABLE_ENTRY_CONSISTENCY *);
+ VariableEntry = VA_ARG (Args, VARIABLE_ENTRY_CONSISTENCY *);
}
- VA_END (Args);
+
+ VA_END (Args);
if (RemainingVariableStorageSize >= TotalNeededSize) {
//
@@ -1274,27 +1310,28 @@ CheckRemainingSpaceForConsistencyInternal (
//
// Check if Variable[Index] has been present and get its size.
//
- OriginalVarSize = 0;
+ OriginalVarSize = 0;
VariablePtrTrack.StartPtr = GetStartPointer (VariableStoreHeader);
- VariablePtrTrack.EndPtr = GetEndPointer (VariableStoreHeader);
- Status = FindVariableEx (
- VariableEntry->Name,
- VariableEntry->Guid,
- FALSE,
- &VariablePtrTrack,
- mVariableModuleGlobal->VariableGlobal.AuthFormat
- );
+ VariablePtrTrack.EndPtr = GetEndPointer (VariableStoreHeader);
+ Status = FindVariableEx (
+ VariableEntry->Name,
+ VariableEntry->Guid,
+ FALSE,
+ &VariablePtrTrack,
+ mVariableModuleGlobal->VariableGlobal.AuthFormat
+ );
if (!EFI_ERROR (Status)) {
//
// Get size of Variable[Index].
//
- NextVariable = GetNextVariablePtr (VariablePtrTrack.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- OriginalVarSize = (UINTN) NextVariable - (UINTN) VariablePtrTrack.CurrPtr;
+ NextVariable = GetNextVariablePtr (VariablePtrTrack.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ OriginalVarSize = (UINTN)NextVariable - (UINTN)VariablePtrTrack.CurrPtr;
//
// Add the original size of Variable[Index] to remaining variable storage size.
//
RemainingVariableStorageSize += OriginalVarSize;
}
+
if (VariableEntry->VariableSize > RemainingVariableStorageSize) {
//
// No enough space for Variable[Index].
@@ -1302,13 +1339,15 @@ CheckRemainingSpaceForConsistencyInternal (
VA_END (Args);
return FALSE;
}
+
//
// Sub the (new) size of Variable[Index] from remaining variable storage size.
//
RemainingVariableStorageSize -= VariableEntry->VariableSize;
- VariableEntry = VA_ARG (Args, VARIABLE_ENTRY_CONSISTENCY *);
+ VariableEntry = VA_ARG (Args, VARIABLE_ENTRY_CONSISTENCY *);
}
- VA_END (Args);
+
+ VA_END (Args);
return TRUE;
}
@@ -1335,12 +1374,12 @@ CheckRemainingSpaceForConsistencyInternal (
BOOLEAN
EFIAPI
CheckRemainingSpaceForConsistency (
- IN UINT32 Attributes,
+ IN UINT32 Attributes,
...
)
{
- VA_LIST Marker;
- BOOLEAN Return;
+ VA_LIST Marker;
+ BOOLEAN Return;
VA_START (Marker, Attributes);
@@ -1373,19 +1412,19 @@ CheckRemainingSpaceForConsistency (
**/
EFI_STATUS
AutoUpdateLangVariable (
- IN CHAR16 *VariableName,
- IN VOID *Data,
- IN UINTN DataSize
+ IN CHAR16 *VariableName,
+ IN VOID *Data,
+ IN UINTN DataSize
)
{
- EFI_STATUS Status;
- CHAR8 *BestPlatformLang;
- CHAR8 *BestLang;
- UINTN Index;
- UINT32 Attributes;
- VARIABLE_POINTER_TRACK Variable;
- BOOLEAN SetLanguageCodes;
- VARIABLE_ENTRY_CONSISTENCY VariableEntry[2];
+ EFI_STATUS Status;
+ CHAR8 *BestPlatformLang;
+ CHAR8 *BestLang;
+ UINTN Index;
+ UINT32 Attributes;
+ VARIABLE_POINTER_TRACK Variable;
+ BOOLEAN SetLanguageCodes;
+ VARIABLE_ENTRY_CONSISTENCY VariableEntry[2];
//
// Don't do updates for delete operation
@@ -1413,6 +1452,7 @@ AutoUpdateLangVariable (
if (mVariableModuleGlobal->PlatformLangCodes != NULL) {
FreePool (mVariableModuleGlobal->PlatformLangCodes);
}
+
mVariableModuleGlobal->PlatformLangCodes = AllocateRuntimeCopyPool (DataSize, Data);
ASSERT (mVariableModuleGlobal->PlatformLangCodes != NULL);
@@ -1423,9 +1463,9 @@ AutoUpdateLangVariable (
if (mVariableModuleGlobal->PlatformLang != NULL) {
FreePool (mVariableModuleGlobal->PlatformLang);
}
+
mVariableModuleGlobal->PlatformLang = AllocateRuntimePool (DataSize);
ASSERT (mVariableModuleGlobal->PlatformLang != NULL);
-
} else if (StrCmp (VariableName, EFI_LANG_CODES_VARIABLE_NAME) == 0) {
//
// LangCodes is a volatile variable, so it can not be updated at runtime.
@@ -1443,13 +1483,15 @@ AutoUpdateLangVariable (
if (mVariableModuleGlobal->LangCodes != NULL) {
FreePool (mVariableModuleGlobal->LangCodes);
}
+
mVariableModuleGlobal->LangCodes = AllocateRuntimeCopyPool (DataSize, Data);
ASSERT (mVariableModuleGlobal->LangCodes != NULL);
}
- if (SetLanguageCodes
- && (mVariableModuleGlobal->PlatformLangCodes != NULL)
- && (mVariableModuleGlobal->LangCodes != NULL)) {
+ if ( SetLanguageCodes
+ && (mVariableModuleGlobal->PlatformLangCodes != NULL)
+ && (mVariableModuleGlobal->LangCodes != NULL))
+ {
//
// Update Lang if PlatformLang is already set
// Update PlatformLang if Lang is already set
@@ -1511,12 +1553,12 @@ AutoUpdateLangVariable (
// Check the variable space for both Lang and PlatformLang variable.
//
VariableEntry[0].VariableSize = ISO_639_2_ENTRY_SIZE + 1;
- VariableEntry[0].Guid = &gEfiGlobalVariableGuid;
- VariableEntry[0].Name = EFI_LANG_VARIABLE_NAME;
+ VariableEntry[0].Guid = &gEfiGlobalVariableGuid;
+ VariableEntry[0].Name = EFI_LANG_VARIABLE_NAME;
VariableEntry[1].VariableSize = AsciiStrSize (BestPlatformLang);
- VariableEntry[1].Guid = &gEfiGlobalVariableGuid;
- VariableEntry[1].Name = EFI_PLATFORM_LANG_VARIABLE_NAME;
+ VariableEntry[1].Guid = &gEfiGlobalVariableGuid;
+ VariableEntry[1].Name = EFI_PLATFORM_LANG_VARIABLE_NAME;
if (!CheckRemainingSpaceForConsistency (VARIABLE_ATTRIBUTE_NV_BS_RT, &VariableEntry[0], &VariableEntry[1], NULL)) {
//
// No enough variable space to set both Lang and PlatformLang successfully.
@@ -1528,14 +1570,22 @@ AutoUpdateLangVariable (
//
FindVariable (EFI_LANG_VARIABLE_NAME, &gEfiGlobalVariableGuid, &Variable, &mVariableModuleGlobal->VariableGlobal, FALSE);
- Status = UpdateVariable (EFI_LANG_VARIABLE_NAME, &gEfiGlobalVariableGuid, BestLang,
- ISO_639_2_ENTRY_SIZE + 1, Attributes, 0, 0, &Variable, NULL);
+ Status = UpdateVariable (
+ EFI_LANG_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ BestLang,
+ ISO_639_2_ENTRY_SIZE + 1,
+ Attributes,
+ 0,
+ 0,
+ &Variable,
+ NULL
+ );
}
DEBUG ((DEBUG_INFO, "Variable Driver Auto Update PlatformLang, PlatformLang:%a, Lang:%a Status: %r\n", BestPlatformLang, BestLang, Status));
}
}
-
} else if (StrCmp (VariableName, EFI_LANG_VARIABLE_NAME) == 0) {
//
// Update PlatformLang when PlatformLangCodes/LangCodes were set.
@@ -1560,12 +1610,12 @@ AutoUpdateLangVariable (
// Check the variable space for both PlatformLang and Lang variable.
//
VariableEntry[0].VariableSize = AsciiStrSize (BestPlatformLang);
- VariableEntry[0].Guid = &gEfiGlobalVariableGuid;
- VariableEntry[0].Name = EFI_PLATFORM_LANG_VARIABLE_NAME;
+ VariableEntry[0].Guid = &gEfiGlobalVariableGuid;
+ VariableEntry[0].Name = EFI_PLATFORM_LANG_VARIABLE_NAME;
VariableEntry[1].VariableSize = ISO_639_2_ENTRY_SIZE + 1;
- VariableEntry[1].Guid = &gEfiGlobalVariableGuid;
- VariableEntry[1].Name = EFI_LANG_VARIABLE_NAME;
+ VariableEntry[1].Guid = &gEfiGlobalVariableGuid;
+ VariableEntry[1].Name = EFI_LANG_VARIABLE_NAME;
if (!CheckRemainingSpaceForConsistency (VARIABLE_ATTRIBUTE_NV_BS_RT, &VariableEntry[0], &VariableEntry[1], NULL)) {
//
// No enough variable space to set both PlatformLang and Lang successfully.
@@ -1577,8 +1627,17 @@ AutoUpdateLangVariable (
//
FindVariable (EFI_PLATFORM_LANG_VARIABLE_NAME, &gEfiGlobalVariableGuid, &Variable, &mVariableModuleGlobal->VariableGlobal, FALSE);
- Status = UpdateVariable (EFI_PLATFORM_LANG_VARIABLE_NAME, &gEfiGlobalVariableGuid, BestPlatformLang,
- AsciiStrSize (BestPlatformLang), Attributes, 0, 0, &Variable, NULL);
+ Status = UpdateVariable (
+ EFI_PLATFORM_LANG_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ BestPlatformLang,
+ AsciiStrSize (BestPlatformLang),
+ Attributes,
+ 0,
+ 0,
+ &Variable,
+ NULL
+ );
}
DEBUG ((DEBUG_INFO, "Variable Driver Auto Update Lang, Lang:%a, PlatformLang:%a Status: %r\n", BestLang, BestPlatformLang, Status));
@@ -1616,15 +1675,15 @@ AutoUpdateLangVariable (
**/
EFI_STATUS
UpdateVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN VOID *Data,
- IN UINTN DataSize,
- IN UINT32 Attributes OPTIONAL,
- IN UINT32 KeyIndex OPTIONAL,
- IN UINT64 MonotonicCount OPTIONAL,
- IN OUT VARIABLE_POINTER_TRACK *CacheVariable,
- IN EFI_TIME *TimeStamp OPTIONAL
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN VOID *Data,
+ IN UINTN DataSize,
+ IN UINT32 Attributes OPTIONAL,
+ IN UINT32 KeyIndex OPTIONAL,
+ IN UINT64 MonotonicCount OPTIONAL,
+ IN OUT VARIABLE_POINTER_TRACK *CacheVariable,
+ IN EFI_TIME *TimeStamp OPTIONAL
)
{
EFI_STATUS Status;
@@ -1651,7 +1710,7 @@ UpdateVariable (
AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
BOOLEAN AuthFormat;
- if (mVariableModuleGlobal->FvbInstance == NULL && !mVariableModuleGlobal->VariableGlobal.EmuNvMode) {
+ if ((mVariableModuleGlobal->FvbInstance == NULL) && !mVariableModuleGlobal->VariableGlobal.EmuNvMode) {
//
// The FVB protocol is not ready, so the EFI_VARIABLE_WRITE_ARCH_PROTOCOL is not installed.
//
@@ -1679,13 +1738,14 @@ UpdateVariable (
//
if ((CacheVariable->CurrPtr != NULL) &&
(mVariableModuleGlobal->VariableGlobal.HobVariableBase != 0) &&
- (CacheVariable->StartPtr == GetStartPointer ((VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase))
- ) {
+ (CacheVariable->StartPtr == GetStartPointer ((VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase))
+ )
+ {
CacheVariable->StartPtr = GetStartPointer (mNvVariableCache);
- CacheVariable->EndPtr = GetEndPointer (mNvVariableCache);
+ CacheVariable->EndPtr = GetEndPointer (mNvVariableCache);
CacheVariable->Volatile = FALSE;
- Status = FindVariableEx (VariableName, VendorGuid, FALSE, CacheVariable, AuthFormat);
- if (CacheVariable->CurrPtr == NULL || EFI_ERROR (Status)) {
+ Status = FindVariableEx (VariableName, VendorGuid, FALSE, CacheVariable, AuthFormat);
+ if ((CacheVariable->CurrPtr == NULL) || EFI_ERROR (Status)) {
//
// There is no matched variable in NV variable cache.
//
@@ -1710,28 +1770,29 @@ UpdateVariable (
// CacheVariable points to the variable in the memory copy of Flash area
// Now let Variable points to the same variable in Flash area.
//
- VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase);
- Variable = &NvVariable;
- Variable->StartPtr = GetStartPointer (VariableStoreHeader);
- Variable->EndPtr = (VARIABLE_HEADER *)((UINTN)Variable->StartPtr + ((UINTN)CacheVariable->EndPtr - (UINTN)CacheVariable->StartPtr));
+ VariableStoreHeader = (VARIABLE_STORE_HEADER *)((UINTN)mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase);
+ Variable = &NvVariable;
+ Variable->StartPtr = GetStartPointer (VariableStoreHeader);
+ Variable->EndPtr = (VARIABLE_HEADER *)((UINTN)Variable->StartPtr + ((UINTN)CacheVariable->EndPtr - (UINTN)CacheVariable->StartPtr));
- Variable->CurrPtr = (VARIABLE_HEADER *)((UINTN)Variable->StartPtr + ((UINTN)CacheVariable->CurrPtr - (UINTN)CacheVariable->StartPtr));
+ Variable->CurrPtr = (VARIABLE_HEADER *)((UINTN)Variable->StartPtr + ((UINTN)CacheVariable->CurrPtr - (UINTN)CacheVariable->StartPtr));
if (CacheVariable->InDeletedTransitionPtr != NULL) {
Variable->InDeletedTransitionPtr = (VARIABLE_HEADER *)((UINTN)Variable->StartPtr + ((UINTN)CacheVariable->InDeletedTransitionPtr - (UINTN)CacheVariable->StartPtr));
} else {
Variable->InDeletedTransitionPtr = NULL;
}
+
Variable->Volatile = FALSE;
}
- Fvb = mVariableModuleGlobal->FvbInstance;
+ Fvb = mVariableModuleGlobal->FvbInstance;
//
// Tricky part: Use scratch data area at the end of volatile variable store
// as a temporary storage.
//
- NextVariable = GetEndPointer ((VARIABLE_STORE_HEADER *) ((UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase));
- ScratchSize = mVariableModuleGlobal->ScratchBufferSize;
+ NextVariable = GetEndPointer ((VARIABLE_STORE_HEADER *)((UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase));
+ ScratchSize = mVariableModuleGlobal->ScratchBufferSize;
SetMem (NextVariable, ScratchSize, 0xff);
DataReady = FALSE;
@@ -1749,6 +1810,7 @@ UpdateVariable (
Status = EFI_WRITE_PROTECTED;
goto Done;
}
+
//
// Only variable that have NV attributes can be updated/deleted in Runtime.
//
@@ -1772,21 +1834,21 @@ UpdateVariable (
// When the EFI_VARIABLE_APPEND_WRITE attribute is set, DataSize of zero will
// not delete the variable.
//
- if ((((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) && (DataSize == 0))|| ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) == 0)) {
+ if ((((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) && (DataSize == 0)) || ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) == 0)) {
if (Variable->InDeletedTransitionPtr != NULL) {
//
// Both ADDED and IN_DELETED_TRANSITION variable are present,
// set IN_DELETED_TRANSITION one to DELETED state first.
//
ASSERT (CacheVariable->InDeletedTransitionPtr != NULL);
- State = CacheVariable->InDeletedTransitionPtr->State;
+ State = CacheVariable->InDeletedTransitionPtr->State;
State &= VAR_DELETED;
Status = UpdateVariableStore (
&mVariableModuleGlobal->VariableGlobal,
Variable->Volatile,
FALSE,
Fvb,
- (UINTN) &Variable->InDeletedTransitionPtr->State,
+ (UINTN)&Variable->InDeletedTransitionPtr->State,
sizeof (UINT8),
&State
);
@@ -1799,7 +1861,7 @@ UpdateVariable (
}
}
- State = CacheVariable->CurrPtr->State;
+ State = CacheVariable->CurrPtr->State;
State &= VAR_DELETED;
Status = UpdateVariableStore (
@@ -1807,7 +1869,7 @@ UpdateVariable (
Variable->Volatile,
FALSE,
Fvb,
- (UINTN) &Variable->CurrPtr->State,
+ (UINTN)&Variable->CurrPtr->State,
sizeof (UINT8),
&State
);
@@ -1818,16 +1880,19 @@ UpdateVariable (
FlushHobVariableToFlash (VariableName, VendorGuid);
}
}
+
goto Done;
}
+
//
// If the variable is marked valid, and the same data has been passed in,
// then return to the caller immediately.
//
- if (DataSizeOfVariable (CacheVariable->CurrPtr, AuthFormat) == DataSize &&
+ if ((DataSizeOfVariable (CacheVariable->CurrPtr, AuthFormat) == DataSize) &&
(CompareMem (Data, GetVariableDataPtr (CacheVariable->CurrPtr, AuthFormat), DataSize) == 0) &&
((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) &&
- (TimeStamp == NULL)) {
+ (TimeStamp == NULL))
+ {
//
// Variable content unchanged and no need to update timestamp, just return.
//
@@ -1835,8 +1900,8 @@ UpdateVariable (
Status = EFI_SUCCESS;
goto Done;
} else if ((CacheVariable->CurrPtr->State == VAR_ADDED) ||
- (CacheVariable->CurrPtr->State == (VAR_ADDED & VAR_IN_DELETED_TRANSITION))) {
-
+ (CacheVariable->CurrPtr->State == (VAR_ADDED & VAR_IN_DELETED_TRANSITION)))
+ {
//
// EFI_VARIABLE_APPEND_WRITE attribute only effects for existing variable.
//
@@ -1845,11 +1910,11 @@ UpdateVariable (
// NOTE: From 0 to DataOffset of NextVariable is reserved for Variable Header and Name.
// From DataOffset of NextVariable is to save the existing variable data.
//
- DataOffset = GetVariableDataOffset (CacheVariable->CurrPtr, AuthFormat);
- BufferForMerge = (UINT8 *) ((UINTN) NextVariable + DataOffset);
+ DataOffset = GetVariableDataOffset (CacheVariable->CurrPtr, AuthFormat);
+ BufferForMerge = (UINT8 *)((UINTN)NextVariable + DataOffset);
CopyMem (
BufferForMerge,
- (UINT8 *) ((UINTN) CacheVariable->CurrPtr + DataOffset),
+ (UINT8 *)((UINTN)CacheVariable->CurrPtr + DataOffset),
DataSizeOfVariable (CacheVariable->CurrPtr, AuthFormat)
);
@@ -1879,15 +1944,16 @@ UpdateVariable (
Status = EFI_INVALID_PARAMETER;
goto Done;
}
+
CopyMem (
- (UINT8*) (
- (UINTN) BufferForMerge + DataSizeOfVariable (CacheVariable->CurrPtr, AuthFormat)
- ),
+ (UINT8 *)(
+ (UINTN)BufferForMerge + DataSizeOfVariable (CacheVariable->CurrPtr, AuthFormat)
+ ),
Data,
DataSize
);
MergedBufSize = DataSizeOfVariable (CacheVariable->CurrPtr, AuthFormat) +
- DataSize;
+ DataSize;
//
// BufferForMerge(from DataOffset of NextVariable) has included the merged existing and new data.
@@ -1900,7 +1966,7 @@ UpdateVariable (
//
// Mark the old variable as in delete transition.
//
- State = CacheVariable->CurrPtr->State;
+ State = CacheVariable->CurrPtr->State;
State &= VAR_IN_DELETED_TRANSITION;
Status = UpdateVariableStore (
@@ -1908,13 +1974,14 @@ UpdateVariable (
Variable->Volatile,
FALSE,
Fvb,
- (UINTN) &Variable->CurrPtr->State,
+ (UINTN)&Variable->CurrPtr->State,
sizeof (UINT8),
&State
);
if (EFI_ERROR (Status)) {
goto Done;
}
+
if (!Variable->Volatile) {
CacheVariable->CurrPtr->State = State;
}
@@ -1933,7 +2000,7 @@ UpdateVariable (
// Make sure we are trying to create a new variable.
// Setting a data variable with zero DataSize or no access attributes means to delete it.
//
- if (DataSize == 0 || (Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) == 0) {
+ if ((DataSize == 0) || ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) == 0)) {
Status = EFI_NOT_FOUND;
goto Done;
}
@@ -1942,7 +2009,8 @@ UpdateVariable (
// Only variable have NV|RT attribute can be created in Runtime.
//
if (AtRuntime () &&
- (((Attributes & EFI_VARIABLE_RUNTIME_ACCESS) == 0) || ((Attributes & EFI_VARIABLE_NON_VOLATILE) == 0))) {
+ (((Attributes & EFI_VARIABLE_RUNTIME_ACCESS) == 0) || ((Attributes & EFI_VARIABLE_NON_VOLATILE) == 0)))
+ {
Status = EFI_INVALID_PARAMETER;
goto Done;
}
@@ -1952,19 +2020,20 @@ UpdateVariable (
// Function part - create a new variable and copy the data.
// Both update a variable and create a variable will come here.
//
- NextVariable->StartId = VARIABLE_DATA;
+ NextVariable->StartId = VARIABLE_DATA;
//
// NextVariable->State = VAR_ADDED;
//
- NextVariable->Reserved = 0;
+ NextVariable->Reserved = 0;
if (mVariableModuleGlobal->VariableGlobal.AuthFormat) {
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) NextVariable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)NextVariable;
AuthVariable->PubKeyIndex = KeyIndex;
AuthVariable->MonotonicCount = MonotonicCount;
ZeroMem (&AuthVariable->TimeStamp, sizeof (EFI_TIME));
if (((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) &&
- (TimeStamp != NULL)) {
+ (TimeStamp != NULL))
+ {
if ((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) {
CopyMem (&AuthVariable->TimeStamp, TimeStamp, sizeof (EFI_TIME));
} else {
@@ -1974,10 +2043,10 @@ UpdateVariable (
// with the variable, we need associate the new timestamp with the updated value.
//
if (Variable->CurrPtr != NULL) {
- if (VariableCompareTimeStampInternal (&(((AUTHENTICATED_VARIABLE_HEADER *) CacheVariable->CurrPtr)->TimeStamp), TimeStamp)) {
+ if (VariableCompareTimeStampInternal (&(((AUTHENTICATED_VARIABLE_HEADER *)CacheVariable->CurrPtr)->TimeStamp), TimeStamp)) {
CopyMem (&AuthVariable->TimeStamp, TimeStamp, sizeof (EFI_TIME));
} else {
- CopyMem (&AuthVariable->TimeStamp, &(((AUTHENTICATED_VARIABLE_HEADER *) CacheVariable->CurrPtr)->TimeStamp), sizeof (EFI_TIME));
+ CopyMem (&AuthVariable->TimeStamp, &(((AUTHENTICATED_VARIABLE_HEADER *)CacheVariable->CurrPtr)->TimeStamp), sizeof (EFI_TIME));
}
}
}
@@ -1988,12 +2057,12 @@ UpdateVariable (
// The EFI_VARIABLE_APPEND_WRITE attribute will never be set in the returned
// Attributes bitmask parameter of a GetVariable() call.
//
- NextVariable->Attributes = Attributes & (~EFI_VARIABLE_APPEND_WRITE);
+ NextVariable->Attributes = Attributes & (~EFI_VARIABLE_APPEND_WRITE);
- VarNameOffset = GetVariableHeaderSize (AuthFormat);
- VarNameSize = StrSize (VariableName);
+ VarNameOffset = GetVariableHeaderSize (AuthFormat);
+ VarNameSize = StrSize (VariableName);
CopyMem (
- (UINT8 *) ((UINTN) NextVariable + VarNameOffset),
+ (UINT8 *)((UINTN)NextVariable + VarNameOffset),
VariableName,
VarNameSize
);
@@ -2005,7 +2074,7 @@ UpdateVariable (
//
if (!DataReady) {
CopyMem (
- (UINT8 *) ((UINTN) NextVariable + VarDataOffset),
+ (UINT8 *)((UINTN)NextVariable + VarDataOffset),
Data,
DataSize
);
@@ -2035,27 +2104,32 @@ UpdateVariable (
//
Volatile = FALSE;
- IsCommonVariable = FALSE;
+ IsCommonVariable = FALSE;
IsCommonUserVariable = FALSE;
if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == 0) {
- IsCommonVariable = TRUE;
+ IsCommonVariable = TRUE;
IsCommonUserVariable = IsUserVariable (NextVariable);
}
- if ((((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) != 0)
- && ((VarSize + mVariableModuleGlobal->HwErrVariableTotalSize) > PcdGet32 (PcdHwErrStorageSize)))
- || (IsCommonVariable && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > mVariableModuleGlobal->CommonVariableSpace))
- || (IsCommonVariable && AtRuntime () && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > mVariableModuleGlobal->CommonRuntimeVariableSpace))
- || (IsCommonUserVariable && ((VarSize + mVariableModuleGlobal->CommonUserVariableTotalSize) > mVariableModuleGlobal->CommonMaxUserVariableSpace))) {
+
+ if ( ( ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) != 0)
+ && ((VarSize + mVariableModuleGlobal->HwErrVariableTotalSize) > PcdGet32 (PcdHwErrStorageSize)))
+ || (IsCommonVariable && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > mVariableModuleGlobal->CommonVariableSpace))
+ || (IsCommonVariable && AtRuntime () && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > mVariableModuleGlobal->CommonRuntimeVariableSpace))
+ || (IsCommonUserVariable && ((VarSize + mVariableModuleGlobal->CommonUserVariableTotalSize) > mVariableModuleGlobal->CommonMaxUserVariableSpace)))
+ {
if (AtRuntime ()) {
if (IsCommonUserVariable && ((VarSize + mVariableModuleGlobal->CommonUserVariableTotalSize) > mVariableModuleGlobal->CommonMaxUserVariableSpace)) {
RecordVarErrorFlag (VAR_ERROR_FLAG_USER_ERROR, VariableName, VendorGuid, Attributes, VarSize);
}
+
if (IsCommonVariable && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > mVariableModuleGlobal->CommonRuntimeVariableSpace)) {
RecordVarErrorFlag (VAR_ERROR_FLAG_SYSTEM_ERROR, VariableName, VendorGuid, Attributes, VarSize);
}
+
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
//
// Perform garbage collection & reclaim operation, and integrate the new variable at the same time.
//
@@ -2072,19 +2146,22 @@ UpdateVariable (
// The new variable has been integrated successfully during reclaiming.
//
if (Variable->CurrPtr != NULL) {
- CacheVariable->CurrPtr = (VARIABLE_HEADER *)((UINTN) CacheVariable->StartPtr + ((UINTN) Variable->CurrPtr - (UINTN) Variable->StartPtr));
+ CacheVariable->CurrPtr = (VARIABLE_HEADER *)((UINTN)CacheVariable->StartPtr + ((UINTN)Variable->CurrPtr - (UINTN)Variable->StartPtr));
CacheVariable->InDeletedTransitionPtr = NULL;
}
+
UpdateVariableInfo (VariableName, VendorGuid, FALSE, FALSE, TRUE, FALSE, FALSE, &gVariableInfo);
FlushHobVariableToFlash (VariableName, VendorGuid);
} else {
if (IsCommonUserVariable && ((VarSize + mVariableModuleGlobal->CommonUserVariableTotalSize) > mVariableModuleGlobal->CommonMaxUserVariableSpace)) {
RecordVarErrorFlag (VAR_ERROR_FLAG_USER_ERROR, VariableName, VendorGuid, Attributes, VarSize);
}
+
if (IsCommonVariable && ((VarSize + mVariableModuleGlobal->CommonVariableTotalSize) > mVariableModuleGlobal->CommonVariableSpace)) {
RecordVarErrorFlag (VAR_ERROR_FLAG_SYSTEM_ERROR, VariableName, VendorGuid, Attributes, VarSize);
}
}
+
goto Done;
}
@@ -2105,8 +2182,8 @@ UpdateVariable (
TRUE,
Fvb,
mVariableModuleGlobal->NonVolatileLastVariableOffset,
- (UINT32) GetVariableHeaderSize (AuthFormat),
- (UINT8 *) NextVariable
+ (UINT32)GetVariableHeaderSize (AuthFormat),
+ (UINT8 *)NextVariable
);
if (EFI_ERROR (Status)) {
@@ -2117,19 +2194,20 @@ UpdateVariable (
// Step 2:
//
NextVariable->State = VAR_HEADER_VALID_ONLY;
- Status = UpdateVariableStore (
- &mVariableModuleGlobal->VariableGlobal,
- FALSE,
- TRUE,
- Fvb,
- mVariableModuleGlobal->NonVolatileLastVariableOffset + OFFSET_OF (VARIABLE_HEADER, State),
- sizeof (UINT8),
- &NextVariable->State
- );
+ Status = UpdateVariableStore (
+ &mVariableModuleGlobal->VariableGlobal,
+ FALSE,
+ TRUE,
+ Fvb,
+ mVariableModuleGlobal->NonVolatileLastVariableOffset + OFFSET_OF (VARIABLE_HEADER, State),
+ sizeof (UINT8),
+ &NextVariable->State
+ );
if (EFI_ERROR (Status)) {
goto Done;
}
+
//
// Step 3:
//
@@ -2139,26 +2217,27 @@ UpdateVariable (
TRUE,
Fvb,
mVariableModuleGlobal->NonVolatileLastVariableOffset + GetVariableHeaderSize (AuthFormat),
- (UINT32) (VarSize - GetVariableHeaderSize (AuthFormat)),
- (UINT8 *) NextVariable + GetVariableHeaderSize (AuthFormat)
+ (UINT32)(VarSize - GetVariableHeaderSize (AuthFormat)),
+ (UINT8 *)NextVariable + GetVariableHeaderSize (AuthFormat)
);
if (EFI_ERROR (Status)) {
goto Done;
}
+
//
// Step 4:
//
NextVariable->State = VAR_ADDED;
- Status = UpdateVariableStore (
- &mVariableModuleGlobal->VariableGlobal,
- FALSE,
- TRUE,
- Fvb,
- mVariableModuleGlobal->NonVolatileLastVariableOffset + OFFSET_OF (VARIABLE_HEADER, State),
- sizeof (UINT8),
- &NextVariable->State
- );
+ Status = UpdateVariableStore (
+ &mVariableModuleGlobal->VariableGlobal,
+ FALSE,
+ TRUE,
+ Fvb,
+ mVariableModuleGlobal->NonVolatileLastVariableOffset + OFFSET_OF (VARIABLE_HEADER, State),
+ sizeof (UINT8),
+ &NextVariable->State
+ );
if (EFI_ERROR (Status)) {
goto Done;
@@ -2173,15 +2252,15 @@ UpdateVariable (
// Emulated non-volatile variable mode.
//
NextVariable->State = VAR_ADDED;
- Status = UpdateVariableStore (
- &mVariableModuleGlobal->VariableGlobal,
- FALSE,
- TRUE,
- Fvb,
- mVariableModuleGlobal->NonVolatileLastVariableOffset,
- (UINT32) VarSize,
- (UINT8 *) NextVariable
- );
+ Status = UpdateVariableStore (
+ &mVariableModuleGlobal->VariableGlobal,
+ FALSE,
+ TRUE,
+ Fvb,
+ mVariableModuleGlobal->NonVolatileLastVariableOffset,
+ (UINT32)VarSize,
+ (UINT8 *)NextVariable
+ );
if (EFI_ERROR (Status)) {
goto Done;
@@ -2204,8 +2283,9 @@ UpdateVariable (
//
Volatile = TRUE;
- if ((UINT32) (VarSize + mVariableModuleGlobal->VolatileLastVariableOffset) >
- ((VARIABLE_STORE_HEADER *) ((UINTN) (mVariableModuleGlobal->VariableGlobal.VolatileVariableBase)))->Size) {
+ if ((UINT32)(VarSize + mVariableModuleGlobal->VolatileLastVariableOffset) >
+ ((VARIABLE_STORE_HEADER *)((UINTN)(mVariableModuleGlobal->VariableGlobal.VolatileVariableBase)))->Size)
+ {
//
// Perform garbage collection & reclaim operation, and integrate the new variable at the same time.
//
@@ -2222,24 +2302,26 @@ UpdateVariable (
// The new variable has been integrated successfully during reclaiming.
//
if (Variable->CurrPtr != NULL) {
- CacheVariable->CurrPtr = (VARIABLE_HEADER *)((UINTN) CacheVariable->StartPtr + ((UINTN) Variable->CurrPtr - (UINTN) Variable->StartPtr));
+ CacheVariable->CurrPtr = (VARIABLE_HEADER *)((UINTN)CacheVariable->StartPtr + ((UINTN)Variable->CurrPtr - (UINTN)Variable->StartPtr));
CacheVariable->InDeletedTransitionPtr = NULL;
}
+
UpdateVariableInfo (VariableName, VendorGuid, TRUE, FALSE, TRUE, FALSE, FALSE, &gVariableInfo);
}
+
goto Done;
}
NextVariable->State = VAR_ADDED;
- Status = UpdateVariableStore (
- &mVariableModuleGlobal->VariableGlobal,
- TRUE,
- TRUE,
- Fvb,
- mVariableModuleGlobal->VolatileLastVariableOffset,
- (UINT32) VarSize,
- (UINT8 *) NextVariable
- );
+ Status = UpdateVariableStore (
+ &mVariableModuleGlobal->VariableGlobal,
+ TRUE,
+ TRUE,
+ Fvb,
+ mVariableModuleGlobal->VolatileLastVariableOffset,
+ (UINT32)VarSize,
+ (UINT8 *)NextVariable
+ );
if (EFI_ERROR (Status)) {
goto Done;
@@ -2251,21 +2333,21 @@ UpdateVariable (
//
// Mark the old variable as deleted.
//
- if (!EFI_ERROR (Status) && Variable->CurrPtr != NULL) {
+ if (!EFI_ERROR (Status) && (Variable->CurrPtr != NULL)) {
if (Variable->InDeletedTransitionPtr != NULL) {
//
// Both ADDED and IN_DELETED_TRANSITION old variable are present,
// set IN_DELETED_TRANSITION one to DELETED state first.
//
ASSERT (CacheVariable->InDeletedTransitionPtr != NULL);
- State = CacheVariable->InDeletedTransitionPtr->State;
+ State = CacheVariable->InDeletedTransitionPtr->State;
State &= VAR_DELETED;
Status = UpdateVariableStore (
&mVariableModuleGlobal->VariableGlobal,
Variable->Volatile,
FALSE,
Fvb,
- (UINTN) &Variable->InDeletedTransitionPtr->State,
+ (UINTN)&Variable->InDeletedTransitionPtr->State,
sizeof (UINT8),
&State
);
@@ -2278,18 +2360,18 @@ UpdateVariable (
}
}
- State = CacheVariable->CurrPtr->State;
+ State = CacheVariable->CurrPtr->State;
State &= VAR_DELETED;
Status = UpdateVariableStore (
- &mVariableModuleGlobal->VariableGlobal,
- Variable->Volatile,
- FALSE,
- Fvb,
- (UINTN) &Variable->CurrPtr->State,
- sizeof (UINT8),
- &State
- );
+ &mVariableModuleGlobal->VariableGlobal,
+ Variable->Volatile,
+ FALSE,
+ Fvb,
+ (UINTN)&Variable->CurrPtr->State,
+ sizeof (UINT8),
+ &State
+ );
if (!EFI_ERROR (Status) && !Variable->Volatile) {
CacheVariable->CurrPtr->State = State;
}
@@ -2304,7 +2386,7 @@ UpdateVariable (
Done:
if (!EFI_ERROR (Status)) {
- if ((Variable->CurrPtr != NULL && !Variable->Volatile) || (Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {
+ if (((Variable->CurrPtr != NULL) && !Variable->Volatile) || ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0)) {
VolatileCacheInstance = &(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache);
} else {
VolatileCacheInstance = &(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeVolatileCache);
@@ -2348,18 +2430,18 @@ Done:
EFI_STATUS
EFIAPI
VariableServiceGetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT UINT32 *Attributes OPTIONAL,
- IN OUT UINTN *DataSize,
- OUT VOID *Data OPTIONAL
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data OPTIONAL
)
{
EFI_STATUS Status;
VARIABLE_POINTER_TRACK Variable;
UINTN VarDataSize;
- if (VariableName == NULL || VendorGuid == NULL || DataSize == NULL) {
+ if ((VariableName == NULL) || (VendorGuid == NULL) || (DataSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2367,10 +2449,10 @@ VariableServiceGetVariable (
return EFI_NOT_FOUND;
}
- AcquireLockOnlyAtBootTime(&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
Status = FindVariable (VariableName, VendorGuid, &Variable, &mVariableModuleGlobal->VariableGlobal, FALSE);
- if (Variable.CurrPtr == NULL || EFI_ERROR (Status)) {
+ if ((Variable.CurrPtr == NULL) || EFI_ERROR (Status)) {
goto Done;
}
@@ -2395,16 +2477,17 @@ VariableServiceGetVariable (
goto Done;
} else {
*DataSize = VarDataSize;
- Status = EFI_BUFFER_TOO_SMALL;
+ Status = EFI_BUFFER_TOO_SMALL;
goto Done;
}
Done:
- if (Status == EFI_SUCCESS || Status == EFI_BUFFER_TOO_SMALL) {
- if (Attributes != NULL && Variable.CurrPtr != NULL) {
+ if ((Status == EFI_SUCCESS) || (Status == EFI_BUFFER_TOO_SMALL)) {
+ if ((Attributes != NULL) && (Variable.CurrPtr != NULL)) {
*Attributes = Variable.CurrPtr->Attributes;
}
}
+
ReleaseLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
return Status;
}
@@ -2437,19 +2520,19 @@ Done:
EFI_STATUS
EFIAPI
VariableServiceGetNextVariableName (
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VendorGuid
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- UINTN MaxLen;
- UINTN VarNameSize;
- BOOLEAN AuthFormat;
- VARIABLE_HEADER *VariablePtr;
- VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
+ EFI_STATUS Status;
+ UINTN MaxLen;
+ UINTN VarNameSize;
+ BOOLEAN AuthFormat;
+ VARIABLE_HEADER *VariablePtr;
+ VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
- if (VariableNameSize == NULL || VariableName == NULL || VendorGuid == NULL) {
+ if ((VariableNameSize == NULL) || (VariableName == NULL) || (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2467,15 +2550,15 @@ VariableServiceGetNextVariableName (
return EFI_INVALID_PARAMETER;
}
- AcquireLockOnlyAtBootTime(&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
//
// 0: Volatile, 1: HOB, 2: Non-Volatile.
// The index and attributes mapping must be kept in this order as FindVariable
// makes use of this mapping to implement search algorithm.
//
- VariableStoreHeader[VariableStoreTypeVolatile] = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
- VariableStoreHeader[VariableStoreTypeHob] = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase;
+ VariableStoreHeader[VariableStoreTypeVolatile] = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
+ VariableStoreHeader[VariableStoreTypeHob] = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase;
VariableStoreHeader[VariableStoreTypeNv] = mNvVariableCache;
Status = VariableServiceGetNextVariableInternal (
@@ -2539,30 +2622,30 @@ VariableServiceGetNextVariableName (
EFI_STATUS
EFIAPI
VariableServiceSetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
- VARIABLE_POINTER_TRACK Variable;
- EFI_STATUS Status;
- VARIABLE_HEADER *NextVariable;
- EFI_PHYSICAL_ADDRESS Point;
- UINTN PayloadSize;
- BOOLEAN AuthFormat;
+ VARIABLE_POINTER_TRACK Variable;
+ EFI_STATUS Status;
+ VARIABLE_HEADER *NextVariable;
+ EFI_PHYSICAL_ADDRESS Point;
+ UINTN PayloadSize;
+ BOOLEAN AuthFormat;
AuthFormat = mVariableModuleGlobal->VariableGlobal.AuthFormat;
//
// Check input parameters.
//
- if (VariableName == NULL || VariableName[0] == 0 || VendorGuid == NULL) {
+ if ((VariableName == NULL) || (VariableName[0] == 0) || (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (DataSize != 0 && Data == NULL) {
+ if ((DataSize != 0) && (Data == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -2605,8 +2688,9 @@ VariableServiceSetVariable (
// EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS and EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute
// cannot be set both.
//
- if (((Attributes & EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS) == EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS)
- && ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) == EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS)) {
+ if ( ((Attributes & EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS) == EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS)
+ && ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) == EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS))
+ {
return EFI_UNSUPPORTED;
}
@@ -2618,16 +2702,19 @@ VariableServiceSetVariable (
if (DataSize != AUTHINFO_SIZE) {
return EFI_UNSUPPORTED;
}
+
PayloadSize = DataSize - AUTHINFO_SIZE;
} else if ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) == EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) {
//
// Sanity check for EFI_VARIABLE_AUTHENTICATION_2 descriptor.
//
- if (DataSize < OFFSET_OF_AUTHINFO2_CERT_DATA ||
- ((EFI_VARIABLE_AUTHENTICATION_2 *) Data)->AuthInfo.Hdr.dwLength > DataSize - (OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) ||
- ((EFI_VARIABLE_AUTHENTICATION_2 *) Data)->AuthInfo.Hdr.dwLength < OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)) {
+ if ((DataSize < OFFSET_OF_AUTHINFO2_CERT_DATA) ||
+ (((EFI_VARIABLE_AUTHENTICATION_2 *)Data)->AuthInfo.Hdr.dwLength > DataSize - (OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo))) ||
+ (((EFI_VARIABLE_AUTHENTICATION_2 *)Data)->AuthInfo.Hdr.dwLength < OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)))
+ {
return EFI_SECURITY_VIOLATION;
}
+
//
// The VariableSpeculationBarrier() call here is to ensure the above sanity
// check for the EFI_VARIABLE_AUTHENTICATION_2 descriptor has been completed
@@ -2639,7 +2726,7 @@ VariableServiceSetVariable (
PayloadSize = DataSize;
}
- if ((UINTN)(~0) - PayloadSize < StrSize(VariableName)){
+ if ((UINTN)(~0) - PayloadSize < StrSize (VariableName)) {
//
// Prevent whole variable size overflow
//
@@ -2653,7 +2740,8 @@ VariableServiceSetVariable (
//
if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
if (StrSize (VariableName) + PayloadSize >
- PcdGet32 (PcdMaxHardwareErrorVariableSize) - GetVariableHeaderSize (AuthFormat)) {
+ PcdGet32 (PcdMaxHardwareErrorVariableSize) - GetVariableHeaderSize (AuthFormat))
+ {
return EFI_INVALID_PARAMETER;
}
} else {
@@ -2664,14 +2752,21 @@ VariableServiceSetVariable (
if ((Attributes & VARIABLE_ATTRIBUTE_AT_AW) != 0) {
if (StrSize (VariableName) + PayloadSize >
mVariableModuleGlobal->MaxAuthVariableSize -
- GetVariableHeaderSize (AuthFormat)) {
- DEBUG ((DEBUG_ERROR,
+ GetVariableHeaderSize (AuthFormat))
+ {
+ DEBUG ((
+ DEBUG_ERROR,
"%a: Failed to set variable '%s' with Guid %g\n",
- __FUNCTION__, VariableName, VendorGuid));
- DEBUG ((DEBUG_ERROR,
+ __FUNCTION__,
+ VariableName,
+ VendorGuid
+ ));
+ DEBUG ((
+ DEBUG_ERROR,
"NameSize(0x%x) + PayloadSize(0x%x) > "
"MaxAuthVariableSize(0x%x) - HeaderSize(0x%x)\n",
- StrSize (VariableName), PayloadSize,
+ StrSize (VariableName),
+ PayloadSize,
mVariableModuleGlobal->MaxAuthVariableSize,
GetVariableHeaderSize (AuthFormat)
));
@@ -2679,14 +2774,21 @@ VariableServiceSetVariable (
}
} else if ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {
if (StrSize (VariableName) + PayloadSize >
- mVariableModuleGlobal->MaxVariableSize - GetVariableHeaderSize (AuthFormat)) {
- DEBUG ((DEBUG_ERROR,
+ mVariableModuleGlobal->MaxVariableSize - GetVariableHeaderSize (AuthFormat))
+ {
+ DEBUG ((
+ DEBUG_ERROR,
"%a: Failed to set variable '%s' with Guid %g\n",
- __FUNCTION__, VariableName, VendorGuid));
- DEBUG ((DEBUG_ERROR,
+ __FUNCTION__,
+ VariableName,
+ VendorGuid
+ ));
+ DEBUG ((
+ DEBUG_ERROR,
"NameSize(0x%x) + PayloadSize(0x%x) > "
"MaxVariableSize(0x%x) - HeaderSize(0x%x)\n",
- StrSize (VariableName), PayloadSize,
+ StrSize (VariableName),
+ PayloadSize,
mVariableModuleGlobal->MaxVariableSize,
GetVariableHeaderSize (AuthFormat)
));
@@ -2694,14 +2796,21 @@ VariableServiceSetVariable (
}
} else {
if (StrSize (VariableName) + PayloadSize >
- mVariableModuleGlobal->MaxVolatileVariableSize - GetVariableHeaderSize (AuthFormat)) {
- DEBUG ((DEBUG_ERROR,
+ mVariableModuleGlobal->MaxVolatileVariableSize - GetVariableHeaderSize (AuthFormat))
+ {
+ DEBUG ((
+ DEBUG_ERROR,
"%a: Failed to set variable '%s' with Guid %g\n",
- __FUNCTION__, VariableName, VendorGuid));
- DEBUG ((DEBUG_ERROR,
+ __FUNCTION__,
+ VariableName,
+ VendorGuid
+ ));
+ DEBUG ((
+ DEBUG_ERROR,
"NameSize(0x%x) + PayloadSize(0x%x) > "
"MaxVolatileVariableSize(0x%x) - HeaderSize(0x%x)\n",
- StrSize (VariableName), PayloadSize,
+ StrSize (VariableName),
+ PayloadSize,
mVariableModuleGlobal->MaxVolatileVariableSize,
GetVariableHeaderSize (AuthFormat)
));
@@ -2713,7 +2822,7 @@ VariableServiceSetVariable (
//
// Special Handling for MOR Lock variable.
//
- Status = SetVariableCheckHandlerMor (VariableName, VendorGuid, Attributes, PayloadSize, (VOID *) ((UINTN) Data + DataSize - PayloadSize));
+ Status = SetVariableCheckHandlerMor (VariableName, VendorGuid, Attributes, PayloadSize, (VOID *)((UINTN)Data + DataSize - PayloadSize));
if (Status == EFI_ALREADY_STARTED) {
//
// EFI_ALREADY_STARTED means the SetVariable() action is handled inside of SetVariableCheckHandlerMor().
@@ -2721,16 +2830,17 @@ VariableServiceSetVariable (
//
return EFI_SUCCESS;
}
+
if (EFI_ERROR (Status)) {
return Status;
}
- Status = VarCheckLibSetVariableCheck (VariableName, VendorGuid, Attributes, PayloadSize, (VOID *) ((UINTN) Data + DataSize - PayloadSize), mRequestSource);
+ Status = VarCheckLibSetVariableCheck (VariableName, VendorGuid, Attributes, PayloadSize, (VOID *)((UINTN)Data + DataSize - PayloadSize), mRequestSource);
if (EFI_ERROR (Status)) {
return Status;
}
- AcquireLockOnlyAtBootTime(&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
//
// Consider reentrant in MCA/INIT/NMI. It needs be reupdated.
@@ -2740,11 +2850,12 @@ VariableServiceSetVariable (
//
// Parse non-volatile variable data and get last variable offset.
//
- NextVariable = GetStartPointer ((VARIABLE_STORE_HEADER *) (UINTN) Point);
- while (IsValidVariableHeader (NextVariable, GetEndPointer ((VARIABLE_STORE_HEADER *) (UINTN) Point))) {
+ NextVariable = GetStartPointer ((VARIABLE_STORE_HEADER *)(UINTN)Point);
+ while (IsValidVariableHeader (NextVariable, GetEndPointer ((VARIABLE_STORE_HEADER *)(UINTN)Point))) {
NextVariable = GetNextVariablePtr (NextVariable, AuthFormat);
}
- mVariableModuleGlobal->NonVolatileLastVariableOffset = (UINTN) NextVariable - (UINTN) Point;
+
+ mVariableModuleGlobal->NonVolatileLastVariableOffset = (UINTN)NextVariable - (UINTN)Point;
}
//
@@ -2756,7 +2867,8 @@ VariableServiceSetVariable (
Status = EFI_WRITE_PROTECTED;
goto Done;
}
- if (Attributes != 0 && (Attributes & (~EFI_VARIABLE_APPEND_WRITE)) != Variable.CurrPtr->Attributes) {
+
+ if ((Attributes != 0) && ((Attributes & (~EFI_VARIABLE_APPEND_WRITE)) != Variable.CurrPtr->Attributes)) {
//
// If a preexisting variable is rewritten with different attributes, SetVariable() shall not
// modify the variable and shall return EFI_INVALID_PARAMETER. Two exceptions to this rule:
@@ -2826,29 +2938,29 @@ Done:
EFI_STATUS
EFIAPI
VariableServiceQueryVariableInfoInternal (
- IN UINT32 Attributes,
- OUT UINT64 *MaximumVariableStorageSize,
- OUT UINT64 *RemainingVariableStorageSize,
- OUT UINT64 *MaximumVariableSize
+ IN UINT32 Attributes,
+ OUT UINT64 *MaximumVariableStorageSize,
+ OUT UINT64 *RemainingVariableStorageSize,
+ OUT UINT64 *MaximumVariableSize
)
{
- VARIABLE_HEADER *Variable;
- VARIABLE_HEADER *NextVariable;
- UINT64 VariableSize;
- VARIABLE_STORE_HEADER *VariableStoreHeader;
- UINT64 CommonVariableTotalSize;
- UINT64 HwErrVariableTotalSize;
- EFI_STATUS Status;
- VARIABLE_POINTER_TRACK VariablePtrTrack;
+ VARIABLE_HEADER *Variable;
+ VARIABLE_HEADER *NextVariable;
+ UINT64 VariableSize;
+ VARIABLE_STORE_HEADER *VariableStoreHeader;
+ UINT64 CommonVariableTotalSize;
+ UINT64 HwErrVariableTotalSize;
+ EFI_STATUS Status;
+ VARIABLE_POINTER_TRACK VariablePtrTrack;
CommonVariableTotalSize = 0;
- HwErrVariableTotalSize = 0;
+ HwErrVariableTotalSize = 0;
- if((Attributes & EFI_VARIABLE_NON_VOLATILE) == 0) {
+ if ((Attributes & EFI_VARIABLE_NON_VOLATILE) == 0) {
//
// Query is Volatile related.
//
- VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase);
+ VariableStoreHeader = (VARIABLE_STORE_HEADER *)((UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase);
} else {
//
// Query is Non-Volatile related.
@@ -2860,15 +2972,15 @@ VariableServiceQueryVariableInfoInternal (
// Now let's fill *MaximumVariableStorageSize *RemainingVariableStorageSize
// with the storage size (excluding the storage header size).
//
- *MaximumVariableStorageSize = VariableStoreHeader->Size - sizeof (VARIABLE_STORE_HEADER);
+ *MaximumVariableStorageSize = VariableStoreHeader->Size - sizeof (VARIABLE_STORE_HEADER);
//
// Harware error record variable needs larger size.
//
if ((Attributes & (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_HARDWARE_ERROR_RECORD)) == (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_HARDWARE_ERROR_RECORD)) {
*MaximumVariableStorageSize = PcdGet32 (PcdHwErrStorageSize);
- *MaximumVariableSize = PcdGet32 (PcdMaxHardwareErrorVariableSize) -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ *MaximumVariableSize = PcdGet32 (PcdMaxHardwareErrorVariableSize) -
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
} else {
if ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {
if (AtRuntime ()) {
@@ -2883,13 +2995,13 @@ VariableServiceQueryVariableInfoInternal (
//
if ((Attributes & VARIABLE_ATTRIBUTE_AT_AW) != 0) {
*MaximumVariableSize = mVariableModuleGlobal->MaxAuthVariableSize -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
} else if ((Attributes & EFI_VARIABLE_NON_VOLATILE) != 0) {
*MaximumVariableSize = mVariableModuleGlobal->MaxVariableSize -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
} else {
*MaximumVariableSize = mVariableModuleGlobal->MaxVolatileVariableSize -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
}
}
@@ -2903,7 +3015,7 @@ VariableServiceQueryVariableInfoInternal (
//
while (IsValidVariableHeader (Variable, GetEndPointer (VariableStoreHeader))) {
NextVariable = GetNextVariablePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- VariableSize = (UINT64) (UINTN) NextVariable - (UINT64) (UINTN) Variable;
+ VariableSize = (UINT64)(UINTN)NextVariable - (UINT64)(UINTN)Variable;
if (AtRuntime ()) {
//
@@ -2935,15 +3047,15 @@ VariableServiceQueryVariableInfoInternal (
// this IN_DELETED_TRANSITION variable is valid.
//
VariablePtrTrack.StartPtr = GetStartPointer (VariableStoreHeader);
- VariablePtrTrack.EndPtr = GetEndPointer (VariableStoreHeader);
- Status = FindVariableEx (
- GetVariableNamePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
- GetVendorGuidPtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
- FALSE,
- &VariablePtrTrack,
- mVariableModuleGlobal->VariableGlobal.AuthFormat
- );
- if (!EFI_ERROR (Status) && VariablePtrTrack.CurrPtr->State != VAR_ADDED) {
+ VariablePtrTrack.EndPtr = GetEndPointer (VariableStoreHeader);
+ Status = FindVariableEx (
+ GetVariableNamePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
+ GetVendorGuidPtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat),
+ FALSE,
+ &VariablePtrTrack,
+ mVariableModuleGlobal->VariableGlobal.AuthFormat
+ );
+ if (!EFI_ERROR (Status) && (VariablePtrTrack.CurrPtr->State != VAR_ADDED)) {
if ((Variable->Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
HwErrVariableTotalSize += VariableSize;
} else {
@@ -2959,7 +3071,7 @@ VariableServiceQueryVariableInfoInternal (
Variable = NextVariable;
}
- if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD){
+ if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {
*RemainingVariableStorageSize = *MaximumVariableStorageSize - HwErrVariableTotalSize;
} else {
if (*MaximumVariableStorageSize < CommonVariableTotalSize) {
@@ -2972,10 +3084,11 @@ VariableServiceQueryVariableInfoInternal (
if (*RemainingVariableStorageSize < GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat)) {
*MaximumVariableSize = 0;
} else if ((*RemainingVariableStorageSize - GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat)) <
- *MaximumVariableSize
- ) {
+ *MaximumVariableSize
+ )
+ {
*MaximumVariableSize = *RemainingVariableStorageSize -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
}
return EFI_SUCCESS;
@@ -3005,15 +3118,15 @@ VariableServiceQueryVariableInfoInternal (
EFI_STATUS
EFIAPI
VariableServiceQueryVariableInfo (
- IN UINT32 Attributes,
- OUT UINT64 *MaximumVariableStorageSize,
- OUT UINT64 *RemainingVariableStorageSize,
- OUT UINT64 *MaximumVariableSize
+ IN UINT32 Attributes,
+ OUT UINT64 *MaximumVariableStorageSize,
+ OUT UINT64 *RemainingVariableStorageSize,
+ OUT UINT64 *MaximumVariableSize
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- if(MaximumVariableStorageSize == NULL || RemainingVariableStorageSize == NULL || MaximumVariableSize == NULL || Attributes == 0) {
+ if ((MaximumVariableStorageSize == NULL) || (RemainingVariableStorageSize == NULL) || (MaximumVariableSize == NULL) || (Attributes == 0)) {
return EFI_INVALID_PARAMETER;
}
@@ -3060,7 +3173,7 @@ VariableServiceQueryVariableInfo (
}
}
- AcquireLockOnlyAtBootTime(&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
Status = VariableServiceQueryVariableInfoInternal (
Attributes,
@@ -3081,14 +3194,14 @@ VariableServiceQueryVariableInfo (
**/
VOID
-ReclaimForOS(
+ReclaimForOS (
VOID
)
{
- EFI_STATUS Status;
- UINTN RemainingCommonRuntimeVariableSpace;
- UINTN RemainingHwErrVariableSpace;
- STATIC BOOLEAN Reclaimed;
+ EFI_STATUS Status;
+ UINTN RemainingCommonRuntimeVariableSpace;
+ UINTN RemainingHwErrVariableSpace;
+ STATIC BOOLEAN Reclaimed;
//
// This function will be called only once at EndOfDxe or ReadyToBoot event.
@@ -3096,9 +3209,10 @@ ReclaimForOS(
if (Reclaimed) {
return;
}
+
Reclaimed = TRUE;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
if (mVariableModuleGlobal->CommonRuntimeVariableSpace < mVariableModuleGlobal->CommonVariableTotalSize) {
RemainingCommonRuntimeVariableSpace = 0;
@@ -3114,15 +3228,16 @@ ReclaimForOS(
if (((RemainingCommonRuntimeVariableSpace < mVariableModuleGlobal->MaxVariableSize) ||
(RemainingCommonRuntimeVariableSpace < mVariableModuleGlobal->MaxAuthVariableSize)) ||
((PcdGet32 (PcdHwErrStorageSize) != 0) &&
- (RemainingHwErrVariableSpace < PcdGet32 (PcdMaxHardwareErrorVariableSize)))){
+ (RemainingHwErrVariableSpace < PcdGet32 (PcdMaxHardwareErrorVariableSize))))
+ {
Status = Reclaim (
- mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase,
- &mVariableModuleGlobal->NonVolatileLastVariableOffset,
- FALSE,
- NULL,
- NULL,
- 0
- );
+ mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase,
+ &mVariableModuleGlobal->NonVolatileLastVariableOffset,
+ FALSE,
+ NULL,
+ NULL,
+ 0
+ );
ASSERT_EFI_ERROR (Status);
}
}
@@ -3138,9 +3253,9 @@ GetMaxVariableSize (
VOID
)
{
- UINTN MaxVariableSize;
+ UINTN MaxVariableSize;
- MaxVariableSize = GetNonVolatileMaxVariableSize();
+ MaxVariableSize = GetNonVolatileMaxVariableSize ();
//
// The condition below fails implicitly if PcdMaxVolatileVariableSize equals
// the default zero value.
@@ -3148,6 +3263,7 @@ GetMaxVariableSize (
if (MaxVariableSize < PcdGet32 (PcdMaxVolatileVariableSize)) {
MaxVariableSize = PcdGet32 (PcdMaxVolatileVariableSize);
}
+
return MaxVariableSize;
}
@@ -3160,50 +3276,54 @@ GetMaxVariableSize (
**/
VOID
FlushHobVariableToFlash (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- VARIABLE_STORE_HEADER *VariableStoreHeader;
- VARIABLE_HEADER *Variable;
- VOID *VariableData;
- VARIABLE_POINTER_TRACK VariablePtrTrack;
- BOOLEAN ErrorFlag;
- BOOLEAN AuthFormat;
-
- ErrorFlag = FALSE;
+ EFI_STATUS Status;
+ VARIABLE_STORE_HEADER *VariableStoreHeader;
+ VARIABLE_HEADER *Variable;
+ VOID *VariableData;
+ VARIABLE_POINTER_TRACK VariablePtrTrack;
+ BOOLEAN ErrorFlag;
+ BOOLEAN AuthFormat;
+
+ ErrorFlag = FALSE;
AuthFormat = mVariableModuleGlobal->VariableGlobal.AuthFormat;
//
// Flush the HOB variable to flash.
//
if (mVariableModuleGlobal->VariableGlobal.HobVariableBase != 0) {
- VariableStoreHeader = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase;
+ VariableStoreHeader = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase;
//
// Set HobVariableBase to 0, it can avoid SetVariable to call back.
//
mVariableModuleGlobal->VariableGlobal.HobVariableBase = 0;
for ( Variable = GetStartPointer (VariableStoreHeader)
- ; IsValidVariableHeader (Variable, GetEndPointer (VariableStoreHeader))
- ; Variable = GetNextVariablePtr (Variable, AuthFormat)
- ) {
+ ; IsValidVariableHeader (Variable, GetEndPointer (VariableStoreHeader))
+ ; Variable = GetNextVariablePtr (Variable, AuthFormat)
+ )
+ {
if (Variable->State != VAR_ADDED) {
//
// The HOB variable has been set to DELETED state in local.
//
continue;
}
+
ASSERT ((Variable->Attributes & EFI_VARIABLE_NON_VOLATILE) != 0);
- if (VendorGuid == NULL || VariableName == NULL ||
+ if ((VendorGuid == NULL) || (VariableName == NULL) ||
!CompareGuid (VendorGuid, GetVendorGuidPtr (Variable, AuthFormat)) ||
- StrCmp (VariableName, GetVariableNamePtr (Variable, AuthFormat)) != 0) {
+ (StrCmp (VariableName, GetVariableNamePtr (Variable, AuthFormat)) != 0))
+ {
VariableData = GetVariableDataPtr (Variable, AuthFormat);
FindVariable (
GetVariableNamePtr (Variable, AuthFormat),
GetVendorGuidPtr (Variable, AuthFormat),
&VariablePtrTrack,
- &mVariableModuleGlobal->VariableGlobal, FALSE
+ &mVariableModuleGlobal->VariableGlobal,
+ FALSE
);
Status = UpdateVariable (
GetVariableNamePtr (Variable, AuthFormat),
@@ -3215,7 +3335,7 @@ FlushHobVariableToFlash (
0,
&VariablePtrTrack,
NULL
- );
+ );
DEBUG ((
DEBUG_INFO,
"Variable driver flush the HOB variable to flash: %g %s %r\n",
@@ -3231,6 +3351,7 @@ FlushHobVariableToFlash (
//
Status = EFI_SUCCESS;
}
+
if (!EFI_ERROR (Status)) {
//
// If set variable successful, or the updated or deleted variable is matched with the HOB variable,
@@ -3247,6 +3368,7 @@ FlushHobVariableToFlash (
ErrorFlag = TRUE;
}
}
+
if (mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeHobCache.Store != NULL) {
Status = SynchronizeRuntimeVariableCache (
&mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeHobCache,
@@ -3255,11 +3377,12 @@ FlushHobVariableToFlash (
);
ASSERT_EFI_ERROR (Status);
}
+
if (ErrorFlag) {
//
// We still have HOB variable(s) not flushed in flash.
//
- mVariableModuleGlobal->VariableGlobal.HobVariableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) VariableStoreHeader;
+ mVariableModuleGlobal->VariableGlobal.HobVariableBase = (EFI_PHYSICAL_ADDRESS)(UINTN)VariableStoreHeader;
} else {
//
// All HOB variables have been flushed in flash.
@@ -3268,12 +3391,12 @@ FlushHobVariableToFlash (
if (mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.HobFlushComplete != NULL) {
*(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.HobFlushComplete) = TRUE;
}
+
if (!AtRuntime ()) {
- FreePool ((VOID *) VariableStoreHeader);
+ FreePool ((VOID *)VariableStoreHeader);
}
}
}
-
}
/**
@@ -3288,18 +3411,18 @@ VariableWriteServiceInitialize (
VOID
)
{
- EFI_STATUS Status;
- UINTN Index;
- UINT8 Data;
- VARIABLE_ENTRY_PROPERTY *VariableEntry;
+ EFI_STATUS Status;
+ UINTN Index;
+ UINT8 Data;
+ VARIABLE_ENTRY_PROPERTY *VariableEntry;
- AcquireLockOnlyAtBootTime(&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
//
// Check if the free area is really free.
//
for (Index = mVariableModuleGlobal->NonVolatileLastVariableOffset; Index < mNvVariableCache->Size; Index++) {
- Data = ((UINT8 *) mNvVariableCache)[Index];
+ Data = ((UINT8 *)mNvVariableCache)[Index];
if (Data != 0xff) {
//
// There must be something wrong in variable store, do reclaim operation.
@@ -3316,6 +3439,7 @@ VariableWriteServiceInitialize (
ReleaseLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);
return Status;
}
+
break;
}
}
@@ -3328,9 +3452,9 @@ VariableWriteServiceInitialize (
//
// Authenticated variable initialize.
//
- mAuthContextIn.StructSize = sizeof (AUTH_VAR_LIB_CONTEXT_IN);
+ mAuthContextIn.StructSize = sizeof (AUTH_VAR_LIB_CONTEXT_IN);
mAuthContextIn.MaxAuthVariableSize = mVariableModuleGlobal->MaxAuthVariableSize -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
Status = AuthVariableLibInitialize (&mAuthContextIn, &mAuthContextOut);
if (!EFI_ERROR (Status)) {
DEBUG ((DEBUG_INFO, "Variable driver will work with auth variable support!\n"));
@@ -3338,11 +3462,11 @@ VariableWriteServiceInitialize (
if (mAuthContextOut.AuthVarEntry != NULL) {
for (Index = 0; Index < mAuthContextOut.AuthVarEntryCount; Index++) {
VariableEntry = &mAuthContextOut.AuthVarEntry[Index];
- Status = VarCheckLibVariablePropertySet (
- VariableEntry->Name,
- VariableEntry->Guid,
- &VariableEntry->VariableProperty
- );
+ Status = VarCheckLibVariablePropertySet (
+ VariableEntry->Name,
+ VariableEntry->Guid,
+ &VariableEntry->VariableProperty
+ );
ASSERT_EFI_ERROR (Status);
}
}
@@ -3350,14 +3474,14 @@ VariableWriteServiceInitialize (
DEBUG ((DEBUG_INFO, "NOTICE - AuthVariableLibInitialize() returns %r!\n", Status));
DEBUG ((DEBUG_INFO, "Variable driver will continue to work without auth variable support!\n"));
mVariableModuleGlobal->VariableGlobal.AuthSupport = FALSE;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
}
}
if (!EFI_ERROR (Status)) {
for (Index = 0; Index < ARRAY_SIZE (mVariableEntryProperty); Index++) {
VariableEntry = &mVariableEntryProperty[Index];
- Status = VarCheckLibVariablePropertySet (VariableEntry->Name, VariableEntry->Guid, &VariableEntry->VariableProperty);
+ Status = VarCheckLibVariablePropertySet (VariableEntry->Name, VariableEntry->Guid, &VariableEntry->VariableProperty);
ASSERT_EFI_ERROR (Status);
}
}
@@ -3381,17 +3505,17 @@ VariableWriteServiceInitialize (
**/
VOID *
ConvertNormalVarStorageToAuthVarStorage (
- VARIABLE_STORE_HEADER *NormalVarStorage
+ VARIABLE_STORE_HEADER *NormalVarStorage
)
{
- VARIABLE_HEADER *StartPtr;
- UINT8 *NextPtr;
- VARIABLE_HEADER *EndPtr;
- UINTN AuthVarStroageSize;
- AUTHENTICATED_VARIABLE_HEADER *AuthStartPtr;
- VARIABLE_STORE_HEADER *AuthVarStorage;
+ VARIABLE_HEADER *StartPtr;
+ UINT8 *NextPtr;
+ VARIABLE_HEADER *EndPtr;
+ UINTN AuthVarStroageSize;
+ AUTHENTICATED_VARIABLE_HEADER *AuthStartPtr;
+ VARIABLE_STORE_HEADER *AuthVarStorage;
- AuthVarStroageSize = sizeof (VARIABLE_STORE_HEADER);
+ AuthVarStroageSize = sizeof (VARIABLE_STORE_HEADER);
//
// Set AuthFormat as FALSE for normal variable storage
//
@@ -3404,12 +3528,13 @@ ConvertNormalVarStorageToAuthVarStorage (
EndPtr = GetEndPointer (NormalVarStorage);
while (StartPtr < EndPtr) {
if (StartPtr->State == VAR_ADDED) {
- AuthVarStroageSize = HEADER_ALIGN (AuthVarStroageSize);
+ AuthVarStroageSize = HEADER_ALIGN (AuthVarStroageSize);
AuthVarStroageSize += sizeof (AUTHENTICATED_VARIABLE_HEADER);
AuthVarStroageSize += StartPtr->NameSize + GET_PAD_SIZE (StartPtr->NameSize);
AuthVarStroageSize += StartPtr->DataSize + GET_PAD_SIZE (StartPtr->DataSize);
}
- StartPtr = GetNextVariablePtr (StartPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+
+ StartPtr = GetNextVariablePtr (StartPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
}
//
@@ -3424,25 +3549,25 @@ ConvertNormalVarStorageToAuthVarStorage (
//
// Copy Variable from Normal storage to Auth storage
//
- StartPtr = GetStartPointer (NormalVarStorage);
- EndPtr = GetEndPointer (NormalVarStorage);
- AuthStartPtr = (AUTHENTICATED_VARIABLE_HEADER *) GetStartPointer (AuthVarStorage);
+ StartPtr = GetStartPointer (NormalVarStorage);
+ EndPtr = GetEndPointer (NormalVarStorage);
+ AuthStartPtr = (AUTHENTICATED_VARIABLE_HEADER *)GetStartPointer (AuthVarStorage);
while (StartPtr < EndPtr) {
if (StartPtr->State == VAR_ADDED) {
- AuthStartPtr = (AUTHENTICATED_VARIABLE_HEADER *) HEADER_ALIGN (AuthStartPtr);
+ AuthStartPtr = (AUTHENTICATED_VARIABLE_HEADER *)HEADER_ALIGN (AuthStartPtr);
//
// Copy Variable Header
//
- AuthStartPtr->StartId = StartPtr->StartId;
- AuthStartPtr->State = StartPtr->State;
- AuthStartPtr->Attributes = StartPtr->Attributes;
- AuthStartPtr->NameSize = StartPtr->NameSize;
- AuthStartPtr->DataSize = StartPtr->DataSize;
+ AuthStartPtr->StartId = StartPtr->StartId;
+ AuthStartPtr->State = StartPtr->State;
+ AuthStartPtr->Attributes = StartPtr->Attributes;
+ AuthStartPtr->NameSize = StartPtr->NameSize;
+ AuthStartPtr->DataSize = StartPtr->DataSize;
CopyGuid (&AuthStartPtr->VendorGuid, &StartPtr->VendorGuid);
//
// Copy Variable Name
//
- NextPtr = (UINT8 *) (AuthStartPtr + 1);
+ NextPtr = (UINT8 *)(AuthStartPtr + 1);
CopyMem (
NextPtr,
GetVariableNamePtr (StartPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat),
@@ -3456,16 +3581,18 @@ ConvertNormalVarStorageToAuthVarStorage (
//
// Go to next variable
//
- AuthStartPtr = (AUTHENTICATED_VARIABLE_HEADER *) (NextPtr + AuthStartPtr->DataSize + GET_PAD_SIZE (AuthStartPtr->DataSize));
+ AuthStartPtr = (AUTHENTICATED_VARIABLE_HEADER *)(NextPtr + AuthStartPtr->DataSize + GET_PAD_SIZE (AuthStartPtr->DataSize));
}
+
StartPtr = GetNextVariablePtr (StartPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
}
+
//
// Update Auth Storage Header
//
AuthVarStorage->Format = NormalVarStorage->Format;
AuthVarStorage->State = NormalVarStorage->State;
- AuthVarStorage->Size = (UINT32)((UINTN)AuthStartPtr - (UINTN)AuthVarStorage);
+ AuthVarStorage->Size = (UINT32)((UINTN)AuthStartPtr - (UINTN)AuthVarStorage);
CopyGuid (&AuthVarStorage->Signature, &gEfiAuthenticatedVariableGuid);
ASSERT (AuthVarStorage->Size <= AuthVarStroageSize);
@@ -3487,36 +3614,37 @@ ConvertNormalVarStorageToAuthVarStorage (
**/
EFI_STATUS
GetHobVariableStore (
- IN EFI_GUID *VariableGuid
+ IN EFI_GUID *VariableGuid
)
{
- VARIABLE_STORE_HEADER *VariableStoreHeader;
- UINT64 VariableStoreLength;
- EFI_HOB_GUID_TYPE *GuidHob;
- BOOLEAN NeedConvertNormalToAuth;
+ VARIABLE_STORE_HEADER *VariableStoreHeader;
+ UINT64 VariableStoreLength;
+ EFI_HOB_GUID_TYPE *GuidHob;
+ BOOLEAN NeedConvertNormalToAuth;
//
// Make sure there is no more than one Variable HOB.
//
DEBUG_CODE_BEGIN ();
- GuidHob = GetFirstGuidHob (&gEfiAuthenticatedVariableGuid);
+ GuidHob = GetFirstGuidHob (&gEfiAuthenticatedVariableGuid);
+ if (GuidHob != NULL) {
+ if ((GetNextGuidHob (&gEfiAuthenticatedVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
+ DEBUG ((DEBUG_ERROR, "ERROR: Found two Auth Variable HOBs\n"));
+ ASSERT (FALSE);
+ } else if (GetFirstGuidHob (&gEfiVariableGuid) != NULL) {
+ DEBUG ((DEBUG_ERROR, "ERROR: Found one Auth + one Normal Variable HOBs\n"));
+ ASSERT (FALSE);
+ }
+ } else {
+ GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
if (GuidHob != NULL) {
- if ((GetNextGuidHob (&gEfiAuthenticatedVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found two Auth Variable HOBs\n"));
- ASSERT (FALSE);
- } else if (GetFirstGuidHob (&gEfiVariableGuid) != NULL) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found one Auth + one Normal Variable HOBs\n"));
+ if ((GetNextGuidHob (&gEfiVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
+ DEBUG ((DEBUG_ERROR, "ERROR: Found two Normal Variable HOBs\n"));
ASSERT (FALSE);
}
- } else {
- GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
- if (GuidHob != NULL) {
- if ((GetNextGuidHob (&gEfiVariableGuid, GET_NEXT_HOB (GuidHob)) != NULL)) {
- DEBUG ((DEBUG_ERROR, "ERROR: Found two Normal Variable HOBs\n"));
- ASSERT (FALSE);
- }
- }
}
+ }
+
DEBUG_CODE_END ();
//
@@ -3529,23 +3657,25 @@ GetHobVariableStore (
// Normal HOB variable store (code will convert it to Auth Format)
//
NeedConvertNormalToAuth = FALSE;
- GuidHob = GetFirstGuidHob (VariableGuid);
- if (GuidHob == NULL && VariableGuid == &gEfiAuthenticatedVariableGuid) {
+ GuidHob = GetFirstGuidHob (VariableGuid);
+ if ((GuidHob == NULL) && (VariableGuid == &gEfiAuthenticatedVariableGuid)) {
//
// Try getting it from normal variable HOB
//
- GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
+ GuidHob = GetFirstGuidHob (&gEfiVariableGuid);
NeedConvertNormalToAuth = TRUE;
}
+
if (GuidHob != NULL) {
VariableStoreHeader = GET_GUID_HOB_DATA (GuidHob);
VariableStoreLength = GuidHob->Header.HobLength - sizeof (EFI_HOB_GUID_TYPE);
if (GetVariableStoreStatus (VariableStoreHeader) == EfiValid) {
if (!NeedConvertNormalToAuth) {
- mVariableModuleGlobal->VariableGlobal.HobVariableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) AllocateRuntimeCopyPool ((UINTN) VariableStoreLength, (VOID *) VariableStoreHeader);
+ mVariableModuleGlobal->VariableGlobal.HobVariableBase = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateRuntimeCopyPool ((UINTN)VariableStoreLength, (VOID *)VariableStoreHeader);
} else {
- mVariableModuleGlobal->VariableGlobal.HobVariableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) ConvertNormalVarStorageToAuthVarStorage ((VOID *) VariableStoreHeader);
+ mVariableModuleGlobal->VariableGlobal.HobVariableBase = (EFI_PHYSICAL_ADDRESS)(UINTN)ConvertNormalVarStorageToAuthVarStorage ((VOID *)VariableStoreHeader);
}
+
if (mVariableModuleGlobal->VariableGlobal.HobVariableBase == 0) {
return EFI_OUT_OF_RESOURCES;
}
@@ -3569,10 +3699,10 @@ VariableCommonInitialize (
VOID
)
{
- EFI_STATUS Status;
- VARIABLE_STORE_HEADER *VolatileVariableStore;
- UINTN ScratchSize;
- EFI_GUID *VariableGuid;
+ EFI_STATUS Status;
+ VARIABLE_STORE_HEADER *VolatileVariableStore;
+ UINTN ScratchSize;
+ EFI_GUID *VariableGuid;
//
// Allocate runtime memory for variable driver global structure.
@@ -3603,11 +3733,11 @@ VariableCommonInitialize (
// Set AuthSupport to FALSE first, VariableWriteServiceInitialize() will initialize it.
//
mVariableModuleGlobal->VariableGlobal.AuthSupport = FALSE;
- VariableGuid = &gEfiAuthenticatedVariableGuid;
+ VariableGuid = &gEfiAuthenticatedVariableGuid;
} else {
DEBUG ((DEBUG_INFO, "Variable driver will work without auth variable support!\n"));
mVariableModuleGlobal->VariableGlobal.AuthSupport = FALSE;
- VariableGuid = &gEfiVariableGuid;
+ VariableGuid = &gEfiVariableGuid;
}
//
@@ -3618,6 +3748,7 @@ VariableCommonInitialize (
if (mNvFvHeaderCache != NULL) {
FreePool (mNvFvHeaderCache);
}
+
FreePool (mVariableModuleGlobal);
return Status;
}
@@ -3629,16 +3760,18 @@ VariableCommonInitialize (
//
// Allocate memory for volatile variable store, note that there is a scratch space to store scratch data.
//
- ScratchSize = GetMaxVariableSize ();
+ ScratchSize = GetMaxVariableSize ();
mVariableModuleGlobal->ScratchBufferSize = ScratchSize;
- VolatileVariableStore = AllocateRuntimePool (PcdGet32 (PcdVariableStoreSize) + ScratchSize);
+ VolatileVariableStore = AllocateRuntimePool (PcdGet32 (PcdVariableStoreSize) + ScratchSize);
if (VolatileVariableStore == NULL) {
if (mVariableModuleGlobal->VariableGlobal.HobVariableBase != 0) {
- FreePool ((VOID *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase);
+ FreePool ((VOID *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase);
}
+
if (mNvFvHeaderCache != NULL) {
FreePool (mNvFvHeaderCache);
}
+
FreePool (mVariableModuleGlobal);
return EFI_OUT_OF_RESOURCES;
}
@@ -3648,20 +3781,19 @@ VariableCommonInitialize (
//
// Initialize Variable Specific Data.
//
- mVariableModuleGlobal->VariableGlobal.VolatileVariableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) VolatileVariableStore;
- mVariableModuleGlobal->VolatileLastVariableOffset = (UINTN) GetStartPointer (VolatileVariableStore) - (UINTN) VolatileVariableStore;
+ mVariableModuleGlobal->VariableGlobal.VolatileVariableBase = (EFI_PHYSICAL_ADDRESS)(UINTN)VolatileVariableStore;
+ mVariableModuleGlobal->VolatileLastVariableOffset = (UINTN)GetStartPointer (VolatileVariableStore) - (UINTN)VolatileVariableStore;
CopyGuid (&VolatileVariableStore->Signature, VariableGuid);
- VolatileVariableStore->Size = PcdGet32 (PcdVariableStoreSize);
- VolatileVariableStore->Format = VARIABLE_STORE_FORMATTED;
- VolatileVariableStore->State = VARIABLE_STORE_HEALTHY;
- VolatileVariableStore->Reserved = 0;
- VolatileVariableStore->Reserved1 = 0;
+ VolatileVariableStore->Size = PcdGet32 (PcdVariableStoreSize);
+ VolatileVariableStore->Format = VARIABLE_STORE_FORMATTED;
+ VolatileVariableStore->State = VARIABLE_STORE_HEALTHY;
+ VolatileVariableStore->Reserved = 0;
+ VolatileVariableStore->Reserved1 = 0;
return EFI_SUCCESS;
}
-
/**
Get the proper fvb handle and/or fvb protocol by the given Flash address.
@@ -3677,15 +3809,15 @@ GetFvbInfoByAddress (
OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvbProtocol OPTIONAL
)
{
- EFI_STATUS Status;
- EFI_HANDLE *HandleBuffer;
- UINTN HandleCount;
- UINTN Index;
- EFI_PHYSICAL_ADDRESS FvbBaseAddress;
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
- EFI_FVB_ATTRIBUTES_2 Attributes;
- UINTN BlockSize;
- UINTN NumberOfBlocks;
+ EFI_STATUS Status;
+ EFI_HANDLE *HandleBuffer;
+ UINTN HandleCount;
+ UINTN Index;
+ EFI_PHYSICAL_ADDRESS FvbBaseAddress;
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
+ EFI_FVB_ATTRIBUTES_2 Attributes;
+ UINTN BlockSize;
+ UINTN NumberOfBlocks;
HandleBuffer = NULL;
//
@@ -3733,15 +3865,18 @@ GetFvbInfoByAddress (
if ((Address >= FvbBaseAddress) && (Address < (FvbBaseAddress + BlockSize * NumberOfBlocks))) {
if (FvbHandle != NULL) {
- *FvbHandle = HandleBuffer[Index];
+ *FvbHandle = HandleBuffer[Index];
}
+
if (FvbProtocol != NULL) {
*FvbProtocol = Fvb;
}
+
Status = EFI_SUCCESS;
break;
}
}
+
FreePool (HandleBuffer);
if (Fvb == NULL) {
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h
index 0b2bb6a..31e4089 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h
@@ -40,12 +40,12 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "PrivilegePolymorphic.h"
-#define NV_STORAGE_VARIABLE_BASE (EFI_PHYSICAL_ADDRESS) \
+#define NV_STORAGE_VARIABLE_BASE (EFI_PHYSICAL_ADDRESS)\
(PcdGet64 (PcdFlashNvStorageVariableBase64) != 0 ? \
PcdGet64 (PcdFlashNvStorageVariableBase64) : \
PcdGet32 (PcdFlashNvStorageVariableBase))
-#define EFI_VARIABLE_ATTRIBUTES_MASK (EFI_VARIABLE_NON_VOLATILE | \
+#define EFI_VARIABLE_ATTRIBUTES_MASK (EFI_VARIABLE_NON_VOLATILE |\
EFI_VARIABLE_BOOTSERVICE_ACCESS | \
EFI_VARIABLE_RUNTIME_ACCESS | \
EFI_VARIABLE_HARDWARE_ERROR_RECORD | \
@@ -55,7 +55,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
///
/// The size of a 3 character ISO639 language code.
///
-#define ISO_639_2_ENTRY_SIZE 3
+#define ISO_639_2_ENTRY_SIZE 3
typedef enum {
VariableStoreTypeVolatile,
@@ -65,65 +65,65 @@ typedef enum {
} VARIABLE_STORE_TYPE;
typedef struct {
- UINT32 PendingUpdateOffset;
- UINT32 PendingUpdateLength;
- VARIABLE_STORE_HEADER *Store;
+ UINT32 PendingUpdateOffset;
+ UINT32 PendingUpdateLength;
+ VARIABLE_STORE_HEADER *Store;
} VARIABLE_RUNTIME_CACHE;
typedef struct {
- BOOLEAN *ReadLock;
- BOOLEAN *PendingUpdate;
- BOOLEAN *HobFlushComplete;
- VARIABLE_RUNTIME_CACHE VariableRuntimeHobCache;
- VARIABLE_RUNTIME_CACHE VariableRuntimeNvCache;
- VARIABLE_RUNTIME_CACHE VariableRuntimeVolatileCache;
+ BOOLEAN *ReadLock;
+ BOOLEAN *PendingUpdate;
+ BOOLEAN *HobFlushComplete;
+ VARIABLE_RUNTIME_CACHE VariableRuntimeHobCache;
+ VARIABLE_RUNTIME_CACHE VariableRuntimeNvCache;
+ VARIABLE_RUNTIME_CACHE VariableRuntimeVolatileCache;
} VARIABLE_RUNTIME_CACHE_CONTEXT;
typedef struct {
- VARIABLE_HEADER *CurrPtr;
+ VARIABLE_HEADER *CurrPtr;
//
// If both ADDED and IN_DELETED_TRANSITION variable are present,
// InDeletedTransitionPtr will point to the IN_DELETED_TRANSITION one.
// Otherwise, CurrPtr will point to the ADDED or IN_DELETED_TRANSITION one,
// and InDeletedTransitionPtr will be NULL at the same time.
//
- VARIABLE_HEADER *InDeletedTransitionPtr;
- VARIABLE_HEADER *EndPtr;
- VARIABLE_HEADER *StartPtr;
- BOOLEAN Volatile;
+ VARIABLE_HEADER *InDeletedTransitionPtr;
+ VARIABLE_HEADER *EndPtr;
+ VARIABLE_HEADER *StartPtr;
+ BOOLEAN Volatile;
} VARIABLE_POINTER_TRACK;
typedef struct {
- EFI_PHYSICAL_ADDRESS HobVariableBase;
- EFI_PHYSICAL_ADDRESS VolatileVariableBase;
- EFI_PHYSICAL_ADDRESS NonVolatileVariableBase;
- VARIABLE_RUNTIME_CACHE_CONTEXT VariableRuntimeCacheContext;
- EFI_LOCK VariableServicesLock;
- UINT32 ReentrantState;
- BOOLEAN AuthFormat;
- BOOLEAN AuthSupport;
- BOOLEAN EmuNvMode;
+ EFI_PHYSICAL_ADDRESS HobVariableBase;
+ EFI_PHYSICAL_ADDRESS VolatileVariableBase;
+ EFI_PHYSICAL_ADDRESS NonVolatileVariableBase;
+ VARIABLE_RUNTIME_CACHE_CONTEXT VariableRuntimeCacheContext;
+ EFI_LOCK VariableServicesLock;
+ UINT32 ReentrantState;
+ BOOLEAN AuthFormat;
+ BOOLEAN AuthSupport;
+ BOOLEAN EmuNvMode;
} VARIABLE_GLOBAL;
typedef struct {
- VARIABLE_GLOBAL VariableGlobal;
- UINTN VolatileLastVariableOffset;
- UINTN NonVolatileLastVariableOffset;
- UINTN CommonVariableSpace;
- UINTN CommonMaxUserVariableSpace;
- UINTN CommonRuntimeVariableSpace;
- UINTN CommonVariableTotalSize;
- UINTN CommonUserVariableTotalSize;
- UINTN HwErrVariableTotalSize;
- UINTN MaxVariableSize;
- UINTN MaxAuthVariableSize;
- UINTN MaxVolatileVariableSize;
- UINTN ScratchBufferSize;
- CHAR8 *PlatformLangCodes;
- CHAR8 *LangCodes;
- CHAR8 *PlatformLang;
- CHAR8 Lang[ISO_639_2_ENTRY_SIZE + 1];
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbInstance;
+ VARIABLE_GLOBAL VariableGlobal;
+ UINTN VolatileLastVariableOffset;
+ UINTN NonVolatileLastVariableOffset;
+ UINTN CommonVariableSpace;
+ UINTN CommonMaxUserVariableSpace;
+ UINTN CommonRuntimeVariableSpace;
+ UINTN CommonVariableTotalSize;
+ UINTN CommonUserVariableTotalSize;
+ UINTN HwErrVariableTotalSize;
+ UINTN MaxVariableSize;
+ UINTN MaxAuthVariableSize;
+ UINTN MaxVolatileVariableSize;
+ UINTN ScratchBufferSize;
+ CHAR8 *PlatformLangCodes;
+ CHAR8 *LangCodes;
+ CHAR8 *PlatformLang;
+ CHAR8 Lang[ISO_639_2_ENTRY_SIZE + 1];
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbInstance;
} VARIABLE_MODULE_GLOBAL;
/**
@@ -135,8 +135,8 @@ typedef struct {
**/
VOID
FlushHobVariableToFlash (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
);
/**
@@ -218,8 +218,8 @@ FindVariable (
BOOLEAN
EFIAPI
CheckRemainingSpaceForConsistencyInternal (
- IN UINT32 Attributes,
- IN VA_LIST Marker
+ IN UINT32 Attributes,
+ IN VA_LIST Marker
);
/**
@@ -243,18 +243,17 @@ CheckRemainingSpaceForConsistencyInternal (
**/
EFI_STATUS
UpdateVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN VOID *Data,
- IN UINTN DataSize,
- IN UINT32 Attributes OPTIONAL,
- IN UINT32 KeyIndex OPTIONAL,
- IN UINT64 MonotonicCount OPTIONAL,
- IN OUT VARIABLE_POINTER_TRACK *Variable,
- IN EFI_TIME *TimeStamp OPTIONAL
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN VOID *Data,
+ IN UINTN DataSize,
+ IN UINT32 Attributes OPTIONAL,
+ IN UINT32 KeyIndex OPTIONAL,
+ IN UINT64 MonotonicCount OPTIONAL,
+ IN OUT VARIABLE_POINTER_TRACK *Variable,
+ IN EFI_TIME *TimeStamp OPTIONAL
);
-
/**
Return TRUE if ExitBootServices () has been called.
@@ -284,10 +283,9 @@ AtRuntime (
EFI_LOCK *
InitializeLock (
IN OUT EFI_LOCK *Lock,
- IN EFI_TPL Priority
+ IN EFI_TPL Priority
);
-
/**
Acquires lock only at boot time. Simply returns at runtime.
@@ -305,7 +303,6 @@ AcquireLockOnlyAtBootTime (
IN EFI_LOCK *Lock
);
-
/**
Releases lock only at boot time. Simply returns at runtime.
@@ -358,8 +355,8 @@ GetFvbByHandle (
**/
EFI_STATUS
GetFvbCountAndBuffer (
- OUT UINTN *NumberHandles,
- OUT EFI_HANDLE **Buffer
+ OUT UINTN *NumberHandles,
+ OUT EFI_HANDLE **Buffer
);
/**
@@ -379,7 +376,7 @@ VariableCommonInitialize (
**/
VOID
-ReclaimForOS(
+ReclaimForOS (
VOID
);
@@ -418,7 +415,7 @@ VariableWriteServiceInitialize (
**/
EFI_STATUS
GetFtwProtocol (
- OUT VOID **FtwProtocol
+ OUT VOID **FtwProtocol
);
/**
@@ -461,11 +458,11 @@ GetFvbInfoByAddress (
EFI_STATUS
EFIAPI
VariableServiceGetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT UINT32 *Attributes OPTIONAL,
- IN OUT UINTN *DataSize,
- OUT VOID *Data OPTIONAL
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data OPTIONAL
);
/**
@@ -496,9 +493,9 @@ VariableServiceGetVariable (
EFI_STATUS
EFIAPI
VariableServiceGetNextVariableName (
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VendorGuid
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VendorGuid
);
/**
@@ -529,11 +526,11 @@ VariableServiceGetNextVariableName (
EFI_STATUS
EFIAPI
VariableServiceSetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
);
/**
@@ -558,10 +555,10 @@ VariableServiceSetVariable (
EFI_STATUS
EFIAPI
VariableServiceQueryVariableInfoInternal (
- IN UINT32 Attributes,
- OUT UINT64 *MaximumVariableStorageSize,
- OUT UINT64 *RemainingVariableStorageSize,
- OUT UINT64 *MaximumVariableSize
+ IN UINT32 Attributes,
+ OUT UINT64 *MaximumVariableStorageSize,
+ OUT UINT64 *RemainingVariableStorageSize,
+ OUT UINT64 *MaximumVariableSize
);
/**
@@ -588,10 +585,10 @@ VariableServiceQueryVariableInfoInternal (
EFI_STATUS
EFIAPI
VariableServiceQueryVariableInfo (
- IN UINT32 Attributes,
- OUT UINT64 *MaximumVariableStorageSize,
- OUT UINT64 *RemainingVariableStorageSize,
- OUT UINT64 *MaximumVariableSize
+ IN UINT32 Attributes,
+ OUT UINT64 *MaximumVariableStorageSize,
+ OUT UINT64 *RemainingVariableStorageSize,
+ OUT UINT64 *MaximumVariableSize
);
/**
@@ -612,9 +609,9 @@ VariableServiceQueryVariableInfo (
EFI_STATUS
EFIAPI
VariableLockRequestToLock (
- IN CONST EDKII_VARIABLE_LOCK_PROTOCOL *This,
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CONST EDKII_VARIABLE_LOCK_PROTOCOL *This,
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
);
/**
@@ -634,7 +631,7 @@ VariableLockRequestToLock (
EFI_STATUS
EFIAPI
VarCheckRegisterSetVariableCheckHandler (
- IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
+ IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
);
/**
@@ -655,9 +652,9 @@ VarCheckRegisterSetVariableCheckHandler (
EFI_STATUS
EFIAPI
VarCheckVariablePropertySet (
- IN CHAR16 *Name,
- IN EFI_GUID *Guid,
- IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
+ IN CHAR16 *Name,
+ IN EFI_GUID *Guid,
+ IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
);
/**
@@ -675,9 +672,9 @@ VarCheckVariablePropertySet (
EFI_STATUS
EFIAPI
VarCheckVariablePropertyGet (
- IN CHAR16 *Name,
- IN EFI_GUID *Guid,
- OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
+ IN CHAR16 *Name,
+ IN EFI_GUID *Guid,
+ OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
);
/**
@@ -689,14 +686,14 @@ InitializeVariableQuota (
VOID
);
-extern VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
-extern EFI_FIRMWARE_VOLUME_HEADER *mNvFvHeaderCache;
-extern VARIABLE_STORE_HEADER *mNvVariableCache;
-extern VARIABLE_INFO_ENTRY *gVariableInfo;
-extern BOOLEAN mEndOfDxe;
-extern VAR_CHECK_REQUEST_SOURCE mRequestSource;
+extern VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
+extern EFI_FIRMWARE_VOLUME_HEADER *mNvFvHeaderCache;
+extern VARIABLE_STORE_HEADER *mNvVariableCache;
+extern VARIABLE_INFO_ENTRY *gVariableInfo;
+extern BOOLEAN mEndOfDxe;
+extern VAR_CHECK_REQUEST_SOURCE mRequestSource;
-extern AUTH_VAR_LIB_CONTEXT_OUT mAuthContextOut;
+extern AUTH_VAR_LIB_CONTEXT_OUT mAuthContextOut;
/**
Finds variable in storage blocks of volatile and non-volatile storage areas.
@@ -719,9 +716,9 @@ extern AUTH_VAR_LIB_CONTEXT_OUT mAuthContextOut;
EFI_STATUS
EFIAPI
VariableExLibFindVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT AUTH_VARIABLE_INFO *AuthVariableInfo
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT AUTH_VARIABLE_INFO *AuthVariableInfo
);
/**
@@ -745,9 +742,9 @@ VariableExLibFindVariable (
EFI_STATUS
EFIAPI
VariableExLibFindNextVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT AUTH_VARIABLE_INFO *AuthVariableInfo
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT AUTH_VARIABLE_INFO *AuthVariableInfo
);
/**
@@ -765,7 +762,7 @@ VariableExLibFindNextVariable (
EFI_STATUS
EFIAPI
VariableExLibUpdateVariable (
- IN AUTH_VARIABLE_INFO *AuthVariableInfo
+ IN AUTH_VARIABLE_INFO *AuthVariableInfo
);
/**
@@ -783,8 +780,8 @@ VariableExLibUpdateVariable (
EFI_STATUS
EFIAPI
VariableExLibGetScratchBuffer (
- IN OUT UINTN *ScratchBufferSize,
- OUT VOID **ScratchBuffer
+ IN OUT UINTN *ScratchBufferSize,
+ OUT VOID **ScratchBuffer
);
/**
@@ -809,7 +806,7 @@ VariableExLibGetScratchBuffer (
BOOLEAN
EFIAPI
VariableExLibCheckRemainingSpaceForConsistency (
- IN UINT32 Attributes,
+ IN UINT32 Attributes,
...
);
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
index 9f19d73..03fec30 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
@@ -18,24 +18,28 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
ProtocolIsVariablePolicyEnabled (
- OUT BOOLEAN *State
+ OUT BOOLEAN *State
);
-EFI_HANDLE mHandle = NULL;
-EFI_EVENT mVirtualAddressChangeEvent = NULL;
-VOID *mFtwRegistration = NULL;
-VOID ***mVarCheckAddressPointer = NULL;
-UINTN mVarCheckAddressPointerCount = 0;
-EDKII_VARIABLE_LOCK_PROTOCOL mVariableLock = { VariableLockRequestToLock };
-EDKII_VARIABLE_POLICY_PROTOCOL mVariablePolicyProtocol = { EDKII_VARIABLE_POLICY_PROTOCOL_REVISION,
- DisableVariablePolicy,
- ProtocolIsVariablePolicyEnabled,
- RegisterVariablePolicy,
- DumpVariablePolicy,
- LockVariablePolicy };
-EDKII_VAR_CHECK_PROTOCOL mVarCheck = { VarCheckRegisterSetVariableCheckHandler,
- VarCheckVariablePropertySet,
- VarCheckVariablePropertyGet };
+EFI_HANDLE mHandle = NULL;
+EFI_EVENT mVirtualAddressChangeEvent = NULL;
+VOID *mFtwRegistration = NULL;
+VOID ***mVarCheckAddressPointer = NULL;
+UINTN mVarCheckAddressPointerCount = 0;
+EDKII_VARIABLE_LOCK_PROTOCOL mVariableLock = { VariableLockRequestToLock };
+EDKII_VARIABLE_POLICY_PROTOCOL mVariablePolicyProtocol = {
+ EDKII_VARIABLE_POLICY_PROTOCOL_REVISION,
+ DisableVariablePolicy,
+ ProtocolIsVariablePolicyEnabled,
+ RegisterVariablePolicy,
+ DumpVariablePolicy,
+ LockVariablePolicy
+};
+EDKII_VAR_CHECK_PROTOCOL mVarCheck = {
+ VarCheckRegisterSetVariableCheckHandler,
+ VarCheckVariablePropertySet,
+ VarCheckVariablePropertyGet
+};
/**
Some Secure Boot Policy Variable may update following other variable changes(SecureBoot follows PK change, etc).
@@ -44,7 +48,7 @@ EDKII_VAR_CHECK_PROTOCOL mVarCheck = { VarCheckRegis
**/
VOID
EFIAPI
-RecordSecureBootPolicyVarData(
+RecordSecureBootPolicyVarData (
VOID
);
@@ -61,7 +65,6 @@ AtRuntime (
return EfiAtRuntime ();
}
-
/**
Initializes a basic mutual exclusion lock.
@@ -80,14 +83,13 @@ AtRuntime (
**/
EFI_LOCK *
InitializeLock (
- IN OUT EFI_LOCK *Lock,
- IN EFI_TPL Priority
+ IN OUT EFI_LOCK *Lock,
+ IN EFI_TPL Priority
)
{
return EfiInitializeLock (Lock, Priority);
}
-
/**
Acquires lock only at boot time. Simply returns at runtime.
@@ -102,7 +104,7 @@ InitializeLock (
**/
VOID
AcquireLockOnlyAtBootTime (
- IN EFI_LOCK *Lock
+ IN EFI_LOCK *Lock
)
{
if (!AtRuntime ()) {
@@ -110,7 +112,6 @@ AcquireLockOnlyAtBootTime (
}
}
-
/**
Releases lock only at boot time. Simply returns at runtime.
@@ -125,7 +126,7 @@ AcquireLockOnlyAtBootTime (
**/
VOID
ReleaseLockOnlyAtBootTime (
- IN EFI_LOCK *Lock
+ IN EFI_LOCK *Lock
)
{
if (!AtRuntime ()) {
@@ -145,10 +146,10 @@ ReleaseLockOnlyAtBootTime (
**/
EFI_STATUS
GetFtwProtocol (
- OUT VOID **FtwProtocol
+ OUT VOID **FtwProtocol
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate Fault Tolerent Write protocol
@@ -185,11 +186,10 @@ GetFvbByHandle (
return gBS->HandleProtocol (
FvBlockHandle,
&gEfiFirmwareVolumeBlockProtocolGuid,
- (VOID **) FvBlock
+ (VOID **)FvBlock
);
}
-
/**
Function returns an array of handles that support the FVB protocol
in a buffer allocated from pool.
@@ -207,11 +207,11 @@ GetFvbByHandle (
**/
EFI_STATUS
GetFvbCountAndBuffer (
- OUT UINTN *NumberHandles,
- OUT EFI_HANDLE **Buffer
+ OUT UINTN *NumberHandles,
+ OUT EFI_HANDLE **Buffer
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate all handles of Fvb protocol
@@ -226,7 +226,6 @@ GetFvbCountAndBuffer (
return Status;
}
-
/**
Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.
@@ -240,46 +239,46 @@ GetFvbCountAndBuffer (
VOID
EFIAPI
VariableClassAddressChangeEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- UINTN Index;
+ UINTN Index;
if (mVariableModuleGlobal->FvbInstance != NULL) {
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->GetBlockSize);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->GetPhysicalAddress);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->GetAttributes);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->SetAttributes);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->Read);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->Write);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->EraseBlocks);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->GetBlockSize);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->GetPhysicalAddress);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->GetAttributes);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->SetAttributes);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->Read);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->Write);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance->EraseBlocks);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->FvbInstance);
}
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->PlatformLangCodes);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->LangCodes);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->PlatformLang);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->VariableGlobal.VolatileVariableBase);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->VariableGlobal.HobVariableBase);
- EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal);
- EfiConvertPointer (0x0, (VOID **) &mNvVariableCache);
- EfiConvertPointer (0x0, (VOID **) &mNvFvHeaderCache);
+
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->PlatformLangCodes);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->LangCodes);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->PlatformLang);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->VariableGlobal.VolatileVariableBase);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal->VariableGlobal.HobVariableBase);
+ EfiConvertPointer (0x0, (VOID **)&mVariableModuleGlobal);
+ EfiConvertPointer (0x0, (VOID **)&mNvVariableCache);
+ EfiConvertPointer (0x0, (VOID **)&mNvFvHeaderCache);
if (mAuthContextOut.AddressPointer != NULL) {
for (Index = 0; Index < mAuthContextOut.AddressPointerCount; Index++) {
- EfiConvertPointer (0x0, (VOID **) mAuthContextOut.AddressPointer[Index]);
+ EfiConvertPointer (0x0, (VOID **)mAuthContextOut.AddressPointer[Index]);
}
}
if (mVarCheckAddressPointer != NULL) {
for (Index = 0; Index < mVarCheckAddressPointerCount; Index++) {
- EfiConvertPointer (0x0, (VOID **) mVarCheckAddressPointer[Index]);
+ EfiConvertPointer (0x0, (VOID **)mVarCheckAddressPointer[Index]);
}
}
}
-
/**
Notification function of EVT_GROUP_READY_TO_BOOT event group.
@@ -294,11 +293,11 @@ VariableClassAddressChangeEvent (
VOID
EFIAPI
OnReadyToBoot (
- EFI_EVENT Event,
- VOID *Context
+ EFI_EVENT Event,
+ VOID *Context
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (!mEndOfDxe) {
MorLockInitAtEndOfDxe ();
@@ -308,13 +307,14 @@ OnReadyToBoot (
//
// Set the End Of DXE bit in case the EFI_END_OF_DXE_EVENT_GROUP_GUID event is not signaled.
//
- mEndOfDxe = TRUE;
+ mEndOfDxe = TRUE;
mVarCheckAddressPointer = VarCheckLibInitializeAtEndOfDxe (&mVarCheckAddressPointerCount);
//
// The initialization for variable quota.
//
InitializeVariableQuota ();
}
+
ReclaimForOS ();
if (FeaturePcdGet (PcdVariableCollectStatistics)) {
if (mVariableModuleGlobal->VariableGlobal.AuthFormat) {
@@ -339,17 +339,17 @@ OnReadyToBoot (
VOID
EFIAPI
OnEndOfDxe (
- EFI_EVENT Event,
- VOID *Context
+ EFI_EVENT Event,
+ VOID *Context
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
DEBUG ((DEBUG_INFO, "[Variable]END_OF_DXE is signaled\n"));
MorLockInitAtEndOfDxe ();
Status = LockVariablePolicy ();
ASSERT_EFI_ERROR (Status);
- mEndOfDxe = TRUE;
+ mEndOfDxe = TRUE;
mVarCheckAddressPointer = VarCheckLibInitializeAtEndOfDxe (&mVarCheckAddressPointerCount);
//
// The initialization for variable quota.
@@ -371,7 +371,7 @@ VariableWriteServiceInitializeDxe (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = VariableWriteServiceInitialize ();
if (EFI_ERROR (Status)) {
@@ -382,7 +382,7 @@ VariableWriteServiceInitializeDxe (
// Some Secure Boot Policy Var (SecureBoot, etc) updates following other
// Secure Boot Policy Variable change. Record their initial value.
//
- RecordSecureBootPolicyVarData();
+ RecordSecureBootPolicyVarData ();
//
// Install the Variable Write Architectural protocol.
@@ -409,27 +409,27 @@ VariableWriteServiceInitializeDxe (
VOID
EFIAPI
FtwNotificationEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbProtocol;
- EFI_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
- EFI_PHYSICAL_ADDRESS NvStorageVariableBase;
- EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor;
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
- EFI_PHYSICAL_ADDRESS VariableStoreBase;
- UINT64 VariableStoreLength;
- UINTN FtwMaxBlockSize;
+ EFI_STATUS Status;
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvbProtocol;
+ EFI_FAULT_TOLERANT_WRITE_PROTOCOL *FtwProtocol;
+ EFI_PHYSICAL_ADDRESS NvStorageVariableBase;
+ EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor;
+ EFI_PHYSICAL_ADDRESS BaseAddress;
+ UINT64 Length;
+ EFI_PHYSICAL_ADDRESS VariableStoreBase;
+ UINT64 VariableStoreLength;
+ UINTN FtwMaxBlockSize;
//
// Ensure FTW protocol is installed.
//
- Status = GetFtwProtocol ((VOID**) &FtwProtocol);
+ Status = GetFtwProtocol ((VOID **)&FtwProtocol);
if (EFI_ERROR (Status)) {
- return ;
+ return;
}
Status = FtwProtocol->GetMaxBlockSize (FtwProtocol, &FtwMaxBlockSize);
@@ -438,7 +438,7 @@ FtwNotificationEvent (
}
NvStorageVariableBase = NV_STORAGE_VARIABLE_BASE;
- VariableStoreBase = NvStorageVariableBase + mNvFvHeaderCache->HeaderLength;
+ VariableStoreBase = NvStorageVariableBase + mNvFvHeaderCache->HeaderLength;
//
// Let NonVolatileVariableBase point to flash variable store base directly after FTW ready.
@@ -450,19 +450,20 @@ FtwNotificationEvent (
//
Status = GetFvbInfoByAddress (NvStorageVariableBase, NULL, &FvbProtocol);
if (EFI_ERROR (Status)) {
- return ;
+ return;
}
+
mVariableModuleGlobal->FvbInstance = FvbProtocol;
//
// Mark the variable storage region of the FLASH as RUNTIME.
//
VariableStoreLength = mNvVariableCache->Size;
- BaseAddress = VariableStoreBase & (~EFI_PAGE_MASK);
- Length = VariableStoreLength + (VariableStoreBase - BaseAddress);
- Length = (Length + EFI_PAGE_SIZE - 1) & (~EFI_PAGE_MASK);
+ BaseAddress = VariableStoreBase & (~EFI_PAGE_MASK);
+ Length = VariableStoreLength + (VariableStoreBase - BaseAddress);
+ Length = (Length + EFI_PAGE_SIZE - 1) & (~EFI_PAGE_MASK);
- Status = gDS->GetMemorySpaceDescriptor (BaseAddress, &GcdDescriptor);
+ Status = gDS->GetMemorySpaceDescriptor (BaseAddress, &GcdDescriptor);
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_WARN, "Variable driver failed to get flash memory attribute.\n"));
} else {
@@ -487,10 +488,8 @@ FtwNotificationEvent (
// Close the notify event to avoid install gEfiVariableWriteArchProtocolGuid again.
//
gBS->CloseEvent (Event);
-
}
-
/**
This API function returns whether or not the policy engine is
currently being enforced.
@@ -505,14 +504,13 @@ FtwNotificationEvent (
EFI_STATUS
EFIAPI
ProtocolIsVariablePolicyEnabled (
- OUT BOOLEAN *State
+ OUT BOOLEAN *State
)
{
*State = IsVariablePolicyEnabled ();
return EFI_SUCCESS;
}
-
/**
Variable Driver main entry point. The Variable driver places the 4 EFI
runtime services in the EFI System Table and installs arch protocols
@@ -528,13 +526,13 @@ ProtocolIsVariablePolicyEnabled (
EFI_STATUS
EFIAPI
VariableServiceInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- EFI_EVENT ReadyToBootEvent;
- EFI_EVENT EndOfDxeEvent;
+ EFI_STATUS Status;
+ EFI_EVENT ReadyToBootEvent;
+ EFI_EVENT EndOfDxeEvent;
Status = VariableCommonInitialize ();
ASSERT_EFI_ERROR (Status);
@@ -629,11 +627,11 @@ VariableServiceInitialize (
Status = VarCheckRegisterSetVariableCheckHandler (ValidateSetVariable);
ASSERT_EFI_ERROR (Status);
Status = gBS->InstallMultipleProtocolInterfaces (
- &mHandle,
- &gEdkiiVariablePolicyProtocolGuid,
- &mVariablePolicyProtocol,
- NULL
- );
+ &mHandle,
+ &gEdkiiVariablePolicyProtocolGuid,
+ &mVariablePolicyProtocol,
+ NULL
+ );
ASSERT_EFI_ERROR (Status);
return EFI_SUCCESS;
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableExLib.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableExLib.c
index e865a08..62cde03 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableExLib.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableExLib.c
@@ -30,14 +30,14 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_STATUS
EFIAPI
VariableExLibFindVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT AUTH_VARIABLE_INFO *AuthVariableInfo
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT AUTH_VARIABLE_INFO *AuthVariableInfo
)
{
- EFI_STATUS Status;
- VARIABLE_POINTER_TRACK Variable;
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ EFI_STATUS Status;
+ VARIABLE_POINTER_TRACK Variable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
Status = FindVariable (
VariableName,
@@ -47,23 +47,23 @@ VariableExLibFindVariable (
FALSE
);
if (EFI_ERROR (Status)) {
- AuthVariableInfo->Data = NULL;
- AuthVariableInfo->DataSize = 0;
- AuthVariableInfo->Attributes = 0;
- AuthVariableInfo->PubKeyIndex = 0;
+ AuthVariableInfo->Data = NULL;
+ AuthVariableInfo->DataSize = 0;
+ AuthVariableInfo->Attributes = 0;
+ AuthVariableInfo->PubKeyIndex = 0;
AuthVariableInfo->MonotonicCount = 0;
- AuthVariableInfo->TimeStamp = NULL;
+ AuthVariableInfo->TimeStamp = NULL;
return Status;
}
- AuthVariableInfo->DataSize = DataSizeOfVariable (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- AuthVariableInfo->Data = GetVariableDataPtr (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- AuthVariableInfo->Attributes = Variable.CurrPtr->Attributes;
+ AuthVariableInfo->DataSize = DataSizeOfVariable (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ AuthVariableInfo->Data = GetVariableDataPtr (Variable.CurrPtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ AuthVariableInfo->Attributes = Variable.CurrPtr->Attributes;
if (mVariableModuleGlobal->VariableGlobal.AuthFormat) {
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable.CurrPtr;
- AuthVariableInfo->PubKeyIndex = AuthVariable->PubKeyIndex;
- AuthVariableInfo->MonotonicCount = ReadUnaligned64 (&(AuthVariable->MonotonicCount));
- AuthVariableInfo->TimeStamp = &AuthVariable->TimeStamp;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable.CurrPtr;
+ AuthVariableInfo->PubKeyIndex = AuthVariable->PubKeyIndex;
+ AuthVariableInfo->MonotonicCount = ReadUnaligned64 (&(AuthVariable->MonotonicCount));
+ AuthVariableInfo->TimeStamp = &AuthVariable->TimeStamp;
}
return EFI_SUCCESS;
@@ -90,18 +90,18 @@ VariableExLibFindVariable (
EFI_STATUS
EFIAPI
VariableExLibFindNextVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT AUTH_VARIABLE_INFO *AuthVariableInfo
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT AUTH_VARIABLE_INFO *AuthVariableInfo
)
{
- EFI_STATUS Status;
- VARIABLE_HEADER *VariablePtr;
- AUTHENTICATED_VARIABLE_HEADER *AuthVariablePtr;
- VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
+ EFI_STATUS Status;
+ VARIABLE_HEADER *VariablePtr;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariablePtr;
+ VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
- VariableStoreHeader[VariableStoreTypeVolatile] = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
- VariableStoreHeader[VariableStoreTypeHob] = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase;
+ VariableStoreHeader[VariableStoreTypeVolatile] = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
+ VariableStoreHeader[VariableStoreTypeHob] = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase;
VariableStoreHeader[VariableStoreTypeNv] = mNvVariableCache;
Status = VariableServiceGetNextVariableInternal (
@@ -112,27 +112,27 @@ VariableExLibFindNextVariable (
mVariableModuleGlobal->VariableGlobal.AuthFormat
);
if (EFI_ERROR (Status)) {
- AuthVariableInfo->VariableName = NULL;
- AuthVariableInfo->VendorGuid = NULL;
- AuthVariableInfo->Data = NULL;
- AuthVariableInfo->DataSize = 0;
- AuthVariableInfo->Attributes = 0;
- AuthVariableInfo->PubKeyIndex = 0;
+ AuthVariableInfo->VariableName = NULL;
+ AuthVariableInfo->VendorGuid = NULL;
+ AuthVariableInfo->Data = NULL;
+ AuthVariableInfo->DataSize = 0;
+ AuthVariableInfo->Attributes = 0;
+ AuthVariableInfo->PubKeyIndex = 0;
AuthVariableInfo->MonotonicCount = 0;
- AuthVariableInfo->TimeStamp = NULL;
+ AuthVariableInfo->TimeStamp = NULL;
return Status;
}
- AuthVariableInfo->VariableName = GetVariableNamePtr (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- AuthVariableInfo->VendorGuid = GetVendorGuidPtr (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- AuthVariableInfo->DataSize = DataSizeOfVariable (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- AuthVariableInfo->Data = GetVariableDataPtr (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- AuthVariableInfo->Attributes = VariablePtr->Attributes;
+ AuthVariableInfo->VariableName = GetVariableNamePtr (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ AuthVariableInfo->VendorGuid = GetVendorGuidPtr (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ AuthVariableInfo->DataSize = DataSizeOfVariable (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ AuthVariableInfo->Data = GetVariableDataPtr (VariablePtr, mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ AuthVariableInfo->Attributes = VariablePtr->Attributes;
if (mVariableModuleGlobal->VariableGlobal.AuthFormat) {
- AuthVariablePtr = (AUTHENTICATED_VARIABLE_HEADER *) VariablePtr;
- AuthVariableInfo->PubKeyIndex = AuthVariablePtr->PubKeyIndex;
- AuthVariableInfo->MonotonicCount = ReadUnaligned64 (&(AuthVariablePtr->MonotonicCount));
- AuthVariableInfo->TimeStamp = &AuthVariablePtr->TimeStamp;
+ AuthVariablePtr = (AUTHENTICATED_VARIABLE_HEADER *)VariablePtr;
+ AuthVariableInfo->PubKeyIndex = AuthVariablePtr->PubKeyIndex;
+ AuthVariableInfo->MonotonicCount = ReadUnaligned64 (&(AuthVariablePtr->MonotonicCount));
+ AuthVariableInfo->TimeStamp = &AuthVariablePtr->TimeStamp;
}
return EFI_SUCCESS;
@@ -153,10 +153,10 @@ VariableExLibFindNextVariable (
EFI_STATUS
EFIAPI
VariableExLibUpdateVariable (
- IN AUTH_VARIABLE_INFO *AuthVariableInfo
+ IN AUTH_VARIABLE_INFO *AuthVariableInfo
)
{
- VARIABLE_POINTER_TRACK Variable;
+ VARIABLE_POINTER_TRACK Variable;
FindVariable (AuthVariableInfo->VariableName, AuthVariableInfo->VendorGuid, &Variable, &mVariableModuleGlobal->VariableGlobal, FALSE);
return UpdateVariable (
@@ -187,11 +187,11 @@ VariableExLibUpdateVariable (
EFI_STATUS
EFIAPI
VariableExLibGetScratchBuffer (
- IN OUT UINTN *ScratchBufferSize,
- OUT VOID **ScratchBuffer
+ IN OUT UINTN *ScratchBufferSize,
+ OUT VOID **ScratchBuffer
)
{
- UINTN MaxBufferSize;
+ UINTN MaxBufferSize;
MaxBufferSize = mVariableModuleGlobal->ScratchBufferSize;
if (*ScratchBufferSize > MaxBufferSize) {
@@ -199,7 +199,7 @@ VariableExLibGetScratchBuffer (
return EFI_UNSUPPORTED;
}
- *ScratchBuffer = GetEndPointer ((VARIABLE_STORE_HEADER *) ((UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase));
+ *ScratchBuffer = GetEndPointer ((VARIABLE_STORE_HEADER *)((UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase));
return EFI_SUCCESS;
}
@@ -225,12 +225,12 @@ VariableExLibGetScratchBuffer (
BOOLEAN
EFIAPI
VariableExLibCheckRemainingSpaceForConsistency (
- IN UINT32 Attributes,
+ IN UINT32 Attributes,
...
)
{
- VA_LIST Marker;
- BOOLEAN Return;
+ VA_LIST Marker;
+ BOOLEAN Return;
VA_START (Marker, Attributes);
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequestToLock.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequestToLock.c
index 4e1efef..d849ee9 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequestToLock.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableLockRequestToLock.c
@@ -53,17 +53,17 @@ VariableLockRequestToLock (
DEBUG ((DEBUG_WARN, "!!! DEPRECATED INTERFACE !!! Variable: %g %s\n", VendorGuid, VariableName));
NewPolicy = NULL;
- Status = CreateBasicVariablePolicy(
- VendorGuid,
- VariableName,
- VARIABLE_POLICY_NO_MIN_SIZE,
- VARIABLE_POLICY_NO_MAX_SIZE,
- VARIABLE_POLICY_NO_MUST_ATTR,
- VARIABLE_POLICY_NO_CANT_ATTR,
- VARIABLE_POLICY_TYPE_LOCK_NOW,
- &NewPolicy
- );
- if (!EFI_ERROR( Status )) {
+ Status = CreateBasicVariablePolicy (
+ VendorGuid,
+ VariableName,
+ VARIABLE_POLICY_NO_MIN_SIZE,
+ VARIABLE_POLICY_NO_MAX_SIZE,
+ VARIABLE_POLICY_NO_MUST_ATTR,
+ VARIABLE_POLICY_NO_CANT_ATTR,
+ VARIABLE_POLICY_TYPE_LOCK_NOW,
+ &NewPolicy
+ );
+ if (!EFI_ERROR (Status)) {
Status = RegisterVariablePolicy (NewPolicy);
//
@@ -83,11 +83,13 @@ VariableLockRequestToLock (
}
}
}
+
if (EFI_ERROR (Status)) {
- DEBUG(( DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, VariableName, Status ));
+ DEBUG ((DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, VariableName, Status));
}
+
if (NewPolicy != NULL) {
- FreePool( NewPolicy );
+ FreePool (NewPolicy);
}
return Status;
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c
index 0637a82..5e9d40b 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c
@@ -23,8 +23,10 @@ GetNonVolatileMaxVariableSize (
)
{
if (PcdGet32 (PcdHwErrStorageSize) != 0) {
- return MAX (MAX (PcdGet32 (PcdMaxVariableSize), PcdGet32 (PcdMaxAuthVariableSize)),
- PcdGet32 (PcdMaxHardwareErrorVariableSize));
+ return MAX (
+ MAX (PcdGet32 (PcdMaxVariableSize), PcdGet32 (PcdMaxAuthVariableSize)),
+ PcdGet32 (PcdMaxHardwareErrorVariableSize)
+ );
} else {
return MAX (PcdGet32 (PcdMaxVariableSize), PcdGet32 (PcdMaxAuthVariableSize));
}
@@ -44,10 +46,10 @@ InitEmuNonVolatileVariableStore (
OUT EFI_PHYSICAL_ADDRESS *VariableStoreBase
)
{
- VARIABLE_STORE_HEADER *VariableStore;
- UINT32 VariableStoreLength;
- BOOLEAN FullyInitializeStore;
- UINT32 HwErrStorageSize;
+ VARIABLE_STORE_HEADER *VariableStore;
+ UINT32 VariableStoreLength;
+ BOOLEAN FullyInitializeStore;
+ UINT32 HwErrStorageSize;
FullyInitializeStore = TRUE;
@@ -58,7 +60,7 @@ InitEmuNonVolatileVariableStore (
// Allocate memory for variable store.
//
if (PcdGet64 (PcdEmuVariableNvStoreReserved) == 0) {
- VariableStore = (VARIABLE_STORE_HEADER *) AllocateRuntimePool (VariableStoreLength);
+ VariableStore = (VARIABLE_STORE_HEADER *)AllocateRuntimePool (VariableStoreLength);
if (VariableStore == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -69,14 +71,15 @@ InitEmuNonVolatileVariableStore (
// thereby providing better NV variable emulation.
//
VariableStore =
- (VARIABLE_STORE_HEADER *)(VOID*)(UINTN)
- PcdGet64 (PcdEmuVariableNvStoreReserved);
+ (VARIABLE_STORE_HEADER *)(VOID *)(UINTN)
+ PcdGet64 (PcdEmuVariableNvStoreReserved);
if ((VariableStore->Size == VariableStoreLength) &&
(CompareGuid (&VariableStore->Signature, &gEfiAuthenticatedVariableGuid) ||
CompareGuid (&VariableStore->Signature, &gEfiVariableGuid)) &&
(VariableStore->Format == VARIABLE_STORE_FORMATTED) &&
- (VariableStore->State == VARIABLE_STORE_HEALTHY)) {
- DEBUG((
+ (VariableStore->State == VARIABLE_STORE_HEALTHY))
+ {
+ DEBUG ((
DEBUG_INFO,
"Variable Store reserved at %p appears to be valid\n",
VariableStore
@@ -91,14 +94,14 @@ InitEmuNonVolatileVariableStore (
// Use gEfiAuthenticatedVariableGuid for potential auth variable support.
//
CopyGuid (&VariableStore->Signature, &gEfiAuthenticatedVariableGuid);
- VariableStore->Size = VariableStoreLength;
- VariableStore->Format = VARIABLE_STORE_FORMATTED;
- VariableStore->State = VARIABLE_STORE_HEALTHY;
- VariableStore->Reserved = 0;
- VariableStore->Reserved1 = 0;
+ VariableStore->Size = VariableStoreLength;
+ VariableStore->Format = VARIABLE_STORE_FORMATTED;
+ VariableStore->State = VARIABLE_STORE_HEALTHY;
+ VariableStore->Reserved = 0;
+ VariableStore->Reserved1 = 0;
}
- *VariableStoreBase = (EFI_PHYSICAL_ADDRESS) (UINTN) VariableStore;
+ *VariableStoreBase = (EFI_PHYSICAL_ADDRESS)(UINTN)VariableStore;
HwErrStorageSize = PcdGet32 (PcdHwErrStorageSize);
@@ -110,7 +113,7 @@ InitEmuNonVolatileVariableStore (
//
ASSERT (HwErrStorageSize < (VariableStoreLength - sizeof (VARIABLE_STORE_HEADER)));
- mVariableModuleGlobal->CommonVariableSpace = ((UINTN) VariableStoreLength - sizeof (VARIABLE_STORE_HEADER) - HwErrStorageSize);
+ mVariableModuleGlobal->CommonVariableSpace = ((UINTN)VariableStoreLength - sizeof (VARIABLE_STORE_HEADER) - HwErrStorageSize);
mVariableModuleGlobal->CommonMaxUserVariableSpace = mVariableModuleGlobal->CommonVariableSpace;
mVariableModuleGlobal->CommonRuntimeVariableSpace = mVariableModuleGlobal->CommonVariableSpace;
@@ -129,7 +132,7 @@ InitEmuNonVolatileVariableStore (
**/
EFI_STATUS
InitRealNonVolatileVariableStore (
- OUT EFI_PHYSICAL_ADDRESS *VariableStoreBase
+ OUT EFI_PHYSICAL_ADDRESS *VariableStoreBase
)
{
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;
@@ -166,7 +169,7 @@ InitRealNonVolatileVariableStore (
//
// Copy NV storage data to the memory buffer.
//
- CopyMem (NvStorageData, (UINT8 *) (UINTN) NvStorageBase, NvStorageSize);
+ CopyMem (NvStorageData, (UINT8 *)(UINTN)NvStorageBase, NvStorageSize);
Status = GetFtwProtocol ((VOID **)&FtwProtocol);
//
@@ -178,30 +181,31 @@ InitRealNonVolatileVariableStore (
//
GuidHob = GetFirstGuidHob (&gEdkiiFaultTolerantWriteGuid);
if (GuidHob != NULL) {
- FtwLastWriteData = (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA *) GET_GUID_HOB_DATA (GuidHob);
+ FtwLastWriteData = (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA *)GET_GUID_HOB_DATA (GuidHob);
if (FtwLastWriteData->TargetAddress == NvStorageBase) {
- DEBUG ((DEBUG_INFO, "Variable: NV storage is backed up in spare block: 0x%x\n", (UINTN) FtwLastWriteData->SpareAddress));
+ DEBUG ((DEBUG_INFO, "Variable: NV storage is backed up in spare block: 0x%x\n", (UINTN)FtwLastWriteData->SpareAddress));
//
// Copy the backed up NV storage data to the memory buffer from spare block.
//
- CopyMem (NvStorageData, (UINT8 *) (UINTN) (FtwLastWriteData->SpareAddress), NvStorageSize);
+ CopyMem (NvStorageData, (UINT8 *)(UINTN)(FtwLastWriteData->SpareAddress), NvStorageSize);
} else if ((FtwLastWriteData->TargetAddress > NvStorageBase) &&
- (FtwLastWriteData->TargetAddress < (NvStorageBase + NvStorageSize))) {
+ (FtwLastWriteData->TargetAddress < (NvStorageBase + NvStorageSize)))
+ {
//
// Flash NV storage from the Offset is backed up in spare block.
//
- BackUpOffset = (UINT32) (FtwLastWriteData->TargetAddress - NvStorageBase);
- BackUpSize = NvStorageSize - BackUpOffset;
- DEBUG ((DEBUG_INFO, "Variable: High partial NV storage from offset: %x is backed up in spare block: 0x%x\n", BackUpOffset, (UINTN) FtwLastWriteData->SpareAddress));
+ BackUpOffset = (UINT32)(FtwLastWriteData->TargetAddress - NvStorageBase);
+ BackUpSize = NvStorageSize - BackUpOffset;
+ DEBUG ((DEBUG_INFO, "Variable: High partial NV storage from offset: %x is backed up in spare block: 0x%x\n", BackUpOffset, (UINTN)FtwLastWriteData->SpareAddress));
//
// Copy the partial backed up NV storage data to the memory buffer from spare block.
//
- CopyMem (NvStorageData + BackUpOffset, (UINT8 *) (UINTN) FtwLastWriteData->SpareAddress, BackUpSize);
+ CopyMem (NvStorageData + BackUpOffset, (UINT8 *)(UINTN)FtwLastWriteData->SpareAddress, BackUpSize);
}
}
}
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) NvStorageData;
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)NvStorageData;
//
// Check if the Firmware Volume is not corrupted
@@ -212,7 +216,7 @@ InitRealNonVolatileVariableStore (
return EFI_VOLUME_CORRUPTED;
}
- VariableStore = (VARIABLE_STORE_HEADER *) ((UINTN) FvHeader + FvHeader->HeaderLength);
+ VariableStore = (VARIABLE_STORE_HEADER *)((UINTN)FvHeader + FvHeader->HeaderLength);
VariableStoreLength = NvStorageSize - FvHeader->HeaderLength;
ASSERT (sizeof (VARIABLE_STORE_HEADER) <= VariableStoreLength);
ASSERT (VariableStore->Size == VariableStoreLength);
@@ -222,16 +226,16 @@ InitRealNonVolatileVariableStore (
//
if (GetVariableStoreStatus (VariableStore) != EfiValid) {
FreePool (NvStorageData);
- DEBUG((DEBUG_ERROR, "Variable Store header is corrupted\n"));
+ DEBUG ((DEBUG_ERROR, "Variable Store header is corrupted\n"));
return EFI_VOLUME_CORRUPTED;
}
mNvFvHeaderCache = FvHeader;
- *VariableStoreBase = (EFI_PHYSICAL_ADDRESS) (UINTN) VariableStore;
+ *VariableStoreBase = (EFI_PHYSICAL_ADDRESS)(UINTN)VariableStore;
- HwErrStorageSize = PcdGet32 (PcdHwErrStorageSize);
- MaxUserNvVariableSpaceSize = PcdGet32 (PcdMaxUserNvVariableSpaceSize);
+ HwErrStorageSize = PcdGet32 (PcdHwErrStorageSize);
+ MaxUserNvVariableSpaceSize = PcdGet32 (PcdMaxUserNvVariableSpaceSize);
BoottimeReservedNvVariableSpaceSize = PcdGet32 (PcdBoottimeReservedNvVariableSpaceSize);
//
@@ -252,7 +256,7 @@ InitRealNonVolatileVariableStore (
//
ASSERT (BoottimeReservedNvVariableSpaceSize < (VariableStoreLength - sizeof (VARIABLE_STORE_HEADER) - HwErrStorageSize));
- mVariableModuleGlobal->CommonVariableSpace = ((UINTN) VariableStoreLength - sizeof (VARIABLE_STORE_HEADER) - HwErrStorageSize);
+ mVariableModuleGlobal->CommonVariableSpace = ((UINTN)VariableStoreLength - sizeof (VARIABLE_STORE_HEADER) - HwErrStorageSize);
mVariableModuleGlobal->CommonMaxUserVariableSpace = ((MaxUserNvVariableSpaceSize != 0) ? MaxUserNvVariableSpaceSize : mVariableModuleGlobal->CommonVariableSpace);
mVariableModuleGlobal->CommonRuntimeVariableSpace = mVariableModuleGlobal->CommonVariableSpace - BoottimeReservedNvVariableSpaceSize;
@@ -285,17 +289,18 @@ InitNonVolatileVariableStore (
VOID
)
{
- VARIABLE_HEADER *Variable;
- VARIABLE_HEADER *NextVariable;
- EFI_PHYSICAL_ADDRESS VariableStoreBase;
- UINTN VariableSize;
- EFI_STATUS Status;
+ VARIABLE_HEADER *Variable;
+ VARIABLE_HEADER *NextVariable;
+ EFI_PHYSICAL_ADDRESS VariableStoreBase;
+ UINTN VariableSize;
+ EFI_STATUS Status;
if (PcdGetBool (PcdEmuVariableNvModeEnable)) {
Status = InitEmuNonVolatileVariableStore (&VariableStoreBase);
if (EFI_ERROR (Status)) {
return Status;
}
+
mVariableModuleGlobal->VariableGlobal.EmuNvMode = TRUE;
DEBUG ((DEBUG_INFO, "Variable driver will work at emulated non-volatile variable mode!\n"));
} else {
@@ -303,23 +308,24 @@ InitNonVolatileVariableStore (
if (EFI_ERROR (Status)) {
return Status;
}
+
mVariableModuleGlobal->VariableGlobal.EmuNvMode = FALSE;
}
mVariableModuleGlobal->VariableGlobal.NonVolatileVariableBase = VariableStoreBase;
- mNvVariableCache = (VARIABLE_STORE_HEADER *) (UINTN) VariableStoreBase;
- mVariableModuleGlobal->VariableGlobal.AuthFormat = (BOOLEAN)(CompareGuid (&mNvVariableCache->Signature, &gEfiAuthenticatedVariableGuid));
+ mNvVariableCache = (VARIABLE_STORE_HEADER *)(UINTN)VariableStoreBase;
+ mVariableModuleGlobal->VariableGlobal.AuthFormat = (BOOLEAN)(CompareGuid (&mNvVariableCache->Signature, &gEfiAuthenticatedVariableGuid));
- mVariableModuleGlobal->MaxVariableSize = PcdGet32 (PcdMaxVariableSize);
+ mVariableModuleGlobal->MaxVariableSize = PcdGet32 (PcdMaxVariableSize);
mVariableModuleGlobal->MaxAuthVariableSize = ((PcdGet32 (PcdMaxAuthVariableSize) != 0) ? PcdGet32 (PcdMaxAuthVariableSize) : mVariableModuleGlobal->MaxVariableSize);
//
// Parse non-volatile variable data and get last variable offset.
//
- Variable = GetStartPointer (mNvVariableCache);
+ Variable = GetStartPointer (mNvVariableCache);
while (IsValidVariableHeader (Variable, GetEndPointer (mNvVariableCache))) {
NextVariable = GetNextVariablePtr (Variable, mVariableModuleGlobal->VariableGlobal.AuthFormat);
- VariableSize = (UINTN) NextVariable - (UINTN) Variable;
+ VariableSize = (UINTN)NextVariable - (UINTN)Variable;
if ((Variable->Attributes & (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_HARDWARE_ERROR_RECORD)) == (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_HARDWARE_ERROR_RECORD)) {
mVariableModuleGlobal->HwErrVariableTotalSize += VariableSize;
} else {
@@ -328,7 +334,8 @@ InitNonVolatileVariableStore (
Variable = NextVariable;
}
- mVariableModuleGlobal->NonVolatileLastVariableOffset = (UINTN) Variable - (UINTN) mNvVariableCache;
+
+ mVariableModuleGlobal->NonVolatileLastVariableOffset = (UINTN)Variable - (UINTN)mNvVariableCache;
return EFI_SUCCESS;
}
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.h b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.h
index 43653f2..2386f0f 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.h
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.h
@@ -48,7 +48,7 @@ InitEmuNonVolatileVariableStore (
**/
EFI_STATUS
InitRealNonVolatileVariableStore (
- OUT EFI_PHYSICAL_ADDRESS *VariableStoreBase
+ OUT EFI_PHYSICAL_ADDRESS *VariableStoreBase
);
/**
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.c
index f6d1875..39060ed 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.c
@@ -22,8 +22,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
IsValidVariableHeader (
- IN VARIABLE_HEADER *Variable,
- IN VARIABLE_HEADER *VariableStoreEnd
+ IN VARIABLE_HEADER *Variable,
+ IN VARIABLE_HEADER *VariableStoreEnd
)
{
if ((Variable == NULL) || (Variable >= VariableStoreEnd) || (Variable->StartId != VARIABLE_DATA)) {
@@ -50,25 +50,25 @@ IsValidVariableHeader (
**/
VARIABLE_STORE_STATUS
GetVariableStoreStatus (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
)
{
if ((CompareGuid (&VarStoreHeader->Signature, &gEfiAuthenticatedVariableGuid) ||
CompareGuid (&VarStoreHeader->Signature, &gEfiVariableGuid)) &&
- VarStoreHeader->Format == VARIABLE_STORE_FORMATTED &&
- VarStoreHeader->State == VARIABLE_STORE_HEALTHY
- ) {
-
+ (VarStoreHeader->Format == VARIABLE_STORE_FORMATTED) &&
+ (VarStoreHeader->State == VARIABLE_STORE_HEALTHY)
+ )
+ {
return EfiValid;
- } else if (((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff &&
- ((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff &&
- ((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff &&
- ((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff &&
- VarStoreHeader->Size == 0xffffffff &&
- VarStoreHeader->Format == 0xff &&
- VarStoreHeader->State == 0xff
- ) {
-
+ } else if ((((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff) &&
+ (((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff) &&
+ (((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff) &&
+ (((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff) &&
+ (VarStoreHeader->Size == 0xffffffff) &&
+ (VarStoreHeader->Format == 0xff) &&
+ (VarStoreHeader->State == 0xff)
+ )
+ {
return EfiRaw;
} else {
return EfiInvalid;
@@ -86,10 +86,10 @@ GetVariableStoreStatus (
**/
UINTN
GetVariableHeaderSize (
- IN BOOLEAN AuthFormat
+ IN BOOLEAN AuthFormat
)
{
- UINTN Value;
+ UINTN Value;
if (AuthFormat) {
Value = sizeof (AUTHENTICATED_VARIABLE_HEADER);
@@ -113,29 +113,33 @@ GetVariableHeaderSize (
**/
UINTN
NameSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFormat) {
- if (AuthVariable->State == (UINT8) (-1) ||
- AuthVariable->DataSize == (UINT32) (-1) ||
- AuthVariable->NameSize == (UINT32) (-1) ||
- AuthVariable->Attributes == (UINT32) (-1)) {
+ if ((AuthVariable->State == (UINT8)(-1)) ||
+ (AuthVariable->DataSize == (UINT32)(-1)) ||
+ (AuthVariable->NameSize == (UINT32)(-1)) ||
+ (AuthVariable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) AuthVariable->NameSize;
+
+ return (UINTN)AuthVariable->NameSize;
} else {
- if (Variable->State == (UINT8) (-1) ||
- Variable->DataSize == (UINT32) (-1) ||
- Variable->NameSize == (UINT32) (-1) ||
- Variable->Attributes == (UINT32) (-1)) {
+ if ((Variable->State == (UINT8)(-1)) ||
+ (Variable->DataSize == (UINT32)(-1)) ||
+ (Variable->NameSize == (UINT32)(-1)) ||
+ (Variable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) Variable->NameSize;
+
+ return (UINTN)Variable->NameSize;
}
}
@@ -150,18 +154,18 @@ NameSizeOfVariable (
**/
VOID
SetNameSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN UINTN NameSize,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN UINTN NameSize,
+ IN BOOLEAN AuthFormat
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFormat) {
- AuthVariable->NameSize = (UINT32) NameSize;
+ AuthVariable->NameSize = (UINT32)NameSize;
} else {
- Variable->NameSize = (UINT32) NameSize;
+ Variable->NameSize = (UINT32)NameSize;
}
}
@@ -178,29 +182,33 @@ SetNameSizeOfVariable (
**/
UINTN
DataSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFormat) {
- if (AuthVariable->State == (UINT8) (-1) ||
- AuthVariable->DataSize == (UINT32) (-1) ||
- AuthVariable->NameSize == (UINT32) (-1) ||
- AuthVariable->Attributes == (UINT32) (-1)) {
+ if ((AuthVariable->State == (UINT8)(-1)) ||
+ (AuthVariable->DataSize == (UINT32)(-1)) ||
+ (AuthVariable->NameSize == (UINT32)(-1)) ||
+ (AuthVariable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) AuthVariable->DataSize;
+
+ return (UINTN)AuthVariable->DataSize;
} else {
- if (Variable->State == (UINT8) (-1) ||
- Variable->DataSize == (UINT32) (-1) ||
- Variable->NameSize == (UINT32) (-1) ||
- Variable->Attributes == (UINT32) (-1)) {
+ if ((Variable->State == (UINT8)(-1)) ||
+ (Variable->DataSize == (UINT32)(-1)) ||
+ (Variable->NameSize == (UINT32)(-1)) ||
+ (Variable->Attributes == (UINT32)(-1)))
+ {
return 0;
}
- return (UINTN) Variable->DataSize;
+
+ return (UINTN)Variable->DataSize;
}
}
@@ -215,18 +223,18 @@ DataSizeOfVariable (
**/
VOID
SetDataSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN UINTN DataSize,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN UINTN DataSize,
+ IN BOOLEAN AuthFormat
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFormat) {
- AuthVariable->DataSize = (UINT32) DataSize;
+ AuthVariable->DataSize = (UINT32)DataSize;
} else {
- Variable->DataSize = (UINT32) DataSize;
+ Variable->DataSize = (UINT32)DataSize;
}
}
@@ -243,11 +251,11 @@ SetDataSizeOfVariable (
**/
CHAR16 *
GetVariableNamePtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- return (CHAR16 *) ((UINTN) Variable + GetVariableHeaderSize (AuthFormat));
+ return (CHAR16 *)((UINTN)Variable + GetVariableHeaderSize (AuthFormat));
}
/**
@@ -262,13 +270,13 @@ GetVariableNamePtr (
**/
EFI_GUID *
GetVendorGuidPtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
+ AUTHENTICATED_VARIABLE_HEADER *AuthVariable;
- AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *) Variable;
+ AuthVariable = (AUTHENTICATED_VARIABLE_HEADER *)Variable;
if (AuthFormat) {
return &AuthVariable->VendorGuid;
} else {
@@ -289,20 +297,20 @@ GetVendorGuidPtr (
**/
UINT8 *
GetVariableDataPtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- UINTN Value;
+ UINTN Value;
//
// Be careful about pad size for alignment.
//
- Value = (UINTN) GetVariableNamePtr (Variable, AuthFormat);
+ Value = (UINTN)GetVariableNamePtr (Variable, AuthFormat);
Value += NameSizeOfVariable (Variable, AuthFormat);
Value += GET_PAD_SIZE (NameSizeOfVariable (Variable, AuthFormat));
- return (UINT8 *) Value;
+ return (UINT8 *)Value;
}
/**
@@ -317,16 +325,16 @@ GetVariableDataPtr (
**/
UINTN
GetVariableDataOffset (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- UINTN Value;
+ UINTN Value;
//
// Be careful about pad size for alignment
//
- Value = GetVariableHeaderSize (AuthFormat);
+ Value = GetVariableHeaderSize (AuthFormat);
Value += NameSizeOfVariable (Variable, AuthFormat);
Value += GET_PAD_SIZE (NameSizeOfVariable (Variable, AuthFormat));
@@ -346,20 +354,20 @@ GetVariableDataOffset (
**/
VARIABLE_HEADER *
GetNextVariablePtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
)
{
- UINTN Value;
+ UINTN Value;
- Value = (UINTN) GetVariableDataPtr (Variable, AuthFormat);
+ Value = (UINTN)GetVariableDataPtr (Variable, AuthFormat);
Value += DataSizeOfVariable (Variable, AuthFormat);
Value += GET_PAD_SIZE (DataSizeOfVariable (Variable, AuthFormat));
//
// Be careful about pad size for alignment.
//
- return (VARIABLE_HEADER *) HEADER_ALIGN (Value);
+ return (VARIABLE_HEADER *)HEADER_ALIGN (Value);
}
/**
@@ -373,13 +381,13 @@ GetNextVariablePtr (
**/
VARIABLE_HEADER *
GetStartPointer (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
)
{
//
// The start of variable store.
//
- return (VARIABLE_HEADER *) HEADER_ALIGN (VarStoreHeader + 1);
+ return (VARIABLE_HEADER *)HEADER_ALIGN (VarStoreHeader + 1);
}
/**
@@ -396,13 +404,13 @@ GetStartPointer (
**/
VARIABLE_HEADER *
GetEndPointer (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
)
{
//
// The end of variable store
//
- return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) VarStoreHeader + VarStoreHeader->Size);
+ return (VARIABLE_HEADER *)HEADER_ALIGN ((UINTN)VarStoreHeader + VarStoreHeader->Size);
}
/**
@@ -418,23 +426,23 @@ GetEndPointer (
**/
BOOLEAN
VariableCompareTimeStampInternal (
- IN EFI_TIME *FirstTime,
- IN EFI_TIME *SecondTime
+ IN EFI_TIME *FirstTime,
+ IN EFI_TIME *SecondTime
)
{
if (FirstTime->Year != SecondTime->Year) {
- return (BOOLEAN) (FirstTime->Year < SecondTime->Year);
+ return (BOOLEAN)(FirstTime->Year < SecondTime->Year);
} else if (FirstTime->Month != SecondTime->Month) {
- return (BOOLEAN) (FirstTime->Month < SecondTime->Month);
+ return (BOOLEAN)(FirstTime->Month < SecondTime->Month);
} else if (FirstTime->Day != SecondTime->Day) {
- return (BOOLEAN) (FirstTime->Day < SecondTime->Day);
+ return (BOOLEAN)(FirstTime->Day < SecondTime->Day);
} else if (FirstTime->Hour != SecondTime->Hour) {
- return (BOOLEAN) (FirstTime->Hour < SecondTime->Hour);
+ return (BOOLEAN)(FirstTime->Hour < SecondTime->Hour);
} else if (FirstTime->Minute != SecondTime->Minute) {
- return (BOOLEAN) (FirstTime->Minute < SecondTime->Minute);
+ return (BOOLEAN)(FirstTime->Minute < SecondTime->Minute);
}
- return (BOOLEAN) (FirstTime->Second <= SecondTime->Second);
+ return (BOOLEAN)(FirstTime->Second <= SecondTime->Second);
}
/**
@@ -460,39 +468,41 @@ FindVariableEx (
IN BOOLEAN AuthFormat
)
{
- VARIABLE_HEADER *InDeletedVariable;
- VOID *Point;
+ VARIABLE_HEADER *InDeletedVariable;
+ VOID *Point;
PtrTrack->InDeletedTransitionPtr = NULL;
//
// Find the variable by walk through HOB, volatile and non-volatile variable store.
//
- InDeletedVariable = NULL;
+ InDeletedVariable = NULL;
for ( PtrTrack->CurrPtr = PtrTrack->StartPtr
- ; IsValidVariableHeader (PtrTrack->CurrPtr, PtrTrack->EndPtr)
- ; PtrTrack->CurrPtr = GetNextVariablePtr (PtrTrack->CurrPtr, AuthFormat)
- ) {
- if (PtrTrack->CurrPtr->State == VAR_ADDED ||
- PtrTrack->CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)
- ) {
+ ; IsValidVariableHeader (PtrTrack->CurrPtr, PtrTrack->EndPtr)
+ ; PtrTrack->CurrPtr = GetNextVariablePtr (PtrTrack->CurrPtr, AuthFormat)
+ )
+ {
+ if ((PtrTrack->CurrPtr->State == VAR_ADDED) ||
+ (PtrTrack->CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED))
+ )
+ {
if (IgnoreRtCheck || !AtRuntime () || ((PtrTrack->CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS) != 0)) {
if (VariableName[0] == 0) {
if (PtrTrack->CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
- InDeletedVariable = PtrTrack->CurrPtr;
+ InDeletedVariable = PtrTrack->CurrPtr;
} else {
PtrTrack->InDeletedTransitionPtr = InDeletedVariable;
return EFI_SUCCESS;
}
} else {
if (CompareGuid (VendorGuid, GetVendorGuidPtr (PtrTrack->CurrPtr, AuthFormat))) {
- Point = (VOID *) GetVariableNamePtr (PtrTrack->CurrPtr, AuthFormat);
+ Point = (VOID *)GetVariableNamePtr (PtrTrack->CurrPtr, AuthFormat);
ASSERT (NameSizeOfVariable (PtrTrack->CurrPtr, AuthFormat) != 0);
if (CompareMem (VariableName, Point, NameSizeOfVariable (PtrTrack->CurrPtr, AuthFormat)) == 0) {
if (PtrTrack->CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
- InDeletedVariable = PtrTrack->CurrPtr;
+ InDeletedVariable = PtrTrack->CurrPtr;
} else {
PtrTrack->InDeletedTransitionPtr = InDeletedVariable;
return EFI_SUCCESS;
@@ -532,11 +542,11 @@ FindVariableEx (
EFI_STATUS
EFIAPI
VariableServiceGetNextVariableInternal (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN VARIABLE_STORE_HEADER **VariableStoreList,
- OUT VARIABLE_HEADER **VariablePtr,
- IN BOOLEAN AuthFormat
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN VARIABLE_STORE_HEADER **VariableStoreList,
+ OUT VARIABLE_HEADER **VariablePtr,
+ IN BOOLEAN AuthFormat
)
{
EFI_STATUS Status;
@@ -554,14 +564,14 @@ VariableServiceGetNextVariableInternal (
ZeroMem (&Variable, sizeof (Variable));
// Check if the variable exists in the given variable store list
- for (StoreType = (VARIABLE_STORE_TYPE) 0; StoreType < VariableStoreTypeMax; StoreType++) {
+ for (StoreType = (VARIABLE_STORE_TYPE)0; StoreType < VariableStoreTypeMax; StoreType++) {
if (VariableStoreList[StoreType] == NULL) {
continue;
}
Variable.StartPtr = GetStartPointer (VariableStoreList[StoreType]);
- Variable.EndPtr = GetEndPointer (VariableStoreList[StoreType]);
- Variable.Volatile = (BOOLEAN) (StoreType == VariableStoreTypeVolatile);
+ Variable.EndPtr = GetEndPointer (VariableStoreList[StoreType]);
+ Variable.Volatile = (BOOLEAN)(StoreType == VariableStoreTypeVolatile);
Status = FindVariableEx (VariableName, VendorGuid, FALSE, &Variable, AuthFormat);
if (!EFI_ERROR (Status)) {
@@ -569,7 +579,7 @@ VariableServiceGetNextVariableInternal (
}
}
- if (Variable.CurrPtr == NULL || EFI_ERROR (Status)) {
+ if ((Variable.CurrPtr == NULL) || EFI_ERROR (Status)) {
//
// For VariableName is an empty string, FindVariableEx() will try to find and return
// the first qualified variable, and if FindVariableEx() returns error (EFI_NOT_FOUND)
@@ -583,6 +593,7 @@ VariableServiceGetNextVariableInternal (
//
Status = EFI_INVALID_PARAMETER;
}
+
goto Done;
}
@@ -601,11 +612,12 @@ VariableServiceGetNextVariableInternal (
//
// Find current storage index
//
- for (StoreType = (VARIABLE_STORE_TYPE) 0; StoreType < VariableStoreTypeMax; StoreType++) {
+ for (StoreType = (VARIABLE_STORE_TYPE)0; StoreType < VariableStoreTypeMax; StoreType++) {
if ((VariableStoreList[StoreType] != NULL) && (Variable.StartPtr == GetStartPointer (VariableStoreList[StoreType]))) {
break;
}
}
+
ASSERT (StoreType < VariableStoreTypeMax);
//
// Switch to next storage
@@ -615,6 +627,7 @@ VariableServiceGetNextVariableInternal (
break;
}
}
+
//
// Capture the case that
// 1. current storage is the last one, or
@@ -624,15 +637,16 @@ VariableServiceGetNextVariableInternal (
Status = EFI_NOT_FOUND;
goto Done;
}
+
Variable.StartPtr = GetStartPointer (VariableStoreList[StoreType]);
- Variable.EndPtr = GetEndPointer (VariableStoreList[StoreType]);
+ Variable.EndPtr = GetEndPointer (VariableStoreList[StoreType]);
Variable.CurrPtr = Variable.StartPtr;
}
//
// Variable is found
//
- if (Variable.CurrPtr->State == VAR_ADDED || Variable.CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
+ if ((Variable.CurrPtr->State == VAR_ADDED) || (Variable.CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED))) {
if (!AtRuntime () || ((Variable.CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS) != 0)) {
if (Variable.CurrPtr->State == (VAR_IN_DELETED_TRANSITION & VAR_ADDED)) {
//
@@ -641,15 +655,15 @@ VariableServiceGetNextVariableInternal (
// don't return it.
//
VariablePtrTrack.StartPtr = Variable.StartPtr;
- VariablePtrTrack.EndPtr = Variable.EndPtr;
- Status = FindVariableEx (
- GetVariableNamePtr (Variable.CurrPtr, AuthFormat),
- GetVendorGuidPtr (Variable.CurrPtr, AuthFormat),
- FALSE,
- &VariablePtrTrack,
- AuthFormat
- );
- if (!EFI_ERROR (Status) && VariablePtrTrack.CurrPtr->State == VAR_ADDED) {
+ VariablePtrTrack.EndPtr = Variable.EndPtr;
+ Status = FindVariableEx (
+ GetVariableNamePtr (Variable.CurrPtr, AuthFormat),
+ GetVendorGuidPtr (Variable.CurrPtr, AuthFormat),
+ FALSE,
+ &VariablePtrTrack,
+ AuthFormat
+ );
+ if (!EFI_ERROR (Status) && (VariablePtrTrack.CurrPtr->State == VAR_ADDED)) {
Variable.CurrPtr = GetNextVariablePtr (Variable.CurrPtr, AuthFormat);
continue;
}
@@ -660,16 +674,17 @@ VariableServiceGetNextVariableInternal (
//
if ((VariableStoreList[VariableStoreTypeHob] != NULL) && (VariableStoreList[VariableStoreTypeNv] != NULL) &&
(Variable.StartPtr == GetStartPointer (VariableStoreList[VariableStoreTypeNv]))
- ) {
+ )
+ {
VariableInHob.StartPtr = GetStartPointer (VariableStoreList[VariableStoreTypeHob]);
- VariableInHob.EndPtr = GetEndPointer (VariableStoreList[VariableStoreTypeHob]);
- Status = FindVariableEx (
- GetVariableNamePtr (Variable.CurrPtr, AuthFormat),
- GetVendorGuidPtr (Variable.CurrPtr, AuthFormat),
- FALSE,
- &VariableInHob,
- AuthFormat
- );
+ VariableInHob.EndPtr = GetEndPointer (VariableStoreList[VariableStoreTypeHob]);
+ Status = FindVariableEx (
+ GetVariableNamePtr (Variable.CurrPtr, AuthFormat),
+ GetVendorGuidPtr (Variable.CurrPtr, AuthFormat),
+ FALSE,
+ &VariableInHob,
+ AuthFormat
+ );
if (!EFI_ERROR (Status)) {
Variable.CurrPtr = GetNextVariablePtr (Variable.CurrPtr, AuthFormat);
continue;
@@ -677,7 +692,7 @@ VariableServiceGetNextVariableInternal (
}
*VariablePtr = Variable.CurrPtr;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
goto Done;
}
}
@@ -722,12 +737,13 @@ UpdateVariableInfo (
IN OUT VARIABLE_INFO_ENTRY **VariableInfo
)
{
- VARIABLE_INFO_ENTRY *Entry;
+ VARIABLE_INFO_ENTRY *Entry;
if (FeaturePcdGet (PcdVariableCollectStatistics)) {
- if (VariableName == NULL || VendorGuid == NULL || VariableInfo == NULL) {
+ if ((VariableName == NULL) || (VendorGuid == NULL) || (VariableInfo == NULL)) {
return;
}
+
if (AtRuntime ()) {
// Don't collect statistics at runtime.
return;
@@ -744,23 +760,25 @@ UpdateVariableInfo (
CopyGuid (&(*VariableInfo)->VendorGuid, VendorGuid);
(*VariableInfo)->Name = AllocateZeroPool (StrSize (VariableName));
ASSERT ((*VariableInfo)->Name != NULL);
- StrCpyS ((*VariableInfo)->Name, StrSize(VariableName)/sizeof(CHAR16), VariableName);
+ StrCpyS ((*VariableInfo)->Name, StrSize (VariableName)/sizeof (CHAR16), VariableName);
(*VariableInfo)->Volatile = Volatile;
}
-
for (Entry = (*VariableInfo); Entry != NULL; Entry = Entry->Next) {
if (CompareGuid (VendorGuid, &Entry->VendorGuid)) {
if (StrCmp (VariableName, Entry->Name) == 0) {
if (Read) {
Entry->ReadCount++;
}
+
if (Write) {
Entry->WriteCount++;
}
+
if (Delete) {
Entry->DeleteCount++;
}
+
if (Cache) {
Entry->CacheCount++;
}
@@ -780,7 +798,7 @@ UpdateVariableInfo (
CopyGuid (&Entry->Next->VendorGuid, VendorGuid);
Entry->Next->Name = AllocateZeroPool (StrSize (VariableName));
ASSERT (Entry->Next->Name != NULL);
- StrCpyS (Entry->Next->Name, StrSize(VariableName)/sizeof(CHAR16), VariableName);
+ StrCpyS (Entry->Next->Name, StrSize (VariableName)/sizeof (CHAR16), VariableName);
Entry->Next->Volatile = Volatile;
}
}
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.h b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.h
index 92a729d..951e8a0 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.h
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.h
@@ -26,8 +26,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
BOOLEAN
IsValidVariableHeader (
- IN VARIABLE_HEADER *Variable,
- IN VARIABLE_HEADER *VariableStoreEnd
+ IN VARIABLE_HEADER *Variable,
+ IN VARIABLE_HEADER *VariableStoreEnd
);
/**
@@ -43,7 +43,7 @@ IsValidVariableHeader (
**/
VARIABLE_STORE_STATUS
GetVariableStoreStatus (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
);
/**
@@ -57,7 +57,7 @@ GetVariableStoreStatus (
**/
UINTN
GetVariableHeaderSize (
- IN BOOLEAN AuthFormat
+ IN BOOLEAN AuthFormat
);
/**
@@ -73,8 +73,8 @@ GetVariableHeaderSize (
**/
UINTN
NameSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -88,9 +88,9 @@ NameSizeOfVariable (
**/
VOID
SetNameSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN UINTN NameSize,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN UINTN NameSize,
+ IN BOOLEAN AuthFormat
);
/**
@@ -106,8 +106,8 @@ SetNameSizeOfVariable (
**/
UINTN
DataSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -121,9 +121,9 @@ DataSizeOfVariable (
**/
VOID
SetDataSizeOfVariable (
- IN VARIABLE_HEADER *Variable,
- IN UINTN DataSize,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN UINTN DataSize,
+ IN BOOLEAN AuthFormat
);
/**
@@ -139,8 +139,8 @@ SetDataSizeOfVariable (
**/
CHAR16 *
GetVariableNamePtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -155,8 +155,8 @@ GetVariableNamePtr (
**/
EFI_GUID *
GetVendorGuidPtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -172,8 +172,8 @@ GetVendorGuidPtr (
**/
UINT8 *
GetVariableDataPtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -188,8 +188,8 @@ GetVariableDataPtr (
**/
UINTN
GetVariableDataOffset (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -205,8 +205,8 @@ GetVariableDataOffset (
**/
VARIABLE_HEADER *
GetNextVariablePtr (
- IN VARIABLE_HEADER *Variable,
- IN BOOLEAN AuthFormat
+ IN VARIABLE_HEADER *Variable,
+ IN BOOLEAN AuthFormat
);
/**
@@ -220,7 +220,7 @@ GetNextVariablePtr (
**/
VARIABLE_HEADER *
GetStartPointer (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
);
/**
@@ -237,7 +237,7 @@ GetStartPointer (
**/
VARIABLE_HEADER *
GetEndPointer (
- IN VARIABLE_STORE_HEADER *VarStoreHeader
+ IN VARIABLE_STORE_HEADER *VarStoreHeader
);
/**
@@ -253,8 +253,8 @@ GetEndPointer (
**/
BOOLEAN
VariableCompareTimeStampInternal (
- IN EFI_TIME *FirstTime,
- IN EFI_TIME *SecondTime
+ IN EFI_TIME *FirstTime,
+ IN EFI_TIME *SecondTime
);
/**
@@ -304,11 +304,11 @@ FindVariableEx (
EFI_STATUS
EFIAPI
VariableServiceGetNextVariableInternal (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN VARIABLE_STORE_HEADER **VariableStoreList,
- OUT VARIABLE_HEADER **VariablePtr,
- IN BOOLEAN AuthFormat
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN VARIABLE_STORE_HEADER **VariableStoreList,
+ OUT VARIABLE_HEADER **VariablePtr,
+ IN BOOLEAN AuthFormat
);
/**
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c
index 6ae69df..672a229 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c
@@ -40,19 +40,20 @@ EFI_LOCK mMmCommunicationLock;
STATIC
EFI_STATUS
InternalMmCommunicate (
- IN OUT VOID *CommBuffer,
- IN OUT UINTN *CommSize
+ IN OUT VOID *CommBuffer,
+ IN OUT UINTN *CommSize
)
{
- EFI_STATUS Status;
- if (CommBuffer == NULL || CommSize == NULL) {
+ EFI_STATUS Status;
+
+ if ((CommBuffer == NULL) || (CommSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
Status = mMmCommunication->Communicate (mMmCommunication, CommBuffer, CommBuffer, CommSize);
return Status;
}
-
/**
This API function disables the variable policy enforcement. If it's
already been called once, will return EFI_ALREADY_STARTED.
@@ -84,24 +85,23 @@ ProtocolDisableVariablePolicy (
AcquireLockOnlyAtBootTime (&mMmCommunicationLock);
// Set up the MM communication.
- BufferSize = mMmCommunicationBufferSize;
- CommHeader = mMmCommunicationBuffer;
- PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER*)&CommHeader->Data;
- CopyGuid( &CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid );
+ BufferSize = mMmCommunicationBufferSize;
+ CommHeader = mMmCommunicationBuffer;
+ PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;
+ CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);
CommHeader->MessageLength = BufferSize;
PolicyHeader->Signature = VAR_CHECK_POLICY_COMM_SIG;
PolicyHeader->Revision = VAR_CHECK_POLICY_COMM_REVISION;
PolicyHeader->Command = VAR_CHECK_POLICY_COMMAND_DISABLE;
Status = InternalMmCommunicate (CommHeader, &BufferSize);
- DEBUG(( DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status ));
+ DEBUG ((DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status));
ReleaseLockOnlyAtBootTime (&mMmCommunicationLock);
- return (EFI_ERROR( Status )) ? Status : PolicyHeader->Result;
+ return (EFI_ERROR (Status)) ? Status : PolicyHeader->Result;
}
-
/**
This API function returns whether or not the policy engine is
currently being enforced.
@@ -117,14 +117,14 @@ STATIC
EFI_STATUS
EFIAPI
ProtocolIsVariablePolicyEnabled (
- OUT BOOLEAN *State
+ OUT BOOLEAN *State
)
{
- EFI_STATUS Status;
- EFI_MM_COMMUNICATE_HEADER *CommHeader;
- VAR_CHECK_POLICY_COMM_HEADER *PolicyHeader;
- VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS *CommandParams;
- UINTN BufferSize;
+ EFI_STATUS Status;
+ EFI_MM_COMMUNICATE_HEADER *CommHeader;
+ VAR_CHECK_POLICY_COMM_HEADER *PolicyHeader;
+ VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS *CommandParams;
+ UINTN BufferSize;
if (State == NULL) {
return EFI_INVALID_PARAMETER;
@@ -135,18 +135,18 @@ ProtocolIsVariablePolicyEnabled (
// Set up the MM communication.
BufferSize = mMmCommunicationBufferSize;
CommHeader = mMmCommunicationBuffer;
- PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER*)&CommHeader->Data;
- CommandParams = (VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS*)(PolicyHeader + 1);
- CopyGuid( &CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid );
+ PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;
+ CommandParams = (VAR_CHECK_POLICY_COMM_IS_ENABLED_PARAMS *)(PolicyHeader + 1);
+ CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);
CommHeader->MessageLength = BufferSize;
PolicyHeader->Signature = VAR_CHECK_POLICY_COMM_SIG;
PolicyHeader->Revision = VAR_CHECK_POLICY_COMM_REVISION;
PolicyHeader->Command = VAR_CHECK_POLICY_COMMAND_IS_ENABLED;
Status = InternalMmCommunicate (CommHeader, &BufferSize);
- DEBUG(( DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status ));
+ DEBUG ((DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status));
- if (!EFI_ERROR( Status )) {
+ if (!EFI_ERROR (Status)) {
Status = PolicyHeader->Result;
*State = CommandParams->State;
}
@@ -156,7 +156,6 @@ ProtocolIsVariablePolicyEnabled (
return Status;
}
-
/**
This API function validates and registers a new policy with
the policy enforcement engine.
@@ -176,15 +175,15 @@ STATIC
EFI_STATUS
EFIAPI
ProtocolRegisterVariablePolicy (
- IN CONST VARIABLE_POLICY_ENTRY *NewPolicy
+ IN CONST VARIABLE_POLICY_ENTRY *NewPolicy
)
{
- EFI_STATUS Status;
- EFI_MM_COMMUNICATE_HEADER *CommHeader;
- VAR_CHECK_POLICY_COMM_HEADER *PolicyHeader;
- VOID *PolicyBuffer;
- UINTN BufferSize;
- UINTN RequiredSize;
+ EFI_STATUS Status;
+ EFI_MM_COMMUNICATE_HEADER *CommHeader;
+ VAR_CHECK_POLICY_COMM_HEADER *PolicyHeader;
+ VOID *PolicyBuffer;
+ UINTN BufferSize;
+ UINTN RequiredSize;
if (NewPolicy == NULL) {
return EFI_INVALID_PARAMETER;
@@ -192,39 +191,44 @@ ProtocolRegisterVariablePolicy (
// First, make sure that the required size does not exceed the capabilities
// of the MmCommunication buffer.
- RequiredSize = OFFSET_OF(EFI_MM_COMMUNICATE_HEADER, Data) + sizeof(VAR_CHECK_POLICY_COMM_HEADER);
- Status = SafeUintnAdd( RequiredSize, NewPolicy->Size, &RequiredSize );
- if (EFI_ERROR( Status ) || RequiredSize > mMmCommunicationBufferSize) {
- DEBUG(( DEBUG_ERROR, "%a - Policy too large for buffer! %r, %d > %d \n", __FUNCTION__,
- Status, RequiredSize, mMmCommunicationBufferSize ));
+ RequiredSize = OFFSET_OF (EFI_MM_COMMUNICATE_HEADER, Data) + sizeof (VAR_CHECK_POLICY_COMM_HEADER);
+ Status = SafeUintnAdd (RequiredSize, NewPolicy->Size, &RequiredSize);
+ if (EFI_ERROR (Status) || (RequiredSize > mMmCommunicationBufferSize)) {
+ DEBUG ((
+ DEBUG_ERROR,
+ "%a - Policy too large for buffer! %r, %d > %d \n",
+ __FUNCTION__,
+ Status,
+ RequiredSize,
+ mMmCommunicationBufferSize
+ ));
return EFI_OUT_OF_RESOURCES;
}
AcquireLockOnlyAtBootTime (&mMmCommunicationLock);
// Set up the MM communication.
- BufferSize = mMmCommunicationBufferSize;
- CommHeader = mMmCommunicationBuffer;
- PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER*)&CommHeader->Data;
- PolicyBuffer = (VOID*)(PolicyHeader + 1);
- CopyGuid( &CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid );
+ BufferSize = mMmCommunicationBufferSize;
+ CommHeader = mMmCommunicationBuffer;
+ PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;
+ PolicyBuffer = (VOID *)(PolicyHeader + 1);
+ CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);
CommHeader->MessageLength = BufferSize;
PolicyHeader->Signature = VAR_CHECK_POLICY_COMM_SIG;
PolicyHeader->Revision = VAR_CHECK_POLICY_COMM_REVISION;
PolicyHeader->Command = VAR_CHECK_POLICY_COMMAND_REGISTER;
// Copy the policy into place. This copy is safe because we've already tested above.
- CopyMem( PolicyBuffer, NewPolicy, NewPolicy->Size );
+ CopyMem (PolicyBuffer, NewPolicy, NewPolicy->Size);
Status = InternalMmCommunicate (CommHeader, &BufferSize);
- DEBUG(( DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status ));
+ DEBUG ((DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status));
ReleaseLockOnlyAtBootTime (&mMmCommunicationLock);
- return (EFI_ERROR( Status )) ? Status : PolicyHeader->Result;
+ return (EFI_ERROR (Status)) ? Status : PolicyHeader->Result;
}
-
/**
This helper function takes care of the overhead of formatting, sending, and interpreting
the results for a single DumpVariablePolicy request.
@@ -243,29 +247,29 @@ ProtocolRegisterVariablePolicy (
STATIC
EFI_STATUS
DumpVariablePolicyHelper (
- IN UINT32 PageRequested,
- OUT UINT32 *TotalSize,
- OUT UINT32 *PageSize,
- OUT BOOLEAN *HasMore,
- OUT UINT8 **Buffer
+ IN UINT32 PageRequested,
+ OUT UINT32 *TotalSize,
+ OUT UINT32 *PageSize,
+ OUT BOOLEAN *HasMore,
+ OUT UINT8 **Buffer
)
{
- EFI_STATUS Status;
- EFI_MM_COMMUNICATE_HEADER *CommHeader;
- VAR_CHECK_POLICY_COMM_HEADER *PolicyHeader;
- VAR_CHECK_POLICY_COMM_DUMP_PARAMS *CommandParams;
- UINTN BufferSize;
+ EFI_STATUS Status;
+ EFI_MM_COMMUNICATE_HEADER *CommHeader;
+ VAR_CHECK_POLICY_COMM_HEADER *PolicyHeader;
+ VAR_CHECK_POLICY_COMM_DUMP_PARAMS *CommandParams;
+ UINTN BufferSize;
- if (TotalSize == NULL || PageSize == NULL || HasMore == NULL || Buffer == NULL) {
+ if ((TotalSize == NULL) || (PageSize == NULL) || (HasMore == NULL) || (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
// Set up the MM communication.
BufferSize = mMmCommunicationBufferSize;
CommHeader = mMmCommunicationBuffer;
- PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER*)&CommHeader->Data;
- CommandParams = (VAR_CHECK_POLICY_COMM_DUMP_PARAMS*)(PolicyHeader + 1);
- CopyGuid( &CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid );
+ PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;
+ CommandParams = (VAR_CHECK_POLICY_COMM_DUMP_PARAMS *)(PolicyHeader + 1);
+ CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);
CommHeader->MessageLength = BufferSize;
PolicyHeader->Signature = VAR_CHECK_POLICY_COMM_SIG;
PolicyHeader->Revision = VAR_CHECK_POLICY_COMM_REVISION;
@@ -274,20 +278,19 @@ DumpVariablePolicyHelper (
CommandParams->PageRequested = PageRequested;
Status = InternalMmCommunicate (CommHeader, &BufferSize);
- DEBUG(( DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status ));
+ DEBUG ((DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status));
- if (!EFI_ERROR( Status )) {
- Status = PolicyHeader->Result;
+ if (!EFI_ERROR (Status)) {
+ Status = PolicyHeader->Result;
*TotalSize = CommandParams->TotalSize;
- *PageSize = CommandParams->PageSize;
- *HasMore = CommandParams->HasMore;
- *Buffer = (UINT8*)(CommandParams + 1);
+ *PageSize = CommandParams->PageSize;
+ *HasMore = CommandParams->HasMore;
+ *Buffer = (UINT8 *)(CommandParams + 1);
}
return Status;
}
-
/**
This API function will dump the entire contents of the variable policy table.
@@ -307,19 +310,19 @@ STATIC
EFI_STATUS
EFIAPI
ProtocolDumpVariablePolicy (
- OUT UINT8 *Policy OPTIONAL,
- IN OUT UINT32 *Size
+ OUT UINT8 *Policy OPTIONAL,
+ IN OUT UINT32 *Size
)
{
- EFI_STATUS Status;
- UINT8 *Source;
- UINT8 *Destination;
- UINT32 PolicySize;
- UINT32 PageSize;
- BOOLEAN HasMore;
- UINT32 PageIndex;
-
- if (Size == NULL || (*Size > 0 && Policy == NULL)) {
+ EFI_STATUS Status;
+ UINT8 *Source;
+ UINT8 *Destination;
+ UINT32 PolicySize;
+ UINT32 PageSize;
+ BOOLEAN HasMore;
+ UINT32 PageIndex;
+
+ if ((Size == NULL) || ((*Size > 0) && (Policy == NULL))) {
return EFI_INVALID_PARAMETER;
}
@@ -330,16 +333,16 @@ ProtocolDumpVariablePolicy (
// First, we must check the zero page to determine the buffer size and
// reset the internal state.
PolicySize = 0;
- PageSize = 0;
- HasMore = FALSE;
- Status = DumpVariablePolicyHelper (0, &PolicySize, &PageSize, &HasMore, &Source);
+ PageSize = 0;
+ HasMore = FALSE;
+ Status = DumpVariablePolicyHelper (0, &PolicySize, &PageSize, &HasMore, &Source);
if (EFI_ERROR (Status)) {
break;
}
// If we're good, we can at least check the required size now.
if (*Size < PolicySize) {
- *Size = PolicySize;
+ *Size = PolicySize;
Status = EFI_BUFFER_TOO_SMALL;
break;
}
@@ -367,7 +370,6 @@ ProtocolDumpVariablePolicy (
return Status;
}
-
/**
This API function locks the interface so that no more policy updates
can be performed or changes made to the enforcement until the next boot.
@@ -391,24 +393,23 @@ ProtocolLockVariablePolicy (
AcquireLockOnlyAtBootTime (&mMmCommunicationLock);
// Set up the MM communication.
- BufferSize = mMmCommunicationBufferSize;
- CommHeader = mMmCommunicationBuffer;
- PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER*)&CommHeader->Data;
- CopyGuid( &CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid );
+ BufferSize = mMmCommunicationBufferSize;
+ CommHeader = mMmCommunicationBuffer;
+ PolicyHeader = (VAR_CHECK_POLICY_COMM_HEADER *)&CommHeader->Data;
+ CopyGuid (&CommHeader->HeaderGuid, &gVarCheckPolicyLibMmiHandlerGuid);
CommHeader->MessageLength = BufferSize;
PolicyHeader->Signature = VAR_CHECK_POLICY_COMM_SIG;
PolicyHeader->Revision = VAR_CHECK_POLICY_COMM_REVISION;
PolicyHeader->Command = VAR_CHECK_POLICY_COMMAND_LOCK;
Status = InternalMmCommunicate (CommHeader, &BufferSize);
- DEBUG(( DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status ));
+ DEBUG ((DEBUG_VERBOSE, "%a - MmCommunication returned %r.\n", __FUNCTION__, Status));
ReleaseLockOnlyAtBootTime (&mMmCommunicationLock);
- return (EFI_ERROR( Status )) ? Status : PolicyHeader->Result;
+ return (EFI_ERROR (Status)) ? Status : PolicyHeader->Result;
}
-
/**
This helper function locates the shared comm buffer and assigns it to input pointers.
@@ -424,23 +425,23 @@ ProtocolLockVariablePolicy (
STATIC
EFI_STATUS
InitMmCommonCommBuffer (
- IN OUT UINTN *BufferSize,
- OUT VOID **LocatedBuffer
+ IN OUT UINTN *BufferSize,
+ OUT VOID **LocatedBuffer
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = EFI_SUCCESS;
// Make sure that we're working with good pointers.
- if (BufferSize == NULL || LocatedBuffer == NULL) {
+ if ((BufferSize == NULL) || (LocatedBuffer == NULL)) {
return EFI_INVALID_PARAMETER;
}
// Allocate the runtime memory for the comm buffer.
*LocatedBuffer = AllocateRuntimePool (*BufferSize);
if (*LocatedBuffer == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
+ Status = EFI_OUT_OF_RESOURCES;
*BufferSize = 0;
}
@@ -449,7 +450,6 @@ InitMmCommonCommBuffer (
return Status;
}
-
/**
Convert internal pointer addresses to virtual addresses.
@@ -461,15 +461,14 @@ STATIC
VOID
EFIAPI
VariablePolicyVirtualAddressCallback (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
EfiConvertPointer (0, (VOID **)&mMmCommunication);
EfiConvertPointer (0, (VOID **)&mMmCommunicationBuffer);
}
-
/**
The driver's entry point.
@@ -483,34 +482,34 @@ VariablePolicyVirtualAddressCallback (
EFI_STATUS
EFIAPI
VariablePolicySmmDxeMain (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- EFI_STATUS Status;
- BOOLEAN ProtocolInstalled;
- BOOLEAN VirtualAddressChangeRegistered;
- EFI_EVENT VirtualAddressChangeEvent;
+ EFI_STATUS Status;
+ BOOLEAN ProtocolInstalled;
+ BOOLEAN VirtualAddressChangeRegistered;
+ EFI_EVENT VirtualAddressChangeEvent;
- Status = EFI_SUCCESS;
- ProtocolInstalled = FALSE;
+ Status = EFI_SUCCESS;
+ ProtocolInstalled = FALSE;
VirtualAddressChangeRegistered = FALSE;
// Update the minimum buffer size.
mMmCommunicationBufferSize = VAR_CHECK_POLICY_MM_COMM_BUFFER_SIZE;
// Locate the shared comm buffer to use for sending MM commands.
- Status = InitMmCommonCommBuffer( &mMmCommunicationBufferSize, &mMmCommunicationBuffer );
- if (EFI_ERROR( Status )) {
- DEBUG((DEBUG_ERROR, "%a - Failed to locate a viable MM comm buffer! %r\n", __FUNCTION__, Status));
- ASSERT_EFI_ERROR( Status );
+ Status = InitMmCommonCommBuffer (&mMmCommunicationBufferSize, &mMmCommunicationBuffer);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Failed to locate a viable MM comm buffer! %r\n", __FUNCTION__, Status));
+ ASSERT_EFI_ERROR (Status);
return Status;
}
// Locate the MmCommunication protocol.
- Status = gBS->LocateProtocol( &gEfiMmCommunication2ProtocolGuid, NULL, (VOID**)&mMmCommunication );
- if (EFI_ERROR( Status )) {
- DEBUG((DEBUG_ERROR, "%a - Failed to locate MmCommunication protocol! %r\n", __FUNCTION__, Status));
- ASSERT_EFI_ERROR( Status );
+ Status = gBS->LocateProtocol (&gEfiMmCommunication2ProtocolGuid, NULL, (VOID **)&mMmCommunication);
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Failed to locate MmCommunication protocol! %r\n", __FUNCTION__, Status));
+ ASSERT_EFI_ERROR (Status);
return Status;
}
@@ -523,14 +522,16 @@ VariablePolicySmmDxeMain (
mVariablePolicyProtocol.LockVariablePolicy = ProtocolLockVariablePolicy;
// Register all the protocols and return the status.
- Status = gBS->InstallMultipleProtocolInterfaces( &ImageHandle,
- &gEdkiiVariablePolicyProtocolGuid, &mVariablePolicyProtocol,
- NULL );
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Failed to install protocol! %r\n", __FUNCTION__, Status ));
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &ImageHandle,
+ &gEdkiiVariablePolicyProtocolGuid,
+ &mVariablePolicyProtocol,
+ NULL
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Failed to install protocol! %r\n", __FUNCTION__, Status));
goto Exit;
- }
- else {
+ } else {
ProtocolInstalled = TRUE;
}
@@ -541,31 +542,32 @@ VariablePolicySmmDxeMain (
//
// Register a VirtualAddressChange callback for the MmComm protocol and Comm buffer.
- Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL,
- TPL_NOTIFY,
- VariablePolicyVirtualAddressCallback,
- NULL,
- &gEfiEventVirtualAddressChangeGuid,
- &VirtualAddressChangeEvent);
- if (EFI_ERROR( Status )) {
- DEBUG(( DEBUG_ERROR, "%a - Failed to create VirtualAddressChange event! %r\n", __FUNCTION__, Status ));
+ Status = gBS->CreateEventEx (
+ EVT_NOTIFY_SIGNAL,
+ TPL_NOTIFY,
+ VariablePolicyVirtualAddressCallback,
+ NULL,
+ &gEfiEventVirtualAddressChangeGuid,
+ &VirtualAddressChangeEvent
+ );
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a - Failed to create VirtualAddressChange event! %r\n", __FUNCTION__, Status));
goto Exit;
- }
- else {
+ } else {
VirtualAddressChangeRegistered = TRUE;
}
-
Exit:
//
// If we're about to return a failed status (and unload this driver), we must first undo anything that
// has been successfully done.
- if (EFI_ERROR( Status )) {
+ if (EFI_ERROR (Status)) {
if (ProtocolInstalled) {
- gBS->UninstallProtocolInterface( &ImageHandle, &gEdkiiVariablePolicyProtocolGuid, &mVariablePolicyProtocol );
+ gBS->UninstallProtocolInterface (&ImageHandle, &gEdkiiVariablePolicyProtocolGuid, &mVariablePolicyProtocol);
}
+
if (VirtualAddressChangeRegistered) {
- gBS->CloseEvent( VirtualAddressChangeEvent );
+ gBS->CloseEvent (VirtualAddressChangeEvent);
}
}
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.c
index bc93cc0..9bb30bc 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.c
@@ -15,8 +15,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "VariableParsing.h"
#include "VariableRuntimeCache.h"
-extern VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
-extern VARIABLE_STORE_HEADER *mNvVariableCache;
+extern VARIABLE_MODULE_GLOBAL *mVariableModuleGlobal;
+extern VARIABLE_STORE_HEADER *mNvVariableCache;
/**
Copies any pending updates to runtime variable caches.
@@ -30,28 +30,30 @@ FlushPendingRuntimeVariableCacheUpdates (
VOID
)
{
- VARIABLE_RUNTIME_CACHE_CONTEXT *VariableRuntimeCacheContext;
+ VARIABLE_RUNTIME_CACHE_CONTEXT *VariableRuntimeCacheContext;
VariableRuntimeCacheContext = &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext;
- if (VariableRuntimeCacheContext->VariableRuntimeNvCache.Store == NULL ||
- VariableRuntimeCacheContext->VariableRuntimeVolatileCache.Store == NULL ||
- VariableRuntimeCacheContext->PendingUpdate == NULL) {
+ if ((VariableRuntimeCacheContext->VariableRuntimeNvCache.Store == NULL) ||
+ (VariableRuntimeCacheContext->VariableRuntimeVolatileCache.Store == NULL) ||
+ (VariableRuntimeCacheContext->PendingUpdate == NULL))
+ {
return EFI_UNSUPPORTED;
}
if (*(VariableRuntimeCacheContext->PendingUpdate)) {
- if (VariableRuntimeCacheContext->VariableRuntimeHobCache.Store != NULL &&
- mVariableModuleGlobal->VariableGlobal.HobVariableBase > 0) {
+ if ((VariableRuntimeCacheContext->VariableRuntimeHobCache.Store != NULL) &&
+ (mVariableModuleGlobal->VariableGlobal.HobVariableBase > 0))
+ {
CopyMem (
- (VOID *) (
- ((UINT8 *) (UINTN) VariableRuntimeCacheContext->VariableRuntimeHobCache.Store) +
- VariableRuntimeCacheContext->VariableRuntimeHobCache.PendingUpdateOffset
- ),
- (VOID *) (
- ((UINT8 *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase) +
- VariableRuntimeCacheContext->VariableRuntimeHobCache.PendingUpdateOffset
- ),
+ (VOID *)(
+ ((UINT8 *)(UINTN)VariableRuntimeCacheContext->VariableRuntimeHobCache.Store) +
+ VariableRuntimeCacheContext->VariableRuntimeHobCache.PendingUpdateOffset
+ ),
+ (VOID *)(
+ ((UINT8 *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase) +
+ VariableRuntimeCacheContext->VariableRuntimeHobCache.PendingUpdateOffset
+ ),
VariableRuntimeCacheContext->VariableRuntimeHobCache.PendingUpdateLength
);
VariableRuntimeCacheContext->VariableRuntimeHobCache.PendingUpdateLength = 0;
@@ -59,33 +61,33 @@ FlushPendingRuntimeVariableCacheUpdates (
}
CopyMem (
- (VOID *) (
- ((UINT8 *) (UINTN) VariableRuntimeCacheContext->VariableRuntimeNvCache.Store) +
- VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateOffset
- ),
- (VOID *) (
- ((UINT8 *) (UINTN) mNvVariableCache) +
- VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateOffset
- ),
+ (VOID *)(
+ ((UINT8 *)(UINTN)VariableRuntimeCacheContext->VariableRuntimeNvCache.Store) +
+ VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateOffset
+ ),
+ (VOID *)(
+ ((UINT8 *)(UINTN)mNvVariableCache) +
+ VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateOffset
+ ),
VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateLength
);
VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateLength = 0;
VariableRuntimeCacheContext->VariableRuntimeNvCache.PendingUpdateOffset = 0;
CopyMem (
- (VOID *) (
- ((UINT8 *) (UINTN) VariableRuntimeCacheContext->VariableRuntimeVolatileCache.Store) +
- VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset
- ),
- (VOID *) (
- ((UINT8 *) (UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase) +
- VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset
- ),
+ (VOID *)(
+ ((UINT8 *)(UINTN)VariableRuntimeCacheContext->VariableRuntimeVolatileCache.Store) +
+ VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset
+ ),
+ (VOID *)(
+ ((UINT8 *)(UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase) +
+ VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset
+ ),
VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateLength
);
VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateLength = 0;
VariableRuntimeCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset = 0;
- *(VariableRuntimeCacheContext->PendingUpdate) = FALSE;
+ *(VariableRuntimeCacheContext->PendingUpdate) = FALSE;
}
return EFI_SUCCESS;
@@ -110,9 +112,9 @@ FlushPendingRuntimeVariableCacheUpdates (
**/
EFI_STATUS
SynchronizeRuntimeVariableCache (
- IN VARIABLE_RUNTIME_CACHE *VariableRuntimeCache,
- IN UINTN Offset,
- IN UINTN Length
+ IN VARIABLE_RUNTIME_CACHE *VariableRuntimeCache,
+ IN UINTN Offset,
+ IN UINTN Length
)
{
if (VariableRuntimeCache == NULL) {
@@ -123,26 +125,29 @@ SynchronizeRuntimeVariableCache (
return EFI_SUCCESS;
}
- if (mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.PendingUpdate == NULL ||
- mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.ReadLock == NULL) {
+ if ((mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.PendingUpdate == NULL) ||
+ (mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.ReadLock == NULL))
+ {
return EFI_UNSUPPORTED;
}
if (*(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.PendingUpdate) &&
- VariableRuntimeCache->PendingUpdateLength > 0) {
+ (VariableRuntimeCache->PendingUpdateLength > 0))
+ {
VariableRuntimeCache->PendingUpdateLength =
- (UINT32) (
- MAX (
- (UINTN) (VariableRuntimeCache->PendingUpdateOffset + VariableRuntimeCache->PendingUpdateLength),
- Offset + Length
- ) - MIN ((UINTN) VariableRuntimeCache->PendingUpdateOffset, Offset)
- );
+ (UINT32)(
+ MAX (
+ (UINTN)(VariableRuntimeCache->PendingUpdateOffset + VariableRuntimeCache->PendingUpdateLength),
+ Offset + Length
+ ) - MIN ((UINTN)VariableRuntimeCache->PendingUpdateOffset, Offset)
+ );
VariableRuntimeCache->PendingUpdateOffset =
- (UINT32) MIN ((UINTN) VariableRuntimeCache->PendingUpdateOffset, Offset);
+ (UINT32)MIN ((UINTN)VariableRuntimeCache->PendingUpdateOffset, Offset);
} else {
- VariableRuntimeCache->PendingUpdateLength = (UINT32) Length;
- VariableRuntimeCache->PendingUpdateOffset = (UINT32) Offset;
+ VariableRuntimeCache->PendingUpdateLength = (UINT32)Length;
+ VariableRuntimeCache->PendingUpdateOffset = (UINT32)Offset;
}
+
*(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.PendingUpdate) = TRUE;
if (*(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.ReadLock) == FALSE) {
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.h b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.h
index f9804a1..7eb63cf 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.h
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeCache.h
@@ -43,9 +43,9 @@ FlushPendingRuntimeVariableCacheUpdates (
**/
EFI_STATUS
SynchronizeRuntimeVariableCache (
- IN VARIABLE_RUNTIME_CACHE *VariableRuntimeCache,
- IN UINTN Offset,
- IN UINTN Length
+ IN VARIABLE_RUNTIME_CACHE *VariableRuntimeCache,
+ IN UINTN Offset,
+ IN UINTN Length
);
#endif
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c
index 1ee6d21..517cae7 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c
@@ -34,11 +34,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "VariableParsing.h"
#include "VariableRuntimeCache.h"
-extern VARIABLE_STORE_HEADER *mNvVariableCache;
+extern VARIABLE_STORE_HEADER *mNvVariableCache;
-BOOLEAN mAtRuntime = FALSE;
-UINT8 *mVariableBufferPayload = NULL;
-UINTN mVariableBufferPayloadSize;
+BOOLEAN mAtRuntime = FALSE;
+UINT8 *mVariableBufferPayload = NULL;
+UINTN mVariableBufferPayloadSize;
/**
SecureBoot Hook for SetVariable.
@@ -50,11 +50,11 @@ UINTN mVariableBufferPayloadSize;
VOID
EFIAPI
SecureBootHook (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
- return ;
+ return;
}
/**
@@ -78,14 +78,14 @@ SecureBootHook (
EFI_STATUS
EFIAPI
SmmVariableSetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Disable write protection when the calling SetVariable() through EFI_SMM_VARIABLE_PROTOCOL.
@@ -102,16 +102,18 @@ SmmVariableSetVariable (
return Status;
}
-EFI_SMM_VARIABLE_PROTOCOL gSmmVariable = {
+EFI_SMM_VARIABLE_PROTOCOL gSmmVariable = {
VariableServiceGetVariable,
VariableServiceGetNextVariableName,
SmmVariableSetVariable,
VariableServiceQueryVariableInfo
};
-EDKII_SMM_VAR_CHECK_PROTOCOL mSmmVarCheck = { VarCheckRegisterSetVariableCheckHandler,
- VarCheckVariablePropertySet,
- VarCheckVariablePropertyGet };
+EDKII_SMM_VAR_CHECK_PROTOCOL mSmmVarCheck = {
+ VarCheckRegisterSetVariableCheckHandler,
+ VarCheckVariablePropertySet,
+ VarCheckVariablePropertyGet
+};
/**
Return TRUE if ExitBootServices () has been called.
@@ -144,8 +146,8 @@ AtRuntime (
**/
EFI_LOCK *
InitializeLock (
- IN OUT EFI_LOCK *Lock,
- IN EFI_TPL Priority
+ IN OUT EFI_LOCK *Lock,
+ IN EFI_TPL Priority
)
{
return Lock;
@@ -165,13 +167,11 @@ InitializeLock (
**/
VOID
AcquireLockOnlyAtBootTime (
- IN EFI_LOCK *Lock
+ IN EFI_LOCK *Lock
)
{
-
}
-
/**
Releases lock only at boot time. Simply returns at runtime.
@@ -186,10 +186,9 @@ AcquireLockOnlyAtBootTime (
**/
VOID
ReleaseLockOnlyAtBootTime (
- IN EFI_LOCK *Lock
+ IN EFI_LOCK *Lock
)
{
-
}
/**
@@ -204,10 +203,10 @@ ReleaseLockOnlyAtBootTime (
**/
EFI_STATUS
GetFtwProtocol (
- OUT VOID **FtwProtocol
+ OUT VOID **FtwProtocol
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// Locate Smm Fault Tolerent Write protocol
@@ -220,7 +219,6 @@ GetFtwProtocol (
return Status;
}
-
/**
Retrieve the SMM FVB protocol interface by HANDLE.
@@ -245,11 +243,10 @@ GetFvbByHandle (
return gMmst->MmHandleProtocol (
FvBlockHandle,
&gEfiSmmFirmwareVolumeBlockProtocolGuid,
- (VOID **) FvBlock
+ (VOID **)FvBlock
);
}
-
/**
Function returns an array of handles that support the SMM FVB protocol
in a buffer allocated from pool.
@@ -267,12 +264,12 @@ GetFvbByHandle (
**/
EFI_STATUS
GetFvbCountAndBuffer (
- OUT UINTN *NumberHandles,
- OUT EFI_HANDLE **Buffer
+ OUT UINTN *NumberHandles,
+ OUT EFI_HANDLE **Buffer
)
{
- EFI_STATUS Status;
- UINTN BufferSize;
+ EFI_STATUS Status;
+ UINTN BufferSize;
if ((NumberHandles == NULL) || (Buffer == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -281,14 +278,14 @@ GetFvbCountAndBuffer (
BufferSize = 0;
*NumberHandles = 0;
*Buffer = NULL;
- Status = gMmst->MmLocateHandle (
- ByProtocol,
- &gEfiSmmFirmwareVolumeBlockProtocolGuid,
- NULL,
- &BufferSize,
- *Buffer
- );
- if (EFI_ERROR(Status) && Status != EFI_BUFFER_TOO_SMALL) {
+ Status = gMmst->MmLocateHandle (
+ ByProtocol,
+ &gEfiSmmFirmwareVolumeBlockProtocolGuid,
+ NULL,
+ &BufferSize,
+ *Buffer
+ );
+ if (EFI_ERROR (Status) && (Status != EFI_BUFFER_TOO_SMALL)) {
return EFI_NOT_FOUND;
}
@@ -305,8 +302,8 @@ GetFvbCountAndBuffer (
*Buffer
);
- *NumberHandles = BufferSize / sizeof(EFI_HANDLE);
- if (EFI_ERROR(Status)) {
+ *NumberHandles = BufferSize / sizeof (EFI_HANDLE);
+ if (EFI_ERROR (Status)) {
*NumberHandles = 0;
FreePool (*Buffer);
*Buffer = NULL;
@@ -315,7 +312,6 @@ GetFvbCountAndBuffer (
return Status;
}
-
/**
Get the variable statistics information from the information buffer pointed by gVariableInfo.
@@ -338,16 +334,16 @@ GetFvbCountAndBuffer (
**/
EFI_STATUS
SmmVariableGetStatistics (
- IN OUT VARIABLE_INFO_ENTRY *InfoEntry,
- IN OUT UINTN *InfoSize
+ IN OUT VARIABLE_INFO_ENTRY *InfoEntry,
+ IN OUT UINTN *InfoSize
)
{
- VARIABLE_INFO_ENTRY *VariableInfo;
- UINTN NameSize;
- UINTN StatisticsInfoSize;
- CHAR16 *InfoName;
- UINTN InfoNameMaxSize;
- EFI_GUID VendorGuid;
+ VARIABLE_INFO_ENTRY *VariableInfo;
+ UINTN NameSize;
+ UINTN StatisticsInfoSize;
+ CHAR16 *InfoName;
+ UINTN InfoNameMaxSize;
+ EFI_GUID VendorGuid;
if (InfoEntry == NULL) {
return EFI_INVALID_PARAMETER;
@@ -363,7 +359,8 @@ SmmVariableGetStatistics (
*InfoSize = StatisticsInfoSize;
return EFI_BUFFER_TOO_SMALL;
}
- InfoName = (CHAR16 *)(InfoEntry + 1);
+
+ InfoName = (CHAR16 *)(InfoEntry + 1);
InfoNameMaxSize = (*InfoSize - sizeof (VARIABLE_INFO_ENTRY));
CopyGuid (&VendorGuid, &InfoEntry->VendorGuid);
@@ -372,12 +369,13 @@ SmmVariableGetStatistics (
//
// Return the first variable info
//
- NameSize = StrSize (VariableInfo->Name);
+ NameSize = StrSize (VariableInfo->Name);
StatisticsInfoSize = sizeof (VARIABLE_INFO_ENTRY) + NameSize;
if (*InfoSize < StatisticsInfoSize) {
*InfoSize = StatisticsInfoSize;
return EFI_BUFFER_TOO_SMALL;
}
+
CopyMem (InfoEntry, VariableInfo, sizeof (VARIABLE_INFO_ENTRY));
CopyMem (InfoName, VariableInfo->Name, NameSize);
*InfoSize = StatisticsInfoSize;
@@ -400,8 +398,9 @@ SmmVariableGetStatistics (
}
}
}
+
VariableInfo = VariableInfo->Next;
- };
+ }
if (VariableInfo == NULL) {
*InfoSize = 0;
@@ -411,7 +410,7 @@ SmmVariableGetStatistics (
//
// Output the new variable info
//
- NameSize = StrSize (VariableInfo->Name);
+ NameSize = StrSize (VariableInfo->Name);
StatisticsInfoSize = sizeof (VARIABLE_INFO_ENTRY) + NameSize;
if (*InfoSize < StatisticsInfoSize) {
*InfoSize = StatisticsInfoSize;
@@ -425,7 +424,6 @@ SmmVariableGetStatistics (
return EFI_SUCCESS;
}
-
/**
Communication service SMI Handler entry.
@@ -455,34 +453,34 @@ SmmVariableGetStatistics (
EFI_STATUS
EFIAPI
SmmVariableHandler (
- IN EFI_HANDLE DispatchHandle,
- IN CONST VOID *RegisterContext,
- IN OUT VOID *CommBuffer,
- IN OUT UINTN *CommBufferSize
+ IN EFI_HANDLE DispatchHandle,
+ IN CONST VOID *RegisterContext,
+ IN OUT VOID *CommBuffer,
+ IN OUT UINTN *CommBufferSize
)
{
- EFI_STATUS Status;
- SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
- SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *SmmVariableHeader;
- SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *GetNextVariableName;
- SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *QueryVariableInfo;
- SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *GetPayloadSize;
- SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *RuntimeVariableCacheContext;
- SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *GetRuntimeCacheInfo;
- SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE *VariableToLock;
- SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *CommVariableProperty;
- VARIABLE_INFO_ENTRY *VariableInfo;
- VARIABLE_RUNTIME_CACHE_CONTEXT *VariableCacheContext;
- VARIABLE_STORE_HEADER *VariableCache;
- UINTN InfoSize;
- UINTN NameBufferSize;
- UINTN CommBufferPayloadSize;
- UINTN TempCommBufferSize;
+ EFI_STATUS Status;
+ SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
+ SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *SmmVariableHeader;
+ SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *GetNextVariableName;
+ SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *QueryVariableInfo;
+ SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *GetPayloadSize;
+ SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *RuntimeVariableCacheContext;
+ SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *GetRuntimeCacheInfo;
+ SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE *VariableToLock;
+ SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *CommVariableProperty;
+ VARIABLE_INFO_ENTRY *VariableInfo;
+ VARIABLE_RUNTIME_CACHE_CONTEXT *VariableCacheContext;
+ VARIABLE_STORE_HEADER *VariableCache;
+ UINTN InfoSize;
+ UINTN NameBufferSize;
+ UINTN CommBufferPayloadSize;
+ UINTN TempCommBufferSize;
//
// If input is invalid, stop processing this SMI
//
- if (CommBuffer == NULL || CommBufferSize == NULL) {
+ if ((CommBuffer == NULL) || (CommBufferSize == NULL)) {
return EFI_SUCCESS;
}
@@ -492,6 +490,7 @@ SmmVariableHandler (
DEBUG ((DEBUG_ERROR, "SmmVariableHandler: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
+
CommBufferPayloadSize = TempCommBufferSize - SMM_VARIABLE_COMMUNICATE_HEADER_SIZE;
if (CommBufferPayloadSize > mVariableBufferPayloadSize) {
DEBUG ((DEBUG_ERROR, "SmmVariableHandler: SMM communication buffer payload size invalid!\n"));
@@ -506,24 +505,27 @@ SmmVariableHandler (
SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)CommBuffer;
switch (SmmVariableFunctionHeader->Function) {
case SMM_VARIABLE_FUNCTION_GET_VARIABLE:
- if (CommBufferPayloadSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) {
+ if (CommBufferPayloadSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) {
DEBUG ((DEBUG_ERROR, "GetVariable: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
+
//
// Copy the input communicate buffer payload to pre-allocated SMM variable buffer payload.
//
CopyMem (mVariableBufferPayload, SmmVariableFunctionHeader->Data, CommBufferPayloadSize);
- SmmVariableHeader = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *) mVariableBufferPayload;
- if (((UINTN)(~0) - SmmVariableHeader->DataSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) ||
- ((UINTN)(~0) - SmmVariableHeader->NameSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) + SmmVariableHeader->DataSize)) {
+ SmmVariableHeader = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *)mVariableBufferPayload;
+ if (((UINTN)(~0) - SmmVariableHeader->DataSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) ||
+ ((UINTN)(~0) - SmmVariableHeader->NameSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) + SmmVariableHeader->DataSize))
+ {
//
// Prevent InfoSize overflow happen
//
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
- InfoSize = OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)
+
+ InfoSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)
+ SmmVariableHeader->DataSize + SmmVariableHeader->NameSize;
//
@@ -541,7 +543,7 @@ SmmVariableHandler (
// subsequent consumption of the CommBuffer content.
//
VariableSpeculationBarrier ();
- if (SmmVariableHeader->NameSize < sizeof (CHAR16) || SmmVariableHeader->Name[SmmVariableHeader->NameSize/sizeof (CHAR16) - 1] != L'\0') {
+ if ((SmmVariableHeader->NameSize < sizeof (CHAR16)) || (SmmVariableHeader->Name[SmmVariableHeader->NameSize/sizeof (CHAR16) - 1] != L'\0')) {
//
// Make sure VariableName is A Null-terminated string.
//
@@ -560,23 +562,25 @@ SmmVariableHandler (
break;
case SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME:
- if (CommBufferPayloadSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name)) {
+ if (CommBufferPayloadSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name)) {
DEBUG ((DEBUG_ERROR, "GetNextVariableName: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
+
//
// Copy the input communicate buffer payload to pre-allocated SMM variable buffer payload.
//
CopyMem (mVariableBufferPayload, SmmVariableFunctionHeader->Data, CommBufferPayloadSize);
- GetNextVariableName = (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *) mVariableBufferPayload;
- if ((UINTN)(~0) - GetNextVariableName->NameSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name)) {
+ GetNextVariableName = (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *)mVariableBufferPayload;
+ if ((UINTN)(~0) - GetNextVariableName->NameSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name)) {
//
// Prevent InfoSize overflow happen
//
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
- InfoSize = OFFSET_OF(SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name) + GetNextVariableName->NameSize;
+
+ InfoSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name) + GetNextVariableName->NameSize;
//
// SMRAM range check already covered before
@@ -587,8 +591,8 @@ SmmVariableHandler (
goto EXIT;
}
- NameBufferSize = CommBufferPayloadSize - OFFSET_OF(SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name);
- if (NameBufferSize < sizeof (CHAR16) || GetNextVariableName->Name[NameBufferSize/sizeof (CHAR16) - 1] != L'\0') {
+ NameBufferSize = CommBufferPayloadSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name);
+ if ((NameBufferSize < sizeof (CHAR16)) || (GetNextVariableName->Name[NameBufferSize/sizeof (CHAR16) - 1] != L'\0')) {
//
// Make sure input VariableName is A Null-terminated string.
//
@@ -605,24 +609,27 @@ SmmVariableHandler (
break;
case SMM_VARIABLE_FUNCTION_SET_VARIABLE:
- if (CommBufferPayloadSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) {
+ if (CommBufferPayloadSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) {
DEBUG ((DEBUG_ERROR, "SetVariable: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
+
//
// Copy the input communicate buffer payload to pre-allocated SMM variable buffer payload.
//
CopyMem (mVariableBufferPayload, SmmVariableFunctionHeader->Data, CommBufferPayloadSize);
- SmmVariableHeader = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *) mVariableBufferPayload;
- if (((UINTN)(~0) - SmmVariableHeader->DataSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) ||
- ((UINTN)(~0) - SmmVariableHeader->NameSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) + SmmVariableHeader->DataSize)) {
+ SmmVariableHeader = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *)mVariableBufferPayload;
+ if (((UINTN)(~0) - SmmVariableHeader->DataSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) ||
+ ((UINTN)(~0) - SmmVariableHeader->NameSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) + SmmVariableHeader->DataSize))
+ {
//
// Prevent InfoSize overflow happen
//
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
- InfoSize = OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)
+
+ InfoSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)
+ SmmVariableHeader->DataSize + SmmVariableHeader->NameSize;
//
@@ -641,7 +648,7 @@ SmmVariableHandler (
// subsequent consumption of the CommBuffer content.
//
VariableSpeculationBarrier ();
- if (SmmVariableHeader->NameSize < sizeof (CHAR16) || SmmVariableHeader->Name[SmmVariableHeader->NameSize/sizeof (CHAR16) - 1] != L'\0') {
+ if ((SmmVariableHeader->NameSize < sizeof (CHAR16)) || (SmmVariableHeader->Name[SmmVariableHeader->NameSize/sizeof (CHAR16) - 1] != L'\0')) {
//
// Make sure VariableName is A Null-terminated string.
//
@@ -663,7 +670,8 @@ SmmVariableHandler (
DEBUG ((DEBUG_ERROR, "QueryVariableInfo: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- QueryVariableInfo = (SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *) SmmVariableFunctionHeader->Data;
+
+ QueryVariableInfo = (SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *)SmmVariableFunctionHeader->Data;
Status = VariableServiceQueryVariableInfo (
QueryVariableInfo->Attributes,
@@ -678,16 +686,18 @@ SmmVariableHandler (
DEBUG ((DEBUG_ERROR, "GetPayloadSize: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- GetPayloadSize = (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *) SmmVariableFunctionHeader->Data;
+
+ GetPayloadSize = (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *)SmmVariableFunctionHeader->Data;
GetPayloadSize->VariablePayloadSize = mVariableBufferPayloadSize;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
break;
case SMM_VARIABLE_FUNCTION_READY_TO_BOOT:
- if (AtRuntime()) {
+ if (AtRuntime ()) {
Status = EFI_UNSUPPORTED;
break;
}
+
if (!mEndOfDxe) {
MorLockInitAtEndOfDxe ();
Status = LockVariablePolicy ();
@@ -699,18 +709,19 @@ SmmVariableHandler (
//
InitializeVariableQuota ();
}
+
ReclaimForOS ();
Status = EFI_SUCCESS;
break;
case SMM_VARIABLE_FUNCTION_EXIT_BOOT_SERVICE:
mAtRuntime = TRUE;
- Status = EFI_SUCCESS;
+ Status = EFI_SUCCESS;
break;
case SMM_VARIABLE_FUNCTION_GET_STATISTICS:
- VariableInfo = (VARIABLE_INFO_ENTRY *) SmmVariableFunctionHeader->Data;
- InfoSize = TempCommBufferSize - SMM_VARIABLE_COMMUNICATE_HEADER_SIZE;
+ VariableInfo = (VARIABLE_INFO_ENTRY *)SmmVariableFunctionHeader->Data;
+ InfoSize = TempCommBufferSize - SMM_VARIABLE_COMMUNICATE_HEADER_SIZE;
//
// Do not need to check SmmVariableFunctionHeader->Data in SMRAM here.
@@ -722,7 +733,7 @@ SmmVariableHandler (
// that was used by SMM core to cache CommSize from SmmCommunication protocol.
//
- Status = SmmVariableGetStatistics (VariableInfo, &InfoSize);
+ Status = SmmVariableGetStatistics (VariableInfo, &InfoSize);
*CommBufferSize = InfoSize + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE;
break;
@@ -730,43 +741,47 @@ SmmVariableHandler (
if (mEndOfDxe) {
Status = EFI_ACCESS_DENIED;
} else {
- VariableToLock = (SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE *) SmmVariableFunctionHeader->Data;
- Status = VariableLockRequestToLock (
- NULL,
- VariableToLock->Name,
- &VariableToLock->Guid
- );
+ VariableToLock = (SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE *)SmmVariableFunctionHeader->Data;
+ Status = VariableLockRequestToLock (
+ NULL,
+ VariableToLock->Name,
+ &VariableToLock->Guid
+ );
}
+
break;
case SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_SET:
if (mEndOfDxe) {
Status = EFI_ACCESS_DENIED;
} else {
- CommVariableProperty = (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *) SmmVariableFunctionHeader->Data;
- Status = VarCheckVariablePropertySet (
- CommVariableProperty->Name,
- &CommVariableProperty->Guid,
- &CommVariableProperty->VariableProperty
- );
+ CommVariableProperty = (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *)SmmVariableFunctionHeader->Data;
+ Status = VarCheckVariablePropertySet (
+ CommVariableProperty->Name,
+ &CommVariableProperty->Guid,
+ &CommVariableProperty->VariableProperty
+ );
}
+
break;
case SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET:
if (CommBufferPayloadSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name)) {
DEBUG ((DEBUG_ERROR, "VarCheckVariablePropertyGet: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
+
//
// Copy the input communicate buffer payload to pre-allocated SMM variable buffer payload.
//
CopyMem (mVariableBufferPayload, SmmVariableFunctionHeader->Data, CommBufferPayloadSize);
- CommVariableProperty = (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *) mVariableBufferPayload;
- if ((UINTN) (~0) - CommVariableProperty->NameSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name)) {
+ CommVariableProperty = (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *)mVariableBufferPayload;
+ if ((UINTN)(~0) - CommVariableProperty->NameSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name)) {
//
// Prevent InfoSize overflow happen
//
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
InfoSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name) + CommVariableProperty->NameSize;
//
@@ -784,7 +799,7 @@ SmmVariableHandler (
// subsequent consumption of the CommBuffer content.
//
VariableSpeculationBarrier ();
- if (CommVariableProperty->NameSize < sizeof (CHAR16) || CommVariableProperty->Name[CommVariableProperty->NameSize/sizeof (CHAR16) - 1] != L'\0') {
+ if ((CommVariableProperty->NameSize < sizeof (CHAR16)) || (CommVariableProperty->Name[CommVariableProperty->NameSize/sizeof (CHAR16) - 1] != L'\0')) {
//
// Make sure VariableName is A Null-terminated string.
//
@@ -805,6 +820,7 @@ SmmVariableHandler (
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
if (mEndOfDxe) {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Cannot init context after end of DXE!\n"));
Status = EFI_ACCESS_DENIED;
@@ -815,16 +831,17 @@ SmmVariableHandler (
// Copy the input communicate buffer payload to the pre-allocated SMM variable payload buffer.
//
CopyMem (mVariableBufferPayload, SmmVariableFunctionHeader->Data, CommBufferPayloadSize);
- RuntimeVariableCacheContext = (SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *) mVariableBufferPayload;
+ RuntimeVariableCacheContext = (SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *)mVariableBufferPayload;
//
// Verify required runtime cache buffers are provided.
//
- if (RuntimeVariableCacheContext->RuntimeVolatileCache == NULL ||
- RuntimeVariableCacheContext->RuntimeNvCache == NULL ||
- RuntimeVariableCacheContext->PendingUpdate == NULL ||
- RuntimeVariableCacheContext->ReadLock == NULL ||
- RuntimeVariableCacheContext->HobFlushComplete == NULL) {
+ if ((RuntimeVariableCacheContext->RuntimeVolatileCache == NULL) ||
+ (RuntimeVariableCacheContext->RuntimeNvCache == NULL) ||
+ (RuntimeVariableCacheContext->PendingUpdate == NULL) ||
+ (RuntimeVariableCacheContext->ReadLock == NULL) ||
+ (RuntimeVariableCacheContext->HobFlushComplete == NULL))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Required runtime cache buffer is NULL!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
@@ -833,10 +850,11 @@ SmmVariableHandler (
//
// Verify minimum size requirements for the runtime variable store buffers.
//
- if ((RuntimeVariableCacheContext->RuntimeHobCache != NULL &&
- RuntimeVariableCacheContext->RuntimeHobCache->Size < sizeof (VARIABLE_STORE_HEADER)) ||
- RuntimeVariableCacheContext->RuntimeVolatileCache->Size < sizeof (VARIABLE_STORE_HEADER) ||
- RuntimeVariableCacheContext->RuntimeNvCache->Size < sizeof (VARIABLE_STORE_HEADER)) {
+ if (((RuntimeVariableCacheContext->RuntimeHobCache != NULL) &&
+ (RuntimeVariableCacheContext->RuntimeHobCache->Size < sizeof (VARIABLE_STORE_HEADER))) ||
+ (RuntimeVariableCacheContext->RuntimeVolatileCache->Size < sizeof (VARIABLE_STORE_HEADER)) ||
+ (RuntimeVariableCacheContext->RuntimeNvCache->Size < sizeof (VARIABLE_STORE_HEADER)))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: A runtime cache buffer size is invalid!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
@@ -845,51 +863,68 @@ SmmVariableHandler (
//
// Verify runtime buffers do not overlap with SMRAM ranges.
//
- if (RuntimeVariableCacheContext->RuntimeHobCache != NULL &&
+ if ((RuntimeVariableCacheContext->RuntimeHobCache != NULL) &&
!VariableSmmIsBufferOutsideSmmValid (
- (UINTN) RuntimeVariableCacheContext->RuntimeHobCache,
- (UINTN) RuntimeVariableCacheContext->RuntimeHobCache->Size)) {
+ (UINTN)RuntimeVariableCacheContext->RuntimeHobCache,
+ (UINTN)RuntimeVariableCacheContext->RuntimeHobCache->Size
+ ))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Runtime HOB cache buffer in SMRAM or overflow!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
if (!VariableSmmIsBufferOutsideSmmValid (
- (UINTN) RuntimeVariableCacheContext->RuntimeVolatileCache,
- (UINTN) RuntimeVariableCacheContext->RuntimeVolatileCache->Size)) {
+ (UINTN)RuntimeVariableCacheContext->RuntimeVolatileCache,
+ (UINTN)RuntimeVariableCacheContext->RuntimeVolatileCache->Size
+ ))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Runtime volatile cache buffer in SMRAM or overflow!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
if (!VariableSmmIsBufferOutsideSmmValid (
- (UINTN) RuntimeVariableCacheContext->RuntimeNvCache,
- (UINTN) RuntimeVariableCacheContext->RuntimeNvCache->Size)) {
+ (UINTN)RuntimeVariableCacheContext->RuntimeNvCache,
+ (UINTN)RuntimeVariableCacheContext->RuntimeNvCache->Size
+ ))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Runtime non-volatile cache buffer in SMRAM or overflow!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
if (!VariableSmmIsBufferOutsideSmmValid (
- (UINTN) RuntimeVariableCacheContext->PendingUpdate,
- sizeof (*(RuntimeVariableCacheContext->PendingUpdate)))) {
+ (UINTN)RuntimeVariableCacheContext->PendingUpdate,
+ sizeof (*(RuntimeVariableCacheContext->PendingUpdate))
+ ))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Runtime cache pending update buffer in SMRAM or overflow!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
if (!VariableSmmIsBufferOutsideSmmValid (
- (UINTN) RuntimeVariableCacheContext->ReadLock,
- sizeof (*(RuntimeVariableCacheContext->ReadLock)))) {
+ (UINTN)RuntimeVariableCacheContext->ReadLock,
+ sizeof (*(RuntimeVariableCacheContext->ReadLock))
+ ))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Runtime cache read lock buffer in SMRAM or overflow!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
+
if (!VariableSmmIsBufferOutsideSmmValid (
- (UINTN) RuntimeVariableCacheContext->HobFlushComplete,
- sizeof (*(RuntimeVariableCacheContext->HobFlushComplete)))) {
+ (UINTN)RuntimeVariableCacheContext->HobFlushComplete,
+ sizeof (*(RuntimeVariableCacheContext->HobFlushComplete))
+ ))
+ {
DEBUG ((DEBUG_ERROR, "InitRuntimeVariableCacheContext: Runtime cache HOB flush complete buffer in SMRAM or overflow!\n"));
Status = EFI_ACCESS_DENIED;
goto EXIT;
}
- VariableCacheContext = &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext;
+ VariableCacheContext = &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext;
VariableCacheContext->VariableRuntimeHobCache.Store = RuntimeVariableCacheContext->RuntimeHobCache;
VariableCacheContext->VariableRuntimeVolatileCache.Store = RuntimeVariableCacheContext->RuntimeVolatileCache;
VariableCacheContext->VariableRuntimeNvCache.Store = RuntimeVariableCacheContext->RuntimeNvCache;
@@ -900,24 +935,26 @@ SmmVariableHandler (
// Set up the intial pending request since the RT cache needs to be in sync with SMM cache
VariableCacheContext->VariableRuntimeHobCache.PendingUpdateOffset = 0;
VariableCacheContext->VariableRuntimeHobCache.PendingUpdateLength = 0;
- if (mVariableModuleGlobal->VariableGlobal.HobVariableBase > 0 &&
- VariableCacheContext->VariableRuntimeHobCache.Store != NULL) {
- VariableCache = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase;
- VariableCacheContext->VariableRuntimeHobCache.PendingUpdateLength = (UINT32) ((UINTN) GetEndPointer (VariableCache) - (UINTN) VariableCache);
+ if ((mVariableModuleGlobal->VariableGlobal.HobVariableBase > 0) &&
+ (VariableCacheContext->VariableRuntimeHobCache.Store != NULL))
+ {
+ VariableCache = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase;
+ VariableCacheContext->VariableRuntimeHobCache.PendingUpdateLength = (UINT32)((UINTN)GetEndPointer (VariableCache) - (UINTN)VariableCache);
CopyGuid (&(VariableCacheContext->VariableRuntimeHobCache.Store->Signature), &(VariableCache->Signature));
}
- VariableCache = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
- VariableCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset = 0;
- VariableCacheContext->VariableRuntimeVolatileCache.PendingUpdateLength = (UINT32) ((UINTN) GetEndPointer (VariableCache) - (UINTN) VariableCache);
+
+ VariableCache = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
+ VariableCacheContext->VariableRuntimeVolatileCache.PendingUpdateOffset = 0;
+ VariableCacheContext->VariableRuntimeVolatileCache.PendingUpdateLength = (UINT32)((UINTN)GetEndPointer (VariableCache) - (UINTN)VariableCache);
CopyGuid (&(VariableCacheContext->VariableRuntimeVolatileCache.Store->Signature), &(VariableCache->Signature));
- VariableCache = (VARIABLE_STORE_HEADER *) (UINTN) mNvVariableCache;
+ VariableCache = (VARIABLE_STORE_HEADER *)(UINTN)mNvVariableCache;
VariableCacheContext->VariableRuntimeNvCache.PendingUpdateOffset = 0;
- VariableCacheContext->VariableRuntimeNvCache.PendingUpdateLength = (UINT32) ((UINTN) GetEndPointer (VariableCache) - (UINTN) VariableCache);
+ VariableCacheContext->VariableRuntimeNvCache.PendingUpdateLength = (UINT32)((UINTN)GetEndPointer (VariableCache) - (UINTN)VariableCache);
CopyGuid (&(VariableCacheContext->VariableRuntimeNvCache.Store->Signature), &(VariableCache->Signature));
- *(VariableCacheContext->PendingUpdate) = TRUE;
- *(VariableCacheContext->ReadLock) = FALSE;
+ *(VariableCacheContext->PendingUpdate) = TRUE;
+ *(VariableCacheContext->ReadLock) = FALSE;
*(VariableCacheContext->HobFlushComplete) = FALSE;
Status = EFI_SUCCESS;
@@ -930,19 +967,20 @@ SmmVariableHandler (
DEBUG ((DEBUG_ERROR, "GetRuntimeCacheInfo: SMM communication buffer size invalid!\n"));
return EFI_SUCCESS;
}
- GetRuntimeCacheInfo = (SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *) SmmVariableFunctionHeader->Data;
+
+ GetRuntimeCacheInfo = (SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *)SmmVariableFunctionHeader->Data;
if (mVariableModuleGlobal->VariableGlobal.HobVariableBase > 0) {
- VariableCache = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.HobVariableBase;
+ VariableCache = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.HobVariableBase;
GetRuntimeCacheInfo->TotalHobStorageSize = VariableCache->Size;
} else {
GetRuntimeCacheInfo->TotalHobStorageSize = 0;
}
- VariableCache = (VARIABLE_STORE_HEADER *) (UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
- GetRuntimeCacheInfo->TotalVolatileStorageSize = VariableCache->Size;
- VariableCache = (VARIABLE_STORE_HEADER *) (UINTN) mNvVariableCache;
- GetRuntimeCacheInfo->TotalNvStorageSize = (UINTN) VariableCache->Size;
+ VariableCache = (VARIABLE_STORE_HEADER *)(UINTN)mVariableModuleGlobal->VariableGlobal.VolatileVariableBase;
+ GetRuntimeCacheInfo->TotalVolatileStorageSize = VariableCache->Size;
+ VariableCache = (VARIABLE_STORE_HEADER *)(UINTN)mNvVariableCache;
+ GetRuntimeCacheInfo->TotalNvStorageSize = (UINTN)VariableCache->Size;
GetRuntimeCacheInfo->AuthenticatedVariableUsage = mVariableModuleGlobal->VariableGlobal.AuthFormat;
Status = EFI_SUCCESS;
@@ -972,12 +1010,12 @@ EXIT:
EFI_STATUS
EFIAPI
SmmEndOfDxeCallback (
- IN CONST EFI_GUID *Protocol,
- IN VOID *Interface,
- IN EFI_HANDLE Handle
+ IN CONST EFI_GUID *Protocol,
+ IN VOID *Interface,
+ IN EFI_HANDLE Handle
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
DEBUG ((DEBUG_INFO, "[Variable]SMM_END_OF_DXE is signaled\n"));
MorLockInitAtEndOfDxe ();
@@ -1005,7 +1043,7 @@ VariableWriteServiceInitializeSmm (
VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
Status = VariableWriteServiceInitialize ();
if (EFI_ERROR (Status)) {
@@ -1035,9 +1073,9 @@ VariableWriteServiceInitializeSmm (
EFI_STATUS
EFIAPI
SmmFtwNotificationEvent (
- IN CONST EFI_GUID *Protocol,
- IN VOID *Interface,
- IN EFI_HANDLE Handle
+ IN CONST EFI_GUID *Protocol,
+ IN VOID *Interface,
+ IN EFI_HANDLE Handle
)
{
EFI_STATUS Status;
@@ -1065,7 +1103,7 @@ SmmFtwNotificationEvent (
}
NvStorageVariableBase = NV_STORAGE_VARIABLE_BASE;
- VariableStoreBase = NvStorageVariableBase + mNvFvHeaderCache->HeaderLength;
+ VariableStoreBase = NvStorageVariableBase + mNvFvHeaderCache->HeaderLength;
//
// Let NonVolatileVariableBase point to flash variable store base directly after FTW ready.
@@ -1090,7 +1128,6 @@ SmmFtwNotificationEvent (
return EFI_SUCCESS;
}
-
/**
Variable Driver main entry point. The Variable driver places the 4 EFI
runtime services in the EFI System Table and installs arch protocols
@@ -1106,10 +1143,10 @@ MmVariableServiceInitialize (
VOID
)
{
- EFI_STATUS Status;
- EFI_HANDLE VariableHandle;
- VOID *SmmFtwRegistration;
- VOID *SmmEndOfDxeRegistration;
+ EFI_STATUS Status;
+ EFI_HANDLE VariableHandle;
+ VOID *SmmFtwRegistration;
+ VOID *SmmEndOfDxeRegistration;
//
// Variable initialize.
@@ -1121,12 +1158,12 @@ MmVariableServiceInitialize (
// Install the Smm Variable Protocol on a new handle.
//
VariableHandle = NULL;
- Status = gMmst->MmInstallProtocolInterface (
- &VariableHandle,
- &gEfiSmmVariableProtocolGuid,
- EFI_NATIVE_INTERFACE,
- &gSmmVariable
- );
+ Status = gMmst->MmInstallProtocolInterface (
+ &VariableHandle,
+ &gEfiSmmVariableProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &gSmmVariable
+ );
ASSERT_EFI_ERROR (Status);
Status = gMmst->MmInstallProtocolInterface (
@@ -1138,8 +1175,8 @@ MmVariableServiceInitialize (
ASSERT_EFI_ERROR (Status);
mVariableBufferPayloadSize = GetMaxVariableSize () +
- OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name) -
- GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
+ OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name) -
+ GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat);
Status = gMmst->MmAllocatePool (
EfiRuntimeServicesData,
@@ -1152,7 +1189,7 @@ MmVariableServiceInitialize (
/// Register SMM variable SMI handler
///
VariableHandle = NULL;
- Status = gMmst->MmiHandlerRegister (SmmVariableHandler, &gEfiSmmVariableProtocolGuid, &VariableHandle);
+ Status = gMmst->MmiHandlerRegister (SmmVariableHandler, &gEfiSmmVariableProtocolGuid, &VariableHandle);
ASSERT_EFI_ERROR (Status);
//
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.c
index a166d28..4aaeb5b 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.c
@@ -43,28 +43,28 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include "PrivilegePolymorphic.h"
#include "VariableParsing.h"
-EFI_HANDLE mHandle = NULL;
-EFI_SMM_VARIABLE_PROTOCOL *mSmmVariable = NULL;
-EFI_EVENT mVirtualAddressChangeEvent = NULL;
-EFI_MM_COMMUNICATION2_PROTOCOL *mMmCommunication2 = NULL;
-UINT8 *mVariableBuffer = NULL;
-UINT8 *mVariableBufferPhysical = NULL;
-VARIABLE_INFO_ENTRY *mVariableInfo = NULL;
-VARIABLE_STORE_HEADER *mVariableRuntimeHobCacheBuffer = NULL;
-VARIABLE_STORE_HEADER *mVariableRuntimeNvCacheBuffer = NULL;
-VARIABLE_STORE_HEADER *mVariableRuntimeVolatileCacheBuffer = NULL;
-UINTN mVariableBufferSize;
-UINTN mVariableRuntimeHobCacheBufferSize;
-UINTN mVariableRuntimeNvCacheBufferSize;
-UINTN mVariableRuntimeVolatileCacheBufferSize;
-UINTN mVariableBufferPayloadSize;
-BOOLEAN mVariableRuntimeCachePendingUpdate;
-BOOLEAN mVariableRuntimeCacheReadLock;
-BOOLEAN mVariableAuthFormat;
-BOOLEAN mHobFlushComplete;
-EFI_LOCK mVariableServicesLock;
-EDKII_VARIABLE_LOCK_PROTOCOL mVariableLock;
-EDKII_VAR_CHECK_PROTOCOL mVarCheck;
+EFI_HANDLE mHandle = NULL;
+EFI_SMM_VARIABLE_PROTOCOL *mSmmVariable = NULL;
+EFI_EVENT mVirtualAddressChangeEvent = NULL;
+EFI_MM_COMMUNICATION2_PROTOCOL *mMmCommunication2 = NULL;
+UINT8 *mVariableBuffer = NULL;
+UINT8 *mVariableBufferPhysical = NULL;
+VARIABLE_INFO_ENTRY *mVariableInfo = NULL;
+VARIABLE_STORE_HEADER *mVariableRuntimeHobCacheBuffer = NULL;
+VARIABLE_STORE_HEADER *mVariableRuntimeNvCacheBuffer = NULL;
+VARIABLE_STORE_HEADER *mVariableRuntimeVolatileCacheBuffer = NULL;
+UINTN mVariableBufferSize;
+UINTN mVariableRuntimeHobCacheBufferSize;
+UINTN mVariableRuntimeNvCacheBufferSize;
+UINTN mVariableRuntimeVolatileCacheBufferSize;
+UINTN mVariableBufferPayloadSize;
+BOOLEAN mVariableRuntimeCachePendingUpdate;
+BOOLEAN mVariableRuntimeCacheReadLock;
+BOOLEAN mVariableAuthFormat;
+BOOLEAN mHobFlushComplete;
+EFI_LOCK mVariableServicesLock;
+EDKII_VARIABLE_LOCK_PROTOCOL mVariableLock;
+EDKII_VAR_CHECK_PROTOCOL mVarCheck;
/**
The logic to initialize the VariablePolicy engine is in its own file.
@@ -73,8 +73,8 @@ EDKII_VAR_CHECK_PROTOCOL mVarCheck;
EFI_STATUS
EFIAPI
VariablePolicySmmDxeMain (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
);
/**
@@ -84,7 +84,7 @@ VariablePolicySmmDxeMain (
**/
VOID
EFIAPI
-RecordSecureBootPolicyVarData(
+RecordSecureBootPolicyVarData (
VOID
);
@@ -102,7 +102,7 @@ RecordSecureBootPolicyVarData(
**/
VOID
AcquireLockOnlyAtBootTime (
- IN EFI_LOCK *Lock
+ IN EFI_LOCK *Lock
)
{
if (!EfiAtRuntime ()) {
@@ -124,7 +124,7 @@ AcquireLockOnlyAtBootTime (
**/
VOID
ReleaseLockOnlyAtBootTime (
- IN EFI_LOCK *Lock
+ IN EFI_LOCK *Lock
)
{
if (!EfiAtRuntime ()) {
@@ -161,30 +161,33 @@ AtRuntime (
**/
EFI_STATUS
InitVariableCache (
- OUT VARIABLE_STORE_HEADER **VariableCacheBuffer,
- IN OUT UINTN *TotalVariableCacheSize
+ OUT VARIABLE_STORE_HEADER **VariableCacheBuffer,
+ IN OUT UINTN *TotalVariableCacheSize
)
{
- VARIABLE_STORE_HEADER *VariableCacheStorePtr;
- EFI_STATUS Status;
+ VARIABLE_STORE_HEADER *VariableCacheStorePtr;
+ EFI_STATUS Status;
if (TotalVariableCacheSize == NULL) {
return EFI_INVALID_PARAMETER;
}
+
if (*TotalVariableCacheSize == 0) {
return EFI_SUCCESS;
}
- if (VariableCacheBuffer == NULL || *TotalVariableCacheSize < sizeof (VARIABLE_STORE_HEADER)) {
+
+ if ((VariableCacheBuffer == NULL) || (*TotalVariableCacheSize < sizeof (VARIABLE_STORE_HEADER))) {
return EFI_INVALID_PARAMETER;
}
+
*TotalVariableCacheSize = ALIGN_VALUE (*TotalVariableCacheSize, sizeof (UINT32));
//
// Allocate NV Storage Cache and initialize it to all 1's (like an erased FV)
//
- *VariableCacheBuffer = (VARIABLE_STORE_HEADER *) AllocateRuntimePages (
- EFI_SIZE_TO_PAGES (*TotalVariableCacheSize)
- );
+ *VariableCacheBuffer = (VARIABLE_STORE_HEADER *)AllocateRuntimePages (
+ EFI_SIZE_TO_PAGES (*TotalVariableCacheSize)
+ );
if (*VariableCacheBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
@@ -193,20 +196,20 @@ InitVariableCache (
// Request to unblock the newly allocated cache region to be accessible from inside MM
//
Status = MmUnblockMemoryRequest (
- (EFI_PHYSICAL_ADDRESS) (UINTN) *VariableCacheBuffer,
- EFI_SIZE_TO_PAGES (*TotalVariableCacheSize)
- );
- if (Status != EFI_UNSUPPORTED && EFI_ERROR (Status)) {
+ (EFI_PHYSICAL_ADDRESS)(UINTN)*VariableCacheBuffer,
+ EFI_SIZE_TO_PAGES (*TotalVariableCacheSize)
+ );
+ if ((Status != EFI_UNSUPPORTED) && EFI_ERROR (Status)) {
return Status;
}
VariableCacheStorePtr = *VariableCacheBuffer;
- SetMem32 ((VOID *) VariableCacheStorePtr, *TotalVariableCacheSize, (UINT32) 0xFFFFFFFF);
+ SetMem32 ((VOID *)VariableCacheStorePtr, *TotalVariableCacheSize, (UINT32)0xFFFFFFFF);
- ZeroMem ((VOID *) VariableCacheStorePtr, sizeof (VARIABLE_STORE_HEADER));
- VariableCacheStorePtr->Size = (UINT32) *TotalVariableCacheSize;
- VariableCacheStorePtr->Format = VARIABLE_STORE_FORMATTED;
- VariableCacheStorePtr->State = VARIABLE_STORE_HEALTHY;
+ ZeroMem ((VOID *)VariableCacheStorePtr, sizeof (VARIABLE_STORE_HEADER));
+ VariableCacheStorePtr->Size = (UINT32)*TotalVariableCacheSize;
+ VariableCacheStorePtr->Format = VARIABLE_STORE_FORMATTED;
+ VariableCacheStorePtr->State = VARIABLE_STORE_HEALTHY;
return EFI_SUCCESS;
}
@@ -230,24 +233,23 @@ InitVariableCache (
**/
EFI_STATUS
InitCommunicateBuffer (
- OUT VOID **DataPtr OPTIONAL,
- IN UINTN DataSize,
- IN UINTN Function
+ OUT VOID **DataPtr OPTIONAL,
+ IN UINTN DataSize,
+ IN UINTN Function
)
{
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
-
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
if (DataSize + SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE > mVariableBufferSize) {
return EFI_INVALID_PARAMETER;
}
- SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *) mVariableBuffer;
+ SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)mVariableBuffer;
CopyGuid (&SmmCommunicateHeader->HeaderGuid, &gEfiSmmVariableProtocolGuid);
SmmCommunicateHeader->MessageLength = DataSize + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE;
- SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *) SmmCommunicateHeader->Data;
+ SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)SmmCommunicateHeader->Data;
SmmVariableFunctionHeader->Function = Function;
if (DataPtr != NULL) {
*DataPtr = SmmVariableFunctionHeader->Data;
@@ -256,7 +258,6 @@ InitCommunicateBuffer (
return EFI_SUCCESS;
}
-
/**
Send the data in communicate buffer to SMM.
@@ -268,24 +269,26 @@ InitCommunicateBuffer (
**/
EFI_STATUS
SendCommunicateBuffer (
- IN UINTN DataSize
+ IN UINTN DataSize
)
{
- EFI_STATUS Status;
- UINTN CommSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
+ EFI_STATUS Status;
+ UINTN CommSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
CommSize = DataSize + SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE;
- Status = mMmCommunication2->Communicate (mMmCommunication2,
- mVariableBufferPhysical,
- mVariableBuffer,
- &CommSize);
+ Status = mMmCommunication2->Communicate (
+ mMmCommunication2,
+ mVariableBufferPhysical,
+ mVariableBuffer,
+ &CommSize
+ );
ASSERT_EFI_ERROR (Status);
- SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *) mVariableBuffer;
+ SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)mVariableBuffer;
SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)SmmCommunicateHeader->Data;
- return SmmVariableFunctionHeader->ReturnStatus;
+ return SmmVariableFunctionHeader->ReturnStatus;
}
/**
@@ -306,17 +309,17 @@ SendCommunicateBuffer (
EFI_STATUS
EFIAPI
VariableLockRequestToLock (
- IN CONST EDKII_VARIABLE_LOCK_PROTOCOL *This,
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid
+ IN CONST EDKII_VARIABLE_LOCK_PROTOCOL *This,
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- UINTN VariableNameSize;
- UINTN PayloadSize;
- SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE *VariableToLock;
+ EFI_STATUS Status;
+ UINTN VariableNameSize;
+ UINTN PayloadSize;
+ SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE *VariableToLock;
- if (VariableName == NULL || VariableName[0] == 0 || VendorGuid == NULL) {
+ if ((VariableName == NULL) || (VariableName[0] == 0) || (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -330,17 +333,18 @@ VariableLockRequestToLock (
return EFI_INVALID_PARAMETER;
}
- AcquireLockOnlyAtBootTime(&mVariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableServicesLock);
//
// Init the communicate buffer. The buffer data size is:
// SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + PayloadSize.
//
PayloadSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_LOCK_VARIABLE, Name) + VariableNameSize;
- Status = InitCommunicateBuffer ((VOID **) &VariableToLock, PayloadSize, SMM_VARIABLE_FUNCTION_LOCK_VARIABLE);
+ Status = InitCommunicateBuffer ((VOID **)&VariableToLock, PayloadSize, SMM_VARIABLE_FUNCTION_LOCK_VARIABLE);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (VariableToLock != NULL);
CopyGuid (&VariableToLock->Guid, VendorGuid);
@@ -374,7 +378,7 @@ Done:
EFI_STATUS
EFIAPI
VarCheckRegisterSetVariableCheckHandler (
- IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
+ IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
)
{
return EFI_UNSUPPORTED;
@@ -398,17 +402,17 @@ VarCheckRegisterSetVariableCheckHandler (
EFI_STATUS
EFIAPI
VarCheckVariablePropertySet (
- IN CHAR16 *Name,
- IN EFI_GUID *Guid,
- IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
+ IN CHAR16 *Name,
+ IN EFI_GUID *Guid,
+ IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
)
{
- EFI_STATUS Status;
- UINTN VariableNameSize;
- UINTN PayloadSize;
- SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *CommVariableProperty;
+ EFI_STATUS Status;
+ UINTN VariableNameSize;
+ UINTN PayloadSize;
+ SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *CommVariableProperty;
- if (Name == NULL || Name[0] == 0 || Guid == NULL) {
+ if ((Name == NULL) || (Name[0] == 0) || (Guid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -420,7 +424,7 @@ VarCheckVariablePropertySet (
return EFI_INVALID_PARAMETER;
}
- VariableNameSize = StrSize (Name);
+ VariableNameSize = StrSize (Name);
CommVariableProperty = NULL;
//
@@ -437,10 +441,11 @@ VarCheckVariablePropertySet (
// SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + PayloadSize.
//
PayloadSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name) + VariableNameSize;
- Status = InitCommunicateBuffer ((VOID **) &CommVariableProperty, PayloadSize, SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_SET);
+ Status = InitCommunicateBuffer ((VOID **)&CommVariableProperty, PayloadSize, SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_SET);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (CommVariableProperty != NULL);
CopyGuid (&CommVariableProperty->Guid, Guid);
@@ -473,17 +478,17 @@ Done:
EFI_STATUS
EFIAPI
VarCheckVariablePropertyGet (
- IN CHAR16 *Name,
- IN EFI_GUID *Guid,
- OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
+ IN CHAR16 *Name,
+ IN EFI_GUID *Guid,
+ OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
)
{
- EFI_STATUS Status;
- UINTN VariableNameSize;
- UINTN PayloadSize;
- SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *CommVariableProperty;
+ EFI_STATUS Status;
+ UINTN VariableNameSize;
+ UINTN PayloadSize;
+ SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY *CommVariableProperty;
- if (Name == NULL || Name[0] == 0 || Guid == NULL) {
+ if ((Name == NULL) || (Name[0] == 0) || (Guid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -491,7 +496,7 @@ VarCheckVariablePropertyGet (
return EFI_INVALID_PARAMETER;
}
- VariableNameSize = StrSize (Name);
+ VariableNameSize = StrSize (Name);
CommVariableProperty = NULL;
//
@@ -508,10 +513,11 @@ VarCheckVariablePropertyGet (
// SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + PayloadSize.
//
PayloadSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name) + VariableNameSize;
- Status = InitCommunicateBuffer ((VOID **) &CommVariableProperty, PayloadSize, SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET);
+ Status = InitCommunicateBuffer ((VOID **)&CommVariableProperty, PayloadSize, SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (CommVariableProperty != NULL);
CopyGuid (&CommVariableProperty->Guid, Guid);
@@ -567,15 +573,17 @@ CheckForRuntimeCacheSync (
if (mVariableRuntimeCachePendingUpdate) {
SyncRuntimeCache ();
}
+
ASSERT (!mVariableRuntimeCachePendingUpdate);
//
// The HOB variable data may have finished being flushed in the runtime cache sync update
//
- if (mHobFlushComplete && mVariableRuntimeHobCacheBuffer != NULL) {
+ if (mHobFlushComplete && (mVariableRuntimeHobCacheBuffer != NULL)) {
if (!EfiAtRuntime ()) {
FreePages (mVariableRuntimeHobCacheBuffer, EFI_SIZE_TO_PAGES (mVariableRuntimeHobCacheBufferSize));
}
+
mVariableRuntimeHobCacheBuffer = NULL;
}
}
@@ -600,11 +608,11 @@ CheckForRuntimeCacheSync (
**/
EFI_STATUS
FindVariableInRuntimeCache (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT UINT32 *Attributes OPTIONAL,
- IN OUT UINTN *DataSize,
- OUT VOID *Data OPTIONAL
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data OPTIONAL
)
{
EFI_STATUS Status;
@@ -615,7 +623,7 @@ FindVariableInRuntimeCache (
Status = EFI_NOT_FOUND;
- if (VariableName == NULL || VendorGuid == NULL || DataSize == NULL) {
+ if ((VariableName == NULL) || (VendorGuid == NULL) || (DataSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -642,14 +650,14 @@ FindVariableInRuntimeCache (
VariableStoreList[VariableStoreTypeHob] = mVariableRuntimeHobCacheBuffer;
VariableStoreList[VariableStoreTypeNv] = mVariableRuntimeNvCacheBuffer;
- for (StoreType = (VARIABLE_STORE_TYPE) 0; StoreType < VariableStoreTypeMax; StoreType++) {
+ for (StoreType = (VARIABLE_STORE_TYPE)0; StoreType < VariableStoreTypeMax; StoreType++) {
if (VariableStoreList[StoreType] == NULL) {
continue;
}
RtPtrTrack.StartPtr = GetStartPointer (VariableStoreList[StoreType]);
- RtPtrTrack.EndPtr = GetEndPointer (VariableStoreList[StoreType]);
- RtPtrTrack.Volatile = (BOOLEAN) (StoreType == VariableStoreTypeVolatile);
+ RtPtrTrack.EndPtr = GetEndPointer (VariableStoreList[StoreType]);
+ RtPtrTrack.Volatile = (BOOLEAN)(StoreType == VariableStoreTypeVolatile);
Status = FindVariableEx (VariableName, VendorGuid, FALSE, &RtPtrTrack, mVariableAuthFormat);
if (!EFI_ERROR (Status)) {
@@ -679,18 +687,19 @@ FindVariableInRuntimeCache (
goto Done;
} else {
*DataSize = TempDataSize;
- Status = EFI_BUFFER_TOO_SMALL;
+ Status = EFI_BUFFER_TOO_SMALL;
goto Done;
}
}
}
Done:
- if (Status == EFI_SUCCESS || Status == EFI_BUFFER_TOO_SMALL) {
- if (Attributes != NULL && RtPtrTrack.CurrPtr != NULL) {
+ if ((Status == EFI_SUCCESS) || (Status == EFI_BUFFER_TOO_SMALL)) {
+ if ((Attributes != NULL) && (RtPtrTrack.CurrPtr != NULL)) {
*Attributes = RtPtrTrack.CurrPtr->Attributes;
}
}
+
mVariableRuntimeCacheReadLock = FALSE;
return Status;
@@ -716,11 +725,11 @@ Done:
**/
EFI_STATUS
FindVariableInSmm (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT UINT32 *Attributes OPTIONAL,
- IN OUT UINTN *DataSize,
- OUT VOID *Data OPTIONAL
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data OPTIONAL
)
{
EFI_STATUS Status;
@@ -729,13 +738,13 @@ FindVariableInSmm (
UINTN TempDataSize;
UINTN VariableNameSize;
- if (VariableName == NULL || VendorGuid == NULL || DataSize == NULL) {
+ if ((VariableName == NULL) || (VendorGuid == NULL) || (DataSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
- TempDataSize = *DataSize;
- VariableNameSize = StrSize (VariableName);
- SmmVariableHeader = NULL;
+ TempDataSize = *DataSize;
+ VariableNameSize = StrSize (VariableName);
+ SmmVariableHeader = NULL;
//
// If VariableName exceeds SMM payload limit. Return failure
@@ -754,22 +763,25 @@ FindVariableInSmm (
//
TempDataSize = mVariableBufferPayloadSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) - VariableNameSize;
}
+
PayloadSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) + VariableNameSize + TempDataSize;
- Status = InitCommunicateBuffer ((VOID **) &SmmVariableHeader, PayloadSize, SMM_VARIABLE_FUNCTION_GET_VARIABLE);
+ Status = InitCommunicateBuffer ((VOID **)&SmmVariableHeader, PayloadSize, SMM_VARIABLE_FUNCTION_GET_VARIABLE);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (SmmVariableHeader != NULL);
CopyGuid (&SmmVariableHeader->Guid, VendorGuid);
- SmmVariableHeader->DataSize = TempDataSize;
- SmmVariableHeader->NameSize = VariableNameSize;
+ SmmVariableHeader->DataSize = TempDataSize;
+ SmmVariableHeader->NameSize = VariableNameSize;
if (Attributes == NULL) {
SmmVariableHeader->Attributes = 0;
} else {
SmmVariableHeader->Attributes = *Attributes;
}
+
CopyMem (SmmVariableHeader->Name, VariableName, SmmVariableHeader->NameSize);
//
@@ -780,13 +792,14 @@ FindVariableInSmm (
//
// Get data from SMM.
//
- if (Status == EFI_SUCCESS || Status == EFI_BUFFER_TOO_SMALL) {
+ if ((Status == EFI_SUCCESS) || (Status == EFI_BUFFER_TOO_SMALL)) {
//
// SMM CommBuffer DataSize can be a trimed value
// Only update DataSize when needed
//
*DataSize = SmmVariableHeader->DataSize;
}
+
if (Attributes != NULL) {
*Attributes = SmmVariableHeader->Attributes;
}
@@ -827,18 +840,19 @@ Done:
EFI_STATUS
EFIAPI
RuntimeServiceGetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- OUT UINT32 *Attributes OPTIONAL,
- IN OUT UINTN *DataSize,
- OUT VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- if (VariableName == NULL || VendorGuid == NULL || DataSize == NULL) {
+ if ((VariableName == NULL) || (VendorGuid == NULL) || (DataSize == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
if (VariableName[0] == 0) {
return EFI_NOT_FOUND;
}
@@ -849,6 +863,7 @@ RuntimeServiceGetVariable (
} else {
Status = FindVariableInSmm (VariableName, VendorGuid, Attributes, DataSize, Data);
}
+
ReleaseLockOnlyAtBootTime (&mVariableServicesLock);
return Status;
@@ -869,15 +884,15 @@ RuntimeServiceGetVariable (
**/
EFI_STATUS
GetNextVariableNameInRuntimeCache (
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VendorGuid
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- UINTN VarNameSize;
- VARIABLE_HEADER *VariablePtr;
- VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
+ EFI_STATUS Status;
+ UINTN VarNameSize;
+ VARIABLE_HEADER *VariablePtr;
+ VARIABLE_STORE_HEADER *VariableStoreHeader[VariableStoreTypeMax];
Status = EFI_NOT_FOUND;
@@ -923,6 +938,7 @@ GetNextVariableNameInRuntimeCache (
*VariableNameSize = VarNameSize;
}
}
+
mVariableRuntimeCacheReadLock = FALSE;
return Status;
@@ -943,19 +959,19 @@ GetNextVariableNameInRuntimeCache (
**/
EFI_STATUS
GetNextVariableNameInSmm (
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VendorGuid
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *SmmGetNextVariableName;
- UINTN OutVariableNameSize;
- UINTN InVariableNameSize;
-
- OutVariableNameSize = *VariableNameSize;
- InVariableNameSize = StrSize (VariableName);
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *SmmGetNextVariableName;
+ UINTN OutVariableNameSize;
+ UINTN InVariableNameSize;
+
+ OutVariableNameSize = *VariableNameSize;
+ InVariableNameSize = StrSize (VariableName);
SmmGetNextVariableName = NULL;
//
@@ -975,6 +991,7 @@ GetNextVariableNameInSmm (
//
OutVariableNameSize = mVariableBufferPayloadSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name);
}
+
//
// Payload should be Guid + NameSize + MAX of Input & Output buffer
//
@@ -984,6 +1001,7 @@ GetNextVariableNameInSmm (
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (SmmGetNextVariableName != NULL);
//
@@ -997,7 +1015,7 @@ GetNextVariableNameInSmm (
//
CopyMem (SmmGetNextVariableName->Name, VariableName, InVariableNameSize);
if (OutVariableNameSize > InVariableNameSize) {
- ZeroMem ((UINT8 *) SmmGetNextVariableName->Name + InVariableNameSize, OutVariableNameSize - InVariableNameSize);
+ ZeroMem ((UINT8 *)SmmGetNextVariableName->Name + InVariableNameSize, OutVariableNameSize - InVariableNameSize);
}
//
@@ -1008,13 +1026,14 @@ GetNextVariableNameInSmm (
//
// Get data from SMM.
//
- if (Status == EFI_SUCCESS || Status == EFI_BUFFER_TOO_SMALL) {
+ if ((Status == EFI_SUCCESS) || (Status == EFI_BUFFER_TOO_SMALL)) {
//
// SMM CommBuffer NameSize can be a trimed value
// Only update VariableNameSize when needed
//
*VariableNameSize = SmmGetNextVariableName->NameSize;
}
+
if (EFI_ERROR (Status)) {
goto Done;
}
@@ -1042,17 +1061,17 @@ Done:
EFI_STATUS
EFIAPI
RuntimeServiceGetNextVariableName (
- IN OUT UINTN *VariableNameSize,
- IN OUT CHAR16 *VariableName,
- IN OUT EFI_GUID *VendorGuid
+ IN OUT UINTN *VariableNameSize,
+ IN OUT CHAR16 *VariableName,
+ IN OUT EFI_GUID *VendorGuid
)
{
- EFI_STATUS Status;
- UINTN MaxLen;
+ EFI_STATUS Status;
+ UINTN MaxLen;
Status = EFI_NOT_FOUND;
- if (VariableNameSize == NULL || VariableName == NULL || VendorGuid == NULL) {
+ if ((VariableNameSize == NULL) || (VariableName == NULL) || (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1074,6 +1093,7 @@ RuntimeServiceGetNextVariableName (
} else {
Status = GetNextVariableNameInSmm (VariableNameSize, VariableName, VendorGuid);
}
+
ReleaseLockOnlyAtBootTime (&mVariableServicesLock);
return Status;
@@ -1102,11 +1122,11 @@ RuntimeServiceGetNextVariableName (
EFI_STATUS
EFIAPI
RuntimeServiceSetVariable (
- IN CHAR16 *VariableName,
- IN EFI_GUID *VendorGuid,
- IN UINT32 Attributes,
- IN UINTN DataSize,
- IN VOID *Data
+ IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data
)
{
EFI_STATUS Status;
@@ -1117,44 +1137,46 @@ RuntimeServiceSetVariable (
//
// Check input parameters.
//
- if (VariableName == NULL || VariableName[0] == 0 || VendorGuid == NULL) {
+ if ((VariableName == NULL) || (VariableName[0] == 0) || (VendorGuid == NULL)) {
return EFI_INVALID_PARAMETER;
}
- if (DataSize != 0 && Data == NULL) {
+ if ((DataSize != 0) && (Data == NULL)) {
return EFI_INVALID_PARAMETER;
}
- VariableNameSize = StrSize (VariableName);
- SmmVariableHeader = NULL;
+ VariableNameSize = StrSize (VariableName);
+ SmmVariableHeader = NULL;
//
// If VariableName or DataSize exceeds SMM payload limit. Return failure
//
if ((VariableNameSize > mVariableBufferPayloadSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) ||
- (DataSize > mVariableBufferPayloadSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) - VariableNameSize)){
+ (DataSize > mVariableBufferPayloadSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) - VariableNameSize))
+ {
return EFI_INVALID_PARAMETER;
}
- AcquireLockOnlyAtBootTime(&mVariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableServicesLock);
//
// Init the communicate buffer. The buffer data size is:
// SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + PayloadSize.
//
PayloadSize = OFFSET_OF (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name) + VariableNameSize + DataSize;
- Status = InitCommunicateBuffer ((VOID **)&SmmVariableHeader, PayloadSize, SMM_VARIABLE_FUNCTION_SET_VARIABLE);
+ Status = InitCommunicateBuffer ((VOID **)&SmmVariableHeader, PayloadSize, SMM_VARIABLE_FUNCTION_SET_VARIABLE);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (SmmVariableHeader != NULL);
- CopyGuid ((EFI_GUID *) &SmmVariableHeader->Guid, VendorGuid);
+ CopyGuid ((EFI_GUID *)&SmmVariableHeader->Guid, VendorGuid);
SmmVariableHeader->DataSize = DataSize;
SmmVariableHeader->NameSize = VariableNameSize;
SmmVariableHeader->Attributes = Attributes;
CopyMem (SmmVariableHeader->Name, VariableName, SmmVariableHeader->NameSize);
- CopyMem ((UINT8 *) SmmVariableHeader->Name + SmmVariableHeader->NameSize, Data, DataSize);
+ CopyMem ((UINT8 *)SmmVariableHeader->Name + SmmVariableHeader->NameSize, Data, DataSize);
//
// Send data to SMM.
@@ -1172,10 +1194,10 @@ Done:
);
}
}
+
return Status;
}
-
/**
This code returns information about the EFI variables.
@@ -1196,36 +1218,37 @@ Done:
EFI_STATUS
EFIAPI
RuntimeServiceQueryVariableInfo (
- IN UINT32 Attributes,
- OUT UINT64 *MaximumVariableStorageSize,
- OUT UINT64 *RemainingVariableStorageSize,
- OUT UINT64 *MaximumVariableSize
+ IN UINT32 Attributes,
+ OUT UINT64 *MaximumVariableStorageSize,
+ OUT UINT64 *RemainingVariableStorageSize,
+ OUT UINT64 *MaximumVariableSize
)
{
- EFI_STATUS Status;
- UINTN PayloadSize;
- SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *SmmQueryVariableInfo;
+ EFI_STATUS Status;
+ UINTN PayloadSize;
+ SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *SmmQueryVariableInfo;
SmmQueryVariableInfo = NULL;
- if(MaximumVariableStorageSize == NULL || RemainingVariableStorageSize == NULL || MaximumVariableSize == NULL || Attributes == 0) {
+ if ((MaximumVariableStorageSize == NULL) || (RemainingVariableStorageSize == NULL) || (MaximumVariableSize == NULL) || (Attributes == 0)) {
return EFI_INVALID_PARAMETER;
}
- AcquireLockOnlyAtBootTime(&mVariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableServicesLock);
//
// Init the communicate buffer. The buffer data size is:
// SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + PayloadSize;
//
PayloadSize = sizeof (SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO);
- Status = InitCommunicateBuffer ((VOID **)&SmmQueryVariableInfo, PayloadSize, SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO);
+ Status = InitCommunicateBuffer ((VOID **)&SmmQueryVariableInfo, PayloadSize, SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO);
if (EFI_ERROR (Status)) {
goto Done;
}
+
ASSERT (SmmQueryVariableInfo != NULL);
- SmmQueryVariableInfo->Attributes = Attributes;
+ SmmQueryVariableInfo->Attributes = Attributes;
//
// Send data to SMM.
@@ -1247,7 +1270,6 @@ Done:
return Status;
}
-
/**
Exit Boot Services Event notification handler.
@@ -1260,8 +1282,8 @@ Done:
VOID
EFIAPI
OnExitBootServices (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
//
@@ -1276,7 +1298,6 @@ OnExitBootServices (
SendCommunicateBuffer (0);
}
-
/**
On Ready To Boot Services Event notification handler.
@@ -1289,8 +1310,8 @@ OnExitBootServices (
VOID
EFIAPI
OnReadyToBoot (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
//
@@ -1318,7 +1339,6 @@ OnReadyToBoot (
gBS->CloseEvent (Event);
}
-
/**
Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.
@@ -1332,15 +1352,15 @@ OnReadyToBoot (
VOID
EFIAPI
VariableAddressChangeEvent (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EfiConvertPointer (0x0, (VOID **) &mVariableBuffer);
- EfiConvertPointer (0x0, (VOID **) &mMmCommunication2);
- EfiConvertPointer (EFI_OPTIONAL_PTR, (VOID **) &mVariableRuntimeHobCacheBuffer);
- EfiConvertPointer (EFI_OPTIONAL_PTR, (VOID **) &mVariableRuntimeNvCacheBuffer);
- EfiConvertPointer (EFI_OPTIONAL_PTR, (VOID **) &mVariableRuntimeVolatileCacheBuffer);
+ EfiConvertPointer (0x0, (VOID **)&mVariableBuffer);
+ EfiConvertPointer (0x0, (VOID **)&mMmCommunication2);
+ EfiConvertPointer (EFI_OPTIONAL_PTR, (VOID **)&mVariableRuntimeHobCacheBuffer);
+ EfiConvertPointer (EFI_OPTIONAL_PTR, (VOID **)&mVariableRuntimeNvCacheBuffer);
+ EfiConvertPointer (EFI_OPTIONAL_PTR, (VOID **)&mVariableRuntimeVolatileCacheBuffer);
}
/**
@@ -1355,43 +1375,43 @@ VariableAddressChangeEvent (
EFI_STATUS
EFIAPI
GetVariablePayloadSize (
- OUT UINTN *VariablePayloadSize
+ OUT UINTN *VariablePayloadSize
)
{
- EFI_STATUS Status;
- SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *SmmGetPayloadSize;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
- UINTN CommSize;
- UINT8 *CommBuffer;
+ EFI_STATUS Status;
+ SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *SmmGetPayloadSize;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
+ UINTN CommSize;
+ UINT8 *CommBuffer;
SmmGetPayloadSize = NULL;
- CommBuffer = NULL;
+ CommBuffer = NULL;
- if(VariablePayloadSize == NULL) {
+ if (VariablePayloadSize == NULL) {
return EFI_INVALID_PARAMETER;
}
- AcquireLockOnlyAtBootTime(&mVariableServicesLock);
+ AcquireLockOnlyAtBootTime (&mVariableServicesLock);
//
// Init the communicate buffer. The buffer data size is:
// SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE);
//
- CommSize = SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE);
+ CommSize = SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE);
CommBuffer = AllocateZeroPool (CommSize);
if (CommBuffer == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
- SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *) CommBuffer;
+ SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)CommBuffer;
CopyGuid (&SmmCommunicateHeader->HeaderGuid, &gEfiSmmVariableProtocolGuid);
SmmCommunicateHeader->MessageLength = SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE);
- SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *) SmmCommunicateHeader->Data;
+ SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)SmmCommunicateHeader->Data;
SmmVariableFunctionHeader->Function = SMM_VARIABLE_FUNCTION_GET_PAYLOAD_SIZE;
- SmmGetPayloadSize = (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *) SmmVariableFunctionHeader->Data;
+ SmmGetPayloadSize = (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *)SmmVariableFunctionHeader->Data;
//
// Send data to SMM.
@@ -1413,6 +1433,7 @@ Done:
if (CommBuffer != NULL) {
FreePool (CommBuffer);
}
+
ReleaseLockOnlyAtBootTime (&mVariableServicesLock);
return Status;
}
@@ -1433,23 +1454,23 @@ Done:
**/
EFI_STATUS
GetRuntimeCacheInfo (
- OUT UINTN *TotalHobStorageSize,
- OUT UINTN *TotalNvStorageSize,
- OUT UINTN *TotalVolatileStorageSize,
- OUT BOOLEAN *AuthenticatedVariableUsage
+ OUT UINTN *TotalHobStorageSize,
+ OUT UINTN *TotalNvStorageSize,
+ OUT UINTN *TotalVolatileStorageSize,
+ OUT BOOLEAN *AuthenticatedVariableUsage
)
{
- EFI_STATUS Status;
- SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *SmmGetRuntimeCacheInfo;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
- UINTN CommSize;
- UINT8 *CommBuffer;
+ EFI_STATUS Status;
+ SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *SmmGetRuntimeCacheInfo;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
+ UINTN CommSize;
+ UINT8 *CommBuffer;
SmmGetRuntimeCacheInfo = NULL;
- CommBuffer = mVariableBuffer;
+ CommBuffer = mVariableBuffer;
- if (TotalHobStorageSize == NULL || TotalNvStorageSize == NULL || TotalVolatileStorageSize == NULL || AuthenticatedVariableUsage == NULL) {
+ if ((TotalHobStorageSize == NULL) || (TotalNvStorageSize == NULL) || (TotalVolatileStorageSize == NULL) || (AuthenticatedVariableUsage == NULL)) {
return EFI_INVALID_PARAMETER;
}
@@ -1462,13 +1483,13 @@ GetRuntimeCacheInfo (
CommSize = SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO);
ZeroMem (CommBuffer, CommSize);
- SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *) CommBuffer;
+ SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)CommBuffer;
CopyGuid (&SmmCommunicateHeader->HeaderGuid, &gEfiSmmVariableProtocolGuid);
SmmCommunicateHeader->MessageLength = SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO);
- SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *) SmmCommunicateHeader->Data;
+ SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)SmmCommunicateHeader->Data;
SmmVariableFunctionHeader->Function = SMM_VARIABLE_FUNCTION_GET_RUNTIME_CACHE_INFO;
- SmmGetRuntimeCacheInfo = (SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *) SmmVariableFunctionHeader->Data;
+ SmmGetRuntimeCacheInfo = (SMM_VARIABLE_COMMUNICATE_GET_RUNTIME_CACHE_INFO *)SmmVariableFunctionHeader->Data;
//
// Send data to SMM.
@@ -1488,9 +1509,9 @@ GetRuntimeCacheInfo (
//
// Get data from SMM.
//
- *TotalHobStorageSize = SmmGetRuntimeCacheInfo->TotalHobStorageSize;
- *TotalNvStorageSize = SmmGetRuntimeCacheInfo->TotalNvStorageSize;
- *TotalVolatileStorageSize = SmmGetRuntimeCacheInfo->TotalVolatileStorageSize;
+ *TotalHobStorageSize = SmmGetRuntimeCacheInfo->TotalHobStorageSize;
+ *TotalNvStorageSize = SmmGetRuntimeCacheInfo->TotalNvStorageSize;
+ *TotalVolatileStorageSize = SmmGetRuntimeCacheInfo->TotalVolatileStorageSize;
*AuthenticatedVariableUsage = SmmGetRuntimeCacheInfo->AuthenticatedVariableUsage;
Done:
@@ -1512,15 +1533,15 @@ SendRuntimeVariableCacheContextToSmm (
VOID
)
{
- EFI_STATUS Status;
- SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *SmmRuntimeVarCacheContext;
- EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
- SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
- UINTN CommSize;
- UINT8 *CommBuffer;
+ EFI_STATUS Status;
+ SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *SmmRuntimeVarCacheContext;
+ EFI_MM_COMMUNICATE_HEADER *SmmCommunicateHeader;
+ SMM_VARIABLE_COMMUNICATE_HEADER *SmmVariableFunctionHeader;
+ UINTN CommSize;
+ UINT8 *CommBuffer;
SmmRuntimeVarCacheContext = NULL;
- CommBuffer = mVariableBuffer;
+ CommBuffer = mVariableBuffer;
if (CommBuffer == NULL) {
return EFI_OUT_OF_RESOURCES;
@@ -1535,46 +1556,46 @@ SendRuntimeVariableCacheContextToSmm (
CommSize = SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT);
ZeroMem (CommBuffer, CommSize);
- SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *) CommBuffer;
+ SmmCommunicateHeader = (EFI_MM_COMMUNICATE_HEADER *)CommBuffer;
CopyGuid (&SmmCommunicateHeader->HeaderGuid, &gEfiSmmVariableProtocolGuid);
SmmCommunicateHeader->MessageLength = SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + sizeof (SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT);
- SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *) SmmCommunicateHeader->Data;
+ SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)SmmCommunicateHeader->Data;
SmmVariableFunctionHeader->Function = SMM_VARIABLE_FUNCTION_INIT_RUNTIME_VARIABLE_CACHE_CONTEXT;
- SmmRuntimeVarCacheContext = (SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *) SmmVariableFunctionHeader->Data;
+ SmmRuntimeVarCacheContext = (SMM_VARIABLE_COMMUNICATE_RUNTIME_VARIABLE_CACHE_CONTEXT *)SmmVariableFunctionHeader->Data;
- SmmRuntimeVarCacheContext->RuntimeHobCache = mVariableRuntimeHobCacheBuffer;
+ SmmRuntimeVarCacheContext->RuntimeHobCache = mVariableRuntimeHobCacheBuffer;
SmmRuntimeVarCacheContext->RuntimeVolatileCache = mVariableRuntimeVolatileCacheBuffer;
- SmmRuntimeVarCacheContext->RuntimeNvCache = mVariableRuntimeNvCacheBuffer;
- SmmRuntimeVarCacheContext->PendingUpdate = &mVariableRuntimeCachePendingUpdate;
- SmmRuntimeVarCacheContext->ReadLock = &mVariableRuntimeCacheReadLock;
- SmmRuntimeVarCacheContext->HobFlushComplete = &mHobFlushComplete;
+ SmmRuntimeVarCacheContext->RuntimeNvCache = mVariableRuntimeNvCacheBuffer;
+ SmmRuntimeVarCacheContext->PendingUpdate = &mVariableRuntimeCachePendingUpdate;
+ SmmRuntimeVarCacheContext->ReadLock = &mVariableRuntimeCacheReadLock;
+ SmmRuntimeVarCacheContext->HobFlushComplete = &mHobFlushComplete;
//
// Request to unblock this region to be accessible from inside MM environment
// These fields "should" be all on the same page, but just to be on the safe side...
//
Status = MmUnblockMemoryRequest (
- (EFI_PHYSICAL_ADDRESS) ALIGN_VALUE ((UINTN) SmmRuntimeVarCacheContext->PendingUpdate - EFI_PAGE_SIZE + 1, EFI_PAGE_SIZE),
- EFI_SIZE_TO_PAGES (sizeof(mVariableRuntimeCachePendingUpdate))
- );
- if (Status != EFI_UNSUPPORTED && EFI_ERROR (Status)) {
+ (EFI_PHYSICAL_ADDRESS)ALIGN_VALUE ((UINTN)SmmRuntimeVarCacheContext->PendingUpdate - EFI_PAGE_SIZE + 1, EFI_PAGE_SIZE),
+ EFI_SIZE_TO_PAGES (sizeof (mVariableRuntimeCachePendingUpdate))
+ );
+ if ((Status != EFI_UNSUPPORTED) && EFI_ERROR (Status)) {
goto Done;
}
Status = MmUnblockMemoryRequest (
- (EFI_PHYSICAL_ADDRESS) ALIGN_VALUE ((UINTN) SmmRuntimeVarCacheContext->ReadLock - EFI_PAGE_SIZE + 1, EFI_PAGE_SIZE),
- EFI_SIZE_TO_PAGES (sizeof(mVariableRuntimeCacheReadLock))
- );
- if (Status != EFI_UNSUPPORTED && EFI_ERROR (Status)) {
+ (EFI_PHYSICAL_ADDRESS)ALIGN_VALUE ((UINTN)SmmRuntimeVarCacheContext->ReadLock - EFI_PAGE_SIZE + 1, EFI_PAGE_SIZE),
+ EFI_SIZE_TO_PAGES (sizeof (mVariableRuntimeCacheReadLock))
+ );
+ if ((Status != EFI_UNSUPPORTED) && EFI_ERROR (Status)) {
goto Done;
}
Status = MmUnblockMemoryRequest (
- (EFI_PHYSICAL_ADDRESS) ALIGN_VALUE ((UINTN) SmmRuntimeVarCacheContext->HobFlushComplete - EFI_PAGE_SIZE + 1, EFI_PAGE_SIZE),
- EFI_SIZE_TO_PAGES (sizeof(mHobFlushComplete))
- );
- if (Status != EFI_UNSUPPORTED && EFI_ERROR (Status)) {
+ (EFI_PHYSICAL_ADDRESS)ALIGN_VALUE ((UINTN)SmmRuntimeVarCacheContext->HobFlushComplete - EFI_PAGE_SIZE + 1, EFI_PAGE_SIZE),
+ EFI_SIZE_TO_PAGES (sizeof (mHobFlushComplete))
+ );
+ if ((Status != EFI_UNSUPPORTED) && EFI_ERROR (Status)) {
goto Done;
}
@@ -1608,18 +1629,18 @@ Done:
VOID
EFIAPI
SmmVariableReady (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- Status = gBS->LocateProtocol (&gEfiSmmVariableProtocolGuid, NULL, (VOID **) &mSmmVariable);
+ Status = gBS->LocateProtocol (&gEfiSmmVariableProtocolGuid, NULL, (VOID **)&mSmmVariable);
if (EFI_ERROR (Status)) {
return;
}
- Status = gBS->LocateProtocol (&gEfiMmCommunication2ProtocolGuid, NULL, (VOID **) &mMmCommunication2);
+ Status = gBS->LocateProtocol (&gEfiMmCommunication2ProtocolGuid, NULL, (VOID **)&mMmCommunication2);
ASSERT_EFI_ERROR (Status);
//
@@ -1627,8 +1648,8 @@ SmmVariableReady (
//
Status = GetVariablePayloadSize (&mVariableBufferPayloadSize);
ASSERT_EFI_ERROR (Status);
- mVariableBufferSize = SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + mVariableBufferPayloadSize;
- mVariableBuffer = AllocateRuntimePool (mVariableBufferSize);
+ mVariableBufferSize = SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + mVariableBufferPayloadSize;
+ mVariableBuffer = AllocateRuntimePool (mVariableBufferSize);
ASSERT (mVariableBuffer != NULL);
//
@@ -1661,12 +1682,14 @@ SmmVariableReady (
}
}
}
+
if (EFI_ERROR (Status)) {
- mVariableRuntimeHobCacheBuffer = NULL;
- mVariableRuntimeNvCacheBuffer = NULL;
+ mVariableRuntimeHobCacheBuffer = NULL;
+ mVariableRuntimeNvCacheBuffer = NULL;
mVariableRuntimeVolatileCacheBuffer = NULL;
}
}
+
ASSERT_EFI_ERROR (Status);
} else {
DEBUG ((DEBUG_INFO, "Variable driver runtime cache is disabled.\n"));
@@ -1689,29 +1712,28 @@ SmmVariableReady (
ASSERT_EFI_ERROR (Status);
mVariableLock.RequestToLock = VariableLockRequestToLock;
- Status = gBS->InstallMultipleProtocolInterfaces (
- &mHandle,
- &gEdkiiVariableLockProtocolGuid,
- &mVariableLock,
- NULL
- );
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &mHandle,
+ &gEdkiiVariableLockProtocolGuid,
+ &mVariableLock,
+ NULL
+ );
ASSERT_EFI_ERROR (Status);
mVarCheck.RegisterSetVariableCheckHandler = VarCheckRegisterSetVariableCheckHandler;
- mVarCheck.VariablePropertySet = VarCheckVariablePropertySet;
- mVarCheck.VariablePropertyGet = VarCheckVariablePropertyGet;
- Status = gBS->InstallMultipleProtocolInterfaces (
- &mHandle,
- &gEdkiiVarCheckProtocolGuid,
- &mVarCheck,
- NULL
- );
+ mVarCheck.VariablePropertySet = VarCheckVariablePropertySet;
+ mVarCheck.VariablePropertyGet = VarCheckVariablePropertyGet;
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &mHandle,
+ &gEdkiiVarCheckProtocolGuid,
+ &mVarCheck,
+ NULL
+ );
ASSERT_EFI_ERROR (Status);
gBS->CloseEvent (Event);
}
-
/**
SMM Non-Volatile variable write service is ready notify event handler.
@@ -1722,17 +1744,17 @@ SmmVariableReady (
VOID
EFIAPI
SmmVariableWriteReady (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- EFI_STATUS Status;
- VOID *ProtocolOps;
+ EFI_STATUS Status;
+ VOID *ProtocolOps;
//
// Check whether the protocol is installed or not.
//
- Status = gBS->LocateProtocol (&gSmmVariableWriteGuid, NULL, (VOID **) &ProtocolOps);
+ Status = gBS->LocateProtocol (&gSmmVariableWriteGuid, NULL, (VOID **)&ProtocolOps);
if (EFI_ERROR (Status)) {
return;
}
@@ -1741,7 +1763,7 @@ SmmVariableWriteReady (
// Some Secure Boot Policy Var (SecureBoot, etc) updates following other
// Secure Boot Policy Variable change. Record their initial value.
//
- RecordSecureBootPolicyVarData();
+ RecordSecureBootPolicyVarData ();
Status = gBS->InstallProtocolInterface (
&mHandle,
@@ -1754,7 +1776,6 @@ SmmVariableWriteReady (
gBS->CloseEvent (Event);
}
-
/**
Variable Driver main entry point. The Variable driver places the 4 EFI
runtime services in the EFI System Table and installs arch protocols
@@ -1770,15 +1791,15 @@ SmmVariableWriteReady (
EFI_STATUS
EFIAPI
VariableSmmRuntimeInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
- VOID *SmmVariableRegistration;
- VOID *SmmVariableWriteRegistration;
- EFI_EVENT OnReadyToBootEvent;
- EFI_EVENT ExitBootServiceEvent;
- EFI_EVENT LegacyBootEvent;
+ VOID *SmmVariableRegistration;
+ VOID *SmmVariableWriteRegistration;
+ EFI_EVENT OnReadyToBootEvent;
+ EFI_EVENT ExitBootServiceEvent;
+ EFI_EVENT LegacyBootEvent;
EfiInitializeLock (&mVariableServicesLock, TPL_NOTIFY);
@@ -1830,7 +1851,7 @@ VariableSmmRuntimeInitialize (
// Register the event to inform SMM variable that it is at runtime for legacy boot.
// Reuse OnExitBootServices() here.
//
- EfiCreateEventLegacyBootEx(
+ EfiCreateEventLegacyBootEx (
TPL_NOTIFY,
OnExitBootServices,
NULL,
@@ -1854,4 +1875,3 @@ VariableSmmRuntimeInitialize (
return EFI_SUCCESS;
}
-
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c
index 0d774f3..943993e 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c
@@ -63,8 +63,8 @@ VariableNotifySmmWriteReady (
EFI_STATUS
EFIAPI
VariableServiceInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_MM_SYSTEM_TABLE *MmSystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_MM_SYSTEM_TABLE *MmSystemTable
)
{
return MmVariableServiceInitialize ();
diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c
index ac43d29..0369c3c 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c
@@ -41,8 +41,8 @@ VariableNotifySmmReady (
VOID
)
{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
Handle = NULL;
Status = gBS->InstallProtocolInterface (
@@ -62,8 +62,8 @@ VariableNotifySmmWriteReady (
VOID
)
{
- EFI_STATUS Status;
- EFI_HANDLE Handle;
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
Handle = NULL;
Status = gBS->InstallProtocolInterface (
@@ -87,8 +87,8 @@ VariableNotifySmmWriteReady (
EFI_STATUS
EFIAPI
VariableServiceInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
return MmVariableServiceInitialize ();
@@ -109,8 +109,8 @@ VariableHaveTcgProtocols (
VOID
)
{
- EFI_STATUS Status;
- VOID *Interface;
+ EFI_STATUS Status;
+ VOID *Interface;
Status = gBS->LocateProtocol (
&gEfiTcg2ProtocolGuid,
diff --git a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c
index 2403e1a..98bb905 100644
--- a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c
+++ b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c
@@ -37,7 +37,6 @@ EFI_WATCHDOG_TIMER_NOTIFY mWatchdogTimerNotifyFunction = NULL;
//
EFI_EVENT mWatchdogTimerEvent;
-
/**
Notification function that is called if the watchdog timer is fired.
@@ -56,8 +55,8 @@ EFI_EVENT mWatchdogTimerEvent;
VOID
EFIAPI
WatchdogTimerDriverExpires (
- IN EFI_EVENT Timer,
- IN VOID *Context
+ IN EFI_EVENT Timer,
+ IN VOID *Context
)
{
REPORT_STATUS_CODE (EFI_ERROR_CODE | EFI_ERROR_MINOR, (EFI_COMPUTING_UNIT_HOST_PROCESSOR | EFI_CU_HP_EC_TIMER_EXPIRED));
@@ -77,7 +76,6 @@ WatchdogTimerDriverExpires (
gRT->ResetSystem (EfiResetCold, EFI_TIMEOUT, 0, NULL);
}
-
/**
Registers a handler that is to be invoked when the watchdog timer fires.
@@ -112,14 +110,15 @@ WatchdogTimerDriverRegisterHandler (
// If NotifyFunction is NULL, and a handler was not previously registered,
// return EFI_INVALID_PARAMETER.
//
- if (NotifyFunction == NULL && mWatchdogTimerNotifyFunction == NULL) {
+ if ((NotifyFunction == NULL) && (mWatchdogTimerNotifyFunction == NULL)) {
return EFI_INVALID_PARAMETER;
}
+
//
// If NotifyFunction is not NULL, and a handler is already registered,
// return EFI_ALREADY_STARTED.
//
- if (NotifyFunction != NULL && mWatchdogTimerNotifyFunction != NULL) {
+ if ((NotifyFunction != NULL) && (mWatchdogTimerNotifyFunction != NULL)) {
return EFI_ALREADY_STARTED;
}
diff --git a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.h b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.h
index 5839625..8c2e229 100644
--- a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.h
+++ b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.h
@@ -9,8 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#ifndef _WATCHDOG_TIMER_H_
#define _WATCHDOG_TIMER_H_
-
-
#include <Uefi.h>
#include <Library/DebugLib.h>
#include <Library/UefiDriverEntryPoint.h>
@@ -19,7 +17,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Protocol/WatchdogTimer.h>
-
/**
Registers a handler that is to be invoked when the watchdog timer fires.