Mercurial > irccd
annotate extern/libcompat/win/dlfcn/dlfcn.h @ 1005:ea9cf916330d
misc: fix permissions
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 16 Feb 2021 19:54:16 +0100 |
parents | 21a91311c8ea |
children |
rev | line source |
---|---|
948
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * dlfcn-win32 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * Copyright (c) 2007 Ramiro Polla |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * Permission is hereby granted, free of charge, to any person obtaining a copy |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * of this software and associated documentation files (the "Software"), to deal |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * in the Software without restriction, including without limitation the rights |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * copies of the Software, and to permit persons to whom the Software is |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * furnished to do so, subject to the following conditions: |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * The above copyright notice and this permission notice shall be included in |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * all copies or substantial portions of the Software. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 * THE SOFTWARE. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 #ifndef DLFCN_H |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #define DLFCN_H |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 #ifdef __cplusplus |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 extern "C" { |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 #endif |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 #if defined(DLFCN_BUILD_DLL) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 # define DLFCN_EXPORT __declspec(dllexport) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 #else |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 # define DLFCN_EXPORT |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 #endif |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 /* Relocations are performed when the object is loaded. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 #define RTLD_NOW 0 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 /* Relocations are performed at an implementation-defined time. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 * Windows API does not support lazy symbol resolving (when first reference |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 * to a given symbol occurs). So RTLD_LAZY implementation is same as RTLD_NOW. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 #define RTLD_LAZY RTLD_NOW |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 /* All symbols are available for relocation processing of other modules. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 #define RTLD_GLOBAL (1 << 1) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 /* All symbols are not made available for relocation processing by other modules. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 #define RTLD_LOCAL (1 << 2) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 /* These two were added in The Open Group Base Specifications Issue 6. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 * Note: All other RTLD_* flags in any dlfcn.h are not standard compliant. |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 /* The symbol lookup happens in the normal global scope. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 #define RTLD_DEFAULT ((void *)0) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 /* Specifies the next object after this one that defines name. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 #define RTLD_NEXT ((void *)-1) |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 /* Open a symbol table handle. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 DLFCN_EXPORT void *dlopen(const char *file, int mode); |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 /* Close a symbol table handle. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 DLFCN_EXPORT int dlclose(void *handle); |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 /* Get the address of a symbol from a symbol table handle. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 DLFCN_EXPORT void *dlsym(void *handle, const char *name); |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 /* Get diagnostic information. */ |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 DLFCN_EXPORT char *dlerror(void); |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 #ifdef __cplusplus |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 } |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 #endif |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 |
21a91311c8ea
cmake: switch back, GNU make is painful
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 #endif /* DLFCN_H */ |