X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=wrapper%2Fkallsyms.h;h=2e5f123c1ef6147fcc2fe8ecbad959ea19407a6c;hb=1efb917a94b34e724a061668f3d722bfcde640c5;hp=e60fe363818243d78885aa15961256d66f3ec4ec;hpb=9f36eaed6f91d5897924b551b44d1edd8cee00e2;p=lttng-modules.git diff --git a/wrapper/kallsyms.h b/wrapper/kallsyms.h index e60fe363..2e5f123c 100644 --- a/wrapper/kallsyms.h +++ b/wrapper/kallsyms.h @@ -14,23 +14,46 @@ #define _LTTNG_WRAPPER_KALLSYMS_H #include +#include + +/* CONFIG_PPC64_ELF_ABI_V1/V2 were introduced in v5.19 */ +#if defined(CONFIG_PPC64_ELF_ABI_V2) || (defined(CONFIG_PPC64) && defined(CONFIG_CPU_LITTLE_ENDIAN)) +#define LTTNG_CONFIG_PPC64_ELF_ABI_V2 +#endif +#if defined(CONFIG_PPC64_ELF_ABI_V1) || (defined(CONFIG_PPC64) && defined(CONFIG_CPU_BIG_ENDIAN)) +#define LTTNG_CONFIG_PPC64_ELF_ABI_V1 +#endif /* * PowerPC ABIv1 needs KALLSYMS_ALL to get the function descriptor, * which is needed to perform the function call. */ -#if defined(CONFIG_PPC64) && (!defined(_CALL_ELF) || _CALL_ELF < 2) +#ifdef LTTNG_CONFIG_PPC64_ELF_ABI_V1 # ifndef CONFIG_KALLSYMS_ALL # error "LTTng-modules requires CONFIG_KALLSYMS_ALL on PowerPC ABIv1" # endif #endif +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) + +unsigned long wrapper_kallsyms_lookup_name(const char *name); + +#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) */ + +static inline +unsigned long wrapper_kallsyms_lookup_name(const char *name) +{ + return kallsyms_lookup_name(name); +} + +#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,7,0)) */ + static inline unsigned long kallsyms_lookup_funcptr(const char *name) { unsigned long addr; - addr = kallsyms_lookup_name(name); + addr = wrapper_kallsyms_lookup_name(name); #ifdef CONFIG_ARM #ifdef CONFIG_THUMB2_KERNEL if (addr) @@ -43,6 +66,7 @@ unsigned long kallsyms_lookup_funcptr(const char *name) static inline unsigned long kallsyms_lookup_dataptr(const char *name) { - return kallsyms_lookup_name(name); + return wrapper_kallsyms_lookup_name(name); } + #endif /* _LTTNG_WRAPPER_KALLSYMS_H */