Initial cut of the open ath9k htc firmware.
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / inc / adf_os_io.h
1 /**
2  * @ingroup adf_os_public
3  * @file adf_os_io.h
4  * This file abstracts I/O operations.
5  */
6
7 #ifndef _ADF_OS_IO_H
8 #define _ADF_OS_IO_H
9
10 #include <adf_os_io_pvt.h>
11
12
13 /**
14  * @brief Read an 8-bit register value
15  *
16  * @param[in] osdev   platform device object
17  * @param[in] addr    register addr
18  *
19  * @return An 8-bit register value.
20  */
21 #define adf_os_reg_read8(osdev, addr)         __adf_os_reg_read8(osdev, addr)
22
23 /**
24  * @brief Read a 16-bit register value
25  *
26  * @param[in] osdev   platform device object
27  * @param[in] addr    register addr
28  *
29  * @return A 16-bit register value.
30  */
31 #define adf_os_reg_read16(osdev, addr)        __adf_os_reg_read16(osdev, addr)
32
33 /**
34  * @brief Read a 32-bit register value
35  *
36  * @param[in] osdev   platform device object
37  * @param[in] addr    register addr
38  *
39  * @return A 32-bit register value.
40  */
41 #define adf_os_reg_read32(osdev, addr)        __adf_os_reg_read32(osdev, addr)
42
43 /**
44  * @brief Read a 64-bit register value
45  *
46  * @param[in] osdev   platform device object
47  * @param[in] addr    register addr
48  *
49  * @return A 64-bit register value.
50  */
51 #define adf_os_reg_read64(osdev, addr)        __adf_os_reg_read64(osdev, addr)
52
53 /**
54  * @brief Write an 8-bit value into register
55  *
56  * @param[in] osdev   platform device object
57  * @param[in] addr    register addr
58  * @param[in] b       the 8-bit value to be written
59  */
60 #define adf_os_reg_write8(osdev, addr, b)     __adf_os_reg_write8(osdev, addr, b)
61
62 /**
63  * @brief Write a 16-bit value into register
64  *
65  * @param[in] osdev   platform device object
66  * @param[in] addr    register addr
67  * @param[in] w       the 16-bit value to be written
68  */
69 #define adf_os_reg_write16(osdev, addr, w)    __adf_os_reg_write16(osdev, addr, w)
70
71 /**
72  * @brief Write a 32-bit value into register
73  *
74  * @param[in] osdev   platform device object
75  * @param[in] addr    register addr
76  * @param[in] l       the 32-bit value to be written
77  */
78 #define adf_os_reg_write32(osdev, addr, l)    __adf_os_reg_write32(osdev, addr, l)
79
80 /**
81  * @brief Write a 64-bit value into register
82  *
83  * @param[in] osdev   platform device object
84  * @param[in] addr    register addr
85  * @param[in] q       the 64-bit value to be written
86  */
87 #define adf_os_reg_write64(osdev, addr, q)    __adf_os_reg_write64(osdev, addr, q)
88
89 /**
90  * @brief Convert a 16-bit value from network byte order to host byte order
91  */
92 #define adf_os_ntohs(x)                         __adf_os_ntohs(x)
93
94 /**
95  * @brief Convert a 32-bit value from network byte order to host byte order
96  */
97 #define adf_os_ntohl(x)                         __adf_os_ntohl(x)
98
99 /**
100  * @brief Convert a 16-bit value from host byte order to network byte order
101  */
102 #define adf_os_htons(x)                         __adf_os_htons(x)
103
104 /**
105  * @brief Convert a 32-bit value from host byte order to network byte order
106  */
107 #define adf_os_htonl(x)                         __adf_os_htonl(x)
108
109 /**
110  * @brief Convert a 16-bit value from CPU byte order to big-endian byte order
111  */
112 #define adf_os_cpu_to_be16(x)                   __adf_os_cpu_to_be16(x)
113
114 /**
115  * @brief Convert a 32-bit value from CPU byte order to big-endian byte order
116  */
117 #define adf_os_cpu_to_be32(x)                   __adf_os_cpu_to_be32(x)
118
119 /**
120  * @brief Convert a 64-bit value from CPU byte order to big-endian byte order
121  */
122 #define adf_os_cpu_to_be64(x)                   __adf_os_cpu_to_be64(x)
123
124 /**
125  * @brief Convert a 16-bit value from CPU byte order to little-endian byte order
126  */
127 #define adf_os_cpu_to_le16(x)                   __adf_os_cpu_to_le16(x)
128
129 /**
130  * @brief Convert a 32-bit value from CPU byte order to little-endian byte order
131  */
132 #define adf_os_cpu_to_le32(x)                   __adf_os_cpu_to_le32(x)
133
134 /**
135  * @brief Convert a 64-bit value from CPU byte order to little-endian byte order
136  */
137 #define adf_os_cpu_to_le64(x)                   __adf_os_cpu_to_le64(x)
138
139 /**
140  * @brief Convert a 16-bit value from big-endian byte order to CPU byte order
141  */
142 #define adf_os_be16_to_cpu(x)                   __adf_os_be16_to_cpu(x)
143
144 /**
145  * @brief Convert a 32-bit value from big-endian byte order to CPU byte order
146  */
147 #define adf_os_be32_to_cpu(x)                   __adf_os_be32_to_cpu(x)
148
149 /**
150  * @brief Convert a 64-bit value from big-endian byte order to CPU byte order
151  */
152 #define adf_os_be64_to_cpu(x)                   __adf_os_be64_to_cpu(x)
153
154 /**
155  * @brief Convert a 16-bit value from little-endian byte order to CPU byte order
156  */
157 #define adf_os_le16_to_cpu(x)                   __adf_os_le16_to_cpu(x)
158
159 /**
160  * @brief Convert a 32-bit value from little-endian byte order to CPU byte order
161  */
162 #define adf_os_le32_to_cpu(x)                   __adf_os_le32_to_cpu(x)
163
164 /**
165  * @brief Convert a 64-bit value from little-endian byte order to CPU byte order
166  */
167 #define adf_os_le64_to_cpu(x)                   __adf_os_le64_to_cpu(x)
168
169 #endif