Changes in / [40e29f5:63f8966] in mainline
- Location:
- uspace/srv/net
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/il/arp/arp_messages.h
r40e29f5 r63f8966 75 75 * @param[in] call The message call structure. 76 76 */ 77 #define ARP_GET_NETIF(call) \ 78 ({services_t service = (services_t) IPC_GET_ARG2(*call); service;}) 77 #define ARP_GET_NETIF(call) (services_t) IPC_GET_ARG2(*call) 79 78 80 79 /*@}*/ -
uspace/srv/net/il/ip/ip.c
r40e29f5 r63f8966 893 893 struct sockaddr * addr; 894 894 size_t addrlen; 895 size_t prefix;896 size_t suffix;897 size_t content;898 895 ip_pseudo_header_ref header; 899 896 size_t headerlen; … … 927 924 ERROR_PROPAGATE(ip_get_route_req(0, IP_GET_PROTOCOL(call), addr, (socklen_t) addrlen, 928 925 &device_id, &header, &headerlen)); 929 IPC_SET_DEVICE(answer, device_id);930 IP_SET_HEADERLEN(answer, headerlen);926 *IPC_SET_DEVICE(answer) = device_id; 927 *IP_SET_HEADERLEN(answer) = headerlen; 931 928 *answer_count = 2; 932 929 if(! ERROR_OCCURRED(data_reply(&headerlen, sizeof(headerlen)))){ … … 936 933 return ERROR_CODE; 937 934 case NET_IL_PACKET_SPACE: 938 ERROR_PROPAGATE(ip_packet_size_message(IPC_GET_DEVICE(call), &addrlen, &prefix, &content, &suffix)); 939 IPC_SET_ADDR(answer, addrlen); 940 IPC_SET_PREFIX(answer, prefix); 941 IPC_SET_CONTENT(answer, content); 942 IPC_SET_SUFFIX(answer, suffix); 943 *answer_count = 4; 935 ERROR_PROPAGATE(ip_packet_size_message(IPC_GET_DEVICE(call), IPC_SET_ADDR(answer), IPC_SET_PREFIX(answer), IPC_SET_CONTENT(answer), IPC_SET_SUFFIX(answer))); 936 *answer_count = 3; 944 937 return EOK; 945 938 case NET_IL_MTU_CHANGED: -
uspace/srv/net/il/ip/ip_messages.h
r40e29f5 r63f8966 72 72 * @param[in] call The message call structure. 73 73 */ 74 #define IP_GET_ADDRESS(call) \ 75 ({in_addr_t addr; addr.s_addr = IPC_GET_ARG3(*call); addr;}) 74 #define IP_GET_ADDRESS(call) ({in_addr_t addr; addr.s_addr = IPC_GET_ARG3(*call); addr;}) 76 75 77 76 /** Returns the gateway message parameter. 78 77 * @param[in] call The message call structure. 79 78 */ 80 #define IP_GET_GATEWAY(call) \ 81 ({in_addr_t addr; addr.s_addr = IPC_GET_ARG2(*call); addr;}) 79 #define IP_GET_GATEWAY(call) ({in_addr_t addr; addr.s_addr = IPC_GET_ARG2(*call); addr;}) 82 80 83 81 /** Sets the header length in the message answer. 84 82 * @param[out] answer The message answer structure. 85 83 */ 86 #define IP_SET_HEADERLEN(answer, value) \ 87 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG2(*answer, argument);} 84 #define IP_SET_HEADERLEN(answer) (&IPC_GET_ARG2(*answer)) 88 85 89 86 /** Returns the network mask message parameter. 90 87 * @param[in] call The message call structure. 91 88 */ 92 #define IP_GET_NETMASK(call) \ 93 ({in_addr_t addr; addr.s_addr = IPC_GET_ARG4(*call); addr;}) 89 #define IP_GET_NETMASK(call) ({in_addr_t addr; addr.s_addr = IPC_GET_ARG4(*call); addr;}) 94 90 95 91 /** Returns the protocol message parameter. 96 92 * @param[in] call The message call structure. 97 93 */ 98 #define IP_GET_PROTOCOL(call) \ 99 ({ip_protocol_t protocol = (ip_protocol_t) IPC_GET_ARG1(*call); protocol;}) 94 #define IP_GET_PROTOCOL(call) ((ip_protocol_t) IPC_GET_ARG1(*call)) 100 95 101 96 /*@}*/ -
uspace/srv/net/messages.h
r40e29f5 r63f8966 236 236 * @param[in] call The IPC call to be checked. 237 237 */ 238 #define IS_NET_MESSAGE(call) \ 239 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) 240 239 241 240 /** Returns a value indicating whether the IPC call is an ARP message. 242 241 * @param[in] call The IPC call to be checked. 243 242 */ 244 #define IS_NET_ARP_MESSAGE(call) \ 245 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ARP_FIRST, NET_ARP_LAST) 243 #define IS_NET_ARP_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ARP_FIRST, NET_ARP_LAST) 246 244 247 245 /** Returns a value indicating whether the IPC call is an Ethernet message. 248 246 * @param[in] call The IPC call to be checked. 249 247 */ 250 #define IS_NET_ETH_MESSAGE(call) \ 251 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ETH_FIRST, NET_ETH_LAST) 248 #define IS_NET_ETH_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ETH_FIRST, NET_ETH_LAST) 252 249 253 250 /** Returns a value indicating whether the IPC call is an ICMP message. 254 251 * @param[in] call The IPC call to be checked. 255 252 */ 256 #define IS_NET_ICMP_MESSAGE(call) \ 257 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ICMP_FIRST, NET_ICMP_LAST) 253 #define IS_NET_ICMP_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ICMP_FIRST, NET_ICMP_LAST) 258 254 259 255 /** Returns a value indicating whether the IPC call is an inter-network layer message. 260 256 * @param[in] call The IPC call to be checked. 261 257 */ 262 #define IS_NET_IL_MESSAGE(call) \ 263 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) 264 259 265 260 /** Returns a value indicating whether the IPC call is an IP message. 266 261 * @param[in] call The IPC call to be checked. 267 262 */ 268 #define IS_NET_IP_MESSAGE(call) \ 269 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) 270 264 271 265 /** Returns a value indicating whether the IPC call is a generic networking message. 272 266 * @param[in] call The IPC call to be checked. 273 267 */ 274 #define IS_NET_NET_MESSAGE(call) \ 275 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_NET_FIRST, NET_NET_LAST) 268 #define IS_NET_NET_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_NET_FIRST, NET_NET_LAST) 276 269 277 270 /** Returns a value indicating whether the IPC call is a network interface layer message. 278 271 * @param[in] call The IPC call to be checked. 279 272 */ 280 #define IS_NET_NIL_MESSAGE(call) \ 281 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_NIL_FIRST, NET_NIL_LAST) 273 #define IS_NET_NIL_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_NIL_FIRST, NET_NIL_LAST) 282 274 283 275 /** Returns a value indicating whether the IPC call is a packet manaagement system message. 284 276 * @param[in] call The IPC call to be checked. 285 277 */ 286 #define IS_NET_PACKET_MESSAGE(call) \ 287 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_PACKET_FIRST, NET_PACKET_LAST) 278 #define IS_NET_PACKET_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_PACKET_FIRST, NET_PACKET_LAST) 288 279 289 280 /** Returns a value indicating whether the IPC call is a socket message. 290 281 * @param[in] call The IPC call to be checked. 291 282 */ 292 #define IS_NET_SOCKET_MESSAGE(call) \ 293 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_SOCKET_FIRST, NET_SOCKET_LAST) 283 #define IS_NET_SOCKET_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_SOCKET_FIRST, NET_SOCKET_LAST) 294 284 295 285 /** Returns a value indicating whether the IPC call is a TCP message. 296 286 * @param[in] call The IPC call to be checked. 297 287 */ 298 #define IS_NET_TCP_MESSAGE(call) \ 299 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) 300 289 301 290 /** Returns a value indicating whether the IPC call is a transport layer message. 302 291 * @param[in] call The IPC call to be checked. 303 292 */ 304 #define IS_NET_TL_MESSAGE(call) \ 305 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_TL_FIRST, NET_TL_LAST) 293 #define IS_NET_TL_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_TL_FIRST, NET_TL_LAST) 306 294 307 295 /** Returns a value indicating whether the IPC call is a UDP message. 308 296 * @param[in] call The IPC call to be checked. 309 297 */ 310 #define IS_NET_UDP_MESSAGE(call) \ 311 IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_UDP_FIRST, NET_UDP_LAST) 298 #define IS_NET_UDP_MESSAGE(call) IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_UDP_FIRST, NET_UDP_LAST) 312 299 313 300 /*@}*/ … … 324 311 * @param[in] call The message call structure. 325 312 */ 326 #define IPC_GET_DEVICE(call) \ 327 ({device_id_t device_id = (device_id_t) IPC_GET_ARG1(*call); device_id;}) 328 329 /*@;})*/ 313 #define IPC_GET_DEVICE(call) (device_id_t) IPC_GET_ARG1(*call) 314 315 /*@}*/ 330 316 331 317 /** @name Second arguments 332 318 */ 333 /*@ ({*/319 /*@{*/ 334 320 335 321 /** Returns the packet identifier message argument. 336 322 * @param[in] call The message call structure. 337 323 */ 338 #define IPC_GET_PACKET(call) \ 339 ({packet_id_t packet_id = (packet_id_t) IPC_GET_ARG2(*call); packet_id;}) 324 #define IPC_GET_PACKET(call) (packet_id_t) IPC_GET_ARG2(*call) 340 325 341 326 /** Returns the count message argument. 342 327 * @param[in] call The message call structure. 343 328 */ 344 #define IPC_GET_COUNT(call) \ 345 ({size_t size = (size_t) IPC_GET_ARG2(*call); size;}) 329 #define IPC_GET_COUNT(call) (size_t) IPC_GET_ARG2(*call) 346 330 347 331 /** Returns the device state message argument. 348 332 * @param[in] call The message call structure. 349 333 */ 350 #define IPC_GET_STATE(call) \ 351 ({device_state_t device_state = (device_state_t) IPC_GET_ARG2(*call); device_state;}) 334 #define IPC_GET_STATE(call) (device_state_t) IPC_GET_ARG2(*call) 352 335 353 336 /** Returns the maximum transmission unit message argument. 354 337 * @param[in] call The message call structure. 355 338 */ 356 #define IPC_GET_MTU(call) \ 357 ({size_t size = (size_t) IPC_GET_ARG2(*call); size;}) 358 359 /*@;})*/ 339 #define IPC_GET_MTU(call) (size_t) IPC_GET_ARG2(*call) 340 341 /*@}*/ 360 342 361 343 /** @name Third arguments 362 344 */ 363 /*@ ({*/345 /*@{*/ 364 346 365 347 /** Returns the device driver service message argument. 366 348 * @param[in] call The message call structure. 367 349 */ 368 #define IPC_GET_SERVICE(call) \ 369 ({services_t service = (services_t) IPC_GET_ARG3(*call); service;}) 350 #define IPC_GET_SERVICE(call) (services_t) IPC_GET_ARG3(*call) 370 351 371 352 /** Returns the target service message argument. 372 353 * @param[in] call The message call structure. 373 354 */ 374 #define IPC_GET_TARGET(call) \ 375 ({services_t service = (services_t) IPC_GET_ARG3(*call); service;}) 355 #define IPC_GET_TARGET(call) (services_t) IPC_GET_ARG3(*call) 376 356 377 357 /** Returns the sender service message argument. 378 358 * @param[in] call The message call structure. 379 359 */ 380 #define IPC_GET_SENDER(call) \ 381 ({services_t service = (services_t) IPC_GET_ARG3(*call); service;}) 382 383 /*@;})*/ 360 #define IPC_GET_SENDER(call) (services_t) IPC_GET_ARG3(*call) 361 362 /*@}*/ 384 363 385 364 /** @name Fourth arguments 386 365 */ 387 /*@ ({*/366 /*@{*/ 388 367 389 368 /** Returns the error service message argument. 390 369 * @param[in] call The message call structure. 391 370 */ 392 #define IPC_GET_ERROR(call) \ 393 ({services_t service = (services_t) IPC_GET_ARG4(*call); service;}) 394 395 /*@;})*/ 371 #define IPC_GET_ERROR(call) (services_t) IPC_GET_ARG4(*call) 372 373 /*@}*/ 396 374 397 375 /** @name Fifth arguments 398 376 */ 399 /*@ ({*/377 /*@{*/ 400 378 401 379 /** Returns the phone message argument. 402 380 * @param[in] call The message call structure. 403 381 */ 404 #define IPC_GET_PHONE(call) \ 405 ({int phone = (int) IPC_GET_ARG5(*call); phone;}) 382 #define IPC_GET_PHONE(call) (int) IPC_GET_ARG5(*call) 406 383 407 384 /*@}*/ … … 414 391 * @param[out] answer The message answer structure. 415 392 */ 416 #define IPC_SET_DEVICE(answer, value) \ 417 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG1(*answer, argument);} 393 #define IPC_SET_DEVICE(answer) (&IPC_GET_ARG1(*answer)) 418 394 419 395 /** Sets the minimum address length in the message answer. 420 396 * @param[out] answer The message answer structure. 421 397 */ 422 #define IPC_SET_ADDR(answer, value) \ 423 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG1(*answer, argument);} 398 #define IPC_SET_ADDR(answer) (&IPC_GET_ARG1(*answer)) 424 399 425 400 /*@}*/ … … 432 407 * @param[out] answer The message answer structure. 433 408 */ 434 #define IPC_SET_PREFIX(answer, value) \ 435 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG2(*answer, argument);} 409 #define IPC_SET_PREFIX(answer) (&IPC_GET_ARG2(*answer)) 436 410 437 411 /*@}*/ … … 444 418 * @param[out] answer The message answer structure. 445 419 */ 446 #define IPC_SET_CONTENT(answer, value) \ 447 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG3(*answer, argument);} 420 #define IPC_SET_CONTENT(answer) (&IPC_GET_ARG3(*answer)) 448 421 449 422 /*@}*/ … … 456 429 * @param[out] answer The message answer structure. 457 430 */ 458 #define IPC_SET_SUFFIX(answer, value) \ 459 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG4(*answer, argument);} 431 #define IPC_SET_SUFFIX(answer) (&IPC_GET_ARG4(*answer)) 460 432 461 433 /*@}*/ -
uspace/srv/net/netif/netif_messages.h
r40e29f5 r63f8966 79 79 * @param[in] call The message call structure. 80 80 */ 81 #define NETIF_GET_IRQ(call) \ 82 ({int irq = (int) IPC_GET_ARG2(*call); irq;}) 81 #define NETIF_GET_IRQ(call) (int) IPC_GET_ARG2(*call) 83 82 84 83 /** Returns the input/output address message parameter. 85 84 * @param[in] call The message call structure. 86 85 */ 87 #define NETIF_GET_IO(call) \ 88 ({int io = (int) IPC_GET_ARG3(*call); io;}) 86 #define NETIF_GET_IO(call) (int) IPC_GET_ARG3(*call) 89 87 90 88 /*@}*/ -
uspace/srv/net/nil/eth/eth.c
r40e29f5 r63f8966 709 709 measured_string_ref address; 710 710 packet_t packet; 711 size_t addrlen;712 size_t prefix;713 size_t suffix;714 size_t content;715 711 716 712 // printf("message %d - %d\n", IPC_GET_METHOD(*call), NET_NIL_FIRST); … … 725 721 return eth_send_message(IPC_GET_DEVICE(call), packet, IPC_GET_SERVICE(call)); 726 722 case NET_NIL_PACKET_SPACE: 727 ERROR_PROPAGATE(eth_packet_space_message(IPC_GET_DEVICE(call), &addrlen, &prefix, &content, &suffix)); 728 IPC_SET_ADDR(answer, addrlen); 729 IPC_SET_PREFIX(answer, prefix); 730 IPC_SET_CONTENT(answer, content); 731 IPC_SET_SUFFIX(answer, suffix); 723 ERROR_PROPAGATE(eth_packet_space_message(IPC_GET_DEVICE(call), IPC_SET_ADDR(answer), IPC_SET_PREFIX(answer), IPC_SET_CONTENT(answer), IPC_SET_SUFFIX(answer))); 732 724 *answer_count = 4; 733 725 return EOK; -
uspace/srv/net/nil/nil_messages.h
r40e29f5 r63f8966 82 82 /** Returns the protocol service message parameter. 83 83 */ 84 #define NIL_GET_PROTO(call) \ 85 ({services_t service = (services_t) IPC_GET_ARG2(*call); service;}) 84 #define NIL_GET_PROTO(call) (services_t) IPC_GET_ARG2(*call) 86 85 87 86 /*@}*/ -
uspace/srv/net/nil/nildummy/nildummy.c
r40e29f5 r63f8966 316 316 measured_string_ref address; 317 317 packet_t packet; 318 size_t addrlen;319 size_t prefix;320 size_t suffix;321 size_t content;322 318 323 319 // printf("message %d - %d\n", IPC_GET_METHOD(*call), NET_NIL_FIRST); … … 332 328 return nildummy_send_message(IPC_GET_DEVICE(call), packet, IPC_GET_SERVICE(call)); 333 329 case NET_NIL_PACKET_SPACE: 334 ERROR_PROPAGATE(nildummy_packet_space_message(IPC_GET_DEVICE(call), &addrlen, &prefix, &content, &suffix)); 335 IPC_SET_ADDR(answer, addrlen); 336 IPC_SET_PREFIX(answer, prefix); 337 IPC_SET_CONTENT(answer, content); 338 IPC_SET_SUFFIX(answer, suffix); 330 ERROR_PROPAGATE(nildummy_packet_space_message(IPC_GET_DEVICE(call), IPC_SET_ADDR(answer), IPC_SET_PREFIX(answer), IPC_SET_CONTENT(answer), IPC_SET_SUFFIX(answer))); 339 331 *answer_count = 4; 340 332 return EOK; -
uspace/srv/net/socket/socket_client.c
r40e29f5 r63f8966 421 421 int socket_id; 422 422 services_t service; 423 ipcarg_t fragment_size;424 ipcarg_t header_size;425 423 426 424 // find the appropriate service … … 480 478 return socket_id; 481 479 } 482 if(ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL, &fragment_size, &header_size))){480 if(ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL, (ipcarg_t *) &socket->data_fragment_size, (ipcarg_t *) &socket->header_size))){ 483 481 fibril_rwlock_write_unlock(&socket_globals.lock); 484 482 free(socket); 485 483 return ERROR_CODE; 486 484 } 487 socket->data_fragment_size = (size_t) fragment_size;488 socket->header_size = (size_t) header_size;489 485 // finish the new socket initialization 490 486 socket_initialize(socket, socket_id, phone, service); -
uspace/srv/net/socket/socket_messages.h
r40e29f5 r63f8966 115 115 * @param[out] answer The message answer structure. 116 116 */ 117 #define SOCKET_SET_SOCKET_ID(answer, value) \ 118 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG1(answer, argument);} 117 #define SOCKET_SET_SOCKET_ID(answer) &IPC_GET_ARG1(answer) 119 118 120 119 /** Returns the socket identifier message parameter. 121 120 * @param[in] call The message call structure. 122 121 */ 123 #define SOCKET_GET_SOCKET_ID(call) \ 124 ({int socket_id = (int) IPC_GET_ARG1(call); socket_id;}) 122 #define SOCKET_GET_SOCKET_ID(call) (int) IPC_GET_ARG1(call) 125 123 126 124 /** Sets the read data length in the message answer. 127 125 * @param[out] answer The message answer structure. 128 126 */ 129 #define SOCKET_SET_READ_DATA_LENGTH(answer, value) \ 130 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG1(answer, argument);} 127 #define SOCKET_SET_READ_DATA_LENGTH(answer) &IPC_GET_ARG1(answer) 131 128 132 129 /** Returns the read data length message parameter. 133 130 * @param[in] call The message call structure. 134 131 */ 135 #define SOCKET_GET_READ_DATA_LENGTH(call) \ 136 ({int data_length = (int) IPC_GET_ARG1(call); data_length;}) 132 #define SOCKET_GET_READ_DATA_LENGTH(call) (int) IPC_GET_ARG1(call) 137 133 138 134 /** Returns the backlog message parameter. 139 135 * @param[in] call The message call structure. 140 136 */ 141 #define SOCKET_GET_BACKLOG(call) \ 142 ({int backlog = (int) IPC_GET_ARG2(call); backlog;}) 137 #define SOCKET_GET_BACKLOG(call) (int) IPC_GET_ARG2(call) 143 138 144 139 /** Returns the option level message parameter. 145 140 * @param[in] call The message call structure. 146 141 */ 147 #define SOCKET_GET_OPT_LEVEL(call) \ 148 ({int opt_level = (int) IPC_GET_ARG2(call); opt_level;}) 142 #define SOCKET_GET_OPT_LEVEL(call) (int) IPC_GET_ARG2(call) 149 143 150 144 /** Returns the data fragment size message parameter. 151 145 * @param[in] call The message call structure. 152 146 */ 153 #define SOCKET_GET_DATA_FRAGMENT_SIZE(call) \ 154 ({size_t size = (size_t) IPC_GET_ARG2(call); size;}) 147 #define SOCKET_GET_DATA_FRAGMENT_SIZE(call) (size_t) IPC_GET_ARG2(call) 155 148 156 149 /** Sets the data fragment size in the message answer. 157 150 * @param[out] answer The message answer structure. 158 151 */ 159 #define SOCKET_SET_DATA_FRAGMENT_SIZE(answer, value) \ 160 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG2(answer, argument);} 152 #define SOCKET_SET_DATA_FRAGMENT_SIZE(answer) &IPC_GET_ARG2(answer) 161 153 162 154 /** Sets the address length in the message answer. 163 155 * @param[out] answer The message answer structure. 164 156 */ 165 #define SOCKET_SET_ADDRESS_LENGTH(answer, value) \ 166 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG3(answer, argument);} 157 #define SOCKET_SET_ADDRESS_LENGTH(answer) &IPC_GET_ARG3(answer) 167 158 168 159 /** Returns the address length message parameter. 169 160 * @param[in] call The message call structure. 170 161 */ 171 #define SOCKET_GET_ADDRESS_LENGTH(call) \ 172 ({socklen_t address_length = (socklen_t) IPC_GET_ARG3(call); address_length;}) 162 #define SOCKET_GET_ADDRESS_LENGTH(call) (socklen_t) IPC_GET_ARG3(call) 173 163 174 164 /** Sets the header size in the message answer. 175 165 * @param[out] answer The message answer structure. 176 166 */ 177 #define SOCKET_SET_HEADER_SIZE(answer, value) \ 178 \ 179 {ipcarg_t argument = (ipcarg_t) (value); IPC_SET_ARG3(answer, argument);} 167 #define SOCKET_SET_HEADER_SIZE(answer) &IPC_GET_ARG3(answer) 180 168 181 169 /** Returns the header size message parameter. 182 170 * @param[in] call The message call structure. 183 171 */ 184 #define SOCKET_GET_HEADER_SIZE(call) \ 185 ({size_t size = (size_t) IPC_GET_ARG3(call); size;}) 172 #define SOCKET_GET_HEADER_SIZE(call) (size_t) IPC_GET_ARG3(call) 186 173 187 174 /** Returns the flags message parameter. 188 175 * @param[in] call The message call structure. 189 176 */ 190 #define SOCKET_GET_FLAGS(call) \ 191 ({int flags = (int) IPC_GET_ARG4(call); flags;}) 177 #define SOCKET_GET_FLAGS(call) (int) IPC_GET_ARG4(call) 192 178 193 179 /** Returns the option name message parameter. 194 180 * @param[in] call The message call structure. 195 181 */ 196 #define SOCKET_GET_OPT_NAME(call) \ 197 ({int opt_name = (int) IPC_GET_ARG4(call); opt_name;}) 182 #define SOCKET_GET_OPT_NAME(call) (int) IPC_GET_ARG4(call) 198 183 199 184 /** Returns the data fragments message parameter. 200 185 * @param[in] call The message call structure. 201 186 */ 202 #define SOCKET_GET_DATA_FRAGMENTS(call) \ 203 ({int fragments = (int) IPC_GET_ARG5(call); fragments;}) 187 #define SOCKET_GET_DATA_FRAGMENTS(call) (int) IPC_GET_ARG5(call) 204 188 205 189 /** Returns the new socket identifier message parameter. 206 190 * @param[in] call The message call structure. 207 191 */ 208 #define SOCKET_GET_NEW_SOCKET_ID(call) \ 209 ({int socket_id = (int) IPC_GET_ARG5(call); socket_id;}) 192 #define SOCKET_GET_NEW_SOCKET_ID(call) (int) IPC_GET_ARG5(call) 210 193 211 194 /*@}*/ -
uspace/srv/net/structures/packet/packet_server.c
r40e29f5 r63f8966 194 194 } 195 195 *answer_count = 2; 196 IPC_SET_ARG1(*answer, (ipcarg_t)packet->packet_id);197 IPC_SET_ARG2(*answer, (ipcarg_t)packet->length);196 IPC_SET_ARG1(*answer, packet->packet_id); 197 IPC_SET_ARG2(*answer, packet->length); 198 198 return EOK; 199 199 case NET_PACKET_CREATE_4: … … 203 203 } 204 204 *answer_count = 2; 205 IPC_SET_ARG1(*answer, (ipcarg_t)packet->packet_id);206 IPC_SET_ARG2(*answer, (ipcarg_t)packet->length);205 IPC_SET_ARG1(*answer, packet->packet_id); 206 IPC_SET_ARG2(*answer, packet->length); 207 207 return EOK; 208 208 case NET_PACKET_GET: … … 217 217 return ENOENT; 218 218 } 219 IPC_SET_ARG1(*answer, (ipcarg_t)packet->length);219 IPC_SET_ARG1(*answer, packet->length); 220 220 *answer_count = 1; 221 221 return EOK; -
uspace/srv/net/tl/icmp/icmp_messages.h
r40e29f5 r63f8966 82 82 * @param[in] call The message call structure. 83 83 */ 84 #define ICMP_GET_CODE(call) \ 85 ({icmp_code_t code = (icmp_code_t) IPC_GET_ARG1(*call); code;}) 84 #define ICMP_GET_CODE(call) (icmp_code_t) IPC_GET_ARG1(*call) 86 85 87 86 /** Returns the ICMP link MTU message parameter. 88 87 * @param[in] call The message call structure. 89 88 */ 90 #define ICMP_GET_MTU(call) \ 91 ({icmp_param_t mtu = (icmp_param_t) IPC_GET_ARG3(*call); mtu;}) 89 #define ICMP_GET_MTU(call) (icmp_param_t) IPC_GET_ARG3(*call) 92 90 93 91 /** Returns the pointer message parameter. 94 92 * @param[in] call The message call structure. 95 93 */ 96 #define ICMP_GET_POINTER(call) \ 97 ({icmp_param_t pointer = (icmp_param_t) IPC_GET_ARG3(*call); pointer;}) 94 #define ICMP_GET_POINTER(call) (icmp_param_t) IPC_GET_ARG3(*call) 98 95 99 96 /** Returns the size message parameter. 100 97 * @param[in] call The message call structure. 101 98 */ 102 #define ICMP_GET_SIZE(call) \ 103 ({size_t size = (size_t) IPC_GET_ARG1(call); size;}) 99 #define ICMP_GET_SIZE(call) (size_t) IPC_GET_ARG1(call) 104 100 105 101 /** Returns the timeout message parameter. 106 102 * @param[in] call The message call structure. 107 103 */ 108 #define ICMP_GET_TIMEOUT(call) \ 109 (({suseconds_t timeout = (suseconds_t) IPC_GET_ARG2(call); timeout;})) 104 #define ICMP_GET_TIMEOUT(call) ((suseconds_t) IPC_GET_ARG2(call)) 110 105 111 106 /** Returns the time to live message parameter. 112 107 * @param[in] call The message call structure. 113 108 */ 114 #define ICMP_GET_TTL(call) \ 115 ({ip_ttl_t ttl = (ip_ttl_t) IPC_GET_ARG3(call); ttl;}) 109 #define ICMP_GET_TTL(call) (ip_ttl_t) IPC_GET_ARG3(call) 116 110 117 111 /** Returns the type of service message parameter. 118 112 * @param[in] call The message call structure. 119 113 */ 120 #define ICMP_GET_TOS(call) \ 121 ({ip_tos_t tos = (ip_tos_t) IPC_GET_ARG4(call); tos;}) 114 #define ICMP_GET_TOS(call) (ip_tos_t) IPC_GET_ARG4(call) 122 115 123 116 /** Returns the dont fragment message parameter. 124 117 * @param[in] call The message call structure. 125 118 */ 126 #define ICMP_GET_DONT_FRAGMENT(call) \ 127 ({int dont_fragment = (int) IPC_GET_ARG5(call); dont_fragment;}) 119 #define ICMP_GET_DONT_FRAGMENT(call) (int) IPC_GET_ARG5(call) 128 120 129 121 /*@}*/ -
uspace/srv/net/tl/tcp/tcp.c
r40e29f5 r63f8966 1062 1062 int socket_id; 1063 1063 size_t addrlen; 1064 size_t size;1065 1064 fibril_rwlock_t lock; 1066 1065 ipc_call_t answer; … … 1108 1107 socket_id = SOCKET_GET_SOCKET_ID(call); 1109 1108 res = socket_create(&local_sockets, app_phone, socket_data, &socket_id); 1110 SOCKET_SET_SOCKET_ID(answer, socket_id);1109 *SOCKET_SET_SOCKET_ID(answer) = socket_id; 1111 1110 fibril_rwlock_write_unlock(&lock); 1112 1111 if(res == EOK){ 1113 1112 if(tl_get_ip_packet_dimension(tcp_globals.ip_phone, &tcp_globals.dimensions, DEVICE_INVALID_ID, &packet_dimension) == EOK){ 1114 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, ((packet_dimension->content < socket_data->data_fragment_size) ? packet_dimension->content : socket_data->data_fragment_size));1113 *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = ((packet_dimension->content < socket_data->data_fragment_size) ? packet_dimension->content : socket_data->data_fragment_size); 1115 1114 } 1116 // SOCKET_SET_DATA_FRAGMENT_SIZE(answer, MAX_TCP_FRAGMENT_SIZE);1117 SOCKET_SET_HEADER_SIZE(answer, TCP_HEADER_SIZE);1115 // *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = MAX_TCP_FRAGMENT_SIZE; 1116 *SOCKET_SET_HEADER_SIZE(answer) = TCP_HEADER_SIZE; 1118 1117 answer_count = 3; 1119 1118 }else{ … … 1167 1166 fibril_rwlock_read_lock(&tcp_globals.lock); 1168 1167 fibril_rwlock_write_lock(&lock); 1169 res = tcp_accept_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), SOCKET_GET_NEW_SOCKET_ID(call), &size, &addrlen); 1170 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, size); 1168 res = tcp_accept_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), SOCKET_GET_NEW_SOCKET_ID(call), SOCKET_SET_DATA_FRAGMENT_SIZE(answer), &addrlen); 1171 1169 fibril_rwlock_write_unlock(&lock); 1172 1170 fibril_rwlock_read_unlock(&tcp_globals.lock); 1173 1171 if(res > 0){ 1174 SOCKET_SET_SOCKET_ID(answer, res);1175 SOCKET_SET_ADDRESS_LENGTH(answer, addrlen);1172 *SOCKET_SET_SOCKET_ID(answer) = res; 1173 *SOCKET_SET_ADDRESS_LENGTH(answer) = addrlen; 1176 1174 answer_count = 3; 1177 1175 } … … 1180 1178 fibril_rwlock_read_lock(&tcp_globals.lock); 1181 1179 fibril_rwlock_write_lock(&lock); 1182 res = tcp_send_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), SOCKET_GET_DATA_FRAGMENTS(call), &size, SOCKET_GET_FLAGS(call)); 1183 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, size); 1180 res = tcp_send_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), SOCKET_GET_DATA_FRAGMENTS(call), SOCKET_SET_DATA_FRAGMENT_SIZE(answer), SOCKET_GET_FLAGS(call)); 1184 1181 if(res != EOK){ 1185 1182 fibril_rwlock_write_unlock(&lock); … … 1194 1191 fibril_rwlock_read_lock(&tcp_globals.lock); 1195 1192 fibril_rwlock_write_lock(&lock); 1196 res = tcp_send_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), SOCKET_GET_DATA_FRAGMENTS(call), &size, SOCKET_GET_FLAGS(call)); 1197 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, size); 1193 res = tcp_send_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), SOCKET_GET_DATA_FRAGMENTS(call), SOCKET_SET_DATA_FRAGMENT_SIZE(answer), SOCKET_GET_FLAGS(call)); 1198 1194 if(res != EOK){ 1199 1195 fibril_rwlock_write_unlock(&lock); … … 1212 1208 fibril_rwlock_read_unlock(&tcp_globals.lock); 1213 1209 if(res > 0){ 1214 SOCKET_SET_READ_DATA_LENGTH(answer, res);1210 *SOCKET_SET_READ_DATA_LENGTH(answer) = res; 1215 1211 answer_count = 1; 1216 1212 res = EOK; … … 1224 1220 fibril_rwlock_read_unlock(&tcp_globals.lock); 1225 1221 if(res > 0){ 1226 SOCKET_SET_READ_DATA_LENGTH(answer, res);1227 SOCKET_SET_ADDRESS_LENGTH(answer, addrlen);1222 *SOCKET_SET_READ_DATA_LENGTH(answer) = res; 1223 *SOCKET_SET_ADDRESS_LENGTH(answer) = addrlen; 1228 1224 answer_count = 3; 1229 1225 res = EOK; -
uspace/srv/net/tl/udp/udp.c
r40e29f5 r63f8966 419 419 int socket_id; 420 420 size_t addrlen; 421 size_t size;422 421 ipc_call_t answer; 423 422 int answer_count; … … 455 454 socket_id = SOCKET_GET_SOCKET_ID(call); 456 455 res = socket_create(&local_sockets, app_phone, NULL, &socket_id); 457 SOCKET_SET_SOCKET_ID(answer, socket_id);458 456 *SOCKET_SET_SOCKET_ID(answer) = socket_id; 457 459 458 if(res == EOK){ 460 459 if(tl_get_ip_packet_dimension(udp_globals.ip_phone, &udp_globals.dimensions, DEVICE_INVALID_ID, &packet_dimension) == EOK){ 461 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, packet_dimension->content);460 *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = packet_dimension->content; 462 461 } 463 // SOCKET_SET_DATA_FRAGMENT_SIZE(answer, MAX_UDP_FRAGMENT_SIZE);464 SOCKET_SET_HEADER_SIZE(answer, UDP_HEADER_SIZE);462 // *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = MAX_UDP_FRAGMENT_SIZE; 463 *SOCKET_SET_HEADER_SIZE(answer) = UDP_HEADER_SIZE; 465 464 answer_count = 3; 466 465 } … … 479 478 if(res == EOK){ 480 479 fibril_rwlock_write_lock(&udp_globals.lock); 481 res = udp_sendto_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), addr, addrlen, SOCKET_GET_DATA_FRAGMENTS(call), &size, SOCKET_GET_FLAGS(call)); 482 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, size); 480 res = udp_sendto_message(&local_sockets, SOCKET_GET_SOCKET_ID(call), addr, addrlen, SOCKET_GET_DATA_FRAGMENTS(call), SOCKET_SET_DATA_FRAGMENT_SIZE(answer), SOCKET_GET_FLAGS(call)); 483 481 if(res != EOK){ 484 482 fibril_rwlock_write_unlock(&udp_globals.lock); … … 494 492 fibril_rwlock_write_unlock(&udp_globals.lock); 495 493 if(res > 0){ 496 SOCKET_SET_READ_DATA_LENGTH(answer, res);497 SOCKET_SET_ADDRESS_LENGTH(answer, addrlen);494 *SOCKET_SET_READ_DATA_LENGTH(answer) = res; 495 *SOCKET_SET_ADDRESS_LENGTH(answer) = addrlen; 498 496 answer_count = 3; 499 497 res = EOK;
Note:
See TracChangeset
for help on using the changeset viewer.