sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/core-api/generic-radix-treemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/core-api/generic-radix-treemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/core-api/generic-radix-treemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/core-api/generic-radix-treemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/core-api/generic-radix-treemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/core-api/generic-radix-treemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h!Generic radix trees/sparse arraysh]h!Generic radix trees/sparse arrays}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree.rsthKubh paragraph)}(hYVery simple and minimalistic, supporting arbitrary size entries up to GENRADIX_NODE_SIZE.h]hYVery simple and minimalistic, supporting arbitrary size entries up to GENRADIX_NODE_SIZE.}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhhhhubh)}(h;A genradix is defined with the type it will store, like so:h]h;A genradix is defined with the type it will store, like so:}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhK hhhhubh)}(h)static GENRADIX(struct foo) foo_genradix;h]h)static GENRADIX(struct foo) foo_genradix;}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhK hhhhubh)}(hThe main operations are:h]hThe main operations are:}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhK hhhhubh bullet_list)}(hhh](h list_item)}(h4genradix_init(radix) - initialize an empty genradix h]h)}(h3genradix_init(radix) - initialize an empty genradixh]h3genradix_init(radix) - initialize an empty genradix}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhhubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hQgenradix_free(radix) - free all memory owned by the genradix and reinitialize it h]h)}(hPgenradix_free(radix) - free all memory owned by the genradix and reinitialize ith]hPgenradix_free(radix) - free all memory owned by the genradix and reinitialize it}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhjubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hkgenradix_ptr(radix, idx) - gets a pointer to the entry at idx, returning NULL if that entry does not exist h]h)}(hjgenradix_ptr(radix, idx) - gets a pointer to the entry at idx, returning NULL if that entry does not existh]hjgenradix_ptr(radix, idx) - gets a pointer to the entry at idx, returning NULL if that entry does not exist}(hj4hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhj.ubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h]genradix_ptr_alloc(radix, idx, gfp) - gets a pointer to an entry, allocating it if necessary h]h)}(h\genradix_ptr_alloc(radix, idx, gfp) - gets a pointer to an entry, allocating it if necessaryh]h\genradix_ptr_alloc(radix, idx, gfp) - gets a pointer to an entry, allocating it if necessary}(hjMhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhjGubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hJgenradix_for_each(radix, iter, p) - iterate over each entry in a genradix h]h)}(hIgenradix_for_each(radix, iter, p) - iterate over each entry in a genradixh]hIgenradix_for_each(radix, iter, p) - iterate over each entry in a genradix}(hjfhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhj`ubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]bullet-uh1hhjhKhhhhubh)}(hThe radix tree allocates one page of entries at a time, so entries may exist that were never explicitly allocated - they will be initialized to all zeroes.h]hThe radix tree allocates one page of entries at a time, so entries may exist that were never explicitly allocated - they will be initialized to all zeroes.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhKhhhhubh)}(hInternally, a genradix is just a radix tree of pages, and indexing works in terms of byte offsets. The wrappers in this header file use sizeof on the type the radix contains to calculate a byte offset from the index - see __idx_to_offset.h]hInternally, a genradix is just a radix tree of pages, and indexing works in terms of byte offsets. The wrappers in this header file use sizeof on the type the radix contains to calculate a byte offset from the index - see __idx_to_offset.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhm/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:5: ./include/linux/generic-radix-tree.hhK hhhhubh)}(hhh](h)}(hgeneric radix tree functionsh]hgeneric radix tree functions}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlegenradix_init (C macro)c.genradix_inithNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h genradix_inith]hdesc_signature_line)}(h genradix_inith]h desc_name)}(h genradix_inith]h desc_sig_name)}(hjh]h genradix_init}(hhhjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKZubah}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKZubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multilineuh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKYhjhhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhjhKZubeh}(h]h ](cmacroeh"]h$]h&]domainjobjtypejdesctypejnoindexuh1jhhhjhNhNubh)}(h``genradix_init (_radix)``h]hliteral)}(hjh]hgenradix_init (_radix)}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhK[hjhhubh block_quote)}(hhh]h)}(hinitialize a genradixh]hinitialize a genradix}(hj>hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKThj9ubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubh container)}(hS**Parameters** ``_radix`` genradix to initialize **Description** Does not failh](h)}(h**Parameters**h]hstrong)}(hjYh]h Parameters}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjWubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKXhjSubhdefinition_list)}(hhh]hdefinition_list_item)}(h"``_radix`` genradix to initialize h](hterm)}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj~ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKUhjxubh definition)}(hhh]h)}(hgenradix to initializeh]hgenradix to initialize}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jvhjhKUhjsubah}(h]h ]h"]h$]h&]uh1jqhjSubh)}(h**Description**h]j\)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKWhjSubh)}(h Does not failh]h Does not fail}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKWhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_free (C macro)c.genradix_freehNtauh1jhjhhhNhNubj)}(hhh](j)}(h genradix_freeh]j)}(h genradix_freeh]j)}(h genradix_freeh]j)}(hjh]h genradix_free}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKgubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKgubah}(h]jah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKfhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhjhKgubeh}(h]h ](jmacroeh"]h$]h&]jjjj3jj3juh1jhhhjhNhNubh)}(h``genradix_free (_radix)``h]j")}(hj9h]hgenradix_free (_radix)}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj7ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhhjhhubj8)}(hhh]h)}(h#free all memory owned by a genradixh]h#free all memory owned by a genradix}(hjThjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKahjOubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(h}**Parameters** ``_radix`` the genradix to free **Description** After freeing, **_radix** will be reinitialized and emptyh](h)}(h**Parameters**h]j\)}(hjmh]h Parameters}(hhhjohhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjkubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKehjgubjr)}(hhh]jw)}(h ``_radix`` the genradix to free h](j})}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKbhjubj)}(hhh]h)}(hthe genradix to freeh]hthe genradix to free}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKbhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKbhjubah}(h]h ]h"]h$]h&]uh1jqhjgubh)}(h**Description**h]j\)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKdhjgubh)}(h9After freeing, **_radix** will be reinitialized and emptyh](hAfter freeing, }(hAfter freeing, hjhhhNhNubj\)}(h **_radix**h]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubh will be reinitialized and empty}(h will be reinitialized and emptyhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKdhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_ptr (C macro)c.genradix_ptrhNtauh1jhjhhhNhNubj)}(hhh](j)}(h genradix_ptrh]j)}(h genradix_ptrh]j)}(h genradix_ptrh]j)}(hjh]h genradix_ptr}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj7hKubah}(h]jah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhj7hKubeh}(h]h ](jmacroeh"]h$]h&]jjjjQjjQjuh1jhhhjhNhNubh)}(h``genradix_ptr (_radix, _idx)``h]j")}(hjWh]hgenradix_ptr (_radix, _idx)}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjUubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj8)}(hhh]h)}(h!get a pointer to a genradix entryh]h!get a pointer to a genradix entry}(hjrhjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjmubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(h**Parameters** ``_radix`` genradix to access ``_idx`` index to fetch **Description** Returns a pointer to entry at **_idx**, or NULL if that entry does not exist.h](h)}(h**Parameters**h]j\)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubjr)}(hhh](jw)}(h``_radix`` genradix to access h](j})}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(hgenradix to accessh]hgenradix to access}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubjw)}(h``_idx`` index to fetch h](j})}(h``_idx``h]j")}(hjh]h_idx}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(hindex to fetchh]hindex to fetch}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubeh}(h]h ]h"]h$]h&]uh1jqhjubh)}(h**Description**h]j\)}(hjh]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubh)}(hMReturns a pointer to entry at **_idx**, or NULL if that entry does not exist.h](hReturns a pointer to entry at }(hReturns a pointer to entry at hj4hhhNhNubj\)}(h**_idx**h]h_idx}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj4ubh', or NULL if that entry does not exist.}(h', or NULL if that entry does not exist.hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_ptr_alloc (C macro)c.genradix_ptr_allochNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_ptr_alloch]j)}(hgenradix_ptr_alloch]j)}(hgenradix_ptr_alloch]j)}(hjqh]hgenradix_ptr_alloc}(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubah}(h]h ](jjeh"]h$]h&]jjuh1jhjshhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjohhhjhKubah}(h]jjah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjlhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjlhhhjhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjuh1jhhhjhNhNubh)}(h+``genradix_ptr_alloc (_radix, _idx, _gfp)``h]j")}(hjh]h'genradix_ptr_alloc (_radix, _idx, _gfp)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj8)}(hhh]h)}(h=get a pointer to a genradix entry, allocating it if necessaryh]h=get a pointer to a genradix entry, allocating it if necessary}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(h**Parameters** ``_radix`` genradix to access ``_idx`` index to fetch ``_gfp`` gfp mask **Description** Returns a pointer to entry at **_idx**, or NULL on allocation failureh](h)}(h**Parameters**h]j\)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubjr)}(hhh](jw)}(h``_radix`` genradix to access h](j})}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(hgenradix to accessh]hgenradix to access}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubjw)}(h``_idx`` index to fetch h](j})}(h``_idx``h]j")}(hj:h]h_idx}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj8ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj4ubj)}(hhh]h)}(hindex to fetchh]hindex to fetch}(hjUhjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jvhjOhKhjubjw)}(h``_gfp`` gfp mask h](j})}(h``_gfp``h]j")}(hjsh]h_gfp}(hhhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjqubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjmubj)}(hhh]h)}(hgfp maskh]hgfp mask}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubeh}(h]h ]h"]h$]h&]uh1jqhjubh)}(h**Description**h]j\)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubh)}(hEReturns a pointer to entry at **_idx**, or NULL on allocation failureh](hReturns a pointer to entry at }(hReturns a pointer to entry at hjhhhNhNubj\)}(h**_idx**h]h_idx}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubh, or NULL on allocation failure}(h, or NULL on allocation failurehjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_iter_init (C macro)c.genradix_iter_inithNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_iter_inith]j)}(hgenradix_iter_inith]j)}(hgenradix_iter_inith]j)}(hjh]hgenradix_iter_init}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jmacroeh"]h$]h&]jjjj8jj8juh1jhhhjhNhNubh)}(h%``genradix_iter_init (_radix, _idx)``h]j")}(hj>h]h!genradix_iter_init (_radix, _idx)}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj<ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj8)}(hhh]h)}(hinitialize a genradix_iterh]hinitialize a genradix_iter}(hjYhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjTubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(hj**Parameters** ``_radix`` genradix that will be iterated over ``_idx`` index to start iterating fromh](h)}(h**Parameters**h]j\)}(hjrh]h Parameters}(hhhjthhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjpubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjlubjr)}(hhh](jw)}(h/``_radix`` genradix that will be iterated over h](j})}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(h#genradix that will be iterated overh]h#genradix that will be iterated over}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubjw)}(h&``_idx`` index to start iterating fromh](j})}(h``_idx``h]j")}(hjh]h_idx}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(hindex to start iterating fromh]hindex to start iterating from}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubeh}(h]h ]h"]h$]h&]uh1jqhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_iter_peek (C macro)c.genradix_iter_peekhNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_iter_peekh]j)}(hgenradix_iter_peekh]j)}(hgenradix_iter_peekh]j)}(hjh]hgenradix_iter_peek}(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj;hKubah}(h]jah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhj;hKubeh}(h]h ](jmacroeh"]h$]h&]jjjjUjjUjuh1jhhhjhNhNubh)}(h&``genradix_iter_peek (_iter, _radix)``h]j")}(hj[h]h"genradix_iter_peek (_iter, _radix)}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjYubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj8)}(hhh]h)}(h7get first entry at or above iterator's current positionh]h9get first entry at or above iterator’s current position}(hjvhjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjqubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(h**Parameters** ``_iter`` a genradix_iter ``_radix`` genradix being iterated over **Description** If no more entries exist at or above **_iter**'s current position, returns NULLh](h)}(h**Parameters**h]j\)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubjr)}(hhh](jw)}(h``_iter`` a genradix_iter h](j})}(h ``_iter``h]j")}(hjh]h_iter}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(ha genradix_iterh]ha genradix_iter}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubjw)}(h(``_radix`` genradix being iterated over h](j})}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubj)}(hhh]h)}(hgenradix being iterated overh]hgenradix being iterated over}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhKhjubeh}(h]h ]h"]h$]h&]uh1jqhjubh)}(h**Description**h]j\)}(hj" h]h Description}(hhhj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubh)}(hOIf no more entries exist at or above **_iter**'s current position, returns NULLh](h%If no more entries exist at or above }(h%If no more entries exist at or above hj8 hhhNhNubj\)}(h **_iter**h]h_iter}(hhhjA hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj8 ubh#’s current position, returns NULL}(h!'s current position, returns NULLhj8 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!genradix_iter_peek_prev (C macro)c.genradix_iter_peek_prevhNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_iter_peek_prevh]j)}(hgenradix_iter_peek_prevh]j)}(hgenradix_iter_peek_prevh]j)}(hju h]hgenradix_iter_peek_prev}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjw hhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKubah}(h]h ]h"]h$]h&]jjjuh1jjjhjs hhhj hKubah}(h]jn ah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjp hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjp hhhj hKubeh}(h]h ](jmacroeh"]h$]h&]jjjj jj juh1jhhhjhNhNubh)}(h+``genradix_iter_peek_prev (_iter, _radix)``h]j")}(hj h]h'genradix_iter_peek_prev (_iter, _radix)}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhjhhubj8)}(hhh]h)}(h7get first entry at or below iterator's current positionh]h9get first entry at or below iterator’s current position}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj ubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(h**Parameters** ``_iter`` a genradix_iter ``_radix`` genradix being iterated over **Description** If no more entries exist at or below **_iter**'s current position, returns NULLh](h)}(h**Parameters**h]j\)}(hj h]h Parameters}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj ubjr)}(hhh](jw)}(h``_iter`` a genradix_iter h](j})}(h ``_iter``h]j")}(hj h]h_iter}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj ubj)}(hhh]h)}(ha genradix_iterh]ha genradix_iter}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jvhj hKhj ubjw)}(h(``_radix`` genradix being iterated over h](j})}(h ``_radix``h]j")}(hj> h]h_radix}(hhhj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj< ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj8 ubj)}(hhh]h)}(hgenradix being iterated overh]hgenradix being iterated over}(hjY hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS hKhjT ubah}(h]h ]h"]h$]h&]uh1jhj8 ubeh}(h]h ]h"]h$]h&]uh1jvhjS hKhj ubeh}(h]h ]h"]h$]h&]uh1jqhj ubh)}(h**Description**h]j\)}(hjy h]h Description}(hhhj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjw ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj ubh)}(hOIf no more entries exist at or below **_iter**'s current position, returns NULLh](h%If no more entries exist at or below }(h%If no more entries exist at or below hj hhhNhNubj\)}(h **_iter**h]h_iter}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubh#’s current position, returns NULL}(h!'s current position, returns NULLhj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_for_each (C macro)c.genradix_for_eachhNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_for_eachh]j)}(hgenradix_for_eachh]j)}(hgenradix_for_eachh]j)}(hj h]hgenradix_for_each}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM ubah}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hM ubah}(h]j ah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM hj hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj hhhj hM ubeh}(h]h ](jmacroeh"]h$]h&]jjjj jj juh1jhhhjhNhNubh)}(h)``genradix_for_each (_radix, _iter, _p)``h]j")}(hj h]h%genradix_for_each (_radix, _iter, _p)}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM hjhhubj8)}(hhh]h)}(h iterate over entry in a genradixh]h iterate over entry in a genradix}(hj$ hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(hX**Parameters** ``_radix`` genradix to iterate over ``_iter`` a genradix_iter to track current position ``_p`` pointer to genradix entry type **Description** On every iteration, **_p** will point to the current entry, and **_iter.pos** will be the current entry's index.h](h)}(h**Parameters**h]j\)}(hj= h]h Parameters}(hhhj? hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj; ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj7 ubjr)}(hhh](jw)}(h$``_radix`` genradix to iterate over h](j})}(h ``_radix``h]j")}(hj\ h]h_radix}(hhhj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjZ ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhjV ubj)}(hhh]h)}(hgenradix to iterate overh]hgenradix to iterate over}(hjw hju hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq hMhjr ubah}(h]h ]h"]h$]h&]uh1jhjV ubeh}(h]h ]h"]h$]h&]uh1jvhjq hMhjS ubjw)}(h4``_iter`` a genradix_iter to track current position h](j})}(h ``_iter``h]j")}(hj h]h_iter}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubj)}(hhh]h)}(h)a genradix_iter to track current positionh]h)a genradix_iter to track current position}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jvhj hMhjS ubjw)}(h&``_p`` pointer to genradix entry type h](j})}(h``_p``h]j")}(hj h]h_p}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubj)}(hhh]h)}(hpointer to genradix entry typeh]hpointer to genradix entry type}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jvhj hMhjS ubeh}(h]h ]h"]h$]h&]uh1jqhj7 ubh)}(h**Description**h]j\)}(hj h]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj7 ubh)}(hpOn every iteration, **_p** will point to the current entry, and **_iter.pos** will be the current entry's index.h](hOn every iteration, }(hOn every iteration, hj hhhNhNubj\)}(h**_p**h]h_p}(hhhj( hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubh& will point to the current entry, and }(h& will point to the current entry, and hj hhhNhNubj\)}(h **_iter.pos**h]h _iter.pos}(hhhj; hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubh% will be the current entry’s index.}(h# will be the current entry's index.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj7 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#genradix_for_each_reverse (C macro)c.genradix_for_each_reversehNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_for_each_reverseh]j)}(hgenradix_for_each_reverseh]j)}(hgenradix_for_each_reverseh]j)}(hjo h]hgenradix_for_each_reverse}(hhhjy hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjq hhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMubah}(h]h ]h"]h$]h&]jjjuh1jjjhjm hhhj hMubah}(h]jh ah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhjj hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjj hhhj hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj jj juh1jhhhjhNhNubh)}(h1``genradix_for_each_reverse (_radix, _iter, _p)``h]j")}(hj h]h-genradix_for_each_reverse (_radix, _iter, _p)}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhjhhubj8)}(hhh]h)}(h/iterate over entry in a genradix, reverse orderh]h/iterate over entry in a genradix, reverse order}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(hX**Parameters** ``_radix`` genradix to iterate over ``_iter`` a genradix_iter to track current position ``_p`` pointer to genradix entry type **Description** On every iteration, **_p** will point to the current entry, and **_iter.pos** will be the current entry's index.h](h)}(h**Parameters**h]j\)}(hj h]h Parameters}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubjr)}(hhh](jw)}(h$``_radix`` genradix to iterate over h](j})}(h ``_radix``h]j")}(hj h]h_radix}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubj)}(hhh]h)}(hgenradix to iterate overh]hgenradix to iterate over}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jvhj hMhj ubjw)}(h4``_iter`` a genradix_iter to track current position h](j})}(h ``_iter``h]j")}(hj8 h]h_iter}(hhhj: hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj6 ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj2 ubj)}(hhh]h)}(h)a genradix_iter to track current positionh]h)a genradix_iter to track current position}(hjS hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hMhjN ubah}(h]h ]h"]h$]h&]uh1jhj2 ubeh}(h]h ]h"]h$]h&]uh1jvhjM hMhj ubjw)}(h&``_p`` pointer to genradix entry type h](j})}(h``_p``h]j")}(hjq h]h_p}(hhhjs hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjo ubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhjk ubj)}(hhh]h)}(hpointer to genradix entry typeh]hpointer to genradix entry type}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjk ubeh}(h]h ]h"]h$]h&]uh1jvhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jqhj ubh)}(h**Description**h]j\)}(hj h]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubh)}(hpOn every iteration, **_p** will point to the current entry, and **_iter.pos** will be the current entry's index.h](hOn every iteration, }(hOn every iteration, hj hhhNhNubj\)}(h**_p**h]h_p}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubh& will point to the current entry, and }(h& will point to the current entry, and hj hhhNhNubj\)}(h **_iter.pos**h]h _iter.pos}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubh% will be the current entry’s index.}(h# will be the current entry's index.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jgenradix_prealloc (C macro)c.genradix_preallochNtauh1jhjhhhNhNubj)}(hhh](j)}(hgenradix_prealloch]j)}(hgenradix_prealloch]j)}(hgenradix_prealloch]j)}(hjh]hgenradix_prealloc}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM(ubah}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj/hM(ubah}(h]j ah ](jjeh"]h$]h&]juh1jhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM'hj hhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj hhhj/hM(ubeh}(h]h ](jmacroeh"]h$]h&]jjjjIjjIjuh1jhhhjhNhNubh)}(h)``genradix_prealloc (_radix, _nr, _gfp)``h]j")}(hjOh]h%genradix_prealloc (_radix, _nr, _gfp)}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjMubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM)hjhhubj8)}(hhh]h)}(h+preallocate entries in a generic radix treeh]h+preallocate entries in a generic radix tree}(hjjhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM hjeubah}(h]h ]h"]h$]h&]uh1j7hjhhhNhNubjR)}(h**Parameters** ``_radix`` genradix to preallocate ``_nr`` number of entries to preallocate ``_gfp`` gfp mask **Description** Returns 0 on success, -ENOMEM on failureh](h)}(h**Parameters**h]j\)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM$hj}ubjr)}(hhh](jw)}(h#``_radix`` genradix to preallocate h](j})}(h ``_radix``h]j")}(hjh]h_radix}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM!hjubj)}(hhh]h)}(hgenradix to preallocateh]hgenradix to preallocate}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhM!hjubjw)}(h)``_nr`` number of entries to preallocate h](j})}(h``_nr``h]j")}(hjh]h_nr}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM"hjubj)}(hhh]h)}(h number of entries to preallocateh]h number of entries to preallocate}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhjhM"hjubjw)}(h``_gfp`` gfp mask h](j})}(h``_gfp``h]j")}(hjh]h_gfp}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1j|hn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM#hjubj)}(hhh]h)}(hgfp maskh]hgfp mask}(hj/hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hM#hj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jvhj)hM#hjubeh}(h]h ]h"]h$]h&]uh1jqhj}ubh)}(h**Description**h]j\)}(hjOh]h Description}(hhhjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjMubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM%hj}ubh)}(h(Returns 0 on success, -ENOMEM on failureh]h(Returns 0 on success, -ENOMEM on failure}(hjghjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/core-api/generic-radix-tree:11: ./include/linux/generic-radix-tree.hhM%hj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jQhjhhhNhNubeh}(h]generic-radix-tree-functionsah ]h"]generic radix tree functionsah$]h&]uh1hhhhhhhhK ubeh}(h]!generic-radix-trees-sparse-arraysah ]h"]!generic radix trees/sparse arraysah$]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_handlerjerror_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.confapep_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_spacefile_insertion_enabled raw_enabledKline_length_limitM'syntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_link embed_imagesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjj}u nametypes}(jNjNuh}(jhj}jjjjjjjjjjojjjjjn js j j jh jm j ju 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.