1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2019 Intel Corporation
5 #ifndef _RTE_IOAT_RAWDEV_H_
6 #define _RTE_IOAT_RAWDEV_H_
9 * @file rte_ioat_rawdev.h
11 * Definitions for using the ioat rawdev device driver
14 * @b EXPERIMENTAL: these structures and APIs may change without prior notice
17 #include <rte_memory.h>
18 #include <rte_memzone.h>
19 #include <rte_ioat_spec.h>
21 /** Name of the device driver */
22 #define IOAT_PMD_RAWDEV_NAME rawdev_ioat
23 /** String reported as the device driver name by rte_rawdev_info_get() */
24 #define IOAT_PMD_RAWDEV_NAME_STR "rawdev_ioat"
25 /** Name used to adjust the log level for this driver */
26 #define IOAT_PMD_LOG_NAME "rawdev.ioat"
30 * Structure representing a device instance
32 struct rte_ioat_rawdev {
33 struct rte_rawdev *rawdev;
34 const struct rte_memzone *mz;
35 const struct rte_memzone *desc_mz;
37 volatile struct rte_ioat_registers *regs;
38 phys_addr_t status_addr;
39 phys_addr_t ring_addr;
41 unsigned short ring_size;
42 struct rte_ioat_generic_hw_desc *desc_ring;
44 /* to report completions, the device will write status back here */
45 volatile uint64_t status __rte_cache_aligned;