summaryrefslogtreecommitdiff
path: root/libhw_generic/alarmclock.c
blob: 357982905309ada493ba20660c16bedf2611e1b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* libhw_generic/alarmclock.c - Device-independent <libhw/generic/alarmclock.h> storage
 *
 * Copyright (C) 2024-2025  Luke T. Shumaker <lukeshu@lukeshu.com>
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

#include <libhw/generic/alarmclock.h>

lo_interface alarmclock bootclock = {};

void alarmclock_sleep_for_ns(lo_interface alarmclock clock, uint64_t delta_ns) {
	alarmclock_sleep_until_ns(clock, LO_CALL(clock, get_time_ns) + delta_ns);
}

void alarmclock_sleep_for_us(lo_interface alarmclock clock, uint64_t delta_us) {
	alarmclock_sleep_for_ns(clock, delta_us * (NS_PER_S/US_PER_S));
}

void alarmclock_sleep_for_ms(lo_interface alarmclock clock, uint64_t delta_ms) {
	alarmclock_sleep_for_ns(clock, delta_ms * (NS_PER_S/MS_PER_S));
}

void alarmclock_sleep_for_s(lo_interface alarmclock clock, uint64_t delta_s) {
	alarmclock_sleep_for_ns(clock, delta_s * NS_PER_S);
}