home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / kaffe-0.5p4-src.tgz / tar.out / contrib / kaffe / kaffevm / slib.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  47 lines

  1. /* slib.h
  2.  * Macro'ise the shared library calls to be 'portable'.
  3.  *
  4.  * Copyright (c) 1996 Systems Architecture Research Centre,
  5.  *                 City University, London, UK.
  6.  *
  7.  * See the file "license.terms" for information on usage and redistribution
  8.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  9.  *
  10.  * Written by Tim Wilkinson <tim@sarc.city.ac.uk>, May 1996.
  11.  */
  12.  
  13. #ifndef __slib_h
  14. #define __slib_h
  15.  
  16. #if defined(HAVE_DLFCN_H) 
  17. #include <dlfcn.h>
  18. #endif
  19.  
  20. #if defined(__WIN32__)
  21. #define    dlinit()
  22. #define dlopen(s, m)    LoadLibrary(s)
  23. #define dlsym(l, s)     GetProcAddress(l, s)
  24. #endif 
  25.  
  26. #if defined(HAVE_LIBDLD)
  27. #define    dlinit()                            \
  28.         {                                \
  29.                 static int init_dld = 0;                \
  30.                 if (init_dld == 0) {                    \
  31.                         init_dld = 1;                    \
  32.                         if (dld_init("/usr/local/bin/kaffe") != 0) {    \
  33.                                 return (-1);                \
  34.                         }                        \
  35.                 }                            \
  36.         }
  37. #define dlopen(s, m)    !dld_link(s)
  38. #define dlsym(l, s)     dld_get_func(s)
  39. #endif
  40.  
  41. /* If we don't have an init function, define an empty one */
  42. #if !defined(dlinit)
  43. #define    dlinit()
  44. #endif
  45.  
  46. #endif
  47.