aboutsummaryrefslogtreecommitdiffstats
path: root/src/timer.zig
diff options
context:
space:
mode:
authorClyne Sullivan <clyne@bitgloo.com>2024-10-06 16:20:14 -0400
committerClyne Sullivan <clyne@bitgloo.com>2024-10-06 16:20:14 -0400
commit0491a3f6af9e318b9e3774c34fe4923a67376829 (patch)
treeccdf581faee3e37c3efb7c0172fa8036665b8c25 /src/timer.zig
parentf4bf5658970543f26f25816b9123ecfd258bdd42 (diff)
better tick interface
Diffstat (limited to 'src/timer.zig')
-rw-r--r--src/timer.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/timer.zig b/src/timer.zig
index b30cfcf..00fd6ba 100644
--- a/src/timer.zig
+++ b/src/timer.zig
@@ -33,10 +33,15 @@ const driver = struct {
self.lld.initialize(freq);
}
- pub fn ticks(self: driver) u32 {
+ pub fn count(self: driver) u32 {
_ = self;
return @atomicLoad(u32, &ticks_raw, .acquire);
}
+
+ pub fn delay(self: driver, ticks: u32) void {
+ const now = self.count();
+ while (self.count() - now < ticks) {}
+ }
};
pub const systick = driver { .lld = @ptrFromInt(0xE000E010) };