From 6e54f0d2dfce07b81f512df08fe459da0f6270d2 Mon Sep 17 00:00:00 2001 From: Jody Sankey Date: Thu, 17 Dec 2020 10:55:29 -0800 Subject: [PATCH] [fuchsia] Add wrapper for zx_clock_get_monotonic. (#23128) Bug: https://github.com/flutter/flutter/issues/72321 Co-authored-by: Jody Sankey --- shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart | 1 + shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc | 4 ++++ shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h | 2 ++ 3 files changed, 7 insertions(+) diff --git a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart index 425e321cff8..725a07129b5 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart +++ b/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart @@ -189,6 +189,7 @@ class System extends NativeFieldWrapperClass2 { static MapResult vmoMap(Handle vmo) native 'System_VmoMap'; // Time operations. + static int clockGetMonotonic() native 'System_ClockGetMonotonic'; static int clockGet(int clockId) native 'System_ClockGet'; // TODO(edcoyne): Remove this, it is required to safely do an API transition across repos. diff --git a/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc b/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc index 9482c453d50..ba9b13b7100 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc +++ b/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc @@ -459,6 +459,10 @@ Dart_Handle System::VmoMap(fml::RefPtr vmo) { return ConstructDartObject(kMapResult, ToDart(ZX_OK), object); } +uint64_t System::ClockGetMonotonic() { + return zx_clock_get_monotonic(); +} + uint64_t System::ClockGet(uint32_t clock_id) { zx_time_t result = 0; zx_clock_get(clock_id, &result); diff --git a/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h b/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h index 3093a65b316..10aa545e0eb 100644 --- a/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h +++ b/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h @@ -61,6 +61,8 @@ class System : public fml::RefCountedThreadSafe, static Dart_Handle VmoMap(fml::RefPtr vmo); + static uint64_t ClockGetMonotonic(); + static uint64_t ClockGet(uint32_t clock_id); static void RegisterNatives(tonic::DartLibraryNatives* natives);