/** @file
  Hob guid for Information about the graphics mode.

  Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
  SPDX-License-Identifier: BSD-2-Clause-Patent

  @par Revision Reference:
  This HOB is introduced in in PI Version 1.4.

**/

#pragma once

#include <Protocol/GraphicsOutput.h>

#define EFI_PEI_GRAPHICS_INFO_HOB_GUID \
  { \
    0x39f62cce, 0x6825, 0x4669, { 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07 } \
  }

#define EFI_PEI_GRAPHICS_DEVICE_INFO_HOB_GUID \
  { \
    0xe5cb2ac9, 0xd35d, 0x4430, { 0x93, 0x6e, 0x1d, 0xe3, 0x32, 0x47, 0x8d, 0xe7 } \
  }

typedef struct {
  EFI_PHYSICAL_ADDRESS                    FrameBufferBase;
  UINT32                                  FrameBufferSize;
  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION    GraphicsMode;
} EFI_PEI_GRAPHICS_INFO_HOB;

typedef struct {
  UINT16    VendorId;                                       ///< Ignore if the value is 0xFFFF.
  UINT16    DeviceId;                                       ///< Ignore if the value is 0xFFFF.
  UINT16    SubsystemVendorId;                              ///< Ignore if the value is 0xFFFF.
  UINT16    SubsystemId;                                    ///< Ignore if the value is 0xFFFF.
  UINT8     RevisionId;                                     ///< Ignore if the value is 0xFF.
  UINT8     BarIndex;                                       ///< Ignore if the value is 0xFF.
} EFI_PEI_GRAPHICS_DEVICE_INFO_HOB;

extern EFI_GUID  gEfiGraphicsInfoHobGuid;
extern EFI_GUID  gEfiGraphicsDeviceInfoHobGuid;
