CMSIS2000  0.0.7
 Указатель Структуры данных Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Макросы Группы Страницы
Файл lz4.c
#include <stdlib.h>
#include <string.h>
#include "lz4.h"
#include <stdint.h>
Граф включаемых заголовочных файлов для lz4.c:

См. исходные тексты.

Структуры данных

struct  _U16_S
struct  _U32_S
struct  _U64_S
struct  refTables

Макросы

#define A16(x)   (((U16_S *)(x))->v)
#define A32(x)   (((U32_S *)(x))->v)
#define A64(x)   (((U64_S *)(x))->v)
#define AARCH   A32
#define BYTE   uint8_t
#define COPYLENGTH   8
#define expect(expr, value)   (expr)
#define GCC_VERSION   (__GNUC__ * 100 + __GNUC_MINOR__)
#define HASH64KTABLESIZE   (1U<<HASHLOG64K)
#define HASH_LOG   (MEMORY_USAGE-2)
#define HASH_MASK   (HASHTABLESIZE - 1)
#define HASHLOG64K   (HASH_LOG+1)
#define HASHTABLESIZE   (1 << HASH_LOG)
#define HEAPMODE   (HASH_LOG>STACKLIMIT)
#define HTYPE   const BYTE*
#define INITBASE(base)   const int base = 0
#define LASTLITERALS   5
#define likely(expr)   expect((expr) != 0, 1)
#define LZ4_64KLIMIT   ((1<<16) + (MFLIMIT-1))
#define LZ4_ARCH64   0
#define LZ4_BLINDCOPY(s, d, l)   { BYTE* e=(d)+l; LZ4_WILDCOPY(s,d,e); d=e; }
#define lz4_bswap16(x)   ((unsigned short int) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)))
#define LZ4_COPYPACKET(s, d)   LZ4_COPYSTEP(s,d); LZ4_COPYSTEP(s,d);
#define LZ4_COPYSTEP(s, d)   A32(d) = A32(s); d+=4; s+=4;
#define LZ4_HASH64K_FUNCTION(i)   (((i) * 2654435761U) >> ((MINMATCH*8)-HASHLOG64K))
#define LZ4_HASH64K_VALUE(p)   LZ4_HASH64K_FUNCTION(A32(p))
#define LZ4_HASH_FUNCTION(i)   (((i) * 2654435761U) >> ((MINMATCH*8)-HASH_LOG))
#define LZ4_HASH_VALUE(p)   LZ4_HASH_FUNCTION(A32(p))
#define LZ4_READ_LITTLEENDIAN_16(d, s, p)   { d = (s) - A16(p); }
#define LZ4_SECURECOPY   LZ4_WILDCOPY
#define LZ4_WILDCOPY(s, d, e)   do { LZ4_COPYPACKET(s,d) } while (d<e);
#define LZ4_WRITE_LITTLEENDIAN_16(p, v)   { A16(p) = v; p+=2; }
#define matchlimit   (iend - LASTLITERALS)
#define matchlimit   (iend - LASTLITERALS)
#define MAX_DISTANCE   ((1 << MAXD_LOG) - 1)
#define MAXD_LOG   16
#define MEMORY_USAGE   14
#define MFLIMIT   (COPYLENGTH+MINMATCH)
#define MINLENGTH   (MFLIMIT+1)
#define MINMATCH   4
#define ML_BITS   4
#define ML_MASK   ((1U<<ML_BITS)-1)
#define NOTCOMPRESSIBLE_DETECTIONLEVEL   6
#define restrict
#define RUN_BITS   (8-ML_BITS)
#define RUN_MASK   ((1U<<RUN_BITS)-1)
#define S32   int32_t
#define SKIPSTRENGTH   (NOTCOMPRESSIBLE_DETECTIONLEVEL>2?NOTCOMPRESSIBLE_DETECTIONLEVEL:2)
#define STACKLIMIT   13
#define STEPSIZE   4
#define U16   uint16_t
#define U32   uint32_t
#define U64   uint64_t
#define UARCH   U32
#define unlikely(expr)   expect((expr) != 0, 0)

