函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:ZSTD_compressBlock_doubleFast_extDict_generic

函数原型:static void ZSTD_compressBlock_doubleFast_extDict_generic(ZSTD_CCtx *ctx, const void *src, size_t srcSize, const U32 mls)

返回类型:void

参数:

类型参数名称
ZSTD_CCtx *ctx
const void *src
size_tsrcSize
const U32mls
1397  hashLong等于hashTable
1398  hBitsL等于hashLog
1399  hashSmall等于chainTable
1400  hBitsS等于chainLog
1401  seqStorePtr等于seqStore的地址
1402  base等于base
1403  dictBase等于dictBase
1404  istart等于src
1405  ip等于istart
1406  anchor等于istart
1407  lowestIndex等于lowLimit
1408  dictStart等于dictBaselowestIndex
1409  dictLimit等于dictLimit
1410  lowPrefixPtr等于basedictLimit
1411  dictEnd等于dictBasedictLimit
1412  iend等于istartsrcSize
1413  ilimit等于iend减8
1414  offset_1等于rep[0], offset_2等于rep[1]
1417 ip小于ilimit循环
1418  hSmall等于ZSTD_hashPtr(ip, hBitsS, mls)
1419  matchIndex等于hashSmall[hSmall]
1420  matchBase等于如果matchIndex小于dictLimitdictBase否则base
1421  match等于matchBasematchIndex
1423  hLong等于ZSTD_hashPtr(ip, hBitsL, 8)
1424  matchLongIndex等于hashLong[hLong]
1425  matchLongBase等于如果matchLongIndex小于dictLimitdictBase否则base
1426  matchLong等于matchLongBasematchLongIndex
1428  curr等于ipbase
1429  repIndex等于curr加1减offset_1
1430  repBase等于如果repIndex小于dictLimitdictBase否则base
1431  repMatch等于repBaserepIndex
1433  hashSmall[hSmall]等于hashLong[hLong]等于curr
1435  如果dictLimit减1减repIndex大于等于3按位与repIndex大于lowestIndexZSTD_read32(repMatch)恒等于ZSTD_read32(ip + 1)则
1437  repMatchEnd等于如果repIndex小于dictLimitdictEnd否则iend
1439  ip自加
1441  否则
1442  如果matchLongIndex大于lowestIndexZSTD_read64(matchLong)恒等于ZSTD_read64(ip)则
1457  否则如果matchIndex大于lowestIndexZSTD_read32(match)恒等于ZSTD_read32(ip)则
1458  h3等于ZSTD_hashPtr(ip + 1, hBitsL, 8)
1459  matchIndex3等于hashLong[h3]
1460  match3Base等于如果matchIndex3小于dictLimitdictBase否则base
1461  match3等于match3BasematchIndex3
1463  hashLong[h3]等于curr加1
1464  如果matchIndex3大于lowestIndexZSTD_read64(match3)恒等于ZSTD_read64(ip + 1)则
1475  否则
1486  offset_2等于offset_1
1487  offset_1等于offset
1490  否则
1491  ip加等于ipanchor右移control skip over incompressible data 位的值加1
1492  继续下一循环
1497  ip加等于mLength
1498  anchor等于ip
1500  如果ip小于等于ilimit
1502  hashSmall[ZSTD_hashPtr(base + curr + 2, hBitsS, mls)]等于curr加2
1503  hashLong[ZSTD_hashPtr(base + curr + 2, hBitsL, 8)]等于curr加2
1504  hashSmall[ZSTD_hashPtr(ip - 2, hBitsS, mls)]等于ip减2减base
1505  hashLong[ZSTD_hashPtr(ip - 2, hBitsL, 8)]等于ip减2减base
1507 ip小于等于ilimit循环
1532  repToConfirm[0]等于offset_1
1533  repToConfirm[1]等于offset_2
1537  lastLLSize等于iendanchor
1538  内存复制(lit, anchor, lastLLSize)
1539  lit加等于lastLLSize
调用者
名称描述
ZSTD_compressBlock_doubleFast_extDict