posix_cputimers
static inline void posix_cputimers_init(struct posix_cputimers *pct)
void posix_cputimers_group_init(struct posix_cputimers *pct, u64 cpu_limit);
static inline void posix_cputimers_rt_watchdog(struct posix_cputimers *pct,
.posix_cputimers = { \
.bases = INIT_CPU_TIMERBASES(s.posix_cputimers.bases), \
static inline void posix_cputimers_init(struct posix_cputimers *pct) { }
static inline void posix_cputimers_group_init(struct posix_cputimers *pct,
struct posix_cputimers posix_cputimers;
if (!READ_ONCE(tsk->signal->posix_cputimers.timers_active))
struct posix_cputimers posix_cputimers;
struct posix_cputimers *pct = &sig->posix_cputimers;
posix_cputimers_init(&p->posix_cputimers);
posix_cputimers_rt_watchdog(&p->posix_cputimers,
task_cputimers_expired(const u64 *samples, struct posix_cputimers *pct)
struct posix_cputimers *pct = &tsk->posix_cputimers;
pct = &sig->posix_cputimers;
nextevt = &tsk->signal->posix_cputimers.bases[clkid].nextevt;
static inline bool expiry_cache_is_inactive(const struct posix_cputimers *pct)
void posix_cputimers_group_init(struct posix_cputimers *pct, u64 cpu_limit)
struct posix_cputimers *pct = &tsk->signal->posix_cputimers;
struct posix_cputimers *pct = &tsk->signal->posix_cputimers;
struct posix_cputimers *pct = &p->signal->posix_cputimers;
return tsk->posix_cputimers.bases + clkidx;
return tsk->signal->posix_cputimers.bases + clkidx;
static void cleanup_timers(struct posix_cputimers *pct)
cleanup_timers(&tsk->posix_cputimers);
cleanup_timers(&tsk->signal->posix_cputimers);
static void collect_posix_cputimers(struct posix_cputimers *pct, u64 *samples,
struct posix_cputimers *pct = &tsk->posix_cputimers;
struct posix_cputimers *pct = &sig->posix_cputimers;
struct posix_cputimers *pct = &sig->posix_cputimers;