Home | History | Annotate | Download | only in Ppi
      1 /** @file
      2   This file declares Graphics PPI.
      3   This PPI is the main interface exposed by the Graphics PEIM to be used by the
      4   other firmware modules.
      5 
      6   Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
      7   This program and the accompanying materials
      8   are licensed and made available under the terms and conditions of the BSD License
      9   which accompanies this distribution. The full text of the license may be found at
     10   http://opensource.org/licenses/bsd-license.php
     11 
     12   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     13   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 
     15   @par Revision Reference:
     16   This PPI is introduced in PI Version 1.4.
     17 
     18 **/
     19 
     20 #ifndef __PEI_GRAPHICS_PPI_H__
     21 #define __PEI_GRAPHICS_PPI_H__
     22 
     23 #include <Protocol/GraphicsOutput.h>
     24 
     25 #define EFI_PEI_GRAPHICS_PPI_GUID \
     26   { \
     27     0x6ecd1463, 0x4a4a, 0x461b, { 0xaf, 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, 0x2b } \
     28   }
     29 
     30 typedef struct _EFI_PEI_GRAPHICS_PPI EFI_PEI_GRAPHICS_PPI;
     31 
     32 /**
     33   The GraphicsPpiInit initializes the graphics subsystem in phases.
     34 
     35   @param[in] GraphicsPolicyPtr    GraphicsPolicyPtr points to a configuration data
     36                                   block of policy settings required by Graphics PEIM.
     37 
     38   @retval EFI_SUCCESS             The invocation was successful.
     39   @retval EFI_INVALID_PARAMETER   The phase parameter is not valid.
     40   @retval EFI_NOT_ABORTED         The stages was not called in the proper order.
     41   @retval EFI_NOT_FOUND           The PeiGraphicsPlatformPolicyPpi is not located.
     42   @retval EFI_DEVICE_ERROR        The initialization failed due to device error.
     43   @retval EFI_NOT_READY           The previous init stage is still in progress and not
     44                                   ready for the current initialization phase yet. The
     45                                   platform code should call this again sometime later.
     46 **/
     47 typedef
     48 EFI_STATUS
     49 (EFIAPI *EFI_PEI_GRAPHICS_INIT) (
     50   IN VOID                            *GraphicsPolicyPtr
     51   );
     52 
     53 /**
     54   The GraphicsPpiGetMode returns the mode information supported by the Graphics PEI
     55   Module.
     56 
     57   @param[in, out] Mode            Pointer to EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE data.
     58 
     59   @retval EFI_SUCCESS             Valid mode information was returned.
     60   @retval EFI_INVALID_PARAMETER   The Mode parameter is not valid.
     61   @retval EFI_DEVICE_ERROR        A hardware error occurred trying to retrieve the video
     62                                   mode.
     63   @retval EFI_NOT_READY           The Graphics Initialization is not competed and Mode
     64                                   information is not yet available.The platform code
     65                                   should call this again after the Graphics
     66                                   initialization is done.
     67 **/
     68 typedef
     69 EFI_STATUS
     70 (EFIAPI *EFI_PEI_GRAPHICS_GET_MODE) (
     71   IN OUT EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE  *Mode
     72   );
     73 
     74 ///
     75 /// This PPI is the main interface exposed by the Graphics PEIM to be used by the other
     76 /// firmware modules.
     77 ///
     78 struct _EFI_PEI_GRAPHICS_PPI {
     79   EFI_PEI_GRAPHICS_INIT              GraphicsPpiInit;
     80   EFI_PEI_GRAPHICS_GET_MODE          GraphicsPpiGetMode;
     81 };
     82 
     83 extern EFI_GUID gEfiPeiGraphicsPpiGuid;
     84 
     85 #endif
     86