1 // Copyright 2018 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include <zircon/compiler.h> 6 #include <zircon/syscalls.h> 7 #include <zircon/types.h> 8 #include <lib/fzl/time.h> 9 #include <lib/zx/time.h> 10 11 namespace fzl { 12 NsToTicks(zx::duration ns)13zx::ticks NsToTicks(zx::duration ns) { 14 return zx::ticks(ns_to_ticks(ns.get())); 15 } 16 TicksToNs(zx::ticks ticks)17zx::duration TicksToNs(zx::ticks ticks) { 18 return zx::duration(ticks_to_ns(ticks.get())); 19 } 20 21 } // namespace fzl 22 ns_to_ticks(zx_duration_t ns)23zx_ticks_t ns_to_ticks(zx_duration_t ns) { 24 return static_cast<zx_ticks_t>(static_cast<__uint128_t>(ns) * zx_ticks_per_second() / 25 ZX_SEC(1)); 26 } 27 ticks_to_ns(zx_ticks_t ticks)28zx_duration_t ticks_to_ns(zx_ticks_t ticks) { 29 return static_cast<zx_duration_t>(static_cast<__uint128_t>(ticks) * ZX_SEC(1) / 30 zx_ticks_per_second()); 31 } 32