* [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Remove atomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
[not found] <200705101500.l4AF0N4b027027@latara.uk.xensource.com>
@ 2007-05-10 16:35 ` Alex Williamson
2007-05-10 20:01 ` [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, " Christian Limpach
0 siblings, 1 reply; 3+ messages in thread
From: Alex Williamson @ 2007-05-10 16:35 UTC (permalink / raw)
To: xen-devel; +Cc: Christian.Limpach
On Thu, 2007-05-10 at 16:00 +0100, Xen staging patchbot-unstable wrote:
> # HG changeset patch
> # User Christian Limpach <Christian.Limpach@xensource.com>
> # Date 1178809115 -3600
> # Node ID 8f510bf078c7745696547b5245ba95ac5a6192bc
> # Parent a4467c0971ba0e876637478b7f5e37ce344768c0
> [qemu] Remove atomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
> users.
ia64intrin.h is all but empty in gcc 4.1.2, so there's no point in
including it. dm-exec is still making use of a few of these too, but I
guess it's easy enough to inline them there. Patch below. Thanks,
Alex
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
---
diff -r 07b1e917c9d8 tools/ioemu/exec-all.h
--- a/tools/ioemu/exec-all.h Thu May 10 16:22:27 2007 +0100
+++ b/tools/ioemu/exec-all.h Thu May 10 10:13:17 2007 -0600
@@ -474,8 +474,6 @@ static inline int testandset (int *p)
#endif
#ifdef __ia64
-#include <ia64intrin.h>
-
static inline int testandset (int *p)
{
return __sync_lock_test_and_set (p, 1);
diff -r 07b1e917c9d8 tools/ioemu/target-i386-dm/exec-dm.c
--- a/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10 16:22:27 2007 +0100
+++ b/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10 10:11:38 2007 -0600
@@ -360,6 +360,11 @@ CPUReadMemoryFunc **cpu_get_io_memory_re
}
#ifdef __ia64__
+
+#define __ia64_fc(addr) asm volatile ("fc %0" :: "r"(addr) : "memory")
+#define ia64_sync_i() asm volatile (";; sync.i" ::: "memory")
+#define ia64_srlz_i() asm volatile (";; srlz.i ;;" ::: "memory")
+
/* IA64 has seperate I/D cache, with coherence maintained by DMA controller.
* So to emulate right behavior that guest OS is assumed, we need to flush
* I/D cache here.
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
2007-05-10 16:35 ` [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Remove atomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its Alex Williamson
@ 2007-05-10 20:01 ` Christian Limpach
2007-05-10 21:09 ` Alex Williamson
0 siblings, 1 reply; 3+ messages in thread
From: Christian Limpach @ 2007-05-10 20:01 UTC (permalink / raw)
To: Alex Williamson, xen-devel
> ia64intrin.h is all but empty in gcc 4.1.2, so there's no point in
> including it. dm-exec is still making use of a few of these
> too, but I
> guess it's easy enough to inline them there. Patch below. Thanks,
Would it also work to just leave the include in exec-all.h? I was
confused and thought that it was a local include which is why I put
#ifndef CONFIG_DM around all the testandset definitions.
So, if I remove the #ifndef CONFIG_DM, anything including exec-all.h
should still compile, right? Do I still need the extra #define's in
that case?
christian
>
> Alex
>
> Signed-off-by: Alex Williamson <alex.williamson@hp.com>
> ---
>
> diff -r 07b1e917c9d8 tools/ioemu/exec-all.h
> --- a/tools/ioemu/exec-all.h Thu May 10 16:22:27 2007 +0100
> +++ b/tools/ioemu/exec-all.h Thu May 10 10:13:17 2007 -0600
> @@ -474,8 +474,6 @@ static inline int testandset (int *p)
> #endif
>
> #ifdef __ia64
> -#include <ia64intrin.h>
> -
> static inline int testandset (int *p)
> {
> return __sync_lock_test_and_set (p, 1);
> diff -r 07b1e917c9d8 tools/ioemu/target-i386-dm/exec-dm.c
> --- a/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10
> 16:22:27 2007 +0100
> +++ b/tools/ioemu/target-i386-dm/exec-dm.c Thu May 10
> 10:11:38 2007 -0600
> @@ -360,6 +360,11 @@ CPUReadMemoryFunc **cpu_get_io_memory_re
> }
>
> #ifdef __ia64__
> +
> +#define __ia64_fc(addr) asm volatile ("fc %0" ::
> "r"(addr) : "memory")
> +#define ia64_sync_i() asm volatile (";; sync.i" ::: "memory")
> +#define ia64_srlz_i() asm volatile (";; srlz.i ;;"
> ::: "memory")
> +
> /* IA64 has seperate I/D cache, with coherence maintained by
> DMA controller.
> * So to emulate right behavior that guest OS is assumed, we
> need to flush
> * I/D cache here.
>
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its
2007-05-10 20:01 ` [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, " Christian Limpach
@ 2007-05-10 21:09 ` Alex Williamson
0 siblings, 0 replies; 3+ messages in thread
From: Alex Williamson @ 2007-05-10 21:09 UTC (permalink / raw)
To: Christian Limpach; +Cc: xen-devel
On Thu, 2007-05-10 at 13:01 -0700, Christian Limpach wrote:
> > ia64intrin.h is all but empty in gcc 4.1.2, so there's no point in
> > including it. dm-exec is still making use of a few of these
> > too, but I
> > guess it's easy enough to inline them there. Patch below. Thanks,
>
> Would it also work to just leave the include in exec-all.h? I was
> confused and thought that it was a local include which is why I put
> #ifndef CONFIG_DM around all the testandset definitions.
>
> So, if I remove the #ifndef CONFIG_DM, anything including exec-all.h
> should still compile, right? Do I still need the extra #define's in
> that case?
ia64intrin.h is basically empty, so making it included for the
dm-exec build doesn't really help. The defines still need to come from
somewhere. We could replace <ia64intrin.h> with <asm/gcc_intrin.h>, but
for this trivial case, I'd rather not get tied up including kernel
headers in userspace tools. Thanks,
Alex
--
Alex Williamson HP Open Source & Linux Org.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-05-10 21:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200705101500.l4AF0N4b027027@latara.uk.xensource.com>
2007-05-10 16:35 ` [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Remove atomic_set_bit, atomic_clear_bit and ia64_intrinsic.h and its Alex Williamson
2007-05-10 20:01 ` [PATCH] Re: [Xen-staging] [xen-unstable] [qemu] Removeatomic_set_bit, " Christian Limpach
2007-05-10 21:09 ` Alex Williamson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.