Move x86 code out of include/linux/kvm.h
cover Move x86 code out of include/linux/kvm.h
This set of patches move structres & definitions that are x86 specific from include/linux/kvm.h to inclue/asm-x86/kvm.h.
Missing from these patches is exactly how to move the IOCTL definitions while keeping things in order. I'll disscuss this on the list.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
A message that is not in the archive (sent off-list or not yet received): 11955135972254-git-send-email-jyoung5-r/[email protected]
Move kvm_memory_alias to include/asm-x86/kvm.h
This patch moves sturct kvm_memory_alias from include/linux/kvm.h to include/asm-x86/kvm.h. Also have include/linux/kvm.h include include/asm/kvm.h.
include/asm-x86/kvm.h new file +20 -0
@@ -0,0 +1,20 @@ +#ifndef __LINUX_KVM_X86_H +#define __LINUX_KVM_X86_H + +/* +* KVM x86 specific structures and definitions +* +*/ + +#include <asm/types.h> +#include <linux/ioctl.h> + +struct kvm_memory_alias { +__u32 slot;/* this has a different namespace than memory slots */ +__u32 flags; +__u64 guest_phys_addr; +__u64 memory_size; +__u64 target_phys_addr; +}; + +#endif
include/linux/kvm.h +1 -7
@@ -9,6 +9,7 @@#include <asm/types.h> #include <linux/ioctl.h> +#include <asm/kvm.h> #define KVM_API_VERSION 12
@@ -35,13 +36,6 @@ struct kvm_userspace_memory_region {/* for kvm_memory_region::flags */ #define KVM_MEM_LOG_DIRTY_PAGES 1UL -struct kvm_memory_alias { -__u32 slot;/* this has a different namespace than memory slots */ -__u32 flags; -__u64 guest_phys_addr; -__u64 memory_size; -__u64 target_phys_addr; -};/* for KVM_IRQ_LINE */ struct kvm_irq_level {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Move x86 pic strutctures
In reply to a message not in the archiveThis patch moves structures:
kvm_pic_state
kvm_ioapic_state
to inclue/asm-x86/kvm.h.
include/asm-x86/kvm.h +49 -0
@@ -14,4 +14,53 @@ struct kvm_memory_alias {__u64 target_phys_addr; }; +/* for KVM_GET_IRQCHIP and KVM_SET_IRQCHIP */ +struct kvm_pic_state { +__u8 last_irr;/* edge detection */ +__u8 irr;/* interrupt request register */ +__u8 imr;/* interrupt mask register */ +__u8 isr;/* interrupt service register */ +__u8 priority_add;/* highest irq priority */ +__u8 irq_base; +__u8 read_reg_select; +__u8 poll; +__u8 special_mask; +__u8 init_state; +__u8 auto_eoi; +__u8 rotate_on_auto_eoi; +__u8 special_fully_nested_mode; +__u8 init4;/* true if 4 byte init */ +__u8 elcr;/* PIIX edge/trigger selection */ +__u8 elcr_mask; +}; + +#define KVM_IOAPIC_NUM_PINS 24 +struct kvm_ioapic_state { +__u64 base_address; +__u32 ioregsel; +__u32 id; +__u32 irr; +__u32 pad; +union { +__u64 bits; +struct { +__u8 vector; +__u8 delivery_mode:3 ; +__u8 dest_mode:1 ; +__u8 delivery_status:1 ; +__u8 polarity:1 ; +__u8 remote_irr:1 ; +__u8 trig_mode:1 ; +__u8 mask:1 ; +__u8 reserve:7 ; +__u8 reserved[4 ]; +__u8 dest_id; + } fields; + } redirtbl[KVM_IOAPIC_NUM_PINS ]; +}; + +#define KVM_IRQCHIP_PIC_MASTER 0 +#define KVM_IRQCHIP_PIC_SLAVE 1 +#define KVM_IRQCHIP_IOAPIC 2 +#endif
include/linux/kvm.h +0 -48
54 lines not on this page · raw message
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Move kvm_regs to asm-x86/kvm.h
In reply to a message not in the archiveThis patch moves structure kvm_regs to include/asm-x86/kvm.h. Each architecture will need to create there own version of this structure.
include/asm-x86/kvm.h +10 -0
@@ -63,4 +63,14 @@ struct kvm_ioapic_state {#define KVM_IRQCHIP_PIC_SLAVE 1#define KVM_IRQCHIP_IOAPIC 2 +/* for KVM_GET_REGS and KVM_SET_REGS */ +struct kvm_regs { +/* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ +__u64 rax, rbx, rcx, rdx; +__u64 rsi, rdi, rsp, rbp; +__u64 r8, r9, r10, r11; +__u64 r12, r13, r14, r15; +__u64 rip, rflags; +}; +#endif
include/linux/kvm.h +0 -9
@@ -134,15 +134,6 @@ struct kvm_run { }; }; -/* for KVM_GET_REGS and KVM_SET_REGS */ -struct kvm_regs { -/* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ -__u64 rax, rbx, rcx, rdx; -__u64 rsi, rdi, rsp, rbp; -__u64 r8, r9, r10, r11; -__u64 r12, r13, r14, r15; -__u64 rip, rflags; -};/* for KVM_GET_FPU and KVM_SET_FPU */ struct kvm_fpu {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Move structure lapic_state
In reply to a message not in the archiveThis patch moves structure lapic_state from include/linux/kvm.h to include/asm-x86/kvm.h
include/asm-x86/kvm.h +6 -0
@@ -73,4 +73,10 @@ struct kvm_regs { __u64 rip, rflags; }; +/* for KVM_GET_LAPIC and KVM_SET_LAPIC */ +#define KVM_APIC_REG_SIZE 0x400 +struct kvm_lapic_state { +char regs[KVM_APIC_REG_SIZE ]; +}; +#endif
include/linux/kvm.h +0 -5
@@ -150,11 +150,6 @@ struct kvm_fpu {__u32 pad2; }; -/* for KVM_GET_LAPIC and KVM_SET_LAPIC */ -#define KVM_APIC_REG_SIZE 0x400 -struct kvm_lapic_state { -char regs[KVM_APIC_REG_SIZE ]; -};struct kvm_segment {__u64 base;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Move kvm_sgement & kvm_dtable structure
In reply to a message not in the archiveThis patch moves structures:
kvm_segment
kvm_dtable
from include/linux/kvm.h to include/asm-x86/kvm.h
include/asm-x86/kvm.h +17 -0
@@ -79,4 +79,21 @@ struct kvm_lapic_state { char regs[KVM_APIC_REG_SIZE]; }; +struct kvm_segment { +__u64 base; +__u32 limit; +__u16 selector; +__u8 type; +__u8 present, dpl, db, s, l, g, avl; +__u8 unusable; +__u8 padding; +}; + +struct kvm_dtable { +__u64 base; +__u16 limit; +__u16 padding[3 ]; +}; + +#endif
include/linux/kvm.h +0 -15
@@ -151,21 +151,6 @@ struct kvm_fpu { }; -struct kvm_segment { -__u64 base; -__u32 limit; -__u16 selector; -__u8 type; -__u8 present, dpl, db, s, l, g, avl; -__u8 unusable; -__u8 padding; -}; - -struct kvm_dtable { -__u64 base; -__u16 limit; -__u16 padding[3 ]; -};/* for KVM_GET_SREGS and KVM_SET_SREGS */ struct kvm_sregs {
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Move kvm_sregs structure & msr related stuructures
In reply to a message not in the archiveMove structures:
kvm_sregs
kvm_msr_entry
kvm_msrs
kvm_msr_list
from include/linux/kvm.h to include/asm-x86/kvm.h
include/asm-x86/kvm.h +36 -0
@@ -9,6 +9,9 @@#include <asm/types.h> #include <linux/ioctl.h> +/* Architectural interrupt line count. */ +#define KVM_NR_INTERRUPTS 256 +struct kvm_memory_alias {__u32 slot;/* this has a different namespace than memory slots */ __u32 flags;
@@ -99,4 +102,37 @@ struct kvm_dtable { }; +/* for KVM_GET_SREGS and KVM_SET_SREGS */ +struct kvm_sregs { +/* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ +struct kvm_segment cs, ds, es, fs, gs, ss; +struct kvm_segment tr, ldt; +struct kvm_dtable gdt, idt; +__u64 cr0, cr2, cr3, cr4, cr8; +__u64 efer; +__u64 apic_base; +__u64 interrupt_bitmap[(KVM_NR_INTERRUPTS +63 ) /64 ]; +}; + +struct kvm_msr_entry { +__u32 index; +__u32 reserved; +__u64 data; +}; + +/* for KVM_GET_MSRS and KVM_SET_MSRS */ +struct kvm_msrs { +__u32 nmsrs;/* number of msrs in entries */ +__u32 pad; + +struct kvm_msr_entry entries[0 ]; +}; + +/* for KVM_GET_MSR_INDEX_LIST */ +struct kvm_msr_list { +__u32 nmsrs;/* number of msrs in entries */ +__u32 indices[0 ]; +}; + +#endif
include/linux/kvm.h +0 -36
@@ -13,9 +13,6 @@#define KVM_API_VERSION 12 -/* Architectural interrupt line count. */ -#define KVM_NR_INTERRUPTS 256 -/* for KVM_CREATE_MEMORY_REGION */ struct kvm_memory_region {__u32 slot;
@@ -151,39 +148,6 @@ struct kvm_fpu { }; - -/* for KVM_GET_SREGS and KVM_SET_SREGS */ -struct kvm_sregs { -/* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ -struct kvm_segment cs, ds, es, fs, gs, ss; -struct kvm_segment tr, ldt; -struct kvm_dtable gdt, idt; -__u64 cr0, cr2, cr3, cr4, cr8; -__u64 efer; -__u64 apic_base; -__u64 interrupt_bitmap[(KVM_NR_INTERRUPTS +63 ) /64 ]; -}; - -struct kvm_msr_entry { -__u32 index; -__u32 reserved; -__u64 data; -}; - -/* for KVM_GET_MSRS and KVM_SET_MSRS */ -struct kvm_msrs { -__u32 nmsrs;/* number of msrs in entries */ -__u32 pad; - -struct kvm_msr_entry entries[0 ]; -}; - -/* for KVM_GET_MSR_INDEX_LIST */ -struct kvm_msr_list { -__u32 nmsrs;/* number of msrs in entries */ -__u32 indices[0 ]; -}; -/* for KVM_TRANSLATE */ struct kvm_translation {/* in */
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Move cpuid sturctures
In reply to a message not in the archiveThis patch moves structures:
kvm_cpuid_entry
kvm_cpuid
from include/linux/kvm.h to include/asm-x86/kvm.h
include/asm-x86/kvm.h +17 -0
@@ -129,4 +129,21 @@ struct kvm_msr_list { }; +struct kvm_cpuid_entry { +__u32 function; +__u32 eax; +__u32 ebx; +__u32 ecx; +__u32 edx; +__u32 padding; +}; + +/* for KVM_SET_CPUID */ +struct kvm_cpuid { +__u32 nent; +__u32 padding; +struct kvm_cpuid_entry entries[0 ]; +}; + +#endif
include/linux/kvm.h +0 -16
@@ -195,22 +195,6 @@ struct kvm_dirty_log { }; }; -struct kvm_cpuid_entry { -__u32 function; -__u32 eax; -__u32 ebx; -__u32 ecx; -__u32 edx; -__u32 padding; -}; - -/* for KVM_SET_CPUID */ -struct kvm_cpuid { -__u32 nent; -__u32 padding; -struct kvm_cpuid_entry entries[0 ]; -}; -/* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask {__u32 len;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Carsten Otte
Acked-byQuoted 7 lines · Jerone Young
This set of patches move structres & definitions that are x86 specific from
include/linux/kvm.htoinclue/asm-x86/kvm.h.Missing from these patches is exactly how to move the IOCTL definitions while keeping things in order. I'll disscuss this on the list.
Signed-off-by Jerone Young <jyoung5-r/[email protected]>
Whole series looks good to me.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Zhang, Xiantao
Acked-byQuoted 6 lines · Jerone Young
This set of patches move structres & definitions that are x86 specific from
include/linux/kvm.htoinclue/asm-x86/kvm.h.Missing from these patches is exactly how to move the IOCTL definitions while keeping things in order. I'll disscuss this on the list.
Should be fine to IA64. Good work!
Quoted 1 line
------------------------------------------------------------------------
-
Quoted 7 lines
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Avi Kivity
AppliedQuoted 3 lines · Jerone Young
This set of patches move structres & definitions that are x86 specific from
include/linux/kvm.htoinclue/asm-x86/kvm.h.
Applied all, thanks.
Signature · 7 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/