30 #include <rte_compat.h>
35 #ifndef RTE_BBDEV_MAX_DEVS
36 #define RTE_BBDEV_MAX_DEVS 128
44 #define RTE_BBDEV_ENQ_STATUS_SIZE_MAX 6
87 #define RTE_BBDEV_FOREACH(i) for (i = rte_bbdev_find_next(-1); \
88 i < RTE_BBDEV_MAX_DEVS; \
89 i = rte_bbdev_find_next(i))
355 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
356 { RTE_BBDEV_OP_NONE }
415 struct rte_bbdev_queue_data {
424 typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
425 struct rte_bbdev_queue_data *q_data,
430 typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
431 struct rte_bbdev_queue_data *q_data,
436 typedef uint16_t (*rte_bbdev_enqueue_fft_ops_t)(
437 struct rte_bbdev_queue_data *q_data,
442 typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
443 struct rte_bbdev_queue_data *q_data,
447 typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
448 struct rte_bbdev_queue_data *q_data,
452 typedef uint16_t (*rte_bbdev_dequeue_fft_ops_t)(
453 struct rte_bbdev_queue_data *q_data,
456 #define RTE_BBDEV_NAME_MAX_LEN 64
464 struct rte_bbdev_data {
468 struct rte_bbdev_queue_data *queues;
472 uint16_t process_cnt;
477 struct rte_bbdev_callback;
478 struct rte_intr_handle;
489 rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
491 rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
493 rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
495 rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
497 rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
499 rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
501 rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
503 rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
505 rte_bbdev_enqueue_fft_ops_t enqueue_fft_ops;
507 rte_bbdev_dequeue_fft_ops_t dequeue_fft_ops;
509 struct rte_bbdev_data *data;
511 struct rte_device *device;
513 struct rte_bbdev_cb_list list_cbs;
514 struct rte_intr_handle *intr_handle;
518 extern struct rte_bbdev rte_bbdev_devices[];
541 static inline uint16_t
545 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
546 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
547 return dev->enqueue_enc_ops(q_data, ops, num_ops);
571 static inline uint16_t
575 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
576 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
577 return dev->enqueue_dec_ops(q_data, ops, num_ops);
601 static inline uint16_t
605 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
606 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
607 return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
631 static inline uint16_t
635 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
636 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
637 return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
662 static inline uint16_t
666 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
667 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
668 return dev->enqueue_fft_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_enc_ops(q_data, ops, num_ops);
725 static inline uint16_t
729 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
730 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
731 return dev->dequeue_dec_ops(q_data, ops, num_ops);
756 static inline uint16_t
760 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
761 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
762 return dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
786 static inline uint16_t
790 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
791 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
792 return dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);
817 static inline uint16_t
821 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
822 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
823 return dev->dequeue_fft_ops(q_data, ops, num_ops);