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