mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +02:00
Micrium v5.8 support
* OS error type change from uc OS3 to v5 * detect if network or TCP is available * XMEMCMP change workaround
This commit is contained in:
@ -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;
|
||||
|
@ -80,10 +80,15 @@ _Pragma("GCC diagnostic ignored \"-Wunused-function\"");
|
||||
|
||||
#define printf printk
|
||||
#elif defined(MICRIUM)
|
||||
#include <bsp_ser.h>
|
||||
void BSP_Ser_Printf (CPU_CHAR* format, ...);
|
||||
#undef printf
|
||||
#define printf BSP_Ser_Printf
|
||||
#include <os.h>
|
||||
#if (OS_VERSION < 50000)
|
||||
#include <bsp_ser.h>
|
||||
void BSP_Ser_Printf (CPU_CHAR* format, ...);
|
||||
#undef printf
|
||||
#define printf BSP_Ser_Printf
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#elif defined(WOLFSSL_PB)
|
||||
#include <stdarg.h>
|
||||
int wolfssl_pb_print(const char*, ...);
|
||||
|
@ -1391,11 +1391,14 @@ extern void uITRON4_free(void *p) ;
|
||||
#ifdef MICRIUM
|
||||
#include <stdlib.h>
|
||||
#include <os.h>
|
||||
#include <net_cfg.h>
|
||||
#include <net_sock.h>
|
||||
#include <net_err.h>
|
||||
#if defined(RTOS_MODULE_NET_AVAIL) || (APP_CFG_TCPIP_EN == DEF_ENABLED)
|
||||
#include <net_cfg.h>
|
||||
#include <net_sock.h>
|
||||
#include <net_err.h>
|
||||
#endif
|
||||
#include <lib_mem.h>
|
||||
#include <lib_math.h>
|
||||
#include <string.h>
|
||||
|
||||
#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)
|
||||
|
Reference in New Issue
Block a user