From b397fbbbf952ce05c4552d5f2aabeac74aec8aad Mon Sep 17 00:00:00 2001 From: AJFISH Date: Thu, 26 Jul 2007 21:33:37 +0000 Subject: [PATCH] removed gEfiWinNtCPUSpeedGuid, gEfiWinNtCPUModelGuid, and gEfiWinNtMemoryGuid. Replaced them with the PCD values they represent. There was no need to use the driver model, when you could get PCD value directly. Also removed local copies of Atoi() in several modules. Fixed bug in reporting of memory size. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3458 6f19259b-4bc3-4df7-8a09-765794883524 --- Nt32Pkg/CpuRuntimeDxe/Cpu.c | 440 ++++++------------ Nt32Pkg/CpuRuntimeDxe/CpuDriver.h | 75 +++ Nt32Pkg/CpuRuntimeDxe/CpuIo.c | 335 ------------- Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf | 6 +- .../MiscBaseBoardManufacturer.uni | Bin 2896 -> 0 bytes .../MiscBiosVendor.uni | Bin 2260 -> 0 bytes .../MiscChassisManufacturer.uni | Bin 2460 -> 0 bytes .../MiscSubClassPlatformDxe/MiscOemString.uni | Bin 1996 -> 0 bytes .../MiscPortInternalConnectorDesignator.uni | Bin 9426 -> 0 bytes .../MiscSubClassPlatformDxe.inf | 18 +- .../MiscSubclassDriver.h | 1 + .../MiscSubclassDriverEntryPoint.c | 310 +++--------- .../MiscSystemLanguageString.uni | Bin 2014 -> 0 bytes .../MiscSystemManufacturer.uni | Bin 2456 -> 0 bytes .../MiscSystemOptionString.uni | Bin 2004 -> 0 bytes .../MiscSystemSlotDesignation.uni | Bin 2030 -> 0 bytes Nt32Pkg/Nt32Pkg.dec | 3 - Nt32Pkg/Nt32Pkg.dsc | 10 +- Nt32Pkg/PlatformBdsDxe/PlatformData.c | 62 +-- Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIo.c | 50 +- Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c | 5 +- .../WinNtBusDriverDxe/WinNtBusDriverDxe.inf | 3 - Nt32Pkg/WinNtGopDxe/WinNtGop.h | 13 - Nt32Pkg/WinNtGopDxe/WinNtGopDriver.c | 41 -- 24 files changed, 298 insertions(+), 1074 deletions(-) delete mode 100644 Nt32Pkg/CpuRuntimeDxe/CpuIo.c delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignator.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionString.uni delete mode 100644 Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignation.uni diff --git a/Nt32Pkg/CpuRuntimeDxe/Cpu.c b/Nt32Pkg/CpuRuntimeDxe/Cpu.c index a3317526aa..f0e22a4c4b 100644 --- a/Nt32Pkg/CpuRuntimeDxe/Cpu.c +++ b/Nt32Pkg/CpuRuntimeDxe/Cpu.c @@ -25,21 +25,35 @@ Abstract: #include "CpuDriver.h" + +CPU_ARCH_PROTOCOL_PRIVATE mCpuTemplate = { + CPU_ARCH_PROT_PRIVATE_SIGNATURE, + NULL, + { + WinNtFlushCpuDataCache, + WinNtEnableInterrupt, + WinNtDisableInterrupt, + WinNtGetInterruptState, + WinNtInit, + WinNtRegisterInterruptHandler, + WinNtGetTimerValue, + WinNtSetMemoryAttributes, + 0, + 4 + }, + { + CpuMemoryServiceRead, + CpuMemoryServiceWrite, + CpuIoServiceRead, + CpuIoServiceWrite + }, + 0, + TRUE +}; + #define EFI_CPU_DATA_MAXIMUM_LENGTH 0x100 -EFI_STATUS -EFIAPI -InitializeCpu ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ); -VOID -EFIAPI -WinNtIoProtocolNotifyFunction ( - IN EFI_EVENT Event, - IN VOID *Context - ); typedef union { EFI_CPU_DATA_RECORD *DataRecord; @@ -57,7 +71,6 @@ EFI_SUBCLASS_TYPE1_HEADER mCpuDataRecordHeader = { // // Service routines for the driver // -STATIC EFI_STATUS EFIAPI WinNtFlushCpuDataCache ( @@ -104,7 +117,7 @@ Returns: return EFI_UNSUPPORTED; } -STATIC + EFI_STATUS EFIAPI WinNtEnableInterrupt ( @@ -138,7 +151,7 @@ Returns: return EFI_SUCCESS; } -STATIC + EFI_STATUS EFIAPI WinNtDisableInterrupt ( @@ -172,7 +185,7 @@ Returns: return EFI_SUCCESS; } -STATIC + EFI_STATUS EFIAPI WinNtGetInterruptState ( @@ -213,7 +226,7 @@ Returns: return EFI_SUCCESS; } -STATIC + EFI_STATUS EFIAPI WinNtInit ( @@ -247,7 +260,7 @@ Returns: return EFI_UNSUPPORTED; } -STATIC + EFI_STATUS EFIAPI WinNtRegisterInterruptHandler ( @@ -293,7 +306,7 @@ Returns: return EFI_UNSUPPORTED; } -STATIC + EFI_STATUS EFIAPI WinNtGetTimerValue ( @@ -333,7 +346,7 @@ Returns: return EFI_UNSUPPORTED; } -STATIC + EFI_STATUS EFIAPI WinNtSetMemoryAttributes ( @@ -385,150 +398,9 @@ Returns: } -EFI_STATUS -EFIAPI -InitializeCpu ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -/*++ - -Routine Description: - - Initialize the state information for the CPU Architectural Protocol - -Arguments: - - ImageHandle of the loaded driver - Pointer to the System Table - -Returns: - - Status - - EFI_SUCCESS - protocol instance can be published - EFI_OUT_OF_RESOURCES - cannot allocate protocol data structure - EFI_DEVICE_ERROR - cannot create the thread - ---*/ -// TODO: SystemTable - add argument and description to function comment -{ - EFI_STATUS Status; - EFI_EVENT Event; - CPU_ARCH_PROTOCOL_PRIVATE *Private; - VOID *Registration; - - Private = AllocatePool (sizeof (CPU_ARCH_PROTOCOL_PRIVATE)); - ASSERT (Private != NULL); - - Private->Signature = CPU_ARCH_PROT_PRIVATE_SIGNATURE; - Private->Cpu.FlushDataCache = WinNtFlushCpuDataCache; - Private->Cpu.EnableInterrupt = WinNtEnableInterrupt; - Private->Cpu.DisableInterrupt = WinNtDisableInterrupt; - Private->Cpu.GetInterruptState = WinNtGetInterruptState; - Private->Cpu.Init = WinNtInit; - Private->Cpu.RegisterInterruptHandler = WinNtRegisterInterruptHandler; - Private->Cpu.GetTimerValue = WinNtGetTimerValue; - Private->Cpu.SetMemoryAttributes = WinNtSetMemoryAttributes; - - Private->Cpu.NumberOfTimers = 0; - Private->Cpu.DmaBufferAlignment = 4; - - Private->InterruptState = TRUE; - - Private->CpuIo.Mem.Read = CpuMemoryServiceRead; - Private->CpuIo.Mem.Write = CpuMemoryServiceWrite; - Private->CpuIo.Io.Read = CpuIoServiceRead; - Private->CpuIo.Io.Write = CpuIoServiceWrite; - - - Private->Handle = NULL; - Status = gBS->InstallMultipleProtocolInterfaces ( - &Private->Handle, - &gEfiCpuArchProtocolGuid, &Private->Cpu, - &gEfiCpuIoProtocolGuid, &Private->CpuIo, - NULL - ); - ASSERT_EFI_ERROR (Status); - - // - // Install notify function to store processor data to HII database and data hub. - // - Status = gBS->CreateEvent ( - EVT_NOTIFY_SIGNAL, - TPL_CALLBACK, - WinNtIoProtocolNotifyFunction, - ImageHandle, - &Event - ); - ASSERT (!EFI_ERROR (Status)); - - Status = gBS->RegisterProtocolNotify ( - &gEfiWinNtIoProtocolGuid, - Event, - &Registration - ); - ASSERT (!EFI_ERROR (Status)); - - // - // Should be at EFI_D_INFO, but lets us now things are running - // - DEBUG ((EFI_D_ERROR, "CPU Architectural Protocol Loaded\n")); - - - - return Status; -} - -UINTN -Atoi ( - CHAR16 *String - ) -/*++ - -Routine Description: - Convert a unicode string to a UINTN - -Arguments: - String - Unicode string. - -Returns: - UINTN of the number represented by String. - ---*/ -{ - UINTN Number; - CHAR16 *Str; - - // - // skip preceeding white space - // - Str = String; - while ((*Str) && (*Str == ' ' || *Str == '"')) { - Str++; - } - // - // Convert ot a Number - // - Number = 0; - while (*Str != '\0') { - if ((*Str >= '0') && (*Str <= '9')) { - Number = (Number * 10) +*Str - '0'; - } else { - break; - } - - Str++; - } - - return Number; -} - VOID -EFIAPI -WinNtIoProtocolNotifyFunction ( - IN EFI_EVENT Event, - IN VOID *Context +CpuUpdateDataHub ( + VOID ) /*++ @@ -546,54 +418,31 @@ Returns: { EFI_STATUS Status; EFI_CPU_DATA_RECORD_BUFFER RecordBuffer; - EFI_DATA_RECORD_HEADER *Record; - EFI_SUBCLASS_TYPE1_HEADER *DataHeader; UINT32 HeaderSize; UINT32 TotalSize; - UINTN HandleCount; - UINTN HandleIndex; - UINT64 MonotonicCount; - BOOLEAN RecordFound; - EFI_HANDLE *HandleBuffer; - EFI_WIN_NT_IO_PROTOCOL *WinNtIo; EFI_DATA_HUB_PROTOCOL *DataHub; EFI_HII_PROTOCOL *Hii; EFI_HII_HANDLE StringHandle; EFI_HII_PACKAGES *PackageList; STRING_REF Token; - DataHub = NULL; - Token = 0; - MonotonicCount = 0; - RecordFound = FALSE; // - // Retrieve the list of all handles from the handle database - // - Status = gBS->LocateHandleBuffer ( - AllHandles, - &gEfiWinNtIoProtocolGuid, - NULL, - &HandleCount, - &HandleBuffer - ); - if (EFI_ERROR (Status)) { - return ; - } - // - // Locate HII protocol + // Locate DataHub protocol. // - Status = gBS->LocateProtocol (&gEfiHiiProtocolGuid, NULL, &Hii); + Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub); if (EFI_ERROR (Status)) { - return ; + return; } + // // Locate DataHub protocol. // - Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub); + Status = gBS->LocateProtocol (&gEfiHiiProtocolGuid, NULL, &Hii); if (EFI_ERROR (Status)) { - return ; + return; } + // // Initialize data record header // @@ -605,123 +454,98 @@ Returns: return ; } + // + // Initialize strings to HII database + // + PackageList = PreparePackages (1, &gEfiProcessorProducerGuid, CpuStrings); + Status = Hii->NewPack (Hii, PackageList, &StringHandle); + ASSERT (!EFI_ERROR (Status)); + FreePool (PackageList); + CopyMem (RecordBuffer.Raw, &mCpuDataRecordHeader, HeaderSize); // - // Search the Handle array to find the CPU model and speed information + // Store processor version data record to data hub // - for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) { - Status = gBS->OpenProtocol ( - HandleBuffer[HandleIndex], - &gEfiWinNtIoProtocolGuid, - &WinNtIo, - Context, - NULL, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - continue; - } - - if ((WinNtIo->WinNtThunk->Signature == EFI_WIN_NT_THUNK_PROTOCOL_SIGNATURE) && - CompareGuid (WinNtIo->TypeGuid, &gEfiWinNtCPUModelGuid) - ) { - // - // Check if this record has been stored in data hub - // - do { - Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record); - if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) { - DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1); - if (CompareGuid (&Record->DataRecordGuid, &gEfiProcessorSubClassGuid) && - (DataHeader->RecordType == ProcessorVersionRecordType) - ) { - RecordFound = TRUE; - } - } - } while (MonotonicCount != 0); - - if (RecordFound) { - RecordFound = FALSE; - continue; - } - // - // Initialize strings to HII database - // - PackageList = PreparePackages (1, &gEfiProcessorProducerGuid, CpuStrings); - - Status = Hii->NewPack (Hii, PackageList, &StringHandle); - ASSERT (!EFI_ERROR (Status)); - - FreePool (PackageList); - - // - // Store processor version data record to data hub - // - Status = Hii->NewString (Hii, NULL, StringHandle, &Token, WinNtIo->EnvString); - ASSERT (!EFI_ERROR (Status)); - - RecordBuffer.DataRecord->DataRecordHeader.RecordType = ProcessorVersionRecordType; - RecordBuffer.DataRecord->VariableRecord.ProcessorVersion = Token; - TotalSize = HeaderSize + sizeof (EFI_PROCESSOR_VERSION_DATA); - - Status = DataHub->LogData ( - DataHub, - &gEfiProcessorSubClassGuid, - &gEfiProcessorProducerGuid, - EFI_DATA_RECORD_CLASS_DATA, - RecordBuffer.Raw, - TotalSize - ); - } - - if ((WinNtIo->WinNtThunk->Signature == EFI_WIN_NT_THUNK_PROTOCOL_SIGNATURE) && - CompareGuid (WinNtIo->TypeGuid, &gEfiWinNtCPUSpeedGuid) - ) { - // - // Check if this record has been stored in data hub - // - do { - Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record); - if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) { - DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1); - if (CompareGuid (&Record->DataRecordGuid, &gEfiProcessorSubClassGuid) && - (DataHeader->RecordType == ProcessorCoreFrequencyRecordType) - ) { - RecordFound = TRUE; - } - } - } while (MonotonicCount != 0); - - if (RecordFound) { - RecordFound = FALSE; - continue; - } - // - // Store CPU frequency data record to data hub - // - RecordBuffer.DataRecord->DataRecordHeader.RecordType = ProcessorCoreFrequencyRecordType; - RecordBuffer.DataRecord->VariableRecord.ProcessorCoreFrequency.Value = (UINT16) Atoi (WinNtIo->EnvString); - RecordBuffer.DataRecord->VariableRecord.ProcessorCoreFrequency.Exponent = 6; - TotalSize = HeaderSize + sizeof (EFI_PROCESSOR_CORE_FREQUENCY_DATA); - - Status = DataHub->LogData ( - DataHub, - &gEfiProcessorSubClassGuid, - &gEfiProcessorProducerGuid, - EFI_DATA_RECORD_CLASS_DATA, - RecordBuffer.Raw, - TotalSize - ); - - FreePool (RecordBuffer.Raw); - } - - gBS->CloseProtocol ( - HandleBuffer[HandleIndex], - &gEfiWinNtIoProtocolGuid, - Context, - NULL - ); - } + Token = 0; + Status = Hii->NewString (Hii, NULL, StringHandle, &Token, (CHAR16 *)PcdGetPtr (PcdWinNtCpuModel)); + ASSERT (!EFI_ERROR (Status)); + + RecordBuffer.DataRecord->DataRecordHeader.RecordType = ProcessorVersionRecordType; + RecordBuffer.DataRecord->VariableRecord.ProcessorVersion = Token; + TotalSize = HeaderSize + sizeof (EFI_PROCESSOR_VERSION_DATA); + + Status = DataHub->LogData ( + DataHub, + &gEfiProcessorSubClassGuid, + &gEfiProcessorProducerGuid, + EFI_DATA_RECORD_CLASS_DATA, + RecordBuffer.Raw, + TotalSize + ); + + // + // Store CPU frequency data record to data hub + // + RecordBuffer.DataRecord->DataRecordHeader.RecordType = ProcessorCoreFrequencyRecordType; + RecordBuffer.DataRecord->VariableRecord.ProcessorCoreFrequency.Value = (UINT16) StrDecimalToUintn (PcdGetPtr (PcdWinNtCpuSpeed)); + RecordBuffer.DataRecord->VariableRecord.ProcessorCoreFrequency.Exponent = 6; + TotalSize = HeaderSize + sizeof (EFI_PROCESSOR_CORE_FREQUENCY_DATA); + + Status = DataHub->LogData ( + DataHub, + &gEfiProcessorSubClassGuid, + &gEfiProcessorProducerGuid, + EFI_DATA_RECORD_CLASS_DATA, + RecordBuffer.Raw, + TotalSize + ); + + FreePool (RecordBuffer.Raw); +} + + + +EFI_STATUS +EFIAPI +InitializeCpu ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +/*++ + +Routine Description: + + Initialize the state information for the CPU Architectural Protocol + +Arguments: + + ImageHandle of the loaded driver + Pointer to the System Table + +Returns: + + Status + + EFI_SUCCESS - protocol instance can be published + EFI_OUT_OF_RESOURCES - cannot allocate protocol data structure + EFI_DEVICE_ERROR - cannot create the thread + +--*/ +{ + EFI_STATUS Status; + + CpuUpdateDataHub (); + + Status = gBS->InstallMultipleProtocolInterfaces ( + &mCpuTemplate.Handle, + &gEfiCpuArchProtocolGuid, &mCpuTemplate.Cpu, + &gEfiCpuIoProtocolGuid, &mCpuTemplate.CpuIo, + NULL + ); + ASSERT_EFI_ERROR (Status); + + return Status; } + + diff --git a/Nt32Pkg/CpuRuntimeDxe/CpuDriver.h b/Nt32Pkg/CpuRuntimeDxe/CpuDriver.h index 15316fb689..d05ba613e8 100644 --- a/Nt32Pkg/CpuRuntimeDxe/CpuDriver.h +++ b/Nt32Pkg/CpuRuntimeDxe/CpuDriver.h @@ -30,12 +30,14 @@ Abstract: #include #include #include +#include #include #include #include #include #include #include +#include extern UINT8 CpuStrings[]; @@ -108,4 +110,77 @@ CpuIoServiceWrite ( ); +EFI_STATUS +EFIAPI +InitializeCpu ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ); + +EFI_STATUS +EFIAPI +WinNtFlushCpuDataCache ( + IN EFI_CPU_ARCH_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS Start, + IN UINT64 Length, + IN EFI_CPU_FLUSH_TYPE FlushType + ); + +EFI_STATUS +EFIAPI +WinNtEnableInterrupt ( + IN EFI_CPU_ARCH_PROTOCOL *This + ); + +EFI_STATUS +EFIAPI +WinNtDisableInterrupt ( + IN EFI_CPU_ARCH_PROTOCOL *This + ); + +EFI_STATUS +EFIAPI +WinNtGetInterruptState ( + IN EFI_CPU_ARCH_PROTOCOL *This, + OUT BOOLEAN *State + ); + +EFI_STATUS +EFIAPI +WinNtInit ( + IN EFI_CPU_ARCH_PROTOCOL *This, + IN EFI_CPU_INIT_TYPE InitType + ); + +EFI_STATUS +EFIAPI +WinNtRegisterInterruptHandler ( + IN EFI_CPU_ARCH_PROTOCOL *This, + IN EFI_EXCEPTION_TYPE InterruptType, + IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler + ); + +EFI_STATUS +EFIAPI +WinNtGetTimerValue ( + IN EFI_CPU_ARCH_PROTOCOL *This, + IN UINT32 TimerIndex, + OUT UINT64 *TimerValue, + OUT UINT64 *TimerPeriod OPTIONAL + ); + +EFI_STATUS +EFIAPI +WinNtSetMemoryAttributes ( + IN EFI_CPU_ARCH_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINT64 Length, + IN UINT64 Attributes + ); + + + + + + #endif diff --git a/Nt32Pkg/CpuRuntimeDxe/CpuIo.c b/Nt32Pkg/CpuRuntimeDxe/CpuIo.c deleted file mode 100644 index 4aaa431d54..0000000000 --- a/Nt32Pkg/CpuRuntimeDxe/CpuIo.c +++ /dev/null @@ -1,335 +0,0 @@ -/*++ - -Copyright (c) 2006, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - CpuIo.c - -Abstract: - - This is the code that publishes the CPU I/O Protocol. - The intent herein is to have a single I/O service that can load - as early as possible, extend into runtime, and be layered upon by - the implementations of architectural protocols and the PCI Root - Bridge I/O Protocol. - ---*/ - -#include - -#define IA32_MAX_IO_ADDRESS 0xFFFF -#define IA32_MAX_MEM_ADDRESS 0xFFFFFFFF - -EFI_CPU_IO_PROTOCOL mCpuIoProtocol; - -EFI_STATUS -CpuIoCheckAddressRange ( - IN EFI_CPU_IO_PROTOCOL_WIDTH Width, - IN UINT64 Address, - IN UINTN Count, - IN VOID *Buffer, - IN UINT64 Limit - ); - -EFI_STATUS -EFIAPI -CpuMemoryServiceRead ( - IN EFI_CPU_IO_PROTOCOL *This, - IN EFI_CPU_IO_PROTOCOL_WIDTH Width, - IN UINT64 Address, - IN UINTN Count, - IN OUT VOID *Buffer - ) -/*++ - -Routine Description: - - Perform the Memory Access Read service for the CPU I/O Protocol - -Arguments: - - Pointer to an instance of the CPU I/O Protocol - Width of the Memory Access - Address of the Memory access - Count of the number of accesses to perform - Pointer to the buffer to read or write from memory - -Returns: - - Status - - EFI_SUCCESS - The data was read from or written to the EFI - System. - EFI_INVALID_PARAMETER - Width is invalid for this EFI System. - EFI_INVALID_PARAMETER - Buffer is NULL. - EFI_UNSUPPORTED - The Buffer is not aligned for the given Width. - EFI_UNSUPPORTED - The address range specified by Address, Width, - and Count is not valid for this EFI System. - ---*/ -// TODO: This - add argument and description to function comment -{ - EFI_STATUS Status; - - if (!Buffer) { - return EFI_INVALID_PARAMETER; - } - - Status = CpuIoCheckAddressRange (Width, Address, Count, Buffer, IA32_MAX_MEM_ADDRESS); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Do nothing for Nt32 version - // - return EFI_SUCCESS; -} - -EFI_STATUS -EFIAPI -CpuMemoryServiceWrite ( - IN EFI_CPU_IO_PROTOCOL *This, - IN EFI_CPU_IO_PROTOCOL_WIDTH Width, - IN UINT64 Address, - IN UINTN Count, - IN OUT VOID *Buffer - ) -/*++ - -Routine Description: - - Perform the Memory Access Read service for the CPU I/O Protocol - -Arguments: - - Pointer to an instance of the CPU I/O Protocol - Width of the Memory Access - Address of the Memory access - Count of the number of accesses to perform - Pointer to the buffer to read or write from memory - -Returns: - - Status - - EFI_SUCCESS - The data was read from or written to the EFI System. - EFI_INVALID_PARAMETER - Width is invalid for this EFI System. - EFI_INVALID_PARAMETER - Buffer is NULL. - EFI_UNSUPPORTED - The Buffer is not aligned for the given Width. - EFI_UNSUPPORTED - The address range specified by Address, Width, and - Count is not valid for this EFI System. - ---*/ -// TODO: This - add argument and description to function comment -{ - EFI_STATUS Status; - - if (!Buffer) { - return EFI_INVALID_PARAMETER; - } - - Status = CpuIoCheckAddressRange (Width, Address, Count, Buffer, IA32_MAX_MEM_ADDRESS); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Do nothing for Nt32 version - // - return EFI_SUCCESS; -} - -EFI_STATUS -EFIAPI -CpuIoServiceRead ( - IN EFI_CPU_IO_PROTOCOL *This, - IN EFI_CPU_IO_PROTOCOL_WIDTH Width, - IN UINT64 UserAddress, - IN UINTN Count, - IN OUT VOID *UserBuffer - ) -/*++ - -Routine Description: - - This is the service that implements the I/O read - -Arguments: - - Pointer to an instance of the CPU I/O Protocol - Width of the Memory Access - Address of the I/O access - Count of the number of accesses to perform - Pointer to the buffer to read or write from I/O space - -Returns: - - Status - EFI_SUCCESS - The data was read from or written to the EFI System. - EFI_INVALID_PARAMETER - Width is invalid for this EFI System. - EFI_INVALID_PARAMETER - Buffer is NULL. - EFI_UNSUPPORTED - The Buffer is not aligned for the given Width. - EFI_UNSUPPORTED - The address range specified by Address, Width, and - Count is not valid for this EFI System. ---*/ -// TODO: This - add argument and description to function comment -// TODO: UserAddress - add argument and description to function comment -// TODO: UserBuffer - add argument and description to function comment -{ - UINTN Address; - EFI_STATUS Status; - - if (!UserBuffer) { - return EFI_INVALID_PARAMETER; - } - - Address = (UINTN) UserAddress; - - if (Width >= EfiCpuIoWidthMaximum) { - return EFI_INVALID_PARAMETER; - } - - Status = CpuIoCheckAddressRange (Width, Address, Count, UserBuffer, IA32_MAX_IO_ADDRESS); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Do nothing for Nt32 version - // - return EFI_SUCCESS; -} - -EFI_STATUS -EFIAPI -CpuIoServiceWrite ( - IN EFI_CPU_IO_PROTOCOL *This, - IN EFI_CPU_IO_PROTOCOL_WIDTH Width, - IN UINT64 UserAddress, - IN UINTN Count, - IN OUT VOID *UserBuffer - ) -/*++ - -Routine Description: - - - This is the service that implements the I/O Write - -Arguments: - - Pointer to an instance of the CPU I/O Protocol - Width of the Memory Access - Address of the I/O access - Count of the number of accesses to perform - Pointer to the buffer to read or write from I/O space - -Returns: - - Status - - Status - EFI_SUCCESS - The data was read from or written to the EFI System. - EFI_INVALID_PARAMETER - Width is invalid for this EFI System. - EFI_INVALID_PARAMETER - Buffer is NULL. - EFI_UNSUPPORTED - The Buffer is not aligned for the given Width. - EFI_UNSUPPORTED - The address range specified by Address, Width, and - Count is not valid for this EFI System. - ---*/ -// TODO: This - add argument and description to function comment -// TODO: UserAddress - add argument and description to function comment -// TODO: UserBuffer - add argument and description to function comment -{ - UINTN Address; - EFI_STATUS Status; - - if (!UserBuffer) { - return EFI_INVALID_PARAMETER; - } - - Address = (UINTN) UserAddress; - - if (Width >= EfiCpuIoWidthMaximum) { - return EFI_INVALID_PARAMETER; - } - - Status = CpuIoCheckAddressRange (Width, Address, Count, UserBuffer, IA32_MAX_IO_ADDRESS); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Do nothing for Nt32 version - // - return EFI_SUCCESS; -} - - -EFI_STATUS -CpuIoCheckAddressRange ( - IN EFI_CPU_IO_PROTOCOL_WIDTH Width, - IN UINT64 Address, - IN UINTN Count, - IN VOID *Buffer, - IN UINT64 Limit - ) -/*++ - -Routine Description: - - TODO: Add function description - -Arguments: - - Width - TODO: add argument description - Address - TODO: add argument description - Count - TODO: add argument description - Buffer - TODO: add argument description - Limit - TODO: add argument description - -Returns: - - EFI_UNSUPPORTED - TODO: Add description for return value - EFI_UNSUPPORTED - TODO: Add description for return value - EFI_UNSUPPORTED - TODO: Add description for return value - EFI_SUCCESS - TODO: Add description for return value - ---*/ -{ - UINTN AlignMask; - - if (Address > Limit) { - return EFI_UNSUPPORTED; - } - - // - // For FiFo type, the target address won't increase during the access, so treat count as 1 - // - if (Width >= EfiCpuIoWidthFifoUint8 && Width <= EfiCpuIoWidthFifoUint64) { - Count = 1; - } - - Width = Width & 0x03; - if (Address - 1 + (1 << Width) * Count > Limit) { - return EFI_UNSUPPORTED; - } - - AlignMask = (1 << Width) - 1; - if ((UINTN) Buffer & AlignMask) { - return EFI_UNSUPPORTED; - } - - return EFI_SUCCESS; -} - - diff --git a/Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf b/Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf index dedc893bd5..de8f93bf2d 100644 --- a/Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf +++ b/Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf @@ -50,8 +50,6 @@ DebugLib [Guids] - gEfiWinNtCPUSpeedGuid # SOMETIMES_CONSUMED - gEfiWinNtCPUModelGuid # SOMETIMES_CONSUMED gEfiProcessorSubClassGuid # SOMETIMES_CONSUMED gEfiProcessorProducerGuid # SOMETIMES_CONSUMED @@ -63,5 +61,9 @@ gEfiCpuIoProtocolGuid # PROTOCOL ALWAYS_PRODUCED gEfiCpuArchProtocolGuid # PROTOCOL ALWAYS_PRODUCED +[PcdsDynamic.common] + PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid + PcdWinNtCpuModel|gEfiNt32PkgTokenSpaceGuid + [Depex] gEfiDataHubProtocolGuid AND gEfiHiiProtocolGuid diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni deleted file mode 100644 index 14a68936efd1c0008d99482a861ebe7a4414d98c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2896 zcmchZTW?Z95Xa})#P4v@#zdtWBKz8U_6GXF-ZMVh zJNT+i_%^T`c%4Z(rMbiI2yVjubC1lL#0uaNvS`K3R|A`YIkkJ{zUA0!V&jP21pFzu zuiS<)>kc;bp|?m3eBHwjQyU|xZ*$H~kWbi=)zUkHyK!y*Z+k@FL6dI0L0=DU;;4ls z!=xMg3sm>;BV;?)W!AYnM=m@OeZV(%Y?&5WBO6D{n8^=Q8?Kxy+PRfkpR8f|-MWbW z!9Chz7T$HAjlicnsJ_|2m&~G;-)liF^K0d}i!)v88YOkG|y4a?Nl3&Zk>N z^iQYr`7}lJO*^&8c>ui-YFvR~zX-Bx#;4OX&J zdqUSlRx-jDqz;i4&acqVe36a9Rax8;?5)_BrJkt0ir3DlSlwCnF84QUBKpYH$nU<_ zn=0>=dKps#2g^4iN=j?Z>$ivZI^_NUI)zKoP=ij;Glcf2DbE4lLZ_)9h&!~3iE7q*)-KTQ*7O$an1%01v*Ey|r zm%S=<{*aGtY*pTrti8yhigR_(fHHi|W7)DpXbIdckG(QB8@u!j`RfWlb(rOQbsoJh z%GJ!j%G1ol^8TNFyyJ*BMH}j`3`${blLM+lRc1CeLwknrLvAS_Vs34R_5x%LydSD3 zL%2#eLwn)bIwNoNN^XZyRj$5Opep6h7XB>yUWRisjOUIq{OgcE@2FM1cj^o~ NV<-D}5>Trn`~q?~g#!Qp diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni deleted file mode 100644 index b1e7e520fc2ea6a7a327a1464bde11c94619cb68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2260 zcmchYT~AX%5QgX4#Q$(oVxlOm@xludFMuAUk+!51&@0k!PSOu^TG9S_^?7G|x-Ciq zk&w;Vo!K)x`_AY7{#CJxCAMp?8PDw*TxGo`c4RaAW=qR0vyolf0@;_=vsbL|>@DNH zy@9UTlz#&oL+eb=Da{>rGpH&1Pdy525<38wkVPxz&JAo1=G<cr)b9TDe(zm@^f68dN=G(sW@wkZo z@pL|&rii|6$Cl!yQ)^k%J~1Cy9lk~mCS;-3HoG-Dv~#G`GxOXUtSS4-m!KhLZH?}f zB5~%Ln^5WwnoF$GE3GBgL+8b*zuk94^p|MT{Y}S~*d_W}ZbO6p8u#nArsHhE$x7`B zT^m`+2w#x;h^%maW&O+_*(hA;>Xu+{YG2lRqV^hIJEdZEXVtshUDibOk*bs5eXloF zUW0m>Py_qxHzG<(Yu)R&hxgR==XT-s()SuE(`Sd&N<0y%1Fsd;y?VrALw~X%uNz)4 z+UT!t>_^;&#?uDfIY|c~{u03^}qZ z5Gh_~P!}G<>MFMX^7RfKL0xx*Upvh5ton*x4`pKEy=2ROB}em6BrPz7O!|K$IbH~U meK;0n_X(e>EX7Mz&vDgvG4AgbMOklK2R!m!6-qBbK=lWya3F>N diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni deleted file mode 100644 index 67bee85037c6b2ee749495a7b1156e2bc5298a18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2460 zcmchYT~8B16o${WiT`0!VxlOm@xludFIp(jXesFj=vC8C*n}3dEyezM^?A?GP8T(? zgpkSZ%$Ys&p7(ss{`y(6k|nllZy7J`1yX4}Cw5>r_T842S!$PdWpi|2+rZv1f3WwA zkM@pr&8B=C*)?mO$vCBVkKL5jl>O%(D{m4j!%NJf7c-YeHiL6!3*JL3ve(APl-&gW z8N4suhY4~IABN0xG)68Dh{KId(A2jj=cec z{^>BE4=J*5+lf_)(wQ}_VaL47R!6Q;g9%lrxy^3PD%N3D^~&tnDRY&5)k{E#Ra@hB zs-n?yj`#(wBXq^{8}nzr$Vc(2-dhR&R_*H=C!*Jg+8G@yn}>eO{mYxkKCbH2_t5)I zop(yVOz46A^*y0Mh~5VPN4!$ipd diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni deleted file mode 100644 index fb79bdbde1e3f02b283f0b9e9a427560df4c15b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1996 zcmchYO>YxH42FG1;yJn+1pW+xj| z38bnT?TkI+v0r;^@9$rAt6O3R_LA|`p1{@1HL(+0*f(2SVYyB1+E&Oux1qgYePgc~ zZ|xOyW^>NQb_1_7I{c$3&MxP&Zvv2<>1OE4F9%RI6gdtH3Y*-gM- zfP3mb%;5X@Fk)RHF?N1P92Pc1QfF)K&5=*ok=N3jL*2Nx|Mxwj@1sc;Z_qb{nmcM? z*7g-y2ZHLPQ&@SiGJ{`M}S z|KSlGG7E1tW;ys|Lop3em-QvQVmAQ!CVTWY;dSKEgp=^1^5Z8`yEv<{3U9JTYTyx> z;8lo6O+!)`s)q)ZhMfMD$l^lKqxrOY91LZTF$ceujNnYdOv~oV?VY z&~=fOjPM1i_s9z8SJsc5$VcHy@2muWQ~OftiP|%wc0t9;=BanN`@D(hBXv%GkG$Sg zc}?nNMhzU5|A;6lt><39L!zgyzr?D#%ar?l<}ubkQ@urbJK3U+yJzIi8{1N{ z@{G~N#_87Wh@*|2TgS2a^PD-i@=9IbqxXt0o*B+} z_LchfSW}(wzTEE4%rkGhd;I;^wroovujN-fKgthiZ7<3|YBG^;GM7k3awA`5hOs|O zUw%PZmbZBJdSM2e}lhB5`ukv!mc zAY16`LdFq#1MnY#?;Dlj4(%Rf7@(YC#8BIP;4qOpjO4pH=8Z8vKo6znx+BzXbv1X{ z6YhIhi4c+G~iLUX+ zG)g)C#Hdw1m$5RP%rWXp5xIs`h6;J&?Byrno)$lYhCiua&=(AU&W}_ZTUaZC-nUou zGeyr8WEsetl{Z^h{c{4Js6x?Ht{vZ`&i7~k?f3HKLR ziS$F|EszVW*HIZx(cc7pQVW&O4qB9wedMl-u^dDGY*Yhd$>$f8$9O{-$yfc6ipg7- z&x>`E)tf-A4UZ+weT{NYNt1A&)LO9bf%+Rg?-c%W2Os#f$Pvj%uG&)n?Sme@Vg{O) z7b295h0G0OJVW@-Ovmh_KEs{2SN7`)%Wd$0##Cz)e6n!l)peyUc$4@Ser}7>Iv?t%T~O%y8@QJ(3-a-2u|BTF)Zq zPW>3Vp2HI+(0v5|bmte;ho=p_NKUV7L6>n{TrYXqo9w%4*%e;{}82}5TXK_%UTViMAgY^D)Qc&$GB3r@jfD?tyFf56MnqKm9{^r zxf|(X|H|FSajwkhQ`@f8J930Q+Ai#k`~SI~*nH@o`?uOc^LgUKo;QnkrCmX8qvTH92M#<(P$#x~eOVk_X{T}EjRnsgn?NEy?hiKO3h;#yU0v_GN>!<5VlZV?4AQ@;55bC9o}{NjT=opzq#x!_kfC@oZ(7) z6_qx24O93#}(zF0q>f?et1LQ#tDY`o8NKL=NZ3NRRf)KAk|Q$@>o?g93s0jVE#nkYXrH2zS&%{&UV>tOhhBx)R z&3Cbr9dD7xojUKjnW=btx+zTT=DLAQcmQ0E;6?oEVBaOy$7NcLpFPiW_^_`N*RU7f zsxN=NK0*(__3}o=hYeML5WiuC&T;vJw{vAt9?~a?w8uRaqkZ6I_ZjXv%vW?SLf_^v z@~qEeJ}}}}!_R6@A?|DP`d-=F&bkPFo5TFRx%*1HGfz$%dA@Jhm=YqHznjbF@L_ZL qUpFPhao2B7+3aq%`3`HPpZ|{32_`#;U4F9sbNH~i<~c-!fByh;7-lm7 diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf index b9d441078f..081dff4fa8 100644 --- a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf +++ b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf @@ -54,15 +54,6 @@ MiscSubclassDriver.h MiscDevicePath.h MiscSubclassDriver.uni - MiscSystemSlotDesignation.uni - MiscSystemOptionString.uni - MiscSystemManufacturer.uni - MiscSystemLanguageString.uni - MiscPortInternalConnectorDesignator.uni - MiscOemString.uni - MiscChassisManufacturer.uni - MiscBiosVendor.uni - MiscBaseBoardManufacturer.uni CommonHeader.h [Packages] @@ -81,20 +72,23 @@ HiiLibFramework DebugLib BaseLib + PcdLib [Guids] - gEfiWinNtMemoryGuid # SOMETIMES_CONSUMED gEfiProcessorSubClassGuid # SOMETIMES_CONSUMED gEfiMiscSubClassGuid # SOMETIMES_CONSUMED gEfiMemoryProducerGuid # SOMETIMES_CONSUMED gEfiMemorySubClassGuid # SOMETIMES_CONSUMED - gEfiWinNtMemoryGuid # SOMETIMES_CONSUMED [Protocols] gEfiWinNtIoProtocolGuid # PROTOCOL_NOTIFY SOMETIMES_CONSUMED gEfiHiiProtocolGuid # PROTOCOL ALWAYS_CONSUMED gEfiDataHubProtocolGuid # PROTOCOL ALWAYS_CONSUMED +[PcdsDynamic.common] + PcdWinNtMemorySize|gEfiNt32PkgTokenSpaceGuid + [Depex] - gEfiDataHubProtocolGuid AND gEfiHiiProtocolGuid \ No newline at end of file + gEfiDataHubProtocolGuid AND gEfiHiiProtocolGuid + \ No newline at end of file diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h index 1374d7b135..e17f8358de 100644 --- a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h +++ b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h @@ -36,6 +36,7 @@ Abstract: #include #include #include +#include #include diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c index 03eb74f9f9..138ed7f439 100644 --- a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c +++ b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c @@ -25,12 +25,6 @@ Abstract: extern UINT8 MiscSubclassStrings[]; -VOID -EFIAPI -WinNtIoProtocolNotifyFunction ( - IN EFI_EVENT Event, - IN VOID *Context - ); // // @@ -70,7 +64,7 @@ Returns: --*/ { EFI_MISC_SUBCLASS_DRIVER_DATA MiscSubclass; - EFI_STATUS EfiStatus; + EFI_STATUS Status; // // Do nothing if data parameters are not valid. @@ -103,7 +97,7 @@ Returns: // // Log Data Hub record. // - EfiStatus = DataHub->LogData ( + Status = DataHub->LogData ( DataHub, &gEfiMiscSubClassGuid, &gEfiMiscSubClassGuid, @@ -112,16 +106,16 @@ Returns: sizeof (EFI_SUBCLASS_TYPE1_HEADER) + RecordLen ); - if (EFI_ERROR (EfiStatus)) { + if (EFI_ERROR (Status)) { DEBUG ( (EFI_D_ERROR, "LogData(%d bytes) == %r\n", sizeof (EFI_SUBCLASS_TYPE1_HEADER) + RecordLen, - EfiStatus) + Status) ); } - return EfiStatus; + return Status; } @@ -152,16 +146,17 @@ Returns: --*/ { - EFI_MISC_SUBCLASS_DRIVER_DATA RecordData; - EFI_DATA_HUB_PROTOCOL *DataHub; - EFI_HII_PROTOCOL *Hii; - EFI_HII_PACKAGES *PackageList; - EFI_HII_HANDLE HiiHandle; - EFI_STATUS EfiStatus; - UINTN Index; - BOOLEAN LogRecordData; - EFI_EVENT Event; - VOID *Registration; + EFI_MISC_SUBCLASS_DRIVER_DATA RecordData; + EFI_DATA_HUB_PROTOCOL *DataHub; + EFI_HII_PROTOCOL *Hii; + EFI_HII_PACKAGES *PackageList; + EFI_HII_HANDLE HiiHandle; + EFI_STATUS Status; + UINTN Index; + BOOLEAN LogRecordData; + EFI_MEMORY_SUBCLASS_DRIVER_DATA MemorySubClassData; + UINT64 TotalMemorySize; + CHAR16 *Nt32MemString; // @@ -175,11 +170,11 @@ Returns: // // Locate data hub protocol. // - EfiStatus = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub); + Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub); - if (EFI_ERROR (EfiStatus)) { - DEBUG ((EFI_D_ERROR, "Could not locate DataHub protocol. %r\n", EfiStatus)); - return EfiStatus; + if (EFI_ERROR (Status)) { + DEBUG ((EFI_D_ERROR, "Could not locate DataHub protocol. %r\n", Status)); + return Status; } else if (DataHub == NULL) { DEBUG ((EFI_D_ERROR, "LocateProtocol(DataHub) returned NULL pointer!\n")); return EFI_DEVICE_ERROR; @@ -187,11 +182,11 @@ Returns: // // Locate hii protocol. // - EfiStatus = gBS->LocateProtocol (&gEfiHiiProtocolGuid, NULL, &Hii); + Status = gBS->LocateProtocol (&gEfiHiiProtocolGuid, NULL, &Hii); - if (EFI_ERROR (EfiStatus)) { - DEBUG ((EFI_D_ERROR, "Could not locate Hii protocol. %r\n", EfiStatus)); - return EfiStatus; + if (EFI_ERROR (Status)) { + DEBUG ((EFI_D_ERROR, "Could not locate Hii protocol. %r\n", Status)); + return Status; } else if (Hii == NULL) { DEBUG ((EFI_D_ERROR, "LocateProtocol(Hii) returned NULL pointer!\n")); return EFI_DEVICE_ERROR; @@ -200,12 +195,12 @@ Returns: // Add our default strings to the HII database. They will be modified later. // PackageList = PreparePackages (1, &gEfiMiscSubClassGuid, MiscSubclassStrings); - EfiStatus = Hii->NewPack (Hii, PackageList, &HiiHandle); + Status = Hii->NewPack (Hii, PackageList, &HiiHandle); FreePool (PackageList); - if (EFI_ERROR (EfiStatus)) { - DEBUG ((EFI_D_ERROR, "Could not log default strings to Hii. %r\n", EfiStatus)); - return EfiStatus; + if (EFI_ERROR (Status)) { + DEBUG ((EFI_D_ERROR, "Could not log default strings to Hii. %r\n", Status)); + return Status; } // // @@ -250,7 +245,7 @@ Returns: // // Log RecordData to Data Hub. // - EfiStatus = DataHub->LogData ( + Status = DataHub->LogData ( DataHub, &gEfiMiscSubClassGuid, &gEfiMiscSubClassGuid, @@ -259,12 +254,12 @@ Returns: sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen ); - if (EFI_ERROR (EfiStatus)) { + if (EFI_ERROR (Status)) { DEBUG ( (EFI_D_ERROR, "LogData(%d bytes) == %r\n", sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen, - EfiStatus) + Status) ); } @@ -276,29 +271,16 @@ Returns: // is no more data to log. // for (;;) { - // - // - // - EfiStatus = (*mMiscSubclassDataTable[Index].Function) - ( - mMiscSubclassDataTable[Index].RecordType, &mMiscSubclassDataTable[Index].RecordLen, &RecordData.Record, & - LogRecordData - ); - - // - // - // - if (EFI_ERROR (EfiStatus)) { + Status = (*mMiscSubclassDataTable[Index].Function)(mMiscSubclassDataTable[Index].RecordType, &mMiscSubclassDataTable[Index].RecordLen, &RecordData.Record, &LogRecordData); + if (EFI_ERROR (Status)) { break; } if (!LogRecordData) { break; } - // - // - // - EfiStatus = DataHub->LogData ( + + Status = DataHub->LogData ( DataHub, &gEfiMiscSubClassGuid, &gEfiMiscSubClassGuid, @@ -307,212 +289,62 @@ Returns: sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen ); - if (EFI_ERROR (EfiStatus)) { + if (EFI_ERROR (Status)) { DEBUG ( (EFI_D_ERROR, "LogData(%d bytes) == %r\n", sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen, - EfiStatus) + Status) ); } } } - // - // Install notify function to fetch memory data through WinNtIo protocol and store to data hub. - // - EfiStatus = gBS->CreateEvent ( - EVT_NOTIFY_SIGNAL, - TPL_CALLBACK, - WinNtIoProtocolNotifyFunction, - ImageHandle, - &Event - ); - ASSERT (!EFI_ERROR (EfiStatus)); - - EfiStatus = gBS->RegisterProtocolNotify ( - &gEfiWinNtIoProtocolGuid, - Event, - &Registration - ); - ASSERT (!EFI_ERROR (EfiStatus)); - - return EFI_SUCCESS; -} - -UINTN -Atoi ( - CHAR16 *String - ) -/*++ - -Routine Description: - Convert a unicode string to a UINTN - -Arguments: - String - Unicode string. - -Returns: - UINTN of the number represented by String. - ---*/ -{ - UINTN Number; - CHAR16 *Str; + // - // skip preceeding white space + // Log Memory Size info based on PCD setting. // - Str = String; - while ((*Str) && (*Str == ' ' || *Str == '"')) { - Str++; - } + MemorySubClassData.Header.Instance = 1; + MemorySubClassData.Header.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE; + MemorySubClassData.Header.RecordType = EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER; + // - // Convert ot a Number + // Process Memory String in form size!size ... + // So 64!64 is 128 MB // - Number = 0; - while (*Str != '\0') { - if ((*Str >= '0') && (*Str <= '9')) { - Number = (Number * 10) +*Str - '0'; - } else { - break; + Nt32MemString = PcdGetPtr (PcdWinNtMemorySize); + for (TotalMemorySize = 0; *Nt32MemString != '\0';) { + TotalMemorySize += StrDecimalToUint64 (Nt32MemString); + while (*Nt32MemString != '\0') { + if (*Nt32MemString == '!') { + Nt32MemString++; + break; + } + Nt32MemString++; } - - Str++; } - return Number; -} - -VOID -EFIAPI -WinNtIoProtocolNotifyFunction ( - IN EFI_EVENT Event, - IN VOID *Context - ) -/*++ - -Routine Description: - This function will log memory size data to data hub. - -Arguments: -Event - Event whose notification function is being invoked. -Context - Pointer to the notification function's context. - -Returns: - EFI_STATUS. + MemorySubClassData.Record.ArrayStartAddress.MemoryArrayStartAddress = 0; + MemorySubClassData.Record.ArrayStartAddress.MemoryArrayEndAddress = LShiftU64 (TotalMemorySize, 20) - 1; + MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName = gEfiMemoryProducerGuid; + MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.Instance = 1; + MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE; + MemorySubClassData.Record.ArrayStartAddress.MemoryArrayPartitionWidth = 0; ---*/ -{ - EFI_STATUS Status; - EFI_MEMORY_SUBCLASS_DRIVER_DATA MemorySubClassData; - EFI_DATA_RECORD_HEADER *Record; - EFI_SUBCLASS_TYPE1_HEADER *DataHeader; - UINTN HandleCount; - UINTN HandleIndex; - UINT64 MonotonicCount; - BOOLEAN RecordFound; - EFI_HANDLE *HandleBuffer; - EFI_WIN_NT_IO_PROTOCOL *WinNtIo; - EFI_DATA_HUB_PROTOCOL *DataHub; - UINT64 TotalMemorySize; - - DataHub = NULL; - MonotonicCount = 0; - RecordFound = FALSE; - - // - // Retrieve the list of all handles from the handle database. - // - Status = gBS->LocateHandleBuffer ( - AllHandles, - &gEfiWinNtIoProtocolGuid, - NULL, - &HandleCount, - &HandleBuffer - ); - if (EFI_ERROR (Status)) { - return ; - } // - // Locate DataHub protocol. + // Store memory size data record to data hub. // - Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub); - if (EFI_ERROR (Status)) { - return ; - } - // - // Search the Handle array to find the meory size information. - // - for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) { - Status = gBS->OpenProtocol ( - HandleBuffer[HandleIndex], - &gEfiWinNtIoProtocolGuid, - &WinNtIo, - Context, - NULL, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - continue; - } - - if ((WinNtIo->WinNtThunk->Signature == EFI_WIN_NT_THUNK_PROTOCOL_SIGNATURE) && - CompareGuid (WinNtIo->TypeGuid, &gEfiWinNtMemoryGuid) - ) { - // - // Check if this record has been stored in data hub. - // - do { - Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record); - if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) { - DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1); - if (CompareGuid (&Record->DataRecordGuid, &gEfiProcessorSubClassGuid) && - (DataHeader->RecordType == EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER) - ) { - RecordFound = TRUE; - } - } - } while (MonotonicCount != 0); - - if (RecordFound) { - RecordFound = FALSE; - continue; - } - // - // Initialize data record. - // - MemorySubClassData.Header.Instance = 1; - MemorySubClassData.Header.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE; - MemorySubClassData.Header.RecordType = EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER; + Status = DataHub->LogData ( + DataHub, + &gEfiMemorySubClassGuid, + &gEfiMemoryProducerGuid, + EFI_DATA_RECORD_CLASS_DATA, + &MemorySubClassData, + sizeof (EFI_SUBCLASS_TYPE1_HEADER) + sizeof (EFI_MEMORY_ARRAY_START_ADDRESS_DATA) + ); - TotalMemorySize = (UINT64) Atoi (WinNtIo->EnvString); - MemorySubClassData.Record.ArrayStartAddress.MemoryArrayStartAddress = 0; - MemorySubClassData.Record.ArrayStartAddress.MemoryArrayEndAddress = LShiftU64 (TotalMemorySize, 20) - 1; - MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName = gEfiMemoryProducerGuid; - MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.Instance = 1; - MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE; - MemorySubClassData.Record.ArrayStartAddress.MemoryArrayPartitionWidth = 0; - - // - // Store memory size data record to data hub. - // - Status = DataHub->LogData ( - DataHub, - &gEfiMemorySubClassGuid, - &gEfiMemoryProducerGuid, - EFI_DATA_RECORD_CLASS_DATA, - &MemorySubClassData, - sizeof (EFI_SUBCLASS_TYPE1_HEADER) + sizeof (EFI_MEMORY_ARRAY_START_ADDRESS_DATA) - ); - } - - gBS->CloseProtocol ( - HandleBuffer[HandleIndex], - &gEfiWinNtIoProtocolGuid, - Context, - NULL - ); - } + return EFI_SUCCESS; } + diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni deleted file mode 100644 index 36dacf066ac0b23d688bf2b17c0a5f966bee9807..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2014 zcmchYTWcFJ5QXQt(EqR`6xy`0OCS0W=!27N6VuoZwnLhy;9HypUyALx@t<$|osqp- zy98PYL9C>aMrY29X0*S5m91=v9oT!?YkP%M&d0<~Y-&GjWi!icX!o{2_pSBp9pfka zNc(Ibm{)DW-oQr8b!NsX^&M6-W)s$5x^28ktO74Fi(brK8rU4pGh5R4t;AXzA2U`H z_|M=ybRWjZ9en6BF3=db+#?QC8>6Yc73U`CC#=Y8;bzQ6j`sh)NA?|%WN`#ukJ-do zi_3ga%RBcoXQhiTeLLLQDS>j&w{7$J zq{#mHFkcQSvTxhDr9|n{n%1y0`ij+%tK?up7HVv>TD4=lVwQSlURj+nWnK9a5MtI= zd7V-;T8`Xcrq@CJ9;0xDy2p6zvLwB4|Jow^Ymj8W;oK6t2CwNp)LE}$U)CDVvxy`x zwI+6LbfqJHLF+5J;(5dPjUD+YUg_FO@He&ZIZi~c617VzRyI%lm3zvY$Ue?$KbcE8u;xeV<9%&tIzW z?uTr=B?iix6T79q;ZtVTkS_cN&&Y=g*_`@*$lp400-j#&Vx$s(ZS+r3eimb@7kF2< J7}q^#`3E0P|CRs% diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni deleted file mode 100644 index 204588ef8c69d2ffdf8ad4e2e2dbaec223e9f688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2456 zcmchZU2jrB5QgX4#Q$(YW1`i9@xqHHUO=IiDA4fH+AG3mdy+!UfmZqR>hsP53)Lpl zG|dUSJ9}nl-+AZb@cUQ63YOTuz2$jnFOUlBIk6+VvG2C9%u>6wE1RSH+6MN9`GdXZ z`DpK0S8d9>kzKRanT%5!d+esHrtClWv+^dfBDjPsdNFfpWHT^lcE>ohJbP_?OxaDq zpMm?*eV8Ek@L|Y2M`Psj03L2^f~MXrI5$N?h-^8)4tjHVrn66_c9&T*Bajs-7DTXIHX%ClXv~`sQTg!`t@}8)xe75^pw)Lq z#&{K25hk79ej<8h{G13MdR?d%0{=Rnc{K9a%7}a6UVLWk^zmhA2lw9Ov2w+4`_8A6 zBKoJZ`Fxfl`nH`|1(r^&X$||#ShN~)l^jgSLd|Vg-p!U$-?JXA?W-cA8+lb4;tR(8;pHsA?Av*gc?T_m|&6*$VbP*`BW??XA01 z==mWNyZEY%IkGO}1wUnF4XNhQ>)0{#5xX6awsKU@9vwm)UBXR|QB14P=xd_P+++nTbldqrcev^pL%58Bvt{JkVP-n&W&vi=9S$ukF3OA4~T}1!G zBRXUj-ou!s;FAr-G(=t2*YJwn0OVQqC^sQH@@T?I$f*4IiPSO9!&rr!Y>^sxL?(C@ zq9RPXeK;a|Rs4nwpLt)X7ef4Xf92UIp=(9n%SZWHvopY#k)0l$l+bd=cWCqRxQPDo zbUvM?h`whRRwqiA*0HvIVy;*dzCjHpRH4=$yA7+_6;$0T^U7MRb@o*+K|`$C2Cq{c ziLPsIL+N$UTws-6X)Ul;ofoI~?O#Vke~l*DZ#%ZcuF=e24{mhAc6t4QtO7ORCU-x>V_6AYAq+?~X=C9mC-bD0~YEs`L?>BW` zi+-8Y184hxM3j`)ruXj<)LZZ4G16^nJ?rBxlzLk)WyyOm-D^s6RKH>%C*j{z4bdZMB72f<%iMRN# ziaEDi<{Lg$WfQJV2C|ImEYxj_s+JE$UI@LyQzFu5R;2aL=x?IR%tuo-6XTh179(14 Ge18D`YxH42FG1;y+N6Q}dEj|H$xc#K z38bnT?abKgv0r;^&+lI)D_LTP_LlL|UO<)dHL(+$+jm=AW~q(s&X&l&w!Xb#{b27I zAMG9cy3P1EvrG;1a0yxTV&T-#7GTb7#XPVgybeC5a1-!n z;2ygVQ|K-}3|N;)44v*1hq+CW)W0?7X2>US?W@5|9y|>yJ(Wd3Hti%W{z4| zwwPpbutBwApCa3}9<$EfJ96QP=mWl~W7}$xH}Wyf?@V!++i2%p#oAVdKHtOgw|5c! z507Y{S$OwjmV!?<6w?rOSzkaac0G`9vqyImZbu%C_!Dkae*8r0ANTJHGvZ9W|p z(LbHe=hGC?ckIk+MCsC6*0fXRvNfRVCfM3VHtTi2H3rb#! zCv+WTB_n)6>NB#!dBggJKk`wyY8xxT-3 zN9qacAIlxvyHc|LiqYZbsynA6z7{A}j&J)Soo%{}(5xTPdqn*nZr()c3i>|Tf$u~e zXJiZm_SX4r@B}b&H|st$i|nqkR$yA`)UF# diff --git a/Nt32Pkg/Nt32Pkg.dec b/Nt32Pkg/Nt32Pkg.dec index 0e4b17e6b8..31b66eaecc 100644 --- a/Nt32Pkg/Nt32Pkg.dec +++ b/Nt32Pkg/Nt32Pkg.dec @@ -59,9 +59,6 @@ ################################################################################ [Guids.common] gEfiWinNtPassThroughGuid = { 0xCC664EB8, 0x3C24, 0x4086, { 0xB6, 0xF6, 0x34, 0xE8, 0x56, 0xBC, 0xE3, 0x6E }} - gEfiWinNtCPUSpeedGuid = { 0xD4F29055, 0xE1FB, 0x11D4, { 0xBD, 0x0D, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} - gEfiWinNtCPUModelGuid = { 0xBEE9B6CE, 0x2F8A, 0x11D4, { 0xBD, 0x0D, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} - gEfiWinNtMemoryGuid = { 0x99042912, 0x122A, 0x11D4, { 0xBD, 0x0D, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} gEfiWinNtConsoleGuid = { 0xBA73672C, 0xA5D3, 0x11D4, { 0xBD, 0x00, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} gEfiWinNtUgaGuid = { 0xAB248E99, 0xABE1, 0x11D4, { 0xBD, 0x0D, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }} gEfiWinNtGopGuid = { 0x4e11e955, 0xccca, 0x11d4, { 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81 }} diff --git a/Nt32Pkg/Nt32Pkg.dsc b/Nt32Pkg/Nt32Pkg.dsc index 6492e84fd1..7aaab5f540 100644 --- a/Nt32Pkg/Nt32Pkg.dsc +++ b/Nt32Pkg/Nt32Pkg.dsc @@ -329,14 +329,14 @@ ################################################################################ [PcdsDynamicDefault.common.DEFAULT] - PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"3000"|8 PcdWinNtSerialPort|gEfiNt32PkgTokenSpaceGuid|L"COM1!COM2"|18 PcdWinNtFileSystem|gEfiNt32PkgTokenSpaceGuid|L".!..\\..\\..\\..\\EdkShellBinPkg\\bin\\ia32\\Apps"|106 PcdWinNtGop|gEfiNt32PkgTokenSpaceGuid|L"UGA Window 1!UGA Window 2"|50 PcdWinNtConsole|gEfiNt32PkgTokenSpaceGuid|L"Bus Driver Console Window"|50 - PcdWinNtMemorySize|gEfiNt32PkgTokenSpaceGuid|L"64!64"|10 PcdWinNtVirtualDisk|gEfiNt32PkgTokenSpaceGuid|L"FW;40960;512"|24 - PcdWinNtCpuModel|gEfiNt32PkgTokenSpaceGuid|L"Intel(R) Processor Model"|48 + PcdWinNtCpuModel|gEfiNt32PkgTokenSpaceGuid|L"NT32 Processor Emulation"|52 + PcdWinNtCpuSpeed|gEfiNt32PkgTokenSpaceGuid|L"1234"|8 + PcdWinNtMemorySize|gEfiNt32PkgTokenSpaceGuid|L"64!64"|10 PcdWinNtPhysicalDisk|gEfiNt32PkgTokenSpaceGuid|L"a:RW;2880;512!e:RW;262144;512"|58 PcdWinNtUga|gEfiNt32PkgTokenSpaceGuid|L"UGA Window 1!UGA Window 2"|50 PcdFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid|0x0 @@ -428,5 +428,5 @@ $(WORKSPACE)/MdeModulePkg/Application/HelloWorld/HelloWorld.inf [BuildOptions] - MSFT:DEBUG_*_IA32_DLINK_FLAGS = /EXPORT:InitializeDriver=_ModuleEntryPoint /ALIGN:4096 /SUBSYSTEM:CONSOLE - MSFT:RELEASE_*_IA32_DLINK_FLAGS = /ALIGN:4096 + MSFT:DEBUG_*_IA32_DLINK_FLAGS = /EXPORT:InitializeDriver=_ModuleEntryPoint /ALIGN:4096 /SUBSYSTEM:CONSOLE + MSFT:RELEASE_*_IA32_DLINK_FLAGS = /ALIGN:4096 diff --git a/Nt32Pkg/PlatformBdsDxe/PlatformData.c b/Nt32Pkg/PlatformBdsDxe/PlatformData.c index f11e0b1443..175c569f6c 100644 --- a/Nt32Pkg/PlatformBdsDxe/PlatformData.c +++ b/Nt32Pkg/PlatformBdsDxe/PlatformData.c @@ -186,62 +186,6 @@ NT_ISA_SERIAL_DEVICE_PATH gNtSerialDevicePath1 = { gEndEntire }; -NT_PLATFORM_CPU_MODEL_VIRTUAL_DEVICE_PATH gCpuModelDevicePath = { - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - (UINT8) (sizeof (VENDOR_DEVICE_PATH)), - (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8), - EFI_WIN_NT_THUNK_PROTOCOL_GUID - }, - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)), - (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8), - EFI_WIN_NT_CPU_MODEL_GUID, - 0 - }, - gEndEntire -}; - -NT_PLATFORM_CPU_SPEED_VIRTUAL_DEVICE_PATH gCpuSpeedDevicePath = { - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - (UINT8) (sizeof (VENDOR_DEVICE_PATH)), - (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8), - EFI_WIN_NT_THUNK_PROTOCOL_GUID - }, - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)), - (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8), - EFI_WIN_NT_CPU_SPEED_GUID, - 0 - }, - gEndEntire -}; - -NT_PLATFORM_MEMORY_VIRTUAL_DEVICE_PATH gMemoryDevicePath = { - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - (UINT8) (sizeof (VENDOR_DEVICE_PATH)), - (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8), - EFI_WIN_NT_THUNK_PROTOCOL_GUID - }, - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)), - (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8), - EFI_WIN_NT_MEMORY_GUID, - 0 - }, - gEndEntire -}; // // Predefined platform default console device path @@ -285,8 +229,4 @@ EFI_DEVICE_PATH_PROTOCOL *gPlatformDriverOption[] = { NULL }; // // Predefined platform connect sequence // -EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[] = { - (EFI_DEVICE_PATH_PROTOCOL *) &gCpuModelDevicePath, - (EFI_DEVICE_PATH_PROTOCOL *) &gCpuSpeedDevicePath, - (EFI_DEVICE_PATH_PROTOCOL *) &gMemoryDevicePath - }; +EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[] = { NULL }; diff --git a/Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIo.c b/Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIo.c index 3f32d2028e..b294d5bda5 100644 --- a/Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIo.c +++ b/Nt32Pkg/WinNtBlockIoDxe/WinNtBlockIo.c @@ -284,10 +284,10 @@ Returns: WriteProtected = (BOOLEAN) (*Str == 'O'); Str = GetNextElementPastTerminator (Str, ';'); - NumberOfBlocks = Atoi (Str); + NumberOfBlocks = StrDecimalToUintn (Str); if (NumberOfBlocks != 0) { Str = GetNextElementPastTerminator (Str, ';'); - BlockSize = Atoi (Str); + BlockSize = StrDecimalToUintn (Str); if (BlockSize != 0) { // // If we get here the variable is valid so do the work. @@ -1063,52 +1063,6 @@ WinNtBlockIoResetBlock ( return EFI_SUCCESS; } -UINTN -Atoi ( - CHAR16 *String - ) -/*++ - -Routine Description: - - Convert a unicode string to a UINTN - -Arguments: - - String - Unicode string. - -Returns: - - UINTN of the number represented by String. - ---*/ -{ - UINTN Number; - CHAR16 *Str; - - // - // skip preceeding white space - // - Str = String; - while ((*Str) && (*Str == ' ')) { - Str++; - } - // - // Convert ot a Number - // - Number = 0; - while (*Str != '\0') { - if ((*Str >= '0') && (*Str <= '9')) { - Number = (Number * 10) +*Str - '0'; - } else { - break; - } - - Str++; - } - - return Number; -} EFI_STATUS SetFilePointer64 ( diff --git a/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c b/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c index 999fb0cc5d..edcd9eb96d 100644 --- a/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c +++ b/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriver.c @@ -150,10 +150,7 @@ static NT_PCD_ENTRY mPcdEnvironment[] = { PcdToken(PcdWinNtSerialPort), &gEfiWinNtSerialPortGuid, PcdToken(PcdWinNtFileSystem), &gEfiWinNtFileSystemGuid, PcdToken(PcdWinNtVirtualDisk), &gEfiWinNtVirtualDisksGuid, - PcdToken(PcdWinNtPhysicalDisk), &gEfiWinNtPhysicalDisksGuid, - PcdToken(PcdWinNtCpuModel), &gEfiWinNtCPUModelGuid, - PcdToken(PcdWinNtCpuSpeed), &gEfiWinNtCPUSpeedGuid, - PcdToken(PcdWinNtMemorySize), &gEfiWinNtMemoryGuid + PcdToken(PcdWinNtPhysicalDisk), &gEfiWinNtPhysicalDisksGuid }; /** diff --git a/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriverDxe.inf b/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriverDxe.inf index 50aca77beb..8c94849827 100644 --- a/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriverDxe.inf +++ b/Nt32Pkg/WinNtBusDriverDxe/WinNtBusDriverDxe.inf @@ -60,9 +60,6 @@ [Guids] - gEfiWinNtCPUSpeedGuid # ALWAYS_CONSUMED - gEfiWinNtCPUModelGuid # ALWAYS_CONSUMED - gEfiWinNtMemoryGuid # ALWAYS_CONSUMED gEfiWinNtConsoleGuid # ALWAYS_CONSUMED gEfiWinNtGopGuid # ALWAYS_CONSUMED gEfiWinNtSerialPortGuid # ALWAYS_CONSUMED diff --git a/Nt32Pkg/WinNtGopDxe/WinNtGop.h b/Nt32Pkg/WinNtGopDxe/WinNtGop.h index 74cfe41e15..e9cf80c33f 100644 --- a/Nt32Pkg/WinNtGopDxe/WinNtGop.h +++ b/Nt32Pkg/WinNtGopDxe/WinNtGop.h @@ -304,18 +304,5 @@ WinNtGopDestroySimpleTextInForWindow ( ; -/** - TODO: Add function description - - @param String TODO: add argument description - - @return TODO: add return values - -**/ -UINTN -Atoi ( - IN CHAR16 *String - ) -; #endif diff --git a/Nt32Pkg/WinNtGopDxe/WinNtGopDriver.c b/Nt32Pkg/WinNtGopDxe/WinNtGopDriver.c index 86b6d19ebb..5f41e29e19 100644 --- a/Nt32Pkg/WinNtGopDxe/WinNtGopDriver.c +++ b/Nt32Pkg/WinNtGopDxe/WinNtGopDriver.c @@ -335,44 +335,3 @@ WinNtGopDriverBindingStop ( return Status; } - -/** - Convert a unicode string to a UINTN - - @param String Unicode string. - - @return UINTN of the number represented by String. - -**/ -UINTN -Atoi ( - CHAR16 *String - ) -{ - UINTN Number; - CHAR16 *Str; - - // - // skip preceeding white space - // - Str = String; - while ((*Str) && (*Str == ' ' || *Str == '"')) { - Str++; - } - - // - // Convert ot a Number - // - Number = 0; - while (*Str != '\0') { - if ((*Str >= '0') && (*Str <= '9')) { - Number = (Number * 10) +*Str - '0'; - } else { - break; - } - - Str++; - } - - return Number; -} -- 2.39.2