€•Œ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/core-api/boot-time-mm”Œ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/core-api/boot-time-mm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/core-api/boot-time-mm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/core-api/boot-time-mm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/core-api/boot-time-mm”Œ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/core-api/boot-time-mm”Œ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/core-api/boot-time-mm”Œ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ŒBoot time memory management”h]”hŒBoot time memory management”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒC/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm.rst”h´KubhŒ paragraph”“”)�”}”(hŒÜEarly system initialization cannot use "normal" memory management simply because it is not set up yet. But there is still need to allocate memory for various data structures, for instance for the physical page allocator.”h]”hŒàEarly system initialization cannot use “normalâ€� memory management simply because it is not set up yet. But there is still need to allocate memory for various data structures, for instance for the physical page allocator.”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒ×A specialized allocator called ``memblock`` performs the boot time memory management. The architecture specific initialization must set it up in :c:func:`setup_arch` and tear it down in :c:func:`mem_init` functions.”h]”(hŒA specialized allocator called ”…”�”}”(hhÛh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``memblock``”h]”hŒmemblock”…”�”}”(hhåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhhÛubhŒf performs the boot time memory management. The architecture specific initialization must set it up in ”…”�”}”(hhÛh²hh³Nh´Nubh)�”}”(hŒ:c:func:`setup_arch`”h]”hä)�”}”(hhùh]”hŒ setup_arch()”…”�”}”(hhûh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-func”eh"]”h$]”h&]”uh1hãhh÷ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œcore-api/boot-time-mm”Œ refdomain”jŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œ setup_arch”uh1hh³hÊh´K hhÛubhŒ and tear it down in ”…”�”}”(hhÛh²hh³Nh´Nubh)�”}”(hŒ:c:func:`mem_init`”h]”hä)�”}”(hj h]”hŒ mem_init()”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”(jjŒc-func”eh"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmem_init”uh1hh³hÊh´K hhÛubhŒ functions.”…”�”}”(hhÛh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhÌ)�”}”(hX=Once the early memory management is available it offers a variety of functions and macros for memory allocations. The allocation request may be directed to the first (and probably the only) node or to a particular node in a NUMA system. There are API variants that panic when an allocation fails and those that don't.”h]”hX?Once the early memory management is available it offers a variety of functions and macros for memory allocations. The allocation request may be directed to the first (and probably the only) node or to a particular node in a NUMA system. There are API variants that panic when an allocation fails and those that don’t.”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒFMemblock also offers a variety of APIs that control its own behaviour.”h]”hŒFMemblock also offers a variety of APIs that control its own behaviour.”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒMemblock Overview”h]”hŒMemblock Overview”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjch²hh³hÊh´KubhÌ)�”}”(hŒŒMemblock is a method of managing memory regions during the early boot period when the usual kernel memory allocators are not up and running.”h]”hŒŒMemblock is a method of managing memory regions during the early boot period when the usual kernel memory allocators are not up and running.”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:26: ./mm/memblock.c”h´K,hjch²hubhÌ)�”}”(hŒtMemblock views the system memory as collections of contiguous regions. There are several types of these collections:”h]”hŒtMemblock views the system memory as collections of contiguous regions. There are several types of these collections:”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:26: ./mm/memblock.c”h´K0hjch²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒÜ``memory`` - describes the physical memory available to the kernel; this may differ from the actual physical memory installed in the system, for instance when the memory is restricted with ``mem=`` command line parameter”h]”hÌ)�”}”(hŒÜ``memory`` - describes the physical memory available to the kernel; this may differ from the actual physical memory installed in the system, for instance when the memory is restricted with ``mem=`` command line parameter”h]”(hä)�”}”(hŒ ``memory``”h]”hŒmemory”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj�ubhŒ³ - describes the physical memory available to the kernel; this may differ from the actual physical memory installed in the system, for instance when the memory is restricted with ”…”�”}”(hj�h²hh³Nh´Nubhä)�”}”(hŒ``mem=``”h]”hŒmem=”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj�ubhŒ command line parameter”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:26: ./mm/memblock.c”h´K3hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j—hj”ubj˜)�”}”(hŒ8``reserved`` - describes the regions that were allocated”h]”hÌ)�”}”(hjÔh]”(hä)�”}”(hŒ ``reserved``”h]”hŒreserved”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÖubhŒ, - describes the regions that were allocated”…”�”}”(hjÖh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:26: ./mm/memblock.c”h´K7hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j—hj”ubj˜)�”}”(hŒÇ``physmem`` - describes the actual physical memory available during boot regardless of the possible restrictions and memory hot(un)plug; the ``physmem`` type is only available on some architectures. ”h]”hÌ)�”}”(hŒÆ``physmem`` - describes the actual physical memory available during boot regardless of the possible restrictions and memory hot(un)plug; the ``physmem`` type is only available on some architectures.”h]”(hä)�”}”(hŒ ``physmem``”h]”hŒphysmem”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjüubhŒ‚ - describes the actual physical memory available during boot regardless of the possible restrictions and memory hot(un)plug; the ”…”�”}”(hjüh²hh³Nh´Nubhä)�”}”(hŒ ``physmem``”h]”hŒphysmem”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjüubhŒ. type is only available on some architectures.”…”�”}”(hjüh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:26: ./mm/memblock.c”h´K8hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1j—hj”ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1j’h³jËh´K3hjch²hubhÌ)�”}”(hXwEach region is represented by struct memblock_region that defines the region extents, its attributes and NUMA node id on NUMA systems. Every memory type is described by the struct memblock_type which contains an array of memory regions along with the allocator metadata. The "memory" and "reserved" types are nicely wrapped with struct memblock. This structure is statically initialized at build time. The region arrays are initially sized to ``INIT_MEMBLOCK_MEMORY_REGIONS`` for "memory" and ``INIT_MEMBLOCK_RESERVED_REGIONS`` for "reserved". The region array for "physmem" is initially sized to ``INIT_PHYSMEM_REGIONS``. The memblock_allow_resize() enables automatic resizing of the region arrays during addition of new regions. This feature should be used with care so that memory allocated for the region array will not overlap with areas that should be reserved, for example initrd.”h]”(hXÃEach region is represented by struct memblock_region that defines the region extents, its attributes and NUMA node id on NUMA systems. Every memory type is described by the struct memblock_type which contains an array of memory regions along with the allocator metadata. The “memoryâ€� and “reservedâ€� types are nicely wrapped with struct memblock. This structure is statically initialized at build time. The region arrays are initially sized to ”…”�”}”(hj9h²hh³Nh´Nubhä)�”}”(hŒ ``INIT_MEMBLOCK_MEMORY_REGIONS``”h]”hŒINIT_MEMBLOCK_MEMORY_REGIONS”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj9ubhŒ for “memoryâ€� and ”…”�”}”(hj9h²hh³Nh´Nubhä)�”}”(hŒ"``INIT_MEMBLOCK_RESERVED_REGIONS``”h]”hŒINIT_MEMBLOCK_RESERVED_REGIONS”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj9ubhŒN for “reservedâ€�. The region array for “physmemâ€� is initially sized to ”…”�”}”(hj9h²hh³Nh´Nubhä)�”}”(hŒ``INIT_PHYSMEM_REGIONS``”h]”hŒINIT_PHYSMEM_REGIONS”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj9ubhX . The memblock_allow_resize() enables automatic resizing of the region arrays during addition of new regions. This feature should be used with care so that memory allocated for the region array will not overlap with areas that should be reserved, for example initrd.”…”�”}”(hj9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:26: ./mm/memblock.c”h´K``MEMBLOCK_RSRV_HUGETLB`` memory is reserved for hugetlb pages”h]”(j-)�”}”(hŒ``MEMBLOCK_RSRV_HUGETLB``”h]”hä)�”}”(hjh]”hŒMEMBLOCK_RSRV_HUGETLB”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KKhjúubjG)�”}”(hhh]”hÌ)�”}”(hŒ$memory is reserved for hugetlb pages”h]”hŒ$memory is reserved for hugetlb pages”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KLhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´KKhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_region (C struct)”Œc.memblock_region”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒmemblock_region”h]”j€)�”}”(hŒstruct memblock_region”h]”(j†)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjVh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KQubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjVh²hh³jhh´KQubj©)�”}”(hŒmemblock_region”h]”j¯)�”}”(hjTh]”hŒmemblock_region”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjwubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjVh²hh³jhh´KQubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjRh²hh³jhh´KQubah}”(h]”jMah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jhh´KQhjOh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒrepresents a memory region”h]”hŒrepresents a memory region”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KEhjšh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjOh²hh³jhh´KQubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”jýjjþjµjÿjµj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXB**Definition**:: struct memblock_region { phys_addr_t base; phys_addr_t size; enum memblock_flags flags; #ifdef CONFIG_NUMA; int nid; #endif; }; **Members** ``base`` base address of the region ``size`` size of the region ``flags`` memory region attributes ``nid`` NUMA node id”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(j¬)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj½ubhŒ:”…”�”}”(hj½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KIhj¹ubhŒ literal_block”“”)�”}”(hŒ�struct memblock_region { phys_addr_t base; phys_addr_t size; enum memblock_flags flags; #ifdef CONFIG_NUMA; int nid; #endif; };”h]”hŒ�struct memblock_region { phys_addr_t base; phys_addr_t size; enum memblock_flags flags; #ifdef CONFIG_NUMA; int nid; #endif; };”…”�”}”hjÜsbah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1jÚh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KKhj¹ubhÌ)�”}”(hŒ **Members**”h]”j¬)�”}”(hjíh]”hŒMembers”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KThj¹ubj")�”}”(hhh]”(j')�”}”(hŒ$``base`` base address of the region ”h]”(j-)�”}”(hŒ``base``”h]”hä)�”}”(hj h]”hŒbase”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KGhjubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the region”h]”hŒbase address of the region”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j!h´KGhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j!h´KGhjubj')�”}”(hŒ``size`` size of the region ”h]”(j-)�”}”(hŒ``size``”h]”hä)�”}”(hjEh]”hŒsize”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KHhj?ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the region”h]”hŒsize of the region”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jZh´KHhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jZh´KHhjubj')�”}”(hŒ#``flags`` memory region attributes ”h]”(j-)�”}”(hŒ ``flags``”h]”hä)�”}”(hj~h]”hŒflags”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KIhjxubjG)�”}”(hhh]”hÌ)�”}”(hŒmemory region attributes”h]”hŒmemory region attributes”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j“h´KIhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j“h´KIhjubj')�”}”(hŒ``nid`` NUMA node id”h]”(j-)�”}”(hŒ``nid``”h]”hä)�”}”(hj·h]”hŒnid”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KIhj±ubjG)�”}”(hhh]”hÌ)�”}”(hŒ NUMA node id”h]”hŒ NUMA node id”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KJhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÌh´KIhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_type (C struct)”Œc.memblock_type”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ memblock_type”h]”j€)�”}”(hŒstruct memblock_type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KPubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj h²hh³jh´KPubj©)�”}”(hŒ memblock_type”h]”j¯)�”}”(hj h]”hŒ memblock_type”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj-ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj h²hh³jh´KPubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj h²hh³jh´KPubah}”(h]”jah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jh´KPhjh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ,collection of memory regions of certain type”h]”hŒ,collection of memory regions of certain type”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KUhjPh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjh²hh³jh´KPubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”jýjjþjkjÿjkj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXy**Definition**:: struct memblock_type { unsigned long cnt; unsigned long max; phys_addr_t total_size; struct memblock_region *regions; char *name; }; **Members** ``cnt`` number of regions ``max`` size of the allocated array ``total_size`` size of all regions ``regions`` array of regions ``name`` the memory type symbolic name”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(j¬)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjsubhŒ:”…”�”}”(hjsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KYhjoubjÛ)�”}”(hŒ˜struct memblock_type { unsigned long cnt; unsigned long max; phys_addr_t total_size; struct memblock_region *regions; char *name; };”h]”hŒ˜struct memblock_type { unsigned long cnt; unsigned long max; phys_addr_t total_size; struct memblock_region *regions; char *name; };”…”�”}”hj�sbah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1jÚh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K[hjoubhÌ)�”}”(hŒ **Members**”h]”j¬)�”}”(hj¡h]”hŒMembers”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kchjoubj")�”}”(hhh]”(j')�”}”(hŒ``cnt`` number of regions ”h]”(j-)�”}”(hŒ``cnt``”h]”hä)�”}”(hjÀh]”hŒcnt”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KWhjºubjG)�”}”(hhh]”hÌ)�”}”(hŒnumber of regions”h]”hŒnumber of regions”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÕh´KWhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÕh´KWhj·ubj')�”}”(hŒ$``max`` size of the allocated array ”h]”(j-)�”}”(hŒ``max``”h]”hä)�”}”(hjùh]”hŒmax”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KXhjóubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the allocated array”h]”hŒsize of the allocated array”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´KXhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j h´KXhj·ubj')�”}”(hŒ#``total_size`` size of all regions ”h]”(j-)�”}”(hŒ``total_size``”h]”hä)�”}”(hj2 h]”hŒ total_size”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj0 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KYhj, ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of all regions”h]”hŒsize of all regions”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jG h´KYhjH ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj, ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jG h´KYhj·ubj')�”}”(hŒ``regions`` array of regions ”h]”(j-)�”}”(hŒ ``regions``”h]”hä)�”}”(hjk h]”hŒregions”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhji ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KZhje ubjG)�”}”(hhh]”hÌ)�”}”(hŒarray of regions”h]”hŒarray of regions”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j€ h´KZhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhje ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j€ h´KZhj·ubj')�”}”(hŒ&``name`` the memory type symbolic name”h]”(j-)�”}”(hŒ``name``”h]”hä)�”}”(hj¤ h]”hŒname”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¢ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KZhjž ubjG)�”}”(hhh]”hÌ)�”}”(hŒthe memory type symbolic name”h]”hŒthe memory type symbolic name”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K[hjº ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjž ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¹ h´KZhj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjoubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock (C struct)”Œ c.memblock”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒmemblock”h]”j€)�”}”(hŒstruct memblock”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjú h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kaubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjú h²hh³j h´Kaubj©)�”}”(hŒmemblock”h]”j¯)�”}”(hjø h]”hŒmemblock”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjú h²hh³j h´Kaubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjö h²hh³j h´Kaubah}”(h]”jñ ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j h´Kahjó h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒmemblock allocator metadata”h]”hŒmemblock allocator metadata”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kehj= h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjó h²hh³j h´Kaubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”jýjjþjX jÿjX j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXq**Definition**:: struct memblock { bool bottom_up; phys_addr_t current_limit; struct memblock_type memory; struct memblock_type reserved; }; **Members** ``bottom_up`` is bottom up direction? ``current_limit`` physical address of the current allocation limit ``memory`` usable memory regions ``reserved`` reserved memory regions”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(j¬)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj` ubhŒ:”…”�”}”(hj` h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kihj\ ubjÛ)�”}”(hŒ‹struct memblock { bool bottom_up; phys_addr_t current_limit; struct memblock_type memory; struct memblock_type reserved; };”h]”hŒ‹struct memblock { bool bottom_up; phys_addr_t current_limit; struct memblock_type memory; struct memblock_type reserved; };”…”�”}”hj} sbah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1jÚh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kkhj\ ubhÌ)�”}”(hŒ **Members**”h]”j¬)�”}”(hjŽ h]”hŒMembers”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjŒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Krhj\ ubj")�”}”(hhh]”(j')�”}”(hŒ&``bottom_up`` is bottom up direction? ”h]”(j-)�”}”(hŒ ``bottom_up``”h]”hä)�”}”(hj­ h]”hŒ bottom_up”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj« ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kghj§ ubjG)�”}”(hhh]”hÌ)�”}”(hŒis bottom up direction?”h]”hŒis bottom up direction?”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´Kghjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj§ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j h´Kghj¤ ubj')�”}”(hŒC``current_limit`` physical address of the current allocation limit ”h]”(j-)�”}”(hŒ``current_limit``”h]”hä)�”}”(hjæ h]”hŒ current_limit”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjä ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Khhjà ubjG)�”}”(hhh]”hÌ)�”}”(hŒ0physical address of the current allocation limit”h]”hŒ0physical address of the current allocation limit”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jû h´Khhjü ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjà ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jû h´Khhj¤ ubj')�”}”(hŒ!``memory`` usable memory regions ”h]”(j-)�”}”(hŒ ``memory``”h]”hä)�”}”(hj h]”hŒmemory”…”�”}”(hj! h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kihj ubjG)�”}”(hhh]”hÌ)�”}”(hŒusable memory regions”h]”hŒusable memory regions”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j4 h´Kihj5 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j4 h´Kihj¤ ubj')�”}”(hŒ$``reserved`` reserved memory regions”h]”(j-)�”}”(hŒ ``reserved``”h]”hä)�”}”(hjX h]”hŒreserved”…”�”}”(hjZ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjV ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KihjR ubjG)�”}”(hhh]”hÌ)�”}”(hŒreserved memory regions”h]”hŒreserved memory regions”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kjhjn ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjR ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jm h´Kihj¤ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj\ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ for_each_physmem_range (C macro)”Œc.for_each_physmem_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_physmem_range”h]”j€)�”}”(hŒfor_each_physmem_range”h]”j©)�”}”(hŒfor_each_physmem_range”h]”j¯)�”}”(hj¬ h]”hŒfor_each_physmem_range”…”�”}”(hj¶ h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj² ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj® h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K½ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjª h²hh³jÉ h´K½ubah}”(h]”j¥ ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÉ h´K½hj§ h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj§ h²hh³jÉ h´K½ubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjâ jÿjâ j‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ4``for_each_physmem_range (i, type, p_start, p_end)``”h]”hä)�”}”(hjè h]”hŒ0for_each_physmem_range (i, type, p_start, p_end)”…”�”}”(hjê h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjæ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K¿hjDh²hubhŒ block_quote”“”)�”}”(hŒ4iterate through physmem areas not included in type. ”h]”hÌ)�”}”(hŒ3iterate through physmem areas not included in type.”h]”hŒ3iterate through physmem areas not included in type.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K½hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j h´K½hjDh²hubj)�”}”(hX%**Parameters** ``i`` u64 used as loop variable ``type`` ptr to memblock_type which excludes from the iteration, can be ``NULL`` ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL``”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÁhj ubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hj> h]”hŒi”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K¾hj8 ubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jS h´K¾hjT ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj8 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jS h´K¾hj5 ubj')�”}”(hŒQ``type`` ptr to memblock_type which excludes from the iteration, can be ``NULL`` ”h]”(j-)�”}”(hŒ``type``”h]”hä)�”}”(hjw h]”hŒtype”…”�”}”(hjy h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhju ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K¿hjq ubjG)�”}”(hhh]”hÌ)�”}”(hŒGptr to memblock_type which excludes from the iteration, can be ``NULL``”h]”(hŒ?ptr to memblock_type which excludes from the iteration, can be ”…”�”}”(hj� h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jŒ h´K¿hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjq ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jŒ h´K¿hj5 ubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hj¾ h]”hŒp_start”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÀhj¸ ubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hj× h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj× ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÓ h´KÀhjÔ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¸ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÓ h´KÀhj5 ubj')�”}”(hŒJ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hj h]”hŒp_end”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÂhjÿ ubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hj h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÁhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j h´KÂhj5 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ__for_each_mem_range (C macro)”Œc.__for_each_mem_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ__for_each_mem_range”h]”j€)�”}”(hŒ__for_each_mem_range”h]”j©)�”}”(hŒ__for_each_mem_range”h]”j¯)�”}”(hjg h]”hŒ__for_each_mem_range”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjm ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hji h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÊubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhje h²hh³j„ h´KÊubah}”(h]”j` ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j„ h´KÊhjb h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjb h²hh³j„ h´KÊubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþj� jÿj� j‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒO``__for_each_mem_range (i, type_a, type_b, nid, flags, p_start, p_end, p_nid)``”h]”hä)�”}”(hj£ h]”hŒK__for_each_mem_range (i, type_a, type_b, nid, flags, p_start, p_end, p_nid)”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÌhjDh²hubjÿ )�”}”(hŒiiterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL. ”h]”hÌ)�”}”(hŒhiterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL.”h]”hŒhiterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL.”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÊhj¹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jË h´KÊhjDh²hubj)�”}”(hXô**Parameters** ``i`` u64 used as loop variable ``type_a`` ptr to memblock_type to iterate ``type_b`` ptr to memblock_type which excludes from the iteration ``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ``flags`` pick from blocks based on memory attributes ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ``p_nid`` ptr to int for nid of the range, can be ``NULL``”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÎhjÒ ubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hj÷ h]”hŒi”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjõ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÌhjñ ubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´KÌhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjñ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j h´KÌhjî ubj')�”}”(hŒ+``type_a`` ptr to memblock_type to iterate ”h]”(j-)�”}”(hŒ ``type_a``”h]”hä)�”}”(hj0h]”hŒtype_a”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÍhj*ubjG)�”}”(hhh]”hÌ)�”}”(hŒptr to memblock_type to iterate”h]”hŒptr to memblock_type to iterate”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jEh´KÍhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jEh´KÍhjî ubj')�”}”(hŒB``type_b`` ptr to memblock_type which excludes from the iteration ”h]”(j-)�”}”(hŒ ``type_b``”h]”hä)�”}”(hjih]”hŒtype_b”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÎhjcubjG)�”}”(hhh]”hÌ)�”}”(hŒ6ptr to memblock_type which excludes from the iteration”h]”hŒ6ptr to memblock_type which excludes from the iteration”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j~h´KÎhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j~h´KÎhjî ubj')�”}”(hŒ6``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ”h]”(j-)�”}”(hŒ``nid``”h]”hä)�”}”(hj¢h]”hŒnid”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÏhjœubjG)�”}”(hhh]”hÌ)�”}”(hŒ-node selector, ``NUMA_NO_NODE`` for all nodes”h]”(hŒnode selector, ”…”�”}”(hj»h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj»ubhŒ for all nodes”…”�”}”(hj»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j·h´KÏhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j·h´KÏhjî ubj')�”}”(hŒ6``flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ ``flags``”h]”hä)�”}”(hjíh]”hŒflags”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÐhjçubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´KÐhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´KÐhjî ubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hj&h]”hŒp_start”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÑhj ubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hj?h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j;h´KÑhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j;h´KÑhjî ubj')�”}”(hŒK``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjmh]”hŒp_end”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÒhjgubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hj†h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j‚h´KÒhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‚h´KÒhjî ubj')�”}”(hŒ:``p_nid`` ptr to int for nid of the range, can be ``NULL``”h]”(j-)�”}”(hŒ ``p_nid``”h]”hä)�”}”(hj´h]”hŒp_nid”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÔhj®ubjG)�”}”(hhh]”hÌ)�”}”(hŒ0ptr to int for nid of the range, can be ``NULL``”h]”(hŒ(ptr to int for nid of the range, can be ”…”�”}”(hjÍh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÓhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÉh´KÔhjî ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÒ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ"__for_each_mem_range_rev (C macro)”Œc.__for_each_mem_range_rev”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ__for_each_mem_range_rev”h]”j€)�”}”(hŒ__for_each_mem_range_rev”h]”j©)�”}”(hŒ__for_each_mem_range_rev”h]”j¯)�”}”(hjh]”hŒ__for_each_mem_range_rev”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÞubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjh²hh³j3h´KÞubah}”(h]”jah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j3h´KÞhjh²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjh²hh³j3h´KÞubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjLjÿjLj‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒS``__for_each_mem_range_rev (i, type_a, type_b, nid, flags, p_start, p_end, p_nid)``”h]”hä)�”}”(hjRh]”hŒO__for_each_mem_range_rev (i, type_a, type_b, nid, flags, p_start, p_end, p_nid)”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KàhjDh²hubjÿ )�”}”(hŒqreverse iterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL. ”h]”hÌ)�”}”(hŒpreverse iterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL.”h]”hŒpreverse iterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL.”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KÞhjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jzh´KÞhjDh²hubj)�”}”(hXô**Parameters** ``i`` u64 used as loop variable ``type_a`` ptr to memblock_type to iterate ``type_b`` ptr to memblock_type which excludes from the iteration ``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ``flags`` pick from blocks based on memory attributes ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ``p_nid`` ptr to int for nid of the range, can be ``NULL``”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kâhj�ubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hj¦h]”hŒi”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kàhj ubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j»h´Kàhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j»h´Kàhj�ubj')�”}”(hŒ+``type_a`` ptr to memblock_type to iterate ”h]”(j-)�”}”(hŒ ``type_a``”h]”hä)�”}”(hjßh]”hŒtype_a”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KáhjÙubjG)�”}”(hhh]”hÌ)�”}”(hŒptr to memblock_type to iterate”h]”hŒptr to memblock_type to iterate”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jôh´Káhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jôh´Káhj�ubj')�”}”(hŒB``type_b`` ptr to memblock_type which excludes from the iteration ”•h]”(j-)�”}”(hŒ ``type_b``”h]”hä)�”}”(hjh]”hŒtype_b”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KâhjubjG)�”}”(hhh]”hÌ)�”}”(hŒ6ptr to memblock_type which excludes from the iteration”h]”hŒ6ptr to memblock_type which excludes from the iteration”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j-h´Kâhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j-h´Kâhj�ubj')�”}”(hŒ6``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ”h]”(j-)�”}”(hŒ``nid``”h]”hä)�”}”(hjQh]”hŒnid”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KãhjKubjG)�”}”(hhh]”hÌ)�”}”(hŒ-node selector, ``NUMA_NO_NODE`` for all nodes”h]”(hŒnode selector, ”…”�”}”(hjjh²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjjubhŒ for all nodes”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jfh´Kãhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jfh´Kãhj�ubj')�”}”(hŒ6``flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ ``flags``”h]”hä)�”}”(hjœh]”hŒflags”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kähj–ubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j±h´Kähj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j±h´Kähj�ubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hjÕh]”hŒp_start”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KåhjÏubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hjîh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jêh´Kåhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jêh´Kåhj�ubj')�”}”(hŒK``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjh]”hŒp_end”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KæhjubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hj5h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j1h´Kæhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j1h´Kæhj�ubj')�”}”(hŒ:``p_nid`` ptr to int for nid of the range, can be ``NULL``”h]”(j-)�”}”(hŒ ``p_nid``”h]”hä)�”}”(hjch]”hŒp_nid”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kèhj]ubjG)�”}”(hhh]”hÌ)�”}”(hŒ0ptr to int for nid of the range, can be ``NULL``”h]”(hŒ(ptr to int for nid of the range, can be ”…”�”}”(hj|h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kçhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jxh´Kèhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒfor_each_mem_range (C macro)”Œc.for_each_mem_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_mem_range”h]”j€)�”}”(hŒfor_each_mem_range”h]”j©)�”}”(hŒfor_each_mem_range”h]”j¯)�”}”(hjÅh]”hŒfor_each_mem_range”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjËubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÇh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kóubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÃh²hh³jâh´Kóubah}”(h]”j¾ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jâh´KóhjÀh²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÀh²hh³jâh´Kóubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjûjÿjûj‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ*``for_each_mem_range (i, p_start, p_end)``”h]”hä)�”}”(hjh]”hŒ&for_each_mem_range (i, p_start, p_end)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KõhjDh²hubjÿ )�”}”(hŒiterate through memory areas. ”h]”hÌ)�”}”(hŒiterate through memory areas.”h]”hŒiterate through memory areas.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kóhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j)h´KóhjDh²hubj)�”}”(hŒÑ**Parameters** ``i`` u64 used as loop variable ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj6h]”hŒ Parameters”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K÷hj0ubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hjUh]”hŒi”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KôhjOubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jjh´Kôhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jjh´KôhjLubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hjŽh]”hŒp_start”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´KõhjˆubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hj§h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j£h´Kõhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j£h´KõhjLubj')�”}”(hŒJ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjÕh]”hŒp_end”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´K÷hjÏubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hjîh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Köhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jêh´K÷hjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ for_each_mem_range_rev (C macro)”Œc.for_each_mem_range_rev”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_mem_range_rev”h]”j€)�”}”(hŒfor_each_mem_range_rev”h]”j©)�”}”(hŒfor_each_mem_range_rev”h]”j¯)�”}”(hj7h]”hŒfor_each_mem_range_rev”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj=ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj9h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kþubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj5h²hh³jTh´Kþubah}”(h]”j0ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jTh´Kþhj2h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj2h²hh³jTh´Kþubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjmjÿjmj‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ.``for_each_mem_range_rev (i, p_start, p_end)``”h]”hä)�”}”(hjsh]”hŒ*for_each_mem_range_rev (i, p_start, p_end)”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjDh²hubjÿ )�”}”(hŒqreverse iterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL. ”h]”hÌ)�”}”(hŒpreverse iterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL.”h]”hŒpreverse iterate through memblock areas from type_a and not included in type_b. Or just type_a if type_b is NULL.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Kþhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j›h´KþhjDh²hubj)�”}”(hŒÑ**Parameters** ``i`` u64 used as loop variable ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL``”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhj¢ubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hjÇh]”hŒi”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjÁubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÜh´MhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÜh´Mhj¾ubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hjh]”hŒp_start”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjúubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hjh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´Mhj¾ubj')�”}”(hŒJ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjGh]”hŒp_end”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjAubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hj`h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j\h´Mhj¾ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¢ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ%for_each_reserved_mem_range (C macro)”Œc.for_each_reserved_mem_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_reserved_mem_range”h]”j€)�”}”(hŒfor_each_reserved_mem_range”h]”j©)�”}”(hŒfor_each_reserved_mem_range”h]”j¯)�”}”(hj©h]”hŒfor_each_reserved_mem_range”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¯ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj«h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj§h²hh³jÆh´M ubah}”(h]”j¢ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÆh´M hj¤h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¤h²hh³jÆh´M ubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjßjÿjßj‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ3``for_each_reserved_mem_range (i, p_start, p_end)``”h]”hä)�”}”(hjåh]”hŒ/for_each_reserved_mem_range (i, p_start, p_end)”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjãubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hjDh²hubjÿ )�”}”(hŒ)iterate over all reserved memblock areas ”h]”hÌ)�”}”(hŒ(iterate over all reserved memblock areas”h]”hŒ(iterate over all reserved memblock areas”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j h´M hjDh²hubj)�”}”(hX8**Parameters** ``i`` u64 used as loop variable ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` **Description** Walks over reserved areas of memblock. Available as soon as memblock is initialized.”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhjubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hj9h]”hŒi”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj3ubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jNh´M hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jNh´M hj0ubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hjrh]”hŒp_start”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hjlubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hj‹h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j‡h´M hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‡h´M hj0ubj')�”}”(hŒK``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hj¹h]”hŒp_end”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj³ubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hjÒh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÎh´M hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÎh´M hj0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjubhÌ)�”}”(hŒTWalks over reserved areas of memblock. Available as soon as memblock is initialized.”h]”hŒTWalks over reserved areas of memblock. Available as soon as memblock is initialized.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ for_each_mem_pfn_range (C macro)”Œc.for_each_mem_pfn_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_mem_pfn_range”h]”j€)�”}”(hŒfor_each_mem_pfn_range”h]”j©)�”}”(hŒfor_each_mem_pfn_range”h]”j¯)�”}”(hjAh]”hŒfor_each_mem_pfn_range”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjGubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjCh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M:ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj?h²hh³j^h´M:ubah}”(h]”j:ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j^h´M:hj<h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj<h²hh³j^h´M:ubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjwjÿjwj‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ:``for_each_mem_pfn_range (i, nid, p_start, p_end, p_nid)``”h]”hä)�”}”(hj}h]”hŒ6for_each_mem_pfn_range (i, nid, p_start, p_end, p_nid)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M<hjDh²hubjÿ )�”}”(hŒ early memory pfn range iterator ”h]”hÌ)�”}”(hŒearly memory pfn range iterator”h]”hŒearly memory pfn range iterator”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M:hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j¥h´M:hjDh²hubj)�”}”(hXr**Parameters** ``i`` an integer used as loop variable ``nid`` node selector, ``MAX_NUMNODES`` for all nodes ``p_start`` ptr to ulong for start pfn of the range, can be ``NULL`` ``p_end`` ptr to ulong for end pfn of the range, can be ``NULL`` ``p_nid`` ptr to int for nid of the range, can be ``NULL`` **Description** Walks over configured memory ranges.”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M>hj¬ubj")�”}”(hhh]”(j')�”}”(hŒ'``i`` an integer used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hjÑh]”hŒi”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M;hjËubjG)�”}”(hhh]”hÌ)�”}”(hŒ an integer used as loop variable”h]”hŒ an integer used as loop variable”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jæh´M;hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jæh´M;hjÈubj')�”}”(hŒ6``nid`` node selector, ``MAX_NUMNODES`` for all nodes ”h]”(j-)�”}”(hŒ``nid``”h]”hä)�”}”(hj h]”hŒnid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M<hjubjG)�”}”(hhh]”hÌ)�”}”(hŒ-node selector, ``MAX_NUMNODES`` for all nodes”h]”(hŒnode selector, ”…”�”}”(hj#h²hh³Nh´Nubhä)�”}”(hŒ``MAX_NUMNODES``”h]”hŒ MAX_NUMNODES”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj#ubhŒ for all nodes”…”�”}”(hj#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´M<hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´M<hjÈubj')�”}”(hŒE``p_start`` ptr to ulong for start pfn of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hjUh]”hŒp_start”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M=hjOubjG)�”}”(hhh]”hÌ)�”}”(hŒ8ptr to ulong for start pfn of the range, can be ``NULL``”h]”(hŒ0ptr to ulong for start pfn of the range, can be ”…”�”}”(hjnh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jjh´M=hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jjh´M=hjÈubj')�”}”(hŒA``p_end`` ptr to ulong for end pfn of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjœh]”hŒp_end”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M>hj–ubjG)�”}”(hhh]”hÌ)�”}”(hŒ6ptr to ulong for end pfn of the range, can be ``NULL``”h]”(hŒ.ptr to ulong for end pfn of the range, can be ”…”�”}”(hjµh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j±h´M>hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j±h´M>hjÈubj')�”}”(hŒ;``p_nid`` ptr to int for nid of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_nid``”h]”hä)�”}”(hjãh]”hŒp_nid”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M?hjÝubjG)�”}”(hhh]”hÌ)�”}”(hŒ0ptr to int for nid of the range, can be ``NULL``”h]”(hŒ(ptr to int for nid of the range, can be ”…”�”}”(hjüh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jøh´M?hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jøh´M?hjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¬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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MAhj¬ubhÌ)�”}”(hŒ$Walks over configured memory ranges.”h]”hŒ$Walks over configured memory ranges.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M@hj¬ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ!for_each_free_mem_range (C macro)”Œc.for_each_free_mem_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_free_mem_range”h]”j€)�”}”(hŒfor_each_free_mem_range”h]”j©)�”}”(hŒfor_each_free_mem_range”h]”j¯)�”}”(hjkh]”hŒfor_each_free_mem_range”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjqubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjmh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MIubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjih²hh³jˆh´MIubah}”(h]”jdah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jˆh´MIhjfh²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjfh²hh³jˆh´MIubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþj¡jÿj¡j‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒB``for_each_free_mem_range (i, nid, flags, p_start, p_end, p_nid)``”h]”hä)�”}”(hj§h]”hŒ>for_each_free_mem_range (i, nid, flags, p_start, p_end, p_nid)”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MKhjDh²hubjÿ )�”}”(hŒ$iterate through free memblock areas ”h]”hÌ)�”}”(hŒ#iterate through free memblock areas”h]”hŒ#iterate through free memblock areas”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MIhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jÏh´MIhjDh²hubj)�”}”(hXû**Parameters** ``i`` u64 used as loop variable ``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ``flags`` pick from blocks based on memory attributes ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ``p_nid`` ptr to int for nid of the range, can be ``NULL`` **Description** Walks over free (memory && !reserved) areas of memblock. Available as soon as memblock is initialized.”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MMhjÖubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hjûh]”hŒi”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MJhjõubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´MJhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´MJhjòubj')�”}”(hŒ6``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ”h]”(j-)�”}”(hŒ``nid``”h]”hä)�”}”(hj4h]”hŒnid”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MKhj.ubjG)�”}”(hhh]”hÌ)�”}”(hŒ-node selector, ``NUMA_NO_NODE`` for all nodes”h]”(hŒnode selector, ”…”�”}”(hjMh²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjMubhŒ for all nodes”…”�”}”(hjMh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jIh´MKhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jIh´MKhjòubj')�”}”(hŒ6``flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ ``flags``”h]”hä)�”}”(hjh]”hŒflags”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MLhjyubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j”h´MLhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j”h´MLhjòubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hj¸h]”hŒp_start”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MMhj²ubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hjÑh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÍh´MMhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÍh´MMhjòubj')�”}”(hŒK``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjÿh]”hŒp_end”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MNhjùubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hjh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´MNhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´MNhjòubj')�”}”(hŒ;``p_nid`` ptr to int for nid of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_nid``”h]”hä)�”}”(hjFh]”hŒp_nid”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MOhj@ubjG)�”}”(hhh]”hÌ)�”}”(hŒ0ptr to int for nid of the range, can be ``NULL``”h]”(hŒ(ptr to int for nid of the range, can be ”…”�”}”(hj_h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j[h´MOhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j[h´MOhjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÖ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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MQhjÖubhÌ)�”}”(hŒgWalks over free (memory && !reserved) areas of memblock. Available as soon as memblock is initialized.”h]”hŒgWalks over free (memory && !reserved) areas of memblock. Available as soon as memblock is initialized.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MPhjÖubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ)for_each_free_mem_range_reverse (C macro)”Œ!c.for_each_free_mem_range_reverse”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_free_mem_range_reverse”h]”j€)�”}”(hŒfor_each_free_mem_range_reverse”h]”j©)�”}”(hŒfor_each_free_mem_range_reverse”h]”j¯)�”}”(hjÎh]”hŒfor_each_free_mem_range_reverse”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÔubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÐh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MYubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÌh²hh³jëh´MYubah}”(h]”jÇah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jëh´MYhjÉh²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÉh²hh³jëh´MYubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjjÿjj‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒJ``for_each_free_mem_range_reverse (i, nid, flags, p_start, p_end, p_nid)``”h]”hä)�”}”(hj h]”hŒFfor_each_free_mem_range_reverse (i, nid, flags, p_start, p_end, p_nid)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M[hjDh²hubjÿ )�”}”(hŒ(rev-iterate through free memblock areas ”h]”hÌ)�”}”(hŒ'rev-iterate through free memblock areas”h]”hŒ'rev-iterate through free memblock areas”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MYhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j2h´MYhjDh²hubj)�”}”(hX **Parameters** ``i`` u64 used as loop variable ``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ``flags`` pick from blocks based on memory attributes ``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ``p_nid`` ptr to int for nid of the range, can be ``NULL`` **Description** Walks over free (memory && !reserved) areas of memblock in reverse order. Available as soon as memblock is initialized.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj?h]”hŒ Parameters”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M]hj9ubj")�”}”(hhh]”(j')�”}”(hŒ ``i`` u64 used as loop variable ”h]”(j-)�”}”(hŒ``i``”h]”hä)�”}”(hj^h]”hŒi”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MZhjXubjG)�”}”(hhh]”hÌ)�”}”(hŒu64 used as loop variable”h]”hŒu64 used as loop variable”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jsh´MZhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jsh´MZhjUubj')�”}”(hŒ6``nid`` node selector, ``NUMA_NO_NODE`` for all nodes ”h]”(j-)�”}”(hŒ``nid``”h]”hä)�”}”(hj—h]”hŒnid”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M[hj‘ubjG)�”}”(hhh]”hÌ)�”}”(hŒ-node selector, ``NUMA_NO_NODE`` for all nodes”h]”(hŒnode selector, ”…”�”}”(hj°h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj°ubhŒ for all nodes”…”�”}”(hj°h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¬h´M[hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¬h´M[hjUubj')�”}”(hŒ6``flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ ``flags``”h]”hä)�”}”(hjâh]”hŒflags”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M\hjÜubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j÷h´M\hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j÷h´M\hjUubj')�”}”(hŒO``p_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_start``”h]”hä)�”}”(hjh]”hŒp_start”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M]hjubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hj4h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j0h´M]hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j0h´M]hjUubj')�”}”(hŒK``p_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_end``”h]”hä)�”}”(hjbh]”hŒp_end”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M^hj\ubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hj{h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jwh´M^hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jwh´M^hjUubj')�”}”(hŒ;``p_nid`` ptr to int for nid of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ ``p_nid``”h]”hä)�”}”(hj©h]”hŒp_nid”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M_hj£ubjG)�”}”(hhh]”hÌ)�”}”(hŒ0ptr to int for nid of the range, can be ``NULL``”h]”(hŒ(ptr to int for nid of the range, can be ”…”�”}”(hjÂh²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÂubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¾h´M_hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¾h´M_hjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj9ubhÌ)�”}”(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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mahj9ubhÌ)�”}”(hŒxWalks over free (memory && !reserved) areas of memblock in reverse order. Available as soon as memblock is initialized.”h]”hŒxWalks over free (memory && !reserved) areas of memblock in reverse order. Available as soon as memblock is initialized.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M`hj9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ'memblock_set_current_limit (C function)”Œc.memblock_set_current_limit”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ3void memblock_set_current_limit (phys_addr_t limit)”h]”j€)�”}”(hŒ2void memblock_set_current_limit(phys_addr_t limit)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j7hj3h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Möubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj3h²hh³jHh´Möubj©)�”}”(hŒmemblock_set_current_limit”h]”j¯)�”}”(hŒmemblock_set_current_limit”h]”hŒmemblock_set_current_limit”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjWubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj3h²hh³jHh´MöubhŒdesc_parameterlist”“”)�”}”(hŒ(phys_addr_t limit)”h]”hŒdesc_parameter”“”)�”}”(hŒphys_addr_t limit”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj{ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”Œ identifier”Œ reftarget”j€Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j™Œ ASTIdentifier”“”)�”}”j”j]sbŒc.memblock_set_current_limit”†”asbuh1hhjwubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjwubj¯)�”}”(hŒlimit”h]”hŒlimit”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjqubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj3h²hh³jHh´Möubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj/h²hh³jHh´Möubah}”(h]”j*ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jHh´Möhj,h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒjSet the current allocation limit to allow limiting allocations to what is currently accessible during boot”h]”hŒjSet the current allocation limit to allow limiting allocations to what is currently accessible during boot”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MöhjÛh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj,h²hh³jHh´Möubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjöjÿjöj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒJ**Parameters** ``phys_addr_t limit`` New limit value (physical address)”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Múhjúubj")�”}”(hhh]”j')�”}”(hŒ8``phys_addr_t limit`` New limit value (physical address)”h]”(j-)�”}”(hŒ``phys_addr_t limit``”h]”hä)�”}”(hjh]”hŒphys_addr_t limit”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MühjubjG)�”}”(hhh]”hÌ)�”}”(hŒ"New limit value (physical address)”h]”hŒ"New limit value (physical address)”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mùhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j4h´Mühjubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hjúubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ,memblock_region_memory_base_pfn (C function)”Œ!c.memblock_region_memory_base_pfn”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒQunsigned long memblock_region_memory_base_pfn (const struct memblock_region *reg)”h]”j€)�”}”(hŒPunsigned long memblock_region_memory_base_pfn(const struct memblock_region *reg)”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjuh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjuh²hh³j‡h´M ubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjuh²hh³j‡h´M ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjuh²hh³j‡h´M ubj©)�”}”(hŒmemblock_region_memory_base_pfn”h]”j¯)�”}”(hŒmemblock_region_memory_base_pfn”h]”hŒmemblock_region_memory_base_pfn”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj²ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjuh²hh³j‡h´M ubjp)�”}”(hŒ#(const struct memblock_region *reg)”h]”jv)�”}”(hŒ!const struct memblock_region *reg”h]”(j†)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÎubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÎubj†)�”}”(hj\h]”hŒstruct”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÎubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÎubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_region”h]”hŒmemblock_region”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j¸sbŒ!c.memblock_region_memory_base_pfn”†”asbuh1hhjÎubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÎubhŒdesc_sig_punctuation”“”)�”}”(hj8h]”hŒ*”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j: hjÎubj¯)�”}”(hŒreg”h]”hŒreg”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÎubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÊubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjuh²hh³j‡h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjqh²hh³j‡h´M ubah}”(h]”jlah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j‡h´M hjnh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ'get the lowest pfn of the memory region”h]”hŒ'get the lowest pfn of the memory region”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hjq h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjnh²hh³j‡h´M ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjŒ jÿjŒ j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ‘**Parameters** ``const struct memblock_region *reg`` memblock_region structure **Return** the lowest pfn intersecting with the memory region”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj� ubj")�”}”(hhh]”j')�”}”(hŒ@``const struct memblock_region *reg`` memblock_region structure ”h]”(j-)�”}”(hŒ%``const struct memblock_region *reg``”h]”hä)�”}”(hjµ h]”hŒ!const struct memblock_region *reg”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj³ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj¯ ubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock_region structure”h]”hŒmemblock_region structure”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÊ h´M hjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¯ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÊ h´M hj¬ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj� ubhÌ)�”}”(hŒ2the lowest pfn intersecting with the memory region”h]”hŒ2the lowest pfn intersecting with the memory region”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj� ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ+memblock_region_memory_end_pfn (C function)”Œ c.memblock_region_memory_end_pfn”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒPunsigned long memblock_region_memory_end_pfn (const struct memblock_region *reg)”h]”j€)�”}”(hŒOunsigned long memblock_region_memory_end_pfn(const struct memblock_region *reg)”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj5!h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj1!h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD!h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj1!h²hh³jC!h´Mubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjR!h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj1!h²hh³jC!h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`!h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj1!h²hh³jC!h´Mubj©)�”}”(hŒmemblock_region_memory_end_pfn”h]”j¯)�”}”(hŒmemblock_region_memory_end_pfn”h]”hŒmemblock_region_memory_end_pfn”…”�”}”(hjr!h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjn!ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj1!h²hh³jC!h´Mubjp)�”}”(hŒ#(const struct memblock_region *reg)”h]”jv)�”}”(hŒ!const struct memblock_region *reg”h]”(j†)�”}”(hjÔh]”hŒconst”…”�”}”(hjŽ!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŠ!ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›!h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjŠ!ubj†)�”}”(hj\h]”hŒstruct”…”�”}”(hj©!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŠ!ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶!h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjŠ!ubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_region”h]”hŒmemblock_region”…”�”}”(hjÇ!h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÄ!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÉ!Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jt!sbŒ c.memblock_region_memory_end_pfn”†”asbuh1hhjŠ!ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç!h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjŠ!ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjõ!h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjŠ!ubj¯)�”}”(hŒreg”h]”hŒreg”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjŠ!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj†!ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj1!h²hh³jC!h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj-!h²hh³jC!h´Mubah}”(h]”j(!ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jC!h´Mhj*!h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ$get the end pfn of the memory region”h]”hŒ$get the end pfn of the memory region”…”�”}”(hj,"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhj)"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj*!h²hh³jC!h´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjD"jÿjD"j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ�**Parameters** ``const struct memblock_region *reg`` memblock_region structure **Return** the end_pfn of the reserved region”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjN"h]”hŒ Parameters”…”�”}”(hjP"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjL"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjH"ubj")�”}”(hhh]”j')�”}”(hŒ@``const struct memblock_region *reg`` memblock_region structure ”h]”(j-)�”}”(hŒ%``const struct memblock_region *reg``”h]”hä)�”}”(hjm"h]”hŒ!const struct memblock_region *reg”…”�”}”(hjo"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjk"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhjg"ubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock_region structure”h]”hŒmemblock_region structure”…”�”}”(hj†"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j‚"h´Mhjƒ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjg"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‚"h´Mhjd"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hjH"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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjH"ubhÌ)�”}”(hŒ"the end_pfn of the reserved region”h]”hŒ"the end_pfn of the reserved region”…”�”}”(hj¾"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MhjH"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ.memblock_region_reserved_base_pfn (C function)”Œ#c.memblock_region_reserved_base_pfn”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒSunsigned long memblock_region_reserved_base_pfn (const struct memblock_region *reg)”h]”j€)�”}”(hŒRunsigned long memblock_region_reserved_base_pfn(const struct memblock_region *reg)”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjí"h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjé"h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü"h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjé"h²hh³jû"h´Mubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjé"h²hh³jû"h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjé"h²hh³jû"h´Mubj©)�”}”(hŒ!memblock_region_reserved_base_pfn”h]”j¯)�”}”(hŒ!memblock_region_reserved_base_pfn”h]”hŒ!memblock_region_reserved_base_pfn”…”�”}”(hj*#h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj&#ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjé"h²hh³jû"h´Mubjp)�”}”(hŒ#(const struct memblock_region *reg)”h]”jv)�”}”(hŒ!const struct memblock_region *reg”h]”(j†)�”}”(hjÔh]”hŒconst”…”�”}”(hjF#h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjB#ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS#h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjB#ubj†)�”}”(hj\h]”hŒstruct”…”�”}”(hja#h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjB#ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn#h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjB#ubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_region”h]”hŒmemblock_region”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj|#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j�#Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j,#sbŒ#c.memblock_region_reserved_base_pfn”†”asbuh1hhjB#ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ#h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjB#ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj­#h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjB#ubj¯)�”}”(hŒreg”h]”hŒreg”…”�”}”(hjº#h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjB#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj>#ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjé"h²hh³jû"h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjå"h²hh³jû"h´Mubah}”(h]”jà"ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jû"h´Mhjâ"h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ)get the lowest pfn of the reserved region”h]”hŒ)get the lowest pfn of the reserved region”…”�”}”(hjä#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´Mhjá#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjâ"h²hh³jû"h´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjü#jÿjü#j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ“**Parameters** ``const struct memblock_region *reg`` memblock_region structure **Return** the lowest pfn intersecting with the reserved region”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M#hj$ubj")�”}”(hhh]”j')�”}”(hŒ@``const struct memblock_region *reg`` memblock_region structure ”h]”(j-)�”}”(hŒ%``const struct memblock_region *reg``”h]”hä)�”}”(hj%$h]”hŒ!const struct memblock_region *reg”…”�”}”(hj'$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj#$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M hj$ubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock_region structure”h]”hŒmemblock_region structure”…”�”}”(hj>$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j:$h´M hj;$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j:$h´M hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hj$ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj`$h]”hŒReturn”…”�”}”(hjb$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj^$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M"hj$ubhÌ)�”}”(hŒ4the lowest pfn intersecting with the reserved region”h]”hŒ4the lowest pfn intersecting with the reserved region”…”�”}”(hjv$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M"hj$ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ-memblock_region_reserved_end_pfn (C function)”Œ"c.memblock_region_reserved_end_pfn”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒRunsigned long memblock_region_reserved_end_pfn (const struct memblock_region *reg)”h]”j€)�”}”(hŒQunsigned long memblock_region_reserved_end_pfn(const struct memblock_region *reg)”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¥$h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¡$h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M*ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´$h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¡$h²hh³j³$h´M*ubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjÂ$h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¡$h²hh³j³$h´M*ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐ$h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¡$h²hh³j³$h´M*ubj©)�”}”(hŒ memblock_region_reserved_end_pfn”h]”j¯)�”}”(hŒ memblock_region_reserved_end_pfn”h]”hŒ memblock_region_reserved_end_pfn”…”�”}”(hjâ$h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÞ$ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj¡$h²hh³j³$h´M*ubjp)�”}”(hŒ#(const struct memblock_region *reg)”h]”jv)�”}”(hŒ!const struct memblock_region *reg”h]”(j†)�”}”(hjÔh]”hŒconst”…”�”}”(hjþ$h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjú$ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjú$ubj†)�”}”(hj\h]”hŒstruct”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjú$ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&%h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjú$ubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_region”h]”hŒmemblock_region”…”�”}”(hj7%h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj4%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j9%Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jä$sbŒ"c.memblock_region_reserved_end_pfn”†”asbuh1hhjú$ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW%h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjú$ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hje%h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjú$ubj¯)�”}”(hŒreg”h]”hŒreg”…”�”}”(hjr%h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjú$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjö$ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj¡$h²hh³j³$h´M*ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj�$h²hh³j³$h´M*ubah}”(h]”j˜$ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j³$h´M*hjš$h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ&get the end pfn of the reserved region”h]”hŒ&get the end pfn of the reserved region”…”�”}”(hjœ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M*hj™%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjš$h²hh³j³$h´M*ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj´%jÿj´%j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ�**Parameters** ``const struct memblock_region *reg`` memblock_region structure **Return** the end_pfn of the reserved region”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M.hj¸%ubj")�”}”(hhh]”j')�”}”(hŒ@``const struct memblock_region *reg`` memblock_region structure ”h]”(j-)�”}”(hŒ%``const struct memblock_region *reg``”h]”hä)�”}”(hjÝ%h]”hŒ!const struct memblock_region *reg”…”�”}”(hjß%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÛ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M+hj×%ubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock_region structure”h]”hŒmemblock_region structure”…”�”}”(hjö%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jò%h´M+hjó%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj×%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jò%h´M+hjÔ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M-hj¸%ubhÌ)�”}”(hŒ"the end_pfn of the reserved region”•h]”hŒ"the end_pfn of the reserved region”…”�”}”(hj.&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M-hj¸%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒfor_each_mem_region (C macro)”Œc.for_each_mem_region”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_mem_region”h]”j€)�”}”(hŒfor_each_mem_region”h]”j©)�”}”(hŒfor_each_mem_region”h]”j¯)�”}”(hjW&h]”hŒfor_each_mem_region”…”�”}”(hja&h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj]&ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjY&h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M5ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjU&h²hh³jt&h´M5ubah}”(h]”jP&ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jt&h´M5hjR&h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjR&h²hh³jt&h´M5ubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþj�&jÿj�&j‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ ``for_each_mem_region (region)``”h]”hä)�”}”(hj“&h]”hŒfor_each_mem_region (region)”…”�”}”(hj•&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‘&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M7hjDh²hubjÿ )�”}”(hŒiterate over memory regions ”h]”hÌ)�”}”(hŒiterate over memory regions”h]”hŒiterate over memory regions”…”�”}”(hj­&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M5hj©&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j»&h´M5hjDh²hubj)�”}”(hŒ***Parameters** ``region`` loop variable”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M9hjÂ&ubj")�”}”(hhh]”j')�”}”(hŒ``region`` loop variable”h]”(j-)�”}”(hŒ ``region``”h]”hä)�”}”(hjç&h]”hŒregion”…”�”}”(hjé&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjå&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M;hjá&ubjG)�”}”(hhh]”hÌ)�”}”(hŒ loop variable”h]”hŒ loop variable”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M6hjý&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjá&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jü&h´M;hjÞ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÂ&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ&for_each_reserved_mem_region (C macro)”Œc.for_each_reserved_mem_region”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒfor_each_reserved_mem_region”h]”j€)�”}”(hŒfor_each_reserved_mem_region”h]”j©)�”}”(hŒfor_each_reserved_mem_region”h]”j¯)�”}”(hj;'h]”hŒfor_each_reserved_mem_region”…”�”}”(hjE'h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjA'ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj='h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M>ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj9'h²hh³jX'h´M>ubah}”(h]”j4'ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jX'h´M>hj6'h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj6'h²hh³jX'h´M>ubeh}”(h]”h ]”(jŒmacro”eh"]”h$]”h&]”jýjjþjq'jÿjq'j‰j‰j‰uh1jth²hhjDh³Nh´NubhÌ)�”}”(hŒ)``for_each_reserved_mem_region (region)``”h]”hä)�”}”(hjw'h]”hŒ%for_each_reserved_mem_region (region)”…”�”}”(hjy'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhju'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M@hjDh²hubjÿ )�”}”(hŒ&itereate over reserved memory regions ”h]”hÌ)�”}”(hŒ%itereate over reserved memory regions”h]”hŒ%itereate over reserved memory regions”…”�”}”(hj‘'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M>hj�'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jŸ'h´M>hjDh²hubj)�”}”(hŒ***Parameters** ``region`` loop variable”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³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MBhj¦'ubj")�”}”(hhh]”j')�”}”(hŒ``region`` loop variable”h]”(j-)�”}”(hŒ ``region``”h]”hä)�”}”(hjË'h]”hŒregion”…”�”}”(hjÍ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÉ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´MDhjÅ'ubjG)�”}”(hhh]”hÌ)�”}”(hŒ loop variable”h]”hŒ loop variable”…”�”}”(hjä'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:39: ./include/linux/memblock.h”h´M?hjá'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÅ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jà'h´MDhjÂ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¦'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ,__memblock_find_range_bottom_up (C function)”Œ!c.__memblock_find_range_bottom_up”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ©phys_addr_t __init_memblock __memblock_find_range_bottom_up (phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align, int nid, enum memblock_flags flags)”h]”j€)�”}”(hŒ¨phys_addr_t __init_memblock __memblock_find_range_bottom_up(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align, int nid, enum memblock_flags flags)”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj((h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj%(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j*(Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”Œ__memblock_find_range_bottom_up”sbŒ!c.__memblock_find_range_bottom_up”†”asbuh1hhj!(h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´K×ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJ(h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj!(h²hh³jI(h´K×ubhŒ__init_memblock”…”�”}”(hj!(h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\(h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj!(h²hh³jI(h´K×ubj©)�”}”(hŒ__memblock_find_range_bottom_up”h]”j¯)�”}”(hjF(h]”hŒ__memblock_find_range_bottom_up”…”�”}”(hjn(h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjj(ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj!(h²hh³jI(h´K×ubjp)�”}”(hŒm(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align, int nid, enum memblock_flags flags)”h]”(jv)�”}”(hŒphys_addr_t start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjŒ(h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‰(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jŽ(Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jD(Œ!c.__memblock_find_range_bottom_up”†”asbuh1hhj…(ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª(h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj…(ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj¸(h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj…(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj�(ubjv)�”}”(hŒphys_addr_t end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÔ(h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÑ(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÖ(Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jD(Œ!c.__memblock_find_range_bottom_up”†”asbuh1hhjÍ(ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò(h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÍ(ubj¯)�”}”(hŒend”h]”hŒend”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÍ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj�(ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j)Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jD(Œ!c.__memblock_find_range_bottom_up”†”asbuh1hhj)ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:)h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj)ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjH)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj�(ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjd)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hja)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jf)Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jD(Œ!c.__memblock_find_range_bottom_up”†”asbuh1hhj])ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚)h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj])ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hj�)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj])ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj�(ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj©)h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¥)ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·)h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¥)ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjÅ)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¥)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj�(ubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjÞ)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÚ)ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë)h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÚ)ubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hjü)h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjù)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jþ)Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jD(Œ!c.__memblock_find_range_bottom_up”†”asbuh1hhjÚ)ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÚ)ubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj(*h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÚ)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj�(ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj!(h²hh³jI(h´K×ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj(h²hh³jI(h´K×ubah}”(h]”j(ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jI(h´K×hj(h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ#find free area utility in bottom-up”h]”hŒ#find free area utility in bottom-up”…”�”}”(hjR*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´K×hjO*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj(h²hh³jI(h´K×ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjj*jÿjj*j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXK**Parameters** ``phys_addr_t start`` start of candidate range ``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ``phys_addr_t size`` size of free area to find ``phys_addr_t align`` alignment of free area to find ``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ``enum memblock_flags flags`` pick from blocks based on memory attributes **Description** Utility called from memblock_find_in_range_node(), find free area bottom-up. **Return** Found address on success, 0 on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjt*h]”hŒ Parameters”…”�”}”(hjv*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjr*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÛhjn*ubj")�”}”(hhh]”(j')�”}”(hŒ/``phys_addr_t start`` start of candidate range ”h]”(j-)�”}”(hŒ``phys_addr_t start``”h]”hä)�”}”(hj“*h]”hŒphys_addr_t start”…”�”}”(hj•*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‘*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KØhj�*ubjG)�”}”(hhh]”hÌ)�”}”(hŒstart of candidate range”h]”hŒstart of candidate range”…”�”}”(hj¬*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¨*h´KØhj©*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¨*h´KØhjŠ*ubj')�”}”(hŒp``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ”h]”(j-)�”}”(hŒ``phys_addr_t end``”h]”hä)�”}”(hjÌ*h]”hŒphys_addr_t end”…”�”}”(hjÎ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÊ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÚhjÆ*ubjG)�”}”(hhh]”hÌ)�”}”(hŒ[end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”(hŒend of candidate range, can be ”…”�”}”(hjå*h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ANYWHERE``”h]”hŒMEMBLOCK_ALLOC_ANYWHERE”…”�”}”(hjí*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjå*ubhŒ or ”…”�”}”(hjå*h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(hjÿ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjå*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÙhjâ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÆ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³já*h´KÚhjŠ*ubj')�”}”(hŒ/``phys_addr_t size`` size of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hj&+h]”hŒphys_addr_t size”…”�”}”(hj(+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj$+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÛhj +ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of free area to find”h]”hŒsize of free area to find”…”�”}”(hj?+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j;+h´KÛhj<+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj +ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j;+h´KÛhjŠ*ubj')�”}”(hŒ5``phys_addr_t align`` alignment of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hj_+h]”hŒphys_addr_t align”…”�”}”(hja+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj]+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÜhjY+ubjG)�”}”(hhh]”hÌ)�”}”(hŒalignment of free area to find”h]”hŒalignment of free area to find”…”�”}”(hjx+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jt+h´KÜhju+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjY+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jt+h´KÜhjŠ*ubj')�”}”(hŒH``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hj˜+h]”hŒint nid”…”�”}”(hjš+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj–+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÝhj’+ubjG)�”}”(hhh]”hÌ)�”}”(hŒ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hj±+h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hj¹+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj±+ubhŒ for any node”…”�”}”(hj±+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j­+h´KÝhj®+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj’+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j­+h´KÝhjŠ*ubj')�”}”(hŒJ``enum memblock_flags flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hjã+h]”hŒenum memblock_flags flags”…”�”}”(hjå+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjá+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KÞhjÝ+ubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hjü+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jø+h´KÞhjù+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÝ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jø+h´KÞhjŠ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjn*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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kàhjn*ubhÌ)�”}”(hŒLUtility called from memblock_find_in_range_node(), find free area bottom-up.”h]”hŒLUtility called from memblock_find_in_range_node(), find free area bottom-up.”…”�”}”(hj4,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kßhjn*ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjE,h]”hŒReturn”…”�”}”(hjG,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjC,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Káhjn*ubhÌ)�”}”(hŒ'Found address on success, 0 on failure.”h]”hŒ'Found address on success, 0 on failure.”…”�”}”(hj[,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kâhjn*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ+__memblock_find_range_top_down (C function)”Œ c.__memblock_find_range_top_down”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ¨phys_addr_t __init_memblock __memblock_find_range_top_down (phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align, int nid, enum memblock_flags flags)”h]”j€)�”}”(hŒ§phys_addr_t __init_memblock __memblock_find_range_top_down(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align, int nid, enum memblock_flags flags)”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj�,h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjŠ,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j�,Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”Œ__memblock_find_range_top_down”sbŒ c.__memblock_find_range_top_down”†”asbuh1hhj†,h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.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úubhŒ__init_memblock”…”�”}”(hj†,h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ,h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj†,h²hh³j®,h´Kúubj©)�”}”(hŒ__memblock_find_range_top_down”h]”j¯)�”}”(hj«,h]”hŒ__memblock_find_range_top_down”…”�”}”(hjÓ,h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÏ,ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj†,h²hh³j®,h´Kúubjp)�”}”(hŒm(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align, int nid, enum memblock_flags flags)”h]”(jv)�”}”(hŒphys_addr_t start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjñ,h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjî,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jó,Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j©,Œ c.__memblock_find_range_top_down”†”asbuh1hhjê,ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjê,ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjê,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjæ,ubjv)�”}”(hŒphys_addr_t end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj9-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj6-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j;-Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j©,Œ c.__memblock_find_range_top_down”†”asbuh1hhj2-ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW-h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj2-ubj¯)�”}”(hŒend”h]”hŒend”…”�”}”(hje-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj2-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjæ,ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj�-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj~-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jƒ-Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j©,Œ c.__memblock_find_range_top_down”†”asbuh1hhjz-ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ-h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjz-ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj­-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjz-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjæ,ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÉ-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÆ-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jË-Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j©,Œ c.__memblock_find_range_top_down”†”asbuh1hhjÂ-ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç-h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÂ-ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hjõ-h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÂ-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjæ,ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj .ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj .ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hj*.h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj .ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjæ,ubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjC.h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj?.ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP.h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj?.ubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hja.h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj^.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jc.Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j©,Œ c.__memblock_find_range_top_down”†”asbuh1hhj?.ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj?.ubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj�.h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj?.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjæ,ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj†,h²hh³j®,h´Kúubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj‚,h²hh³j®,h´Kúubah}”(h]”j},ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j®,h´Kúhj,h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ#find free area utility, in top-down”h]”hŒ#find free area utility, in top-down”…”�”}”(hj·.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.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ýjjþjÏ.jÿjÏ.j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXJ**Parameters** ``phys_addr_t start`` start of candidate range ``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ``phys_addr_t size`` size of free area to find ``phys_addr_t align`` alignment of free area to find ``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ``enum memblock_flags flags`` pick from blocks based on memory attributes **Description** Utility called from memblock_find_in_range_node(), find free area top-down. **Return** Found address on success, 0 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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KþhjÓ.ubj")�”}”(hhh]”(j')�”}”(hŒ/``phys_addr_t start`` start of candidate range ”h]”(j-)�”}”(hŒ``phys_addr_t start``”h]”hä)�”}”(hjø.h]”hŒphys_addr_t start”…”�”}”(hjú.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjö.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kûhjò.ubjG)�”}”(hhh]”hÌ)�”}”(hŒstart of candidate range”h]”hŒstart of candidate range”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j /h´Kûhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjò.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j /h´Kûhjï.ubj')�”}”(hŒp``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ”h]”(j-)�”}”(hŒ``phys_addr_t end``”h]”hä)�”}”(hj1/h]”hŒphys_addr_t end”…”�”}”(hj3/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj//ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kýhj+/ubjG)�”}”(hhh]”hÌ)�”}”(hŒ[end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”(hŒend of candidate range, can be ”…”�”}”(hjJ/h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ANYWHERE``”h]”hŒMEMBLOCK_ALLOC_ANYWHERE”…”�”}”(hjR/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjJ/ubhŒ or ”…”�”}”(hjJ/h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(hjd/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjJ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´KühjG/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj+/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jF/h´Kýhjï.ubj')�”}”(hŒ/``phys_addr_t size`` size of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hj‹/h]”hŒphys_addr_t size”…”�”}”(hj�/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‰/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kþhj…/ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of free area to find”h]”hŒsize of free area to find”…”�”}”(hj¤/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j /h´Kþhj¡/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj…/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j /h´Kþhjï.ubj')�”}”(hŒ5``phys_addr_t align`` alignment of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hjÄ/h]”hŒphys_addr_t align”…”�”}”(hjÆ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÂ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Kÿhj¾/ubjG)�”}”(hhh]”hÌ)�”}”(hŒalignment of free area to find”h]”hŒalignment of free area to find”…”�”}”(hjÝ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÙ/h´KÿhjÚ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¾/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÙ/h´Kÿhjï.ubj')�”}”(hŒH``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjý/h]”hŒint nid”…”�”}”(hjÿ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjû/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj÷/ubjG)�”}”(hhh]”hÌ)�”}”(hŒ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hj0h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj0ubhŒ for any node”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j0h´Mhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj÷/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j0h´Mhjï.ubj')�”}”(hŒJ``enum memblock_flags flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hjH0h]”hŒenum memblock_flags flags”…”�”}”(hjJ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjF0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjB0ubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hja0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j]0h´Mhj^0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjB0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j]0h´Mhjï.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÓ.ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjƒ0h]”hŒ Description”…”�”}”(hj…0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÓ.ubhÌ)�”}”(hŒKUtility called from memblock_find_in_range_node(), find free area top-down.”h]”hŒKUtility called from memblock_find_in_range_node(), find free area top-down.”…”�”}”(hj™0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÓ.ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjª0h]”hŒReturn”…”�”}”(hj¬0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¨0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÓ.ubhÌ)�”}”(hŒ'Found address on success, 0 on failure.”h]”hŒ'Found address on success, 0 on failure.”…”�”}”(hjÀ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÓ.ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ(memblock_find_in_range_node (C function)”Œc.memblock_find_in_range_node”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ¥phys_addr_t __init_memblock memblock_find_in_range_node (phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid, enum memblock_flags flags)”h]”j€)�”}”(hŒ¤phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid, enum memblock_flags flags)”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjò0h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjï0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jô0Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”Œmemblock_find_in_range_node”sbŒc.memblock_find_in_range_node”†”asbuh1hhjë0h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M!ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjë0h²hh³j1h´M!ubhŒ__init_memblock”…”�”}”(hjë0h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&1h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjë0h²hh³j1h´M!ubj©)�”}”(hŒmemblock_find_in_range_node”h]”j¯)�”}”(hj1h]”hŒmemblock_find_in_range_node”…”�”}”(hj81h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj41ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjë0h²hh³j1h´M!ubjp)�”}”(hŒm(phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid, enum memblock_flags flags)”h]”(jv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjV1h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjS1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jX1Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j1Œc.memblock_find_in_range_node”†”asbuh1hhjO1ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt1h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjO1ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj‚1h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjO1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjK1ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjž1h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj›1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j 1Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j1Œc.memblock_find_in_range_node”†”asbuh1hhj—1ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼1h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj—1ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hjÊ1h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj—1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjK1ubjv)�”}”(hŒphys_addr_t start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjæ1h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjã1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jè1Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j1Œc.memblock_find_in_range_node”†”asbuh1hhjß1ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjß1ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjß1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjK1ubjv)�”}”(hŒphys_addr_t end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj.2h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj+2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j02Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j1Œc.memblock_find_in_range_node”†”asbuh1hhj'2ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL2h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj'2ubj¯)�”}”(hŒend”h]”hŒend”…”�”}”(hjZ2h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj'2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjK1ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjs2h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjo2ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�2h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjo2ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hj�2h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjo2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjK1ubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hj¨2h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¤2ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµ2h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¤2ubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hjÆ2h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÃ2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÈ2Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j1Œc.memblock_find_in_range_node”†”asbuh1hhj¤2ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä2h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¤2ubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjò2h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¤2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjK1ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjë0h²hh³j1h´M!ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjç0h²hh³j1h´M!ubah}”(h]”jâ0ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j1h´M!hjä0h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ&find free area in given range and node”h]”hŒ&find free area in given range and node”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M!hj3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjä0h²hh³j1h´M!ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj43jÿj43j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXL**Parameters** ``phys_addr_t size`` size of free area to find ``phys_addr_t align`` alignment of free area to find ``phys_addr_t start`` start of candidate range ``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ``enum memblock_flags flags`` pick from blocks based on memory attributes **Description** Find **size** free area aligned to **align** in the specified range and node. **Return** Found address on success, 0 on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj>3h]”hŒ Parameters”…”�”}”(hj@3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj<3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M%hj83ubj")�”}”(hhh]”(j')�”}”(hŒ/``phys_addr_t size`` size of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hj]3h]”hŒphys_addr_t size”…”�”}”(hj_3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj[3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M"hjW3ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of free area to find”h]”hŒsize of free area to find”…”�”}”(hjv3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jr3h´M"hjs3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjW3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jr3h´M"hjT3ubj')�”}”(hŒ5``phys_addr_t align`` alignment of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hj–3h]”hŒphys_addr_t align”…”�”}”(hj˜3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj”3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M#hj�3ubjG)�”}”(hhh]”hÌ)�”}”(hŒalignment of free area to find”h]”hŒalignment of free area to find”…”�”}”(hj¯3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j«3h´M#hj¬3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j«3h´M#hjT3ubj')�”}”(hŒ/``phys_addr_t start`` start of candidate range ”h]”(j-)�”}”(hŒ``phys_addr_t start``”h]”hä)�”}”(hjÏ3h]”hŒphys_addr_t start”…”�”}”(hjÑ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÍ3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M$hjÉ3ubjG)�”}”(hhh]”hÌ)�”}”(hŒstart of candidate range”h]”hŒstart of candidate range”…”�”}”(hjè3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jä3h´M$hjå3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÉ3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jä3h´M$hjT3ubj')�”}”(hŒp``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ”h]”(j-)�”}”(hŒ``phys_addr_t end``”h]”hä)�”}”(hj4h]”hŒphys_addr_t end”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M&hj4ubjG)�”}”(hhh]”hÌ)�”}”(hŒ[end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”(hŒend of candidate range, can be ”…”�”}”(hj!4h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ANYWHERE``”h]”hŒMEMBLOCK_ALLOC_ANYWHERE”…”�”}”(hj)4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj!4ubhŒ or ”…”�”}”(hj!4h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(hj;4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj!4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M%hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j4h´M&hjT3ubj')�”}”(hŒH``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjb4h]”hŒint nid”…”�”}”(hjd4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj`4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M'hj\4ubjG)�”}”(hhh]”hÌ)�”}”(hŒ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hj{4h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjƒ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj{4ubhŒ for any node”…”�”}”(hj{4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jw4h´M'hjx4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj\4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jw4h´M'hjT3ubj')�”}”(hŒJ``enum memblock_flags flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hj­4h]”hŒenum memblock_flags flags”…”�”}”(hj¯4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj«4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M(hj§4ubjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hjÆ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÂ4h´M(hjÃ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj§4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÂ4h´M(hjT3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj83ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjè4h]”hŒ Description”…”�”}”(hjê4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjæ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M*hj83ubhÌ)�”}”(hŒMFind **size** free area aligned to **align** in the specified range and node.”h]”(hŒFind ”…”�”}”(hjþ4h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþ4ubhŒ free area aligned to ”…”�”}”(hjþ4h²hh³Nh´Nubj¬)�”}”(hŒ **align**”h]”hŒalign”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþ4ubhŒ! in the specified range and node.”…”�”}”(hjþ4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M)hj83ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj35h]”hŒReturn”…”�”}”(hj55h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj15ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M+hj83ubhÌ)�”}”(hŒ'Found address on success, 0 on failure.”h]”hŒ'Found address on success, 0 on failure.”…”�”}”(hjI5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M,hj83ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_find_in_range (C function)”Œc.memblock_find_in_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ|phys_addr_t __init_memblock memblock_find_in_range (phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align)”h]”j€)�”}”(hŒ{phys_addr_t __init_memblock memblock_find_in_range(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align)”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj{5h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjx5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j}5Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”Œmemblock_find_in_range”sbŒc.memblock_find_in_range”†”asbuh1hhjt5h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MFubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjt5h²hh³jœ5h´MFubhŒ__init_memblock”…”�”}”(hjt5h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯5h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjt5h²hh³jœ5h´MFubj©)�”}”(hŒmemblock_find_in_range”h]”j¯)�”}”(hj™5h]”hŒmemblock_find_in_range”…”�”}”(hjÁ5h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj½5ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjt5h²hh³jœ5h´MFubjp)�”}”(hŒI(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align)”h]”(jv)�”}”(hŒphys_addr_t start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjß5h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÜ5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”já5Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j—5Œc.memblock_find_in_range”†”asbuh1hhjØ5ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý5h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjØ5ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjØ5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÔ5ubjv)�”}”(hŒphys_addr_t end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj'6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj$6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j)6Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j—5Œc.memblock_find_in_range”†”asbuh1hhj 6ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE6h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj 6ubj¯)�”}”(hŒend”h]”hŒend”…”�”}”(hjS6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj 6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÔ5ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjo6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjl6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jq6Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j—5Œc.memblock_find_in_range”†”asbuh1hhjh6ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�6h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjh6ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj›6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjh6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÔ5ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj·6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj´6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j¹6Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j—5Œc.memblock_find_in_range”†”asbuh1hhj°6ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ6h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj°6ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hjã6h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj°6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÔ5ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjt5h²hh³jœ5h´MFubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjp5h²hh³jœ5h´MFubah}”(h]”jk5ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jœ5h´MFhjm5h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒfind free area in given range”h]”hŒfind free area in given range”…”�”}”(hj 7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MFhj 7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjm5h²hh³jœ5h´MFubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj%7jÿj%7j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX«**Parameters** ``phys_addr_t start`` start of candidate range ``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ``phys_addr_t size`` size of free area to find ``phys_addr_t align`` alignment of free area to find **Description** Find **size** free area aligned to **align** in the specified range. **Return** Found address on success, 0 on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj/7h]”hŒ Parameters”…”�”}”(hj17h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj-7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MJhj)7ubj")�”}”(hhh]”(j')�”}”(hŒ/``phys_addr_t start`` start of candidate range ”h]”(j-)�”}”(hŒ``phys_addr_t start``”h]”hä)�”}”(hjN7h]”hŒphys_addr_t start”…”�”}”(hjP7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjL7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MGhjH7ubjG)�”}”(hhh]”hÌ)�”}”(hŒstart of candidate range”h]”hŒstart of candidate range”…”�”}”(hjg7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jc7h´MGhjd7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjH7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jc7h´MGhjE7ubj')�”}”(hŒp``phys_addr_t end`` end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE`` ”h]”(j-)�”}”(hŒ``phys_addr_t end``”h]”hä)�”}”(hj‡7h]”hŒphys_addr_t end”…”�”}”(hj‰7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj…7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MIhj�7ubjG)�”}”(hhh]”hÌ)�”}”(hŒ[end of candidate range, can be ``MEMBLOCK_ALLOC_ANYWHERE`` or ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”(hŒend of candidate range, can be ”…”�”}”(hj 7h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ANYWHERE``”h]”hŒMEMBLOCK_ALLOC_ANYWHERE”…”�”}”(hj¨7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj 7ubhŒ or ”…”�”}”(hj 7h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(hjº7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj 7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MHhj�7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jœ7h´MIhjE7ubj')�”}”(hŒ/``phys_addr_t size`` size of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjá7h]”hŒphys_addr_t size”…”�”}”(hjã7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjß7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MJhjÛ7ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of free area to find”h]”hŒsize of free area to find”…”�”}”(hjú7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jö7h´MJhj÷7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÛ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jö7h´MJhjE7ubj')�”}”(hŒ5``phys_addr_t align`` alignment of free area to find ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hj8h]”hŒphys_addr_t align”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MKhj8ubjG)�”}”(hhh]”hÌ)�”}”(hŒalignment of free area to find”h]”hŒalignment of free area to find”…”�”}”(hj38h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j/8h´MKhj08ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j/8h´MKhjE7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj)7ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjU8h]”hŒ Description”…”�”}”(hjW8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjS8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MMhj)7ubhÌ)�”}”(hŒDFind **size** free area aligned to **align** in the specified range.”h]”(hŒFind ”…”�”}”(hjk8h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjs8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjk8ubhŒ free area aligned to ”…”�”}”(hjk8h²hh³Nh´Nubj¬)�”}”(hŒ **align**”h]”hŒalign”…”�”}”(hj…8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjk8ubhŒ in the specified range.”…”�”}”(hjk8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MLhj)7ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj 8h]”hŒReturn”…”�”}”(hj¢8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjž8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MNhj)7ubhÌ)�”}”(hŒ'Found address on success, 0 on failure.”h]”hŒ'Found address on success, 0 on failure.”…”�”}”(hj¶8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MOhj)7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_discard (C function)”Œc.memblock_discard”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒvoid memblock_discard (void)”h]”j€)�”}”(hŒvoid memblock_discard(void)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjå8h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjá8h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mzubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô8h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjá8h²hh³jó8h´Mzubj©)�”}”(hŒmemblock_discard”h]”j¯)�”}”(hŒmemblock_discard”h]”hŒmemblock_discard”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj9ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjá8h²hh³jó8h´Mzubjp)�”}”(hŒ(void)”h]”jv)�”}”(hŒvoid”h]”j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj"9h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj9ubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj9ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjá8h²hh³jó8h´Mzubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÝ8h²hh³jó8h´Mzubah}”(h]”jØ8ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jó8h´MzhjÚ8h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ9discard memory and reserved arrays if they were allocated”h]”hŒ9discard memory and reserved arrays if they were allocated”…”�”}”(hjL9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MzhjI9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÚ8h²hh³jó8h´Mzubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjd9jÿjd9j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ'**Parameters** ``void`` no arguments”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjn9h]”hŒ Parameters”…”�”}”(hjp9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjl9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M~hjh9ubj")�”}”(hhh]”j')�”}”(hŒ``void`` no arguments”h]”(j-)�”}”(hŒ``void``”h]”hä)�”}”(hj�9h]”hŒvoid”…”�”}”(hj�9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‹9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M€hj‡9ubjG)�”}”(hhh]”hÌ)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hj¦9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Khj£9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‡9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¢9h´M€hj„9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hjh9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ"memblock_double_array (C function)”Œc.memblock_double_array”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ}int __init_memblock memblock_double_array (struct memblock_type *type, phys_addr_t new_area_start, phys_addr_t new_area_size)”h]”j€)�”}”(hŒ|int __init_memblock memblock_double_array(struct memblock_type *type, phys_addr_t new_area_start, phys_addr_t new_area_size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjç9h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjã9h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mšubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö9h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjã9h²hh³jõ9h´MšubhŒ__init_memblock”…”�”}”(hjã9h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjã9h²hh³jõ9h´Mšubj©)�”}”(hŒmemblock_double_array”h]”j¯)�”}”(hŒmemblock_double_array”h]”hŒmemblock_double_array”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj:ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjã9h²hh³jõ9h´Mšubjp)�”}”(hŒS(struct memblock_type *type, phys_addr_t new_area_start, phys_addr_t new_area_size)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj6:h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj2:ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC:h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj2:ubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hjT:h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjQ:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jV:Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j:sbŒc.memblock_double_array”†”asbuh1hhj2:ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt:h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj2:ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj‚:h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj2:ubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj�:h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj2:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj.:ubjv)�”}”(hŒphys_addr_t new_area_start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj«:h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¨:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j­:Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jp:Œc.memblock_double_array”†”asbuh1hhj¤:ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ:h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¤:ubj¯)�”}”(hŒnew_area_start”h]”hŒnew_area_start”…”�”}”(hj×:h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¤:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj.:ubjv)�”}”(hŒphys_addr_t new_area_size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjó:h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjð:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jõ:Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jp:Œc.memblock_double_array”†”asbuh1hhjì:ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjì:ubj¯)�”}”(hŒ new_area_size”h]”hŒ new_area_size”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjì:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj.:ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjã9h²hh³jõ9h´Mšubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjß9h²hh³jõ9h´Mšubah}”(h]”jÚ9ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jõ9h´MšhjÜ9h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ-double the size of the memblock regions array”h]”hŒ-double the size of the memblock regions array”…”�”}”(hjI;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MšhjF;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÜ9h²hh³jõ9h´Mšubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþja;jÿja;j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX**Parameters** ``struct memblock_type *type`` memblock type of the regions array being doubled ``phys_addr_t new_area_start`` starting address of memory range to avoid overlap with ``phys_addr_t new_area_size`` size of memory range to avoid overlap with **Description** Double the size of the **type** regions array. If memblock is being used to allocate memory for a new reserved regions array and there is a previously allocated memory range [**new_area_start**, **new_area_start** + **new_area_size**] waiting to be reserved, ensure the memory used by the new array does not overlap. **Return** 0 on success, -1 on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjk;h]”hŒ Parameters”…”�”}”(hjm;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hji;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mžhje;ubj")�”}”(hhh]”(j')�”}”(hŒP``struct memblock_type *type`` memblock type of the regions array being doubled ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hjŠ;h]”hŒstruct memblock_type *type”…”�”}”(hjŒ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjˆ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M›hj„;ubjG)�”}”(hhh]”hÌ)�”}”(hŒ0memblock type of the regions array being doubled”h]”hŒ0memblock type of the regions array being doubled”…”�”}”(hj£;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jŸ;h´M›hj ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj„;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jŸ;h´M›hj�;ubj')�”}”(hŒV``phys_addr_t new_area_start`` starting address of memory range to avoid overlap with ”h]”(j-)�”}”(hŒ``phys_addr_t new_area_start``”h]”hä)�”}”(hjÃ;h]”hŒphys_addr_t new_area_start”…”�”}”(hjÅ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÁ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mœhj½;ubjG)�”}”(hhh]”hÌ)�”}”(hŒ6starting address of memory range to avoid overlap with”h]”hŒ6starting address of memory range to avoid overlap with”…”�”}”(hjÜ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jØ;h´MœhjÙ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj½;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jØ;h´Mœhj�;ubj')�”}”(hŒI``phys_addr_t new_area_size`` size of memory range to avoid overlap with ”h]”(j-)�”}”(hŒ``phys_addr_t new_area_size``”h]”hä)�”}”(hjü;h]”hŒphys_addr_t new_area_size”…”�”}”(hjþ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjú;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M�hjö;ubjG)�”}”(hhh]”hÌ)�”}”(hŒ*size of memory range to avoid overlap with”h]”hŒ*size of memory range to avoid overlap with”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j<h´M�hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjö;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j<h´M�hj�;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hje;ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj7<h]”hŒ Description”…”�”}”(hj9<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj5<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MŸhje;ubhÌ)�”}”(hX<Double the size of the **type** regions array. If memblock is being used to allocate memory for a new reserved regions array and there is a previously allocated memory range [**new_area_start**, **new_area_start** + **new_area_size**] waiting to be reserved, ensure the memory used by the new array does not overlap.”•h]”(hŒDouble the size of the ”…”�”}”(hjM<h²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjU<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjM<ubhŒ� regions array. If memblock is being used to allocate memory for a new reserved regions array and there is a previously allocated memory range [”…”�”}”(hjM<h²hh³Nh´Nubj¬)�”}”(hŒ**new_area_start**”h]”hŒnew_area_start”…”�”}”(hjg<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjM<ubhŒ, ”…”�”}”(hjM<h²hh³Nh´Nubj¬)�”}”(hŒ**new_area_start**”h]”hŒnew_area_start”…”�”}”(hjy<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjM<ubhŒ + ”…”�”}”(hjM<h²hh³Nh´Nubj¬)�”}”(hŒ**new_area_size**”h]”hŒ new_area_size”…”�”}”(hj‹<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjM<ubhŒS] waiting to be reserved, ensure the memory used by the new array does not overlap.”…”�”}”(hjM<h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mžhje;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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¤hje;ubhÌ)�”}”(hŒ0 on success, -1 on failure.”h]”hŒ0 on success, -1 on failure.”…”�”}”(hj¼<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¥hje;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_merge_regions (C function)”Œc.memblock_merge_regions”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒxvoid __init_memblock memblock_merge_regions (struct memblock_type *type, unsigned long start_rgn, unsigned long end_rgn)”h]”j€)�”}”(hŒwvoid __init_memblock memblock_merge_regions(struct memblock_type *type, unsigned long start_rgn, unsigned long end_rgn)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjë<h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjç<h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú<h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjç<h²hh³jù<h´M ubhŒ__init_memblock”…”�”}”(hjç<h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj =h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjç<h²hh³jù<h´M ubj©)�”}”(hŒmemblock_merge_regions”h]”j¯)�”}”(hŒmemblock_merge_regions”h]”hŒmemblock_merge_regions”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj=ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjç<h²hh³jù<h´M ubjp)�”}”(hŒL(struct memblock_type *type, unsigned long start_rgn, unsigned long end_rgn)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj:=h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj6=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG=h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj6=ubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hjX=h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjU=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jZ=Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j =sbŒc.memblock_merge_regions”†”asbuh1hhj6=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx=h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj6=ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj†=h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj6=ubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj“=h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj6=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj2=ubjv)�”}”(hŒunsigned long start_rgn”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¬=h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¨=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº=h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¨=ubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjÈ=h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¨=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ=h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¨=ubj¯)�”}”(hŒ start_rgn”h]”hŒ start_rgn”…”�”}”(hjä=h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¨=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj2=ubjv)�”}”(hŒunsigned long end_rgn”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjý=h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjù=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj >h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjù=ubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjù=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'>h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjù=ubj¯)�”}”(hŒend_rgn”h]”hŒend_rgn”…”�”}”(hj5>h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjù=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj2=ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjç<h²hh³jù<h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjã<h²hh³jù<h´M ubah}”(h]”jÞ<ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jù<h´M hjà<h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ$merge neighboring compatible regions”h]”hŒ$merge neighboring compatible regions”…”�”}”(hj_>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M hj\>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjà<h²hh³jù<h´M ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjw>jÿjw>j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX)**Parameters** ``struct memblock_type *type`` memblock type to scan ``unsigned long start_rgn`` start scanning from (**start_rgn** - 1) ``unsigned long end_rgn`` end scanning at (**end_rgn** - 1) Scan **type** and merge neighboring compatible regions in [**start_rgn** - 1, **end_rgn**)”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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj{>ubj")�”}”(hhh]”(j')�”}”(hŒ5``struct memblock_type *type`` memblock type to scan ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hj >h]”hŒstruct memblock_type *type”…”�”}”(hj¢>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjž>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M hjš>ubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock type to scan”h]”hŒmemblock type to scan”…”�”}”(hj¹>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jµ>h´M hj¶>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjš>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jµ>h´M hj—>ubj')�”}”(hŒD``unsigned long start_rgn`` start scanning from (**start_rgn** - 1) ”h]”(j-)�”}”(hŒ``unsigned long start_rgn``”h]”hä)�”}”(hjÙ>h]”hŒunsigned long start_rgn”…”�”}”(hjÛ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj×>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÓ>ubjG)�”}”(hhh]”hÌ)�”}”(hŒ'start scanning from (**start_rgn** - 1)”h]”(hŒstart scanning from (”…”�”}”(hjò>h²hh³Nh´Nubj¬)�”}”(hŒ **start_rgn**”h]”hŒ start_rgn”…”�”}”(hjú>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjò>ubhŒ - 1)”…”�”}”(hjò>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jî>h´Mhjï>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÓ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jî>h´Mhj—>ubj')�”}”(hŒ–``unsigned long end_rgn`` end scanning at (**end_rgn** - 1) Scan **type** and merge neighboring compatible regions in [**start_rgn** - 1, **end_rgn**)”h]”(j-)�”}”(hŒ``unsigned long end_rgn``”h]”hä)�”}”(hj$?h]”hŒunsigned long end_rgn”…”�”}”(hj&?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj"?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj?ubjG)�”}”(hhh]”hÌ)�”}”(hŒ|end scanning at (**end_rgn** - 1) Scan **type** and merge neighboring compatible regions in [**start_rgn** - 1, **end_rgn**)”h]”(hŒend scanning at (”…”�”}”(hj=?h²hh³Nh´Nubj¬)�”}”(hŒ **end_rgn**”h]”hŒend_rgn”…”�”}”(hjE?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj=?ubhŒ - 1) Scan ”…”�”}”(hj=?h²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjW?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj=?ubhŒ. and merge neighboring compatible regions in [”…”�”}”(hj=?h²hh³Nh´Nubj¬)�”}”(hŒ **start_rgn**”h]”hŒ start_rgn”…”�”}”(hji?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj=?ubhŒ - 1, ”…”�”}”(hj=?h²hh³Nh´Nubj¬)�”}”(hŒ **end_rgn**”h]”hŒend_rgn”…”�”}”(hj{?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj=?ubhŒ)”…”�”}”(hj=?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j9?h´Mhj:?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j9?h´Mhj—>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj{>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_insert_region (C function)”Œc.memblock_insert_region”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ™void __init_memblock memblock_insert_region (struct memblock_type *type, int idx, phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”j€)�”}”(hŒ˜void __init_memblock memblock_insert_region(struct memblock_type *type, int idx, phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÅ?h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÁ?h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M0ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ?h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÁ?h²hh³jÓ?h´M0ubhŒ__init_memblock”…”�”}”(hjÁ?h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ?h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÁ?h²hh³jÓ?h´M0ubj©)�”}”(hŒmemblock_insert_region”h]”j¯)�”}”(hŒmemblock_insert_region”h]”hŒmemblock_insert_region”…”�”}”(hjø?h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjô?ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÁ?h²hh³jÓ?h´M0ubjp)�”}”(hŒm(struct memblock_type *type, int idx, phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj@ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!@h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj@ubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hj2@h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj/@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j4@Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jú?sbŒc.memblock_insert_region”†”asbuh1hhj@ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR@h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj@ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj`@h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj@ubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjm@h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj @ubjv)�”}”(hŒint idx”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj†@h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj‚@ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”@h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‚@ubj¯)�”}”(hŒidx”h]”hŒidx”…”�”}”(hj¢@h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‚@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj @ubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj¾@h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj»@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÀ@Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jN@Œc.memblock_insert_region”†”asbuh1hhj·@ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ@h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj·@ubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjê@h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj·@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj @ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jAŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jN@Œc.memblock_insert_region”†”asbuh1hhjÿ@ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$Ah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÿ@ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj2Ah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÿ@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj @ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjKAh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjGAubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYAh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjGAubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjgAh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjGAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj @ubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hj€Ah²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj|Aubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Ah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj|Aubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hjžAh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj›Aubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j AŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jN@Œc.memblock_insert_region”†”asbuh1hhj|Aubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼Ah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj|Aubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjÊAh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj|Aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj @ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjÁ?h²hh³jÓ?h´M0ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj½?h²hh³jÓ?h´M0ubah}”(h]”j¸?ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÓ?h´M0hjº?h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒinsert new memblock region”h]”hŒinsert new memblock region”…”�”}”(hjôAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M0hjñAh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjº?h²hh³jÓ?h´M0ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj Bjÿj Bj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXî**Parameters** ``struct memblock_type *type`` memblock type to insert into ``int idx`` index for the insertion point ``phys_addr_t base`` base address of the new region ``phys_addr_t size`` size of the new region ``int nid`` node id of the new region ``enum memblock_flags flags`` flags of the new region **Description** Insert new memblock region [**base**, **base** + **size**) into **type** at **idx**. **type** must already have extra room to accommodate the new region.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjBh]”hŒ Parameters”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M4hjBubj")�”}”(hhh]”(j')�”}”(hŒ<``struct memblock_type *type`` memblock type to insert into ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hj5Bh]”hŒstruct memblock_type *type”…”�”}”(hj7Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj3Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M1hj/BubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock type to insert into”h]”hŒmemblock type to insert into”…”�”}”(hjNBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jJBh´M1hjKBubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj/Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jJBh´M1hj,Bubj')�”}”(hŒ*``int idx`` index for the insertion point ”h]”(j-)�”}”(hŒ ``int idx``”h]”hä)�”}”(hjnBh]”hŒint idx”…”�”}”(hjpBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjlBubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M2hjhBubjG)�”}”(hhh]”hÌ)�”}”(hŒindex for the insertion point”h]”hŒindex for the insertion point”…”�”}”(hj‡Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jƒBh´M2hj„Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjhBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jƒBh´M2hj,Bubj')�”}”(hŒ4``phys_addr_t base`` base address of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj§Bh]”hŒphys_addr_t base”…”�”}”(hj©Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¥Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M3hj¡BubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the new region”h]”hŒbase address of the new region”…”�”}”(hjÀBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¼Bh´M3hj½Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¡Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¼Bh´M3hj,Bubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjàBh]”hŒphys_addr_t size”…”�”}”(hjâBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÞBubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M4hjÚBubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hjùBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jõBh´M4hjöBubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÚBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jõBh´M4hj,Bubj')�”}”(hŒ&``int nid`` node id of the new region ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjCh]”hŒint nid”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M5hjCubjG)�”}”(hhh]”hÌ)�”}”(hŒnode id of the new region”h]”hŒnode id of the new region”…”�”}”(hj2Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j.Ch´M5hj/Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j.Ch´M5hj,Bubj')�”}”(hŒ6``enum memblock_flags flags`` flags of the new region ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hjRCh]”hŒenum memblock_flags flags”…”�”}”(hjTCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjPCubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M6hjLCubjG)�”}”(hhh]”hÌ)�”}”(hŒflags of the new region”h]”hŒflags of the new region”…”�”}”(hjkCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jgCh´M6hjhCubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjLCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jgCh´M6hj,Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjBubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj�Ch]”hŒ Description”…”�”}”(hj�Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj‹Cubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M8hjBubhÌ)�”}”(hŒ™Insert new memblock region [**base**, **base** + **size**) into **type** at **idx**. **type** must already have extra room to accommodate the new region.”h]”(hŒInsert new memblock region [”…”�”}”(hj£Ch²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj«Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£CubhŒ, ”…”�”}”(hj£Ch²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj½Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£CubhŒ + ”…”�”}”(hj£Ch²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÏCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£CubhŒ) into ”…”�”}”(hj£Ch²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjáCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£CubhŒ at ”…”�”}”(hj£Ch²hh³Nh´Nubj¬)�”}”(hŒ**idx**”h]”hŒidx”…”�”}”(hjóCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£CubhŒ. ”…”�”}”(hj£Ch²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£CubhŒ< must already have extra room to accommodate the new region.”…”�”}”(hj£Ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M7hjBubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ__memblock_search (C function)”Œc.__memblock_search”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒTint __init_memblock __memblock_search (struct memblock_type *type, phys_addr_t base)”h]”j€)�”}”(hŒSint __init_memblock __memblock_search(struct memblock_type *type, phys_addr_t base)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj>Dh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj:Dh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MNubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMDh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj:Dh²hh³jLDh´MNubhŒ__init_memblock”…”�”}”(hj:Dh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_Dh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj:Dh²hh³jLDh´MNubj©)�”}”(hŒ__memblock_search”h]”j¯)�”}”(hŒ__memblock_search”h]”hŒ__memblock_search”…”�”}”(hjqDh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjmDubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj:Dh²hh³jLDh´MNubjp)�”}”(hŒ.(struct memblock_type *type, phys_addr_t base)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj�Dh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‰Dubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšDh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‰Dubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hj«Dh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¨Dubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j­DŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jsDsbŒc.__memblock_search”†”asbuh1hhj‰Dubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËDh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‰Dubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjÙDh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj‰Dubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjæDh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‰Dubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj…Dubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÿDubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jEŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jÇDŒc.__memblock_search”†”asbuh1hhjûDubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Eh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjûDubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj.Eh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjûDubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj…Dubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj:Dh²hh³jLDh´MNubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj6Dh²hh³jLDh´MNubah}”(h]”j1Dah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jLDh´MNhj3Dh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ-Find the first region index where rend > base”h]”hŒ-Find the first region index where rend > base”…”�”}”(hjXEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MNhjUEh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj3Dh²hh³jLDh´MNubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjpEjÿjpEj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒÚ**Parameters** ``struct memblock_type *type`` memblock type to search ``phys_addr_t base`` base physical address of the candidate range **Return** the first region index that could potentially overlap **base**.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjzEh]”hŒ Parameters”…”�”}”(hj|Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjxEubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MRhjtEubj")�”}”(hhh]”(j')�”}”(hŒ7``struct memblock_type *type`` memblock type to search ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hj™Eh]”hŒstruct memblock_type *type”…”�”}”(hj›Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj—Eubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MOhj“EubjG)�”}”(hhh]”hÌ)�”}”(hŒmemblock type to search”h]”hŒmemblock type to search”…”�”}”(hj²Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j®Eh´MOhj¯Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj“Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j®Eh´MOhj�Eubj')�”}”(hŒB``phys_addr_t base`` base physical address of the candidate range ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjÒEh]”hŒphys_addr_t base”…”�”}”(hjÔEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÐEubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MPhjÌEubjG)�”}”(hhh]”hÌ)�”}”(hŒ,base physical address of the candidate range”h]”hŒ,base physical address of the candidate range”…”�”}”(hjëEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jçEh´MPhjèEubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÌEubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jçEh´MPhj�Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjtEubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj Fh]”hŒReturn”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj Fubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MRhjtEubhÌ)�”}”(hŒ?the first region index that could potentially overlap **base**.”h]”(hŒ6the first region index that could potentially overlap ”…”�”}”(hj#Fh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj+Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj#FubhŒ.”…”�”}”(hj#Fh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MRhjtEubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_add_range (C function)”Œc.memblock_add_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ‹int __init_memblock memblock_add_range (struct memblock_type *type, phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”j€)�”}”(hŒŠint __init_memblock memblock_add_range(struct memblock_type *type, phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjdFh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj`Fh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Meubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsFh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj`Fh²hh³jrFh´MeubhŒ__init_memblock”…”�”}”(hj`Fh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…Fh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj`Fh²hh³jrFh´Meubj©)�”}”(hŒmemblock_add_range”h]”j¯)�”}”(hŒmemblock_add_range”h]”hŒmemblock_add_range”…”�”}”(hj—Fh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj“Fubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj`Fh²hh³jrFh´Meubjp)�”}”(hŒd(struct memblock_type *type, phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj³Fh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯Fubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀFh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¯Fubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hjÑFh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÎFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÓFŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j™FsbŒc.memblock_add_range”†”asbuh1hhj¯Fubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñFh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¯Fubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjÿFh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj¯Fubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj Gh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¯Fubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj«Fubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj(Gh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj%Gubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j*GŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jíFŒc.memblock_add_range”†”asbuh1hhj!Gubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFGh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj!Gubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjTGh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj!Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj«Fubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjpGh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjmGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jrGŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jíFŒc.memblock_add_range”†”asbuh1hhjiGubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽGh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjiGubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjœGh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjiGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj«Fubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjµGh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj±Gubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃGh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj±Gubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjÑGh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj±Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj«Fubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjêGh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjæGubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷Gh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjæGubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j HŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jíFŒc.memblock_add_range”†”asbuh1hhjæGubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&Hh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjæGubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj4Hh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjæGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj«Fubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj`Fh²hh³jrFh´Meubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj\Fh²hh³jrFh´Meubah}”(h]”jWFah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jrFh´MehjYFh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒadd new memblock region”h]”hŒadd new memblock region”…”�”}”(hj^Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mehj[Hh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjYFh²hh³jrFh´Meubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjvHjÿjvHj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXv**Parameters** ``struct memblock_type *type`` memblock type to add new region into ``phys_addr_t base`` base address of the new region ``phys_addr_t size`` size of the new region ``int nid`` nid of the new region ``enum memblock_flags flags`` flags of the new region **Description** Add new memblock region [**base**, **base** + **size**) into **type**. The new region is allowed to overlap with existing ones - overlaps don't affect already existing regions. **type** is guaranteed to be minimal (all neighbouring compatible regions are merged) after the addition. **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj€Hh]”hŒ Parameters”…”�”}”(hj‚Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj~Hubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MihjzHubj")�”}”(hhh]”(j')�”}”(hŒD``struct memblock_type *type`` memblock type to add new region into ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hjŸHh]”hŒstruct memblock_type *type”…”�”}”(hj¡Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj�Hubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mfhj™HubjG)�”}”(hhh]”hÌ)�”}”(hŒ$memblock type to add new region into”h]”hŒ$memblock type to add new region into”…”�”}”(hj¸Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j´Hh´MfhjµHubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj™Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j´Hh´Mfhj–Hubj')�”}”(hŒ4``phys_addr_t base`` base address of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjØHh]”hŒphys_addr_t base”…”�”}”(hjÚHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÖHubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MghjÒHubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the new region”h]”hŒbase address of the new region”…”�”}”(hjñHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jíHh´MghjîHubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÒHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jíHh´Mghj–Hubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjIh]”hŒphys_addr_t size”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhhj IubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hj*Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j&Ih´Mhhj'Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j&Ih´Mhhj–Hubj')�”}”(hŒ"``int nid`` nid of the new region ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjJIh]”hŒint nid”…”�”}”(hjLIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjHIubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MihjDIubjG)�”}”(hhh]”hÌ)�”}”(hŒnid of the new region”h]”hŒnid of the new region”…”�”}”(hjcIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j_Ih´Mihj`Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjDIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j_Ih´Mihj–Hubj')�”}”(hŒ6``enum memblock_flags flags`` flags of the new region ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hjƒIh]”hŒenum memblock_flags flags”…”�”}”(hj…Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj�Iubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mjhj}IubjG)�”}”(hhh]”hÌ)�”}”(hŒflags of the new region”h]”hŒflags of the new region”…”�”}”(hjœIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j˜Ih´Mjhj™Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj}Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j˜Ih´Mjhj–Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjzHubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj¾Ih]”hŒ Description”…”�”}”(hjÀIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¼Iubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MlhjzHubhÌ)�”}”(hXAdd new memblock region [**base**, **base** + **size**) into **type**. The new region is allowed to overlap with existing ones - overlaps don't affect already existing regions. **type** is guaranteed to be minimal (all neighbouring compatible regions are merged) after the addition.”h]”(hŒAdd new memblock region [”…”�”}”(hjÔIh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjÜIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÔIubhŒ, ”…”�”}”(hjÔIh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjîIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÔIubhŒ + ”…”�”}”(hjÔIh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÔIubhŒ) into ”…”�”}”(hjÔIh²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÔIubhŒp. The new region is allowed to overlap with existing ones - overlaps don’t affect already existing regions. ”…”�”}”(hjÔIh²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hj$Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÔIubhŒa is guaranteed to be minimal (all neighbouring compatible regions are merged) after the addition.”…”�”}”(hjÔIh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MkhjzHubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj?Jh]”hŒReturn”…”�”}”(hjAJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj=Jubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MphjzHubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjUJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MqhjzHubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_add_node (C function)”Œc.memblock_add_node”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒnint __init_memblock memblock_add_node (phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”j€)�”}”(hŒmint __init_memblock memblock_add_node(phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj„Jh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj€Jh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mßubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“Jh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj€Jh²hh³j’Jh´MßubhŒ__init_memblock”…”�”}”(hj€Jh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥Jh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj€Jh²hh³j’Jh´Mßubj©)�”}”(hŒmemblock_add_node”h]”j¯)�”}”(hŒmemblock_add_node”h]”hŒmemblock_add_node”…”�”}”(hj·Jh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj³Jubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj€Jh²hh³j’Jh´Mßubjp)�”}”(hŒH(phys_addr_t base, phys_addr_t size, int nid, enum memblock_flags flags)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÖJh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÓJubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jØJŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j¹JsbŒc.memblock_add_node”†”asbuh1hhjÏJubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöJh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÏJubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÏJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjËJubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj Kh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjKubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j"KŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jòJŒc.memblock_add_node”†”asbuh1hhjKubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>Kh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjKubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjLKh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjËJubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjeKh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjaKubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsKh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjaKubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hj�Kh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjaKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjËJubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjšKh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj–Kubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§Kh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj–Kubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hj¸Kh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjµKubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jºKŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jòJŒc.memblock_add_node”†”asbuh1hhj–Kubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖKh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj–Kubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjäKh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj–Kubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjËJubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj€Jh²hh³j’Jh´Mßubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj|Jh²hh³j’Jh´Mßubah}”(h]”jwJah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j’Jh´MßhjyJh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ*add new memblock region within a NUMA node”h]”hŒ*add new memblock region within a NUMA node”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mßhj Lh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjyJh²hh³j’Jh´Mßubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj&Ljÿj&Lj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX–**Parameters** ``phys_addr_t base`` base address of the new region ``phys_addr_t size`` size of the new region ``int nid`` nid of the new region ``enum memblock_flags flags`` flags of the new region **Description** Add new memblock region [**base**, **base** + **size**) to the "memory" type. See memblock_add_range() description for mode details **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hj0Lh]”hŒ Parameters”…”�”}”(hj2Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj.Lubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mãhj*Lubj")�”}”(hhh]”(j')�”}”(hŒ4``phys_addr_t base`` base address of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjOLh]”hŒphys_addr_t base”…”�”}”(hjQLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjMLubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MàhjILubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the new region”h]”hŒbase address of the new region”…”�”}”(hjhLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jdLh´MàhjeLubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjILubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jdLh´MàhjFLubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjˆLh]”hŒphys_addr_t size”…”�”}”(hjŠLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj†Lubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Máhj‚LubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hj¡Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j�Lh´MáhjžLubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‚Lubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j�Lh´MáhjFLubj')�”}”(hŒ"``int nid`` nid of the new region ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjÁLh]”hŒint nid”…”�”}”(hjÃLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¿Lubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mâhj»LubjG)�”}”(hhh]”hÌ)�”}”(hŒnid of the new region”h]”hŒnid of the new region”…”�”}”(hjÚLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÖLh´Mâhj×Lubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj»Lubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÖLh´MâhjFLubj')�”}”(hŒ6``enum memblock_flags flags`` flags of the new region ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hjúLh]”hŒenum memblock_flags flags”…”�”}”(hjüLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjøLubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MãhjôLubjG)�”}”(hhh]”hÌ)�”}”(hŒflags of the new region”h]”hŒflags of the new region”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jMh´MãhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjôLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jMh´MãhjFLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj*LubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj5Mh]”hŒ Description”…”�”}”(hj7Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj3Mubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Måhj*LubhÌ)�”}”(hŒƒAdd new memblock region [**base**, **base** + **size**) to the "memory" type. See memblock_add_range() description for mode details”h]”(hŒAdd new memblock region [”…”�”}”(hjKMh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjSMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjKMubhŒ, ”…”�”}”(hjKMh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjeMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjKMubhŒ + ”…”�”}”(hjKMh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjwMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjKMubhŒQ) to the “memoryâ€� type. See memblock_add_range() description for mode details”…”�”}”(hjKMh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mähj*LubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj’Mh]”hŒReturn”…”�”}”(hj”Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�Mubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mçhj*LubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj¨Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mèhj*Lubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_add (C function)”Œc.memblock_add”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒEint __init_memblock memblock_add (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒDint __init_memblock memblock_add(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj×Mh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÓMh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M÷ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæMh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÓMh²hh³jåMh´M÷ubhŒ__init_memblock”…”�”}”(hjÓMh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøMh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÓMh²hh³jåMh´M÷ubj©)�”}”(hŒ memblock_add”h]”j¯)�”}”(hŒ memblock_add”h]”hŒ memblock_add”…”�”}”(hj Nh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjNubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÓMh²hh³jåMh´M÷ubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj)Nh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj&Nubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j+NŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j NsbŒc.memblock_add”†”asbuh1hhj"Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjINh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj"Nubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjWNh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj"Nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjNubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjsNh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjpNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”juNŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jENŒc.memblock_add”†”asbuh1hhjlNubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘Nh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjlNubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjŸNh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjlNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjNubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjÓMh²hh³jåMh´M÷ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÏMh²hh³jåMh´M÷ubah}”(h]”jÊMah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jåMh´M÷hjÌMh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒadd new memblock region”h]”hŒadd new memblock region”…”�”}”(hjÉNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M÷hjÆNh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÌMh²hh³jåMh´M÷ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjáNjÿjáNj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX8**Parameters** ``phys_addr_t base`` base address of the new region ``phys_addr_t size`` size of the new region **Description** Add new memblock region [**base**, **base** + **size**) to the "memory" type. See memblock_add_range() description for mode details **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjëNh]”hŒ Parameters”…”�”}”(hjíNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjéNubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MûhjåNubj")�”}”(hhh]”(j')�”}”(hŒ4``phys_addr_t base`` base address of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj Oh]”hŒphys_addr_t base”…”�”}”(hj Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MøhjOubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the new region”h]”hŒbase address of the new region”…”�”}”(hj#Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jOh´Møhj Oubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jOh´MøhjOubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjCOh]”hŒphys_addr_t size”…”�”}”(hjEOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjAOubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mùhj=OubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hj\Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jXOh´MùhjYOubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj=Oubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jXOh´MùhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjåNubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj~Oh]”hŒ Description”…”�”}”(hj€Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj|Oubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MûhjåNubhÌ)�”}”(hŒƒAdd new memblock region [**base**, **base** + **size**) to the "memory" type. See memblock_add_range() description for mode details”h]”(hŒAdd new memblock region [”…”�”}”(hj”Oh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjœOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj”OubhŒ, ”…”�”}”(hj”Oh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj®Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj”OubhŒ + ”…”�”}”(hj”Oh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÀOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj”OubhŒQ) to the “memoryâ€� type. See memblock_add_range() description for mode details”…”�”}”(hj”Oh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MúhjåNubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjÛOh]”hŒReturn”…”�”}”(hjÝOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÙOubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MýhjåNubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjñOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MþhjåNubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ,memblock_validate_numa_coverage (C function)”Œ!c.memblock_validate_numa_coverage”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒTbool __init_memblock memblock_validate_numa_coverage (unsigned long threshold_bytes)”h]”j€)�”}”(hŒSbool __init_memblock memblock_validate_numa_coverage(unsigned long threshold_bytes)”h]”(j8)�”}”(hŒbool”h]”hŒbool”…”�”}”(hj Ph²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjPh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/Ph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjPh²hh³j.Ph´M ubhŒ__init_memblock”…”�”}”(hjPh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAPh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjPh²hh³j.Ph´M ubj©)�”}”(hŒmemblock_validate_numa_coverage”h]”j¯)�”}”(hŒmemblock_validate_numa_coverage”h]”hŒmemblock_validate_numa_coverage”…”�”}”(hjSPh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjOPubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjPh²hh³j.Ph´M ubjp)�”}”(hŒ(unsigned long threshold_bytes)”h]”jv)�”}”(hŒunsigned long threshold_bytes”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjoPh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjkPubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}Ph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjkPubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj‹Ph²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjkPubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Ph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjkPubj¯)�”}”(hŒthreshold_bytes”h]”hŒthreshold_bytes”…”�”}”(hj§Ph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjkPubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjgPubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjPh²hh³j.Ph´M ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjPh²hh³j.Ph´M ubah}”(h]”jPah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j.Ph´M hjPh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒKcheck if amount of memory with no node ID assigned is less than a threshold”h]”hŒKcheck if amount of memory with no node ID assigned is less than a threshold”…”�”}”(hjÑPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M hjÎPh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjPh²hh³j.Ph´M ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjéPjÿjéPj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX:**Parameters** ``unsigned long threshold_bytes`` maximal memory size that can have unassigned node ID (in bytes). **Description** A buggy firmware may report memory that does not belong to any node. Check if amount of such memory is below **threshold_bytes**. **Return** true on success, false on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjóPh]”hŒ Parameters”…”�”}”(hjõPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjñPubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjíPubj")�”}”(hhh]”j')�”}”(hŒc``unsigned long threshold_bytes`` maximal memory size that can have unassigned node ID (in bytes). ”h]”(j-)�”}”(hŒ!``unsigned long threshold_bytes``”h]”hä)�”}”(hjQh]”hŒunsigned long threshold_bytes”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj QubjG)�”}”(hhh]”hÌ)�”}”(hŒ@maximal memory size that can have unassigned node ID (in bytes).”h]”hŒ@maximal memory size that can have unassigned node ID (in bytes).”…”�”}”(hj+Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj(Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj Qubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j'Qh´Mhj Qubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hjíPubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjNQh]”hŒ Description”…”�”}”(hjPQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjLQubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjíPubhÌ)�”}”(hŒ�A buggy firmware may report memory that does not belong to any node. Check if amount of such memory is below **threshold_bytes**.”h]”(hŒmA buggy firmware may report memory that does not belong to any node. Check if amount of such memory is below ”…”�”}”(hjdQh²hh³Nh´Nubj¬)�”}”(hŒ**threshold_bytes**”h]”hŒthreshold_bytes”…”�”}”(hjlQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjdQubhŒ.”…”�”}”(hjdQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjíPubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj‡Qh]”hŒReturn”…”�”}”(hj‰Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj…Qubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjíPubhÌ)�”}”(hŒ"true on success, false on failure.”h]”hŒ"true on success, false on failure.”…”�”}”(hj�Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjíPubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_isolate_range (C function)”Œc.memblock_isolate_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ‰int __init_memblock memblock_isolate_range (struct memblock_type *type, phys_addr_t base, phys_addr_t size, int *start_rgn, int *end_rgn)”h]”j€)�”}”(hŒˆint __init_memblock memblock_isolate_range(struct memblock_type *type, phys_addr_t base, phys_addr_t size, int *start_rgn, int *end_rgn)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjÌQh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÈQh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M.ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛQh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÈQh²hh³jÚQh´M.ubhŒ__init_memblock”…”�”}”(hjÈQh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíQh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÈQh²hh³jÚQh´M.ubj©)�”}”(hŒmemblock_isolate_range”h]”j¯)�”}”(hŒmemblock_isolate_range”h]”hŒmemblock_isolate_range”…”�”}”(hjÿQh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjûQubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÈQh²hh³jÚQh´M.ubjp)�”}”(hŒ^(struct memblock_type *type, phys_addr_t base, phys_addr_t size, int *start_rgn, int *end_rgn)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjRubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(Rh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjRubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hj9Rh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj6Rubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j;RŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jRsbŒc.memblock_isolate_range”†”asbuh1hhjRubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYRh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjRubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjgRh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjRubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjtRh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjRubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj�Rh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�Rubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j’RŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jURŒc.memblock_isolate_range”†”asbuh1hhj‰Rubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®Rh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‰Rubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj¼Rh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‰Rubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjRubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjØRh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÕRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÚRŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jURŒc.memblock_isolate_range”†”asbuh1hhjÑRubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöRh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÑRubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÑRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjRubjv)�”}”(hŒint *start_rgn”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjSubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+Sh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjSubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj9Sh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjSubj¯)�”}”(hŒ start_rgn”h]”hŒ start_rgn”…”�”}”(hjFSh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjSubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjRubjv)�”}”(hŒ int *end_rgn”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj_Sh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj[Subj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjmSh²hh³Nh´Nubah•}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj[Subj; )�”}”(hj8h]”hŒ*”…”�”}”(hj{Sh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj[Subj¯)�”}”(hŒend_rgn”h]”hŒend_rgn”…”�”}”(hjˆSh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj[Subeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjRubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjÈQh²hh³jÚQh´M.ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÄQh²hh³jÚQh´M.ubah}”(h]”j¿Qah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÚQh´M.hjÁQh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ+isolate given range into disjoint memblocks”h]”hŒ+isolate given range into disjoint memblocks”…”�”}”(hj²Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M.hj¯Sh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÁQh²hh³jÚQh´M.ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjÊSjÿjÊSj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXß**Parameters** ``struct memblock_type *type`` memblock type to isolate range for ``phys_addr_t base`` base of range to isolate ``phys_addr_t size`` size of range to isolate ``int *start_rgn`` out parameter for the start of isolated region ``int *end_rgn`` out parameter for the end of isolated region **Description** Walk **type** and ensure that regions don't cross the boundaries defined by [**base**, **base** + **size**). Crossing regions are split at the boundaries, which may create at most two more regions. The index of the first region inside the range is returned in ***start_rgn** and the index of the first region after the range is returned in ***end_rgn**. **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjÔSh]”hŒ Parameters”…”�”}”(hjÖSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÒSubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M2hjÎSubj")�”}”(hhh]”(j')�”}”(hŒB``struct memblock_type *type`` memblock type to isolate range for ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hjóSh]”hŒstruct memblock_type *type”…”�”}”(hjõSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjñSubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M/hjíSubjG)�”}”(hhh]”hÌ)�”}”(hŒ"memblock type to isolate range for”h]”hŒ"memblock type to isolate range for”…”�”}”(hj Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jTh´M/hj Tubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjíSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jTh´M/hjêSubj')�”}”(hŒ.``phys_addr_t base`` base of range to isolate ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj,Th]”hŒphys_addr_t base”…”�”}”(hj.Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj*Tubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M0hj&TubjG)�”}”(hhh]”hÌ)�”}”(hŒbase of range to isolate”h]”hŒbase of range to isolate”…”�”}”(hjETh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jATh´M0hjBTubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj&Tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jATh´M0hjêSubj')�”}”(hŒ.``phys_addr_t size`` size of range to isolate ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjeTh]”hŒphys_addr_t size”…”�”}”(hjgTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjcTubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M1hj_TubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of range to isolate”h]”hŒsize of range to isolate”…”�”}”(hj~Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jzTh´M1hj{Tubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj_Tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jzTh´M1hjêSubj')�”}”(hŒB``int *start_rgn`` out parameter for the start of isolated region ”h]”(j-)�”}”(hŒ``int *start_rgn``”h]”hä)�”}”(hjžTh]”hŒint *start_rgn”…”�”}”(hj Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjœTubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M2hj˜TubjG)�”}”(hhh]”hÌ)�”}”(hŒ.out parameter for the start of isolated region”h]”hŒ.out parameter for the start of isolated region”…”�”}”(hj·Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j³Th´M2hj´Tubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj˜Tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j³Th´M2hjêSubj')�”}”(hŒ>``int *end_rgn`` out parameter for the end of isolated region ”h]”(j-)�”}”(hŒ``int *end_rgn``”h]”hä)�”}”(hj×Th]”hŒ int *end_rgn”…”�”}”(hjÙTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÕTubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M3hjÑTubjG)�”}”(hhh]”hÌ)�”}”(hŒ,out parameter for the end of isolated region”h]”hŒ,out parameter for the end of isolated region”…”�”}”(hjðTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jìTh´M3hjíTubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÑTubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jìTh´M3hjêSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÎSubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjUh]”hŒ Description”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M5hjÎSubhÌ)�”}”(hXcWalk **type** and ensure that regions don't cross the boundaries defined by [**base**, **base** + **size**). Crossing regions are split at the boundaries, which may create at most two more regions. The index of the first region inside the range is returned in ***start_rgn** and the index of the first region after the range is returned in ***end_rgn**.”h]”(hŒWalk ”…”�”}”(hj(Uh²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hj0Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj(UubhŒB and ensure that regions don’t cross the boundaries defined by [”…”�”}”(hj(Uh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjBUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj(UubhŒ, ”…”�”}”(hj(Uh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjTUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj(UubhŒ + ”…”�”}”(hj(Uh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjfUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj(UubhŒœ). Crossing regions are split at the boundaries, which may create at most two more regions. The index of the first region inside the range is returned in ”…”�”}”(hj(Uh²hh³Nh´Nubj¬)�”}”(hŒ***start_rgn**”h]”hŒ *start_rgn”…”�”}”(hjxUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj(UubhŒB and the index of the first region after the range is returned in ”…”�”}”(hj(Uh²hh³Nh´Nubj¬)�”}”(hŒ ***end_rgn**”h]”hŒ*end_rgn”…”�”}”(hjŠUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj(UubhŒ.”…”�”}”(hj(Uh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M4hjÎSubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj¥Uh]”hŒReturn”…”�”}”(hj§Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj£Uubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M:hjÎSubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj»Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M;hjÎSubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_free (C function)”Œc.memblock_free”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ;void __init_memblock memblock_free (void *ptr, size_t size)”h]”j€)�”}”(hŒ:void __init_memblock memblock_free(void *ptr, size_t size)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjêUh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjæUh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÖubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùUh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjæUh²hh³jøUh´MÖubhŒ__init_memblock”…”�”}”(hjæUh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Vh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjæUh²hh³jøUh´MÖubj©)�”}”(hŒ memblock_free”h]”j¯)�”}”(hŒ memblock_free”h]”hŒ memblock_free”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjVubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjæUh²hh³jøUh´MÖubjp)�”}”(hŒ(void *ptr, size_t size)”h]”(jv)�”}”(hŒ void *ptr”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj9Vh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj5Vubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGVh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj5Vubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjUVh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj5Vubj¯)�”}”(hŒptr”h]”hŒptr”…”�”}”(hjbVh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj5Vubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj1Vubjv)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj~Vh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj{Vubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j€VŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jVsbŒc.memblock_free”†”asbuh1hhjwVubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžVh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjwVubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj¬Vh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjwVubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj1Vubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjæUh²hh³jøUh´MÖubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjâUh²hh³jøUh´MÖubah}”(h]”jÝUah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jøUh´MÖhjßUh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒfree boot memory allocation”h]”hŒfree boot memory allocation”…”�”}”(hjÖVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÖhjÓVh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjßUh²hh³jøUh´MÖubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjîVjÿjîVj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXD**Parameters** ``void *ptr`` starting address of the boot memory allocation ``size_t size`` size of the boot memory block in bytes **Description** Free boot memory block previously allocated by memblock_alloc_xx() API. If called after the buddy allocator is available, the memory is released to the buddy allocator.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjøVh]”hŒ Parameters”…”�”}”(hjúVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjöVubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÚhjòVubj")�”}”(hhh]”(j')�”}”(hŒ>``void *ptr`` starting address of the boot memory allocation ”h]”(j-)�”}”(hŒ ``void *ptr``”h]”hä)�”}”(hjWh]”hŒ void *ptr”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M×hjWubjG)�”}”(hhh]”hÌ)�”}”(hŒ/starting address of the boot memory allocation”h]”hŒ/starting address of the boot memory allocation”…”�”}”(hj0Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j,Wh´M×hj-Wubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j,Wh´M×hjWubj')�”}”(hŒ7``size_t size`` size of the boot memory block in bytes ”h]”(j-)�”}”(hŒ``size_t size``”h]”hä)�”}”(hjPWh]”hŒ size_t size”…”�”}”(hjRWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjNWubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MØhjJWubjG)�”}”(hhh]”hÌ)�”}”(hŒ&size of the boot memory block in bytes”h]”hŒ&size of the boot memory block in bytes”…”�”}”(hjiWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jeWh´MØhjfWubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjJWubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jeWh´MØhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjòVubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj‹Wh]”hŒ Description”…”�”}”(hj�Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj‰Wubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÚhjòVubhÌ)�”}”(hŒ¨Free boot memory block previously allocated by memblock_alloc_xx() API. If called after the buddy allocator is available, the memory is released to the buddy allocator.”h]”hŒ¨Free boot memory block previously allocated by memblock_alloc_xx() API. If called after the buddy allocator is available, the memory is released to the buddy allocator.”…”�”}”(hj¡Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÙhjòVubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_phys_free (C function)”Œc.memblock_phys_free”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒKint __init_memblock memblock_phys_free (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒJint __init_memblock memblock_phys_free(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjÐWh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÌWh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Måubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßWh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÌWh²hh³jÞWh´MåubhŒ__init_memblock”…”�”}”(hjÌWh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñWh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÌWh²hh³jÞWh´Måubj©)�”}”(hŒmemblock_phys_free”h]”j¯)�”}”(hŒmemblock_phys_free”h]”hŒmemblock_phys_free”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÿWubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÌWh²hh³jÞWh´Måubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj"Xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjXubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j$XŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jXsbŒc.memblock_phys_free”†”asbuh1hhjXubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBXh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjXubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjPXh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjXubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjlXh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjiXubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jnXŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j>XŒc.memblock_phys_free”†”asbuh1hhjeXubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠXh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjeXubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj˜Xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjeXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjXubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjÌWh²hh³jÞWh´Måubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÈWh²hh³jÞWh´Måubah}”(h]”jÃWah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÞWh´MåhjÅWh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒfree boot memory block”h]”hŒfree boot memory block”…”�”}”(hjÂXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Måhj¿Xh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÅWh²hh³jÞWh´Måubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjÚXjÿjÚXj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXU**Parameters** ``phys_addr_t base`` phys starting address of the boot memory block ``phys_addr_t size`` size of the boot memory block in bytes **Description** Free boot memory block previously allocated by memblock_phys_alloc_xx() API. If called after the buddy allocator is available, the memory is released to the buddy allocator.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjäXh]”hŒ Parameters”…”�”}”(hjæXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjâXubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MéhjÞXubj")�”}”(hhh]”(j')�”}”(hŒE``phys_addr_t base`` phys starting address of the boot memory block ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjYh]”hŒphys_addr_t base”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MæhjýXubjG)�”}”(hhh]”hÌ)�”}”(hŒ/phys starting address of the boot memory block”h]”hŒ/phys starting address of the boot memory block”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jYh´MæhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjýXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jYh´MæhjúXubj')�”}”(hŒ<``phys_addr_t size`` size of the boot memory block in bytes ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj:Yubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mçhj6YubjG)�”}”(hhh]”hÌ)�”}”(hŒ&size of the boot memory block in bytes”h]”hŒ&size of the boot memory block in bytes”…”�”}”(hjUYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jQYh´MçhjRYubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj6Yubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jQYh´MçhjúXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÞXubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjwYh]”hŒ Description”…”�”}”(hjyYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjuYubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MéhjÞXubhÌ)�”}”(hŒ­Free boot memory block previously allocated by memblock_phys_alloc_xx() API. If called after the buddy allocator is available, the memory is released to the buddy allocator.”h]”hŒ­Free boot memory block previously allocated by memblock_phys_alloc_xx() API. If called after the buddy allocator is available, the memory is released to the buddy allocator.”…”�”}”(hj�Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MèhjÞXubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ!memblock_setclr_flag (C function)”Œc.memblock_setclr_flag”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ|int __init_memblock memblock_setclr_flag (struct memblock_type *type, phys_addr_t base, phys_addr_t size, int set, int flag)”h]”j€)�”}”(hŒ{int __init_memblock memblock_setclr_flag(struct memblock_type *type, phys_addr_t base, phys_addr_t size, int set, int flag)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj¼Yh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¸Yh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËYh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¸Yh²hh³jÊYh´MubhŒ__init_memblock”…”�”}”(hj¸Yh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝYh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¸Yh²hh³jÊYh´Mubj©)�”}”(hŒmemblock_setclr_flag”h]”j¯)�”}”(hŒmemblock_setclr_flag”h]”hŒmemblock_setclr_flag”…”�”}”(hjïYh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjëYubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj¸Yh²hh³jÊYh´Mubjp)�”}”(hŒS(struct memblock_type *type, phys_addr_t base, phys_addr_t size, int set, int flag)”h]”(jv)�”}”(hŒstruct memblock_type *type”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj Zh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjZubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjZubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hj)Zh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj&Zubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j+ZŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jñYsbŒc.memblock_setclr_flag”†”asbuh1hhjZubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIZh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjZubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjWZh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjZubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjdZh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjZubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj€Zh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj}Zubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j‚ZŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jEZŒc.memblock_setclr_flag”†”asbuh1hhjyZubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžZh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjyZubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj¬Zh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjyZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjZubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÈZh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÅZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÊZŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jEZŒc.memblock_setclr_flag”†”asbuh1hhjÁZubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæZh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÁZubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjôZh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÁZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjZubjv)�”}”(hŒint set”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj [h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj [ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj [ubj¯)�”}”(hŒset”h]”hŒset”…”�”}”(hj)[h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj [ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjZubjv)�”}”(hŒint flag”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjB[h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj>[ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP[h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj>[ubj¯)�”}”(hŒflag”h]”hŒflag”…”�”}”(hj^[h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj>[ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjZubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj¸Yh²hh³jÊYh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj´Yh²hh³jÊYh´Mubah}”(h]”j¯Yah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÊYh´Mhj±Yh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ%set or clear flag for a memory region”h]”hŒ%set or clear flag for a memory region”…”�”}”(hjˆ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj…[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj±Yh²hh³jÊYh´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj [jÿj [j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXŽ**Parameters** ``struct memblock_type *type`` memblock type to set/clear flag for ``phys_addr_t base`` base address of the region ``phys_addr_t size`` size of the region ``int set`` set or clear the flag ``int flag`` the flag to update **Description** This function isolates region [**base**, **base** + **size**), and sets/clears flag **Return** 0 on success, -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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj¤[ubj")�”}”(hhh]”(j')�”}”(hŒC``struct memblock_type *type`` memblock type to set/clear flag for ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hjÉ[h]”hŒstruct memblock_type *type”…”�”}”(hjË[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÇ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÃ[ubjG)�”}”(hhh]”hÌ)�”}”(hŒ#memblock type to set/clear flag for”h]”hŒ#memblock type to set/clear flag for”…”�”}”(hjâ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÞ[h´Mhjß[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÃ[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÞ[h´MhjÀ[ubj')�”}”(hŒ0``phys_addr_t base`` base address of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj\h]”hŒphys_addr_t base”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhjü[ubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the region”h]”hŒbase address of the region”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j\h´Mhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjü[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j\h´MhjÀ[ubj')�”}”(hŒ(``phys_addr_t size`` size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hj;\h]”hŒphys_addr_t size”…”�”}”(hj=\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj9\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj5\ubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the region”h]”hŒsize of the region”…”�”}”(hjT\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jP\h´MhjQ\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj5\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jP\h´MhjÀ[ubj')�”}”(hŒ"``int set`` set or clear the flag ”h]”(j-)�”}”(hŒ ``int set``”h]”hä)�”}”(hjt\h]”hŒint set”…”�”}”(hjv\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjr\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhjn\ubjG)�”}”(hhh]”hÌ)�”}”(hŒset or clear the flag”h]”hŒset or clear the flag”…”�”}”(hj�\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j‰\h´MhjŠ\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjn\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‰\h´MhjÀ[ubj')�”}”(hŒ ``int flag`` the flag to update ”h]”(j-)�”}”(hŒ ``int flag``”h]”hä)�”}”(hj­\h]”hŒint flag”…”�”}”(hj¯\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj«\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj§\ubjG)�”}”(hhh]”hÌ)�”}”(hŒthe flag to update”h]”hŒthe flag to update”…”�”}”(hjÆ\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÂ\h´MhjÃ\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj§\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÂ\h´MhjÀ[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¤[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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj¤[ubhÌ)�”}”(hŒSThis function isolates region [**base**, **base** + **size**), and sets/clears flag”h]”(hŒThis function isolates region [”…”�”}”(hjþ\h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþ\ubhŒ, ”…”�”}”(hjþ\h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþ\ubhŒ + ”…”�”}”(hjþ\h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj*]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþ\ubhŒ), and sets/clears flag”…”�”}”(hjþ\h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj¤[ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjE]h]”hŒReturn”…”�”}”(hjG]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjC]ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M hj¤[ubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj[]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M!hj¤[ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ"memblock_mark_hotplug (C function)”Œc.memblock_mark_hotplug”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒNint __init_memblock memblock_mark_hotplug (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒMint __init_memblock memblock_mark_hotplug(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjŠ]h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj†]h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M:ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™]h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj†]h²hh³j˜]h´M:ubhŒ__init_memblock”…”�”}”(hj†]h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«]h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj†]h²hh³j˜]h´M:ubj©)�”}”(hŒmemblock_mark_hotplug”h]”j¯)�”}”(hŒmemblock_mark_hotplug”h]”hŒmemblock_mark_hotplug”…”�”}”(hj½]h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¹]ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj†]h²hh³j˜]h´M:ubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÜ]h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÙ]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÞ]Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j¿]sbŒc.memblock_mark_hotplug”†”asbuh1hhjÕ]ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü]h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÕ]ubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj ^h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÕ]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÑ]ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj&^h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj#^ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j(^Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jø]Œc.memblock_mark_hotplug”†”asbuh1hhj^ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD^h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj^ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjR^h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj^ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÑ]ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj†]h²hh³j˜]h´M:ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj‚]h²hh³j˜]h´M:ubah}”(h]”j}]ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j˜]h´M:hj]h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ4Mark hotpluggable memory with flag MEMBLOCK_HOTPLUG.”h]”hŒ4Mark hotpluggable memory with flag MEMBLOCK_HOTPLUG.”…”�”}”(hj|^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M:hjy^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj]h²hh³j˜]h´M:ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj”^jÿj”^j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ¤**Parameters** ``phys_addr_t base`` the base phys addr of the region ``phys_addr_t size`` the size of the region **Return** 0 on success, -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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M>hj˜^ubj")�”}”(hhh]”(j')�”}”(hŒ6``phys_addr_t base`` the base phys addr of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj½^h]”hŒphys_addr_t base”…”�”}”(hj¿^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj»^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M;hj·^ubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hjÖ^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÒ^h´M;hjÓ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj·^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÒ^h´M;hj´^ubj')�”}”(hŒ,``phys_addr_t size`` the size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjö^h]”hŒphys_addr_t size”…”�”}”(hjø^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjô^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M<hjð^ubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j _h´M<hj _ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjð^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j _h´M<hj´^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj˜^ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj1_h]”hŒReturn”…”�”}”(hj3_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj/_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M>hj˜^ubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjG_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M>hj˜^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_clear_hotplug (C function)”Œc.memblock_clear_hotplug”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒOint __init_memblock memblock_clear_hotplug (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒNint __init_memblock memblock_clear_hotplug(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjv_h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjr_h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MFubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…_h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjr_h²hh³j„_h´MFubhŒ__init_memblock”…”�”}”(hjr_h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—_h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjr_h²hh³j„_h´MFubj©)�”}”(hŒmemblock_clear_hotplug”h]”j¯)�”}”(hŒmemblock_clear_hotplug”h]”hŒmemblock_clear_hotplug”…”�”}”(hj©_h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¥_ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjr_h²hh³j„_h´MFubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÈ_h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÅ_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÊ_Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j«_sbŒc.memblock_clear_hotplug”†”asbuh1hhjÁ_ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjè_h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÁ_ubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjö_h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÁ_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj½_ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j`Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jä_Œc.memblock_clear_hotplug”†”asbuh1hhj `ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0`h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj `ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj>`h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj `ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj½_ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjr_h²hh³j„_h´MFubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjn_h²hh³j„_h´MFubah}”(h]”ji_ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j„_h´MFhjk_h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ3Clear flag MEMBLOCK_HOTPLUG for a specified region.”h]”hŒ3Clear flag MEMBLOCK_HOTPLUG for a specified region.”…”�”}”(hjh`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MFhje`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjk_h²hh³j„_h´MFubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj€`jÿj€`j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ¤**Parameters** ``phys_addr_t base`` the base phys addr of the region ``phys_addr_t size`` the size of the region **Return** 0 on success, -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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MJhj„`ubj")�”}”(hhh]”(j')�”}”(hŒ6``phys_addr_t base`` the base phys addr of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj©`h]”hŒphys_addr_t base”…”�”}”(hj«`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj§`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MGhj£`ubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hjÂ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¾`h´MGhj¿`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj£`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¾`h´MGhj `ubj')�”}”(hŒ,``phys_addr_t size`` the size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjâ`h]”hŒphys_addr_t size”…”�”}”(hjä`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjà`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MHhjÜ`ubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hjû`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j÷`h´MHhjø`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÜ`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j÷`h´MHhj `ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj„`ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjah]”hŒReturn”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MJhj„`ubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj3ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MJhj„`ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ!memblock_mark_mirror (C function)”Œc.memblock_mark_mirror”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒMint __init_memblock memblock_mark_mirror (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒLint __init_memblock memblock_mark_mirror(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjbah²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj^ah²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MRubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj^ah²hh³jpah´MRubhŒ__init_memblock”…”�”}”(hj^ah²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj^ah²hh³jpah´MRubj©)�”}”(hŒmemblock_mark_mirror”h]”j¯)�”}”(hŒmemblock_mark_mirror”h]”hŒmemblock_mark_mirror”…”�”}”(hj•ah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‘aubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj^ah²hh³jpah´MRubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj´ah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj±aubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j¶aŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j—asbŒc.memblock_mark_mirror”†”asbuh1hhj­aubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj­aubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjâah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj­aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj©aubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjþah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjûaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jbŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jÐaŒc.memblock_mark_mirror”†”asbuh1hhj÷aubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj÷aubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj*bh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj÷aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj©aubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj^ah²hh³jpah´MRubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjZah²hh³jpah´MRubah}”(h]”jUaah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jpah´MRhjWah²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ/Mark mirrored memory with flag MEMBLOCK_MIRROR.”h]”hŒ/Mark mirrored memory with flag MEMBLOCK_MIRROR.”…”�”}”(hjTbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MRhjQbh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjWah²hh³jpah´MRubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjlbjÿjlbj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ¤**Parameters** ``phys_addr_t base`` the base phys addr of the region ``phys_addr_t size`` the size of the region **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjvbh]”hŒ Parameters”…”�”}”(hjxbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjtbubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVhjpbubj")�”}”(hhh]”(j')�”}”(hŒ6``phys_addr_t base`` the base phys addr of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj•bh]”hŒphys_addr_t base”…”�”}”(hj—bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj“bubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MShj�bubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hj®bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jªbh´MShj«bubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jªbh´MShjŒbubj')�”}”(hŒ,``phys_addr_t size`` the size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjÎbh]”hŒphys_addr_t size”…”�”}”(hjÐbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÌbubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MThjÈbubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hjçbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jãbh´MThjäbubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÈbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jãbh´MThjŒbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjpbubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj ch]”hŒReturn”…”�”}”(hj ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVhjpbubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVhjpbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ memblock_mark_nomap (C function)”Œc.memblock_mark_nomap”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒLint __init_memblock memblock_mark_nomap (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒKint __init_memblock memblock_mark_nomap(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjNch²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjJch²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mcubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]ch²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjJch²hh³j\ch´McubhŒ__init_memblock”…”�”}”(hjJch²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoch²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjJch²hh³j\ch´Mcubj©)�”}”(hŒmemblock_mark_nomap”h]”j¯)�”}”(hŒmemblock_mark_nomap”h]”hŒmemblock_mark_nomap”…”�”}”(hj�ch²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj}cubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjJch²hh³j\ch´Mcubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj ch²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�cubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j¢cŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jƒcsbŒc.memblock_mark_nomap”†”asbuh1hhj™cubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀch²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj™cubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjÎch²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj™cubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj•cubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjêch²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjçcubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jìcŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¼cŒc.memblock_mark_nomap”†”asbuh1hhjãcubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjãcubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjãcubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj•cubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjJch²hh³j\ch´Mcubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjFch²hh³j\ch´Mcubah}”(h]”jAcah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j\ch´MchjCch²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ.Mark a memory region with flag MEMBLOCK_NOMAP.”h]”hŒ.Mark a memory region with flag MEMBLOCK_NOMAP.”…”�”}”(hj@dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mchj=dh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjCch²hh³j\ch´Mcubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjXdjÿjXdj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXE**Parameters** ``phys_addr_t base`` the base phys addr of the region ``phys_addr_t size`` the size of the region **Description** The memory regions marked with ``MEMBLOCK_NOMAP`` will not be added to the direct mapping of the physical memory. These regions will still be covered by the memory map. The struct page representing NOMAP memory frames in the memory map will be PageReserved() **Note** if the memory being marked ``MEMBLOCK_NOMAP`` was allocated from memblock, the caller must inform kmemleak to ignore that memory **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjbdh]”hŒ Parameters”…”�”}”(hjddh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj`dubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mghj\dubj")�”}”(hhh]”(j')�”}”(hŒ6``phys_addr_t base`` the base phys addr of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj�dh]”hŒphys_addr_t base”…”�”}”(hjƒdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mdhj{dubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hjšdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j–dh´Mdhj—dubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj{dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j–dh´Mdhjxdubj')�”}”(hŒ,``phys_addr_t size`` the size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjºdh]”hŒphys_addr_t size”…”�”}”(hj¼dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¸dubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mehj´dubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hjÓdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÏdh´MehjÐdubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj´dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÏdh´Mehjxdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj\dubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjõdh]”hŒ Description”…”�”}”(hj÷dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjódubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mghj\dubhÌ)�”}”(hXThe memory regions marked with ``MEMBLOCK_NOMAP`` will not be added to the direct mapping of the physical memory. These regions will still be covered by the memory map. The struct page representing NOMAP memory frames in the memory map will be PageReserved()”h]”(hŒThe memory regions marked with ”…”�”}”(hj eh²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_NOMAP``”h]”hŒMEMBLOCK_NOMAP”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj eubhŒÑ will not be added to the direct mapping of the physical memory. These regions will still be covered by the memory map. The struct page representing NOMAP memory frames in the memory map will be PageReserved()”…”�”}”(hj eh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mfhj\dubhÌ)�”}”(hŒ**Note**”h]”j¬)�”}”(hj.eh]”hŒNote”…”�”}”(hj0eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj,eubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mkhj\dubhÌ)�”}”(hŒ€if the memory being marked ``MEMBLOCK_NOMAP`` was allocated from memblock, the caller must inform kmemleak to ignore that memory”h]”(hŒif the memory being marked ”…”�”}”(hjDeh²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_NOMAP``”h]”hŒMEMBLOCK_NOMAP”…”�”}”(hjLeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjDeubhŒS was allocated from memblock, the caller must inform kmemleak to ignore that memory”…”�”}”(hjDeh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mlhj\dubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjgeh]”hŒReturn”…”�”}”(hjieh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjeeubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mohj\dubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj}eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mohj\dubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ!memblock_clear_nomap (C function)”Œc.memblock_clear_nomap”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒMint __init_memblock memblock_clear_nomap (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒLint __init_memblock memblock_clear_nomap(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬eh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj¨eh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mwubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»eh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¨eh²hh³jºeh´MwubhŒ__init_memblock”…”�”}”(hj¨eh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍeh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¨eh²hh³jºeh´Mwubj©)�”}”(hŒmemblock_clear_nomap”h]”j¯)�”}”(hŒmemblock_clear_nomap”h]”hŒmemblock_clear_nomap”…”�”}”(hjßeh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÛeubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj¨eh²hh³jºeh´Mwubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjþeh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjûeubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jfŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jáesbŒc.memblock_clear_nomap”†”asbuh1hhj÷eubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj÷eubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj,fh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj÷eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjóeubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjHfh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjEfubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jJfŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jfŒc.memblock_clear_nomap”†”asbuh1hhjAfubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjffh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjAfubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjtfh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjAfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjóeubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj¨eh²hh³jºeh´Mwubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj¤eh²hh³jºeh´Mwubah}”(h]”jŸeah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jºeh´Mwhj¡eh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ1Clear flag MEMBLOCK_NOMAP for a specified region.”h]”hŒ1Clear flag MEMBLOCK_NOMAP for a specified region.”…”�”}”(hjžfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mwhj›fh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj¡eh²hh³jºeh´Mwubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj¶fjÿj¶fj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ¤**Parameters** ``phys_addr_t base`` the base phys addr of the region ``phys_addr_t size`` the size of the region **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjÀfh]”hŒ Parameters”…”�”}”(hjÂfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¾fubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M{hjºfubj")�”}”(hhh]”(j')�”}”(hŒ6``phys_addr_t base`` the base phys addr of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjßfh]”hŒphys_addr_t base”…”�”}”(hjáfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÝfubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MxhjÙfubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hjøfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jôfh´Mxhjõfubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÙfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jôfh´MxhjÖfubj')�”}”(hŒ,``phys_addr_t size`` the size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjgh]”hŒphys_addr_t size”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MyhjgubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hj1gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j-gh´Myhj.gubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j-gh´MyhjÖfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjºfubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjSgh]”hŒReturn”…”�”}”(hjUgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjQgubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M{hjºfubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjigh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M{hjºfubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ*memblock_reserved_mark_noinit (C function)”Œc.memblock_reserved_mark_noinit”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒVint __init_memblock memblock_reserved_mark_noinit (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒUint __init_memblock memblock_reserved_mark_noinit(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj˜gh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj”gh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mƒubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§gh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj”gh²hh³j¦gh´MƒubhŒ__init_memblock”…”�”}”(hj”gh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹gh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj”gh²hh³j¦gh´Mƒubj©)�”}”(hŒmemblock_reserved_mark_noinit”h]”j¯)�”}”(hŒmemblock_reserved_mark_noinit”h]”hŒmemblock_reserved_mark_noinit”…”�”}”(hjËgh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÇgubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj”gh²hh³j¦gh´Mƒubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjêgh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjçgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jìgŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jÍgsbŒc.memblock_reserved_mark_noinit”†”asbuh1hhjãgubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj hh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjãgubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjãgubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjßgubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj4hh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj1hubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j6hŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jhŒc.memblock_reserved_mark_noinit”†”asbuh1hhj-hubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRhh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj-hubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj`hh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj-hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjßgubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj”gh²hh³j¦gh´Mƒubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj�gh²hh³j¦gh´Mƒubah}”(h]”j‹gah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j¦gh´Mƒhj�gh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒnh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj;nubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j@nŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j!nsbŒc.memblock_clear_kho_noprsrv”†”asbuh1hhj7nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^nh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj7nubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjlnh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj7nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj3nubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjˆnh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj…nubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jŠnŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jZnŒc.memblock_clear_kho_noprsrv”†”asbuh1hhj�nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦nh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj�nubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj´nh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj3nubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjúmh²hh³j nh´M»ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjömh²hh³j nh´M»ubah}”(h]”jñmah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j nh´M»hjómh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ7Clear MEMBLOCK_KHO_NOPRSRV flag for a specified region.”h]”hŒ7Clear MEMBLOCK_KHO_NOPRSRV flag for a specified region.”…”�”}”(hjÞnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M»hjÛnh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjómh²hh³j nh´M»ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjönjÿjönj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ¤**Parameters** ``phys_addr_t base`` the base phys addr of the region ``phys_addr_t size`` the size of the region **Return** 0 on success, -errno on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjoh]”hŒ Parameters”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjþnubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¿hjúnubj")�”}”(hhh]”(j')�”}”(hŒ6``phys_addr_t base`` the base phys addr of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjoh]”hŒphys_addr_t base”…”�”}”(hj!oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M½hjoubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hj8oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j4oh´M½hj5oubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j4oh´M½hjoubj')�”}”(hŒ,``phys_addr_t size`` the size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjXoh]”hŒphys_addr_t size”…”�”}”(hjZoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjVoubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¾hjRoubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hjqoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jmoh´M¾hjnoubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjRoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jmoh´M¾hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjúnubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj“oh]”hŒReturn”…”�”}”(hj•oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj‘oubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÀhjúnubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj©oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÀhjúnubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ__next_mem_range (C function)”Œc.__next_mem_range”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ¼void __next_mem_range (u64 *idx, int nid, enum memblock_flags flags, struct memblock_type *type_a, struct memblock_type *type_b, phys_addr_t *out_start, phys_addr_t *out_end, int *out_nid)”h]”j€)�”}”(hŒ»void __next_mem_range(u64 *idx, int nid, enum memblock_flags flags, struct memblock_type *type_a, struct memblock_type *type_b, phys_addr_t *out_start, phys_addr_t *out_end, int *out_nid)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjØoh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÔoh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mòubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçoh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÔoh²hh³jæoh´Mòubj©)�”}”(hŒ__next_mem_range”h]”j¯)�”}”(hŒ__next_mem_range”h]”hŒ__next_mem_range”…”�”}”(hjùoh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjõoubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÔoh²hh³jæoh´Mòubjp)�”}”(hŒ¦(u64 *idx, int nid, enum memblock_flags flags, struct memblock_type *type_a, struct memblock_type *type_b, phys_addr_t *out_start, phys_addr_t *out_end, int *out_nid)”h]”(jv)�”}”(hŒu64 *idx”h]”(h)�”}”(hhh]”j¯)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jpŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jûosbŒc.__next_mem_range”†”asbuh1hhjpubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8ph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjpubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjFph²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjpubj¯)�”}”(hŒidx”h]”hŒidx”…”�”}”(hjSph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjpubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjlph²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjhpubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjhpubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjˆph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjhpubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hj¡ph²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�pubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®ph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj�pubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hj¿ph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¼pubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÁpŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j4pŒc.__next_mem_range”†”asbuh1hhj�pubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj�pubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjëph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�pubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒstruct memblock_type *type_a”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjqubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hj"qh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjqubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j$qŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j4pŒc.__next_mem_range”†”asbuh1hhjqubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@qh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjqubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjNqh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjqubj¯)�”}”(hŒtype_a”h]”hŒtype_a”…”�”}”(hj[qh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒstruct memblock_type *type_b”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hjtqh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjpqubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�qh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjpqubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hj’qh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j”qŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j4pŒc.__next_mem_range”†”asbuh1hhjpqubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°qh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjpqubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj¾qh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjpqubj¯)�”}”(hŒtype_b”h]”hŒtype_b”…”�”}”(hjËqh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjpqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒphys_addr_t *out_start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjçqh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjäqubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jéqŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j4pŒc.__next_mem_range”†”asbuh1hhjàqubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjàqubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjàqubj¯)�”}”(hŒ out_start”h]”hŒ out_start”…”�”}”(hj rh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjàqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒphys_addr_t *out_end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjrŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j4pŒc.__next_mem_range”†”asbuh1hhj5rubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZrh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj5rubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjhrh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj5rubj¯)�”}”(hŒout_end”h]”hŒout_end”…”�”}”(hjurh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj5rubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubjv)�”}”(hŒ int *out_nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjŽrh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjŠrubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœrh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjŠrubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjªrh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjŠrubj¯)�”}”(hŒout_nid”h]”hŒout_nid”…”�”}”(hj·rh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjŠrubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj pubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjÔoh²hh³jæoh´Mòubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÐoh²hh³jæoh´Mòubah}”(h]”jËoah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jæoh´MòhjÍoh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ0next function for for_each_free_mem_range() etc.”h]”hŒ0next function for for_each_free_mem_range() etc.”…”�”}”(hjárh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MòhjÞrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÍoh²hh³jæoh´Mòubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjùrjÿjùrj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXÉ**Parameters** ``u64 *idx`` pointer to u64 loop variable ``int nid`` node selector, ``NUMA_NO_NODE`` for all nodes ``enum memblock_flags flags`` pick from blocks based on memory attributes ``struct memblock_type *type_a`` pointer to memblock_type from where the range is taken ``struct memblock_type *type_b`` pointer to memblock_type which excludes memory from being taken ``phys_addr_t *out_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``phys_addr_t *out_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ``int *out_nid`` ptr to int for nid of the range, can be ``NULL`` **Description** Find the first area from ***idx** which matches **nid**, fill the out parameters, and update ***idx** for the next iteration. The lower 32bit of ***idx** contains index into type_a and the upper 32bit indexes the areas before each region in type_b. For example, if type_b regions look like the following, 0:[0-16), 1:[32-48), 2:[128-130) The upper 32bit indexes the following regions. 0:[0-0), 1:[16-32), 2:[48-128), 3:[130-MAX) As both region arrays are sorted, the function advances the two indices in lockstep and returns each intersection.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjsh]”hŒ Parameters”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Möhjýrubj")�”}”(hhh]”(j')�”}”(hŒ*``u64 *idx`` pointer to u64 loop variable ”h]”(j-)�”}”(hŒ ``u64 *idx``”h]”hä)�”}”(hj"sh]”hŒu64 *idx”…”�”}”(hj$sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj subah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MóhjsubjG)�”}”(hhh]”hÌ)�”}”(hŒpointer to u64 loop variable”h]”hŒpointer to u64 loop variable”…”�”}”(hj;sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j7sh´Móhj8subah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j7sh´Móhjsubj')�”}”(hŒ:``int nid`` node selector, ``NUMA_NO_NODE`` for all nodes ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hj[sh]”hŒint nid”…”�”}”(hj]sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjYsubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MôhjUsubjG)�”}”(hhh]”hÌ)�”}”(hŒ-node selector, ``NUMA_NO_NODE`` for all nodes”h]”(hŒnode selector, ”…”�”}”(hjtsh²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hj|sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjtsubhŒ for all nodes”…”�”}”(hjtsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jpsh´Môhjqsubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjUsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jpsh´Môhjsubj')�”}”(hŒJ``enum memblock_flags flags`` pick from blocks based on memory attributes ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hj¦sh]”hŒenum memblock_flags flags”…”�”}”(hj¨sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¤subah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mõhj subjG)�”}”(hhh]”hÌ)�”}”(hŒ+pick from blocks based on memory attributes”h]”hŒ+pick from blocks based on memory attributes”…”�”}”(hj¿sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j»sh´Mõhj¼subah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj subeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j»sh´Mõhjsubj')�”}”(hŒX``struct memblock_type *type_a`` pointer to memblock_type from where the range is taken ”h]”(j-)�”}”(hŒ ``struct memblock_type *type_a``”h]”hä)�”}”(hjßsh]”hŒstruct memblock_type *type_a”…”�”}”(hjásh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÝsubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MöhjÙsubjG)�”}”(hhh]”hÌ)�”}”(hŒ6pointer to memblock_type from where the range is taken”h]”hŒ6pointer to memblock_type from where the range is taken”…”�”}”(hjøsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jôsh´Möhjõsubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÙsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jôsh´Möhjsubj')�”}”(hŒa``struct memblock_type *type_b`` pointer to memblock_type which excludes memory from being taken ”h]”(j-)�”}”(hŒ ``struct memblock_type *type_b``”h]”hä)�”}”(hjth]”hŒstruct memblock_type *type_b”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M÷hjtubjG)�”}”(hhh]”hÌ)�”}”(hŒ?pointer to memblock_type which excludes memory from being taken”h]”hŒ?pointer to memblock_type which excludes memory from being taken”…”�”}”(hj1th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j-th´M÷hj.tubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j-th´M÷hjsubj')�”}”(hŒ^``phys_addr_t *out_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ``phys_addr_t *out_start``”h]”hä)�”}”(hjQth]”hŒphys_addr_t *out_start”…”�”}”(hjSth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjOtubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MøhjKtubjG)�”}”(hhh]”hÌ)�”}”(hŒBptr to phys_addr_t for start address of the range, can be ``NULL``”h]”(hŒ:ptr to phys_addr_t for start address of the range, can be ”…”�”}”(hjjth²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjrth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jfth´Møhjgtubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjKtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jfth´Møhjsubj')�”}”(hŒZ``phys_addr_t *out_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ``phys_addr_t *out_end``”h]”hä)�”}”(hj˜th]”hŒphys_addr_t *out_end”…”�”}”(hjšth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj–tubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mùhj’tubjG)�”}”(hhh]”hÌ)�”}”(hŒ@ptr to phys_addr_t for end address of the range, can be ``NULL``”h]”(hŒ8ptr to phys_addr_t for end address of the range, can be ”…”�”}”(hj±th²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj¹th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj±tubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j­th´Mùhj®tubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj’tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j­th´Mùhjsubj')�”}”(hŒB``int *out_nid`` ptr to int for nid of the range, can be ``NULL`` ”h]”(j-)�”}”(hŒ``int *out_nid``”h]”hä)�”}”(hjßth]”hŒ int *out_nid”…”�”}”(hjáth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÝtubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MúhjÙtubjG)�”}”(hhh]”hÌ)�”}”(hŒ0ptr to int for nid of the range, can be ``NULL``”h]”(hŒ(ptr to int for nid of the range, can be ”…”�”}”(hjøth²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjøtubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jôth´Múhjõtubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÙtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jôth´Múhjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjýrubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj(uh]”hŒ Description”…”�”}”(hj*uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj&uubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MühjýrubhÌ)�”}”(hX2Find the first area from ***idx** which matches **nid**, fill the out parameters, and update ***idx** for the next iteration. The lower 32bit of ***idx** contains index into type_a and the upper 32bit indexes the areas before each region in type_b. For example, if type_b regions look like the following,”h]”(hŒFind the first area from ”…”�”}”(hj>uh²hh³Nh´Nubj¬)�”}”(hŒ***idx**”h]”hŒ*idx”…”�”}”(hjFuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj>uubhŒ which matches ”…”�”}”(hj>uh²hh³Nh´Nubj¬)�”}”(hŒ**nid**”h]”hŒnid”…”�”}”(hjXuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj>uubhŒ&, fill the out parameters, and update ”…”�”}”(hj>uh²hh³Nh´Nubj¬)�”}”(hŒ***idx**”h]”hŒ*idx”…”�”}”(hjjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj>uubhŒ- for the next iteration. The lower 32bit of ”…”�”}”(hj>uh²hh³Nh´Nubj¬)�”}”(hŒ***idx**”h]”hŒ*idx”…”�”}”(hj|uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj>uubhŒ˜ contains index into type_a and the upper 32bit indexes the areas before each region in type_b. For example, if type_b regions look like the following,”…”�”}”(hj>uh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mûhjýrubjÿ )�”}”(hŒ!0:[0-16), 1:[32-48), 2:[128-130) ”h]”hÌ)�”}”(hŒ 0:[0-16), 1:[32-48), 2:[128-130)”h]”hŒ 0:[0-16), 1:[32-48), 2:[128-130)”…”�”}”(hj™uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj•uubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j§uh´MhjýrubhÌ)�”}”(hŒ.The upper 32bit indexes the following regions.”h]”hŒ.The upper 32bit indexes the following regions.”…”�”}”(hj®uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhjýrubjÿ )�”}”(hŒ,0:[0-0), 1:[16-32), 2:[48-128), 3:[130-MAX) ”h]”hÌ)�”}”(hŒ+0:[0-0), 1:[16-32), 2:[48-128), 3:[130-MAX)”h]”hŒ+0:[0-0), 1:[16-32), 2:[48-128), 3:[130-MAX)”…”�”}”(hjÁuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj½uubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jÏuh´MhjýrubhÌ)�”}”(hŒrAs both region arrays are sorted, the function advances the two indices in lockstep and returns each intersection.”h]”hŒrAs both region arrays are sorted, the function advances the two indices in lockstep and returns each intersection.”…”�”}”(hjÖuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhjýrubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ!__next_mem_range_rev (C function)”Œc.__next_mem_range_rev”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒÐvoid __init_memblock __next_mem_range_rev (u64 *idx, int nid, enum memblock_flags flags, struct memblock_type *type_a, struct memblock_type *type_b, phys_addr_t *out_start, phys_addr_t *out_end, int *out_nid)”h]”j€)�”}”(hŒÏvoid __init_memblock __next_mem_range_rev(u64 *idx, int nid, enum memblock_flags flags, struct memblock_type *type_a, struct memblock_type *type_b, phys_addr_t *out_start, phys_addr_t *out_end, int *out_nid)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjvh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjvh²hh³jvh´MVubhŒ__init_memblock”…”�”}”(hjvh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&vh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjvh²hh³jvh´MVubj©)�”}”(hŒ__next_mem_range_rev”h]”j¯)�”}”(hŒ__next_mem_range_rev”h]”hŒ__next_mem_range_rev”…”�”}”(hj8vh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj4vubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjvh²hh³jvh´MVubjp)�”}”(hŒ¦(u64 *idx, int nid, enum memblock_flags flags, struct memblock_type *type_a, struct memblock_type *type_b, phys_addr_t *out_start, phys_addr_t *out_end, int *out_nid)”h]”(jv)�”}”(hŒu64 *idx”h]”(h)�”}”(hhh]”j¯)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjWvh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjTvubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jYvŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j:vsbŒc.__next_mem_range_rev”†”asbuh1hhjPvubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwvh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjPvubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj…vh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjPvubj¯)�”}”(hŒidx”h]”hŒidx”…”�”}”(hj’vh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjPvubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj«vh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj§vubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹vh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj§vubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjÇvh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj§vubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjàvh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÜvubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjívh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÜvubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hjþvh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjûvubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jwŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jsvŒc.__next_mem_range_rev”†”asbuh1hhjÜvubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÜvubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj*wh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÜvubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒstruct memblock_type *type_a”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hjCwh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj?wubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPwh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj?wubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hjawh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj^wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jcwŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jsvŒc.__next_mem_range_rev”†”asbuh1hhj?wubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj?wubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj�wh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj?wubj¯)�”}”(hŒtype_a”h]”hŒtype_a”…”�”}”(hjšwh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj?wubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒstruct memblock_type *type_b”h]”(j†)�”}”(hj\h]”hŒstruct”…”�”}”(hj³wh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯wubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀwh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¯wubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(hjÑwh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÎwubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÓwŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jsvŒc.__next_mem_range_rev”†”asbuh1hhj¯wubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïwh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¯wubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjýwh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj¯wubj¯)�”}”(hŒtype_b”h]”hŒtype_b”…”�”}”(hj xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¯wubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒphys_addr_t *out_start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj&xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj#xubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j(xŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jsvŒc.__next_mem_range_rev”†”asbuh1hhjxubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDxh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjxubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjRxh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjxubj¯)�”}”(hŒ out_start”h]”hŒ out_start”…”�”}”(hj_xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjxubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒphys_addr_t *out_end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj{xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjxxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j}xŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jsvŒc.__next_mem_range_rev”†”asbuh1hhjtxubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™xh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjtxubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj§xh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjtxubj¯)�”}”(hŒout_end”h]”hŒout_end”…”�”}”(hj´xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjtxubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubjv)�”}”(hŒ int *out_nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjÍxh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÉxubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛxh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÉxubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjéxh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjÉxubj¯)�”}”(hŒout_nid”h]”hŒout_nid”…”�”}”(hjöxh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÉxubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjLvubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjvh²hh³jvh´MVubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjýuh²hh³jvh´MVubah}”(h]”jøuah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jvh´MVhjúuh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ0generic next function for for_each_*_range_rev()”h]”hŒ0generic next function for for_each_*_range_rev()”…”�”}”(hj yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVhjyh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjúuh²hh³jvh´MVubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj8yjÿj8yj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX**Parameters** ``u64 *idx`` pointer to u64 loop variable ``int nid`` node selector, ``NUMA_NO_NODE`` for all nodes ``enum memblock_flags flags`` pick from blocks based on memory attributes ``struct memblock_type *type_a`` pointer to memblock_type from where the range is taken ``struct memblock_type *type_b`` pointer to memblock_type which excludes memory from being taken ``phys_addr_t *out_start`` ptr to phys_addr_t for start address of the range, can be ``NULL`` ``phys_addr_t *out_end`` ptr to phys_addr_t for end address of the range, can be ``NULL`` ``int *out_nid`` ptr to int for nid of the range, can be ``NULL`` **Description** Finds the next range from type_a which is not marked as unsuitable in type_b. Reverse of __next_mem_range().”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjByh]”hŒ Parameters”…”�”}”(hjDyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj@yubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MZhj~h]”hŒint nid”…”�”}”(hj@~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj<~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÚhj8~ubjG)�”}”(hhh]”hÌ)�”}”(hŒnode ID to set”h]”hŒnode ID to set”…”�”}”(hjW~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jS~h´MÚhjT~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj8~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jS~h´MÚhjŠ}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjn}ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjy~h]”hŒ Description”…”�”}”(hj{~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjw~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÜhjn}ubhÌ)�”}”(hŒ—Set the nid of memblock **type** regions in [**base**, **base** + **size**) to **nid**. Regions which cross the area boundaries are split as necessary.”h]”(hŒSet the nid of memblock ”…”�”}”(hj�~h²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hj—~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�~ubhŒ regions in [”…”�”}”(hj�~h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj©~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�~ubhŒ, ”…”�”}”(hj�~h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj»~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�~ubhŒ + ”…”�”}”(hj�~h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÍ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�~ubhŒ) to ”…”�”}”(hj�~h²hh³Nh´Nubj¬)�”}”(hŒ**nid**”h]”hŒnid”…”�”}”(hjß~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�~ubhŒA. Regions which cross the area boundaries are split as necessary.”…”�”}”(hj�~h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÛhjn}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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÞhjn}ubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mßhjn}ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ%memblock_alloc_range_nid (C function)”Œc.memblock_alloc_range_nid”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ‡phys_addr_t memblock_alloc_range_nid (phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid, bool exact_nid)”h]”j€)�”}”(hŒ†phys_addr_t memblock_alloc_range_nid(phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid, bool exact_nid)”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj?ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jDŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”Œmemblock_alloc_range_nid”sbŒc.memblock_alloc_range_nid”†”asbuh1hhj;h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´•Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj;h²hh³jch´Mubj©)�”}”(hŒmemblock_alloc_range_nid”h]”j¯)�”}”(hj`h]”hŒmemblock_alloc_range_nid”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjrubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj;h²hh³jch´Mubjp)�”}”(hŒb(phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid, bool exact_nid)”h]”(jv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‘ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j–Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j^Œc.memblock_alloc_range_nid”†”asbuh1hhj�ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj�ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj‰ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÙubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÞŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j^Œc.memblock_alloc_range_nid”†”asbuh1hhjÕubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÕubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÕubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj‰ubjv)�”}”(hŒphys_addr_t start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj$€h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj!€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j&€Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j^Œc.memblock_alloc_range_nid”†”asbuh1hhj€ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB€h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj€ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hjP€h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj‰ubjv)�”}”(hŒphys_addr_t end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjl€h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hji€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jn€Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j^Œc.memblock_alloc_range_nid”†”asbuh1hhje€ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ€h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hje€ubj¯)�”}”(hŒend”h]”hŒend”…”�”}”(hj˜€h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hje€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj‰ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj±€h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj­€ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿€h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj­€ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjÍ€h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj­€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj‰ubjv)�”}”(hŒbool exact_nid”h]”(j8)�”}”(hj"Ph]”hŒbool”…”�”}”(hjæ€h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjâ€ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó€h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjâ€ubj¯)�”}”(hŒ exact_nid”h]”hŒ exact_nid”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjâ€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj;h²hh³jch´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj7h²hh³jch´Mubah}”(h]”j2ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jch´Mhj4h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒallocate boot memory block”h]”hŒallocate boot memory block”…”�”}”(hj+�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj(�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj4h²hh³jch´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjC�jÿjC�j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXO**Parameters** ``phys_addr_t size`` size of memory block to be allocated in bytes ``phys_addr_t align`` alignment of the region and block's size ``phys_addr_t start`` the lower bound of the memory region to allocate (phys address) ``phys_addr_t end`` the upper bound of the memory region to allocate (phys address) ``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ``bool exact_nid`` control the allocation fall back to other nodes **Description** The allocation is performed from memory region limited by memblock.current_limit if **end** == ``MEMBLOCK_ALLOC_ACCESSIBLE``. If the specified node can not hold the requested memory and **exact_nid** is false, the allocation falls back to any node in the system. For systems with memory mirroring, the allocation is attempted first from the regions with mirroring enabled and then retried from any memory region. In addition, function using kmemleak_alloc_phys for allocated boot memory block, it is never reported as leaks. **Return** Physical address of allocated memory block on success, ``0`` on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjM�h]”hŒ Parameters”…”�”}”(hjO�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjK�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjG�ubj")�”}”(hhh]”(j')�”}”(hŒC``phys_addr_t size`` size of memory block to be allocated in bytes ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjl�h]”hŒphys_addr_t size”…”�”}”(hjn�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhjf�ubjG)�”}”(hhh]”hÌ)�”}”(hŒ-size of memory block to be allocated in bytes”h]”hŒ-size of memory block to be allocated in bytes”…”�”}”(hj…�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j��h´Mhj‚�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjf�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j��h´Mhjc�ubj')�”}”(hŒ?``phys_addr_t align`` alignment of the region and block's size ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hj¥�h]”hŒphys_addr_t align”…”�”}”(hj§�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj£�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjŸ�ubjG)�”}”(hhh]”hÌ)�”}”(hŒ(alignment of the region and block's size”h]”hŒ*alignment of the region and block’s size”…”�”}”(hj¾�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jº�h´Mhj»�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjŸ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jº�h´Mhjc�ubj')�”}”(hŒV``phys_addr_t start`` the lower bound of the memory region to allocate (phys address) ”h]”(j-)�”}”(hŒ``phys_addr_t start``”h]”hä)�”}”(hjÞ�h]”hŒphys_addr_t start”…”�”}”(hjà�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÜ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjØ�ubjG)�”}”(hhh]”hÌ)�”}”(hŒ?the lower bound of the memory region to allocate (phys address)”h]”hŒ?the lower bound of the memory region to allocate (phys address)”…”�”}”(hj÷�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jó�h´Mhjô�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjØ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jó�h´Mhjc�ubj')�”}”(hŒT``phys_addr_t end`` the upper bound of the memory region to allocate (phys address) ”h]”(j-)�”}”(hŒ``phys_addr_t end``”h]”hä)�”}”(hj‚h]”hŒphys_addr_t end”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj‚ubjG)�”}”(hhh]”hÌ)�”}”(hŒ?the upper bound of the memory region to allocate (phys address)”h]”hŒ?the upper bound of the memory region to allocate (phys address)”…”�”}”(hj0‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j,‚h´Mhj-‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j,‚h´Mhjc�ubj')�”}”(hŒH``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjP‚h]”hŒint nid”…”�”}”(hjR‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjN‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjJ‚ubjG)�”}”(hhh]”hÌ)�”}”(hŒ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hji‚h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjq‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhji‚ubhŒ for any node”…”�”}”(hji‚h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³je‚h´Mhjf‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjJ‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³je‚h´Mhjc�ubj')�”}”(hŒC``bool exact_nid`` control the allocation fall back to other nodes ”h]”(j-)�”}”(hŒ``bool exact_nid``”h]”hä)�”}”(hj›‚h]”hŒbool exact_nid”…”�”}”(hj�‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj™‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj•‚ubjG)�”}”(hhh]”hÌ)�”}”(hŒ/control the allocation fall back to other nodes”h]”hŒ/control the allocation fall back to other nodes”…”�”}”(hj´‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j°‚h´Mhj±‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj•‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j°‚h´Mhjc�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjG�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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjG�ubhÌ)�”}”(hŒ}The allocation is performed from memory region limited by memblock.current_limit if **end** == ``MEMBLOCK_ALLOC_ACCESSIBLE``.”h]”(hŒTThe allocation is performed from memory region limited by memblock.current_limit if ”…”�”}”(hjì‚h²hh³Nh´Nubj¬)�”}”(hŒ**end**”h]”hŒend”…”�”}”(hjô‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjì‚ubhŒ == ”…”�”}”(hjì‚h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjG�ubhÌ)�”}”(hŒˆIf the specified node can not hold the requested memory and **exact_nid** is false, the allocation falls back to any node in the system.”h]”(hŒ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj6�ubhŒE to allocate only from memory limited by memblock.current_limit value”…”�”}”(hj6�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M»hj3�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j2�h´M½hjh�ubj')�”}”(hŒH``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hji�h]”hŒint nid”…”�”}”(hjk�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjg�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¾hjc�ubjG)�”}”(hhh]”hÌ)�”}”(hŒ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hj‚�h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjŠ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‚�ubhŒ for any node”…”�”}”(hj‚�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j~�h´M¾hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjc�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j~�h´M¾hjh�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjL�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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÀhjL�ubhÌ)�”}”(hŒªPublic function, provides additional debug information (including caller info), if enabled. Does not zero allocated memory, does not panic if request cannot be satisfied.”h]”hŒªPublic function, provides additional debug information (including caller info), if enabled. Does not zero allocated memory, does not panic if request cannot be satisfied.”…”�”}”(hjÌ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¿hjL�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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÃhjL�ubhÌ)�”}”(hŒFVirtual address of allocated memory block on success, NULL on failure.”h]”hŒFVirtual address of allocated memory block on success, NULL on failure.”…”�”}”(hjó�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÄhjL�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_alloc_hugetlb (C function)”Œc.memblock_alloc_hugetlb”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒIvoid * memblock_alloc_hugetlb (phys_addr_t size, int nid, bool exact_nid)”h]”j€)�”}”(hŒGvoid *memblock_alloc_hugetlb(phys_addr_t size, int nid, bool exact_nid)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj"‘h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj‘h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÔubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1‘h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‘h²hh³j0‘h´MÔubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj?‘h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj‘h²hh³j0‘h´MÔubj©)�”}”(hŒmemblock_alloc_hugetlb”h]”j¯)�”}”(hŒmemblock_alloc_hugetlb”h]”hŒmemblock_alloc_hugetlb”…”�”}”(hjP‘h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjL‘ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj‘h²hh³j0‘h´MÔubjp)�”}”(hŒ+(phys_addr_t size, int nid, bool exact_nid)”h]”(jv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjo‘h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjl‘ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jq‘Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jR‘sbŒc.memblock_alloc_hugetlb”†”asbuh1hhjh‘ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�‘h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjh‘ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj�‘h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjh‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjd‘ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj¶‘h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj²‘ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄ‘h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj²‘ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjÒ‘h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj²‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjd‘ubjv)�”}”(hŒbool exact_nid”h]”(j8)�”}”(hj"Ph]”hŒbool”…”�”}”(hjë‘h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjç‘ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø‘h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjç‘ubj¯)�”}”(hŒ exact_nid”h]”hŒ exact_nid”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjç‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjd‘ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj‘h²hh³j0‘h´MÔubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj‘h²hh³j0‘h´MÔubah}”(h]”j‘ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j0‘h´MÔhj‘h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ&allocate boot memory for HugeTLB pages”h]”hŒ&allocate boot memory for HugeTLB pages”…”�”}”(hj0’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÔhj-’h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj‘h²hh³j0‘h´MÔubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjH’jÿjH’j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX}**Parameters** ``phys_addr_t size`` size of the memory to be allocated in bytes ``int nid`` nid of the free memory to find, ``NUMA_NO_NODE`` for any node ``bool exact_nid`` only allocate from the specified nid. If ``false``, the specified nid is tried first, and then all nodes are tried as fallback. **Description** HugeTLB pages are always aligned by their size, so the alignment matches **size**. Since the memory is for userspace, mirrored memory is not used. The memory is not zeroed. Does not panic if request cannot be satisfied. **Return** Virtual address of allocated memory block on success, ``NULL`` on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjR’h]”hŒ Parameters”…”�”}”(hjT’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjP’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MØhjL’ubj")�”}”(hhh]”(j')�”}”(hŒA``phys_addr_t size`` size of the memory to be allocated in bytes ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjq’h]”hŒphys_addr_t size”…”�”}”(hjs’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjo’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÕhjk’ubjG)�”}”(hhh]”hÌ)�”}”(hŒ+size of the memory to be allocated in bytes”h]”hŒ+size of the memory to be allocated in bytes”…”�”}”(hjŠ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j†’h´MÕhj‡’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjk’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j†’h´MÕhjh’ubj')�”}”(hŒJ``int nid`` nid of the free memory to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hjª’h]”hŒint nid”…”�”}”(hj¬’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¨’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÖhj¤’ubjG)�”}”(hhh]”hÌ)�”}”(hŒ=nid of the free memory to find, ``NUMA_NO_NODE`` for any node”h]”(hŒ nid of the free memory to find, ”…”�”}”(hjÃ’h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjË’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÃ’ubhŒ for any node”…”�”}”(hjÃ’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¿’h´MÖhjÀ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¤’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¿’h´MÖhjh’ubj')�”}”(hŒ“``bool exact_nid`` only allocate from the specified nid. If ``false``, the specified nid is tried first, and then all nodes are tried as fallback. ”h]”(j-)�”}”(hŒ``bool exact_nid``”h]”hä)�”}”(hjõ’h]”hŒbool exact_nid”…”�”}”(hj÷’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjó’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MØhjï’ubjG)�”}”(hhh]”hÌ)�”}”(hŒonly allocate from the specified nid. If ``false``, the specified nid is tried first, and then all nodes are tried as fallback.”h]”(hŒ)only allocate from the specified nid. If ”…”�”}”(hj“h²hh³Nh´Nubhä)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj“ubhŒM, the specified nid is tried first, and then all nodes are tried as fallback.”…”�”}”(hj“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M×hj “ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjï’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j “h´MØhjh’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjL’ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjC“h]”hŒ Description”…”�”}”(hjE“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjA“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÚhjL’ubhÌ)�”}”(hŒÛHugeTLB pages are always aligned by their size, so the alignment matches **size**. Since the memory is for userspace, mirrored memory is not used. The memory is not zeroed. Does not panic if request cannot be satisfied.”h]”(hŒIHugeTLB pages are always aligned by their size, so the alignment matches ”…”�”}”(hjY“h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hja“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjY“ubhŒŠ. Since the memory is for userspace, mirrored memory is not used. The memory is not zeroed. Does not panic if request cannot be satisfied.”…”�”}”(hjY“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÙhjL’ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj|“h]”hŒReturn”…”�”}”(hj~“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjz“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÝhjL’ubhÌ)�”}”(hŒJVirtual address of allocated memory block on success, ``NULL`` on failure.”h]”(hŒ6Virtual address of allocated memory block on success, ”…”�”}”(hj’“h²hh³Nh´Nubhä)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjš“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj’“ubhŒ on failure.”…”�”}”(hj’“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÞhjL’ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ#memblock_alloc_try_nid (C function)”Œc.memblock_alloc_try_nid”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒxvoid * memblock_alloc_try_nid (phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid)”h]”j€)�”}”(hŒvvoid *memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÓ“h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÏ“h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ“h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÏ“h²hh³já“h´Mubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjð“h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjÏ“h²hh³já“h´Mubj©)�”}”(hŒmemblock_alloc_try_nid”h]”j¯)�”}”(hŒmemblock_alloc_try_nid”h]”hŒmemblock_alloc_try_nid”…”�”}”(hj”h²hh³Nh´Nubah}”(•SÚh]”h ]”jºah"]”h$]”h&]”uh1j®hjý“ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÏ“h²hh³já“h´Mubjp)�”}”(hŒZ(phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid)”h]”(jv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j"”Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j”sbŒc.memblock_alloc_try_nid”†”asbuh1hhj”ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@”h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj”ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjN”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj”ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjj”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjg”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jl”Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j<”Œc.memblock_alloc_try_nid”†”asbuh1hhjc”ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆ”h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjc”ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hj–”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjc”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj”ubjv)�”}”(hŒphys_addr_t min_addr”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj²”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¯”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j´”Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j<”Œc.memblock_alloc_try_nid”†”asbuh1hhj«”ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjДh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj«”ubj¯)�”}”(hŒmin_addr”h]”hŒmin_addr”…”�”}”(hjÞ”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj«”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj”ubjv)�”}”(hŒphys_addr_t max_addr”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjú”h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj÷”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jü”Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j<”Œc.memblock_alloc_try_nid”†”asbuh1hhjó”ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjó”ubj¯)�”}”(hŒmax_addr”h]”hŒmax_addr”…”�”}”(hj&•h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjó”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj”ubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj?•h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj;•ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM•h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj;•ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hj[•h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj;•ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj”ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjÏ“h²hh³já“h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjË“h²hh³já“h´Mubah}”(h]”jÆ“ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³já“h´MhjÈ“h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒallocate boot memory block”h]”hŒallocate boot memory block”…”�”}”(hj…•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj‚•h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÈ“h²hh³já“h´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj�•jÿj�•j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX)**Parameters** ``phys_addr_t size`` size of memory block to be allocated in bytes ``phys_addr_t align`` alignment of the region and block's size ``phys_addr_t min_addr`` the lower bound of the memory region from where the allocation is preferred (phys address) ``phys_addr_t max_addr`` the upper bound of the memory region from where the allocation is preferred (phys address), or ``MEMBLOCK_ALLOC_ACCESSIBLE`` to allocate only from memory limited by memblock.current_limit value ``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node **Description** Public function, provides additional debug information (including caller info), if enabled. This function zeroes the allocated memory. **Return** Virtual address of allocated memory block on success, NULL 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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj¡•ubj")�”}”(hhh]”(j')�”}”(hŒC``phys_addr_t size`` size of memory block to be allocated in bytes ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjÆ•h]”hŒphys_addr_t size”…”�”}”(hjÈ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÄ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjÀ•ubjG)�”}”(hhh]”hÌ)�”}”(hŒ-size of memory block to be allocated in bytes”h]”hŒ-size of memory block to be allocated in bytes”…”�”}”(hjß•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÛ•h´MhjÜ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÀ•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÛ•h´Mhj½•ubj')�”}”(hŒ?``phys_addr_t align`` alignment of the region and block's size ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hjÿ•h]”hŒphys_addr_t align”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjý•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhjù•ubjG)�”}”(hhh]”hÌ)�”}”(hŒ(alignment of the region and block's size”h]”hŒ*alignment of the region and block’s size”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j–h´Mhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjù•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j–h´Mhj½•ubj')�”}”(hŒt``phys_addr_t min_addr`` the lower bound of the memory region from where the allocation is preferred (phys address) ”h]”(j-)�”}”(hŒ``phys_addr_t min_addr``”h]”hä)�”}”(hj8–h]”hŒphys_addr_t min_addr”…”�”}”(hj:–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj6–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj2–ubjG)�”}”(hhh]”hÌ)�”}”(hŒZthe lower bound of the memory region from where the allocation is preferred (phys address)”h]”hŒZthe lower bound of the memory region from where the allocation is preferred (phys address)”…”�”}”(hjQ–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjN–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj2–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jM–h´Mhj½•ubj')�”}”(hŒÛ``phys_addr_t max_addr`` the upper bound of the memory region from where the allocation is preferred (phys address), or ``MEMBLOCK_ALLOC_ACCESSIBLE`` to allocate only from memory limited by memblock.current_limit value ”h]”(j-)�”}”(hŒ``phys_addr_t max_addr``”h]”hä)�”}”(hjr–h]”hŒphys_addr_t max_addr”…”�”}”(hjt–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjp–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M"hjl–ubjG)�”}”(hhh]”hÌ)�”}”(hŒÁthe upper bound of the memory region from where the allocation is preferred (phys address), or ``MEMBLOCK_ALLOC_ACCESSIBLE`` to allocate only from memory limited by memblock.current_limit value”h]”(hŒ_the upper bound of the memory region from where the allocation is preferred (phys address), or ”…”�”}”(hj‹–h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(hj“–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‹–ubhŒE to allocate only from memory limited by memblock.current_limit value”…”�”}”(hj‹–h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M hjˆ–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjl–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‡–h´M"hj½•ubj')�”}”(hŒH``int nid`` nid of the free area to find, ``NUMA_NO_NODE`` for any node ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hj¾–h]”hŒint nid”…”�”}”(hjÀ–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¼–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M#hj¸–ubjG)�”}”(hhh]”hÌ)�”}”(hŒ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hj×–h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjß–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj×–ubhŒ for any node”…”�”}”(hj×–h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÓ–h´M#hjÔ–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¸–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÓ–h´M#hj½•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¡•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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M%hj¡•ubhÌ)�”}”(hŒ†Public function, provides additional debug information (including caller info), if enabled. This function zeroes the allocated memory.”h]”hŒ†Public function, provides additional debug information (including caller info), if enabled. This function zeroes the allocated memory.”…”�”}”(hj!—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M$hj¡•ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj2—h]”hŒReturn”…”�”}”(hj4—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj0—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M'hj¡•ubhÌ)�”}”(hŒFVirtual address of allocated memory block on success, NULL on failure.”h]”hŒFVirtual address of allocated memory block on success, NULL on failure.”…”�”}”(hjH—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M(hj¡•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ&__memblock_alloc_or_panic (C function)”Œc.__memblock_alloc_or_panic”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒXvoid * __memblock_alloc_or_panic (phys_addr_t size, phys_addr_t align, const char *func)”h]”j€)�”}”(hŒVvoid *__memblock_alloc_or_panic(phys_addr_t size, phys_addr_t align, const char *func)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjw—h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjs—h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M=ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†—h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjs—h²hh³j…—h´M=ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj”—h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjs—h²hh³j…—h´M=ubj©)�”}”(hŒ__memblock_alloc_or_panic”h]”j¯)�”}”(hŒ__memblock_alloc_or_panic”h]”hŒ__memblock_alloc_or_panic”…”�”}”(hj¥—h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¡—ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjs—h²hh³j…—h´M=ubjp)�”}”(hŒ7(phys_addr_t size, phys_addr_t align, const char *func)”h]”(jv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjÄ—h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÁ—ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÆ—Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j§—sbŒc.__memblock_alloc_or_panic”†”asbuh1hhj½—ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä—h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj½—ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjò—h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj½—ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¹—ubjv)�”}”(hŒphys_addr_t align”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj ˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j˜Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jà—Œc.__memblock_alloc_or_panic”†”asbuh1hhj˜ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,˜h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj˜ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hj:˜h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¹—ubjv)�”}”(hŒconst char *func”h]”(j†)�”}”(hjÔh]”hŒconst”…”�”}”(hjS˜h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjO˜ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`˜h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjO˜ubj8)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjn˜h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjO˜ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|˜h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjO˜ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjŠ˜h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjO˜ubj¯)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hj—˜h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjO˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¹—ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjs—h²hh³j…—h´M=ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjo—h²hh³j…—h´M=ubah}”(h]”jj—ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j…—h´M=hjl—h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ+Try to allocate memory and panic on failure”h]”hŒ+Try to allocate memory and panic on failure”…”�”}”(hjÁ˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M=hj¾˜h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjl—h²hh³j…—h´M=ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjÙ˜jÿjÙ˜j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX­**Parameters** ``phys_addr_t size`` size of memory block to be allocated in bytes ``phys_addr_t align`` alignment of the region and block's size ``const char *func`` caller func name **Description** This function attempts to allocate memory using memblock_alloc, and in case of failure, it calls panic with the formatted message. This function should not be used directly, please use the macro memblock_alloc_or_panic.”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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MAhjݘubj")�”}”(hhh]”(j')�”}”(hŒC``phys_addr_t size`` size of memory block to be allocated in bytes ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hj™h]”hŒphys_addr_t size”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M>hjü˜ubjG)�”}”(hhh]”hÌ)�”}”(hŒ-size of memory block to be allocated in bytes”h]”hŒ-size of memory block to be allocated in bytes”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j™h´M>hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjü˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j™h´M>hjù˜ubj')�”}”(hŒ?``phys_addr_t align`` alignment of the region and block's size ”h]”(j-)�”}”(hŒ``phys_addr_t align``”h]”hä)�”}”(hj;™h]”hŒphys_addr_t align”…”�”}”(hj=™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj9™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M?hj5™ubjG)�”}”(hhh]”hÌ)�”}”(hŒ(alignment of the region and block's size”h]”hŒ*alignment of the region and block’s size”…”�”}”(hjT™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jP™h´M?hjQ™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj5™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jP™h´M?hjù˜ubj')�”}”(hŒ&``const char *func`` caller func name ”h]”(j-)�”}”(hŒ``const char *func``”h]”hä)�”}”(hjt™h]”hŒconst char *func”…”�”}”(hjv™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjr™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M@hjn™ubjG)�”}”(hhh]”hÌ)�”}”(hŒcaller func name”h]”hŒcaller func name”…”�”}”(hj�™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j‰™h´M@hjŠ™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjn™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‰™h´M@hjù˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjݘ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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MBhjݘubhÌ)�”}”(hŒÛThis function attempts to allocate memory using memblock_alloc, and in case of failure, it calls panic with the formatted message. This function should not be used directly, please use the macro memblock_alloc_or_panic.”h]”hŒÛThis function attempts to allocate memory using memblock_alloc, and in case of failure, it calls panic with the formatted message. This function should not be used directly, please use the macro memblock_alloc_or_panic.”…”�”}”(hjÅ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MAhjݘubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ-memblock_estimated_nr_free_pages (C function)”Œ"c.memblock_estimated_nr_free_pages”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ5unsigned long memblock_estimated_nr_free_pages (void)”h]”j€)�”}”(hŒ4unsigned long memblock_estimated_nr_free_pages(void)”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjô™h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjð™h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M‹ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjð™h²hh³jšh´M‹ubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjð™h²hh³jšh´M‹ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjð™h²hh³jšh´M‹ubj©)�”}”(hŒ memblock_estimated_nr_free_pages”h]”j¯)�”}”(hŒ memblock_estimated_nr_free_pages”h]”hŒ memblock_estimated_nr_free_pages”…”�”}”(hj1šh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj-šubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjð™h²hh³jšh´M‹ubjp)�”}”(hŒ(void)”h]”jv)�”}”(hŒvoid”h]”j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjMšh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjIšubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjEšubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjð™h²hh³jšh´M‹ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjì™h²hh³jšh´M‹ubah}”(h]”jç™ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jšh´M‹hjé™h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒAreturn estimated number of free pages from memblock point of view”h]”hŒAreturn estimated number of free pages from memblock point of view”…”�”}”(hjwšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M‹hjtšh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjé™h²hh³jšh´M‹ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj�šjÿj�šj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXž**Parameters** ``void`` no arguments **Description** During bootup, subsystems might need a rough estimate of the number of free pages in the whole system, before precise numbers are available from the buddy. Especially with CONFIG_DEFERRED_STRUCT_PAGE_INIT, the numbers obtained from the buddy might be very imprecise during bootup. **Return** An estimated number of free pages from memblock point of view.”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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M�hj“šubj")�”}”(hhh]”j')�”}”(hŒ``void`` no arguments ”h]”(j-)�”}”(hŒ``void``”h]”hä)�”}”(hj¸šh]”hŒvoid”…”�”}”(hjºšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¶šubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Khj²šubjG)�”}”(hhh]”hÌ)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hjÑšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÍšh´KhjΚubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj²šubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÍšh´Khj¯šubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hj“š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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Khj“šubhÌ)�”}”(hXDuring bootup, subsystems might need a rough estimate of the number of free pages in the whole system, before precise numbers are available from the buddy. Especially with CONFIG_DEFERRED_STRUCT_PAGE_INIT, the numbers obtained from the buddy might be very imprecise during bootup.”h]”hXDuring bootup, subsystems might need a rough estimate of the number of free pages in the whole system, before precise numbers are available from the buddy. Especially with CONFIG_DEFERRED_STRUCT_PAGE_INIT, the numbers obtained from the buddy might be very imprecise during bootup.”…”�”}”(hj ›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MŒ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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M‘hj“šubhÌ)�”}”(hŒ>An estimated number of free pages from memblock point of view.”h]”hŒ>An estimated number of free pages from memblock point of view.”…”�”}”(hj0›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M“hj“šubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ&memblock_is_region_memory (C function)”Œc.memblock_is_region_memory”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒSbool __init_memblock memblock_is_region_memory (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒRbool __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hj"Ph]”hŒbool”…”�”}”(hj_›h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj[›h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M/ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm›h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj[›h²hh³jl›h´M/ubhŒ__init_memblock”…”�”}”(hj[›h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj[›h²hh³jl›h´M/ubj©)�”}”(hŒmemblock_is_region_memory”h]”j¯)�”}”(hŒmemblock_is_region_memory”h]”hŒmemblock_is_region_memory”…”�”}”(hj‘›h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�›ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj[›h²hh³jl›h´M/ubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hj°›h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj­›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j²›Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j“›sbŒc.memblock_is_region_memory”†”asbuh1hhj©›ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjЛh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj©›ubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjÞ›h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj©›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¥›ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjú›h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj÷›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jü›Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jÌ›Œc.memblock_is_region_memory”†”asbuh1hhjó›ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjó›ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj&œh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjó›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¥›ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj[›h²hh³jl›h´M/ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjW›h²hh³jl›h´M/ubah}”(h]”jR›ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jl›h´M/hjT›h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ'check if a region is a subset of memory”h]”hŒ'check if a region is a subset of memory”…”�”}”(hjPœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M/hjMœh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjT›h²hh³jl›h´M/ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjhœjÿjhœj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒý**Parameters** ``phys_addr_t base`` base of region to check ``phys_addr_t size`` size of region to check **Description** Check if the region [**base**, **base** + **size**) is a subset of a memory block. **Return** 0 if false, non-zero if true”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjrœh]”hŒ Parameters”…”�”}”(hjtœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjpœubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M3hjlœubj")�”}”(hhh]”(j')�”}”(hŒ-``phys_addr_t base`` base of region to check ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj‘œh]”hŒphys_addr_t base”…”�”}”(hj“œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj�œubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M0hj‹œubjG)�”}”(hhh]”hÌ)�”}”(hŒbase of region to check”h]”hŒbase of region to check”…”�”}”(hjªœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¦œh´M0hj§œubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‹œubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¦œh´M0hjˆœubj')�”}”(hŒ-``phys_addr_t size`` size of region to check ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjÊœh]”hŒphys_addr_t size”…”�”}”(hjÌœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÈœubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M1hjÄœubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of region to check”h]”hŒsize of region to check”…”�”}”(hjãœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jßœh´M1hjàœubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÄœubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jßœh´M1hjˆœubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjlœ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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M3hjlœubhÌ)�”}”(hŒRCheck if the region [**base**, **base** + **size**) is a subset of a memory block.”h]”(hŒCheck if the region [”…”�”}”(hj�h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj#�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�ubhŒ, ”…”�”}”(hj�h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj5�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�ubhŒ + ”…”�”}”(hj�h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjG�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj�ubhŒ ) is a subset of a memory block.”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M2hjlœubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjb�h]”hŒReturn”…”�”}”(hjd�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj`�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M4hjlœubhÌ)�”}”(hŒ0 if false, non-zero if true”h]”hŒ0 if false, non-zero if true”…”�”}”(hjx�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M5hjlœubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ(memblock_is_region_reserved (C function)”Œc.memblock_is_region_reserved”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒUbool __init_memblock memblock_is_region_reserved (phys_addr_t base, phys_addr_t size)”h]”j€)�”}”(hŒTbool __init_memblock memblock_is_region_reserved(phys_addr_t base, phys_addr_t size)”h]”(j8)�”}”(hj"Ph]”hŒbool”…”�”}”(hj§�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj£�h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MDubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµ�h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj£�h²hh³j´�h´MDubhŒ__init_memblock”…”�”}”(hj£�h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇ�h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj£�h²hh³j´�h´MDubj©)�”}”(hŒmemblock_is_region_reserved”h]”j¯)�”}”(hŒmemblock_is_region_reserved”h]”hŒmemblock_is_region_reserved”…”�”}”(hjÙ�h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÕ�ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj£�h²hh³j´�h´MDubjp)�”}”(hŒ$(phys_addr_t base, phys_addr_t size)”h]”(jv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjø�h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjõ�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jú�Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jÛ�sbŒc.memblock_is_region_reserved”†”asbuh1hhjñ�ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjñ�ubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj&žh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjñ�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjí�ubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjBžh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj?žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jDžŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jžŒc.memblock_is_region_reserved”†”asbuh1hhj;žubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`žh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj;žubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjnžh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj;žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjí�ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj£�h²hh³j´�h´MDubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjŸ�h²hh³j´�h´MDubah}”(h]”jš�ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j´�h´MDhjœ�h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ,check if a region intersects reserved memory”h]”hŒ,check if a region intersects reserved memory”…”�”}”(hj˜žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MDhj•žh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjœ�h²hh³j´�h´MDubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj°žjÿj°žj‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX **Parameters** ``phys_addr_t base`` base of region to check ``phys_addr_t size`` size of region to check **Description** Check if the region [**base**, **base** + **size**) intersects a reserved memory block. **Return** True if they intersect, false if not.”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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MHhj´žubj")�”}”(hhh]”(j')�”}”(hŒ-``phys_addr_t base`` base of region to check ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjÙžh]”hŒphys_addr_t base”…”�”}”(hjÛžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjמubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MEhjÓžubjG)�”}”(hhh]”hÌ)�”}”(hŒbase of region to check”h]”hŒbase of region to check”…”�”}”(hjòžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jîžh´MEhjïžubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÓžubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jîžh´MEhjОubj')�”}”(hŒ-``phys_addr_t size`` size of region to check ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjŸh]”hŒphys_addr_t size”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MFhj ŸubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of region to check”h]”hŒsize of region to check”…”�”}”(hj+Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j'Ÿh´MFhj(Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj Ÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j'Ÿh´MFhjОubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj´žubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjMŸh]”hŒ Description”…”�”}”(hjOŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjKŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MHhj´žubhÌ)�”}”(hŒWCheck if the region [**base**, **base** + **size**) intersects a reserved memory block.”h]”(hŒCheck if the region [”…”�”}”(hjcŸh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjkŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjcŸubhŒ, ”…”�”}”(hjcŸh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj}Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjcŸubhŒ + ”…”�”}”(hjcŸh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj�Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjcŸubhŒ%) intersects a reserved memory block.”…”�”}”(hjcŸh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MGhj´ž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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MJhj´žubhÌ)�”}”(hŒ%True if they intersect, false if not.”h]”hŒ%True if they intersect, false if not.”…”�”}”(hjÀŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MKhj´žubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒmemblock_free_all (C function)”Œc.memblock_free_all”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒvoid memblock_free_all (void)”h]”j€)�”}”(hŒvoid memblock_free_all(void)”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjïŸh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjëŸh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M› ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþŸh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjëŸh²hh³jýŸh´M› ubj©)�”}”(hŒmemblock_free_all”h]”j¯)�”}”(hŒmemblock_free_all”h]”hŒmemblock_free_all”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj  ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjëŸh²hh³jýŸh´M› ubjp)�”}”(hŒ(void)”h]”jv)�”}”(hŒvoid”h]”j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj( ubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj$ ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjëŸh²hh³jýŸh´M› ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjçŸh²hh³jýŸh´M› ubah}”(h]”jâŸah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jýŸh´M› hjäŸh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ)release free pages to the buddy allocator”h]”hŒ)release free pages to the buddy allocator”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M› hjS h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjäŸh²hh³jýŸh´M› ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjn jÿjn j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ'**Parameters** ``void`` no arguments”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjx h]”hŒ Parameters”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjv ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MŸ hjr ubj")�”}”(hhh]”j')�”}”(hŒ``void`` no arguments”h]”(j-)�”}”(hŒ``void``”h]”hä)�”}”(hj— h]”hŒvoid”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj• ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M¡ hj‘ ubjG)�”}”(hhh]”hÌ)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hj° h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Khj­ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‘ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¬ h´M¡ hjŽ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hjr ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ%reserve_mem_find_by_name (C function)”Œc.reserve_mem_find_by_name”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒVint reserve_mem_find_by_name (const char *name, phys_addr_t *start, phys_addr_t *size)”h]”j€)�”}”(hŒUint reserve_mem_find_by_name(const char *name, phys_addr_t *start, phys_addr_t *size)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjí h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÑ ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjí h²hh³jÿ h´MÑ ubj©)�”}”(hŒreserve_mem_find_by_name”h]”j¯)�”}”(hŒreserve_mem_find_by_name”h]”hŒreserve_mem_find_by_name”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¡ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjí h²hh³jÿ h´MÑ ubjp)�”}”(hŒ9(const char *name, phys_addr_t *start, phys_addr_t *size)”h]”(jv)�”}”(hŒconst char *name”h]”(j†)�”}”(hjÔh]”hŒconst”…”�”}”(hj.¡h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj*¡ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;¡h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj*¡ubj8)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjI¡h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj*¡ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW¡h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj*¡ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hje¡h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj*¡ubj¯)�”}”(hŒname”h]”hŒname”…”�”}”(hjr¡h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj*¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj&¡ubjv)�”}”(hŒphys_addr_t *start”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjŽ¡h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‹¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j�¡Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j¡sbŒc.reserve_mem_find_by_name”†”asbuh1hhj‡¡ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®¡h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‡¡ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj¼¡h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj‡¡ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hjÉ¡h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‡¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj&¡ubjv)�”}”(hŒphys_addr_t *size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjå¡h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjâ¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j硌modname”NŒ classname”Nj˜j›)�”}”jž]”jª¡Œc.reserve_mem_find_by_name”†”asbuh1hhjÞ¡ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÞ¡ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjÞ¡ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÞ¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj&¡ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjí h²hh³jÿ h´MÑ ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjé h²hh³jÿ h´MÑ ubah}”(h]”jä ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÿ h´MÑ hjæ h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ-Find reserved memory region with a given name”h]”hŒ-Find reserved memory region with a given name”…”�”}”(hjH¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÑ hjE¢h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjæ h²hh³jÿ h´MÑ ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj`¢jÿj`¢j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXU**Parameters** ``const char *name`` The name that is attached to a reserved memory region ``phys_addr_t *start`` If found, holds the start address ``phys_addr_t *size`` If found, holds the size of the address. **Description** **start** and **size** are only updated if **name** is found. **Return** 1 if found or 0 if not found.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjj¢h]”hŒ Parameters”…”�”}”(hjl¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjh¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÕ hjd¢ubj")�”}”(hhh]”(j')�”}”(hŒK``const char *name`` The name that is attached to a reserved memory region ”h]”(j-)�”}”(hŒ``const char *name``”h]”hä)�”}”(hj‰¢h]”hŒconst char *name”…”�”}”(hj‹¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj‡¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÒ hjƒ¢ubjG)�”}”(hhh]”hÌ)�”}”(hŒ5The name that is attached to a reserved memory region”h]”hŒ5The name that is attached to a reserved memory region”…”�”}”(hj¢¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jž¢h´MÒ hjŸ¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjƒ¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jž¢h´MÒ hj€¢ubj')�”}”(hŒ9``phys_addr_t *start`` If found, holds the start address ”h]”(j-)�”}”(hŒ``phys_addr_t *start``”h]”hä)�”}”(hj¢h]”hŒphys_addr_t *start”…”�”}”(hjÄ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÀ¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÓ hj¼¢ubjG)�”}”(hhh]”hÌ)�”}”(hŒ!If found, holds the start address”h]”hŒ!If found, holds the start address”…”�”}”(hjÛ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j×¢h´MÓ hjØ¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¼¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j×¢h´MÓ hj€¢ubj')�”}”(hŒ?``phys_addr_t *size`` If found, holds the size of the address. ”h]”(j-)�”}”(hŒ``phys_addr_t *size``”h]”hä)�”}”(hjû¢h]”hŒphys_addr_t *size”…”�”}”(hjý¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjù¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÔ hjõ¢ubjG)�”}”(hhh]”hÌ)�”}”(hŒ(If found, holds the size of the address.”h]”hŒ(If found, holds the size of the address.”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j£h´MÔ hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjõ¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j£h´MÔ hj€¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjd¢ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj6£h]”hŒ Description”…”�”}”(hj8£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj4£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÖ hjd¢ubhÌ)�”}”(hŒ=**start** and **size** are only updated if **name** is found.”h]”(j¬)�”}”(hŒ **start**”h]”hŒstart”…”�”}”(hjP£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjL£ubhŒ and ”…”�”}”(hjL£h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjb£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjL£ubhŒ are only updated if ”…”�”}”(hjL£h²hh³Nh´Nubj¬)�”}”(hŒ**name**”h]”hŒname”…”�”}”(hjt£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjL£ubhŒ is found.”…”�”}”(hjL£h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÕ hjd¢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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M× hjd¢ubhÌ)�”}”(hŒ1 if found or 0 if not found.”h]”hŒ1 if found or 0 if not found.”…”�”}”(hj¥£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MØ hjd¢ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ(reserve_mem_release_by_name (C function)”Œc.reserve_mem_release_by_name”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ2int reserve_mem_release_by_name (const char *name)”h]”j€)�”}”(hŒ1int reserve_mem_release_by_name(const char *name)”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjÔ£h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjУh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mê ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjã£h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjУh²hh³jâ£h´Mê ubj©)�”}”(hŒreserve_mem_release_by_name”h]”j¯)�”}”(hŒreserve_mem_release_by_name”h]”hŒreserve_mem_release_by_name”…”�”}”(hjõ£h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjñ£ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjУh²hh³jâ£h´Mê ubjp)�”}”(hŒ(const char *name)”h]”jv)�”}”(hŒconst char *name”h]”(j†)�”}”(hjÔh]”hŒconst”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ¤ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj ¤ubj8)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj,¤h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj ¤ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:¤h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj ¤ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjH¤h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj ¤ubj¯)�”}”(hŒname”h]”hŒname”…”�”}”(hjU¤h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj ¤ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj ¤ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjУh²hh³jâ£h´Mê ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÌ£h²hh³jâ£h´Mê ubah}”(h]”jÇ£ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jâ£h´Mê hjÉ£h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ0Release reserved memory region with a given name”h]”hŒ0Release reserved memory region with a given name”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mê hj|¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÉ£h²hh³jâ£h´Mê ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj—¤jÿj—¤j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hX9**Parameters** ``const char *name`` The name that is attached to a reserved memory region **Description** Forcibly release the pages in the reserved memory region so that those memory can be used as free memory. After released the reserved region size becomes 0. **Return** 1 if released or 0 if not found.”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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mî hj›¤ubj")�”}”(hhh]”j')�”}”(hŒK``const char *name`` The name that is attached to a reserved memory region ”h]”(j-)�”}”(hŒ``const char *name``”h]”hä)�”}”(hjÀ¤h]”hŒconst char *name”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¾¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Më hjº¤ubjG)�”}”(hhh]”hÌ)�”}”(hŒ5The name that is attached to a reserved memory region”h]”hŒ5The name that is attached to a reserved memory region”…”�”}”(hjÙ¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÕ¤h´Më hjÖ¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjº¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÕ¤h´Më hj·¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!hj›¤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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mí hj›¤ubhÌ)�”}”(hŒœForcibly release the pages in the reserved memory region so that those memory can be used as free memory. After released the reserved region size becomes 0.”h]”hŒœForcibly release the pages in the reserved memory region so that those memory can be used as free memory. After released the reserved region size becomes 0.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mì 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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mï hj›¤ubhÌ)�”}”(hŒ 1 if released or 0 if not found.”h]”hŒ 1 if released or 0 if not found.”…”�”}”(hj8¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mð hj›¤ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubeh}”(h]”Œfunctions-and-structures”ah ]”h"]”Œfunctions and structures”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubeh}”(h]”Œboot-time-memory-management”ah ]”h"]”Œboot time memory management”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[¥jX¥jAj>jS¥jP¥uŒ nametypes”}”(j[¥‰jA‰jS¥‰uh}”(jX¥h·j>jcjP¥jDjrj{jMjRjj jñ jö j¥ jª j` je jjj¾jÃj0j5j¢j§j:j?jdjijÇjÌj*j/jljqj(!j-!jà"jå"j˜$j�$jP&jU&j4'j9'j(j(j},j‚,jâ0jç0jk5jp5jØ8jÝ8jÚ9jß9jÞ<jã<j¸?j½?j1Dj6DjWFj\FjwJj|JjÊMjÏMjPjPj¿QjÄQjÝUjâUjÃWjÈWj¯Yj´Yj}]j‚]ji_jn_jUajZajAcjFcjŸej¤ej‹gj�gjòij÷ijÞkjãkjñmjömjËojÐojøujýuj®{j³{j2j7jªƒj¯ƒj‡j ‡j®‰j³‰jq�jv�j‘j‘jÆ“jË“jj—jo—jç™jì™jR›jW›jš�jŸ�jâŸ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.