Function report |
Source Code:lib\lzo\lzo1x_compress.c |
Create Date:2022-07-28 07:00:12 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:lzo1x_1_do_compress
Proto:static noinline size_t lzo1x_1_do_compress(const unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len, size_t ti, void *wrkmem, signed char *state_offset, const unsigned char bitstream_version)
Type:size_t
Parameter:
Type | Parameter | Name |
---|---|---|
const unsigned char * | in | |
size_t | in_len | |
unsigned char * | out | |
size_t * | out_len | |
size_t | ti | |
void * | wrkmem | |
signed char * | state_offset | |
const unsigned char | bitstream_version |
39 | cycle |
40 | const unsigned char * m_pos = NULL |
43 | run_length = 0 |
44 | literal : |
46 | next : |
47 | If Value for the false possibility is greater at compile time(ip >= ip_end) Then Break |
49 | dv = get_unaligned_le32(ip) |
51 | If dv == 0 && bitstream_version Then |
53 | limit = If ip_end < ip + MAX_ZERO_RUN_LENGTH + 1 Then ip_end Else ip + MAX_ZERO_RUN_LENGTH + 1 |
85 | ir++ |
86 | If IS_ALIGNED((uintptr_t)ir, 4) Then |
102 | When Value is more likely to compile time(ir < limit) && Value for the false possibility is greater at compile time( * ir == 0) cycle |
103 | ir++ |
104 | run_length = ir - ip |
105 | If run_length > MAX_ZERO_RUN_LENGTH Then run_length = MAX_ZERO_RUN_LENGTH |
107 | Else |
110 | dict[t] = (lzo_dict_t)(ip - in) |
111 | If Value for the false possibility is greater at compile time(dv != get_unaligned_le32(m_pos)) Then Go to literal |
116 | ti = 0 |
118 | If t != 0 Then |
154 | ip += run_length |
155 | run_length -= MIN_ZERO_RUN_LENGTH |
156 | put_unaligned_le32((run_length << 21) | 0xfffc18 | (run_length & 0x7), op) |
158 | op += 4 |
159 | run_length = 0 |
160 | state_offset = -3 |
161 | Go to finished_writing_instruction |
164 | m_len = 4 |
212 | If Value for the false possibility is greater at compile time(ip[m_len] == m_pos[m_len]) Then |
242 | m_len_done : |
246 | If m_len <= M2_MAX_LEN && m_off <= M2_MAX_OFFSET Then |
250 | Else if m_off <= M3_MAX_OFFSET Then |
251 | m_off -= 1 |
252 | If m_len <= M3_MAX_LEN Then op++ = M3_MARKER | m_len - 2 |
254 | Else |
255 | m_len -= M3_MAX_LEN |
257 | When Value for the false possibility is greater at compile time(m_len > 255) cycle |
265 | Else |
266 | m_off -= 0x4000 |
270 | Else |
271 | m_len -= M4_MAX_LEN |
273 | When Value for the false possibility is greater at compile time(m_len > 255) cycle |
282 | state_offset = -2 |
285 | Go to next |
Name | Describe |
---|---|
lzogeneric1x_1_compress |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |