* [PATCH] qemu-kvm: kvm headers update
@ 2009-10-05 9:46 Michael S. Tsirkin
2009-10-05 15:38 ` Avi Kivity
0 siblings, 1 reply; 7+ messages in thread
From: Michael S. Tsirkin @ 2009-10-05 9:46 UTC (permalink / raw)
To: kvm, avi
Update headers from linux 2.6.32-rc1, this mainly
adds irqfd which will make it easier to add vhost,
down the line. Also reduce code duplication by including
kvm_types.h instead of copying it.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
kvm/include/linux/kvm.h | 131 +++++++++++++++----------------------
kvm/include/linux/kvm_para.h | 56 +---------------
kvm/include/x86/asm/kvm.h | 46 +------------
kvm/include/x86/asm/kvm_para.h | 141 +---------------------------------------
4 files changed, 61 insertions(+), 313 deletions(-)
diff --git a/kvm/include/linux/kvm.h b/kvm/include/linux/kvm.h
index 801865d..2c9a209 100644
--- a/kvm/include/linux/kvm.h
+++ b/kvm/include/linux/kvm.h
@@ -1,43 +1,4 @@
-#ifndef KVM_UNIFDEF_H
-#define KVM_UNIFDEF_H
-
-#ifdef __i386__
-#ifndef CONFIG_X86_32
-#define CONFIG_X86_32 1
-#endif
-#endif
-
-#ifdef __x86_64__
-#ifndef CONFIG_X86_64
-#define CONFIG_X86_64 1
-#endif
-#endif
-
-#if defined(__i386__) || defined (__x86_64__)
-#ifndef CONFIG_X86
-#define CONFIG_X86 1
-#endif
-#endif
-
-#ifdef __ia64__
-#ifndef CONFIG_IA64
-#define CONFIG_IA64 1
-#endif
-#endif
-
-#ifdef __PPC__
-#ifndef CONFIG_PPC
-#define CONFIG_PPC 1
-#endif
-#endif
-
-#ifdef __s390__
-#ifndef CONFIG_S390
-#define CONFIG_S390 1
-#endif
-#endif
-
-#endif
+#include <linux/kvm_types.h>
#ifndef __LINUX_KVM_H
#define __LINUX_KVM_H
@@ -47,14 +8,14 @@
* Note: you must update KVM_API_VERSION if you change this interface.
*/
-#include <asm/types.h>
+#include <linux/types.h>
#include <linux/ioctl.h>
#include <asm/kvm.h>
#define KVM_API_VERSION 12
-/* for KVM_TRACE_ENABLE */
+/* for KVM_TRACE_ENABLE, deprecated */
struct kvm_user_trace_setup {
__u32 buf_size; /* sub_buffer size of each per-cpu */
__u32 buf_nr; /* the number of sub_buffers of each per-cpu */
@@ -281,7 +242,7 @@ struct kvm_dirty_log {
__u32 slot;
__u32 padding1;
union {
- void *dirty_bitmap; /* one bit per page */
+ void *dirty_bitmap; /* one bit per page */
__u64 padding2;
};
};
@@ -347,6 +308,28 @@ struct kvm_guest_debug {
struct kvm_guest_debug_arch arch;
};
+enum {
+ kvm_ioeventfd_flag_nr_datamatch,
+ kvm_ioeventfd_flag_nr_pio,
+ kvm_ioeventfd_flag_nr_deassign,
+ kvm_ioeventfd_flag_nr_max,
+};
+
+#define KVM_IOEVENTFD_FLAG_DATAMATCH (1 << kvm_ioeventfd_flag_nr_datamatch)
+#define KVM_IOEVENTFD_FLAG_PIO (1 << kvm_ioeventfd_flag_nr_pio)
+#define KVM_IOEVENTFD_FLAG_DEASSIGN (1 << kvm_ioeventfd_flag_nr_deassign)
+
+#define KVM_IOEVENTFD_VALID_FLAG_MASK ((1 << kvm_ioeventfd_flag_nr_max) - 1)
+
+struct kvm_ioeventfd {
+ __u64 datamatch;
+ __u64 addr; /* legal pio/mmio address */
+ __u32 len; /* 1, 2, 4, or 8 bytes */
+ __s32 fd;
+ __u32 flags;
+ __u8 pad[36];
+};
+
#define KVM_TRC_SHIFT 16
/*
* kvm trace categories
@@ -365,35 +348,6 @@ struct kvm_guest_debug {
#define KVM_TRC_CYCLE_SIZE 8
#define KVM_TRC_EXTRA_MAX 7
-/* This structure represents a single trace buffer record. */
-struct kvm_trace_rec {
- /* variable rec_val
- * is split into:
- * bits 0 - 27 -> event id
- * bits 28 -30 -> number of extra data args of size u32
- * bits 31 -> binary indicator for if tsc is in record
- */
- __u32 rec_val;
- __u32 pid;
- __u32 vcpu_id;
- union {
- struct {
- __u64 timestamp;
- __u32 extra_u32[KVM_TRC_EXTRA_MAX];
- } __attribute__((packed)) timestamp;
- struct {
- __u32 extra_u32[KVM_TRC_EXTRA_MAX];
- } notimestamp;
- } u;
-};
-
-#define TRACE_REC_EVENT_ID(val) \
- (0x0fffffff & (val))
-#define TRACE_REC_NUM_DATA_ARGS(val) \
- (0x70000000 & ((val) << 28))
-#define TRACE_REC_TCS(val) \
- (0x80000000 & ((val) << 31))
-
#define KVMIO 0xAE
/*
@@ -473,8 +427,15 @@ struct kvm_trace_rec {
#ifdef __KVM_HAVE_MCE
#define KVM_CAP_MCE 31
#endif
+#define KVM_CAP_IRQFD 32
+#ifdef __KVM_HAVE_PIT
#define KVM_CAP_PIT2 33
+#endif
+#define KVM_CAP_SET_BOOT_CPU_ID 34
+#ifdef __KVM_HAVE_PIT_STATE2
#define KVM_CAP_PIT_STATE2 35
+#endif
+#define KVM_CAP_IOEVENTFD 36
#define KVM_CAP_SET_IDENTITY_MAP_ADDR 37
#ifdef KVM_CAP_IRQ_ROUTING
@@ -528,16 +489,19 @@ struct kvm_x86_mce {
};
#endif
+#define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
+
+struct kvm_irqfd {
+ __u32 fd;
+ __u32 gsi;
+ __u32 flags;
+ __u8 pad[20];
+};
+
/*
* ioctls for VM fds
*/
#define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region)
-#define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44)
-#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45)
-#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46,\
- struct kvm_userspace_memory_region)
-#define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47)
-#define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64)
/*
* KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns
* a vcpu fd.
@@ -545,6 +509,12 @@ struct kvm_x86_mce {
#define KVM_CREATE_VCPU _IO(KVMIO, 0x41)
#define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log)
#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias)
+#define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44)
+#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45)
+#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46,\
+ struct kvm_userspace_memory_region)
+#define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47)
+#define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64)
/* Device model IOC */
#define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60)
#define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level)
@@ -573,7 +543,10 @@ struct kvm_x86_mce {
#define KVM_ASSIGN_SET_MSIX_ENTRY \
_IOW(KVMIO, 0x74, struct kvm_assigned_msix_entry)
#define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq)
+#define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd)
#define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config)
+#define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78)
+#define KVM_IOEVENTFD _IOW(KVMIO, 0x79, struct kvm_ioeventfd)
/*
* ioctls for vcpu fds
@@ -716,7 +689,7 @@ struct kvm_assigned_msix_nr {
__u16 padding;
};
-#define KVM_MAX_MSIX_PER_DEV 512
+#define KVM_MAX_MSIX_PER_DEV 256
struct kvm_assigned_msix_entry {
__u32 assigned_dev_id;
__u32 gsi;
diff --git a/kvm/include/linux/kvm_para.h b/kvm/include/linux/kvm_para.h
index 54ebbd5..cdd0fdd 100644
--- a/kvm/include/linux/kvm_para.h
+++ b/kvm/include/linux/kvm_para.h
@@ -1,43 +1,4 @@
-#ifndef KVM_UNIFDEF_H
-#define KVM_UNIFDEF_H
-
-#ifdef __i386__
-#ifndef CONFIG_X86_32
-#define CONFIG_X86_32 1
-#endif
-#endif
-
-#ifdef __x86_64__
-#ifndef CONFIG_X86_64
-#define CONFIG_X86_64 1
-#endif
-#endif
-
-#if defined(__i386__) || defined (__x86_64__)
-#ifndef CONFIG_X86
-#define CONFIG_X86 1
-#endif
-#endif
-
-#ifdef __ia64__
-#ifndef CONFIG_IA64
-#define CONFIG_IA64 1
-#endif
-#endif
-
-#ifdef __PPC__
-#ifndef CONFIG_PPC
-#define CONFIG_PPC 1
-#endif
-#endif
-
-#ifdef __s390__
-#ifndef CONFIG_S390
-#define CONFIG_S390 1
-#endif
-#endif
-
-#endif
+#include <linux/kvm_types.h>
#ifndef __LINUX_KVM_PARA_H
#define __LINUX_KVM_PARA_H
@@ -53,6 +14,7 @@
#define KVM_ENOSYS 1000
#define KVM_EFAULT EFAULT
#define KVM_E2BIG E2BIG
+#define KVM_EPERM EPERM
#define KVM_HC_VAPIC_POLL_IRQ 1
#define KVM_HC_MMU_OP 2
@@ -62,19 +24,5 @@
*/
#include <asm/kvm_para.h>
-#ifdef __KERNEL__
-#ifdef CONFIG_KVM_GUEST
-void __init kvm_guest_init(void);
-#else
-#define kvm_guest_init() do { } while (0)
-#endif
-
-static inline int kvm_para_has_feature(unsigned int feature)
-{
- if (kvm_arch_para_features() & (1UL << feature))
- return 1;
- return 0;
-}
-#endif /* __KERNEL__ */
#endif /* __LINUX_KVM_PARA_H */
diff --git a/kvm/include/x86/asm/kvm.h b/kvm/include/x86/asm/kvm.h
index 411063c..df47d9e 100644
--- a/kvm/include/x86/asm/kvm.h
+++ b/kvm/include/x86/asm/kvm.h
@@ -1,43 +1,4 @@
-#ifndef KVM_UNIFDEF_H
-#define KVM_UNIFDEF_H
-
-#ifdef __i386__
-#ifndef CONFIG_X86_32
-#define CONFIG_X86_32 1
-#endif
-#endif
-
-#ifdef __x86_64__
-#ifndef CONFIG_X86_64
-#define CONFIG_X86_64 1
-#endif
-#endif
-
-#if defined(__i386__) || defined (__x86_64__)
-#ifndef CONFIG_X86
-#define CONFIG_X86 1
-#endif
-#endif
-
-#ifdef __ia64__
-#ifndef CONFIG_IA64
-#define CONFIG_IA64 1
-#endif
-#endif
-
-#ifdef __PPC__
-#ifndef CONFIG_PPC
-#define CONFIG_PPC 1
-#endif
-#endif
-
-#ifdef __s390__
-#ifndef CONFIG_S390
-#define CONFIG_S390 1
-#endif
-#endif
-
-#endif
+#include <linux/kvm_types.h>
#ifndef _ASM_X86_KVM_H
#define _ASM_X86_KVM_H
@@ -46,7 +7,7 @@
*
*/
-#include <asm/types.h>
+#include <linux/types.h>
#include <linux/ioctl.h>
/* Select x86 specific features in <linux/kvm.h> */
@@ -58,6 +19,7 @@
#define __KVM_HAVE_GUEST_DEBUG
#define __KVM_HAVE_MSIX
#define __KVM_HAVE_MCE
+#define __KVM_HAVE_PIT_STATE2
/* Architectural interrupt line count. */
#define KVM_NR_INTERRUPTS 256
@@ -277,7 +239,7 @@ struct kvm_pit_state {
struct kvm_pit_channel_state channels[3];
};
-#define KVM_PIT_FLAGS_HPET_LEGACY 0x00000001
+#define KVM_PIT_FLAGS_HPET_LEGACY 0x00000001
struct kvm_pit_state2 {
struct kvm_pit_channel_state channels[3];
diff --git a/kvm/include/x86/asm/kvm_para.h b/kvm/include/x86/asm/kvm_para.h
index 7a30a52..8744da2 100644
--- a/kvm/include/x86/asm/kvm_para.h
+++ b/kvm/include/x86/asm/kvm_para.h
@@ -1,46 +1,9 @@
-#ifndef KVM_UNIFDEF_H
-#define KVM_UNIFDEF_H
-
-#ifdef __i386__
-#ifndef CONFIG_X86_32
-#define CONFIG_X86_32 1
-#endif
-#endif
-
-#ifdef __x86_64__
-#ifndef CONFIG_X86_64
-#define CONFIG_X86_64 1
-#endif
-#endif
-
-#if defined(__i386__) || defined (__x86_64__)
-#ifndef CONFIG_X86
-#define CONFIG_X86 1
-#endif
-#endif
-
-#ifdef __ia64__
-#ifndef CONFIG_IA64
-#define CONFIG_IA64 1
-#endif
-#endif
-
-#ifdef __PPC__
-#ifndef CONFIG_PPC
-#define CONFIG_PPC 1
-#endif
-#endif
-
-#ifdef __s390__
-#ifndef CONFIG_S390
-#define CONFIG_S390 1
-#endif
-#endif
-
-#endif
+#include <linux/kvm_types.h>
#ifndef _ASM_X86_KVM_PARA_H
#define _ASM_X86_KVM_PARA_H
+#include <linux/types.h>
+
/* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx. It
* should be used to determine that a VM is running under KVM.
*/
@@ -85,103 +48,5 @@ struct kvm_mmu_op_release_pt {
__u64 pt_phys;
};
-#ifdef __KERNEL__
-#include <asm/processor.h>
-
-extern void kvmclock_init(void);
-
-
-/* This instruction is vmcall. On non-VT architectures, it will generate a
- * trap that we will then rewrite to the appropriate instruction.
- */
-#define KVM_HYPERCALL ".byte 0x0f,0x01,0xc1"
-
-/* For KVM hypercalls, a three-byte sequence of either the vmrun or the vmmrun
- * instruction. The hypervisor may replace it with something else but only the
- * instructions are guaranteed to be supported.
- *
- * Up to four arguments may be passed in rbx, rcx, rdx, and rsi respectively.
- * The hypercall number should be placed in rax and the return value will be
- * placed in rax. No other registers will be clobbered unless explicited
- * noted by the particular hypercall.
- */
-
-static inline long kvm_hypercall0(unsigned int nr)
-{
- long ret;
- asm volatile(KVM_HYPERCALL
- : "=a"(ret)
- : "a"(nr)
- : "memory");
- return ret;
-}
-
-static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
-{
- long ret;
- asm volatile(KVM_HYPERCALL
- : "=a"(ret)
- : "a"(nr), "b"(p1)
- : "memory");
- return ret;
-}
-
-static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
- unsigned long p2)
-{
- long ret;
- asm volatile(KVM_HYPERCALL
- : "=a"(ret)
- : "a"(nr), "b"(p1), "c"(p2)
- : "memory");
- return ret;
-}
-
-static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
- unsigned long p2, unsigned long p3)
-{
- long ret;
- asm volatile(KVM_HYPERCALL
- : "=a"(ret)
- : "a"(nr), "b"(p1), "c"(p2), "d"(p3)
- : "memory");
- return ret;
-}
-
-static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
- unsigned long p2, unsigned long p3,
- unsigned long p4)
-{
- long ret;
- asm volatile(KVM_HYPERCALL
- : "=a"(ret)
- : "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4)
- : "memory");
- return ret;
-}
-
-static inline int kvm_para_available(void)
-{
- unsigned int eax, ebx, ecx, edx;
- char signature[13];
-
- cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx);
- memcpy(signature + 0, &ebx, 4);
- memcpy(signature + 4, &ecx, 4);
- memcpy(signature + 8, &edx, 4);
- signature[12] = 0;
-
- if (strcmp(signature, "KVMKVMKVM") == 0)
- return 1;
-
- return 0;
-}
-
-static inline unsigned int kvm_arch_para_features(void)
-{
- return cpuid_eax(KVM_CPUID_FEATURES);
-}
-
-#endif
#endif /* _ASM_X86_KVM_PARA_H */
--
1.6.5.rc2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] qemu-kvm: kvm headers update
2009-10-05 9:46 [PATCH] qemu-kvm: kvm headers update Michael S. Tsirkin
@ 2009-10-05 15:38 ` Avi Kivity
2009-10-05 19:27 ` Michael S. Tsirkin
0 siblings, 1 reply; 7+ messages in thread
From: Avi Kivity @ 2009-10-05 15:38 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: kvm
On 10/05/2009 11:46 AM, Michael S. Tsirkin wrote:
> Update headers from linux 2.6.32-rc1, this mainly
> adds irqfd which will make it easier to add vhost,
> down the line. Also reduce code duplication by including
> kvm_types.h instead of copying it.
>
> Signed-off-by: Michael S. Tsirkin<mst@redhat.com>
> ---
> kvm/include/linux/kvm.h | 131 +++++++++++++++----------------------
> kvm/include/linux/kvm_para.h | 56 +---------------
> kvm/include/x86/asm/kvm.h | 46 +------------
> kvm/include/x86/asm/kvm_para.h | 141 +---------------------------------------
> 4 files changed, 61 insertions(+), 313 deletions(-)
>
> diff --git a/kvm/include/linux/kvm.h b/kvm/include/linux/kvm.h
> index 801865d..2c9a209 100644
> --- a/kvm/include/linux/kvm.h
> +++ b/kvm/include/linux/kvm.h
> @@ -1,43 +1,4 @@
> -#ifndef KVM_UNIFDEF_H
> -#define KVM_UNIFDEF_H
> -
> -#ifdef __i386__
> -#ifndef CONFIG_X86_32
> -#define CONFIG_X86_32 1
> -#endif
> -#endif
> -
> -#ifdef __x86_64__
> -#ifndef CONFIG_X86_64
> -#define CONFIG_X86_64 1
> -#endif
> -#endif
> -
> -#if defined(__i386__) || defined (__x86_64__)
> -#ifndef CONFIG_X86
> -#define CONFIG_X86 1
> -#endif
> -#endif
> -
> -#ifdef __ia64__
> -#ifndef CONFIG_IA64
> -#define CONFIG_IA64 1
> -#endif
> -#endif
> -
> -#ifdef __PPC__
> -#ifndef CONFIG_PPC
> -#define CONFIG_PPC 1
> -#endif
> -#endif
> -
> -#ifdef __s390__
> -#ifndef CONFIG_S390
> -#define CONFIG_S390 1
> -#endif
> -#endif
> -
> -#endif
>
Why are you dropping these? Any dependencies on CONFIG_ will be broken.
Or is this the output of 'make headers_install'?
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] qemu-kvm: kvm headers update
2009-10-05 15:38 ` Avi Kivity
@ 2009-10-05 19:27 ` Michael S. Tsirkin
2009-10-06 9:51 ` Avi Kivity
2009-10-06 9:52 ` Avi Kivity
0 siblings, 2 replies; 7+ messages in thread
From: Michael S. Tsirkin @ 2009-10-05 19:27 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm
On Mon, Oct 05, 2009 at 05:38:35PM +0200, Avi Kivity wrote:
> On 10/05/2009 11:46 AM, Michael S. Tsirkin wrote:
>> Update headers from linux 2.6.32-rc1, this mainly
>> adds irqfd which will make it easier to add vhost,
>> down the line. Also reduce code duplication by including
>> kvm_types.h instead of copying it.
>>
>> Signed-off-by: Michael S. Tsirkin<mst@redhat.com>
>> ---
>> kvm/include/linux/kvm.h | 131 +++++++++++++++----------------------
>> kvm/include/linux/kvm_para.h | 56 +---------------
>> kvm/include/x86/asm/kvm.h | 46 +------------
>> kvm/include/x86/asm/kvm_para.h | 141 +---------------------------------------
>> 4 files changed, 61 insertions(+), 313 deletions(-)
>>
>> diff --git a/kvm/include/linux/kvm.h b/kvm/include/linux/kvm.h
>> index 801865d..2c9a209 100644
>> --- a/kvm/include/linux/kvm.h
>> +++ b/kvm/include/linux/kvm.h
>> @@ -1,43 +1,4 @@
>> -#ifndef KVM_UNIFDEF_H
>> -#define KVM_UNIFDEF_H
>> -
>> -#ifdef __i386__
>> -#ifndef CONFIG_X86_32
>> -#define CONFIG_X86_32 1
>> -#endif
>> -#endif
>> -
>> -#ifdef __x86_64__
>> -#ifndef CONFIG_X86_64
>> -#define CONFIG_X86_64 1
>> -#endif
>> -#endif
>> -
>> -#if defined(__i386__) || defined (__x86_64__)
>> -#ifndef CONFIG_X86
>> -#define CONFIG_X86 1
>> -#endif
>> -#endif
>> -
>> -#ifdef __ia64__
>> -#ifndef CONFIG_IA64
>> -#define CONFIG_IA64 1
>> -#endif
>> -#endif
>> -
>> -#ifdef __PPC__
>> -#ifndef CONFIG_PPC
>> -#define CONFIG_PPC 1
>> -#endif
>> -#endif
>> -
>> -#ifdef __s390__
>> -#ifndef CONFIG_S390
>> -#define CONFIG_S390 1
>> -#endif
>> -#endif
>> -
>> -#endif
>>
>
> Why are you dropping these? Any dependencies on CONFIG_ will be broken.
Instead I included kvm_types which has these.
>
> Or is this the output of 'make headers_install'?
yes. I just added include to kvm_types to add the CONFIG_ stuff.
Or maybe instead we should fix users to depend on the correct ifdefs.
> --
> error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] qemu-kvm: kvm headers update
2009-10-05 19:27 ` Michael S. Tsirkin
@ 2009-10-06 9:51 ` Avi Kivity
2009-10-06 9:52 ` Avi Kivity
1 sibling, 0 replies; 7+ messages in thread
From: Avi Kivity @ 2009-10-06 9:51 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: kvm
On 10/05/2009 09:27 PM, Michael S. Tsirkin wrote:
>
>
>> Why are you dropping these? Any dependencies on CONFIG_ will be broken.
>>
> Instead I included kvm_types which has these.
>
Oh, a side effect. Mind moving the CONFIG_* stuff to a separate header
(which we can include using -include)? Separate patch please.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] qemu-kvm: kvm headers update
2009-10-05 19:27 ` Michael S. Tsirkin
2009-10-06 9:51 ` Avi Kivity
@ 2009-10-06 9:52 ` Avi Kivity
2009-10-06 17:18 ` Michael S. Tsirkin
[not found] ` <200910061909.29977.arnd@arndb.de>
1 sibling, 2 replies; 7+ messages in thread
From: Avi Kivity @ 2009-10-06 9:52 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: kvm
On 10/05/2009 09:27 PM, Michael S. Tsirkin wrote:
>
>
>> Or is this the output of 'make headers_install'?
>>
> yes. I just added include to kvm_types to add the CONFIG_ stuff.
> Or maybe instead we should fix users to depend on the correct ifdefs.
>
>
I think 'make headers_install' results in non-portable headers since it
unifdefs stuff out.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] qemu-kvm: kvm headers update
2009-10-06 9:52 ` Avi Kivity
@ 2009-10-06 17:18 ` Michael S. Tsirkin
[not found] ` <200910061909.29977.arnd@arndb.de>
1 sibling, 0 replies; 7+ messages in thread
From: Michael S. Tsirkin @ 2009-10-06 17:18 UTC (permalink / raw)
To: Avi Kivity; +Cc: kvm
On Tue, Oct 06, 2009 at 11:52:24AM +0200, Avi Kivity wrote:
> On 10/05/2009 09:27 PM, Michael S. Tsirkin wrote:
>>
>>
>>> Or is this the output of 'make headers_install'?
>>>
>> yes. I just added include to kvm_types to add the CONFIG_ stuff.
>> Or maybe instead we should fix users to depend on the correct ifdefs.
>>
>>
>
> I think 'make headers_install' results in non-portable headers since it
> unifdefs stuff out.
Heh, take a look at the diff, if you see issues, let me know.
> --
> error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] qemu-kvm: kvm headers update
[not found] ` <200910061909.29977.arnd@arndb.de>
@ 2009-10-08 13:39 ` Avi Kivity
0 siblings, 0 replies; 7+ messages in thread
From: Avi Kivity @ 2009-10-08 13:39 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: Michael S. Tsirkin, kvm
On 10/06/2009 07:09 PM, Arnd Bergmann wrote:
> On Tuesday 06 October 2009, Avi Kivity wrote:
>
>> On 10/05/2009 09:27 PM, Michael S. Tsirkin wrote:
>>
>>>
>>>
>>>> Or is this the output of 'make headers_install'?
>>>>
>>>>
>>> yes. I just added include to kvm_types to add the CONFIG_ stuff.
>>> Or maybe instead we should fix users to depend on the correct ifdefs.
>>>
>>>
>>>
>> I think 'make headers_install' results in non-portable headers since it
>> unifdefs stuff out.
>>
> The point of 'make headers_install' is to turn kernel headers into
> user space headers, e.g. removing address space annotations
> that are undefined in user space but required in the kernel.
>
> Unifdef only removes parts under #ifdef __KERNEL__, and by extension,
> anything under CONFIG_*, which is not allowed outside of __KERNEL__,
> because it may have an entirely different meaning in user space.
>
> So, for building qemu, we should really use a copy of the 'installed'
> version, but of course not for building the external module.
>
Yeah - kvm headers used to depend on CONFIG_*, but looks like this was
fixed (by me - oh my memory).
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-10-08 13:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-05 9:46 [PATCH] qemu-kvm: kvm headers update Michael S. Tsirkin
2009-10-05 15:38 ` Avi Kivity
2009-10-05 19:27 ` Michael S. Tsirkin
2009-10-06 9:51 ` Avi Kivity
2009-10-06 9:52 ` Avi Kivity
2009-10-06 17:18 ` Michael S. Tsirkin
[not found] ` <200910061909.29977.arnd@arndb.de>
2009-10-08 13:39 ` Avi Kivity
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).