Определения типов

typedef struct _U16_S U16_S
typedef struct _U32_S U32_S
typedef struct _U64_S U64_S

Функции

int LZ4_compress (const char *source, char *dest, int isize)
static int LZ4_compress64kCtx (void **ctx, const char *source, char *dest, int isize, int maxOutputSize)
int LZ4_compress_limitedOutput (const char *source, char *dest, int isize, int maxOutputSize)
static int LZ4_compressCtx (void **ctx, const char *source, char *dest, int isize, int maxOutputSize)
static int LZ4_NbCommonBytes (register U32 val)
int LZ4_uncompress (const char *source, char *dest, int osize)
int LZ4_uncompress_unknownOutputSize (const char *source, char *dest, int isize, int maxOutputSize)

Макросы

#define A16 (   x)    (((U16_S *)(x))->v)

См. определение в файле lz4.c строка 171

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define A32 (   x)    (((U32_S *)(x))->v)

См. определение в файле lz4.c строка 170

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define A64 (   x)    (((U64_S *)(x))->v)

См. определение в файле lz4.c строка 169

#define AARCH   A32

См. определение в файле lz4.c строка 222

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define BYTE   uint8_t

См. определение в файле lz4.c строка 150

#define COPYLENGTH   8

См. определение в файле lz4.c строка 193

Используется в LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define expect (   expr,
  value 
)    (expr)

См. определение в файле lz4.c строка 124

#define GCC_VERSION   (__GNUC__ * 100 + __GNUC_MINOR__)

См. определение в файле lz4.c строка 102

#define HASH64KTABLESIZE   (1U<<HASHLOG64K)

См. определение в файле lz4.c строка 514

Используется в LZ4_compress64kCtx().

#define HASH_LOG   (MEMORY_USAGE-2)

См. определение в файле lz4.c строка 179

#define HASH_MASK   (HASHTABLESIZE - 1)

См. определение в файле lz4.c строка 181

#define HASHLOG64K   (HASH_LOG+1)

См. определение в файле lz4.c строка 513

#define HASHTABLESIZE   (1 << HASH_LOG)

См. определение в файле lz4.c строка 180

Используется в LZ4_compressCtx().

#define HEAPMODE   (HASH_LOG>STACKLIMIT)

См. определение в файле lz4.c строка 192

#define HTYPE   const BYTE*

См. определение в файле lz4.c строка 226

Используется в LZ4_compressCtx().

#define INITBASE (   base)    const int base = 0

См. определение в файле lz4.c строка 227

Используется в LZ4_compressCtx().

#define LASTLITERALS   5

См. определение в файле lz4.c строка 194

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define likely (   expr)    expect((expr) != 0, 1)

См. определение в файле lz4.c строка 127

Используется в LZ4_compressCtx() и LZ4_uncompress_unknownOutputSize().

#define LZ4_64KLIMIT   ((1<<16) + (MFLIMIT-1))

См. определение в файле lz4.c строка 512

Используется в LZ4_compress_limitedOutput().

#define LZ4_ARCH64   0

См. определение в файле lz4.c строка 59

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define LZ4_BLINDCOPY (   s,
  d,
 
)    { BYTE* e=(d)+l; LZ4_WILDCOPY(s,d,e); d=e; }

См. определение в файле lz4.c строка 254

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define lz4_bswap16 (   x)    ((unsigned short int) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)))

См. определение в файле lz4.c строка 118

#define LZ4_COPYPACKET (   s,
 
)    LZ4_COPYSTEP(s,d); LZ4_COPYSTEP(s,d);

См. определение в файле lz4.c строка 224

#define LZ4_COPYSTEP (   s,
 
)    A32(d) = A32(s); d+=4; s+=4;

См. определение в файле lz4.c строка 223

Используется в LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define LZ4_HASH64K_FUNCTION (   i)    (((i) * 2654435761U) >> ((MINMATCH*8)-HASHLOG64K))

