blob: 0642b0d3af1d1ec6df6840b36d9e206254d070ba [file]
// Copyright 2026 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_DEV_TIMER_ARM_GENERIC_ARM_GENERIC_TIMER_FFI_H_
#define ZIRCON_KERNEL_DEV_TIMER_ARM_GENERIC_ARM_GENERIC_TIMER_FFI_H_
#include <lib/arch/ticks.h>
#include <lib/zbi-format/driver-config.h>
#include <zircon/compiler.h>
#include <zircon/types.h>
__BEGIN_CDECLS
zx_ticks_t rust_platform_current_raw_ticks_synchronized_0();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_1();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_2();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_3();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_4();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_5();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_6();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_7();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_8();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_9();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_10();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_11();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_12();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_13();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_14();
zx_ticks_t rust_platform_current_raw_ticks_synchronized_15();
zx_ticks_t rust_platform_convert_early_ticks(arch::EarlyTicks sample);
zx_status_t rust_platform_set_oneshot_timer(zx_ticks_t deadline);
void rust_platform_stop_timer();
void rust_platform_shutdown_timer();
zx_status_t rust_platform_suspend_timer_curr_cpu();
zx_status_t rust_platform_resume_timer_curr_cpu();
bool rust_platform_usermode_can_access_tick_registers();
void rust_arm_generic_timer_init(const zbi_dcfg_arm_generic_timer_driver_t& config);
void rust_arm_generic_timer_init_post_vm(const zbi_dcfg_arm_generic_timer_driver_t& config);
bool rust_arm_use_phys_timer_in_vdso();
__END_CDECLS
#endif // ZIRCON_KERNEL_DEV_TIMER_ARM_GENERIC_ARM_GENERIC_TIMER_FFI_H_