2. Modified some source files to meet ICC build for IA32 and IPF. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3271 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			494 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			494 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| Private functions used by PCD DXE driver.
 | |
| 
 | |
| Copyright (c) 2006 - 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: Service.h
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _SERVICE_H
 | |
| #define _SERVICE_H
 | |
| 
 | |
| #include <PiDxe.h>
 | |
| #include <Protocol/Pcd.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Library/UefiDriverEntryPoint.h>
 | |
| #include <Library/PcdLib.h>
 | |
| #include <Library/HobLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| 
 | |
| //
 | |
| // Please make sure the PCD Serivce PEIM Version is consistent with
 | |
| // the version of PCD Database generation tool
 | |
| //
 | |
| #define PCD_SERVICE_DXE_DRIVER_VERSION      2
 | |
| 
 | |
| //
 | |
| // PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h
 | |
| // and generated by PCD Database generation tool.
 | |
| //
 | |
| //#if (PCD_SERVICE_DXE_DRIVER_VERSION != PCD_DXE_SERVICE_DRIVER_AUTOGEN_VERSION)
 | |
| //  #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"
 | |
| //#endif
 | |
| 
 | |
| //
 | |
| // Protocol Interface function declaration.
 | |
| //
 | |
| VOID
 | |
| EFIAPI
 | |
