Rev 4743 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4743 | Rev 4756 | ||
---|---|---|---|
Line 29... | Line 29... | ||
29 | /** @addtogroup net |
29 | /** @addtogroup net |
30 | * @{ |
30 | * @{ |
31 | */ |
31 | */ |
32 | 32 | ||
33 | /** @file |
33 | /** @file |
34 | * \todo |
34 | * Networking common message definitions. |
35 | */ |
35 | */ |
36 | 36 | ||
37 | #ifndef __NET_MESSAGES_H__ |
37 | #ifndef __NET_MESSAGES_H__ |
38 | #define __NET_MESSAGES_H__ |
38 | #define __NET_MESSAGES_H__ |
39 | 39 | ||
Line 45... | Line 45... | ||
45 | #include "include/device.h" |
45 | #include "include/device.h" |
46 | 46 | ||
47 | #include "structures/measured_strings.h" |
47 | #include "structures/measured_strings.h" |
48 | #include "structures/packet/packet.h" |
48 | #include "structures/packet/packet.h" |
49 | 49 | ||
- | 50 | /** @name Networking message counts |
|
- | 51 | */ |
|
- | 52 | /*@{*/ |
|
- | 53 | ||
- | 54 | /** The number of network interface driver messages. |
|
- | 55 | */ |
|
50 | #define NET_NETIF_COUNT 6 |
56 | #define NET_NETIF_COUNT 6 |
- | 57 | ||
- | 58 | /** The number of general networking messages. |
|
- | 59 | */ |
|
51 | #define NET_NET_COUNT 3 |
60 | #define NET_NET_COUNT 3 |
- | 61 | ||
- | 62 | /** The number of network interface layer messages. |
|
- | 63 | */ |
|
52 | #define NET_NIL_COUNT 7 |
64 | #define NET_NIL_COUNT 7 |
- | 65 | ||
- | 66 | /** The number of Ethernet messages. |
|
- | 67 | */ |
|
53 | #define NET_ETH_COUNT 0 |
68 | #define NET_ETH_COUNT 0 |
- | 69 | ||
- | 70 | /** The number of inter-network messages. |
|
- | 71 | */ |
|
54 | #define NET_IL_COUNT 6 |
72 | #define NET_IL_COUNT 6 |
- | 73 | ||
- | 74 | /** The number of IP messages. |
|
- | 75 | */ |
|
55 | #define NET_IP_COUNT 4 |
76 | #define NET_IP_COUNT 4 |
- | 77 | ||
- | 78 | /** The number of ARP messages. |
|
- | 79 | */ |
|
56 | #define NET_ARP_COUNT 5 |
80 | #define NET_ARP_COUNT 5 |
- | 81 | ||
- | 82 | /** The number of ICMP messages. |
|
- | 83 | */ |
|
57 | #define NET_ICMP_COUNT 6 |
84 | #define NET_ICMP_COUNT 6 |
- | 85 | ||
- | 86 | /** The number of transport layer messages. |
|
- | 87 | */ |
|
58 | #define NET_TL_COUNT 1 |
88 | #define NET_TL_COUNT 1 |
- | 89 | ||
- | 90 | /** The number of UDP messages. |
|
- | 91 | */ |
|
59 | #define NET_UDP_COUNT 0 |
92 | #define NET_UDP_COUNT 0 |
- | 93 | ||
- | 94 | /** The number of TCP messages. |
|
- | 95 | */ |
|
60 | #define NET_TCP_COUNT 0 |
96 | #define NET_TCP_COUNT 0 |
- | 97 | ||
- | 98 | /** The number of packet management system messages. |
|
- | 99 | */ |
|
61 | #define NET_PACKET_COUNT 5 |
100 | #define NET_PACKET_COUNT 5 |
- | 101 | ||
- | 102 | /** The number of socket messages. |
|
- | 103 | */ |
|
62 | #define NET_SOCKET_COUNT 14 |
104 | #define NET_SOCKET_COUNT 14 |
63 | 105 | ||
- | 106 | /*@}*/ |
|
- | 107 | ||
- | 108 | /** @name Networking message intervals |
|
- | 109 | */ |
|
- | 110 | /*@{*/ |
|
- | 111 | ||
- | 112 | /** The first networking message. |
|
- | 113 | */ |
|
64 | #define NET_FIRST 2000 |
114 | #define NET_FIRST 2000 |
65 | 115 | ||
- | 116 | /** The first network interface layer message. |
|
- | 117 | */ |
|
66 | #define NET_NETIF_FIRST NET_FIRST |
118 | #define NET_NETIF_FIRST NET_FIRST |
- | 119 | ||
- | 120 | /** The last network interface layer message. |
|
- | 121 | */ |
|
67 | #define NET_NETIF_LAST ( NET_NETIF_FIRST + NET_NETIF_COUNT ) |
122 | #define NET_NETIF_LAST ( NET_NETIF_FIRST + NET_NETIF_COUNT ) |
68 | 123 | ||
- | 124 | /** The first general networking message. |
|
- | 125 | */ |
|
69 | #define NET_NET_FIRST ( NET_NETIF_LAST + 0 ) |
126 | #define NET_NET_FIRST ( NET_NETIF_LAST + 0 ) |
- | 127 | ||
- | 128 | /** The last general networking message. |
|
- | 129 | */ |
|
70 | #define NET_NET_LAST ( NET_NET_FIRST + NET_NET_COUNT ) |
130 | #define NET_NET_LAST ( NET_NET_FIRST + NET_NET_COUNT ) |
71 | 131 | ||
- | 132 | /** The first network interface layer message. |
|
- | 133 | */ |
|
72 | #define NET_NIL_FIRST ( NET_NET_LAST + 0 ) |
134 | #define NET_NIL_FIRST ( NET_NET_LAST + 0 ) |
- | 135 | ||
- | 136 | /** The last network interface layer message. |
|
- | 137 | */ |
|
73 | #define NET_NIL_LAST ( NET_NIL_FIRST + NET_NIL_COUNT ) |
138 | #define NET_NIL_LAST ( NET_NIL_FIRST + NET_NIL_COUNT ) |
- | 139 | ||
- | 140 | /** The first Ethernet message. |
|
- | 141 | */ |
|
74 | #define NET_ETH_FIRST ( NET_NIL_LAST + 0 ) |
142 | #define NET_ETH_FIRST ( NET_NIL_LAST + 0 ) |
- | 143 | ||
- | 144 | /** The last Ethernet message. |
|
- | 145 | */ |
|
75 | #define NET_ETH_LAST ( NET_ETH_FIRST + NET_ETH_COUNT ) |
146 | #define NET_ETH_LAST ( NET_ETH_FIRST + NET_ETH_COUNT ) |
76 | 147 | ||
- | 148 | /** The first inter-network message. |
|
- | 149 | */ |
|
77 | #define NET_IL_FIRST ( NET_ETH_LAST + 0 ) |
150 | #define NET_IL_FIRST ( NET_ETH_LAST + 0 ) |
- | 151 | ||
- | 152 | /** The last inter-network message. |
|
- | 153 | */ |
|
78 | #define NET_IL_LAST ( NET_IL_FIRST + NET_IL_COUNT ) |
154 | #define NET_IL_LAST ( NET_IL_FIRST + NET_IL_COUNT ) |
- | 155 | ||
- | 156 | /** The first IP message. |
|
- | 157 | */ |
|
79 | #define NET_IP_FIRST ( NET_IL_LAST + 0 ) |
158 | #define NET_IP_FIRST ( NET_IL_LAST + 0 ) |
- | 159 | ||
- | 160 | /** The last IP message. |
|
- | 161 | */ |
|
80 | #define NET_IP_LAST ( NET_IP_FIRST + NET_IP_COUNT ) |
162 | #define NET_IP_LAST ( NET_IP_FIRST + NET_IP_COUNT ) |
81 | 163 | ||
- | 164 | /** The first ARP message. |
|
- | 165 | */ |
|
82 | #define NET_ARP_FIRST ( NET_IP_LAST + 0 ) |
166 | #define NET_ARP_FIRST ( NET_IP_LAST + 0 ) |
- | 167 | ||
- | 168 | /** The last ARP message. |
|
- | 169 | */ |
|
83 | #define NET_ARP_LAST ( NET_ARP_FIRST + NET_ARP_COUNT ) |
170 | #define NET_ARP_LAST ( NET_ARP_FIRST + NET_ARP_COUNT ) |
- | 171 | ||
- | 172 | /** The first ICMP message. |
|
- | 173 | */ |
|
84 | #define NET_ICMP_FIRST ( NET_ARP_LAST + 0 ) |
174 | #define NET_ICMP_FIRST ( NET_ARP_LAST + 0 ) |
- | 175 | ||
- | 176 | /** The last ICMP message. |
|
- | 177 | */ |
|
85 | #define NET_ICMP_LAST ( NET_ICMP_FIRST + NET_ICMP_COUNT ) |
178 | #define NET_ICMP_LAST ( NET_ICMP_FIRST + NET_ICMP_COUNT ) |
86 | 179 | ||
- | 180 | /** The first ICMP message. |
|
- | 181 | */ |
|
87 | #define NET_TL_FIRST ( NET_ICMP_LAST + 0 ) |
182 | #define NET_TL_FIRST ( NET_ICMP_LAST + 0 ) |
- | 183 | ||
- | 184 | /** The last ICMP message. |
|
- | 185 | */ |
|
88 | #define NET_TL_LAST ( NET_TL_FIRST + NET_TL_COUNT ) |
186 | #define NET_TL_LAST ( NET_TL_FIRST + NET_TL_COUNT ) |
- | 187 | ||
- | 188 | /** The first UDP message. |
|
- | 189 | */ |
|
89 | #define NET_UDP_FIRST ( NET_TL_LAST + 0 ) |
190 | #define NET_UDP_FIRST ( NET_TL_LAST + 0 ) |
- | 191 | ||
- | 192 | /** The last UDP message. |
|
- | 193 | */ |
|
90 | #define NET_UDP_LAST ( NET_UDP_FIRST + NET_UDP_COUNT ) |
194 | #define NET_UDP_LAST ( NET_UDP_FIRST + NET_UDP_COUNT ) |
- | 195 | ||
- | 196 | /** The first TCP message. |
|
- | 197 | */ |
|
91 | #define NET_TCP_FIRST ( NET_UDP_LAST + 0 ) |
198 | #define NET_TCP_FIRST ( NET_UDP_LAST + 0 ) |
- | 199 | ||
- | 200 | /** The last TCP message. |
|
- | 201 | */ |
|
92 | #define NET_TCP_LAST ( NET_TCP_FIRST + NET_TCP_COUNT ) |
202 | #define NET_TCP_LAST ( NET_TCP_FIRST + NET_TCP_COUNT ) |
93 | 203 | ||
- | 204 | /** The first socket message. |
|
- | 205 | */ |
|
94 | #define NET_SOCKET_FIRST ( NET_TCP_LAST + 0 ) |
206 | #define NET_SOCKET_FIRST ( NET_TCP_LAST + 0 ) |
- | 207 | ||
- | 208 | /** The last socket message. |
|
- | 209 | */ |
|
95 | #define NET_SOCKET_LAST ( NET_SOCKET_FIRST + NET_SOCKET_COUNT ) |
210 | #define NET_SOCKET_LAST ( NET_SOCKET_FIRST + NET_SOCKET_COUNT ) |
96 | 211 | ||
- | 212 | /** The first packet management system message. |
|
- | 213 | */ |
|
97 | #define NET_PACKET_FIRST ( NET_SOCKET_LAST + 0 ) |
214 | #define NET_PACKET_FIRST ( NET_SOCKET_LAST + 0 ) |
- | 215 | ||
- | 216 | /** The last packet management system message. |
|
- | 217 | */ |
|
98 | #define NET_PACKET_LAST ( NET_PACKET_FIRST + NET_PACKET_COUNT ) |
218 | #define NET_PACKET_LAST ( NET_PACKET_FIRST + NET_PACKET_COUNT ) |
99 | 219 | ||
- | 220 | /** The last networking message. |
|
- | 221 | */ |
|
100 | #define NET_LAST NET_PACKET_LAST |
222 | #define NET_LAST NET_PACKET_LAST |
101 | 223 | ||
- | 224 | /** The number of networking messages. |
|
- | 225 | */ |
|
102 | #define NET_COUNT ( NET_LAST - NET_FIRST ) |
226 | #define NET_COUNT ( NET_LAST - NET_FIRST ) |
103 | 227 | ||
- | 228 | /** Returns a value indicating whether the value is in the interval. |
|
- | 229 | * @param[in] item The value to be checked. |
|
- | 230 | * @param[in] first_inclusive The first value in the interval inclusive. |
|
- | 231 | * @param[in] last_exclusive The first value after the interval. |
|
- | 232 | */ |
|
104 | #define IS_IN_INTERVAL( item, first_inclusive, last_exclusive ) ((( item ) >= ( first_inclusive )) && (( item ) < ( last_exclusive ))) |
233 | #define IS_IN_INTERVAL( item, first_inclusive, last_exclusive ) ((( item ) >= ( first_inclusive )) && (( item ) < ( last_exclusive ))) |
105 | 234 | ||
- | 235 | /** Returns a value indicating whether the IPC call is a generic networking message. |
|
- | 236 | * @param[in] call The IPC call to be checked. |
|
- | 237 | */ |
|
106 | #define IS_NET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_FIRST, NET_LAST ) |
238 | #define IS_NET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_FIRST, NET_LAST ) |
- | 239 | ||
- | 240 | /** Returns a value indicating whether the IPC call is a generic networking message. |
|
- | 241 | * @param[in] call The IPC call to be checked. |
|
- | 242 | */ |
|
107 | #define IS_NET_NET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_NET_FIRST, NET_NET_LAST ) |
243 | #define IS_NET_NET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_NET_FIRST, NET_NET_LAST ) |
- | 244 | ||
- | 245 | /** Returns a value indicating whether the IPC call is a network interface layer message. |
|
- | 246 | * @param[in] call The IPC call to be checked. |
|
- | 247 | */ |
|
108 | #define IS_NET_NIL_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_NIL_FIRST, NET_NIL_LAST ) |
248 | #define IS_NET_NIL_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_NIL_FIRST, NET_NIL_LAST ) |
- | 249 | ||
- | 250 | /** Returns a value indicating whether the IPC call is an Ethernet message. |
|
- | 251 | * @param[in] call The IPC call to be checked. |
|
- | 252 | */ |
|
109 | #define IS_NET_ETH_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_ETH_FIRST, NET_ETH_LAST ) |
253 | #define IS_NET_ETH_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_ETH_FIRST, NET_ETH_LAST ) |
- | 254 | ||
- | 255 | /** Returns a value indicating whether the IPC call is an inter-network layer message. |
|
- | 256 | * @param[in] call The IPC call to be checked. |
|
- | 257 | */ |
|
110 | #define IS_NET_IL_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_IL_FIRST, NET_IL_LAST ) |
258 | #define IS_NET_IL_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_IL_FIRST, NET_IL_LAST ) |
- | 259 | ||
- | 260 | /** Returns a value indicating whether the IPC call is an IP message. |
|
- | 261 | * @param[in] call The IPC call to be checked. |
|
- | 262 | */ |
|
111 | #define IS_NET_IP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_IP_FIRST, NET_IP_LAST ) |
263 | #define IS_NET_IP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_IP_FIRST, NET_IP_LAST ) |
- | 264 | ||
- | 265 | /** Returns a value indicating whether the IPC call is an ARP message. |
|
- | 266 | * @param[in] call The IPC call to be checked. |
|
- | 267 | */ |
|
112 | #define IS_NET_ARP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_ARP_FIRST, NET_ARP_LAST ) |
268 | #define IS_NET_ARP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_ARP_FIRST, NET_ARP_LAST ) |
- | 269 | ||
- | 270 | /** Returns a value indicating whether the IPC call is an ICMP message. |
|
- | 271 | * @param[in] call The IPC call to be checked. |
|
- | 272 | */ |
|
113 | #define IS_NET_ICMP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_ICMP_FIRST, NET_ICMP_LAST ) |
273 | #define IS_NET_ICMP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_ICMP_FIRST, NET_ICMP_LAST ) |
- | 274 | ||
- | 275 | /** Returns a value indicating whether the IPC call is a transport layer message. |
|
- | 276 | * @param[in] call The IPC call to be checked. |
|
- | 277 | */ |
|
114 | #define IS_NET_TL_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_TL_FIRST, NET_TL_LAST ) |
278 | #define IS_NET_TL_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_TL_FIRST, NET_TL_LAST ) |
- | 279 | ||
- | 280 | /** Returns a value indicating whether the IPC call is a UDP message. |
|
- | 281 | * @param[in] call The IPC call to be checked. |
|
- | 282 | */ |
|
115 | #define IS_NET_UDP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_UDP_FIRST, NET_UDP_LAST ) |
283 | #define IS_NET_UDP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_UDP_FIRST, NET_UDP_LAST ) |
- | 284 | ||
- | 285 | /** Returns a value indicating whether the IPC call is a TCP message. |
|
- | 286 | * @param[in] call The IPC call to be checked. |
|
- | 287 | */ |
|
116 | #define IS_NET_TCP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_TCP_FIRST, NET_TCP_LAST ) |
288 | #define IS_NET_TCP_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_TCP_FIRST, NET_TCP_LAST ) |
- | 289 | ||
- | 290 | /** Returns a value indicating whether the IPC call is a socket message. |
|
- | 291 | * @param[in] call The IPC call to be checked. |
|
- | 292 | */ |
|
117 | #define IS_NET_SOCKET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_SOCKET_FIRST, NET_SOCKET_LAST ) |
293 | #define IS_NET_SOCKET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_SOCKET_FIRST, NET_SOCKET_LAST ) |
- | 294 | ||
- | 295 | /** Returns a value indicating whether the IPC call is a packet manaagement system message. |
|
- | 296 | * @param[in] call The IPC call to be checked. |
|
- | 297 | */ |
|
118 | #define IS_NET_PACKET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_PACKET_FIRST, NET_PACKET_LAST ) |
298 | #define IS_NET_PACKET_MESSAGE( call ) IS_IN_INTERVAL( IPC_GET_METHOD( * call ), NET_PACKET_FIRST, NET_PACKET_LAST ) |
119 | 299 | ||
- | 300 | /*@}*/ |
|
- | 301 | ||
- | 302 | /** @name Networking specific message parameters definitions |
|
- | 303 | */ |
|
- | 304 | /*@{*/ |
|
- | 305 | ||
120 | /** Returns the device identifier message parameter. |
306 | /** Returns the device identifier message parameter. |
- | 307 | * @param[in] call The message call structure. |
|
121 | */ |
308 | */ |
122 | #define IPC_GET_DEVICE( call ) ( device_id_t ) IPC_GET_ARG1( * call ) |
309 | #define IPC_GET_DEVICE( call ) ( device_id_t ) IPC_GET_ARG1( * call ) |
123 | 310 | ||
124 | /** Returns the packet identifier message parameter. |
311 | /** Returns the packet identifier message parameter. |
- | 312 | * @param[in] call The message call structure. |
|
125 | */ |
313 | */ |
126 | #define IPC_GET_PACKET( call ) ( packet_id_t ) IPC_GET_ARG2( * call ) |
314 | #define IPC_GET_PACKET( call ) ( packet_id_t ) IPC_GET_ARG2( * call ) |
- | 315 | ||
- | 316 | /** Returns the count message parameter. |
|
- | 317 | * @param[in] call The message call structure. |
|
- | 318 | */ |
|
127 | #define IPC_GET_COUNT( call ) ( size_t ) IPC_GET_ARG2( * call ) |
319 | #define IPC_GET_COUNT( call ) ( size_t ) IPC_GET_ARG2( * call ) |
- | 320 | ||
- | 321 | /** Returns the device state message parameter. |
|
- | 322 | * @param[in] call The message call structure. |
|
- | 323 | */ |
|
128 | #define IPC_GET_STATE( call ) ( device_state_t ) IPC_GET_ARG2( * call ) |
324 | #define IPC_GET_STATE( call ) ( device_state_t ) IPC_GET_ARG2( * call ) |
129 | 325 | ||
130 | /** Returns the maximum transmission unit message parameter. |
326 | /** Returns the maximum transmission unit message parameter. |
- | 327 | * @param[in] call The message call structure. |
|
131 | */ |
328 | */ |
132 | #define IPC_GET_MTU( call ) ( size_t ) IPC_GET_ARG2( * call ) |
329 | #define IPC_GET_MTU( call ) ( size_t ) IPC_GET_ARG2( * call ) |
133 | 330 | ||
134 | /** Returns the device driver service message parameter. |
331 | /** Returns the device driver service message parameter. |
- | 332 | * @param[in] call The message call structure. |
|
135 | */ |
333 | */ |
136 | #define IPC_GET_SERVICE( call ) ( services_t ) IPC_GET_ARG3( * call ) |
334 | #define IPC_GET_SERVICE( call ) ( services_t ) IPC_GET_ARG3( * call ) |
- | 335 | ||
- | 336 | /** Returns the target service message parameter. |
|
- | 337 | * @param[in] call The message call structure. |
|
- | 338 | */ |
|
137 | #define IPC_GET_TARGET( call ) ( services_t ) IPC_GET_ARG3( * call ) |
339 | #define IPC_GET_TARGET( call ) ( services_t ) IPC_GET_ARG3( * call ) |
- | 340 | ||
- | 341 | /** Returns the sender service message parameter. |
|
- | 342 | * @param[in] call The message call structure. |
|
- | 343 | */ |
|
138 | #define IPC_GET_SENDER( call ) ( services_t ) IPC_GET_ARG3( * call ) |
344 | #define IPC_GET_SENDER( call ) ( services_t ) IPC_GET_ARG3( * call ) |
139 | 345 | ||
- | 346 | /** Returns the error service message parameter. |
|
- | 347 | * @param[in] call The message call structure. |
|
- | 348 | */ |
|
140 | #define IPC_GET_ERROR( call ) ( services_t ) IPC_GET_ARG4( * call ) |
349 | #define IPC_GET_ERROR( call ) ( services_t ) IPC_GET_ARG4( * call ) |
141 | 350 | ||
- | 351 | /** Returns the phone message parameter. |
|
- | 352 | * @param[in] call The message call structure. |
|
- | 353 | */ |
|
142 | #define IPC_GET_PHONE( call ) ( int ) IPC_GET_ARG5( * call ) |
354 | #define IPC_GET_PHONE( call ) ( int ) IPC_GET_ARG5( * call ) |
143 | 355 | ||
- | 356 | /** Sets the device identifier in the message answer. |
|
- | 357 | * @param[out] answer The message answer structure. |
|
- | 358 | */ |
|
144 | #define IPC_SET_DEVICE( answer ) (( device_id_t * ) & IPC_GET_ARG1( * answer )) |
359 | #define IPC_SET_DEVICE( answer ) (( device_id_t * ) & IPC_GET_ARG1( * answer )) |
145 | 360 | ||
- | 361 | /** Sets the minimum address length in the message answer. |
|
- | 362 | * @param[out] answer The message answer structure. |
|
- | 363 | */ |
|
146 | #define IPC_SET_ADDR( answer ) (( size_t * ) & IPC_GET_ARG1( * answer )) |
364 | #define IPC_SET_ADDR( answer ) (( size_t * ) & IPC_GET_ARG1( * answer )) |
- | 365 | ||
- | 366 | /** Sets the minimum prefix size in the message answer. |
|
- | 367 | * @param[out] answer The message answer structure. |
|
- | 368 | */ |
|
147 | #define IPC_SET_PREFIX( answer ) (( size_t * ) & IPC_GET_ARG2( * answer )) |
369 | #define IPC_SET_PREFIX( answer ) (( size_t * ) & IPC_GET_ARG2( * answer )) |
- | 370 | ||
- | 371 | /** Sets the maximum content size in the message answer. |
|
- | 372 | * @param[out] answer The message answer structure. |
|
- | 373 | */ |
|
148 | #define IPC_SET_CONTENT( answer ) (( size_t * ) & IPC_GET_ARG3( * answer )) |
374 | #define IPC_SET_CONTENT( answer ) (( size_t * ) & IPC_GET_ARG3( * answer )) |
- | 375 | ||
- | 376 | /** Sets the minimum suffix size in the message answer. |
|
- | 377 | * @param[out] answer The message answer structure. |
|
- | 378 | */ |
|
149 | #define IPC_SET_SUFFIX( answer ) (( size_t * ) & IPC_GET_ARG4( * answer )) |
379 | #define IPC_SET_SUFFIX( answer ) (( size_t * ) & IPC_GET_ARG4( * answer )) |
150 | 380 | ||
- | 381 | /*@}*/ |
|
- | 382 | ||
- | 383 | /** Returns the address. |
|
- | 384 | * @param[in] phone The service module phone. |
|
- | 385 | * @param[in] message The service specific message. |
|
- | 386 | * @param[in] device_id The device identifier. |
|
- | 387 | * @param[out] address The desired address. |
|
- | 388 | * @param[out] data The address data container. |
|
- | 389 | * @returns EOK on success. |
|
- | 390 | * @returns EBADMEM if the address parameter and/or the data parameter is NULL. |
|
- | 391 | * @returns Other error codes as defined for the specific service message. |
|
- | 392 | */ |
|
151 | static inline int generic_get_addr_req( int phone, int message, device_id_t device_id, measured_string_ref * address, char ** data ){ |
393 | static inline int generic_get_addr_req( int phone, int message, device_id_t device_id, measured_string_ref * address, char ** data ){ |
152 | aid_t message_id; |
394 | aid_t message_id; |
153 | ipcarg_t result; |
395 | ipcarg_t result; |
154 | int string; |
396 | int string; |
155 | 397 | ||
Line 162... | Line 404... | ||
162 | free( * data ); |
404 | free( * data ); |
163 | } |
405 | } |
164 | return ( int ) result; |
406 | return ( int ) result; |
165 | } |
407 | } |
166 | 408 | ||
- | 409 | /** Translates the given strings. |
|
- | 410 | * Allocates and returns the needed memory block as the data parameter. |
|
- | 411 | * @param[in] phone The service module phone. |
|
- | 412 | * @param[in] message The service specific message. |
|
- | 413 | * @param[in] device_id The device identifier. |
|
- | 414 | * @param[in] service The module service. |
|
- | 415 | * @param[in] configuration The key strings. |
|
- | 416 | * @param[in] count The number of configuration keys. |
|
- | 417 | * @param[out] translation The translated values. |
|
- | 418 | * @param[out] data The translation data container. |
|
- | 419 | * @returns EOK on success. |
|
- | 420 | * @returns EINVAL if the configuration parameter is NULL. |
|
- | 421 | * @returns EINVAL if the count parameter is zero (0). |
|
- | 422 | * @returns EBADMEM if the translation or the data parameters are NULL. |
|
- | 423 | * @returns Other error codes as defined for the specific service message. |
|
- | 424 | */ |
|
167 | static inline int generic_translate_req( int phone, int message, device_id_t device_id, services_t service, measured_string_ref configuration, size_t count, measured_string_ref * translation, char ** data ){ |
425 | static inline int generic_translate_req( int phone, int message, device_id_t device_id, services_t service, measured_string_ref configuration, size_t count, measured_string_ref * translation, char ** data ){ |
168 | aid_t message_id; |
426 | aid_t message_id; |
169 | ipcarg_t result; |
427 | ipcarg_t result; |
170 | int string; |
428 | int string; |
171 | 429 | ||
Line 180... | Line 438... | ||
180 | free( * data ); |
438 | free( * data ); |
181 | } |
439 | } |
182 | return ( int ) result; |
440 | return ( int ) result; |
183 | } |
441 | } |
184 | 442 | ||
- | 443 | /** Sends the packet queue. |
|
- | 444 | * @param[in] phone The service module phone. |
|
- | 445 | * @param[in] message The service specific message. |
|
- | 446 | * @param[in] device_id The device identifier. |
|
- | 447 | * @param[in] packet_id The packet or the packet queue identifier. |
|
- | 448 | * @param[in] sender The sending module service. |
|
- | 449 | * @param[in] error The error module service. |
|
- | 450 | * @returns EOK on success. |
|
- | 451 | */ |
|
185 | static inline int generic_send_msg( int phone, int message, device_id_t device_id, packet_id_t packet_id, services_t sender, services_t error ){ |
452 | static inline int generic_send_msg( int phone, int message, device_id_t device_id, packet_id_t packet_id, services_t sender, services_t error ){ |
186 | if( error ){ |
453 | if( error ){ |
187 | async_msg_4( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) sender, ( ipcarg_t ) error ); |
454 | async_msg_4( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) sender, ( ipcarg_t ) error ); |
188 | }else{ |
455 | }else{ |
189 | async_msg_3( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) sender ); |
456 | async_msg_3( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) sender ); |
190 | } |
457 | } |
191 | return EOK; |
458 | return EOK; |
192 | } |
459 | } |
193 | 460 | ||
- | 461 | /** Returns the device packet dimensions for sending. |
|
- | 462 | * @param[in] phone The service module phone. |
|
- | 463 | * @param[in] message The service specific message. |
|
- | 464 | * @param[in] device_id The device identifier. |
|
- | 465 | * @param[out] addr_len The minimum reserved address length. |
|
- | 466 | * @param[out] prefix The minimum reserved prefix size. |
|
- | 467 | * @param[out] content The maximum content size. |
|
- | 468 | * @param[out] suffix The minimum reserved suffix size. |
|
- | 469 | * @returns EOK on success. |
|
- | 470 | * @returns Other error codes as defined for the specific service message. |
|
- | 471 | */ |
|
194 | static inline int generic_packet_size_req( int phone, int message, device_id_t device_id, size_t * addr_len, size_t * prefix, size_t * content, size_t * suffix ){ |
472 | static inline int generic_packet_size_req( int phone, int message, device_id_t device_id, size_t * addr_len, size_t * prefix, size_t * content, size_t * suffix ){ |
195 | return ( int ) async_req_1_4( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t * ) addr_len, ( ipcarg_t * ) prefix, ( ipcarg_t * ) content, ( ipcarg_t * ) suffix ); |
473 | return ( int ) async_req_1_4( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t * ) addr_len, ( ipcarg_t * ) prefix, ( ipcarg_t * ) content, ( ipcarg_t * ) suffix ); |
196 | } |
474 | } |
197 | 475 | ||
- | 476 | /** Notifies the module about the device state change. |
|
- | 477 | * @param[in] phone The service module phone. |
|
- | 478 | * @param[in] message The service specific message. |
|
- | 479 | * @param[in] device_id The device identifier. |
|
- | 480 | * @param[in] state The new device state. |
|
- | 481 | * @param[in] target The target module service. |
|
- | 482 | * @returns EOK on success. |
|
- | 483 | */ |
|
198 | static inline int generic_device_state_msg( int phone, int message, device_id_t device_id, int state, services_t target ){ |
484 | static inline int generic_device_state_msg( int phone, int message, device_id_t device_id, int state, services_t target ){ |
199 | async_msg_3( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) state, target ); |
485 | async_msg_3( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) state, target ); |
200 | return EOK; |
486 | return EOK; |
201 | } |
487 | } |
202 | 488 | ||
- | 489 | /** Passes the packet queue to the module. |
|
- | 490 | * @param[in] phone The service module phone. |
|
- | 491 | * @param[in] message The service specific message. |
|
- | 492 | * @param[in] device_id The device identifier. |
|
- | 493 | * @param[in] packet_id The received packet or the received packet queue identifier. |
|
- | 494 | * @param[in] target The target module service. |
|
- | 495 | * @param[in] error The error module service. |
|
- | 496 | * @returns EOK on success. |
|
- | 497 | */ |
|
203 | static inline int generic_received_msg( int phone, int message, device_id_t device_id, packet_id_t packet_id, services_t target, services_t error ){ |
498 | static inline int generic_received_msg( int phone, int message, device_id_t device_id, packet_id_t packet_id, services_t target, services_t error ){ |
204 | if( error ){ |
499 | if( error ){ |
205 | async_msg_4( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) target, ( ipcarg_t ) error ); |
500 | async_msg_4( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) target, ( ipcarg_t ) error ); |
206 | }else{ |
501 | }else{ |
207 | async_msg_3( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) target ); |
502 | async_msg_3( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) packet_id, ( ipcarg_t ) target ); |
208 | } |
503 | } |
209 | return EOK; |
504 | return EOK; |
210 | } |
505 | } |
211 | 506 | ||
- | 507 | /** Notifies a module about the device. |
|
- | 508 | * @param[in] phone The service module phone. |
|
- | 509 | * @param[in] message The service specific message. |
|
- | 510 | * @param[in] device_id The device identifier. |
|
- | 511 | * @param[in] arg2 The second argument of the message. |
|
- | 512 | * @param[in] service The device module service. |
|
- | 513 | * @returns EOK on success. |
|
- | 514 | * @returns Other error codes as defined for the specific service message. |
|
- | 515 | */ |
|
212 | static inline int generic_device_req( int phone, int message, device_id_t device_id, int arg2, services_t service ){ |
516 | static inline int generic_device_req( int phone, int message, device_id_t device_id, int arg2, services_t service ){ |
213 | return ( int ) async_req_3_0( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) arg2, ( ipcarg_t ) service ); |
517 | return ( int ) async_req_3_0( phone, ( ipcarg_t ) message, ( ipcarg_t ) device_id, ( ipcarg_t ) arg2, ( ipcarg_t ) service ); |
214 | } |
518 | } |
215 | 519 | ||
216 | #endif |
520 | #endif |