/* * Get and set timeofday
*/ externint do_settimeofday64(conststruct timespec64 *ts); externint do_sys_settimeofday64(conststruct timespec64 *tv, conststruct timezone *tz);
/* * ktime_get() family - read the current time in a multitude of ways. * * The default time reference is CLOCK_MONOTONIC, starting at * boot time but not counting the time spent in suspend. * For other references, use the functions with "real", "clocktai", * "boottime" and "raw" suffixes. * * To get the time in a different format, use the ones with * "ns", "ts64" and "seconds" suffix. * * See Documentation/core-api/timekeeping.rst for more details.
*/
/** * ktime_get_real - get the real (wall-) time in ktime_t format * * Returns: real (wall) time in ktime_t format
*/ staticinline ktime_t ktime_get_real(void)
{ return ktime_get_with_offset(TK_OFFS_REAL);
}
/** * ktime_get_boottime - Get monotonic time since boot in ktime_t format * * This is similar to CLOCK_MONTONIC/ktime_get, but also includes the * time spent in suspend. * * Returns: monotonic time since boot in ktime_t format
*/ staticinline ktime_t ktime_get_boottime(void)
{ return ktime_get_with_offset(TK_OFFS_BOOT);
}
/** * ktime_get_clocktai - Get the TAI time of day in ktime_t format * * Returns: the TAI time of day in ktime_t format
*/ staticinline ktime_t ktime_get_clocktai(void)
{ return ktime_get_with_offset(TK_OFFS_TAI);
}
/** * ktime_mono_to_real - Convert monotonic time to clock realtime * @mono: monotonic time to convert * * Returns: time converted to realtime clock
*/ staticinline ktime_t ktime_mono_to_real(ktime_t mono)
{ return ktime_mono_to_any(mono, TK_OFFS_REAL);
}
/** * ktime_get_ns - Get the current time in nanoseconds * * Returns: current time converted to nanoseconds
*/ staticinline u64 ktime_get_ns(void)
{ return ktime_to_ns(ktime_get());
}
/** * ktime_get_real_ns - Get the current real/wall time in nanoseconds * * Returns: current real time converted to nanoseconds
*/ staticinline u64 ktime_get_real_ns(void)
{ return ktime_to_ns(ktime_get_real());
}
/** * ktime_get_boottime_ns - Get the monotonic time since boot in nanoseconds * * Returns: current boottime converted to nanoseconds
*/ staticinline u64 ktime_get_boottime_ns(void)
{ return ktime_to_ns(ktime_get_boottime());
}
/** * ktime_get_clocktai_ns - Get the current TAI time of day in nanoseconds * * Returns: current TAI time converted to nanoseconds
*/ staticinline u64 ktime_get_clocktai_ns(void)
{ return ktime_to_ns(ktime_get_clocktai());
}
/** * ktime_get_raw_ns - Get the raw monotonic time in nanoseconds * * Returns: current raw monotonic time converted to nanoseconds
*/ staticinline u64 ktime_get_raw_ns(void)
{ return ktime_to_ns(ktime_get_raw());
}
/* * timespec64/time64_t interfaces utilizing the ktime based ones * for API completeness, these could be implemented more efficiently * if needed.
*/ staticinlinevoid ktime_get_boottime_ts64(struct timespec64 *ts)
{
*ts = ktime_to_timespec64(ktime_get_boottime());
}
/** * struct system_time_snapshot - simultaneous raw/real time capture with * counter value * @cycles: Clocksource counter value to produce the system times * @real: Realtime system time * @boot: Boot time * @raw: Monotonic raw system time * @cs_id: Clocksource ID * @clock_was_set_seq: The sequence number of clock-was-set events * @cs_was_changed_seq: The sequence number of clocksource change events
*/ struct system_time_snapshot {
u64 cycles;
ktime_t real;
ktime_t boot;
ktime_t raw; enum clocksource_ids cs_id; unsignedint clock_was_set_seq;
u8 cs_was_changed_seq;
};
/** * struct system_device_crosststamp - system/device cross-timestamp * (synchronized capture) * @device: Device time * @sys_realtime: Realtime simultaneous with device time * @sys_monoraw: Monotonic raw simultaneous with device time
*/ struct system_device_crosststamp {
ktime_t device;
ktime_t sys_realtime;
ktime_t sys_monoraw;
};
/** * struct system_counterval_t - system counter value with the ID of the * corresponding clocksource * @cycles: System counter value * @cs_id: Clocksource ID corresponding to system counter value. Used by * timekeeping code to verify comparability of two cycle values. * The default ID, CSID_GENERIC, does not identify a specific * clocksource. * @use_nsecs: @cycles is in nanoseconds.
*/ struct system_counterval_t {
u64 cycles; enum clocksource_ids cs_id; bool use_nsecs;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.