Whamcloud - gitweb
LU-17592 build: kernel 6.8 -Werror=missing-prototypes
[fs/lustre-release.git] / lnet / include / lnet / lnet_rdma.h
1 // SPDX-License-Identifier: GPL-2.0
2
3 /* This file is part of Lustre, http://www.lustre.org/ */
4
5 #ifndef LNET_RDMA_H
6 #define LNET_RDMA_H
7
8 #define REGSTR2(x) x##_register_nvfs_dma_ops
9 #define REGSTR(x)  REGSTR2(x)
10
11 #define UNREGSTR2(x) x##_unregister_nvfs_dma_ops
12 #define UNREGSTR(x)  UNREGSTR2(x)
13
14 #define MODULE_PREFIX lustre_v1
15
16 #define REGISTER_FUNC REGSTR(MODULE_PREFIX)
17 #define UNREGISTER_FUNC UNREGSTR(MODULE_PREFIX)
18
19 struct device;
20 struct page;
21 enum dma_data_direction;
22 struct scatterlist;
23
24 struct nvfs_dma_rw_ops;
25
26 int REGISTER_FUNC(struct nvfs_dma_rw_ops *ops);
27 void UNREGISTER_FUNC(void);
28
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);
38
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
42 #endif
43
44 #endif /* LUSTRE_NVFS_H */
45