Job APIs

Job APIs#

Functions#

qpl_status qpl_get_job_size(qpl_path_t qpl_path, uint32_t *job_size_ptr)#

Calculates the amount of memory, in bytes, required for the qpl_job structure.

Note

Some kind of dispatching is done at this stage - in absence of hardware, it will require significantly more memory for internal buffers

Parameters:
Returns:

qpl_status qpl_init_job(qpl_path_t qpl_path, qpl_job *qpl_job_ptr)#

Initializes the qpl_job structure and ensures proper alignment of internal structures. This API should be called only once, after a new qpl_job object is allocated.

Note

qpl_job is an alias to the qpl_job structure - must contain additional internal memory buffers for SW path of compression/decompression/etc.

Warning

Memory for qpl_job structure must be allocated at the application side. Size (in bytes) must be obtained with the qpl_get_job_size function.

Parameters:
Returns:

qpl_status qpl_submit_job(qpl_job *qpl_job_ptr)#

Parses the qpl_job structure and forms the corresponding processing functions pipeline. In case of software solution, it is an alias for execute_job.

Parameters:
  • qpl_job_ptr[inout] Pointer to the initialized qpl_job structure

Returns:

One of statuses presented in the qpl_status

qpl_status qpl_check_job(qpl_job *qpl_job_ptr)#

Checks the status of qpl_job processing. (can be queried periodically to check the status of the qpl_submit_job)

Parameters:
  • qpl_job_ptr[inout] Pointer to the initialized qpl_job structure

Returns:

One of statuses presented in the qpl_status

qpl_status qpl_wait_job(qpl_job *qpl_job_ptr)#

Waits for the end of qpl_job processing. (waits until the job is completed)

Parameters:
  • qpl_job_ptr[inout] Pointer to the initialized qpl_job structure

Returns:

One of statuses presented in the qpl_status

qpl_status qpl_execute_job(qpl_job *qpl_job_ptr)#

Parses the qpl_job structure and forms the corresponding processing functions pipeline.

Parameters:
  • qpl_job_ptr[inout] Pointer to the initialized qpl_job structure

Returns:

One of statuses presented in the qpl_status

qpl_status qpl_fini_job(qpl_job *qpl_job_ptr)#

Completes qpl_job lifecycle: disconnects from the internal library context, frees internal resources.

Parameters:
  • qpl_job_ptr – Pointer to the initialized qpl_job structure

Returns:

ne of statuses presented in the qpl_status

Structures#

struct qpl_job#

Defines the general Intel QPL JOB API structure to perform task configuration.

Public Members

uint8_t *next_in_ptr#

Next input byte

uint32_t available_in#

Number of bytes available at next_in_ptr

uint32_t total_in#

Total number of bytes read so far

uint8_t *next_out_ptr#

Next output byte

uint32_t available_out#

Number of bytes available at next_out_ptr

uint32_t total_out#

Total number of bytes written so far

qpl_operation op#

Intel QPL operation

uint32_t flags#

Auxiliary operation flags - see below

uint32_t crc#

CRC - Input and Output

uint32_t xor_checksum#

Simple XOR check sum

uint32_t last_bit_offset#

Actual bits in the last written byte (or word for BE16 format)

qpl_compression_levels level#

Compression level - default or high

qpl_statistics_mode statistics_mode#

Represents mode in which deflate should be performed

qpl_huffman_table_t huffman_table#

Huffman table for compression

qpl_dictionary *dictionary#

The dictionary used for compression / decompression

qpl_mini_block_size mini_block_size#

Index block (mini-block) size

uint64_t *idx_array#

Index array address

uint32_t idx_max_size#

Size of index array

uint32_t idx_num_written#

Number of generated indexes

uint8_t decomp_end_processing#

Value is qpl_decomp_end_proc

uint8_t ignore_start_bits#

0-7 (or 0-15 for BE16 format) - a number of bits to skip at the start of the 1st byte (or word for BE16 format)

uint8_t ignore_end_bits#

0-7 (or 0-15 for BE16 format) - a number of bits to skip at the end of the last byte (or word for BE16 format)

uint64_t crc64_poly#

Polynomial used for the crc64 operation

uint64_t crc64#

Initial and final CRC value for the crc64 operation

uint8_t *next_src2_ptr#

Pointer to source-2 data. Updated value is returned

uint32_t available_src2#

Number of valid bytes of source-2 data

uint32_t src1_bit_width#

Source-1 bit width for Analytics. Valid values are 1-32

uint32_t src2_bit_width#

Source-2 bit width for Analytics. Valid values are 1-32

uint32_t num_input_elements#

Number of input elements for Analytics

qpl_out_format out_bit_width#

Output bit width enumeration. Valid values are nominal, 8-, 16-, or 32-bits

uint32_t param_low#

Low parameter for operations extract or scan

uint32_t param_high#

High parameter for operations extract or scan

uint32_t drop_initial_bytes#

Number of initial bytes to be dropped at the start of the Analytics portion of the pipeline

uint32_t initial_output_index#

The index of initial output element from Analytics. This affects modified bit-vector output and the bit-vector aggregate values

qpl_parser parser#

Enumeration of what parser to use to parse Analytics source-1 data

uint32_t first_index_min_value#

Output aggregate value - index of the first min value

uint32_t last_index_max_value#

Output aggregate value - index of the last max value

uint32_t sum_value#

Output aggregate value - sum of all values

int32_t numa_id#

ID of the NUMA. Set it to -1 for auto detecting

qpl_data data_ptr#

Internal memory buffers & structures for all Intel QPL operations