blob: e7e72e5e538613ea6de87f9e933a2291f7ff2a54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/** @file
Interface definition for GopPolicy Protocol.
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#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 gIntelGraphicsVbtGuid;
#endif
|