sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget(/translations/zh_CN/core-api/timekeepingmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/core-api/timekeepingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(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}(hhhhhhhNhNubah}(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.}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hBasic ktime_t based interfacesh]hBasic ktime_t based interfaces}(hhhhhhhNhNubah}(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:}(hhhhhhhNhNubah}(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}(hhhj hhhNhNubah}(h]h ]nah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j* ASTIdentifier)}j% ktime_getsb c.ktime_getasbuh1hhjhhhhhKubhdesc_sig_space)}(h h]h }(hhhj:hhhNhNubah}(h]h ]wah"]h$]h&]uh1j8hjhhhhhKubh desc_name)}(h ktime_geth]j )}(hj5h]h ktime_get}(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jIhjhhhhhKubhdesc_parameterlist)}(h(void)h]hdesc_parameter)}(hvoidh]hdesc_sig_keyword_type)}(hvoidh]hvoid}(hhhjthhhNhNubah}(h]h ]ktah"]h$]h&]uh1jrhjnubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjhubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKubeh}(h]h ]h"]h$]h&]jdje add_permalinkuh1jsphinx_line_type declaratorhhhhhhhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multilineuh1hhhhKhhhhubh desc_content)}(hhh](h)}(hCLOCK_MONOTONICh]hCLOCK_MONOTONIC}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhKubeh}(h]h ](j#functioneh"]h$]h&]domainj#objtypejdesctypejnoindexuh1hhhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hktime_get_boottime (C function)c.ktime_get_boottimehNtauh1hhhhhhhhNubh)}(hhh](h)}(h"ktime_t ktime_get_boottime( void )h]j)}(h ktime_t ktime_get_boottime(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjmodnameN classnameNj)j,)}j/]j2)}j%ktime_get_boottimesbc.ktime_get_boottimeasbuh1hhjhhhhhKubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKubjJ)}(hktime_get_boottimeh]j )}(hjh]hktime_get_boottime}(hhhj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj:ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj6ubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKhjhhubj)}(hhh](h)}(hCLOCK_BOOTTIMEh]hCLOCK_BOOTTIME}(hjjhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjehhubh)}(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.}(hjxhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjehhubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhKubeh}(h]h ](j#functioneh"]h$]h&]jj#jjjjjuh1hhhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hktime_get_real (C function)c.ktime_get_realhNtauh1hhhhhhhhNubh)}(hhh](h)}(hktime_t ktime_get_real( void )h]j)}(hktime_t ktime_get_real(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjmodnameN classnameNj)j,)}j/]j2)}j%ktime_get_realsbc.ktime_get_realasbuh1hhjhhhhhK*ubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhK*ubjJ)}(hktime_get_realh]j )}(hjh]hktime_get_real}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhK*ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhK*ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhK*ubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKhjhhubj)}(hhh](h)}(hCLOCK_REALTIMEh]hCLOCK_REALTIME}(hj'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.}(hj5hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hj"hhubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhK*ubeh}(h]h ](j#functioneh"]h$]h&]jj#jjJjjJjuh1hhhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hktime_get_clocktai (C function)c.ktime_get_clocktaihNtauh1hhhhhhhhNubh)}(hhh](h)}(h"ktime_t ktime_get_clocktai( void )h]j)}(h ktime_t ktime_get_clocktai(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjlmodnameN classnameNj)j,)}j/]j2)}j%ktime_get_clocktaisbc.ktime_get_clocktaiasbuh1hhjchhhhhK2ubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjchhhhhK2ubjJ)}(hktime_get_clocktaih]j )}(hjh]hktime_get_clocktai}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjchhhhhK2ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjubah}(h]h ]h"]h$]h&]jdjeuh1jfhjchhhhhK2ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj_hhhhhK2ubah}(h]jZah ](jjeh"]h$]h&]juh1hhhhK+hj\hhubj)}(hhh](h block_quote)}(hhh]h)}(h CLOCK_TAIh]h CLOCK_TAI}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjhhubeh}(h]h ]h"]h$]h&]uh1jhj\hhhhhK2ubeh}(h]h ](j#functioneh"]h$]h&]jj#jjjjjuh1hhhhhhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hktime_get_raw (C function)c.ktime_get_rawhNtauh1hhhhhhhhNubh)}(hhh](h)}(hktime_t ktime_get_raw( void )h]j)}(hktime_t ktime_get_raw(void)h](h)}(hhh]j )}(hktime_th]hktime_t}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj4modnameN classnameNj)j,)}j/]j2)}j% ktime_get_rawsbc.ktime_get_rawasbuh1hhj+hhhhhK:ubj9)}(h h]h }(hhhjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+hhhhhK:ubjJ)}(h ktime_get_rawh]j )}(hjPh]h ktime_get_raw}(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhj+hhhhhK:ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj|ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjxubah}(h]h ]h"]h$]h&]jdjeuh1jfhj+hhhhhK:ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj'hhhhhK:ubah}(h]j"ah ](jjeh"]h$]h&]juh1hhhhK3hj$hhubj)}(hhh](h)}(hCLOCK_MONOTONIC_RAWh]hCLOCK_MONOTONIC_RAW}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjhhubeh}(h]h ]h"]h$]h&]uh1jhj$hhhhhK:ubeh}(h]h ](j#functioneh"]h$]h&]jj#jjjjjuh1hhhhhhhhNubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKhjhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((hktime_get_ns (C function)c.ktime_get_nshNt(h"ktime_get_boottime_ns (C function)c.ktime_get_boottime_nshNt(hktime_get_real_ns (C function)c.ktime_get_real_nshNt(h"ktime_get_clocktai_ns (C function)c.ktime_get_clocktai_nshNt(hktime_get_raw_ns (C function)c.ktime_get_raw_nshNteuh1hhjhhhhhNubh)}(hhh](h)}(hu64 ktime_get_ns( void )h]j)}(hu64 ktime_get_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj$modnameN classnameNj)j,)}j/]j2)}j% ktime_get_nssbc.ktime_get_nsasbuh1hhjhhhhhKJubj9)}(h h]h }(hhhjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKJubjJ)}(h ktime_get_nsh]j )}(hj@h]h ktime_get_ns}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKJubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjlubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjhubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKJubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKJubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKAhjhhubh)}(h!u64 ktime_get_boottime_ns( void )h]j)}(hu64 ktime_get_boottime_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjmodnameN classnameNj)j,)}j/]j2)}j%ktime_get_boottime_nssbc.ktime_get_boottime_nsasbuh1hhjhhhhhKJubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKJubjJ)}(hktime_get_boottime_nsh]j )}(hjh]hktime_get_boottime_ns}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKJubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKJubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKJubah}(h]j ah ](jjeh"]h$]h&]juh1hhhhKAhjhhubh)}(hu64 ktime_get_real_ns( void )h]j)}(hu64 ktime_get_real_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj$modnameN classnameNj)j,)}j/]j2)}j%ktime_get_real_nssbc.ktime_get_real_nsasbuh1hhjhhhhhKJubj9)}(h h]h }(hhhjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKJubjJ)}(hktime_get_real_nsh]j )}(hj@h]hktime_get_real_ns}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKJubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjlubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjhubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKJubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKJubah}(h]j ah ](jjeh"]h$]h&]juh1hhhhKAhjhhubh)}(h!u64 ktime_get_clocktai_ns( void )h]j)}(hu64 ktime_get_clocktai_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjmodnameN classnameNj)j,)}j/]j2)}j%ktime_get_clocktai_nssbc.ktime_get_clocktai_nsasbuh1hhjhhhhhKJubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKJubjJ)}(hktime_get_clocktai_nsh]j )}(hjh]hktime_get_clocktai_ns}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKJubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKJubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKJubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKAhjhhubh)}(hu64 ktime_get_raw_ns( void )h]j)}(hu64 ktime_get_raw_ns(void)h](h)}(hhh]j )}(hu64h]hu64}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj$modnameN classnameNj)j,)}j/]j2)}j%ktime_get_raw_nssbc.ktime_get_raw_nsasbuh1hhjhhhhhKJubj9)}(h h]h }(hhhjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKJubjJ)}(hktime_get_raw_nsh]j )}(hj@h]hktime_get_raw_ns}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKJubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjlubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjhubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKJubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKJubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKAhjhhubj)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKJubeh}(h]h ](j#functioneh"]h$]h&]jj#jjjjjuh1hhhhjhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((hktime_get_ts64 (C function)c.ktime_get_ts64hNt(h$ktime_get_boottime_ts64 (C function)c.ktime_get_boottime_ts64hNt(h ktime_get_real_ts64 (C function)c.ktime_get_real_ts64hNt(h$ktime_get_clocktai_ts64 (C function)c.ktime_get_clocktai_ts64hNt(hktime_get_raw_ts64 (C function)c.ktime_get_raw_ts64hNteuh1hhjhhhhhNubh)}(hhh](h)}(h*void ktime_get_ts64( struct timespec64 * )h]j)}(h'void ktime_get_ts64(struct timespec64*)h](js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjhhhhhKUubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKUubjJ)}(hktime_get_ts64h]j )}(hktime_get_ts64h]hktime_get_ts64}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKUubjg)}(h(struct timespec64*)h]jm)}(hstruct timespec64*h](hdesc_sig_keyword)}(hstructh]hstruct}(hhhjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubj9)}(h h]h }(hhhj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubh)}(hhh]j )}(h timespec64h]h timespec64}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj:modnameN classnameNj)j,)}j/]j2)}j%jsbc.ktime_get_ts64asbuh1hhjubhdesc_sig_punctuation)}(h*h]h*}(hhhjZhhhNhNubah}(h]h ]pah"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKUubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKUubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKKhjhhubh)}(h3void ktime_get_boottime_ts64( struct timespec64 * )h]j)}(h0void ktime_get_boottime_ts64(struct timespec64*)h](js)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhjhhhhhKUubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKUubjJ)}(hktime_get_boottime_ts64h]j )}(hktime_get_boottime_ts64h]hktime_get_boottime_ts64}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhjhhhhhKUubjg)}(h(struct timespec64*)h]jm)}(hstruct timespec64*h](j)}(hjh]hstruct}(hhhjhhhNhNubah}(h]h ]j#ah"]h$]h&]uh1jhjubj9)}(h h]h }(hhhjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubh)}(hhh]j )}(h timespec64h]h timespec64}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjmodnameN classnameNj)j,)}j/]j2)}j%jsbc.ktime_get_boottime_ts64asbuh1hhjubjY)}(hj\h]h*}(hhhj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjubah}(h]h ]h"]h$]h&]jdjeuh1jfhjhhhhhKUubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjhhhhhKUubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKKhjhhubh)}(h/void ktime_get_real_ts64( struct timespec64 * )h]j)}(h,void ktime_get_real_ts64(struct timespec64*)h](js)}(hvoidh]hvoid}(hhhj2 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj. hhhhhKUubj9)}(h h]h }(hhhj@ hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj. hhhhhKUubjJ)}(hktime_get_real_ts64h]j )}(hktime_get_real_ts64h]hktime_get_real_ts64}(hhhjR hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjN ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhj. hhhhhKUubjg)}(h(struct timespec64*)h]jm)}(hstruct timespec64*h](j)}(hjh]hstruct}(hhhjn hhhNhNubah}(h]h ]j#ah"]h$]h&]uh1jhjj ubj9)}(h h]h }(hhhj{ hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjj ubh)}(hhh]j )}(h timespec64h]h timespec64}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj modnameN classnameNj)j,)}j/]j2)}j%jT sbc.ktime_get_real_ts64asbuh1hhjj ubjY)}(hj\h]h*}(hhhj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjj ubeh}(h]h ]h"]h$]h&]noemphjdjeuh1jlhjf ubah}(h]h ]h"]h$]h&]jdjeuh1jfhj. hhhhhKUubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj* hhhhhKUubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKKhjhhubh)}(h3void ktime_get_clocktai_ts64( struct timespec64 * )h]j)}(h0void ktime_get_clocktai_ts64(struct timespec64*)h](js)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj hhhhhKUubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj hhhhhKUubjJ)}(hktime_get_clocktai_ts64h]j )}(hktime_get_clocktai_ts64h]hktime_get_clocktai_ts64}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhj hhhhhKUubjg)}(h(struct timespec64*)h]jm)}(hstruct timespec64*h](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]j#ah"]h$]h&]uh1jhj ubj9)}(h h]h }(hhhj# hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubh)}(hhh]j )}(h timespec64h]h timespec64}(hhhj4 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1 ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj6 modnameN classnameNj)j,)}j/]j2)}j%j sbc.ktime_get_clocktai_ts64asbuh1hhj ubjY)}(hj\h]h*}(hhhjT hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubeh}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj ubah}(h]h ]h"]h$]h&]jdjeuh1jfhj hhhhhKUubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj hhhhhKUubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKKhjhhubh)}(h.void ktime_get_raw_ts64( struct timespec64 * )h]j)}(h+void ktime_get_raw_ts64(struct timespec64*)h](js)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj~ hhhhhKUubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ hhhhhKUubjJ)}(hktime_get_raw_ts64h]j )}(hktime_get_raw_ts64h]hktime_get_raw_ts64}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhj~ hhhhhKUubjg)}(h(struct timespec64*)h]jm)}(hstruct timespec64*h](j)}(hjh]hstruct}(hhhj hhhNhNubah}(h]h ]j#ah"]h$]h&]uh1jhj ubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubh)}(hhh]j )}(h timespec64h]h timespec64}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj modnameN classnameNj)j,)}j/]j2)}j%j sbc.ktime_get_raw_ts64asbuh1hhj ubjY)}(hj\h]h*}(hhhj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubeh}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj ubah}(h]h ]h"]h$]h&]jdjeuh1jfhj~ hhhhhKUubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhjz hhhhhKUubah}(h]jah ](jjeh"]h$]h&]juh1hhhhKKhjhhubj)}(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' hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhj" hhubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKUubeh}(h]h ](j#functioneh"]h$]h&]jj#jj< jj< juh1hhhhjhhhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries]((hktime_get_seconds (C function)c.ktime_get_secondshNt(h'ktime_get_boottime_seconds (C function)c.ktime_get_boottime_secondshNt(h#ktime_get_real_seconds (C function)c.ktime_get_real_secondshNt(h'ktime_get_clocktai_seconds (C function)c.ktime_get_clocktai_secondshNt(h"ktime_get_raw_seconds (C function)c.ktime_get_raw_secondshNteuh1hhjhhhhhNubh)}(hhh](h)}(h"time64_t ktime_get_seconds( void )h]j)}(h time64_t ktime_get_seconds(void)h](h)}(hhh]j )}(htime64_th]htime64_t}(hhhjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjj modnameN classnameNj)j,)}j/]j2)}j%ktime_get_secondssbc.ktime_get_secondsasbuh1hhja hhhhhK`ubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hja hhhhhK`ubjJ)}(hktime_get_secondsh]j )}(hj h]hktime_get_seconds}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhja hhhhhK`ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj ubah}(h]h ]h"]h$]h&]jdjeuh1jfhja hhhhhK`ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj] hhhhhK`ubah}(h]jL ah ](jjeh"]h$]h&]juh1hhhhKVhjZ hhubh)}(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}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj modnameN classnameNj)j,)}j/]j2)}j%ktime_get_boottime_secondssbc.ktime_get_boottime_secondsasbuh1hhj hhhhhK`ubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj hhhhhK`ubjJ)}(hktime_get_boottime_secondsh]j )}(hj h]hktime_get_boottime_seconds}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhj hhhhhK`ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhj6 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj2 ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj. ubah}(h]h ]h"]h$]h&]jdjeuh1jfhj hhhhhK`ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj hhhhhK`ubah}(h]jO ah ](jjeh"]h$]h&]juh1hhhhKVhjZ hhubh)}(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}(hhhjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjj modnameN classnameNj)j,)}j/]j2)}j%ktime_get_real_secondssbc.ktime_get_real_secondsasbuh1hhja hhhhhK`ubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hja hhhhhK`ubjJ)}(hktime_get_real_secondsh]j )}(hj h]hktime_get_real_seconds}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhja hhhhhK`ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj ubah}(h]h ]h"]h$]h&]jdjeuh1jfhja hhhhhK`ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj] hhhhhK`ubah}(h]jR ah ](jjeh"]h$]h&]juh1hhhhKVhjZ hhubh)}(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}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetj modnameN classnameNj)j,)}j/]j2)}j%ktime_get_clocktai_secondssbc.ktime_get_clocktai_secondsasbuh1hhj hhhhhK`ubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj hhhhhK`ubjJ)}(hktime_get_clocktai_secondsh]j )}(hj h]hktime_get_clocktai_seconds}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhj hhhhhK`ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhj6 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj2 ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj. ubah}(h]h ]h"]h$]h&]jdjeuh1jfhj hhhhhK`ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj hhhhhK`ubah}(h]jU ah ](jjeh"]h$]h&]juh1hhhhKVhjZ hhubh)}(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}(hhhjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje ubah}(h]h ]h"]h$]h&] refdomainj#reftypej% reftargetjj modnameN classnameNj)j,)}j/]j2)}j%ktime_get_raw_secondssbc.ktime_get_raw_secondsasbuh1hhja hhhhhK`ubj9)}(h h]h }(hhhj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hja hhhhhK`ubjJ)}(hktime_get_raw_secondsh]j )}(hj h]hktime_get_raw_seconds}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubah}(h]h ](j_j`eh"]h$]h&]jdjeuh1jIhja hhhhhK`ubjg)}(h(void)h]jm)}(hvoidh]js)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jrhj ubah}(h]h ]h"]h$]h&]noemphjdjeuh1jlhj ubah}(h]h ]h"]h$]h&]jdjeuh1jfhja hhhhhK`ubeh}(h]h ]h"]h$]h&]jdjejuh1jjjhj] hhhhhK`ubah}(h]jX ah ](jjeh"]h$]h&]juh1hhhhKVhjZ 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 hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj hhubah}(h]h ]h"]h$]h&]uh1jhjZ hhhhhK`ubeh}(h]h ](j#functioneh"]h$]h&]jj#jj jj juh1hhhhjhhhNubeh}(h]'nanosecond-timespec64-and-second-outputah ]h"])nanosecond, timespec64, and second outputah$]h&]uh1hhhhhhhhK