1// Copyright 2016 The Fuchsia Authors
2// Copyright (c) 2008 Travis Geiselbrecht
3//
4// Use of this source code is governed by a MIT-style
5// license that can be found in the LICENSE file or at
6// https://opensource.org/licenses/MIT
7
8#pragma once
9
10#include <sys/types.h>
11#include <zircon/compiler.h>
12#include <zircon/types.h>
13
14__BEGIN_CDECLS
15
16typedef void(*platform_timer_callback)(zx_time_t now);
17
18// API to set/clear a hardware timer that is responsible for calling timer_tick() when it fires
19zx_status_t platform_set_oneshot_timer(zx_time_t deadline);
20void        platform_stop_timer(void);
21
22// Shutdown the calling CPU's platform timer.
23//
24// Should be called after |platform_stop_timer|, but before taking the CPU offline.
25//
26// TODO(maniscalco): Provide a "resume" function so we can suspend/resume.
27void platform_shutdown_timer(void);
28
29void timer_tick(zx_time_t now);
30
31__END_CDECLS
32