msphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget1/translations/zh_CN/driver-api/firmware/efi/indexmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/zh_TW/driver-api/firmware/efi/indexmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/it_IT/driver-api/firmware/efi/indexmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ja_JP/driver-api/firmware/efi/indexmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ko_KR/driver-api/firmware/efi/indexmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/sp_SP/driver-api/firmware/efi/indexmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhK/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index.rsthKubhsection)}(hhh](htitle)}(h UEFI Supporth]h UEFI Support}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hUEFI stub library functionsh]hUEFI stub library functions}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singleefi_get_memory_map (C function)c.efi_get_memory_maphNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hTefi_status_t efi_get_memory_map (struct efi_boot_memmap **map, bool install_cfg_tbl)h]hdesc_signature_line)}(hSefi_status_t efi_get_memory_map(struct efi_boot_memmap **map, bool install_cfg_tbl)h](h)}(hhh]h desc_sig_name)}(h efi_status_th]h efi_status_t}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jefi_get_memory_mapsbc.efi_get_memory_mapasbuh1hhhhhhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKubhdesc_sig_space)}(h h]h }(hj/hhhNhNubah}(h]h ]wah"]h$]h&]uh1j-hhhhhj,hKubh desc_name)}(hefi_get_memory_maph]j)}(hj)h]hefi_get_memory_map}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj@ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j>hhhhhj,hKubhdesc_parameterlist)}(h4(struct efi_boot_memmap **map, bool install_cfg_tbl)h](hdesc_parameter)}(hstruct efi_boot_memmap **maph](hdesc_sig_keyword)}(hstructh]hstruct}(hjghhhNhNubah}(h]h ]kah"]h$]h&]uh1jehjaubj.)}(h h]h }(hjvhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjaubh)}(hhh]j)}(hefi_boot_memmaph]hefi_boot_memmap}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj )}j#]j'c.efi_get_memory_mapasbuh1hhjaubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjaubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjaubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(hmaph]hmap}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hj[ubj`)}(hbool install_cfg_tblh](hdesc_sig_keyword_type)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hinstall_cfg_tblh]hinstall_cfg_tbl}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hj[ubeh}(h]h ]h"]h$]h&]hhuh1jYhhhhhj,hKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhj,hKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhj,hKhhhhubh desc_content)}(hhh]h paragraph)}(hget memory maph]hget memory map}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chK hj:hhubah}(h]h ]h"]h$]h&]uh1j8hhhhhj,hKubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejWdesctypejWnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hX**Parameters** ``struct efi_boot_memmap **map`` pointer to memory map pointer to which to assign the newly allocated memory map ``bool install_cfg_tbl`` whether or not to install the boot memory map as a configuration table **Description** Retrieve the UEFI memory map. The allocated memory leaves room for up to EFI_MMAP_NR_SLACK_SLOTS additional memory map entries. **Return** status codeh](j>)}(h**Parameters**h]hstrong)}(hjih]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjgubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chK hjcubhdefinition_list)}(hhh](hdefinition_list_item)}(hq``struct efi_boot_memmap **map`` pointer to memory map pointer to which to assign the newly allocated memory map h](hterm)}(h ``struct efi_boot_memmap **map``h]hliteral)}(hjh]hstruct efi_boot_memmap **map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chK hjubh definition)}(hhh]j>)}(hOpointer to memory map pointer to which to assign the newly allocated memory maph]hOpointer to memory map pointer to which to assign the newly allocated memory map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK hjubj)}(h```bool install_cfg_tbl`` whether or not to install the boot memory map as a configuration table h](j)}(h``bool install_cfg_tbl``h]j)}(hjh]hbool install_cfg_tbl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chK hjubj)}(hhh]j>)}(hFwhether or not to install the boot memory map as a configuration tableh]hFwhether or not to install the boot memory map as a configuration table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK hjubeh}(h]h ]h"]h$]h&]uh1jhjcubj>)}(h**Description**h]jl)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKhjcubj>)}(hRetrieve the UEFI memory map. The allocated memory leaves room for up to EFI_MMAP_NR_SLACK_SLOTS additional memory map entries.h]hRetrieve the UEFI memory map. The allocated memory leaves room for up to EFI_MMAP_NR_SLACK_SLOTS additional memory map entries.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKhjcubj>)}(h **Return**h]jl)}(hj1h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj/ubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKhjcubj>)}(h status codeh]h status code}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jahhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hefi_allocate_pages (C function)c.efi_allocate_pageshNtauh1hhhhhhNhNubh)}(hhh](h)}(h\efi_status_t efi_allocate_pages (unsigned long size, unsigned long *addr, unsigned long max)h]h)}(h[efi_status_t efi_allocate_pages(unsigned long size, unsigned long *addr, unsigned long max)h](h)}(hhh]j)}(h efi_status_th]h efi_status_t}(hjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj )}j#]j&)}jefi_allocate_pagessbc.efi_allocate_pagesasbuh1hhjrhhhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKRubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjrhhhjhKRubj?)}(hefi_allocate_pagesh]j)}(hjh]hefi_allocate_pages}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubah}(h]h ](jTjUeh"]h$]h&]hhuh1j>hjrhhhjhKRubjZ)}(h<(unsigned long size, unsigned long *addr, unsigned long max)h](j`)}(hunsigned long sizeh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hjubj`)}(hunsigned long *addrh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hj'hhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hlongh]hlong}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjChhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(haddrh]haddr}(hj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hjubj`)}(hunsigned long maxh](j)}(hunsignedh]hunsigned}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjsubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjsubj)}(hmaxh]hmax}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hjubeh}(h]h ]h"]h$]h&]hhuh1jYhjrhhhjhKRubeh}(h]h ]h"]h$]h&]hhj*uh1hj+j,hjnhhhjhKRubah}(h]jiah ](j0j1eh"]h$]h&]j5j6)j7huh1hhjhKRhjkhhubj9)}(hhh]j>)}(hAllocate memory pagesh]hAllocate memory pages}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKDhjhhubah}(h]h ]h"]h$]h&]uh1j8hjkhhhjhKRubeh}(h]h ](jfunctioneh"]h$]h&]j[jj\jj]jj^j_j`uh1hhhhhhNhNubjb)}(hXA**Parameters** ``unsigned long size`` minimum number of bytes to allocate ``unsigned long *addr`` On return the address of the first allocated page. The first allocated page has alignment EFI_ALLOC_ALIGN which is an architecture dependent multiple of the page size. ``unsigned long max`` the address that the last allocated memory page shall not exceed **Description** Allocate pages as EFI_LOADER_DATA. The allocated pages are aligned according to EFI_ALLOC_ALIGN. The last allocated page will not exceed the address given by **max**. **Return** status codeh](j>)}(h**Parameters**h]jl)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKHhjubj)}(hhh](j)}(h;``unsigned long size`` minimum number of bytes to allocate h](j)}(h``unsigned long size``h]j)}(hjh]hunsigned long size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKEhjubj)}(hhh]j>)}(h#minimum number of bytes to allocateh]h#minimum number of bytes to allocate}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj/hKEhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hKEhjubj)}(h``unsigned long *addr`` On return the address of the first allocated page. The first allocated page has alignment EFI_ALLOC_ALIGN which is an architecture dependent multiple of the page size. h](j)}(h``unsigned long *addr``h]j)}(hjSh]hunsigned long *addr}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKHhjMubj)}(hhh]j>)}(hOn return the address of the first allocated page. The first allocated page has alignment EFI_ALLOC_ALIGN which is an architecture dependent multiple of the page size.h]hOn return the address of the first allocated page. The first allocated page has alignment EFI_ALLOC_ALIGN which is an architecture dependent multiple of the page size.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKFhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhKHhjubj)}(hW``unsigned long max`` the address that the last allocated memory page shall not exceed h](j)}(h``unsigned long max``h]j)}(hjh]hunsigned long max}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKJhjubj)}(hhh]j>)}(h@the address that the last allocated memory page shall not exceedh]h@the address that the last allocated memory page shall not exceed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKIhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubeh}(h]h ]h"]h$]h&]uh1jhjubj>)}(h**Description**h]jl)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKLhjubj>)}(hAllocate pages as EFI_LOADER_DATA. The allocated pages are aligned according to EFI_ALLOC_ALIGN. The last allocated page will not exceed the address given by **max**.h](hAllocate pages as EFI_LOADER_DATA. The allocated pages are aligned according to EFI_ALLOC_ALIGN. The last allocated page will not exceed the address given by }(hjhhhNhNubjl)}(h**max**h]hmax}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKLhjubj>)}(h **Return**h]jl)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKPhjubj>)}(h status codeh]h status code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKPhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jahhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hefi_free (C function) c.efi_freehNtauh1hhhhhhNhNubh)}(hhh](h)}(h6void efi_free (unsigned long size, unsigned long addr)h]h)}(h5void efi_free(unsigned long size, unsigned long addr)h](j)}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKuubj.)}(h h]h }(hjVhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjChhhjUhKuubj?)}(hefi_freeh]j)}(hefi_freeh]hefi_free}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjdubah}(h]h ](jTjUeh"]h$]h&]hhuh1j>hjChhhjUhKuubjZ)}(h((unsigned long size, unsigned long addr)h](j`)}(hunsigned long sizeh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hj|ubj`)}(hunsigned long addrh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj.)}(h h]h }(hjhhhNhNubah}(h]h ]j:ah"]h$]h&]uh1j-hjubj)}(haddrh]haddr}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j_hj|ubeh}(h]h ]h"]h$]h&]hhuh1jYhjChhhjUhKuubeh}(h]h ]h"]h$]h&]hhj*uh1hj+j,hj?hhhjUhKuubah}(h]j:ah ](j0j1eh"]h$]h&]j5j6)j7huh1hhjUhKuhj<hhubj9)}(hhh]j>)}(hfree memory pagesh]hfree memory pages}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKkhj4hhubah}(h]h ]h"]h$]h&]uh1j8hj<hhhjUhKuubeh}(h]h ](jfunctioneh"]h$]h&]j[jj\jOj]jOj^j_j`uh1hhhhhhNhNubjb)}(hX**Parameters** ``unsigned long size`` size of the memory area to free in bytes ``unsigned long addr`` start of the memory area to free (must be EFI_PAGE_SIZE aligned) **Description** **size** is rounded up to a multiple of EFI_ALLOC_ALIGN which is an architecture specific multiple of EFI_PAGE_SIZE. So this function should only be used to return pages allocated with efi_allocate_pages() or efi_low_alloc_above().h](j>)}(h**Parameters**h]jl)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjWubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKohjSubj)}(hhh](j)}(h@``unsigned long size`` size of the memory area to free in bytes h](j)}(h``unsigned long size``h]j)}(hjxh]hunsigned long size}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKlhjrubj)}(hhh]j>)}(h(size of the memory area to free in bytesh]h(size of the memory area to free in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjhKlhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhKlhjoubj)}(hX``unsigned long addr`` start of the memory area to free (must be EFI_PAGE_SIZE aligned) h](j)}(h``unsigned long addr``h]j)}(hjh]hunsigned long addr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKnhjubj)}(hhh]j>)}(h@start of the memory area to free (must be EFI_PAGE_SIZE aligned)h]h@start of the memory area to free (must be EFI_PAGE_SIZE aligned)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKmhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKnhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubj>)}(h**Description**h]jl)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKphjSubj>)}(h**size** is rounded up to a multiple of EFI_ALLOC_ALIGN which is an architecture specific multiple of EFI_PAGE_SIZE. So this function should only be used to return pages allocated with efi_allocate_pages() or efi_low_alloc_above().h](jl)}(h**size**h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubh is rounded up to a multiple of EFI_ALLOC_ALIGN which is an architecture specific multiple of EFI_PAGE_SIZE. So this function should only be used to return pages allocated with efi_allocate_pages() or efi_low_alloc_above().}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j=hp/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/efi/index:10: ./drivers/firmware/efi/libstub/mem.chKphjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jahhhhhNhNubeh}(h]uefi-stub-library-functionsah ]h"]uefi stub library functionsah$]h&]uh1hhhhhhhhKubeh}(h] uefi-supportah ]h"] uefi supportah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjZerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j4j1j,j)u nametypes}(j4j,uh}(j1hj)hhhjijnj:j?u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.