summaryrefslogtreecommitdiff
path: root/kernel/time/posix-timers.h
blob: ad2dbd29b389d72ec8f0b83c22b7982bb3a4dd25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define TIMER_RETRY 1

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);
	int (*clock_get) (const clockid_t which_clock, struct timespec64 *tp);
	int (*clock_adj) (const clockid_t which_clock, struct timex *tx);
	int (*timer_create) (struct k_itimer *timer);
	int (*nsleep) (const clockid_t which_clock, int flags,
		       struct timespec64 *, struct timespec __user *);
	long (*nsleep_restart) (struct restart_block *restart_block);
	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);
};

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;

int posix_timer_event(struct k_itimer *timr, int si_private);

void posix_cpu_timer_schedule(struct k_itimer *timer);