1/* 2 * Copyright 2011, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _SYSTEM_USER_TIMER_DEFS_H 6#define _SYSTEM_USER_TIMER_DEFS_H 7 8 9#include <limits.h> 10#include <time.h> 11 12#include <SupportDefs.h> 13 14 15#define CLOCK_PROCESS_USER_CPUTIME_ID ((clockid_t)-4) 16 /* clock measuring the used user CPU time of the current process */ 17 18// limits 19#define MAX_USER_TIMERS_PER_TEAM _POSIX_TIMER_MAX 20 // maximum numbers of user-defined user timers (timer_create()) 21#define MAX_USER_TIMER_OVERRUN_COUNT INT_MAX 22 // cap value of a timer's overrun counter 23 24#if MAX_USER_TIMER_OVERRUN_COUNT < _POSIX_DELAYTIMER_MAX 25# error "MAX_USER_TIMER_OVERRUN_COUNT < _POSIX_DELAYTIMER_MAX" 26#endif 27 28#define USER_TIMER_REAL_TIME_ID 0 29 // predefined ID for the real time timer 30#define USER_TIMER_TEAM_TOTAL_TIME_ID 1 31 // predefined ID for the team's total (kernel + user) time timer 32#define USER_TIMER_TEAM_USER_TIME_ID 2 33 // predefined ID for the team's user time timer 34#define USER_TIMER_FIRST_USER_DEFINED_ID 3 35 // first ID assigned to a user-defined timer (timer_create()) 36 37// _kern_create_user_timer() flag: 38#define USER_TIMER_SIGNAL_THREAD 0x01 39 // send the signal to the thread instead of the team (valid only for thread 40 // timers) 41 42 43struct user_timer_info { 44 bigtime_t remaining_time; 45 bigtime_t interval; 46 uint32 overrun_count; 47}; 48 49 50#endif /* _SYSTEM_USER_TIMER_DEFS_H */ 51