From 6f08459264b70d576195e806abc5b9021eeb3e7e Mon Sep 17 00:00:00 2001 From: Takashi Kojo Date: Sat, 28 Feb 2015 11:24:16 +0900 Subject: [PATCH 1/2] uITRON and uT-Kernel, wc-prot.c --- wolfcrypt/src/random.c | 5 +- wolfcrypt/src/wc_port.c | 183 ++++++++++++++++++++++++++++++++++- wolfssl/wolfcrypt/settings.h | 8 +- 3 files changed, 192 insertions(+), 4 deletions(-) diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 7942caa0b..3d0a9e7fc 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -891,8 +891,9 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) #endif /* FREESCALE_K70_RNGA */ #elif defined(WOLFSSL_SAFERTOS) || defined(WOLFSSL_LEANPSK) \ - || defined(WOLFSSL_IAR_ARM) || defined(WOLFSSL_MDK_ARM) - + || defined(WOLFSSL_IAR_ARM) || defined(WOLFSSL_MDK_ARM) \ + || defined(WOLFSSL_uITRON4) || defined(WOLFSSL_uTKERNEL2) + #warning "write a real random seed!!!!, just for testing now" int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index 515303479..f95b6ae33 100644 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -387,6 +387,187 @@ int UnLockMutex(wolfSSL_Mutex *m) return 0; } + #elif defined(WOLFSSL_uITRON4) + #include "kernel.h" + int InitMutex(wolfSSL_Mutex* m) + { + int iReturn; + m->sem.sematr = TA_TFIFO ; + m->sem.isemcnt = 1 ; + m->sem.maxsem = 1 ; + m->sem.name = NULL ; + + m->id = acre_sem(&m->sem); + if( m->id != NULL ) + iReturn = 0; + else + iReturn = BAD_MUTEX_E; + + return iReturn; + } + + int FreeMutex(wolfSSL_Mutex* m) + { + del_sem( m->id ); + return 0; + } + + int LockMutex(wolfSSL_Mutex* m) + { + wai_sem(m->id); + return 0; + } + + int UnLockMutex(wolfSSL_Mutex* m) + { + sig_sem(m->id); + return 0; + } + + /**** uITRON malloc/free ***/ + static ID ID_wolfssl_MPOOL = 0 ; + static T_CMPL wolfssl_MPOOL = {TA_TFIFO, 0, NULL, "wolfSSL_MPOOL"}; + + int uITRON4_minit(size_t poolsz) { + ER ercd; + wolfssl_MPOOL.mplsz = poolsz ; + ercd = acre_mpl(&wolfssl_MPOOL); + if (ercd > 0) { + ID_wolfssl_MPOOL = ercd; + return 0; + } else { + return -1; + } + } + + void *uITRON4_malloc(size_t sz) { + ER ercd; + void *p ; + ercd = get_mpl(ID_wolfssl_MPOOL, sz, (VP)&p); + if (ercd == E_OK) { + return p; + } else { + return 0 ; + } + } + + void *uITRON4_realloc(void *p, size_t sz) { + ER ercd; + void *newp ; + if(p) { + ercd = get_mpl(ID_wolfssl_MPOOL, sz, (VP)&newp); + if (ercd == E_OK) { + memcpy(newp, p, sz) ; + ercd = rel_mpl(ID_wolfssl_MPOOL, (VP)p); + if (ercd == E_OK) { + return newp; + } + } + } + return 0 ; + } + + void uITRON4_free(void *p) { + ER ercd; + ercd = rel_mpl(ID_wolfssl_MPOOL, (VP)p); + if (ercd == E_OK) { + return ; + } else { + return ; + } + } + +#elif defined(WOLFSSL_uTKERNEL2) + #include "tk/tkernel.h" + int InitMutex(wolfSSL_Mutex* m) + { + int iReturn; + m->sem.sematr = TA_TFIFO ; + m->sem.isemcnt = 1 ; + m->sem.maxsem = 1 ; + + m->id = tk_cre_sem(&m->sem); + if( m->id != NULL ) + iReturn = 0; + else + iReturn = BAD_MUTEX_E; + + return iReturn; + } + + int FreeMutex(wolfSSL_Mutex* m) + { + tk_del_sem( m->id ); + return 0; + } + + int LockMutex(wolfSSL_Mutex* m) + { + tk_wai_sem(m->id, 1, TMO_FEVR); + return 0; + } + + int UnLockMutex(wolfSSL_Mutex* m) + { + tk_sig_sem(m->id, 1); + return 0; + } + + /**** uT-Kernel malloc/free ***/ + static ID ID_wolfssl_MPOOL = 0 ; + static T_CMPL wolfssl_MPOOL = + {(void *)NULL, + TA_TFIFO , 0, "wolfSSL_MPOOL"}; + + int uTKernel_init_mpool(unsigned int sz) { + ER ercd; + wolfssl_MPOOL.mplsz = sz ; + ercd = tk_cre_mpl(&wolfssl_MPOOL); + if (ercd > 0) { + ID_wolfssl_MPOOL = ercd; + return 0; + } else { + return -1; + } + } + + void *uTKernel_malloc(unsigned int sz) { + ER ercd; + void *p ; + ercd = tk_get_mpl(ID_wolfssl_MPOOL, sz, (VP)&p, TMO_FEVR); + if (ercd == E_OK) { + return p; + } else { + return 0 ; + } + } + + void *uTKernel_realloc(void *p, unsigned int sz) { + ER ercd; + void *newp ; + if(p) { + ercd = tk_get_mpl(ID_wolfssl_MPOOL, sz, (VP)&newp, TMO_FEVR); + if (ercd == E_OK) { + memcpy(newp, p, sz) ; + ercd = tk_rel_mpl(ID_wolfssl_MPOOL, (VP)p); + if (ercd == E_OK) { + return newp; + } + } + } + return 0 ; + } + + void uTKernel_free(void *p) { + ER ercd; + ercd = tk_rel_mpl(ID_wolfssl_MPOOL, (VP)p); + if (ercd == E_OK) { + return ; + } else { + return ; + } + } + #elif defined(WOLFSSL_MDK_ARM)|| defined(WOLFSSL_CMSIS_RTOS) #if defined(WOLFSSL_CMSIS_RTOS) @@ -442,7 +623,6 @@ int UnLockMutex(wolfSSL_Mutex *m) return 0; } #else - int InitMutex(wolfSSL_Mutex* m) { os_mut_init (m); @@ -467,5 +647,6 @@ int UnLockMutex(wolfSSL_Mutex *m) } #endif #endif /* USE_WINDOWS_API */ + #endif /* SINGLE_THREADED */ diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 972a21507..5ae581cdf 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -99,6 +99,12 @@ /* Uncomment next line if building for PicoTCP demo bundle */ /* #define WOLFSSL_PICOTCP_DEMO */ +/* Uncomment next line if building for uITRON4 */ +/* #define WOLFSSL_uITRON4 */ + +/* Uncomment next line if building for uT-Kernel */ +/* #define WOLFSSL_uTKERNEL2 */ + #include #ifdef IPHONE @@ -644,7 +650,7 @@ #endif #endif /* MICRIUM */ - + #ifdef WOLFSSL_QL #ifndef WOLFSSL_SEP From 1caaeb83559e2e7900d3c8a51e37d6ce48f4ba8b Mon Sep 17 00:00:00 2001 From: toddouska Date: Sat, 28 Feb 2015 11:29:42 -0800 Subject: [PATCH 2/2] tiddy whitespace --- wolfcrypt/src/random.c | 2 +- wolfcrypt/src/wc_port.c | 36 ++++++++++++++++++------------------ wolfssl/wolfcrypt/settings.h | 4 ++-- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/wolfcrypt/src/random.c b/wolfcrypt/src/random.c index 3d0a9e7fc..2bfe93ac8 100644 --- a/wolfcrypt/src/random.c +++ b/wolfcrypt/src/random.c @@ -893,7 +893,7 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) #elif defined(WOLFSSL_SAFERTOS) || defined(WOLFSSL_LEANPSK) \ || defined(WOLFSSL_IAR_ARM) || defined(WOLFSSL_MDK_ARM) \ || defined(WOLFSSL_uITRON4) || defined(WOLFSSL_uTKERNEL2) - + #warning "write a real random seed!!!!, just for testing now" int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz) diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c index f95b6ae33..864ac2490 100644 --- a/wolfcrypt/src/wc_port.c +++ b/wolfcrypt/src/wc_port.c @@ -396,7 +396,7 @@ int UnLockMutex(wolfSSL_Mutex *m) m->sem.isemcnt = 1 ; m->sem.maxsem = 1 ; m->sem.name = NULL ; - + m->id = acre_sem(&m->sem); if( m->id != NULL ) iReturn = 0; @@ -427,7 +427,7 @@ int UnLockMutex(wolfSSL_Mutex *m) /**** uITRON malloc/free ***/ static ID ID_wolfssl_MPOOL = 0 ; static T_CMPL wolfssl_MPOOL = {TA_TFIFO, 0, NULL, "wolfSSL_MPOOL"}; - + int uITRON4_minit(size_t poolsz) { ER ercd; wolfssl_MPOOL.mplsz = poolsz ; @@ -439,7 +439,7 @@ int UnLockMutex(wolfSSL_Mutex *m) return -1; } } - + void *uITRON4_malloc(size_t sz) { ER ercd; void *p ; @@ -448,9 +448,9 @@ int UnLockMutex(wolfSSL_Mutex *m) return p; } else { return 0 ; - } + } } - + void *uITRON4_realloc(void *p, size_t sz) { ER ercd; void *newp ; @@ -459,14 +459,14 @@ int UnLockMutex(wolfSSL_Mutex *m) if (ercd == E_OK) { memcpy(newp, p, sz) ; ercd = rel_mpl(ID_wolfssl_MPOOL, (VP)p); - if (ercd == E_OK) { + if (ercd == E_OK) { return newp; - } + } } } return 0 ; } - + void uITRON4_free(void *p) { ER ercd; ercd = rel_mpl(ID_wolfssl_MPOOL, (VP)p); @@ -474,7 +474,7 @@ int UnLockMutex(wolfSSL_Mutex *m) return ; } else { return ; - } + } } #elif defined(WOLFSSL_uTKERNEL2) @@ -485,7 +485,7 @@ int UnLockMutex(wolfSSL_Mutex *m) m->sem.sematr = TA_TFIFO ; m->sem.isemcnt = 1 ; m->sem.maxsem = 1 ; - + m->id = tk_cre_sem(&m->sem); if( m->id != NULL ) iReturn = 0; @@ -516,9 +516,9 @@ int UnLockMutex(wolfSSL_Mutex *m) /**** uT-Kernel malloc/free ***/ static ID ID_wolfssl_MPOOL = 0 ; static T_CMPL wolfssl_MPOOL = - {(void *)NULL, + {(void *)NULL, TA_TFIFO , 0, "wolfSSL_MPOOL"}; - + int uTKernel_init_mpool(unsigned int sz) { ER ercd; wolfssl_MPOOL.mplsz = sz ; @@ -530,7 +530,7 @@ int UnLockMutex(wolfSSL_Mutex *m) return -1; } } - + void *uTKernel_malloc(unsigned int sz) { ER ercd; void *p ; @@ -539,9 +539,9 @@ int UnLockMutex(wolfSSL_Mutex *m) return p; } else { return 0 ; - } + } } - + void *uTKernel_realloc(void *p, unsigned int sz) { ER ercd; void *newp ; @@ -550,14 +550,14 @@ int UnLockMutex(wolfSSL_Mutex *m) if (ercd == E_OK) { memcpy(newp, p, sz) ; ercd = tk_rel_mpl(ID_wolfssl_MPOOL, (VP)p); - if (ercd == E_OK) { + if (ercd == E_OK) { return newp; } } } return 0 ; } - + void uTKernel_free(void *p) { ER ercd; ercd = tk_rel_mpl(ID_wolfssl_MPOOL, (VP)p); @@ -565,7 +565,7 @@ int UnLockMutex(wolfSSL_Mutex *m) return ; } else { return ; - } + } } #elif defined(WOLFSSL_MDK_ARM)|| defined(WOLFSSL_CMSIS_RTOS) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 5ae581cdf..3ea8c2afb 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -101,7 +101,7 @@ /* Uncomment next line if building for uITRON4 */ /* #define WOLFSSL_uITRON4 */ - + /* Uncomment next line if building for uT-Kernel */ /* #define WOLFSSL_uTKERNEL2 */ @@ -650,7 +650,7 @@ #endif #endif /* MICRIUM */ - + #ifdef WOLFSSL_QL #ifndef WOLFSSL_SEP