diff options
author | Kip Macy <kmacy@FreeBSD.org> | 2008-09-25 07:01:31 +0000 |
---|---|---|
committer | Kip Macy <kmacy@FreeBSD.org> | 2008-09-25 07:01:31 +0000 |
commit | a972cc523a669c55740f4fd63f16e2ec1a69d83e (patch) | |
tree | 451d5f5304549dc85c7c3b468c2df4e1b2176041 /sys/xen/interface/callback.h | |
parent | 82c2cf3b056cf6e8272f0881fd4ac0d25ce38d01 (diff) |
partial update to interface headers to 3.2
MFC after: 1 month
Notes
Notes:
svn path=/head/; revision=183340
Diffstat (limited to 'sys/xen/interface/callback.h')
-rw-r--r-- | sys/xen/interface/callback.h | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/sys/xen/interface/callback.h b/sys/xen/interface/callback.h index cac5389925ce..f4962f66d8cb 100644 --- a/sys/xen/interface/callback.h +++ b/sys/xen/interface/callback.h @@ -36,17 +36,41 @@ * @extra_args == Operation-specific extra arguments (NULL if none). */ +/* ia64, x86: Callback for event delivery. */ #define CALLBACKTYPE_event 0 + +/* x86: Failsafe callback when guest state cannot be restored by Xen. */ #define CALLBACKTYPE_failsafe 1 -#define CALLBACKTYPE_syscall 2 /* x86_64 only */ + +/* x86/64 hypervisor: Syscall by 64-bit guest app ('64-on-64-on-64'). */ +#define CALLBACKTYPE_syscall 2 + /* - * sysenter is only available on x86_32 with the - * supervisor_mode_kernel option enabled. + * x86/32 hypervisor: Only available on x86/32 when supervisor_mode_kernel + * feature is enabled. Do not use this callback type in new code. */ -#define CALLBACKTYPE_sysenter 3 +#define CALLBACKTYPE_sysenter_deprecated 3 + +/* x86: Callback for NMI delivery. */ #define CALLBACKTYPE_nmi 4 /* + * x86: sysenter is only available as follows: + * - 32-bit hypervisor: with the supervisor_mode_kernel feature enabled + * - 64-bit hypervisor: 32-bit guest applications on Intel CPUs + * ('32-on-32-on-64', '32-on-64-on-64') + * [nb. also 64-bit guest applications on Intel CPUs + * ('64-on-64-on-64'), but syscall is preferred] + */ +#define CALLBACKTYPE_sysenter 5 + +/* + * x86/64 hypervisor: Syscall by 32-bit guest app on AMD CPUs + * ('32-on-32-on-64', '32-on-64-on-64') + */ +#define CALLBACKTYPE_syscall32 7 + +/* * Disable event deliver during callback? This flag is ignored for event and * NMI callbacks: event delivery is unconditionally disabled. */ @@ -79,6 +103,11 @@ struct callback_unregister { typedef struct callback_unregister callback_unregister_t; DEFINE_XEN_GUEST_HANDLE(callback_unregister_t); +#if __XEN_INTERFACE_VERSION__ < 0x00030207 +#undef CALLBACKTYPE_sysenter +#define CALLBACKTYPE_sysenter CALLBACKTYPE_sysenter_deprecated +#endif + #endif /* __XEN_PUBLIC_CALLBACK_H__ */ /* |