#ifndef _KSYM_H #define _KSYM_H #include #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