TianoCore EDK2 master
Loading...
Searching...
No Matches
RedfishPlatformConfigDxe.h
Go to the documentation of this file.
1
12#ifndef EDKII_REDFISH_PLATFORM_CONFIG_DXE_H_
13#define EDKII_REDFISH_PLATFORM_CONFIG_DXE_H_
14
15#include <Uefi.h>
16
17//
18// Libraries
19//
20#include <Library/BaseLib.h>
22#include <Library/DebugLib.h>
24#include <Library/PcdLib.h>
25#include <Library/PrintLib.h>
27#include <Library/UefiLib.h>
30
31//
32// Protocols
33//
35#include <Protocol/HiiString.h>
37
38//
39// Produced Protocol
40//
42
43//
44// Debug message in DEBUG_REDFISH_COMPONENT_PLATFORM_CONFIG_DXE scope.
45// To enable the debug message for this module, below PCDs must be set.
46//
47// 1. DEBUG_MANAGEABILITY must be set PcdDebugPrintErrorLevel.
48//
49// 2 RedfishPlatformConfigDxe debug enablement must be set in
50// PcdRedfishDebugCategory (defined in RedfishPkg.dec)
51//
52// 3. The subordinate debug enablement for RedfishPlatformConfigDxe
53// must be set in PcdRedfishPlatformConfigDebugProperty (defined
54// in RedfishPkg.dec).
55//
56#define DEBUG_REDFISH_THIS_MODULE(DebugSubordinate, ...) \
57 while (RedfishPlatformConfigDebugProp (DebugSubordinate)) { \
58 DEBUG_REDFISH(DEBUG_REDFISH_COMPONENT_PLATFORM_CONFIG_DXE, ##__VA_ARGS__); \
59 break; \
60 }
61
62#define DEBUG_REDFISH_THIS_MODULE_CODE_BEGIN(DebugSubordinate) \
63 if (RedfishPlatformConfigDebugProp (DebugSubordinate)) {
64
65#define DEBUG_REDFISH_THIS_MODULE_CODE_END() }
66
67#define DEBUG_REDFISH_THIS_MODULE_CODE(DebugSubordinate, Expression) \
68 DEBUG_REDFISH_THIS_MODULE_CODE_BEGIN(DebugSubordinate) \
69 Expression \
70 DEBUG_REDFISH_THIS_MODULE_CODE_END()
71
72// Subordinate debug property for DEBUG_REDFISH_PLATFORM_CONFIG_DXE
73#define REDFISH_PLATFORM_CONFIG_DEBUG_STRING_DATABASE 0x00000001
74#define REDFISH_PLATFORM_CONFIG_DEBUG_DUMP_FORMSET 0x00000002
75#define REDFISH_PLATFORM_CONFIG_DEBUG_CONFIG_LANG_SEARCH 0x00000004
76#define REDFISH_PLATFORM_CONFIG_DEBUG_CONFIG_LANG_REGEX 0x00000008
77
81typedef struct {
85
89typedef struct {
94 REDFISH_PLATFORM_CONFIG_NOTIFY HiiStringNotify;
102
106typedef struct {
107 VOID **Pool;
108 UINTN Size;
109 UINTN Index;
111
112#define REDFISH_PLATFORM_CONFIG_PRIVATE_FROM_THIS(a) BASE_CR (a, REDFISH_PLATFORM_CONFIG_PRIVATE, Protocol)
113#define REGULAR_EXPRESSION_INCLUDE_ALL L".*"
114#define CONFIGURE_LANGUAGE_PREFIX "x-UEFI-redfish-"
115#define REDFISH_MENU_PATH_SIZE 8
116
117// Definitions of Redfish platform config capability
118#define REDFISH_PLATFORM_CONFIG_BUILD_MENU_PATH 0x000000001
119#define REDFISH_PLATFORM_CONFIG_ALLOW_SUPPRESSED 0x000000002
120
130CHAR8 *
132 IN EFI_STRING UnicodeString
133 );
134
135#endif
UINT64 UINTN
#define IN
Definition: Base.h:279
CHAR8 * StrToAsciiStr(IN EFI_STRING UnicodeString)
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
EFI_EVENT ProtocolEvent
Protocol notification event.
VOID * Registration
Protocol notification registration.
EFI_HANDLE NotifyHandle
The notify handle.
EFI_REGULAR_EXPRESSION_PROTOCOL * RegularExpressionProtocol
Regular Expression Protocol.
EFI_HII_DATABASE_PROTOCOL * HiiDatabase
The HII database protocol.
LIST_ENTRY FormsetList
The list to keep cached HII formset.
LIST_ENTRY PendingList
The list to keep updated HII handle.
EFI_HII_STRING_PROTOCOL * HiiString
HII String Protocol.
EFI_HANDLE ImageHandle
Driver image handle.