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 11namespace fzl { 12 13zx::ticks NsToTicks(zx::duration ns) { 14 return zx::ticks(ns_to_ticks(ns.get())); 15} 16 17zx::duration TicksToNs(zx::ticks ticks) { 18 return zx::duration(ticks_to_ns(ticks.get())); 19} 20 21} // namespace fzl 22 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 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