Rev 4396 | Rev 4558 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4396 | Rev 4501 | ||
|---|---|---|---|
| Line 70... | Line 70... | ||
| 70 | 70 | ||
| 71 | /** ARP global data. |
71 | /** ARP global data. |
| 72 | */ |
72 | */ |
| 73 | arp_globals_t arp_globals; |
73 | arp_globals_t arp_globals; |
| 74 | 74 | ||
| 75 | /** Clears the whole cache. |
- | |
| 76 | * @returns EOK on success. |
- | |
| 77 | */ |
- | |
| 78 | int arp_clean_cache_req( int arp_phone ); |
- | |
| 79 | - | ||
| 80 | /** Clears the device specific data from the cache. |
- | |
| 81 | * @param arp_phone The ARP module phone used for (semi)remote calls. Input parameter. |
- | |
| 82 | * @param device_id The device identifier. Input parameter. |
- | |
| 83 | * @returns EOK on success. |
- | |
| 84 | * @returns ENOENT if the device is not found in the cache. |
- | |
| 85 | */ |
- | |
| 86 | int arp_clear_device_req( int arp_phone, device_id_t device_id ); |
- | |
| 87 | - | ||
| 88 | /** Creates new protocol specific data. |
75 | /** Creates new protocol specific data. |
| 89 | * @param proto Protocol specific data. Output parameter. |
76 | * @param proto Protocol specific data. Output parameter. |
| 90 | * @param service Protocol module service. Input parameter. |
77 | * @param service Protocol module service. Input parameter. |
| 91 | * @param address Actual protocol device address. Input parameter. |
78 | * @param address Actual protocol device address. Input parameter. |
| 92 | * @returns EOK on success. |
79 | * @returns EOK on success. |
| Line 144... | Line 131... | ||
| 144 | 131 | ||
| 145 | INT_MAP_IMPLEMENT( arp_protos, arp_proto_t ) |
132 | INT_MAP_IMPLEMENT( arp_protos, arp_proto_t ) |
| 146 | 133 | ||
| 147 | GENERIC_CHAR_MAP_IMPLEMENT( arp_addr, measured_string_t ) |
134 | GENERIC_CHAR_MAP_IMPLEMENT( arp_addr, measured_string_t ) |
| 148 | 135 | ||
| 149 | int arp_task_get_id( void ){ |
136 | task_id_t arp_task_get_id( void ){ |
| 150 | return task_get_id(); |
137 | return task_get_id(); |
| 151 | } |
138 | } |
| 152 | 139 | ||
| 153 | int arp_clear_device_req( int arp_phone, device_id_t device_id ){ |
140 | int arp_clear_device_req( int arp_phone, device_id_t device_id ){ |
| 154 | arp_device_ref device; |
141 | arp_device_ref device; |
| Line 519... | Line 506... | ||
| 519 | return EOK; |
506 | return EOK; |
| 520 | case NET_IL_RECEIVED: |
507 | case NET_IL_RECEIVED: |
| 521 | if( ! ERROR_OCCURRED( packet_translate( arp_globals.net_phone, & packet, IPC_GET_PACKET( call )))){ |
508 | if( ! ERROR_OCCURRED( packet_translate( arp_globals.net_phone, & packet, IPC_GET_PACKET( call )))){ |
| 522 | rwlock_read_lock( & arp_globals.lock ); |
509 | rwlock_read_lock( & arp_globals.lock ); |
| 523 | do{ |
510 | do{ |
| 524 | next = pq_next( packet ); |
511 | next = pq_detach( packet ); |
| 525 | pq_detach( packet ); |
- | |
| 526 | ERROR_CODE = arp_receive_message( IPC_GET_DEVICE( call ), packet ); |
512 | ERROR_CODE = arp_receive_message( IPC_GET_DEVICE( call ), packet ); |
| 527 | if( ERROR_CODE != 1 ) pq_release( arp_globals.net_phone, packet_get_id( packet )); |
513 | if( ERROR_CODE != 1 ) pq_release( arp_globals.net_phone, packet_get_id( packet )); |
| 528 | packet = next; |
514 | packet = next; |
| 529 | }while( packet ); |
515 | }while( packet ); |
| 530 | rwlock_read_unlock( & arp_globals.lock ); |
516 | rwlock_read_unlock( & arp_globals.lock ); |