/branches/network/uspace/srv/net/netif/netif.c |
---|
45,11 → 45,13 |
#include "../modules.h" |
#include "../structures/packet/packet.h" |
#include "../structures/packet/packet_client.h" |
#include "device.h" |
#include "netif.h" |
#define IPC_GET_DEVICE( call ) ( device_id_t ) IPC_GET_ARG1( * call ) |
#define IPC_GET_PACKET( call ) ( packet_id_t ) IPC_GET_ARG2( * call ) |
#define IPC_GET_IRQ( call ) ( int ) IPC_GET_ARG2( * call ) |
#define IPC_GET_IO( call ) ( int ) IPC_GET_ARG3( * call ) |
#define IPC_GET_PHONE( call ) ( int ) IPC_GET_ARG5( * call ) |
146,7 → 148,7 |
case IPC_M_CONNECT_TO_ME: |
return register_message( IPC_GET_DEVICE( call ), IPC_GET_PHONE( call )); |
case NET_NETIF_SEND: |
ERROR_PROPAGATE( packet_receive( & packet )); |
ERROR_PROPAGATE( packet_translate( netif_globals.networking_phone, & packet, IPC_GET_PACKET( call ))); |
return send_message( IPC_GET_DEVICE( call ), packet ); |
case NET_NETIF_START: |
return start_message( IPC_GET_DEVICE( call )); |
168,7 → 170,7 |
netif_globals.networking_phone = connect_to_service( SERVICE_NETWORKING ); |
device_map_initialize( & netif_globals.device_map ); |
ERROR_PROPAGATE( initialize()); |
ERROR_PROPAGATE( pm_init()); |
async_manager(); |
return EOK; |
/branches/network/uspace/srv/net/netif/lo/lo.c |
---|
45,7 → 45,7 |
#include "../../modules.h" |
#include "../../structures/measured_strings.h" |
#include "../../structures/packet/packet.h" |
#include "../../structures/packet/packet_client.h" |
#include "../netif.h" |
163,9 → 163,6 |
device_ref device; |
size_t length; |
aid_t message; |
ipc_call_t answer; |
ipcarg_t result; |
packet_t received; |
ERROR_PROPAGATE( find_device( device_id, & device )); |
175,18 → 172,18 |
length = packet_get_data_length( packet ); |
device->stats.tx_bytes += length; |
device->stats.rx_bytes += length; |
received = packet_copy( packet ); |
packet_destroy( packet ); |
received = packet_copy( netif_globals.networking_phone, SERVICE_LO, packet ); |
packet_release( netif_globals.networking_phone, packet_get_id( packet )); |
if( ! received ){ |
++ device->stats.rx_dropped; |
return EOK; |
} |
message = async_send_1( device->nil_phone, NET_NIL_RECEIVED, ( device_id ), & answer ); |
if( ERROR_OCCURED( packet_send( received, device->nil_phone ))){ |
++ device->stats.rx_dropped; |
} |
async_wait_for( message, & result ); |
if( result != EOK ) ++ device->stats.rx_dropped; |
async_msg_2( device->nil_phone, NET_NIL_RECEIVED, device_id, packet_get_id( received )); |
// message = async_send_1( device->nil_phone, NET_NIL_RECEIVED, ( device_id ), & answer ); |
// if( ERROR_OCCURED( packet_send( received, device->nil_phone ))){ |
// ++ device->stats.rx_dropped; |
// } |
// if( result != EOK ) ++ device->stats.rx_dropped; |
return EOK; |
} |
/branches/network/uspace/srv/net/netif/lo/Makefile |
---|
46,6 → 46,7 |
../../module.c \ |
../../modules.c \ |
../../structures/measured_strings.h \ |
../../structures/packet/packet_client.c \ |
../../structures/packet/packet.c |
DEFS += -D $(NETIF)_message=module_message -D $(NETIF)_start_module=module_start -D $(NETIF)_print_name=module_print_name |