函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\reed_solomon\reed_solomon.c Create Date:2022-07-27 07:56:29
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:dec_init - Initialize a Reed-Solomon codec*@symsize: symbol size, bits (1-8)*@gfpoly: Field generator polynomial coefficients*@gffunc: Field generator function*@fcr: first root of RS code generator polynomial, index form*@prim: primitive element to

函数原型:static struct rs_codec *codec_init(int symsize, int gfpoly, int (*gffunc)(int ), int fcr, int prim, int nroots, gfp_t gfp)

返回类型:struct rs_codec

参数:

类型参数名称
intsymsize
intgfpoly
int (*gffunc
intfcr
intprim
intnroots
gfp_tgfp
76  rs等于分配内存并置零
77  如果非rs则返回:NULL
80  初始化链表头
82  mm等于symsize
83  nn等于1左移symsize位的值减1
84  fcr等于fcr
85  prim等于prim
86  nroots等于nroots
87  gfpoly等于gfpoly
88  gffunc等于gffunc
91  alpha_to等于分配数组内存
92  如果(alpha_to == NULL)则转到:err
95  index_of等于分配数组内存
96  如果(index_of == NULL)则转到:err
99  genpoly等于分配数组内存
100  如果(genpoly == NULL)则转到:err
104  index_of[0]等于nn
105  alpha_to[nn]等于0
106  如果gfpoly
107  sr等于1
108 i小于nn循环
109  index_of[sr]等于i
110  alpha_to[i]等于sr
111  sr左移等于1位
112  如果sr按位与1左移symsize位则sr异或等于gfpoly
114  sr与等于nn
116  否则
117  sr等于gffunc(0)
118 i小于nn循环
119  index_of[sr]等于i
120  alpha_to[i]等于sr
121  sr等于gffunc(sr)
125  如果sr不等于alpha_to[0]则转到:err
129 iprim取模prim不等于0循环iprim等于iprimprim
134  genpoly[0]等于1
135 i小于nroots循环
136  genpoly[i + 1]等于1
138 j大于0循环
139  如果genpoly[j]不等于0则
140  genpoly[j]等于genpoly[j - 1]按位异或alpha_to[更换算法]
143  否则genpoly[j]等于genpoly[j - 1]
147  genpoly[0]等于alpha_to[更换算法]
152 i小于等于nroots循环genpoly[i]等于index_of[genpoly[i]]
155  users等于1
156  添加链表项
157  返回:rs
159  err :
160  kfree(genpoly)
161  kfree(index_of)
162  kfree(alpha_to)
163  kfree(rs)
164  返回:NULL
调用者
名称描述
init_rs_internal_rs_internal - Allocate rs control, find a matching codec or allocate a new one*@symsize: the symbol size (number of bits)*@gfpoly: the extended Galois field generator polynomial coefficients,* with the 0th coefficient in the low order bit