Have CRYPTO_MDEBUG_TIME automatically set CRYPTO_MDEBUG,
[openssl.git] / crypto / crypto.h
index 007a4a2f777866bb8bed9a05d85a125af86b1c65..fe8292fcbee1e0bd3128ef7f3aac77dc1e6445e9 100644 (file)
@@ -70,6 +70,10 @@ extern "C" {
 #include <openssl/stack.h>
 #include <openssl/opensslv.h>
 
+#ifdef CHARSET_EBCDIC
+#include <openssl/ebcdic.h>
+#endif
+
 /* Backward compatibility to SSLeay */
 /* This is more to be used to check the correct DLL is being used
  * in the MS world. */
@@ -98,13 +102,16 @@ extern "C" {
 #define        CRYPTO_LOCK_SSL_CTX             12
 #define        CRYPTO_LOCK_SSL_CERT            13
 #define        CRYPTO_LOCK_SSL_SESSION         14
-#define        CRYPTO_LOCK_SSL                 15
-#define        CRYPTO_LOCK_RAND                16
-#define        CRYPTO_LOCK_MALLOC              17
-#define        CRYPTO_LOCK_BIO                 18
-#define        CRYPTO_LOCK_BIO_GETHOSTBYNAME   19
-#define CRYPTO_LOCK_RSA_BLINDING       20
-#define        CRYPTO_NUM_LOCKS                21
+#define        CRYPTO_LOCK_SSL_SESS_CERT       15
+#define        CRYPTO_LOCK_SSL                 16
+#define        CRYPTO_LOCK_RAND                17
+#define        CRYPTO_LOCK_MALLOC              18
+#define        CRYPTO_LOCK_BIO                 19
+#define        CRYPTO_LOCK_GETHOSTBYNAME       20
+#define        CRYPTO_LOCK_GETSERVBYNAME       21
+#define        CRYPTO_LOCK_READDIR             22
+#define        CRYPTO_LOCK_RSA_BLINDING        23
+#define        CRYPTO_NUM_LOCKS                24
 
 #define CRYPTO_LOCK            1
 #define CRYPTO_UNLOCK          2
@@ -193,6 +200,12 @@ typedef struct crypto_ex_data_func_st
        (char *(*)())realloc,\
        (void (*)())free)
 
+#ifdef CRYPTO_MDEBUG_TIME
+# ifndef CRYPTO_MDEBUG /* avoid duplicate #define */
+#  define CRYPTO_MDEBUG
+# endif
+#endif
+
 #ifdef CRYPTO_MDEBUG
 #define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON)
 #define MemCheck_stop()        CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF)
@@ -231,7 +244,7 @@ typedef struct crypto_ex_data_func_st
 #endif /* MDEBUG */
 
 /* Case insensiteve linking causes problems.... */
-#ifdef WIN16
+#if defined(WIN16) || defined(VMS)
 #define ERR_load_CRYPTO_strings        ERR_load_CRYPTOlib_strings
 #endif
 
@@ -249,6 +262,8 @@ void CRYPTO_new_ex_data(STACK *meth, char *obj, CRYPTO_EX_DATA *ad);
 
 int CRYPTO_mem_ctrl(int mode);
 int CRYPTO_get_new_lockid(char *name);
+
+int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */
 void CRYPTO_lock(int mode, int type,const char *file,int line);
 void CRYPTO_set_locking_callback(void (*func)(int mode,int type,
                                              const char *file,int line));