1 /** @file
2   Define the variable data structures used for TCG2 physical presence.
3   The TPM2 request from firmware or OS is saved to variable. And it is
4   cleared after it is processed in the next boot cycle. The TPM2 response
5   is saved to variable.
6 
7 Copyright (c) 2015, Intel Corporation. All rights reserved. <BR>
8 This program and the accompanying materials
9 are licensed and made available under the terms and conditions of the BSD License
10 which accompanies this distribution.  The full text of the license may be found at
11 http://opensource.org/licenses/bsd-license.php
12 
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 
16 **/
17 
18 #ifndef __TCG2_PHYSICAL_PRESENCE_DATA_GUID_H__
19 #define __TCG2_PHYSICAL_PRESENCE_DATA_GUID_H__
20 
21 #define EFI_TCG2_PHYSICAL_PRESENCE_DATA_GUID \
22   { \
23     0xaeb9c5c1, 0x94f1, 0x4d02, { 0xbf, 0xd9, 0x46, 0x2, 0xdb, 0x2d, 0x3c, 0x54 } \
24   }
25 
26 #define TCG2_PHYSICAL_PRESENCE_VARIABLE  L"Tcg2PhysicalPresence"
27 
28 typedef struct {
29   UINT8   PPRequest;      ///< Physical Presence request command.
30   UINT32  PPRequestParameter; ///< Physical Presence request Parameter.
31   UINT8   LastPPRequest;
32   UINT32  PPResponse;
33 } EFI_TCG2_PHYSICAL_PRESENCE;
34 
35 //
36 // This variable is used to save TCG2 Management Flags and corresponding operations.
37 // It should be protected from malicious software (e.g. Set it as read-only variable).
38 //
39 #define TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE  L"Tcg2PhysicalPresenceFlags"
40 typedef struct {
41   UINT32  PPFlags;
42 } EFI_TCG2_PHYSICAL_PRESENCE_FLAGS;
43 
44 extern EFI_GUID  gEfiTcg2PhysicalPresenceGuid;
45 
46 #endif
47 
48