blob: 21d41af59d343f7d644e018cd8ec9d98d790f7d8 [file] [log] [blame]
// Copyright 2023 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT
#ifndef ZIRCON_KERNEL_INCLUDE_DEV_TIMER_H_
#define ZIRCON_KERNEL_INCLUDE_DEV_TIMER_H_
#include <zircon/time.h>
#include <zircon/types.h>
// Systemwide timer interface, for platforms or architectures
// that utilize the abstraction.
//
// These correspond (currently) to calls defined in platform/timer.h
// Read the current ticks of the hardware timer, at the rate the timer is ticking.
// Generally converted to real time in current_time().
zx_ticks_t timer_current_ticks();
// Set a timer to fire at the deadline specified that calls timer_tick().
zx_status_t timer_set_oneshot_timer(zx_time_t deadline);
// Cancel a pending oneshot timer. Okay to call if no pending oneshot.
zx_status_t timer_stop();
// Stop the timer hardware. Stop should be called before shutdown.
zx_status_t timer_shutdown();
#endif // ZIRCON_KERNEL_INCLUDE_DEV_TIMER_H_