#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 | |
} |