Răsfoiți Sursa

Implement clock() wrapper for built-in libc (#691)

Huang Qi 4 ani în urmă
părinte
comite
8fd89bd415
1 a modificat fișierele cu 9 adăugiri și 0 ștergeri
  1. 9 0
      core/iwasm/libraries/libc-builtin/libc_builtin_wrapper.c

+ 9 - 0
core/iwasm/libraries/libc-builtin/libc_builtin_wrapper.c

@@ -1090,6 +1090,14 @@ clock_gettime_wrapper(wasm_exec_env_t exec_env,
     return (uint32)0;
     return (uint32)0;
 }
 }
 
 
+static uint64
+clock_wrapper(wasm_exec_env_t exec_env)
+{
+    /* Convert to nano seconds as CLOCKS_PER_SEC in wasi-sdk */
+
+    return os_time_get_boot_microsecond() * 1000;
+}
+
 #if WASM_ENABLE_SPEC_TEST != 0
 #if WASM_ENABLE_SPEC_TEST != 0
 static void
 static void
 print_wrapper(wasm_exec_env_t exec_env)
 print_wrapper(wasm_exec_env_t exec_env)
@@ -1190,6 +1198,7 @@ static NativeSymbol native_symbols_libc_builtin[] = {
     REG_NATIVE_FUNC(__cxa_begin_catch, "(*)"),
     REG_NATIVE_FUNC(__cxa_begin_catch, "(*)"),
     REG_NATIVE_FUNC(__cxa_throw, "(**i)"),
     REG_NATIVE_FUNC(__cxa_throw, "(**i)"),
     REG_NATIVE_FUNC(clock_gettime, "(i*)i"),
     REG_NATIVE_FUNC(clock_gettime, "(i*)i"),
+    REG_NATIVE_FUNC(clock, "()I"),
 };
 };
 
 
 #if WASM_ENABLE_SPEC_TEST != 0
 #if WASM_ENABLE_SPEC_TEST != 0