From 57f4adf438c38dfdc4aa92be2e56139f68cc0264 Mon Sep 17 00:00:00 2001 From: Elms Date: Wed, 30 Dec 2020 17:29:01 -0800 Subject: [PATCH] DEOS: updated memory and add DTLS Tested: DDC-I 9.2.0r94156 and OpenArbor on PPC hardware --- IDE/ECLIPSE/DEOS/deos_malloc.c | 69 +-- IDE/ECLIPSE/DEOS/deos_wolfssl/.cproject | 344 +++++++++++++ IDE/ECLIPSE/DEOS/deos_wolfssl/.options | 33 ++ IDE/ECLIPSE/DEOS/deos_wolfssl/.project | 629 ++++++++++++++++++++++++ IDE/ECLIPSE/DEOS/user_settings.h | 4 +- src/internal.c | 2 +- wolfcrypt/benchmark/benchmark.c | 3 +- wolfcrypt/src/wc_port.c | 4 +- wolfcrypt/test/test.c | 4 + wolfssl/wolfcrypt/wc_port.h | 7 +- wolfssl/wolfio.h | 18 +- 11 files changed, 1033 insertions(+), 84 deletions(-) create mode 100644 IDE/ECLIPSE/DEOS/deos_wolfssl/.cproject create mode 100644 IDE/ECLIPSE/DEOS/deos_wolfssl/.options create mode 100644 IDE/ECLIPSE/DEOS/deos_wolfssl/.project diff --git a/IDE/ECLIPSE/DEOS/deos_malloc.c b/IDE/ECLIPSE/DEOS/deos_malloc.c index 3a9c140a2..f56dd5620 100644 --- a/IDE/ECLIPSE/DEOS/deos_malloc.c +++ b/IDE/ECLIPSE/DEOS/deos_malloc.c @@ -19,27 +19,11 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA */ #include -#include - -#define ROUND_UP(x, align) (((int) (x) + (align - 1)) & ~(align - 1)) -#define SIZEOF_HEADER sizeof(size_t) /* tracks size of allocated block */ - -#define HEAP_SIZE_MAX (1*1024*1024) - -static size_t allocatedMemory = 0; - -size_t getMemAllocatedSize_deos(size_t* size){ - - if (size) - *size = allocatedMemory; - - return allocatedMemory; -} - -/* Simply returns without freeing any memory. */ +#include +#include void free_deos(void *ptr) { - //printf("fake free_deos()\n"); + free(ptr); return; } @@ -51,10 +35,6 @@ void *realloc_deos(void *ptr, size_t size) { newptr = malloc_deos(size); if (ptr != NULL && newptr != NULL) { - - if ( *((char *)ptr - SIZEOF_HEADER) < *((char *)newptr - SIZEOF_HEADER)) - size = *((char *)ptr - SIZEOF_HEADER); - XMEMCPY((char *) newptr, (const char *) ptr, size); free_deos(ptr); } @@ -63,46 +43,5 @@ void *realloc_deos(void *ptr, size_t size) { } void *malloc_deos(size_t size) { - PDEOS_SYSTEM_INFO systemInfoPtr; - static VirtualAddressTYP heapAddr = NULL; - static VirtualAddressTYP freeAddr = NULL; - VirtualAddressTYP retAddr = NULL; - DWORD allocationSize = 0; - static int initialized = 0; - - if (size <= 0) - return NULL; - - if (!initialized) { - systemInfoPtr = (PDEOS_SYSTEM_INFO)getSystemInfoDEOS(); - freeAddr = (VirtualAddressTYP)getNextLibraryStartAddress(); - allocationSize = (((HEAP_SIZE_MAX - 1) / systemInfoPtr->dwPageSize) + 1) * - systemInfoPtr->dwPageSize; - - if (virtualAllocDEOS(freeAddr, allocationSize) != allocSuccess){ - printf("ERROR: virtualAllocDEOS failed\n"); - return NULL; - } - - setNextLibraryStartAddress(freeAddr + allocationSize); - heapAddr = freeAddr; - - initialized = 1; - } - - size = ROUND_UP(size, sizeof(size_t)); - - if ((size + SIZEOF_HEADER) > (HEAP_SIZE_MAX - (freeAddr - heapAddr))){ - printf("ERROR: malloc_deos cannot allocate from heap memory anymore\n"); - return NULL; - } - - *freeAddr = size; - freeAddr += SIZEOF_HEADER; - retAddr = freeAddr; - XMEMSET(retAddr, 0, size); - freeAddr += size; - allocatedMemory += size; - - return retAddr; + return malloc(size); } diff --git a/IDE/ECLIPSE/DEOS/deos_wolfssl/.cproject b/IDE/ECLIPSE/DEOS/deos_wolfssl/.cproject new file mode 100644 index 000000000..48ac73bc1 --- /dev/null +++ b/IDE/ECLIPSE/DEOS/deos_wolfssl/.cproject @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IDE/ECLIPSE/DEOS/deos_wolfssl/.options b/IDE/ECLIPSE/DEOS/deos_wolfssl/.options new file mode 100644 index 000000000..1568eaf8f --- /dev/null +++ b/IDE/ECLIPSE/DEOS/deos_wolfssl/.options @@ -0,0 +1,33 @@ + + + 26 + ppc + diagnostic + kernel + video + ansi + math + deos-time + sal + mtl + printx + gnu-language + lib$(PROJECT_NAME).so + $(BINARY) + $(BINARY).dbg + $(DESK_DIR)/arm/include + $(DESK_DIR)/ppc/include + $(DESK_DIR)/x86/include + $(DESK_DIR)/include + $(PROJECT_DIR.wolfssl)/../../../.. + $(PROJECT_DIR.wolfssl)/../../../../fips + $(PROJECT_DIR.wolfssl)/.. + $(PROJECT_DIR.printx)/code + WOLFSSL_USER_SETTINGS + $(DESK_DIR)/arm/appbin + $(DESK_DIR)/ppc/appbin + $(DESK_DIR)/x86/appbin + true + -L $(PROJECT_DIR.printx)/output/powerpc-motorola-elf/diagnostic + none + diff --git a/IDE/ECLIPSE/DEOS/deos_wolfssl/.project b/IDE/ECLIPSE/DEOS/deos_wolfssl/.project new file mode 100644 index 000000000..769c9630e --- /dev/null +++ b/IDE/ECLIPSE/DEOS/deos_wolfssl/.project @@ -0,0 +1,629 @@ + + + wolfssl + + + + + + com.ddci.common.ide.Builder + + + + + + com.ddci.common.ide.DdciNature + com.ddci.common.ide.ExecutableNature + com.ddci.deos.common.deosLoadListNature + com.ddci.common.ide.DEOS_SHARED_OBJECT + org.eclipse.cdt.core.cnature + + + + deos_malloc.c + 1 + WOLFSSL_ROOT/IDE/ECLIPSE/DEOS/deos_malloc.c + + + fips.c + 1 + WOLFSSL_ROOT/fips/fips.c + + + fips_test.c + 1 + WOLFSSL_ROOT/fips/fips_test.c + + + selftest.c + 1 + WOLFSSL_ROOT/fips/selftest.c + + + user_settings.h + 1 + WOLFSSL_ROOT/IDE/ECLIPSE/DEOS/user_settings.h + + + wolfssl + 2 + WOLFSSL_ROOT/wolfssl + + + src/crl.c + 1 + WOLFSSL_ROOT/src/crl.c + + + src/internal.c + 1 + WOLFSSL_ROOT/src/internal.c + + + src/keys.c + 1 + WOLFSSL_ROOT/src/keys.c + + + src/ocsp.c + 1 + WOLFSSL_ROOT/src/ocsp.c + + + src/sniffer.c + 1 + WOLFSSL_ROOT/src/sniffer.c + + + src/ssl.c + 1 + WOLFSSL_ROOT/src/ssl.c + + + src/tls.c + 1 + WOLFSSL_ROOT/src/tls.c + + + src/tls13.c + 1 + WOLFSSL_ROOT/src/tls13.c + + + src/wolfio.c + 1 + WOLFSSL_ROOT/src/wolfio.c + + + wolfcrypt/benchmark + 2 + WOLFSSL_ROOT/wolfcrypt/benchmark + + + wolfcrypt/test + 2 + WOLFSSL_ROOT/wolfcrypt/test + + + wolfcrypt/src/aes.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/aes.c + + + wolfcrypt/src/arc4.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/arc4.c + + + wolfcrypt/src/asm.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/asm.c + + + wolfcrypt/src/asn.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/asn.c + + + wolfcrypt/src/blake2b.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/blake2b.c + + + wolfcrypt/src/blake2s.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/blake2s.c + + + wolfcrypt/src/camellia.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/camellia.c + + + wolfcrypt/src/chacha.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/chacha.c + + + wolfcrypt/src/chacha20_poly1305.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/chacha20_poly1305.c + + + wolfcrypt/src/cmac.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/cmac.c + + + wolfcrypt/src/coding.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/coding.c + + + wolfcrypt/src/compress.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/compress.c + + + wolfcrypt/src/cpuid.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/cpuid.c + + + wolfcrypt/src/cryptocb.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/cryptocb.c + + + wolfcrypt/src/curve25519.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/curve25519.c + + + wolfcrypt/src/curve448.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/curve448.c + + + wolfcrypt/src/des3.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/des3.c + + + wolfcrypt/src/dh.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/dh.c + + + wolfcrypt/src/dsa.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/dsa.c + + + wolfcrypt/src/ecc.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ecc.c + + + wolfcrypt/src/ecc_fp.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ecc_fp.c + + + wolfcrypt/src/ed25519.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ed25519.c + + + wolfcrypt/src/ed448.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ed448.c + + + wolfcrypt/src/error.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/error.c + + + wolfcrypt/src/fe_448.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/fe_448.c + + + wolfcrypt/src/fe_low_mem.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/fe_low_mem.c + + + wolfcrypt/src/fe_operations.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/fe_operations.c + + + wolfcrypt/src/fe_x25519_128.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fe_x25519_128.i + + + wolfcrypt/src/fp_mont_small.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mont_small.i + + + wolfcrypt/src/fp_mul_comba_12.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_12.i + + + wolfcrypt/src/fp_mul_comba_17.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_17.i + + + wolfcrypt/src/fp_mul_comba_20.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_20.i + + + wolfcrypt/src/fp_mul_comba_24.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_24.i + + + wolfcrypt/src/fp_mul_comba_28.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_28.i + + + wolfcrypt/src/fp_mul_comba_3.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_3.i + + + wolfcrypt/src/fp_mul_comba_32.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_32.i + + + wolfcrypt/src/fp_mul_comba_4.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_4.i + + + wolfcrypt/src/fp_mul_comba_48.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_48.i + + + wolfcrypt/src/fp_mul_comba_6.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_6.i + + + wolfcrypt/src/fp_mul_comba_64.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_64.i + + + wolfcrypt/src/fp_mul_comba_7.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_7.i + + + wolfcrypt/src/fp_mul_comba_8.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_8.i + + + wolfcrypt/src/fp_mul_comba_9.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_9.i + + + wolfcrypt/src/fp_mul_comba_small_set.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_mul_comba_small_set.i + + + wolfcrypt/src/fp_sqr_comba_12.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_12.i + + + wolfcrypt/src/fp_sqr_comba_17.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_17.i + + + wolfcrypt/src/fp_sqr_comba_20.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_20.i + + + wolfcrypt/src/fp_sqr_comba_24.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_24.i + + + wolfcrypt/src/fp_sqr_comba_28.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_28.i + + + wolfcrypt/src/fp_sqr_comba_3.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_3.i + + + wolfcrypt/src/fp_sqr_comba_32.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_32.i + + + wolfcrypt/src/fp_sqr_comba_4.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_4.i + + + wolfcrypt/src/fp_sqr_comba_48.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_48.i + + + wolfcrypt/src/fp_sqr_comba_6.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_6.i + + + wolfcrypt/src/fp_sqr_comba_64.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_64.i + + + wolfcrypt/src/fp_sqr_comba_7.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_7.i + + + wolfcrypt/src/fp_sqr_comba_8.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_8.i + + + wolfcrypt/src/fp_sqr_comba_9.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_9.i + + + wolfcrypt/src/fp_sqr_comba_small_set.i + 1 + WOLFSSL_ROOT/wolfcrypt/src/fp_sqr_comba_small_set.i + + + wolfcrypt/src/ge_448.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ge_448.c + + + wolfcrypt/src/ge_low_mem.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ge_low_mem.c + + + wolfcrypt/src/ge_operations.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ge_operations.c + + + wolfcrypt/src/hash.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/hash.c + + + wolfcrypt/src/hc128.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/hc128.c + + + wolfcrypt/src/hmac.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/hmac.c + + + wolfcrypt/src/idea.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/idea.c + + + wolfcrypt/src/integer.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/integer.c + + + wolfcrypt/src/logging.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/logging.c + + + wolfcrypt/src/md2.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/md2.c + + + wolfcrypt/src/md4.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/md4.c + + + wolfcrypt/src/md5.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/md5.c + + + wolfcrypt/src/memory.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/memory.c + + + wolfcrypt/src/pkcs12.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/pkcs12.c + + + wolfcrypt/src/pkcs7.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/pkcs7.c + + + wolfcrypt/src/poly1305.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/poly1305.c + + + wolfcrypt/src/pwdbased.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/pwdbased.c + + + wolfcrypt/src/rabbit.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/rabbit.c + + + wolfcrypt/src/random.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/random.c + + + wolfcrypt/src/rc2.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/rc2.c + + + wolfcrypt/src/ripemd.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/ripemd.c + + + wolfcrypt/src/rsa.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/rsa.c + + + wolfcrypt/src/sha.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sha.c + + + wolfcrypt/src/sha256.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sha256.c + + + wolfcrypt/src/sha3.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sha3.c + + + wolfcrypt/src/sha512.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sha512.c + + + wolfcrypt/src/signature.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/signature.c + + + wolfcrypt/src/sp_arm32.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_arm32.c + + + wolfcrypt/src/sp_arm64.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_arm64.c + + + wolfcrypt/src/sp_armthumb.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_armthumb.c + + + wolfcrypt/src/sp_c32.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_c32.c + + + wolfcrypt/src/sp_c64.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_c64.c + + + wolfcrypt/src/sp_cortexm.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_cortexm.c + + + wolfcrypt/src/sp_dsp32.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_dsp32.c + + + wolfcrypt/src/sp_int.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_int.c + + + wolfcrypt/src/sp_x86_64.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/sp_x86_64.c + + + wolfcrypt/src/srp.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/srp.c + + + wolfcrypt/src/tfm.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/tfm.c + + + wolfcrypt/src/wc_dsp.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/wc_dsp.c + + + wolfcrypt/src/wc_encrypt.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/wc_encrypt.c + + + wolfcrypt/src/wc_pkcs11.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/wc_pkcs11.c + + + wolfcrypt/src/wc_port.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/wc_port.c + + + wolfcrypt/src/wolfevent.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/wolfevent.c + + + wolfcrypt/src/wolfmath.c + 1 + WOLFSSL_ROOT/wolfcrypt/src/wolfmath.c + + + + + WOLFSSL_ROOT + $%7BPARENT-4-PROJECT_LOC%7D + + + diff --git a/IDE/ECLIPSE/DEOS/user_settings.h b/IDE/ECLIPSE/DEOS/user_settings.h index dbfe4f03a..5f74bc563 100644 --- a/IDE/ECLIPSE/DEOS/user_settings.h +++ b/IDE/ECLIPSE/DEOS/user_settings.h @@ -65,6 +65,8 @@ You can get the current time from https://www.unixtimestamp.com/ #define HAVE_ED25519 #define ED25519_SMALL +#define WOLFSSL_DTLS + /* TLS 1.3 */ #if 0 #define WOLFSSL_TLS13 @@ -103,8 +105,6 @@ You can get the current time from https://www.unixtimestamp.com/ #endif -#define printf printx - #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/internal.c b/src/internal.c index 9ae87fd59..481dea350 100644 --- a/src/internal.c +++ b/src/internal.c @@ -7729,7 +7729,7 @@ ProtocolVersion MakeDTLSv1_2(void) word32 LowResTimer(void) { const word32 systemTickTimeInHz = 1000000 / systemTickInMicroseconds(); - word32 *systemTickPtr = systemTickPointer(); + const volatile word32 *systemTickPtr = systemTickPointer(); return (word32) *systemTickPtr/systemTickTimeInHz; } diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c index 3260d02fc..75069d192 100644 --- a/wolfcrypt/benchmark/benchmark.c +++ b/wolfcrypt/benchmark/benchmark.c @@ -61,6 +61,7 @@ #define printf PRINTF #elif defined(WOLFSSL_DEOS) #include + #include #undef printf #define printf printx #elif defined(MICRIUM) @@ -6681,7 +6682,7 @@ void bench_sakke(void) double current_time(int reset) { const uint32_t systemTickTimeInHz = 1000000 / systemTickInMicroseconds(); - uint32_t *systemTickPtr = systemTickPointer(); + const volatile uint32_t *systemTickPtr = systemTickPointer(); (void)reset; diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index 02a98b767..47bc71cc0 100644 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -2252,14 +2252,14 @@ time_t pic32_time(time_t* timer) time_t deos_time(time_t* timer) { const word32 systemTickTimeInHz = 1000000 / systemTickInMicroseconds(); - word32 *systemTickPtr = systemTickPointer(); + const volatile word32 *systemTickPtr = systemTickPointer(); if (timer != NULL) *timer = *systemTickPtr/systemTickTimeInHz; #if defined(CURRENT_UNIX_TIMESTAMP) /* CURRENT_UNIX_TIMESTAMP is seconds since Jan 01 1970. (UTC) */ - return (time_t) *systemTickPtr/systemTickTimeInHz + CURRENT_UNIX_TIMESTAMP; + return (time_t) (*systemTickPtr/systemTickTimeInHz) + CURRENT_UNIX_TIMESTAMP; #else return (time_t) *systemTickPtr/systemTickTimeInHz; #endif diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 2d4e74046..2a7864f2c 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -176,6 +176,10 @@ _Pragma("GCC diagnostic ignored \"-Wunused-function\""); __android_log_print(ANDROID_LOG_DEBUG, "TAG", __VA_ARGS__) #define fprintf(fp, ...) \ __android_log_print(ANDROID_LOG_DEBUG, "TAG", __VA_ARGS__) +#elif defined(WOLFSSL_DEOS) + #include + #undef printf + #define printf printx #else #ifdef XMALLOC_USER #include /* we're using malloc / free direct here */ diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index 291ff4d40..c4acde424 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -522,8 +522,6 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #elif defined(WOLFSSL_DEOS) #define NO_FILESYSTEM #warning "TODO - DDC-I Certifiable Fast File System for Deos is not integrated" - /* #define XFILE bfd * */ - #elif defined(MICRIUM) #include #define XFILE FS_FILE* @@ -848,10 +846,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #define XGMTIME(c, t) rtpsys_gmtime((c)) #elif defined(WOLFSSL_DEOS) - #define XTIME(t1) deos_time((t1)) - #define WOLFSSL_GMTIME - #define USE_WOLF_TM - #define USE_WOLF_TIME_T + #include #elif defined(MICRIUM) #include diff --git a/wolfssl/wolfio.h b/wolfssl/wolfio.h index c92f44b31..a9b59b253 100644 --- a/wolfssl/wolfio.h +++ b/wolfssl/wolfio.h @@ -248,13 +248,17 @@ #define SOCKET_ECONNREFUSED NU_CONNECTION_REFUSED #define SOCKET_ECONNABORTED NU_NOT_CONNECTED #elif defined(WOLFSSL_DEOS) - #define SOCKET_EWOULDBLOCK EAGAIN - #define SOCKET_EAGAIN EAGAIN - #define SOCKET_ECONNRESET EINTR - #define SOCKET_EINTR EINTR - #define SOCKET_EPIPE EPIPE - #define SOCKET_ECONNREFUSED SOCKET_ERROR - #define SOCKET_ECONNABORTED SOCKET_ERROR + /* `sockaddr_storage` is not defined in DEOS. This workaround will + * work for IPV4, but not IPV6 + */ + #define sockaddr_storage sockaddr_in + #define SOCKET_EWOULDBLOCK EAGAIN + #define SOCKET_EAGAIN EAGAIN + #define SOCKET_ECONNRESET EINTR + #define SOCKET_EINTR EINTR + #define SOCKET_EPIPE EPIPE + #define SOCKET_ECONNREFUSED SOCKET_ERROR + #define SOCKET_ECONNABORTED SOCKET_ERROR #elif defined(HAVE_NETX) #define SOCKET_EWOULDBLOCK NX_NOT_CONNECTED #define SOCKET_EAGAIN NX_NOT_CONNECTED