1 // SPDX-License-Identifier: GPL-2.0
3 /* This file is part of Lustre, http://www.lustre.org/ */
8 #define REGSTR2(x) x##_register_nvfs_dma_ops
9 #define REGSTR(x) REGSTR2(x)
11 #define UNREGSTR2(x) x##_unregister_nvfs_dma_ops
12 #define UNREGSTR(x) UNREGSTR2(x)
14 #define MODULE_PREFIX lustre_v1
16 #define REGISTER_FUNC REGSTR(MODULE_PREFIX)
17 #define UNREGISTER_FUNC UNREGSTR(MODULE_PREFIX)
21 enum dma_data_direction;
24 struct nvfs_dma_rw_ops;
26 int REGISTER_FUNC(struct nvfs_dma_rw_ops *ops);
27 void UNREGISTER_FUNC(void);
29 unsigned int lnet_get_dev_prio(struct device *dev,
30 unsigned int dev_idx);
31 int lnet_rdma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
32 int nents, enum dma_data_direction direction);
33 int lnet_rdma_unmap_sg(struct device *dev,
34 struct scatterlist *sg, int nents,
35 enum dma_data_direction direction);
36 bool lnet_is_rdma_only_page(struct page *page);
37 unsigned int lnet_get_dev_idx(struct page *page);
39 /* DMA_ATTR_NO_WARN was added to kernel v4.8-11962-ga9a62c9 */
40 #ifndef DMA_ATTR_NO_WARN
41 #define DMA_ATTR_NO_WARN 0
44 #endif /* LUSTRE_NVFS_H */