| DxePcdSetSku (
 | |
|   IN  UINTN                  SkuId
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT8
 | |
| EFIAPI
 | |
| DxePcdGet8 (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT16
 | |
| EFIAPI
 | |
| DxePcdGet16 (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT32
 | |
| EFIAPI
 | |
| DxePcdGet32 (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT64
 | |
| EFIAPI
 | |
| DxePcdGet64 (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| VOID *
 | |
| EFIAPI
 | |
| DxePcdGetPtr (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| DxePcdGetBool (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| DxePcdGetSize (
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT8
 | |
| EFIAPI
 | |
| DxePcdGet8Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT16
 | |
| EFIAPI
 | |
| DxePcdGet16Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINT32
 | |
| EFIAPI
 | |
| DxePcdGet32Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| UINT64
 | |
| EFIAPI
 | |
| DxePcdGet64Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| VOID *
 | |
| EFIAPI
 | |
| DxePcdGetPtrEx (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| DxePcdGetBoolEx (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINTN
 | |
| EFIAPI
 | |
| DxePcdGetSizeEx (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet8 (
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT8             Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet16 (
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT16             Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet32 (
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT32             Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet64 (
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT64            Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSetPtr (
 | |
|   IN        UINTN             TokenNumber,
 | |
|   IN        UINTN             *SizeOfBuffer,
 | |
|   IN        VOID              *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSetBool (
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN BOOLEAN           Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet8Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT8             Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet16Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT16            Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet32Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT32             Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSet64Ex (
 | |
|   IN CONST EFI_GUID        *Guid,
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINT64            Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSetPtrEx (
 | |
|   IN        CONST EFI_GUID    *Guid,
 | |
|   IN        UINTN             TokenNumber,
 | |
|   IN OUT    UINTN             *SizeOfBuffer,
 | |
|   IN        VOID              *Buffer
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdSetBoolEx (
 | |
|   IN CONST EFI_GUID    *Guid,
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN BOOLEAN           Value
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxeRegisterCallBackOnSet (
 | |
|   IN  CONST EFI_GUID          *Guid, OPTIONAL
 | |
|   IN  UINTN                   TokenNumber,
 | |
|   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxeUnRegisterCallBackOnSet (
 | |
|   IN  CONST EFI_GUID          *Guid, OPTIONAL
 | |
|   IN  UINTN                   TokenNumber,
 | |
|   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdGetNextToken (
 | |
|   IN CONST EFI_GUID               *Guid, OPTIONAL
 | |
|   IN OUT   UINTN                  *TokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| DxePcdGetNextTokenSpace (
 | |
|   IN OUT CONST EFI_GUID               **Guid
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| typedef struct {
 | |
|   LIST_ENTRY              Node;
 | |
|   PCD_PROTOCOL_CALLBACK   CallbackFn;
 | |
| } CALLBACK_FN_ENTRY;
 | |
| 
 | |
| #define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field)
 | |
| 
 | |
| //
 | |
| // Internal Functions
 | |
| //
 | |
| 
 | |
| EFI_STATUS
 | |
| SetValueWorker (
 | |
|   IN UINTN                   TokenNumber,
 | |
|   IN VOID                    *Data,
 | |
|   IN UINTN                   Size
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| SetWorker (
 | |
|   IN          UINTN                     TokenNumber,
 | |
|   IN          VOID                      *Data,
 | |
|   IN OUT      UINTN                     *Size,
 | |
|   IN          BOOLEAN                   PtrType
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| ExSetValueWorker (
 | |
|   IN          UINTN                ExTokenNumber,
 | |
|   IN          CONST EFI_GUID       *Guid,
 | |
|   IN          VOID                 *Data,
 | |
|   IN          UINTN                SetSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| EFI_STATUS
 | |
| ExSetWorker (
 | |
|   IN      UINTN                ExTokenNumber,
 | |
|   IN      CONST EFI_GUID       *Guid,
 | |
|   IN      VOID                 *Data,
 | |
|   IN OUT  UINTN                *Size,
 | |
|   IN      BOOLEAN              PtrType
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| VOID *
 | |
| GetWorker (
 | |
|   IN UINTN             TokenNumber,
 | |
|   IN UINTN             GetSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| VOID *
 | |
| ExGetWorker (
 | |
|   IN CONST EFI_GUID         *Guid,
 | |
|   IN UINTN                  ExTokenNumber,
 | |
|   IN UINTN                  GetSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| UINT32
 | |
| GetSkuEnabledTokenNumber (
 | |
|   UINT32 LocalTokenNumber,
 | |
|   UINTN  Size,
 | |
|   BOOLEAN IsPeiDb
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| GetHiiVariable (
 | |
|   IN  EFI_GUID      *VariableGuid,
 | |
|   IN  UINT16        *VariableName,
 | |
|   OUT UINT8          **VariableData,
 | |
|   OUT UINTN         *VariableSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| SetHiiVariable (
 | |
|   IN  EFI_GUID     *VariableGuid,
 | |
|   IN  UINT16       *VariableName,
 | |
|   IN  CONST VOID   *Data,
 | |
|   IN  UINTN        DataSize,
 | |
|   IN  UINTN        Offset
 | |
|   )
 | |
| ;
 | |
| 
 | |
| EFI_STATUS
 | |
| DxeRegisterCallBackWorker (
 | |
|   IN  UINTN                   TokenNumber,
 | |
|   IN  CONST EFI_GUID          *Guid, OPTIONAL
 | |
|   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction
 | |
| );
 | |
| 
 | |
| EFI_STATUS
 | |
| DxeUnRegisterCallBackWorker (
 | |
|   IN  UINTN                   TokenNumber,
 | |
|   IN  CONST EFI_GUID          *Guid, OPTIONAL
 | |
|   IN  PCD_PROTOCOL_CALLBACK   CallBackFunction
 | |
| );
 | |
| 
 | |
| VOID
 | |
| BuildPcdDxeDataBase (
 | |
|   VOID
 | |
| );
 | |
| 
 | |
| 
 | |
| UINTN
 | |
| GetExPcdTokenNumber (
 | |
|   IN CONST EFI_GUID             *Guid,
 | |
|   IN UINT32                     ExTokenNumber
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| 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
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| UINTN
 | |
| GetPtrTypeSize (
 | |
|   IN    UINTN             LocalTokenNumberTableIdx,
 | |
|   OUT   UINTN             *MaxSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| 
 | |
| 
 | |
| BOOLEAN
 | |
| SetPtrTypeSize (
 | |
|   IN          UINTN             LocalTokenNumberTableIdx,
 | |
|   IN    OUT   UINTN             *CurrentSize
 | |
|   )
 | |
| ;
 | |
| 
 | |
| extern EFI_GUID gPcdDataBaseHobGuid;
 | |
| 
 | |
| extern PCD_DATABASE * mPcdDatabase;
 | |
| 
 | |
| extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;
 | |
| 
 | |
| extern EFI_LOCK mPcdDatabaseLock;
 | |
| 
 | |
| #endif
 |