1*53ee8cc1Swenshuai.xi #include <dlfcn.h>
2*53ee8cc1Swenshuai.xi #include <stdio.h>
3*53ee8cc1Swenshuai.xi #include <stdlib.h>
4*53ee8cc1Swenshuai.xi
5*53ee8cc1Swenshuai.xi #include "lkc.h"
6*53ee8cc1Swenshuai.xi
7*53ee8cc1Swenshuai.xi #define P(name,type,arg) type (*name ## _p) arg
8*53ee8cc1Swenshuai.xi #include "lkc_proto.h"
9*53ee8cc1Swenshuai.xi #undef P
10*53ee8cc1Swenshuai.xi
kconfig_load(void)11*53ee8cc1Swenshuai.xi void kconfig_load(void)
12*53ee8cc1Swenshuai.xi {
13*53ee8cc1Swenshuai.xi void *handle;
14*53ee8cc1Swenshuai.xi char *error;
15*53ee8cc1Swenshuai.xi
16*53ee8cc1Swenshuai.xi handle = dlopen("./libkconfig.so", RTLD_LAZY);
17*53ee8cc1Swenshuai.xi if (!handle) {
18*53ee8cc1Swenshuai.xi handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY);
19*53ee8cc1Swenshuai.xi if (!handle) {
20*53ee8cc1Swenshuai.xi fprintf(stderr, "%s\n", dlerror());
21*53ee8cc1Swenshuai.xi exit(1);
22*53ee8cc1Swenshuai.xi }
23*53ee8cc1Swenshuai.xi }
24*53ee8cc1Swenshuai.xi
25*53ee8cc1Swenshuai.xi #define P(name,type,arg) \
26*53ee8cc1Swenshuai.xi { \
27*53ee8cc1Swenshuai.xi name ## _p = dlsym(handle, #name); \
28*53ee8cc1Swenshuai.xi if ((error = dlerror())) { \
29*53ee8cc1Swenshuai.xi fprintf(stderr, "%s\n", error); \
30*53ee8cc1Swenshuai.xi exit(1); \
31*53ee8cc1Swenshuai.xi } \
32*53ee8cc1Swenshuai.xi }
33*53ee8cc1Swenshuai.xi #include "lkc_proto.h"
34*53ee8cc1Swenshuai.xi #undef P
35*53ee8cc1Swenshuai.xi }
36