34 #include <rte_compat.h>
42 #ifndef RTE_BBDEV_MAX_DEVS
43 #define RTE_BBDEV_MAX_DEVS 128
90 #define RTE_BBDEV_FOREACH(i) for (i = rte_bbdev_find_next(-1); \
91 i < RTE_BBDEV_MAX_DEVS; \
92 i = rte_bbdev_find_next(i))
321 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
322 { RTE_BBDEV_OP_NONE }
383 struct rte_bbdev_queue_data {
391 typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
392 struct rte_bbdev_queue_data *q_data,
397 typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
398 struct rte_bbdev_queue_data *q_data,
403 typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
404 struct rte_bbdev_queue_data *q_data,
408 typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
409 struct rte_bbdev_queue_data *q_data,
412 #define RTE_BBDEV_NAME_MAX_LEN 64
420 struct rte_bbdev_data {
424 struct rte_bbdev_queue_data *queues;
434 struct rte_bbdev_callback;
438 TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
446 rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
448 rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
450 rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
452 rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
454 rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
456 rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
458 rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
460 rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
462 struct rte_bbdev_data *data;
466 struct rte_bbdev_cb_list list_cbs;
471 extern struct rte_bbdev rte_bbdev_devices[];
495 static inline uint16_t
499 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
500 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
501 return dev->enqueue_enc_ops(q_data, ops, num_ops);
526 static inline uint16_t
530 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
531 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
532 return dev->enqueue_dec_ops(q_data, ops, num_ops);
557 static inline uint16_t
561 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
562 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
563 return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
588 static inline uint16_t
592 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
593 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
594 return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
621 static inline uint16_t
625 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
626 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
627 return dev->dequeue_enc_ops(q_data, ops, num_ops);
654 static inline uint16_t
658 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
659 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
660 return dev->dequeue_dec_ops(q_data, ops, num_ops);
686 static inline uint16_t
690 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
691 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
692 return dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
717 static inline uint16_t
721 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
722 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
723 return dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);