Lines Matching defs:buf
56 /* Amount of already filtered data in the beginning of buf */
59 /* Total amount of data currently stored in buf */
74 uint8_t buf[16];
88 static size_t bcj_x86(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
108 if ((buf[i] & 0xFE) != 0xE8)
117 b = buf[i + 4 - mask_to_bit_num[prev_mask]];
129 if (bcj_x86_test_msbyte(buf[i + 4])) {
130 src = get_unaligned_le32(buf + i + 1);
146 put_unaligned_le32(dest, buf + i + 1);
160 static size_t bcj_powerpc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
166 instr = get_unaligned_be32(buf + i);
172 put_unaligned_be32(instr, buf + i);
181 static size_t bcj_ia64(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
223 mask = branch_table[buf[i] & 0x1F];
232 instr |= (uint64_t)(buf[i + j + byte_pos])
254 buf[i + j + byte_pos]
265 static size_t bcj_arm(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
271 if (buf[i + 3] == 0xEB) {
272 addr = (uint32_t)buf[i] | ((uint32_t)buf[i + 1] << 8)
273 | ((uint32_t)buf[i + 2] << 16);
277 buf[i] = (uint8_t)addr;
278 buf[i + 1] = (uint8_t)(addr >> 8);
279 buf[i + 2] = (uint8_t)(addr >> 16);
288 static size_t bcj_armthumb(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
294 if ((buf[i + 1] & 0xF8) == 0xF0
295 && (buf[i + 3] & 0xF8) == 0xF8) {
296 addr = (((uint32_t)buf[i + 1] & 0x07) << 19)
297 | ((uint32_t)buf[i] << 11)
298 | (((uint32_t)buf[i + 3] & 0x07) << 8)
299 | (uint32_t)buf[i + 2];
303 buf[i + 1] = (uint8_t)(0xF0 | ((addr >> 19) & 0x07));
304 buf[i] = (uint8_t)(addr >> 11);
305 buf[i + 3] = (uint8_t)(0xF8 | ((addr >> 8) & 0x07));
306 buf[i + 2] = (uint8_t)addr;
316 static size_t bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
322 instr = get_unaligned_be32(buf + i);
329 put_unaligned_be32(instr, buf + i);
346 uint8_t *buf, size_t *pos, size_t size)
350 buf += *pos;
356 filtered = bcj_x86(s, buf, size);
361 filtered = bcj_powerpc(s, buf, size);
366 filtered = bcj_ia64(s, buf, size);
371 filtered = bcj_arm(s, buf, size);
376 filtered = bcj_armthumb(s, buf, size);
381 filtered = bcj_sparc(s, buf, size);
404 memcpy(b->out + b->out_pos, s->temp.buf, copy_size);
409 memmove(s->temp.buf, s->temp.buf + copy_size, s->temp.size);
451 memcpy(b->out + b->out_pos, s->temp.buf, s->temp.size);
471 memcpy(s->temp.buf, b->out + b->out_pos, s->temp.size);
495 b->out = s->temp.buf;
497 b->out_size = sizeof(s->temp.buf);
509 bcj_apply(s, s->temp.buf, &s->temp.filtered, s->temp.size);