Commit a924b04d authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Linus Torvalds
Browse files

[PATCH] hrtimer: make clockid_t arguments const



add const arguments to the posix-timers.h API functions

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 57a55875
Loading
Loading
Loading
Loading
+11 −11
Original line number Original line Diff line number Diff line
@@ -72,12 +72,12 @@ struct k_clock_abs {
};
};
struct k_clock {
struct k_clock {
	int res;		/* in nano seconds */
	int res;		/* in nano seconds */
	int (*clock_getres) (clockid_t which_clock, struct timespec *tp);
	int (*clock_getres) (const clockid_t which_clock, struct timespec *tp);
	struct k_clock_abs *abs_struct;
	struct k_clock_abs *abs_struct;
	int (*clock_set) (clockid_t which_clock, struct timespec * tp);
	int (*clock_set) (const clockid_t which_clock, struct timespec * tp);
	int (*clock_get) (clockid_t which_clock, struct timespec * tp);
	int (*clock_get) (const clockid_t which_clock, struct timespec * tp);
	int (*timer_create) (struct k_itimer *timer);
	int (*timer_create) (struct k_itimer *timer);
	int (*nsleep) (clockid_t which_clock, int flags, struct timespec *);
	int (*nsleep) (const clockid_t which_clock, int flags, struct timespec *);
	int (*timer_set) (struct k_itimer * timr, int flags,
	int (*timer_set) (struct k_itimer * timr, int flags,
			  struct itimerspec * new_setting,
			  struct itimerspec * new_setting,
			  struct itimerspec * old_setting);
			  struct itimerspec * old_setting);
@@ -87,12 +87,12 @@ struct k_clock {
			   struct itimerspec * cur_setting);
			   struct itimerspec * cur_setting);
};
};


void register_posix_clock(clockid_t clock_id, struct k_clock *new_clock);
void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock);


/* Error handlers for timer_create, nanosleep and settime */
/* Error handlers for timer_create, nanosleep and settime */
int do_posix_clock_notimer_create(struct k_itimer *timer);
int do_posix_clock_notimer_create(struct k_itimer *timer);
int do_posix_clock_nonanosleep(clockid_t, int flags, struct timespec *);
int do_posix_clock_nonanosleep(const clockid_t, int flags, struct timespec *);
int do_posix_clock_nosettime(clockid_t, struct timespec *tp);
int do_posix_clock_nosettime(const clockid_t, struct timespec *tp);


/* function to call to trigger timer event */
/* function to call to trigger timer event */
int posix_timer_event(struct k_itimer *timr, int si_private);
int posix_timer_event(struct k_itimer *timr, int si_private);
@@ -117,11 +117,11 @@ struct now_struct {
              }								\
              }								\
            }while (0)
            }while (0)


int posix_cpu_clock_getres(clockid_t which_clock, struct timespec *);
int posix_cpu_clock_getres(const clockid_t which_clock, struct timespec *);
int posix_cpu_clock_get(clockid_t which_clock, struct timespec *);
int posix_cpu_clock_get(const clockid_t which_clock, struct timespec *);
int posix_cpu_clock_set(clockid_t which_clock, const struct timespec *tp);
int posix_cpu_clock_set(const clockid_t which_clock, const struct timespec *tp);
int posix_cpu_timer_create(struct k_itimer *);
int posix_cpu_timer_create(struct k_itimer *);
int posix_cpu_nsleep(clockid_t, int, struct timespec *);
int posix_cpu_nsleep(const clockid_t, int, struct timespec *);
int posix_cpu_timer_set(struct k_itimer *, int,
int posix_cpu_timer_set(struct k_itimer *, int,
			struct itimerspec *, struct itimerspec *);
			struct itimerspec *, struct itimerspec *);
int posix_cpu_timer_del(struct k_itimer *);
int posix_cpu_timer_del(struct k_itimer *);
+22 −18
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <linux/errno.h>
#include <linux/errno.h>


static int check_clock(clockid_t which_clock)
static int check_clock(const clockid_t which_clock)
{
{
	int error = 0;
	int error = 0;
	struct task_struct *p;
	struct task_struct *p;
@@ -31,7 +31,7 @@ static int check_clock(clockid_t which_clock)
}
}


