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))
319 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
320 { RTE_BBDEV_OP_NONE }
381 struct rte_bbdev_queue_data {
389 typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
390 struct rte_bbdev_queue_data *q_data,
395 typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
396 struct rte_bbdev_queue_data *q_data,
401 typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
402 struct rte_bbdev_queue_data *q_data,
406 typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
407 struct rte_bbdev_queue_data *q_data,
410 #define RTE_BBDEV_NAME_MAX_LEN 64
418 struct rte_bbdev_data {
422 struct rte_bbdev_queue_data *queues;
432 struct rte_bbdev_callback;
436 TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
444 rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
446 rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
448 rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
450 rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
452 rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
454 rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
456 rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
458 rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
460 struct rte_bbdev_data *data;
464 struct rte_bbdev_cb_list list_cbs;
469 extern struct rte_bbdev rte_bbdev_devices[];
493 static inline uint16_t
497 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
498 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
499 return dev->enqueue_enc_ops(q_data, ops, num_ops);
524 static inline uint16_t
528 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
529 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
530 return dev->enqueue_dec_ops(q_data, ops, num_ops);
555 static inline uint16_t
559 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
560 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
561 return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
586 static inline uint16_t
590 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
591 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
592 return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
618 static inline uint16_t
622 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
623 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
624 return dev->dequeue_enc_ops(q_data, ops, num_ops);
650 static inline uint16_t
654 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
655 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
656 return dev->dequeue_dec_ops(q_data, ops, num_ops);
682 static inline uint16_t
686 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
687 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
688 return dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
713 static inline uint16_t
717 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
718 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
719 return dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);