Re: [PATCH 1/2] docs/zh_CN: add core-api assoc_array translation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alex Shi <seakeel@xxxxxxxxx> 于2021年10月15日周五 下午4:21写道:
>
> On Tue, Oct 12, 2021 at 8:34 PM Yanteng Si <siyanteng01@xxxxxxxxx> wrote:
> >
> > Translate Documentation/core-api/assoc_array.rst into Chinese.
> >
> > Signed-off-by: Yanteng Si <siyanteng@xxxxxxxxxxx>
> > ---
> >  .../zh_CN/core-api/assoc_array.rst            | 473 ++++++++++++++++++
> >  .../translations/zh_CN/core-api/index.rst     |   2 +-
> >  2 files changed, 474 insertions(+), 1 deletion(-)
> >  create mode 100644 Documentation/translations/zh_CN/core-api/assoc_array.rst
> >
> > diff --git a/Documentation/translations/zh_CN/core-api/assoc_array.rst b/Documentation/translations/zh_CN/core-api/assoc_array.rst
> > new file mode 100644
> > index 000000000000..8071d9241dc9
> > --- /dev/null
> > +++ b/Documentation/translations/zh_CN/core-api/assoc_array.rst
> > @@ -0,0 +1,473 @@
> > +.. include:: ../disclaimer-zh_CN.rst
> > +
> > +:Original: Documentation/core-api/assoc_array.rst
> > +
> > +:翻译:
> > +
> > + 司延腾 Yanteng Si <siyanteng@xxxxxxxxxxx>
> > +
> > +:校译:
> > +
> > +
> > +
> > +.. _cn_core-api_assoc_array:
> > +
> > +==================
> > +通用关联数组的实现
> > +==================
> > +
> > +简介
> > +====
> > +
> > +这个关联数组的实现是一个具有以下属性的对象容器:
> > +
> > +1. 对象是不透明的指针。该实现不关心它们指向哪里(如果有的话)或它们指向什么(如果有的
> > +   话)。
> > +
> > +   .. note::
> > +
> > +      指向对象的指针 *必须* 在最小有效位为零。
> > +
> > +2. 对象不需要包含供数组使用的链接块。这允许一个对象同时位于多个数组中。相反,数组是
> > +   由指向对象的元数据块组成的。
> > +
> > +3. 对象需要索引键来定位它们在阵列中的位置。
> > +
> > +4. 索引键必须是唯一的。插入一个与已经在数组中的且具有相同键值的对象将取代旧的对象。
> > +
> > +5. 索引键可以是任何长度,也可以是不同的长度。
> > +
> > +6. 索引键应该在早期就对长度进行编码,即在任何由于长度引起的变化出现之前。
> > +
> > +7. 索引键可以包括一个哈希值,以便将对象分散到整个数组中。
> > +
> > +8. 该数组可以迭代。对象不一定会按索引键的顺序出现。
> > +
> > +9.  数组可以在被修改的时候进行迭代,只要RCU的读锁被迭代器持有。然而,请注意,在这种情
> > +    况下,一些对象可能会被看到不止一次。如果这是个问题,迭代器应该锁定以防止修改。然
> > +    而,除非删除,否则对象不会被错过。
> > +
> > +10. 数组中的对象可以通过其索引键进行查询。
> > +
> > +11. 当数组被修改时,对象可以被查询,前提是进行查询的线程持有RCU的读锁。
> > +
> > +该实现在内部使用了一棵由16个指针节点组成的树,这些节点在每一层都由索引键的小数点进行索
> > +引,其方式与基数树相同。为了提高内存效率,可以放置快捷键,以跳过本来是一系列单占节点的地
> > +方。此外,节点将叶子对象指针打包到节点的空闲空间中,而不是做一个额外的分支,直到有对象
> > +需要被添加到一个完整的节点中。
> > +
> > +公用API
> > +=======
> > +
> > +公用API可以在 ``<linux/assoc_array.h>`` 中找到。关联数组的根是以下结构::
> > +
> > +    struct assoc_array {
> > +            ...
> > +    };
> > +
> > +该代码是通过启用 ``CONFIG_ASSOCIATIVE_ARRAY`` 来选择的,以::
> > +
> > +    ./script/config -e ASSOCIATIVE_ARRAY
> > +
> > +
> > +编辑脚本
> > +--------
> > +
> > +插入和删除功能会产生一个“编辑脚本”,以后可以应用这个脚本来实现更改,而不会对ENOMEM造
>
> 而不会造成 ``ENOMEM``的风险。
OK,Thanks!
>
> > +成风险。这保留了将被安装在内部树中的预分配的元数据块,并跟踪在应用脚本时将从树中删除的
> > +元数据块。
>
> remove '在', change to "并跟踪应用脚本时..."?
OK,Thanks!
>
> > +
> > +在脚本应用后,这也被用来跟踪死块和死对象,以便以后可以释放它们。释放是在RCU宽限期过后
> > +进行的--因此允许访问功能在RCU读锁下进行。
> > +
> > +脚本在API之外显示为一个类型为::
> > +
> > +    struct assoc_array_edit;
> > +
> > +有两个处理脚本的功能:
> > +
> > +1. 应用一个编辑脚本::
> > +
> > +    void assoc_array_apply_edit(struct assoc_array_edit *edit);
> > +
> > +这将执行编辑功能,插值各种写屏障,以允许在RCU读锁下的访问继续进行。然后,编辑脚本将被
> > +传递给 call_rcu(),以释放它和它所指向的任何死的东西。
>
> Forgive my poor memory, why we remove the backquote `` around call_rcu
> and others?
I am so sorry, I will fix it.
>
> For the left,
> Reviewed-by: Alex Shi <alexs@xxxxxxxxxx>
Thank you very much!


Thanks.
Yanteng




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux