| 314 | } |
| 315 | |
| 316 | static int |
| 317 | cryptodev_fips_validate_parse_args(int argc, char **argv) |
| 318 | { |
| 319 | int opt, ret; |
| 320 | char *prgname = argv[0]; |
| 321 | char **argvopt; |
| 322 | int option_index; |
| 323 | struct option lgopts[] = { |
| 324 | {OPT_REQ_FILE_PATH, required_argument, |
| 325 | NULL, OPT_REQ_FILE_PATH_NUM}, |
| 326 | {OPT_RSP_FILE_PATH, required_argument, |
| 327 | NULL, OPT_RSP_FILE_PATH_NUM}, |
| 328 | {OPT_FOLDER, no_argument, |
| 329 | NULL, OPT_FOLDER_NUM}, |
| 330 | {OPT_MBUF_DATAROOM, required_argument, |
| 331 | NULL, OPT_MBUF_DATAROOM_NUM}, |
| 332 | {OPT_CRYPTODEV, required_argument, |
| 333 | NULL, OPT_CRYPTODEV_NUM}, |
| 334 | {OPT_CRYPTODEV_ID, required_argument, |
| 335 | NULL, OPT_CRYPTODEV_ID_NUM}, |
| 336 | {OPT_CRYPTODEV_ST, no_argument, |
| 337 | NULL, OPT_CRYPTODEV_ST_NUM}, |
| 338 | {OPT_CRYPTODEV_BK_ID, required_argument, |
| 339 | NULL, OPT_CRYPTODEV_BK_ID_NUM}, |
| 340 | {OPT_CRYPTODEV_BK_DIR_KEY, required_argument, |
| 341 | NULL, OPT_CRYPTODEV_BK_DIR_KEY_NUM}, |
| 342 | {OPT_CRYPTODEV_ASYM, no_argument, |
| 343 | NULL, OPT_CRYPTODEV_ASYM_NUM}, |
| 344 | {NULL, 0, 0, 0} |
| 345 | }; |
| 346 | |
| 347 | argvopt = argv; |
| 348 | |
| 349 | env.mbuf_data_room = DEF_MBUF_SEG_SIZE; |
| 350 | if (rte_cryptodev_count()) |
| 351 | env.dev_id = 0; |
| 352 | else { |
| 353 | cryptodev_fips_validate_usage(prgname); |
| 354 | return -EINVAL; |
| 355 | } |
| 356 | |
| 357 | while ((opt = getopt_long(argc, argvopt, "s:", |
| 358 | lgopts, &option_index)) != EOF) { |
| 359 | |
| 360 | switch (opt) { |
| 361 | case OPT_REQ_FILE_PATH_NUM: |
| 362 | env.req_path = optarg; |
| 363 | break; |
| 364 | |
| 365 | case OPT_RSP_FILE_PATH_NUM: |
| 366 | env.rsp_path = optarg; |
| 367 | break; |
| 368 | |
| 369 | case OPT_FOLDER_NUM: |
| 370 | env.is_path_folder = 1; |
| 371 | break; |
| 372 | |
| 373 | case OPT_CRYPTODEV_NUM: |
no test coverage detected