AMPI: Add fsglobals (filesystem) and pipglobals (Process-in-Process) privatization...
[charm.git] / src / libs / ck-libs / ampi / ampi_funcptr_loader.h
1 #ifndef AMPI_FUNCPTR_LOADER_H_
2 #define AMPI_FUNCPTR_LOADER_H_
3
4 #ifndef __STDC_FORMAT_MACROS
5 # define __STDC_FORMAT_MACROS
6 #endif
7 #ifndef __STDC_LIMIT_MACROS
8 # define __STDC_LIMIT_MACROS
9 #endif
10 #include <inttypes.h>
11 #include <limits.h>
12
13 #include "ampiimpl.h"
14 #include "ampi_funcptr.h"
15
16 #define STRINGIZE_INTERNAL(x) #x
17 #define STRINGIZE(x) STRINGIZE_INTERNAL(x)
18
19
20 #ifdef _WIN32
21
22 #ifndef WIN32_LEAN_AND_MEAN
23 # define WIN32_LEAN_AND_MEAN
24 #endif
25 #ifndef NOMINMAX
26 # define NOMINMAX
27 #endif
28 #include <windows.h>
29
30 typedef HMODULE SharedObject;
31
32 #define dlopen(name, flags) LoadLibrary(name)
33 #define dlsym(handle, name) GetProcAddress((handle), (name))
34 #define dlclose(handle) FreeLibrary(handle)
35
36 #else
37
38 #ifndef _GNU_SOURCE
39 # define _GNU_SOURCE
40 #endif
41 #ifndef __USE_GNU
42 # define __USE_GNU
43 #endif
44 #include <dlfcn.h>
45
46 typedef void * SharedObject;
47
48 #endif
49
50
51 int AMPI_FuncPtr_Loader(SharedObject, int, char **);
52
53 #endif /* AMPI_FUNCPTR_LOADER_H_ */