3 #include "stat_timing.h"
5 /* we can only use the scheduling stuff, if that macro is defined in unistd.h */
6 #if defined(_XOPEN_REALTIME) && _XOPEN_REALTIME != -1
8 timing_sched_env_t *timing_sched_get(timing_sched_env_t *env)
13 res = sched_getaffinity(0, sizeof(env->affinity), &env->affinity);
18 env->scheduler = sched_getscheduler(0);
19 if (env->scheduler < 0)
22 res = sched_getparam(0, &env->params);
29 int timing_sched_set(const timing_sched_env_t *env)
34 res = sched_setaffinity(0, sizeof(env->affinity), &env->affinity);
39 res = sched_setscheduler(0, env->scheduler, &env->params);
46 timing_sched_env_t *timing_sched_prepare_max_prio(timing_sched_env_t *env)
48 int policy = SCHED_FIFO;
50 CPU_ZERO(&env->affinity);
51 CPU_SET(0, &env->affinity);
53 env->scheduler = policy;
54 env->params.sched_priority = sched_get_priority_max(policy);
60 timing_sched_env_t *timing_sched_get(timing_sched_env_t *env)
66 int timing_sched_set(const timing_sched_env_t *env)
72 timing_sched_env_t *timing_sched_prepare_max_prio(timing_sched_env_t *env)
77 #endif /* _POSIX_PRIORITY_SCHEDULING */