1 /**
2  * D header file for POSIX.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8  */
9 module tango.stdc.posix.dlfcn;
10 
11 private import tango.stdc.posix.config;
12 
13 extern (C):
14 
15 //
16 // XOpen (XSI)
17 //
18 /*
19 RTLD_LAZY
20 RTLD_NOW
21 RTLD_GLOBAL
22 RTLD_LOCAL
23 
24 int   dlclose(void*);
25 char* dlerror();
26 void* dlopen(in char*, int);
27 void* dlsym(void*, in char*);
28 */
29 
30 version( linux )
31 {
32     const RTLD_LAZY     = 0x00001;
33     const RTLD_NOW      = 0x00002;
34     const RTLD_GLOBAL   = 0x00100;
35     const RTLD_LOCAL    = 0x00000;
36 
37     int   dlclose(void*);
38     char* dlerror();
39     void* dlopen(in char*, int);
40     void* dlsym(void*, in char*);
41 }
42 else version( darwin )
43 {
44     const RTLD_LAZY     = 0x00001;
45     const RTLD_NOW      = 0x00002;
46     const RTLD_GLOBAL   = 0x00100;
47     const RTLD_LOCAL    = 0x00000;
48 
49     int   dlclose(void*);
50     char* dlerror();
51     void* dlopen(in char*, int);
52     void* dlsym(void*, in char*);
53 }
54 else version( FreeBSD )
55 {
56     const RTLD_LAZY     = 1;
57     const RTLD_NOW      = 2;
58     const RTLD_GLOBAL   = 0x100;
59     const RTLD_LOCAL    = 0;
60 
61     int   dlclose(void*);
62     char* dlerror();
63     void* dlopen(in char*, int);
64     void* dlsym(void*, in char*);
65 }
66 else version( solaris )
67 {
68     const RTLD_LAZY     = 0x00001;
69     const RTLD_NOW      = 0x00002;
70     const RTLD_GLOBAL   = 0x00100;
71     const RTLD_LOCAL    = 0x00000;
72 
73     int   dlclose(void*);
74     char* dlerror();
75     void* dlopen(in char*, int);
76     void* dlsym(void*, in char*);
77 }