+/** @file\r
+ This file declares Graphics PPI.\r
+ This PPI is the main interface exposed by the Graphics PEIM to be used by the\r
+ other firmware modules.\r
+\r
+ Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ @par Revision Reference:\r
+ This PPI is introduced in PI Version 1.4.\r
+\r
+**/\r
+\r
+#ifndef __PEI_GRAPHICS_PPI_H__\r
+#define __PEI_GRAPHICS_PPI_H__\r
+\r
+#include <Protocol/GraphicsOutput.h>\r
+\r
+#define EFI_PEI_GRAPHICS_PPI_GUID \\r
+ { \\r
+ 0x6ecd1463, 0x4a4a, 0x461b, { 0xaf, 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, 0x2b } \\r
+ }\r
+\r
+typedef struct _EFI_PEI_GRAPHICS_PPI EFI_PEI_GRAPHICS_PPI;\r
+\r
+/**\r
+ The GraphicsPpiInit initializes the graphics subsystem in phases.\r
+\r
+ @param[in] GraphicsPolicyPtr GraphicsPolicyPtr points to a configuration data\r
+ block of policy settings required by Graphics PEIM.\r
+\r
+ @retval EFI_SUCCESS The invocation was successful.\r
+ @retval EFI_INVALID_PARAMETER The phase parameter is not valid.\r
+ @retval EFI_NOT_ABORTED The stages was not called in the proper order.\r
+ @retval EFI_NOT_FOUND The PeiGraphicsPlatformPolicyPpi is not located.\r
+ @retval EFI_DEVICE_ERROR The initialization failed due to device error.\r
+ @retval EFI_NOT_READY The previous init stage is still in progress and not\r
+ ready for the current initialization phase yet. The\r
+ platform code should call this again sometime later.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_GRAPHICS_INIT) (\r
+ IN VOID *GraphicsPolicyPtr\r
+ );\r
+\r
+/**\r
+ The GraphicsPpiGetMode returns the mode information supported by the Graphics PEI\r
+ Module.\r
+\r
+ @param[in, out] Mode Pointer to EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE data.\r
+\r
+ @retval EFI_SUCCESS Valid mode information was returned.\r
+ @retval EFI_INVALID_PARAMETER The Mode parameter is not valid.\r
+ @retval EFI_DEVICE_ERROR A hardware error occurred trying to retrieve the video\r
+ mode.\r
+ @retval EFI_NOT_READY The Graphics Initialization is not competed and Mode\r
+ information is not yet available.The platform code\r
+ should call this again after the Graphics\r
+ initialization is done.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_GRAPHICS_GET_MODE) (\r
+ IN OUT EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode\r
+ );\r
+\r
+///\r
+/// This PPI is the main interface exposed by the Graphics PEIM to be used by the other\r
+/// firmware modules.\r
+///\r
+struct _EFI_PEI_GRAPHICS_PPI {\r
+ EFI_PEI_GRAPHICS_INIT GraphicsPpiInit;\r
+ EFI_PEI_GRAPHICS_GET_MODE GraphicsPpiGetMode;\r
+};\r
+\r
+extern EFI_GUID gEfiPeiGraphicsPpiGuid;\r
+\r
+#endif\r