€•Œ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´Mhj³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´MhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÎh´Mhj0ubeh}”(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´MBhj¬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´MAhj¬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´MJubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjih²hh³jˆh´MJubah}”(h]”jdah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jˆh´MJhjfh²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjfh²hh³jˆh´MJubeh}”(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´MLhjDh²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´MJhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jÏh´MJhjDh²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´MNhjÖ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´MKhjõ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´MKhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´MKhjò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´MLhj.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´MLhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jIh´MLhjò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´MMhjyubjG)�”}”(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´MMhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j”h´MMhjò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´MNhj²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´MNhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÍh´MNhjò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´MOhjù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´MOhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jh´MOhjò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´MPhj@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´MPhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j[h´MPhjò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´MRhjÖ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´MQhjÖ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´MZubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÌh²hh³jëh´MZubah}”(h]”jÇah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jëh´MZhjÉh²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÉh²hh³jëh´MZubeh}”(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´MZhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j2h´MZhjDh²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´M[hjXubjG)�”}”(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´M[hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jsh´M[hjUubj')�”}”(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´Mbhj9ubhÌ)�”}”(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´Mahj9ubeh}”(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´MhjubjG)�”}”(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´Mhjubah}”(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´Mhj� 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´Mhj¯ 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&]”uh1jFhj¯ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÊ h´Mhj¬ 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´Mhj� 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´Mhj� 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´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_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´M#ubjp)�”}”(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´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 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´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 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´M2hj¸%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´M1hj¸%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´M1hj¸%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´M9ubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjU&h²hh³jt&h´M9ubah}”(h]”jP&ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jt&h´M9hjR&h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjR&h²hh³jt&h´M9ubeh}”(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´M;hjDh²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´M9hj©&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³j»&h´M9hjDh²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´M=hjÂ&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´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Â&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´MBubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj9'h²hh³jX'h´MBubah}”(h]”j4'ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jX'h´MBhj6'h²hubjÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj6'h²hh³jX'h´MBubeh}”(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´MDhjDh²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´MBhj�'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jþ h³jŸ'h´MBhjDh²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´MFhj¦'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´MHhjÅ'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´MChjá'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÅ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jà'h´MHhjÂ'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´MhjÓ.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´Mhjò.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´Mhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjò.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j /h´Mhjï.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´Mhj+/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´MhjG/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj+/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jF/h´Mhjï.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´Mhj…/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´Mhj¡/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj…/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j /h´Mhjï.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´Mhj¾/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´MhjÚ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¾/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÙ/h´Mhjï.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´M hjÓ.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´M hjÓ.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´M0hj83ubhÌ)�”}”(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´M1hj83ubeh}”(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´MKubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjt5h²hh³jœ5h´MKubhŒ__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´MKubj©)�”}”(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´MKubjp)�”}”(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´MKubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjp5h²hh³jœ5h´MKubah}”(h]”jk5ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jœ5h´MKhjm5h²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´MKhj 7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjm5h²hh³jœ5h´MKubeh}”(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´MOhj)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´MLhjH7ubjG)�”}”(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´MLhjd7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjH7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jc7h´MLhjE7ubj')�”}”(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´MNhj�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´MMhj�7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jœ7h´MNhjE7ubj')�”}”(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´MOhjÛ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´MOhj÷7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÛ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jö7h´MOhjE7ubj')�”}”(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´MPhj8ubjG)�”}”(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´MPhj08ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j/8h´MPhjE7ubeh}”(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´MRhj)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´MQhj)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´MShj)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´MThj)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´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô8h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjá8h²hh³jó8h´Mubj©)�”}”(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´Mubjp)�”}”(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´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjÝ8h²hh³jó8h´Mubah}”(h]”jØ8ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jó8h´MhjÚ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´MhjI9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÚ8h²hh³jó8h´Mubeh}”(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´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú<h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjç<h²hh³jù<h´MubhŒ__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´Mubj©)�”}”(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´Mubjp)�”}”(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´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Œ$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´Mhj\>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjà<h²hh³jù<h´Mubeh}”(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´Mhjš>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´Mhj¶>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjš>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jµ>h´Mhj—>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´M5ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ?h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÁ?h²hh³jÓ?h´M5ubhŒ__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´M5ubj©)�”}”(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´M5ubjp)�”}”(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´M5ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj½?h²hh³jÓ?h´M5ubah}”(h]”j¸?ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jÓ?h´M5hjº?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´M5hjñAh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjº?h²hh³jÓ?h´M5ubeh}”(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´M9hjBubj")�”}”(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´M6hj/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´M6hjKBubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj/Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jJBh´M6hj,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´M7hjhBubjG)�”}”(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´M7hj„Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjhBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jƒBh´M7hj,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´M8hj¡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´M8hj½Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¡Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¼Bh´M8hj,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´M9hjÚ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´M9hjöBubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÚBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jõBh´M9hj,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´M:hjCubjG)�”}”(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´M:hj/Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j.Ch´M:hj,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´M;hjLCubjG)�”}”(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´M;hjhCubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjLCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jgCh´M;hj,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´M=hjBubhÌ)�”}”(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´M<hjBubeh}”(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”…”�”}”(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´MSubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMDh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj:Dh²hh³jLDh´MSubhŒ__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´MSubj©)�”}”(hŒmemblock_add_range”h]”j¯)�”}”(hŒmemblock_add_range”h]”hŒmemblock_add_range”…”�”}”(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´MSubjp)�”}”(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�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_add_range”†”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_add_range”†”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…Dubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjJEh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjGEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jLEŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jÇDŒc.memblock_add_range”†”asbuh1hhjCEubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhEh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjCEubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjvEh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjCEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj…Dubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj‹Eubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‹Eubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hj«Eh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj‹Eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj…Dubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjÄEh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÀEubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑEh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÀEubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hjâEh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjßEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jäEŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jÇDŒc.memblock_add_range”†”asbuh1hhjÀEubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÀEubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÀEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj…Dubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj:Dh²hh³jLDh´MSubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj6Dh²hh³jLDh´MSubah}”(h]”j1Dah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jLDh´MShj3Dh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒadd new memblock region”h]”hŒadd new memblock region”…”�”}”(hj8Fh²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´MShj5Fh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj3Dh²hh³jLDh´MSubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjPFjÿjPFj‰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¬)�”}”(hjZFh]”hŒ Parameters”…”�”}”(hj\Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjXFubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MWhjTFubj")�”}”(hhh]”(j')�”}”(hŒD``struct memblock_type *type`` memblock type to add new region into ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hjyFh]”hŒstruct memblock_type *type”…”�”}”(hj{Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjwFubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MThjsFubjG)�”}”(hhh]”hÌ)�”}”(hŒ$memblock type to add new region into”h]”hŒ$memblock type to add new region into”…”�”}”(hj’Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jŽFh´MThj�Fubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjsFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jŽFh´MThjpFubj')�”}”(hŒ4``phys_addr_t base`` base address of the new 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´MUhj¬FubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the new region”h]”hŒbase address of the new region”…”�”}”(hjËFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÇFh´MUhjÈFubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¬Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÇFh´MUhjpFubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjëFh]”hŒphys_addr_t size”…”�”}”(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´MVhjåFubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jGh´MVhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjåFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jGh´MVhjpFubj')�”}”(hŒ"``int nid`` nid of the new region ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hj$Gh]”hŒint nid”…”�”}”(hj&Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj"Gubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MWhjGubjG)�”}”(hhh]”hÌ)�”}”(hŒnid of the new region”h]”hŒnid of the new region”…”�”}”(hj=Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j9Gh´MWhj:Gubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j9Gh´MWhjpFubj')�”}”(hŒ6``enum memblock_flags flags`` flags of the new region ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hj]Gh]”hŒenum memblock_flags flags”…”�”}”(hj_Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj[Gubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MXhjWGubjG)�”}”(hhh]”hÌ)�”}”(hŒflags of the new region”h]”hŒflags of the new region”…”�”}”(hjvGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jrGh´MXhjsGubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjWGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jrGh´MXhjpFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjTFubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj˜Gh]”hŒ Description”…”�”}”(hjšGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj–Gubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MZhjTFubhÌ)�”}”(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®Gh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj¶Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj®GubhŒ, ”…”�”}”(hj®Gh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjÈGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj®GubhŒ + ”…”�”}”(hj®Gh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÚGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj®GubhŒ) into ”…”�”}”(hj®Gh²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjìGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj®GubhŒp. The new region is allowed to overlap with existing ones - overlaps don’t affect already existing regions. ”…”�”}”(hj®Gh²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjþGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj®GubhŒa is guaranteed to be minimal (all neighbouring compatible regions are merged) after the addition.”…”�”}”(hj®Gh²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´MYhjTFubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjHh]”hŒReturn”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjHubah}”(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^hjTFubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(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´M_hjTFubeh}”(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^Hh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjZHh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÍubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjmHh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjZHh²hh³jlHh´MÍubhŒ__init_memblock”…”�”}”(hjZHh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjZHh²hh³jlHh´MÍubj©)�”}”(hŒmemblock_add_node”h]”j¯)�”}”(hŒmemblock_add_node”h]”hŒmemblock_add_node”…”�”}”(hj‘Hh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�Hubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjZHh²hh³jlHh´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°Hh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj­Hubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j²HŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j“HsbŒc.memblock_add_node”†”asbuh1hhj©Hubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐHh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj©Hubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjÞHh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj©Hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¥Hubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjúHh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj÷Hubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jüHŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jÌHŒc.memblock_add_node”†”asbuh1hhjóHubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjóHubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj&Ih²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjóHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¥Hubjv)�”}”(hŒint nid”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj?Ih²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj;Iubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMIh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj;Iubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hj[Ih²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj;Iubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¥Hubjv)�”}”(hŒenum memblock_flags flags”h]”(j†)�”}”(hj‰h]”hŒenum”…”�”}”(hjtIh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjpIubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Ih²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjpIubh)�”}”(hhh]”j¯)�”}”(hŒmemblock_flags”h]”hŒmemblock_flags”…”�”}”(hj’Ih²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj�Iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j”IŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jÌHŒc.memblock_add_node”†”asbuh1hhjpIubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°Ih²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjpIubj¯)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj¾Ih²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjpIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¥Hubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjZHh²hh³jlHh´MÍubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjVHh²hh³jlHh´MÍubah}”(h]”jQHah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jlHh´MÍhjSHh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ*add new memblock region within a NUMA node”h]”hŒ*add new memblock region within a NUMA node”…”�”}”(hjèIh²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åIh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjSHh²hh³jlHh´MÍubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjJjÿjJj‰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¬)�”}”(hj Jh]”hŒ Parameters”…”�”}”(hj Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjJubah}”(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ÑhjJubj")�”}”(hhh]”(j')�”}”(hŒ4``phys_addr_t base`` base address of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hj)Jh]”hŒphys_addr_t base”…”�”}”(hj+Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj'Jubah}”(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#JubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the new region”h]”hŒbase address of the new region”…”�”}”(hjBJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j>Jh´MÎhj?Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj#Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j>Jh´MÎhj Jubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjbJh]”hŒphys_addr_t size”…”�”}”(hjdJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj`Jubah}”(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\JubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hj{Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jwJh´MÏhjxJubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj\Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jwJh´MÏhj Jubj')�”}”(hŒ"``int nid`` nid of the new region ”h]”(j-)�”}”(hŒ ``int nid``”h]”hä)�”}”(hj›Jh]”hŒint nid”…”�”}”(hj�Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj™Jubah}”(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•JubjG)�”}”(hhh]”hÌ)�”}”(hŒnid of the new region”h]”hŒnid of the new region”…”�”}”(hj´Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j°Jh´MÐhj±Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj•Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j°Jh´MÐhj Jubj')�”}”(hŒ6``enum memblock_flags flags`` flags of the new region ”h]”(j-)�”}”(hŒ``enum memblock_flags flags``”h]”hä)�”}”(hjÔJh]”hŒenum memblock_flags flags”…”�”}”(hjÖJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÒJubah}”(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ÎJubjG)�”}”(hhh]”hÌ)�”}”(hŒflags of the new region”h]”hŒflags of the new region”…”�”}”(hjíJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jéJh´MÑhjêJubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÎJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jéJh´MÑhj Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjJubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjKh]”hŒ Description”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj Kubah}”(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ÓhjJubhÌ)�”}”(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%Kh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj-Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj%KubhŒ, ”…”�”}”(hj%Kh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj?Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj%KubhŒ + ”…”�”}”(hj%Kh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjQKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj%KubhŒQ) to the “memoryâ€� type. See memblock_add_range() description for mode details”…”�”}”(hj%Kh²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ÒhjJubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjlKh]”hŒReturn”…”�”}”(hjnKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjjKubah}”(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ÕhjJubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj‚Kh²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ÖhjJubeh}”(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±Kh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj­Kh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Måubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀKh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj­Kh²hh³j¿Kh´MåubhŒ__init_memblock”…”�”}”(hj­Kh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒKh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj­Kh²hh³j¿Kh´Måubj©)�”}”(hŒ memblock_add”h]”j¯)�”}”(hŒ memblock_add”h]”hŒ memblock_add”…”�”}”(hjäKh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjàKubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj­Kh²hh³j¿Kh´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”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jLŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jæKsbŒc.memblock_add”†”asbuh1hhjüKubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#Lh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjüKubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj1Lh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjüKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjøKubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjMLh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjJLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jOLŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jLŒc.memblock_add”†”asbuh1hhjFLubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkLh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjFLubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjyLh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjFLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjøKubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj­Kh²hh³j¿Kh´Måubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj©Kh²hh³j¿Kh´Måubah}”(h]”j¤Kah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j¿Kh´Måhj¦Kh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒadd new memblock region”h]”hŒadd new memblock region”…”�”}”(hj£Lh²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Ühj¦Kh²hh³j¿Kh´Måubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj»Ljÿj»Lj‰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ÅLh]”hŒ Parameters”…”�”}”(hjÇLh²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ä)�”}”(hjäLh]”hŒphys_addr_t base”…”�”}”(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Œbase address of the new region”h]”hŒbase address 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æhjÛLubj')�”}”(hŒ,``phys_addr_t size`` size of the new region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjMh]”hŒphys_addr_t size”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjMubah}”(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çhjMubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the new region”h]”hŒsize of the new region”…”�”}”(hj6Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j2Mh´Mçhj3Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j2Mh´MçhjÛLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¿LubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjXMh]”hŒ Description”…”�”}”(hjZMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjVMubah}”(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 [”…”�”}”(hjnMh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjvMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjnMubhŒ, ”…”�”}”(hjnMh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjˆMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjnMubhŒ + ”…”�”}”(hjnMh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjšMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjnMubhŒQ) to the “memoryâ€� type. See memblock_add_range() description for mode details”…”�”}”(hjnMh²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_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ú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 Nh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjöMh²hh³jNh´MúubhŒ__init_memblock”…”�”}”(hjöMh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjöMh²hh³jNh´Múubj©)�”}”(hŒmemblock_validate_numa_coverage”h]”j¯)�”}”(hŒmemblock_validate_numa_coverage”h]”hŒmemblock_validate_numa_coverage”…”�”}”(hj-Nh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj)Nubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjöMh²hh³jNh´Múubjp)�”}”(hŒ(unsigned long threshold_bytes)”h]”jv)�”}”(hŒunsigned long threshold_bytes”h]”(j8)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjINh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjENubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWNh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjENubj8)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjeNh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjENubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsNh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjENubj¯)�”}”(hŒthreshold_bytes”h]”hŒthreshold_bytes”…”�”}”(hj�Nh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjENubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjANubah}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjöMh²hh³jNh´Múubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjòMh²hh³jNh´Múubah}”(h]”jíMah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jNh´MúhjïMh²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«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³jNh´Múubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjÃNjÿjÃNj‰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Í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Œ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ä)�”}”(hjìNh]”hŒunsigned long threshold_bytes”…”�”}”(hjîNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjêNubah}”(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æNubjG)�”}”(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).”…”�”}”(hjOh²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ühjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjæNubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jOh´MýhjãNubah}”(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Œ�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 ”…”�”}”(hj>Oh²hh³Nh´Nubj¬)�”}”(hŒ**threshold_bytes**”h]”hŒthreshold_bytes”…”�”}”(hjFOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj>OubhŒ.”…”�”}”(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¬)�”}”(hjaOh]”hŒReturn”…”�”}”(hjcOh²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´MhjÇNubhÌ)�”}”(hŒ"true on success, false on failure.”h]”hŒ"true on success, false on failure.”…”�”}”(hjwOh²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ÇNubeh}”(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¦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´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµOh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¢Oh²hh³j´Oh´MubhŒ__init_memblock”…”�”}”(hj¢Oh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇOh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¢Oh²hh³j´Oh´Mubj©)�”}”(hŒmemblock_isolate_range”h]”j¯)�”}”(hŒmemblock_isolate_range”h]”hŒmemblock_isolate_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´Mubjp)�”}”(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”…”�”}”(hjõOh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjñOubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjñOubh)�”}”(hhh]”j¯)�”}”(hŒ memblock_type”h]”hŒ memblock_type”…”�”}”(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.memblock_isolate_range”†”asbuh1hhjñOubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3Ph²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjñOubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjAPh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjñOubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjNPh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjñOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjíOubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjjPh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjgPubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jlPŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j/PŒc.memblock_isolate_range”†”asbuh1hhjcPubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆPh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjcPubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj–Ph²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjcPubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjíOubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(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ž]”j/PŒc.memblock_isolate_range”†”asbuh1hhj«Pubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐPh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj«Pubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjÞPh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj«Pubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjíOubjv)�”}”(hŒint *start_rgn”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj÷Ph²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjóPubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjóPubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjóPubj¯)�”}”(hŒ start_rgn”h]”hŒ start_rgn”…”�”}”(hj Qh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjóPubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjíOubjv)�”}”(hŒ int *end_rgn”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hj9Qh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj5Qubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGQh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj5Qubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjUQh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj5Qubj¯)�”}”(hŒend_rgn”h]”hŒend_rgn”…”�”}”(hjbQh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj5Qubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjíOubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj¢Oh²hh³j´Oh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjžOh²hh³j´Oh´Mubah}”(h]”j™Oah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j´Oh´Mhj›Oh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ+isolate given range into disjoint memblocks”h]”hŒ+isolate given range into disjoint memblocks”…”�”}”(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‰Qh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj›Oh²hh³j´Oh´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj¤Qjÿj¤Qj‰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®Qh]”hŒ Parameters”…”�”}”(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´M hj¨Qubj")�”}”(hhh]”(j')�”}”(hŒB``struct memblock_type *type`` memblock type to isolate range for ”h]”(j-)�”}”(hŒ``struct memblock_type *type``”h]”hä)�”}”(hjÍQh]”hŒstruct memblock_type *type”…”�”}”(hjÏQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjËQubah}”(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Œ"memblock type to isolate range for”h]”hŒ"memblock type to isolate range for”…”�”}”(hjæQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jâQh´MhjãQubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÇQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jâQh´MhjÄQubj')�”}”(hŒ.``phys_addr_t base`` base of range to isolate ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjRh]”hŒphys_addr_t base”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MhjRubjG)�”}”(hhh]”hÌ)�”}”(hŒbase of range to isolate”h]”hŒbase of range to isolate”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jRh´MhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jRh´MhjÄQubj')�”}”(hŒ.``phys_addr_t size`` size of range to isolate ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hj?Rh]”hŒphys_addr_t size”…”�”}”(hjARh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj=Rubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mhj9RubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of range to isolate”h]”hŒsize of range to isolate”…”�”}”(hjXRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jTRh´MhjURubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj9Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jTRh´MhjÄQubj')�”}”(hŒB``int *start_rgn`` out parameter for the start of isolated region ”h]”(j-)�”}”(hŒ``int *start_rgn``”h]”hä)�”}”(hjxRh]”hŒint *start_rgn”…”�”}”(hjzRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjvRubah}”(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 hjrRubjG)�”}”(hhh]”hÌ)�”}”(hŒ.out parameter for the start of isolated region”h]”hŒ.out parameter for the start of isolated region”…”�”}”(hj‘Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j�Rh´M hjŽRubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjrRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j�Rh´M hjÄQubj')�”}”(hŒ>``int *end_rgn`` out parameter for the end of isolated region ”h]”(j-)�”}”(hŒ``int *end_rgn``”h]”hä)�”}”(hj±Rh]”hŒ int *end_rgn”…”�”}”(hj³Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj¯Rubah}”(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«RubjG)�”}”(hhh]”hÌ)�”}”(hŒ,out parameter for the end of isolated region”h]”hŒ,out parameter for the end of isolated region”…”�”}”(hjÊRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÆRh´M!hjÇRubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj«Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÆRh´M!hjÄQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¨QubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjìRh]”hŒ Description”…”�”}”(hjîRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjêRubah}”(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¨QubhÌ)�”}”(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 ”…”�”}”(hjSh²hh³Nh´Nubj¬)�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hj Sh²hh³Nh´Nubah}”(h]”h •]”h"]”h$]”h&]”uh1j«hjSubhŒB and ensure that regions don’t cross the boundaries defined by [”…”�”}”(hjSh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjSubhŒ, ”…”�”}”(hjSh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hj.Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjSubhŒ + ”…”�”}”(hjSh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj@Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjSubhŒœ). 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 ”…”�”}”(hjSh²hh³Nh´Nubj¬)�”}”(hŒ***start_rgn**”h]”hŒ *start_rgn”…”�”}”(hjRSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjSubhŒB and the index of the first region after the range is returned in ”…”�”}”(hjSh²hh³Nh´Nubj¬)�”}”(hŒ ***end_rgn**”h]”hŒ*end_rgn”…”�”}”(hjdSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjSubhŒ.”…”�”}”(hjSh²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¨QubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjSh]”hŒReturn”…”�”}”(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´M(hj¨QubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(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¨Qubeh}”(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ÄSh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjÀSh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÅubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓSh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÀSh²hh³jÒSh´MÅubhŒ__init_memblock”…”�”}”(hjÀSh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåSh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÀSh²hh³jÒSh´MÅubj©)�”}”(hŒ memblock_free”h]”j¯)�”}”(hŒ memblock_free”h]”hŒ memblock_free”…”�”}”(hj÷Sh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjóSubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjÀSh²hh³jÒSh´MÅubjp)�”}”(hŒ(void *ptr, size_t size)”h]”(jv)�”}”(hŒ void *ptr”h]”(j8)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjTubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!Th²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjTubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj/Th²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjTubj¯)�”}”(hŒptr”h]”hŒptr”…”�”}”(hj``void *ptr`` starting address of the boot memory allocation ”h]”(j-)�”}”(hŒ ``void *ptr``”h]”hä)�”}”(hjñTh]”hŒ void *ptr”…”�”}”(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Œ/starting address of the boot memory allocation”h]”hŒ/starting address of the boot memory allocation”…”�”}”(hj Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jUh´MÆhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjëTubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jUh´MÆhjèTubj')�”}”(hŒ7``size_t size`` size of the boot memory block in bytes ”h]”(j-)�”}”(hŒ``size_t size``”h]”hä)�”}”(hj*Uh]”hŒ size_t size”…”�”}”(hj,Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj(Uubah}”(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$UubjG)�”}”(hhh]”hÌ)�”}”(hŒ&size of the boot memory block in bytes”h]”hŒ&size of the boot memory block in bytes”…”�”}”(hjCUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j?Uh´MÇhj@Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj$Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j?Uh´MÇhjèTubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjÌTubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjeUh]”hŒ Description”…”�”}”(hjgUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjcUubah}”(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ÌTubhÌ)�”}”(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{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ÌTubeh}”(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ª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ËUh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj¦Uh²hh³j¸Uh´MÔubj©)�”}”(hŒmemblock_phys_free”h]”j¯)�”}”(hŒmemblock_phys_free”h]”hŒmemblock_phys_free”…”�”}”(hjÝUh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÙUubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj¦Uh²hh³j¸Uh´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üUh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjùUubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jþUŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jßUsbŒc.memblock_phys_free”†”asbuh1hhjõUubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjõUubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj*Vh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjõUubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjñUubjv)�”}”(hŒphys_addr_t size”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjFVh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjCVubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jHVŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jVŒc.memblock_phys_free”†”asbuh1hhj?Vubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdVh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj?Vubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjrVh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj?Vubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjñUubeh}”(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 block”h]”hŒfree boot memory block”…”�”}”(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)�”}”(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¾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ŒE``phys_addr_t base`` phys starting address of the boot memory block ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjÝVh]”hŒphys_addr_t base”…”�”}”(hjßVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjÛVubah}”(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×VubjG)�”}”(hhh]”hÌ)�”}”(hŒ/phys starting address of the boot memory block”h]”hŒ/phys starting address of the boot memory block”…”�”}”(hjöVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jòVh´MÕhjóVubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj×Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jòVh´MÕhjÔVubj')�”}”(hŒ<``phys_addr_t size`` size of the boot memory block in bytes ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjWh]”hŒphys_addr_t size”…”�”}”(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Œ&size of the boot memory block in bytes”h]”hŒ&size of the boot memory block in bytes”…”�”}”(hj/Wh²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ÖhjÔVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj¸VubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjQWh]”hŒ Description”…”�”}”(hjSWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjOWubah}”(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_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.”…”�”}”(hjgWh²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_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–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´Mubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥Wh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj’Wh²hh³j¤Wh´MubhŒ__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´Mubj©)�”}”(hŒmemblock_setclr_flag”h]”j¯)�”}”(hŒmemblock_setclr_flag”h]”hŒmemblock_setclr_flag”…”�”}”(hjÉWh²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´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å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”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjXubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jXŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”jËWsbŒc.memblock_setclr_flag”†”asbuh1hhjáWubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#Xh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjáWubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj1Xh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjáWubj¯)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj>Xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjáWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÝWubjv)�”}”(hŒphys_addr_t base”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjZXh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjWXubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j\XŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jXŒc.memblock_setclr_flag”†”asbuh1hhjSXubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxXh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjSXubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj†Xh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjSXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÝWubjv)�”}”(hŒphys_addr_t size”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ž]”jXŒc.memblock_setclr_flag”†”asbuh1hhj›Xubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀXh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj›Xubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjÎXh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj›Xubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÝWubjv)�”}”(hŒint set”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¯)�”}”(hŒset”h]”hŒset”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjãXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÝWubjv)�”}”(hŒint flag”h]”(j8)�”}”(hŒint”h]”hŒint”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjYubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Yh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjYubj¯)�”}”(hŒflag”h]”hŒflag”…”�”}”(hj8Yh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÝWubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj’Wh²hh³j¤Wh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjŽWh²hh³j¤Wh´Mubah}”(h]”j‰Wah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j¤Wh´Mhj‹Wh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ%set or clear flag for a memory region”h]”hŒ%set or clear flag for a memory region”…”�”}”(hjbYh²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_Yh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj‹Wh²hh³j¤Wh´Mubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjzYjÿjzYj‰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„Yh]”hŒ Parameters”…”�”}”(hj†Yh²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´M hj~Yubj")�”}”(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£Yh]”hŒstruct memblock_type *type”…”�”}”(hj¥Yh²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´Mhj�YubjG)�”}”(hhh]”hÌ)�”}”(hŒ#memblock type to set/clear flag for”h]”hŒ#memblock type to set/clear flag for”…”�”}”(hj¼Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¸Yh´Mhj¹Yubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�Yubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¸Yh´MhjšYubj')�”}”(hŒ0``phys_addr_t base`` base address of the region ”h]”(j-)�”}”(hŒ``phys_addr_t base``”h]”hä)�”}”(hjÜYh]”hŒphys_addr_t base”…”�”}”(hjÞYh²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 hjÖYubjG)�”}”(hhh]”hÌ)�”}”(hŒbase address of the region”h]”hŒbase address of the region”…”�”}”(hjõYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jñYh´M hjòYubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÖYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jñYh´M hjšYubj')�”}”(hŒ(``phys_addr_t size`` size of the region ”h]”(j-)�”}”(hŒ``phys_addr_t size``”h]”hä)�”}”(hjZh]”hŒphys_addr_t size”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjZubah}”(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 hjZubjG)�”}”(hhh]”hÌ)�”}”(hŒsize of the region”h]”hŒsize of the region”…”�”}”(hj.Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j*Zh´M hj+Zubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j*Zh´M hjšYubj')�”}”(hŒ"``int set`` set or clear the flag ”h]”(j-)�”}”(hŒ ``int set``”h]”hä)�”}”(hjNZh]”hŒint set”…”�”}”(hjPZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjLZubah}”(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 hjHZubjG)�”}”(hhh]”hÌ)�”}”(hŒset or clear the flag”h]”hŒset or clear the flag”…”�”}”(hjgZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jcZh´M hjdZubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjHZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jcZh´M hjšYubj')�”}”(hŒ ``int flag`` the flag to update ”h]”(j-)�”}”(hŒ ``int flag``”h]”hä)�”}”(hj‡Zh]”hŒint flag”…”�”}”(hj‰Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhj…Zubah}”(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�ZubjG)�”}”(hhh]”hÌ)�”}”(hŒthe flag to update”h]”hŒthe flag to update”…”�”}”(hj Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jœZh´M hj�Zubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�Zubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jœZh´M hjšYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj~YubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjÂZh]”hŒ Description”…”�”}”(hjÄZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÀZubah}”(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~YubhÌ)�”}”(hŒSThis function isolates region [**base**, **base** + **size**), and sets/clears flag”h]”(hŒThis function isolates region [”…”�”}”(hjØZh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjàZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjØZubhŒ, ”…”�”}”(hjØZh²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjòZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjØZubhŒ + ”…”�”}”(hjØZh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjØZubhŒ), and sets/clears flag”…”�”}”(hjØZh²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~YubhÌ)�”}”(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´Mhj~YubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hj5[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~Yubeh}”(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”…”�”}”(hjd[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Œ ”…”�”}”(hjs[h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj`[h²hh³jr[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³jr[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³jr[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Œ ”…”�”}”(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³jr[h´M)ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj\[h²hh³jr[h´M)ubah}”(h]”jW[ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jr[h´M)hjY[h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ4Mark hotpluggable memory with flag MEMBLOCK_HOTPLUG.”h]”hŒ4Mark hotpluggable memory with flag MEMBLOCK_HOTPLUG.”…”�”}”(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ÜhjY[h²hh³jr[h´M)ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjn\jÿjn\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¬)�”}”(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Œ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!hjr\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-hjr\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-hjr\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”…”�”}”(hjP]h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjL]h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M5ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_]h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjL]h²hh³j^]h´M5ubhŒ__init_memblock”…”�”}”(hjL]h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq]h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjL]h²hh³j^]h´M5ubj©)�”}”(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¨hjL]h²hh³j^]h´M5ubjp)�”}”(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Œ ”…”�”}”(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Çuh1johjL]h²hh³j^]h´M5ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjH]h²hh³j^]h´M5ubah}”(h]”jC]ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j^]h´M5hjE]h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ3Clear flag MEMBLOCK_HOTPLUG for a specified region.”h]”hŒ3Clear flag MEMBLOCK_HOTPLUG for a specified region.”…”�”}”(hjB^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´M5hj?^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjE]h²hh³j^]h´M5ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjZ^jÿjZ^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¬)�”}”(hjd^h]”hŒ Parameters”…”�”}”(hjf^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjb^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´M9hj^^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´M6hj}^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´M6hj™^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj}^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j˜^h´M6hjz^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´M7hj¶^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´M7hjÒ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¶^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÑ^h´M7hjz^ubeh}”(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³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´M9hj^^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´M9hj^^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”…”�”}”(hj<_h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj8_h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MAubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK_h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj8_h²hh³jJ_h´MAubhŒ__init_memblock”…”�”}”(hj8_h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]_h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj8_h²hh³jJ_h´MAubj©)�”}”(hŒmemblock_mark_mirror”h]”j¯)�”}”(hŒmemblock_mark_mirror”h]”hŒmemblock_mark_mirror”…”�”}”(hjo_h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjk_ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj8_h²hh³jJ_h´MAubjp)�”}”(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”jq_sbŒc.memblock_mark_mirror”†”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_mirror”†”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Çuh1johj8_h²hh³jJ_h´MAubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj4_h²hh³jJ_h´MAubah}”(h]”j/_ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jJ_h´MAhj1_h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ/Mark mirrored memory with flag MEMBLOCK_MIRROR.”h]”hŒ/Mark mirrored memory with flag MEMBLOCK_MIRROR.”…”�”}”(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+`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj1_h²hh³jJ_h´MAubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjF`jÿjF`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¬)�”}”(hjP`h]”hŒ Parameters”…”�”}”(hjR`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjN`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´MEhjJ`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ä)�”}”(hjo`h]”hŒphys_addr_t base”…”�”}”(hjq`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjm`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´MBhji`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´MBhj…`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhji`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j„`h´MBhjf`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´MChj¢`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´MChj¾`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¢`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j½`h´MChjf`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjJ`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´MEhjJ`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´MEhjJ`ubeh}”(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”…”�”}”(hj(ah²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Œ ”…”�”}”(hj7ah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj$ah²hh³j6ah´MRubhŒ__init_memblock”…”�”}”(hj$ah²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj$ah²hh³j6ah´MRubj©)�”}”(hŒmemblock_mark_nomap”h]”j¯)�”}”(hŒmemblock_mark_nomap”h]”hŒmemblock_mark_nomap”…”�”}”(hj[ah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjWaubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj$ah²hh³j6ah´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”…”�”}”(hjzah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjwaubah}”(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_nomap”†”asbuh1hhjsaubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjsaubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hj¨ah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjsaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjoaubjv)�”}”(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”jÆaŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j–aŒc.memblock_mark_nomap”†”asbuh1hhj½aubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâah²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj½aubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjðah²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj½aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjoaubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj$ah²hh³j6ah´MRubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj ah²hh³j6ah´MRubah}”(h]”jaah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j6ah´MRhjah²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ.Mark a memory region with flag MEMBLOCK_NOMAP.”h]”hŒ.Mark a memory region with flag MEMBLOCK_NOMAP.”…”�”}”(hjbh²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´MRhjbh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjah²hh³j6ah´MRubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj2bjÿj2bj‰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¬)�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj:bubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVhj6bubj")�”}”(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ãhjYbubah}”(h]”h ]”h"]”h$]”h&]”uh1j,h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MShjUbubjG)�”}”(hhh]”hÌ)�”}”(hŒ the base phys addr of the region”h]”hŒ the base phys addr of the region”…”�”}”(hjtbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jpbh´MShjqbubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjUbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jpbh´MShjRbubj')�”}”(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´MThjRbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj6bubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hjÏbh]”hŒ Description”…”�”}”(hjÑbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÍbubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MVhj6bubhÌ)�”}”(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åbh²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_NOMAP``”h]”hŒMEMBLOCK_NOMAP”…”�”}”(hjíbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjåbubhŒÑ 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åbh²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´MUhj6bubhÌ)�”}”(hŒ**Note**”h]”j¬)�”}”(hjch]”hŒNote”…”�”}”(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´MZhj6bubhÌ)�”}”(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 ”…”�”}”(hjch²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_NOMAP``”h]”hŒMEMBLOCK_NOMAP”…”�”}”(hj&ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjcubhŒS was allocated from memblock, the caller must inform kmemleak to ignore that memory”…”�”}”(hjch²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[hj6bubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjAch]”hŒReturn”…”�”}”(hjCch²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´M^hj6bubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjWch²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^hj6bubeh}”(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†ch²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj‚ch²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mfubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•ch²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‚ch²hh³j”ch´MfubhŒ__init_memblock”…”�”}”(hj‚ch²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§ch²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‚ch²hh³j”ch´Mfubj©)�”}”(hŒmemblock_clear_nomap”h]”j¯)�”}”(hŒmemblock_clear_nomap”h]”hŒmemblock_clear_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¨hj‚ch²hh³j”ch´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Ø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_clear_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”…”�”}”(hjdh²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"dh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjdubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j$dŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jôcŒc.memblock_clear_nomap”†”asbuh1hhjdubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@dh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjdubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjNdh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjdubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjÍcubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj‚ch²hh³j”ch´Mfubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj~ch²hh³j”ch´Mfubah}”(h]”jycah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j”ch´Mfhj{ch²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ1Clear flag MEMBLOCK_NOMAP for a specified region.”h]”hŒ1Clear flag MEMBLOCK_NOMAP for a specified region.”…”�”}”(hjxdh²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´Mfhjudh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj{ch²hh³j”ch´Mfubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj�djÿj�dj‰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šdh]”hŒ Parameters”…”�”}”(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´Mjhj”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ã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´Mghj³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´MghjÏdubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj³dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÎdh´Mghj°dubj')�”}”(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´MhhjìdubjG)�”}”(hhh]”hÌ)�”}”(hŒthe size of the region”h]”hŒthe size of the region”…”�”}”(hj eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jeh´Mhhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjìdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jeh´Mhhj°dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj”dubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hj-eh]”hŒReturn”…”�”}”(hj/eh²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´Mjhj”dubhÌ)�”}”(hŒ 0 on success, -errno on failure.”h]”hŒ 0 on success, -errno on failure.”…”�”}”(hjCeh²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”dubeh}”(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”…”�”}”(hjreh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjneh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´Mrubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�eh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjneh²hh³j€eh´MrubhŒ__init_memblock”…”�”}”(hjneh²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“eh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjneh²hh³j€eh´Mrubj©)�”}”(hŒmemblock_reserved_mark_noinit”h]”j¯)�”}”(hŒmemblock_reserved_mark_noinit”h]”hŒmemblock_reserved_mark_noinit”…”�”}”(hj¥eh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj¡eubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjneh²hh³j€eh´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Äeh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjÁeubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jÆeŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j¡)�”}”j”j§esbŒc.memblock_reserved_mark_noinit”†”asbuh1hhj½eubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäeh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj½eubj¯)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjòeh²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”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj fubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jfŒmodname”NŒ classname”Nj˜j›)�”}”jž]”jàeŒc.memblock_reserved_mark_noinit”†”asbuh1hhjfubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,fh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjfubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj:fh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj¹eubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johjneh²hh³j€eh´Mrubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjjeh²hh³j€eh´Mrubah}”(h]”jeeah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j€eh´Mrhjgeh²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒ}h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj}h²hh³j=}h´Mÿubj©)�”}”(hŒmemblock_alloc_range_nid”h]”j¯)�”}”(hj:}h]”hŒmemblock_alloc_range_nid”…”�”}”(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³j=}h´Mÿubjp)�”}”(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”…”�”}”(hjn}h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjk}ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jp}Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j8}Œc.memblock_alloc_range_nid”†”asbuh1hhjg}ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒ}h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjg}ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjš}h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjg}ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjc}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ž]”j8}Œ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Çuh1juhjc}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ž]”j8}Œ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Œ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Çuh1juhjc}ubjv)�”}”(hŒphys_addr_t end”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjF~h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjC~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jH~Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j8}Œc.memblock_alloc_range_nid”†”asbuh1hhj?~ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd~h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj?~ubj¯)�”}”(hŒend”h]”hŒend”…”�”}”(hjr~h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj?~ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjc}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Çuh1juhjc}ubjv)�”}”(hŒbool exact_nid”h]”(j8)�”}”(hjüMh]”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Çuh1juhjc}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Œallocate boot memory block”h]”hŒallocate boot memory block”…”�”}”(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ÿhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj}h²hh³j=}h´Mÿubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjjÿjj‰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¬)�”}”(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ä)�”}”(hjFh]”hŒphys_addr_t size”…”�”}”(hjHh²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´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ä)�”}”(hjh]”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´MhjyubjG)�”}”(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&]”uh1jFhjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j”h´Mhj=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´Mhj=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)”…”�”}”(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Œ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, ”…”�”}”(hjC€h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hjK€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjC€ubhŒ for any node”…”�”}”(hjC€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ŒC``bool exact_nid`` control the allocation fall back to other nodes ”h]”(j-)�”}”(hŒ``bool exact_nid``”h]”hä)�”}”(hju€h]”hŒbool exact_nid”…”�”}”(hjw€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjs€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´Mhjo€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&]”uh1jFhjo€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Œ}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´Mhj!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]”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´Mmhj3†ubhÌ)�”}”(hŒLphysical address of the allocated memory block on success, ``0`` on failure.”h]”(hŒ;physical address of the allocated memory block on success, ”…”�”}”(hjT‡h²hh³Nh´Nubhä)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj\‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjT‡ubhŒ on failure.”…”�”}”(hjT‡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´Mnhj3†ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ$memblock_alloc_internal (C function)”Œc.memblock_alloc_internal”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ‰void * memblock_alloc_internal (phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid, bool exact_nid)”h]”j€)�”}”(hŒ‡void *memblock_alloc_internal(phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, 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´Mxubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤‡h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj‘‡h²hh³j£‡h´Mxubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj²‡h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj‘‡h²hh³j£‡h´Mxubj©)�”}”(hŒmemblock_alloc_internal”h]”j¯)�”}”(hŒmemblock_alloc_internal”h]”hŒmemblock_alloc_internal”…”�”}”(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´Mxubjp)�”}”(hŒj(phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, 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¡)�”}”j”jŇsbŒc.memblock_alloc_internal”†”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_internal”†”asbuh1hhj%ˆubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJˆh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj%ˆubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hjXˆ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 min_addr”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(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þ‡Œc.memblock_alloc_internal”†”asbuh1hhjmˆubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’ˆh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjmˆubj¯)�”}”(hŒmin_addr”h]”hŒmin_addr”…”�”}”(hj ˆh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjmˆ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_internal”†”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Œ ”…”�”}”(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üMh]”hŒbool”…”�”}”(hj6‰h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj2‰ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC‰h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj2‰ubj¯)�”}”(hŒ exact_nid”h]”hŒ exact_nid”…”�”}”(hjQ‰h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj2‰ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjׇubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johj‘‡h²hh³j£‡h´Mxubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhj�‡h²hh³j£‡h´Mxubah}”(h]”jˆ‡ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³j£‡h´MxhjЇ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´Mxhjx‰h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjЇh²hh³j£‡h´Mxubeh}”(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 to allocate (phys address) ``phys_addr_t max_addr`` 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** Allocates memory block using memblock_alloc_range_nid() and converts the returned physical address to virtual. The **min_addr** limit is dropped if it can not be satisfied and the allocation will fall back to memory below **min_addr**. Other constraints, such as node and mirrored memory will be handled again in memblock_alloc_range_nid(). **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´M|hj—‰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´Myhj¶‰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´MyhjÒ‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¶‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jщh´Myhj³‰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´Mzhjï‰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´Mzhj Šubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjï‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j Šh´Mzhj³‰ubj')�”}”(hŒY``phys_addr_t min_addr`` the lower bound of the memory region to allocate (phys address) ”h]”(j-)�”}”(hŒ``phys_addr_t min_addr``”h]”hä)�”}”(hj.Šh]”hŒphys_addr_t min_addr”…”�”}”(hj0Š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 lower bound of the memory region to allocate (phys address)”h]”hŒ?the lower bound of the memory region to allocate (phys address)”…”�”}”(hjGŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jCŠh´M{hjDŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj(Šubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jCŠh´M{hj³‰ubj')�”}”(hŒY``phys_addr_t max_addr`` the upper bound of the memory region to allocate (phys address) ”h]”(j-)�”}”(hŒ``phys_addr_t max_addr``”h]”hä)�”}”(hjgŠh]”hŒphys_addr_t max_addr”…”�”}”(hjiŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjeŠ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|hjaŠ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)”…”�”}”(hj€Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j|Šh´M|hj}Šubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjaŠ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³‰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´M~hjåŠ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´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ŒnAllocates memory block using memblock_alloc_range_nid() and converts the returned physical address to virtual.”h]”hŒnAllocates memory block using memblock_alloc_range_nid() and converts the returned physical address to virtual.”…”�”}”(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—‰ubhÌ)�”}”(hŒåThe **min_addr** limit is dropped if it can not be satisfied and the allocation will fall back to memory below **min_addr**. Other constraints, such as node and mirrored memory will be handled again in memblock_alloc_range_nid().”h]”(hŒThe ”…”�”}”(hjK‹h²hh³Nh´Nubj¬)�”}”(hŒ **min_addr**”h]”hŒmin_addr”…”�”}”(hjS‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjK‹ubhŒ_ limit is dropped if it can not be satisfied and the allocation will fall back to memory below ”…”�”}”(hjK‹h²hh³Nh´Nubj¬)�”}”(hŒ **min_addr**”h]”hŒmin_addr”…”�”}”(hje‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjK‹ubhŒj. Other constraints, such as node and mirrored memory will be handled again in memblock_alloc_range_nid().”…”�”}”(hjK‹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—‰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Œ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ˆhj—‰ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ)memblock_alloc_exact_nid_raw (C function)”Œc.memblock_alloc_exact_nid_raw”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ~void * memblock_alloc_exact_nid_raw (phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid)”h]”j€)�”}”(hŒ|void *memblock_alloc_exact_nid_raw(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´M¥ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ‹h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjÁ‹h²hh³jÓ‹h´M¥ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjâ‹h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjÁ‹h²hh³jÓ‹h´M¥ubj©)�”}”(hŒmemblock_alloc_exact_nid_raw”h]”j¯)�”}”(hŒmemblock_alloc_exact_nid_raw”h]”hŒmemblock_alloc_exact_nid_raw”…”�”}”(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Œ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_exact_nid_raw”†”asbuh1hhj Œubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2Œ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®hjYŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”j^ŒŒmodname”NŒ classname”Nj˜j›)�”}”jž]”j.ŒŒc.memblock_alloc_exact_nid_raw”†”asbuh1hhjUŒubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzŒh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjUŒubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hjˆŒh²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjUŒ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_exact_nid_raw”†”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_exact_nid_raw”†”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”…”�”}”(hj1�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”…”�”}”(hjM�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ŒCallocate boot memory block on the exact node without zeroing memory”h]”hŒCallocate boot memory block on the exact node without zeroing memory”…”�”}”(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** ``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. Does not zero 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´M©hj“�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ã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Œ(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´M¨hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjë�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jŽh´M¨hj¯�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ä)�”}”(hj*Žh]”hŒphys_addr_t min_addr”…”�”}”(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Œ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)”…”�”}”(hjCŽ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@Žubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj$Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j?Žh´Mªhj¯�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ä)�”}”(hjdŽh]”hŒphys_addr_t max_addr”…”�”}”(hjfŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjbŽ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 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«hjzŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj^Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jyŽ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. Does not zero allocated memory.”h]”hŒ{Public function, provides additional debug information (including caller info), if enabled. Does not zero 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¬)�”}”(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Œ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³hj“�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjDh²hh³Nh´Nubjd)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jpŒ'memblock_alloc_try_nid_raw (C function)”Œc.memblock_alloc_try_nid_raw”hNt”auh1jchjDh²hh³Nh´Nubju)�”}”(hhh]”(jz)�”}”(hŒ|void * memblock_alloc_try_nid_raw (phys_addr_t size, phys_addr_t align, phys_addr_t min_addr, phys_addr_t max_addr, int nid)”h]”j€)�”}”(hŒzvoid *memblock_alloc_try_nid_raw(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”…”�”}”(hji�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hje�h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MÄubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx�h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hje�h²hh³jw�h´MÄubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj†�h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hje�h²hh³jw�h´MÄubj©)�”}”(hŒmemblock_alloc_try_nid_raw”h]”j¯)�”}”(hŒmemblock_alloc_try_nid_raw”h]”hŒmemblock_alloc_try_nid_raw”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj“�ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hje�h²hh³jw�h´MÄubjp)�”}”(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_raw”†”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_try_nid_raw”†”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 min_addr”h]”(h)�”}”(hhh]”j¯)�”}”(hŒ phys_addr_t”h]”hŒ phys_addr_t”…”�”}”(hjH�h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjE�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jJ�Œmodname”NŒ classname”Nj˜j›)�”}”jž]”jÒ�Œc.memblock_alloc_try_nid_raw”†”asbuh1hhjA�ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf�h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjA�ubj¯)�”}”(hŒmin_addr”h]”hŒmin_addr”…”�”}”(hjt�h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjA�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_raw”†”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Œ ”…”�”}”(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«�ubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇuh1johje�h²hh³jw�h´MÄubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhja�h²hh³jw�h´MÄubah}”(h]”j\�ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jw�h´MÄhj^�h²hubjÝ)�”}”(hhh]”hÌ)�”}”(hŒGallocate boot memory block without zeroing memory and without panicking”h]”hŒGallocate boot memory block without zeroing memory and without panicking”…”�”}”(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³jw�h´MÄubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþj3‘jÿj3‘j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hXM**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. Does not zero allocated memory, 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¬)�”}”(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Èhj7‘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ãhjZ‘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ÆhjV‘ubjG)�”}”(hhh]”hÌ)�”}”(hŒ-size of memory block to be allocated in bytes”h]”hŒ-size of memory block to be allocated in bytes”…”�”}”(hju‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jq‘h´MÆhjr‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjV‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jq‘h´MÆhjS‘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´MÇhj�‘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´MÇhj«‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jª‘h´MÇhjS‘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ä)�”}”(hjΑh]”hŒphys_addr_t min_addr”…”�”}”(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Œ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)”…”�”}”(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ä‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÈ‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jã‘h´MÉhjS‘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ä)�”}”(hj’h]”hŒphys_addr_t max_addr”…”�”}”(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 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&]”uh1jFhj’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j’h´MÌhjS‘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ä)�”}”(hjT’h]”hŒint nid”…”�”}”(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Œ;nid of the free area to find, ``NUMA_NO_NODE`` for any node”h]”(hŒnid of the free area to find, ”…”�”}”(hjm’h²hh³Nh´Nubhä)�”}”(hŒ``NUMA_NO_NODE``”h]”hŒ NUMA_NO_NODE”…”�”}”(hju’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjm’ubhŒ for any node”…”�”}”(hjm’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ji’h´MÍhjj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjN’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³ji’h´MÍhjS‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj7‘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Ïhj7‘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Îhj7‘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Òhj7‘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Óhj7‘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Œ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj “h²hh³j“h´Mäubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj*“h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj “h²hh³j“h´Mäubj©)�”}”(hŒmemblock_alloc_hugetlb”h]”j¯)�”}”(hŒmemblock_alloc_hugetlb”h]”hŒmemblock_alloc_hugetlb”…”�”}”(hj;“h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hj7“ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hj “h²hh³j“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”…”�”}”(hjZ“h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjW“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_hugetlb”†”asbuh1hhjS“ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz“h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjS“ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjˆ“h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjS“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhjO“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Çuh1juhjO“ubjv)�”}”(hŒbool exact_nid”h]”(j8)�”}”(hjüMh]”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Çuh1juhjO“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Œ&allocate boot memory for HugeTLB pages”h]”hŒ&allocate boot memory for HugeTLB pages”…”�”}”(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þj3”jÿj3”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¬)�”}”(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èhj7”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ä)�”}”(hj\”h]”hŒphys_addr_t size”…”�”}”(hj^”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjZ”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åhjV”ubjG)�”}”(hhh]”hÌ)�”}”(hŒ+size of the memory to be allocated in bytes”h]”hŒ+size of the memory to be allocated in bytes”…”�”}”(hju”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jq”h´Måhjr”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjV”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jq”h´MåhjS”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æhjS”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èhjS”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hj7”ubhÌ)�”}”(hŒ**Description**”h]”j¬)�”}”(hj.•h]”hŒ Description”…”�”}”(hj0•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êhj7”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 ”…”�”}”(hjD•h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjL•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjD•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.”…”�”}”(hjD•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éhj7”ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjg•h]”hŒReturn”…”�”}”(hji•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hje•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íhj7”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îhj7”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´M+ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ•h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjº•h²hh³jÌ•h´M+ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjÛ•h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjº•h²hh³jÌ•h´M+ubj©)�”}”(hŒmemblock_alloc_try_nid”h]”j¯)�”}”(hŒmemblock_alloc_try_nid”h]”hŒmemblock_alloc_try_nid”…”�”}”(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Œ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”…”�”}”(hj9–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”…”�”}”(hjU–h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjR–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j”Œ reftarget”jW–Œmodname”NŒ classname”Nj˜j›)�”}”jž]”j'–Œc.memblock_alloc_try_nid”†”asbuh1hhjN–ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs–h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjN–ubj¯)�”}”(hŒalign”h]”hŒalign”…”�”}”(hj�–h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjN–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Œ ”…”�”}”(hj8—h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj&—ubj¯)�”}”(hŒnid”h]”hŒnid”…”�”}”(hjF—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Œallocate boot memory block”h]”hŒallocate boot memory block”…”�”}”(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Ü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** ``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´M/hjŒ—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ã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Œ(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´M-hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjä—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÿ—h´M-hj¨—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ä)�”}”(hj#˜h]”hŒphys_addr_t min_addr”…”�”}”(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Œ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)”…”�”}”(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.hj9˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j8˜h´M/hj¨—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ä)�”}”(hj]˜h]”hŒphys_addr_t max_addr”…”�”}”(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´M2hjW˜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 ”…”�”}”(hjv˜h²hh³Nh´Nubhä)�”}”(hŒ``MEMBLOCK_ALLOC_ACCESSIBLE``”h]”hŒMEMBLOCK_ALLOC_ACCESSIBLE”…”�”}”(hj~˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hãhjv˜ubhŒE to allocate only from memory limited by memblock.current_limit value”…”�”}”(hjv˜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´M0hjs˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjW˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jr˜h´M2hj¨—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´M3hj£˜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´M3hj¿˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj£˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j¾˜h´M3hj¨—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´M5hjŒ—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´M4hjŒ—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´M7hjŒ—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.”…”�”}”(hj3™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´M8hjŒ—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”…”�”}”(hjb™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´MNubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq™h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj^™h²hh³jp™h´MNubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj^™h²hh³jp™h´MNubj©)�”}”(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¨hj^™h²hh³jp™h´MNubjp)�”}”(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”…”�”}”(hj>šh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj:šubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKšh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj:šubj8)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjYšh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj:šubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgšh²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj:šubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjušh²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj:šubj¯)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(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³jp™h´MNubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjZ™h²hh³jp™h´MNubah}”(h]”jU™ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jp™h´MNhjW™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´MNhj©šh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjW™h²hh³jp™h´MNubeh}”(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´MRhjÈš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´MOhjçš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´MOhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjçšubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j›h´MOhjäš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´MPhj ›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´MPhj<›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j;›h´MPhjäšubj')�”}”(hŒ&``const char *func`` caller func name ”h]”(j-)�”}”(hŒ``const char *func``”h]”hä)�”}”(hj_›h]”hŒconst char *func”…”�”}”(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´MQhjY›ubjG)�”}”(hhh]”hÌ)�”}”(hŒcaller func name”h]”hŒcaller func name”…”�”}”(hjx›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jt›h´MQhju›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjY›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jt›h´MQhjäš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´MShjÈš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´MRhjÈš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”…”�”}”(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”…”�”}”(hj8œh²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj4œubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÆjÇuh1juhj0œ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”…”�”}”(hjbœ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þjzœjÿjzœ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.”…”�”}”(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_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üMh]”hŒbool”…”�”}”(hjJ�h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hjF�h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/boot-time-mm:40: ./mm/memblock.c”h´MIubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX�h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjF�h²hh³jW�h´MIubhŒ__init_memblock”…”�”}”(hjF�h²hh³Nh´Nubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj�h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjF�h²hh³jW�h´MIubj©)�”}”(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®hjx�ubah}”(h]”h ]”(jÁjÂeh"]”h$]”h&]”jÆjÇuh1j¨hjF�h²hh³jW�h´MIubjp)�”}”(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Çuh1johjF�h²hh³jW�h´MIubeh}”(h]”h ]”h"]”h$]”h&]”jÆjÇjΈuh1jjÏjÐhjB�h²hh³jW�h´MIubah}”(h]”j=�ah ]”(jÔjÕeh"]”h$]”h&]”jÙˆjÚ)jÛhuh1jyh³jW�h´MIhj?�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”…”�”}”(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´MIhj8žh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhj?�h²hh³jW�h´MIubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjSžjÿjSž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¬)�”}”(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´MMhjWž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ãhjzž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´MJhjvž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´MJhj’žubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjvžubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‘žh´MJhjsž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´MKhj¯ž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´MKhjËžubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¯žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³jÊžh´MKhjsžubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjWž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´MMhjWž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”…”�”}”(hj Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjŸubhŒ + ”…”�”}”(hjŸh²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj2Ÿ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´MLhjWžubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjMŸh]”hŒReturn”…”�”}”(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´MNhjWžubhÌ)�”}”(hŒ0 if false, non-zero if true”h]”hŒ0 if false, non-zero if true”…”�”}”(hjcŸ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´MOhjWž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üMh]”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Œ ”…”�”}”(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_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´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_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”…”�”}”(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_reserved”†”asbuh1hhj& ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj& ubj¯)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjY 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Œ,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´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)�”}”(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´MbhjŸ 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´M_hj¾ 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´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`` 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´M`hj÷ 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´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¬)�”}”(hj8¡h]”hŒ Description”…”�”}”(hj:¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj6¡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ŒWCheck if the region [**base**, **base** + **size**) intersects a reserved memory block.”h]”(hŒCheck if the region [”…”�”}”(hjN¡h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjV¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjN¡ubhŒ, ”…”�”}”(hjN¡h²hh³Nh´Nubj¬)�”}”(hŒ**base**”h]”hŒbase”…”�”}”(hjh¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjN¡ubhŒ + ”…”�”}”(hjN¡h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjz¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjN¡ubhŒ%) intersects a reserved memory block.”…”�”}”(hjN¡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´MahjŸ 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´MdhjŸ 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´MehjŸ 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”…”�”}”(hjA¢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þjY¢jÿjY¢j‰j‰j‰uh1jth²hhjDh³Nh´Nubj)�”}”(hŒ'**Parameters** ``void`` no arguments”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j¬)�”}”(hjc¢h]”hŒ Parameters”…”�”}”(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À 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´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 hjy¢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Œ%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”…”�”}”(hj4£h²hh³Nh´Nubah}”(h]”h ]”jDah"]”h$]”h&]”uh1j7hj£ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB£h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hj£ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hjP£h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hj£ubj¯)�”}”(hŒname”h]”hŒname”…”�”}”(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”…”�”}”(hjy£h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjv£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”†”asbuh1hhjr£ubj˜)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™£h²hh³Nh´Nubah}”(h]”h ]”j¤ah"]”h$]”h&]”uh1j—hjr£ubj; )�”}”(hj8h]”hŒ*”…”�”}”(hj§£h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjr£ubj¯)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj´£h²hh³Nh´Nubah}”(h]”h ]”jºah"]”h$]”h&]”uh1j®hjr£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”…”�”}”(hj3¤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ò hj0¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÜhjÑ¢h²hh³jê¢h´Mò ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jýjjþjK¤jÿjK¤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¬)�”}”(hjU¤h]”hŒ Parameters”…”�”}”(hjW¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjS¤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ö hjO¤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ä)�”}”(hjt¤h]”hŒconst char *name”…”�”}”(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Œ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&]”uh1jFhjn¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&h³j‰¤h´Mó hjk¤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ô hjk¤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õ hjk¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j!hjO¤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÷ hjO¤ubhÌ)�”}”(hŒ=**start** and **size** are only updated if **name** is found.”h]”(j¬)�”}”(hŒ **start**”h]”hŒstart”…”�”}”(hj;¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj7¥ubhŒ and ”…”�”}”(hj7¥h²hh³Nh´Nubj¬)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjM¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj7¥ubhŒ are only updated if ”…”�”}”(hj7¥h²hh³Nh´Nubj¬)�”}”(hŒ**name**”h]”hŒname”…”�”}”(hj_¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj7¥ubhŒ is found.”…”�”}”(hj7¥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ö hjO¤ubhÌ)�”}”(hŒ **Return**”h]”j¬)�”}”(hjz¥h]”hŒReturn”…”�”}”(hj|¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjx¥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ø hjO¤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ù hjO¤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Œ*”…”�”}”(hj3¦h²hh³Nh´Nubah}”(h]”h ]”jF ah"]”h$]”h&]”uh1j: hjø¥ubj¯)�”}”(hŒname”h]”hŒname”…”�”}”(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Ç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”…”�”}”(hjj¦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 hjg¦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.”…”�”}”(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´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”jl§Œ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”}”(jF§jC§jAj>j>§j;§uŒ nametypes”}”(jF§‰jA‰j>§‰uh}”(jC§h·j>jcj;§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½?j1Dj6DjQHjVHj¤Kj©KjíMjòMj™OjžOj·Sj¼Sj�Uj¢Uj‰WjŽWjW[j\[jC]jH]j/_j4_jaj ajycj~cjeejjejÌgjÑgj¸ij½ijËkjÐkj¥mjªmjÒsj×sjˆyj�yj }j}j„�j‰�jâ„jç„jˆ‡j�‡j¸‹j½‹j\�ja�j“j“j±•j¶•jU™jZ™jÒ›j×›j=�jB�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.