| 371 | sizeof(uint64_t)) / sizeof(uint64_t)) |
| 372 | |
| 373 | static int |
| 374 | crypto_caps_array(struct rte_tel_data *d, |
| 375 | const struct rte_cryptodev_capabilities *capabilities) |
| 376 | { |
| 377 | const struct rte_cryptodev_capabilities *dev_caps; |
| 378 | uint64_t caps_val[CRYPTO_CAPS_SZ]; |
| 379 | unsigned int i = 0, j; |
| 380 | |
| 381 | rte_tel_data_start_array(d, RTE_TEL_UINT_VAL); |
| 382 | |
| 383 | while ((dev_caps = &capabilities[i++])->op != |
| 384 | RTE_CRYPTO_OP_TYPE_UNDEFINED) { |
| 385 | memset(&caps_val, 0, CRYPTO_CAPS_SZ * sizeof(caps_val[0])); |
| 386 | rte_memcpy(caps_val, dev_caps, sizeof(capabilities[0])); |
| 387 | for (j = 0; j < CRYPTO_CAPS_SZ; j++) |
| 388 | rte_tel_data_add_array_uint(d, caps_val[j]); |
| 389 | } |
| 390 | |
| 391 | return (i - 1); |
| 392 | } |
| 393 | |
| 394 | #define SEC_CAPS_SZ \ |
| 395 | (RTE_ALIGN_CEIL(sizeof(struct rte_security_capability), \ |
no test coverage detected