1f08c3bdfSopenharmony_ci/* 2f08c3bdfSopenharmony_ci * File: common_timers.h 3f08c3bdfSopenharmony_ci * 4f08c3bdfSopenharmony_ci * Keep all the common defines/checks for the timer tests here 5f08c3bdfSopenharmony_ci */ 6f08c3bdfSopenharmony_ci 7f08c3bdfSopenharmony_ci#ifndef LAPI_COMMON_TIMERS_H__ 8f08c3bdfSopenharmony_ci#define LAPI_COMMON_TIMERS_H__ 9f08c3bdfSopenharmony_ci 10f08c3bdfSopenharmony_ci#include "config.h" 11f08c3bdfSopenharmony_ci#include "lapi/syscalls.h" 12f08c3bdfSopenharmony_ci#include "lapi/posix_clocks.h" 13f08c3bdfSopenharmony_ci 14f08c3bdfSopenharmony_ci#ifndef NSEC_PER_SEC 15f08c3bdfSopenharmony_ci#define NSEC_PER_SEC (1000000000LL) 16f08c3bdfSopenharmony_ci#endif 17f08c3bdfSopenharmony_ci 18f08c3bdfSopenharmony_cistatic const clock_t clock_list[] = { 19f08c3bdfSopenharmony_ci CLOCK_REALTIME, 20f08c3bdfSopenharmony_ci CLOCK_MONOTONIC, 21f08c3bdfSopenharmony_ci CLOCK_PROCESS_CPUTIME_ID, 22f08c3bdfSopenharmony_ci CLOCK_THREAD_CPUTIME_ID, 23f08c3bdfSopenharmony_ci CLOCK_BOOTTIME, 24f08c3bdfSopenharmony_ci CLOCK_BOOTTIME_ALARM, 25f08c3bdfSopenharmony_ci CLOCK_REALTIME_ALARM, 26f08c3bdfSopenharmony_ci CLOCK_TAI, 27f08c3bdfSopenharmony_ci}; 28f08c3bdfSopenharmony_ci/* CLOCKS_DEFINED is the number of clock sources defined for sure */ 29f08c3bdfSopenharmony_ci#define CLOCKS_DEFINED (sizeof(clock_list) / sizeof(*clock_list)) 30f08c3bdfSopenharmony_ci/* MAX_CLOCKS is the maximum number of clock sources supported by kernel */ 31f08c3bdfSopenharmony_ci#define MAX_CLOCKS 16 32f08c3bdfSopenharmony_ci 33f08c3bdfSopenharmony_ci#define CLOCK_TO_STR(def_name) \ 34f08c3bdfSopenharmony_ci case def_name: \ 35f08c3bdfSopenharmony_ci return #def_name; 36f08c3bdfSopenharmony_ci 37f08c3bdfSopenharmony_cistatic inline const char *get_clock_str(const int clock_id) 38f08c3bdfSopenharmony_ci{ 39f08c3bdfSopenharmony_ci switch (clock_id) { 40f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_REALTIME); 41f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_MONOTONIC); 42f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_PROCESS_CPUTIME_ID); 43f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_THREAD_CPUTIME_ID); 44f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_BOOTTIME); 45f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_BOOTTIME_ALARM); 46f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_REALTIME_ALARM); 47f08c3bdfSopenharmony_ci CLOCK_TO_STR(CLOCK_TAI); 48f08c3bdfSopenharmony_ci default: 49f08c3bdfSopenharmony_ci return "CLOCK_!?!?!?"; 50f08c3bdfSopenharmony_ci } 51f08c3bdfSopenharmony_ci} 52f08c3bdfSopenharmony_ci 53f08c3bdfSopenharmony_cistatic inline int possibly_unsupported(clock_t clock) 54f08c3bdfSopenharmony_ci{ 55f08c3bdfSopenharmony_ci switch (clock) { 56f08c3bdfSopenharmony_ci case CLOCK_BOOTTIME: 57f08c3bdfSopenharmony_ci case CLOCK_BOOTTIME_ALARM: 58f08c3bdfSopenharmony_ci case CLOCK_REALTIME_ALARM: 59f08c3bdfSopenharmony_ci case CLOCK_TAI: 60f08c3bdfSopenharmony_ci return 1; 61f08c3bdfSopenharmony_ci default: 62f08c3bdfSopenharmony_ci return 0; 63f08c3bdfSopenharmony_ci } 64f08c3bdfSopenharmony_ci} 65f08c3bdfSopenharmony_ci 66f08c3bdfSopenharmony_ci#include "lapi/syscalls.h" 67f08c3bdfSopenharmony_ci 68f08c3bdfSopenharmony_ci#include <time.h> 69f08c3bdfSopenharmony_ci#include <unistd.h> 70f08c3bdfSopenharmony_ci 71f08c3bdfSopenharmony_ci/* timer_t in kernel(int) is different from Glibc definition(void*). 72f08c3bdfSopenharmony_ci * Use the kernel definition for syscall tests 73f08c3bdfSopenharmony_ci */ 74f08c3bdfSopenharmony_citypedef int kernel_timer_t; 75f08c3bdfSopenharmony_ci 76f08c3bdfSopenharmony_ci#endif /* LAPI_COMMON_TIMERS_H__ */ 77