Messages in this thread Patch in this message | | | From | Adrian Hunter <> | Subject | [PATCH 1/5] perf tools: Add get_unaligned_leNN() | Date | Thu, 5 Oct 2023 22:04:47 +0300 |
| |
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.
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
| |