#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