62 #include <openssl/crypto.h>
69 #define DSO_CTRL_GET_FLAGS 1
70 #define DSO_CTRL_SET_FLAGS 2
71 #define DSO_CTRL_OR_FLAGS 3
84 #define DSO_FLAG_NO_NAME_TRANSLATION 0x01
91 #define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02
96 #define DSO_FLAG_UPCASE_SYMBOL 0x10
103 #define DSO_FLAG_GLOBAL_SYMBOLS 0x20
106 typedef void (*DSO_FUNC_TYPE)(void);
116 typedef char* (*DSO_NAME_CONVERTER_FUNC)(
DSO *,
const char *);
132 typedef char* (*DSO_MERGER_FUNC)(DSO *,
const char *,
const char *);
140 int (*dso_load)(DSO *dso);
142 int (*dso_unload)(DSO *dso);
144 void *(*dso_bind_var)(DSO *dso,
const char *symname);
151 DSO_FUNC_TYPE (*dso_bind_func)(DSO *dso,
const char *symname);
156 int (*dso_unbind_var)(DSO *dso,
char *symname,
void *symptr);
158 int (*dso_unbind_func)(DSO *dso,
char *symname, DSO_FUNC_TYPE symptr);
162 long (*dso_ctrl)(DSO *dso,
int cmd,
long larg,
void *parg);
165 DSO_NAME_CONVERTER_FUNC dso_name_converter;
168 DSO_MERGER_FUNC dso_merger;
171 int (*init)(DSO *dso);
172 int (*finish)(DSO *dso);
195 DSO_NAME_CONVERTER_FUNC name_converter;
199 DSO_MERGER_FUNC merger;
212 char *loaded_filename;
218 int DSO_free(DSO *dso);
219 int DSO_flags(DSO *dso);
220 int DSO_up_ref(DSO *dso);
221 long DSO_ctrl(DSO *dso,
int cmd,
long larg,
void *parg);
227 int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb,
228 DSO_NAME_CONVERTER_FUNC *oldcb);
231 const char *DSO_get_filename(DSO *dso);
232 int DSO_set_filename(DSO *dso,
const char *filename);
241 char *DSO_convert_filename(DSO *dso,
const char *filename);
246 char *DSO_merge(DSO *dso,
const char *filespec1,
const char *filespec2);
254 const char *DSO_get_loaded_filename(DSO *dso);
256 void DSO_set_default_method(
DSO_METHOD *meth);
266 DSO *DSO_load(DSO *dso,
const char *filename,
DSO_METHOD *meth,
int flags);
269 void *DSO_bind_var(DSO *dso,
const char *symname);
272 DSO_FUNC_TYPE DSO_bind_func(DSO *dso,
const char *symname);
303 void ERR_load_DSO_strings(
void);
308 #define DSO_F_DLFCN_BIND_FUNC 100
309 #define DSO_F_DLFCN_BIND_VAR 101
310 #define DSO_F_DLFCN_LOAD 102
311 #define DSO_F_DLFCN_MERGER 130
312 #define DSO_F_DLFCN_NAME_CONVERTER 123
313 #define DSO_F_DLFCN_UNLOAD 103
314 #define DSO_F_DL_BIND_FUNC 104
315 #define DSO_F_DL_BIND_VAR 105
316 #define DSO_F_DL_LOAD 106
317 #define DSO_F_DL_MERGER 131
318 #define DSO_F_DL_NAME_CONVERTER 124
319 #define DSO_F_DL_UNLOAD 107
320 #define DSO_F_DSO_BIND_FUNC 108
321 #define DSO_F_DSO_BIND_VAR 109
322 #define DSO_F_DSO_CONVERT_FILENAME 126
323 #define DSO_F_DSO_CTRL 110
324 #define DSO_F_DSO_FREE 111
325 #define DSO_F_DSO_GET_FILENAME 127
326 #define DSO_F_DSO_GET_LOADED_FILENAME 128
327 #define DSO_F_DSO_LOAD 112
328 #define DSO_F_DSO_MERGE 132
329 #define DSO_F_DSO_NEW_METHOD 113
330 #define DSO_F_DSO_SET_FILENAME 129
331 #define DSO_F_DSO_SET_NAME_CONVERTER 122
332 #define DSO_F_DSO_UP_REF 114
333 #define DSO_F_VMS_BIND_SYM 115
334 #define DSO_F_VMS_LOAD 116
335 #define DSO_F_VMS_MERGER 133
336 #define DSO_F_VMS_UNLOAD 117
337 #define DSO_F_WIN32_BIND_FUNC 118
338 #define DSO_F_WIN32_BIND_VAR 119
339 #define DSO_F_WIN32_JOINER 135
340 #define DSO_F_WIN32_LOAD 120
341 #define DSO_F_WIN32_MERGER 134
342 #define DSO_F_WIN32_NAME_CONVERTER 125
343 #define DSO_F_WIN32_SPLITTER 136
344 #define DSO_F_WIN32_UNLOAD 121
347 #define DSO_R_CTRL_FAILED 100
348 #define DSO_R_DSO_ALREADY_LOADED 110
349 #define DSO_R_EMPTY_FILE_STRUCTURE 113
350 #define DSO_R_FAILURE 114
351 #define DSO_R_FILENAME_TOO_BIG 101
352 #define DSO_R_FINISH_FAILED 102
353 #define DSO_R_INCORRECT_FILE_SYNTAX 115
354 #define DSO_R_LOAD_FAILED 103
355 #define DSO_R_NAME_TRANSLATION_FAILED 109
356 #define DSO_R_NO_FILENAME 111
357 #define DSO_R_NO_FILE_SPECIFICATION 116
358 #define DSO_R_NULL_HANDLE 104
359 #define DSO_R_SET_FILENAME_FAILED 112
360 #define DSO_R_STACK_ERROR 105
361 #define DSO_R_SYM_FAILURE 106
362 #define DSO_R_UNLOAD_FAILED 107
363 #define DSO_R_UNSUPPORTED 108