5 #ifndef RTE_DMADEV_PMD_H
6 #define RTE_DMADEV_PMD_H
17 #include <dev_driver.h>
19 #include <rte_compat.h>
29 typedef int (*rte_dma_info_get_t)(
const struct rte_dma_dev *dev,
34 typedef int (*rte_dma_configure_t)(
struct rte_dma_dev *dev,
39 typedef int (*rte_dma_start_t)(
struct rte_dma_dev *dev);
42 typedef int (*rte_dma_stop_t)(
struct rte_dma_dev *dev);
45 typedef int (*rte_dma_close_t)(
struct rte_dma_dev *dev);
48 typedef int (*rte_dma_vchan_setup_t)(
struct rte_dma_dev *dev, uint16_t vchan,
53 typedef int (*rte_dma_stats_get_t)(
const struct rte_dma_dev *dev,
58 typedef int (*rte_dma_stats_reset_t)(
struct rte_dma_dev *dev, uint16_t vchan);
61 typedef int (*rte_dma_vchan_status_t)(
const struct rte_dma_dev *dev, uint16_t vchan,
65 typedef int (*rte_dma_dump_t)(
const struct rte_dma_dev *dev, FILE *f);
68 typedef int (*rte_dma_access_pair_group_create_t)(
const struct rte_dma_dev *dev,
74 typedef int (*rte_dma_access_pair_group_destroy_t)(
const struct rte_dma_dev *dev,
78 typedef int (*rte_dma_access_pair_group_join_t)(
const struct rte_dma_dev *dev,
rte_uuid_t domain_id,
83 typedef int (*rte_dma_access_pair_group_leave_t)(
const struct rte_dma_dev *dev, int16_t group_id);
86 typedef int (*rte_dma_access_pair_group_handler_get_t)(
const struct rte_dma_dev *dev,
96 rte_dma_info_get_t dev_info_get;
97 rte_dma_configure_t dev_configure;
98 rte_dma_start_t dev_start;
99 rte_dma_stop_t dev_stop;
100 rte_dma_close_t dev_close;
102 rte_dma_vchan_setup_t vchan_setup;
104 rte_dma_stats_get_t stats_get;
105 rte_dma_stats_reset_t stats_reset;
107 rte_dma_vchan_status_t vchan_status;
108 rte_dma_dump_t dev_dump;
110 rte_dma_access_pair_group_create_t access_pair_group_create;
111 rte_dma_access_pair_group_destroy_t access_pair_group_destroy;
112 rte_dma_access_pair_group_join_t access_pair_group_join;
113 rte_dma_access_pair_group_leave_t access_pair_group_leave;
114 rte_dma_access_pair_group_handler_get_t access_pair_group_handler_get;
127 char dev_name[RTE_DEV_NAME_MAX_LEN];
133 uint8_t dev_started : 1;
134 uint64_t reserved[2];
156 struct rte_device *device;
157 struct rte_dma_dev_data *data;
159 struct rte_dma_fp_object *fp_obj;
163 uint64_t reserved[2];
183 struct rte_dma_dev *rte_dma_pmd_allocate(
const char *name,
int numa_node,
184 size_t private_data_size);
197 int rte_dma_pmd_release(
const char *name);
210 struct rte_dma_dev *rte_dma_pmd_get_dev_by_id(int16_t dev_id);
#define __rte_cache_aligned
void(* rte_dma_access_pair_group_event_cb_t)(int16_t dev_id, int16_t group_id, rte_uuid_t domain_id, enum rte_dma_access_pair_group_event_type event)
unsigned char rte_uuid_t[16]