1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Huawei HiNIC PCI Express Linux driver
4  * Copyright(c) 2017 Huawei Technologies Co., Ltd
5  */
6 
7 #ifndef HINIC_COMMON_H
8 #define HINIC_COMMON_H
9 
10 #include <linux/types.h>
11 
12 #define UPPER_8_BITS(data)      (((data) >> 8) & 0xFF)
13 #define LOWER_8_BITS(data)      ((data) & 0xFF)
14 
15 struct hinic_sge {
16 	u32             hi_addr;
17 	u32             lo_addr;
18 	u32             len;
19 };
20 
21 void hinic_cpu_to_be32(void *data, int len);
22 
23 void hinic_be32_to_cpu(void *data, int len);
24 
25 void hinic_set_sge(struct hinic_sge *sge, dma_addr_t addr, int len);
26 
27 dma_addr_t hinic_sge_to_dma(struct hinic_sge *sge);
28 
29 #endif
30