Changes in uspace/srv/net/il/ip/ip_remote.c [91478aa:aadf01e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/il/ip/ip_remote.c
r91478aa raadf01e 52 52 #include "ip_messages.h" 53 53 54 int ip_device_req( int ip_phone, device_id_t device_id, services_t service){55 return generic_device_req( ip_phone, NET_IL_DEVICE, device_id, 0, service);54 int ip_device_req(int ip_phone, device_id_t device_id, services_t service){ 55 return generic_device_req(ip_phone, NET_IL_DEVICE, device_id, 0, service); 56 56 } 57 57 58 int ip_send_msg( int ip_phone, device_id_t device_id, packet_t packet, services_t sender, services_t error){59 return generic_send_msg( ip_phone, NET_IL_SEND, device_id, packet_get_id( packet ), sender, error);58 int ip_send_msg(int ip_phone, device_id_t device_id, packet_t packet, services_t sender, services_t error){ 59 return generic_send_msg(ip_phone, NET_IL_SEND, device_id, packet_get_id(packet), sender, error); 60 60 } 61 61 62 int ip_connect_module( services_t service){63 return connect_to_service( SERVICE_IP);62 int ip_connect_module(services_t service){ 63 return connect_to_service(SERVICE_IP); 64 64 } 65 65 66 int ip_add_route_req( int ip_phone, device_id_t device_id, in_addr_t address, in_addr_t netmask, in_addr_t gateway){67 return ( int ) async_req_4_0( ip_phone, NET_IP_ADD_ROUTE, ( ipcarg_t ) device_id, ( ipcarg_t ) gateway.s_addr, ( ipcarg_t ) address.s_addr, ( ipcarg_t ) netmask.s_addr);66 int ip_add_route_req(int ip_phone, device_id_t device_id, in_addr_t address, in_addr_t netmask, in_addr_t gateway){ 67 return (int) async_req_4_0(ip_phone, NET_IP_ADD_ROUTE, (ipcarg_t) device_id, (ipcarg_t) gateway.s_addr, (ipcarg_t) address.s_addr, (ipcarg_t) netmask.s_addr); 68 68 } 69 69 70 int ip_set_gateway_req( int ip_phone, device_id_t device_id, in_addr_t gateway){71 return ( int ) async_req_2_0( ip_phone, NET_IP_SET_GATEWAY, ( ipcarg_t ) device_id, ( ipcarg_t ) gateway.s_addr);70 int ip_set_gateway_req(int ip_phone, device_id_t device_id, in_addr_t gateway){ 71 return (int) async_req_2_0(ip_phone, NET_IP_SET_GATEWAY, (ipcarg_t) device_id, (ipcarg_t) gateway.s_addr); 72 72 } 73 73 74 int ip_packet_size_req( int ip_phone, device_id_t device_id, packet_dimension_ref packet_dimension){75 return generic_packet_size_req( ip_phone, NET_IL_PACKET_SPACE, device_id, packet_dimension);74 int ip_packet_size_req(int ip_phone, device_id_t device_id, packet_dimension_ref packet_dimension){ 75 return generic_packet_size_req(ip_phone, NET_IL_PACKET_SPACE, device_id, packet_dimension); 76 76 } 77 77 78 int ip_bind_service( services_t service, int protocol, services_t me, async_client_conn_t receiver, tl_received_msg_t tl_received_msg){79 return ( int ) bind_service( service, ( ipcarg_t ) protocol, me, service, receiver);78 int ip_bind_service(services_t service, int protocol, services_t me, async_client_conn_t receiver, tl_received_msg_t tl_received_msg){ 79 return (int) bind_service(service, (ipcarg_t) protocol, me, service, receiver); 80 80 } 81 81 82 int ip_received_error_msg( int ip_phone, device_id_t device_id, packet_t packet, services_t target, services_t error){83 return generic_received_msg( ip_phone, NET_IP_RECEIVED_ERROR, device_id, packet_get_id( packet ), target, error);82 int ip_received_error_msg(int ip_phone, device_id_t device_id, packet_t packet, services_t target, services_t error){ 83 return generic_received_msg(ip_phone, NET_IP_RECEIVED_ERROR, device_id, packet_get_id(packet), target, error); 84 84 } 85 85 86 int ip_get_route_req( int ip_phone, ip_protocol_t protocol, const struct sockaddr * destination, socklen_t addrlen, device_id_t * device_id, ip_pseudo_header_ref * header, size_t * headerlen){87 aid_t 88 ipcarg_t 89 ipc_call_t 86 int ip_get_route_req(int ip_phone, ip_protocol_t protocol, const struct sockaddr * destination, socklen_t addrlen, device_id_t * device_id, ip_pseudo_header_ref * header, size_t * headerlen){ 87 aid_t message_id; 88 ipcarg_t result; 89 ipc_call_t answer; 90 90 91 if( !( destination && ( addrlen > 0 ))) return EINVAL; 92 if( !( device_id && header && headerlen )) return EBADMEM; 93 * header = NULL; 94 message_id = async_send_1( ip_phone, NET_IP_GET_ROUTE, ( ipcarg_t ) protocol, & answer ); 95 if(( async_data_write_start( ip_phone, destination, addrlen ) == EOK ) 96 && ( async_data_read_start( ip_phone, headerlen, sizeof( * headerlen )) == EOK ) 97 && ( * headerlen > 0 )){ 98 * header = ( ip_pseudo_header_ref ) malloc( * headerlen ); 99 if( * header ){ 100 if( async_data_read_start( ip_phone, * header, * headerlen ) != EOK ){ 101 free( * header ); 91 if(!(destination && (addrlen > 0))){ 92 return EINVAL; 93 } 94 if(!(device_id && header && headerlen)){ 95 return EBADMEM; 96 } 97 *header = NULL; 98 message_id = async_send_1(ip_phone, NET_IP_GET_ROUTE, (ipcarg_t) protocol, &answer); 99 if((async_data_write_start(ip_phone, destination, addrlen) == EOK) 100 && (async_data_read_start(ip_phone, headerlen, sizeof(*headerlen)) == EOK) 101 && (*headerlen > 0)){ 102 *header = (ip_pseudo_header_ref) malloc(*headerlen); 103 if(*header){ 104 if(async_data_read_start(ip_phone, * header, * headerlen) != EOK){ 105 free(*header); 102 106 } 103 107 } 104 108 } 105 async_wait_for( message_id, & result);106 if(( result != EOK ) && ( * header)){107 free( * header);109 async_wait_for(message_id, &result); 110 if((result != EOK) && (*header)){ 111 free(*header); 108 112 }else{ 109 * device_id = IPC_GET_DEVICE( & answer);113 *device_id = IPC_GET_DEVICE(&answer); 110 114 } 111 return ( int) result;115 return (int) result; 112 116 } 113 117
Note:
See TracChangeset
for help on using the changeset viewer.