Using posix thread implementation for NuttX (#462)

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
This commit is contained in:
Huang Qi 2020-12-07 21:15:41 +08:00 committed by GitHub
parent 388530c738
commit b75224ce03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 5 additions and 92 deletions

View File

@ -57,14 +57,3 @@ os_mprotect(void *addr, size_t size, int prot)
void void
os_dcache_flush() 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;
}

View File

@ -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;
}

View File

@ -16,6 +16,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
#include <sys/time.h>
#include <sys/mman.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -153,7 +153,8 @@ CFLAGS += -I${IWASM_ROOT}/interpreter
endif endif
CSRCS += nuttx_platform.c \ CSRCS += nuttx_platform.c \
nuttx_thread.c \ posix_thread.c \
posix_time.c \
mem_alloc.c \ mem_alloc.c \
ems_kfc.c \ ems_kfc.c \
ems_alloc.c \ ems_alloc.c \
@ -176,6 +177,7 @@ CSRCS += nuttx_platform.c \
ASRCS += ${INVOKE_NATIVE} ASRCS += ${INVOKE_NATIVE}
VPATH += ${SHARED_ROOT}/platform/nuttx VPATH += ${SHARED_ROOT}/platform/nuttx
VPATH += ${SHARED_ROOT}/platform/common/posix
VPATH += ${SHARED_ROOT}/mem-alloc VPATH += ${SHARED_ROOT}/mem-alloc
VPATH += ${SHARED_ROOT}/mem-alloc/ems VPATH += ${SHARED_ROOT}/mem-alloc/ems
VPATH += ${SHARED_ROOT}/utils VPATH += ${SHARED_ROOT}/utils