Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4731 → Rev 4743

/branches/network/uspace/srv/net/netif/netif_remote.c
48,8 → 48,8
 
#include "netif_messages.h"
 
int netif_get_addr( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data ){
return generic_get_addr( netif_phone, NET_NETIF_GET_ADDR, device_id, address, data );
int netif_get_addr_req( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data ){
return generic_get_addr_req( netif_phone, NET_NETIF_GET_ADDR, device_id, address, data );
}
 
int netif_probe_req( int netif_phone, device_id_t device_id, int irq, int io ){
/branches/network/uspace/srv/net/netif/netif.c
155,7 → 155,7
return res;
}
 
int netif_get_addr( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data ){
int netif_get_addr_req( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data ){
ERROR_DECLARE;
 
measured_string_t translation;
/branches/network/uspace/srv/net/netif/dp8390/dp8390_port.h
115,7 → 115,6
} ether_addr_t;
 
/* type.h */
//TODO platform dependent types
typedef unsigned long phys_bytes; /* physical addr/length in bytes */
typedef unsigned int vir_bytes; /* virtual addresses and lengths in bytes */
 
/branches/network/uspace/srv/net/netif/dp8390/dp8390.c
322,15 → 322,21
int queue_packet( dpeth_t * dep, packet_t packet ){
packet_t tmp;
 
if( dep->packet_count > 1 ){
if( ! pq_add( pq_previous( dep->packet_queue ), packet, 0, 0 )){
return EINVAL;
}
}else{
tmp = pq_add( dep->packet_queue, packet, 0, 0 );
if( ! tmp ) return EINVAL;
dep->packet_queue = tmp;
if( dep->packet_count >= MAX_PACKETS ){
netif_pq_release( packet_get_id( packet ));
return ELIMIT;
}
 
tmp = dep->packet_queue;
while( pq_next( tmp )){
tmp = pq_next( tmp );
}
if( ! pq_add( tmp, packet, 0, 0 )){
return EINVAL;
}
if( ! dep->packet_count ){
dep->packet_queue = packet;
}
++ dep->packet_count;
return EBUSY;
}
1015,11 → 1021,17
dep->de_flags |= DEF_PACK_RECV;
// dep->de_flags &= ~DEF_READING;
 
queue = pq_add( dep->received_queue, packet, 0, 0 );
if( queue ){
dep->received_queue = queue;
if( dep->received_count >= MAX_PACKETS ){
netif_pq_release( packet_get_id( packet ));
return ELIMIT;
}else{
netif_pq_release( packet_get_id( packet ));
queue = pq_add( dep->received_queue, packet, 0, 0 );
if( queue ){
dep->received_queue = queue;
++ dep->received_count;
}else{
netif_pq_release( packet_get_id( packet ));
}
}
return OK;
}
/branches/network/uspace/srv/net/netif/dp8390/Makefile
51,7 → 51,7
 
ifeq ($(NETWORKING), module)
 
SOURCES += $(NET_BASE)crc.c \
SOURCES += $(NET_BASE)checksum.c \
$(NET_BASE)nil/eth/eth.c \
$(NET_BASE)net/net_remote.c \
$(NET_BASE)netif/netif_nil_bundle.c
/branches/network/uspace/srv/net/netif/dp8390/dp8390.h
268,6 → 268,10
#define SENDQ_NR 1 /* Maximum size of the send queue */
#define SENDQ_PAGES 6 /* 6 * DP_PAGESIZE >= 1514 bytes */
 
/** Maximum number of waiting packets to be sent or received.
*/
#define MAX_PACKETS 4
 
typedef struct dpeth
{
/* Packet send queue.
278,6 → 282,7
/* Packet receive queue.
*/
packet_t received_queue;
int received_count;
 
/* The de_base_port field is the starting point of the probe.
* The conf routine also fills de_linmem and de_irq. If the probe
/branches/network/uspace/srv/net/netif/dp8390/dp8390_module.c
158,18 → 158,19
}
assert( dep->de_flags & DEF_ENABLED);
dep->de_int_pending = 0;
// TODO remove debug print:
printf( "I%d: 0x%x\n", device_id, IPC_GET_ISR( call ));
// remove debug print:
// printf( "I%d: 0x%x\n", device_id, IPC_GET_ISR( call ));
dp_check_ints( dep, IPC_GET_ISR( call ));
if( dep->received_queue ){
received = dep->received_queue;
phone = device->nil_phone;
dep->received_queue = NULL;
dep->received_count = 0;
fibril_rwlock_write_unlock( & netif_globals.lock );
// TODO remove debug dump:
uint8_t * data;
data = packet_get_data( received );
printf( "Receiving packet:\n\tid\t= %d\n\tlength\t= %d\n\tdata\t= %.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX\n\t\t%.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX\n", packet_get_id( received ), packet_get_data_length( received ), data[ 0 ], data[ 1 ], data[ 2 ], data[ 3 ], data[ 4 ], data[ 5 ], data[ 6 ], data[ 7 ], data[ 8 ], data[ 9 ], data[ 10 ], data[ 11 ], data[ 12 ], data[ 13 ], data[ 14 ], data[ 15 ], data[ 16 ], data[ 17 ], data[ 18 ], data[ 19 ], data[ 20 ], data[ 21 ], data[ 22 ], data[ 23 ], data[ 24 ], data[ 25 ], data[ 26 ], data[ 27 ], data[ 28 ], data[ 29 ], data[ 30 ], data[ 31 ], data[ 32 ], data[ 33 ], data[ 34 ], data[ 35 ], data[ 36 ], data[ 37 ], data[ 38 ], data[ 39 ], data[ 40 ], data[ 41 ], data[ 42 ], data[ 43 ], data[ 44 ], data[ 45 ], data[ 46 ], data[ 47 ], data[ 48 ], data[ 49 ], data[ 50 ], data[ 51 ], data[ 52 ], data[ 53 ], data[ 54 ], data[ 55 ], data[ 56 ], data[ 57 ], data[ 58 ], data[ 59 ] );
// remove debug dump:
// uint8_t * data;
// data = packet_get_data( received );
// printf( "Receiving packet:\n\tid\t= %d\n\tlength\t= %d\n\tdata\t= %.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX\n\t\t%.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX\n", packet_get_id( received ), packet_get_data_length( received ), data[ 0 ], data[ 1 ], data[ 2 ], data[ 3 ], data[ 4 ], data[ 5 ], data[ 6 ], data[ 7 ], data[ 8 ], data[ 9 ], data[ 10 ], data[ 11 ], data[ 12 ], data[ 13 ], data[ 14 ], data[ 15 ], data[ 16 ], data[ 17 ], data[ 18 ], data[ 19 ], data[ 20 ], data[ 21 ], data[ 22 ], data[ 23 ], data[ 24 ], data[ 25 ], data[ 26 ], data[ 27 ], data[ 28 ], data[ 29 ], data[ 30 ], data[ 31 ], data[ 32 ], data[ 33 ], data[ 34 ], data[ 35 ], data[ 36 ], data[ 37 ], data[ 38 ], data[ 39 ], data[ 40 ], data[ 41 ], data[ 42 ], data[ 43 ], data[ 44 ], data[ 45 ], data[ 46 ], data[ 47 ], data[ 48 ], data[ 49 ], data[ 50 ], data[ 51 ], data[ 52 ], data[ 53 ], data[ 54 ], data[ 55 ], data[ 56 ], data[ 57 ], data[ 58 ], data[ 59 ] );
nil_received_msg( phone, device_id, received, NULL );
}else{
fibril_rwlock_write_unlock( & netif_globals.lock );
229,10 → 230,10
// process packet queue
do{
next = pq_detach( packet );
// TODO remove debug dump:
uint8_t * data;
data = packet_get_data( packet );
printf( "Sending packet:\n\tid\t= %d\n\tlength\t= %d\n\tdata\t= %.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX\n\t\t%.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX\n", packet_get_id( packet ), packet_get_data_length( packet ), data[ 0 ], data[ 1 ], data[ 2 ], data[ 3 ], data[ 4 ], data[ 5 ], data[ 6 ], data[ 7 ], data[ 8 ], data[ 9 ], data[ 10 ], data[ 11 ], data[ 12 ], data[ 13 ], data[ 14 ], data[ 15 ], data[ 16 ], data[ 17 ], data[ 18 ], data[ 19 ], data[ 20 ], data[ 21 ], data[ 22 ], data[ 23 ], data[ 24 ], data[ 25 ], data[ 26 ], data[ 27 ], data[ 28 ], data[ 29 ], data[ 30 ], data[ 31 ], data[ 32 ], data[ 33 ], data[ 34 ], data[ 35 ], data[ 36 ], data[ 37 ], data[ 38 ], data[ 39 ], data[ 40 ], data[ 41 ], data[ 42 ], data[ 43 ], data[ 44 ], data[ 45 ], data[ 46 ], data[ 47 ], data[ 48 ], data[ 49 ], data[ 50 ], data[ 51 ], data[ 52 ], data[ 53 ], data[ 54 ], data[ 55 ], data[ 56 ], data[ 57 ], data[ 58 ], data[ 59 ] );
// remove debug dump:
// uint8_t * data;
// data = packet_get_data( packet );
// printf( "Sending packet:\n\tid\t= %d\n\tlength\t= %d\n\tdata\t= %.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX\n\t\t%.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX:%.2hhX %.2hhX %.2hhX %.2hhX\n", packet_get_id( packet ), packet_get_data_length( packet ), data[ 0 ], data[ 1 ], data[ 2 ], data[ 3 ], data[ 4 ], data[ 5 ], data[ 6 ], data[ 7 ], data[ 8 ], data[ 9 ], data[ 10 ], data[ 11 ], data[ 12 ], data[ 13 ], data[ 14 ], data[ 15 ], data[ 16 ], data[ 17 ], data[ 18 ], data[ 19 ], data[ 20 ], data[ 21 ], data[ 22 ], data[ 23 ], data[ 24 ], data[ 25 ], data[ 26 ], data[ 27 ], data[ 28 ], data[ 29 ], data[ 30 ], data[ 31 ], data[ 32 ], data[ 33 ], data[ 34 ], data[ 35 ], data[ 36 ], data[ 37 ], data[ 38 ], data[ 39 ], data[ 40 ], data[ 41 ], data[ 42 ], data[ 43 ], data[ 44 ], data[ 45 ], data[ 46 ], data[ 47 ], data[ 48 ], data[ 49 ], data[ 50 ], data[ 51 ], data[ 52 ], data[ 53 ], data[ 54 ], data[ 55 ], data[ 56 ], data[ 57 ], data[ 58 ], data[ 59 ] );
 
if( do_pwrite( dep, packet, FALSE ) != EBUSY ){
netif_pq_release( packet_get_id( packet ));