mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +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)
|
#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)
|
int wc_InitMutex(wolfSSL_Mutex* m)
|
||||||
{
|
{
|
||||||
OS_ERR err;
|
MICRIUM_ERR_TYPE err;
|
||||||
|
|
||||||
OSMutexCreate(m, "wolfSSL Mutex", &err);
|
OSMutexCreate(m, "wolfSSL Mutex", &err);
|
||||||
|
|
||||||
if (err == OS_ERR_NONE)
|
if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return BAD_MUTEX_E;
|
return BAD_MUTEX_E;
|
||||||
@ -1248,11 +1257,11 @@ int wolfSSL_CryptHwMutexUnLock(void)
|
|||||||
int wc_FreeMutex(wolfSSL_Mutex* m)
|
int wc_FreeMutex(wolfSSL_Mutex* m)
|
||||||
{
|
{
|
||||||
#if (OS_CFG_MUTEX_DEL_EN == DEF_ENABLED)
|
#if (OS_CFG_MUTEX_DEL_EN == DEF_ENABLED)
|
||||||
OS_ERR err;
|
MICRIUM_ERR_TYPE err;
|
||||||
|
|
||||||
OSMutexDel(m, OS_OPT_DEL_ALWAYS, &err);
|
OSMutexDel(m, OS_OPT_DEL_ALWAYS, &err);
|
||||||
|
|
||||||
if (err == OS_ERR_NONE)
|
if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return BAD_MUTEX_E;
|
return BAD_MUTEX_E;
|
||||||
@ -1263,11 +1272,11 @@ int wolfSSL_CryptHwMutexUnLock(void)
|
|||||||
|
|
||||||
int wc_LockMutex(wolfSSL_Mutex* m)
|
int wc_LockMutex(wolfSSL_Mutex* m)
|
||||||
{
|
{
|
||||||
OS_ERR err;
|
MICRIUM_ERR_TYPE err;
|
||||||
|
|
||||||
OSMutexPend(m, 0, OS_OPT_PEND_BLOCKING, NULL, &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;
|
return 0;
|
||||||
else
|
else
|
||||||
return BAD_MUTEX_E;
|
return BAD_MUTEX_E;
|
||||||
@ -1275,11 +1284,11 @@ int wolfSSL_CryptHwMutexUnLock(void)
|
|||||||
|
|
||||||
int wc_UnLockMutex(wolfSSL_Mutex* m)
|
int wc_UnLockMutex(wolfSSL_Mutex* m)
|
||||||
{
|
{
|
||||||
OS_ERR err;
|
MICRIUM_ERR_TYPE err;
|
||||||
|
|
||||||
OSMutexPost(m, OS_OPT_POST_NONE, &err);
|
OSMutexPost(m, OS_OPT_POST_NONE, &err);
|
||||||
|
|
||||||
if (err == OS_ERR_NONE)
|
if (MICRIUM_ERR_CODE(err) == MICRIUM_ERR_NONE)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return BAD_MUTEX_E;
|
return BAD_MUTEX_E;
|
||||||
|
@ -80,10 +80,15 @@ _Pragma("GCC diagnostic ignored \"-Wunused-function\"");
|
|||||||
|
|
||||||
#define printf printk
|
#define printf printk
|
||||||
#elif defined(MICRIUM)
|
#elif defined(MICRIUM)
|
||||||
#include <bsp_ser.h>
|
#include <os.h>
|
||||||
void BSP_Ser_Printf (CPU_CHAR* format, ...);
|
#if (OS_VERSION < 50000)
|
||||||
#undef printf
|
#include <bsp_ser.h>
|
||||||
#define printf BSP_Ser_Printf
|
void BSP_Ser_Printf (CPU_CHAR* format, ...);
|
||||||
|
#undef printf
|
||||||
|
#define printf BSP_Ser_Printf
|
||||||
|
#else
|
||||||
|
#include <stdio.h>
|
||||||
|
#endif
|
||||||
#elif defined(WOLFSSL_PB)
|
#elif defined(WOLFSSL_PB)
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
int wolfssl_pb_print(const char*, ...);
|
int wolfssl_pb_print(const char*, ...);
|
||||||
|
@ -1391,11 +1391,14 @@ extern void uITRON4_free(void *p) ;
|
|||||||
#ifdef MICRIUM
|
#ifdef MICRIUM
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <os.h>
|
#include <os.h>
|
||||||
#include <net_cfg.h>
|
#if defined(RTOS_MODULE_NET_AVAIL) || (APP_CFG_TCPIP_EN == DEF_ENABLED)
|
||||||
#include <net_sock.h>
|
#include <net_cfg.h>
|
||||||
#include <net_err.h>
|
#include <net_sock.h>
|
||||||
|
#include <net_err.h>
|
||||||
|
#endif
|
||||||
#include <lib_mem.h>
|
#include <lib_mem.h>
|
||||||
#include <lib_math.h>
|
#include <lib_math.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#define USE_FAST_MATH
|
#define USE_FAST_MATH
|
||||||
#define TFM_TIMING_RESISTANT
|
#define TFM_TIMING_RESISTANT
|
||||||
@ -1449,10 +1452,23 @@ extern void uITRON4_free(void *p) ;
|
|||||||
(CPU_SIZE_T)(size)))
|
(CPU_SIZE_T)(size)))
|
||||||
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
(void *)(psrc), (CPU_SIZE_T)(size)))
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
#define XMEMCMP(pmem_1, pmem_2, size) \
|
|
||||||
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), \
|
#if (OS_VERSION < 50000)
|
||||||
(void *)(pmem_2), \
|
#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)
|
(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
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
#if (OS_CFG_MUTEX_EN == DEF_DISABLED)
|
#if (OS_CFG_MUTEX_EN == DEF_DISABLED)
|
||||||
|
Reference in New Issue
Block a user