/** @file Interface definition for GopPolicy Protocol. Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _GOP_POLICY_PROTOCOL_H_ #define _GOP_POLICY_PROTOCOL_H_ #define GOP_POLICY_PROTOCOL_REVISION_01 0x01 #define GOP_POLICY_PROTOCOL_REVISION_03 0x03 typedef enum { LidClosed, LidOpen, LidStatusMax } LID_STATUS; typedef enum { Docked, UnDocked, DockStatusMax } DOCK_STATUS; /// /// Function to retrieve LID status /// typedef EFI_STATUS (EFIAPI *GET_PLATFORM_LID_STATUS) ( OUT LID_STATUS * CurrentLidStatus ); /// /// Function to retrieve Dock status /// typedef EFI_STATUS (EFIAPI *GET_PLATFORM_DOCK_STATUS) ( OUT DOCK_STATUS CurrentDockStatus ); /// /// Function to retrieve VBT table address and size /// typedef EFI_STATUS (EFIAPI *GET_VBT_DATA) ( OUT EFI_PHYSICAL_ADDRESS * VbtAddress, OUT UINT32 *VbtSize ); /** System Agent Graphics Output Protocol (GOP) - Policy Protocol\n Graphics Output Protocol (GOP) is a UEFI API replacing legacy Video ROMs for EFI boot\n When GOP Driver is used this protocol can be consumed by GOP driver or platform code for GOP relevant initialization\n All functions in this protocol should be initialized by platform code basing on platform implementation\n **/ typedef struct { UINT32 Revision; ///< Protocol revision GET_PLATFORM_LID_STATUS GetPlatformLidStatus; ///< Protocol function to get Lid Status. Platform code should provide this function basing on design. GET_VBT_DATA GetVbtData; ///< Protocol function to get Vbt Data address and size. Platform code should provide this function basing on design. GET_PLATFORM_DOCK_STATUS GetPlatformDockStatus; ///< Function pointer for get platform dock status. EFI_GUID GopOverrideGuid; ///< A GUID provided by BIOS in case GOP is to be overridden. } GOP_POLICY_PROTOCOL; extern EFI_GUID gGopPolicyProtocolGuid; extern EFI_GUID gGen12PolicyProtocolGuid; extern EFI_GUID gGen9PolicyProtocolGuid; extern EFI_GUID gIntelGraphicsVbtGuid; #endif