Lines Matching refs:br

389   } br;
447 static uint32_t membr_next_rarvm_number(struct memory_bit_reader *br);
448 static inline uint32_t membr_bits(struct memory_bit_reader *br, int bits);
449 static int membr_fill(struct memory_bit_reader *br, int bits);
462 #define rar_br_has(br, n) ((br)->cache_avail >= n)
464 #define rar_br_bits(br, n) \
465 (((uint32_t)((br)->cache_buffer >> \
466 ((br)->cache_avail - (n)))) & cache_masks[n])
467 #define rar_br_bits_forced(br, n) \
468 (((uint32_t)((br)->cache_buffer << \
469 ((n) - (br)->cache_avail))) & cache_masks[n])
474 #define rar_br_read_ahead(a, br, n) \
475 ((rar_br_has(br, (n)) || rar_br_fillup(a, br)) || rar_br_has(br, (n)))
477 #define rar_br_consume(br, n) ((br)->cache_avail -= (n))
478 #define rar_br_consume_unalined_bits(br) ((br)->cache_avail &= ~7)
500 rar_br_fillup(struct archive_read *a, struct rar_br *br)
503 int n = CACHE_BITS - br->cache_avail;
508 if (br->avail_in >= 8) {
509 br->cache_buffer =
510 ((uint64_t)br->next_in[0]) << 56 |
511 ((uint64_t)br->next_in[1]) << 48 |
512 ((uint64_t)br->next_in[2]) << 40 |
513 ((uint64_t)br->next_in[3]) << 32 |
514 ((uint32_t)br->next_in[4]) << 24 |
515 ((uint32_t)br->next_in[5]) << 16 |
516 ((uint32_t)br->next_in[6]) << 8 |
517 (uint32_t)br->next_in[7];
518 br->next_in += 8;
519 br->avail_in -= 8;
520 br->cache_avail += 8 * 8;
527 if (br->avail_in >= 7) {
528 br->cache_buffer =
529 (br->cache_buffer << 56) |
530 ((uint64_t)br->next_in[0]) << 48 |
531 ((uint64_t)br->next_in[1]) << 40 |
532 ((uint64_t)br->next_in[2]) << 32 |
533 ((uint32_t)br->next_in[3]) << 24 |
534 ((uint32_t)br->next_in[4]) << 16 |
535 ((uint32_t)br->next_in[5]) << 8 |
536 (uint32_t)br->next_in[6];
537 br->next_in += 7;
538 br->avail_in -= 7;
539 br->cache_avail += 7 * 8;
546 if (br->avail_in >= 6) {
547 br->cache_buffer =
548 (br->cache_buffer << 48) |
549 ((uint64_t)br->next_in[0]) << 40 |
550 ((uint64_t)br->next_in[1]) << 32 |
551 ((uint32_t)br->next_in[2]) << 24 |
552 ((uint32_t)br->next_in[3]) << 16 |
553 ((uint32_t)br->next_in[4]) << 8 |
554 (uint32_t)br->next_in[5];
555 br->next_in += 6;
556 br->avail_in -= 6;
557 br->cache_avail += 6 * 8;
570 if (br->avail_in <= 0) {
578 br->next_in = rar_read_ahead(a, 1, &(br->avail_in));
579 if (br->next_in == NULL)
581 if (br->avail_in == 0)
584 br->cache_buffer =
585 (br->cache_buffer << 8) | *br->next_in++;
586 br->avail_in--;
587 br->cache_avail += 8;
595 rar_br_preparation(struct archive_read *a, struct rar_br *br)
600 br->next_in = rar_read_ahead(a, 1, &(br->avail_in));
601 if (br->next_in == NULL) {
607 if (br->cache_avail == 0)
608 (void)rar_br_fillup(a, br);
713 struct rar_br *br = &(rar->br);
715 if (!rar_br_read_ahead(a, br, 8))
722 b = rar_br_bits(br, 8);
723 rar_br_consume(br, 8);
1752 rar->br.cache_avail = 0;
1753 rar->br.avail_in = 0;
2088 if (!rar->br.next_in &&
2089 (ret = rar_br_preparation(a, &(rar->br))) < ARCHIVE_WARN)
2245 struct rar_br *br = &(rar->br);
2250 rar_br_consume_unalined_bits(br);
2253 if (!rar_br_read_ahead(a, br, 1))
2255 if ((rar->is_ppmd_block = rar_br_bits(br, 1)) != 0)
2257 rar_br_consume(br, 1);
2258 if (!rar_br_read_ahead(a, br, 7))
2260 ppmd_flags = rar_br_bits(br, 7);
2261 rar_br_consume(br, 7);
2266 if (!rar_br_read_ahead(a, br, 8))
2268 rar->dictionary_size = (rar_br_bits(br, 8) + 1) << 20;
2269 rar_br_consume(br, 8);
2274 if (!rar_br_read_ahead(a, br, 8))
2276 rar->ppmd_escape = rar->ppmd7_context.InitEsc = rar_br_bits(br, 8);
2277 rar_br_consume(br, 8);
2344 rar_br_consume(br, 1);
2347 if (!rar_br_read_ahead(a, br, 1))
2349 if (!rar_br_bits(br, 1))
2351 rar_br_consume(br, 1);
2356 if (!rar_br_read_ahead(a, br, 4))
2358 bitlengths[i++] = rar_br_bits(br, 4);
2359 rar_br_consume(br, 4);
2362 if (!rar_br_read_ahead(a, br, 4))
2364 zerocount = rar_br_bits(br, 4);
2365 rar_br_consume(br, 4);
2407 if (!rar_br_read_ahead(a, br, 3)) {
2412 n = rar_br_bits(br, 3) + 3;
2413 rar_br_consume(br, 3);
2415 if (!rar_br_read_ahead(a, br, 7)) {
2420 n = rar_br_bits(br, 7) + 11;
2421 rar_br_consume(br, 7);
2433 if (!rar_br_read_ahead(a, br, 3)) {
2438 n = rar_br_bits(br, 3) + 3;
2439 rar_br_consume(br, 3);
2441 if (!rar_br_read_ahead(a, br, 7)) {
2446 n = rar_br_bits(br, 7) + 11;
2447 rar_br_consume(br, 7);
2541 struct rar_br *br;
2550 br = &(rar->br);
2553 if (!rar_br_read_ahead(a, br, code->tablesize)) {
2559 bits = rar_br_bits(br, code->tablesize);
2574 rar_br_consume(br, length);
2579 rar_br_consume(br, code->tablesize);
2585 if (!rar_br_read_ahead(a, br, 1)) {
2591 bit = rar_br_bits(br, 1);
2592 rar_br_consume(br, 1);
2889 struct rar_br *br = &(rar->br);
2915 if (!rar_br_read_ahead(a, br, 1))
2917 newfile = !rar_br_bits(br, 1);
2918 rar_br_consume(br, 1);
2923 if (!rar_br_read_ahead(a, br, 1))
2925 rar->start_new_table = rar_br_bits(br, 1);
2926 rar_br_consume(br, 1);
2962 if (!rar_br_read_ahead(a, br, lengthbits[lensymbol]))
2964 len += rar_br_bits(br, lengthbits[lensymbol]);
2965 rar_br_consume(br, lengthbits[lensymbol]);
2976 if (!rar_br_read_ahead(a, br, shortbits[symbol-263]))
2978 offs += rar_br_bits(br, shortbits[symbol-263]);
2979 rar_br_consume(br, shortbits[symbol-263]);
2994 if (!rar_br_read_ahead(a, br, lengthbits[symbol-271]))
2996 len += rar_br_bits(br, lengthbits[symbol-271]);
2997 rar_br_consume(br, lengthbits[symbol-271]);
3010 if (!rar_br_read_ahead(a, br, offsetbits[offssymbol] - 4))
3012 offs += rar_br_bits(br, offsetbits[offssymbol] - 4) << 4;
3013 rar_br_consume(br, offsetbits[offssymbol] - 4);
3039 if (!rar_br_read_ahead(a, br, offsetbits[offssymbol]))
3041 offs += rar_br_bits(br, offsetbits[offssymbol]);
3042 rar_br_consume(br, offsetbits[offssymbol]);
3184 struct memory_bit_reader br = { 0 };
3194 br.bytes = bytes;
3195 br.length = length;
3203 num = membr_next_rarvm_number(&br);
3227 blockstartpos = membr_next_rarvm_number(&br) + (size_t)lzss_position(&rar->lzss);
3231 blocklength = membr_next_rarvm_number(&br);
3242 uint8_t mask = (uint8_t)membr_bits(&br, 7);
3245 registers[i] = membr_next_rarvm_number(&br);
3250 uint32_t len = membr_next_rarvm_number(&br);
3260 bytecode[i] = (uint8_t)membr_bits(&br, 8);
3278 globaldatalen = membr_next_rarvm_number(&br);
3285 globaldata[i + PROGRAM_SYSTEM_GLOBAL_SIZE] = (uint8_t)membr_bits(&br, 8);
3288 if (br.at_eof)
3434 struct memory_bit_reader br = { 0 };
3446 br.bytes = bytes;
3447 br.length = length;
3448 br.offset = 1;
3455 if (membr_bits(&br, 1))
3457 prog->staticdatalen = membr_next_rarvm_number(&br) + 1;
3465 prog->staticdata[i] = (uint8_t)membr_bits(&br, 8);
3505 membr_next_rarvm_number(struct memory_bit_reader *br)
3508 switch (membr_bits(br, 2))
3511 return membr_bits(br, 4);
3513 val = membr_bits(br, 8);
3516 return 0xFFFFFF00 | (val << 4) | membr_bits(br, 4);
3518 return membr_bits(br, 16);
3520 return membr_bits(br, 32);
3525 membr_bits(struct memory_bit_reader *br, int bits)
3527 if (bits > br->available && (br->at_eof || !membr_fill(br, bits)))
3529 return (uint32_t)((br->bits >> (br->available -= bits)) & (((uint64_t)1 << bits) - 1));
3533 membr_fill(struct memory_bit_reader *br, int bits)
3535 while (br->available < bits && br->offset < br->length)
3537 br->bits = (br->bits << 8) | br->bytes[br->offset++];
3538 br->available += 8;
3540 if (bits > br->available)
3542 br->at_eof = 1;
3798 struct rar_br *br = &(rar->br);
3799 if (!rar_br_read_ahead(a, br, 8))
3801 *byte = (uint8_t)rar_br_bits(br, 8);
3802 rar_br_consume(br, 8);