#ifndef TIMER_H #define TIMER_H #include #include typedef Uint32 (*TimerCallback)(Uint32 timer_id, Uint32 interval, void *param); typedef struct { Uint32 id; uint64_t due_ns; uint64_t interval_ns; TimerCallback callback; void *param; } timer_t; /* Initialize timer system - must be called once */ void timer_init(void); /* Schedule a new timer to fire after delay_ns nanoseconds */ Uint32 add_timer_ns(uint64_t delay_ns, TimerCallback callback, void *param); /* Cancel a pending timer by its ID */ void remove_timer(Uint32 id); /* Process due timers - call once per main loop iteration */ void process_due_timers(void); /* Get time until next timer expires (in nanoseconds) */ uint64_t next_timeout_ns(void); /* Get current monotonic time in nanoseconds */ uint64_t get_time_ns(void); #endif /* TIMER_H */