DPDK  25.03.0
rte_bbdev.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  */
4 
5 #ifndef _RTE_BBDEV_H_
6 #define _RTE_BBDEV_H_
7 
23 #include <stdint.h>
24 #include <stdbool.h>
25 
26 #include <rte_compat.h>
27 #include <rte_cpuflags.h>
28 
29 #include "rte_bbdev_op.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #include "rte_bbdev_trace_fp.h"
36 
37 #ifndef RTE_BBDEV_MAX_DEVS
38 #define RTE_BBDEV_MAX_DEVS 128
39 #endif
40 
41 /*
42  * Maximum size to be used to manage the enum rte_bbdev_enqueue_status
43  * including padding for future enum insertion.
44  * The enum values must be explicitly kept smaller or equal to this padded maximum size.
45  */
46 #define RTE_BBDEV_ENQ_STATUS_SIZE_MAX 6
47 
50  RTE_BBDEV_UNUSED,
51  RTE_BBDEV_INITIALIZED
52 };
53 
60 uint16_t
61 rte_bbdev_count(void);
62 
72 bool
73 rte_bbdev_is_valid(uint16_t dev_id);
74 
85 uint16_t
86 rte_bbdev_find_next(uint16_t dev_id);
87 
89 #define RTE_BBDEV_FOREACH(i) for (i = rte_bbdev_find_next(-1); \
90  i < RTE_BBDEV_MAX_DEVS; \
91  i = rte_bbdev_find_next(i))
92 
114 int
115 rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);
116 
131 int
132 rte_bbdev_intr_enable(uint16_t dev_id);
133 
136  int socket;
137  uint32_t queue_size;
138  uint8_t priority;
141 };
142 
160 int
161 rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
162  const struct rte_bbdev_queue_conf *conf);
163 
175 int
176 rte_bbdev_start(uint16_t dev_id);
177 
188 int
189 rte_bbdev_stop(uint16_t dev_id);
190 
201 int
202 rte_bbdev_close(uint16_t dev_id);
203 
218 int
219 rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);
220 
233 int
234 rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id);
235 
249  /* Note: RTE_BBDEV_ENQ_STATUS_SIZE_MAX must be larger or equal to maximum enum value. */
250 };
251 
265 };
266 
269  uint64_t enqueued_count;
270  uint64_t dequeued_count;
280  uint64_t enqueue_status_count[RTE_BBDEV_ENQ_STATUS_SIZE_MAX];
290 };
291 
305 int
306 rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);
307 
316 int
317 rte_bbdev_stats_reset(uint16_t dev_id);
318 
321 /* Structure rte_bbdev_driver_info 8< */
324  const char *driver_name;
325 
327  unsigned int max_num_queues;
329  unsigned int num_queues[RTE_BBDEV_OP_TYPE_SIZE_MAX];
331  unsigned int queue_priority[RTE_BBDEV_OP_TYPE_SIZE_MAX];
333  uint32_t queue_size_lim;
347  uint16_t min_alignment;
357  const enum rte_cpu_flag_t *cpu_flag_reqs;
359  uint16_t *fft_window_width;
360 };
361 /* >8 End of structure rte_bbdev_driver_info. */
362 
364 #define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
365  { RTE_BBDEV_OP_NONE }
366 
372 /* Structure rte_bbdev_info 8< */
374  int socket_id;
375  const char *dev_name;
376  const struct rte_device *device;
377  uint16_t num_queues;
378  bool started;
380 };
381 /* >8 End of structure rte_bbdev_info. */
382 
396 int
397 rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info);
398 
404  bool started;
405 };
406 
422 int
423 rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
424  struct rte_bbdev_queue_info *queue_info);
425 
427 struct rte_bbdev_queue_data {
428  void *queue_private;
429  struct rte_bbdev_queue_conf conf;
430  struct rte_bbdev_stats queue_stats;
431  enum rte_bbdev_enqueue_status enqueue_status;
432  bool started;
433 };
434 
436 typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
437  struct rte_bbdev_queue_data *q_data,
438  struct rte_bbdev_enc_op **ops,
439  uint16_t num);
440 
442 typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
443  struct rte_bbdev_queue_data *q_data,
444  struct rte_bbdev_dec_op **ops,
445  uint16_t num);
446 
448 typedef uint16_t (*rte_bbdev_enqueue_fft_ops_t)(
449  struct rte_bbdev_queue_data *q_data,
450  struct rte_bbdev_fft_op **ops,
451  uint16_t num);
452 
454 typedef uint16_t (*rte_bbdev_enqueue_mldts_ops_t)(
455  struct rte_bbdev_queue_data *q_data,
456  struct rte_bbdev_mldts_op **ops,
457  uint16_t num);
458 
460 typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
461  struct rte_bbdev_queue_data *q_data,
462  struct rte_bbdev_enc_op **ops, uint16_t num);
463 
465 typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
466  struct rte_bbdev_queue_data *q_data,
467  struct rte_bbdev_dec_op **ops, uint16_t num);
468 
470 typedef uint16_t (*rte_bbdev_dequeue_fft_ops_t)(
471  struct rte_bbdev_queue_data *q_data,
472  struct rte_bbdev_fft_op **ops, uint16_t num);
473 
475 typedef uint16_t (*rte_bbdev_dequeue_mldts_ops_t)(
476  struct rte_bbdev_queue_data *q_data,
477  struct rte_bbdev_mldts_op **ops, uint16_t num);
478 
479 #define RTE_BBDEV_NAME_MAX_LEN 64
487 struct rte_bbdev_data {
488  char name[RTE_BBDEV_NAME_MAX_LEN];
489  void *dev_private;
490  uint16_t num_queues;
491  struct rte_bbdev_queue_data *queues;
492  uint16_t dev_id;
493  int socket_id;
494  bool started;
495  RTE_ATOMIC(uint16_t) process_cnt;
496 };
497 
498 /* Forward declarations */
499 struct rte_bbdev_ops;
500 struct rte_bbdev_callback;
501 struct rte_intr_handle;
502 
504 RTE_TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
505 
510 struct __rte_cache_aligned rte_bbdev {
512  rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
514  rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
516  rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
518  rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
520  rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
522  rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
524  rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
526  rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
528  rte_bbdev_enqueue_fft_ops_t enqueue_fft_ops;
530  rte_bbdev_dequeue_fft_ops_t dequeue_fft_ops;
531  const struct rte_bbdev_ops *dev_ops;
532  struct rte_bbdev_data *data;
533  enum rte_bbdev_state state;
534  struct rte_device *device;
536  struct rte_bbdev_cb_list list_cbs;
537  struct rte_intr_handle *intr_handle;
539  rte_bbdev_enqueue_mldts_ops_t enqueue_mldts_ops;
541  rte_bbdev_dequeue_mldts_ops_t dequeue_mldts_ops;
542 };
543 
545 extern struct rte_bbdev rte_bbdev_devices[];
546 
568 static inline uint16_t
569 rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id,
570  struct rte_bbdev_enc_op **ops, uint16_t num_ops)
571 {
572  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
573  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
574  rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
576  return dev->enqueue_enc_ops(q_data, ops, num_ops);
577 }
578 
600 static inline uint16_t
601 rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id,
602  struct rte_bbdev_dec_op **ops, uint16_t num_ops)
603 {
604  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
605  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
606  rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
608  return dev->enqueue_dec_ops(q_data, ops, num_ops);
609 }
610 
632 static inline uint16_t
633 rte_bbdev_enqueue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id,
634  struct rte_bbdev_enc_op **ops, uint16_t num_ops)
635 {
636  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
637  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
638  rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
640  return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
641 }
642 
664 static inline uint16_t
665 rte_bbdev_enqueue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id,
666  struct rte_bbdev_dec_op **ops, uint16_t num_ops)
667 {
668  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
669  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
670  rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
672  return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
673 }
674 
696 static inline uint16_t
697 rte_bbdev_enqueue_fft_ops(uint16_t dev_id, uint16_t queue_id,
698  struct rte_bbdev_fft_op **ops, uint16_t num_ops)
699 {
700  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
701  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
702  rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
704  return dev->enqueue_fft_ops(q_data, ops, num_ops);
705 }
706 
728 static inline uint16_t
729 rte_bbdev_enqueue_mldts_ops(uint16_t dev_id, uint16_t queue_id,
730  struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
731 {
732  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
733  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
734  rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
736  return dev->enqueue_mldts_ops(q_data, ops, num_ops);
737 }
738 
761 static inline uint16_t
762 rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id,
763  struct rte_bbdev_enc_op **ops, uint16_t num_ops)
764 {
765  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
766  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
767  uint16_t num_ops_dequeued = dev->dequeue_enc_ops(q_data, ops, num_ops);
768  if (num_ops_dequeued > 0)
769  rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
770  num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_TURBO_ENC));
771  return num_ops_dequeued;
772 }
773 
797 static inline uint16_t
798 rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id,
799  struct rte_bbdev_dec_op **ops, uint16_t num_ops)
800 {
801  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
802  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
803  uint16_t num_ops_dequeued = dev->dequeue_dec_ops(q_data, ops, num_ops);
804  if (num_ops_dequeued > 0)
805  rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
806  num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_TURBO_DEC));
807  return num_ops_dequeued;
808 }
809 
810 
832 static inline uint16_t
833 rte_bbdev_dequeue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id,
834  struct rte_bbdev_enc_op **ops, uint16_t num_ops)
835 {
836  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
837  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
838  uint16_t num_ops_dequeued = dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
839  if (num_ops_dequeued > 0)
840  rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
841  num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_LDPC_ENC));
842  return num_ops_dequeued;
843 }
844 
866 static inline uint16_t
867 rte_bbdev_dequeue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id,
868  struct rte_bbdev_dec_op **ops, uint16_t num_ops)
869 {
870  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
871  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
872  uint16_t num_ops_dequeued = dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);
873  if (num_ops_dequeued > 0)
874  rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
875  num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_LDPC_DEC));
876  return num_ops_dequeued;
877 }
878 
900 static inline uint16_t
901 rte_bbdev_dequeue_fft_ops(uint16_t dev_id, uint16_t queue_id,
902  struct rte_bbdev_fft_op **ops, uint16_t num_ops)
903 {
904  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
905  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
906  uint16_t num_ops_dequeued = dev->dequeue_fft_ops(q_data, ops, num_ops);
907  if (num_ops_dequeued > 0)
908  rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
909  num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_FFT));
910  return num_ops_dequeued;
911 }
912 
934 static inline uint16_t
935 rte_bbdev_dequeue_mldts_ops(uint16_t dev_id, uint16_t queue_id,
936  struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
937 {
938  struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
939  struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
940  uint16_t num_ops_dequeued = dev->dequeue_mldts_ops(q_data, ops, num_ops);
941  if (num_ops_dequeued > 0)
942  rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
943  num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_MLDTS));
944  return num_ops_dequeued;
945 }
946 
953 };
954 
968 typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,
969  enum rte_bbdev_event_type event, void *cb_arg,
970  void *ret_param);
971 
989 int
990 rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,
991  rte_bbdev_cb_fn cb_fn, void *cb_arg);
992 
1012 int
1013 rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,
1014  rte_bbdev_cb_fn cb_fn, void *cb_arg);
1015 
1032 int
1033 rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);
1034 
1048 int
1049 rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);
1050 
1075 int
1076 rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
1077  void *data);
1078 
1088 const char*
1090 
1100 const char*
1102 
1122 __rte_experimental
1123 int
1124 rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_index, FILE *file);
1125 
1126 
1146 __rte_experimental
1147 char *
1148 rte_bbdev_ops_param_string(void *op, enum rte_bbdev_op_type op_type, char *str, uint32_t len);
1149 
1150 #ifdef __cplusplus
1151 }
1152 #endif
1153 
1154 #endif /* _RTE_BBDEV_H_ */
__rte_experimental int rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_index, FILE *file)
uint64_t acc_offload_cycles
Definition: rte_bbdev.h:287
uint16_t num_queues
Definition: rte_bbdev.h:377
int rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id, const struct rte_bbdev_queue_conf *conf)
int rte_bbdev_intr_enable(uint16_t dev_id)
enum rte_bbdev_device_status device_status
Definition: rte_bbdev.h:343
uint64_t enqueued_count
Definition: rte_bbdev.h:269
int rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op, void *data)
int rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id)
static uint16_t rte_bbdev_enqueue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:633
RTE_TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback)
uint64_t dequeue_err_count
Definition: rte_bbdev.h:274
const char * driver_name
Definition: rte_bbdev.h:324
rte_bbdev_op_type
Definition: rte_bbdev_op.h:930
static uint16_t rte_bbdev_dequeue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:833
uint32_t harq_buffer_size
Definition: rte_bbdev.h:345
uint8_t max_dl_queue_priority
Definition: rte_bbdev.h:337
static uint16_t rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:798
static uint16_t rte_bbdev_dequeue_fft_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_fft_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:901
int rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_queue_info *queue_info)
struct rte_bbdev_driver_info drv
Definition: rte_bbdev.h:379
#define __rte_cache_aligned
Definition: rte_common.h:705
uint16_t rte_bbdev_find_next(uint16_t dev_id)
uint64_t enqueue_status_count[RTE_BBDEV_ENQ_STATUS_SIZE_MAX]
Definition: rte_bbdev.h:280
uint16_t min_alignment
Definition: rte_bbdev.h:347
int rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats)
int rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info)
unsigned int num_queues[RTE_BBDEV_OP_TYPE_SIZE_MAX]
Definition: rte_bbdev.h:329
unsigned int max_num_queues
Definition: rte_bbdev.h:327
enum rte_bbdev_op_type op_type
Definition: rte_bbdev.h:140
int rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id)
int rte_bbdev_start(uint16_t dev_id)
unsigned int queue_priority[RTE_BBDEV_OP_TYPE_SIZE_MAX]
Definition: rte_bbdev.h:331
uint16_t rte_bbdev_count(void)
const char * rte_bbdev_enqueue_status_str(enum rte_bbdev_enqueue_status status)
uint16_t enqueue_depth_avail
Definition: rte_bbdev.h:289
static uint16_t rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:601
__rte_experimental char * rte_bbdev_ops_param_string(void *op, enum rte_bbdev_op_type op_type, char *str, uint32_t len)
bool rte_bbdev_is_valid(uint16_t dev_id)
static uint16_t rte_bbdev_enqueue_fft_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_fft_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:697
uint64_t enqueue_warn_count
Definition: rte_bbdev.h:276
#define RTE_BBDEV_NAME_MAX_LEN
Definition: rte_bbdev.h:479
rte_bbdev_enqueue_status
Definition: rte_bbdev.h:244
int rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id)
static uint16_t rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:762
uint64_t dequeue_warn_count
Definition: rte_bbdev.h:278
uint32_t queue_size_lim
Definition: rte_bbdev.h:333
rte_bbdev_state
Definition: rte_bbdev.h:49
struct rte_bbdev_queue_conf conf
Definition: rte_bbdev.h:402
int rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id)
static uint16_t rte_bbdev_dequeue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:867
int rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void *cb_arg)
static uint16_t rte_bbdev_enqueue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:665
uint16_t * fft_window_width
Definition: rte_bbdev.h:359
const char * dev_name
Definition: rte_bbdev.h:375
int rte_bbdev_stats_reset(uint16_t dev_id)
rte_bbdev_event_type
Definition: rte_bbdev.h:948
const char * rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type)
const struct rte_device * device
Definition: rte_bbdev.h:376
static uint16_t rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:569
rte_bbdev_device_status
Definition: rte_bbdev.h:255
const struct rte_bbdev_op_cap * capabilities
Definition: rte_bbdev.h:355
int rte_bbdev_stop(uint16_t dev_id)
int rte_bbdev_close(uint16_t dev_id)
struct rte_bbdev_queue_conf default_queue_conf
Definition: rte_bbdev.h:353
static uint16_t rte_bbdev_enqueue_mldts_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:729
int rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void *cb_arg)
uint8_t max_ul_queue_priority
Definition: rte_bbdev.h:339
static uint16_t rte_bbdev_dequeue_mldts_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:935
enum rte_cpu_flag_t * cpu_flag_reqs
Definition: rte_bbdev.h:357
uint64_t enqueue_err_count
Definition: rte_bbdev.h:272
uint64_t dequeued_count
Definition: rte_bbdev.h:270
const char * rte_bbdev_device_status_str(enum rte_bbdev_device_status status)
void(* rte_bbdev_cb_fn)(uint16_t dev_id, enum rte_bbdev_event_type event, void *cb_arg, void *ret_param)
Definition: rte_bbdev.h:968
int rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id)