diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index 165bc4a70..2d5d6186b 100644 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -1232,14 +1232,23 @@ int wolfSSL_CryptHwMutexUnLock(void) } #elif defined(MICRIUM) + #if (OS_VERSION < 50000) + #define MICRIUM_ERR_TYPE OS_ERR + #define MICRIUM_ERR_NONE OS_ERR_NONE + #define MICRIUM_ERR_CODE(err) err + #else + #define MICRIUM_ERR_TYPE RTOS_ERR + #define MICRIUM_ERR_NONE RTOS_ERR_NONE + #define MICRIUM_ERR_CODE(err) RTOS_ERR_CODE_GET(err) + #endif int wc_InitMutex(wolfSSL_Mutex* m) { - OS_ERR err; + MICRIUM_ERR_TYPE err; OSMutexCreate(m, "wolfSSL Mutex", &err); - if (err == OS_ERR_NONE) + if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE) return 0; else return BAD_MUTEX_E; @@ -1248,11 +1257,11 @@ int wolfSSL_CryptHwMutexUnLock(void) int wc_FreeMutex(wolfSSL_Mutex* m) { #if (OS_CFG_MUTEX_DEL_EN == DEF_ENABLED) - OS_ERR err; + MICRIUM_ERR_TYPE err; OSMutexDel(m, OS_OPT_DEL_ALWAYS, &err); - if (err == OS_ERR_NONE) + if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE) return 0; else return BAD_MUTEX_E; @@ -1263,11 +1272,11 @@ int wolfSSL_CryptHwMutexUnLock(void) int wc_LockMutex(wolfSSL_Mutex* m) { - OS_ERR err; + MICRIUM_ERR_TYPE err; OSMutexPend(m, 0, OS_OPT_PEND_BLOCKING, NULL, &err); - if (err == OS_ERR_NONE) + if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE) return 0; else return BAD_MUTEX_E; @@ -1275,11 +1284,11 @@ int wolfSSL_CryptHwMutexUnLock(void) int wc_UnLockMutex(wolfSSL_Mutex* m) { - OS_ERR err; + MICRIUM_ERR_TYPE err; OSMutexPost(m, OS_OPT_POST_NONE, &err); - if (err == OS_ERR_NONE) + if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE) return 0; else return BAD_MUTEX_E; diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index cd85a33a5..383e80c86 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -80,10 +80,15 @@ _Pragma("GCC diagnostic ignored \"-Wunused-function\""); #define printf printk #elif defined(MICRIUM) - #include - void BSP_Ser_Printf (CPU_CHAR* format, ...); - #undef printf - #define printf BSP_Ser_Printf + #include + #if (OS_VERSION < 50000) + #include + void BSP_Ser_Printf (CPU_CHAR* format, ...); + #undef printf + #define printf BSP_Ser_Printf + #else + #include + #endif #elif defined(WOLFSSL_PB) #include int wolfssl_pb_print(const char*, ...); diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index a4614f01b..6d24a643e 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -1391,11 +1391,14 @@ extern void uITRON4_free(void *p) ; #ifdef MICRIUM #include #include - #include - #include - #include + #if defined(RTOS_MODULE_NET_AVAIL) || (APP_CFG_TCPIP_EN == DEF_ENABLED) + #include + #include + #include + #endif #include #include + #include #define USE_FAST_MATH #define TFM_TIMING_RESISTANT @@ -1449,10 +1452,23 @@ extern void uITRON4_free(void *p) ; (CPU_SIZE_T)(size))) #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \ (void *)(psrc), (CPU_SIZE_T)(size))) - #define XMEMCMP(pmem_1, pmem_2, size) \ - (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), \ - (void *)(pmem_2), \ + + #if (OS_VERSION < 50000) + #define XMEMCMP(pmem_1, pmem_2, size) \ + (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), \ + (void *)(pmem_2), \ (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES) + #else + // Work aroud for Micrium OS version 5.8 change in behavior + // that returns DEF_NO for 0 size compare + #define XMEMCMP(pmem_1, pmem_2, size) \ + (( (size < 1 ) || \ + ((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), \ + (void *)(pmem_2), \ + (CPU_SIZE_T)(size)) == DEF_YES)) \ + ? 0 : 1) + #endif + #define XMEMMOVE XMEMCPY #if (OS_CFG_MUTEX_EN == DEF_DISABLED)