]> git.proxmox.com Git - mirror_edk2.git/blob - EdkModulePkg/Universal/PCD/Test/PcdTest.c
6f2a5f1f1f4122a7566b3fdfeb8714879f6dfcc0
[mirror_edk2.git] / EdkModulePkg / Universal / PCD / Test / PcdTest.c
1 /** @file
2 PCD TEST PEIM
3
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13
14 Module Name: PcdTest.c
15
16 **/
17 #define GUID1 \
18 {0xF9349C58, 0xB767, 0x42c8, 0xB3, 0x6B, 0x41, 0x25, 0xDE, 0x3A, 0xEF, 0xEB}
19
20 CONST GUID Guid1 = GUID1;
21
22
23 EFI_STATUS
24 EFIAPI
25 OnsetCallback1 (
26 IN CONST EFI_GUID *Guid,
27 IN UINT32 CallBackToken,
28 IN VOID *TokenData,
29 IN UINTN TokenDataSize
30 )
31 {
32 DebugPrint (0x80000000, "In CallbackOnSet %x %d\n", * ((UINT32 *)TokenData), TokenDataSize);
33 return EFI_SUCCESS;
34 }
35
36
37 VOID
38 DoTest(
39 VOID
40 )
41 {
42 UINT8 u8;
43 UINT16 u16;
44 UINT32 u32;
45 UINT64 u64;
46 PCD_TOKEN_NUMBER Token;
47
48
49 LibPcdCallbackOnSet (NULL, PcdToken(PcdTestDynamicUint32), OnsetCallback1);
50
51 u32 = 0xafafafaf;
52 PcdSet32(PcdTestDynamicUint32, u32);
53
54 u64 = 0xafafafaf00000000;
55 PcdSet64(PcdTestDynamicUint64, u64);
56
57 u8 = PcdGet8(PcdTestDynamicUint8);
58 u16 = PcdGet16(PcdTestDynamicUint16);
59
60
61 ASSERT (u8 == 0x01);
62 ASSERT (u16 == 0x1234);
63 ASSERT (u64 == PcdGet64(PcdTestDynamicUint64));
64 ASSERT (u32 == PcdGet32(PcdTestDynamicUint32));
65
66
67 Token = PCD_INVALID_TOKEN_NUMBER;
68
69 do {
70 Token = LibPcdGetNextToken (NULL, Token);
71 DebugPrint (EFI_D_ERROR, "Next Token Number is %d\n", Token);
72 } while (Token != PCD_INVALID_TOKEN_NUMBER);
73
74
75 return;
76 }
77
78 EFI_STATUS
79 EFIAPI
80 PcdTestPeimInit (
81 IN EFI_FFS_FILE_HEADER *FfsHeader,
82 IN EFI_PEI_SERVICES **PeiServices
83 )
84 {
85
86 DoTest();
87
88 return EFI_SUCCESS;
89 }
90