函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:-******************************* *_destSize() variant

函数原型:static int LZ4_compress_destSize_generic(LZ4_stream_t_internal *const ctx, const char *const src, char *const dst, int *const srcSizePtr, const int targetDstSize, const tableType_t tableType)

返回类型:int

参数:

类型参数名称
LZ4_stream_t_internal *constctx
const char *constsrc
char *constdst
int *constsrcSizePtr
const inttargetDstSize
const tableType_ttableType
530  ip等于src
531  base等于src
532  lowLimit等于src
533  anchor等于ip
534  iend等于ipsrcSizePtr
535  mflimit等于iendMFLIMIT
536  matchlimit等于iendLASTLITERALS
538  op等于dst
539  oend等于optargetDstSize
540  oMaxLit等于optargetDstSize减2减8减1
542  oMaxMatch等于optargetDstSizeLASTLITERALS加1
544  oMaxSeq等于oMaxLit减1
550  如果targetDstSize小于1则返回:0
553  如果((U32) * srcSizePtr > 2 113 929 216 bytes )则返回:0
556  如果tableType恒等于byU16srcSizePtr大于等于LZ4_64Klimit则返回:0
559  如果srcSizePtr小于LZ4_minLength则转到:_last_literals
563  srcSizePtr等于0
564  LZ4_putPosition(ip, hashTable, tableType, base)
565  ip自加
565  forwardH等于LZ4_hashPosition(ip, tableType)
568  循环
574  forwardIp等于ip
575  step等于1
578  循环
596  当如果tableType恒等于byU16则0否则matchMAX_DISTANCE小于ipLZ4_read32(match)不等于LZ4_read32(ip)循环
606  ip自减
607  match自减
612  litLength等于ipanchor
614  token等于op自加
615  如果oplitLength加240的和除255加litLength大于oMaxLit
618  op自减
619  转到:_last_literals
621  如果litLength大于等于RUN_MASK
622  len等于litLengthRUN_MASK
623  token等于RUN_MASK左移ML_BITS
624 len大于等于255循环op自加等于255
626  op自加等于len
627  否则token等于litLength左移ML_BITS
632  op加等于litLength
635  _next_match :
637  LZ4_writeLE16(op, (U16)(ip - match))
637  op加等于2
644  如果opmatchLength加240的和除255大于oMaxMatch
646  matchLength等于15减1加oMaxMatchop的差乘255
650  如果matchLength大于等于ML_MASK
651  token加等于ML_MASK
652  matchLength减等于ML_MASK
653 matchLength大于等于255循环
654  matchLength减等于255
655  op自加等于255
657  op自加等于matchLength
658  否则token加等于matchLength
662  anchor等于ip
665  如果ip大于mflimit退出
667  如果op大于oMaxSeq退出
671  LZ4_putPosition(ip - 2, hashTable, tableType, base)
674  match等于LZ4_getPosition(ip, hashTable, tableType, base)
675  LZ4_putPosition(ip, hashTable, tableType, base)
677  如果matchMAX_DISTANCE大于等于ipLZ4_read32(match)恒等于LZ4_read32(ip)则
679  token等于op自加
679  token等于0
680  转到:_next_match
684  forwardH等于LZ4_hashPosition(++ip, tableType)
687  _last_literals :
690  lastRunSize等于iendanchor
692  如果op加1加lastRunSize加240的和除255加lastRunSize大于oend
696  lastRunSize等于oendop减1
697  lastRunSize减等于lastRunSize加240的和除255
699  ip等于anchorlastRunSize
701  如果lastRunSize大于等于RUN_MASK
704  op自加等于RUN_MASK左移ML_BITS
705 accumulator大于等于255循环op自加等于255
707  op自加等于accumulator
708  否则
709  op自加等于lastRunSize左移ML_BITS
711  内存复制(op, anchor, lastRunSize)
712  op加等于lastRunSize
716  srcSizePtr等于ipsrc
717  返回:opdst
调用者
名称描述
LZ4_compress_destSize_extState