31 #include <rte_compat.h>
38 #ifndef RTE_BBDEV_MAX_DEVS
39 #define RTE_BBDEV_MAX_DEVS 128
83 #define RTE_BBDEV_FOREACH(i) for (i = rte_bbdev_find_next(-1); \
84 i < RTE_BBDEV_MAX_DEVS; \
85 i = rte_bbdev_find_next(i))
308 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
309 { RTE_BBDEV_OP_NONE }
368 struct rte_bbdev_queue_data {
376 typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
377 struct rte_bbdev_queue_data *q_data,
382 typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
383 struct rte_bbdev_queue_data *q_data,
388 typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
389 struct rte_bbdev_queue_data *q_data,
393 typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
394 struct rte_bbdev_queue_data *q_data,
397 #define RTE_BBDEV_NAME_MAX_LEN 64
405 struct rte_bbdev_data {
409 struct rte_bbdev_queue_data *queues;
413 uint16_t process_cnt;
418 struct rte_bbdev_callback;
419 struct rte_intr_handle;
430 rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
432 rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
434 rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
436 rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
438 rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
440 rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
442 rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
444 rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
446 struct rte_bbdev_data *data;
450 struct rte_bbdev_cb_list list_cbs;
451 struct rte_intr_handle *intr_handle;
455 extern struct rte_bbdev rte_bbdev_devices[];
478 static inline uint16_t
482 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
483 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
484 return dev->enqueue_enc_ops(q_data, ops, num_ops);
508 static inline uint16_t
512 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
513 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
514 return dev->enqueue_dec_ops(q_data, ops, num_ops);
538 static inline uint16_t
542 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
543 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
544 return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
568 static inline uint16_t
572 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
573 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
574 return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
600 static inline uint16_t
604 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
605 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
606 return dev->dequeue_enc_ops(q_data, ops, num_ops);
632 static inline uint16_t
636 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
637 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
638 return dev->dequeue_dec_ops(q_data, ops, num_ops);
663 static inline uint16_t
667 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
668 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
669 return dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
693 static inline uint16_t
697 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
698 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
699 return dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);