On Mon, Feb 06, 2023 at 05:28:14PM +0000, Jonathan Cameron wrote: > From: Ira Weiny <ira.we...@intel.com> > > Gcc requires constant versions of cpu_to_le* calls. > > Add a 64 bit version. > > Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> > Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org> > Reviewed-by: Gregory Price <gregory.pr...@memverge.com> > Tested-by: Gregory Price <gregory.pr...@memverge.com> > Signed-off-by: Ira Weiny <ira.we...@intel.com> > Signed-off-by: Jonathan Cameron <jonathan.came...@huawei.com> >
Reviewed-by: Fan Ni <fan...@samsung.com> > --- > v2: Update comment (Philippe) > --- > include/qemu/bswap.h | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h > index 3cbe52246b..eb3bcf2520 100644 > --- a/include/qemu/bswap.h > +++ b/include/qemu/bswap.h > @@ -129,11 +129,20 @@ CPU_CONVERT(le, 32, uint32_t) > CPU_CONVERT(le, 64, uint64_t) > > /* > - * Same as cpu_to_le{16,32}, except that gcc will figure the result is > + * Same as cpu_to_le{16,32,64}, except that gcc will figure the result is > * a compile-time constant if you pass in a constant. So this can be > * used to initialize static variables. > */ > #if HOST_BIG_ENDIAN > +# define const_le64(_x) \ > + ((((_x) & 0x00000000000000ffU) << 56) | \ > + (((_x) & 0x000000000000ff00U) << 40) | \ > + (((_x) & 0x0000000000ff0000U) << 24) | \ > + (((_x) & 0x00000000ff000000U) << 8) | \ > + (((_x) & 0x000000ff00000000U) >> 8) | \ > + (((_x) & 0x0000ff0000000000U) >> 24) | \ > + (((_x) & 0x00ff000000000000U) >> 40) | \ > + (((_x) & 0xff00000000000000U) >> 56)) > # define const_le32(_x) \ > ((((_x) & 0x000000ffU) << 24) | \ > (((_x) & 0x0000ff00U) << 8) | \ > @@ -143,6 +152,7 @@ CPU_CONVERT(le, 64, uint64_t) > ((((_x) & 0x00ff) << 8) | \ > (((_x) & 0xff00) >> 8)) > #else > +# define const_le64(_x) (_x) > # define const_le32(_x) (_x) > # define const_le16(_x) (_x) > #endif > -- > 2.37.2 > >