Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / net / ethernet / huawei / hinic / hinic_common.h
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