Ian Campbell
2013-Feb-21 15:48 UTC
[PATCH] xen: consolidate implementations of LOG() macro
arm64 is going to add another one shortly, so take control now. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Cc: keir@xen.org Cc: jbeulich@suse.com Cc: tim@xen.org --- xen/arch/arm/arm32/asm-offsets.c | 8 +------- xen/arch/x86/x86_64/asm-offsets.c | 8 +------- xen/include/xen/bitops.h | 7 +++++++ 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c index cc1a72a..6d00c86 100644 --- a/xen/arch/arm/arm32/asm-offsets.c +++ b/xen/arch/arm/arm32/asm-offsets.c @@ -8,6 +8,7 @@ #include <xen/config.h> #include <xen/types.h> #include <xen/sched.h> +#include <xen/bitops.h> #include <public/xen.h> #include <asm/current.h> @@ -18,13 +19,6 @@ #define OFFSET(_sym, _str, _mem) \ DEFINE(_sym, offsetof(_str, _mem)); -/* base-2 logarithm */ -#define __L2(_x) (((_x) & 0x00000002) ? 1 : 0) -#define __L4(_x) (((_x) & 0x0000000c) ? ( 2 + __L2( (_x)>> 2)) : __L2( _x)) -#define __L8(_x) (((_x) & 0x000000f0) ? ( 4 + __L4( (_x)>> 4)) : __L4( _x)) -#define __L16(_x) (((_x) & 0x0000ff00) ? ( 8 + __L8( (_x)>> 8)) : __L8( _x)) -#define LOG_2(_x) (((_x) & 0xffff0000) ? (16 + __L16((_x)>>16)) : __L16(_x)) - void __dummy__(void) { OFFSET(UREGS_sp, struct cpu_user_regs, sp); diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c index b6d1919..6dc832c 100644 --- a/xen/arch/x86/x86_64/asm-offsets.c +++ b/xen/arch/x86/x86_64/asm-offsets.c @@ -8,6 +8,7 @@ #include <xen/config.h> #include <xen/perfc.h> #include <xen/sched.h> +#include <xen/bitops.h> #include <compat/xen.h> #include <asm/fixmap.h> #include <asm/hardirq.h> @@ -20,13 +21,6 @@ #define OFFSET(_sym, _str, _mem) \ DEFINE(_sym, offsetof(_str, _mem)); -/* base-2 logarithm */ -#define __L2(_x) (((_x) & 0x00000002) ? 1 : 0) -#define __L4(_x) (((_x) & 0x0000000c) ? ( 2 + __L2( (_x)>> 2)) : __L2( _x)) -#define __L8(_x) (((_x) & 0x000000f0) ? ( 4 + __L4( (_x)>> 4)) : __L4( _x)) -#define __L16(_x) (((_x) & 0x0000ff00) ? ( 8 + __L8( (_x)>> 8)) : __L8( _x)) -#define LOG_2(_x) (((_x) & 0xffff0000) ? (16 + __L16((_x)>>16)) : __L16(_x)) - void __dummy__(void) { OFFSET(UREGS_r15, struct cpu_user_regs, r15); diff --git a/xen/include/xen/bitops.h b/xen/include/xen/bitops.h index 190d96b..c6a78b6 100644 --- a/xen/include/xen/bitops.h +++ b/xen/include/xen/bitops.h @@ -175,4 +175,11 @@ static inline __u32 ror32(__u32 word, unsigned int shift) return (word >> shift) | (word << (32 - shift)); } +/* base-2 logarithm */ +#define __L2(_x) (((_x) & 0x00000002) ? 1 : 0) +#define __L4(_x) (((_x) & 0x0000000c) ? ( 2 + __L2( (_x)>> 2)) : __L2( _x)) +#define __L8(_x) (((_x) & 0x000000f0) ? ( 4 + __L4( (_x)>> 4)) : __L4( _x)) +#define __L16(_x) (((_x) & 0x0000ff00) ? ( 8 + __L8( (_x)>> 8)) : __L8( _x)) +#define LOG_2(_x) (((_x) & 0xffff0000) ? (16 + __L16((_x)>>16)) : __L16(_x)) + #endif -- 1.7.2.5
Tim Deegan
2013-Feb-21 15:52 UTC
Re: [PATCH] xen: consolidate implementations of LOG() macro
At 15:48 +0000 on 21 Feb (1361461738), Ian Campbell wrote:> arm64 is going to add another one shortly, so take control now. > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > Cc: keir@xen.org > Cc: jbeulich@suse.com > Cc: tim@xen.orgAcked-by: Tim Deegan <tim@xen.org>
Keir Fraser
2013-Feb-21 16:01 UTC
Re: [PATCH] xen: consolidate implementations of LOG() macro
On 21/02/2013 15:52, "Tim Deegan" <tim@xen.org> wrote:> At 15:48 +0000 on 21 Feb (1361461738), Ian Campbell wrote: >> arm64 is going to add another one shortly, so take control now. >> >> Signed-off-by: Ian Campbell <ian.campbell@citrix.com> >> Cc: keir@xen.org >> Cc: jbeulich@suse.com >> Cc: tim@xen.org > > Acked-by: Tim Deegan <tim@xen.org> >Acked-by: Keir Fraser <keir@xen.org>