1 #ifndef _TIMER_INTERN_H
2 #define _TIMER_INTERN_H
5 Copyright © 1995-2008, The AROS Development Team. All rights reserved.
8 Desc: Internal information about the timer.device and HIDD's
13 #include <exec/types.h>
16 #include <exec/lists.h>
18 #ifndef EXEC_INTERRUPTS_H
19 #include <exec/interrupts.h>
24 #ifndef EXEC_DEVICES_H
25 #include <exec/devices.h>
27 #ifndef DEVICES_TIMER_H
28 #include <devices/timer.h>
31 #include <hidd/timer.h>
37 #include <aros/system.h>
38 #include <aros/libcall.h>
39 #include <aros/asmcall.h>
45 #define TL_WAITECLOCK 4
50 /* Required by the system */
51 struct Device tb_Device
;
53 struct IClass
*tb_TimerHIDD
;
54 ULONG tb_MiscFlags
; /* miscellaneous flags */
55 struct timeval tb_CurrentTime
; /* system time */
56 struct timeval tb_Elapsed
; /* Elapsed Time for VBlank */
58 /* This is required for the vertical blanking stuff */
59 struct Interrupt tb_VBlankInt
;
60 struct IClass
*tb_VBlankHIDD
; /* vblank hidd class */
61 struct timeval tb_VBlankTime
; /* vblank interval */
63 /* Lists for waiting vblank, waituntil, microhz, eclock, waiteclock */
64 struct MinList tb_Lists
[NUM_LISTS
];
68 ULONG tb_ticks_elapsed
;
71 struct timerequest tb_vblank_timerequest
; /* For vblank emulation */
74 #define GetTimerBase(tb) ((struct TimerBase *)(tb))
75 #define GetDevice(tb) ((struct Device *)(tb))
78 #define TF_GotVBlank (1L<<1) /* HIDD used for VBlank units */
79 #define TF_GotEClock (1L<<2) /* HIDD used for other units */
81 #endif /* _TIMER_INTERN_H */