| 892 | } |
| 893 | |
| 894 | struct rte_mempool * |
| 895 | rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type, |
| 896 | unsigned int num_elements, unsigned int cache_size, |
| 897 | int socket_id) |
| 898 | { |
| 899 | struct rte_bbdev_op_pool_private *priv; |
| 900 | struct rte_mempool *mp; |
| 901 | const char *op_type_str; |
| 902 | |
| 903 | if (name == NULL) { |
| 904 | rte_bbdev_log(ERR, "NULL name for op pool"); |
| 905 | return NULL; |
| 906 | } |
| 907 | |
| 908 | if (type >= BBDEV_OP_TYPE_COUNT) { |
| 909 | rte_bbdev_log(ERR, |
| 910 | "Invalid op type (%u), should be less than %u", |
| 911 | type, BBDEV_OP_TYPE_COUNT); |
| 912 | return NULL; |
| 913 | } |
| 914 | |
| 915 | mp = rte_mempool_create(name, num_elements, get_bbdev_op_size(type), |
| 916 | cache_size, sizeof(struct rte_bbdev_op_pool_private), |
| 917 | NULL, NULL, bbdev_op_init, &type, socket_id, 0); |
| 918 | if (mp == NULL) { |
| 919 | rte_bbdev_log(ERR, |
| 920 | "Failed to create op pool %s (num ops=%u, op size=%u) with error: %s", |
| 921 | name, num_elements, get_bbdev_op_size(type), |
| 922 | rte_strerror(rte_errno)); |
| 923 | return NULL; |
| 924 | } |
| 925 | |
| 926 | op_type_str = rte_bbdev_op_type_str(type); |
| 927 | if (op_type_str == NULL) |
| 928 | return NULL; |
| 929 | |
| 930 | rte_bbdev_log_debug( |
| 931 | "Op pool %s created for %u ops (type=%s, cache=%u, socket=%u, size=%u)", |
| 932 | name, num_elements, op_type_str, cache_size, socket_id, |
| 933 | get_bbdev_op_size(type)); |
| 934 | |
| 935 | priv = (struct rte_bbdev_op_pool_private *)rte_mempool_get_priv(mp); |
| 936 | priv->type = type; |
| 937 | |
| 938 | return mp; |
| 939 | } |
| 940 | |
| 941 | int |
| 942 | rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event, |