xref: /linux/tools/testing/selftests/clock-helpers.h (revision 3b4128b9f374b4219eb716f4ad8a307bc7eb3d84)
1*431012ddSThomas Weißschuh (Schneider Electric) /* SPDX-License-Identifier: GPL-2.0 */
2*431012ddSThomas Weißschuh (Schneider Electric) 
3*431012ddSThomas Weißschuh (Schneider Electric) #ifndef __CLOCK_HELPERS_H
4*431012ddSThomas Weißschuh (Schneider Electric) #define __CLOCK_HELPERS_H
5*431012ddSThomas Weißschuh (Schneider Electric) 
6*431012ddSThomas Weißschuh (Schneider Electric) #include <sys/types.h>
7*431012ddSThomas Weißschuh (Schneider Electric) #include <time.h>
8*431012ddSThomas Weißschuh (Schneider Electric) 
9*431012ddSThomas Weißschuh (Schneider Electric) #define MSEC_PER_SEC	1000LL
10*431012ddSThomas Weißschuh (Schneider Electric) #define USEC_PER_MSEC	1000LL
11*431012ddSThomas Weißschuh (Schneider Electric) #define NSEC_PER_USEC	1000LL
12*431012ddSThomas Weißschuh (Schneider Electric) #define NSEC_PER_MSEC	1000000LL
13*431012ddSThomas Weißschuh (Schneider Electric) #define USEC_PER_SEC	1000000LL
14*431012ddSThomas Weißschuh (Schneider Electric) #define NSEC_PER_SEC	1000000000LL
15*431012ddSThomas Weißschuh (Schneider Electric) #define PSEC_PER_SEC	1000000000000LL
16*431012ddSThomas Weißschuh (Schneider Electric) #define FSEC_PER_SEC	1000000000000000LL
17*431012ddSThomas Weißschuh (Schneider Electric) 
18*431012ddSThomas Weißschuh (Schneider Electric) #ifndef CLOCK_AUX
19*431012ddSThomas Weißschuh (Schneider Electric) #define CLOCK_AUX	16
20*431012ddSThomas Weißschuh (Schneider Electric) #endif
21*431012ddSThomas Weißschuh (Schneider Electric) 
22*431012ddSThomas Weißschuh (Schneider Electric) #ifndef MAX_AUX_CLOCKS
23*431012ddSThomas Weißschuh (Schneider Electric) #define MAX_AUX_CLOCKS	8
24*431012ddSThomas Weißschuh (Schneider Electric) #endif
25*431012ddSThomas Weißschuh (Schneider Electric) 
26*431012ddSThomas Weißschuh (Schneider Electric) #ifndef CLOCK_AUX_LAST
27*431012ddSThomas Weißschuh (Schneider Electric) #define CLOCK_AUX_LAST	(CLOCK_AUX + MAX_AUX_CLOCKS - 1)
28*431012ddSThomas Weißschuh (Schneider Electric) #endif
29*431012ddSThomas Weißschuh (Schneider Electric) 
30*431012ddSThomas Weißschuh (Schneider Electric) __attribute__((unused))
31*431012ddSThomas Weißschuh (Schneider Electric) static inline const char *clock_name(clockid_t clockid)
32*431012ddSThomas Weißschuh (Schneider Electric) {
33*431012ddSThomas Weißschuh (Schneider Electric) 	switch (clockid) {
34*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_REALTIME:
35*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_REALTIME";
36*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_MONOTONIC:
37*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_MONOTONIC";
38*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_PROCESS_CPUTIME_ID:
39*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_PROCESS_CPUTIME_ID";
40*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_THREAD_CPUTIME_ID:
41*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_THREAD_CPUTIME_ID";
42*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_MONOTONIC_RAW:
43*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_MONOTONIC_RAW";
44*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_REALTIME_COARSE:
45*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_REALTIME_COARSE";
46*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_MONOTONIC_COARSE:
47*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_MONOTONIC_COARSE";
48*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_BOOTTIME:
49*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_BOOTTIME";
50*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_REALTIME_ALARM:
51*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_REALTIME_ALARM";
52*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_BOOTTIME_ALARM:
53*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_BOOTTIME_ALARM";
54*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_TAI:
55*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_TAI";
56*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 0:
57*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX0";
58*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 1:
59*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX1";
60*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 2:
61*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX2";
62*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 3:
63*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX3";
64*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 4:
65*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX4";
66*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 5:
67*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX5";
68*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 6:
69*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX6";
70*431012ddSThomas Weißschuh (Schneider Electric) 	case CLOCK_AUX + 7:
71*431012ddSThomas Weißschuh (Schneider Electric) 		return "CLOCK_AUX7";
72*431012ddSThomas Weißschuh (Schneider Electric) 	};
73*431012ddSThomas Weißschuh (Schneider Electric) 	return "UNKNOWN_CLOCKID";
74*431012ddSThomas Weißschuh (Schneider Electric) }
75*431012ddSThomas Weißschuh (Schneider Electric) 
76*431012ddSThomas Weißschuh (Schneider Electric) #endif /* __CLOCK_HELPERS_H */
77