Messages in this thread | | | Date | Thu, 5 Oct 2023 16:38:05 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 1/5] perf tools: Add get_unaligned_leNN() |
| |
Em Thu, Oct 05, 2023 at 10:04:47PM +0300, Adrian Hunter escreveu: > Add get_unaligned_le16(), get_unaligned_le32 and get_unaligned_le64, same > as include/asm-generic/unaligned.h. > > Use diagnostic pragmas to ignore -Wpacked used by perf build.
Can we get the tools copy of include/asm-generic/unaligned.h closer and have it in check-headers.sh?
- Arnaldo
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> > --- > tools/include/asm-generic/unaligned.h | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/tools/include/asm-generic/unaligned.h b/tools/include/asm-generic/unaligned.h > index 47387c607035..9140bb4e16c6 100644 > --- a/tools/include/asm-generic/unaligned.h > +++ b/tools/include/asm-generic/unaligned.h > @@ -6,6 +6,9 @@ > #ifndef __TOOLS_LINUX_ASM_GENERIC_UNALIGNED_H > #define __TOOLS_LINUX_ASM_GENERIC_UNALIGNED_H > > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wpacked" > + > #define __get_unaligned_t(type, ptr) ({ \ > const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr); \ > __pptr->x; \ > @@ -19,5 +22,22 @@ > #define get_unaligned(ptr) __get_unaligned_t(typeof(*(ptr)), (ptr)) > #define put_unaligned(val, ptr) __put_unaligned_t(typeof(*(ptr)), (val), (ptr)) > > +static inline u16 get_unaligned_le16(const void *p) > +{ > + return le16_to_cpu(__get_unaligned_t(__le16, p)); > +} > + > +static inline u32 get_unaligned_le32(const void *p) > +{ > + return le32_to_cpu(__get_unaligned_t(__le32, p)); > +} > + > +static inline u64 get_unaligned_le64(const void *p) > +{ > + return le64_to_cpu(__get_unaligned_t(__le64, p)); > +} > + > +#pragma GCC diagnostic pop > + > #endif /* __TOOLS_LINUX_ASM_GENERIC_UNALIGNED_H */ > > -- > 2.34.1 >
--
- Arnaldo
| |