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