Some fix for scrolling with lasso.
[tangerine.git] / rom / timer / timer_intern.h
blob070ff4627d4549cd0484aaf672ad89dfde304e18
1 /*
2 Copyright © 1995-2006, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Internal information about the timer.device and HIDD's
6 Lang: english
7 */
9 #ifndef EXEC_TYPES_H
10 #include <exec/types.h>
11 #endif
12 #ifndef EXEC_LISTS_H
13 #include <exec/lists.h>
14 #endif
15 #ifndef EXEC_INTERRUPTS_H
16 #include <exec/interrupts.h>
17 #endif
18 #ifndef EXEC_IO_H
19 #include <exec/io.h>
20 #endif
21 #ifndef EXEC_DEVICES_H
22 #include <exec/devices.h>
23 #endif
24 #ifndef DEVICES_TIMER_H
25 #include <devices/timer.h>
26 #endif
27 #ifndef HIDD_TIMER_H
28 #include <hidd/timer.h>
29 #endif
30 #ifndef DOS_BPTR_H
31 #include <dos/bptr.h>
32 #endif
34 #include <aros/system.h>
35 #include <aros/libcall.h>
36 #include <aros/asmcall.h>
38 #define TL_VBLANK 0
39 #define TL_WAITVBL 1
40 #define TL_MICROHZ 2
41 #define TL_ECLOCK 3
42 #define TL_WAITECLOCK 4
43 #define NUM_LISTS 5
45 struct TimerBase
47 /* Required by the system */
48 struct Device tb_Device;
49 struct ExecBase *tb_SysBase;
50 // struct Library *tb_BOOPSIBase;
51 BPTR tb_SegList;
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];
66 UQUAD tb_ticks_total;
67 ULONG tb_ticks_sec;
68 ULONG tb_ticks_elapsed;
69 ULONG tb_prev_tick;
71 struct timerequest tb_vblank_timerequest; /* For vblank emulation */
74 #define GetTimerBase(tb) ((struct TimerBase *)(tb))
75 #define GetDevice(tb) ((struct Device *)(tb))
77 #define TF_GO (1L<<0)
78 #define TF_GotVBlank (1L<<1) /* HIDD used for VBlank units */
79 #define TF_GotEClock (1L<<2) /* HIDD used for other units */