linux/scripts/kconfig/kconfig_load.c
<<
>>
Prefs
   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
  11void 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);      \
  28        if ((error = dlerror()))  {             \
  29                fprintf(stderr, "%s\n", error); \
  30                exit(1);                        \
  31        }                                       \
  32}
  33#include "lkc_proto.h"
  34#undef P
  35}
  36