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