DPDK  22.03.0
rte_ioat_rawdev.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2019 Intel Corporation
3  */
4 
5 #ifndef _RTE_IOAT_RAWDEV_H_
6 #define _RTE_IOAT_RAWDEV_H_
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
21 #include <rte_common.h>
22 
24 #define IOAT_PMD_RAWDEV_NAME rawdev_ioat
25 
26 #define IOAT_PMD_RAWDEV_NAME_STR "rawdev_ioat"
27 
36  unsigned short ring_size;
37  bool hdls_disable;
42 };
43 
66 static inline int
67 __rte_experimental
68 rte_ioat_enqueue_fill(int dev_id, uint64_t pattern, phys_addr_t dst,
69  unsigned int length, uintptr_t dst_hdl);
70 
98 static inline int
99 __rte_experimental
100 rte_ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
101  unsigned int length, uintptr_t src_hdl, uintptr_t dst_hdl);
102 
118 static inline int
119 __rte_experimental
120 rte_ioat_fence(int dev_id);
121 
122 
134 static inline int
135 __rte_experimental
136 rte_ioat_perform_ops(int dev_id);
137 
138 /*
139  * Status codes for operations.
140  */
141 #define RTE_IOAT_OP_SUCCESS 0
142 #define RTE_IOAT_OP_SKIPPED 1
143 /* Values >1 indicate a failure condition */
144 /* Error codes taken from Intel(R) Data Streaming Accelerator Architecture
145  * Specification, section 5.7
146  */
147 #define RTE_IOAT_OP_ADDRESS_ERR 0x03
148 #define RTE_IOAT_OP_INVALID_LEN 0x13
149 #define RTE_IOAT_OP_OVERLAPPING_BUFS 0x16
201 static inline int
202 __rte_experimental
203 rte_ioat_completed_ops(int dev_id, uint8_t max_copies,
204  uint32_t *status, uint8_t *num_unsuccessful,
205  uintptr_t *src_hdls, uintptr_t *dst_hdls);
206 
207 /* include the implementation details from a separate file */
208 #include "rte_ioat_rawdev_fns.h"
209 
210 #ifdef __cplusplus
211 }
212 #endif
213 
214 #endif /* _RTE_IOAT_RAWDEV_H_ */
static int __rte_experimental rte_ioat_enqueue_fill(int dev_id, uint64_t pattern, phys_addr_t dst, unsigned int length, uintptr_t dst_hdl)
static int __rte_experimental rte_ioat_fence(int dev_id)
unsigned short ring_size
static int __rte_experimental rte_ioat_perform_ops(int dev_id)
uint64_t phys_addr_t
Definition: rte_common.h:410
static int __rte_experimental rte_ioat_completed_ops(int dev_id, uint8_t max_copies, uint32_t *status, uint8_t *num_unsuccessful, uintptr_t *src_hdls, uintptr_t *dst_hdls)
static int __rte_experimental rte_ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst, unsigned int length, uintptr_t src_hdl, uintptr_t dst_hdl)