diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index 6295cc09b..d660f2292 100644 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -664,7 +664,7 @@ int z_fs_close(XFILE file) #endif /* !NO_FILESYSTEM && !WOLFSSL_ZEPHYR */ - +#if !defined(WOLFSSL_USER_MUTEX) wolfSSL_Mutex* wc_InitAndAllocMutex(void) { wolfSSL_Mutex* m = (wolfSSL_Mutex*) XMALLOC(sizeof(wolfSSL_Mutex), NULL, @@ -682,6 +682,7 @@ wolfSSL_Mutex* wc_InitAndAllocMutex(void) return m; } +#endif #ifdef USE_WOLF_STRTOK /* String token (delim) search. If str is null use nextp. */ @@ -1862,6 +1863,17 @@ int wolfSSL_CryptHwMutexUnLock(void) { return 0; } +#elif defined(WOLFSSL_USER_MUTEX) + + /* Use user own mutex */ + + /* + int wc_InitMutex(wolfSSL_Mutex* m) { ... } + int wc_FreeMutex(wolfSSL_Mutex *m) { ... } + int wc_LockMutex(wolfSSL_Mutex *m) { ... } + int wc_UnLockMutex(wolfSSL_Mutex *m) { ... } + */ + #else #warning No mutex handling defined diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index d3deb59db..da451d799 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -156,8 +156,10 @@ #else #ifndef SINGLE_THREADED - #define WOLFSSL_PTHREADS - #include + #ifndef WOLFSSL_USER_MUTEX + #define WOLFSSL_PTHREADS + #include + #endif #endif #if (defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS)) && \ !defined(NO_FILESYSTEM) @@ -238,6 +240,8 @@ typedef struct k_mutex wolfSSL_Mutex; #elif defined(WOLFSSL_TELIT_M2MB) typedef M2MB_OS_MTX_HANDLE wolfSSL_Mutex; + #elif defined(WOLFSSL_USER_MUTEX) + /* typedef User_Mutex wolfSSL_Mutex; */ #else #error Need a mutex type in multithreaded mode #endif /* USE_WINDOWS_API */