| 1033 | } |
| 1034 | |
| 1035 | int |
| 1036 | main(int argc, char **argv) |
| 1037 | { |
| 1038 | int ret; |
| 1039 | unsigned int nb_bbdevs, flags, lcore_id; |
| 1040 | void *sigret; |
| 1041 | struct app_config_params app_params = def_app_config; |
| 1042 | struct rte_mempool *ethdev_mbuf_mempool, *bbdev_mbuf_mempool; |
| 1043 | struct rte_mempool *bbdev_op_pools[RTE_BBDEV_OP_TYPE_SIZE_MAX]; |
| 1044 | struct lcore_conf lcore_conf[RTE_MAX_LCORE] = { {0} }; |
| 1045 | struct lcore_statistics lcore_stats[RTE_MAX_LCORE] = { {0} }; |
| 1046 | struct stats_lcore_params stats_lcore; |
| 1047 | struct rte_ring *enc_to_dec_ring; |
| 1048 | bool stats_thread_started = false; |
| 1049 | unsigned int main_lcore_id = rte_get_main_lcore(); |
| 1050 | |
| 1051 | static const struct rte_mbuf_dynfield input_dynfield_desc = { |
| 1052 | .name = "example_bbdev_dynfield_input", |
| 1053 | .size = sizeof(struct rte_mbuf *), |
| 1054 | .align = __alignof__(struct rte_mbuf *), |
| 1055 | }; |
| 1056 | |
| 1057 | __atomic_store_n(&global_exit_flag, 0, __ATOMIC_RELAXED); |
| 1058 | |
| 1059 | sigret = signal(SIGTERM, signal_handler); |
| 1060 | if (sigret == SIG_ERR) |
| 1061 | rte_exit(EXIT_FAILURE, "signal(%d, ...) failed", SIGTERM); |
| 1062 | |
| 1063 | sigret = signal(SIGINT, signal_handler); |
| 1064 | if (sigret == SIG_ERR) |
| 1065 | rte_exit(EXIT_FAILURE, "signal(%d, ...) failed", SIGINT); |
| 1066 | |
| 1067 | ret = rte_eal_init(argc, argv); |
| 1068 | if (ret < 0) |
| 1069 | rte_exit(EXIT_FAILURE, "Invalid EAL arguments\n"); |
| 1070 | |
| 1071 | argc -= ret; |
| 1072 | argv += ret; |
| 1073 | |
| 1074 | /* parse application arguments (after the EAL ones) */ |
| 1075 | ret = bbdev_parse_args(argc, argv, &app_params); |
| 1076 | if (ret < 0) |
| 1077 | rte_exit(EXIT_FAILURE, "Invalid BBDEV arguments\n"); |
| 1078 | |
| 1079 | /*create bbdev op pools*/ |
| 1080 | bbdev_op_pools[RTE_BBDEV_OP_TURBO_DEC] = |
| 1081 | rte_bbdev_op_pool_create("bbdev_op_pool_dec", |
| 1082 | RTE_BBDEV_OP_TURBO_DEC, NB_MBUF, 128, rte_socket_id()); |
| 1083 | bbdev_op_pools[RTE_BBDEV_OP_TURBO_ENC] = |
| 1084 | rte_bbdev_op_pool_create("bbdev_op_pool_enc", |
| 1085 | RTE_BBDEV_OP_TURBO_ENC, NB_MBUF, 128, rte_socket_id()); |
| 1086 | |
| 1087 | if ((bbdev_op_pools[RTE_BBDEV_OP_TURBO_DEC] == NULL) || |
| 1088 | (bbdev_op_pools[RTE_BBDEV_OP_TURBO_ENC] == NULL)) |
| 1089 | rte_exit(EXIT_FAILURE, "Cannot create bbdev op pools\n"); |
| 1090 | |
| 1091 | /* Create encoder to decoder ring */ |
| 1092 | flags = (app_params.num_enc_cores == 1) ? RING_F_SP_ENQ : 0; |
nothing calls this directly
no test coverage detected