35 #include <rte_compat.h>
43 #ifndef RTE_BBDEV_MAX_DEVS
44 #define RTE_BBDEV_MAX_DEVS 128
91 #define RTE_BBDEV_FOREACH(i) for (i = rte_bbdev_find_next(-1); \
92 i < RTE_BBDEV_MAX_DEVS; \
93 i = rte_bbdev_find_next(i))
320 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
321 { RTE_BBDEV_OP_NONE }
382 struct rte_bbdev_queue_data {
390 typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
391 struct rte_bbdev_queue_data *q_data,
396 typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
397 struct rte_bbdev_queue_data *q_data,
402 typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
403 struct rte_bbdev_queue_data *q_data,
407 typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
408 struct rte_bbdev_queue_data *q_data,
411 #define RTE_BBDEV_NAME_MAX_LEN 64
419 struct rte_bbdev_data {
423 struct rte_bbdev_queue_data *queues;
433 struct rte_bbdev_callback;
437 TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
445 rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
447 rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
449 rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
451 rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
453 rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
455 rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
457 rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
459 rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
461 struct rte_bbdev_data *data;
465 struct rte_bbdev_cb_list list_cbs;
470 extern struct rte_bbdev rte_bbdev_devices[];
494 static inline uint16_t
498 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
499 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
500 return dev->enqueue_enc_ops(q_data, ops, num_ops);
525 static inline uint16_t
529 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
530 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
531 return dev->enqueue_dec_ops(q_data, ops, num_ops);
556 static inline uint16_t
560 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
561 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
562 return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
587 static inline uint16_t
591 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
592 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
593 return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
619 static inline uint16_t
623 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
624 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
625 return dev->dequeue_enc_ops(q_data, ops, num_ops);
651 static inline uint16_t
655 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
656 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
657 return dev->dequeue_dec_ops(q_data, ops, num_ops);
683 static inline uint16_t
687 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
688 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
689 return dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
714 static inline uint16_t
718 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
719 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
720 return dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);