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 output to be returned as an array of a bit width defined by the output_bit_width

Note

Only supported on the Hardware Path

QPL_DEVICE_NUMA_ID_SOCKET (-1)#

Internal mechanism for Intel® In-Memory Analytics Accelerator (Intel® IAA) instance selection will respect socket boundary. Only instances from the same socket as the calling thread could be used for execution.

Note

This is the default behavior for Intel QPL starting from version 1.6.0.

QPL_DEVICE_NUMA_ID_CURRENT (-2)#

Internal mechanism for Intel IAA instance selection will respect NUMA boundary. Only instances from the NUMA node of the calling thread could be used for execution.

Note

This is the default behavior for Intel QPL prior to version 1.6.0.

QPL_DEVICE_NUMA_ID_ANY (-3)#

Any Intel IAA instance on the system could be used for execution. NUMA boundary is ignored.

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