Hi XiangCheng: On Tue, Oct 18, 2022 at 12:38 AM Wu XiangCheng <wu.xiangcheng@xxxxxxxxx> wrote: > > > Translate core-api/timekeeping.rst into Chinese. > > > > Last English version used: > > > > commit 3dc6ffae2da2 ("timekeeping: Introduce fast accessor to clock tai"). > > > > Signed-off-by: Binbin Zhou <zhoubinbin@xxxxxxxxxxx> > > --- > > .../translations/zh_CN/core-api/index.rst | 2 +- > > .../zh_CN/core-api/timekeeping.rst | 172 ++++++++++++++++++ > > 2 files changed, 173 insertions(+), 1 deletion(-) > > create mode 100644 Documentation/translations/zh_CN/core-api/timekeeping.rst > > > > diff --git a/Documentation/translations/zh_CN/core-api/index.rst b/Documentation/translations/zh_CN/core-api/index.rst > > index 21d0b25bc580..d08091036066 100644 > > --- a/Documentation/translations/zh_CN/core-api/index.rst > > +++ b/Documentation/translations/zh_CN/core-api/index.rst > > @@ -49,12 +49,12 @@ > > generic-radix-tree > > packing > > this_cpu_ops > > + timekeeping > > > > Todolist: > > > > > > > > - timekeeping > > errseq > > > > 并发原语 > > diff --git a/Documentation/translations/zh_CN/core-api/timekeeping.rst b/Documentation/translations/zh_CN/core-api/timekeeping.rst > > new file mode 100644 > > index 000000000000..e7f9adf2525c > > --- /dev/null > > +++ b/Documentation/translations/zh_CN/core-api/timekeeping.rst > > @@ -0,0 +1,172 @@ > > +.. SPDX-License-Identifier: GPL-2.0+ > > + > > +.. include:: ../disclaimer-zh_CN.rst > > + > > +:Original: Documentation/core-api/timekeeping.rst > > + > > +:翻译: > > + > > + 周彬彬 Binbin Zhou <zhoubinbin@xxxxxxxxxxx> > > + > > +ktime访问器 > > +=========== > > + > > +设备驱动程序可以使用ktime_get()和linux/timekeeping.h中声明的许多相关函数读取当前 > > +时间。根据经验,如果两者都同样适合特定用例,则使用名称较短的访问器优于名称较长的 > > +访问器。 > > 如果两个访问器都适用于某一用例,则使用名称较短的那个。 Ok.... > > > + > > +基于ktime_t的基础接口 > > +--------------------- > > + > > +推荐的最简单形式返回不透明的ktime_t,其变体返回不同时钟参考的时间: > > + > > +.. c:function:: ktime_t ktime_get( void ) > > + > > + CLOCK_MONOTONIC > ^ > tab > > > + > > + 对可靠的时间戳和准确测量短的时间间隔很有用。在系统启动时启动,但在挂起时 > > + 停止。 > ^^^^^^^^ > spaces > check all of them I will check all of them and replace spaces with tabs. > > > + > > +.. c:function:: ktime_t ktime_get_boottime( void ) > > + > > + CLOCK_BOOTTIME > > + > > + 与ktime_get()类似,但在挂起时不会停止。这可以用于例如需要在挂起操作中与其 > > + 他计算机同步的密钥过期时间。 > > + > > +.. c:function:: ktime_t ktime_get_real( void ) > > + > > + CLOCK_REALTIME > > + > > + 使用协调世界时(UTC)返回相对于1970年开始的UNIX纪元的时间,与用户空间的 > > + gettimeofday()相同。该函数用于所有需要在重启时持续存在的时间戳,比如 > > + inode时间,但应避免在内部使用,因为它可能由于闰秒更新和来自用户空间的NTP > > + 调整settimeofday()操作而向后跳转。 > > + > > +.. c:function:: ktime_t ktime_get_clocktai( void ) > > + > > + CLOCK_TAI > > + > > + 与ktime_get_real()类似,但使用国际原子时(TAI)作为参考而不是UTC,以避免在 > > + 闰秒更新时跳转。这在内核中很少有用。 > > + > > +.. c:function:: ktime_t ktime_get_raw( void ) > > + > > + CLOCK_MONOTONIC_RAW > > + > > + 与ktime_get()类似,但以与硬件时钟源相同的速率运行,无需针对时钟漂移进行调 > > + 整(NTP)。这在内核中也很少需要。 > > 没有针对时钟漂移进行的调整(NTP)。 OK.... > > > + > > +纳秒,timespec64和秒钟的输出 > > +---------------------------- > > + > > +对于上述所有情况,以下函数变体会根据用户的要求以不同的格式返回时间: > > + > > +.. c:function:: u64 ktime_get_ns( void ) > > + u64 ktime_get_boottime_ns( void ) > > + u64 ktime_get_real_ns( void ) > > + u64 ktime_get_clocktai_ns( void ) > > + u64 ktime_get_raw_ns( void ) > > + > > + 与普通的ktime_get函数相同,但返回各自时钟参考中的u64纳秒数,这对某些调用 > > + 者来说可能更方便。 > > + > > +.. c:function:: void ktime_get_ts64( struct timespec64 * ) > > + void ktime_get_boottime_ts64( struct timespec64 * ) > > + void ktime_get_real_ts64( struct timespec64 * ) > > + void ktime_get_clocktai_ts64( struct timespec64 * ) > > + void ktime_get_raw_ts64( struct timespec64 * ) > > + > > + 同上,但返回的是'struct timespec64'中的时间,分为秒和纳秒。这可以避免在打 > > + 印时间时,或在将其传递到期望有'timespec'或'timeval'结构的外部接口时,进行 > > 结构 -> 结构体 OK... Thanks for your review. Binbin > > Thanks, > Wu