aboutsummaryrefslogtreecommitdiff
path: root/sys/xen/interface/vcpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/xen/interface/vcpu.h')
-rw-r--r--sys/xen/interface/vcpu.h26
1 files changed, 17 insertions, 9 deletions
diff --git a/sys/xen/interface/vcpu.h b/sys/xen/interface/vcpu.h
index 898b89f50940..3623af932f7e 100644
--- a/sys/xen/interface/vcpu.h
+++ b/sys/xen/interface/vcpu.h
@@ -1,8 +1,8 @@
/******************************************************************************
* vcpu.h
- *
+ *
* VCPU initialisation, query, and hotplug.
- *
+ *
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
@@ -38,11 +38,13 @@
*/
/*
- * Initialise a VCPU. Each VCPU can be initialised only once. A
+ * Initialise a VCPU. Each VCPU can be initialised only once. A
* newly-initialised VCPU will not run until it is brought up by VCPUOP_up.
- *
- * @extra_arg == pointer to vcpu_guest_context structure containing initial
- * state for the VCPU.
+ *
+ * @extra_arg == For PV or ARM guests this is a pointer to a vcpu_guest_context
+ * structure containing the initial state for the VCPU. For x86
+ * HVM based guests this is a pointer to a vcpu_hvm_context
+ * structure.
*/
#define VCPUOP_initialise 0
@@ -82,6 +84,12 @@ struct vcpu_runstate_info {
/* When was current state entered (system time, ns)? */
uint64_t state_entry_time;
/*
+ * Update indicator set in state_entry_time:
+ * When activated via VMASST_TYPE_runstate_update_flag, set during
+ * updates in guest memory mapped copy of vcpu_runstate_info.
+ */
+#define XEN_RUNSTATE_UPDATE (xen_mk_ullong(1) << 63)
+ /*
* Time spent in each RUNSTATE_* (ns). The sum of these times is
* guaranteed not to drift from system time.
*/
@@ -163,7 +171,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_set_singleshot_timer_t);
#define _VCPU_SSHOTTMR_future (0)
#define VCPU_SSHOTTMR_future (1U << _VCPU_SSHOTTMR_future)
-/*
+/*
* Register a memory location in the guest address space for the
* vcpu_info structure. This allows the guest to place the vcpu_info
* structure in a convenient place, such as in a per-cpu data area.
@@ -184,7 +192,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_register_vcpu_info_t);
/* Send an NMI to the specified VCPU. @extra_arg == NULL. */
#define VCPUOP_send_nmi 11
-/*
+/*
* Get the physical ID information for a pinned vcpu's underlying physical
* processor. The physical ID informmation is architecture-specific.
* On x86: id[31:0]=apic_id, id[63:32]=acpi_id.
@@ -199,7 +207,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_get_physid_t);
#define xen_vcpu_physid_to_x86_apicid(physid) ((uint32_t)(physid))
#define xen_vcpu_physid_to_x86_acpiid(physid) ((uint32_t)((physid) >> 32))
-/*
+/*
* Register a memory location to get a secondary copy of the vcpu time
* parameters. The master copy still exists as part of the vcpu shared
* memory area, and this secondary copy is updated whenever the master copy