См. определение в файле lz4.c строка 515

#define LZ4_HASH64K_VALUE (   p)    LZ4_HASH64K_FUNCTION(A32(p))

См. определение в файле lz4.c строка 516

Используется в LZ4_compress64kCtx().

#define LZ4_HASH_FUNCTION (   i)    (((i) * 2654435761U) >> ((MINMATCH*8)-HASH_LOG))

См. определение в файле lz4.c строка 251

#define LZ4_HASH_VALUE (   p)    LZ4_HASH_FUNCTION(A32(p))

См. определение в файле lz4.c строка 252

Используется в LZ4_compressCtx().

#define LZ4_READ_LITTLEENDIAN_16 (   d,
  s,
 
)    { d = (s) - A16(p); }

См. определение в файле lz4.c строка 234

Используется в LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define LZ4_SECURECOPY   LZ4_WILDCOPY

См. определение в файле lz4.c строка 225

Используется в LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define LZ4_WILDCOPY (   s,
  d,
 
)    do { LZ4_COPYPACKET(s,d) } while (d<e);

См. определение в файле lz4.c строка 253

Используется в LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define LZ4_WRITE_LITTLEENDIAN_16 (   p,
 
)    { A16(p) = v; p+=2; }

См. определение в файле lz4.c строка 235

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define matchlimit   (iend - LASTLITERALS)
#define matchlimit   (iend - LASTLITERALS)
#define MAX_DISTANCE   ((1 << MAXD_LOG) - 1)

См. определение в файле lz4.c строка 199

Используется в LZ4_compressCtx().

#define MAXD_LOG   16

См. определение в файле lz4.c строка 198

#define MEMORY_USAGE   14

См. определение в файле lz4.c строка 42

#define MFLIMIT   (COPYLENGTH+MINMATCH)

См. определение в файле lz4.c строка 195

Используется в LZ4_compress64kCtx(), LZ4_compressCtx() и LZ4_uncompress_unknownOutputSize().

#define MINLENGTH   (MFLIMIT+1)

См. определение в файле lz4.c строка 196

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define MINMATCH   4

См. определение в файле lz4.c строка 177

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define ML_BITS   4

См. определение в файле lz4.c строка 201

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define ML_MASK   ((1U<<ML_BITS)-1)

См. определение в файле lz4.c строка 202

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define NOTCOMPRESSIBLE_DETECTIONLEVEL   6

См. определение в файле lz4.c строка 189

#define restrict

См. определение в файле lz4.c строка 99

Используется в LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define RUN_BITS   (8-ML_BITS)

См. определение в файле lz4.c строка 203

#define RUN_MASK   ((1U<<RUN_BITS)-1)

См. определение в файле lz4.c строка 204

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define S32   int32_t

См. определение в файле lz4.c строка 153

Используется в LZ4_NbCommonBytes().

#define SKIPSTRENGTH   (NOTCOMPRESSIBLE_DETECTIONLEVEL>2?NOTCOMPRESSIBLE_DETECTIONLEVEL:2)

См. определение в файле lz4.c строка 190

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define STACKLIMIT   13

См. определение в файле lz4.c строка 191

#define STEPSIZE   4

См. определение в файле lz4.c строка 220

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

#define U16   uint16_t

См. определение в файле lz4.c строка 151

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define U32   uint32_t

См. определение в файле lz4.c строка 152

Используется в LZ4_compress64kCtx(), LZ4_compressCtx() и LZ4_NbCommonBytes().

#define U64   uint64_t

См. определение в файле lz4.c строка 154

#define UARCH   U32

См. определение в файле lz4.c строка 221

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

#define unlikely (   expr)    expect((expr) != 0, 0)

См. определение в файле lz4.c строка 128

Используется в LZ4_compress64kCtx(), LZ4_compressCtx(), LZ4_uncompress() и LZ4_uncompress_unknownOutputSize().

Типы

typedef struct _U16_S U16_S
typedef struct _U32_S U32_S
typedef struct _U64_S U64_S

Функции

int LZ4_compress ( const char *  source,
char *  dest,
int  isize 
)

См. определение в файле lz4.c строка 695

Перекрестные ссылки LZ4_compress_limitedOutput() и LZ4_compressBound().

Используется в compress_file().

Граф вызовов:

Граф вызова функции:

static int LZ4_compress64kCtx ( void **  ctx,
const char *  source,
char *  dest,
int  isize,
int  maxOutputSize 
)
inlinestatic

См. определение в файле lz4.c строка 517

Перекрестные ссылки A16, A32, AARCH, BYTE, HASH64KTABLESIZE, refTables::hashTable, LASTLITERALS, LZ4_ARCH64, LZ4_BLINDCOPY, LZ4_HASH64K_VALUE, LZ4_NbCommonBytes(), LZ4_WRITE_LITTLEENDIAN_16, matchlimit, MFLIMIT, MINLENGTH, MINMATCH, ML_BITS, ML_MASK, NULL, RUN_MASK, SKIPSTRENGTH, STEPSIZE, U16, U32, UARCH и unlikely.

Используется в LZ4_compress_limitedOutput().

Граф вызовов:

Граф вызова функции:

int LZ4_compress_limitedOutput ( const char *  source,
char *  dest,
int  isize,
int  maxOutputSize 
)

См. определение в файле lz4.c строка 675

Перекрестные ссылки LZ4_64KLIMIT, LZ4_compress64kCtx(), LZ4_compressCtx() и NULL.

Используется в LZ4_compress() и main().

Граф вызовов:

Граф вызова функции:

static int LZ4_compressCtx ( void **  ctx,
const char *  source,
char *  dest,
int  isize,
int  maxOutputSize 
)
inlinestatic

См. определение в файле lz4.c строка 337

Перекрестные ссылки A16, A32, AARCH, BYTE, refTables::hashTable, HASHTABLESIZE, HTYPE, INITBASE, LASTLITERALS, likely, LZ4_ARCH64, LZ4_BLINDCOPY, LZ4_HASH_VALUE, LZ4_NbCommonBytes(), LZ4_WRITE_LITTLEENDIAN_16, matchlimit, MAX_DISTANCE, MFLIMIT, MINLENGTH, MINMATCH, ML_BITS, ML_MASK, NULL, RUN_MASK, SKIPSTRENGTH, STEPSIZE, U16, U32, UARCH и unlikely.

Используется в LZ4_compress_limitedOutput().

Граф вызовов:

Граф вызова функции:

static int LZ4_NbCommonBytes ( register U32  val)
inlinestatic

См. определение в файле lz4.c строка 294

Перекрестные ссылки S32 и U32.

Используется в LZ4_compress64kCtx() и LZ4_compressCtx().

Граф вызова функции:

int LZ4_uncompress ( const char *  source,
char *  dest,
int  osize 
)

См. определение в файле lz4.c строка 715

Перекрестные ссылки A32, COPYLENGTH, LASTLITERALS, LZ4_COPYSTEP, LZ4_READ_LITTLEENDIAN_16, LZ4_SECURECOPY, LZ4_WILDCOPY, ML_BITS, ML_MASK, restrict, RUN_MASK, STEPSIZE и unlikely.

Используется в BMK_benchFile(), FUZ_SecurityTest() и main().

Граф вызова функции:

int LZ4_uncompress_unknownOutputSize ( const char *  source,
char *  dest,
int  isize,
int  maxOutputSize 
)

См. определение в файле lz4.c строка 802

Перекрестные ссылки A32, COPYLENGTH, LASTLITERALS, likely, LZ4_COPYSTEP, LZ4_READ_LITTLEENDIAN_16, LZ4_SECURECOPY, LZ4_WILDCOPY, MFLIMIT, ML_BITS, ML_MASK, restrict, RUN_MASK, STEPSIZE и unlikely.

Используется в decode_file() и main().

Граф вызова функции: