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 425e321cff87f..725a07129b59d 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 9482c453d50ca..ba9b13b71002c 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 3093a65b31649..10aa545e0eb06 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);