~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/doc-guide/parse-headers.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/doc-guide/parse-headers.rst (Version linux-6.12-rc7) and /Documentation/translations/zh_CN/doc-guide/parse-headers.rst (Version linux-6.9.12)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2                                                     2 
  3 .. include:: ../disclaimer-zh_CN.rst                3 .. include:: ../disclaimer-zh_CN.rst
  4                                                     4 
  5 :Original: Documentation/doc-guide/parse-heade      5 :Original: Documentation/doc-guide/parse-headers.rst
  6                                                     6 
  7 :译者: 吴想成 Wu XiangCheng <bobwxc@email.      7 :译者: 吴想成 Wu XiangCheng <bobwxc@email.cn>
  8                                                     8 
  9 =====================                               9 =====================
 10 包含用户空间API头文件                     10 包含用户空间API头文件
 11 =====================                              11 =====================
 12                                                    12 
 13 有时,为了描述用户空间API并在代     13 有时,为了描述用户空间API并在代码和文档之间生成交叉引用,需要包含头文件和示例
 14 C代码。为用户空间API文件添加交叉     14 C代码。为用户空间API文件添加交叉引用还有一个好处:如果在文档中找不到相应符号,
 15 Sphinx将生成警告。这有助于保持用     15 Sphinx将生成警告。这有助于保持用户空间API文档与内核更改同步。
 16 :ref:`parse_headers.pl <parse_headers_zh>` 提     16 :ref:`parse_headers.pl <parse_headers_zh>` 提供了生成此类交叉引用的一种方法。
 17 在构建文档时,必须通过Makefile调     17 在构建文档时,必须通过Makefile调用它。有关如何在内核树中使用它的示例,请参阅
 18 ``Documentation/userspace-api/media/Makefile``     18 ``Documentation/userspace-api/media/Makefile`` 。
 19                                                    19 
 20 .. _parse_headers_zh:                              20 .. _parse_headers_zh:
 21                                                    21 
 22 parse_headers.pl                                   22 parse_headers.pl
 23 ----------------                                   23 ----------------
 24                                                    24 
 25 脚本名称                                       25 脚本名称
 26 ~~~~~~~~                                           26 ~~~~~~~~
 27                                                    27 
 28                                                    28 
 29 parse_headers.pl——解析一个C文件,     29 parse_headers.pl——解析一个C文件,识别函数、结构体、枚举、定义并对Sphinx文档
 30 创建交叉引用。                              30 创建交叉引用。
 31                                                    31 
 32                                                    32 
 33 用法概要                                       33 用法概要
 34 ~~~~~~~~                                           34 ~~~~~~~~
 35                                                    35 
 36                                                    36 
 37 \ **parse_headers.pl**\  [<选项>] <C文件>      37 \ **parse_headers.pl**\  [<选项>] <C文件> <输出文件> [<例外文件>]
 38                                                    38 
 39 <选项> 可以是: --debug, --help 或 --us     39 <选项> 可以是: --debug, --help 或 --usage 。
 40                                                    40 
 41                                                    41 
 42 选项                                             42 选项
 43 ~~~~                                               43 ~~~~
 44                                                    44 
 45                                                    45 
 46                                                    46 
 47 \ **--debug**\                                     47 \ **--debug**\
 48                                                    48 
 49  开启脚本详细模式,在调试时很有     49  开启脚本详细模式,在调试时很有用。
 50                                                    50 
 51                                                    51 
 52 \ **--usage**\                                     52 \ **--usage**\
 53                                                    53 
 54  打印简短的帮助信息并退出。           54  打印简短的帮助信息并退出。
 55                                                    55 
 56                                                    56 
 57                                                    57 
 58 \ **--help**\                                      58 \ **--help**\
 59                                                    59 
 60  打印更详细的帮助信息并退出。        60  打印更详细的帮助信息并退出。
 61                                                    61 
 62                                                    62 
 63 说明                                             63 说明
 64 ~~~~                                               64 ~~~~
 65                                                    65 
 66 通过C头文件或源文件(<C文件>)中     66 通过C头文件或源文件(<C文件>)中为描述API的文档编写的带交叉引用的 ..预格式化
 67 文本 块将文件转换成重构文本(RST     67 文本 块将文件转换成重构文本(RST)。它接受一个可选的<例外文件>,其中描述了
 68 哪些元素将被忽略或指向非默认引     68 哪些元素将被忽略或指向非默认引用。
 69                                                    69 
 70 输出被写入到<输出文件>。                70 输出被写入到<输出文件>。
 71                                                    71 
 72 它能够识别定义、函数、结构体、t     72 它能够识别定义、函数、结构体、typedef、枚举和枚举符号,并为它们创建交叉引用。
 73 它还能够区分用于指定Linux ioctl的 `     73 它还能够区分用于指定Linux ioctl的 ``#define`` 。
 74                                                    74 
 75 <例外文件> 包含两种类型的语句:      75 <例外文件> 包含两种类型的语句: \ **ignore**\  或 \ **replace**\ .
 76                                                    76 
 77 ignore标记的语法为:                        77 ignore标记的语法为:
 78                                                    78 
 79                                                    79 
 80 ignore \ **type**\  \ **name**\                    80 ignore \ **type**\  \ **name**\
 81                                                    81 
 82 The \ **ignore**\  意味着它不会为类型     82 The \ **ignore**\  意味着它不会为类型为 \ **type**\ 的 \ **name**\ 符号生成
 83 交叉引用。                                    83 交叉引用。
 84                                                    84 
 85                                                    85 
 86 replace标记的语法为:                       86 replace标记的语法为:
 87                                                    87 
 88                                                    88 
 89 replace \ **type**\  \ **name**\  \ **new_valu     89 replace \ **type**\  \ **name**\  \ **new_value**\
 90                                                    90 
 91 The \ **replace**\  味着它将为 \ **type**     91 The \ **replace**\  味着它将为 \ **type**\ 类型的 \ **name**\ 符号生成交叉引
 92 用,但是它将使用 \ **new_value**\ 来     92 用,但是它将使用 \ **new_value**\ 来取代默认的替换规则。
 93                                                    93 
 94                                                    94 
 95 这两种语句中, \ **type**\ 可以是以     95 这两种语句中, \ **type**\ 可以是以下任一项:
 96                                                    96 
 97                                                    97 
 98 \ **ioctl**\                                       98 \ **ioctl**\
 99                                                    99 
100  ignore 或 replace 语句应用于ioctl定义    100  ignore 或 replace 语句应用于ioctl定义,如:
101                                                   101 
102  #define        VIDIOC_DBG_S_REGISTER    _IOW(    102  #define        VIDIOC_DBG_S_REGISTER    _IOW('V', 79, struct v4l2_dbg_register)
103                                                   103 
104                                                   104 
105                                                   105 
106 \ **define**\                                     106 \ **define**\
107                                                   107 
108  ignore 或 replace 语句应用于在<C文件    108  ignore 或 replace 语句应用于在<C文件>中找到的任何其他 ``#define`` 。
109                                                   109 
110                                                   110 
111                                                   111 
112 \ **typedef**\                                    112 \ **typedef**\
113                                                   113 
114  ignore 和 replace 语句应用于<C文件>    114  ignore 和 replace 语句应用于<C文件>中的typedef语句。
115                                                   115 
116                                                   116 
117                                                   117 
118 \ **struct**\                                     118 \ **struct**\
119                                                   119 
120  ignore 和 replace 语句应用于<C文件>    120  ignore 和 replace 语句应用于<C文件>中的结构体名称语句。
121                                                   121 
122                                                   122 
123                                                   123 
124 \ **enum**\                                       124 \ **enum**\
125                                                   125 
126  ignore 和 replace 语句应用于<C文件>    126  ignore 和 replace 语句应用于<C文件>中的枚举名称语句。
127                                                   127 
128                                                   128 
129                                                   129 
130 \ **symbol**\                                     130 \ **symbol**\
131                                                   131 
132  ignore 和 replace 语句应用于<C文件>    132  ignore 和 replace 语句应用于<C文件>中的枚举值名称语句。
133                                                   133 
134  replace语句中, \ **new_value**\  会自    134  replace语句中, \ **new_value**\  会自动使用 \ **typedef**\ , \ **enum**\
135  和 \ **struct**\ 类型的 :c:type: 引用    135  和 \ **struct**\ 类型的 :c:type: 引用;以及 \ **ioctl**\ , \ **define**\  和
136  \ **symbol**\ 类型的  :ref: 。引用的    136  \ **symbol**\ 类型的  :ref: 。引用的类型也可以在replace语句中显式定义。
137                                                   137 
138                                                   138 
139 示例                                            139 示例
140 ~~~~                                              140 ~~~~
141                                                   141 
142                                                   142 
143 ignore define _VIDEODEV2_H                        143 ignore define _VIDEODEV2_H
144                                                   144 
145                                                   145 
146 忽略<C文件>中的 #define _VIDEODEV2_H 。    146 忽略<C文件>中的 #define _VIDEODEV2_H 。
147                                                   147 
148 ignore symbol PRIVATE                             148 ignore symbol PRIVATE
149                                                   149 
150                                                   150 
151 如下结构体:                                151 如下结构体:
152                                                   152 
153 enum foo { BAR1, BAR2, PRIVATE };                 153 enum foo { BAR1, BAR2, PRIVATE };
154                                                   154 
155 不会为 \ **PRIVATE**\ 生成交叉引用。    155 不会为 \ **PRIVATE**\ 生成交叉引用。
156                                                   156 
157 replace symbol BAR1 :c:type:\`foo\`               157 replace symbol BAR1 :c:type:\`foo\`
158 replace symbol BAR2 :c:type:\`foo\`               158 replace symbol BAR2 :c:type:\`foo\`
159                                                   159 
160                                                   160 
161 如下结构体:                                161 如下结构体:
162                                                   162 
163 enum foo { BAR1, BAR2, PRIVATE };                 163 enum foo { BAR1, BAR2, PRIVATE };
164                                                   164 
165 它会让BAR1和BAR2枚举符号交叉引用C    165 它会让BAR1和BAR2枚举符号交叉引用C域中的foo符号。
166                                                   166 
167                                                   167 
168                                                   168 
169 缺陷                                            169 缺陷
170 ~~~~                                              170 ~~~~
171                                                   171 
172                                                   172 
173 请向Mauro Carvalho Chehab <mchehab@kernel.org    173 请向Mauro Carvalho Chehab <mchehab@kernel.org>报告有关缺陷。
174                                                   174 
175 中文翻译问题请找中文翻译维护者    175 中文翻译问题请找中文翻译维护者。
176                                                   176 
177                                                   177 
178 版权                                            178 版权
179 ~~~~                                              179 ~~~~
180                                                   180 
181                                                   181 
182 版权所有 (c) 2016 Mauro Carvalho Chehab <mc    182 版权所有 (c) 2016 Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
183                                                   183 
184 许可证 GPLv2:GNU GPL version 2 <https://g    184 许可证 GPLv2:GNU GPL version 2 <https://gnu.org/licenses/gpl.html>
185                                                   185 
186 这是自由软件:你可以自由地修改    186 这是自由软件:你可以自由地修改和重新发布它。
187 在法律允许的范围内,**不提供任    187 在法律允许的范围内,**不提供任何保证**。
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php