From 34b4066d2f7cbeb6c31fc86ab414b5a0e28602fa Mon Sep 17 00:00:00 2001 From: Stanislav Klima Date: Tue, 27 Feb 2024 14:47:39 +0100 Subject: [PATCH 1/2] fixed XMALLOC, XFREE and XREALLOC definitions for embOS --- wolfssl/wolfcrypt/settings.h | 14 +++++++++++--- wolfssl/wolfcrypt/types.h | 2 ++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 53825ae62..597f2da17 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -2052,9 +2052,17 @@ extern void uITRON4_free(void *p) ; #include "RTOS.h" #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && \ !defined(WOLFSSL_STATIC_MEMORY) - #define XMALLOC(s, h, type) ((void)(h), (void)(type), OS_HEAP_malloc((s))) - #define XFREE(p, h, type) ((void)(h), (void)(type), OS_HEAP_free((p))) - #define XREALLOC(p, n, h, t) ((void)(h), (void)(t), OS_HEAP_realloc(((p), (n))) + /* Per the user manual of embOS https://www.segger.com/downloads/embos/UM01001 + this API has changed with V5. */ + #if (OS_VERSION >= 50000U) + #define XMALLOC(s, h, type) ((void)(h), (void)(type), OS_HEAP_malloc((s))) + #define XFREE(p, h, type) ((void)(h), (void)(type), OS_HEAP_free((p))) + #define XREALLOC(p, n, h, t) ((void)(h), (void)(t), OS_HEAP_realloc((p), (n))) + #else + #define XMALLOC(s, h, type) ((void)(h), (void)(type), OS_malloc((s))) + #define XFREE(p, h, type) ((void)(h), (void)(type), OS_free((p))) + #define XREALLOC(p, n, h, t) ((void)(h), (void)(t), OS_realloc((p), (n))) + #endif #endif #endif diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 53d022161..4834c7368 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -556,6 +556,8 @@ typedef struct w64wrapper { #endif #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n), (h), (t)) #endif /* WOLFSSL_DEBUG_MEMORY */ + #elif defined(WOLFSSL_EMBOS) && !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && !defined(WOLFSSL_STATIC_MEMORY) + /* settings.h solve this case already. Avoid redefinition. */ #elif (!defined(FREERTOS) && !defined(FREERTOS_TCP)) || defined(WOLFSSL_TRACK_MEMORY) #ifdef WOLFSSL_DEBUG_MEMORY #define XMALLOC(s, h, t) ((void)(h), (void)(t), wolfSSL_Malloc((s), __func__, __LINE__)) From c5a5acd26f93b50fad234d93929a0520e50f776a Mon Sep 17 00:00:00 2001 From: Stanislav Klima Date: Tue, 27 Feb 2024 15:58:12 +0100 Subject: [PATCH 2/2] code review changes --- wolfssl/wolfcrypt/settings.h | 2 +- wolfssl/wolfcrypt/types.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 597f2da17..012edc552 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -2053,7 +2053,7 @@ extern void uITRON4_free(void *p) ; #if !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && \ !defined(WOLFSSL_STATIC_MEMORY) /* Per the user manual of embOS https://www.segger.com/downloads/embos/UM01001 - this API has changed with V5. */ + * this API has changed with V5. */ #if (OS_VERSION >= 50000U) #define XMALLOC(s, h, type) ((void)(h), (void)(type), OS_HEAP_malloc((s))) #define XFREE(p, h, type) ((void)(h), (void)(type), OS_HEAP_free((p))) diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 4834c7368..257c505ac 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -556,7 +556,9 @@ typedef struct w64wrapper { #endif #define XREALLOC(p, n, h, t) wolfSSL_Realloc((p), (n), (h), (t)) #endif /* WOLFSSL_DEBUG_MEMORY */ - #elif defined(WOLFSSL_EMBOS) && !defined(XMALLOC_USER) && !defined(NO_WOLFSSL_MEMORY) && !defined(WOLFSSL_STATIC_MEMORY) + #elif defined(WOLFSSL_EMBOS) && !defined(XMALLOC_USER) \ + && !defined(NO_WOLFSSL_MEMORY) \ + && !defined(WOLFSSL_STATIC_MEMORY) /* settings.h solve this case already. Avoid redefinition. */ #elif (!defined(FREERTOS) && !defined(FREERTOS_TCP)) || defined(WOLFSSL_TRACK_MEMORY) #ifdef WOLFSSL_DEBUG_MEMORY