]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Library / XenPlatformLib / XenPlatformLib.c
CommitLineData
f496443e
AP
1/** @file\r
2 Get information about Xen\r
3\r
4 This library simply allow to find out if OVMF is running under Xen and\r
5 allow to get more information when it is the case.\r
6\r
7 Copyright (c) 2019, Citrix Systems, Inc.\r
8\r
9 SPDX-License-Identifier: BSD-2-Clause-Patent\r
10\r
11**/\r
12\r
13#include <PiDxe.h>\r
14#include <Library/HobLib.h>\r
15#include <Library/XenPlatformLib.h>\r
16\r
17/**\r
18 This function return a pointer to the XenInfo HOB.\r
19\r
20 @return XenInfo pointer or NULL if not available\r
21**/\r
22EFI_XEN_INFO *\r
23EFIAPI\r
24XenGetInfoHOB (\r
25 VOID\r
26 )\r
27{\r
ac0a286f
MK
28 EFI_HOB_GUID_TYPE *GuidHob;\r
29 STATIC BOOLEAN Cached = FALSE;\r
30 STATIC EFI_XEN_INFO *XenInfo;\r
054c3fe9
AP
31\r
32 //\r
33 // Return the cached result for the benefit of XenDetected that can be\r
34 // called many times.\r
35 //\r
36 if (Cached) {\r
37 return XenInfo;\r
38 }\r
f496443e
AP
39\r
40 GuidHob = GetFirstGuidHob (&gEfiXenInfoGuid);\r
41 if (GuidHob == NULL) {\r
054c3fe9
AP
42 XenInfo = NULL;\r
43 } else {\r
ac0a286f 44 XenInfo = (EFI_XEN_INFO *)GET_GUID_HOB_DATA (GuidHob);\r
f496443e 45 }\r
ac0a286f 46\r
054c3fe9
AP
47 Cached = TRUE;\r
48 return XenInfo;\r
f496443e
AP
49}\r
50\r
51/**\r
52 This function detects if OVMF is running on Xen.\r
53\r
54 @retval TRUE OVMF is running on Xen\r
55 @retval FALSE Xen has not been detected\r
56**/\r
57BOOLEAN\r
58EFIAPI\r
59XenDetected (\r
60 VOID\r
61 )\r
62{\r
63 return (XenGetInfoHOB () != NULL);\r
64}\r
65\r
66/**\r
67 This function detect if OVMF have started via the PVH entry point.\r
68\r
69 @retval TRUE PVH entry point as been used\r
70 @retval FALSE OVMF have started via the HVM route\r
71**/\r
72BOOLEAN\r
73EFIAPI\r
74XenPvhDetected (\r
75 VOID\r
76 )\r
77{\r
ac0a286f 78 EFI_XEN_INFO *XenInfo;\r
f496443e
AP
79\r
80 XenInfo = XenGetInfoHOB ();\r
81 return (XenInfo != NULL && XenInfo->RsdpPvh != NULL);\r
82}\r