DPDK
24.11.4
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
72
struct
rte_dma_dev_ops
{
73
rte_dma_info_get_t dev_info_get;
74
rte_dma_configure_t dev_configure;
75
rte_dma_start_t dev_start;
76
rte_dma_stop_t dev_stop;
77
rte_dma_close_t dev_close;
78
79
rte_dma_vchan_setup_t vchan_setup;
80
81
rte_dma_stats_get_t stats_get;
82
rte_dma_stats_reset_t stats_reset;
83
84
rte_dma_vchan_status_t vchan_status;
85
rte_dma_dump_t dev_dump;
86
};
87
97
struct
__rte_cache_aligned
rte_dma_dev_data {
98
char
dev_name[RTE_DEV_NAME_MAX_LEN];
99
int16_t dev_id;
100
int16_t numa_node;
101
void
*dev_private;
102
struct
rte_dma_conf
dev_conf;
103
__extension__
104
uint8_t dev_started : 1;
105
uint64_t reserved[2];
106
};
107
113
enum
rte_dma_dev_state
{
114
RTE_DMA_DEV_UNUSED
= 0,
116
RTE_DMA_DEV_REGISTERED
,
118
RTE_DMA_DEV_READY
,
119
};
120
125
struct
__rte_cache_aligned
rte_dma_dev {
127
struct
rte_device *device;
128
struct
rte_dma_dev_data *data;
130
struct
rte_dma_fp_object *fp_obj;
132
const
struct
rte_dma_dev_ops *dev_ops;
133
enum
rte_dma_dev_state
state;
134
uint64_t reserved[2];
135
};
136
153
__rte_internal
154
struct
rte_dma_dev *rte_dma_pmd_allocate(
const
char
*name,
int
numa_node,
155
size_t
private_data_size);
156
167
__rte_internal
168
int
rte_dma_pmd_release(
const
char
*name);
169
180
__rte_internal
181
struct
rte_dma_dev *rte_dma_pmd_get_dev_by_id(int16_t dev_id);
182
183
#ifdef __cplusplus
184
}
185
#endif
186
187
#endif
/* RTE_DMADEV_PMD_H */
__rte_cache_aligned
#define __rte_cache_aligned
Definition
rte_common.h:627
rte_dmadev.h
rte_dma_vchan_status
rte_dma_vchan_status
Definition
rte_dmadev.h:684
rte_dma_dev_state
rte_dma_dev_state
Definition
rte_dmadev_pmd.h:113
RTE_DMA_DEV_REGISTERED
@ RTE_DMA_DEV_REGISTERED
Definition
rte_dmadev_pmd.h:116
RTE_DMA_DEV_READY
@ RTE_DMA_DEV_READY
Definition
rte_dmadev_pmd.h:118
RTE_DMA_DEV_UNUSED
@ RTE_DMA_DEV_UNUSED
Definition
rte_dmadev_pmd.h:114
rte_dma_conf
Definition
rte_dmadev.h:333
rte_dma_dev_ops
Definition
rte_dmadev_pmd.h:72
rte_dma_info
Definition
rte_dmadev.h:286
rte_dma_stats
Definition
rte_dmadev.h:627
rte_dma_vchan_conf
Definition
rte_dmadev.h:570
lib
dmadev
rte_dmadev_pmd.h
Generated by
1.17.0