mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
timekeeping: Provide adjtimex() for auxiliary clocks
The behaviour is close to clock_adtime(CLOCK_REALTIME) with the following differences: 1) ADJ_SETOFFSET adjusts the auxiliary clock offset 2) ADJ_TAI is not supported 3) Leap seconds are not supported 4) PPS is not supported Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: John Stultz <jstultz@google.com> Link: https://lore.kernel.org/all/20250625183758.317946543@linutronix.de
This commit is contained in:
@@ -2875,10 +2875,26 @@ static int aux_clock_set(const clockid_t id, const struct timespec64 *tnew)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int aux_clock_adj(const clockid_t id, struct __kernel_timex *txc)
|
||||
{
|
||||
struct tk_data *aux_tkd = aux_get_tk_data(id);
|
||||
struct adjtimex_result result = { };
|
||||
|
||||
if (!aux_tkd)
|
||||
return -ENODEV;
|
||||
|
||||
/*
|
||||
* @result is ignored for now as there are neither hrtimers nor a
|
||||
* RTC related to auxiliary clocks for now.
|
||||
*/
|
||||
return __do_adjtimex(aux_tkd, txc, &result);
|
||||
}
|
||||
|
||||
const struct k_clock clock_aux = {
|
||||
.clock_getres = aux_get_res,
|
||||
.clock_get_timespec = aux_get_timespec,
|
||||
.clock_set = aux_clock_set,
|
||||
.clock_adj = aux_clock_adj,
|
||||
};
|
||||
|
||||
static __init void tk_aux_setup(void)
|
||||
|
||||
Reference in New Issue
Block a user