Files
xen/tools/libxc/xc_sr_common_x86.h
T
Andrew Cooper 63350b3fda tools/libx[cl]: Plumb 'missing' through static_data_done() up into libxl
Pre Xen-4.14 streams will not contain any CPUID/MSR information.  There is
nothing libxc can do about this, and will have to rely on the higher level
toolstack to provide backwards compatibility.

To facilitate this, extend the static_data_done() callback, highlighting the
missing information, and modify libxl to use it.  At the libxc level, this
requires an arch-specific hook which, for now, always reports CPUID and MSR as
missing.  This will be adjusted in a later change.

No overall functional change - this is just plumbing.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-05-29 17:33:03 +01:00

52 lines
1.3 KiB
C

#ifndef __COMMON_X86__H
#define __COMMON_X86__H
#include "xc_sr_common.h"
/*
* Obtains a domains TSC information from Xen and writes a X86_TSC_INFO record
* into the stream.
*/
int write_x86_tsc_info(struct xc_sr_context *ctx);
/*
* Parses a X86_TSC_INFO record and applies the result to the domain.
*/
int handle_x86_tsc_info(struct xc_sr_context *ctx, struct xc_sr_record *rec);
/*
* Obtains a domains CPU Policy from Xen, and writes X86_{CPUID,MSR}_POLICY
* records into the stream.
*/
int write_x86_cpu_policy_records(struct xc_sr_context *ctx);
/*
* Parses an X86_CPUID_POLICY record and stashes the content for application
* when a STATIC_DATA_END record is encountered.
*/
int handle_x86_cpuid_policy(struct xc_sr_context *ctx,
struct xc_sr_record *rec);
/*
* Parses an X86_MSR_POLICY record and stashes the content for application
* when a STATIC_DATA_END record is encountered.
*/
int handle_x86_msr_policy(struct xc_sr_context *ctx,
struct xc_sr_record *rec);
/*
* Perform common x86 actions required after the static data has arrived.
*/
int x86_static_data_complete(struct xc_sr_context *ctx, unsigned int *missing);
#endif
/*
* Local variables:
* mode: C
* c-file-style: "BSD"
* c-basic-offset: 4
* tab-width: 4
* indent-tabs-mode: nil
* End:
*/