DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_dmadev_pmd.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2021 HiSilicon Limited
3
*/
4
5
#ifndef RTE_DMADEV_PMD_H
6
#define RTE_DMADEV_PMD_H
7
16
17
#include <dev_driver.h>
18
19
#include <rte_compat.h>
20
#include "
rte_dmadev.h
"
21
22
#ifdef __cplusplus
23
extern
"C"
{
24
#endif
25
26
struct
rte_dma_dev;
27
29
typedef
int (*rte_dma_info_get_t)(
const
struct
rte_dma_dev *dev,
30
struct
rte_dma_info
*dev_info,
31
uint32_t info_sz);
32
34
typedef
int (*rte_dma_configure_t)(
struct
rte_dma_dev *dev,
35
const
struct
rte_dma_conf
*dev_conf,
36
uint32_t conf_sz);
37
39
typedef
int (*rte_dma_start_t)(
struct
rte_dma_dev *dev);
40
42
typedef
int (*rte_dma_stop_t)(
struct
rte_dma_dev *dev);
43
45
typedef
int (*rte_dma_close_t)(
struct
rte_dma_dev *dev);
46
48
typedef
int (*rte_dma_vchan_setup_t)(
struct
rte_dma_dev *dev, uint16_t vchan,
49
const
struct
rte_dma_vchan_conf
*conf,
50
uint32_t conf_sz);
51
53
typedef
int (*rte_dma_stats_get_t)(
const
struct
rte_dma_dev *dev,
54
uint16_t vchan,
struct
rte_dma_stats
*stats,
55
uint32_t stats_sz);
56
58
typedef
int (*rte_dma_stats_reset_t)(
struct
rte_dma_dev *dev, uint16_t vchan);
59
61
typedef
int (*rte_dma_vchan_status_t)(
const
struct
rte_dma_dev *dev, uint16_t vchan,
62
enum
rte_dma_vchan_status
*status);
63
65
typedef
int (*rte_dma_dump_t)(
const
struct
rte_dma_dev *dev, FILE *f);
66
68
typedef
int (*rte_dma_access_pair_group_create_t)(
const
struct
rte_dma_dev *dev,
69
rte_uuid_t
domain_id,
rte_uuid_t
token,
70
int16_t *group_id,
71
rte_dma_access_pair_group_event_cb_t
cb);
72
74
typedef
int (*rte_dma_access_pair_group_destroy_t)(
const
struct
rte_dma_dev *dev,
75
int16_t group_id);
76
78
typedef
int (*rte_dma_access_pair_group_join_t)(
const
struct
rte_dma_dev *dev,
rte_uuid_t
domain_id,
79
rte_uuid_t
token, int16_t group_id,
80
rte_dma_access_pair_group_event_cb_t
cb);
81
83
typedef
int (*rte_dma_access_pair_group_leave_t)(
const
struct
rte_dma_dev *dev, int16_t group_id);
84
86
typedef
int (*rte_dma_access_pair_group_handler_get_t)(
const
struct
rte_dma_dev *dev,
87
int16_t group_id,
rte_uuid_t
domain_id,
88
uint16_t *handler);
89
95
struct
rte_dma_dev_ops
{
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;
101
102
rte_dma_vchan_setup_t vchan_setup;
103
104
rte_dma_stats_get_t stats_get;
105
rte_dma_stats_reset_t stats_reset;
106
107
rte_dma_vchan_status_t vchan_status;
108
rte_dma_dump_t dev_dump;
109
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;
115
};
116
126
struct
__rte_cache_aligned
rte_dma_dev_data {
127
char
dev_name[RTE_DEV_NAME_MAX_LEN];
128
int16_t dev_id;
129
int16_t numa_node;
130
void
*dev_private;
131
struct
rte_dma_conf
dev_conf;
132
__extension__
133
uint8_t dev_started : 1;
134
uint64_t reserved[2];
135
};
136
142
enum
rte_dma_dev_state
{
143
RTE_DMA_DEV_UNUSED
= 0,
145
RTE_DMA_DEV_REGISTERED
,
147
RTE_DMA_DEV_READY
,
148
};
149
154
struct
__rte_cache_aligned
rte_dma_dev {
156
struct
rte_device *device;
157
struct
rte_dma_dev_data *data;
159
struct
rte_dma_fp_object *fp_obj;
161
const
struct
rte_dma_dev_ops *dev_ops;
162
enum
rte_dma_dev_state
state;
163
uint64_t reserved[2];
164
};
165
182
__rte_internal
183
struct
rte_dma_dev *rte_dma_pmd_allocate(
const
char
*name,
int
numa_node,
184
size_t
private_data_size);
185
196
__rte_internal
197
int
rte_dma_pmd_release(
const
char
*name);
198
209
__rte_internal
210
struct
rte_dma_dev *rte_dma_pmd_get_dev_by_id(int16_t dev_id);
211
212
#ifdef __cplusplus
213
}
214
#endif
215
216
#endif
/* RTE_DMADEV_PMD_H */
__rte_cache_aligned
#define __rte_cache_aligned
Definition
rte_common.h:739
rte_dmadev.h
rte_dma_access_pair_group_event_cb_t
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)
Definition
rte_dmadev.h:856
rte_dma_vchan_status
rte_dma_vchan_status
Definition
rte_dmadev.h:773
rte_dma_dev_state
rte_dma_dev_state
Definition
rte_dmadev_pmd.h:142
RTE_DMA_DEV_REGISTERED
@ RTE_DMA_DEV_REGISTERED
Definition
rte_dmadev_pmd.h:145
RTE_DMA_DEV_READY
@ RTE_DMA_DEV_READY
Definition
rte_dmadev_pmd.h:147
RTE_DMA_DEV_UNUSED
@ RTE_DMA_DEV_UNUSED
Definition
rte_dmadev_pmd.h:143
rte_uuid_t
unsigned char rte_uuid_t[16]
Definition
rte_uuid.h:24
rte_dma_conf
Definition
rte_dmadev.h:360
rte_dma_dev_ops
Definition
rte_dmadev_pmd.h:95
rte_dma_info
Definition
rte_dmadev.h:313
rte_dma_stats
Definition
rte_dmadev.h:716
rte_dma_vchan_conf
Definition
rte_dmadev.h:649
lib
dmadev
rte_dmadev_pmd.h
Generated by
1.17.0