kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).