WCE update, mostly typos.
[openssl.git] / crypto / dso / dso.h
index 2cf6e1ae1270d044d6c41be505526ada6f2b60cb..c9d736654ac54de3e712c8664d3febd55bba08f1 100644 (file)
@@ -95,6 +95,13 @@ extern "C" {
  */
 #define DSO_FLAG_UPCASE_SYMBOL                 0x10
 
+/* This flag loads the library with public symbols.
+ * Meaning: The exported symbols of this library are public
+ * to all libraries loaded after this library.
+ * At the moment only implemented in unix.
+ */
+#define DSO_FLAG_GLOBAL_SYMBOLS                        0x20
+
 
 typedef void (*DSO_FUNC_TYPE)(void);
 
@@ -163,6 +170,9 @@ typedef struct dso_meth_st
        /* [De]Initialisation handlers. */
        int (*init)(DSO *dso);
        int (*finish)(DSO *dso);
+
+       /* Return pathname of the module containing location */
+       int (*pathbyaddr)(void *addr,char *path,int sz);
        } DSO_METHOD;
 
 /**********************************************************************/
@@ -289,6 +299,17 @@ DSO_METHOD *DSO_METHOD_win32(void);
 /* If VMS is defined, use shared images. If not, return NULL. */
 DSO_METHOD *DSO_METHOD_vms(void);
 
+/* This function writes null-terminated pathname of DSO module
+ * containing 'addr' into 'sz' large caller-provided 'path' and
+ * returns the number of characters [including trailing zero]
+ * written to it. If 'sz' is 0 or negative, 'path' is ignored and
+ * required amount of charachers [including trailing zero] to
+ * accomodate pathname is returned. If 'addr' is NULL, then
+ * pathname of cryptolib itself is returned. Negative or zero
+ * return value denotes error.
+ */
+int DSO_pathbyaddr(void *addr,char *path,int sz);
+
 /* BEGIN ERROR CODES */
 /* The following lines are auto generated by the script mkerr.pl. Any changes
  * made after this point may be overwritten when the script is next run.
@@ -323,16 +344,19 @@ void ERR_load_DSO_strings(void);
 #define DSO_F_DSO_SET_FILENAME                          129
 #define DSO_F_DSO_SET_NAME_CONVERTER                    122
 #define DSO_F_DSO_UP_REF                                114
-#define DSO_F_VMS_BIND_VAR                              115
+#define DSO_F_VMS_BIND_SYM                              115
 #define DSO_F_VMS_LOAD                                  116
 #define DSO_F_VMS_MERGER                                133
 #define DSO_F_VMS_UNLOAD                                117
 #define DSO_F_WIN32_BIND_FUNC                           118
 #define DSO_F_WIN32_BIND_VAR                            119
+#define DSO_F_WIN32_JOINER                              135
 #define DSO_F_WIN32_LOAD                                120
 #define DSO_F_WIN32_MERGER                              134
 #define DSO_F_WIN32_NAME_CONVERTER                      125
+#define DSO_F_WIN32_SPLITTER                            136
 #define DSO_F_WIN32_UNLOAD                              121
+#define DSO_F_PATHBYADDR                                137
 
 /* Reason codes. */
 #define DSO_R_CTRL_FAILED                               100
@@ -345,6 +369,7 @@ void ERR_load_DSO_strings(void);
 #define DSO_R_LOAD_FAILED                               103
 #define DSO_R_NAME_TRANSLATION_FAILED                   109
 #define DSO_R_NO_FILENAME                               111
+#define DSO_R_NO_FILE_SPECIFICATION                     116
 #define DSO_R_NULL_HANDLE                               104
 #define DSO_R_SET_FILENAME_FAILED                       112
 #define DSO_R_STACK_ERROR                               105