Common Definitions

Common Definitions#

Flags#

QPL_FLAG_FIRST 0x0001U#

The start of a new overall task (Filter qpl_operation implies flags FIRST and LAST)

QPL_FLAG_LAST 0x0002U#

The end of an overall task (Filter qpl_operation implies flags FIRST and LAST)

QPL_FLAG_CRC32C 0x0004U#

Polynomial 0x11edc6f41 is used, which is the one used by iSCSI

QPL_FLAG_GZIP_MODE 0x0008U#

Check and skip GZIP header/trailer

QPL_FLAG_HUFFMAN_BE 0x0010U#

Huffman tokens are in Big Endian format (both compress and decompress)

QPL_FLAG_NO_HDRS 0x0020U#

Decompress: Parse only Huffman Tokens; Compress: Write no headers or EOBs

QPL_FLAG_DECOMPRESS_ENABLE 0x0040U#

The data from the input buffer is decompressed and then sent to the filter unit

QPL_FLAG_SRC2_BE 0x0080U#

Source-2 is viewed as a Big-Endian packed array

QPL_FLAG_OUT_BE 0x0100U#

Destination is stored as a Big-Endian packed array

QPL_FLAG_RND_ACCESS 0x0200U#

One or several mini-blocks are decompressed only

QPL_FLAG_DECOMP_FLUSH_ALWAYS 0x0800U#

All processed data should be written to output, otherwise, only complete qwords

QPL_FLAG_START_NEW_BLOCK 0x1000U#

Implied by QPL_FLAG_FIRST, should be used in the middle of the stream to specify a different Huffman table

QPL_FLAG_DYNAMIC_HUFFMAN 0x2000U#

The data will be compressed as a single dynamic DEFLATE block; requires 2 passes

QPL_FLAG_OMIT_VERIFY 0x4000U#

Turn off verification to improve performance

QPL_FLAG_GEN_LITERALS 0x8000U#

Compression only: generate only literals

QPL_FLAG_CANNED_MODE 0x00400000U#

Flag to enable canned compression and decompression

QPL_FLAG_CRC64_BE 0x00010000U#

The data should be viewed as Big-Endian

QPL_FLAG_CRC64_INV 0x00020000U#

Bitwise inversion of the initial and the final CRC

QPL_FLAG_INV_OUT 0x00040000U#

Bitwise inversion of the output bit-vector for a filtering operation

QPL_FLAG_ZLIB_MODE 0x00080000U#

Check and skip ZLIB header/trailer

QPL_FLAG_OMIT_CHECKSUMS 0x00100000U#

Filtering only: don’t calculate CRC and XOR checksums

QPL_FLAG_OMIT_AGGREGATES 0x00200000U#

Filtering only: don’t calculate aggregates values

QPL_FLAG_FORCE_ARRAY_OUTPUT 0x00800000U#

Filtering only: Force Array Output Mod

Enums#

enum qpl_path_t#

Values:

enumerator qpl_path_auto = 0x00000000U#
enumerator qpl_path_hardware = 0x00000001U#
enumerator qpl_path_software = 0x00000002U#
enum qpl_operation#

Values:

enumerator qpl_op_decompress = 0x00U#
enumerator qpl_op_compress = 0x01U#
enumerator qpl_op_crc64 = 0x05U#
enumerator qpl_op_extract = 0x11U#
enumerator qpl_op_select = 0x12U#
enumerator qpl_op_expand = 0x15U#
enumerator qpl_op_scan_eq = 0x20U#
enumerator qpl_op_scan_ne = 0x21U#
enumerator qpl_op_scan_lt = 0x22U#
enumerator qpl_op_scan_le = 0x23U#
enumerator qpl_op_scan_gt = 0x24U#
enumerator qpl_op_scan_ge = 0x25U#
enumerator qpl_op_scan_range = 0x26U#
enumerator qpl_op_scan_not_range = 0x27U#
enum qpl_compression_levels#

Enumerates different compressions levels.

Values:

enumerator qpl_level_1 = 1#

The fastest compression with low compression ratio

enumerator qpl_level_2 = 2#

Not supported

enumerator qpl_level_3 = 3#

Medium compression speed, medium compression ratio

enumerator qpl_level_4 = 4#

Not supported

enumerator qpl_level_5 = 5#

Not supported

enumerator qpl_level_6 = 6#

Not supported

enumerator qpl_level_7 = 7#

Not supported

enumerator qpl_level_8 = 8#

Not supported

enumerator qpl_level_9 = 9#

Not supported

enumerator qpl_default_level = qpl_level_1#

Default compression level defined by the highest compression level supported by Accelerator

enumerator qpl_high_level = qpl_level_3#

The level with highest compression level from supported by Intel QPL

enum qpl_statistics_mode#

Represents mode in which qpl_op_compress operation should be performed.

Values:

enumerator qpl_compression_mode = 0#

Perform qpl_op_compress operation in default compression mode

enumerator qpl_gathering_mode = 1#

Perform qpl_op_compress operation in statistic gathering mode

enum qpl_mini_block_size#

Values:

enumerator qpl_mblk_size_none = 0U#
enumerator qpl_mblk_size_512 = 1U#
enumerator qpl_mblk_size_1k = 2U#
enumerator qpl_mblk_size_2k = 3U#
enumerator qpl_mblk_size_4k = 4U#
enumerator qpl_mblk_size_8k = 5U#
enumerator qpl_mblk_size_16k = 6U#
enumerator qpl_mblk_size_32k = 7U#
enum qpl_out_format#

Enum of all output formats.

Values:

enumerator qpl_ow_nom = 0U#

Output stream in its nominal format without modification

enumerator qpl_ow_8 = 1U#

Output 8-bit stream

enumerator qpl_ow_16 = 2U#

Output 16-bit stream

enumerator qpl_ow_32 = 3U#

Output 32-bit stream

enum qpl_parser#

Enum of all supported parser types.

Values:

enumerator qpl_p_le_packed_array = 0U#

Input vector is written in the Little-Endian format

enumerator qpl_p_be_packed_array = 1U#

Input vector is written in the Big-Endian format

enumerator qpl_p_parquet_rle = 2U#

input vector is written in the Parquet RLE format

Structures#

struct allocator_t#

Structure that describes user-provided allocator.

Public Members

void *(*allocator)(size_t)#

Allocation function

void (*deallocator)(void*)#

Deallocation function