Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3900 → Rev 3901

/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