static inline union cpu_time_count
static inline union cpu_time_count
timespec_to_sample(clockid_t which_clock, const struct timespec *tp)
timespec_to_sample(const clockid_t which_clock, const struct timespec *tp)
{
{
	union cpu_time_count ret;
	union cpu_time_count ret;
	ret.sched = 0;		/* high half always zero when .cpu used */
	ret.sched = 0;		/* high half always zero when .cpu used */
@@ -43,7 +43,7 @@ timespec_to_sample(clockid_t which_clock, const struct timespec *tp)
	return ret;
	return ret;
}
}


static void sample_to_timespec(clockid_t which_clock,
static void sample_to_timespec(const clockid_t which_clock,
			       union cpu_time_count cpu,
			       union cpu_time_count cpu,
			       struct timespec *tp)
			       struct timespec *tp)
{
{
@@ -55,7 +55,7 @@ static void sample_to_timespec(clockid_t which_clock,
	}
	}
}
}


static inline int cpu_time_before(clockid_t which_clock,
static inline int cpu_time_before(const clockid_t which_clock,
				  union cpu_time_count now,
				  union cpu_time_count now,
				  union cpu_time_count then)
				  union cpu_time_count then)
{
{
@@ -65,7 +65,7 @@ static inline int cpu_time_before(clockid_t which_clock,
		return cputime_lt(now.cpu, then.cpu);
		return cputime_lt(now.cpu, then.cpu);
	}
	}
}
}
static inline void cpu_time_add(clockid_t which_clock,
static inline void cpu_time_add(const clockid_t which_clock,
				union cpu_time_count *acc,
				union cpu_time_count *acc,
			        union cpu_time_count val)
			        union cpu_time_count val)
{
{
@@ -75,7 +75,7 @@ static inline void cpu_time_add(clockid_t which_clock,
		acc->cpu = cputime_add(acc->cpu, val.cpu);
		acc->cpu = cputime_add(acc->cpu, val.cpu);
	}
	}
}
}
static inline union cpu_time_count cpu_time_sub(clockid_t which_clock,
static inline union cpu_time_count cpu_time_sub(const clockid_t which_clock,
						union cpu_time_count a,
						union cpu_time_count a,
						union cpu_time_count b)
						union cpu_time_count b)
{
{
@@ -151,7 +151,7 @@ static inline unsigned long long sched_ns(struct task_struct *p)
	return (p == current) ? current_sched_time(p) : p->sched_time;
	return (p == current) ? current_sched_time(p) : p->sched_time;
}
}


