1 #ifndef CLIB_LZMA_PROTOS_H
    2 #define CLIB_LZMA_PROTOS_H
    3 
    4 /*
    5 	lzma.library C prototypes
    6 
    7 	Copyright © 2010 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef LIBRARIES_LZMA_H
   11 # include <libraries/lzma.h>
   12 #endif
   13 
   14 #ifdef __cplusplus
   15 extern "C" {
   16 #endif
   17 
   18 uint32_t lzma_version_number(void);
   19 const char * lzma_version_string(void);
   20 
   21 lzma_ret lzma_code(lzma_stream *strm, lzma_action action);
   22 void lzma_end(lzma_stream *strm);
   23 void lzma_get_progress(lzma_stream *strm,
   24 		uint64_t *progress_in, uint64_t *progress_out);
   25 uint64_t lzma_memusage(const lzma_stream *strm);
   26 uint64_t lzma_memlimit_get(const lzma_stream *strm);
   27 lzma_ret lzma_memlimit_set(
   28 		lzma_stream *strm, uint64_t memlimit);
   29 
   30 lzma_ret lzma_vli_encode(lzma_vli vli, size_t *vli_pos,
   31 		uint8_t *out, size_t *out_pos, size_t out_size);
   32 lzma_ret lzma_vli_decode(lzma_vli *vli, size_t *vli_pos,
   33 		const uint8_t *in, size_t *in_pos, size_t in_size);
   34 uint32_t lzma_vli_size(lzma_vli vli);
   35 
   36 lzma_bool lzma_check_is_supported(lzma_check check);
   37 uint32_t lzma_check_size(lzma_check check);
   38 uint32_t lzma_crc32(
   39 		const uint8_t *buf, size_t size, uint32_t crc);
   40 uint64_t lzma_crc64(
   41 		const uint8_t *buf, size_t size, uint64_t crc);
   42 lzma_check lzma_get_check(const lzma_stream *strm);
   43 
   44 lzma_bool lzma_filter_encoder_is_supported(lzma_vli id);
   45 lzma_bool lzma_filter_decoder_is_supported(lzma_vli id);
   46 lzma_ret lzma_filters_copy(const lzma_filter *src,
   47 		lzma_filter *dest, const lzma_allocator *allocator);
   48 uint64_t lzma_raw_encoder_memusage(const lzma_filter *filters);
   49 uint64_t lzma_raw_decoder_memusage(const lzma_filter *filters);
   50 lzma_ret lzma_raw_encoder(
   51 		lzma_stream *strm, const lzma_filter *filters);
   52 lzma_ret lzma_raw_decoder(
   53 		lzma_stream *strm, const lzma_filter *filters);
   54 lzma_ret lzma_filters_update(
   55 		lzma_stream *strm, const lzma_filter *filters);
   56 lzma_ret lzma_raw_buffer_encode(
   57 		const lzma_filter *filters, const lzma_allocator *allocator,
   58 		const uint8_t *in, size_t in_size, uint8_t *out,
   59 		size_t *out_pos, size_t out_size);
   60 lzma_ret lzma_raw_buffer_decode(
   61 		const lzma_filter *filters, const lzma_allocator *allocator,
   62 		const uint8_t *in, size_t *in_pos, size_t in_size,
   63 		uint8_t *out, size_t *out_pos, size_t out_size);
   64 lzma_ret lzma_properties_size(
   65 		uint32_t *size, const lzma_filter *filter);
   66 lzma_ret lzma_properties_encode(
   67 		const lzma_filter *filter, uint8_t *props);
   68 lzma_ret lzma_properties_decode(
   69 		lzma_filter *filter, const lzma_allocator *allocator,
   70 		const uint8_t *props, size_t props_size);
   71 lzma_ret lzma_filter_flags_size(
   72 		uint32_t *size, const lzma_filter *filters);
   73 lzma_ret lzma_filter_flags_encode(const lzma_filter *filters,
   74 		uint8_t *out, size_t *out_pos, size_t out_size);
   75 lzma_ret lzma_filter_flags_decode(
   76 		lzma_filter *filters, const lzma_allocator *allocator,
   77 		const uint8_t *in, size_t *in_pos, size_t in_size);
   78 
   79 lzma_bool lzma_mf_is_supported(lzma_match_finder match_finder);
   80 lzma_bool lzma_mode_is_supported(lzma_mode mode);
   81 lzma_bool lzma_lzma_preset(
   82 		lzma_options_lzma *options, uint32_t preset);
   83 
   84 uint64_t lzma_easy_encoder_memusage(uint32_t preset);
   85 uint64_t lzma_easy_decoder_memusage(uint32_t preset);
   86 lzma_ret lzma_easy_encoder(
   87 		lzma_stream *strm, uint32_t preset, lzma_check check);
   88 lzma_ret lzma_easy_buffer_encode(
   89 		uint32_t preset, lzma_check check,
   90 		const lzma_allocator *allocator, const uint8_t *in, size_t in_size,
   91 		uint8_t *out, size_t *out_pos, size_t out_size);
   92 lzma_ret lzma_stream_encoder(lzma_stream *strm,
   93 		const lzma_filter *filters, lzma_check check);
   94 uint64_t lzma_stream_encoder_mt_memusage(
   95 		const lzma_mt *options);
   96 lzma_ret lzma_stream_encoder_mt(
   97 		lzma_stream *strm, const lzma_mt *options);
   98 lzma_ret lzma_alone_encoder(
   99 		lzma_stream *strm, const lzma_options_lzma *options);
  100 size_t lzma_stream_buffer_bound(size_t uncompressed_size);
  101 lzma_ret lzma_stream_buffer_encode(
  102 		lzma_filter *filters, lzma_check check,
  103 		const lzma_allocator *allocator, const uint8_t *in, size_t in_size,
  104 		uint8_t *out, size_t *out_pos, size_t out_size);
  105 lzma_ret lzma_stream_decoder(
  106 		lzma_stream *strm, uint64_t memlimit, uint32_t flags);
  107 lzma_ret lzma_auto_decoder(
  108 		lzma_stream *strm, uint64_t memlimit, uint32_t flags);
  109 lzma_ret lzma_alone_decoder(
  110 		lzma_stream *strm, uint64_t memlimit);
  111 lzma_ret lzma_stream_buffer_decode(
  112 		uint64_t *memlimit, uint32_t flags, const lzma_allocator *allocator,
  113 		const uint8_t *in, size_t *in_pos, size_t in_size,
  114 		uint8_t *out, size_t *out_pos, size_t out_size);
  115 
  116 lzma_ret lzma_stream_header_encode(
  117 		const lzma_stream_flags *options, uint8_t *out);
  118 lzma_ret lzma_stream_footer_encode(
  119 		const lzma_stream_flags *options, uint8_t *out);
  120 lzma_ret lzma_stream_header_decode(
  121 		lzma_stream_flags *options, const uint8_t *in);
  122 lzma_ret lzma_stream_footer_decode(
  123 		lzma_stream_flags *options, const uint8_t *in);
  124 lzma_ret lzma_stream_flags_compare(
  125 		const lzma_stream_flags *a, const lzma_stream_flags *b);
  126 
  127 lzma_ret lzma_block_header_size(lzma_block *block);
  128 lzma_ret lzma_block_header_encode(
  129 		const lzma_block *block, uint8_t *out);
  130 lzma_ret lzma_block_header_decode(lzma_block *block,
  131 		const lzma_allocator *allocator, const uint8_t *in);
  132 lzma_ret lzma_block_compressed_size(
  133 		lzma_block *block, lzma_vli unpadded_size);
  134 lzma_vli lzma_block_unpadded_size(const lzma_block *block);
  135 lzma_vli lzma_block_total_size(const lzma_block *block);
  136 lzma_ret lzma_block_encoder(
  137 		lzma_stream *strm, lzma_block *block);
  138 lzma_ret lzma_block_decoder(
  139 		lzma_stream *strm, lzma_block *block);
  140 size_t lzma_block_buffer_bound(size_t uncompressed_size);
  141 lzma_ret lzma_block_buffer_encode(
  142 		lzma_block *block, const lzma_allocator *allocator,
  143 		const uint8_t *in, size_t in_size,
  144 		uint8_t *out, size_t *out_pos, size_t out_size);
  145 lzma_ret lzma_block_uncomp_encode(lzma_block *block,
  146                 const uint8_t *in, size_t in_size,
  147                 uint8_t *out, size_t *out_pos, size_t out_size);
  148 lzma_ret lzma_block_buffer_decode(
  149 		lzma_block *block, const lzma_allocator *allocator,
  150 		const uint8_t *in, size_t *in_pos, size_t in_size,
  151 		uint8_t *out, size_t *out_pos, size_t out_size);
  152 
  153 uint64_t lzma_index_memusage(
  154 		lzma_vli streams, lzma_vli blocks);
  155 uint64_t lzma_index_memused(const lzma_index *i);
  156 lzma_index * lzma_index_init(const lzma_allocator *allocator);
  157 void lzma_index_end(lzma_index *i, const lzma_allocator *allocator);
  158 lzma_ret lzma_index_append(
  159 		lzma_index *i, const lzma_allocator *allocator,
  160 		lzma_vli unpadded_size, lzma_vli uncompressed_size);
  161 lzma_ret lzma_index_stream_flags(
  162 		lzma_index *i, const lzma_stream_flags *stream_flags);
  163 uint32_t lzma_index_checks(const lzma_index *i);
  164 lzma_ret lzma_index_stream_padding(
  165 		lzma_index *i, lzma_vli stream_padding);
  166 lzma_vli lzma_index_stream_count(const lzma_index *i);
  167 lzma_vli lzma_index_block_count(const lzma_index *i);
  168 lzma_vli lzma_index_size(const lzma_index *i);
  169 lzma_vli lzma_index_stream_size(const lzma_index *i);
  170 lzma_vli lzma_index_total_size(const lzma_index *i);
  171 lzma_vli lzma_index_file_size(const lzma_index *i);
  172 lzma_vli lzma_index_uncompressed_size(const lzma_index *i);
  173 void lzma_index_iter_init(
  174 		lzma_index_iter *iter, const lzma_index *i);
  175 void lzma_index_iter_rewind(lzma_index_iter *iter);
  176 lzma_bool lzma_index_iter_next(
  177 		lzma_index_iter *iter, lzma_index_iter_mode mode);
  178 lzma_bool lzma_index_iter_locate(
  179 		lzma_index_iter *iter, lzma_vli target);
  180 lzma_ret lzma_index_cat(lzma_index *dest, lzma_index *src,
  181 		const lzma_allocator *allocator);
  182 lzma_index * lzma_index_dup(
  183 		const lzma_index *i, const lzma_allocator *allocator);
  184 lzma_ret lzma_index_encoder(
  185 		lzma_stream *strm, const lzma_index *i);
  186 lzma_ret lzma_index_decoder(
  187 		lzma_stream *strm, lzma_index **i, uint64_t memlimit);
  188 lzma_ret lzma_index_buffer_encode(const lzma_index *i,
  189 		uint8_t *out, size_t *out_pos, size_t out_size);
  190 lzma_ret lzma_index_buffer_decode(lzma_index **i,
  191 		uint64_t *memlimit, const lzma_allocator *allocator,
  192 		const uint8_t *in, size_t *in_pos, size_t in_size);
  193 
  194 lzma_index_hash * lzma_index_hash_init(
  195 		lzma_index_hash *index_hash, const lzma_allocator *allocator);
  196 void lzma_index_hash_end(
  197 		lzma_index_hash *index_hash, const lzma_allocator *allocator);
  198 lzma_ret lzma_index_hash_append(lzma_index_hash *index_hash,
  199 		lzma_vli unpadded_size, lzma_vli uncompressed_size);
  200 lzma_ret lzma_index_hash_decode(lzma_index_hash *index_hash,
  201 		const uint8_t *in, size_t *in_pos, size_t in_size);
  202 lzma_vli lzma_index_hash_size(
  203 		const lzma_index_hash *index_hash);
  204 
  205 uint64_t lzma_physmem(void);
  206 uint32_t lzma_cputhreads(void);
  207 
  208 
  209 lzma_ret lzma_EasyGetSize(
  210 		const void *src, size_t srclen, int64_t *size);
  211 lzma_ret lzma_EasyDecode(
  212 		void *dest, size_t *destlen, const void *src,
  213 		size_t srclen, const lzma_allocator *allocator);
  214 
  215 #ifdef __cplusplus
  216 }
  217 #endif
  218 
  219 #endif /* CLIB_LZMA_PROTOS_H */