Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / um / include / shared / timer-internal.h
1 /*
2  * Copyright (C) 2012 - 2014 Cisco Systems
3  * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
4  * Licensed under the GPL
5  */
6
7 #ifndef __TIMER_INTERNAL_H__
8 #define __TIMER_INTERNAL_H__
9
10 #define TIMER_MULTIPLIER 256
11 #define TIMER_MIN_DELTA  500
12
13 enum time_travel_mode {
14         TT_MODE_OFF,
15         TT_MODE_BASIC,
16         TT_MODE_INFCPU,
17 };
18
19 enum time_travel_timer_mode {
20         TT_TMR_DISABLED,
21         TT_TMR_ONESHOT,
22         TT_TMR_PERIODIC,
23 };
24
25 #ifdef CONFIG_UML_TIME_TRAVEL_SUPPORT
26 extern enum time_travel_mode time_travel_mode;
27 extern unsigned long long time_travel_time;
28 extern enum time_travel_timer_mode time_travel_timer_mode;
29 extern unsigned long long time_travel_timer_expiry;
30 extern unsigned long long time_travel_timer_interval;
31
32 static inline void time_travel_set_time(unsigned long long ns)
33 {
34         time_travel_time = ns;
35 }
36
37 static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode)
38 {
39         time_travel_timer_mode = mode;
40 }
41
42 static inline void time_travel_set_timer_expiry(unsigned long long expiry)
43 {
44         time_travel_timer_expiry = expiry;
45 }
46 #else
47 #define time_travel_mode TT_MODE_OFF
48 #define time_travel_time 0
49 #define time_travel_timer_expiry 0
50 #define time_travel_timer_interval 0
51
52 static inline void time_travel_set_time(unsigned long long ns)
53 {
54 }
55
56 static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode)
57 {
58 }
59
60 static inline void time_travel_set_timer_expiry(unsigned long long expiry)
61 {
62 }
63
64 #define time_travel_timer_mode TT_TMR_DISABLED
65 #endif
66
67 #endif