[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/3] xen/types: Correct the definition of uintptr_t
uintptr_t is specified as unsigned int in 32bit, not unsigned long. This is why, when copying inttypes.h from GCC, the use of PRIxPTR and similar is broken for 32bit builds. Fix the identified breakage with ELF_PRPTRVAL Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Tim Deegan <tim@xxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien.grall@xxxxxxx> --- xen/include/xen/libelf.h | 10 +--------- xen/include/xen/types.h | 4 ++++ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/xen/include/xen/libelf.h b/xen/include/xen/libelf.h index 95b5370..d430c83 100644 --- a/xen/include/xen/libelf.h +++ b/xen/include/xen/libelf.h @@ -83,15 +83,7 @@ typedef uintptr_t elf_ptrval; #define ELF_HANDLE_DECL(structname) structname##_handle /* Provides a type declaration for a HANDLE. */ -#ifdef __XEN__ -# define ELF_PRPTRVAL "lx" - /* - * PRIxPTR is misdefined in xen/include/xen/inttypes.h, on 32-bit, - * to "x", when in fact uintptr_t is an unsigned long. - */ -#else -# define ELF_PRPTRVAL PRIxPTR -#endif +#define ELF_PRPTRVAL PRIxPTR /* printf format a la PRId... for a PTRVAL */ #define ELF_DEFINE_HANDLE(structname) \ diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h index c8092d0..44ae81c 100644 --- a/xen/include/xen/types.h +++ b/xen/include/xen/types.h @@ -59,7 +59,11 @@ typedef __u32 __be32; typedef __u64 __le64; typedef __u64 __be64; +#if BITS_PER_LONG == 64 typedef unsigned long uintptr_t; +#elif BITS_PER_LONG == 32 +typedef unsigned int uintptr_t; +#endif typedef bool bool_t; #define test_and_set_bool(b) xchg(&(b), true) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |