mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
9bd7e526e7
where `lzma_allocator *allocator` isn't declared const
102 lines
2.7 KiB
C
102 lines
2.7 KiB
C
/**
|
|
@file lzma.h
|
|
This service provides dynamic access to LZMA.
|
|
*/
|
|
|
|
#ifndef LZMA_INCLUDED
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef MYSQL_ABI_CHECK
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#endif
|
|
|
|
#ifndef MYSQL_DYNAMIC_PLUGIN
|
|
#define provider_service_lzma provider_service_lzma_static
|
|
#endif
|
|
|
|
#ifndef LZMA_VERSION
|
|
typedef enum
|
|
{
|
|
LZMA_OK = 0,
|
|
LZMA_STREAM_END = 1,
|
|
LZMA_NO_CHECK = 2,
|
|
LZMA_UNSUPPORTED_CHECK = 3,
|
|
LZMA_GET_CHECK = 4,
|
|
LZMA_MEM_ERROR = 5,
|
|
LZMA_MEMLIMIT_ERROR = 6,
|
|
LZMA_FORMAT_ERROR = 7,
|
|
LZMA_OPTIONS_ERROR = 8,
|
|
LZMA_DATA_ERROR = 9,
|
|
LZMA_BUF_ERROR = 10,
|
|
LZMA_PROG_ERROR = 11,
|
|
} lzma_ret;
|
|
|
|
typedef struct
|
|
{
|
|
void *(*alloc)(void *opaque, size_t nmemb, size_t size);
|
|
void (*free)(void *opaque, void *ptr);
|
|
void *opaque;
|
|
} lzma_allocator;
|
|
|
|
typedef enum
|
|
{
|
|
LZMA_CHECK_NONE = 0,
|
|
LZMA_CHECK_CRC32 = 1,
|
|
LZMA_CHECK_CRC64 = 4,
|
|
LZMA_CHECK_SHA256 = 10
|
|
} lzma_check;
|
|
|
|
#define lzma_stream_buffer_decode(...) provider_service_lzma->lzma_stream_buffer_decode_ptr (__VA_ARGS__)
|
|
#define lzma_easy_buffer_encode(...) provider_service_lzma->lzma_easy_buffer_encode_ptr (__VA_ARGS__)
|
|
#elif LZMA_VERSION < 50010030
|
|
#define lzma_maybe_const
|
|
#endif
|
|
|
|
#ifndef lzma_maybe_const
|
|
#define lzma_maybe_const const
|
|
#endif
|
|
|
|
#define DEFINE_lzma_stream_buffer_decode(NAME) NAME( \
|
|
uint64_t *memlimit, \
|
|
uint32_t flags, \
|
|
lzma_maybe_const 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 \
|
|
)
|
|
|
|
#define DEFINE_lzma_easy_buffer_encode(NAME) NAME( \
|
|
uint32_t preset, \
|
|
lzma_check check, \
|
|
lzma_maybe_const lzma_allocator *allocator, \
|
|
const uint8_t *in, \
|
|
size_t in_size, \
|
|
uint8_t *out, \
|
|
size_t *out_pos, \
|
|
size_t out_size \
|
|
)
|
|
|
|
struct provider_service_lzma_st
|
|
{
|
|
lzma_ret DEFINE_lzma_stream_buffer_decode((*lzma_stream_buffer_decode_ptr));
|
|
lzma_ret DEFINE_lzma_easy_buffer_encode((*lzma_easy_buffer_encode_ptr));
|
|
|
|
bool is_loaded;
|
|
};
|
|
|
|
extern struct provider_service_lzma_st *provider_service_lzma;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#define LZMA_INCLUDED
|
|
#endif
|