| #include <dlfcn.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| #include "lkc.h" |
| |
| #define P(name,type,arg) type (*name ## _p) arg |
| #include "lkc_proto.h" |
| #undef P |
| |
| void kconfig_load(void) |
| { |
| void *handle; |
| char *error; |
| |
| handle = dlopen("./libkconfig.so", RTLD_LAZY); |
| if (!handle) { |
| handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY); |
| if (!handle) { |
| fprintf(stderr, "%s\n", dlerror()); |
| exit(1); |
| } |
| } |
| |
| #define P(name,type,arg) \ |
| { \ |
| name ## _p = dlsym(handle, #name); \ |
| if ((error = dlerror())) { \ |
| fprintf(stderr, "%s\n", error); \ |
| exit(1); \ |
| } \ |
| } |
| #include "lkc_proto.h" |
| #undef P |
| } |