From b75224ce032059f0796e4540618d8c2d96fd6c9a Mon Sep 17 00:00:00 2001 From: Huang Qi <757509347@qq.com> Date: Mon, 7 Dec 2020 21:15:41 +0800 Subject: [PATCH] Using posix thread implementation for NuttX (#462) Signed-off-by: Huang Qi Co-authored-by: Huang Qi --- core/shared/platform/nuttx/nuttx_platform.c | 11 --- core/shared/platform/nuttx/nuttx_thread.c | 80 ------------------- .../shared/platform/nuttx/platform_internal.h | 2 + product-mini/platforms/nuttx/wamr.mk | 4 +- 4 files changed, 5 insertions(+), 92 deletions(-) delete mode 100644 core/shared/platform/nuttx/nuttx_thread.c diff --git a/core/shared/platform/nuttx/nuttx_platform.c b/core/shared/platform/nuttx/nuttx_platform.c index 4a126c7319..160147ccaf 100644 --- a/core/shared/platform/nuttx/nuttx_platform.c +++ b/core/shared/platform/nuttx/nuttx_platform.c @@ -57,14 +57,3 @@ os_mprotect(void *addr, size_t size, int prot) void os_dcache_flush() {} - -uint64 -os_time_get_boot_microsecond() -{ - struct timespec ts; - if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) { - return 0; - } - - return ((uint64)ts.tv_sec) * 1000 * 1000 + ((uint64)ts.tv_nsec) / 1000; -} diff --git a/core/shared/platform/nuttx/nuttx_thread.c b/core/shared/platform/nuttx/nuttx_thread.c deleted file mode 100644 index d1c8be9966..0000000000 --- a/core/shared/platform/nuttx/nuttx_thread.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2020 XiaoMi Corporation. All rights reserved. - * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - */ - -#include "platform_api_extension.h" -#include "platform_api_vmcore.h" - -korp_tid -os_self_thread() -{ - return (korp_tid)pthread_self(); -} - -int -os_mutex_init(korp_mutex *mutex) -{ - return pthread_mutex_init(mutex, NULL) == 0 ? BHT_OK : BHT_ERROR; -} - -int -os_mutex_destroy(korp_mutex *mutex) -{ - int ret; - - assert(mutex); - ret = pthread_mutex_destroy(mutex); - - return ret == 0 ? BHT_OK : BHT_ERROR; -} - -int -os_mutex_lock(korp_mutex *mutex) -{ - int ret; - - assert(mutex); - ret = pthread_mutex_lock(mutex); - - return ret == 0 ? BHT_OK : BHT_ERROR; -} - -int -os_mutex_unlock(korp_mutex *mutex) -{ - int ret; - - assert(mutex); - ret = pthread_mutex_unlock(mutex); - - return ret == 0 ? BHT_OK : BHT_ERROR; -} - -uint8 * -os_thread_get_stack_boundary() -{ - return NULL; -} - -int -os_cond_init(korp_cond *cond) -{ - assert(cond); - - if (pthread_cond_init(cond, NULL) != BHT_OK) - return BHT_ERROR; - - return BHT_OK; -} - -int -os_cond_destroy(korp_cond *cond) -{ - assert(cond); - - if (pthread_cond_destroy(cond) != BHT_OK) - return BHT_ERROR; - - return BHT_OK; -} diff --git a/core/shared/platform/nuttx/platform_internal.h b/core/shared/platform/nuttx/platform_internal.h index 856aab432f..77a18e8e9a 100644 --- a/core/shared/platform/nuttx/platform_internal.h +++ b/core/shared/platform/nuttx/platform_internal.h @@ -16,6 +16,8 @@ #include #include #include +#include +#include #ifdef __cplusplus extern "C" { diff --git a/product-mini/platforms/nuttx/wamr.mk b/product-mini/platforms/nuttx/wamr.mk index 2efdbd7034..ae1b301abd 100644 --- a/product-mini/platforms/nuttx/wamr.mk +++ b/product-mini/platforms/nuttx/wamr.mk @@ -153,7 +153,8 @@ CFLAGS += -I${IWASM_ROOT}/interpreter endif CSRCS += nuttx_platform.c \ - nuttx_thread.c \ + posix_thread.c \ + posix_time.c \ mem_alloc.c \ ems_kfc.c \ ems_alloc.c \ @@ -176,6 +177,7 @@ CSRCS += nuttx_platform.c \ ASRCS += ${INVOKE_NATIVE} VPATH += ${SHARED_ROOT}/platform/nuttx +VPATH += ${SHARED_ROOT}/platform/common/posix VPATH += ${SHARED_ROOT}/mem-alloc VPATH += ${SHARED_ROOT}/mem-alloc/ems VPATH += ${SHARED_ROOT}/utils