Main Page | Class List | Directories | File List | Class Members | File Members

dlopen.c File Reference

#include <global.h>
#include "fdlib.h"
#include "pike_dlfcn.h"
#include "pike_memory.h"
#include "pike_error.h"
#include "pike_macros.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <malloc.h>
#include <windows.h>
#include <memory.h>
#include <sys/stat.h>
#include <assert.h>
#include <math.h>
#include <tchar.h>
#include <interpret.h>
#include <callback.h>
#include <io.h>
#include <fcntl.h>

Classes

struct  Sym
struct  Htable
struct  DLHandle
struct  DLLList
struct  COFF
union  COFFname
struct  COFFsection
struct  COFFSymbol
struct  COFFReloc
union  PEAOUT
struct  DLTempData
struct  DLObjectTempData

Defines

#define DL_INTERNAL
#define ACCEPT_MEMORY_LEAK(X)
#define PAD_DATA   0
#define REALLY_FLUSH()
#define FLUSH()
#define DO_IF_DLDEBUG(X)
#define SYMBOL_PREFIX   "_"
#define EFENCE_ADD(X)
#define EFENCE_ALIGN(X, SIZE, AL)   X
#define EFENCE_PROT_PREV_PAGE(X)
#define INT8   char
#define INT16   short
#define INT32   int
#define ptrdiff_t   long
#define STRTOL   strtol
#define RTLD_GLOBAL   1
#define RTLD_LAZY   0
#define RTLD_NOW   0
#define fd_open   open
#define fd_close   close
#define fd_read   read
#define fd_RDONLY   O_RDONLY
#define fd_BINARY   O_BINARY
#define i1(X)   (data->buffer[(X)])
#define i2(X)   (i1((X))|(i1((X)+1)<<8))
#define i4(X)
#define i8(X)
#define COFF_SECT_NOLOAD   (1<<1)
#define COFF_SECT_LNK_INFO   0x200
#define COFF_SECT_MEM_LNK_REMOVE   (1<<11)
#define COFF_SECT_MEM_DISCARDABLE   (1<<25)
#define COFF_SECT_MEM_EXECUTE   (1<<29)
#define COFF_SECT_MEM_READ   (1<<30)
#define COFF_SECT_MEM_WRITE   (1<<31)
#define COFF_SYMBOL_EXTERN   2
#define COFF_SYMBOL_WEAK_EXTERN   105
#define COFFReloc_I386_dir32   6
#define COFFReloc_I386_dir32nb   7
#define COFFReloc_I386_sect   10
#define COFFReloc_I386_sectrel   11
#define COFFReloc_I386_rel32   20
#define COFFReloc_IA64_imm14   1
#define COFFReloc_IA64_imm22   2
#define COFFReloc_IA64_imm64   3
#define COFFReloc_IA64_dir32   4
#define COFFReloc_IA64_dir64   5
#define COFFReloc_IA64_pcrel21b   6
#define COFFReloc_IA64_pcrel21m   7
#define COFFReloc_IA64_pcrel21f   8
#define COFFReloc_IA64_gprel22   9
#define COFFReloc_IA64_ltoff22   10
#define COFFReloc_IA64_sect   11
#define COFFReloc_IA64_secrel22   12
#define COFFReloc_IA64_secrel64i   13
#define COFFReloc_IA64_secrel32   14
#define COFFReloc_IA64_ltoff64   15
#define COFFReloc_IA64_dir32nb   16
#define COFFReloc_IA64_addend   31
#define PEAOUT_GET(P, E)   ((P).pe32.aout.magic==0x20b? (P).pe32plus.E : (P).pe32.E)
#define data   (tmp+e)
#define SYMBOLS(X)   (*(struct COFFSymbol *)(18 * (X) + (char *)data->symbols))
#define RELOCS(X)   (*(struct COFFReloc *)( 10*(X) + (char *)relocs ))
#define UNIMPLEMENTED_REL(X)
#define data   (&objtmp)
#define EXPORT(X)
#define EXPORT_AS(X, Y)

Functions

_CRTIMP void __cdecl _assert (void *, void *, unsigned)
long hashmem (char *mem, ptrdiff_t size)
size_t STRNLEN (char *s, size_t maxlen)
void * dlsym (struct DLHandle *handle, char *name)
const char * dlerror (void)
DLHandledlopen (const char *name, int flags)
int dlclose (struct DLHandle *h)
void dl_dummy (void)

Define Documentation

#define ACCEPT_MEMORY_LEAK  ) 
 

#define COFF_SECT_LNK_INFO   0x200
 

#define COFF_SECT_MEM_DISCARDABLE   (1<<25)
 

#define COFF_SECT_MEM_EXECUTE   (1<<29)
 

#define COFF_SECT_MEM_LNK_REMOVE   (1<<11)
 

