Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\zstd\decompress.c Create Date:2022-07-28 07:07:14
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:ZSTD_execSequenceLong

Proto:size_t ZSTD_execSequenceLong(BYTE *op, BYTE *const oend, seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const base, const BYTE *const vBase, const BYTE *const dictEnd)

Type:size_t

Parameter:

TypeParameterName
BYTE *op
BYTE *constoend
seq_tsequence
const BYTE **litPtr
const BYTE *constlitLimit
const BYTE *constbase
const BYTE *constvBase
const BYTE *constdictEnd
1266  oLitEnd = op + litLength
1267  sequenceLength = litLength + matchLength
1268  oMatchEnd = op + sequenceLength
1269  oend_w = oend - ! ZSTD_wildcopy() :* custom version of memcpy(), can copy up to 7 bytes too many (8 bytes if length==0)
1270  iLitEnd = litPtr + litLength
1271  match = match
1274  If oMatchEnd > oend Then Return -***************************************** Error codes handling(dstSize_tooSmall)
1276  If iLitEnd > litLimit Then Return -***************************************** Error codes handling(corruption_detected)
1278  If oLitEnd > oend_w Then Return ZSTD_execSequenceLast7(op, oend, sequence, litPtr, litLimit, base, vBase, dictEnd)
1282  -******************************************** Shared functions to include for inlining
1283  If litLength > 8 Then ZSTD_wildcopy(op + 8, ( * litPtr) + 8, litLength - 8)
1286  op = oLitEnd
1287  litPtr = iLitEnd
1290  If offset > oLitEnd - base Then
1292  If offset > oLitEnd - vBase Then Return -***************************************** Error codes handling(corruption_detected)
1294  If match + matchLength <= dictEnd Then
1296  Return sequenceLength
1300  length1 = dictEnd - match
1302  op = oLitEnd + length1
1303  matchLength -= length1
1304  match = base
1305  If op > oend_w || matchLength < MINMATCH Then
1307  When i < matchLength cycle op[i] = match[i]
1309  Return sequenceLength
1316  If offset < 8 Then
1318  static const U32 dec32table[] = {0, 1, 2, 1, 4, 4, 4, 4}
1319  static const int dec64table[] = {8, 8, 8, 7, 8, 9, 10, 11}
1320  sub2 = dec64table[offset]
1321  op[0] = match[0]
1322  op[1] = match[1]
1323  op[2] = match[2]
1324  op[3] = match[3]
1325  match += dec32table[offset]
1326  _******************************************************** Memory operations
1327  match -= sub2
1328  Else
1329  -******************************************** Shared functions to include for inlining
1331  op += 8
1332  match += 8
1334  If oMatchEnd > oend - 16 - MINMATCH Then
1335  If op < oend_w Then
1337  match += oend_w - op
1338  op = oend_w
1340  When op < oMatchEnd cycle
1341  op++ = match++
1342  Else
1343  ZSTD_wildcopy(op, match, (ptrdiff_t)matchLength - 8)
1345  Return sequenceLength
Caller
NameDescribe
ZSTD_decompressSequencesLong