VxWorks Update

1. Remove pthreads enable from VxWorks build.
2. Add mutex wrappers for native VxWorks mutex semaphores.
This commit is contained in:
John Safranek
2018-10-24 10:24:13 -07:00
parent 2208514c98
commit 70d345eda0
3 changed files with 45 additions and 1 deletions

View File

@ -753,6 +753,47 @@ int wolfSSL_CryptHwMutexUnLock(void) {
return BAD_MUTEX_E; return BAD_MUTEX_E;
} }
#elif defined(WOLFSSL_VXWORKS)
int wc_InitMutex(wolfSSL_Mutex* m)
{
if (m) {
if ((*m = semMCreate(0)) != SEM_ID_NULL)
return 0;
}
return BAD_MUTEX_E;
}
int wc_FreeMutex(wolfSSL_Mutex* m)
{
if (m) {
if (semDelete(*m) == OK)
return 0;
}
return BAD_MUTEX_E;
}
int wc_LockMutex(wolfSSL_Mutex* m)
{
if (m) {
if (semTake(*m, WAIT_FOREVER) == OK)
return 0;
}
return BAD_MUTEX_E;
}
int wc_UnLockMutex(wolfSSL_Mutex* m)
{
if (m) {
if (semGive(*m) == OK)
return 0;
}
return BAD_MUTEX_E;
}
#elif defined(THREADX) #elif defined(THREADX)
int wc_InitMutex(wolfSSL_Mutex* m) int wc_InitMutex(wolfSSL_Mutex* m)

View File

@ -398,7 +398,6 @@
#ifdef VXWORKS_SIM #ifdef VXWORKS_SIM
#define TFM_NO_ASM #define TFM_NO_ASM
#endif #endif
#define WOLFSSL_PTHREADS
#define WOLFSSL_HAVE_MIN #define WOLFSSL_HAVE_MIN
#define WOLFSSL_HAVE_MAX #define WOLFSSL_HAVE_MAX
#define USE_FAST_MATH #define USE_FAST_MATH

View File

@ -74,6 +74,8 @@
/* do nothing */ /* do nothing */
#elif defined(FREESCALE_FREE_RTOS) #elif defined(FREESCALE_FREE_RTOS)
#include "fsl_os_abstraction.h" #include "fsl_os_abstraction.h"
#elif defined(WOLFSSL_VXWORKS)
#include <semLib.h>
#elif defined(WOLFSSL_uITRON4) #elif defined(WOLFSSL_uITRON4)
#include "stddef.h" #include "stddef.h"
#include "kernel.h" #include "kernel.h"
@ -151,6 +153,8 @@
typedef MUTEX_STRUCT wolfSSL_Mutex; typedef MUTEX_STRUCT wolfSSL_Mutex;
#elif defined(FREESCALE_FREE_RTOS) #elif defined(FREESCALE_FREE_RTOS)
typedef mutex_t wolfSSL_Mutex; typedef mutex_t wolfSSL_Mutex;
#elif defined(WOLFSSL_VXWORKS)
typedef SEM_ID wolfSSL_Mutex;
#elif defined(WOLFSSL_uITRON4) #elif defined(WOLFSSL_uITRON4)
typedef struct wolfSSL_Mutex { typedef struct wolfSSL_Mutex {
T_CSEM sem ; T_CSEM sem ;