]> xenbits.xensource.com Git - ovmf.git/commitdiff
RedfishPkg: Helper library of EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL
authorNickle Wang <nicklew@nvidia.com>
Mon, 10 Apr 2023 13:18:42 +0000 (21:18 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 28 Apr 2023 12:21:38 +0000 (12:21 +0000)
This is the helper library for using
EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL.

Signed-off-by: Nickle Wang <nicklew@nvidia.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Nick Ramirez <nramirez@nvidia.com>
Reviewed-by: Abner Chang <abner.chang@amd.com>
Reviewed-by: Igor Kulchytskyy <igork @ami.com>
RedfishPkg/Include/Library/RedfishPlatformConfigLib.h [new file with mode: 0644]
RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigInternal.h [new file with mode: 0644]
RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigLib.c [new file with mode: 0644]
RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigLib.inf [new file with mode: 0644]
RedfishPkg/RedfishPkg.dec

diff --git a/RedfishPkg/Include/Library/RedfishPlatformConfigLib.h b/RedfishPkg/Include/Library/RedfishPlatformConfigLib.h
new file mode 100644 (file)
index 0000000..51a1861
--- /dev/null
@@ -0,0 +1,143 @@
+/** @file\r
+  Definitions of RedfishPlatformConfigLib\r
+\r
+  (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>\r
+  Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef REDFISH_PLATFORM_CONFIG_LIB_H_\r
+#define REDFISH_PLATFORM_CONFIG_LIB_H_\r
+\r
+#include <Protocol/EdkIIRedfishPlatformConfig.h>\r
+\r
+/**\r
+  Get Redfish value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[out]  Value               The returned value.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetValue (\r
+  IN     CHAR8                *Schema,\r
+  IN     CHAR8                *Version,\r
+  IN     EFI_STRING           ConfigureLang,\r
+  OUT    EDKII_REDFISH_VALUE  *Value\r
+  );\r
+\r
+/**\r
+  Set Redfish value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[in]   Value               The value to set.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigSetValue (\r
+  IN     CHAR8                *Schema,\r
+  IN     CHAR8                *Version,\r
+  IN     EFI_STRING           ConfigureLang,\r
+  IN     EDKII_REDFISH_VALUE  Value\r
+  );\r
+\r
+/**\r
+  Get the list of Configure Language from platform configuration by the given Schema and Pattern.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   Pattern             The target Configure Language pattern.\r
+  @param[out]  ConfigureLangList   The list of Configure Language.\r
+  @param[out]  Count               The number of Configure Language in ConfigureLangList.\r
+\r
+  @retval EFI_SUCCESS              ConfigureLangList is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetConfigureLang (\r
+  IN     CHAR8       *Schema,\r
+  IN     CHAR8       *Version,\r
+  IN     EFI_STRING  Pattern,\r
+  OUT    EFI_STRING  **ConfigureLangList,\r
+  OUT    UINTN       *Count\r
+  );\r
+\r
+/**\r
+  Get the list of supported Redfish schema from platform configuration.\r
+\r
+  @param[out]  SupportedSchema     The supported schema list which is separated by ';'.\r
+                                   For example: "x-uefi-redfish-Memory.v1_7_1;x-uefi-redfish-Boot.v1_0_1"\r
+                                   The SupportedSchema is allocated by the callee. It's caller's\r
+                                   responsibility to free this buffer using FreePool().\r
+\r
+  @retval EFI_SUCCESS              Schema is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+RedfishPlatformConfigGetSupportedSchema (\r
+  OUT    CHAR8  **SupportedSchema\r
+  );\r
+\r
+/**\r
+  Get Redfish attribute value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[out]  AttributeValue      The attribute value.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetAttribute (\r
+  IN     CHAR8                    *Schema,\r
+  IN     CHAR8                    *Version,\r
+  IN     EFI_STRING               ConfigureLang,\r
+  OUT    EDKII_REDFISH_ATTRIBUTE  *AttributeValue\r
+  );\r
+\r
+/**\r
+  Get Redfish default value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[in]   DefaultClass        The UEFI defined default class.\r
+                                   Please refer to UEFI spec. 33.2.5.8 "defaults" for details.\r
+  @param[out]  Value               The returned value.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetDefaultValue (\r
+  IN     CHAR8                *Schema,\r
+  IN     CHAR8                *Version,\r
+  IN     EFI_STRING           ConfigureLang,\r
+  IN     UINT16               DefaultClass,\r
+  OUT    EDKII_REDFISH_VALUE  *Value\r
+  );\r
+\r
+#endif\r
diff --git a/RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigInternal.h b/RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigInternal.h
new file mode 100644 (file)
index 0000000..061e7f4
--- /dev/null
@@ -0,0 +1,35 @@
+/** @file\r
+  Internal function header for Redfish Platform Config Library.\r
+\r
+  (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>\r
+  Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef REDFISH_PLATFORM_CONFIG_H_\r
+#define REDFISH_PLATFORM_CONFIG_H_\r
+\r
+#include <Uefi.h>\r
+\r
+#include <Library/BaseLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/RedfishPlatformConfigLib.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+\r
+#include <Protocol/EdkIIRedfishPlatformConfig.h>\r
+\r
+///\r
+/// Definition of REDFISH_PLATFORM_CONFIG_LIB_PRIVATE\r
+///\r
+typedef struct {\r
+  EFI_EVENT                                 ProtocolEvent; ///< Protocol notification event.\r
+  VOID                                      *Registration; ///< Protocol notification registration.\r
+  EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL    *Protocol;\r
+} REDFISH_PLATFORM_CONFIG_LIB_PRIVATE;\r
+\r
+#endif\r
diff --git a/RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigLib.c b/RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigLib.c
new file mode 100644 (file)
index 0000000..3500b6a
--- /dev/null
@@ -0,0 +1,310 @@
+/** @file\r
+  Wrapper function to support Redfish Platform Config protocol.\r
+\r
+  (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>\r
+  Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include "RedfishPlatformConfigInternal.h"\r
+\r
+REDFISH_PLATFORM_CONFIG_LIB_PRIVATE  mRedfishPlatformConfigLibPrivate;\r
+\r
+/**\r
+  Get Redfish value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[out]  Value               The returned value.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetValue (\r
+  IN     CHAR8                *Schema,\r
+  IN     CHAR8                *Version,\r
+  IN     EFI_STRING           ConfigureLang,\r
+  OUT    EDKII_REDFISH_VALUE  *Value\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.Protocol == NULL) {\r
+    return EFI_NOT_READY;\r
+  }\r
+\r
+  return mRedfishPlatformConfigLibPrivate.Protocol->GetValue (\r
+                                                      mRedfishPlatformConfigLibPrivate.Protocol,\r
+                                                      Schema,\r
+                                                      Version,\r
+                                                      ConfigureLang,\r
+                                                      Value\r
+                                                      );\r
+}\r
+\r
+/**\r
+  Get Redfish attribute value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[out]  AttributeValue      The attribute value.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetAttribute (\r
+  IN     CHAR8                    *Schema,\r
+  IN     CHAR8                    *Version,\r
+  IN     EFI_STRING               ConfigureLang,\r
+  OUT    EDKII_REDFISH_ATTRIBUTE  *AttributeValue\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.Protocol == NULL) {\r
+    return EFI_NOT_READY;\r
+  }\r
+\r
+  return mRedfishPlatformConfigLibPrivate.Protocol->GetAttribute (\r
+                                                      mRedfishPlatformConfigLibPrivate.Protocol,\r
+                                                      Schema,\r
+                                                      Version,\r
+                                                      ConfigureLang,\r
+                                                      AttributeValue\r
+                                                      );\r
+}\r
+\r
+/**\r
+  Get Redfish default value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[in]   DefaultClass        The UEFI defined default class.\r
+                                   Please refer to UEFI spec. 33.2.5.8 "defaults" for details.\r
+  @param[out]  Value               The returned value.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetDefaultValue (\r
+  IN     CHAR8                *Schema,\r
+  IN     CHAR8                *Version,\r
+  IN     EFI_STRING           ConfigureLang,\r
+  IN     UINT16               DefaultClass,\r
+  OUT    EDKII_REDFISH_VALUE  *Value\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.Protocol == NULL) {\r
+    return EFI_NOT_READY;\r
+  }\r
+\r
+  return mRedfishPlatformConfigLibPrivate.Protocol->GetDefaultValue (\r
+                                                      mRedfishPlatformConfigLibPrivate.Protocol,\r
+                                                      Schema,\r
+                                                      Version,\r
+                                                      ConfigureLang,\r
+                                                      DefaultClass,\r
+                                                      Value\r
+                                                      );\r
+}\r
+\r
+/**\r
+  Set Redfish value with the given Schema and Configure Language.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   ConfigureLang       The target value which match this configure Language.\r
+  @param[in]   Value               The value to set.\r
+\r
+  @retval EFI_SUCCESS              Value is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigSetValue (\r
+  IN     CHAR8                *Schema,\r
+  IN     CHAR8                *Version,\r
+  IN     EFI_STRING           ConfigureLang,\r
+  IN     EDKII_REDFISH_VALUE  Value\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.Protocol == NULL) {\r
+    return EFI_NOT_READY;\r
+  }\r
+\r
+  return mRedfishPlatformConfigLibPrivate.Protocol->SetValue (\r
+                                                      mRedfishPlatformConfigLibPrivate.Protocol,\r
+                                                      Schema,\r
+                                                      Version,\r
+                                                      ConfigureLang,\r
+                                                      Value\r
+                                                      );\r
+}\r
+\r
+/**\r
+  Get the list of Configure Language from platform configuration by the given Schema and Pattern.\r
+\r
+  @param[in]   Schema              The Redfish schema to query.\r
+  @param[in]   Version             The Redfish version to query.\r
+  @param[in]   Pattern             The target Configure Language pattern.\r
+  @param[out]  ConfigureLangList   The list of Configure Language.\r
+  @param[out]  Count               The number of Configure Language in ConfigureLangList.\r
+\r
+  @retval EFI_SUCCESS              ConfigureLangList is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+RedfishPlatformConfigGetConfigureLang (\r
+  IN     CHAR8       *Schema,\r
+  IN     CHAR8       *Version,\r
+  IN     EFI_STRING  Pattern,\r
+  OUT    EFI_STRING  **ConfigureLangList,\r
+  OUT    UINTN       *Count\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.Protocol == NULL) {\r
+    return EFI_NOT_READY;\r
+  }\r
+\r
+  return mRedfishPlatformConfigLibPrivate.Protocol->GetConfigureLang (\r
+                                                      mRedfishPlatformConfigLibPrivate.Protocol,\r
+                                                      Schema,\r
+                                                      Version,\r
+                                                      Pattern,\r
+                                                      ConfigureLangList,\r
+                                                      Count\r
+                                                      );\r
+}\r
+\r
+/**\r
+  Get the list of supported Redfish schema from platform configuration.\r
+\r
+  @param[out]  SupportedSchema     The supported schema list which is separated by ';'.\r
+                                   For example: "x-uefi-redfish-Memory.v1_7_1;x-uefi-redfish-Boot.v1_0_1"\r
+                                   The SupportedSchema is allocated by the callee. It's caller's\r
+                                   responsibility to free this buffer using FreePool().\r
+\r
+  @retval EFI_SUCCESS              Schema is returned successfully.\r
+  @retval EFI_NOT_READY            Redfish Platform Config protocol is not ready.\r
+  @retval Others                   Some error happened.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+RedfishPlatformConfigGetSupportedSchema (\r
+  OUT    CHAR8  **SupportedSchema\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.Protocol == NULL) {\r
+    return EFI_NOT_READY;\r
+  }\r
+\r
+  return mRedfishPlatformConfigLibPrivate.Protocol->GetSupportedSchema (\r
+                                                      mRedfishPlatformConfigLibPrivate.Protocol,\r
+                                                      SupportedSchema\r
+                                                      );\r
+}\r
+\r
+/**\r
+  This is a EFI_REDFISH_PLATFORM_CONFIG_PROTOCOL notification event handler.\r
+\r
+  Install HII package notification.\r
+\r
+  @param[in] Event    Event whose notification function is being invoked.\r
+  @param[in] Context  Pointer to the notification function's context.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+RedfishPlatformConfigProtocolInstalled (\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
+  )\r
+{\r
+  EFI_STATUS  Status;\r
+\r
+  //\r
+  // Locate EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL.\r
+  //\r
+  Status = gBS->LocateProtocol (\r
+                  &gEdkIIRedfishPlatformConfigProtocolGuid,\r
+                  NULL,\r
+                  (VOID **)&mRedfishPlatformConfigLibPrivate.Protocol\r
+                  );\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_ERROR, "%a: locate EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL failure: %r\n", __func__, Status));\r
+    return;\r
+  }\r
+\r
+  gBS->CloseEvent (Event);\r
+  mRedfishPlatformConfigLibPrivate.ProtocolEvent = NULL;\r
+}\r
+\r
+/**\r
+\r
+  Create protocol listener and wait for Redfish Platform Config protocol.\r
+\r
+  @param ImageHandle     The image handle.\r
+  @param SystemTable     The system table.\r
+\r
+  @retval  EFI_SUCCESS  Protocol listener is registered successfully.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+RedfishPlatformConfigLibConstructor (\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
+  )\r
+{\r
+  ZeroMem (&mRedfishPlatformConfigLibPrivate, sizeof (REDFISH_PLATFORM_CONFIG_LIB_PRIVATE));\r
+  mRedfishPlatformConfigLibPrivate.ProtocolEvent = EfiCreateProtocolNotifyEvent (\r
+                                                     &gEdkIIRedfishPlatformConfigProtocolGuid,\r
+                                                     TPL_CALLBACK,\r
+                                                     RedfishPlatformConfigProtocolInstalled,\r
+                                                     NULL,\r
+                                                     &mRedfishPlatformConfigLibPrivate.Registration\r
+                                                     );\r
+  if (mRedfishPlatformConfigLibPrivate.ProtocolEvent == NULL) {\r
+    DEBUG ((DEBUG_ERROR, "%a: failed to create protocol notify event\n", __func__));\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+/**\r
+  Unloads the application and its installed protocol.\r
+\r
+  @param ImageHandle       Handle that identifies the image to be unloaded.\r
+  @param  SystemTable      The system table.\r
+\r
+  @retval EFI_SUCCESS      The image has been unloaded.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+RedfishPlatformConfigLibDestructor (\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
+  )\r
+{\r
+  if (mRedfishPlatformConfigLibPrivate.ProtocolEvent != NULL) {\r
+    gBS->CloseEvent (mRedfishPlatformConfigLibPrivate.ProtocolEvent);\r
+    mRedfishPlatformConfigLibPrivate.ProtocolEvent = NULL;\r
+  }\r
+\r
+  mRedfishPlatformConfigLibPrivate.Protocol = NULL;\r
+\r
+  return EFI_SUCCESS;\r
+}\r
diff --git a/RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigLib.inf b/RedfishPkg/Library/RedfishPlatformConfigLib/RedfishPlatformConfigLib.inf
new file mode 100644 (file)
index 0000000..2258609
--- /dev/null
@@ -0,0 +1,41 @@
+##  @file\r
+#   Library for Redfish Platform Config Protocol\r
+#\r
+#   (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>\r
+#   SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+##\r
+\r
+[Defines]\r
+  INF_VERSION                    = 0x00010006\r
+  BASE_NAME                      = RedfishPlatformConfigLib\r
+  FILE_GUID                      = C920FD62-21AC-4638-B9F5-9612942290F6\r
+  MODULE_TYPE                    = DXE_DRIVER\r
+  VERSION_STRING                 = 1.0\r
+  LIBRARY_CLASS                  = RedfishPlatformConfigLib| DXE_DRIVER DXE_RUNTIME_DRIVER UEFI_APPLICATION UEFI_DRIVER\r
+  CONSTRUCTOR                    = RedfishPlatformConfigLibConstructor\r
+  DESTRUCTOR                     = RedfishPlatformConfigLibDestructor\r
+\r
+#\r
+#  VALID_ARCHITECTURES           = IA32 X64 EBC RISCV64\r
+#\r
+\r
+[Sources]\r
+  RedfishPlatformConfigLib.c\r
+  RedfishPlatformConfigInternal.h\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  MdeModulePkg/MdeModulePkg.dec\r
+  RedfishPkg/RedfishPkg.dec\r
+\r
+[LibraryClasses]\r
+  BaseLib\r
+  BaseMemoryLib\r
+  DebugLib\r
+  MemoryAllocationLib\r
+  UefiBootServicesTableLib\r
+  UefiLib\r
+\r
+[Protocols]\r
+  gEdkIIRedfishPlatformConfigProtocolGuid\r
index e2892ce9cec111f09929c1dc8a7120b8e359e1d3..cdb1528cedc9956db8c2215526aa9977140e7a02 100644 (file)
   #\r
   HiiUtilityLib|Include/Library/HiiUtilityLib.h\r
 \r
+  ##  @libraryclass  Provides the library functions to access Redfish Platform\r
+  #   Config protocol.\r
+  #\r
+  RedfishPlatformConfigLib|Include/Library/RedfishPlatformConfigLib.h\r
+\r
 [LibraryClasses.Common.Private]\r
   ##  @libraryclass  Provides the private C runtime library functions.\r
   #   CRT library is currently used by edk2 JsonLib (open source\r