1234567891011121314151617181920212223 |
- #ifndef _KSYM_H
- #define _KSYM_H
- #include <linux/kallsyms.h>
- #define __KSYM(name) __ksym_##name
- #define KSYM(name) \
- ({ \
- BUG_ON(!__KSYM(name)); \
- __KSYM(name); \
- })
- #define IMPORT_KSYM(name) __typeof(name)* __KSYM(name)
- #define IMPORT_KSYM_PROTO(name, ret, ...) ret (*__KSYM(name))(__VA_ARGS__)
- #define LOOKUP_KSYM(name) \
- do { \
- __KSYM(name) = (void*)kallsyms_lookup_name(#name); \
- if (!__KSYM(name)) { \
- pr_err("Unknown symbol: " #name "\n"); \
- return -EINVAL; \
- } \
- } while (0)
- #endif
|