Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include"loader.h"
  2.  
  3. #define EX(x) \
  4.     { "_"#x , (unsigned long)&x }
  5.  
  6. extern void * sbrk(int);
  7. extern void _exit(int);
  8.  
  9. static struct {
  10.  char * name;
  11.  unsigned long ptr;
  12. } kextable[]={
  13.  EX(sbrk),
  14.  EX(errno),
  15.  EX(malloc),
  16.  EX(free),
  17.  EX(realloc),
  18.  EX(atexit),
  19.  EX(exit),
  20.  EX(getenv),
  21.  EX(_exit),
  22. };
  23.  
  24. #define NR_KEX  (sizeof(kextable)/sizeof(kextable[0]))
  25.  
  26. unsigned long kexport_lookup(char * name)
  27. {
  28.  int i,j;
  29.  j=strlen(name);
  30.  for(i=0;i<NR_KEX;i++)
  31.  {
  32.   if(strlen(kextable[i].name)==j &&
  33.      !strncmp(kextable[i].name,name,j)) return kextable[i].ptr;
  34.  }
  35.  return 0;
  36. }
  37.