aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kvm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/kvm.h')
-rw-r--r--include/linux/kvm.h51
1 files changed, 35 insertions, 16 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 0424326f1679..429a2ce202f9 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -126,6 +126,7 @@ struct kvm_run {
126 __u64 data_offset; /* relative to kvm_run start */ 126 __u64 data_offset; /* relative to kvm_run start */
127 } io; 127 } io;
128 struct { 128 struct {
129 struct kvm_debug_exit_arch arch;
129 } debug; 130 } debug;
130 /* KVM_EXIT_MMIO */ 131 /* KVM_EXIT_MMIO */
131 struct { 132 struct {
@@ -217,21 +218,6 @@ struct kvm_interrupt {
217 __u32 irq; 218 __u32 irq;
218}; 219};
219 220
220struct kvm_breakpoint {
221 __u32 enabled;
222 __u32 padding;
223 __u64 address;
224};
225
226/* for KVM_DEBUG_GUEST */
227struct kvm_debug_guest {
228 /* int */
229 __u32 enabled;
230 __u32 pad;
231 struct kvm_breakpoint breakpoints[4];
232 __u32 singlestep;
233};
234
235/* for KVM_GET_DIRTY_LOG */ 221/* for KVM_GET_DIRTY_LOG */
236struct kvm_dirty_log { 222struct kvm_dirty_log {
237 __u32 slot; 223 __u32 slot;
@@ -292,6 +278,17 @@ struct kvm_s390_interrupt {
292 __u64 parm64; 278 __u64 parm64;
293}; 279};
294 280
281/* for KVM_SET_GUEST_DEBUG */
282
283#define KVM_GUESTDBG_ENABLE 0x00000001
284#define KVM_GUESTDBG_SINGLESTEP 0x00000002
285
286struct kvm_guest_debug {
287 __u32 control;
288 __u32 pad;
289 struct kvm_guest_debug_arch arch;
290};
291
295#define KVM_TRC_SHIFT 16 292#define KVM_TRC_SHIFT 16
296/* 293/*
297 * kvm trace categories 294 * kvm trace categories
@@ -396,6 +393,7 @@ struct kvm_trace_rec {
396#ifdef __KVM_HAVE_USER_NMI 393#ifdef __KVM_HAVE_USER_NMI
397#define KVM_CAP_USER_NMI 22 394#define KVM_CAP_USER_NMI 22
398#endif 395#endif
396#define KVM_CAP_SET_GUEST_DEBUG 23
399 397
400/* 398/*
401 * ioctls for VM fds 399 * ioctls for VM fds
@@ -440,7 +438,8 @@ struct kvm_trace_rec {
440#define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs) 438#define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs)
441#define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation) 439#define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation)
442#define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt) 440#define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt)
443#define KVM_DEBUG_GUEST _IOW(KVMIO, 0x87, struct kvm_debug_guest) 441/* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */
442#define KVM_DEBUG_GUEST __KVM_DEPRECATED_DEBUG_GUEST
444#define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs) 443#define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs)
445#define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs) 444#define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs)
446#define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid) 445#define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid)
@@ -469,6 +468,26 @@ struct kvm_trace_rec {
469#define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state) 468#define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state)
470/* Available with KVM_CAP_NMI */ 469/* Available with KVM_CAP_NMI */
471#define KVM_NMI _IO(KVMIO, 0x9a) 470#define KVM_NMI _IO(KVMIO, 0x9a)
471/* Available with KVM_CAP_SET_GUEST_DEBUG */
472#define KVM_SET_GUEST_DEBUG _IOW(KVMIO, 0x9b, struct kvm_guest_debug)
473
474/*
475 * Deprecated interfaces
476 */
477struct kvm_breakpoint {
478 __u32 enabled;
479 __u32 padding;
480 __u64 address;
481};
482
483struct kvm_debug_guest {
484 __u32 enabled;
485 __u32 pad;
486 struct kvm_breakpoint breakpoints[4];
487 __u32 singlestep;
488};
489
490#define __KVM_DEPRECATED_DEBUG_GUEST _IOW(KVMIO, 0x87, struct kvm_debug_guest)
472 491
473#define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02) 492#define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02)
474#define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03) 493#define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03)