Wei Liu
2013-Nov-19 20:38 UTC
[PATCH RFC v2 3/7] OvmfPkg: define EFI_XEN_OVMF_INFO and extend XenInfo
EFI_XEN_OVMF_INFO is defined to accept configurations from hvmloader. It must match the definition on Xen side. XenInfo is extended to include those bits as well. Currently only E820 map is in use. Signed-off-by: Wei Liu <wei.liu2@citrix.com> --- OvmfPkg/Include/Guid/XenInfo.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/OvmfPkg/Include/Guid/XenInfo.h b/OvmfPkg/Include/Guid/XenInfo.h index d512b0b..eaeab1a 100644 --- a/OvmfPkg/Include/Guid/XenInfo.h +++ b/OvmfPkg/Include/Guid/XenInfo.h @@ -18,6 +18,28 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #define EFI_XEN_INFO_GUID \ { 0xd3b46f3b, 0xd441, 0x1244, {0x9a, 0x12, 0x0, 0x12, 0x27, 0x3f, 0xc1, 0x4d } } +#pragma pack(1) +typedef struct { + CHAR8 Signature[11]; /* XenHVMOVMF\0 */ + CHAR8 Padding[3]; + UINT8 Length; /* Length of this struct */ + UINT8 Checksum; /* Set such that the sum over bytes 0..length == 0 */ + /* + * Physical address of an array of tables_nr elements. + * + * Each element is a 32 bit value contianing the physical address + * of a BIOS table. + */ + UINT32 Tables; + UINT32 TablesNr; + /* + * Physical address of the e820 table, contains e820_nr entries. + */ + UINT32 E820; + UINT32 E820Nr; +} EFI_XEN_OVMF_INFO; +#pragma pack() + typedef struct { /// /// Beginning of the hypercall page. @@ -35,6 +57,11 @@ typedef struct { /// Hypervisor minor version. /// UINT16 VersionMinor; + /// + /// E820 map + /// + VOID *E820; + UINT16 E820EntryCount; } EFI_XEN_INFO; extern EFI_GUID gEfiXenInfoGuid; -- 1.7.10.4
Konrad Rzeszutek Wilk
2013-Nov-19 21:10 UTC
Re: [PATCH RFC v2 3/7] OvmfPkg: define EFI_XEN_OVMF_INFO and extend XenInfo
On Tue, Nov 19, 2013 at 08:38:45PM +0000, Wei Liu wrote:> EFI_XEN_OVMF_INFO is defined to accept configurations from hvmloader. It > must match the definition on Xen side. > > XenInfo is extended to include those bits as well. Currently only E820 > map is in use. > > Signed-off-by: Wei Liu <wei.liu2@citrix.com> > --- > OvmfPkg/Include/Guid/XenInfo.h | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/OvmfPkg/Include/Guid/XenInfo.h b/OvmfPkg/Include/Guid/XenInfo.h > index d512b0b..eaeab1a 100644 > --- a/OvmfPkg/Include/Guid/XenInfo.h > +++ b/OvmfPkg/Include/Guid/XenInfo.h > @@ -18,6 +18,28 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > #define EFI_XEN_INFO_GUID \ > { 0xd3b46f3b, 0xd441, 0x1244, {0x9a, 0x12, 0x0, 0x12, 0x27, 0x3f, 0xc1, 0x4d } } > > +#pragma pack(1) > +typedef struct { > + CHAR8 Signature[11]; /* XenHVMOVMF\0 */ > + CHAR8 Padding[3];Why the padding?> + UINT8 Length; /* Length of this struct */ > + UINT8 Checksum; /* Set such that the sum over bytes 0..length == 0 */ > + /* > + * Physical address of an array of tables_nr elements. > + * > + * Each element is a 32 bit value contianing the physical address^^^^^^^^^^> + * of a BIOS table. > + */ > + UINT32 Tables; > + UINT32 TablesNr; > + /* > + * Physical address of the e820 table, contains e820_nr entries. > + */ > + UINT32 E820; > + UINT32 E820Nr; > +} EFI_XEN_OVMF_INFO; > +#pragma pack() > + > typedef struct { > /// > /// Beginning of the hypercall page. > @@ -35,6 +57,11 @@ typedef struct { > /// Hypervisor minor version. > /// > UINT16 VersionMinor; > + /// > + /// E820 map > + /// > + VOID *E820; > + UINT16 E820EntryCount; > } EFI_XEN_INFO; > > extern EFI_GUID gEfiXenInfoGuid; > -- > 1.7.10.4 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel