posix-timers: Introduce a syscall for clock tuning.
A new syscall is introduced that allows tuning of a POSIX clock. The new call, clock_adjtime, takes two parameters, the clock ID and a pointer to a struct timex. Any ADJTIMEX(2) operation may be requested via this system call, but various POSIX clocks may or may not support tuning. [ tglx: Adapted to the posix-timer cleanup series. Avoid copy_to_user in the error case ] Signed-off-by: Richard Cochran <richard.cochran@omicron.at> Acked-by: John Stultz <johnstul@us.ibm.com> LKML-Reference: <20110201134419.869804645@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
65f5d80bdf
commit
f1f1d5ebd1
4 changed files with 57 additions and 0 deletions
|
@ -675,6 +675,29 @@ long compat_sys_clock_gettime(clockid_t which_clock,
|
|||
return err;
|
||||
}
|
||||
|
||||
long compat_sys_clock_adjtime(clockid_t which_clock,
|
||||
struct compat_timex __user *utp)
|
||||
{
|
||||
struct timex txc;
|
||||
mm_segment_t oldfs;
|
||||
int err, ret;
|
||||
|
||||
err = compat_get_timex(&txc, utp);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
oldfs = get_fs();
|
||||
set_fs(KERNEL_DS);
|
||||
ret = sys_clock_adjtime(which_clock, (struct timex __user *) &txc);
|
||||
set_fs(oldfs);
|
||||
|
||||
err = compat_put_timex(utp, &txc);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
long compat_sys_clock_getres(clockid_t which_clock,
|
||||
struct compat_timespec __user *tp)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue