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:
@ -444,7 +444,7 @@ InvokeCallbackOnSet (
|
|||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SetWorker (
|
SetWorker (
|
||||||
UINTN TokenNumber,
|
PCD_TOKEN_NUMBER TokenNumber,
|
||||||
VOID *Data,
|
VOID *Data,
|
||||||
UINTN Size,
|
UINTN Size,
|
||||||
BOOLEAN PtrType
|
BOOLEAN PtrType
|
||||||
@ -467,11 +467,11 @@ SetWorker (
|
|||||||
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable :
|
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable :
|
||||||
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;
|
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;
|
||||||
|
|
||||||
|
InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);
|
||||||
|
|
||||||
TokenNumber = IsPeiDb ? TokenNumber
|
TokenNumber = IsPeiDb ? TokenNumber
|
||||||
: TokenNumber - PEI_LOCAL_TOKEN_NUMBER;
|
: TokenNumber - PEI_LOCAL_TOKEN_NUMBER;
|
||||||
|
|
||||||
InvokeCallbackOnSet (0, NULL, TokenNumber, Data, Size);
|
|
||||||
|
|
||||||
return SetWorkerByLocalTokenNumber (LocalTokenNumberTable[TokenNumber], Data, Size, PtrType, IsPeiDb);
|
return SetWorkerByLocalTokenNumber (LocalTokenNumberTable[TokenNumber], Data, Size, PtrType, IsPeiDb);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -505,7 +505,7 @@ ExGetWorker (
|
|||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ExSetWorker (
|
ExSetWorker (
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
VOID *Data,
|
VOID *Data,
|
||||||
UINTN SetSize,
|
UINTN SetSize,
|
||||||
@ -683,7 +683,7 @@ SetHiiVariable (
|
|||||||
VOID
|
VOID
|
||||||
GetExPcdTokenAttributes (
|
GetExPcdTokenAttributes (
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -721,7 +721,7 @@ GetExPcdTokenAttributes (
|
|||||||
|
|
||||||
ExAttr->IsPeiDb = FALSE;
|
ExAttr->IsPeiDb = FALSE;
|
||||||
ExAttr->Size = SizeTable[i + DXE_NEX_TOKEN_NUMBER];
|
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;
|
ExAttr->LocalTokenNumberAlias = ExMap[i].LocalTokenNumber;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -46,16 +46,16 @@ typedef struct {
|
|||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SetWorker (
|
SetWorker (
|
||||||
UINTN TokenNumber,
|
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||||
VOID *Data,
|
IN VOID *Data,
|
||||||
UINTN Size,
|
IN UINTN Size,
|
||||||
BOOLEAN PtrType
|
IN BOOLEAN PtrType
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ExSetWorker (
|
ExSetWorker (
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
VOID *Data,
|
VOID *Data,
|
||||||
UINTN Size,
|
UINTN Size,
|
||||||
@ -66,14 +66,14 @@ ExSetWorker (
|
|||||||
|
|
||||||
VOID *
|
VOID *
|
||||||
GetWorker (
|
GetWorker (
|
||||||
UINTN TokenNumber
|
PCD_TOKEN_NUMBER TokenNumber
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
VOID *
|
VOID *
|
||||||
ExGetWorker (
|
ExGetWorker (
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
IN UINTN ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
IN UINTN GetSize
|
IN UINTN GetSize
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
@ -90,21 +90,21 @@ EFI_STATUS
|
|||||||
GetHiiVariable (
|
GetHiiVariable (
|
||||||
IN EFI_GUID *VariableGuid,
|
IN EFI_GUID *VariableGuid,
|
||||||
IN UINT16 *VariableName,
|
IN UINT16 *VariableName,
|
||||||
OUT VOID ** VariableData,
|
OUT VOID **VariableData,
|
||||||
OUT UINTN *VariableSize
|
OUT UINTN *VariableSize
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
DxeRegisterCallBackWorker (
|
DxeRegisterCallBackWorker (
|
||||||
IN UINTN TokenNumber,
|
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||||
IN PCD_PROTOCOL_CALLBACK CallBackFunction
|
IN PCD_PROTOCOL_CALLBACK CallBackFunction
|
||||||
);
|
);
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
DxeUnRegisterCallBackWorker (
|
DxeUnRegisterCallBackWorker (
|
||||||
IN UINTN TokenNumber,
|
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||||
IN PCD_PROTOCOL_CALLBACK CallBackFunction
|
IN PCD_PROTOCOL_CALLBACK CallBackFunction
|
||||||
);
|
);
|
||||||
@ -125,7 +125,7 @@ typedef struct {
|
|||||||
VOID
|
VOID
|
||||||
GetExPcdTokenAttributes (
|
GetExPcdTokenAttributes (
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
@ -500,13 +500,13 @@ PeiPcdGetNextToken (
|
|||||||
(*TokenNumber)++;
|
(*TokenNumber)++;
|
||||||
|
|
||||||
if (*TokenNumber >= PEI_NEX_TOKEN_NUMBER) {
|
if (*TokenNumber >= PEI_NEX_TOKEN_NUMBER) {
|
||||||
*TokenNumber = 0;
|
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (PEI_EXMAP_TABLE_EMPTY) {
|
if (PEI_EXMAP_TABLE_EMPTY) {
|
||||||
*TokenNumber = (UINTN) PCD_INVALID_TOKEN_NUMBER;
|
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,10 +62,12 @@ PeiRegisterCallBackWorker (
|
|||||||
ASSERT (GuidHob != NULL);
|
ASSERT (GuidHob != NULL);
|
||||||
|
|
||||||
CallbackTable = GET_GUID_HOB_DATA (GuidHob);
|
CallbackTable = GET_GUID_HOB_DATA (GuidHob);
|
||||||
|
CallbackTable = CallbackTable + (TokenNumber * FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry));
|
||||||
|
|
||||||
Compare = Register? NULL: CallBackFunction;
|
Compare = Register? NULL: CallBackFunction;
|
||||||
Assign = Register? CallBackFunction: NULL;
|
Assign = Register? CallBackFunction: NULL;
|
||||||
|
|
||||||
|
|
||||||
for (Idx = 0; Idx < FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {
|
for (Idx = 0; Idx < FixedPcdGet32(PcdMaxPeiPcdCallBackNumberPerPcdEntry); Idx++) {
|
||||||
if (CallbackTable[Idx] == Compare) {
|
if (CallbackTable[Idx] == Compare) {
|
||||||
CallbackTable[Idx] = Assign;
|
CallbackTable[Idx] = Assign;
|
||||||
|
@ -42,7 +42,7 @@ GetPcdDatabase (
|
|||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SetWorker (
|
SetWorker (
|
||||||
IN UINTN TokenNumber,
|
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||||
IN VOID *Data,
|
IN VOID *Data,
|
||||||
IN UINTN Size,
|
IN UINTN Size,
|
||||||
IN BOOLEAN PtrType
|
IN BOOLEAN PtrType
|
||||||
@ -51,34 +51,34 @@ SetWorker (
|
|||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SetWorkerByLocalTokenNumber (
|
SetWorkerByLocalTokenNumber (
|
||||||
UINT32 LocalTokenNumber,
|
IN UINT32 LocalTokenNumber,
|
||||||
VOID *Data,
|
IN VOID *Data,
|
||||||
UINTN Size,
|
IN UINTN Size,
|
||||||
BOOLEAN PtrType
|
IN BOOLEAN PtrType
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ExSetWorker (
|
ExSetWorker (
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
VOID *Data,
|
IN VOID *Data,
|
||||||
UINTN Size,
|
IN UINTN Size,
|
||||||
BOOLEAN PtrType
|
IN BOOLEAN PtrType
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
VOID *
|
VOID *
|
||||||
GetWorker (
|
GetWorker (
|
||||||
UINTN TokenNumber,
|
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||||
UINTN GetSize
|
IN UINTN GetSize
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
VOID *
|
VOID *
|
||||||
ExGetWorker (
|
ExGetWorker (
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
IN UINTN GetSize
|
IN UINTN GetSize
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
@ -92,19 +92,25 @@ typedef struct {
|
|||||||
VOID
|
VOID
|
||||||
GetExPcdTokenAttributes (
|
GetExPcdTokenAttributes (
|
||||||
IN CONST EFI_GUID *Guid,
|
IN CONST EFI_GUID *Guid,
|
||||||
IN UINT32 ExTokenNumber,
|
IN PCD_TOKEN_NUMBER ExTokenNumber,
|
||||||
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
OUT EX_PCD_ENTRY_ATTRIBUTE *ExAttr
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
PeiRegisterCallBackWorker (
|
PeiRegisterCallBackWorker (
|
||||||
IN UINTN TokenNumber,
|
IN PCD_TOKEN_NUMBER TokenNumber,
|
||||||
IN CONST GUID *Guid, OPTIONAL
|
IN CONST GUID *Guid, OPTIONAL
|
||||||
IN PCD_PPI_CALLBACK CallBackFunction,
|
IN PCD_PPI_CALLBACK CallBackFunction,
|
||||||
IN BOOLEAN Register
|
IN BOOLEAN Register
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
BuildPcdDatabase (
|
BuildPcdDatabase (
|
||||||
VOID
|
VOID
|
||||||
|
@ -23,6 +23,7 @@ CONST GUID Guid1 = GUID1;
|
|||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
OnsetCallback1 (
|
OnsetCallback1 (
|
||||||
|
IN CONST EFI_GUID *Guid,
|
||||||
IN UINT32 CallBackToken,
|
IN UINT32 CallBackToken,
|
||||||
IN VOID *TokenData,
|
IN VOID *TokenData,
|
||||||
IN UINTN TokenDataSize
|
IN UINTN TokenDataSize
|
||||||
@ -42,6 +43,10 @@ DoTest(
|
|||||||
UINT16 u16;
|
UINT16 u16;
|
||||||
UINT32 u32;
|
UINT32 u32;
|
||||||
UINT64 u64;
|
UINT64 u64;
|
||||||
|
PCD_TOKEN_NUMBER Token;
|
||||||
|
|
||||||
|
|
||||||
|
LibPcdCallbackOnSet (NULL, PcdToken(PcdTestDynamicUint32), OnsetCallback1);
|
||||||
|
|
||||||
u32 = 0xafafafaf;
|
u32 = 0xafafafaf;
|
||||||
PcdSet32(PcdTestDynamicUint32, u32);
|
PcdSet32(PcdTestDynamicUint32, u32);
|
||||||
@ -58,6 +63,15 @@ DoTest(
|
|||||||
ASSERT (u64 == PcdGet64(PcdTestDynamicUint64));
|
ASSERT (u64 == PcdGet64(PcdTestDynamicUint64));
|
||||||
ASSERT (u32 == PcdGet32(PcdTestDynamicUint32));
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user