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);
175 int (*pathbyaddr)(
void *addr,
char *path,
int sz);
177 void *(*globallookup)(
const char *symname);
191 STACK_OF(
void) *meth_data;
200 DSO_NAME_CONVERTER_FUNC name_converter;
204 DSO_MERGER_FUNC merger;
217 char *loaded_filename;
223 int DSO_free(DSO *dso);
224 int DSO_flags(DSO *dso);
225 int DSO_up_ref(DSO *dso);
226 long DSO_ctrl(DSO *dso,
int cmd,
long larg,
void *parg);
232 int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb,
233 DSO_NAME_CONVERTER_FUNC *oldcb);
236 const char *DSO_get_filename(DSO *dso);
237 int DSO_set_filename(DSO *dso,
const char *filename);
246 char *DSO_convert_filename(DSO *dso,
const char *filename);
251 char *DSO_merge(DSO *dso,
const char *filespec1,
const char *filespec2);
259 const char *DSO_get_loaded_filename(DSO *dso);
261 void DSO_set_default_method(
DSO_METHOD *meth);
271 DSO *DSO_load(DSO *dso,
const char *filename,
DSO_METHOD *meth,
int flags);
274 void *DSO_bind_var(DSO *dso,
const char *symname);
277 DSO_FUNC_TYPE DSO_bind_func(DSO *dso,
const char *symname);
313 int DSO_pathbyaddr(
void *addr,
char *path,
int sz);
323 void *DSO_global_lookup(
const char *name);
332 void ERR_load_DSO_strings(
void);
337 #define DSO_F_BEOS_BIND_FUNC 144
338 #define DSO_F_BEOS_BIND_VAR 145
339 #define DSO_F_BEOS_LOAD 146
340 #define DSO_F_BEOS_NAME_CONVERTER 147
341 #define DSO_F_BEOS_UNLOAD 148
342 #define DSO_F_DLFCN_BIND_FUNC 100
343 #define DSO_F_DLFCN_BIND_VAR 101
344 #define DSO_F_DLFCN_LOAD 102
345 #define DSO_F_DLFCN_MERGER 130
346 #define DSO_F_DLFCN_NAME_CONVERTER 123
347 #define DSO_F_DLFCN_UNLOAD 103
348 #define DSO_F_DL_BIND_FUNC 104
349 #define DSO_F_DL_BIND_VAR 105
350 #define DSO_F_DL_LOAD 106
351 #define DSO_F_DL_MERGER 131
352 #define DSO_F_DL_NAME_CONVERTER 124
353 #define DSO_F_DL_UNLOAD 107
354 #define DSO_F_DSO_BIND_FUNC 108
355 #define DSO_F_DSO_BIND_VAR 109
356 #define DSO_F_DSO_CONVERT_FILENAME 126
357 #define DSO_F_DSO_CTRL 110
358 #define DSO_F_DSO_FREE 111
359 #define DSO_F_DSO_GET_FILENAME 127
360 #define DSO_F_DSO_GET_LOADED_FILENAME 128
361 #define DSO_F_DSO_GLOBAL_LOOKUP 139
362 #define DSO_F_DSO_LOAD 112
363 #define DSO_F_DSO_MERGE 132
364 #define DSO_F_DSO_NEW_METHOD 113
365 #define DSO_F_DSO_PATHBYADDR 140
366 #define DSO_F_DSO_SET_FILENAME 129
367 #define DSO_F_DSO_SET_NAME_CONVERTER 122
368 #define DSO_F_DSO_UP_REF 114
369 #define DSO_F_GLOBAL_LOOKUP_FUNC 138
370 #define DSO_F_PATHBYADDR 137
371 #define DSO_F_VMS_BIND_SYM 115
372 #define DSO_F_VMS_LOAD 116
373 #define DSO_F_VMS_MERGER 133
374 #define DSO_F_VMS_UNLOAD 117
375 #define DSO_F_WIN32_BIND_FUNC 118
376 #define DSO_F_WIN32_BIND_VAR 119
377 #define DSO_F_WIN32_GLOBALLOOKUP 142
378 #define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143
379 #define DSO_F_WIN32_JOINER 135
380 #define DSO_F_WIN32_LOAD 120
381 #define DSO_F_WIN32_MERGER 134
382 #define DSO_F_WIN32_NAME_CONVERTER 125
383 #define DSO_F_WIN32_PATHBYADDR 141
384 #define DSO_F_WIN32_SPLITTER 136
385 #define DSO_F_WIN32_UNLOAD 121
388 #define DSO_R_CTRL_FAILED 100
389 #define DSO_R_DSO_ALREADY_LOADED 110
390 #define DSO_R_EMPTY_FILE_STRUCTURE 113
391 #define DSO_R_FAILURE 114
392 #define DSO_R_FILENAME_TOO_BIG 101
393 #define DSO_R_FINISH_FAILED 102
394 #define DSO_R_INCORRECT_FILE_SYNTAX 115
395 #define DSO_R_LOAD_FAILED 103
396 #define DSO_R_NAME_TRANSLATION_FAILED 109
397 #define DSO_R_NO_FILENAME 111
398 #define DSO_R_NO_FILE_SPECIFICATION 116
399 #define DSO_R_NULL_HANDLE 104
400 #define DSO_R_SET_FILENAME_FAILED 112
401 #define DSO_R_STACK_ERROR 105
402 #define DSO_R_SYM_FAILURE 106
403 #define DSO_R_UNLOAD_FAILED 107
404 #define DSO_R_UNSUPPORTED 108