[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] docs: Document some more hypercalls
Some of these could probably do with some review from people who know what these hypercalls actually do. Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- xen/include/public/arch-x86/xen.h | 30 ++++++++++++++++++++++++++++++ xen/include/public/arch-x86_64.h | 16 ++++++++++++++++ xen/include/public/platform.h | 4 ++++ 3 files changed, 50 insertions(+), 0 deletions(-) diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h index d663cef..1c186d7 100644 --- a/xen/include/public/arch-x86/xen.h +++ b/xen/include/public/arch-x86/xen.h @@ -65,6 +65,11 @@ typedef unsigned long xen_pfn_t; * SEGMENT DESCRIPTOR TABLES */ /* + * ` enum neg_errnoval + * ` HYPERVISOR_set_gdt(const xen_pfn_t frames[], unsigned int entries); + * ` + */ +/* * A number of GDT entries are reserved by Xen. These are not situated at the * start of the GDT because some stupid OSes export hard-coded selector values * in their ABI. These hard-coded values are always near the start of the GDT, @@ -83,6 +88,13 @@ typedef unsigned long xen_ulong_t; /* * ` enum neg_errnoval + * ` HYPERVISOR_stack_switch(unsigned long ss, unsigned long esp); + * ` + * Sets the stack segment and pointer for the current vcpu. + */ + +/* + * ` enum neg_errnoval * ` HYPERVISOR_set_trap_table(const struct trap_info traps[]); * ` */ @@ -183,6 +195,24 @@ typedef struct arch_shared_info arch_shared_info_t; #endif /* !__ASSEMBLY__ */ /* + * ` enum neg_errnoval + * ` HYPERVISOR_fpu_taskswitch(int set); + * ` + * Sets (if set!=0) or clears (if set==0) CR0.TS. + */ + +/* + * ` enum neg_errnoval + * ` HYPERVISOR_set_debugreg(int regno, unsigned long value); + * + * ` unsigned long + * ` HYPERVISOR_get_debugreg(int regno); + * For 0<=reg<=7, returns the debug register value. + * For other values of reg, returns ((unsigned long)-EINVAL). + * (Unfortunately, this interface is defective.) + */ + +/* * Prefix forces emulation of some non-trapping instructions. * Currently only CPUID. */ diff --git a/xen/include/public/arch-x86_64.h b/xen/include/public/arch-x86_64.h index fbb2639..409805f 100644 --- a/xen/include/public/arch-x86_64.h +++ b/xen/include/public/arch-x86_64.h @@ -25,3 +25,19 @@ */ #include "arch-x86/xen.h" + +/* + * ` enum neg_errnoval + * ` HYPERVISOR_set_callbacks(unsigned long event_selector, + * ` unsigned long event_address, + * ` unsigned long failsafe_selector, + * ` unsigned long failsafe_address); + * ` + * Register for callbacks on events. When an event (from an event + * channel) occurs, event_address is used as the value of eip. + * + * A similar callback occurs if the segment selectors are invalid. + * failsafe_address is used as the value of eip. + * + * On x86_64, event_selector and failsafe_selector are ignored (???). + */ diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h index 7b8d6e8..68e4177 100644 --- a/xen/include/public/platform.h +++ b/xen/include/public/platform.h @@ -490,6 +490,10 @@ struct xenpf_mem_hotadd uint32_t flags; }; +/* + * ` enum neg_errnoval + * ` HYPERVISOR_platform_op(const struct xen_platform_op*); + */ struct xen_platform_op { uint32_t cmd; uint32_t interface_version; /* XENPF_INTERFACE_VERSION */ -- tg: (df19317..) t/xen/docs2.xen-headers.hcalls (depends on: t/xen/gitignore) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |