On Thu, Jun 22, 2023 at 7:12 AM Andrew Cooper <andrew.coop...@citrix.com> wrote: > > Xen uses the stdint types. Rearrange the types headers to define the > compatibility __{u,s}$N types in terms of the stdint types, not the other way > around. > > All all supported compilers on architectures other than x86 support the stdint > __*_TYPE__ macros. Move these into the common types.h to avoid them being > duplicated in each architecture. > > For x86 on obsolete compilers, synthesize appropriate types. > > This cleanup has the side effect of removing all use of the undocumented > __signed__ GCC keyword. This is a vestigial remnant of `gcc -traditional` > mode for dialetcs of C prior to the introduction of the signed keyword. > > No functional change. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > CC: Jan Beulich <jbeul...@suse.com> > CC: Roger Pau Monné <roger....@citrix.com> > CC: Wei Liu <w...@xen.org> > CC: Stefano Stabellini <sstabell...@kernel.org> > CC: Julien Grall <jul...@xen.org> > CC: Volodymyr Babchuk <volodymyr_babc...@epam.com> > CC: Bertrand Marquis <bertrand.marq...@arm.com> > CC: Bob Eshleman <bobbyeshle...@gmail.com> > CC: Alistair Francis <alistair.fran...@wdc.com> > CC: Connor Davis <connojda...@gmail.com> > CC: Oleksii Kurochko <oleksii.kuroc...@gmail.com> > CC: Shawn Anastasio <sanasta...@raptorengineering.com> > CC: Timothy Pearson <tpear...@raptorengineering.com> > CC: Roberto Bagnara <roberto.bagn...@bugseng.com> > > I've left the non __ types alone for now. They're complicated mostly by ARM > having differing ideas of what a paddr_t is. > > A different option would be to sort out the stdint types ahead of including > <asm/types.h>, which can either be done by introducing a <asm/stdint.h> or > upping the minimum compiler version for x86; a task which is massively > overdue. > --- > xen/arch/arm/include/asm/types.h | 19 ------------------- > xen/arch/riscv/include/asm/types.h | 19 ------------------- > xen/arch/x86/include/asm/types.h | 21 +++++++++------------ > xen/include/xen/types.h | 28 +++++++++++++++++----------- > 4 files changed, 26 insertions(+), 61 deletions(-) > > diff --git a/xen/arch/arm/include/asm/types.h > b/xen/arch/arm/include/asm/types.h > index fb6618ef247f..545a5e9d1175 100644 > --- a/xen/arch/arm/include/asm/types.h > +++ b/xen/arch/arm/include/asm/types.h > @@ -1,25 +1,6 @@ > #ifndef __ARM_TYPES_H__ > #define __ARM_TYPES_H__ > > -typedef __signed__ char __s8; > -typedef unsigned char __u8; > - > -typedef __signed__ short __s16; > -typedef unsigned short __u16; > - > -typedef __signed__ int __s32; > -typedef unsigned int __u32; > - > -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) > -#if defined(CONFIG_ARM_32) > -typedef __signed__ long long __s64; > -typedef unsigned long long __u64; > -#elif defined (CONFIG_ARM_64) > -typedef __signed__ long __s64; > -typedef unsigned long __u64; > -#endif > -#endif > - > typedef signed char s8; > typedef unsigned char u8; > > diff --git a/xen/arch/riscv/include/asm/types.h > b/xen/arch/riscv/include/asm/types.h > index 0c0ce78c8f6e..93a680a8f323 100644 > --- a/xen/arch/riscv/include/asm/types.h > +++ b/xen/arch/riscv/include/asm/types.h > @@ -1,25 +1,6 @@ > #ifndef __RISCV_TYPES_H__ > #define __RISCV_TYPES_H__ > > -typedef __signed__ char __s8; > -typedef unsigned char __u8; > - > -typedef __signed__ short __s16; > -typedef unsigned short __u16; > - > -typedef __signed__ int __s32; > -typedef unsigned int __u32; > - > -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) > -#if defined(CONFIG_RISCV_32) > -typedef __signed__ long long __s64; > -typedef unsigned long long __u64; > -#elif defined (CONFIG_RISCV_64) > -typedef __signed__ long __s64; > -typedef unsigned long __u64; > -#endif > -#endif > - > typedef signed char s8; > typedef unsigned char u8; > > diff --git a/xen/arch/x86/include/asm/types.h > b/xen/arch/x86/include/asm/types.h > index 2d56aed66782..a5d4f6e9587a 100644 > --- a/xen/arch/x86/include/asm/types.h > +++ b/xen/arch/x86/include/asm/types.h > @@ -1,18 +1,15 @@ > #ifndef __X86_TYPES_H__ > #define __X86_TYPES_H__ > > -typedef __signed__ char __s8; > -typedef unsigned char __u8; > - > -typedef __signed__ short __s16; > -typedef unsigned short __u16; > - > -typedef __signed__ int __s32; > -typedef unsigned int __u32; > - > -#if defined(__GNUC__) && !defined(__STRICT_ANSI__) > -typedef __signed__ long __s64; > -typedef unsigned long __u64; > +#ifndef __INT8_TYPE__ /* GCC <= 4.4 */ > +# define __INT8_TYPE__ signed char > +# define __UINT8_TYPE__ unsigned char > +# define __INT16_TYPE__ short > +# define __UINT16_TYPE__ unsigned short > +# define __INT32_TYPE__ int > +# define __UINT32_TYPE__ unsigned int > +# define __INT64_TYPE__ long > +# define __UINT64_TYPE__ unsigned long > #endif > > typedef signed char s8; > diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h > index 8b22a02eeaa4..4083f1bf18b0 100644 > --- a/xen/include/xen/types.h > +++ b/xen/include/xen/types.h > @@ -11,6 +11,15 @@ typedef signed long ssize_t; > > typedef __PTRDIFF_TYPE__ ptrdiff_t; > > +typedef __INT8_TYPE__ int8_t; > +typedef __UINT8_TYPE__ uint8_t; > +typedef __INT16_TYPE__ int16_t; > +typedef __UINT16_TYPE__ uint16_t; > +typedef __INT32_TYPE__ int32_t; > +typedef __UINT32_TYPE__ uint32_t; > +typedef __INT64_TYPE__ int64_t; > +typedef __UINT64_TYPE__ uint64_t; > + > #define BITS_TO_LONGS(bits) \ > (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG) > #define DECLARE_BITMAP(name,bits) \ > @@ -39,17 +48,14 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; > #define LONG_MIN (-LONG_MAX - 1) > #define ULONG_MAX (~0UL) > > -typedef __u8 uint8_t; > -typedef __s8 int8_t; > - > -typedef __u16 uint16_t; > -typedef __s16 int16_t; > - > -typedef __u32 uint32_t; > -typedef __s32 int32_t; > - > -typedef __u64 uint64_t; > -typedef __s64 int64_t; > +typedef uint8_t __u8; > +typedef int8_t __s8; > +typedef uint16_t __u16; > +typedef int16_t __s16; > +typedef uint32_t __u32; > +typedef int32_t __s32; > +typedef uint64_t __u64; > +typedef int64_t __s64; > > typedef __u16 __le16; > typedef __u16 __be16; > -- > 2.30.2 > >