函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:LZ4_compress_generic() :* inlined, to ensure branches are decided at compilation time

函数原型:static inline __attribute__((__always_inline__)) int LZ4_compress_generic(LZ4_stream_t_internal *const dictPtr, const char *const source, char *const dest, const int inputSize, const int maxOutputSize, const limitedOutput_directive outputLimited, const tableType_t tableType, const dict_directive dict, const dictIssue_directive dictIssue, const U32 acceleration)

返回类型:int

参数:

类型参数名称
LZ4_stream_t_internal *constdictPtr
const char *constsource
char *constdest
const intinputSize
const intmaxOutputSize
const limitedOutput_directiveoutputLimited
const tableType_ttableType
const dict_directivedict
const dictIssue_directivedictIssue
const U32acceleration
188  ip等于source
191  lowRefLimit等于ipdictSize
192  dictionary等于dictionary
193  dictEnd等于dictionarydictSize
194  dictDelta等于dictEndsource
195  anchor等于source
196  iend等于ipinputSize
197  mflimit等于iendMFLIMIT
198  matchlimit等于iendLASTLITERALS
200  op等于dest
201  olimit等于opmaxOutputSize
204  refDelta等于0
207  如果inputSize大于2 113 929 216 bytes
209  返回:0
213  :dict恒等于noDict
214  默认
215  base等于source
216  lowLimit等于source
217  退出
218  :dict恒等于withPrefix64k
219  base等于sourcecurrentOffset
220  lowLimit等于sourcedictSize
221  退出
222  :dict恒等于usingExtDict
223  base等于sourcecurrentOffset
224  lowLimit等于source
225  退出
228  如果tableType恒等于byU16inputSize大于等于LZ4_64Klimit
231  返回:0
234  如果inputSize小于LZ4_minLength
236  转到:_last_literals
240  LZ4_putPosition(ip, hashTable, tableType, base)
241  ip自加
242  forwardH等于LZ4_hashPosition(ip, tableType)
245  循环
251  forwardIp等于ip
252  step等于1
255  循环
283  当如果dictIssue恒等于dictSmallmatch小于lowRefLimit否则0或如果tableType恒等于byU16则0否则matchMAX_DISTANCE小于ipLZ4_read32(match + refDelta)不等于LZ4_read32(ip)循环
296  ip自减
297  match自减
302  litLength等于ipanchor
304  token等于op自加
313  如果litLength大于等于RUN_MASK
314  len等于litLengthRUN_MASK
316  token等于RUN_MASK左移ML_BITS
318 len大于等于255循环op自加等于255
320  op自加等于len
321  否则token等于litLength左移ML_BITS
326  op加等于litLength
329  _next_match :
331  LZ4_writeLE16(op, (U16)(ip - match))
332  op加等于2
338  如果dict恒等于usingExtDictlowLimit恒等于dictionary
361  否则
374  如果matchCode大于等于ML_MASK
375  token加等于ML_MASK
376  matchCode减等于ML_MASK
377  LZ4_write32(op, 0xFFFFFFFF)
379 matchCode大于等于4乘255循环
380  op加等于4
381  LZ4_write32(op, 0xFFFFFFFF)
382  matchCode减等于4乘255
385  op加等于matchCode除255
386  op自加等于matchCode取模255
387  否则token加等于matchCode
391  anchor等于ip
394  如果ip大于mflimit退出
404  如果dict恒等于usingExtDict
405  如果match小于source
406  refDelta等于dictDelta
407  lowLimit等于dictionary
408  否则
409  refDelta等于0
410  lowLimit等于source
416  如果如果dictIssue恒等于dictSmallmatch大于等于lowRefLimit否则1且matchMAX_DISTANCE大于等于ipLZ4_read32(match + refDelta)恒等于LZ4_read32(ip)则
419  token等于op自加
420  token等于0
421  转到:_next_match
428  _last_literals :
431  lastRun等于iendanchor
433  如果outputLimitedopdestlastRun加1加lastRun加255减RUN_MASK的差除255大于maxOutputSize则返回:0
439  如果lastRun大于等于RUN_MASK
441  op自加等于RUN_MASK左移ML_BITS
442 accumulator大于等于255循环op自加等于255
444  op自加等于accumulator
445  否则
446  op自加等于lastRun左移ML_BITS
451  op加等于lastRun
455  返回:opdest
调用者
名称描述
LZ4_compress_fast_extState
LZ4_compress_fast_continue