mirror of https://github.com/acidanthera/audk.git
Add in support for GetNextTokenNumber API.
Use PCD_TOKEN_NUMBER as type for parameter of internal APIs. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@312 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
19b362e879
commit
0653eb895d
|
@ -444,10 +444,10 @@ InvokeCallbackOnSet (
|
|||
|
||||
EFI_STATUS
|
||||
SetWorker (
|
||||
UINTN TokenNumber,
|
||||
VOID *Data,
|
||||
UINTN Size,
|
||||
BOOLEAN PtrType
|
||||
PCD_TOKEN_NUMBER TokenNumber,
|
||||
VOID *Data,
|
||||
UINTN Size,
|
||||
BOOLEAN PtrType
|
||||
)
|
||||
{
|
||||
UINT32 *LocalTokenNumberTable;
|
||||
|
@ -467,11 +467,11 @@ SetWorker (
|
|||
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable :
|
||||
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;
|
||||
|
||||
InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);
|
||||
|
||||
TokenNumber = IsPeiDb ? TokenNumber
|
||||
: TokenNumber - PEI_LOCAL_TOKEN_NUMBER;
|
||||
|
||||
InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);
|
||||
|
||||
return SetWorkerByLocalTokenNumber (LocalTokenNumberTable[TokenNumber], Data, Size, PtrType, IsPeiDb);
|
||||
|
||||
}
|
||||
|
@ -505,7 +505,7 @@ ExGetWorker (
|
|||
|
||||
EFI_STATUS
|
||||
ExSetWorker (
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
IN CONST EFI_GUID *Guid,
|
||||
VOID *Data,
|
||||
UINTN SetSize,
|
||||
|
@ -683,7 +683,7 @@ SetHiiVariable (
|
|||
VOID
|
||||
GetExPcdTokenAttributes (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
||||
)
|
||||
{
|
||||
|
@ -721,7 +721,7 @@ GetExPcdTokenAttributes (
|
|||
|
||||
ExAttr->IsPeiDb = FALSE;
|
||||
ExAttr->Size = SizeTable[i + DXE_NEX_TOKEN_NUMBER];
|
||||
ExAttr->TokenNumber = i + DXE_NEX_TOKEN_NUMBER;
|
||||
ExAttr->TokenNumber = i + PEI_LOCAL_TOKEN_NUMBER;
|
||||
ExAttr->LocalTokenNumberAlias = ExMap[i].LocalTokenNumber;
|
||||
return;
|
||||
|
||||
|
|
|
@ -46,16 +46,16 @@ typedef struct {
|
|||
|
||||
EFI_STATUS
|
||||
SetWorker (
|
||||
UINTN TokenNumber,
|
||||
VOID *Data,
|
||||
UINTN Size,
|
||||
BOOLEAN PtrType
|
||||
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||
IN VOID *Data,
|
||||
IN UINTN Size,
|
||||
IN BOOLEAN PtrType
|
||||
)
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
ExSetWorker (
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
IN CONST EFI_GUID *Guid,
|
||||
VOID *Data,
|
||||
UINTN Size,
|
||||
|
@ -66,14 +66,14 @@ ExSetWorker (
|
|||
|
||||
VOID *
|
||||
GetWorker (
|
||||
UINTN TokenNumber
|
||||
PCD_TOKEN_NUMBER TokenNumber
|
||||
)
|
||||
;
|
||||
|
||||
VOID *
|
||||
ExGetWorker (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
IN UINTN GetSize
|
||||
)
|
||||
;
|
||||
|
@ -90,21 +90,21 @@ EFI_STATUS
|
|||
GetHiiVariable (
|
||||
IN EFI_GUID *VariableGuid,
|
||||
IN UINT16 *VariableName,
|
||||
OUT VOID ** VariableData,
|
||||
OUT VOID **VariableData,
|
||||
OUT UINTN *VariableSize
|
||||
)
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
DxeRegisterCallBackWorker (
|
||||
IN UINTN TokenNumber,
|
||||
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||
IN PCD_PROTOCOL_CALLBACK CallBackFunction
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
DxeUnRegisterCallBackWorker (
|
||||
IN UINTN TokenNumber,
|
||||
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||
IN PCD_PROTOCOL_CALLBACK CallBackFunction
|
||||
);
|
||||
|
@ -125,7 +125,7 @@ typedef struct {
|
|||
VOID
|
||||
GetExPcdTokenAttributes (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
||||
)
|
||||
;
|
||||
|
|
|
@ -500,13 +500,13 @@ PeiPcdGetNextToken (
|
|||
(*TokenNumber)++;
|
||||
|
||||
if (*TokenNumber >= PEI_NEX_TOKEN_NUMBER) {
|
||||
*TokenNumber = 0;
|
||||
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if (PEI_EXMAP_TABLE_EMPTY) {
|
||||
*TokenNumber = (UINTN) PCD_INVALID_TOKEN_NUMBER;
|
||||
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
|
|
@ -62,10 +62,12 @@ PeiRegisterCallBackWorker (
|
|||
ASSERT (GuidHob != NULL);
|
||||
|
||||
CallbackTable = GET_GUID_HOB_DATA (GuidHob);
|
||||
CallbackTable = CallbackTable + (TokenNumber * FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry));
|
||||
|
||||
Compare = Register? NULL: CallBackFunction;
|
||||
Assign = Register? CallBackFunction: NULL;
|
||||
|
||||
|
||||
for (Idx = 0; Idx < FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {
|
||||
if (CallbackTable[Idx] == Compare) {
|
||||
CallbackTable[Idx] = Assign;
|
||||
|
|
|
@ -42,43 +42,43 @@ GetPcdDatabase (
|
|||
|
||||
EFI_STATUS
|
||||
SetWorker (
|
||||
IN UINTN TokenNumber,
|
||||
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||
IN VOID *Data,
|
||||
IN UINTN Size,
|
||||
IN BOOLEAN PtrType
|
||||
)
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
SetWorkerByLocalTokenNumber (
|
||||
IN UINT32 LocalTokenNumber,
|
||||
IN VOID *Data,
|
||||
IN UINTN Size,
|
||||
IN BOOLEAN PtrType
|
||||
)
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
SetWorkerByLocalTokenNumber (
|
||||
UINT32 LocalTokenNumber,
|
||||
VOID *Data,
|
||||
UINTN Size,
|
||||
BOOLEAN PtrType
|
||||
)
|
||||
;
|
||||
|
||||
EFI_STATUS
|
||||
ExSetWorker (
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
IN CONST EFI_GUID *Guid,
|
||||
VOID *Data,
|
||||
UINTN Size,
|
||||
BOOLEAN PtrType
|
||||
IN VOID *Data,
|
||||
IN UINTN Size,
|
||||
IN BOOLEAN PtrType
|
||||
)
|
||||
;
|
||||
|
||||
VOID *
|
||||
GetWorker (
|
||||
UINTN TokenNumber,
|
||||
UINTN GetSize
|
||||
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||
IN UINTN GetSize
|
||||
)
|
||||
;
|
||||
|
||||
VOID *
|
||||
ExGetWorker (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
IN UINTN GetSize
|
||||
)
|
||||
;
|
||||
|
@ -92,19 +92,25 @@ typedef struct {
|
|||
VOID
|
||||
GetExPcdTokenAttributes (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINT32 ExTokenNumber,
|
||||
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
||||
)
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
EFI_STATUS
|
||||
PeiRegisterCallBackWorker (
|
||||
IN UINTN TokenNumber,
|
||||
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||
IN CONST GUID *Guid, OPTIONAL
|
||||
IN PCD_PPI_CALLBACK CallBackFunction,
|
||||
IN BOOLEAN Register
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
VOID
|
||||
BuildPcdDatabase (
|
||||
VOID
|
||||
|
|
|
@ -23,9 +23,10 @@ CONST GUID Guid1 = GUID1;
|
|||
EFI_STATUS
|
||||
EFIAPI
|
||||
OnsetCallback1 (
|
||||
IN UINT32 CallBackToken,
|
||||
IN VOID *TokenData,
|
||||
IN UINTN TokenDataSize
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINT32 CallBackToken,
|
||||
IN VOID *TokenData,
|
||||
IN UINTN TokenDataSize
|
||||
)
|
||||
{
|
||||
DebugPrint (0x80000000, "In CallbackOnSet %x %d\n", * ((UINT32 *)TokenData), TokenDataSize);
|
||||
|
@ -42,6 +43,10 @@ DoTest(
|
|||
UINT16 u16;
|
||||
UINT32 u32;
|
||||
UINT64 u64;
|
||||
PCD_TOKEN_NUMBER Token;
|
||||
|
||||
|
||||
LibPcdCallbackOnSet (NULL, PcdToken(PcdTestDynamicUint32), OnsetCallback1);
|
||||
|
||||
u32 = 0xafafafaf;
|
||||
PcdSet32(PcdTestDynamicUint32, u32);
|
||||
|
@ -57,6 +62,15 @@ DoTest(
|
|||
ASSERT (u16 == 0x1234);
|
||||
ASSERT (u64 == PcdGet64(PcdTestDynamicUint64));
|
||||
ASSERT (u32 == PcdGet32(PcdTestDynamicUint32));
|
||||
|
||||
|
||||
Token = PCD_INVALID_TOKEN_NUMBER;
|
||||
|
||||
do {
|
||||
Token = LibPcdGetNextToken (NULL, Token);
|
||||
DebugPrint (EFI_D_ERROR, "Next Token Number is %d\n", Token);
|
||||
} while (Token != PCD_INVALID_TOKEN_NUMBER);
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue