This source file includes following definitions.
- hinic_cpu_to_be32
- hinic_be32_to_cpu
- hinic_set_sge
- hinic_sge_to_dma
1
2
3
4
5
6
7 #include <linux/kernel.h>
8 #include <linux/types.h>
9 #include <asm/byteorder.h>
10
11 #include "hinic_common.h"
12
13
14
15
16
17
18 void hinic_cpu_to_be32(void *data, int len)
19 {
20 u32 *mem = data;
21 int i;
22
23 len = len / sizeof(u32);
24
25 for (i = 0; i < len; i++) {
26 *mem = cpu_to_be32(*mem);
27 mem++;
28 }
29 }
30
31
32
33
34
35
36 void hinic_be32_to_cpu(void *data, int len)
37 {
38 u32 *mem = data;
39 int i;
40
41 len = len / sizeof(u32);
42
43 for (i = 0; i < len; i++) {
44 *mem = be32_to_cpu(*mem);
45 mem++;
46 }
47 }
48
49
50
51
52
53
54
55 void hinic_set_sge(struct hinic_sge *sge, dma_addr_t addr, int len)
56 {
57 sge->hi_addr = upper_32_bits(addr);
58 sge->lo_addr = lower_32_bits(addr);
59 sge->len = len;
60 }
61
62
63
64
65
66
67
68 dma_addr_t hinic_sge_to_dma(struct hinic_sge *sge)
69 {
70 return (dma_addr_t)((((u64)sge->hi_addr) << 32) | sge->lo_addr);
71 }