€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ"/translations/zh_CN/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/zh_TW/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/pt_BR/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/sp_SP/core-api/librs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ*Reed-Solomon Library Programming Interface”h]”hŒ*Reed-Solomon Library Programming Interface”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ/* the Reed Solomon control structure */ static struct rs_control *rs_decoder; /* Symbolsize is 10 (bits) * Primitive polynomial is x^10+x^3+1 * first consecutive root is 0 * primitive element to generate roots = 1 * generator polynomial degree (number of roots) = 6 */ rs_decoder = init_rs (10, 0x409, 0, 1, 6);”h]”hX>/* the Reed Solomon control structure */ static struct rs_control *rs_decoder; /* Symbolsize is 10 (bits) * Primitive polynomial is x^10+x^3+1 * first consecutive root is 0 * primitive element to generate roots = 1 * generator polynomial degree (number of roots) = 6 */ rs_decoder = init_rs (10, 0x409, 0, 1, 6);”…”�”}”hj·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jµh³hÊh´K)hj–h²hubeh}”(h]”Œ initializing”ah ]”h"]”Œ initializing”ah$]”h&]”uh1hµhjwh²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒEncoding”h]”hŒEncoding”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÏh²hh³hÊh´K6ubhì)�”}”(hŒ¿The encoder calculates the Reed-Solomon code over the given data length and stores the result in the parity buffer. Note that the parity buffer must be initialized before calling the encoder.”h]”hŒ¿The encoder calculates the Reed-Solomon code over the given data length and stores the result in the parity buffer. Note that the parity buffer must be initialized before calling the encoder.”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K8hjÏh²hubhì)�”}”(hX†The expanded data can be inverted on the fly by providing a non-zero inversion mask. The expanded data is XOR'ed with the mask. This is used e.g. for FLASH ECC, where the all 0xFF is inverted to an all 0x00. The Reed-Solomon code for all 0x00 is all 0x00. The code is inverted before storing to FLASH so it is 0xFF too. This prevents that reading from an erased FLASH results in ECC errors.”h]”hXˆThe expanded data can be inverted on the fly by providing a non-zero inversion mask. The expanded data is XOR’ed with the mask. This is used e.g. for FLASH ECC, where the all 0xFF is inverted to an all 0x00. The Reed-Solomon code for all 0x00 is all 0x00. The code is inverted before storing to FLASH so it is 0xFF too. This prevents that reading from an erased FLASH results in ECC errors.”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K4hj6ubjc)�”}”(hhh]”hì)�”}”(hŒ5Internal scratch buffers used in calls to decode_rs()”h]”hŒ5Internal scratch buffers used in calls to decode_rs()”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K5hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jQh´K4hjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hj²ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhj1h²hh³Nh´NubjQ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j]Œinit_rs (C function)”Œ c.init_rs”hNt”auh1jPhj1h²hh³Nh´Nubjb)�”}”(hhh]”(jg)�”}”(hŒTstruct rs_control * init_rs (int symsize, int gfpoly, int fcr, int prim, int nroots)”h]”jm)�”}”(hŒRstruct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim, int nroots)”h]”(js)�”}”(hjvh]”hŒstruct”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jrhj’h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KUubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj’h²hh³j£h´KUubh)�”}”(hhh]”jœ)�”}”(hŒ rs_control”h]”hŒ rs_control”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj²ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”Œ identifier”Œ reftarget”j·Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jÐŒ ASTIdentifier”“”)�”}”jËŒinit_rs”sbŒ c.init_rs”†”asbuh1hhj’h²hh³j£h´KUubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj’h²hh³j£h´KUubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jìhj’h²hh³j£h´KUubj–)�”}”(hŒinit_rs”h]”jœ)�”}”(hjÛh]”hŒinit_rs”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjýubah}”(h]”h ]”(j®j¯eh"]”h$]”h&]”jÅjÆuh1j•hj’h²hh³j£h´KUubhŒdesc_parameterlist”“”)�”}”(hŒ8(int symsize, int gfpoly, int fcr, int prim, int nroots)”h]”(hŒdesc_parameter”“”)�”}”(hŒ int symsize”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j hj ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj ubjœ)�”}”(hŒsymsize”h]”hŒsymsize”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj ubj )�”}”(hŒ int gfpoly”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjT ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjT ubjœ)�”}”(hŒgfpoly”h]”hŒgfpoly”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjT ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj ubj )�”}”(hŒint fcr”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj‰ ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj› h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj‰ ubjœ)�”}”(hŒfcr”h]”hŒfcr”…”�”}”(hj© h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj‰ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj ubj )�”}”(hŒint prim”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj¾ ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj¾ ubjœ)�”}”(hŒprim”h]”hŒprim”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj¾ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj ubj )�”}”(hŒ int nroots”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj÷ h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjó ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjó ubjœ)�”}”(hŒnroots”h]”hŒnroots”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjó ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj ubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1j hj’h²hh³j£h´KUubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆj¹ˆuh1jljºj»hjŽh²hh³j£h´KUubah}”(h]”j‰ah ]”(j¿jÀeh"]”h$]”h&]”jĈjÅ)jÆhuh1jfh³j£h´KUhj‹h²hubjÈ)�”}”(hhh]”hì)�”}”(hŒ,Create a RS control struct and initialize it”h]”hŒ,Create a RS control struct and initialize it”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KUhj: h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj‹h²hh³j£h´KUubeh}”(h]”h ]”(jäŒfunction”eh"]”h$]”h&]”jéjäjêjU jëjU jì‰jí‰jî‰uh1jah²hhj1h³Nh´Nubjð)�”}”(hXù**Parameters** ``int symsize`` the symbol size (number of bits) ``int gfpoly`` the extended Galois field generator polynomial coefficients, with the 0th coefficient in the low order bit. The polynomial must be primitive; ``int fcr`` the first consecutive root of the rs code generator polynomial in index form ``int prim`` primitive element to generate polynomial roots ``int nroots`` RS code generator polynomial degree (number of roots) **Description** Allocations use GFP_KERNEL.”h]”(hì)�”}”(hŒ**Parameters**”h]”jú)�”}”(hj_ h]”hŒ Parameters”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj] ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KYhjY ubj<)�”}”(hhh]”(jA)�”}”(hŒ1``int symsize`` the symbol size (number of bits) ”h]”(jG)�”}”(hŒ``int symsize``”h]”jM)�”}”(hj~ h]”hŒ int symsize”…”�”}”(hj€ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj| ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KVhjx ubjc)�”}”(hhh]”hì)�”}”(hŒ the symbol size (number of bits)”h]”hŒ the symbol size (number of bits)”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j“ h´KVhj” ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjx ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j“ h´KVhju ubjA)�”}”(hŒ�``int gfpoly`` the extended Galois field generator polynomial coefficients, with the 0th coefficient in the low order bit. The polynomial must be primitive; ”h]”(jG)�”}”(hŒ``int gfpoly``”h]”jM)�”}”(hj· h]”hŒ int gfpoly”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjµ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KYhj± ubjc)�”}”(hhh]”hì)�”}”(hŒ�the extended Galois field generator polynomial coefficients, with the 0th coefficient in the low order bit. The polynomial must be primitive;”h]”hŒ�the extended Galois field generator polynomial coefficients, with the 0th coefficient in the low order bit. The polynomial must be primitive;”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KWhjÍ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj± ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jÌ h´KYhju ubjA)�”}”(hŒY``int fcr`` the first consecutive root of the rs code generator polynomial in index form ”h]”(jG)�”}”(hŒ ``int fcr``”h]”jM)�”}”(hjñ h]”hŒint fcr”…”�”}”(hjó h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K[hjë ubjc)�”}”(hhh]”hì)�”}”(hŒLthe first consecutive root of the rs code generator polynomial in index form”h]”hŒLthe first consecutive root of the rs code generator polynomial in index form”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´KZhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjë ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j h´K[hju ubjA)�”}”(hŒ<``int prim`` primitive element to generate polynomial roots ”h]”(jG)�”}”(hŒ ``int prim``”h]”jM)�”}”(hj+ h]”hŒint prim”…”�”}”(hj- h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj) ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K\hj% ubjc)�”}”(hhh]”hì)�”}”(hŒ.primitive element to generate polynomial roots”h]”hŒ.primitive element to generate polynomial roots”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j@ h´K\hjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj% ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j@ h´K\hju ubjA)�”}”(hŒE``int nroots`` RS code generator polynomial degree (number of roots) ”h]”(jG)�”}”(hŒ``int nroots``”h]”jM)�”}”(hjd h]”hŒ int nroots”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K]hj^ ubjc)�”}”(hhh]”hì)�”}”(hŒ5RS code generator polynomial degree (number of roots)”h]”hŒ5RS code generator polynomial degree (number of roots)”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jy h´K]hjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj^ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jy h´K]hju ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hjY ubhì)�”}”(hŒ**Description**”h]”jú)�”}”(hjŸ h]”hŒ Description”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K_hjY ubhì)�”}”(hŒAllocations use GFP_KERNEL.”h]”hŒAllocations use GFP_KERNEL.”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ŒU/var/lib/git/docbuild/linux/Documentation/core-api/librs:182: ./include/linux/rslib.h”h´K^hjY ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhj1h²hh³Nh´Nubeh}”(h]”Œ structures”ah ]”h"]”Œ structures”ah$]”h&]”uh1hµhh·h²hh³hÊh´K°ubh¶)�”}”(hhh]”(h»)�”}”(hŒPublic Functions Provided”h]”hŒPublic Functions Provided”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÓ h²hh³hÊh´Kºubhì)�”}”(hŒgThis chapter contains the autogenerated documentation of the Reed-Solomon functions which are exported.”h]”hŒgThis chapter contains the autogenerated documentation of the Reed-Solomon functions which are exported.”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K¼hjÓ h²hubjQ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j]Œfree_rs (C function)”Œ c.free_rs”hNt”auh1jPhjÓ h²hh³Nh´Nubjb)�”}”(hhh]”(jg)�”}”(hŒ$void free_rs (struct rs_control *rs)”h]”jm)�”}”(hŒ#void free_rs(struct rs_control *rs)”h]”(j! )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´K©ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj h²hh³j h´K©ubj–)�”}”(hŒfree_rs”h]”jœ)�”}”(hŒfree_rs”h]”hŒfree_rs”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj( ubah}”(h]”h ]”(j®j¯eh"]”h$]”h&]”jÅjÆuh1j•hj h²hh³j h´K©ubj )�”}”(hŒ(struct rs_control *rs)”h]”j )�”}”(hŒstruct rs_control *rs”h]”(js)�”}”(hjvh]”hŒstruct”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jrhjD ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjD ubh)�”}”(hhh]”jœ)�”}”(hŒ rs_control”h]”hŒ rs_control”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjc ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jh Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jØ)�”}”jËj. sbŒ c.free_rs”†”asbuh1hhjD ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjD ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjD ubjœ)�”}”(hŒrs”h]”hŒrs”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjD ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj@ ubah}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1j hj h²hh³j h´K©ubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆj¹ˆuh1jljºj»hj h²hh³j h´K©ubah}”(h]”jþ ah ]”(j¿jÀeh"]”h$]”h&]”jĈjÅ)jÆhuh1jfh³j h´K©hj h²hubjÈ)�”}”(hhh]”hì)�”}”(hŒFree the rs control structure”h]”hŒFree the rs control structure”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´K©hjÈ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj h²hh³j h´K©ubeh}”(h]”h ]”(jäŒfunction”eh"]”h$]”h&]”jéjäjêjã jëjã jì‰jí‰jî‰uh1jah²hhjÓ h³Nh´Nubjð)�”}”(hŒä**Parameters** ``struct rs_control *rs`` The control structure which is not longer used by the caller **Description** Free the control structure. If **rs** is the last user of the associated codec, free the codec as well.”h]”(hì)�”}”(hŒ**Parameters**”h]”jú)�”}”(hjí h]”hŒ Parameters”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´K­hjç ubj<)�”}”(hhh]”jA)�”}”(hŒW``struct rs_control *rs`` The control structure which is not longer used by the caller ”h]”(jG)�”}”(hŒ``struct rs_control *rs``”h]”jM)�”}”(hj h]”hŒstruct rs_control *rs”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´K«hj ubjc)�”}”(hhh]”hì)�”}”(hŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M,hj6ubj<)�”}”(hhh]”(jA)�”}”(hŒ1``int symsize`` the symbol size (number of bits) ”h]”(jG)�”}”(hŒ``int symsize``”h]”jM)�”}”(hj[h]”hŒ int symsize”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M*hjUubjc)�”}”(hhh]”hì)�”}”(hŒ the symbol size (number of bits)”h]”hŒ the symbol size (number of bits)”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jph´M*hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jph´M*hjRubjA)�”}”(hŒ©``int (*gffunc)(int)`` pointer to function to generate the next field element, or the multiplicative identity element if given 0. Used instead of gfpoly if gfpoly is 0 ”h]”(jG)�”}”(hŒ``int (*gffunc)(int)``”h]”jM)�”}”(hj”h]”hŒint (*gffunc)(int)”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M-hjŽubjc)�”}”(hhh]”hì)�”}”(hŒ‘pointer to function to generate the next field element, or the multiplicative identity element if given 0. Used instead of gfpoly if gfpoly is 0”h]”hŒ‘pointer to function to generate the next field element, or the multiplicative identity element if given 0. Used instead of gfpoly if gfpoly is 0”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M+hjªubah}”(h]”•Pöh ]”h"]”h$]”h&]”uh1jbhjŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j©h´M-hjRubjA)�”}”(hŒY``int fcr`` the first consecutive root of the rs code generator polynomial in index form ”h]”(jG)�”}”(hŒ ``int fcr``”h]”jM)�”}”(hjÎh]”hŒint fcr”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M/hjÈubjc)�”}”(hhh]”hì)�”}”(hŒLthe first consecutive root of the rs code generator polynomial in index form”h]”hŒLthe first consecutive root of the rs code generator polynomial in index form”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M.hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jãh´M/hjRubjA)�”}”(hŒ<``int prim`` primitive element to generate polynomial roots ”h]”(jG)�”}”(hŒ ``int prim``”h]”jM)�”}”(hjh]”hŒint prim”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M0hjubjc)�”}”(hhh]”hì)�”}”(hŒ.primitive element to generate polynomial roots”h]”hŒ.primitive element to generate polynomial roots”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´M0hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jh´M0hjRubjA)�”}”(hŒD``int nroots`` RS code generator polynomial degree (number of roots)”h]”(jG)�”}”(hŒ``int nroots``”h]”jM)�”}”(hjAh]”hŒ int nroots”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M2hj;ubjc)�”}”(hhh]”hì)�”}”(hŒ5RS code generator polynomial degree (number of roots)”h]”hŒ5RS code generator polynomial degree (number of roots)”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M1hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jVh´M2hjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hj6ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhjÓ h²hh³Nh´NubjQ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j]Œencode_rs8 (C function)”Œ c.encode_rs8”hNt”auh1jPhjÓ h²hh³Nh´Nubjb)�”}”(hhh]”(jg)�”}”(hŒ_int encode_rs8 (struct rs_control *rsc, uint8_t *data, int len, uint16_t *par, uint16_t invmsk)”h]”jm)�”}”(hŒ^int encode_rs8(struct rs_control *rsc, uint8_t *data, int len, uint16_t *par, uint16_t invmsk)”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj—h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M=ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj—h²hh³j©h´M=ubj–)�”}”(hŒ encode_rs8”h]”jœ)�”}”(hŒ encode_rs8”h]”hŒ encode_rs8”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj¸ubah}”(h]”h ]”(j®j¯eh"]”h$]”h&]”jÅjÆuh1j•hj—h²hh³j©h´M=ubj )�”}”(hŒP(struct rs_control *rsc, uint8_t *data, int len, uint16_t *par, uint16_t invmsk)”h]”(j )�”}”(hŒstruct rs_control *rsc”h]”(js)�”}”(hjvh]”hŒstruct”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jrhjÔubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÔubh)�”}”(hhh]”jœ)�”}”(hŒ rs_control”h]”hŒ rs_control”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jøŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jØ)�”}”jËj¾sbŒ c.encode_rs8”†”asbuh1hhjÔubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÔubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjÔubjœ)�”}”(hŒrsc”h]”hŒrsc”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÔubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjÐubj )�”}”(hŒ uint8_t *data”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint8_t”h]”hŒuint8_t”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjJubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jOŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jŒ c.encode_rs8”†”asbuh1hhjFubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjFubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjFubjœ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjÐubj )�”}”(hŒint len”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj›ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj›ubjœ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjÐubj )�”}”(hŒ uint16_t *par”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÔubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jÙŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jŒ c.encode_rs8”†”asbuh1hhjÐubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÐubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjÐubjœ)�”}”(hŒpar”h]”hŒpar”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjÐubj )�”}”(hŒuint16_t invmsk”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j.Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jŒ c.encode_rs8”†”asbuh1hhj%ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj%ubjœ)�”}”(hŒinvmsk”h]”hŒinvmsk”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjÐubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1j hj—h²hh³j©h´M=ubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆj¹ˆuh1jljºj»hj“h²hh³j©h´M=ubah}”(h]”jŽah ]”(j¿jÀeh"]”h$]”h&]”jĈjÅ)jÆhuh1jfh³j©h´M=hj�h²hubjÈ)�”}”(hhh]”hì)�”}”(hŒ6Calculate the parity for data values (8bit data width)”h]”hŒ6Calculate the parity for data values (8bit data width)”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M=hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj�h²hh³j©h´M=ubeh}”(h]”h ]”(jäŒfunction”eh"]”h$]”h&]”jéjäjêjšjëjšjì‰jí‰jî‰uh1jah²hhjÓ h³Nh´Nubjð)�”}”(hXÌ**Parameters** ``struct rs_control *rsc`` the rs control structure ``uint8_t *data`` data field of a given type ``int len`` data length ``uint16_t *par`` parity data, must be initialized by caller (usually all 0) ``uint16_t invmsk`` invert data mask (will be xored on data) **Description** The parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of encoding of the syndrome result for storage itself.”h]”(hì)�”}”(hŒ**Parameters**”h]”jú)�”}”(hj¤h]”hŒ Parameters”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MAhjžubj<)�”}”(hhh]”(jA)�”}”(hŒ4``struct rs_control *rsc`` the rs control structure ”h]”(jG)�”}”(hŒ``struct rs_control *rsc``”h]”jM)�”}”(hjÃh]”hŒstruct rs_control *rsc”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M>hj½ubjc)�”}”(hhh]”hì)�”}”(hŒthe rs control structure”h]”hŒthe rs control structure”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jØh´M>hjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jØh´M>hjºubjA)�”}”(hŒ-``uint8_t *data`` data field of a given type ”h]”(jG)�”}”(hŒ``uint8_t *data``”h]”jM)�”}”(hjüh]”hŒ uint8_t *data”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M?hjöubjc)�”}”(hhh]”hì)�”}”(hŒdata field of a given type”h]”hŒdata field of a given type”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´M?hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jh´M?hjºubjA)�”}”(hŒ``int len`` data length ”h]”(jG)�”}”(hŒ ``int len``”h]”jM)�”}”(hj5h]”hŒint len”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M@hj/ubjc)�”}”(hhh]”hì)�”}”(hŒ data length”h]”hŒ data length”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jJh´M@hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jJh´M@hjºubjA)�”}”(hŒM``uint16_t *par`` parity data, must be initialized by caller (usually all 0) ”h]”(jG)�”}”(hŒ``uint16_t *par``”h]”jM)�”}”(hjnh]”hŒ uint16_t *par”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MAhjhubjc)�”}”(hhh]”hì)�”}”(hŒ:parity data, must be initialized by caller (usually all 0)”h]”hŒ:parity data, must be initialized by caller (usually all 0)”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jƒh´MAhj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jƒh´MAhjºubjA)�”}”(hŒ=``uint16_t invmsk`` invert data mask (will be xored on data) ”h]”(jG)�”}”(hŒ``uint16_t invmsk``”h]”jM)�”}”(hj§h]”hŒuint16_t invmsk”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MBhj¡ubjc)�”}”(hhh]”hì)�”}”(hŒ(invert data mask (will be xored on data)”h]”hŒ(invert data mask (will be xored on data)”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¼h´MBhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j¼h´MBhjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hjžubhì)�”}”(hŒ**Description**”h]”jú)�”}”(hjâh]”hŒ Description”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MDhjžubhŒ block_quote”“”)�”}”(hŒ–The parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of encoding of the syndrome result for storage itself.”h]”hì)�”}”(hŒ–The parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of encoding of the syndrome result for storage itself.”h]”hŒ–The parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of encoding of the syndrome result for storage itself.”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MChjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jøh³j h´MChjžubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhjÓ h²hh³Nh´NubjQ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j]Œdecode_rs8 (C function)”Œ c.decode_rs8”hNt”auh1jPhjÓ h²hh³Nh´Nubjb)�”}”(hhh]”(jg)�”}”(hŒ˜int decode_rs8 (struct rs_control *rsc, uint8_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, uint16_t *corr)”h]”jm)�”}”(hŒ—int decode_rs8(struct rs_control *rsc, uint8_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, uint16_t *corr)”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj/h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MRubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj/h²hh³jAh´MRubj–)�”}”(hŒ decode_rs8”h]”jœ)�”}”(hŒ decode_rs8”h]”hŒ decode_rs8”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjPubah}”(h]”h ]”(j®j¯eh"]”h$]”h&]”jÅjÆuh1j•hj/h²hh³jAh´MRubj )�”}”(hŒ‰(struct rs_control *rsc, uint8_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, uint16_t *corr)”h]”(j )�”}”(hŒstruct rs_control *rsc”h]”(js)�”}”(hjvh]”hŒstruct”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jrhjlubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjlubh)�”}”(hhh]”jœ)�”}”(hŒ rs_control”h]”hŒ rs_control”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j�Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jØ)�”}”jËjVsbŒ c.decode_rs8”†”asbuh1hhjlubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjlubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjlubjœ)�”}”(hŒrsc”h]”hŒrsc”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjlubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒ uint8_t *data”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint8_t”h]”hŒuint8_t”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjâubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jçŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jªŒ c.decode_rs8”†”asbuh1hhjÞubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÞubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjÞubjœ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÞubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒ uint16_t *par”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j<Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jªŒ c.decode_rs8”†”asbuh1hhj3ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj3ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhj3ubjœ)�”}”(hŒpar”h]”hŒpar”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒint len”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjˆubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjˆubjœ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjˆubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒ uint16_t *s”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÁubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jÆŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jªŒ c.decode_rs8”†”asbuh1hhj½ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj½ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhj½ubjœ)�”}”(hŒs”h]”hŒs”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj½ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒ int no_eras”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjubjœ)�”}”(hŒno_eras”h]”hŒno_eras”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒ int *eras_pos”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjGubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjGubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjGubjœ)�”}”(hŒeras_pos”h]”hŒeras_pos”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒuint16_t invmsk”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j’Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jªŒ c.decode_rs8”†”asbuh1hhj‰ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj‰ubjœ)�”}”(hŒinvmsk”h]”hŒinvmsk”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubj )�”}”(hŒuint16_t *corr”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÕubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jÚŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jªŒ c.decode_rs8”†”asbuh1hhjÑubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÑubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjÑubjœ)�”}”(hŒcorr”h]”hŒcorr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÑubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjhubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1j hj/h²hh³jAh´MRubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆj¹ˆuh1jljºj»hj+h²hh³jAh´MRubah}”(h]”j&ah ]”(j¿jÀeh"]”h$]”h&]”jĈjÅ)jÆhuh1jfh³jAh´MRhj(h²hubjÈ)�”}”(hhh]”hì)�”}”(hŒ!Decode codeword (8bit data width)”h]”hŒ!Decode codeword (8bit data width)”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MRhj8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj(h²hh³jAh´MRubeh}”(h]”h ]”(jäŒfunction”eh"]”h$]”h&]”jéjäjêjSjëjSjì‰jí‰jî‰uh1jah²hhjÓ h³Nh´Nubjð)�”}”(hX**Parameters** ``struct rs_control *rsc`` the rs control structure ``uint8_t *data`` data field of a given type ``uint16_t *par`` received parity data field ``int len`` data length ``uint16_t *s`` syndrome data field, must be in index form (if NULL, syndrome is calculated) ``int no_eras`` number of erasures ``int *eras_pos`` position of erasures, can be NULL ``uint16_t invmsk`` invert data mask (will be xored on data, not on parity!) ``uint16_t *corr`` buffer to store correction bitmask on eras_pos **Description** The syndrome and parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of decoding of the syndrome result and the received parity before calling this code. **Note** The rs_control struct **rsc** contains buffers which are used for decoding, so the caller has to ensure that decoder invocations are serialized. Returns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”h]”(hì)�”}”(hŒ**Parameters**”h]”jú)�”}”(hj]h]”hŒ Parameters”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MVhjWubj<)�”}”(hhh]”(jA)�”}”(hŒ4``struct rs_control *rsc`` the rs control structure ”h]”(jG)�”}”(hŒ``struct rs_control *rsc``”h]”jM)�”}”(hj|h]”hŒstruct rs_control *rsc”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MShjvubjc)�”}”(hhh]”hì)�”}”(hŒthe rs control structure”h]”hŒthe rs control structure”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‘h´MShj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j‘h´MShjsubjA)�”}”(hŒ-``uint8_t *data`` data field of a given type ”h]”(jG)�”}”(hŒ``uint8_t *data``”h]”jM)�”}”(hjµh]”hŒ uint8_t *data”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MThj¯ubjc)�”}”(hhh]”hì)�”}”(hŒdata field of a given type”h]”hŒdata field of a given type”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÊh´MThjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jÊh´MThjsubjA)�”}”(hŒ-``uint16_t *par`` received parity data field ”h]”(jG)�”}”(hŒ``uint16_t *par``”h]”jM)�”}”(hjîh]”hŒ uint16_t *par”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MUhjèubjc)�”}”(hhh]”hì)�”}”(hŒreceived parity data field”h]”hŒreceived parity data field”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´MUhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jh´MUhjsubjA)�”}”(hŒ``int len`` data length ”h]”(jG)�”}”(hŒ ``int len``”h]”jM)�”}”(hj'h]”hŒint len”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MVhj!ubjc)�”}”(hhh]”hì)�”}”(hŒ data length”h]”hŒ data length”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j<h´MVhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j<h´MVhjsubjA)�”}”(hŒ]``uint16_t *s`` syndrome data field, must be in index form (if NULL, syndrome is calculated) ”h]”(jG)�”}”(hŒ``uint16_t *s``”h]”jM)�”}”(hj`h]”hŒ uint16_t *s”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MXhjZubjc)�”}”(hhh]”hì)�”}”(hŒLsyndrome data field, must be in index form (if NULL, syndrome is calculated)”h]”hŒLsyndrome data field, must be in index form (if NULL, syndrome is calculated)”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MWhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³juh´MXhjsubjA)�”}”(hŒ#``int no_eras`` number of erasures ”h]”(jG)�”}”(hŒ``int no_eras``”h]”jM)�”}”(hjšh]”hŒ int no_eras”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MYhj”ubjc)�”}”(hhh]”hì)�”}”(hŒnumber of erasures”h]”hŒnumber of erasures”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¯h´MYhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j¯h´MYhjsubjA)�”}”(hŒ4``int *eras_pos`` position of erasures, can be NULL ”h]”(jG)�”}”(hŒ``int *eras_pos``”h]”jM)�”}”(hjÓh]”hŒ int *eras_pos”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MZhjÍubjc)�”}”(hhh]”hì)�”}”(hŒ!position of erasures, can be NULL”h]”hŒ!position of erasures, can be NULL”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jèh´MZhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jèh´MZhjsubjA)�”}”(hŒM``uint16_t invmsk`` invert data mask (will be xored on data, not on parity!) ”h]”(jG)�”}”(hŒ``uint16_t invmsk``”h]”jM)�”}”(hj h]”hŒuint16_t invmsk”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M[hjubjc)�”}”(hhh]”hì)�”}”(hŒ8invert data mask (will be xored on data, not on parity!)”h]”hŒ8invert data mask (will be xored on data, not on parity!)”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j!h´M[hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j!h´M[hjsubjA)�”}”(hŒB``uint16_t *corr`` buffer to store correction bitmask on eras_pos ”h]”(jG)�”}”(hŒ``uint16_t *corr``”h]”jM)�”}”(hjEh]”hŒuint16_t *corr”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M\hj?ubjc)�”}”(hhh]”hì)�”}”(hŒ.buffer to store correction bitmask on eras_pos”h]”hŒ.buffer to store correction bitmask on eras_pos”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jZh´M\hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jZh´M\hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hjWubhì)�”}”(hŒ**Description**”h]”jú)�”}”(hj€h]”hŒ Description”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M^hjWubjù)�”}”(hŒÂThe syndrome and parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of decoding of the syndrome result and the received parity before calling this code. ”h]”hì)�”}”(hŒÁThe syndrome and parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of decoding of the syndrome result and the received parity before calling this code.”h]”hŒÁThe syndrome and parity uses a uint16_t data type to enable symbol size > 8. The calling code must take care of decoding of the syndrome result and the received parity before calling this code.”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M]hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøh³j¨h´M]hjWubhì)�”}”(hŒ**Note**”h]”jú)�”}”(hj±h]”hŒNote”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MahjWubj<)�”}”(hhh]”jA)�”}”(hXThe rs_control struct **rsc** contains buffers which are used for decoding, so the caller has to ensure that decoder invocations are serialized. Returns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”h]”(jG)�”}”(hŒAThe rs_control struct **rsc** contains buffers which are used for”h]”(hŒThe rs_control struct ”…”�”}”(hjÎh²hh³Nh´Nubjú)�”}”(hŒ**rsc**”h]”hŒrsc”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjÎubhŒ$ contains buffers which are used for”…”�”}”(hjÎh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MfhjÊubjc)�”}”(hhh]”(hì)�”}”(hŒNdecoding, so the caller has to ensure that decoder invocations are serialized.”h]”hŒNdecoding, so the caller has to ensure that decoder invocations are serialized.”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mchjïubhì)�”}”(hŒvReturns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”h]”hŒvReturns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jîh´Mfhjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jîh´MfhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j;hjWubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhjÓ h²hh³Nh´NubjQ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j]Œencode_rs16 (C function)”Œ c.encode_rs16”hNt”auh1jPhjÓ h²hh³Nh´Nubjb)�”}”(hhh]”(jg)�”}”(hŒaint encode_rs16 (struct rs_control *rsc, uint16_t *data, int len, uint16_t *par, uint16_t invmsk)”h]”jm)�”}”(hŒ`int encode_rs16(struct rs_control *rsc, uint16_t *data, int len, uint16_t *par, uint16_t invmsk)”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj=h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mtubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj=h²hh³jOh´Mtubj–)�”}”(hŒ encode_rs16”h]”jœ)�”}”(hŒ encode_rs16”h]”hŒ encode_rs16”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj^ubah}”(h]”h ]”(j®j¯eh"]”h$]”h&]”jÅjÆuh1j•hj=h²hh³jOh´Mtubj )�”}”(hŒQ(struct rs_control *rsc, uint16_t *data, int len, uint16_t *par, uint16_t invmsk)”h]”(j )�”}”(hŒstruct rs_control *rsc”h]”(js)�”}”(hjvh]”hŒstruct”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jrhjzubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjzubh)�”}”(hhh]”jœ)�”}”(hŒ rs_control”h]”hŒ rs_control”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jžŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jØ)�”}”jËjdsbŒ c.encode_rs16”†”asbuh1hhjzubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjzubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjzubjœ)�”}”(hŒrsc”h]”hŒrsc”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjzubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjvubj )�”}”(hŒuint16_t *data”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jõŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”j¸Œ c.encode_rs16”†”asbuh1hhjìubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjìubjí)�”}”(hjðh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjìubjœ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjvubj )�”}”(hŒint len”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjAubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjAubjœ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjvubj )�”}”(hŒ uint16_t *par”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”j¸Œ c.encode_rs16”†”asbuh1hhjvubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjvubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjvubjœ)�”}”(hŒpar”h]”hŒpar”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjvubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjvubj )�”}”(hŒuint16_t invmsk”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jÔŒmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”j¸Œ c.encode_rs16”†”asbuh1hhjËubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjËubjœ)�”}”(hŒinvmsk”h]”hŒinvmsk”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjËubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hjvubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1j hj=h²hh³jOh´Mtubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆj¹ˆuh1jljºj»hj9h²hh³jOh´Mtubah}”(h]”j4ah ]”(j¿jÀeh"]”h$]”h&]”jĈjÅ)jÆhuh1jfh³jOh´Mthj6h²hubjÈ)�”}”(hhh]”hì)�”}”(hŒ7Calculate the parity for data values (16bit data width)”h]”hŒ7Calculate the parity for data values (16bit data width)”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mthj% h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj6h²hh³jOh´Mtubeh}”(h]”h ]”(jäŒfunction”eh"]”h$]”h&]”jéjäjêj@ jëj@ jì‰jí‰jî‰uh1jah²hhjÓ h³Nh´Nubjð)�”}”(hX�**Parameters** ``struct rs_control *rsc`` the rs control structure ``uint16_t *data`` data field of a given type ``int len`` data length ``uint16_t *par`` parity data, must be initialized by caller (usually all 0) ``uint16_t invmsk`` invert data mask (will be xored on data, not on parity!) **Description** Each field in the data array contains up to symbol size bits of valid data.”h]”(hì)�”}”(hŒ**Parameters**”h]”jú)�”}”(hjJ h]”hŒ Parameters”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjH ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MxhjD ubj<)�”}”(hhh]”(jA)�”}”(hŒ4``struct rs_control *rsc`` the rs control structure ”h]”(jG)�”}”(hŒ``struct rs_control *rsc``”h]”jM)�”}”(hji h]”hŒstruct rs_control *rsc”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Muhjc ubjc)�”}”(hhh]”hì)�”}”(hŒthe rs control structure”h]”hŒthe rs control structure”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j~ h´Muhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjc ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j~ h´Muhj` ubjA)�”}”(hŒ.``uint16_t *data`` data field of a given type ”h]”(jG)�”}”(hŒ``uint16_t *data``”h]”jM)�”}”(hj¢ h]”hŒuint16_t *data”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mvhjœ ubjc)�”}”(hhh]”hì)�”}”(hŒdata field of a given type”h]”hŒdata field of a given type”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j· h´Mvhj¸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjœ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j· h´Mvhj` ubjA)�”}”(hŒ``int len`` data length ”h]”(jG)�”}”(hŒ ``int len``”h]”jM)�”}”(hjÛ h]”hŒint len”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÙ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MwhjÕ ubjc)�”}”(hhh]”hì)�”}”(hŒ data length”h]”hŒ data length”…”�”}”(hjô h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jð h´Mwhjñ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÕ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jð h´Mwhj` ubjA)�”}”(hŒM``uint16_t *par`` parity data, must be initialized by caller (usually all 0) ”h]”(jG)�”}”(hŒ``uint16_t *par``”h]”jM)�”}”(hj!h]”hŒ uint16_t *par”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mxhj!ubjc)�”}”(hhh]”hì)�”}”(hŒ:parity data, must be initialized by caller (usually all 0)”h]”hŒ:parity data, must be initialized by caller (usually all 0)”…”�”}”(hj-!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j)!h´Mxhj*!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j)!h´Mxhj` ubjA)�”}”(hŒM``uint16_t invmsk`` invert data mask (will be xored on data, not on parity!) ”h]”(jG)�”}”(hŒ``uint16_t invmsk``”h]”jM)�”}”(hjM!h]”hŒuint16_t invmsk”…”�”}”(hjO!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjK!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MyhjG!ubjc)�”}”(hhh]”hì)�”}”(hŒ8invert data mask (will be xored on data, not on parity!)”h]”hŒ8invert data mask (will be xored on data, not on parity!)”…”�”}”(hjf!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jb!h´Myhjc!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjG!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jb!h´Myhj` ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hjD ubhì)�”}”(hŒ**Description**”h]”jú)�”}”(hjˆ!h]”hŒ Description”…”�”}”(hjŠ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj†!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M{hjD ubjù)�”}”(hŒKEach field in the data array contains up to symbol size bits of valid data.”h]”hì)�”}”(hj !h]”hŒKEach field in the data array contains up to symbol size bits of valid data.”…”�”}”(hj¢!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mzhjž!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøh³j¯!h´MzhjD ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhjÓ h²hh³Nh´NubjQ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j]Œdecode_rs16 (C function)”Œ c.decode_rs16”hNt”auh1jPhjÓ h²hh³Nh´Nubjb)�”}”(hhh]”(jg)�”}”(hŒšint decode_rs16 (struct rs_control *rsc, uint16_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, uint16_t *corr)”h]”jm)�”}”(hŒ™int decode_rs16(struct rs_control *rsc, uint16_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, uint16_t *corr)”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjÖ!h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjÒ!h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M‡ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå!h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÒ!h²hh³jä!h´M‡ubj–)�”}”(hŒ decode_rs16”h]”jœ)�”}”(hŒ decode_rs16”h]”hŒ decode_rs16”…”�”}”(hj÷!h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjó!ubah}”(h]”h ]”(j®j¯eh"]”h$]”h&]”jÅjÆuh1j•hjÒ!h²hh³jä!h´M‡ubj )�”}”(hŒŠ(struct rs_control *rsc, uint16_t *data, uint16_t *par, int len, uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk, uint16_t *corr)”h]”(j )�”}”(hŒstruct rs_control *rsc”h]”(js)�”}”(hjvh]”hŒstruct”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jrhj"ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj"ubh)�”}”(hhh]”jœ)�”}”(hŒ rs_control”h]”hŒ rs_control”…”�”}”(hj1"h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj."ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j3"Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jØ)�”}”jËjù!sbŒ c.decode_rs16”†”asbuh1hhj"ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ"h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj"ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj_"h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhj"ubjœ)�”}”(hŒrsc”h]”hŒrsc”…”�”}”(hjl"h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒuint16_t *data”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjˆ"h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj…"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jŠ"Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jM"Œ c.decode_rs16”†”asbuh1hhj�"ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦"h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj�"ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj´"h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhj�"ubjœ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÁ"h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj�"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒ uint16_t *par”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjÝ"h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÚ"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”jß"Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jM"Œ c.decode_rs16”†”asbuh1hhjÖ"ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû"h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÖ"ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjÖ"ubjœ)�”}”(hŒpar”h]”hŒpar”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjÖ"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒint len”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj/#h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj+#ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=#h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj+#ubjœ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjK#h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj+#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒ uint16_t *s”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjg#h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjd#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”ji#Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jM"Œ c.decode_rs16”†”asbuh1hhj`#ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…#h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj`#ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj“#h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhj`#ubjœ)�”}”(hjÿh]”hŒs”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj`#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒ int no_eras”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hj¸#h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hj´#ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ#h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj´#ubjœ)�”}”(hŒno_eras”h]”hŒno_eras”…”�”}”(hjÔ#h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj´#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒ int *eras_pos”h]”(j! )�”}”(hŒint”h]”hŒint”…”�”}”(hjí#h²hh³Nh´Nubah}”(h]”h ]”j- ah"]”h$]”h&]”uh1j hjé#ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû#h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjé#ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjé#ubjœ)�”}”(hŒeras_pos”h]”hŒeras_pos”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjé#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒuint16_t invmsk”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hj2$h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj/$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j4$Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jM"Œ c.decode_rs16”†”asbuh1hhj+$ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP$h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj+$ubjœ)�”}”(hŒinvmsk”h]”hŒinvmsk”…”�”}”(hj^$h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hj+$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubj )�”}”(hŒuint16_t *corr”h]”(h)�”}”(hhh]”jœ)�”}”(hŒuint16_t”h]”hŒuint16_t”…”�”}”(hjz$h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjw$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jäŒreftype”jËŒ reftarget”j|$Œmodname”NŒ classname”NjÏjÒ)�”}”jÕ]”jM"Œ c.decode_rs16”†”asbuh1hhjs$ubj…)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜$h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjs$ubjí)�”}”(hjðh]”hŒ*”…”�”}”(hj¦$h²hh³Nh´Nubah}”(h]”h ]”jùah"]”h$]”h&]”uh1jìhjs$ubjœ)�”}”(hŒcorr”h]”hŒcorr”…”�”}”(hj³$h²hh³Nh´Nubah}”(h]”h ]”j§ah"]”h$]”h&]”uh1j›hjs$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÅjÆuh1j hj "ubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1j hjÒ!h²hh³jä!h´M‡ubeh}”(h]”h ]”h"]”h$]”h&]”jÅjÆj¹ˆuh1jljºj»hjÎ!h²hh³jä!h´M‡ubah}”(h]”jÉ!ah ]”(j¿jÀeh"]”h$]”h&]”jĈjÅ)jÆhuh1jfh³jä!h´M‡hjË!h²hubjÈ)�”}”(hhh]”hì)�”}”(hŒ"Decode codeword (16bit data width)”h]”hŒ"Decode codeword (16bit data width)”…”�”}”(hjÝ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M‡hjÚ$h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjË!h²hh³jä!h´M‡ubeh}”(h]”h ]”(jäŒfunction”eh"]”h$]”h&]”jéjäjêjõ$jëjõ$jì‰jí‰jî‰uh1jah²hhjÓ h³Nh´Nubjð)�”}”(hXŒ**Parameters** ``struct rs_control *rsc`` the rs control structure ``uint16_t *data`` data field of a given type ``uint16_t *par`` received parity data field ``int len`` data length ``uint16_t *s`` syndrome data field, must be in index form (if NULL, syndrome is calculated) ``int no_eras`` number of erasures ``int *eras_pos`` position of erasures, can be NULL ``uint16_t invmsk`` invert data mask (will be xored on data, not on parity!) ``uint16_t *corr`` buffer to store correction bitmask on eras_pos **Description** Each field in the data array contains up to symbol size bits of valid data. **Note** The rc_control struct **rsc** contains buffers which are used for decoding, so the caller has to ensure that decoder invocations are serialized. Returns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”h]”(hì)�”}”(hŒ**Parameters**”h]”jú)�”}”(hjÿ$h]”hŒ Parameters”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjý$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M‹hjù$ubj<)�”}”(hhh]”(jA)�”}”(hŒ4``struct rs_control *rsc`` the rs control structure ”h]”(jG)�”}”(hŒ``struct rs_control *rsc``”h]”jM)�”}”(hj%h]”hŒstruct rs_control *rsc”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´Mˆhj%ubjc)�”}”(hhh]”hì)�”}”(hŒthe rs control structure”h]”hŒthe rs control structure”…”�”}”(hj7%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j3%h´Mˆhj4%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j3%h´Mˆhj%ubjA)�”}”(hŒ.``uint16_t *data`` data field of a given type ”h]”(jG)�”}”(hŒ``uint16_t *data``”h]”jM)�”}”(hjW%h]”hŒuint16_t *data”…”�”}”(hjY%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjU%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M‰hjQ%ubjc)�”}”(hhh]”hì)�”}”(hŒdata field of a given type”h]”hŒdata field of a given type”…”�”}”(hjp%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jl%h´M‰hjm%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjQ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jl%h´M‰hj%ubjA)�”}”(hŒ-``uint16_t *par`` received parity data field ”h]”(jG)�”}”(hŒ``uint16_t *par``”h]”jM)�”}”(hj�%h]”hŒ uint16_t *par”…”�”}”(hj’%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjŽ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MŠhjŠ%ubjc)�”}”(hhh]”hì)�”}”(hŒreceived parity data field”h]”hŒreceived parity data field”…”�”}”(hj©%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¥%h´MŠhj¦%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjŠ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j¥%h´MŠhj%ubjA)�”}”(hŒ``int len`` data length ”h]”(jG)�”}”(hŒ ``int len``”h]”jM)�”}”(hjÉ%h]”hŒint len”…”�”}”(hjË%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÇ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M‹hjÃ%ubjc)�”}”(hhh]”hì)�”}”(hŒ data length”h]”hŒ data length”…”�”}”(hjâ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÞ%h´M‹hjß%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÃ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jÞ%h´M‹hj%ubjA)�”}”(hŒ]``uint16_t *s`` syndrome data field, must be in index form (if NULL, syndrome is calculated) ”h]”(jG)�”}”(hŒ``uint16_t *s``”h]”jM)�”}”(hj&h]”hŒ uint16_t *s”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M�hjü%ubjc)�”}”(hhh]”hì)�”}”(hŒLsyndrome data field, must be in index form (if NULL, syndrome is calculated)”h]”hŒLsyndrome data field, must be in index form (if NULL, syndrome is calculated)”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MŒhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjü%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j&h´M�hj%ubjA)�”}”(hŒ#``int no_eras`` number of erasures ”h]”(jG)�”}”(hŒ``int no_eras``”h]”jM)�”}”(hj<&h]”hŒ int no_eras”…”�”}”(hj>&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj:&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´MŽhj6&ubjc)�”}”(hhh]”hì)�”}”(hŒnumber of erasures”h]”hŒnumber of erasures”…”�”}”(hjU&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jQ&h´MŽhjR&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj6&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jQ&h´MŽhj%ubjA)�”}”(hŒ4``int *eras_pos`` position of erasures, can be NULL ”h]”(jG)�”}”(hŒ``int *eras_pos``”h]”jM)�”}”(hju&h]”hŒ int *eras_pos”…”�”}”(hjw&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjs&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M�hjo&ubjc)�”}”(hhh]”hì)�”}”(hŒ!position of erasures, can be NULL”h]”hŒ!position of erasures, can be NULL”…”�”}”(hjŽ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŠ&h´M�hj‹&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjo&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jŠ&h´M�hj%ubjA)�”}”(hŒM``uint16_t invmsk`` invert data mask (will be xored on data, not on parity!) ”h]”(jG)�”}”(hŒ``uint16_t invmsk``”h]”jM)�”}”(hj®&h]”hŒuint16_t invmsk”…”�”}”(hj°&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj¬&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M�hj¨&ubjc)�”}”(hhh]”hì)�”}”(hŒ8invert data mask (will be xored on data, not on parity!)”h]”hŒ8invert data mask (will be xored on data, not on parity!)”…”�”}”(hjÇ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÃ&h´M�hjÄ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj¨&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jÃ&h´M�hj%ubjA)�”}”(hŒB``uint16_t *corr`` buffer to store correction bitmask on eras_pos ”h]”(jG)�”}”(hŒ``uint16_t *corr``”h]”jM)�”}”(hjç&h]”hŒuint16_t *corr”…”�”}”(hjé&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjå&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M‘hjá&ubjc)�”}”(hhh]”hì)�”}”(hŒ.buffer to store correction bitmask on eras_pos”h]”hŒ.buffer to store correction bitmask on eras_pos”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jü&h´M‘hjý&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjá&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³jü&h´M‘hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j;hjù$ubhì)�”}”(hŒ**Description**”h]”jú)�”}”(hj"'h]”hŒ Description”…”�”}”(hj$'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj 'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M“hjù$ubjù)�”}”(hŒLEach field in the data array contains up to symbol size bits of valid data. ”h]”hì)�”}”(hŒKEach field in the data array contains up to symbol size bits of valid data.”h]”hŒKEach field in the data array contains up to symbol size bits of valid data.”…”�”}”(hj<'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M’hj8'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jøh³jJ'h´M’hjù$ubhì)�”}”(hŒ**Note**”h]”jú)�”}”(hjS'h]”hŒNote”…”�”}”(hjU'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjQ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M”hjù$ubj<)�”}”(hhh]”jA)�”}”(hXThe rc_control struct **rsc** contains buffers which are used for decoding, so the caller has to ensure that decoder invocations are serialized. Returns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”h]”(jG)�”}”(hŒAThe rc_control struct **rsc** contains buffers which are used for”h]”(hŒThe rc_control struct ”…”�”}”(hjp'h²hh³Nh´Nubjú)�”}”(hŒ**rsc**”h]”hŒrsc”…”�”}”(hjx'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjp'ubhŒ$ contains buffers which are used for”…”�”}”(hjp'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M™hjl'ubjc)�”}”(hhh]”(hì)�”}”(hŒNdecoding, so the caller has to ensure that decoder invocations are serialized.”h]”hŒNdecoding, so the caller has to ensure that decoder invocations are serialized.”…”�”}”(hj”'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/core-api/librs:191: ./lib/reed_solomon/reed_solomon.c”h´M–hj‘'ubhì)�”}”(hŒvReturns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”h]”hŒvReturns the number of corrected symbols or -EBADMSG for uncorrectable errors. The count includes errors in the parity.”…”�”}”(hj£'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�'h´M™hj‘'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jbhjl'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j@h³j�'h´M™hji'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j;hjù$ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jïhjÓ h²hh³Nh´Nubeh}”(h]”Œpublic-functions-provided”ah ]”h"]”Œpublic functions provided”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kºubh¶)�”}”(hhh]”(h»)�”}”(hŒCredits”h]”hŒCredits”…”�”}”(hjÕ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÒ'h²hh³hÊh´KÃubhì)�”}”(hŒDThe library code for encoding and decoding was written by Phil Karn.”h]”hŒDThe library code for encoding and decoding was written by Phil Karn.”…”�”}”(hjã'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´KÅhjÒ'h²hubj¶)�”}”(hŒcCopyright 2002, Phil Karn, KA9Q May be used under the terms of the GNU General Public License (GPL)”h]”hŒcCopyright 2002, Phil Karn, KA9Q May be used under the terms of the GNU General Public License (GPL)”…”�”}”hjñ'sbah}”(h]”h ]”h"]”h$]”h&]”jÅjÆuh1jµh³hÊh´KÉhjÒ'h²hubhì)�”}”(hŒDThe wrapper functions and interfaces are written by Thomas Gleixner.”h]”hŒDThe wrapper functions and interfaces are written by Thomas Gleixner.”…”�”}”(hjÿ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´KÍhjÒ'h²hubhì)�”}”(hŒ\Many users have provided bugfixes, improvements and helping hands for testing. Thanks a lot.”h]”hŒ\Many users have provided bugfixes, improvements and helping hands for testing. Thanks a lot.”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´KÏhjÒ'h²hubhì)�”}”(hŒ7The following people have contributed to this document:”h]”hŒ7The following people have contributed to this document:”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´KÒhjÒ'h²hubhì)�”}”(hŒ Thomas Gleixner\ tglx@kernel.org”h]”(hŒThomas Gleixner ”…”�”}”(hj)(h²hh³Nh´NubhŒ reference”“”)�”}”(hŒtglx@kernel.org”h]”hŒtglx@kernel.org”…”�”}”(hj3(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:tglx@kernel.org”uh1j1(hj)(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´KÔhjÒ'h²hubeh}”(h]”Œcredits”ah ]”h"]”Œcredits”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÃubeh}”(h]”Œ*reed-solomon-library-programming-interface”ah ]”h"]”Œ*reed-solomon library programming interface”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j|(Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jV(jS(jMjJjtjqj.j+jÌjÉjjjñjîj�jŠj´j±jéjæj&j#jÐ jÍ jÏ'jÌ'jN(jK(uŒ nametypes”}”(jV(‰jM‰jt‰j.‰j̉j‰jñ‰j�‰j´‰jé‰j&‰jÐ ‰jÏ'‰jN(‰uh}”(jS(h·jJj jqjPj+jwjÉj–jjÏjîj jŠjij±j�jæj·j#jôjÍ j1j_jhjGjLj‰jŽjÌ'jÓ jþ j j’ j— j(j-jŽj“j&j+j4j9jÉ!jÎ!jK(jÒ'uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.