sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget(/translations/zh_CN/core-api/timekeepingmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/pt_BR/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/sp_SP/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hktime accessorsh]hktime accessors}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhB/var/lib/git/docbuild/linux/Documentation/core-api/timekeeping.rsthKubh paragraph)}(hXDevice drivers can read the current time using ktime_get() and the many related functions declared in linux/timekeeping.h. As a rule of thumb, using an accessor with a shorter name is preferred over one with a longer name if both are equally fit for a particular use case.h]hXDevice drivers can read the current time using ktime_get() and the many related functions declared in linux/timekeeping.h. As a rule of thumb, using an accessor with a shorter name is preferred over one with a longer name if both are equally fit for a particular use case.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hBasic ktime_t based interfacesh]hBasic ktime_t based interfaces}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hwThe recommended simplest form returns an opaque ktime_t, with variants that return time for different clock references:h]hwThe recommended simplest form returns an opaque ktime_t, with variants that return time for different clock references:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlektime_get (C function) c.ktime_gethNtauh1hhhhhhhhNubhdesc)}(hhh](hdesc_signature)}(hktime_t ktime_get( void )h]hdesc_signature_line)}(hktime_t ktime_get(void)h](h)}(hhh]h desc_sig_name)}(hktime_th]hktime_t}(hj!hhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetj#modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j> ASTIdentifier)}j9 ktime_getsb c.ktime_getasbuh1hhjhhhhhKubhdesc_sig_space)}(h h]h }(hjNhhhNhNubah}(h]h ]wah"]h$]h&]uh1jLhjhhhhhKubh desc_name)}(h ktime_geth]j )}(hjIh]h ktime_get}(hjchhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj_ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j]hjhhhhhKubhdesc_parameterlist)}(h(void)h]hdesc_parameter)}(hvoidh]hdesc_sig_keyword_type)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj|ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjy add_permalinkuh1jsphinx_line_type declaratorhjhhhhhKubah}(h]j ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhhhKhj hhubh desc_content)}(hhh](h)}(hCLOCK_MONOTONICh]hCLOCK_MONOTONIC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hUseful for reliable timestamps and measuring short time intervals accurately. Starts at system boot time but stops during suspend.h]hUseful for reliable timestamps and measuring short time intervals accurately. Starts at system boot time but stops during suspend.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhKubeh}(h]h ](j7functioneh"]h$]h&]domainj7objtypejdesctypejnoindex noindexentrynocontentsentryuh1j hhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](jktime_get_boottime (C function)c.ktime_get_boottimehNtauh1hhhhhhhhNubj )}(hhh](j)}(h"ktime_t ktime_get_boottime( void )h]j)}(h ktime_t ktime_get_boottime(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9ktime_get_boottimesbc.ktime_get_boottimeasbuh1hhjhhhhhKubjM)}(h h]h }(hj)hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hktime_get_boottimeh]j )}(hj&h]hktime_get_boottime}(hj;hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj7ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjNubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(hhh](h)}(hCLOCK_BOOTTIMEh]hCLOCK_BOOTTIME}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubh)}(hLike ktime_get(), but does not stop when suspended. This can be used e.g. for key expiration times that need to be synchronized with other machines across a suspend operation.h]hLike ktime_get(), but does not stop when suspended. This can be used e.g. for key expiration times that need to be synchronized with other machines across a suspend operation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}hhubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jjjjjjjuh1j hhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](jktime_get_real (C function)c.ktime_get_realhNtauh1hhhhhhhhNubj )}(hhh](j)}(hktime_t ktime_get_real( void )h]j)}(hktime_t ktime_get_real(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_realsbc.ktime_get_realasbuh1hhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hktime_get_realh]j )}(hjh]hktime_get_real}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(hhh](h)}(hCLOCK_REALTIMEh]hCLOCK_REALTIME}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hj:hhubh)}(hXReturns the time in relative to the UNIX epoch starting in 1970 using the Coordinated Universal Time (UTC), same as gettimeofday() user space. This is used for all timestamps that need to persist across a reboot, like inode times, but should be avoided for internal uses, since it can jump backwards due to a leap second update, NTP adjustment settimeofday() operation from user space.h]hXReturns the time in relative to the UNIX epoch starting in 1970 using the Coordinated Universal Time (UTC), same as gettimeofday() user space. This is used for all timestamps that need to persist across a reboot, like inode times, but should be avoided for internal uses, since it can jump backwards due to a leap second update, NTP adjustment settimeofday() operation from user space.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hj:hhubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jjbjjbjjjuh1j hhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](jktime_get_clocktai (C function)c.ktime_get_clocktaihNtauh1hhhhhhhhNubj )}(hhh](j)}(h"ktime_t ktime_get_clocktai( void )h]j)}(h ktime_t ktime_get_clocktai(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_clocktaisbc.ktime_get_clocktaiasbuh1hhj{hhhhhK+ubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj{hhhhhK+ubj^)}(hktime_get_clocktaih]j )}(hjh]hktime_get_clocktai}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj{hhhhhK+ubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhj{hhhhhK+ubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjwhhhhhK+ubah}(h]jrah ](jjeh"]h$]h&]jj)jhuh1jhhhK+hjthhubj)}(hhh](h block_quote)}(h CLOCK_TAI h]h)}(h CLOCK_TAIh]h CLOCK_TAI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhhhK-hjhhubh)}(hLike ktime_get_real(), but uses the International Atomic Time (TAI) reference instead of UTC to avoid jumping on leap second updates. This is rarely useful in the kernel.h]hLike ktime_get_real(), but uses the International Atomic Time (TAI) reference instead of UTC to avoid jumping on leap second updates. This is rarely useful in the kernel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjhhubeh}(h]h ]h"]h$]h&]uh1jhjthhhhhK+ubeh}(h]h ](j7functioneh"]h$]h&]jj7jj+jj+jjjuh1j hhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](jktime_get_raw (C function)c.ktime_get_rawhNtauh1hhhhhhhhNubj )}(hhh](j)}(hktime_t ktime_get_raw( void )h]j)}(hktime_t ktime_get_raw(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hjKhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjMmodnameN classnameNj=j@)}jC]jF)}j9 ktime_get_rawsbc.ktime_get_rawasbuh1hhjDhhhhhK3ubjM)}(h h]h }(hjlhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjDhhhhhK3ubj^)}(h ktime_get_rawh]j )}(hjih]h ktime_get_raw}(hj~hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjzubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjDhhhhhK3ubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjDhhhhhK3ubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj@hhhhhK3ubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1jhhhK3hj=hhubj)}(hhh](h)}(hCLOCK_MONOTONIC_RAWh]hCLOCK_MONOTONIC_RAW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjhhubh)}(hLike ktime_get(), but runs at the same rate as the hardware clocksource without (NTP) adjustments for clock drift. This is also rarely needed in the kernel.h]hLike ktime_get(), but runs at the same rate as the hardware clocksource without (NTP) adjustments for clock drift. This is also rarely needed in the kernel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjhhubeh}(h]h ]h"]h$]h&]uh1jhj=hhhhhK3ubeh}(h]h ](j7functioneh"]h$]h&]jj7jjjjjjjuh1j hhhhhhhNubeh}(h]basic-ktime-t-based-interfacesah ]h"]basic ktime_t based interfacesah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h)nanosecond, timespec64, and second outputh]h)nanosecond, timespec64, and second output}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKhjhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((jktime_get_ns (C function)c.ktime_get_nshNt(j"ktime_get_boottime_ns (C function)c.ktime_get_boottime_nshNt(jktime_get_real_ns (C function)c.ktime_get_real_nshNt(j"ktime_get_clocktai_ns (C function)c.ktime_get_clocktai_nshNt(jktime_get_raw_ns (C function)c.ktime_get_raw_nshNteuh1hhjhhhhhNubj )}(hhh](j)}(hu64 ktime_get_ns( void )h]j)}(hu64 ktime_get_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hj;hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj=modnameN classnameNj=j@)}jC]jF)}j9 ktime_get_nssbc.ktime_get_nsasbuh1hhj4hhhhhKAubjM)}(h h]h }(hj\hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj4hhhhhKAubj^)}(h ktime_get_nsh]j )}(hjYh]h ktime_get_ns}(hjnhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj4hhhhhKAubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhj4hhhhhKAubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj0hhhhhKAubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKAhj-hhubj)}(h!u64 ktime_get_boottime_ns( void )h]j)}(hu64 ktime_get_boottime_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_boottime_nssbc.ktime_get_boottime_nsasbuh1hhjhhhhhKAubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKAubj^)}(hktime_get_boottime_nsh]j )}(hjh]hktime_get_boottime_ns}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKAubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKAubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKAubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1jhhhKAhj-hhubj)}(hu64 ktime_get_real_ns( void )h]j)}(hu64 ktime_get_real_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hj;hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj=modnameN classnameNj=j@)}jC]jF)}j9ktime_get_real_nssbc.ktime_get_real_nsasbuh1hhj4hhhhhKAubjM)}(h h]h }(hj\hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj4hhhhhKAubj^)}(hktime_get_real_nsh]j )}(hjYh]hktime_get_real_ns}(hjnhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj4hhhhhKAubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhj4hhhhhKAubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj0hhhhhKAubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1jhhhKAhj-hhubj)}(h!u64 ktime_get_clocktai_ns( void )h]j)}(hu64 ktime_get_clocktai_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_clocktai_nssbc.ktime_get_clocktai_nsasbuh1hhjhhhhhKAubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKAubj^)}(hktime_get_clocktai_nsh]j )}(hjh]hktime_get_clocktai_ns}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKAubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKAubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKAubah}(h]j(ah ](jjeh"]h$]h&]jj)jhuh1jhhhKAhj-hhubj)}(hu64 ktime_get_raw_ns( void )h]j)}(hu64 ktime_get_raw_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hj;hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj=modnameN classnameNj=j@)}jC]jF)}j9ktime_get_raw_nssbc.ktime_get_raw_nsasbuh1hhj4hhhhhKAubjM)}(h h]h }(hj\hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj4hhhhhKAubj^)}(hktime_get_raw_nsh]j )}(hjYh]hktime_get_raw_ns}(hjnhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj4hhhhhKAubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhj4hhhhhKAubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj0hhhhhKAubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1jhhhKAhj-hhubj)}(hhh]h)}(hSame as the plain ktime_get functions, but returning a u64 number of nanoseconds in the respective time reference, which may be more convenient for some callers.h]hSame as the plain ktime_get functions, but returning a u64 number of nanoseconds in the respective time reference, which may be more convenient for some callers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjhhubah}(h]h ]h"]h$]h&]uh1jhj-hhhhhKAubeh}(h]h ](j7functioneh"]h$]h&]jj7jjjjjjjuh1j hhhjhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((jktime_get_ts64 (C function)c.ktime_get_ts64hNt(j$ktime_get_boottime_ts64 (C function)c.ktime_get_boottime_ts64hNt(j ktime_get_real_ts64 (C function)c.ktime_get_real_ts64hNt(j$ktime_get_clocktai_ts64 (C function)c.ktime_get_clocktai_ts64hNt(jktime_get_raw_ts64 (C function)c.ktime_get_raw_ts64hNteuh1hhjhhhhhNubj )}(hhh](j)}(h*void ktime_get_ts64( struct timespec64 * )h]j)}(h'void ktime_get_ts64(struct timespec64*)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhhKKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKKubj^)}(hktime_get_ts64h]j )}(hktime_get_ts64h]hktime_get_ts64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKKubj{)}(h(struct timespec64*)h]j)}(hstruct timespec64*h](hdesc_sig_keyword)}(hstructh]hstruct}(hj1hhhNhNubah}(h]h ]kah"]h$]h&]uh1j/hj+ubjM)}(h h]h }(hj@hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj+ubh)}(hhh]j )}(h timespec64h]h timespec64}(hjQhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjSmodnameN classnameNj=j@)}jC]jF)}j9jsbc.ktime_get_ts64asbuh1hhj+ubhdesc_sig_punctuation)}(h*h]h*}(hjshhhNhNubah}(h]h ]pah"]h$]h&]uh1jqhj+ubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhj'ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKKhjhhubj)}(h3void ktime_get_boottime_ts64( struct timespec64 * )h]j)}(h0void ktime_get_boottime_ts64(struct timespec64*)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhhKKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKKubj^)}(hktime_get_boottime_ts64h]j )}(hktime_get_boottime_ts64h]hktime_get_boottime_ts64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKKubj{)}(h(struct timespec64*)h]j)}(hstruct timespec64*h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjubh)}(hhh]j )}(h timespec64h]h timespec64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9jsbc.ktime_get_boottime_ts64asbuh1hhjubjr)}(hjuh]h*}(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKKhjhhubj)}(h/void ktime_get_real_ts64( struct timespec64 * )h]j)}(h,void ktime_get_real_ts64(struct timespec64*)h](j)}(hvoidh]hvoid}(hjK hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjG hhhhhKKubjM)}(h h]h }(hjY hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjG hhhhhKKubj^)}(hktime_get_real_ts64h]j )}(hktime_get_real_ts64h]hktime_get_real_ts64}(hjk hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjg ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjG hhhhhKKubj{)}(h(struct timespec64*)h]j)}(hstruct timespec64*h](j0)}(hj3h]hstruct}(hj hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj ubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj ubh)}(hhh]j )}(h timespec64h]h timespec64}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9jm sbc.ktime_get_real_ts64asbuh1hhj ubjr)}(hjuh]h*}(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj ubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhj ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjG hhhhhKKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjC hhhhhKKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKKhjhhubj)}(h3void ktime_get_clocktai_ts64( struct timespec64 * )h]j)}(h0void ktime_get_clocktai_ts64(struct timespec64*)h](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhhhKKubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKKubj^)}(hktime_get_clocktai_ts64h]j )}(hktime_get_clocktai_ts64h]hktime_get_clocktai_ts64}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj hhhhhKKubj{)}(h(struct timespec64*)h]j)}(hstruct timespec64*h](j0)}(hj3h]hstruct}(hj/ hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj+ ubjM)}(h h]h }(hj< hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj+ ubh)}(hhh]j )}(h timespec64h]h timespec64}(hjM hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjJ ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjO modnameN classnameNj=j@)}jC]jF)}j9j sbc.ktime_get_clocktai_ts64asbuh1hhj+ ubjr)}(hjuh]h*}(hjm hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj+ ubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhj' ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj hhhhhKKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKKhjhhubj)}(h.void ktime_get_raw_ts64( struct timespec64 * )h]j)}(h+void ktime_get_raw_ts64(struct timespec64*)h](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhhhKKubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKKubj^)}(hktime_get_raw_ts64h]j )}(hktime_get_raw_ts64h]hktime_get_raw_ts64}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj hhhhhKKubj{)}(h(struct timespec64*)h]j)}(hstruct timespec64*h](j0)}(hj3h]hstruct}(hj hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj ubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj ubh)}(hhh]j )}(h timespec64h]h timespec64}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9j sbc.ktime_get_raw_ts64asbuh1hhj ubjr)}(hjuh]h*}(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj ubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhj ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj hhhhhKKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKKhjhhubj)}(hhh]h)}(hSame above, but returns the time in a 'struct timespec64', split into seconds and nanoseconds. This can avoid an extra division when printing the time, or when passing it into an external interface that expects a 'timespec' or 'timeval' structure.h]hXSame above, but returns the time in a ‘struct timespec64’, split into seconds and nanoseconds. This can avoid an extra division when printing the time, or when passing it into an external interface that expects a ‘timespec’ or ‘timeval’ structure.}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhj; hhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKKubeh}(h]h ](j7functioneh"]h$]h&]jj7jjU jjU jjjuh1j hhhjhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((jktime_get_seconds (C function)c.ktime_get_secondshNt(j'ktime_get_boottime_seconds (C function)c.ktime_get_boottime_secondshNt(j#ktime_get_real_seconds (C function)c.ktime_get_real_secondshNt(j'ktime_get_clocktai_seconds (C function)c.ktime_get_clocktai_secondshNt(j"ktime_get_raw_seconds (C function)c.ktime_get_raw_secondshNteuh1hhjhhhhhNubj )}(hhh](j)}(h"time64_t ktime_get_seconds( void )h]j)}(h time64_t ktime_get_seconds(void)h](h)}(hhh]j )}(htime64_th]htime64_t}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj~ ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9ktime_get_secondssbc.ktime_get_secondsasbuh1hhjz hhhhhKVubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjz hhhhhKVubj^)}(hktime_get_secondsh]j )}(hj h]hktime_get_seconds}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjz hhhhhKVubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjz hhhhhKVubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjv hhhhhKVubah}(h]je ah ](jjeh"]h$]h&]jj)jhuh1jhhhKVhjs hhubj)}(h+time64_t ktime_get_boottime_seconds( void )h]j)}(h)time64_t ktime_get_boottime_seconds(void)h](h)}(hhh]j )}(htime64_th]htime64_t}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9ktime_get_boottime_secondssbc.ktime_get_boottime_secondsasbuh1hhj hhhhhKVubjM)}(h h]h }(hj" hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKVubj^)}(hktime_get_boottime_secondsh]j )}(hj h]hktime_get_boottime_seconds}(hj4 hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj0 ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj hhhhhKVubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjG ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj hhhhhKVubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKVubah}(h]jh ah ](jjeh"]h$]h&]jj)jhuh1jhhhKVhjs hhubj)}(h'time64_t ktime_get_real_seconds( void )h]j)}(h%time64_t ktime_get_real_seconds(void)h](h)}(hhh]j )}(htime64_th]htime64_t}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj~ ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9ktime_get_real_secondssbc.ktime_get_real_secondsasbuh1hhjz hhhhhKVubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjz hhhhhKVubj^)}(hktime_get_real_secondsh]j )}(hj h]hktime_get_real_seconds}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjz hhhhhKVubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjz hhhhhKVubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjv hhhhhKVubah}(h]jk ah ](jjeh"]h$]h&]jj)jhuh1jhhhKVhjs hhubj)}(h+time64_t ktime_get_clocktai_seconds( void )h]j)}(h)time64_t ktime_get_clocktai_seconds(void)h](h)}(hhh]j )}(htime64_th]htime64_t}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9ktime_get_clocktai_secondssbc.ktime_get_clocktai_secondsasbuh1hhj hhhhhKVubjM)}(h h]h }(hj" hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKVubj^)}(hktime_get_clocktai_secondsh]j )}(hj h]hktime_get_clocktai_seconds}(hj4 hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj0 ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj hhhhhKVubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjG ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj hhhhhKVubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKVubah}(h]jn ah ](jjeh"]h$]h&]jj)jhuh1jhhhKVhjs hhubj)}(h&time64_t ktime_get_raw_seconds( void )h]j)}(h$time64_t ktime_get_raw_seconds(void)h](h)}(hhh]j )}(htime64_th]htime64_t}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj~ ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9ktime_get_raw_secondssbc.ktime_get_raw_secondsasbuh1hhjz hhhhhKVubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjz hhhhhKVubj^)}(hktime_get_raw_secondsh]j )}(hj h]hktime_get_raw_seconds}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjz hhhhhKVubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjz hhhhhKVubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjv hhhhhKVubah}(h]jq ah ](jjeh"]h$]h&]jj)jhuh1jhhhKVhjs hhubj)}(hhh]h)}(hReturn a coarse-grained version of the time as a scalar time64_t. This avoids accessing the clock hardware and rounds down the seconds to the full seconds of the last timer tick using the respective reference.h]hReturn a coarse-grained version of the time as a scalar time64_t. This avoids accessing the clock hardware and rounds down the seconds to the full seconds of the last timer tick using the respective reference.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj hhubah}(h]h ]h"]h$]h&]uh1jhjs hhhhhKVubeh}(h]h ](j7functioneh"]h$]h&]jj7jjjjjjjuh1j hhhjhhhNubeh}(h]'nanosecond-timespec64-and-second-outputah ]h"])nanosecond, timespec64, and second outputah$]h&]uh1hhhhhhhhKhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hktime_get_raw_fast_nsh]j )}(hj;h]hktime_get_raw_fast_ns}(hjPhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjLubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjcubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h"u64 ktime_get_boot_fast_ns( void )h]j)}(h u64 ktime_get_boot_fast_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_boot_fast_nssbc.ktime_get_boot_fast_nsasbuh1hhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hktime_get_boot_fast_nsh]j )}(hjh]hktime_get_boot_fast_ns}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h!u64 ktime_get_tai_fast_ns( void )h]j)}(hu64 ktime_get_tai_fast_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_tai_fast_nssbc.ktime_get_tai_fast_nsasbuh1hhjhhhhhKubjM)}(h h]h }(rhj>hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hktime_get_tai_fast_nsh]j )}(hj;h]hktime_get_tai_fast_ns}(hjPhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjLubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjcubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h"u64 ktime_get_real_fast_ns( void )h]j)}(h u64 ktime_get_real_fast_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9ktime_get_real_fast_nssbc.ktime_get_real_fast_nsasbuh1hhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hktime_get_real_fast_nsh]j )}(hjh]hktime_get_real_fast_ns}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(hhh]h)}(hXzThese variants are safe to call from any context, including from a non-maskable interrupt (NMI) during a timekeeper update, and while we are entering suspend with the clocksource powered down. This is useful in some tracing or debugging code as well as machine check reporting, but most drivers should never call them, since the time is allowed to jump under certain conditions.h]hXzThese variants are safe to call from any context, including from a non-maskable interrupt (NMI) during a timekeeper update, and while we are entering suspend with the clocksource powered down. This is useful in some tracing or debugging code as well as machine check reporting, but most drivers should never call them, since the time is allowed to jump under certain conditions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jj,jj,jjjuh1j hhhjhhhNubeh}(h]coarse-and-fast-ns-accessah ]h"]coarse and fast_ns accessah$]h&]uh1hhhhhhhhKbubh)}(hhh](h)}(hDeprecated time interfacesh]hDeprecated time interfaces}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hhhhhKubh)}(hXTOlder kernels used some other interfaces that are now being phased out but may appear in third-party drivers being ported here. In particular, all interfaces returning a 'struct timeval' or 'struct timespec' have been replaced because the tv_sec member overflows in year 2038 on 32-bit architectures. These are the recommended replacements:h]hX\Older kernels used some other interfaces that are now being phased out but may appear in third-party drivers being ported here. In particular, all interfaces returning a ‘struct timeval’ or ‘struct timespec’ have been replaced because the tv_sec member overflows in year 2038 on 32-bit architectures. These are the recommended replacements:}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj8hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](jktime_get_ts (C function)c.ktime_get_tshNtauh1hhj8hhhhhNubj )}(hhh](j)}(h&void ktime_get_ts( struct timespec * )h]j)}(h#void ktime_get_ts(struct timespec*)h](j)}(hvoidh]hvoid}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhhhKubjM)}(h h]h }(hj~hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjlhhhhhKubj^)}(h ktime_get_tsh]j )}(h ktime_get_tsh]h ktime_get_ts}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjlhhhhhKubj{)}(h(struct timespec*)h]j)}(hstruct timespec*h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjubh)}(hhh]j )}(htimespech]htimespec}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9jsbc.ktime_get_tsasbuh1hhjubjr)}(hjuh]h*}(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjlhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhhKubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjehhubj)}(hhh]h)}(h,Use ktime_get() or ktime_get_ts64() instead.h]h,Use ktime_get() or ktime_get_ts64() instead.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjehhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jj*jj*jjjuh1j hhhj8hhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((jdo_gettimeofday (C function)c.do_gettimeofdayhNt(jgetnstimeofday (C function)c.getnstimeofdayhNt(jgetnstimeofday64 (C function)c.getnstimeofday64hNt(jktime_get_real_ts (C function)c.ktime_get_real_tshNteuh1hhj8hhhhhNubj )}(hhh](j)}(h(void do_gettimeofday( struct timeval * )h]j)}(h%void do_gettimeofday(struct timeval*)h](j)}(hvoidh]hvoid}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhhhhKubjM)}(h h]h }(hj^hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjLhhhhhKubj^)}(hdo_gettimeofdayh]j )}(hdo_gettimeofdayh]hdo_gettimeofday}(hjphhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjlubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjLhhhhhKubj{)}(h(struct timeval*)h]j)}(hstruct timeval*h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjubh)}(hhh]j )}(htimevalh]htimeval}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9jrsbc.do_gettimeofdayasbuh1hhjubjr)}(hjuh]h*}(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjLhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjHhhhhhKubah}(h]j:ah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjEhhubj)}(h(void getnstimeofday( struct timespec * )h]j)}(h%void getnstimeofday(struct timespec*)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hgetnstimeofdayh]j )}(hgetnstimeofdayh]hgetnstimeofday}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(struct timespec*)h]j)}(hstruct timespec*h](j0)}(hj3h]hstruct}(hj4hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj0ubjM)}(h h]h }(hjAhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj0ubh)}(hhh]j )}(htimespech]htimespec}(hjRhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjTmodnameN classnameNj=j@)}jC]jF)}j9jsbc.getnstimeofdayasbuh1hhj0ubjr)}(hjuh]h*}(hjrhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj0ubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhj,ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjEhhubj)}(h,void getnstimeofday64( struct timespec64 * )h]j)}(h)void getnstimeofday64(struct timespec64*)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hgetnstimeofday64h]j )}(hgetnstimeofday64h]hgetnstimeofday64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(struct timespec64*)h]j)}(hstruct timespec64*h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjubh)}(hhh]j )}(h timespec64h]h timespec64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9jsbc.getnstimeofday64asbuh1hhjubjr)}(hjuh]h*}(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjEhhubj)}(h+void ktime_get_real_ts( struct timespec * )h]j)}(h(void ktime_get_real_ts(struct timespec*)h](j)}(hvoidh]hvoid}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhhhKubjM)}(h h]h }(hjVhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjDhhhhhKubj^)}(hktime_get_real_tsh]j )}(hktime_get_real_tsh]hktime_get_real_ts}(hjhhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjdubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjDhhhhhKubj{)}(h(struct timespec*)h]j)}(hstruct timespec*h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjubh)}(hhh]j )}(htimespech]htimespec}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9jjsbc.ktime_get_real_tsasbuh1hhjubjr)}(hjuh]h*}(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]noemphjxjyuh1jhj|ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjDhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj@hhhhhKubah}(h]jCah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjEhhubj)}(hhh]h)}(hktime_get_real_ts64() is a direct replacement, but consider using monotonic time (ktime_get_ts64()) and/or a ktime_t based interface (ktime_get()/ktime_get_real()).h]hktime_get_real_ts64() is a direct replacement, but consider using monotonic time (ktime_get_ts64()) and/or a ktime_t based interface (ktime_get()/ktime_get_real()).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjEhhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jjjjjjjuh1j hhhj8hhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((j current_kernel_time (C function)c.current_kernel_timehNt(j"current_kernel_time64 (C function)c.current_kernel_time64hNt(j!get_monotonic_coarse (C function)c.get_monotonic_coarsehNt(j#get_monotonic_coarse64 (C function)c.get_monotonic_coarse64hNteuh1hhj8hhhhhNubj )}(hhh](j)}(h+struct timespec current_kernel_time( void )h]j)}(h)struct timespec current_kernel_time(void)h](j0)}(hj3h]hstruct}(hj(hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj$hhhhhKubjM)}(h h]h }(hj5hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj$hhhhhKubh)}(hhh]j )}(htimespech]htimespec}(hjFhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjHmodnameN classnameNj=j@)}jC]jF)}j9current_kernel_timesbc.current_kernel_timeasbuh1hhj$hhhhhKubjM)}(h h]h }(hjghhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj$hhhhhKubj^)}(hcurrent_kernel_timeh]j )}(hjdh]hcurrent_kernel_time}(hjyhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjuubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj$hhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhj$hhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h/struct timespec64 current_kernel_time64( void )h]j)}(h-struct timespec64 current_kernel_time64(void)h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubh)}(hhh]j )}(h timespec64h]h timespec64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9current_kernel_time64sbc.current_kernel_time64asbuh1hhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hcurrent_kernel_time64h]j )}(hjh]hcurrent_kernel_time64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj'ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h,struct timespec get_monotonic_coarse( void )h]j)}(h*struct timespec get_monotonic_coarse(void)h](j0)}(hj3h]hstruct}(hj^hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjZhhhhhKubjM)}(h h]h }(hjkhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjZhhhhhKubh)}(hhh]j )}(htimespech]htimespec}(hj|hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj~modnameN classnameNj=j@)}jC]jF)}j9get_monotonic_coarsesbc.get_monotonic_coarseasbuh1hhjZhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjZhhhhhKubj^)}(hget_monotonic_coarseh]j )}(hjh]hget_monotonic_coarse}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjZhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjZhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjVhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h0struct timespec64 get_monotonic_coarse64( void )h]j)}(h.struct timespec64 get_monotonic_coarse64(void)h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubh)}(hhh]j )}(h timespec64h]h timespec64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9get_monotonic_coarse64sbc.get_monotonic_coarse64asbuh1hhjhhhhhKubjM)}(h h]h }(hj8hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hget_monotonic_coarse64h]j )}(hj5h]hget_monotonic_coarse64}(hjJhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjFubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj]ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(hhh]h)}(hThese are replaced by ktime_get_coarse_real_ts64() and ktime_get_coarse_ts64(). However, A lot of code that wants coarse-grained times can use the simple 'jiffies' instead, while some drivers may actually want the higher resolution accessors these days.h]hXThese are replaced by ktime_get_coarse_real_ts64() and ktime_get_coarse_ts64(). However, A lot of code that wants coarse-grained times can use the simple ‘jiffies’ instead, while some drivers may actually want the higher resolution accessors these days.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jjjjjjjuh1j hhhj8hhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((jgetrawmonotonic (C function)c.getrawmonotonichNt(jgetrawmonotonic64 (C function)c.getrawmonotonic64hNt(j!timekeeping_clocktai (C function)c.timekeeping_clocktaihNt(j#timekeeping_clocktai64 (C function)c.timekeeping_clocktai64hNt(j#get_monotonic_boottime (C function)c.get_monotonic_boottimehNt(j%get_monotonic_boottime64 (C function)c.get_monotonic_boottime64hNteuh1hhj8hhhhhNubj )}(hhh](j)}(h'struct timespec getrawmonotonic( void )h]j)}(h%struct timespec getrawmonotonic(void)h](j0)}(hj3h]hstruct}(hjhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubh)}(hhh]j )}(htimespech]htimespec}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9getrawmonotonicsbc.getrawmonotonicasbuh1hhjhhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjhhhhhKubj^)}(hgetrawmonotonich]j )}(hjh]hgetrawmonotonic}(hj#hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjhhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj6ubah}(h]h ]h"]h$]h&]jxjyuh1jzhjhhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h+struct timespec64 getrawmonotonic64( void )h]j)}(h)struct timespec64 getrawmonotonic64(void)h](j0)}(hj3h]hstruct}(hjmhhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hjihhhhhKubjM)}(h h]h }(hjzhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjihhhhhKubh)}(hhh]j )}(h timespec64h]h timespec64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetjmodnameN classnameNj=j@)}jC]jF)}j9getrawmonotonic64sbc.getrawmonotonic64asbuh1hhjihhhhhKubjM)}(h h]h }(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhjihhhhhKubj^)}(hgetrawmonotonic64h]j )}(hjh]hgetrawmonotonic64}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hjihhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjubah}(h]h ]h"]h$]h&]jxjyuh1jzhjihhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhjehhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h,struct timespec timekeeping_clocktai( void )h]j)}(h*struct timespec timekeeping_clocktai(void)h](j0)}(hj3h]hstruct}(hj hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj hhhhhKubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKubh)}(hhh]j )}(htimespech]htimespec}(hj& hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj# ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj( modnameN classnameNj=j@)}jC]jF)}j9timekeeping_clocktaisbc.timekeeping_clocktaiasbuh1hhj hhhhhKubjM)}(h h]h }(hjG hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKubj^)}(htimekeeping_clocktaih]j )}(hjD h]htimekeeping_clocktai}(hjY hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjU ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj hhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjt hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhjl ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj hhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h0struct timespec64 timekeeping_clocktai64( void )h]j)}(h.struct timespec64 timekeeping_clocktai64(void)h](j0)}(hj3h]hstruct}(hj hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj hhhhhKubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKubh)}(hhh]j )}(h timespec64h]h timespec64}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj modnameN classnameNj=j@)}jC]jF)}j9timekeeping_clocktai64sbc.timekeeping_clocktai64asbuh1hhj hhhhhKubjM)}(h h]h }(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj hhhhhKubj^)}(htimekeeping_clocktai64h]j )}(hj h]htimekeeping_clocktai64}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj hhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj !ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj!ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj hhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj hhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h.struct timespec get_monotonic_boottime( void )h]j)}(h,struct timespec get_monotonic_boottime(void)h](j0)}(hj3h]hstruct}(hj>!hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj:!hhhhhKubjM)}(h h]h }(hjK!hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj:!hhhhhKubh)}(hhh]j )}(htimespech]htimespec}(hj\!hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjY!ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj^!modnameN classnameNj=j@)}jC]jF)}j9get_monotonic_boottimesbc.get_monotonic_boottimeasbuh1hhj:!hhhhhKubjM)}(h h]h }(hj}!hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj:!hhhhhKubj^)}(hget_monotonic_boottimeh]j )}(hjz!h]hget_monotonic_boottime}(hj!hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj!ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj:!hhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj!ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj:!hhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj6!hhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(h2struct timespec64 get_monotonic_boottime64( void )h]j)}(h0struct timespec64 get_monotonic_boottime64(void)h](j0)}(hj3h]hstruct}(hj!hhhNhNubah}(h]h ]j<ah"]h$]h&]uh1j/hj!hhhhhKubjM)}(h h]h }(hj!hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj!hhhhhKubh)}(hhh]j )}(h timespec64h]h timespec64}(hj!hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&] refdomainj7reftypej9 reftargetj!modnameN classnameNj=j@)}jC]jF)}j9get_monotonic_boottime64sbc.get_monotonic_boottime64asbuh1hhj!hhhhhKubjM)}(h h]h }(hj"hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jLhj!hhhhhKubj^)}(hget_monotonic_boottime64h]j )}(hj"h]hget_monotonic_boottime64}(hj*"hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj&"ubah}(h]h ](jsjteh"]h$]h&]jxjyuh1j]hj!hhhhhKubj{)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hjE"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA"ubah}(h]h ]h"]h$]h&]noemphjxjyuh1jhj="ubah}(h]h ]h"]h$]h&]jxjyuh1jzhj!hhhhhKubeh}(h]h ]h"]h$]h&]jxjyjuh1jjjhj!hhhhhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhhhKhjhhubj)}(hhh]h)}(hXCThese are replaced by ktime_get_raw()/ktime_get_raw_ts64(), ktime_get_clocktai()/ktime_get_clocktai_ts64() as well as ktime_get_boottime()/ktime_get_boottime_ts64(). However, if the particular choice of clock source is not important for the user, consider converting to ktime_get()/ktime_get_ts64() instead for consistency.h]hXCThese are replaced by ktime_get_raw()/ktime_get_raw_ts64(), ktime_get_clocktai()/ktime_get_clocktai_ts64() as well as ktime_get_boottime()/ktime_get_boottime_ts64(). However, if the particular choice of clock source is not important for the user, consider converting to ktime_get()/ktime_get_ts64() instead for consistency.}(hjo"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjl"hhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubeh}(h]h ](j7functioneh"]h$]h&]jj7jj"jj"jjjuh1j hhhj8hhhNubeh}(h]deprecated-time-interfacesah ]h"]deprecated time interfacesah$]h&]uh1hhhhhhhhKubeh}(h]ktime-accessorsah ]h"]ktime accessorsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj"error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j"j"jjjjj5j2j"j"u nametypes}(j"jjj5j"uh}(j"hjhj jjjjjjrjwj;j@jjjj0j"jj%j0j(jj+j0jjjjjjC jj jj je jv jh j jk jv jn j jq jv j2jjGjUjJjjMjUjPjjqjjtjjwjjzjjjjjQjjjjjjjjjjjjjjj"j8jcjhj:jHj=jj@jjCj@jj jjjjVjjjjjjejj jj jj6!jj!u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.