* function pointers are declared specially in the headers.
*/
#ifdef _WIN32
-# define LZMA_API_CALL __cdecl
# define LZMA_API_IMPORT __declspec(dllimport)
+# define LZMA_API_CALL __cdecl
#else
-# define LZMA_API_CALL
# define LZMA_API_IMPORT
+# define LZMA_API_CALL
#endif
#ifndef LZMA_API
-# define LZMA_API LZMA_API_CALL LZMA_API_IMPORT
+# define LZMA_API(type) LZMA_API_IMPORT type LZMA_API_CALL
#endif
* out what `action' values are supported by the coder. See documentation of
* lzma_ret for the possible return values.
*/
-extern LZMA_API lzma_ret lzma_code(lzma_stream *strm, lzma_action action)
+extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action)
lzma_attr_warn_unused_result;
* stream structure. liblzma doesn't do this, and assumes that
* application knows what it is doing.
*/
-extern LZMA_API void lzma_end(lzma_stream *strm);
+extern LZMA_API(void) lzma_end(lzma_stream *strm);
/**
* If this function isn't supported by *strm or some other error
* occurs, zero is returned.
*/
-extern LZMA_API uint64_t lzma_memusage(const lzma_stream *strm);
+extern LZMA_API(uint64_t) lzma_memusage(const lzma_stream *strm);
/**
* \return On success, the current memory usage limit is returned
* (always non-zero). On error, zero is returned.
*/
-extern LZMA_API uint64_t lzma_memlimit_get(const lzma_stream *strm);
+extern LZMA_API(uint64_t) lzma_memlimit_get(const lzma_stream *strm);
/**
* - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't
* support memory usage limit or memlimit was zero.
*/
-extern LZMA_API lzma_ret lzma_memlimit_set(lzma_stream *strm, uint64_t memlimit);
+extern LZMA_API(lzma_ret) lzma_memlimit_set(
+ lzma_stream *strm, uint64_t memlimit);
* filter chain, consider using lzma_memlimit_encoder() which as
* a side-effect validates the filter chain.
*/
-extern LZMA_API lzma_ret lzma_block_header_size(lzma_block *block)
+extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block)
lzma_attr_warn_unused_result;
* - LZMA_PROG_ERROR: Invalid arguments, for example
* block->header_size is invalid or block->filters is NULL.
*/
-extern LZMA_API lzma_ret lzma_block_header_encode(
+extern LZMA_API(lzma_ret) lzma_block_header_encode(
const lzma_block *block, uint8_t *out)
lzma_attr_warn_unused_result;
* - LZMA_PROG_ERROR: Invalid arguments, for example
* block->header_size is invalid or block->filters is NULL.
*/
-extern LZMA_API lzma_ret lzma_block_header_decode(lzma_block *block,
+extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block,
lzma_allocator *allocator, const uint8_t *in)
lzma_attr_warn_unused_result;
* block->header_size must be a multiple of four and
* between 8 and 1024 inclusive.
*/
-extern LZMA_API lzma_ret lzma_block_compressed_size(
+extern LZMA_API(lzma_ret) lzma_block_compressed_size(
lzma_block *block, lzma_vli unpadded_size)
lzma_attr_warn_unused_result;
*
* \return Unpadded Size on success, or zero on error.
*/
-extern LZMA_API lzma_vli lzma_block_unpadded_size(const lzma_block *block)
+extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block)
lzma_attr_pure;
* \return On success, total encoded size of the Block. On error,
* zero is returned.
*/
-extern LZMA_API lzma_vli lzma_block_total_size(const lzma_block *block)
+extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block)
lzma_attr_pure;
* the encoder failed.
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_block_encoder(
+extern LZMA_API(lzma_ret) lzma_block_encoder(
lzma_stream *strm, lzma_block *block)
lzma_attr_warn_unused_result;
* - LZMA_PROG_ERROR
* - LZMA_MEM_ERROR
*/
-extern LZMA_API lzma_ret lzma_block_decoder(
+extern LZMA_API(lzma_ret) lzma_block_decoder(
lzma_stream *strm, lzma_block *block)
lzma_attr_warn_unused_result;
* This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks.
* See the documentation of lzma_stream_buffer_bound().
*/
-extern LZMA_API size_t lzma_block_buffer_bound(size_t uncompressed_size);
+extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size);
/**
* - LZMA_DATA_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_block_buffer_encode(
+extern LZMA_API(lzma_ret) lzma_block_buffer_encode(
lzma_block *block, lzma_allocator *allocator,
const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
* - LZMA_BUF_ERROR: Output buffer was too small.
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_block_buffer_decode(
+extern LZMA_API(lzma_ret) lzma_block_buffer_decode(
lzma_block *block, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size);
* You can assume that LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always
* supported (even if liblzma is built with limited features).
*/
-extern LZMA_API lzma_bool lzma_check_is_supported(lzma_check check)
+extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check)
lzma_attr_const;
*
* If the argument is not in the range [0, 15], UINT32_MAX is returned.
*/
-extern LZMA_API uint32_t lzma_check_size(lzma_check check) lzma_attr_const;
+extern LZMA_API(uint32_t) lzma_check_size(lzma_check check) lzma_attr_const;
/**
* \return Updated CRC value, which can be passed to this function
* again to continue CRC calculation.
*/
-extern LZMA_API uint32_t lzma_crc32(
+extern LZMA_API(uint32_t) lzma_crc32(
const uint8_t *buf, size_t size, uint32_t crc)
lzma_attr_pure;
*
* This function is used similarly to lzma_crc32(). See its documentation.
*/
-extern LZMA_API uint64_t lzma_crc64(
+extern LZMA_API(uint64_t) lzma_crc64(
const uint8_t *buf, size_t size, uint64_t crc)
lzma_attr_pure;
* returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK.
* Calling this function in any other situation has undefined behavior.
*/
-extern LZMA_API lzma_check lzma_get_check(const lzma_stream *strm);
+extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm);
*
* \param preset Compression preset (level and possible flags)
*/
-extern LZMA_API uint64_t lzma_easy_encoder_memusage(uint32_t preset)
+extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
lzma_attr_pure;
*
* \param preset Compression preset (level and possible flags)
*/
-extern LZMA_API uint64_t lzma_easy_decoder_memusage(uint32_t preset)
+extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
lzma_attr_pure;
* LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future,
* there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.
*/
-extern LZMA_API lzma_ret lzma_easy_encoder(
+extern LZMA_API(lzma_ret) lzma_easy_encoder(
lzma_stream *strm, uint32_t preset, lzma_check check)
lzma_attr_warn_unused_result;
* - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_stream_encoder(lzma_stream *strm,
+extern LZMA_API(lzma_ret) lzma_stream_encoder(lzma_stream *strm,
const lzma_filter *filters, lzma_check check)
lzma_attr_warn_unused_result;
* - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_alone_encoder(
+extern LZMA_API(lzma_ret) lzma_alone_encoder(
lzma_stream *strm, const lzma_options_lzma *options)
lzma_attr_warn_unused_result;
* uncompressible data. Currently there is no function to
* calculate the maximum expansion of multi-call encoding.
*/
-extern LZMA_API size_t lzma_stream_buffer_bound(size_t uncompressed_size);
+extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size);
/**
* - LZMA_DATA_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_stream_buffer_encode(
+extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
lzma_filter *filters, lzma_check check,
lzma_allocator *allocator, const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
* - LZMA_MEM_ERROR: Cannot allocate memory.
* - LZMA_OPTIONS_ERROR: Unsupported flags
*/
-extern LZMA_API lzma_ret lzma_stream_decoder(
+extern LZMA_API(lzma_ret) lzma_stream_decoder(
lzma_stream *strm, uint64_t memlimit, uint32_t flags)
lzma_attr_warn_unused_result;
* - LZMA_MEM_ERROR: Cannot allocate memory.
* - LZMA_OPTIONS_ERROR: Unsupported flags
*/
-extern LZMA_API lzma_ret lzma_auto_decoder(
+extern LZMA_API(lzma_ret) lzma_auto_decoder(
lzma_stream *strm, uint64_t memlimit, uint32_t flags)
lzma_attr_warn_unused_result;
* \return - LZMA_OK
* - LZMA_MEM_ERROR
*/
-extern LZMA_API lzma_ret lzma_alone_decoder(
+extern LZMA_API(lzma_ret) lzma_alone_decoder(
lzma_stream *strm, uint64_t memlimit)
lzma_attr_warn_unused_result;
* - LZMA_BUF_ERROR: Output buffer was too small.
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_stream_buffer_decode(
+extern LZMA_API(lzma_ret) lzma_stream_buffer_decode(
uint64_t *memlimit, uint32_t flags, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
* liblzma version and build. It would be useless, because the application
* couldn't know what kind of options the filter would need.
*/
-extern LZMA_API lzma_bool lzma_filter_encoder_is_supported(lzma_vli id);
+extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id);
/**
* Returns true if the give Filter ID is supported for decoding by this
* liblzma build. Otherwise false is returned.
*/
-extern LZMA_API lzma_bool lzma_filter_decoder_is_supported(lzma_vli id);
+extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id);
/**
* \return Rough number of bytes required for the given filter chain
* when encoding.
*/
-extern LZMA_API uint64_t lzma_raw_encoder_memusage(const lzma_filter *filters)
+extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
lzma_attr_pure;
* \return Rough number of bytes required for the given filter chain
* when decoding.
*/
-extern LZMA_API uint64_t lzma_raw_decoder_memusage(const lzma_filter *filters)
+extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
lzma_attr_pure;
* - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_raw_encoder(
+extern LZMA_API(lzma_ret) lzma_raw_encoder(
lzma_stream *strm, const lzma_filter *filters)
lzma_attr_warn_unused_result;
* - LZMA_OPTIONS_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_raw_decoder(
+extern LZMA_API(lzma_ret) lzma_raw_decoder(
lzma_stream *strm, const lzma_filter *filters)
lzma_attr_warn_unused_result;
* - LZMA_DATA_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_raw_buffer_encode(
+extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
const lzma_filter *filters, lzma_allocator *allocator,
const uint8_t *in, size_t in_size, uint8_t *out,
size_t *out_pos, size_t out_size);
* \param out_size Size of the out buffer; the first byte into
* which no data is written to is out[out_size].
*/
-extern LZMA_API lzma_ret lzma_raw_buffer_decode(
+extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
const lzma_filter *filters, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size);
* that this returns LZMA_OK while the following call to
* lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
*/
-extern LZMA_API lzma_ret lzma_properties_size(
+extern LZMA_API(lzma_ret) lzma_properties_size(
uint32_t *size, const lzma_filter *filter);
* lzma_properties_size() indicated that the size
* of the Filter Properties field is zero.
*/
-extern LZMA_API lzma_ret lzma_properties_encode(
+extern LZMA_API(lzma_ret) lzma_properties_encode(
const lzma_filter *filter, uint8_t *props);
* - LZMA_OPTIONS_ERROR
* - LZMA_MEM_ERROR
*/
-extern LZMA_API lzma_ret lzma_properties_decode(
+extern LZMA_API(lzma_ret) lzma_properties_decode(
lzma_filter *filter, lzma_allocator *allocator,
const uint8_t *props, size_t props_size);
* \note If you need to calculate size of List of Filter Flags,
* you need to loop over every lzma_filter entry.
*/
-extern LZMA_API lzma_ret lzma_filter_flags_size(
+extern LZMA_API(lzma_ret) lzma_filter_flags_size(
uint32_t *size, const lzma_filter *filters)
lzma_attr_warn_unused_result;
* buffer space (you should have checked it with
* lzma_filter_flags_size()).
*/
-extern LZMA_API lzma_ret lzma_filter_flags_encode(const lzma_filter *filters,
+extern LZMA_API(lzma_ret) lzma_filter_flags_encode(const lzma_filter *filters,
uint8_t *out, size_t *out_pos, size_t out_size)
lzma_attr_warn_unused_result;
* - LZMA_MEM_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_filter_flags_decode(
+extern LZMA_API(lzma_ret) lzma_filter_flags_decode(
lzma_filter *filters, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
lzma_attr_warn_unused_result;
* If you want to know how much memory an existing lzma_index structure is
* using, use lzma_index_memusage(lzma_index_count(i)).
*/
-extern LZMA_API uint64_t lzma_index_memusage(lzma_vli record_count);
+extern LZMA_API(uint64_t) lzma_index_memusage(lzma_vli record_count);
/**
* In this case, return value cannot be NULL or a different pointer than
* the i that was given as an argument.
*/
-extern LZMA_API lzma_index *lzma_index_init(
+extern LZMA_API(lzma_index *) lzma_index_init(
lzma_index *i, lzma_allocator *allocator)
lzma_attr_warn_unused_result;
*
* If i is NULL, this does nothing.
*/
-extern LZMA_API void lzma_index_end(lzma_index *i, lzma_allocator *allocator);
+extern LZMA_API(void) lzma_index_end(lzma_index *i, lzma_allocator *allocator);
/**
* Stream or size of the Index field would grow too big.
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_index_append(
+extern LZMA_API(lzma_ret) lzma_index_append(
lzma_index *i, lzma_allocator *allocator,
lzma_vli unpadded_size, lzma_vli uncompressed_size)
lzma_attr_warn_unused_result;
/**
* \brief Get the number of Records
*/
-extern LZMA_API lzma_vli lzma_index_count(const lzma_index *i) lzma_attr_pure;
+extern LZMA_API(lzma_vli) lzma_index_count(const lzma_index *i) lzma_attr_pure;
/**
*
* This is needed to verify the Backward Size field in the Stream Footer.
*/
-extern LZMA_API lzma_vli lzma_index_size(const lzma_index *i) lzma_attr_pure;
+extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i) lzma_attr_pure;
/**
* This doesn't include the Stream Header, Stream Footer, Stream Padding,
* or Index fields.
*/
-extern LZMA_API lzma_vli lzma_index_total_size(const lzma_index *i)
+extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i)
lzma_attr_pure;
* If multiple Indexes have been combined, this works as if the Blocks
* were in a single Stream.
*/
-extern LZMA_API lzma_vli lzma_index_stream_size(const lzma_index *i)
+extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i)
lzma_attr_pure;
* combined, this includes also the headers of each separate Stream and the
* possible Stream Padding fields.
*/
-extern LZMA_API lzma_vli lzma_index_file_size(const lzma_index *i)
+extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i)
lzma_attr_pure;
/**
* \brief Get the uncompressed size of the Stream
*/
-extern LZMA_API lzma_vli lzma_index_uncompressed_size(const lzma_index *i)
+extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
lzma_attr_pure;
/**
* \brief Get the next Record from the Index
*/
-extern LZMA_API lzma_bool lzma_index_read(
+extern LZMA_API(lzma_bool) lzma_index_read(
lzma_index *i, lzma_index_record *record)
lzma_attr_warn_unused_result;
* Rewind the Index so that next call to lzma_index_read() will return the
* first Record.
*/
-extern LZMA_API void lzma_index_rewind(lzma_index *i);
+extern LZMA_API(void) lzma_index_rewind(lzma_index *i);
/**
* If target is greater than the uncompressed size of the Stream, *record
* and the read position are not modified, and this function returns true.
*/
-extern LZMA_API lzma_bool lzma_index_locate(
+extern LZMA_API(lzma_bool) lzma_index_locate(
lzma_index *i, lzma_index_record *record, lzma_vli target)
lzma_attr_warn_unused_result;
* - LZMA_MEM_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_index_cat(lzma_index *lzma_restrict dest,
+extern LZMA_API(lzma_ret) lzma_index_cat(lzma_index *lzma_restrict dest,
lzma_index *lzma_restrict src,
lzma_allocator *allocator, lzma_vli padding)
lzma_attr_warn_unused_result;
*
* \return A copy of the Index, or NULL if memory allocation failed.
*/
-extern LZMA_API lzma_index *lzma_index_dup(
+extern LZMA_API(lzma_index *) lzma_index_dup(
const lzma_index *i, lzma_allocator *allocator)
lzma_attr_warn_unused_result;
*
* \return True if *a and *b are equal, false otherwise.
*/
-extern LZMA_API lzma_bool lzma_index_equal(
+extern LZMA_API(lzma_bool) lzma_index_equal(
const lzma_index *a, const lzma_index *b)
lzma_attr_pure;
* - LZMA_MEM_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_index_encoder(lzma_stream *strm, lzma_index *i)
+extern LZMA_API(lzma_ret) lzma_index_encoder(lzma_stream *strm, lzma_index *i)
lzma_attr_warn_unused_result;
* limit is modified after decoding a part of the Index already,
* the new limit may be ignored.
*/
-extern LZMA_API lzma_ret lzma_index_decoder(
+extern LZMA_API(lzma_ret) lzma_index_decoder(
lzma_stream *strm, lzma_index **i, uint64_t memlimit)
lzma_attr_warn_unused_result;
* \note This function doesn't take allocator argument since all
* the internal data is allocated on stack.
*/
-extern LZMA_API lzma_ret lzma_index_buffer_encode(lzma_index *i,
+extern LZMA_API(lzma_ret) lzma_index_buffer_encode(lzma_index *i,
uint8_t *out, size_t *out_pos, size_t out_size);
* - LZMA_DATA_ERROR
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_index_buffer_decode(
+extern LZMA_API(lzma_ret) lzma_index_buffer_decode(
lzma_index **i, uint64_t *memlimit, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size);
* returned. In this case, return value cannot be NULL or a different
* pointer than the index_hash that was given as an argument.
*/
-extern LZMA_API lzma_index_hash *lzma_index_hash_init(
+extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
lzma_index_hash *index_hash, lzma_allocator *allocator)
lzma_attr_warn_unused_result;
/**
* \brief Deallocate lzma_index_hash structure
*/
-extern LZMA_API void lzma_index_hash_end(
+extern LZMA_API(void) lzma_index_hash_end(
lzma_index_hash *index_hash, lzma_allocator *allocator);
* - LZMA_PROG_ERROR: Invalid arguments or this function is being
* used when lzma_index_hash_decode() has already been used.
*/
-extern LZMA_API lzma_ret lzma_index_hash_append(lzma_index_hash *index_hash,
+extern LZMA_API(lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash,
lzma_vli unpadded_size, lzma_vli uncompressed_size)
lzma_attr_warn_unused_result;
* - LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size.
* - LZMA_PROG_ERROR
*/
-extern LZMA_API lzma_ret lzma_index_hash_decode(lzma_index_hash *index_hash,
+extern LZMA_API(lzma_ret) lzma_index_hash_decode(lzma_index_hash *index_hash,
const uint8_t *in, size_t *in_pos, size_t in_size)
lzma_attr_warn_unused_result;
*
* This is needed to verify the Backward Size field in the Stream Footer.
*/
-extern LZMA_API lzma_vli lzma_index_hash_size(
+extern LZMA_API(lzma_vli) lzma_index_hash_size(
const lzma_index_hash *index_hash)
lzma_attr_pure;
* could require giving additional options to the encoder that the older
* match finders don't need.
*/
-extern LZMA_API lzma_bool lzma_mf_is_supported(lzma_match_finder match_finder)
+extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
lzma_attr_const;
* mode, which the application developer wasn't aware, could require giving
* additional options to the encoder that the older modes don't need.
*/
-extern LZMA_API lzma_bool lzma_mode_is_supported(lzma_mode mode)
+extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
lzma_attr_const;
* This function is available only if LZMA1 or LZMA2 encoder has been enabled
* when building liblzma.
*/
-extern LZMA_API lzma_bool lzma_lzma_preset(
+extern LZMA_API(lzma_bool) lzma_lzma_preset(
lzma_options_lzma *options, uint32_t preset);
* this liblzma version.
* - LZMA_PROG_ERROR: Invalid options.
*/
-extern LZMA_API lzma_ret lzma_stream_header_encode(
+extern LZMA_API(lzma_ret) lzma_stream_header_encode(
const lzma_stream_flags *options, uint8_t *out)
lzma_attr_warn_unused_result;
* this liblzma version.
* - LZMA_PROG_ERROR: Invalid options.
*/
-extern LZMA_API lzma_ret lzma_stream_footer_encode(
+extern LZMA_API(lzma_ret) lzma_stream_footer_encode(
const lzma_stream_flags *options, uint8_t *out)
lzma_attr_warn_unused_result;
* LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode()
* when decoding non-first Stream.
*/
-extern LZMA_API lzma_ret lzma_stream_header_decode(
+extern LZMA_API(lzma_ret) lzma_stream_header_decode(
lzma_stream_flags *options, const uint8_t *in)
lzma_attr_warn_unused_result;
* is corrupt (possibly truncated). Stream decoder in liblzma
* uses LZMA_DATA_ERROR in this situation.
*/
-extern LZMA_API lzma_ret lzma_stream_footer_decode(
+extern LZMA_API(lzma_ret) lzma_stream_footer_decode(
lzma_stream_flags *options, const uint8_t *in)
lzma_attr_warn_unused_result;
* - LZMA_PROG_ERROR: Invalid value, e.g. invalid check or
* backward_size.
*/
-extern LZMA_API lzma_ret lzma_stream_flags_compare(
+extern LZMA_API(lzma_ret) lzma_stream_flags_compare(
const lzma_stream_flags *a, const lzma_stream_flags *b)
lzma_attr_pure;
* This allows the application to compare if it was built against the same,
* older, or newer version of liblzma that is currently running.
*/
-extern LZMA_API uint32_t lzma_version_number(void) lzma_attr_const;
+extern LZMA_API(uint32_t) lzma_version_number(void) lzma_attr_const;
/**
* This function may be useful if you want to display which version of
* liblzma your application is currently using.
*/
-extern LZMA_API const char *lzma_version_string(void) lzma_attr_const;
+extern LZMA_API(const char *) lzma_version_string(void) lzma_attr_const;
* - LZMA_BUF_ERROR: No output space was provided.
* - LZMA_PROG_ERROR: Arguments are not sane.
*/
-extern LZMA_API lzma_ret lzma_vli_encode(lzma_vli vli,
+extern LZMA_API(lzma_ret) lzma_vli_encode(lzma_vli vli,
size_t *lzma_restrict vli_pos, uint8_t *lzma_restrict out,
size_t *lzma_restrict out_pos, size_t out_size);
* - LZMA_BUF_ERROR: No input was provided.
* - LZMA_PROG_ERROR: Arguments are not sane.
*/
-extern LZMA_API lzma_ret lzma_vli_decode(lzma_vli *lzma_restrict vli,
+extern LZMA_API(lzma_ret) lzma_vli_decode(lzma_vli *lzma_restrict vli,
size_t *lzma_restrict vli_pos, const uint8_t *lzma_restrict in,
size_t *lzma_restrict in_pos, size_t in_size);
* \return Number of bytes on success (1-9). If vli isn't valid,
* zero is returned.
*/
-extern LZMA_API uint32_t lzma_vli_size(lzma_vli vli) lzma_attr_pure;
+extern LZMA_API(uint32_t) lzma_vli_size(lzma_vli vli) lzma_attr_pure;
#include "check.h"
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_check_is_supported(lzma_check type)
{
if ((unsigned int)(type) > LZMA_CHECK_ID_MAX)
}
-extern LZMA_API uint32_t
+extern LZMA_API(uint32_t)
lzma_check_size(lzma_check type)
{
if ((unsigned int)(type) > LZMA_CHECK_ID_MAX)
// If you make any changes, do some bench marking! Seemingly unrelated
// changes can very easily ruin the performance (and very probably is
// very compiler dependent).
-extern LZMA_API uint32_t
+extern LZMA_API(uint32_t)
lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
{
crc = ~crc;
}
-extern LZMA_API uint32_t
+extern LZMA_API(uint32_t)
lzma_crc32(const uint8_t *buf, size_t size, uint32_t crc)
{
mythread_once(crc32_init);
// See comments in crc32.c.
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
{
crc = ~crc;
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_crc64(const uint8_t *buf, size_t size, uint64_t crc)
{
mythread_once(crc64_init);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_alone_decoder(lzma_stream *strm, uint64_t memlimit)
{
lzma_next_strm_init(lzma_alone_decoder_init, strm, memlimit);
*/
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_alone_encoder(lzma_stream *strm, const lzma_options_lzma *options)
{
lzma_next_strm_init(alone_encoder_init, strm, options);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_auto_decoder(lzma_stream *strm, uint64_t memlimit, uint32_t flags)
{
lzma_next_strm_init(auto_decoder_init, strm, memlimit, flags);
#include "block_decoder.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_buffer_decode(lzma_block *block, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
}
-extern LZMA_API size_t
+extern LZMA_API(size_t)
lzma_block_buffer_bound(size_t uncompressed_size)
{
// For now, if the data doesn't compress, we always use uncompressed
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_buffer_encode(lzma_block *block, lzma_allocator *allocator,
const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_decoder(lzma_stream *strm, lzma_block *block)
{
lzma_next_strm_init(lzma_block_decoder_init, strm, block);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_encoder(lzma_stream *strm, lzma_block *block)
{
lzma_next_strm_init(lzma_block_encoder_init, strm, block);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_header_decode(lzma_block *block,
lzma_allocator *allocator, const uint8_t *in)
{
#include "check.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_header_size(lzma_block *block)
{
if (block->version != 0)
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_header_encode(const lzma_block *block, uint8_t *out)
{
// Valdidate everything but filters.
#include "index.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_block_compressed_size(lzma_block *block, lzma_vli total_size)
{
// Validate everything but Uncompressed Size and filters.
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_block_unpadded_size(const lzma_block *block)
{
// Validate the values that we are interested in i.e. all but
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_block_total_size(const lzma_block *block)
{
lzma_vli unpadded_size = lzma_block_unpadded_size(block);
Zero if the Uncompressed Sizes of Blocks don't matter
*/
-extern LZMA_API size_t
+extern LZMA_API(size_t)
lzma_chunk_size(const lzma_options_filter *filters)
{
while (filters->id != LZMA_VLI_UNKNOWN) {
// Version //
/////////////
-extern LZMA_API uint32_t
+extern LZMA_API(uint32_t)
lzma_version_number(void)
{
return LZMA_VERSION;
}
-extern LZMA_API const char *
+extern LZMA_API(const char *)
lzma_version_string(void)
{
return PACKAGE_VERSION;
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_code(lzma_stream *strm, lzma_action action)
{
// Sanity checks
}
-extern LZMA_API void
+extern LZMA_API(void)
lzma_end(lzma_stream *strm)
{
if (strm != NULL && strm->internal != NULL) {
}
-extern LZMA_API lzma_check
+extern LZMA_API(lzma_check)
lzma_get_check(const lzma_stream *strm)
{
// Return LZMA_CHECK_NONE if we cannot know the check type.
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_memusage(const lzma_stream *strm)
{
uint64_t memusage;
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_memlimit_get(const lzma_stream *strm)
{
uint64_t old_memlimit;
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_memlimit_set(lzma_stream *strm, uint64_t new_memlimit)
{
// Dummy variables to simplify memconfig functions
# define LZMA_API_EXPORT
#endif
-#define LZMA_API LZMA_API_CALL LZMA_API_EXPORT
+#define LZMA_API(type) LZMA_API_EXPORT type LZMA_API_CALL
#include "lzma.h"
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_easy_encoder(lzma_stream *strm, uint32_t preset, lzma_check check)
{
lzma_next_strm_init(easy_encoder_init, strm, preset, check);
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_easy_encoder_memusage(uint32_t preset)
{
lzma_coder coder;
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_easy_decoder_memusage(uint32_t preset)
{
lzma_coder coder;
#include "filter_decoder.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_raw_buffer_decode(const lzma_filter *filters, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
uint8_t *out, size_t *out_pos, size_t out_size)
#include "filter_encoder.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_raw_buffer_encode(const lzma_filter *filters, lzma_allocator *allocator,
const uint8_t *in, size_t in_size, uint8_t *out,
size_t *out_pos, size_t out_size)
}
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_filter_decoder_is_supported(lzma_vli id)
{
return decoder_find(id) != NULL;
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_raw_decoder(lzma_stream *strm, const lzma_filter *options)
{
lzma_next_strm_init(lzma_raw_decoder_init, strm, options);
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_raw_decoder_memusage(const lzma_filter *filters)
{
return lzma_raw_coder_memusage(
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_properties_decode(lzma_filter *filter, lzma_allocator *allocator,
const uint8_t *props, size_t props_size)
{
}
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_filter_encoder_is_supported(lzma_vli id)
{
return encoder_find(id) != NULL;
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_raw_encoder(lzma_stream *strm, const lzma_filter *options)
{
lzma_next_strm_init(lzma_raw_coder_init, strm, options,
}
-extern LZMA_API uint64_t
+extern LZMA_API(uint64_t)
lzma_raw_encoder_memusage(const lzma_filter *filters)
{
return lzma_raw_coder_memusage(
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_chunk_size(const lzma_filter *filters)
{
lzma_vli max = 0;
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_properties_size(uint32_t *size, const lzma_filter *filter)
{
const lzma_filter_encoder *const fe = encoder_find(filter->id);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_properties_encode(const lzma_filter *filter, uint8_t *props)
{
const lzma_filter_encoder *const fe = encoder_find(filter->id);
#include "filter_decoder.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_filter_flags_decode(
lzma_filter *filter, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
#include "filter_encoder.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_filter_flags_size(uint32_t *size, const lzma_filter *filter)
{
if (filter->id >= LZMA_FILTER_RESERVED_START)
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_filter_flags_encode(const lzma_filter *filter,
uint8_t *out, size_t *out_pos, size_t out_size)
{
};
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_memusage(lzma_vli count)
{
if (count > LZMA_VLI_MAX)
}
-extern LZMA_API lzma_index *
+extern LZMA_API(lzma_index *)
lzma_index_init(lzma_index *i, lzma_allocator *allocator)
{
if (i == NULL) {
}
-extern LZMA_API void
+extern LZMA_API(void)
lzma_index_end(lzma_index *i, lzma_allocator *allocator)
{
if (i != NULL) {
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_count(const lzma_index *i)
{
return i->count;
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_size(const lzma_index *i)
{
return index_size(i->count, i->index_list_size);
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_total_size(const lzma_index *i)
{
return i->total_size;
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_stream_size(const lzma_index *i)
{
// Stream Header + Blocks + Index + Stream Footer
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_file_size(const lzma_index *i)
{
// If multiple Streams are concatenated, the Stream Header, Index,
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_uncompressed_size(const lzma_index *i)
{
return i->uncompressed_size;
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_append(lzma_index *i, lzma_allocator *allocator,
lzma_vli unpadded_size, lzma_vli uncompressed_size)
{
}
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_index_read(lzma_index *i, lzma_index_record *info)
{
if (i->current.group == NULL) {
}
-extern LZMA_API void
+extern LZMA_API(void)
lzma_index_rewind(lzma_index *i)
{
i->current.group = NULL;
}
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_index_locate(lzma_index *i, lzma_index_record *info, lzma_vli target)
{
// Check if it is possible to fullfill the request.
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_cat(lzma_index *restrict dest, lzma_index *restrict src,
lzma_allocator *allocator, lzma_vli padding)
{
}
-extern LZMA_API lzma_index *
+extern LZMA_API(lzma_index *)
lzma_index_dup(const lzma_index *src, lzma_allocator *allocator)
{
lzma_index *dest = lzma_alloc(sizeof(lzma_index), allocator);
}
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_index_equal(const lzma_index *a, const lzma_index *b)
{
// No point to compare more if the pointers are the same.
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_decoder(lzma_stream *strm, lzma_index **i, uint64_t memlimit)
{
lzma_next_strm_init(index_decoder_init, strm, i, memlimit);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_buffer_decode(
lzma_index **i, uint64_t *memlimit, lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size)
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_encoder(lzma_stream *strm, lzma_index *i)
{
lzma_next_strm_init(lzma_index_encoder_init, strm, i);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_buffer_encode(lzma_index *i,
uint8_t *out, size_t *out_pos, size_t out_size)
{
};
-extern LZMA_API lzma_index_hash *
+extern LZMA_API(lzma_index_hash *)
lzma_index_hash_init(lzma_index_hash *index_hash, lzma_allocator *allocator)
{
if (index_hash == NULL) {
}
-extern LZMA_API void
+extern LZMA_API(void)
lzma_index_hash_end(lzma_index_hash *index_hash, lzma_allocator *allocator)
{
lzma_free(index_hash, allocator);
}
-extern LZMA_API lzma_vli
+extern LZMA_API(lzma_vli)
lzma_index_hash_size(const lzma_index_hash *index_hash)
{
// Get the size of the Index from ->blocks instead of ->records for
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_hash_append(lzma_index_hash *index_hash, lzma_vli unpadded_size,
lzma_vli uncompressed_size)
{
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_index_hash_decode(lzma_index_hash *index_hash, const uint8_t *in,
size_t *in_pos, size_t in_size)
{
#include "stream_decoder.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_buffer_decode(uint64_t *memlimit, uint32_t flags,
lzma_allocator *allocator,
const uint8_t *in, size_t *in_pos, size_t in_size,
#define HEADERS_BOUND (2 * LZMA_STREAM_HEADER_SIZE + INDEX_BOUND)
-extern LZMA_API size_t
+extern LZMA_API(size_t)
lzma_stream_buffer_bound(size_t uncompressed_size)
{
// Get the maximum possible size of a Block.
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_buffer_encode(lzma_filter *filters, lzma_check check,
lzma_allocator *allocator, const uint8_t *in, size_t in_size,
uint8_t *out, size_t *out_pos_ptr, size_t out_size)
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_decoder(lzma_stream *strm, uint64_t memlimit, uint32_t flags)
{
lzma_next_strm_init(lzma_stream_decoder_init, strm, memlimit, flags);
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_encoder(lzma_stream *strm,
const lzma_filter *filters, lzma_check check)
{
const uint8_t lzma_footer_magic[2] = { 0x59, 0x5A };
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_flags_compare(
const lzma_stream_flags *a, const lzma_stream_flags *b)
{
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_header_decode(lzma_stream_flags *options, const uint8_t *in)
{
// Magic
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_footer_decode(lzma_stream_flags *options, const uint8_t *in)
{
// Magic
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_header_encode(const lzma_stream_flags *options, uint8_t *out)
{
assert(sizeof(lzma_header_magic) + LZMA_STREAM_FLAGS_SIZE
}
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_stream_footer_encode(const lzma_stream_flags *options, uint8_t *out)
{
assert(2 * 4 + LZMA_STREAM_FLAGS_SIZE + sizeof(lzma_footer_magic)
#include "common.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_vli_decode(lzma_vli *restrict vli, size_t *restrict vli_pos,
const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size)
#include "common.h"
-extern LZMA_API lzma_ret
+extern LZMA_API(lzma_ret)
lzma_vli_encode(lzma_vli vli, size_t *restrict vli_pos,
uint8_t *restrict out, size_t *restrict out_pos,
size_t out_size)
#include "common.h"
-extern LZMA_API uint32_t
+extern LZMA_API(uint32_t)
lzma_vli_size(lzma_vli vli)
{
if (vli > LZMA_VLI_MAX)
}
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_mf_is_supported(lzma_match_finder mf)
{
bool ret = false;
#endif
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_mode_is_supported(lzma_mode mode)
{
return mode == LZMA_MODE_FAST || mode == LZMA_MODE_NORMAL;
#include "common.h"
-extern LZMA_API lzma_bool
+extern LZMA_API(lzma_bool)
lzma_lzma_preset(lzma_options_lzma *options, uint32_t preset)
{
const uint32_t level = preset & LZMA_PRESET_LEVEL_MASK;