mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 15:11:31 +00:00
7a66f72b09
Now that ignored posix timer signals are requeued and the timers are rearmed on signal delivery the workaround to keep such timers alive and self rearm them is not longer required. Remove the relevant hacks and the not longer required return values from the related functions. The alarm timer workarounds will be cleaned up in a separate step. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/all/20241105064214.187239060@linutronix.de
53 lines
2.0 KiB
C
53 lines
2.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#define TIMER_RETRY 1
|
|
|
|
enum posix_timer_state {
|
|
POSIX_TIMER_DISARMED,
|
|
POSIX_TIMER_ARMED,
|
|
POSIX_TIMER_REQUEUE_PENDING,
|
|
};
|
|
|
|
struct k_clock {
|
|
int (*clock_getres)(const clockid_t which_clock,
|
|
struct timespec64 *tp);
|
|
int (*clock_set)(const clockid_t which_clock,
|
|
const struct timespec64 *tp);
|
|
/* Returns the clock value in the current time namespace. */
|
|
int (*clock_get_timespec)(const clockid_t which_clock,
|
|
struct timespec64 *tp);
|
|
/* Returns the clock value in the root time namespace. */
|
|
ktime_t (*clock_get_ktime)(const clockid_t which_clock);
|
|
int (*clock_adj)(const clockid_t which_clock, struct __kernel_timex *tx);
|
|
int (*timer_create)(struct k_itimer *timer);
|
|
int (*nsleep)(const clockid_t which_clock, int flags,
|
|
const struct timespec64 *);
|
|
int (*timer_set)(struct k_itimer *timr, int flags,
|
|
struct itimerspec64 *new_setting,
|
|
struct itimerspec64 *old_setting);
|
|
int (*timer_del)(struct k_itimer *timr);
|
|
void (*timer_get)(struct k_itimer *timr,
|
|
struct itimerspec64 *cur_setting);
|
|
void (*timer_rearm)(struct k_itimer *timr);
|
|
s64 (*timer_forward)(struct k_itimer *timr, ktime_t now);
|
|
ktime_t (*timer_remaining)(struct k_itimer *timr, ktime_t now);
|
|
int (*timer_try_to_cancel)(struct k_itimer *timr);
|
|
void (*timer_arm)(struct k_itimer *timr, ktime_t expires,
|
|
bool absolute, bool sigev_none);
|
|
void (*timer_wait_running)(struct k_itimer *timr);
|
|
};
|
|
|
|
extern const struct k_clock clock_posix_cpu;
|
|
extern const struct k_clock clock_posix_dynamic;
|
|
extern const struct k_clock clock_process;
|
|
extern const struct k_clock clock_thread;
|
|
extern const struct k_clock alarm_clock;
|
|
|
|
void posix_timer_queue_signal(struct k_itimer *timr);
|
|
|
|
void common_timer_get(struct k_itimer *timr, struct itimerspec64 *cur_setting);
|
|
int common_timer_set(struct k_itimer *timr, int flags,
|
|
struct itimerspec64 *new_setting,
|
|
struct itimerspec64 *old_setting);
|
|
void posix_timer_set_common(struct k_itimer *timer, struct itimerspec64 *new_setting);
|
|
int common_timer_del(struct k_itimer *timer);
|