函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:lzogeneric1x_1_compress

函数原型:int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len, void *wrkmem, const unsigned char bitstream_version)

返回类型:int

参数:

类型参数名称
const unsigned char *in
size_tin_len
unsigned char *out
size_t *out_len
void *wrkmem
const unsigned charbitstream_version
295  ip等于in
296  op等于out
298  l等于in_len
299  t等于0
300  state_offset等于负2
305  如果bitstream_version大于0则
306  op自加等于17
307  op自加等于bitstream_version
308  m4_max_offset等于M4_MAX_OFFSET_V1
309  否则
310  m4_max_offset等于M4_MAX_OFFSET_V0
313  data_start等于op
315 l大于20循环
316  ll等于如果l小于等于m4_max_offset加1则l否则m4_max_offset加1
317  ll_end等于ipll
318  如果ll_endtll右移5位的值小于等于ll_end退出
320  BUILD_BUG_ON - break compile if a condition is true(D_SIZE * lzo_dict_t的长度 > LZO Public Kernel Interface* A mini subset of the LZO real-time data compression library* Copyright (C) 1996-2012 Markus F)
321  memset(wrkmem, 0, D_SIZE * lzo_dict_t的长度)
322  t等于lzo1x_1_do_compress(ip, ll, op, out_len, t, wrkmem, & state_offset, bitstream_version)
324  ip加等于ll
325  op加等于out_len
326  l减等于ll
328  t加等于l
330  如果t大于0则
331  ii等于inin_lent
333  如果op恒等于data_startt小于等于238则
334  op自加等于17加t
335  否则如果t小于等于3则
336  op[state_offset]或等于t
337  否则如果t小于等于18则
338  op自加等于t减3
339  否则
340  tt等于t减18
341  op自加等于0
342 tt大于255循环
343  tt减等于255
344  op自加等于0
346  op自加等于tt
348  如果t大于等于16则循环
349  COPY8(op, ii)
350  COPY8(op + 8, ii + 8)
351  op加等于16
352  ii加等于16
353  t减等于16
354 t大于等于16循环
355  如果t大于0则循环
356  op自加等于ii自加
357 t先自减大于0循环
360  op自加等于M4_MARKER按位或1
361  op自加等于0
362  op自加等于0
364  out_len等于opout
365  返回:Return values (< 0 = Error)
调用者
名称描述
lzo1x_1_compress
lzorle1x_1_compress