diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2016-10-12 23:06:17 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2016-10-15 11:50:41 +0200 |
commit | 422196759f93df249db38619f136cabd5dcf42cd (patch) | |
tree | 1e5846507af0f8f1bc7ca294ccfb0d4ac3392d17 /drivers/builtin_openssl2/crypto/threads | |
parent | d9a291f6411f2e571c181da0ac89f550ba73f681 (diff) |
openssl: Move to a module and split thirdparty lib
Same rationale as the previous commits.
Diffstat (limited to 'drivers/builtin_openssl2/crypto/threads')
11 files changed, 0 insertions, 531 deletions
diff --git a/drivers/builtin_openssl2/crypto/threads/README b/drivers/builtin_openssl2/crypto/threads/README deleted file mode 100644 index df6b26e146..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/README +++ /dev/null @@ -1,14 +0,0 @@ -Mutithreading testing area. - -Since this stuff is very very platorm specific, this is not part of the -normal build. Have a read of doc/threads.doc. - -mttest will do some testing and will currently build under Windows NT/95, -Solaris and Linux. The IRIX stuff is not finished. - -I have tested this program on a 12 CPU ultra sparc box (solaris 2.5.1) -and things seem to work ok. - -The Linux pthreads package can be retrieved from -http://www.mit.edu:8001/people/proven/pthreads.html - diff --git a/drivers/builtin_openssl2/crypto/threads/netware.bat b/drivers/builtin_openssl2/crypto/threads/netware.bat deleted file mode 100644 index 0b3eca3caf..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/netware.bat +++ /dev/null @@ -1,79 +0,0 @@ -@echo off -rem batch file to build multi-thread test ( mttest.nlm ) - -rem command line arguments: -rem debug => build using debug settings - -rem -rem After building, copy mttest.nlm to the server and run it, you'll probably -rem want to redirect stdout and stderr. An example command line would be -rem "mttest.nlm -thread 20 -loops 10 -CAfile \openssl\apps\server.pem >mttest.out 2>mttest.err" -rem - -del mttest.nlm - -set BLD_DEBUG= -set CFLAGS= -set LFLAGS= -set LIBS= - -if "%1" == "DEBUG" set BLD_DEBUG=YES -if "%1" == "debug" set BLD_DEBUG=YES - -if "%MWCIncludes%" == "" goto inc_error -if "%PRELUDE%" == "" goto prelude_error -if "%IMPORTS%" == "" goto imports_error - -set CFLAGS=-c -I..\..\outinc_nw -nosyspath -DOPENSSL_SYS_NETWARE -opt off -g -sym internal -maxerrors 20 - -if "%BLD_DEBUG%" == "YES" set LIBS=..\..\out_nw.dbg\ssl.lib ..\..\out_nw.dbg\crypto.lib -if "%BLD_DEBUG%" == "" set LIBS=..\..\out_nw\ssl.lib ..\..\out_nw\crypto.lib - -set LFLAGS=-msgstyle gcc -zerobss -stacksize 32768 -nostdlib -sym internal - -rem generate command file for metrowerks -echo. -echo Generating Metrowerks command file: mttest.def -echo # dynamically generated command file for metrowerks build > mttest.def -echo IMPORT @%IMPORTS%\clib.imp >> mttest.def -echo IMPORT @%IMPORTS%\threads.imp >> mttest.def -echo IMPORT @%IMPORTS%\ws2nlm.imp >> mttest.def -echo IMPORT GetProcessSwitchCount >> mttest.def -echo MODULE clib >> mttest.def - -rem compile -echo. -echo Compiling mttest.c -mwccnlm.exe mttest.c %CFLAGS% -if errorlevel 1 goto end - -rem link -echo. -echo Linking mttest.nlm -mwldnlm.exe %LFLAGS% -screenname mttest -commandfile mttest.def mttest.o "%PRELUDE%" %LIBS% -o mttest.nlm -if errorlevel 1 goto end - -goto end - -:inc_error -echo. -echo Environment variable MWCIncludes is not set - see install.nw -goto end - -:prelude_error -echo. -echo Environment variable PRELUDE is not set - see install.nw -goto end - -:imports_error -echo. -echo Environment variable IMPORTS is not set - see install.nw -goto end - - -:end -set BLD_DEBUG= -set CFLAGS= -set LFLAGS= -set LIBS= - diff --git a/drivers/builtin_openssl2/crypto/threads/profile.sh b/drivers/builtin_openssl2/crypto/threads/profile.sh deleted file mode 100644 index 6e3e342fc0..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/profile.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -/bin/rm -f mttest -cc -p -DSOLARIS -I../../include -g mttest.c -o mttest -L/usr/lib/libc -ldl -L../.. -lthread -lssl -lcrypto -lnsl -lsocket - diff --git a/drivers/builtin_openssl2/crypto/threads/ptest.bat b/drivers/builtin_openssl2/crypto/threads/ptest.bat deleted file mode 100755 index 4071b5ffea..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/ptest.bat +++ /dev/null @@ -1,4 +0,0 @@ -del mttest.exe - -purify cl /O2 -DWIN32 /MD -I..\..\out mttest.c /Femttest ..\..\out\ssl32.lib ..\..\out\crypt32.lib - diff --git a/drivers/builtin_openssl2/crypto/threads/pthread.sh b/drivers/builtin_openssl2/crypto/threads/pthread.sh deleted file mode 100644 index f1c49821d2..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/pthread.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# -# build using pthreads -# -# http://www.mit.edu:8001/people/proven/pthreads.html -# -/bin/rm -f mttest -pgcc -DPTHREADS -I../../include -g mttest.c -o mttest -L../.. -lssl -lcrypto - diff --git a/drivers/builtin_openssl2/crypto/threads/pthread2.sh b/drivers/builtin_openssl2/crypto/threads/pthread2.sh deleted file mode 100755 index ec945c451b..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/pthread2.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# -# build using pthreads where it's already built into the system -# -/bin/rm -f mttest -gcc -DPTHREADS -I../../include -g mttest.c -o mttest -L../.. -lssl -lcrypto -lpthread -ldl diff --git a/drivers/builtin_openssl2/crypto/threads/pthreads-vms.com b/drivers/builtin_openssl2/crypto/threads/pthreads-vms.com deleted file mode 100644 index 1cf92bdf57..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/pthreads-vms.com +++ /dev/null @@ -1,14 +0,0 @@ -$! To compile mttest on VMS. -$! -$! WARNING: only tested with DEC C so far. -$ -$ if (f$getsyi("cpu").lt.128) -$ then -$ arch := VAX -$ else -$ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") -$ if (arch .eqs. "") then arch = "UNK" -$ endif -$ define/user openssl [--.include.openssl] -$ cc/def=PTHREADS mttest.c -$ link mttest,[--.'arch'.exe.ssl]libssl/lib,[--.'arch'.exe.crypto]libcrypto/lib diff --git a/drivers/builtin_openssl2/crypto/threads/purify.sh b/drivers/builtin_openssl2/crypto/threads/purify.sh deleted file mode 100644 index 6d44fe26b7..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/purify.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -/bin/rm -f mttest -purify cc -DSOLARIS -I../../include -g mttest.c -o mttest -L../.. -lthread -lssl -lcrypto -lnsl -lsocket - diff --git a/drivers/builtin_openssl2/crypto/threads/solaris.sh b/drivers/builtin_openssl2/crypto/threads/solaris.sh deleted file mode 100644 index bc93094a27..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/solaris.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -/bin/rm -f mttest -cc -DSOLARIS -I../../include -g mttest.c -o mttest -L../.. -lthread -lssl -lcrypto -lnsl -lsocket - diff --git a/drivers/builtin_openssl2/crypto/threads/th-lock.c b/drivers/builtin_openssl2/crypto/threads/th-lock.c deleted file mode 100644 index cc8cf2581d..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/th-lock.c +++ /dev/null @@ -1,389 +0,0 @@ -/* crypto/threads/th-lock.c */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#ifdef LINUX -# include <typedefs.h> -#endif -#ifdef OPENSSL_SYS_WIN32 -# include <windows.h> -#endif -#ifdef SOLARIS -# include <synch.h> -# include <thread.h> -#endif -#ifdef IRIX -# include <ulocks.h> -# include <sys/prctl.h> -#endif -#ifdef PTHREADS -# include <pthread.h> -#endif -#include <openssl/lhash.h> -#include <openssl/crypto.h> -#include <openssl/buffer.h> -#include "../../e_os.h" -#include <openssl/x509.h> -#include <openssl/ssl.h> -#include <openssl/err.h> - -void CRYPTO_thread_setup(void); -void CRYPTO_thread_cleanup(void); - -static void irix_locking_callback(int mode, int type, char *file, int line); -static void solaris_locking_callback(int mode, int type, char *file, - int line); -static void win32_locking_callback(int mode, int type, char *file, int line); -static void pthreads_locking_callback(int mode, int type, char *file, - int line); - -static unsigned long irix_thread_id(void); -static unsigned long solaris_thread_id(void); -static unsigned long pthreads_thread_id(void); - -/*- - * usage: - * CRYPTO_thread_setup(); - * application code - * CRYPTO_thread_cleanup(); - */ - -#define THREAD_STACK_SIZE (16*1024) - -#ifdef OPENSSL_SYS_WIN32 - -static HANDLE *lock_cs; - -void CRYPTO_thread_setup(void) -{ - int i; - - lock_cs = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(HANDLE)); - if (!lock_cs) { - /* Nothing we can do about this...void function! */ - return; - } - for (i = 0; i < CRYPTO_num_locks(); i++) { - lock_cs[i] = CreateMutex(NULL, FALSE, NULL); - } - - CRYPTO_set_locking_callback((void (*)(int, int, char *, int)) - win32_locking_callback); - /* id callback defined */ - return (1); -} - -static void CRYPTO_thread_cleanup(void) -{ - int i; - - CRYPTO_set_locking_callback(NULL); - for (i = 0; i < CRYPTO_num_locks(); i++) - CloseHandle(lock_cs[i]); - OPENSSL_free(lock_cs); -} - -void win32_locking_callback(int mode, int type, char *file, int line) -{ - if (mode & CRYPTO_LOCK) { - WaitForSingleObject(lock_cs[type], INFINITE); - } else { - ReleaseMutex(lock_cs[type]); - } -} - -#endif /* OPENSSL_SYS_WIN32 */ - -#ifdef SOLARIS - -# define USE_MUTEX - -# ifdef USE_MUTEX -static mutex_t *lock_cs; -# else -static rwlock_t *lock_cs; -# endif -static long *lock_count; - -void CRYPTO_thread_setup(void) -{ - int i; - -# ifdef USE_MUTEX - lock_cs = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(mutex_t)); -# else - lock_cs = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(rwlock_t)); -# endif - if (!lock_cs) { - /* Nothing we can do about this...void function! */ - return; - } - lock_count = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(long)); - for (i = 0; i < CRYPTO_num_locks(); i++) { - lock_count[i] = 0; -# ifdef USE_MUTEX - mutex_init(&(lock_cs[i]), USYNC_THREAD, NULL); -# else - rwlock_init(&(lock_cs[i]), USYNC_THREAD, NULL); -# endif - } - - CRYPTO_set_id_callback((unsigned long (*)())solaris_thread_id); - CRYPTO_set_locking_callback((void (*)())solaris_locking_callback); -} - -void CRYPTO_thread_cleanup(void) -{ - int i; - - CRYPTO_set_locking_callback(NULL); - for (i = 0; i < CRYPTO_num_locks(); i++) { -# ifdef USE_MUTEX - mutex_destroy(&(lock_cs[i])); -# else - rwlock_destroy(&(lock_cs[i])); -# endif - } - OPENSSL_free(lock_cs); - OPENSSL_free(lock_count); -} - -void solaris_locking_callback(int mode, int type, char *file, int line) -{ -# if 0 - fprintf(stderr, "thread=%4d mode=%s lock=%s %s:%d\n", - CRYPTO_thread_id(), - (mode & CRYPTO_LOCK) ? "l" : "u", - (type & CRYPTO_READ) ? "r" : "w", file, line); -# endif - -# if 0 - if (CRYPTO_LOCK_SSL_CERT == type) - fprintf(stderr, "(t,m,f,l) %ld %d %s %d\n", - CRYPTO_thread_id(), mode, file, line); -# endif - if (mode & CRYPTO_LOCK) { -# ifdef USE_MUTEX - mutex_lock(&(lock_cs[type])); -# else - if (mode & CRYPTO_READ) - rw_rdlock(&(lock_cs[type])); - else - rw_wrlock(&(lock_cs[type])); -# endif - lock_count[type]++; - } else { -# ifdef USE_MUTEX - mutex_unlock(&(lock_cs[type])); -# else - rw_unlock(&(lock_cs[type])); -# endif - } -} - -unsigned long solaris_thread_id(void) -{ - unsigned long ret; - - ret = (unsigned long)thr_self(); - return (ret); -} -#endif /* SOLARIS */ - -#ifdef IRIX -/* I don't think this works..... */ - -static usptr_t *arena; -static usema_t **lock_cs; - -void CRYPTO_thread_setup(void) -{ - int i; - char filename[20]; - - lock_cs = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(usema_t *)); - if (!lock_cs) { - /* Nothing we can do about this...void function! */ - return; - } - - strcpy(filename, "/tmp/mttest.XXXXXX"); - mktemp(filename); - - usconfig(CONF_STHREADIOOFF); - usconfig(CONF_STHREADMALLOCOFF); - usconfig(CONF_INITUSERS, 100); - usconfig(CONF_LOCKTYPE, US_DEBUGPLUS); - arena = usinit(filename); - unlink(filename); - - for (i = 0; i < CRYPTO_num_locks(); i++) { - lock_cs[i] = usnewsema(arena, 1); - } - - CRYPTO_set_id_callback((unsigned long (*)())irix_thread_id); - CRYPTO_set_locking_callback((void (*)())irix_locking_callback); -} - -void CRYPTO_thread_cleanup(void) -{ - int i; - - CRYPTO_set_locking_callback(NULL); - for (i = 0; i < CRYPTO_num_locks(); i++) { - char buf[10]; - - sprintf(buf, "%2d:", i); - usdumpsema(lock_cs[i], stdout, buf); - usfreesema(lock_cs[i], arena); - } - OPENSSL_free(lock_cs); -} - -void irix_locking_callback(int mode, int type, char *file, int line) -{ - if (mode & CRYPTO_LOCK) { - uspsema(lock_cs[type]); - } else { - usvsema(lock_cs[type]); - } -} - -unsigned long irix_thread_id(void) -{ - unsigned long ret; - - ret = (unsigned long)getpid(); - return (ret); -} -#endif /* IRIX */ - -/* Linux and a few others */ -#ifdef PTHREADS - -static pthread_mutex_t *lock_cs; -static long *lock_count; - -void CRYPTO_thread_setup(void) -{ - int i; - - lock_cs = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(pthread_mutex_t)); - lock_count = OPENSSL_malloc(CRYPTO_num_locks() * sizeof(long)); - if (!lock_cs || !lock_count) { - /* Nothing we can do about this...void function! */ - if (lock_cs) - OPENSSL_free(lock_cs); - if (lock_count) - OPENSSL_free(lock_count); - return; - } - for (i = 0; i < CRYPTO_num_locks(); i++) { - lock_count[i] = 0; - pthread_mutex_init(&(lock_cs[i]), NULL); - } - - CRYPTO_set_id_callback((unsigned long (*)())pthreads_thread_id); - CRYPTO_set_locking_callback((void (*)())pthreads_locking_callback); -} - -void thread_cleanup(void) -{ - int i; - - CRYPTO_set_locking_callback(NULL); - for (i = 0; i < CRYPTO_num_locks(); i++) { - pthread_mutex_destroy(&(lock_cs[i])); - } - OPENSSL_free(lock_cs); - OPENSSL_free(lock_count); -} - -void pthreads_locking_callback(int mode, int type, char *file, int line) -{ -# if 0 - fprintf(stderr, "thread=%4d mode=%s lock=%s %s:%d\n", - CRYPTO_thread_id(), - (mode & CRYPTO_LOCK) ? "l" : "u", - (type & CRYPTO_READ) ? "r" : "w", file, line); -# endif -# if 0 - if (CRYPTO_LOCK_SSL_CERT == type) - fprintf(stderr, "(t,m,f,l) %ld %d %s %d\n", - CRYPTO_thread_id(), mode, file, line); -# endif - if (mode & CRYPTO_LOCK) { - pthread_mutex_lock(&(lock_cs[type])); - lock_count[type]++; - } else { - pthread_mutex_unlock(&(lock_cs[type])); - } -} - -unsigned long pthreads_thread_id(void) -{ - unsigned long ret; - - ret = (unsigned long)pthread_self(); - return (ret); -} - -#endif /* PTHREADS */ diff --git a/drivers/builtin_openssl2/crypto/threads/win32.bat b/drivers/builtin_openssl2/crypto/threads/win32.bat deleted file mode 100755 index ee6da80a07..0000000000 --- a/drivers/builtin_openssl2/crypto/threads/win32.bat +++ /dev/null @@ -1,4 +0,0 @@ -del mttest.exe - -cl /O2 -DWIN32 /MD -I..\..\out mttest.c /Femttest ..\..\out\ssleay32.lib ..\..\out\libeay32.lib - |