Merge tag 'perf-core-for-mingo-5.4-20190822' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.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(enum time_travel_timer_mode mode,
38                                          unsigned long long expiry)
39 {
40         time_travel_timer_mode = mode;
41         time_travel_timer_expiry = expiry;
42 }
43 #else
44 #define time_travel_mode TT_MODE_OFF
45 #define time_travel_time 0
46 #define time_travel_timer_expiry 0
47 #define time_travel_timer_interval 0
48
49 static inline void time_travel_set_time(unsigned long long ns)
50 {
51 }
52
53 static inline void time_travel_set_timer(enum time_travel_timer_mode mode,
54                                          unsigned long long expiry)
55 {
56 }
57
58 #define time_travel_timer_mode TT_TMR_DISABLED
59 #endif
60
61 #endif