2 ** Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 ** Distributed under the terms of the MIT License.
5 #ifndef _KERNEL_TIMER_H
6 #define _KERNEL_TIMER_H
9 #include <KernelExport.h>
18 #define B_TIMER_REAL_TIME_BASE 0x2000
19 // For an absolute timer the given time is interpreted as a real-time, not
20 // as a system time. Note that setting the real-time clock will cause the
21 // timer to be updated -- it will expire according to the new clock.
22 // Relative timers are unaffected by this flag.
23 #define B_TIMER_USE_TIMER_STRUCT_TIMES 0x4000
24 // For add_timer(): Use the timer::schedule_time (absolute time) and
25 // timer::period values instead of the period parameter.
26 #define B_TIMER_FLAGS \
27 (B_TIMER_USE_TIMER_STRUCT_TIMES | B_TIMER_REAL_TIME_BASE)
29 /* Timer info structure */
32 int (*get_priority
)(void);
33 status_t (*set_hardware_timer
)(bigtime_t timeout
);
34 status_t (*clear_hardware_timer
)(void);
35 status_t (*init
)(struct kernel_args
*args
);
38 typedef struct timer_info timer_info
;
41 /* kernel functions */
42 status_t
timer_init(struct kernel_args
*);
43 void timer_init_post_rtc(void);
44 void timer_real_time_clock_changed();
45 int32
timer_interrupt(void);
51 #endif /* _KERNEL_TIMER_H */