[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] docs: Document some more hypercalls
# HG changeset patch # User Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> # Date 1333382565 -3600 # Node ID aeb637d0ecf64e26f24d1e01f98ec6403eec5f59 # Parent ac0fcd6eeef789d004b88551c3651c1962a2a674 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> Committed-by: Ian Jackson <ian.jackson.citrix.com> --- diff -r ac0fcd6eeef7 -r aeb637d0ecf6 xen/include/public/arch-x86/xen.h --- a/xen/include/public/arch-x86/xen.h Mon Mar 26 17:11:13 2012 +0100 +++ b/xen/include/public/arch-x86/xen.h Mon Apr 02 17:02:45 2012 +0100 @@ -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_sha #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 -r ac0fcd6eeef7 -r aeb637d0ecf6 xen/include/public/arch-x86_64.h --- a/xen/include/public/arch-x86_64.h Mon Mar 26 17:11:13 2012 +0100 +++ b/xen/include/public/arch-x86_64.h Mon Apr 02 17:02:45 2012 +0100 @@ -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 -r ac0fcd6eeef7 -r aeb637d0ecf6 xen/include/public/platform.h --- a/xen/include/public/platform.h Mon Mar 26 17:11:13 2012 +0100 +++ b/xen/include/public/platform.h Mon Apr 02 17:02:45 2012 +0100 @@ -504,6 +504,10 @@ struct xenpf_core_parking { typedef struct xenpf_core_parking xenpf_core_parking_t; DEFINE_XEN_GUEST_HANDLE(xenpf_core_parking_t); +/* + * ` 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 */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |