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; |