1 /* 2 * Huawei HiNIC PCI Express Linux driver 3 * Copyright(c) 2017 Huawei Technologies Co., Ltd 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms and conditions of the GNU General Public License, 7 * version 2, as published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * for more details. 13 * 14 */ 15 16 #ifndef HINIC_COMMON_H 17 #define HINIC_COMMON_H 18 19 #include <linux/types.h> 20 21 #define UPPER_8_BITS(data) (((data) >> 8) & 0xFF) 22 #define LOWER_8_BITS(data) ((data) & 0xFF) 23 24 struct hinic_sge { 25 u32 hi_addr; 26 u32 lo_addr; 27 u32 len; 28 }; 29 30 void hinic_cpu_to_be32(void *data, int len); 31 32 void hinic_be32_to_cpu(void *data, int len); 33 34 void hinic_set_sge(struct hinic_sge *sge, dma_addr_t addr, int len); 35 36 dma_addr_t hinic_sge_to_dma(struct hinic_sge *sge); 37 38 #endif 39