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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/pt_BR/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlematch_token (C function) c.match_tokenhNtauh1jhjhhhNhNubhdesc)}(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&]uh1j9hj5hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKfubhdesc_sig_space)}(h h]h }(hjMhhhNhNubah}(h]h ]wah"]h$]h&]uh1jKhj5hhhjJhKfubh desc_name)}(h match_tokenh]h desc_sig_name)}(h match_tokenh]h match_token}(hjdhhhNhNubah}(h]h ]nah"]h$]h&]uh1jbhj^ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j\hj5hhhjJhKfubhdesc_parameterlist)}(h8(char *s, const match_table_t table, substring_t args[])h](hdesc_parameter)}(hchar *sh](j:)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubjc)}(hsh]hs}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}ubj)}(hconst match_table_t tableh](hdesc_sig_keyword)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubh)}(hhh]jc)}(h match_table_th]h match_table_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j  ASTIdentifier)}jjfsb c.match_tokenasbuh1hhjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubjc)}(htableh]htable}(hj&hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}ubj)}(hsubstring_t args[]h](h)}(hhh]jc)}(h substring_th]h substring_t}(hjBhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNj j )}j]j c.match_tokenasbuh1hhj;ubjL)}(h h]h }(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;ubjc)}(hargsh]hargs}(hjnhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj;ubj)}(h[h]h[}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(h]h]h]}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}ubeh}(h]h ]h"]h$]h&]hhuh1j{hj5hhhjJhKfubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1j3sphinx_line_type declaratorhj/hhhjJhKfubah}(h]j&ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j-hjJhKfhj*hhubh 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&]uh1jhj*hhhjJhKfubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1j(hhhjhNhNubh 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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hL/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}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKghj)ubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhj&hKghjubj)}(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)}(hjLh]hconst match_table_t table}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKjhjFubj()}(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 }(hjehhhNhNubh)}(h*:c:type:`struct match_token `h]j)}(hjoh]hstruct match_token}(hjqhhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]refdoccore-api/parser refdomainjreftypetype refexplicitrefwarnj j )}j]sb reftarget match_tokenuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhhjeubh* whose pattern is set to the NULL pointer.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhhjbubah}(h]h ]h"]h$]h&]uh1j'hjFubeh}(h]h ]h"]h$]h&]uh1jhjahKjhjubj)}(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&]uh1j hL/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 ](j{jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj 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&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhjhKlhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj h]h Description}(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.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 }(hj6hhhNhNubj)}(h``MAX_OPT_ARGS``h]h MAX_OPT_ARGS}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubh 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 }(hj6hhhNhNubj)}(h**args**h]hargs}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubh array.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_int (C function) c.match_inthNtauh1jhjhhhNhNubj))}(hhh](j.)}(h+int match_int (substring_t *s, int *result)h]j4)}(h*int match_int(substring_t *s, int *result)h](j:)}(hinth]hint}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhjhKubj])}(h match_inth]jc)}(h match_inth]h match_int}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hjhhhjhKubj|)}(h(substring_t *s, int *result)h](j)}(hsubstring_t *sh](h)}(hhh]jc)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsb c.match_intasbuh1hhjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjc)}(hjh]hs}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h int *resulth](j:)}(hinth]hint}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjubjL)}(h h]h }(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjc)}(hresulth]hresult}(hjEhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j{hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhjhhhjhKubah}(h]j|ah ](jjeh"]h$]h&]jj)jhuh1j-hjhKhj~hhubj)}(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}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjlhhubah}(h]h ]h"]h$]h&]uh1jhj~hhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j(hhhjhNhNubj)}(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)}(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&]uh1j hL/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&]uh1j'hjubeh}(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&]uh1j hL/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&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(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&]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 }(hj:hhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjDh]h substring_t}(hjFhhhNhNubah}(h]h ](j{jc-typeeh"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj:ubh }(hj:hhhNhNubj)}(h**s**h]hs}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh as a decimal integer.}(hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjahKhjubh)}(h **Return**h]j)}(hjh]hReturn}(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.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&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_uint (C function) c.match_uinthNtauh1jhjhhhNhNubj))}(hhh](j.)}(h5int match_uint (substring_t *s, unsigned int *result)h]j4)}(h4int match_uint(substring_t *s, unsigned int *result)h](j:)}(hinth]hint}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhjhKubj])}(h match_uinth]jc)}(h match_uinth]h match_uint}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hjhhhjhKubj|)}(h&(substring_t *s, unsigned int *result)h](j)}(hsubstring_t *sh](h)}(hhh]jc)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsb c.match_uintasbuh1hhjubjL)}(h h]h }(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjc)}(hjh]hs}(hjRhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hunsigned int *resulth](j:)}(hunsignedh]hunsigned}(hjjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjfubjL)}(h h]h }(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj:)}(hinth]hint}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjfubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubjc)}(hresulth]hresult}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjfubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j{hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j-hjhKhjhhubj)}(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&]jjjjjjjjjuh1j(hhhjhNhNubj)}(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&]uh1j hL/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}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hKhj0ubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhj/hKhjubj)}(h6``unsigned int *result`` resulting integer on success h](j )}(h``unsigned int *result``h]j)}(hjSh]hunsigned int *result}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjMubj()}(hhh]h)}(hresulting integer on successh]hresulting integer on success}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhKhjiubah}(h]h ]h"]h$]h&]uh1j'hjMubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjubeh}(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.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 ](j{jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj 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 }(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.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_u64 (C function) c.match_u64hNtauh1jhjhhhNhNubj))}(hhh](j.)}(h+int match_u64 (substring_t *s, u64 *result)h]j4)}(h*int match_u64(substring_t *s, u64 *result)h](j:)}(hinth]hint}(hjA hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj= hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubjL)}(h h]h }(hjP hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj= hhhjO hKubj])}(h match_u64h]jc)}(h match_u64h]h match_u64}(hjb hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj^ ubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hj= hhhjO hKubj|)}(h(substring_t *s, u64 *result)h](j)}(hsubstring_t *sh](h)}(hhh]jc)}(h substring_th]h substring_t}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj~ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNj j )}j]j)}jjd sb c.match_u64asbuh1hhjz ubjL)}(h h]h }(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjz ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz ubjc)}(hjh]hs}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjz ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjv ubj)}(h u64 *resulth](h)}(hhh]jc)}(hu64h]hu64}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNj j )}j]j c.match_u64asbuh1hhj ubjL)}(h h]h }(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjc)}(hresulth]hresult}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjv ubeh}(h]h ]h"]h$]h&]hhuh1j{hj= hhhjO hKubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhj9 hhhjO hKubah}(h]j4 ah ](jjeh"]h$]h&]jj)jhuh1j-hjO hKhj6 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.chKhj7 hhubah}(h]h ]h"]h$]h&]uh1jhj6 hhhjO hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjR jjR jjjuh1j(hhhjhNhNubj)}(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)}(hj\ h]h Parameters}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjV 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&]uh1jhjy ubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhju 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&]uh1j'hju ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjr 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&]uh1j hL/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&]uh1j'hj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjr ubeh}(h]h ]h"]h$]h&]uh1jhjV 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.chKhjV 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 ](j{jc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhj ubh }(hj hhhNhNubj)}(h**s**h]hs}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh as a long decimal integer.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj, hKhjV ubh)}(h **Return**h]j)}(hjK h]hReturn}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjV 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 }(hja hhhNhNubj)}(h **result**h]hresult}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubh_ to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.}(hja hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjV ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_octal (C function) c.match_octalhNtauh1jhjhhhNhNubj))}(hhh](j.)}(h-int match_octal (substring_t *s, int *result)h]j4)}(h,int match_octal(substring_t *s, int *result)h](j:)}(hinth]hint}(hj hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKubjL)}(h h]h }(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj hhhj hKubj])}(h match_octalh]jc)}(h match_octalh]h match_octal}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj ubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hj hhhj hKubj|)}(h(substring_t *s, int *result)h](j)}(hsubstring_t *sh](h)}(hhh]jc)}(h substring_th]h substring_t}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNj j )}j]j)}jj sb c.match_octalasbuh1hhj ubjL)}(h h]h }(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjc)}(hjh]hs}(hj hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h int *resulth](j:)}(hinth]hint}(hj5 hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj1 ubjL)}(h h]h }(hjC hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1 ubj)}(hjh]h*}(hjQ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1 ubjc)}(hresulth]hresult}(hj^ hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj1 ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1j{hj hhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j-hj 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}(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 jjjuh1j(hhhjhNhNubj)}(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&]uh1j hL/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&]uh1j'hj 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&]uh1j hL/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&]uh1j'hj 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 }(hjS hhhNhNubh)}(h:c:type:`substring_t`h]j)}(hj] h]h substring_t}(hj_ hhhNhNubah}(h]h ](j{jc-typeeh"]h$]h&]uh1jhj[ ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chKhjS ubh }(hjS hhhNhNubj)}(h**s**h]hs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS ubh as an octal integer.}(hjS hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjz 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&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_hex (C function) c.match_hexhNtauh1jhjhhhNhNubj))}(hhh](j.)}(h+int match_hex (substring_t *s, int *result)h]j4)}(h*int match_hex(substring_t *s, int *result)h](j:)}(hinth]hint}(hj hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMubjL)}(h h]h }(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj hhhj hMubj])}(h match_hexh]jc)}(h match_hexh]h match_hex}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj ubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hj hhhj hMubj|)}(h(substring_t *s, int *result)h](j)}(hsubstring_t *sh](h)}(hhh]jc)}(h substring_th]h substring_t}(hj0hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNj j )}j]j)}jjsb c.match_hexasbuh1hhj)ubjL)}(h h]h }(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjc)}(hjh]hs}(hjkhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%ubj)}(h int *resulth](j:)}(hinth]hint}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjc)}(hresulth]hresult}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%ubeh}(h]h ]h"]h$]h&]hhuh1j{hj hhhj hMubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhj hhhj hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1j-hj hMhj 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 hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j(hhhjhNhNubj)}(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&]uh1j hL/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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhjubj)}(h-``int *result`` resulting integer on success h](j )}(h``int *result``h]j)}(hjPh]h int *result}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjJubj()}(hhh]h)}(hresulting integer on successh]hresulting integer on success}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjfubah}(h]h ]h"]h$]h&]uh1j'hjJubeh}(h]h ]h"]h$]h&]uh1jhjehMhjubeh}(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.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 ](j{jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj 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&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_wildcard (C function)c.match_wildcardhNtauh1jhjhhhNhNubj))}(hhh](j.)}(h:bool match_wildcard (const char *pattern, const char *str)h]j4)}(h9bool match_wildcard(const char *pattern, const char *str)h](j:)}(hboolh]hbool}(hj>hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj:hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMubjL)}(h h]h }(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:hhhjLhMubj])}(hmatch_wildcardh]jc)}(hmatch_wildcardh]hmatch_wildcard}(hj_hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj[ubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hj:hhhjLhMubj|)}(h&(const char *pattern, const char *str)h](j)}(hconst char *patternh](j)}(hjh]hconst}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj:)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjwubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubjc)}(hpatternh]hpattern}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjwubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjsubj)}(hconst char *strh](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj:)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjc)}(hstrh]hstr}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjsubeh}(h]h ]h"]h$]h&]hhuh1j{hj:hhhjLhMubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhj6hhhjLhMubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1j-hjLhMhj3hhubj)}(hhh]h)}(h0parse if a string matches given wildcard patternh]h0parse if a string matches given wildcard pattern}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjChhubah}(h]h ]h"]h$]h&]uh1jhj3hhhjLhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1j(hhhjhNhNubj)}(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)}(hjhh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjbubj)}(hhh](j)}(h)``const char *pattern`` wildcard pattern h](j )}(h``const char *pattern``h]j)}(hjh]hconst char *pattern}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjubj()}(hhh]h)}(hwildcard patternh]hwildcard pattern}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubj)}(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&]uh1j hL/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&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubeh}(h]h ]h"]h$]h&]uh1jhjbubh)}(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.chMhjbubh)}(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}(hj+hhhNhNubah}(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.chMhjbubh bullet_list)}(hhh](h list_item)}(h%'*' - matches zero or more charactersh]h)}(hjMh]h)‘*’ - matches zero or more characters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjKubah}(h]h ]h"]h$]h&]uh1jIhjFubjJ)}(h'?' - matches one character h]h)}(h'?' - matches one characterh]h‘?’ - matches one character}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMhjcubah}(h]h ]h"]h$]h&]uh1jIhjFubeh}(h]h ]h"]h$]h&]bulletjuh1jDhj\hMhjbubh)}(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.chMhjbubh)}(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.chMhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_strlcpy (C function)c.match_strlcpyhNtauh1jhjhhhNhNubj))}(hhh](j.)}(hFsize_t match_strlcpy (char *dest, const substring_t *src, size_t size)h]j4)}(hEsize_t match_strlcpy(char *dest, const substring_t *src, size_t size)h](h)}(hhh]jc)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}j match_strlcpysbc.match_strlcpyasbuh1hhjhhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMEubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhjhMEubj])}(h match_strlcpyh]jc)}(hjh]h match_strlcpy}(hj%hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj!ubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hjhhhjhMEubj|)}(h1(char *dest, const substring_t *src, size_t size)h](j)}(h char *desth](j:)}(hcharh]hchar}(hj@hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj<ubjL)}(h h]h }(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjc)}(hdesth]hdest}(hjihhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj8ubj)}(hconst substring_t *srch](j)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubh)}(hhh]jc)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j c.match_strlcpyasbuh1hhj~ubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubjc)}(hsrch]hsrc}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj8ubj)}(h size_t sizeh](h)}(hhh]jc)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j c.match_strlcpyasbuh1hhjubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubjc)}(hsizeh]hsize}(hj!hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj8ubeh}(h]h ]h"]h$]h&]hhuh1j{hjhhhjhMEubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhjhhhjhMEubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1j-hjhMEhjhhubj)}(hhh]h)}(h8Copy the characters from a substring_t to a sized bufferh]h8Copy the characters from a substring_t to a sized buffer}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMEhjHhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1j(hhhjhNhNubj)}(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)}(hjmh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMIhjgubj)}(hhh](j)}(h ``char *dest`` where to copy to h](j )}(h``char *dest``h]j)}(hjh]h char *dest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMFhjubj()}(hhh]h)}(hwhere to copy toh]hwhere to copy to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMFhjubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhjhMFhjubj)}(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&]uh1j hL/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 ](j{jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj substring_tuh1hhjhMGhjubh to copy}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMGhjubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhjhMGhjubj)}(h+``size_t size`` size of destination buffer h](j )}(h``size_t size``h]j)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMHhjubj()}(hhh]h)}(hsize of destination bufferh]hsize of destination buffer}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMHhj3ubah}(h]h ]h"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]uh1jhj2hMHhjubeh}(h]h ]h"]h$]h&]uh1jhjgubh)}(h**Description**h]j)}(hjXh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMJhjgubh)}(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 }(hjnhhhNhNubh)}(h:c:type:`substring_t`h]j)}(hjxh]h substring_t}(hjzhhhNhNubah}(h]h ](j{jc-typeeh"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj substring_tuh1hhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chMJhjnubh }(hjnhhhNhNubj)}(h**src**h]hsrc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubh to the c-style string }(hjnhhhNhNubj)}(h**dest**h]hdest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubh. Copy no more than }(hjnhhhNhNubj)}(h**size**h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubh* - 1 characters, plus the terminating NUL.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMJhjgubh)}(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.chMNhjgubh)}(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.chMNhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$match_strdup (C function)c.match_strduphNtauh1jhjhhhNhNubj))}(hhh](j.)}(h*char * match_strdup (const substring_t *s)h]j4)}(h(char *match_strdup(const substring_t *s)h](j:)}(hcharh]hchar}(hj/hhhNhNubah}(h]h ]jFah"]h$]h&]uh1j9hj+hhhL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chM^ubjL)}(h h]h }(hj>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+hhhj=hM^ubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj=hM^ubj])}(h match_strduph]jc)}(h match_strduph]h match_strdup}(hj]hhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjYubah}(h]h ](jvjweh"]h$]h&]hhuh1j\hj+hhhj=hM^ubj|)}(h(const substring_t *s)h]j)}(hconst substring_t *sh](j)}(hjh]hconst}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubh)}(hhh]jc)}(h substring_th]h substring_t}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jj_sbc.match_strdupasbuh1hhjuubjL)}(h h]h }(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubjc)}(hjh]hs}(hjhhhNhNubah}(h]h ]joah"]h$]h&]uh1jbhjuubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjqubah}(h]h ]h"]h$]h&]hhuh1j{hj+hhhj=hM^ubeh}(h]h ]h"]h$]h&]hhjuh1j3jjhj'hhhj=hM^ubah}(h]j"ah ](jjeh"]h$]h&]jj)jhu%h1j-hj=hM^hj$hhubj)}(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&]uh1jhj$hhhj=hM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1j(hhhjhNhNubj)}(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)}(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.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&]uh1j hL/var/lib/git/docbuild/linux/Documentation/core-api/parser:16: ./lib/parser.chM_hj6ubj()}(hhh]h)}(h:c:type:`substring_t` to copyh](h)}(h:c:type:`substring_t`h]j)}(hj[h]h substring_t}(hj]hhhNhNubah}(h]h ](j{jc-typeeh"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj substring_tuh1hhjQhM_hjUubh to copy}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjQhM_hjRubah}(h]h ]h"]h$]h&]uh1j'hj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhM_hj3ubah}(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 ](j{jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj jj 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