13859ab773
When a suitable device is found during the PCI probe, create a dmadev instance for each channel. Internal structures and HW definitions required for device creation are also included. Signed-off-by: Conor Walsh <conor.walsh@intel.com> Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright 2021 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _IOAT_INTERNAL_H_
|
|
#define _IOAT_INTERNAL_H_
|
|
|
|
#include "ioat_hw_defs.h"
|
|
|
|
struct ioat_dmadev {
|
|
struct rte_dma_dev *dmadev;
|
|
struct rte_dma_vchan_conf qcfg;
|
|
struct rte_dma_stats stats;
|
|
|
|
volatile uint16_t *doorbell __rte_cache_aligned;
|
|
phys_addr_t status_addr;
|
|
phys_addr_t ring_addr;
|
|
|
|
struct ioat_dma_hw_desc *desc_ring;
|
|
|
|
unsigned short next_read;
|
|
unsigned short next_write;
|
|
unsigned short last_write; /* Used to compute submitted count. */
|
|
unsigned short offset; /* Used after a device recovery when counts -> 0. */
|
|
unsigned int failure; /* Used to store chanerr for error handling. */
|
|
|
|
/* To report completions, the device will write status back here. */
|
|
volatile uint64_t status __rte_cache_aligned;
|
|
|
|
/* Pointer to the register bar. */
|
|
volatile struct ioat_registers *regs;
|
|
|
|
/* Store the IOAT version. */
|
|
uint8_t version;
|
|
};
|
|
|
|
extern int ioat_pmd_logtype;
|
|
|
|
#define IOAT_PMD_LOG(level, fmt, args...) rte_log(RTE_LOG_ ## level, \
|
|
ioat_pmd_logtype, "IOAT: %s(): " fmt "\n", __func__, ##args)
|
|
|
|
#define IOAT_PMD_DEBUG(fmt, args...) IOAT_PMD_LOG(DEBUG, fmt, ## args)
|
|
#define IOAT_PMD_INFO(fmt, args...) IOAT_PMD_LOG(INFO, fmt, ## args)
|
|
#define IOAT_PMD_ERR(fmt, args...) IOAT_PMD_LOG(ERR, fmt, ## args)
|
|
#define IOAT_PMD_WARN(fmt, args...) IOAT_PMD_LOG(WARNING, fmt, ## args)
|
|
|
|
#endif /* _IOAT_INTERNAL_H_ */
|