Changeset e417b96 in mainline for uspace/srv/net/tl
- Timestamp:
- 2010-03-23T22:58:44Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5814ef7
- Parents:
- 76ca3f7
- Location:
- uspace/srv/net/tl
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tl/icmp/icmp_messages.h
r76ca3f7 re417b96 82 82 * @param[in] call The message call structure. 83 83 */ 84 #define ICMP_GET_CODE(call) (icmp_code_t) IPC_GET_ARG1(*call) 84 #define ICMP_GET_CODE(call) \ 85 ({icmp_code_t code = (icmp_code_t) IPC_GET_ARG1(*call); code;}) 85 86 86 87 /** Returns the ICMP link MTU message parameter. 87 88 * @param[in] call The message call structure. 88 89 */ 89 #define ICMP_GET_MTU(call) (icmp_param_t) IPC_GET_ARG3(*call) 90 #define ICMP_GET_MTU(call) \ 91 ({icmp_param_t mtu = (icmp_param_t) IPC_GET_ARG3(*call); mtu;}) 90 92 91 93 /** Returns the pointer message parameter. 92 94 * @param[in] call The message call structure. 93 95 */ 94 #define ICMP_GET_POINTER(call) (icmp_param_t) IPC_GET_ARG3(*call) 96 #define ICMP_GET_POINTER(call) \ 97 ({icmp_param_t pointer = (icmp_param_t) IPC_GET_ARG3(*call); pointer;}) 95 98 96 99 /** Returns the size message parameter. 97 100 * @param[in] call The message call structure. 98 101 */ 99 #define ICMP_GET_SIZE(call) (size_t) IPC_GET_ARG1(call) 102 #define ICMP_GET_SIZE(call) \ 103 ({size_t size = (size_t) IPC_GET_ARG1(call); size;}) 100 104 101 105 /** Returns the timeout message parameter. 102 106 * @param[in] call The message call structure. 103 107 */ 104 #define ICMP_GET_TIMEOUT(call) ((suseconds_t) IPC_GET_ARG2(call)) 108 #define ICMP_GET_TIMEOUT(call) \ 109 (({suseconds_t timeout = (suseconds_t) IPC_GET_ARG2(call); timeout;})) 105 110 106 111 /** Returns the time to live message parameter. 107 112 * @param[in] call The message call structure. 108 113 */ 109 #define ICMP_GET_TTL(call) (ip_ttl_t) IPC_GET_ARG3(call) 114 #define ICMP_GET_TTL(call) \ 115 ({ip_ttl_t ttl = (ip_ttl_t) IPC_GET_ARG3(call); ttl;}) 110 116 111 117 /** Returns the type of service message parameter. 112 118 * @param[in] call The message call structure. 113 119 */ 114 #define ICMP_GET_TOS(call) (ip_tos_t) IPC_GET_ARG4(call) 120 #define ICMP_GET_TOS(call) \ 121 ({ip_tos_t tos = (ip_tos_t) IPC_GET_ARG4(call); tos;}) 115 122 116 123 /** Returns the dont fragment message parameter. 117 124 * @param[in] call The message call structure. 118 125 */ 119 #define ICMP_GET_DONT_FRAGMENT(call) (int) IPC_GET_ARG5(call) 126 #define ICMP_GET_DONT_FRAGMENT(call) \ 127 ({int dont_fragment = (int) IPC_GET_ARG5(call); dont_fragment;}) 120 128 121 129 /*@}*/ -
uspace/srv/net/tl/tcp/tcp.c
r76ca3f7 re417b96 1062 1062 int socket_id; 1063 1063 size_t addrlen; 1064 size_t size; 1064 1065 fibril_rwlock_t lock; 1065 1066 ipc_call_t answer; … … 1107 1108 socket_id = SOCKET_GET_SOCKET_ID(call); 1108 1109 res = socket_create(&local_sockets, app_phone, socket_data, &socket_id); 1109 *SOCKET_SET_SOCKET_ID(answer) = socket_id;1110 SOCKET_SET_SOCKET_ID(answer, socket_id); 1110 1111 fibril_rwlock_write_unlock(&lock); 1111 1112 if(res == EOK){ 1112 1113 if(tl_get_ip_packet_dimension(tcp_globals.ip_phone, &tcp_globals.dimensions, DEVICE_INVALID_ID, &packet_dimension) == EOK){ 1113 *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = ((packet_dimension->content < socket_data->data_fragment_size) ? packet_dimension->content : socket_data->data_fragment_size);1114 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, ((packet_dimension->content < socket_data->data_fragment_size) ? packet_dimension->content : socket_data->data_fragment_size)); 1114 1115 } 1115 // *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = MAX_TCP_FRAGMENT_SIZE;1116 *SOCKET_SET_HEADER_SIZE(answer) = TCP_HEADER_SIZE;1116 // SOCKET_SET_DATA_FRAGMENT_SIZE(answer, MAX_TCP_FRAGMENT_SIZE); 1117 SOCKET_SET_HEADER_SIZE(answer, TCP_HEADER_SIZE); 1117 1118 answer_count = 3; 1118 1119 }else{ … … 1166 1167 fibril_rwlock_read_lock(&tcp_globals.lock); 1167 1168 fibril_rwlock_write_lock(&lock); 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); 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); 1169 1171 fibril_rwlock_write_unlock(&lock); 1170 1172 fibril_rwlock_read_unlock(&tcp_globals.lock); 1171 1173 if(res > 0){ 1172 *SOCKET_SET_SOCKET_ID(answer) = res;1173 *SOCKET_SET_ADDRESS_LENGTH(answer) = addrlen;1174 SOCKET_SET_SOCKET_ID(answer, res); 1175 SOCKET_SET_ADDRESS_LENGTH(answer, addrlen); 1174 1176 answer_count = 3; 1175 1177 } … … 1178 1180 fibril_rwlock_read_lock(&tcp_globals.lock); 1179 1181 fibril_rwlock_write_lock(&lock); 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)); 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); 1181 1184 if(res != EOK){ 1182 1185 fibril_rwlock_write_unlock(&lock); … … 1191 1194 fibril_rwlock_read_lock(&tcp_globals.lock); 1192 1195 fibril_rwlock_write_lock(&lock); 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)); 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); 1194 1198 if(res != EOK){ 1195 1199 fibril_rwlock_write_unlock(&lock); … … 1208 1212 fibril_rwlock_read_unlock(&tcp_globals.lock); 1209 1213 if(res > 0){ 1210 *SOCKET_SET_READ_DATA_LENGTH(answer) = res;1214 SOCKET_SET_READ_DATA_LENGTH(answer, res); 1211 1215 answer_count = 1; 1212 1216 res = EOK; … … 1220 1224 fibril_rwlock_read_unlock(&tcp_globals.lock); 1221 1225 if(res > 0){ 1222 *SOCKET_SET_READ_DATA_LENGTH(answer) = res;1223 *SOCKET_SET_ADDRESS_LENGTH(answer) = addrlen;1226 SOCKET_SET_READ_DATA_LENGTH(answer, res); 1227 SOCKET_SET_ADDRESS_LENGTH(answer, addrlen); 1224 1228 answer_count = 3; 1225 1229 res = EOK; -
uspace/srv/net/tl/udp/udp.c
r76ca3f7 re417b96 419 419 int socket_id; 420 420 size_t addrlen; 421 size_t size; 421 422 ipc_call_t answer; 422 423 int answer_count; … … 454 455 socket_id = SOCKET_GET_SOCKET_ID(call); 455 456 res = socket_create(&local_sockets, app_phone, NULL, &socket_id); 456 *SOCKET_SET_SOCKET_ID(answer) = socket_id;457 457 SOCKET_SET_SOCKET_ID(answer, socket_id); 458 458 459 if(res == EOK){ 459 460 if(tl_get_ip_packet_dimension(udp_globals.ip_phone, &udp_globals.dimensions, DEVICE_INVALID_ID, &packet_dimension) == EOK){ 460 *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = packet_dimension->content;461 SOCKET_SET_DATA_FRAGMENT_SIZE(answer, packet_dimension->content); 461 462 } 462 // *SOCKET_SET_DATA_FRAGMENT_SIZE(answer) = MAX_UDP_FRAGMENT_SIZE;463 *SOCKET_SET_HEADER_SIZE(answer) = UDP_HEADER_SIZE;463 // SOCKET_SET_DATA_FRAGMENT_SIZE(answer, MAX_UDP_FRAGMENT_SIZE); 464 SOCKET_SET_HEADER_SIZE(answer, UDP_HEADER_SIZE); 464 465 answer_count = 3; 465 466 } … … 478 479 if(res == EOK){ 479 480 fibril_rwlock_write_lock(&udp_globals.lock); 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)); 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); 481 483 if(res != EOK){ 482 484 fibril_rwlock_write_unlock(&udp_globals.lock); … … 492 494 fibril_rwlock_write_unlock(&udp_globals.lock); 493 495 if(res > 0){ 494 *SOCKET_SET_READ_DATA_LENGTH(answer) = res;495 *SOCKET_SET_ADDRESS_LENGTH(answer) = addrlen;496 SOCKET_SET_READ_DATA_LENGTH(answer, res); 497 SOCKET_SET_ADDRESS_LENGTH(answer, addrlen); 496 498 answer_count = 3; 497 499 res = EOK;
Note:
See TracChangeset
for help on using the changeset viewer.
