Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4523421ybb; Mon, 23 Mar 2020 23:52:01 -0700 (PDT) X-Google-Smtp-Source: ADFU+vt3BY0TB/BUEtsj7m2xtMS6frcDPY6Ybuho/WinTtqeaBN5xvDrh6aspwCoV0sLeXe0nA9m X-Received: by 2002:a05:6830:1e10:: with SMTP id s16mr4932508otr.33.1585032721763; Mon, 23 Mar 2020 23:52:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585032721; cv=none; d=google.com; s=arc-20160816; b=oxxWBgmQMd9+SqzZRpbWYRqn/lRO2R3D2UjkC1yhL6EIgA5Fp543sNCNFABWWB03Rk +kWNkRby6ahFu3b3YV13JijFQnT8zWVHJnTgs5GnaMbkwlo2rsall5LbpPY5ZEsjJyj2 4Vo7SY72R3xWuwmUtWiQuVw6l/wDMgXiGy4Cq0vywXF9zh/QgwXhWt5GIsCq/mGSlGG+ JGMtQhajsGumU+3nt1L+1MF6r8qPL2uHlicPU7vql8QtEVxb20HRlziI9+EHHR5wQCet 26Y+kEn3ik+Zdq6a12rjcdkWM3UUd8i2IKqmLn8StXGu1lFnIGpfiWXUyDj9+QTMGgc9 tRkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:cc:to :subject; bh=wk0d8AEY+POTJB7SZB5eJD6w2MCiK92q0Y9TRcFwvpk=; b=WEHFzdTalYw7ih4ySlLGLrLdF+OqQyQHIsXQqdpvynFBz4Cx49WhcRyO/ekHHSvN4t 2yDZYV2bzevHaxgSB56y0/NUKtQUWpQK5Kc3qW3DB8aDGutUc5YGGPQw8zxsaS4rz07c qHQeI3M4baPjZNwjGTSURBYXVxnGc9irbVauoMkOmOuU9daf3WOxEpC+uRQ8+TzXb96I 0BAngMV15jNzZuGnXxrT/sc2o8hiZTRo6EFeiKpnj+Y/oToHjQoEemS4sfu5jEPNNM31 KWYN7Swt299Vwas95S8ahiZjD9U9epfB9/wuKxwO8RrQTjkp5VtTDx56yObHwilhdoVo CciA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w10si8563534oti.165.2020.03.23.23.51.48; Mon, 23 Mar 2020 23:52:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727439AbgCXGu2 (ORCPT + 99 others); Tue, 24 Mar 2020 02:50:28 -0400 Received: from out30-54.freemail.mail.aliyun.com ([115.124.30.54]:39265 "EHLO out30-54.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727367AbgCXGu1 (ORCPT ); Tue, 24 Mar 2020 02:50:27 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R151e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01358;MF=alex.shi@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0TtUkIEH_1585032618; Received: from IT-FVFX43SYHV2H.local(mailfrom:alex.shi@linux.alibaba.com fp:SMTPD_---0TtUkIEH_1585032618) by smtp.aliyun-inc.com(127.0.0.1); Tue, 24 Mar 2020 14:50:19 +0800 Subject: Re: [PATCH v4] Translate debugfs.txt into Chinese and link it to the index. To: Chucheng Luo , Harry Wei , Jonathan Corbet , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: kernel@vivo.com References: <20200323085348.15121-1-luochucheng@vivo.com> From: Alex Shi Message-ID: Date: Tue, 24 Mar 2020 14:49:58 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200323085348.15121-1-luochucheng@vivo.com> Content-Type: text/plain; charset=gbk Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Did you use 'git am' try to apply your patch before sent it out? fatal: cannot convert from y to UTF-8 ?? 2020/3/23 ????4:53, Chucheng Luo д??: > Translate Documentation/filesystems/debugfs.txt into Chinese. > > Signed-off-by: Chucheng Luo > --- > .../zh_CN/filesystems/debugfs.rst | 253 ++++++++++++++++++ > .../translations/zh_CN/filesystems/index.rst | 21 ++ > Documentation/translations/zh_CN/index.rst | 2 + > 3 files changed, 276 insertions(+) > create mode 100644 Documentation/translations/zh_CN/filesystems/debugfs.rst > create mode 100644 Documentation/translations/zh_CN/filesystems/index.rst > > diff --git a/Documentation/translations/zh_CN/filesystems/debugfs.rst b/Documentation/translations/zh_CN/filesystems/debugfs.rst > new file mode 100644 > index 000000000000..9c7012c4b48a > --- /dev/null > +++ b/Documentation/translations/zh_CN/filesystems/debugfs.rst > @@ -0,0 +1,253 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +.. warning:: > + ???ļ???Ä¿????Ϊ?????Ķ??߸??????Ķ??????⣬????????Ϊһ????Ö§?? ???Ë£? > + ???????Ô´??ļ????κ??????????£????ȳ??Ô¸???ԭʼӢ???ļ??? > + > +.. note:: > + ?????????Ö±??ĵ???ԭʼ?ļ????κβ?ͬ?????з??????⣬????ϵ???ļ??????ߣ? > + ?????????Þ³??ɵİ??????? We have a disclaimer-zh_CN.rst, please use it. > + > +:Original: :ref:`Documentation/filesystems/debugfs.txt` > + it's broken, no space between 'debugfs.txt' and . > +========================== > +Debugfs > +========================== too many '=' here. > + > +???? > +:: > + > + ???Ä°?ά???ߣ? ?Þ³??? Chucheng Luo > + ???Ä°æ·­???ߣ? ?Þ³??? Chucheng Luo > + ???Ä°?У????: ?Þ³??? Chucheng Luo > + > + > + > + > +??Ȩ????2020 ?Þ³??? > + > +???? > +==== no introduce in original file, please follow it. > + > +Debugfs???ں˿?????Ô±???û??Õ¼???È¡??Ï¢?ļ????????? > +??/proc??ͬ??procÖ»?ṩ??????Ï¢?? > +Ò²????sysfs,?????ϸ??Ä¡?ÿ???ļ?Ò»??Öµ???Ĺ????? > +debugfs????û?й???,??????Ô±????????????????????Òª???κ???Ï¢?? > +debugfs?ļ?ϵͳҲ?????????ȶ???ABI?Ó¿Ú¡? > +???????Ͻ???debugfs?????ļ???ʱ??û???κ?Ô¼???? > +????[1]ʵ????????????????ô?????? > +??ʹ??debugfs?Ó¿Ú£?Ò²???ø?????Òª????????, > +?????????Ö½Ó¿Ú²??ä¡£ Again 80 chars for one line! > + > +?÷? > +==== > + > +Debugfsͨ??ʹ?????????î°²×°:: > + > + mount -t debugfs none /sys/kernel/debug > + > +??????Ч??/etc/fstab?У??? > +debugfs??Ŀ¼Ĭ?Ͻ?????root?û????Ê¡? > +Òª???Ķ??ļ????Ä·??Ê£???ʹ?á? uid?????? gid???Í¡? mode??????Ñ¡?î¡£ > + > +??×¢?⣬debugfs API??????GPLЭ?éµ¼????Ä£?é¡£ > + > +ʹ??debugfs?Ä´???Ó¦?????? > +È»?????????Ç´???????Ò»??Ŀ¼??????Ò»??debugfs?ļ?:: > + > + struct dentry *debugfs_create_dir(const char *name, struct dentry *parent); > + > +?????ɹ????˵??ý???Ö¸???ĸ?Ŀ¼?´???Ò»????Ϊname??Ŀ¼?? > +????parent????Ϊ?Õ£???????debugfs??Ŀ¼?д????? > +????Ŀ¼?ɹ?ʱ??????Öµ??Ò»??Ö¸??dentry?á¹¹????Ö¸?ë¡£ > +??dentry?á¹¹????Ö¸??????????Ŀ¼?д????ļ????Ô¼??????????????ɾ????? > +ERR_PTR??-ERROR??????Öµ???????í¡£ > +????????ERR_PTR??-ENODEV???????????Úº? > +????û??debugfsÖ§?Öµ??????¹????Ä£????????????????????????á? > + > +??debugfsĿ¼?д????ļ?????ͨ?÷?????:: > + > + struct dentry *debugfs_create_file(const char *name, umode_t mode, > + struct dentry *parent, void *data, > + const struct file_operations *fops); > + > +?????name??Òª???????ļ??????Æ£?mode?????Ë·??? > +?ļ?Ó¦???е?Ȩ?Þ£?parentÖ¸??Ó¦?ñ????ļ???Ŀ¼ > +??data???æ´¢?Ú²?????inode?á¹¹????i_private?Ö¶??? > +????fops??Ò»???ļ?????????????Щ?????? > +ʵ???ļ??????ľ?????Ϊ?????Ù£?read??????/??write???? > +????Ó¦?ṩ?????????Ô¸?????Òª???????Ú¡?ͬ???Ä£? > +????Öµ????Ö¸???????ļ???dentryÖ¸?룬 > +????ʱ????ERR_PTR??-ERROR????ϵͳ??Ö§??debugfsʱ????ֵΪERR_PTR??-ENODEV???? > + > +????Ò»????ʼ??С???ļ???????ʹ?????º???????:: > + > + struct dentry *debugfs_create_file_size(const char *name, umode_t mode, > + struct dentry *parent, void *data, > + const struct file_operations *fops, > + loff_t file_size); > + > +file_size?dz?ʼ?ļ???С????????????????debugfs_create_file????ͬ?? > + > +???????????£?û??Òª?Ô¼?È¥????Ò»???ļ?????; > +????һЩ??????????,debugfs?????ṩ???????????????? > +????????????Öµ???ļ?????ʹ???????κ?Ò»?î´´??:: > + > + void debugfs_create_u8(const char *name, umode_t mode, > + struct dentry *parent, u8 *value); > + void debugfs_create_u16(const char *name, umode_t mode, > + struct dentry *parent, u16 *value); > + struct dentry *debugfs_create_u32(const char *name, umode_t mode, > + struct dentry *parent, u32 *value); > + void debugfs_create_u64(const char *name, umode_t mode, > + struct dentry *parent, u64 *value); > + > +??Щ?ļ?Ö§?Ö¶?È¡??д??????Öµ?? > +????ij???ļ???Ö§??д?룬ֻ????????Òª????mode????λ?? > +??Щ?ļ??е?Öµ??Ê®???Ʊ?ʾ????????Ҫʹ??Ê®?????Æ£? > +????ʹ?????º???????:: > + > + void debugfs_create_x8(const char *name, umode_t mode, > + struct dentry *parent, u8 *value); > + void debugfs_create_x16(const char *name, umode_t mode, > + struct dentry *parent, u16 *value); > + void debugfs_create_x32(const char *name, umode_t mode, > + struct dentry *parent, u32 *value); > + void debugfs_create_x64(const char *name, umode_t mode, > + struct dentry *parent, u64 *value); > + > +??Щ????Ö»???Ú¿?????Ô±Öª??????Öµ?Ä´?С??ʱ???????á? > +ijЩ?????????Ú²?ͬ?ļܹ????в?ͬ?Ä¿??È£???????ʹ??????????Щ???Ó¡? > +???????????????¿???ʹ?????º???:: > + > + void debugfs_create_size_t(const char *name, umode_t mode, > + struct dentry *parent, size_t *value); > + > +???????Ï£??˺?????????Ò»??debugfs?ļ?????ʾ????Ϊsize_t?ı????? > + > +ͬ???Ø£?Ò²?е????Þ·??ų????ͱ????ĺ??????Ö±???Ê®???ƺ?Ê®?????Ʊ?ʾ????:: > + > + struct dentry *debugfs_create_ulong(const char *name, umode_t mode, > + struct dentry *parent, > + unsigned long *value); > + void debugfs_create_xul(const char *name, umode_t mode, > + struct dentry *parent, unsigned long *value); > + > +????Öµ????ͨ?????·?ʽ??????debugfs??:: > + > + struct dentry *debugfs_create_bool(const char *name, umode_t mode, > + struct dentry *parent, bool *value); > + > + > +??È¡?????ļ???????Y?????Ú·???Öµ????N?????????з??? > +д????ʱ??????Ö»???Ü´?д??Сдֵ??1??0???κ????????뽫?????Ô¡? > + > +ͬ????atomic_t???͵?ÖµÒ²???Ô·?????debugfs??:: > + > + void debugfs_create_atomic_t(const char *name, umode_t mode, > + struct dentry *parent, atomic_t *value) > + > +??È¡???ļ???????atomic_tÖµ??д?????ļ???????atomic_tÖµ?? > + > +??Ò»??Ñ¡????ͨ?????½ṹ???ͺ???????Ò»???????????????Ý¿?:: > + > + struct debugfs_blob_wrapper { > + void *data; > + unsigned long size; > + }; > + > + struct dentry *debugfs_create_blob(const char *name, umode_t mode, > + struct dentry *parent, > + struct debugfs_blob_wrapper *blob); > + > +??È¡???ļ?????????Ö¸??Ö¸??debugfs_blob_wrapper?á¹¹???????Ý¡? > +һЩ????ʹ?á?blobs????Ϊһ?Ö·??ؼ??У???̬????ʽ???ı??ļ????????? > +?????????????Úµ???????????Ï¢?????ƺ?????????û???κδ??????????? > +??×¢?⣬ʹ??debugfs_create_blob???????î´´?????????ļ???Ö»???Ä¡? > + > +??????Ҫת??Ò»???Ä´????飨?Ú¿????????о???????ô???? > +?????????ĵ??Ô´????????Ï´????????С? > +Debugfs?ṩ??????????Ò»?????Ú´??????Ä´????ļ??? > +??Ò»????Ò»???Ä´?????????Ò»??˳???ļ???:: > + > + struct debugfs_reg32 { > + char *name; > + unsigned long offset; > + }; > + > + struct debugfs_regset32 { > + struct debugfs_reg32 *regs; > + int nregs; > + void __iomem *base; > + }; > + > + struct dentry *debugfs_create_regset32(const char *name, umode_t mode, > + struct dentry *parent, > + struct debugfs_regset32 *regset); > + > + void debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, > + int nregs, void __iomem *base, char *prefix); > + > +??base??????????Ϊ0????????????Ҫʹ??__stringify???? > +reg32???飬ʵ???????????Ä´??????Æ£??꣩?ǼĴ??????? > +??Ö·?ϵ??Ö½?Æ«?????? > + > +????Òª??debugfs??ת??u32???飬????ʹ?????º????????ļ?:: > + > + void debugfs_create_u32_array(const char *name, umode_t mode, > + struct dentry *parent, > + u32 *array, u32 elements); > + > +??array???????ṩ???Ý£?????elements??????Ϊ > +??????Ôª?ص???????×¢?⣺???é´´????????????С?Þ·????Ä¡? > + > +??Ò»???????????????豸???ص?seq_file:: > + > + struct dentry *debugfs_create_devm_seqfile(struct device *dev, > + const char *name, > + struct dentry *parent, > + int (*read_fn)(struct seq_file *s, > + void *data)); > + > +??dev????????????debugfs?ļ????ص??豸?????? > +??read_fn????Ò»??????Ö¸?룬?????????Ú´?Ó¡seq_file???ݵ?ʱ?????ص??? > + > +????һЩ??????????Ŀ¼?ĺ???:: > + > + struct dentry *debugfs_rename(struct dentry *old_dir, > + struct dentry *old_dentry, > + struct dentry *new_dir, > + const char *new_name); > + > + struct dentry *debugfs_create_symlink(const char *name, > + struct dentry *parent, > + const char *target); > + > +????debugfs_rename()??Ϊ???е?debugfs?ļ????????? > +????ͬʱ?л?Ŀ¼?? new_name????????֮ǰ???Ü´??Ú£? > +????ֵΪold_dentry?????а??????µ???Ï¢?? > +????ʹ??debugfs_create_symlink???????????????Ó¡? > + > +????debugfs?û????뿼?ǵ?Ò»?????Ç£? > +debugfs?????Ô¶??????????д??????κ?Ŀ¼?? > +????Ò»??Ä£???Ú²???ʽɾ??debugfsĿ¼????????ж??Ä£?飬 > +?????????????ܶ?Ò°Ö¸?룬?Ó¶?????ϵͳ???ȶ??? > +???Ë£?????debugfs?û?-????????Щ??????Ϊģ?é¹¹?????û?-???? > +??Ä£??unload??ʱ??×¼??ɾ???Ú´Ë´??????????ļ???Ŀ¼?? > +Ò»???ļ?????ͨ?????·?ʽɾ??:: > + > + void debugfs_remove(struct dentry *dentry); > + > +dentryÖµ????ΪNULL??????Öµ?????????????£????????κ??ļ???ɾ???? > + > +?ܾ???Ç°???ں˿?????ʹ??debugfsʱ??Òª??¼ > +???Ç´?????ÿ??dentryÖ¸?룬?Ô±??????????ļ??????Ô±????????? > +???Ç£?????debugfs?û??ܵ??????º????ݹ?????֮ǰ???????ļ?:: > + > + void debugfs_remove_recursive(struct dentry *dentry); > + > +????????Ó¦????Ŀ¼??dentry???ݸ????Ϻ????? > +????Ŀ¼?µ????????νṹ???ᱻɾ???? > + > +×¢?⣺ no 'attention' in original file. > +[1] http://lwn.net/Articles/309298/ > diff --git a/Documentation/translations/zh_CN/filesystems/index.rst b/Documentation/translations/zh_CN/filesystems/index.rst > new file mode 100644 > index 000000000000..3a7f5233767d > --- /dev/null > +++ b/Documentation/translations/zh_CN/filesystems/index.rst > @@ -0,0 +1,21 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +=============================== > +Linux ?Úº??е??ļ?ϵͳ > +=============================== > + > +????????????Ö¸????ijһ?콫???ṩ????Linux ?????ļ?ϵͳ(VFS)?????ι????? > +??????Ï¢???Ô¼?VFS???µĵ??ļ?ϵͳ??ĿǰΪֹ???????ṩ????????Ï¢?? > + > + > + > + > +?ļ?ϵͳ > +=========== > + > +?????ļ?ϵͳʵ?Öµ??ĵ?. > + > +.. toctree:: > + :maxdepth: 2 > + > + debugfs > diff --git a/Documentation/translations/zh_CN/index.rst b/Documentation/translations/zh_CN/index.rst > index d3165535ec9e..770f886d081c 100644 > --- a/Documentation/translations/zh_CN/index.rst > +++ b/Documentation/translations/zh_CN/index.rst > @@ -1,3 +1,4 @@ > +.. SPDX-License-Identifier: GPL-2.0 > .. raw:: latex > > \renewcommand\thesection* > @@ -14,6 +15,7 @@ > :maxdepth: 2 > > process/index > + filesystems/index > > Ŀ¼?ͱ??? > ---------- >