sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget(/translations/zh_CN/core-api/folio_queuemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/core-api/folio_queuemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/core-api/folio_queuemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/core-api/folio_queuemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/core-api/folio_queuemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/pt_BR/core-api/folio_queuemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/sp_SP/core-api/folio_queuemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h!SPDX-License-Identifier: GPL-2.0+h]h!SPDX-License-Identifier: GPL-2.0+}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhB/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue.rsthKubhsection)}(hhh](htitle)}(h Folio Queueh]h Folio Queue}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh field_list)}(hhh]hfield)}(hhh](h field_name)}(hAuthorh]hAuthor}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h$David Howells h]h paragraph)}(h#David Howells h](hDavid Howells <}(hhhhhNhNubh reference)}(hdhowells@redhat.comh]hdhowells@redhat.com}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:dhowells@redhat.comuh1jhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hContents: * Overview * Initialisation * Adding and removing folios * Querying information about a folio * Querying information about a folio_queue * Folio queue iteration * Folio marks * Lockless simultaneous production/consumption issuesh]hContents: * Overview * Initialisation * Adding and removing folios * Querying information about a folio * Querying information about a folio_queue * Folio queue iteration * Folio marks * Lockless simultaneous production/consumption issues}hj5sbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubh)}(hhh](h)}(hOverviewh]hOverview}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChhhhhKubh)}(hThe folio_queue struct forms a single segment in a segmented list of folios that can be used to form an I/O buffer. As such, the list can be iterated over using the ITER_FOLIOQ iov_iter type.h]hThe folio_queue struct forms a single segment in a segmented list of folios that can be used to form an I/O buffer. As such, the list can be iterated over using the ITER_FOLIOQ iov_iter type.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjChhubh)}(h6The publicly accessible members of the structure are::h]h5The publicly accessible members of the structure are:}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjChhubh literal_block)}(hgstruct folio_queue { struct folio_queue *next; struct folio_queue *prev; ... };h]hgstruct folio_queue { struct folio_queue *next; struct folio_queue *prev; ... };}hjrsbah}(h]h ]h"]h$]h&]hhuh1jphhhKhjChhubh)}(hXA pair of pointers are provided, ``next`` and ``prev``, that point to the segments on either side of the segment being accessed. Whilst this is a doubly-linked list, it is intentionally not a circular list; the outward sibling pointers in terminal segments should be NULL.h](h!A pair of pointers are provided, }(hjhhhNhNubhliteral)}(h``next``h]hnext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``prev``h]hprev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, that point to the segments on either side of the segment being accessed. Whilst this is a doubly-linked list, it is intentionally not a circular list; the outward sibling pointers in terminal segments should be NULL.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK$hjChhubh)}(h%Each segment in the list also stores:h]h%Each segment in the list also stores:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjChhubh block_quote)}(he* an ordered sequence of folio pointers, * the size of each folio and * three 1-bit marks per folio, h]h bullet_list)}(hhh](h list_item)}(h&an ordered sequence of folio pointers,h]h)}(hjh]h&an ordered sequence of folio pointers,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hthe size of each folio andh]h)}(hjh]hthe size of each folio and}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hthree 1-bit marks per folio, h]h)}(hthree 1-bit marks per folio,h]hthree 1-bit marks per folio,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhK+hjubah}(h]h ]h"]h$]h&]uh1jhhhK+hjChhubh)}(hbut these should not be accessed directly as the underlying data structure may change, but rather the access functions outlined below should be used.h]hbut these should not be accessed directly as the underlying data structure may change, but rather the access functions outlined below should be used.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjChhubh)}(h(The facility can be made accessible by::h]h'The facility can be made accessible by:}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjChhubjq)}(h#include h]h#include }hj?sbah}(h]h ]h"]h$]h&]hhuh1jphhhK4hjChhubh)}(hand to use the iterator::h]hand to use the iterator:}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjChhubjq)}(h#include h]h#include }hj[sbah}(h]h ]h"]h$]h&]hhuh1jphhhK8hjChhubeh}(h]overviewah ]h"]overviewah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hInitialisationh]hInitialisation}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhhhhhKhjqhhubjq)}(h-void folioq_init(struct folio_queue *folioq);h]h-void folioq_init(struct folio_queue *folioq);}hjsbah}(h]h ]h"]h$]h&]hhuh1jphhhK@hjqhhubh)}(hwith a pointer to the segment to be initialised. Note that this will not necessarily initialise all the folio pointers, so care must be taken to check the number of folios added.h]hwith a pointer to the segment to be initialised. Note that this will not necessarily initialise all the folio pointers, so care must be taken to check the number of folios added.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjqhhubeh}(h]initialisationah ]h"]initialisationah$]h&]uh1hhhhhhhhKunsigned int folioq_nr_slots(const struct folio_queue *folioq)h](j8)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKAubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKAubj8)}(hinth]hint}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhhjhKAubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKAubj[)}(hfolioq_nr_slotsh]ja)}(hfolioq_nr_slotsh]hfolioq_nr_slots}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKAubjz)}(h"(const struct folio_queue *folioq)h]j)}(h const struct folio_queue *folioqh](j)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj!hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j)}jjsbc.folioq_nr_slotsasbuh1hhjubjJ)}(h h]h }(hjAhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hj\hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKAubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKAubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKAhjhhubjo)}(hhh]h)}(h+Query the capacity of a folio queue segmenth]h+Query the capacity of a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKAhjhhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKAubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(h**Parameters** ``const struct folio_queue *folioq`` The segment to query **Description** Query the number of folios that a particular folio queue segment might hold. [!] NOTE: This must not be assumed to be the same for every segment!h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKEhjubj)}(hhh]j)}(h:``const struct folio_queue *folioq`` The segment to query h](j)}(h$``const struct folio_queue *folioq``h]j)}(hjh]h const struct folio_queue *folioq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKBhjubj)}(hhh]h)}(hThe segment to queryh]hThe segment to query}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKBhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKDhjubh)}(hQuery the number of folios that a particular folio queue segment might hold. [!] NOTE: This must not be assumed to be the same for every segment!h]hQuery the number of folios that a particular folio queue segment might hold. [!] NOTE: This must not be assumed to be the same for every segment!}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKChjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_count (C function)c.folioq_counthNtauh1jhjhhhNhNubj')}(hhh](j,)}(h6unsigned int folioq_count (struct folio_queue *folioq)h]j2)}(h5unsigned int folioq_count(struct folio_queue *folioq)h](j8)}(hunsignedh]hunsigned}(hjG hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjC hhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKMubjJ)}(h h]h }(hjV hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjC hhhjU hKMubj8)}(hinth]hint}(hjd hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjC hhhjU hKMubjJ)}(h h]h }(hjr hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjC hhhjU hKMubj[)}(h folioq_counth]ja)}(h folioq_counth]h folioq_count}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjC hhhjU hKMubjz)}(h(struct folio_queue *folioq)h]j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.folioq_countasbuh1hhj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubja)}(hfolioqh]hfolioq}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jyhjC hhhjU hKMubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhj? hhhjU hKMubah}(h]j: ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjU hKMhj< hhubjo)}(hhh]h)}(h,Query the occupancy of a folio queue segmenth]h,Query the occupancy of a folio queue segment}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKMhj hhubah}(h]h ]h"]h$]h&]uh1jnhj< hhhjU hKMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj; jj; jjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to query **Description** Query the number of folios that have been added to a folio queue segment. Note that this is not decreased as folios are removed from a segment.h](h)}(h**Parameters**h]j)}(hjE h]h Parameters}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKQhj? ubj)}(hhh]j)}(h4``struct folio_queue *folioq`` The segment to query h](j)}(h``struct folio_queue *folioq``h]j)}(hjd h]hstruct folio_queue *folioq}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKNhj^ ubj)}(hhh]h)}(hThe segment to queryh]hThe segment to query}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjy hKNhjz ubah}(h]h ]h"]h$]h&]uh1jhj^ ubeh}(h]h ]h"]h$]h&]uh1jhjy hKNhj[ ubah}(h]h ]h"]h$]h&]uh1jhj? ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKPhj? ubh)}(hQuery the number of folios that have been added to a folio queue segment. Note that this is not decreased as folios are removed from a segment.h]hQuery the number of folios that have been added to a folio queue segment. Note that this is not decreased as folios are removed from a segment.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKOhj? ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_full (C function) c.folioq_fullhNtauh1jhjhhhNhNubj')}(hhh](j,)}(h-bool folioq_full (struct folio_queue *folioq)h]j2)}(h,bool folioq_full(struct folio_queue *folioq)h](j8)}(hboolh]hbool}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj hhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKYubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj hhhj hKYubj[)}(h folioq_fullh]ja)}(h folioq_fullh]h folioq_full}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhj hhhj hKYubjz)}(h(struct folio_queue *folioq)h]j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hj! hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(h h]h }(hj. hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj? hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj< ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjA modnameN classnameNjj)}j]j)}jj sb c.folioq_fullasbuh1hhj ubjJ)}(h h]h }(hj_ hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(hjh]h*}(hjm hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubja)}(hfolioqh]hfolioq}(hjz hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jyhj hhhj hKYubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhj hhhj hKYubah}(h]j ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hj hKYhj hhubjo)}(hhh]h)}(h&Query if a folio queue segment is fullh]h&Query if a folio queue segment is full}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKYhj hhubah}(h]h ]h"]h$]h&]uh1jnhj hhhj hKYubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to query **Description** Query if a folio queue segment is fully occupied. Note that this does not change if folios are removed from a segment.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhK]hj ubj)}(hhh]j)}(h4``struct folio_queue *folioq`` The segment to query h](j)}(h``struct folio_queue *folioq``h]j)}(hj h]hstruct folio_queue *folioq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKZhj ubj)}(hhh]h)}(hThe segment to queryh]hThe segment to query}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKZhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKZhj ubah}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj h]h Description}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhK\hj ubh)}(hwQuery if a folio queue segment is fully occupied. Note that this does not change if folios are removed from a segment.h]hwQuery if a folio queue segment is fully occupied. Note that this does not change if folios are removed from a segment.}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhK[hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_is_marked (C function)c.folioq_is_markedhNtauh1jhjhhhNhNubj')}(hhh](j,)}(hKbool folioq_is_marked (const struct folio_queue *folioq, unsigned int slot)h]j2)}(hJbool folioq_is_marked(const struct folio_queue *folioq, unsigned int slot)h](j8)}(hj h]hbool}(hje hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hja hhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKfubjJ)}(h h]h }(hjs hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhja hhhjr hKfubj[)}(hfolioq_is_markedh]ja)}(hfolioq_is_markedh]hfolioq_is_marked}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhja hhhjr hKfubjz)}(h5(const struct folio_queue *folioq, unsigned int slot)h](j)}(h const struct folio_queue *folioqh](j)}(hjh]hconst}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.folioq_is_markedasbuh1hhj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubja)}(hfolioqh]hfolioq}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hj. hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj* ubjJ)}(h h]h }(hj< hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj* ubj8)}(hinth]hint}(hjJ hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj* ubjJ)}(h h]h }(hjX hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj* ubja)}(hsloth]hslot}(hjf hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj* ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jyhja hhhjr hKfubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhj] hhhjr hKfubah}(h]jX ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjr hKfhjZ hhubjo)}(hhh]h)}(h/Check first folio mark in a folio queue segmenth]h/Check first folio mark in a folio queue segment}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKfhj hhubah}(h]h ]h"]h$]h&]uh1jnhjZ hhhjr hKfubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1j&hhhjhNhNubj)}(h**Parameters** ``const struct folio_queue *folioq`` The segment to query ``unsigned int slot`` The slot number of the folio to query **Description** Determine if the first mark is set for the folio in the specified slot in a folio queue segment.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKjhj ubj)}(hhh](j)}(h:``const struct folio_queue *folioq`` The segment to query h](j)}(h$``const struct folio_queue *folioq``h]j)}(hj h]h const struct folio_queue *folioq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKghj ubj)}(hhh]h)}(hThe segment to queryh]hThe segment to query}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKghj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKghj ubj)}(h<``unsigned int slot`` The slot number of the folio to query h](j)}(h``unsigned int slot``h]j)}(hj h]hunsigned int slot}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhhjubj)}(hhh]h)}(h%The slot number of the folio to queryh]h%The slot number of the folio to query}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hjEh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKjhj ubh)}(h`Determine if the first mark is set for the folio in the specified slot in a folio queue segment.h]h`Determine if the first mark is set for the folio in the specified slot in a folio queue segment.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKihj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_mark (C function) c.folioq_markhNtauh1jhjhhhNhNubj')}(hhh](j,)}(h@void folioq_mark (struct folio_queue *folioq, unsigned int slot)h]j2)}(h?void folioq_mark(struct folio_queue *folioq, unsigned int slot)h](j8)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKsubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKsubj[)}(h folioq_markh]ja)}(h folioq_markh]h folioq_mark}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKsubjz)}(h/(struct folio_queue *folioq, unsigned int slot)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.folioq_markasbuh1hhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj5ubjJ)}(h h]h }(hjGhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj5ubj8)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj5ubjJ)}(h h]h }(hjchhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj5ubja)}(hsloth]hslot}(hjqhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKsubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKsubah}(h]j}ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKshjhhubjo)}(hhh]h)}(h6Set the first mark on a folio in a folio queue segmenth]h6Set the first mark on a folio in a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKshjhhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to modify ``unsigned int slot`` The slot number of the folio to modify **Description** Set the first mark for the folio in the specified slot in a folio queue segment.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKwhjubj)}(hhh](j)}(h5``struct folio_queue *folioq`` The segment to modify h](j)}(h``struct folio_queue *folioq``h]j)}(hjh]hstruct folio_queue *folioq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKthjubj)}(hhh]h)}(hThe segment to modifyh]hThe segment to modify}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKthjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKthjubj)}(h=``unsigned int slot`` The slot number of the folio to modify h](j)}(h``unsigned int slot``h]j)}(hjh]hunsigned int slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKuhjubj)}(hhh]h)}(h&The slot number of the folio to modifyh]h&The slot number of the folio to modify}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKuhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hKuhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjPh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKwhjubh)}(hPSet the first mark for the folio in the specified slot in a folio queue segment.h]hPSet the first mark for the folio in the specified slot in a folio queue segment.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKvhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_unmark (C function)c.folioq_unmarkhNtauh1jhjhhhNhNubj')}(hhh](j,)}(hBvoid folioq_unmark (struct folio_queue *folioq, unsigned int slot)h]j2)}(hAvoid folioq_unmark(struct folio_queue *folioq, unsigned int slot)h](j8)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj[)}(h folioq_unmarkh]ja)}(h folioq_unmarkh]h folioq_unmark}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h/(struct folio_queue *folioq, unsigned int slot)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.folioq_unmarkasbuh1hhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hj+hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hjDhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj@ubjJ)}(h h]h }(hjRhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj@ubj8)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj@ubjJ)}(h h]h }(hjnhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj@ubja)}(hsloth]hslot}(hj|hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjhhubjo)}(hhh]h)}(h8Clear the first mark on a folio in a folio queue segmenth]h8Clear the first mark on a folio in a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to modify ``unsigned int slot`` The slot number of the folio to modify **Description** Clear the first mark for the folio in the specified slot in a folio queue segment.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh](j)}(h5``struct folio_queue *folioq`` The segment to modify h](j)}(h``struct folio_queue *folioq``h]j)}(hjh]hstruct folio_queue *folioq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe segment to modifyh]hThe segment to modify}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h=``unsigned int slot`` The slot number of the folio to modify h](j)}(h``unsigned int slot``h]j)}(hj h]hunsigned int slot}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(h&The slot number of the folio to modifyh]h&The slot number of the folio to modify}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj[h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(hRClear the first mark for the folio in the specified slot in a folio queue segment.h]hRClear the first mark for the folio in the specified slot in a folio queue segment.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_is_marked2 (C function)c.folioq_is_marked2hNtauh1jhjhhhNhNubj')}(hhh](j,)}(hLbool folioq_is_marked2 (const struct folio_queue *folioq, unsigned int slot)h]j2)}(hKbool folioq_is_marked2(const struct folio_queue *folioq, unsigned int slot)h](j8)}(hj h]hbool}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj[)}(hfolioq_is_marked2h]ja)}(hfolioq_is_marked2h]hfolioq_is_marked2}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h5(const struct folio_queue *folioq, unsigned int slot)h](j)}(h const struct folio_queue *folioqh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.folioq_is_marked2asbuh1hhjubjJ)}(h h]h }(hj5hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hjPhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hjihhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjeubjJ)}(h h]h }(hjwhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjeubj8)}(hinth]hint}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjeubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjeubja)}(hsloth]hslot}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjeubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjhhubjo)}(hhh]h)}(h0Check second folio mark in a folio queue segmenth]h0Check second folio mark in a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(h**Parameters** ``const struct folio_queue *folioq`` The segment to query ``unsigned int slot`` The slot number of the folio to query **Description** Determine if the second mark is set for the folio in the specified slot in a folio queue segment.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh](j)}(h:``const struct folio_queue *folioq`` The segment to query h](j)}(h$``const struct folio_queue *folioq``h]j)}(hj h]h const struct folio_queue *folioq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe segment to queryh]hThe segment to query}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hKhjubj)}(h<``unsigned int slot`` The slot number of the folio to query h](j)}(h``unsigned int slot``h]j)}(hjEh]hunsigned int slot}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj?ubj)}(hhh]h)}(h%The slot number of the folio to queryh]h%The slot number of the folio to query}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhKhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(haDetermine if the second mark is set for the folio in the specified slot in a folio queue segment.h]haDetermine if the second mark is set for the folio in the specified slot in a folio queue segment.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_mark2 (C function)c.folioq_mark2hNtauh1jhjhhhNhNubj')}(hhh](j,)}(hAvoid folioq_mark2 (struct folio_queue *folioq, unsigned int slot)h]j2)}(h@void folioq_mark2(struct folio_queue *folioq, unsigned int slot)h](j8)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj[)}(h folioq_mark2h]ja)}(h folioq_mark2h]h folioq_mark2}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h/(struct folio_queue *folioq, unsigned int slot)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jjsbc.folioq_mark2asbuh1hhjubjJ)}(h h]h }(hj@hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hj[hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hjthhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjpubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjpubj8)}(hinth]hint}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjpubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjpubja)}(hsloth]hslot}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjhhubjo)}(hhh]h)}(h7Set the second mark on a folio in a folio queue segmenth]h7Set the second mark on a folio in a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to modify ``unsigned int slot`` The slot number of the folio to modify **Description** Set the second mark for the folio in the specified slot in a folio queue segment.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh](j)}(h5``struct folio_queue *folioq`` The segment to modify h](j)}(h``struct folio_queue *folioq``h]j)}(hjh]hstruct folio_queue *folioq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe segment to modifyh]hThe segment to modify}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hKhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hKhjubj)}(h=``unsigned int slot`` The slot number of the folio to modify h](j)}(h``unsigned int slot``h]j)}(hjPh]hunsigned int slot}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjJubj)}(hhh]h)}(h&The slot number of the folio to modifyh]h&The slot number of the folio to modify}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(hQSet the second mark for the folio in the specified slot in a folio queue segment.h]hQSet the second mark for the folio in the specified slot in a folio queue segment.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_unmark2 (C function)c.folioq_unmark2hNtauh1jhjhhhNhNubj')}(hhh](j,)}(hCvoid folioq_unmark2 (struct folio_queue *folioq, unsigned int slot)h]j2)}(hBvoid folioq_unmark2(struct folio_queue *folioq, unsigned int slot)h](j8)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj[)}(hfolioq_unmark2h]ja)}(hfolioq_unmark2h]hfolioq_unmark2}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h/(struct folio_queue *folioq, unsigned int slot)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj+hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j)}jjsbc.folioq_unmark2asbuh1hhj ubjJ)}(h h]h }(hjKhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubja)}(hfolioqh]hfolioq}(hjfhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj{ubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj{ubj8)}(hinth]hint}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj{ubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj{ubja)}(hsloth]hslot}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjhhubjo)}(hhh]h)}(h9Clear the second mark on a folio in a folio queue segmenth]h9Clear the second mark on a folio in a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to modify ``unsigned int slot`` The slot number of the folio to modify **Description** Clear the second mark for the folio in the specified slot in a folio queue segment.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh](j)}(h5``struct folio_queue *folioq`` The segment to modify h](j)}(h``struct folio_queue *folioq``h]j)}(hj"h]hstruct folio_queue *folioq}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe segment to modifyh]hThe segment to modify}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hKhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hKhjubj)}(h=``unsigned int slot`` The slot number of the folio to modify h](j)}(h``unsigned int slot``h]j)}(hj[h]hunsigned int slot}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjUubj)}(hhh]h)}(h&The slot number of the folio to modifyh]h&The slot number of the folio to modify}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphKhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(hSClear the second mark for the folio in the specified slot in a folio queue segment.h]hSClear the second mark for the folio in the specified slot in a folio queue segment.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_append (C function)c.folioq_appendhNtauh1jhjhhhNhNubj')}(hhh](j,)}(hLunsigned int folioq_append (struct folio_queue *folioq, struct folio *folio)h]j2)}(hKunsigned int folioq_append(struct folio_queue *folioq, struct folio *folio)h](j8)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj8)}(hinth]hint}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhhjhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj[)}(h folioq_appendh]ja)}(h folioq_appendh]h folioq_append}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h1(struct folio_queue *folioq, struct folio *folio)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubjJ)}(h h]h }(hjAhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj0ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hjRhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jjsbc.folioq_appendasbuh1hhj0ubjJ)}(h h]h }(hjrhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj0ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubja)}(hfolioqh]hfolioq}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubj)}(hstruct folio *folioh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(hfolioh]hfolio}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jnc.folioq_appendasbuh1hhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioh]hfolio}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjhhubjo)}(hhh]h)}(h$Add a folio to a folio queue segmenth]h$Add a folio to a folio queue segment}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj$hhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1j&hhhjhNhNubj)}(hX**Parameters** ``struct folio_queue *folioq`` The segment to add to ``struct folio *folio`` The folio to add **Description** Add a folio to the tail of the sequence in a folio queue segment, increasing the occupancy count and returning the slot number for the folio just added. The folio size is extracted and stored in the queue and the marks are left unmodified. Note that it's left up to the caller to check that the segment capacity will not be exceeded and to extend the queue.h](h)}(h**Parameters**h]j)}(hjIh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjCubj)}(hhh](j)}(h5``struct folio_queue *folioq`` The segment to add to h](j)}(h``struct folio_queue *folioq``h]j)}(hjhh]hstruct folio_queue *folioq}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjbubj)}(hhh]h)}(hThe segment to add toh]hThe segment to add to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hKhj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hKhj_ubj)}(h)``struct folio *folio`` The folio to add h](j)}(h``struct folio *folio``h]j)}(hjh]hstruct folio *folio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe folio to addh]hThe folio to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj_ubeh}(h]h ]h"]h$]h&]uh1jhjCubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjCubh)}(hAdd a folio to the tail of the sequence in a folio queue segment, increasing the occupancy count and returning the slot number for the folio just added. The folio size is extracted and stored in the queue and the marks are left unmodified.h]hAdd a folio to the tail of the sequence in a folio queue segment, increasing the occupancy count and returning the slot number for the folio just added. The folio size is extracted and stored in the queue and the marks are left unmodified.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjCubh)}(huNote that it's left up to the caller to check that the segment capacity will not be exceeded and to extend the queue.h]hwNote that it’s left up to the caller to check that the segment capacity will not be exceeded and to extend the queue.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_append_mark (C function)c.folioq_append_markhNtauh1jhjhhhNhNubj')}(hhh](j,)}(hQunsigned int folioq_append_mark (struct folio_queue *folioq, struct folio *folio)h]j2)}(hPunsigned int folioq_append_mark(struct folio_queue *folioq, struct folio *folio)h](j8)}(hunsignedh]hunsigned}(hj0hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj,hhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hj?hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj,hhhj>hKubj8)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj,hhhj>hKubjJ)}(h h]h }(hj[hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj,hhhj>hKubj[)}(hfolioq_append_markh]ja)}(hfolioq_append_markh]hfolioq_append_mark}(hjmhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjiubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhj,hhhj>hKubjz)}(h1(struct folio_queue *folioq, struct folio *folio)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjosbc.folioq_append_markasbuh1hhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct folio *folioh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(hfolioh]hfolio}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.folioq_append_markasbuh1hhjubjJ)}(h h]h }(hj7hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioh]hfolio}(hjRhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhj,hhhj>hKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhj(hhhj>hKubah}(h]j#ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hj>hKhj%hhubjo)}(hhh]h)}(h$Add a folio to a folio queue segmenth]h$Add a folio to a folio queue segment}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjyhhubah}(h]h ]h"]h$]h&]uh1jnhj%hhhj>hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(hX**Parameters** ``struct folio_queue *folioq`` The segment to add to ``struct folio *folio`` The folio to add **Description** Add a folio to the tail of the sequence in a folio queue segment, increasing the occupancy count and returning the slot number for the folio just added. The folio size is extracted and stored in the queue, the first mark is set and and the second and third marks are left unmodified. Note that it's left up to the caller to check that the segment capacity will not be exceeded and to extend the queue.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh](j)}(h5``struct folio_queue *folioq`` The segment to add to h](j)}(h``struct folio_queue *folioq``h]j)}(hjh]hstruct folio_queue *folioq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe segment to add toh]hThe segment to add to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h)``struct folio *folio`` The folio to add h](j)}(h``struct folio *folio``h]j)}(hjh]hstruct folio *folio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh]h)}(hThe folio to addh]hThe folio to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj1h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(hXAdd a folio to the tail of the sequence in a folio queue segment, increasing the occupancy count and returning the slot number for the folio just added. The folio size is extracted and stored in the queue, the first mark is set and and the second and third marks are left unmodified.h]hXAdd a folio to the tail of the sequence in a folio queue segment, increasing the occupancy count and returning the slot number for the folio just added. The folio size is extracted and stored in the queue, the first mark is set and and the second and third marks are left unmodified.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(huNote that it's left up to the caller to check that the segment capacity will not be exceeded and to extend the queue.h]hwNote that it’s left up to the caller to check that the segment capacity will not be exceeded and to extend the queue.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_folio (C function)c.folioq_foliohNtauh1jhjhhhNhNubj')}(hhh](j,)}(hQstruct folio * folioq_folio (const struct folio_queue *folioq, unsigned int slot)h]j2)}(hOstruct folio *folioq_folio(const struct folio_queue *folioq, unsigned int slot)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubh)}(hhh]ja)}(hfolioh]hfolio}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j folioq_foliosbc.folioq_folioasbuh1hhjhhhjhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj[)}(h folioq_folioh]ja)}(hjh]h folioq_folio}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h5(const struct folio_queue *folioq, unsigned int slot)h](j)}(h const struct folio_queue *folioqh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h h]h }(hj'hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj8hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jc.folioq_folioasbuh1hhjubjJ)}(h h]h }(hjVhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubja)}(hfolioqh]hfolioq}(hjqhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubj8)}(hinth]hint}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjubja)}(hsloth]hslot}(hjhhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhj}hhhjhKubah}(h]jxah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjzhhubjo)}(hhh]h)}(h&Get a folio from a folio queue segmenth]h&Get a folio from a folio queue segment}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jnhjzhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j&hhhjhNhNubj)}(hXy**Parameters** ``const struct folio_queue *folioq`` The segment to access ``unsigned int slot`` The folio slot to access **Description** Retrieve the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn't been added into yet, the pointer will be undefined. If the slot has been cleared, NULL will be returned.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubj)}(hhh](j)}(h;``const struct folio_queue *folioq`` The segment to access h](j)}(h$``const struct folio_queue *folioq``h]j)}(hj-h]h const struct folio_queue *folioq}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj'ubj)}(hhh]h)}(hThe segment to accessh]hThe segment to access}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhKhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhKhj$ubj)}(h/``unsigned int slot`` The folio slot to access h](j)}(h``unsigned int slot``h]j)}(hjfh]hunsigned int slot}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj`ubj)}(hhh]h)}(hThe folio slot to accessh]hThe folio slot to access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hKhj$ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubh)}(hRetrieve the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn't been added into yet, the pointer will be undefined. If the slot has been cleared, NULL will be returned.h]hRetrieve the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn’t been added into yet, the pointer will be undefined. If the slot has been cleared, NULL will be returned.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_folio_order (C function)c.folioq_folio_orderhNtauh1jhjhhhNhNubj')}(hhh](j,)}(hUunsigned int folioq_folio_order (const struct folio_queue *folioq, unsigned int slot)h]j2)}(hTunsigned int folioq_folio_order(const struct folio_queue *folioq, unsigned int slot)h](j8)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjhhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj8)}(hinth]hint}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhhjhKubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjhhhjhKubj[)}(hfolioq_folio_orderh]ja)}(hfolioq_folio_orderh]hfolioq_folio_order}(hj# hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhjhhhjhKubjz)}(h5(const struct folio_queue *folioq, unsigned int slot)h](j)}(h const struct folio_queue *folioqh](j)}(hjh]hconst}(hj? hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj; ubjJ)}(h h]h }(hjL hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj; ubj)}(hjh]hstruct}(hjZ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj; ubjJ)}(h h]h }(hjg hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj; ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hjx hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hju ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjz modnameN classnameNjj)}j]j)}jj% sbc.folioq_folio_orderasbuh1hhj; ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj; ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj; ubja)}(hfolioqh]hfolioq}(hj hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj; ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj7 ubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubj8)}(hinth]hint}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj ubjJ)}(h h]h }(hj hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj ubja)}(hsloth]hslot}(hj!hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj7 ubeh}(h]h ]h"]h$]h&]hhuh1jyhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjhhhjhKubah}(h]jah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjhKhjhhubjo)}(hhh]h)}(h3Get the order of a folio from a folio queue segmenth]h3Get the order of a folio from a folio queue segment}(hj.!hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj+!hhubah}(h]h ]h"]h$]h&]uh1jnhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjF!jjF!jjjuh1j&hhhjhNhNubj)}(hXO**Parameters** ``const struct folio_queue *folioq`` The segment to access ``unsigned int slot`` The folio slot to access **Description** Retrieve the order of the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn't been added into yet, the order returned will be 0.h](h)}(h**Parameters**h]j)}(hjP!h]h Parameters}(hjR!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN!ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjJ!ubj)}(hhh](j)}(h;``const struct folio_queue *folioq`` The segment to access h](j)}(h$``const struct folio_queue *folioq``h]j)}(hjo!h]h const struct folio_queue *folioq}(hjq!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm!ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhji!ubj)}(hhh]h)}(hThe segment to accessh]hThe segment to access}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKhj!ubah}(h]h ]h"]h$]h&]uh1jhji!ubeh}(h]h ]h"]h$]h&]uh1jhj!hKhjf!ubj)}(h/``unsigned int slot`` The folio slot to access h](j)}(h``unsigned int slot``h]j)}(hj!h]hunsigned int slot}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj!ubj)}(hhh]h)}(hThe folio slot to accessh]hThe folio slot to access}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!hKhjf!ubeh}(h]h ]h"]h$]h&]uh1jhjJ!ubh)}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjJ!ubh)}(hRetrieve the order of the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn't been added into yet, the order returned will be 0.h]hRetrieve the order of the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn’t been added into yet, the order returned will be 0.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjJ!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_folio_size (C function)c.folioq_folio_sizehNtauh1jhjhhhNhNubj')}(hhh](j,)}(hNsize_t folioq_folio_size (const struct folio_queue *folioq, unsigned int slot)h]j2)}(hMsize_t folioq_folio_size(const struct folio_queue *folioq, unsigned int slot)h](h)}(hhh]ja)}(hsize_th]hsize_t}(hj+"hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj("ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-"modnameN classnameNjj)}j]j)}jfolioq_folio_sizesbc.folioq_folio_sizeasbuh1hhj$"hhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKubjJ)}(h h]h }(hjM"hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj$"hhhjL"hKubj[)}(hfolioq_folio_sizeh]ja)}(hjI"h]hfolioq_folio_size}(hj_"hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj["ubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhj$"hhhjL"hKubjz)}(h5(const struct folio_queue *folioq, unsigned int slot)h](j)}(h const struct folio_queue *folioqh](j)}(hjh]hconst}(hjz"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv"ubjJ)}(h h]h }(hj"hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjv"ubj)}(hjh]hstruct}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv"ubjJ)}(h h]h }(hj"hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjv"ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj"hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]jG"c.folioq_folio_sizeasbuh1hhjv"ubjJ)}(h h]h }(hj"hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhjv"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv"ubja)}(hfolioqh]hfolioq}(hj"hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hjv"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjr"ubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hj#hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj#ubjJ)}(h h]h }(hj#hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj#ubj8)}(hinth]hint}(hj!#hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj#ubjJ)}(h h]h }(hj/#hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj#ubja)}(hsloth]hslot}(hj=#hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjr"ubeh}(h]h ]h"]h$]h&]hhuh1jyhj$"hhhjL"hKubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhj "hhhjL"hKubah}(h]j"ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjL"hKhj"hhubjo)}(hhh]h)}(h2Get the size of a folio from a folio queue segmenth]h2Get the size of a folio from a folio queue segment}(hjg#hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhjd#hhubah}(h]h ]h"]h$]h&]uh1jnhj"hhhjL"hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1j&hhhjhNhNubj)}(hXU**Parameters** ``const struct folio_queue *folioq`` The segment to access ``unsigned int slot`` The folio slot to access **Description** Retrieve the size of the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn't been added into yet, the size returned will be PAGE_SIZE.h](h)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj#ubj)}(hhh](j)}(h;``const struct folio_queue *folioq`` The segment to access h](j)}(h$``const struct folio_queue *folioq``h]j)}(hj#h]h const struct folio_queue *folioq}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhKhj#ubj)}(hhh]h)}(hThe segment to accessh]hThe segment to access}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hKhj#ubj)}(h/``unsigned int slot`` The folio slot to access h](j)}(h``unsigned int slot``h]j)}(hj#h]hunsigned int slot}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj#ubj)}(hhh]h)}(hThe folio slot to accessh]hThe folio slot to access}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubh)}(h**Description**h]j)}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj#ubh)}(hRetrieve the size of the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn't been added into yet, the size returned will be PAGE_SIZE.h]hRetrieve the size of the folio in the specified slot from a folio queue segment. Note that no bounds check is made and if the slot hasn’t been added into yet, the size returned will be PAGE_SIZE.}(hj2$hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"folioq_clear (C function)c.folioq_clearhNtauh1jhjhhhNhNubj')}(hhh](j,)}(hAvoid folioq_clear (struct folio_queue *folioq, unsigned int slot)h]j2)}(h@void folioq_clear(struct folio_queue *folioq, unsigned int slot)h](j8)}(hvoidh]hvoid}(hja$hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj]$hhha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhM ubjJ)}(h h]h }(hjp$hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj]$hhhjo$hM ubj[)}(h folioq_clearh]ja)}(h folioq_clearh]h folioq_clear}(hj$hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj~$ubah}(h]h ](jtjueh"]h$]h&]hhuh1jZhj]$hhhjo$hM ubjz)}(h/(struct folio_queue *folioq, unsigned int slot)h](j)}(hstruct folio_queue *folioqh](j)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjJ)}(h h]h }(hj$hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj$ubh)}(hhh]ja)}(h folio_queueh]h folio_queue}(hj$hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jj$sbc.folioq_clearasbuh1hhj$ubjJ)}(h h]h }(hj$hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubja)}(hfolioqh]hfolioq}(hj$hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubj)}(hunsigned int sloth](j8)}(hunsignedh]hunsigned}(hj%hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj %ubjJ)}(h h]h }(hj%hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj %ubj8)}(hinth]hint}(hj,%hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj %ubjJ)}(h h]h }(hj:%hhhNhNubah}(h]h ]jVah"]h$]h&]uh1jIhj %ubja)}(hsloth]hslot}(hjH%hhhNhNubah}(h]h ]jmah"]h$]h&]uh1j`hj %ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubeh}(h]h ]h"]h$]h&]hhuh1jyhj]$hhhjo$hM ubeh}(h]h ]h"]h$]h&]hhj`uh1j1jajbhjY$hhhjo$hM ubah}(h]jT$ah ](jfjgeh"]h$]h&]jkjl)jmhuh1j+hjo$hM hjV$hhubjo)}(hhh]h)}(h(Clear a folio from a folio queue segmenth]h(Clear a folio from a folio queue segment}(hjr%hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhM hjo%hhubah}(h]h ]h"]h$]h&]uh1jnhjV$hhhjo$hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1j&hhhjhNhNubj)}(h**Parameters** ``struct folio_queue *folioq`` The segment to clear ``unsigned int slot`` The folio slot to clear **Description** Clear a folio from a sequence in a folio queue segment and clear its marks. The occupancy count is left unchanged.h](h)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj%ubj)}(hhh](j)}(h4``struct folio_queue *folioq`` The segment to clear h](j)}(h``struct folio_queue *folioq``h]j)}(hj%h]hstruct folio_queue *folioq}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhM hj%ubj)}(hhh]h)}(hThe segment to clearh]hThe segment to clear}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hM hj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hM hj%ubj)}(h.``unsigned int slot`` The folio slot to clear h](j)}(h``unsigned int slot``h]j)}(hj%h]hunsigned int slot}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj%ubj)}(hhh]h)}(hThe folio slot to clearh]hThe folio slot to clear}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%ubh)}(h**Description**h]j)}(hj'&h]h Description}(hj)&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%&ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj%ubh)}(hrClear a folio from a sequence in a folio queue segment and clear its marks. The occupancy count is left unchanged.h]hrClear a folio from a sequence in a folio queue segment and clear its marks. The occupancy count is left unchanged.}(hj=&hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/folio_queue:209: ./include/linux/folio_queue.hhMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]api-function-referenceah ]h"]api function referenceah$]h&]uh1hhhhhhhhKubeh}(h] folio-queueah ]h"] folio queueah$]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_handlerj&error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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}(j`&j]&jnjkjjjjj}jzjjjWjTjjjjjX&jU&u nametypes}(j`&jnjjj}jjWjjjX&uh}(j]&hjkjCjjqjjjzj!jjjTjjjZjjjU&jj$j-jjj: j? j j jX j] j}jjjjjjjjjjjj#j(jxj}jjj"j "jT$jY$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.