€• §Œ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/dev-tools/kunit/api/of”Œ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/dev-tools/kunit/api/of”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/it_IT/dev-tools/kunit/api/of”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ja_JP/dev-tools/kunit/api/of”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ko_KR/dev-tools/kunit/api/of”Œ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/dev-tools/kunit/api/of”Œ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/dev-tools/kunit/api/of”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒD/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒDevice Tree (OF) API”h]”hŒDevice Tree (OF) API”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒLThe KUnit device tree API is used to test device tree (of_*) dependent code.”h]”hŒLThe KUnit device tree API is used to test device tree (of_*) dependent code.”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ%__of_overlay_apply_kunit (C function)”Œc.__of_overlay_apply_kunit”hNt”auh1híhhÊh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ[int __of_overlay_apply_kunit (struct kunit *test, u8 *overlay_begin, const u8 *overlay_end)”h]”hŒdesc_signature_line”“”)�”}”(hŒZint __of_overlay_apply_kunit(struct kunit *test, u8 *overlay_begin, const u8 *overlay_end)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jhj h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K(ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j!hj h²hh³j h´K(ubhŒ desc_name”“”)�”}”(hŒ__of_overlay_apply_kunit”h]”hŒ desc_sig_name”“”)�”}”(hŒ__of_overlay_apply_kunit”h]”hŒ__of_overlay_apply_kunit”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j8hj4ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j2hj h²hh³j h´K(ubhŒdesc_parameterlist”“”)�”}”(hŒ>(struct kunit *test, u8 *overlay_begin, const u8 *overlay_end)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct kunit *test”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j]hjYubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYubh)�”}”(hhh]”j9)�”}”(hŒkunit”h]”hŒkunit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”j�Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j›Œ ASTIdentifier”“”)�”}”j–j<sbŒc.__of_overlay_apply_kunit”†”asbuh1hhjYubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjYubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j¶hjYubj9)�”}”(hŒtest”h]”hŒtest”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjSubjX)�”}”(hŒu8 *overlay_begin”h]”(h)�”}”(hhh]”j9)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjàubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”jåŒmodname”NŒ classname”Njšj�)�”}”j ]”j¤Œc.__of_overlay_apply_kunit”†”asbuh1hhjÜubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÜubj·)�”}”(hjºh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hjÜubj9)�”}”(hŒ overlay_begin”h]”hŒ overlay_begin”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjÜubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjSubjX)�”}”(hŒconst u8 *overlay_end”h]”(j^)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj1ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj1ubh)�”}”(hhh]”j9)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjQubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”jVŒmodname”NŒ classname”Njšj�)�”}”j ]”j¤Œc.__of_overlay_apply_kunit”†”asbuh1hhj1ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj1ubj·)�”}”(hjºh]”hŒ*”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hj1ubj9)�”}”(hŒ overlay_end”h]”hŒ overlay_end”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjSubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jQhj h²hh³j h´K(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j Œsphinx_line_type”Œ declarator”hjh²hh³j h´K(ubah}”(h]”hüah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j h´K(hjh²hubhŒ desc_content”“”)�”}”(hhh]”hÞ)�”}”(hŒ+Test managed of_overlay_fdt_apply() variant”h]”hŒ+Test managed of_overlay_fdt_apply() variant”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K(hj¾h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjh²hh³j h´K(ubeh}”(h]”h ]”(j”Œfunction”eh"]”h$]”h&]”Œdomain”j”Œobjtype”jÙŒdesctype”jÙŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1hþh²hhhÊh³Nh´NubhŒ container”“”)�”}”(hX**Parameters** ``struct kunit *test`` test context ``u8 *overlay_begin`` start address of overlay to apply ``const u8 *overlay_end`` end address of overlay to apply **Description** This is mostly internal API. See of_overlay_apply_kunit() for the wrapper that makes this easier to use. Similar to of_overlay_fdt_apply(), except the overlay is managed by the test case and is automatically removed with of_overlay_remove() after the test case concludes. **Return** 0 on success, negative errno on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hjëh]”hŒ Parameters”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K,hjåubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ$``struct kunit *test`` test context ”h]”(hŒterm”“”)�”}”(hŒ``struct kunit *test``”h]”hŒliteral”“”)�”}”(hjh]”hŒstruct kunit *test”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K)hj ubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒ test context”h]”hŒ test context”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j)h´K)hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j)h´K)hjubj )�”}”(hŒ8``u8 *overlay_begin`` start address of overlay to apply ”h]”(j)�”}”(hŒ``u8 *overlay_begin``”h]”j)�”}”(hjOh]”hŒu8 *overlay_begin”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K*hjIubj+)�”}”(hhh]”hÞ)�”}”(hŒ!start address of overlay to apply”h]”hŒ!start address of overlay to apply”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jdh´K*hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jdh´K*hjubj )�”}”(hŒ:``const u8 *overlay_end`` end address of overlay to apply ”h]”(j)�”}”(hŒ``const u8 *overlay_end``”h]”j)�”}”(hjˆh]”hŒconst u8 *overlay_end”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K+hj‚ubj+)�”}”(hhh]”hÞ)�”}”(hŒend address of overlay to apply”h]”hŒend address of overlay to apply”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�h´K+hjžubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j�h´K+hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjåubhÞ)�”}”(hŒ**Description**”h]”jî)�”}”(hjÃh]”hŒ Description”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K-hjåubhÞ)�”}”(hŒhThis is mostly internal API. See of_overlay_apply_kunit() for the wrapper that makes this easier to use.”h]”hŒhThis is mostly internal API. See of_overlay_apply_kunit() for the wrapper that makes this easier to use.”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K,hjåubhÞ)�”}”(hŒ¦Similar to of_overlay_fdt_apply(), except the overlay is managed by the test case and is automatically removed with of_overlay_remove() after the test case concludes.”h]”hŒ¦Similar to of_overlay_fdt_apply(), except the overlay is managed by the test case and is automatically removed with of_overlay_remove() after the test case concludes.”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K/hjåubhÞ)�”}”(hŒ **Return**”h]”jî)�”}”(hjùh]”hŒReturn”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K3hjåubhÞ)�”}”(hŒ'0 on success, negative errno on failure”h]”hŒ'0 on success, negative errno on failure”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K4hjåubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jãhhÊh²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ of_overlay_apply_kunit (C macro)”Œc.of_overlay_apply_kunit”hNt”auh1híhhÊh²hh³Nh´Nubhÿ)�”}”(hhh]”(j)�”}”(hŒof_overlay_apply_kunit”h]”j )�”}”(hŒof_overlay_apply_kunit”h]”j3)�”}”(hŒof_overlay_apply_kunit”h]”j9)�”}”(hj8h]”hŒof_overlay_apply_kunit”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj>ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”hÅhÆuh1j2hj:h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KIubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj®ˆuh1j j¯j°hj6h²hh³jUh´KIubah}”(h]”j1ah ]”(j´jµeh"]”h$]”h&]”j¹ˆjº)j»huh1jh³jUh´KIhj3h²hubj½)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj3h²hh³jUh´KIubeh}”(h]”h ]”(j”Œmacro”eh"]”h$]”h&]”jÝj”jÞjnjßjnjà‰já‰jâ‰uh1hþh²hhhÊh³Nh´NubhÞ)�”}”(hŒ/``of_overlay_apply_kunit (test, overlay_name)``”h]”j)�”}”(hjth]”hŒ+of_overlay_apply_kunit (test, overlay_name)”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KKhhÊh²hubhŒ block_quote”“”)�”}”(hŒ:Test managed of_overlay_fdt_apply() for built-in overlays ”h]”hÞ)�”}”(hŒ9Test managed of_overlay_fdt_apply() for built-in overlays”h]”hŒ9Test managed of_overlay_fdt_apply() for built-in overlays”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KIhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠh³jžh´KIhhÊh²hubjä)�”}”(hX **Parameters** ``test`` test context ``overlay_name`` name of overlay to apply **Description** This macro is used to apply a device tree overlay built with the cmd_dt_S_dtbo rule in scripts/Makefile.lib that has been compiled into the kernel image or KUnit test module. The overlay is automatically removed when the test is finished. Unit tests that need device tree nodes should compile an overlay file with **overlay_name**\.dtbo.o in their Makefile along with their unit test and then load the overlay during their test. The **overlay_name** matches the filename of the overlay without the dtbo filename extension. If CONFIG_OF_OVERLAY is not enabled, the **test** will be skipped. In the Makefile .. code-block:: none obj-$(CONFIG_OF_OVERLAY_KUNIT_TEST) += overlay_test.o kunit_overlay_test.dtbo.o In the test .. code-block:: c static void of_overlay_kunit_of_overlay_apply(struct kunit *test) { struct device_node *np; KUNIT_ASSERT_EQ(test, 0, of_overlay_apply_kunit(test, kunit_overlay_test)); np = of_find_node_by_name(NULL, "test-kunit"); KUNIT_EXPECT_NOT_ERR_OR_NULL(test, np); of_node_put(np); } **Return** 0 on success, negative errno on failure.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jî)�”}”(hj«h]”hŒ Parameters”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KMhj¥ubj)�”}”(hhh]”(j )�”}”(hŒ``test`` test context ”h]”(j)�”}”(hŒ``test``”h]”j)�”}”(hjÊh]”hŒtest”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KJhjÄubj+)�”}”(hhh]”hÞ)�”}”(hŒ test context”h]”hŒ test context”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jßh´KJhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jßh´KJhjÁubj )�”}”(hŒ*``overlay_name`` name of overlay to apply ”h]”(j)�”}”(hŒ``overlay_name``”h]”j)�”}”(hjh]”hŒ overlay_name”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KKhjýubj+)�”}”(hhh]”hÞ)�”}”(hŒname of overlay to apply”h]”hŒname of overlay to apply”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´KKhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hjýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jh´KKhjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¥ubhÞ)�”}”(hŒ**Description**”h]”jî)�”}”(hj>h]”hŒ Description”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KMhj¥ubhÞ)�”}”(hŒîThis macro is used to apply a device tree overlay built with the cmd_dt_S_dtbo rule in scripts/Makefile.lib that has been compiled into the kernel image or KUnit test module. The overlay is automatically removed when the test is finished.”h]”hŒîThis macro is used to apply a device tree overlay built with the cmd_dt_S_dtbo rule in scripts/Makefile.lib that has been compiled into the kernel image or KUnit test module. The overlay is automatically removed when the test is finished.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KLhj¥ubhÞ)�”}”(hX^Unit tests that need device tree nodes should compile an overlay file with **overlay_name**\.dtbo.o in their Makefile along with their unit test and then load the overlay during their test. The **overlay_name** matches the filename of the overlay without the dtbo filename extension. If CONFIG_OF_OVERLAY is not enabled, the **test** will be skipped.”h]”(hŒKUnit tests that need device tree nodes should compile an overlay file with ”…”�”}”(hjch²hh³Nh´Nubjî)�”}”(hŒ**overlay_name**”h]”hŒ overlay_name”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjcubhŒg.dtbo.o in their Makefile along with their unit test and then load the overlay during their test. The ”…”�”}”(hjch²hh³Nh´Nubjî)�”}”(hŒ**overlay_name**”h]”hŒ overlay_name”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjcubhŒs matches the filename of the overlay without the dtbo filename extension. If CONFIG_OF_OVERLAY is not enabled, the ”…”�”}”(hjch²hh³Nh´Nubjî)�”}”(hŒ**test**”h]”hŒtest”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjcubhŒ will be skipped.”…”�”}”(hjch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KQhj¥ubhÞ)�”}”(hŒIn the Makefile”h]”hŒIn the Makefile”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KWhj¥ubhŒ literal_block”“”)�”}”(hŒOobj-$(CONFIG_OF_OVERLAY_KUNIT_TEST) += overlay_test.o kunit_overlay_test.dtbo.o”h]”hŒOobj-$(CONFIG_OF_OVERLAY_KUNIT_TEST) += overlay_test.o kunit_overlay_test.dtbo.o”…”�”}”hj¹sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œnone”Œhighlight_args”}”uh1j·h³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´KYhj¥ubhÞ)�”}”(hŒ In the test”h]”hŒ In the test”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K]hj¥ubj¸)�”}”(hXSstatic void of_overlay_kunit_of_overlay_apply(struct kunit *test) { struct device_node *np; KUNIT_ASSERT_EQ(test, 0, of_overlay_apply_kunit(test, kunit_overlay_test)); np = of_find_node_by_name(NULL, "test-kunit"); KUNIT_EXPECT_NOT_ERR_OR_NULL(test, np); of_node_put(np); }”h]”hXSstatic void of_overlay_kunit_of_overlay_apply(struct kunit *test) { struct device_node *np; KUNIT_ASSERT_EQ(test, 0, of_overlay_apply_kunit(test, kunit_overlay_test)); np = of_find_node_by_name(NULL, "test-kunit"); KUNIT_EXPECT_NOT_ERR_OR_NULL(test, np); of_node_put(np); }”…”�”}”hjÜsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjljjÈj”jÊ}”uh1j·h³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´K_hj¥ubhÞ)�”}”(hŒ **Return**”h]”jî)�”}”(hjîh]”hŒReturn”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´Kmhj¥ubhÞ)�”}”(hŒ(0 on success, negative errno on failure.”h]”hŒ(0 on success, negative errno on failure.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³ŒX/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:9: ./include/kunit/of.h”h´Knhj¥ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jãhhÊh²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒof_root_kunit_skip (C function)”Œc.of_root_kunit_skip”hNt”auh1híhhÊh²hh³Nh´Nubhÿ)�”}”(hhh]”(j)�”}”(hŒ,void of_root_kunit_skip (struct kunit *test)”h]”j )�”}”(hŒ+void of_root_kunit_skip(struct kunit *test)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj/h²hh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj/h²hh³jAh´Kubj3)�”}”(hŒof_root_kunit_skip”h]”j9)�”}”(hŒof_root_kunit_skip”h]”hŒof_root_kunit_skip”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjPubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”hÅhÆuh1j2hj/h²hh³jAh´KubjR)�”}”(hŒ(struct kunit *test)”h]”jX)�”}”(hŒstruct kunit *test”h]”(j^)�”}”(hjah]”hŒstruct”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjlubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjlubh)�”}”(hhh]”j9)�”}”(hŒkunit”h]”hŒkunit”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”j�Œmodname”NŒ classname”Njšj�)�”}”j ]”j£)�”}”j–jVsbŒc.of_root_kunit_skip”†”asbuh1hhjlubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjlubj·)�”}”(hjºh]”hŒ*”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hjlubj9)�”}”(hŒtest”h]”hŒtest”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjlubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjhubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jQhj/h²hh³jAh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj®ˆuh1j j¯j°hj+h²hh³jAh´Kubah}”(h]”j&ah ]”(j´jµeh"]”h$]”h&]”j¹ˆjº)j»huh1jh³jAh´Khj(h²hubj½)�”}”(hhh]”hÞ)�”}”(hŒ*Skip test if the root node isn't populated”h]”hŒ,Skip test if the root node isn’t populated”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´Khjðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj(h²hh³jAh´Kubeh}”(h]”h ]”(j”Œfunction”eh"]”h$]”h&]”jÝj”jÞj jßj jà‰já‰jâ‰uh1hþh²hhhÊh³Nh´Nubjä)�”}”(hŒV**Parameters** ``struct kunit *test`` test to skip if the root node isn't populated”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jî)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´Khjubj)�”}”(hhh]”j )�”}”(hŒD``struct kunit *test`` test to skip if the root node isn't populated”h]”(j)�”}”(hŒ``struct kunit *test``”h]”j)�”}”(hj4h]”hŒstruct kunit *test”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´Khj.ubj+)�”}”(hhh]”hÞ)�”}”(hŒ-test to skip if the root node isn't populated”h]”hŒ/test to skip if the root node isn’t populated”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jIh´Khj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jãhhÊh²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ'of_overlay_fdt_apply_kunit (C function)”Œc.of_overlay_fdt_apply_kunit”hNt”auh1híhhÊh²hh³Nh´Nubhÿ)�”}”(hhh]”(j)�”}”(hŒjint of_overlay_fdt_apply_kunit (struct kunit *test, void *overlay_fdt, u32 overlay_fdt_size, int *ovcs_id)”h]”j )�”}”(hŒiint of_overlay_fdt_apply_kunit(struct kunit *test, void *overlay_fdt, u32 overlay_fdt_size, int *ovcs_id)”h]”(j)�”}”(hŒint”h]”hŒint”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŠh²hh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K#ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjŠh²hh³jœh´K#ubj3)�”}”(hŒof_overlay_fdt_apply_kunit”h]”j9)�”}”(hŒof_overlay_fdt_apply_kunit”h]”hŒof_overlay_fdt_apply_kunit”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj«ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”hÅhÆuh1j2hjŠh²hh³jœh´K#ubjR)�”}”(hŒK(struct kunit *test, void *overlay_fdt, u32 overlay_fdt_size, int *ovcs_id)”h]”(jX)�”}”(hŒstruct kunit *test”h]”(j^)�”}”(hjah]”hŒstruct”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÇubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÇubh)�”}”(hhh]”j9)�”}”(hŒkunit”h]”hŒkunit”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”jëŒmodname”NŒ classname”Njšj�)�”}”j ]”j£)�”}”j–j±sbŒc.of_overlay_fdt_apply_kunit”†”asbuh1hhjÇubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÇubj·)�”}”(hjºh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hjÇubj9)�”}”(hŒtest”h]”hŒtest”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjÇubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjÃubjX)�”}”(hŒvoid *overlay_fdt”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj9ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj9ubj·)�”}”(hjºh]”hŒ*”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hj9ubj9)�”}”(hŒ overlay_fdt”h]”hŒ overlay_fdt”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjÃubjX)�”}”(hŒu32 overlay_fdt_size”h]”(h)�”}”(hhh]”j9)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”j„Œmodname”NŒ classname”Njšj�)�”}”j ]”jŒc.of_overlay_fdt_apply_kunit”†”asbuh1hhj{ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj{ubj9)�”}”(hŒoverlay_fdt_size”h]”hŒoverlay_fdt_size”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjÃubjX)�”}”(hŒ int *ovcs_id”h]”(j)�”}”(hŒint”h]”hŒint”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÃubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÃubj·)�”}”(hjºh]”hŒ*”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hjÃubj9)�”}”(hŒovcs_id”h]”hŒovcs_id”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjÃubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjÃubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jQhjŠh²hh³jœh´K#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj®ˆuh1j j¯j°hj†h²hh³jœh´K#ubah}”(h]”j�ah ]”(j´jµeh"]”h$]”h&]”j¹ˆjº)j»huh1jh³jœh´K#hjƒh²hubj½)�”}”(hhh]”hÞ)�”}”(hŒ#Test managed of_overlay_fdt_apply()”h]”hŒ#Test managed of_overlay_fdt_apply()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K#hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjƒh²hh³jœh´K#ubeh}”(h]”h ]”(j”Œfunction”eh"]”h$]”h&]”jÝj”jÞj2 jßj2 jà‰já‰jâ‰uh1hþh²hhhÊh³Nh´Nubjä)�”}”(hXÛ**Parameters** ``struct kunit *test`` test context ``void *overlay_fdt`` device tree overlay to apply ``u32 overlay_fdt_size`` size in bytes of **overlay_fdt** ``int *ovcs_id`` identifier of overlay, used to remove the overlay **Description** Just like of_overlay_fdt_apply(), except the overlay is managed by the test case and is automatically removed with of_overlay_remove() after the test case concludes. **Return** 0 on success, negative errno on failure”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jî)�”}”(hj< h]”hŒ Parameters”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhj: ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K'hj6 ubj)�”}”(hhh]”(j )�”}”(hŒ$``struct kunit *test`` test context ”h]”(j)�”}”(hŒ``struct kunit *test``”h]”j)�”}”(hj[ h]”hŒstruct kunit *test”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjY ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K$hjU ubj+)�”}”(hhh]”hÞ)�”}”(hŒ test context”h]”hŒ test context”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jp h´K$hjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hjU ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jp h´K$hjR ubj )�”}”(hŒ3``void *overlay_fdt`` device tree overlay to apply ”h]”(j)�”}”(hŒ``void *overlay_fdt``”h]”j)�”}”(hj” h]”hŒvoid *overlay_fdt”…”�”}”(hj– h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K%hjŽ ubj+)�”}”(hhh]”hÞ)�”}”(hŒdevice tree overlay to apply”h]”hŒdevice tree overlay to apply”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j© h´K%hjª ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hjŽ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j© h´K%hjR ubj )�”}”(hŒ:``u32 overlay_fdt_size`` size in bytes of **overlay_fdt** ”h]”(j)�”}”(hŒ``u32 overlay_fdt_size``”h]”j)�”}”(hjÍ h]”hŒu32 overlay_fdt_size”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K&hjÇ ubj+)�”}”(hhh]”hÞ)�”}”(hŒ size in bytes of **overlay_fdt**”h]”(hŒsize in bytes of ”…”�”}”(hjæ h²hh³Nh´Nubjî)�”}”(hŒ**overlay_fdt**”h]”hŒ overlay_fdt”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjæ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jâ h´K&hjã ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hjÇ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jâ h´K&hjR ubj )�”}”(hŒC``int *ovcs_id`` identifier of overlay, used to remove the overlay ”h]”(j)�”}”(hŒ``int *ovcs_id``”h]”j)�”}”(hj h]”hŒ int *ovcs_id”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K'hj ubj+)�”}”(hhh]”hÞ)�”}”(hŒ1identifier of overlay, used to remove the overlay”h]”hŒ1identifier of overlay, used to remove the overlay”…”�”}”(hj- h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j) h´K'hj* ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j) h´K'hjR ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj6 ubhÞ)�”}”(hŒ**Description**”h]”jî)�”}”(hjO h]”hŒ Description”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjM ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K)hj6 ubhÞ)�”}”(hŒ¥Just like of_overlay_fdt_apply(), except the overlay is managed by the test case and is automatically removed with of_overlay_remove() after the test case concludes.”h]”hŒ¥Just like of_overlay_fdt_apply(), except the overlay is managed by the test case and is automatically removed with of_overlay_remove() after the test case concludes.”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K(hj6 ubhÞ)�”}”(hŒ **Return**”h]”jî)�”}”(hjv h]”hŒReturn”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K,hj6 ubhÞ)�”}”(hŒ'0 on success, negative errno on failure”h]”hŒ'0 on success, negative errno on failure”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´K-hj6 ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jãhhÊh²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒof_node_put_kunit (C function)”Œc.of_node_put_kunit”hNt”auh1híhhÊh²hh³Nh´Nubhÿ)�”}”(hhh]”(j)�”}”(hŒEvoid of_node_put_kunit (struct kunit *test, struct device_node *node)”h]”j )�”}”(hŒDvoid of_node_put_kunit(struct kunit *test, struct device_node *node)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj· h²hh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KLubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj· h²hh³jÉ h´KLubj3)�”}”(hŒof_node_put_kunit”h]”j9)�”}”(hŒof_node_put_kunit”h]”hŒof_node_put_kunit”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjØ ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”hÅhÆuh1j2hj· h²hh³jÉ h´KLubjR)�”}”(hŒ.(struct kunit *test, struct device_node *node)”h]”(jX)�”}”(hŒstruct kunit *test”h]”(j^)�”}”(hjah]”hŒstruct”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjô ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjô ubh)�”}”(hhh]”j9)�”}”(hŒkunit”h]”hŒkunit”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”j Œmodname”NŒ classname”Njšj�)�”}”j ]”j£)�”}”j–jÞ sbŒc.of_node_put_kunit”†”asbuh1hhjô ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjô ubj·)�”}”(hjºh]”hŒ*”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hjô ubj9)�”}”(hŒtest”h]”hŒtest”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjô ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjð ubjX)�”}”(hŒstruct device_node *node”h]”(j^)�”}”(hjah]”hŒstruct”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjf ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjf ubh)�”}”(hhh]”j9)�”}”(hŒ device_node”h]”hŒ device_node”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hj… ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j”Œreftype”j–Œ reftarget”jŠ Œmodname”NŒ classname”Njšj�)�”}”j ]”j2 Œc.of_node_put_kunit”†”asbuh1hhjf ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjf ubj·)�”}”(hjºh]”hŒ*”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j¶hjf ubj9)�”}”(hŒnode”h]”hŒnode”…”�”}”(hjÁ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j8hjf ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jWhjð ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jQhj· h²hh³jÉ h´KLubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj®ˆuh1j j¯j°hj³ h²hh³jÉ h´KLubah}”(h]”j® ah ]”(j´jµeh"]”h$]”h&]”j¹ˆjº)j»huh1jh³jÉ h´KLhj° h²hubj½)�”}”(hhh]”hÞ)�”}”(hŒTest managed of_node_put()”h]”hŒTest managed of_node_put()”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KLhjè h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj° h²hh³jÉ h´KLubeh}”(h]”h ]”(j”Œfunction”eh"]”h$]”h&]”jÝj”jÞj jßj jà‰já‰jâ‰uh1hþh²hhhÊh³Nh´Nubjä)�”}”(hX**Parameters** ``struct kunit *test`` test context ``struct device_node *node`` node to pass to `of_node_put()` **Description** Just like of_node_put(), except the node is managed by the test case and is automatically put with of_node_put() after the test case concludes.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jî)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KPhj ubj)�”}”(hhh]”(j )�”}”(hŒ$``struct kunit *test`` test context ”h]”(j)�”}”(hŒ``struct kunit *test``”h]”j)�”}”(hj, h]”hŒstruct kunit *test”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj* ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KMhj& ubj+)�”}”(hhh]”hÞ)�”}”(hŒ test context”h]”hŒ test context”…”�”}”(hjE h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jA h´KMhjB ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj& ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jA h´KMhj# ubj )�”}”(hŒ=``struct device_node *node`` node to pass to `of_node_put()` ”h]”(j)�”}”(hŒ``struct device_node *node``”h]”j)�”}”(hje h]”hŒstruct device_node *node”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjc ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KNhj_ ubj+)�”}”(hhh]”hÞ)�”}”(hŒnode to pass to `of_node_put()`”h]”(hŒnode to pass to ”…”�”}”(hj~ h²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ`of_node_put()`”h]”hŒ of_node_put()”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j† hj~ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jz h´KNhj{ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j*hj_ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jz h´KNhj# ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhÞ)�”}”(hŒ**Description**”h]”jî)�”}”(hj° h]”hŒ Description”…”�”}”(hj² h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhj® ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KPhj ubhÞ)�”}”(hŒ�Just like of_node_put(), except the node is managed by the test case and is automatically put with of_node_put() after the test case concludes.”h]”hŒ�Just like of_node_put(), except the node is managed by the test case and is automatically put with of_node_put() after the test case concludes.”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œd/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/of:12: ./drivers/of/of_kunit_helpers.c”h´KOhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jãhhÊh²hh³Nh´Nubeh}”(h]”Œdevice-tree-of-api”ah ]”h"]”Œdevice tree (of) api”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”j Œ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”}”Œnameids”}”já jÞ sŒ nametypes”}”já ‰sh}”(jÞ hÊhüjj1j6j&j+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”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.