From 3aaddf9276ccf00b4b6349dfce058e3ae287dd3a Mon Sep 17 00:00:00 2001 From: vanjeff Date: Tue, 20 Mar 2007 02:44:09 +0000 Subject: [PATCH] 1. Removed #ifdef SNP_DEBUG and used debug lib to output information 2. Rename PcdPlatformNoCsmSupport to PcdPlatformCsmSupport. 3 Removed #ifdef EFI_NO_CSM and used PcdPlatformCsmSupport. 4. Removed #ifdef ALIGNMENT from C Variable.c and added 2 files Variable/Pei/Ipf/VariableWorker.c and Variable/Pei/VariableWorker.c git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2487 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkModulePkg/EdkModulePkg.fpd | 32 ------ .../Universal/Network/PxeBc/Dxe/pxe_bc_dhcp.c | 70 ++++++------ .../Network/PxeDhcp4/Dxe/PxeDhcp4InitSelect.c | 13 +-- .../Universal/Network/Snp32_64/Dxe/Snp.h | 34 ++---- .../Universal/Network/Snp32_64/Dxe/callback.c | 18 ++-- .../Universal/Network/Snp32_64/Dxe/snp.c | 102 +++++------------- .../Variable/Pei/Ipf/VariableWorker.c | 44 ++++++++ .../Universal/Variable/Pei/Variable.c | 26 ++--- .../Universal/Variable/Pei/Variable.h | 32 ++++-- .../Universal/Variable/Pei/Variable.msa | 4 +- .../Universal/Variable/Pei/VariableWorker.c | 44 ++++++++ EdkNt32Pkg/Nt32.fpd | 8 -- EdkUnixPkg/Unix.fpd | 8 -- 13 files changed, 202 insertions(+), 233 deletions(-) create mode 100644 EdkModulePkg/Universal/Variable/Pei/Ipf/VariableWorker.c create mode 100644 EdkModulePkg/Universal/Variable/Pei/VariableWorker.c diff --git a/EdkModulePkg/EdkModulePkg.fpd b/EdkModulePkg/EdkModulePkg.fpd index fe8fcd8d1c..3dfed1183e 100644 --- a/EdkModulePkg/EdkModulePkg.fpd +++ b/EdkModulePkg/EdkModulePkg.fpd @@ -2075,14 +2075,6 @@ 4 320 - - PcdNtEmulatorEnable - 0x0001003e - gEfiEdkModulePkgTokenSpaceGuid - BOOLEAN - 1 - FALSE - NULL @@ -8030,14 +8022,6 @@ 4 320 - - PcdNtEmulatorEnable - 0x0001003e - gEfiEdkModulePkgTokenSpaceGuid - BOOLEAN - 1 - FALSE - NULL @@ -12587,14 +12571,6 @@ 4 320 - - PcdNtEmulatorEnable - 0x0001003e - gEfiEdkModulePkgTokenSpaceGuid - BOOLEAN - 1 - FALSE - NULL @@ -16966,14 +16942,6 @@ 4 320 - - PcdNtEmulatorEnable - 0x0001003e - gEfiEdkModulePkgTokenSpaceGuid - BOOLEAN - 1 - FALSE - NULL diff --git a/EdkModulePkg/Universal/Network/PxeBc/Dxe/pxe_bc_dhcp.c b/EdkModulePkg/Universal/Network/PxeBc/Dxe/pxe_bc_dhcp.c index bb7022ba74..101c030bc8 100644 --- a/EdkModulePkg/Universal/Network/PxeBc/Dxe/pxe_bc_dhcp.c +++ b/EdkModulePkg/Universal/Network/PxeBc/Dxe/pxe_bc_dhcp.c @@ -1,17 +1,17 @@ /*++ -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. +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: pxe_bc_dhcp.c - + Abstract: DHCP and PXE discovery protocol implementations. @@ -411,7 +411,7 @@ Routine description: Arguments: Smbios - Pointer to SMBIOS structure - StringNumber - String number to return. 0 is used to skip all strings and + StringNumber - String number to return. 0 is used to skip all strings and point to the next SMBIOS structure. Returns: @@ -1165,11 +1165,11 @@ Parameters: Private := Pointer to PxeBc interface ExtraEdit := Pointer to extra option checking function OpFlags := UdpRead() option flags - ServerIpPtr := - ServerPortPtr := - ClientIpPtr := - ClientPortPtr := - DhcpRxBuf := + ServerIpPtr := + ServerPortPtr := + ClientIpPtr := + ClientPortPtr := + DhcpRxBuf := TimeoutEvent := Returns: @@ -2309,7 +2309,7 @@ Routine description: Parameters: This := Pointer to PxeBc interface - SortOffers := + SortOffers := Returns: --*/ @@ -2466,12 +2466,12 @@ DoDiscover ( PXE_SERVER_LISTS *ServerListPtr ) /*++ -Routine description: +Routine description: This function tries to complete the PXE Bootserver and/or boot image discovery sequence. When this command completes successfully, the PXEdiscover and PXEreply fields in the BC instance data structure are updated. If the Info pointer is set to NULL, the discovery information - in the DHCPack and ProxyOffer packets must be valid and will be used. + in the DHCPack and ProxyOffer packets must be valid and will be used. If Info is not set to NULL, the discovery methods in the Info field must be set and will be used. When discovering any layer number other than zero (the credential flag does not count), only unicast discovery @@ -2479,12 +2479,12 @@ Routine description: Parameters: Private := Pointer to PxeBc interface - OpFlags := - Type := - LayerPtr := - UseBis := - DestPtr := - ServerListPtr := + OpFlags := + Type := + LayerPtr := + UseBis := + DestPtr := + ServerListPtr := Returns: --*/ @@ -2771,12 +2771,12 @@ Routine Description: Parameters: Private := Pointer to PxeBc interface - Type := - LayerPtr := - UseBis := - DiscoverInfoPtr := - McastServerListPtr := - ServerListPtr := + Type := + LayerPtr := + UseBis := + DiscoverInfoPtr := + McastServerListPtr := + ServerListPtr := Returns: --*/ @@ -2907,11 +2907,11 @@ BcDiscover ( Routine description: Parameters: - This := - Type := - LayerPtr := - UseBis := - DiscoverInfoPtr := + This := + Type := + LayerPtr := + UseBis := + DiscoverInfoPtr := Returns: --*/ diff --git a/EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4InitSelect.c b/EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4InitSelect.c index 3cb7f3f4be..1b500c57b3 100644 --- a/EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4InitSelect.c +++ b/EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4InitSelect.c @@ -19,11 +19,6 @@ Abstract: #include "PxeDhcp4.h" -#define DebugPrint(x) -// -// #define DebugPrint(x) Aprint x -// -/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ STATIC INTN offer_verify ( @@ -400,7 +395,7 @@ PxeDhcp4Init ( Private->offer_list = NULL; Private->callback = NULL; - DebugPrint (("%a:%d:%r\n", __FILE__, __LINE__, EfiStatus)); + DEBUG ((EFI_D_ERROR, "%r\n", EfiStatus)); return EfiStatus; } @@ -687,7 +682,7 @@ PxeDhcp4Select ( EfiStatus = add_opt (&request, srvid); if (EFI_ERROR (EfiStatus)) { - DebugPrint (("%a:%d:%r\n", __FILE__, __LINE__, EfiStatus)); + DEBUG ((EFI_D_ERROR, "%r\n", EfiStatus)); Private->callback = NULL; return EfiStatus; } @@ -702,7 +697,7 @@ PxeDhcp4Select ( EfiStatus = add_opt (&request, op); if (EFI_ERROR (EfiStatus)) { - DebugPrint (("%a:%d:%r\n", __FILE__, __LINE__, EfiStatus)); + DEBUG ((EFI_D_ERROR, "%r\n", EfiStatus)); Private->callback = NULL; return EfiStatus; } @@ -724,7 +719,7 @@ PxeDhcp4Select ( ); if (EFI_ERROR (EfiStatus)) { - DebugPrint (("%a:%d:%r\n", __FILE__, __LINE__, EfiStatus)); + DEBUG ((EFI_D_ERROR, "%r\n", EfiStatus)); Private->callback = NULL; return EfiStatus; } diff --git a/EdkModulePkg/Universal/Network/Snp32_64/Dxe/Snp.h b/EdkModulePkg/Universal/Network/Snp32_64/Dxe/Snp.h index 31cbc8eb83..038c2e66b0 100644 --- a/EdkModulePkg/Universal/Network/Snp32_64/Dxe/Snp.h +++ b/EdkModulePkg/Universal/Network/Snp32_64/Dxe/Snp.h @@ -1,12 +1,12 @@ /*++ -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. +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: snp.h @@ -22,17 +22,8 @@ Revision history: #include "IndustryStandard/pci22.h" -#define SNP_DEBUG 0 #define FOUR_GIGABYTES (UINT64) 0x100000000ULL -#if SNP_DEBUG -#undef D_NET -#define D_NET D_WARN -#define SNP_PRINT(DebugInfo) Print (DebugInfo) -#else -#define SNP_PRINT(DebugInfo) -#endif - #define SNP_DRIVER_SIGNATURE EFI_SIGNATURE_32 ('s', 'n', 'd', 's') #define MAX_MAP_LENGTH 100 @@ -455,13 +446,4 @@ VOID #define SNP_MEM_PAGES(x) (((x) - 1) / 4096 + 1) -#if SNP_DEBUG -extern -VOID -snp_wait_for_key ( - VOID - ) -; -#endif - #endif /* _SNP_H */ diff --git a/EdkModulePkg/Universal/Network/Snp32_64/Dxe/callback.c b/EdkModulePkg/Universal/Network/Snp32_64/Dxe/callback.c index 2a9c953f89..16e40c609b 100644 --- a/EdkModulePkg/Universal/Network/Snp32_64/Dxe/callback.c +++ b/EdkModulePkg/Universal/Network/Snp32_64/Dxe/callback.c @@ -1,12 +1,12 @@ /*++ -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. +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: callback.c @@ -482,7 +482,7 @@ Returns: } if (Index >= MAX_MAP_LENGTH) { - SNP_PRINT (L"SNP maplist is FULL\n"); + DEBUG ((EFI_D_INFO, "SNP maplist is FULL\n")); *DevAddrPtr = 0; return ; } diff --git a/EdkModulePkg/Universal/Network/Snp32_64/Dxe/snp.c b/EdkModulePkg/Universal/Network/Snp32_64/Dxe/snp.c index 7146e462c7..4b6cda9b1e 100644 --- a/EdkModulePkg/Universal/Network/Snp32_64/Dxe/snp.c +++ b/EdkModulePkg/Universal/Network/Snp32_64/Dxe/snp.c @@ -1,12 +1,12 @@ /*++ -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. +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: snp.c @@ -41,10 +41,8 @@ Returns: --*/ { -#if SNP_DEBUG - Aprint ("\nissue_hwundi_command() - This should not be called!"); - snp_wait_for_key (); -#endif + DEBUG ((EFI_D_ERROR, "\nissue_hwundi_command() - This should not be called!")); + if (cdb == 0) { return EFI_INVALID_PARAMETER; @@ -65,7 +63,7 @@ calc_8bit_cksum ( Routine Description: Compute 8-bit checksum of a buffer. - + Arguments: ptr - Pointer to buffer. len - Length of buffer in bytes. @@ -147,19 +145,13 @@ SimpleNetworkDriverSupported ( ); if (Status == EFI_ALREADY_STARTED) { -#if SNP_DEBUG - Aprint ("Support(): Already Started. on handle %x\n", Controller); -#endif + DEBUG ((EFI_D_INFO, "Support(): Already Started. on handle %x\n", Controller)); return EFI_ALREADY_STARTED; } if (!EFI_ERROR (Status)) { - -#if SNP_DEBUG - Aprint ("Support(): UNDI3.1 found on handle %x\n", Controller); - snp_wait_for_key (); -#endif + DEBUG ((EFI_D_INFO, "Support(): UNDI3.1 found on handle %x\n", Controller)); IsUndi31 = TRUE; } else { // @@ -177,10 +169,7 @@ SimpleNetworkDriverSupported ( return Status; } -#if SNP_DEBUG - Aprint ("Support(): UNDI3.0 found on handle %x\n", Controller); - snp_wait_for_key (); -#endif + DEBUG ((EFI_D_INFO, "Support(): UNDI3.0 found on handle %x\n", Controller)); } // // check the version, we don't want to connect to the undi16 @@ -244,10 +233,7 @@ SimpleNetworkDriverSupported ( } Status = EFI_SUCCESS; -#if SNP_DEBUG - Aprint ("Support(): supported on %x\n", Controller); - snp_wait_for_key (); -#endif + DEBUG ((EFI_D_INFO, "Support(): supported on %x\n", Controller)); Done: if (IsUndi31) { @@ -374,10 +360,8 @@ Arguments: // probably not a 3.1 UNDI // UndiNew = TRUE; -#if SNP_DEBUG - Aprint ("Start(): UNDI3.1 found\n"); - snp_wait_for_key (); -#endif + DEBUG ((EFI_D_INFO, "Start(): UNDI3.1 found\n")); + } else { UndiNew = FALSE; Status = gBS->OpenProtocol ( @@ -399,10 +383,7 @@ Arguments: return Status; } -#if SNP_DEBUG - Aprint ("Start(): UNDI3.0 found\n"); - snp_wait_for_key (); -#endif + DEBUG ((EFI_D_INFO, "Start(): UNDI3.0 found\n")); } pxe = (PXE_UNDI *) (UINTN) (Nii->ID); @@ -996,7 +977,7 @@ Returns: Controller ); } - + Status = gBS->CloseProtocol ( Controller, &gEfiDevicePathProtocolGuid, @@ -1077,7 +1058,7 @@ add_v2p ( Routine Description: This routine maps the given CPU address to a Device address. It creates a - an entry in the map list with the virtual and physical addresses and the + an entry in the map list with the virtual and physical addresses and the un map cookie. Arguments: @@ -1138,7 +1119,7 @@ find_v2p ( /*++ Routine Description: - This routine searches the linked list of mapped address nodes (for undi3.0 + This routine searches the linked list of mapped address nodes (for undi3.0 interface) to find the node that corresponds to the given virtual address and returns a pointer to that node. @@ -1176,9 +1157,9 @@ del_v2p ( /*++ Routine Description: - This routine unmaps the given virtual address and frees the memory allocated + This routine unmaps the given virtual address and frees the memory allocated for the map list node corresponding to that address. - + Arguments: vaddr - virtual address (or CPU address) to be unmapped @@ -1210,11 +1191,9 @@ Returns: gBS->FreePool (v); -#if SNP_DEBUG if (Status) { - Print (L"Unmap failed with status = %x\n", Status); + DEBUG ((EFI_D_ERROR, "Unmap failed with status = %x\n", Status)); } -#endif return Status; } @@ -1223,42 +1202,13 @@ Returns: v->next = t->next; Status = mPciIoFncs->Unmap (mPciIoFncs, t->unmap); gBS->FreePool (t); -#if SNP_DEBUG + if (Status) { - Print (L"Unmap failed with status = %x\n", Status); + DEBUG ((EFI_D_ERROR, "Unmap failed with status = %x\n", Status)); } -#endif return Status; } } return EFI_NOT_FOUND; } - -#if SNP_DEBUG -VOID -snp_wait_for_key ( - VOID - ) -/*++ - -Routine Description: - Wait for a key stroke, used for debugging purposes - -Arguments: - none - -Returns: - none - ---*/ -{ - EFI_INPUT_KEY key; - - Aprint ("\nPress any key to continue\n"); - - while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) { - ; - } -} -#endif diff --git a/EdkModulePkg/Universal/Variable/Pei/Ipf/VariableWorker.c b/EdkModulePkg/Universal/Variable/Pei/Ipf/VariableWorker.c new file mode 100644 index 0000000000..302bc14689 --- /dev/null +++ b/EdkModulePkg/Universal/Variable/Pei/Ipf/VariableWorker.c @@ -0,0 +1,44 @@ +/*++ + +Copyright (c) 2007, 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: + + VariableWorker.c + +Abstract: + + Framework PEIM to provide the Variable functionality + +--*/ + +#include + + +VARIABLE_HEADER * +GetVariableByIndex ( + IN VARIABLE_INDEX_TABLE *IndexTable, + IN UINT32 Count + ) +{ + return (VARIABLE_HEADER *) (UINTN) ((((UINT32)IndexTable->Index[Count]) << 2) + ((UINT32)(UINTN)IndexTable->StartPtr & 0xFFFC0000) ); +} + +VOID +VariableIndexTableUpdate ( + IN OUT VARIABLE_INDEX_TABLE *IndexTable, + IN VARIABLE_HEADER *Variable + ) +{ + IndexTable->Index[IndexTable->Length++] = (UINT16) (((UINT32)(UINTN) Variable) >> 2); + + return; +} + diff --git a/EdkModulePkg/Universal/Variable/Pei/Variable.c b/EdkModulePkg/Universal/Variable/Pei/Variable.c index 33772f8513..0660419547 100644 --- a/EdkModulePkg/Universal/Variable/Pei/Variable.c +++ b/EdkModulePkg/Universal/Variable/Pei/Variable.c @@ -8,7 +8,6 @@ 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: Variable.c @@ -50,7 +49,7 @@ Routine Description: Provide the functionality of the variable services. Arguments: - + FfsHeadher - The FFS file header PeiServices - General purpose services available to every PEIM. @@ -192,7 +191,7 @@ Returns: EFI_SUCCESS - Found match variable EFI_NOT_FOUND - Variable not found - + --*/ { if (VariableName[0] == 0) { @@ -265,7 +264,7 @@ Returns: // No Variable Address equals zero, so 0 as initial value is safe. // MaxIndex = 0; - + GuidHob = GetFirstGuidHob (&gEfiVariableIndexTableGuid); if (GuidHob == NULL) { IndexTable = BuildGuidHob (&gEfiVariableIndexTableGuid, sizeof (VARIABLE_INDEX_TABLE)); @@ -277,13 +276,8 @@ Returns: IndexTable = GET_GUID_HOB_DATA (GuidHob); for (Count = 0; Count < IndexTable->Length; Count++) { -#if ALIGNMENT <= 1 - MaxIndex = (VARIABLE_HEADER *) (UINTN) (IndexTable->Index[Count] + ((UINTN) IndexTable->StartPtr & 0xFFFF0000)); -#else -#if ALIGNMENT >= 4 - MaxIndex = (VARIABLE_HEADER *) (UINTN) ((((UINT32)IndexTable->Index[Count]) << 2) + ((UINT32)(UINTN)IndexTable->StartPtr & 0xFFFC0000) ); -#endif -#endif + MaxIndex = GetVariableByIndex (IndexTable, Count); + if (CompareWithValidVariable (MaxIndex, VariableName, VendorGuid, PtrTrack) == EFI_SUCCESS) { PtrTrack->StartPtr = IndexTable->StartPtr; PtrTrack->EndPtr = IndexTable->EndPtr; @@ -308,7 +302,7 @@ Returns: VariableBase = (UINT8 *) (UINTN) PcdGet32 (PcdFlashNvStorageVariableBase); VariableStoreHeader = (VARIABLE_STORE_HEADER *) (VariableBase + \ ((EFI_FIRMWARE_VOLUME_HEADER *) (VariableBase)) -> HeaderLength); - + if (GetVariableStoreStatus (VariableStoreHeader) != EfiValid) { return EFI_UNSUPPORTED; } @@ -342,13 +336,7 @@ Returns: // if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) { -#if ALIGNMENT <= 1 - IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable; -#else -#if ALIGNMENT >= 4 - IndexTable->Index[IndexTable->Length++] = (UINT16) (((UINT32)(UINTN) Variable) >> 2); -#endif -#endif + VariableIndexTableUpdate (IndexTable, Variable); } if (CompareWithValidVariable (Variable, VariableName, VendorGuid, PtrTrack) == EFI_SUCCESS) { diff --git a/EdkModulePkg/Universal/Variable/Pei/Variable.h b/EdkModulePkg/Universal/Variable/Pei/Variable.h index ac7c579029..d400af4d14 100644 --- a/EdkModulePkg/Universal/Variable/Pei/Variable.h +++ b/EdkModulePkg/Universal/Variable/Pei/Variable.h @@ -1,18 +1,18 @@ /*++ -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. +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: Variable.h - + Abstract: Tiano PEIM to provide the variable functionality @@ -24,7 +24,7 @@ Abstract: // // BugBug: We need relcate the head file. -// +// #include #include @@ -150,4 +150,16 @@ Returns: --*/ ; +VARIABLE_HEADER * +GetVariableByIndex ( + IN VARIABLE_INDEX_TABLE *IndexTable, + IN UINT32 Count + ); + +VOID +VariableIndexTableUpdate ( + IN OUT VARIABLE_INDEX_TABLE *IndexTable, + IN VARIABLE_HEADER *Variable + ); + #endif // _PEI_VARIABLE_H diff --git a/EdkModulePkg/Universal/Variable/Pei/Variable.msa b/EdkModulePkg/Universal/Variable/Pei/Variable.msa index 0313c2e700..565ae31a13 100644 --- a/EdkModulePkg/Universal/Variable/Pei/Variable.msa +++ b/EdkModulePkg/Universal/Variable/Pei/Variable.msa @@ -1,4 +1,4 @@ - + PeiVariable @@ -42,6 +42,8 @@ Variable.h Variable.c Variable.dxs + VariableWorker.c + Ipf/VariableWorker.c Ia32/VarMachine.h Ebc/VarMachine.h x64/VarMachine.h diff --git a/EdkModulePkg/Universal/Variable/Pei/VariableWorker.c b/EdkModulePkg/Universal/Variable/Pei/VariableWorker.c new file mode 100644 index 0000000000..ae64cb07ca --- /dev/null +++ b/EdkModulePkg/Universal/Variable/Pei/VariableWorker.c @@ -0,0 +1,44 @@ +/*++ + +Copyright (c) 2007, 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: + + VariableWorker.c + +Abstract: + + Framework PEIM to provide the Variable functionality + +--*/ + +#include + + +VARIABLE_HEADER * +GetVariableByIndex ( + IN VARIABLE_INDEX_TABLE *IndexTable, + IN UINT32 Count + ) +{ + return (VARIABLE_HEADER *) (UINTN) (IndexTable->Index[Count] + ((UINTN) IndexTable->StartPtr & 0xFFFF0000)); +} + +VOID +VariableIndexTableUpdate ( + IN OUT VARIABLE_INDEX_TABLE *IndexTable, + IN VARIABLE_HEADER *Variable + ) +{ + IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable; + + return; +} + diff --git a/EdkNt32Pkg/Nt32.fpd b/EdkNt32Pkg/Nt32.fpd index 1fac2da6e6..f9b0c58ecc 100644 --- a/EdkNt32Pkg/Nt32.fpd +++ b/EdkNt32Pkg/Nt32.fpd @@ -3224,14 +3224,6 @@ 4 320 - - PcdNtEmulatorEnable - 0x0001003e - gEfiEdkModulePkgTokenSpaceGuid - BOOLEAN - 1 - FALSE - NULL diff --git a/EdkUnixPkg/Unix.fpd b/EdkUnixPkg/Unix.fpd index c5ffd9c603..372a368ad1 100644 --- a/EdkUnixPkg/Unix.fpd +++ b/EdkUnixPkg/Unix.fpd @@ -3216,14 +3216,6 @@ 4 320 - - PcdNtEmulatorEnable - 0x0001003e - gEfiEdkModulePkgTokenSpaceGuid - BOOLEAN - 1 - FALSE - NULL -- 2.39.2