X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fcomp.h;h=a40dbca0f7ab5ef33e7e6a6602fd067ddcfc350a;hb=87a0d455554a9e06bc47457981e370c06b9bcbac;hp=c60fd886e3ea17d112c499cce015b13555971444;hpb=6f77434ea6ff1407603410e28d1edb966c40e568;p=wimlib diff --git a/src/comp.h b/src/comp.h index c60fd886..a40dbca0 100644 --- a/src/comp.h +++ b/src/comp.h @@ -35,9 +35,9 @@ struct output_bitstream { static inline int bitstream_put_byte(struct output_bitstream *ostream, - u8 n) + u8 n) { - if (ostream->num_bytes_remaining == 0) + if (ostream->num_bytes_remaining < 1) return 1; *ostream->output = n; ostream->output++; @@ -46,11 +46,11 @@ static inline int bitstream_put_byte(struct output_bitstream *ostream, } static inline int bitstream_put_two_bytes(struct output_bitstream *ostream, - u16 n) + u16 n) { if (ostream->num_bytes_remaining < 2) return 1; - *(u16*)ostream->output = to_le16(n); + *(u16*)ostream->output = cpu_to_le16(n); ostream->output += 2; ostream->num_bytes_remaining -= 2; return 0; @@ -66,30 +66,30 @@ struct lz_params { uint max_lazy_match; uint too_far; }; - + typedef uint (*lz_record_match_t)(uint, uint, void *, void *); typedef uint (*lz_record_literal_t)(u8, void *); -extern uint lz_analyze_block(const u8 uncompressed_data[], +extern uint lz_analyze_block(const u8 uncompressed_data[], uint uncompressed_len, - u32 match_tab[], + u32 match_tab[], lz_record_match_t record_match, - lz_record_literal_t record_literal, + lz_record_literal_t record_literal, void *record_match_arg1, - void *record_match_arg2, + void *record_match_arg2, void *record_literal_arg, const struct lz_params *params); -extern int bitstream_put_bits(struct output_bitstream *ostream, +extern int bitstream_put_bits(struct output_bitstream *ostream, output_bitbuf_t bits, unsigned num_bits); extern void init_output_bitstream(struct output_bitstream *ostream, - void *data, unsigned num_bytes); + void *data, unsigned num_bytes); extern int flush_output_bitstream(struct output_bitstream *ostream); -extern void make_canonical_huffman_code(uint num_syms, uint max_codeword_len, - const u32 freq_tab[], u8 lens[], +extern void make_canonical_huffman_code(uint num_syms, uint max_codeword_len, + const u32 freq_tab[], u8 lens[], u16 codewords[]); #endif /* _WIMLIB_COMP_H */