1*d30ea906Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause 2*d30ea906Sjfb8856606 * Copyright(c) 2017 Intel Corporation 3*d30ea906Sjfb8856606 */ 4*d30ea906Sjfb8856606 5*d30ea906Sjfb8856606 #ifndef TEST_BBDEV_VECTOR_H_ 6*d30ea906Sjfb8856606 #define TEST_BBDEV_VECTOR_H_ 7*d30ea906Sjfb8856606 8*d30ea906Sjfb8856606 #include <rte_bbdev_op.h> 9*d30ea906Sjfb8856606 10*d30ea906Sjfb8856606 /* Flags which are set when specific parameter is define in vector file */ 11*d30ea906Sjfb8856606 enum { 12*d30ea906Sjfb8856606 TEST_BBDEV_VF_E = (1ULL << 0), 13*d30ea906Sjfb8856606 TEST_BBDEV_VF_EA = (1ULL << 1), 14*d30ea906Sjfb8856606 TEST_BBDEV_VF_EB = (1ULL << 2), 15*d30ea906Sjfb8856606 TEST_BBDEV_VF_K = (1ULL << 3), 16*d30ea906Sjfb8856606 TEST_BBDEV_VF_K_NEG = (1ULL << 4), 17*d30ea906Sjfb8856606 TEST_BBDEV_VF_K_POS = (1ULL << 5), 18*d30ea906Sjfb8856606 TEST_BBDEV_VF_C_NEG = (1ULL << 6), 19*d30ea906Sjfb8856606 TEST_BBDEV_VF_C = (1ULL << 7), 20*d30ea906Sjfb8856606 TEST_BBDEV_VF_CAB = (1ULL << 8), 21*d30ea906Sjfb8856606 TEST_BBDEV_VF_RV_INDEX = (1ULL << 9), 22*d30ea906Sjfb8856606 TEST_BBDEV_VF_ITER_MAX = (1ULL << 10), 23*d30ea906Sjfb8856606 TEST_BBDEV_VF_ITER_MIN = (1ULL << 11), 24*d30ea906Sjfb8856606 TEST_BBDEV_VF_EXPECTED_ITER_COUNT = (1ULL << 12), 25*d30ea906Sjfb8856606 TEST_BBDEV_VF_EXT_SCALE = (1ULL << 13), 26*d30ea906Sjfb8856606 TEST_BBDEV_VF_NUM_MAPS = (1ULL << 14), 27*d30ea906Sjfb8856606 TEST_BBDEV_VF_NCB = (1ULL << 15), 28*d30ea906Sjfb8856606 TEST_BBDEV_VF_NCB_NEG = (1ULL << 16), 29*d30ea906Sjfb8856606 TEST_BBDEV_VF_NCB_POS = (1ULL << 17), 30*d30ea906Sjfb8856606 TEST_BBDEV_VF_R = (1ULL << 18), 31*d30ea906Sjfb8856606 TEST_BBDEV_VF_CODE_BLOCK_MODE = (1ULL << 19), 32*d30ea906Sjfb8856606 TEST_BBDEV_VF_OP_FLAGS = (1ULL << 20), 33*d30ea906Sjfb8856606 TEST_BBDEV_VF_EXPECTED_STATUS = (1ULL << 21), 34*d30ea906Sjfb8856606 }; 35*d30ea906Sjfb8856606 36*d30ea906Sjfb8856606 enum op_data_type { 37*d30ea906Sjfb8856606 DATA_INPUT = 0, 38*d30ea906Sjfb8856606 DATA_SOFT_OUTPUT, 39*d30ea906Sjfb8856606 DATA_HARD_OUTPUT, 40*d30ea906Sjfb8856606 DATA_NUM_TYPES, 41*d30ea906Sjfb8856606 }; 42*d30ea906Sjfb8856606 43*d30ea906Sjfb8856606 struct op_data_buf { 44*d30ea906Sjfb8856606 uint32_t *addr; 45*d30ea906Sjfb8856606 uint32_t length; 46*d30ea906Sjfb8856606 }; 47*d30ea906Sjfb8856606 48*d30ea906Sjfb8856606 struct op_data_entries { 49*d30ea906Sjfb8856606 struct op_data_buf segments[RTE_BBDEV_MAX_CODE_BLOCKS]; 50*d30ea906Sjfb8856606 unsigned int nb_segments; 51*d30ea906Sjfb8856606 }; 52*d30ea906Sjfb8856606 53*d30ea906Sjfb8856606 struct test_bbdev_vector { 54*d30ea906Sjfb8856606 enum rte_bbdev_op_type op_type; 55*d30ea906Sjfb8856606 int expected_status; 56*d30ea906Sjfb8856606 int mask; 57*d30ea906Sjfb8856606 union { 58*d30ea906Sjfb8856606 struct rte_bbdev_op_turbo_dec turbo_dec; 59*d30ea906Sjfb8856606 struct rte_bbdev_op_turbo_enc turbo_enc; 60*d30ea906Sjfb8856606 }; 61*d30ea906Sjfb8856606 /* Additional storage for op data entries */ 62*d30ea906Sjfb8856606 struct op_data_entries entries[DATA_NUM_TYPES]; 63*d30ea906Sjfb8856606 }; 64*d30ea906Sjfb8856606 65*d30ea906Sjfb8856606 /* fills test vector parameters based on test file */ 66*d30ea906Sjfb8856606 int 67*d30ea906Sjfb8856606 test_bbdev_vector_read(const char *filename, 68*d30ea906Sjfb8856606 struct test_bbdev_vector *vector); 69*d30ea906Sjfb8856606 70*d30ea906Sjfb8856606 71*d30ea906Sjfb8856606 #endif /* TEST_BBDEV_VECTOR_H_ */ 72