summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/XenPlatformPei/Xen.h
blob: 2605481280c0421de395640cd1ccc03b68997024 (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
/** @file
  Ovmf info structure passed by Xen

Copyright (c) 2013, Citrix Systems UK Ltd.<BR>

SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef __XEN_H__
#define __XEN_H__

#include <PiPei.h>

// Physical address of OVMF info
#define OVMF_INFO_PHYSICAL_ADDRESS 0x00001000

// This structure must match the definition on Xen side
#pragma pack(1)
typedef struct {
  CHAR8 Signature[14]; // XenHVMOVMF\0
  UINT8 Length;        // Length of this structure
  UINT8 Checksum;      // Set such that the sum over bytes 0..length == 0
  //
  // Physical address of an array of TablesCount elements.
  //
  // Each element contains the physical address of a BIOS table.
  //
  EFI_PHYSICAL_ADDRESS Tables;
  UINT32 TablesCount;
  //
  // Physical address of the E820 table, contains E820EntriesCount entries.
  //
  EFI_PHYSICAL_ADDRESS E820;
  UINT32 E820EntriesCount;
} EFI_XEN_OVMF_INFO;
#pragma pack()

#endif /* __XEN_H__ */