int posix_cpu_clock_getres(clockid_t which_clock, struct timespec *tp)
int posix_cpu_clock_getres(const clockid_t which_clock, struct timespec *tp)
{
{
	int error = check_clock(which_clock);
	int error = check_clock(which_clock);
	if (!error) {
	if (!error) {
@@ -169,7 +169,7 @@ int posix_cpu_clock_getres(clockid_t which_clock, struct timespec *tp)
	return error;
	return error;
}
}


int posix_cpu_clock_set(clockid_t which_clock, const struct timespec *tp)
int posix_cpu_clock_set(const clockid_t which_clock, const struct timespec *tp)
{
{
	/*
	/*
	 * You can never reset a CPU clock, but we check for other errors
	 * You can never reset a CPU clock, but we check for other errors
@@ -186,7 +186,7 @@ int posix_cpu_clock_set(clockid_t which_clock, const struct timespec *tp)
/*
/*
 * Sample a per-thread clock for the given task.
 * Sample a per-thread clock for the given task.
 */
 */
static int cpu_clock_sample(clockid_t which_clock, struct task_struct *p,
static int cpu_clock_sample(const clockid_t which_clock, struct task_struct *p,
			    union cpu_time_count *cpu)
			    union cpu_time_count *cpu)
{
{
	switch (CPUCLOCK_WHICH(which_clock)) {
	switch (CPUCLOCK_WHICH(which_clock)) {
@@ -248,7 +248,7 @@ static int cpu_clock_sample_group_locked(unsigned int clock_idx,
 * Sample a process (thread group) clock for the given group_leader task.
 * Sample a process (thread group) clock for the given group_leader task.
 * Must be called with tasklist_lock held for reading.
 * Must be called with tasklist_lock held for reading.
 */
 */
static int cpu_clock_sample_group(clockid_t which_clock,
static int cpu_clock_sample_group(const clockid_t which_clock,
				  struct task_struct *p,
				  struct task_struct *p,
				  union cpu_time_count *cpu)
				  union cpu_time_count *cpu)
{
{
@@ -262,7 +262,7 @@ static int cpu_clock_sample_group(clockid_t which_clock,
}
}




int posix_cpu_clock_get(clockid_t which_clock, struct timespec *tp)
int posix_cpu_clock_get(const clockid_t which_clock, struct timespec *tp)
{
{
	const pid_t pid = CPUCLOCK_PID(which_clock);
	const pid_t pid = CPUCLOCK_PID(which_clock);
	int error = -EINVAL;
	int error = -EINVAL;
@@ -1399,7 +1399,7 @@ void set_process_cpu_timer(struct task_struct *tsk, unsigned int clock_idx,


static long posix_cpu_clock_nanosleep_restart(struct restart_block *);
static long posix_cpu_clock_nanosleep_restart(struct restart_block *);


int posix_cpu_nsleep(clockid_t which_clock, int flags,
int posix_cpu_nsleep(const clockid_t which_clock, int flags,
		     struct timespec *rqtp)
		     struct timespec *rqtp)
{
{
	struct restart_block *restart_block =
	struct restart_block *restart_block =
@@ -1503,11 +1503,13 @@ posix_cpu_clock_nanosleep_restart(struct restart_block *restart_block)
#define PROCESS_CLOCK	MAKE_PROCESS_CPUCLOCK(0, CPUCLOCK_SCHED)
#define PROCESS_CLOCK	MAKE_PROCESS_CPUCLOCK(0, CPUCLOCK_SCHED)
#define THREAD_CLOCK	MAKE_THREAD_CPUCLOCK(0, CPUCLOCK_SCHED)
#define THREAD_CLOCK	MAKE_THREAD_CPUCLOCK(0, CPUCLOCK_SCHED)


static int process_cpu_clock_getres(clockid_t which_clock, struct timespec *tp)
static int process_cpu_clock_getres(const clockid_t which_clock,
				    struct timespec *tp)
{
{
	return posix_cpu_clock_getres(PROCESS_CLOCK, tp);
	return posix_cpu_clock_getres(PROCESS_CLOCK, tp);
}
}
static int process_cpu_clock_get(clockid_t which_clock, struct timespec *tp)
static int process_cpu_clock_get(const clockid_t which_clock,
				 struct timespec *tp)
{
{
	return posix_cpu_clock_get(PROCESS_CLOCK, tp);
	return posix_cpu_clock_get(PROCESS_CLOCK, tp);
}
}
@@ -1516,16 +1518,18 @@ static int process_cpu_timer_create(struct k_itimer *timer)
	timer->it_clock = PROCESS_CLOCK;
	timer->it_clock = PROCESS_CLOCK;
	return posix_cpu_timer_create(timer);
	return posix_cpu_timer_create(timer);
}
}
static int process_cpu_nsleep(clockid_t which_clock, int flags,
static int process_cpu_nsleep(const clockid_t which_clock, int flags,
			      struct timespec *rqtp)
			      struct timespec *rqtp)
{
{
	return posix_cpu_nsleep(PROCESS_CLOCK, flags, rqtp);
	return posix_cpu_nsleep(PROCESS_CLOCK, flags, rqtp);
}
}
static int thread_cpu_clock_getres(clockid_t which_clock, struct timespec *tp)
static int thread_cpu_clock_getres(const clockid_t which_clock,
				   struct timespec *tp)
{
{
	return posix_cpu_clock_getres(THREAD_CLOCK, tp);
	return posix_cpu_clock_getres(THREAD_CLOCK, tp);
}
}
static int thread_cpu_clock_get(clockid_t which_clock, struct timespec *tp)
static int thread_cpu_clock_get(const clockid_t which_clock,
				struct timespec *tp)
{
{
	return posix_cpu_clock_get(THREAD_CLOCK, tp);
	return posix_cpu_clock_get(THREAD_CLOCK, tp);
}
}
@@ -1534,7 +1538,7 @@ static int thread_cpu_timer_create(struct k_itimer *timer)
	timer->it_clock = THREAD_CLOCK;
	timer->it_clock = THREAD_CLOCK;
	return posix_cpu_timer_create(timer);
	return posix_cpu_timer_create(timer);
}
}
static int thread_cpu_nsleep(clockid_t which_clock, int flags,
static int thread_cpu_nsleep(const clockid_t which_clock, int flags,
			      struct timespec *rqtp)
			      struct timespec *rqtp)
{
{
	return -EINVAL;
	return -EINVAL;
+21 −17
Original line number Original line Diff line number Diff line
@@ -151,7 +151,7 @@ static void posix_timer_fn(unsigned long);
static u64 do_posix_clock_monotonic_gettime_parts(
static u64 do_posix_clock_monotonic_gettime_parts(
	struct timespec *tp, struct timespec *mo);
	struct timespec *tp, struct timespec *mo);
int do_posix_clock_monotonic_gettime(struct timespec *tp);
int do_posix_clock_monotonic_gettime(struct timespec *tp);
static int do_posix_clock_monotonic_get(clockid_t, struct timespec *tp);
static int do_posix_clock_monotonic_get(const clockid_t, struct timespec *tp);


static struct k_itimer *lock_timer(timer_t timer_id, unsigned long *flags);
static struct k_itimer *lock_timer(timer_t timer_id, unsigned long *flags);


@@ -176,7 +176,7 @@ static inline void unlock_timer(struct k_itimer *timr, unsigned long flags)
 * the function pointer CALL in struct k_clock.
 * the function pointer CALL in struct k_clock.
 */
 */


static inline int common_clock_getres(clockid_t which_clock,
static inline int common_clock_getres(const clockid_t which_clock,
				      struct timespec *tp)
				      struct timespec *tp)
{
{
	tp->tv_sec = 0;
	tp->tv_sec = 0;
@@ -184,13 +184,15 @@ static inline int common_clock_getres(clockid_t which_clock,
	return 0;
	return 0;
}
}


static inline int common_clock_get(clockid_t which_clock, struct timespec *tp)
static inline int common_clock_get(const clockid_t which_clock,
				   struct timespec *tp)
{
{
	getnstimeofday(tp);
	getnstimeofday(tp);
	return 0;
	return 0;
}
}


static inline int common_clock_set(clockid_t which_clock, struct timespec *tp)
static inline int common_clock_set(const clockid_t which_clock,
				   struct timespec *tp)
{
{
	return do_sys_settimeofday(tp, NULL);
	return do_sys_settimeofday(tp, NULL);
}
}
@@ -207,7 +209,7 @@ static inline int common_timer_create(struct k_itimer *new_timer)
/*
/*
 * These ones are defined below.
 * These ones are defined below.
 */
 */
static int common_nsleep(clockid_t, int flags, struct timespec *t);
static int common_nsleep(const clockid_t, int flags, struct timespec *t);
static void common_timer_get(struct k_itimer *, struct itimerspec *);
static void common_timer_get(struct k_itimer *, struct itimerspec *);
static int common_timer_set(struct k_itimer *, int,
static int common_timer_set(struct k_itimer *, int,
			    struct itimerspec *, struct itimerspec *);
			    struct itimerspec *, struct itimerspec *);
@@ -216,7 +218,7 @@ static int common_timer_del(struct k_itimer *timer);
/*
/*
 * Return nonzero iff we know a priori this clockid_t value is bogus.
 * Return nonzero iff we know a priori this clockid_t value is bogus.
 */
 */
static inline int invalid_clockid(clockid_t which_clock)
static inline int invalid_clockid(const clockid_t which_clock)
{
{
	if (which_clock < 0)	/* CPU clock, posix_cpu_* will check it */
	if (which_clock < 0)	/* CPU clock, posix_cpu_* will check it */
		return 0;
		return 0;
@@ -522,7 +524,7 @@ static inline struct task_struct * good_sigevent(sigevent_t * event)
	return rtn;
	return rtn;
}
}


void register_posix_clock(clockid_t clock_id, struct k_clock *new_clock)
void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock)
{
{
	if ((unsigned) clock_id >= MAX_CLOCKS) {
	if ((unsigned) clock_id >= MAX_CLOCKS) {
		printk("POSIX clock register failed for clock_id %d\n",
		printk("POSIX clock register failed for clock_id %d\n",
@@ -568,7 +570,7 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set)
/* Create a POSIX.1b interval timer. */
/* Create a POSIX.1b interval timer. */


asmlinkage long
asmlinkage long
sys_timer_create(clockid_t which_clock,
sys_timer_create(const clockid_t which_clock,
		 struct sigevent __user *timer_event_spec,
		 struct sigevent __user *timer_event_spec,
		 timer_t __user * created_timer_id)
		 timer_t __user * created_timer_id)
{
{
@@ -1195,7 +1197,8 @@ static u64 do_posix_clock_monotonic_gettime_parts(
	return jiff;
	return jiff;
}
}


static int do_posix_clock_monotonic_get(clockid_t clock, struct timespec *tp)
static int do_posix_clock_monotonic_get(const clockid_t clock,
					struct timespec *tp)
{
{
	struct timespec wall_to_mono;
	struct timespec wall_to_mono;


@@ -1212,7 +1215,7 @@ int do_posix_clock_monotonic_gettime(struct timespec *tp)
	return do_posix_clock_monotonic_get(CLOCK_MONOTONIC, tp);
	return do_posix_clock_monotonic_get(CLOCK_MONOTONIC, tp);
}
}


int do_posix_clock_nosettime(clockid_t clockid, struct timespec *tp)
int do_posix_clock_nosettime(const clockid_t clockid, struct timespec *tp)
{
{
	return -EINVAL;
	return -EINVAL;
}
}
@@ -1224,7 +1227,8 @@ int do_posix_clock_notimer_create(struct k_itimer *timer)
}
}
EXPORT_SYMBOL_GPL(do_posix_clock_notimer_create);
EXPORT_SYMBOL_GPL(do_posix_clock_notimer_create);


int do_posix_clock_nonanosleep(clockid_t clock, int flags, struct timespec *t)
int do_posix_clock_nonanosleep(const clockid_t clock, int flags,
			       struct timespec *t)
{
{
#ifndef ENOTSUP
#ifndef ENOTSUP
	return -EOPNOTSUPP;	/* aka ENOTSUP in userland for POSIX */
	return -EOPNOTSUPP;	/* aka ENOTSUP in userland for POSIX */
@@ -1234,8 +1238,8 @@ int do_posix_clock_nonanosleep(clockid_t clock, int flags, struct timespec *t)
}
}
EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);


asmlinkage long
asmlinkage long sys_clock_settime(const clockid_t which_clock,
sys_clock_settime(clockid_t which_clock, const struct timespec __user *tp)
				  const struct timespec __user *tp)
{
{
	struct timespec new_tp;
	struct timespec new_tp;


@@ -1248,7 +1252,7 @@ sys_clock_settime(clockid_t which_clock, const struct timespec __user *tp)
}
}


asmlinkage long
asmlinkage long
sys_clock_gettime(clockid_t which_clock, struct timespec __user *tp)
sys_clock_gettime(const clockid_t which_clock, struct timespec __user *tp)
{
{
	struct timespec kernel_tp;
	struct timespec kernel_tp;
	int error;
	int error;
@@ -1265,7 +1269,7 @@ sys_clock_gettime(clockid_t which_clock, struct timespec __user *tp)
}
}


asmlinkage long
asmlinkage long
sys_clock_getres(clockid_t which_clock, struct timespec __user *tp)
sys_clock_getres(const clockid_t which_clock, struct timespec __user *tp)
{
{
	struct timespec rtn_tp;
	struct timespec rtn_tp;
	int error;
	int error;
@@ -1387,7 +1391,7 @@ void clock_was_set(void)
long clock_nanosleep_restart(struct restart_block *restart_block);
long clock_nanosleep_restart(struct restart_block *restart_block);


asmlinkage long
asmlinkage long
sys_clock_nanosleep(clockid_t which_clock, int flags,
sys_clock_nanosleep(const clockid_t which_clock, int flags,
		    const struct timespec __user *rqtp,
		    const struct timespec __user *rqtp,
		    struct timespec __user *rmtp)
		    struct timespec __user *rmtp)
{
{
@@ -1419,7 +1423,7 @@ sys_clock_nanosleep(clockid_t which_clock, int flags,
}
}




static int common_nsleep(clockid_t which_clock,
static int common_nsleep(const clockid_t which_clock,
			 int flags, struct timespec *tsave)
			 int flags, struct timespec *tsave)
{
{
	struct timespec t, dum;
	struct timespec t, dum;