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:
qpl_path – [in] type of implementation path to use - qpl_path_auto, qpl_path_hardware or qpl_path_software
job_size_ptr – [out] a pointer to uint32_t, where the qpl_job size (in bytes) is stored
- 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:
qpl_path – [in] type of implementation path to use - qpl_path_auto, qpl_path_hardware or qpl_path_software
qpl_job_ptr – [inout] a pointer to the qpl_job structure
- 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 QPL_FLAGS in qpl/c_api/defs.h
-
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
-
uint8_t *next_in_ptr#