Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:ZSTD_decodeSequenceLong_generic

Proto:FORCE_INLINE seq_t ZSTD_decodeSequenceLong_generic(seqState_t *seqState, int const longOffsets)

Type:seq_t

Parameter:

TypeParameterName
seqState_t *seqState
int constlongOffsets
1167  llCode = FSE_peekSymbol( & stateLL)
1168  mlCode = FSE_peekSymbol( & stateML)
1169  ofCode = FSE_peekSymbol( & stateOffb)
1171  llBits = LL_bits[llCode]
1172  mlBits = ML_bits[mlCode]
1173  ofBits = ofCode
1174  totalBits = llBits + mlBits + ofBits
1176  static const U32 LL_base[36] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 28, 32, 40, 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000}
1179  static const U32 ML_base[53] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 41, 43, 47, 51, 59, 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803, 0x1003, 0x2003, 0x4003, 0x8003, 0x10003}
1183  static const U32 OF_base[29] = {0, 1, 1, 5, 0xD, 0x1D, 0x3D, 0x7D, 0xFD, 0x1FD, 0x3FD, 0x7FD, 0xFFD, 0x1FFD, 0x3FFD, 0x7FFD, 0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD, 0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD}
1190  If Not ofCode Then offset = 0
1192  Else
1193  If longOffsets Then
1200  Else
1207  If ofCode <= 1 Then
1208  offset += llCode == 0
1209  If offset Then
1210  temp = If offset == 3 Then prevOffset[0] - 1 Else prevOffset[offset]
1211  temp += Not temp
1212  If offset != 1 Then prevOffset[2] = prevOffset[1]
1214  prevOffset[1] = prevOffset[0]
1215  prevOffset[0] = offset = temp
1216  Else
1217  offset = prevOffset[0]
1219  Else
1220  prevOffset[2] = prevOffset[1]
1221  prevOffset[1] = prevOffset[0]
1222  prevOffset[0] = offset
1224  offset = offset
1227  matchLength = ML_base[mlCode] + If mlCode > 31 Then ! BIT_readBitsFast() :* unsafe version; only works only if nbBits >= 1 Else 0
1228  If -*************************************************************** Memory I/O && mlBits + llBits > 24 Then BIT_reloadDStream( & DStream)
1231  litLength = LL_base[llCode] + If llCode > 15 Then ! BIT_readBitsFast() :* unsafe version; only works only if nbBits >= 1 Else 0
1232  If -*************************************************************** Memory I/O || totalBits > 64 - 7 - LLFSELog + MLFSELog + OffFSELog Then BIT_reloadDStream( & DStream)
1236  pos = pos + litLength
1237  match = base + pos - offset
1238  If offset > pos Then match += gotoDict
1240  pos = pos + matchLength
1244  FSE_updateState( & stateLL, & DStream)
1245  FSE_updateState( & stateML, & DStream)
1246  If -*************************************************************** Memory I/O Then BIT_reloadDStream( & DStream)
1248  FSE_updateState( & stateOffb, & DStream)
1250  Return seq
Caller
NameDescribe
ZSTD_decodeSequenceLong