Denis Vlasenko | 7d219aa | 2006-10-05 10:17:08 +0000 | [diff] [blame] | 1 | #include <dlfcn.h> |
| 2 | #include <stdio.h> |
| 3 | #include <stdlib.h> |
| 4 | |
| 5 | #include "lkc.h" |
| 6 | |
| 7 | #define P(name,type,arg) type (*name ## _p) arg |
| 8 | #include "lkc_proto.h" |
| 9 | #undef P |
| 10 | |
| 11 | void kconfig_load(void) |
| 12 | { |
| 13 | void *handle; |
| 14 | char *error; |
| 15 | |
| 16 | handle = dlopen("./libkconfig.so", RTLD_LAZY); |
| 17 | if (!handle) { |
| 18 | handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY); |
| 19 | if (!handle) { |
| 20 | fprintf(stderr, "%s\n", dlerror()); |
| 21 | exit(1); |
| 22 | } |
| 23 | } |
| 24 | |
| 25 | #define P(name,type,arg) \ |
| 26 | { \ |
| 27 | name ## _p = dlsym(handle, #name); \ |
Denis Vlasenko | 4b924f3 | 2007-05-30 00:29:55 +0000 | [diff] [blame] | 28 | if ((error = dlerror())) { \ |
| 29 | fprintf(stderr, "%s\n", error); \ |
Denis Vlasenko | 7d219aa | 2006-10-05 10:17:08 +0000 | [diff] [blame] | 30 | exit(1); \ |
| 31 | } \ |
| 32 | } |
| 33 | #include "lkc_proto.h" |
| 34 | #undef P |
| 35 | } |