$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/parsermodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/core-api/parsermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/core-api/parsermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/core-api/parsermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/core-api/parsermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/sp_SP/core-api/parsermodnameN 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:spacepreserveuh1hhhhhh=/var/lib/git/docbuild/linux/Documentation/core-api/parser.rsthKubhsection)}(hhh](htitle)}(hGeneric parserh]hGeneric parser}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOverviewh]hOverview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h|The generic parser is a simple parser for parsing mount options, filesystem options, driver options, subsystem options, etc.h]h|The generic parser is a simple parser for parsing mount options, filesystem options, driver options, subsystem options, etc.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]overviewah ]h"]overviewah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Parser APIh]h Parser API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlematch_token (C function) c.match_tokenhNtauh1jhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hHint match_token (char *s, const match_table_t table, substring_t args[])h]hdesc_signature_line)}(hGint match_token(char *s, const match_table_t table, substring_t args[])h](hdesc_sig_keyword_type)}(hinth]hint}(hj'hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j%hj!hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKsubhdesc_sig_space)}(h h]h }(hj9hhhNhNubah}(h]h ]wah"]h$]h&]uh1j7hj!hhhj6hKsubh desc_name)}(h match_tokenh]h desc_sig_name)}(h match_tokenh]h match_token}(hjPhhhNhNubah}(h]h ]nah"]h$]h&]uh1jNhjJubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jHhj!hhhj6hKsubhdesc_parameterlist)}(h8(char *s, const match_table_t table, substring_t args[])h](hdesc_parameter)}(hchar *sh](j&)}(hcharh]hchar}(hjshhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjoubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjoubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjoubjO)}(hsh]hs}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjiubjn)}(hconst match_table_t tableh](hdesc_sig_keyword)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubh)}(hhh]jO)}(h match_table_th]h match_table_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjRsb c.match_tokenasbuh1hhjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubjO)}(htableh]htable}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjiubjn)}(hsubstring_t args[]h](h)}(hhh]jO)}(h substring_th]h substring_t}(hj.hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j c.match_tokenasbuh1hhj'ubj8)}(h h]h }(hjLhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj'ubjO)}(hargsh]hargs}(hjZhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj'ubj)}(h[h]h[}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(h]h]h]}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjiubeh}(h]h ]h"]h$]h&]hhuh1jghj!hhhj6hKsubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhj6hKsubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj6hKshjhhubh desc_content)}(hhh]h)}(h,Find a token (and optional args) in a stringh]h,Find a token (and optional args) in a string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKfhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj6hKsubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhhhNhNubh container)}(hX**Parameters** ``char *s`` the string to examine for token/argument pairs ``const match_table_t table`` match_table_t describing the set of allowed option tokens and the arguments that may be associated with them. Must be terminated with a :c:type:`struct match_token ` whose pattern is set to the NULL pointer. ``substring_t args[]`` array of ``MAX_OPT_ARGS`` :c:type:`substring_t` elements. Used to return match locations. **Description** Detects which if any of a set of token strings has been passed to it. Tokens can include up to ``MAX_OPT_ARGS`` instances of basic c-style format identifiers which will be taken into account when matching the tokens, and whose locations will be returned in the **args** array.h](h)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKjhjubhdefinition_list)}(hhh](hdefinition_list_item)}(h;``char *s`` the string to examine for token/argument pairs h](hterm)}(h ``char *s``h]hliteral)}(hjh]hchar *s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKghjubh definition)}(hhh]h)}(h.the string to examine for token/argument pairsh]h.the string to examine for token/argument pairs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKghjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKghjubj)}(h``const match_table_t table`` match_table_t describing the set of allowed option tokens and the arguments that may be associated with them. Must be terminated with a :c:type:`struct match_token ` whose pattern is set to the NULL pointer. h](j)}(h``const match_table_t table``h]j)}(hj8h]hconst match_table_t table}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKjhj2ubj)}(hhh]h)}(hmatch_table_t describing the set of allowed option tokens and the arguments that may be associated with them. Must be terminated with a :c:type:`struct match_token ` whose pattern is set to the NULL pointer.h](hmatch_table_t describing the set of allowed option tokens and the arguments that may be associated with them. Must be terminated with a }(hjQhhhNhNubh)}(h*:c:type:`struct match_token `h]j)}(hj[h]hstruct match_token}(hj]hhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]refdoccore-api/parser refdomainjreftypetype refexplicitrefwarnjj)}j]sb reftarget match_tokenuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhhjQubh* whose pattern is set to the NULL pointer.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj~hKhhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhKjhjubj)}(hq``substring_t args[]`` array of ``MAX_OPT_ARGS`` :c:type:`substring_t` elements. Used to return match locations. h](j)}(h``substring_t args[]``h]j)}(hjh]hsubstring_t args[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKlhjubj)}(hhh]h)}(hYarray of ``MAX_OPT_ARGS`` :c:type:`substring_t` elements. Used to return match locations.h](h array of }(hjhhhNhNubj)}(h``MAX_OPT_ARGS``h]h MAX_OPT_ARGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjh]h substring_t}(hjhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKkhjubh* elements. Used to return match locations.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKlhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKnhjubh)}(hXDetects which if any of a set of token strings has been passed to it. Tokens can include up to ``MAX_OPT_ARGS`` instances of basic c-style format identifiers which will be taken into account when matching the tokens, and whose locations will be returned in the **args** array.h](h_Detects which if any of a set of token strings has been passed to it. Tokens can include up to }(hj"hhhNhNubj)}(h``MAX_OPT_ARGS``h]h MAX_OPT_ARGS}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh instances of basic c-style format identifiers which will be taken into account when matching the tokens, and whose locations will be returned in the }(hj"hhhNhNubj)}(h**args**h]hargs}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh array.}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_int (C function) c.match_inthNtauh1jhhhhhNhNubj)}(hhh](j)}(h+int match_int (substring_t *s, int *result)h]j )}(h*int match_int(substring_t *s, int *result)h](j&)}(hinth]hint}(hjuhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjqhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjqhhhjhKubjI)}(h match_inth]jO)}(h match_inth]h match_int}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhjqhhhjhKubjh)}(h(substring_t *s, int *result)h](jn)}(hsubstring_t *sh](h)}(hhh]jO)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.match_intasbuh1hhjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]hs}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(h int *resulth](j&)}(hinth]hint}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hresulth]hresult}(hj1hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubeh}(h]h ]h"]h$]h&]hhuh1jghjqhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjmhhhjhKubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjjhhubj)}(hhh]h)}(h>scan a decimal representation of an integer from a substring_th]h>scan a decimal representation of an integer from a substring_t}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjXhhubah}(h]h ]h"]h$]h&]uh1jhjjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1jhhhhhNhNubj)}(hXP**Parameters** ``substring_t *s`` substring_t to be scanned ``int *result`` resulting integer on success **Description** Attempts to parse the :c:type:`substring_t` **s** as a decimal integer. **Return** On success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](h)}(h**Parameters**h]j)}(hj}h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjwubj)}(hhh](j)}(h-``substring_t *s`` substring_t to be scanned h](j)}(h``substring_t *s``h]j)}(hjh]hsubstring_t *s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubj)}(hhh]h)}(hsubstring_t to be scannedh]hsubstring_t to be scanned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h-``int *result`` resulting integer on success h](j)}(h``int *result``h]j)}(hjh]h int *result}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubj)}(hhh]h)}(hresulting integer on successh]hresulting integer on success}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjwubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjwubh)}(hGAttempts to parse the :c:type:`substring_t` **s** as a decimal integer.h](hAttempts to parse the }(hj&hhhNhNubh)}(h:c:type:`substring_t`h]j)}(hj0h]h substring_t}(hj2hhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj&ubh }(hj&hhhNhNubj)}(h**s**h]hs}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubh as a decimal integer.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjMhKhjwubh)}(h **Return**h]j)}(hjlh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjwubh)}(hzOn success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](hOn success, sets }(hjhhhNhNubj)}(h **result**h]hresult}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh_ to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_uint (C function) c.match_uinthNtauh1jhhhhhNhNubj)}(hhh](j)}(h5int match_uint (substring_t *s, unsigned int *result)h]j )}(h4int match_uint(substring_t *s, unsigned int *result)h](j&)}(hinth]hint}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhhjhKubjI)}(h match_uinth]jO)}(h match_uinth]h match_uint}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhjhhhjhKubjh)}(h&(substring_t *s, unsigned int *result)h](jn)}(hsubstring_t *sh](h)}(hhh]jO)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.match_uintasbuh1hhjubj8)}(h h]h }(hj#hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]hs}(hj>hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(hunsigned int *resulth](j&)}(hunsignedh]hunsigned}(hjVhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjRubj8)}(h h]h }(hjdhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjRubj&)}(hinth]hint}(hjrhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjRubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubjO)}(hresulth]hresult}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubeh}(h]h ]h"]h$]h&]hhuh1jghjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h>scan a decimal representation of an integer from a substring_th]h>scan a decimal representation of an integer from a substring_t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhhhNhNubj)}(hXY**Parameters** ``substring_t *s`` substring_t to be scanned ``unsigned int *result`` resulting integer on success **Description** Attempts to parse the :c:type:`substring_t` **s** as a decimal integer. **Return** On success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubj)}(hhh](j)}(h-``substring_t *s`` substring_t to be scanned h](j)}(h``substring_t *s``h]j)}(hjh]hsubstring_t *s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubj)}(hhh]h)}(hsubstring_t to be scannedh]hsubstring_t to be scanned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h6``unsigned int *result`` resulting integer on success h](j)}(h``unsigned int *result``h]j)}(hj?h]hunsigned int *result}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj9ubj)}(hhh]h)}(hresulting integer on successh]hresulting integer on success}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThKhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjzh]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubh)}(hGAttempts to parse the :c:type:`substring_t` **s** as a decimal integer.h](hAttempts to parse the }(hjhhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjh]h substring_t}(hjhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubh }(hjhhhNhNubj)}(h**s**h]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh as a decimal integer.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubh)}(hzOn success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](hOn success, sets }(hjhhhNhNubj)}(h **result**h]hresult}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh_ to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_u64 (C function) c.match_u64hNtauh1jhhhhhNhNubj)}(hhh](j)}(h+int match_u64 (substring_t *s, u64 *result)h]j )}(h*int match_u64(substring_t *s, u64 *result)h](j&)}(hinth]hint}(hj- hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj) hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubj8)}(h h]h }(hj< hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj) hhhj; hKubjI)}(h match_u64h]jO)}(h match_u64h]h match_u64}(hjN hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjJ ubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhj) hhhj; hKubjh)}(h(substring_t *s, u64 *result)h](jn)}(hsubstring_t *sh](h)}(hhh]jO)}(h substring_th]h substring_t}(hjm hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjo modnameN classnameNjj)}j]j)}jjP sb c.match_u64asbuh1hhjf ubj8)}(h h]h }(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjf ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf ubjO)}(hjh]hs}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjf ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjb ubjn)}(h u64 *resulth](h)}(hhh]jO)}(hu64h]hu64}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.match_u64asbuh1hhj ubj8)}(h h]h }(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjO)}(hresulth]hresult}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjb ubeh}(h]h ]h"]h$]h&]hhuh1jghj) hhhj; hKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj% hhhj; hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj; hKhj" hhubj)}(hhh]h)}(h9scan a decimal representation of a u64 from a substring_th]h9scan a decimal representation of a u64 from a substring_t}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj# hhubah}(h]h ]h"]h$]h&]uh1jhj" hhhj; hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj> jj> jjjuh1jhhhhhNhNubj)}(hX`**Parameters** ``substring_t *s`` substring_t to be scanned ``u64 *result`` resulting unsigned long long on success **Description** Attempts to parse the :c:type:`substring_t` **s** as a long decimal integer. **Return** On success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](h)}(h**Parameters**h]j)}(hjH h]h Parameters}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjB ubj)}(hhh](j)}(h-``substring_t *s`` substring_t to be scanned h](j)}(h``substring_t *s``h]j)}(hjg h]hsubstring_t *s}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhja ubj)}(hhh]h)}(hsubstring_t to be scannedh]hsubstring_t to be scanned}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj| hKhj} ubah}(h]h ]h"]h$]h&]uh1jhja ubeh}(h]h ]h"]h$]h&]uh1jhj| hKhj^ ubj)}(h8``u64 *result`` resulting unsigned long long on success h](j)}(h``u64 *result``h]j)}(hj h]h u64 *result}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubj)}(hhh]h)}(h'resulting unsigned long long on successh]h'resulting unsigned long long on success}(hj hhhNhNubah}(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&]uh1jhjB ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjB ubh)}(hLAttempts to parse the :c:type:`substring_t` **s** as a long decimal integer.h](hAttempts to parse the }(hj hhhNhNubh)}(h:c:type:`substring_t`h]j)}(hj h]h substring_t}(hj hhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubh }(hj hhhNhNubj)}(h**s**h]hs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh as a long decimal integer.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKhjB ubh)}(h **Return**h]j)}(hj7 h]hReturn}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5 ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjB ubh)}(hzOn success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](hOn success, sets }(hjM hhhNhNubj)}(h **result**h]hresult}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM ubh_ to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.}(hjM hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjB ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_octal (C function) c.match_octalhNtauh1jhhhhhNhNubj)}(hhh](j)}(h-int match_octal (substring_t *s, int *result)h]j )}(h,int match_octal(substring_t *s, int *result)h](j&)}(hinth]hint}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubj8)}(h h]h }(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj hhhj hKubjI)}(h match_octalh]jO)}(h match_octalh]h match_octal}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhj hhhj hKubjh)}(h(substring_t *s, int *result)h](jn)}(hsubstring_t *sh](h)}(hhh]jO)}(h substring_th]h substring_t}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sb c.match_octalasbuh1hhj ubj8)}(h h]h }(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjO)}(hjh]hs}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj ubjn)}(h int *resulth](j&)}(hinth]hint}(hj! hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubj8)}(h h]h }(hj/ hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj ubj)}(hjh]h*}(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjO)}(hresulth]hresult}(hjJ hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj ubeh}(h]h ]h"]h$]h&]hhuh1jghj hhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hKhj hhubj)}(hhh]h)}(h=scan an octal representation of an integer from a substring_th]h=scan an octal representation of an integer from a substring_t}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjq hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jhhhhhNhNubj)}(hXO**Parameters** ``substring_t *s`` substring_t to be scanned ``int *result`` resulting integer on success **Description** Attempts to parse the :c:type:`substring_t` **s** as an octal integer. **Return** On success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubj)}(hhh](j)}(h-``substring_t *s`` substring_t to be scanned h](j)}(h``substring_t *s``h]j)}(hj h]hsubstring_t *s}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubj)}(hhh]h)}(hsubstring_t to be scannedh]hsubstring_t to be scanned}(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-``int *result`` resulting integer on success h](j)}(h``int *result``h]j)}(hj h]h int *result}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubj)}(hhh]h)}(hresulting integer on successh]hresulting integer on success}(hj hhhNhNubah}(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&]uh1jhj ubh)}(h**Description**h]j)}(hj) h]h Description}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj' ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubh)}(hFAttempts to parse the :c:type:`substring_t` **s** as an octal integer.h](hAttempts to parse the }(hj? hhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjI h]h substring_t}(hjK hhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjG ubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj? ubh }(hj? hhhNhNubj)}(h**s**h]hs}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj? ubh as an octal integer.}(hj? hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjf hKhj ubh)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubh)}(hzOn success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](hOn success, sets }(hj hhhNhNubj)}(h **result**h]hresult}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh_ to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_hex (C function) c.match_hexhNtauh1jhhhhhNhNubj)}(hhh](j)}(h+int match_hex (substring_t *s, int *result)h]j )}(h*int match_hex(substring_t *s, int *result)h](j&)}(hinth]hint}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chM ubj8)}(h h]h }(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj hhhj hM ubjI)}(h match_hexh]jO)}(h match_hexh]h match_hex}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhj hhhj hM ubjh)}(h(substring_t *s, int *result)h](jn)}(hsubstring_t *sh](h)}(hhh]jO)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj sb c.match_hexasbuh1hhjubj8)}(h h]h }(hj<hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjh]hs}(hjWhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubjn)}(h int *resulth](j&)}(hinth]hint}(hjohhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjkubj8)}(h h]h }(hj}hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjkubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubjO)}(hresulth]hresult}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjkubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhjubeh}(h]h ]h"]h$]h&]hhuh1jghj hhhj hM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhj hM ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hM hj hhubj)}(hhh]h)}(h:scan a hex representation of an integer from a substring_th]h:scan a hex representation of an integer from a substring_t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhhhNhNubj)}(hXT**Parameters** ``substring_t *s`` substring_t to be scanned ``int *result`` resulting integer on success **Description** Attempts to parse the :c:type:`substring_t` **s** as a hexadecimal integer. **Return** On success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubj)}(hhh](j)}(h-``substring_t *s`` substring_t to be scanned h](j)}(h``substring_t *s``h]j)}(hjh]hsubstring_t *s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubj)}(hhh]h)}(hsubstring_t to be scannedh]hsubstring_t to be scanned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h-``int *result`` resulting integer on success h](j)}(h``int *result``h]j)}(hj<h]h int *result}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhj6ubj)}(hhh]h)}(hresulting integer on successh]hresulting integer on success}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubh)}(hKAttempts to parse the :c:type:`substring_t` **s** as a hexadecimal integer.h](hAttempts to parse the }(hjhhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjh]h substring_t}(hjhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubh }(hjhhhNhNubj)}(h**s**h]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh as a hexadecimal integer.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubh)}(hzOn success, sets **result** to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.h](hOn success, sets }(hjhhhNhNubj)}(h **result**h]hresult}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh_ to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_wildcard (C function)c.match_wildcardhNtauh1jhhhhhNhNubj)}(hhh](j)}(h:bool match_wildcard (const char *pattern, const char *str)h]j )}(h9bool match_wildcard(const char *pattern, const char *str)h](j&)}(hboolh]hbool}(hj*hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj&hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMubj8)}(h h]h }(hj9hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj&hhhj8hMubjI)}(hmatch_wildcardh]jO)}(hmatch_wildcardh]hmatch_wildcard}(hjKhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjGubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhj&hhhj8hMubjh)}(h&(const char *pattern, const char *str)h](jn)}(hconst char *patternh](j)}(hjh]hconst}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj8)}(h h]h }(hjthhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjcubj&)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjcubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubjO)}(hpatternh]hpattern}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjcubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj_ubjn)}(hconst char *strh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubj&)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hstrh]hstr}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj_ubeh}(h]h ]h"]h$]h&]hhuh1jghj&hhhj8hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj"hhhj8hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj8hMhjhhubj)}(hhh]h)}(h0parse if a string matches given wildcard patternh]h0parse if a string matches given wildcard pattern}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhj/hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1jhhhhhNhNubj)}(hX**Parameters** ``const char *pattern`` wildcard pattern ``const char *str`` the string to be parsed **Description** Parse the string **str** to check if matches wildcard pattern **pattern**. The pattern may contain two types of wildcards: * '*' - matches zero or more characters * '?' - matches one character **Return** If the **str** matches the **pattern**, return true, else return false.h](h)}(h**Parameters**h]j)}(hjTh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjNubj)}(hhh](j)}(h)``const char *pattern`` wildcard pattern h](j)}(h``const char *pattern``h]j)}(hjsh]hconst char *pattern}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjmubj)}(hhh]h)}(hwildcard patternh]hwildcard pattern}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubj)}(h,``const char *str`` the string to be parsed h](j)}(h``const char *str``h]j)}(hjh]hconst char *str}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubj)}(hhh]h)}(hthe string to be parsedh]hthe string to be parsed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubeh}(h]h ]h"]h$]h&]uh1jhjNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjNubh)}(hzParse the string **str** to check if matches wildcard pattern **pattern**. The pattern may contain two types of wildcards:h](hParse the string }(hjhhhNhNubj)}(h**str**h]hstr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh& to check if matches wildcard pattern }(hjhhhNhNubj)}(h **pattern**h]hpattern}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh1. The pattern may contain two types of wildcards:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjNubh bullet_list)}(hhh](h list_item)}(h%'*' - matches zero or more charactersh]h)}(hj9h]h)‘*’ - matches zero or more characters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhj7ubah}(h]h ]h"]h$]h&]uh1j5hj2ubj6)}(h'?' - matches one character h]h)}(h'?' - matches one characterh]h‘?’ - matches one character}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjOubah}(h]h ]h"]h$]h&]uh1j5hj2ubeh}(h]h ]h"]h$]h&]bulletjuh1j0hjHhMhjNubh)}(h **Return**h]j)}(hjqh]hReturn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjNubh)}(hGIf the **str** matches the **pattern**, return true, else return false.h](hIf the }(hjhhhNhNubj)}(h**str**h]hstr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh matches the }(hjhhhNhNubj)}(h **pattern**h]hpattern}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh!, return true, else return false.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_strlcpy (C function)c.match_strlcpyhNtauh1jhhhhhNhNubj)}(hhh](j)}(hFsize_t match_strlcpy (char *dest, const substring_t *src, size_t size)h]j )}(hEsize_t match_strlcpy(char *dest, const substring_t *src, size_t size)h](h)}(hhh]jO)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j match_strlcpysbc.match_strlcpyasbuh1hhjhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMPubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhhjhMPubjI)}(h match_strlcpyh]jO)}(hjh]h match_strlcpy}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhjhhhjhMPubjh)}(h1(char *dest, const substring_t *src, size_t size)h](jn)}(h char *desth](j&)}(hcharh]hchar}(hj,hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj(ubj8)}(h h]h }(hj:hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hj(ubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubjO)}(hdesth]hdest}(hjUhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj$ubjn)}(hconst substring_t *srch](j)}(hjh]hconst}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj8)}(h h]h }(hj{hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjjubh)}(hhh]jO)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.match_strlcpyasbuh1hhjjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubjO)}(hsrch]hsrc}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj$ubjn)}(h size_t sizeh](h)}(hhh]jO)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.match_strlcpyasbuh1hhjubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjubjO)}(hsizeh]hsize}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj$ubeh}(h]h ]h"]h$]h&]hhuh1jghjhhhjhMPubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMPubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMPhjhhubj)}(hhh]h)}(h8Copy the characters from a substring_t to a sized bufferh]h8Copy the characters from a substring_t to a sized buffer}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMEhj4hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1jhhhhhNhNubj)}(hXh**Parameters** ``char *dest`` where to copy to ``const substring_t *src`` :c:type:`substring_t` to copy ``size_t size`` size of destination buffer **Description** Copy the characters in :c:type:`substring_t` **src** to the c-style string **dest**. Copy no more than **size** - 1 characters, plus the terminating NUL. **Return** length of **src**.h](h)}(h**Parameters**h]j)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMIhjSubj)}(hhh](j)}(h ``char *dest`` where to copy to h](j)}(h``char *dest``h]j)}(hjxh]h char *dest}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMFhjrubj)}(hhh]h)}(hwhere to copy toh]hwhere to copy to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMFhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMFhjoubj)}(h9``const substring_t *src`` :c:type:`substring_t` to copy h](j)}(h``const substring_t *src``h]j)}(hjh]hconst substring_t *src}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMGhjubj)}(hhh]h)}(h:c:type:`substring_t` to copyh](h)}(h:c:type:`substring_t`h]j)}(hjh]h substring_t}(hjhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhjhMGhjubh to copy}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMGhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMGhjoubj)}(h+``size_t size`` size of destination buffer h](j)}(h``size_t size``h]j)}(hj h]h size_t size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMHhjubj)}(hhh]h)}(hsize of destination bufferh]hsize of destination buffer}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMHhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubh)}(h**Description**h]j)}(hjDh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMJhjSubh)}(hCopy the characters in :c:type:`substring_t` **src** to the c-style string **dest**. Copy no more than **size** - 1 characters, plus the terminating NUL.h](hCopy the characters in }(hjZhhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjdh]h substring_t}(hjfhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMJhjZubh }(hjZhhhNhNubj)}(h**src**h]hsrc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh to the c-style string }(hjZhhhNhNubj)}(h**dest**h]hdest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh. Copy no more than }(hjZhhhNhNubj)}(h**size**h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh* - 1 characters, plus the terminating NUL.}(hjZhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMJhjSubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMNhjSubh)}(hlength of **src**.h](h length of }(hjhhhNhNubj)}(h**src**h]hsrc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMNhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmatch_strdup (C function)c.match_strduphNtauh1jhhhhhNhNubj)}(hhh](j)}(h*char * match_strdup (const substring_t *s)h]j )}(h(char *match_strdup(const substring_t *s)h](j&)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhubj8)}(h h]h }(hj*hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjhhhj)hMhubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj)hMhubjI)}(h match_strduph]jO)}(h match_strduph]h match_strdup}(hjIhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjEubah}(h]h ](jbjceh"]h$]h&]hhuh1jHhjhhhj)hMhubjh)}(h(const substring_t *s)h]jn)}(hconst substring_t *sh](j)}(hjh]hconst}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj8)}(h h]h }(hjrhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjaubh)}(hhh]jO)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjKsbc.match_strdupasbuh1hhjaubj8)}(h h]h }(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j7hjaubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubjO)}(hjh]hs}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1jmhj]ubah}(h]h ]h"]h$]h&]hhuh1jghjhhhj)hMhubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj)hMhubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj)hMhhjhhubj)}(hhh]h)}(h8allocate a new string with the contents of a substring_th]h8allocate a new string with the contents of a substring_t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chM^hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj)hMhubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhhhNhNubj)}(hXZ**Parameters** ``const substring_t *s`` :c:type:`substring_t` to copy **Description** Allocates and returns a string filled with the contents of the :c:type:`substring_t` **s**. The caller is responsible for freeing the returned string with kfree(). **Return** the address of the newly allocated NUL-terminated string or ``NULL`` on error.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMbhjubj)}(hhh]j)}(h7``const substring_t *s`` :c:type:`substring_t` to copy h](j)}(h``const substring_t *s``h]j)}(hj(h]hconst substring_t *s}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chM_hj"ubj)}(hhh]h)}(h:c:type:`substring_t` to copyh](h)}(h:c:type:`substring_t`h]j)}(hjGh]h substring_t}(hjIhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhj=hM_hjAubh to copy}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj=hM_hj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hM_hjubah}(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&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMahjubh)}(hAllocates and returns a string filled with the contents of the :c:type:`substring_t` **s**. The caller is responsible for freeing the returned string with kfree().h](h?Allocates and returns a string filled with the contents of the }(hjhhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjh]h substring_t}(hjhhhNhNubah}(h]h ](jgjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftypetype refexplicitrefwarnjjyj| substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMahjubh }(hjhhhNhNubj)}(h**s**h]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhI. The caller is responsible for freeing the returned string with kfree().}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMahjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMehjubh)}(hNthe address of the newly allocated NUL-terminated string or ``NULL`` on error.h](h