Subversion Repositories HelenOS

Rev

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

Rev 4327 Rev 4332
Line 146... Line 146...
146
    dpeth_t *   dep;
146
    dpeth_t *   dep;
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
//  async_serialize_start();
-
 
152
    device_id = IRQ_GET_DEVICE( call );
151
    device_id = IRQ_GET_DEVICE( call );
153
    rwlock_write_lock( & netif_globals.lock );
152
    rwlock_write_lock( & netif_globals.lock );
154
    if( find_device( device_id, & device ) != EOK ){
153
    if( find_device( device_id, & device ) != EOK ){
155
        rwlock_write_unlock( & netif_globals.lock );
154
        rwlock_write_unlock( & netif_globals.lock );
156
//      async_serialize_end()
-
 
157
        return;
155
        return;
158
    }
156
    }
159
    dep = ( dpeth_t * ) device->specific;
157
    dep = ( dpeth_t * ) device->specific;
160
    if ( dep->de_mode != DEM_ENABLED){
158
    if ( dep->de_mode != DEM_ENABLED){
161
        rwlock_write_unlock( & netif_globals.lock );
159
        rwlock_write_unlock( & netif_globals.lock );
162
//      async_serialize_end()
-
 
163
        return;
160
        return;
164
    }
161
    }
165
    assert( dep->de_flags & DEF_ENABLED);
162
    assert( dep->de_flags & DEF_ENABLED);
166
    dep->de_int_pending= 0;
163
    dep->de_int_pending= 0;
167
    printf( "I%d -%d\n", device_id, IPC_GET_ISR( call ));
164
    printf( "I%d: %d\n", device_id, IPC_GET_ISR( call ));
168
/*  putchar( 'I' );
-
 
169
    putchar( '0' + device_id );
-
 
170
    putchar( '-' );
-
 
171
    putchar( '0' + IPC_GET_ISR( call ) / 100 );
-
 
172
    putchar( '0' + ( IPC_GET_ISR( call ) % 100 ) / 10 );
-
 
173
    putchar( '0' + IPC_GET_ISR( call ) % 10 );
-
 
174
    putchar( '\n' );
-
 
175
*/  dp_check_ints( dep, IPC_GET_ISR( call ));
165
    dp_check_ints( dep, IPC_GET_ISR( call ));
176
    if( dep->received_queue ){
166
    if( dep->received_queue ){
177
        received = dep->received_queue;
167
        received = dep->received_queue;
178
        phone = device->nil_phone;
168
        phone = device->nil_phone;
179
        dep->received_queue = NULL;
169
        dep->received_queue = NULL;
180
        rwlock_write_unlock( & netif_globals.lock );
170
        rwlock_write_unlock( & netif_globals.lock );
-
 
171
//  TODO remove debug dump:
-
 
172
    uint8_t *   data;
-
 
173
    data = packet_get_data( received );
-
 
174
    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 ] );
181
        nil_received_msg( phone, device_id, received, NULL );
175
        nil_received_msg( phone, device_id, received, NULL );
182
    }else{
176
    }else{
183
        rwlock_write_unlock( & netif_globals.lock );
177
        rwlock_write_unlock( & netif_globals.lock );
184
    }
178
    }
185
    ipc_answer_0( iid, EOK );
179
    ipc_answer_0( iid, EOK );
186
//      async_serialize_end()
-
 
187
}
180
}
188
 
181
 
189
int netif_probe_auto_message( void ){
182
int netif_probe_auto_message( void ){
190
    return ENOTSUP;
183
    return ENOTSUP;
191
}
184
}
Line 246... Line 239...
246
        if( do_pwrite( dep, packet, FALSE ) != EBUSY ){
239
        if( do_pwrite( dep, packet, FALSE ) != EBUSY ){
247
            netif_pq_release( packet_get_id( packet ));
240
            netif_pq_release( packet_get_id( packet ));
248
        }
241
        }
249
        packet = next;
242
        packet = next;
250
    }while( packet );
243
    }while( packet );
251
    dp8390_dump( dep );
-
 
252
    return EOK;
244
    return EOK;
253
}
245
}
254
 
246
 
255
int netif_start_message( device_ref device ){
247
int netif_start_message( device_ref device ){
256
    ERROR_DECLARE;
248
    ERROR_DECLARE;