Subversion Repositories HelenOS

Rev

Rev 4271 | Rev 4327 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4271 Rev 4307
Line 47... Line 47...
47
 
47
 
48
#include "../../structures/packet/packet_client.h"
48
#include "../../structures/packet/packet_client.h"
49
#include "../../structures/measured_strings.h"
49
#include "../../structures/measured_strings.h"
50
 
50
 
51
#include "../../include/device.h"
51
#include "../../include/device.h"
52
#include "../../include/nil_messages.h"
52
#include "../../include/nil_interface.h"
53
 
53
 
54
#include "../netif.h"
54
#include "../netif.h"
55
#include "../netif_interface.h"
55
#include "../netif_module.h"
56
 
56
 
57
#include "dp8390.h"
57
#include "dp8390.h"
58
#include "dp8390_drv.h"
58
#include "dp8390_drv.h"
59
#include "dp8390_port.h"
59
#include "dp8390_port.h"
60
 
60
 
Line 87... Line 87...
87
    dp8390_cmds
87
    dp8390_cmds
88
};
88
};
89
 
89
 
90
netif_globals_t netif_globals;
90
netif_globals_t netif_globals;
91
 
91
 
92
void    netif_print_name( void );
92
void    module_print_name( void );
93
 
93
 
94
void    irq_handler( ipc_callid_t iid, ipc_call_t * call );
94
void    irq_handler( ipc_callid_t iid, ipc_call_t * call );
95
int change_state( device_ref device, device_state_t state );
95
int change_state( device_ref device, device_state_t state );
96
 
96
 
97
int netif_specific_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ){
97
int netif_specific_message( ipc_callid_t callid, ipc_call_t * call, ipc_call_t * answer, int * answer_count ){
Line 121... Line 121...
121
    stats->tx_heartbeat_errors = de_stat->ets_CDheartbeat;
121
    stats->tx_heartbeat_errors = de_stat->ets_CDheartbeat;
122
    stats->tx_window_errors = de_stat->ets_OWC;
122
    stats->tx_window_errors = de_stat->ets_OWC;
123
    return EOK;
123
    return EOK;
124
}
124
}
125
 
125
 
126
void netif_print_name( void ){
126
void module_print_name( void ){
127
    printf( "%s", NAME );
127
    printf( "%s", NAME );
128
}
128
}
129
 
129
 
130
int netif_get_addr_message( device_id_t device_id, measured_string_ref address ){
130
int netif_get_addr_message( device_id_t device_id, measured_string_ref address ){
131
    ERROR_DECLARE;
131
    ERROR_DECLARE;
Line 147... Line 147...
147
    packet_t    received;
147
    packet_t    received;
148
    device_id_t device_id;
148
    device_id_t device_id;
149
    int         phone;
149
    int         phone;
150
 
150
 
151
    device_id = IRQ_GET_DEVICE( call );
151
    device_id = IRQ_GET_DEVICE( call );
152
//  printf( "\ndevice %d - irq %x", device_id, IPC_GET_ISR( call ));
152
//  printf( "device %d - irq %x\n", device_id, IPC_GET_ISR( call ));
153
    rwlock_write_lock( & netif_globals.lock );
153
    rwlock_write_lock( & netif_globals.lock );
154
    if( find_device( device_id, & device ) != EOK ){
154
    if( find_device( device_id, & device ) != EOK ){
155
        rwlock_write_unlock( & netif_globals.lock );
155
        rwlock_write_unlock( & netif_globals.lock );
156
        return;
156
        return;
157
    }
157
    }
158
    dep = ( dpeth_t * ) device->specific;
158
    dep = ( dpeth_t * ) device->specific;
159
//  printf( "\ndev %d, irq %x\n", device->device_id, IPC_GET_ISR( call ));
159
//  printf( "dev %d, irq %x\n\n", device->device_id, IPC_GET_ISR( call ));
160
    if ( dep->de_mode != DEM_ENABLED){
160
    if ( dep->de_mode != DEM_ENABLED){
161
//      continue;
161
//      continue;
162
        rwlock_write_unlock( & netif_globals.lock );
162
        rwlock_write_unlock( & netif_globals.lock );
163
        return;
163
        return;
164
    }
164
    }
Line 197... Line 197...
197
    ERROR_DECLARE;
197
    ERROR_DECLARE;
198
 
198
 
199
    device_ref  device;
199
    device_ref  device;
200
    dpeth_t *   dep;
200
    dpeth_t *   dep;
201
 
201
 
202
    printf( "\n" );
-
 
203
    device = ( device_ref ) malloc( sizeof( device_t ));
202
    device = ( device_ref ) malloc( sizeof( device_t ));
204
    if( ! device ) return ENOMEM;
203
    if( ! device ) return ENOMEM;
205
    dep = ( dpeth_t * ) malloc( sizeof( dpeth_t ));
204
    dep = ( dpeth_t * ) malloc( sizeof( dpeth_t ));
206
    if( ! dep ){
205
    if( ! dep ){
207
        free( device );
206
        free( device );
Line 237... Line 236...
237
    dpeth_t *   dep;
236
    dpeth_t *   dep;
238
    packet_t    next;
237
    packet_t    next;
239
 
238
 
240
    uint8_t *   data;
239
    uint8_t *   data;
241
    data = packet_get_data( packet );
240
    data = packet_get_data( packet );
242
    printf( "\nSending 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 ] );
241
    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 ] );
243
 
242
 
244
    ERROR_PROPAGATE( find_device( device_id, & device ));
243
    ERROR_PROPAGATE( find_device( device_id, & device ));
245
    dep = ( dpeth_t * ) device->specific;
244
    dep = ( dpeth_t * ) device->specific;
246
    // process packet queue
245
    // process packet queue
247
    do{
246
    do{
Line 285... Line 284...
285
    return EOK;
284
    return EOK;
286
}
285
}
287
 
286
 
288
int change_state( device_ref device, device_state_t state ){
287
int change_state( device_ref device, device_state_t state ){
289
    device->state = state;
288
    device->state = state;
290
    printf( "\nState changed to %s", ( state == NETIF_ACTIVE ) ? "ACTIVE" : "STOPPED" );
289
    printf( "State changed to %s\n", ( state == NETIF_ACTIVE ) ? "ACTIVE" : "STOPPED" );
291
    return state;
290
    return state;
292
}
291
}
293
 
292
 
294
int netif_initialize( void ){
293
int netif_initialize( void ){
295
    ipcarg_t    phonehash;
294
    ipcarg_t    phonehash;