[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 03/16] xen: Implement common byte{order,swap}.h
On 28.03.2025 14:44, Andrew Cooper wrote: > From: Lin Liu <lin.liu@xxxxxxxxxx> > > The current swab??() infrastructure is unecesserily complicated, and can be > repated entirely with compiler builtins. > > All supported compilers provide __BYTE_ORDER__ and __builtin_bswap??(). > > Nothing in Xen cares about the values of __{BIG,LITTLE}_ENDIAN; just that one > of them is defined. Therefore, centralise their definitions in xen/config.h And even if we cared somewhere, __ORDER_{BIG,LITTLE}_ENDIAN__ supply them just fine. > Signed-off-by: Lin Liu <lin.liu@xxxxxxxxxx> > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> with two nits taken care of: > --- /dev/null > +++ b/xen/include/xen/byteorder.h > @@ -0,0 +1,44 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later */ > +#ifndef XEN_BYTEORDER_H > +#define XEN_BYTEORDER_H > + > +#include <xen/byteswap.h> > +#include <xen/types.h> It's stdint.h that's needed here, not types.h? > +#if defined(__LITTLE_ENDIAN) > + > +# define cpu_to_le64(x) (uint64_t)(x) > +# define le64_to_cpu(x) (uint64_t)(x) > +# define cpu_to_le32(x) (uint32_t)(x) > +# define le32_to_cpu(x) (uint32_t)(x) > +# define cpu_to_le16(x) (uint16_t)(x) > +# define le16_to_cpu(x) (uint16_t)(x) (Not just) for Misra these all need another pair of parentheses around the entire expressions. > +# define cpu_to_be64(x) bswap64(x) > +# define be64_to_cpu(x) bswap64(x) > +# define cpu_to_be32(x) bswap32(x) > +# define be32_to_cpu(x) bswap32(x) > +# define cpu_to_be16(x) bswap16(x) > +# define be16_to_cpu(x) bswap16(x) > + > +#elif defined(__BIG_ENDIAN) > + > +# define cpu_to_le64(x) bswap64(x) > +# define le64_to_cpu(x) bswap64(x) > +# define cpu_to_le32(x) bswap32(x) > +# define le32_to_cpu(x) bswap32(x) > +# define cpu_to_le16(x) bswap16(x) > +# define le16_to_cpu(x) bswap16(x) > + > +# define cpu_to_be64(x) (uint64_t)(x) > +# define be64_to_cpu(x) (uint64_t)(x) > +# define cpu_to_be32(x) (uint32_t)(x) > +# define be32_to_cpu(x) (uint32_t)(x) > +# define cpu_to_be16(x) (uint16_t)(x) > +# define be16_to_cpu(x) (uint16_t)(x) Same here, even if Eclair likely wouldn't spot this right now. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |