€•‰‹Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ+/translations/zh_CN/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/doc-guide/parse-headers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒIncluding uAPI header files”h]”hŒIncluding uAPI header files”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒE/var/lib/git/docbuild/linux/Documentation/doc-guide/parse-headers.rst”h´KubhŒ paragraph”“”)�”}”(hX¯Sometimes, it is useful to include header files and C example codes in order to describe the userspace API and to generate cross-references between the code and the documentation. Adding cross-references for userspace API files has an additional advantage: Sphinx will generate warnings if a symbol is not found at the documentation. That helps to keep the uAPI documentation in sync with the Kernel changes. The :ref:`parse_headers.py ` provides a way to generate such cross-references. It has to be called via Makefile, while building the documentation. Please see ``Documentation/userspace-api/media/Makefile`` for an example about how to use it inside the Kernel tree.”h]”(hX�Sometimes, it is useful to include header files and C example codes in order to describe the userspace API and to generate cross-references between the code and the documentation. Adding cross-references for userspace API files has an additional advantage: Sphinx will generate warnings if a symbol is not found at the documentation. That helps to keep the uAPI documentation in sync with the Kernel changes. The ”…”�”}”(hhÍh²hh³Nh´Nubh)�”}”(hŒ':ref:`parse_headers.py `”h]”hŒinline”“”)�”}”(hh×h]”hŒparse_headers.py”…”�”}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1hÙhhÕubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œdoc-guide/parse-headers”Œ refdomain”hæŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ parse_headers”uh1hh³hÊh´KhhÍubhŒ‚ provides a way to generate such cross-references. It has to be called via Makefile, while building the documentation. Please see ”…”�”}”(hhÍh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ.``Documentation/userspace-api/media/Makefile``”h]”hŒ*Documentation/userspace-api/media/Makefile”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhhÍubhŒ; for an example about how to use it inside the Kernel tree.”…”�”}”(hhÍh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒtarget”“”)�”}”(hŒ.. _parse_headers:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ parse-headers”uh1jh´Khh·h²hh³hÊubh¶)�”}”(hhh]”(h»)�”}”(hŒtools/docs/parse_headers.py”h]”hŒtools/docs/parse_headers.py”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj&h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒNAME”h]”hŒNAME”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj7h²hh³hÊh´KubhÌ)�”}”(hŒ‹parse_headers.py - parse a C file, in order to identify functions, structs, enums and defines and create cross-references to a Sphinx book.”h]”hŒ‹parse_headers.py - parse a C file, in order to identify functions, structs, enums and defines and create cross-references to a Sphinx book.”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj7h²hubeh}”(h]”Œname”ah ]”h"]”Œname”ah$]”h&]”uh1hµhj&h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒUSAGE”h]”hŒUSAGE”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj^h²hh³hÊh´KubhÌ)�”}”(hŒGparse-headers.py [-h] [-d] [-t] ``FILE_IN`` ``FILE_OUT`` ``FILE_RULES``”h]”(hŒ parse-headers.py [-h] [-d] [-t] ”…”�”}”(hjoh²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_IN``”h]”hŒFILE_IN”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjoubhŒ ”…”�”}”(hjoh²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_OUT``”h]”hŒFILE_OUT”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjoubhŒ ”…”�”}”hjosbhÿ)�”}”(hŒ``FILE_RULES``”h]”hŒ FILE_RULES”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj^h²hubeh}”(h]”Œusage”ah ]”h"]”Œusage”ah$]”h&]”uh1hµhj&h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒSYNOPSIS”h]”hŒSYNOPSIS”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj·h²hh³hÊh´K!ubhÌ)�”}”(hXDConverts a C header or source file ``FILE_IN`` into a ReStructured Text included via ..parsed-literal block with cross-references for the documentation files that describe the API. It accepts an optional ``FILE_RULES`` file to describe what elements will be either ignored or be pointed to a non-default reference type/name.”h]”(hŒ#Converts a C header or source file ”…”�”}”(hjÈh²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_IN``”h]”hŒFILE_IN”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjÈubhŒž into a ReStructured Text included via ..parsed-literal block with cross-references for the documentation files that describe the API. It accepts an optional ”…”�”}”(hjÈh²hh³Nh´Nubhÿ)�”}”(hŒ``FILE_RULES``”h]”hŒ FILE_RULES”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjÈubhŒj file to describe what elements will be either ignored or be pointed to a non-default reference type/name.”…”�”}”(hjÈh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hj·h²hubhÌ)�”}”(hŒ&The output is written at ``FILE_OUT``.”h]”(hŒThe output is written at ”…”�”}”(hjúh²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_OUT``”h]”hŒFILE_OUT”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjúubhŒ.”…”�”}”(hjúh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hj·h²hubhÌ)�”}”(hŒŠIt is capable of identifying ``define``, ``struct``, ``typedef``, ``enum`` and enum ``symbol``, creating cross-references for all of them.”h]”(hŒIt is capable of identifying ”…”�”}”(hjh²hh³Nh´Nubhÿ)�”}”(hŒ ``define``”h]”hŒdefine”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjubhŒ, ”…”�”}”(hjh²hh³Nh´Nubhÿ)�”}”(hŒ ``struct``”h]”hŒstruct”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjubhŒ, ”…”�”}”hjsbhÿ)�”}”(hŒ ``typedef``”h]”hŒtypedef”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjubhŒ, ”…”�”}”hjsbhÿ)�”}”(hŒ``enum``”h]”hŒenum”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjubhŒ and enum ”…”�”}”(hjh²hh³Nh´Nubhÿ)�”}”(hŒ ``symbol``”h]”hŒsymbol”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjubhŒ,, creating cross-references for all of them.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hj·h²hubhÌ)�”}”(hŒtIt is also capable of distinguishing ``#define`` used for specifying Linux-specific macros used to define ``ioctl``.”h]”(hŒ%It is also capable of distinguishing ”…”�”}”(hj‚h²hh³Nh´Nubhÿ)�”}”(hŒ ``#define``”h]”hŒ#define”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj‚ubhŒ: used for specifying Linux-specific macros used to define ”…”�”}”(hj‚h²hh³Nh´Nubhÿ)�”}”(hŒ ``ioctl``”h]”hŒioctl”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj‚ubhŒ.”…”�”}”(hj‚h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K.hj·h²hubhÌ)�”}”(hŒ:The optional ``FILE_RULES`` contains a set of rules like::”h]”(hŒ The optional ”…”�”}”(hj´h²hh³Nh´Nubhÿ)�”}”(hŒ``FILE_RULES``”h]”hŒ FILE_RULES”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj´ubhŒ contains a set of rules like:”…”�”}”(hj´h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hj·h²hubhŒ literal_block”“”)�”}”(hŒ’ignore ioctl VIDIOC_ENUM_FMT replace ioctl VIDIOC_DQBUF vidioc_qbuf replace define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ :c:type:`v4l2_event_motion_det`”h]”hŒ’ignore ioctl VIDIOC_ENUM_FMT replace ioctl VIDIOC_DQBUF vidioc_qbuf replace define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ :c:type:`v4l2_event_motion_det`”…”�”}”hjÖsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jÔh³hÊh´K3hj·h²hubeh}”(h]”Œsynopsis”ah ]”h"]”Œsynopsis”ah$]”h&]”uh1hµhj&h²hh³hÊh´K!ubh¶)�”}”(hhh]”(h»)�”}”(hŒPOSITIONAL ARGUMENTS”h]”hŒPOSITIONAL ARGUMENTS”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjîh²hh³hÊh´K8ubhŒ block_quote”“”)�”}”(hŒn``FILE_IN`` Input C file ``FILE_OUT`` Output RST file ``FILE_RULES`` Exceptions file (optional) ”h]”hŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ``FILE_IN`` Input C file ”h]”(hŒterm”“”)�”}”(hŒ ``FILE_IN``”h]”hÿ)�”}”(hjh]”hŒFILE_IN”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K;hj ubhŒ definition”“”)�”}”(hhh]”hÌ)�”}”(hŒ Input C file”h]”hŒ Input C file”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K;hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K;hjubj )�”}”(hŒ``FILE_OUT`` Output RST file ”h]”(j)�”}”(hŒ ``FILE_OUT``”h]”hÿ)�”}”(hjNh]”hŒFILE_OUT”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K>hjHubj*)�”}”(hhh]”hÌ)�”}”(hŒOutput RST file”h]”hŒOutput RST file”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K>hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K>hjubj )�”}”(hŒ*``FILE_RULES`` Exceptions file (optional) ”h]”(j)�”}”(hŒ``FILE_RULES``”h]”hÿ)�”}”(hj†h]”hŒ FILE_RULES”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KAhj€ubj*)�”}”(hhh]”hÌ)�”}”(hŒExceptions file (optional)”h]”hŒExceptions file (optional)”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KAhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´KAhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿh³hÊh´K:hjîh²hubeh}”(h]”Œpositional-arguments”ah ]”h"]”Œpositional arguments”ah$]”h&]”uh1hµhj&h²hh³hÊh´K8ubh¶)�”}”(hhh]”(h»)�”}”(hŒOPTIONS”h]”hŒOPTIONS”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÌh²hh³hÊh´KDubj)�”}”(hŒÔ``-h``, ``--help`` show a help message and exit ``-d``, ``--debug`` Increase debug level. Can be used multiple times ``-t``, ``--toc`` instead of a literal block, outputs a TOC table at the RST file ”h]”j)�”}”(hhh]”(j )�”}”(hŒ/``-h``, ``--help`` show a help message and exit”h]”(j)�”}”(hŒ``-h``, ``--help``”h]”(hÿ)�”}”(hŒ``-h``”h]”hŒ-h”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjèubhŒ, ”…”�”}”(hjèh²hh³Nh´Nubhÿ)�”}”(hŒ ``--help``”h]”hŒ--help”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KFhjäubj*)�”}”(hhh]”hÌ)�”}”(hŒshow a help message and exit”h]”hŒshow a help message and exit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KGhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´KFhjáubj )�”}”(hŒD``-d``, ``--debug`` Increase debug level. Can be used multiple times”h]”(j)�”}”(hŒ``-d``, ``--debug``”h]”(hÿ)�”}”(hŒ``-d``”h]”hŒ-d”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj3ubhŒ, ”…”�”}”(hj3h²hh³Nh´Nubhÿ)�”}”(hŒ ``--debug``”h]”hŒ--debug”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KHhj/ubj*)�”}”(hhh]”hÌ)�”}”(hŒ0Increase debug level. Can be used multiple times”h]”hŒ0Increase debug level. Can be used multiple times”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KIhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´KHhjáubj )�”}”(hŒS``-t``, ``--toc`` instead of a literal block, outputs a TOC table at the RST file ”h]”(j)�”}”(hŒ``-t``, ``--toc``”h]”(hÿ)�”}”(hŒ``-t``”h]”hŒ-t”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj~ubhŒ, ”…”�”}”(hj~h²hh³Nh´Nubhÿ)�”}”(hŒ ``--toc``”h]”hŒ--toc”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KLhjzubj*)�”}”(hhh]”hÌ)�”}”(hŒ?instead of a literal block, outputs a TOC table at the RST file”h]”hŒ?instead of a literal block, outputs a TOC table at the RST file”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KKhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´KLhjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿh³hÊh´KFhjÌh²hubeh}”(h]”Œoptions”ah ]”h"]”Œoptions”ah$]”h&]”uh1hµhj&h²hh³hÊh´KDubh¶)�”}”(hhh]”(h»)�”}”(hŒ DESCRIPTION”h]”hŒ DESCRIPTION”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÙh²hh³hÊh´KOubhÌ)�”}”(hŒËCreates an enriched version of a Kernel header file with cross-links to each C data structure type, from ``FILE_IN``, formatting it with reStructuredText notation, either as-is or as a table of contents.”h]”(hŒiCreates an enriched version of a Kernel header file with cross-links to each C data structure type, from ”…”�”}”(hjêh²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_IN``”h]”hŒFILE_IN”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjêubhŒW, formatting it with reStructuredText notation, either as-is or as a table of contents.”…”�”}”(hjêh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KQhjÙh²hubhÌ)�”}”(hŒ·It accepts an optional ``FILE_RULES`` which describes what elements will be either ignored or be pointed to a non-default reference, and optionally defines the C namespace to be used.”h]”(hŒIt accepts an optional ”…”�”}”(hj h²hh³Nh´Nubhÿ)�”}”(hŒ``FILE_RULES``”h]”hŒ FILE_RULES”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj ubhŒ’ which describes what elements will be either ignored or be pointed to a non-default reference, and optionally defines the C namespace to be used.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KUhjÙh²hubhÌ)�”}”(hŒIt is meant to allow having more comprehensive documentation, where uAPI headers will create cross-reference links to the code.”h]”hŒIt is meant to allow having more comprehensive documentation, where uAPI headers will create cross-reference links to the code.”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KYhjÙh²hubhÌ)�”}”(hŒ*The output is written at the ``FILE_OUT``.”h]”(hŒThe output is written at the ”…”�”}”(hj8h²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_OUT``”h]”hŒFILE_OUT”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj8ubhŒ.”…”�”}”(hj8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K\hjÙh²hubhÌ)�”}”(hŒlThe ``FILE_RULES`` may contain contain three types of statements: **ignore**, **replace** and **namespace**.”h]”(hŒThe ”…”�”}”(hjXh²hh³Nh´Nubhÿ)�”}”(hŒ``FILE_RULES``”h]”hŒ FILE_RULES”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjXubhŒ0 may contain contain three types of statements: ”…”�”}”(hjXh²hh³Nh´NubhŒstrong”“”)�”}”(hŒ **ignore**”h]”hŒignore”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jrhjXubhŒ, ”…”�”}”(hjXh²hh³Nh´Nubjs)�”}”(hŒ **replace**”h]”hŒreplace”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jrhjXubhŒ and ”…”�”}”(hjXh²hh³Nh´Nubjs)�”}”(hŒ **namespace**”h]”hŒ namespace”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jrhjXubhŒ.”…”�”}”(hjXh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K^hjÙh²hubhÌ)�”}”(hŒ By default, it create rules for all symbols and defines, but it also allows parsing an exception file. Such file contains a set of rules using the syntax below:”h]”hŒ By default, it create rules for all symbols and defines, but it also allows parsing an exception file. Such file contains a set of rules using the syntax below:”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KahjÙh²hubhŒenumerated_list”“”)�”}”(hhh]”hŒ list_item”“”)�”}”(hŒ'Ignore rules: ignore *type* *symbol* ”h]”(hÌ)�”}”(hŒ Ignore rules:”h]”hŒ Ignore rules:”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KehjÅubj)�”}”(hŒignore *type* *symbol* ”h]”hÌ)�”}”(hŒignore *type* *symbol*”h]”(hŒignore ”…”�”}”(hjÛh²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ*type*”h]”hŒtype”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjÛubhŒ ”…”�”}”(hjÛh²hh³Nh´Nubjä)�”}”(hŒ*symbol*”h]”hŒsymbol”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kghj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿh³hÊh´KghjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjÀh²hh³hÊh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1j¾hjÙh²hh³hÊh´KeubhÌ)�”}”(hŒ-Removes the symbol from reference generation.”h]”hŒ-Removes the symbol from reference generation.”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KihjÙh²hubj¿)�”}”(hhh]”(jÄ)�”}”(hŒÀReplace rules: replace *type* *old_symbol* *new_reference* Replaces *old_symbol* with a *new_reference*. The *new_reference* can be: - A simple symbol name; - A full Sphinx reference. ”h]”(hÌ)�”}”(hŒReplace rules:”h]”hŒReplace rules:”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kkhj3ubj)�”}”(hŒ«replace *type* *old_symbol* *new_reference* Replaces *old_symbol* with a *new_reference*. The *new_reference* can be: - A simple symbol name; - A full Sphinx reference. ”h]”(hÌ)�”}”(hŒ+replace *type* *old_symbol* *new_reference*”h]”(hŒreplace ”…”�”}”(hjIh²hh³Nh´Nubjä)�”}”(hŒ*type*”h]”hŒtype”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjIubhŒ ”…”�”}”(hjIh²hh³Nh´Nubjä)�”}”(hŒ *old_symbol*”h]”hŒ old_symbol”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjIubhŒ ”…”�”}”hjIsbjä)�”}”(hŒ*new_reference*”h]”hŒ new_reference”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KmhjEubhÌ)�”}”(hŒIReplaces *old_symbol* with a *new_reference*. The *new_reference* can be:”h]”(hŒ Replaces ”…”�”}”(hj‰h²hh³Nh´Nubjä)�”}”(hŒ *old_symbol*”h]”hŒ old_symbol”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj‰ubhŒ with a ”…”�”}”(hj‰h²hh³Nh´Nubjä)�”}”(hŒ*new_reference*”h]”hŒ new_reference”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj‰ubhŒ. The ”…”�”}”(hj‰h²hh³Nh´Nubjä)�”}”(hŒ*new_reference*”h]”hŒ new_reference”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj‰ubhŒ can be:”…”�”}”(hj‰h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KohjEubhŒ bullet_list”“”)�”}”(hhh]”(jÄ)�”}”(hŒA simple symbol name;”h]”hÌ)�”}”(hjÔh]”hŒA simple symbol name;”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KrhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjÏubjÄ)�”}”(hŒA full Sphinx reference. ”h]”hÌ)�”}”(hŒA full Sphinx reference.”h]”hŒA full Sphinx reference.”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kshjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjÏubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jÍh³hÊh´KrhjEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÿh³hÊh´Kmhj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj0h²hh³hÊh´NubjÄ)�”}”(hŒ�Namespace rules namespace *namespace* Sets C *namespace* to be used during cross-reference generation. Can be overridden by replace rules. ”h]”(hÌ)�”}”(hŒNamespace rules”h]”hŒNamespace rules”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kuhjubj)�”}”(hŒ|namespace *namespace* Sets C *namespace* to be used during cross-reference generation. Can be overridden by replace rules. ”h]”(hÌ)�”}”(hŒnamespace *namespace*”h]”(hŒ namespace ”…”�”}”(hj+h²hh³Nh´Nubjä)�”}”(hŒ *namespace*”h]”hŒ namespace”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kwhj'ubhÌ)�”}”(hŒdSets C *namespace* to be used during cross-reference generation. Can be overridden by replace rules.”h]”(hŒSets C ”…”�”}”(hjGh²hh³Nh´Nubjä)�”}”(hŒ *namespace*”h]”hŒ namespace”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjGubhŒR to be used during cross-reference generation. Can be overridden by replace rules.”…”�”}”(hjGh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kyhj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÿh³hÊh´Kwhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj0h²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jjjhj j!Œstart”Kuh1j¾hjÙh²hh³hÊh´KkubhÌ)�”}”(hŒ+On ignore and replace rules, *type* can be:”h]”(hŒOn ignore and replace rules, ”…”�”}”(hjzh²hh³Nh´Nubjä)�”}”(hŒ*type*”h]”hŒtype”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jãhjzubhŒ can be:”…”�”}”(hjzh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjÙh²hubj)�”}”(hX- ioctl: for defines of the form ``_IO*``, e.g., ioctl definitions - define: for other defines - symbol: for symbols defined within enums; - typedef: for typedefs; - enum: for the name of a non-anonymous enum; - struct: for structs. ”h]”jÎ)�”}”(hhh]”(jÄ)�”}”(hŒCioctl: for defines of the form ``_IO*``, e.g., ioctl definitions ”h]”j)�”}”(hhh]”j )�”}”(hŒAioctl: for defines of the form ``_IO*``, e.g., ioctl definitions ”h]”(j)�”}”(hŒioctl:”h]”hŒioctl:”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´Khj¨ubj*)�”}”(hhh]”hÌ)�”}”(hŒ9for defines of the form ``_IO*``, e.g., ioctl definitions”h]”(hŒfor defines of the form ”…”�”}”(hj½h²hh³Nh´Nubhÿ)�”}”(hŒ``_IO*``”h]”hŒ_IO*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj½ubhŒ, e.g., ioctl definitions”…”�”}”(hj½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´Khj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjžubjÄ)�”}”(hŒdefine: for other defines ”h]”j)�”}”(hhh]”j )�”}”(hŒdefine: for other defines ”h]”(j)�”}”(hŒdefine:”h]”hŒdefine:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K‚hjüubj*)�”}”(hhh]”hÌ)�”}”(hŒfor other defines”h]”hŒfor other defines”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‚hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K‚hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjžubjÄ)�”}”(hŒ,symbol: for symbols defined within enums; ”h]”j)�”}”(hhh]”j )�”}”(hŒ*symbol: for symbols defined within enums; ”h]”(j)�”}”(hŒsymbol:”h]”hŒsymbol:”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K…hj>ubj*)�”}”(hhh]”hÌ)�”}”(hŒ!for symbols defined within enums;”h]”hŒ!for symbols defined within enums;”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K…hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K…hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjžubjÄ)�”}”(hŒtypedef: for typedefs; ”h]”j)�”}”(hhh]”j )�”}”(hŒtypedef: for typedefs; ”h]”(j)�”}”(hŒtypedef:”h]”hŒtypedef:”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´Kˆhj€ubj*)�”}”(hhh]”hÌ)�”}”(hŒ for typedefs;”h]”hŒ for typedefs;”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kˆhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´Kˆhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjžubjÄ)�”}”(hŒ.enum: for the name of a non-anonymous enum; ”h]”j)�”}”(hhh]”j )�”}”(hŒ,enum: for the name of a non-anonymous enum; ”h]”(j)�”}”(hŒenum:”h]”hŒenum:”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K‹hjÂubj*)�”}”(hhh]”hÌ)�”}”(hŒ%for the name of a non-anonymous enum;”h]”hŒ%for the name of a non-anonymous enum;”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‹hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hjÂubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K‹hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjžubjÄ)�”}”(hŒstruct: for structs. ”h]”j)�”}”(hhh]”j )�”}”(hŒstruct: for structs. ”h]”(j)�”}”(hŒstruct:”h]”hŒstruct:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K�hj ubj*)�”}”(hhh]”hÌ)�”}”(hŒ for structs.”h]”hŒ for structs.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j)hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjžubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1jÍh³hÊh´K~hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿh³hÊh´K~hjÙh²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hµhj&h²hh³hÊh´KOubh¶)�”}”(hhh]”(h»)�”}”(hŒEXAMPLES”h]”hŒEXAMPLES”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjS h²hh³hÊh´K’ubjÎ)�”}”(hhh]”(jÄ)�”}”(hŒPIgnore a define ``_VIDEODEV2_H`` at ``FILE_IN``:: ignore define _VIDEODEV2_H ”h]”(hÌ)�”}”(hŒ1Ignore a define ``_VIDEODEV2_H`` at ``FILE_IN``::”h]”(hŒIgnore a define ”…”�”}”(hjk h²hh³Nh´Nubhÿ)�”}”(hŒ``_VIDEODEV2_H``”h]”hŒ _VIDEODEV2_H”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjk ubhŒ at ”…”�”}”(hjk h²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_IN``”h]”hŒFILE_IN”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjk ubhŒ:”…”�”}”(hjk h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hjg ubjÕ)�”}”(hŒignore define _VIDEODEV2_H”h]”hŒignore define _VIDEODEV2_H”…”�”}”hj� sbah}”(h]”h ]”h"]”h$]”h&]”jäjåuh1jÔh³hÊh´K–hjg ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjd h²hh³hÊh´NubjÄ)�”}”(hXbOn an data structure like this enum:: enum foo { BAR1, BAR2, PRIVATE }; It won't generate cross-references for ``PRIVATE``:: ignore symbol PRIVATE At the same struct, instead of creating one cross reference per symbol, make them all point to the ``enum foo`` C type:: replace symbol BAR1 :c:type:\`foo\` replace symbol BAR2 :c:type:\`foo\` ”h]”(hÌ)�”}”(hŒ%On an data structure like this enum::”h]”hŒ$On an data structure like this enum:”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K˜hj± ubjÕ)�”}”(hŒ!enum foo { BAR1, BAR2, PRIVATE };”h]”hŒ!enum foo { BAR1, BAR2, PRIVATE };”…”�”}”hjà sbah}”(h]”h ]”h"]”h$]”h&]”jäjåuh1jÔh³hÊh´Kšhj± ubhÌ)�”}”(hŒ4It won't generate cross-references for ``PRIVATE``::”h]”(hŒ)It won’t generate cross-references for ”…”�”}”(hjÑ h²hh³Nh´Nubhÿ)�”}”(hŒ ``PRIVATE``”h]”hŒPRIVATE”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjÑ ubhŒ:”…”�”}”(hjÑ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kœhj± ubjÕ)�”}”(hŒignore symbol PRIVATE”h]”hŒignore symbol PRIVATE”…”�”}”hjñ sbah}”(h]”h ]”h"]”h$]”h&]”jäjåuh1jÔh³hÊh´Kžhj± ubhÌ)�”}”(hŒxAt the same struct, instead of creating one cross reference per symbol, make them all point to the ``enum foo`` C type::”h]”(hŒcAt the same struct, instead of creating one cross reference per symbol, make them all point to the ”…”�”}”(hjÿ h²hh³Nh´Nubhÿ)�”}”(hŒ ``enum foo``”h]”hŒenum foo”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhjÿ ubhŒ C type:”…”�”}”(hjÿ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hj± ubjÕ)�”}”(hŒGreplace symbol BAR1 :c:type:\`foo\` replace symbol BAR2 :c:type:\`foo\`”h]”hŒGreplace symbol BAR1 :c:type:\`foo\` replace symbol BAR2 :c:type:\`foo\`”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jäjåuh1jÔh³hÊh´K£hj± ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjd h²hh³hÊh´NubjÄ)�”}”(hŒHUse C namespace ``MC`` for all symbols at ``FILE_IN``:: namespace MC ”h]”(hÌ)�”}”(hŒ7Use C namespace ``MC`` for all symbols at ``FILE_IN``::”h]”(hŒUse C namespace ”…”�”}”(hj7 h²hh³Nh´Nubhÿ)�”}”(hŒ``MC``”h]”hŒMC”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj7 ubhŒ for all symbols at ”…”�”}”(hj7 h²hh³Nh´Nubhÿ)�”}”(hŒ ``FILE_IN``”h]”hŒFILE_IN”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hþhj7 ubhŒ:”…”�”}”(hj7 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K§hj3 ubjÕ)�”}”(hŒ namespace MC”h]”hŒ namespace MC”…”�”}”hji sbah}”(h]”h ]”h"]”h$]”h&]”jäjåuh1jÔh³hÊh´K©hj3 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjd h²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1jÍh³hÊh´K”hjS h²hubeh}”(h]”Œexamples”ah ]”h"]”Œexamples”ah$]”h&]”uh1hµhj&h²hh³hÊh´K’ubh¶)�”}”(hhh]”(h»)�”}”(hŒBUGS”h]”hŒBUGS”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj‹ h²hh³hÊh´K¬ubhÌ)�”}”(hŒ9Report bugs to Mauro Carvalho Chehab ”h]”(hŒ&Report bugs to Mauro Carvalho Chehab <”…”�”}”(hjœ h²hh³Nh´NubhŒ reference”“”)�”}”(hŒmchehab@kernel.org”h]”hŒmchehab@kernel.org”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:mchehab@kernel.org”uh1j¤ hjœ ubhŒ>”…”�”}”(hjœ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¯hj‹ h²hubeh}”(h]”Œbugs”ah ]”h"]”Œbugs”ah$]”h&]”uh1hµhj&h²hh³hÊh´K¬ubh¶)�”}”(hhh]”(h»)�”}”(hŒ COPYRIGHT”h]”hŒ COPYRIGHT”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÈ h²hh³hÊh´K³ubhÌ)�”}”(hŒNCopyright (c) 2016, 2025 by Mauro Carvalho Chehab .”h]”(hŒ3Copyright (c) 2016, 2025 by Mauro Carvalho Chehab <”…”�”}”(hjÙ h²hh³Nh´Nubj¥ )�”}”(hŒmchehab+huawei@kernel.org”h]”hŒmchehab+huawei@kernel.org”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ mailto:mchehab+huawei@kernel.org”uh1j¤ hjÙ ubhŒ>.”…”�”}”(hjÙ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¶hjÈ h²hubhÌ)�”}”(hŒELicense GPLv2: GNU GPL version 2 .”h]”(hŒ"License GPLv2: GNU GPL version 2 <”…”�”}”(hjû h²hh³Nh´Nubj¥ )�”}”(hŒ!https://gnu.org/licenses/gpl.html”h]”hŒ!https://gnu.org/licenses/gpl.html”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j uh1j¤ hjû ubhŒ>.”…”�”}”(hjû h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¸hjÈ h²hubhÌ)�”}”(hŒxThis is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.”h]”hŒxThis is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KºhjÈ h²hubeh}”(h]”Œ copyright”ah ]”h"]”Œ copyright”ah$]”h&]”uh1hµhj&h²hh³hÊh´K³ubeh}”(h]”(Œtools-docs-parse-headers-py”j%eh ]”h"]”(Œtools/docs/parse_headers.py”Œ parse_headers”eh$]”h&]”uh1hµhh·h²hh³hÊh´KŒexpect_referenced_by_name”}”j8 jsŒexpect_referenced_by_id”}”j%jsubeh}”(h]”Œincluding-uapi-header-files”ah ]”h"]”Œincluding uapi header files”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jj Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”j%]”jasŒnameids”}”(jD jA j8 j%j7 j4 j[jXj´j±jëjèjÉjÆjÖjÓjP jM jˆ j… jÅ j j/ j, uŒ nametypes”}”(jD ‰j8 ˆj7 ‰j[‰j´‰jë‰jɉjÖ‰jP ‰jˆ ‰jÅ ‰j/ ‰uh}”(jA h·j%j&j4 j&jXj7j±j^jèj·jÆjîjÓjÌjM jÙj… jS j j‹ j, jÈ uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”hŒsystem_message”“”)�”}”(hhh]”hÌ)�”}”(hŒ:Enumerated list start value not ordinal-1: "2" (ordinal 2)”h]”hŒ>Enumerated list start value not ordinal-1: “2â€� (ordinal 2)”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËhjÏ ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÊŒline”Kuh1jÍ hjÙh²hh³hÊh´KkubaŒtransform_messages”]”jÎ )�”}”(hhh]”hÌ)�”}”(hhh]”hŒ3Hyperlink target "parse-headers" is not referenced.”…”�”}”hjð sbah}”(h]”h ]”h"]”h$]”h&]”uh1hËhjí ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jè Œsource”hÊŒline”Kuh1jÍ ubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.