#define COFF_SECT_MEM_READ   (1<<30)
 

#define COFF_SECT_MEM_WRITE   (1<<31)
 

#define COFF_SECT_NOLOAD   (1<<1)
 

#define COFF_SYMBOL_EXTERN   2
 

#define COFF_SYMBOL_WEAK_EXTERN   105
 

#define COFFReloc_I386_dir32   6
 

#define COFFReloc_I386_dir32nb   7
 

#define COFFReloc_I386_rel32   20
 

#define COFFReloc_I386_sect   10
 

#define COFFReloc_I386_sectrel   11
 

#define COFFReloc_IA64_addend   31
 

#define COFFReloc_IA64_dir32   4
 

#define COFFReloc_IA64_dir32nb   16
 

#define COFFReloc_IA64_dir64   5
 

#define COFFReloc_IA64_gprel22   9
 

#define COFFReloc_IA64_imm14   1
 

#define COFFReloc_IA64_imm22   2
 

#define COFFReloc_IA64_imm64   3
 

#define COFFReloc_IA64_ltoff22   10
 

#define COFFReloc_IA64_ltoff64   15
 

#define COFFReloc_IA64_pcrel21b   6
 

#define COFFReloc_IA64_pcrel21f   8
 

#define COFFReloc_IA64_pcrel21m   7
 

#define COFFReloc_IA64_secrel22   12
 

#define COFFReloc_IA64_secrel32   14
 

#define COFFReloc_IA64_secrel64i   13
 

#define COFFReloc_IA64_sect   11
 

#define data   (&objtmp)
 

#define data   (tmp+e)
 

#define DL_INTERNAL
 

#define DO_IF_DLDEBUG  ) 
 

#define EFENCE_ADD  ) 
 

#define EFENCE_ALIGN X,
SIZE,
AL   )     X
 

#define EFENCE_PROT_PREV_PAGE  ) 
 

#define EXPORT  ) 
 

Value:

DO_IF_DLDEBUG( fprintf(stderr,"EXP: %s\n",#X); ) \
  htable_put(global_dlhandle.htable, SYMBOL_PREFIX #X, \
             sizeof(SYMBOL_PREFIX #X)-sizeof(""), &X, 1)

#define EXPORT_AS X,
 ) 
 

Value:

DO_IF_DLDEBUG( fprintf(stderr,"EXP: %s = %s\n",#X,#Y); ) \
  htable_put(global_dlhandle.htable, SYMBOL_PREFIX #X, \
             sizeof(SYMBOL_PREFIX #X)-sizeof(""), &Y, 1)

#define fd_BINARY   O_BINARY
 

#define fd_close   close
 

#define fd_open   open
 

#define fd_RDONLY   O_RDONLY
 

#define fd_read   read
 

 
#define FLUSH  ) 
 

#define i1  )     (data->buffer[(X)])
 

#define i2  )     (i1((X))|(i1((X)+1)<<8))
 

#define i4  ) 
 

Value:

(i1((X))|(i1((X)+1)<<8)|\
                (i1((X)+2)<<16)|(i1((X)+3)<<24))

#define i8  ) 
 

Value:

(i1((X))|(i1((X)+1)<<8)|\
                (i1((X)+2)<<16)|(i1((X)+3)<<24))

#define INT16   short
 

#define INT32   int
 

#define INT8   char
 

#define PAD_DATA   0
 

#define PEAOUT_GET P,
 )     ((P).pe32.aout.magic==0x20b? (P).pe32plus.E : (P).pe32.E)
 

#define ptrdiff_t   long
 

 
#define REALLY_FLUSH  ) 
 

#define RELOCS  )     (*(struct COFFReloc *)( 10*(X) + (char *)relocs ))
 

#define RTLD_GLOBAL   1
 

#define RTLD_LAZY   0
 

#define RTLD_NOW   0
 

#define STRTOL   strtol
 

#define SYMBOL_PREFIX   "_"
 

#define SYMBOLS  )     (*(struct COFFSymbol *)(18 * (X) + (char *)data->symbols))
 

#define UNIMPLEMENTED_REL  ) 
 

Value:

case X:                                                         \
          sprintf(err, "Unimplemented relocation type: " #X " (%d)", X);\
          dlerr = err;                                                  \
          return -1


Function Documentation

_CRTIMP void __cdecl _assert void *  ,
void *  ,
unsigned 
 

void dl_dummy void   ) 
 

int dlclose struct DLHandle h  ) 
 

const char* dlerror void   ) 
 

struct DLHandle* dlopen const char *  name,
int  flags
 

void* dlsym struct DLHandle handle,
char *  name
 

long hashmem char *  mem,
ptrdiff_t  size
 

size_t STRNLEN char *  s,
size_t  maxlen
 


Generated on Fri Jul 22 23:44:28 2005 for Pike by  doxygen 1.3.9.1