Rev 4695 | Rev 4708 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4695 | Rev 4702 | ||
---|---|---|---|
Line 79... | Line 79... | ||
79 | * @returns EOK on success. |
79 | * @returns EOK on success. |
80 | * @returns ENOMEM if there is not enough memory left. |
80 | * @returns ENOMEM if there is not enough memory left. |
81 | */ |
81 | */ |
82 | int arp_proto_create( arp_proto_ref * proto, services_t service, measured_string_ref address ); |
82 | int arp_proto_create( arp_proto_ref * proto, services_t service, measured_string_ref address ); |
83 | 83 | ||
- | 84 | /** Clears the device specific data. |
|
- | 85 | * @param device The device specific data. |
|
- | 86 | */ |
|
- | 87 | void clear_device( arp_device_ref device ); |
|
- | 88 | ||
- | 89 | /** @name Message processing functions |
|
- | 90 | */ |
|
- | 91 | /*@{*/ |
|
- | 92 | ||
84 | /** Registers the device. |
93 | /** Registers the device. |
85 | * Creates new device entry in the cache or updates the protocol address if the device with the device identifier and the driver service exists. |
94 | * Creates new device entry in the cache or updates the protocol address if the device with the device identifier and the driver service exists. |
86 | * @param device_id The device identifier. Input parameter. |
95 | * @param device_id The device identifier. Input parameter. |
87 | * @param service The device driver service. Input parameter. |
96 | * @param service The device driver service. Input parameter. |
88 | * @param protocol The protocol service. Input parameter. |
97 | * @param protocol The protocol service. Input parameter. |
Line 112... | Line 121... | ||
112 | * Responses to the ARP request if the packet is the ARP request and is targeted to my address. |
121 | * Responses to the ARP request if the packet is the ARP request and is targeted to my address. |
113 | * @param device_id The source device identifier. Input parameter. |
122 | * @param device_id The source device identifier. Input parameter. |
114 | * @param packet The received packet. Input/output parameter. |
123 | * @param packet The received packet. Input/output parameter. |
115 | * @returns EOK on success and the packet is no longer needed. |
124 | * @returns EOK on success and the packet is no longer needed. |
116 | * @returns 1 on success and the packet has been reused. |
125 | * @returns 1 on success and the packet has been reused. |
117 | * @returns EINVAL if the packet is too small to carry the ARP packet. |
126 | * @returns EINVAL if the packet is too small to carry an ARP packet. |
118 | * @returns EINVAL if the received address lengths differs from the registered values. |
127 | * @returns EINVAL if the received address lengths differs from the registered values. |
119 | * @returns ENOENT if the device is not found in the cache. |
128 | * @returns ENOENT if the device is not found in the cache. |
120 | * @returns ENOENT if the protocol for the device is not found in the cache. |
129 | * @returns ENOENT if the protocol for the device is not found in the cache. |
121 | * @returns ENOMEM if there is not enough memory left. |
130 | * @returns ENOMEM if there is not enough memory left. |
122 | */ |
131 | */ |
123 | int arp_receive_message( device_id_t device_id, packet_t packet ); |
132 | int arp_receive_message( device_id_t device_id, packet_t packet ); |
124 | 133 | ||
125 | /** Clears the device specific data. |
- | |
126 | * @param device The device specific data. |
- | |
127 | */ |
- | |
128 | void clear_device( arp_device_ref device ); |
- | |
129 | - | ||
130 | /** Updates the device content length according to the new MTU value. |
134 | /** Updates the device content length according to the new MTU value. |
131 | * @param device_id The device identifier. Input parameter. |
135 | * @param device_id The device identifier. Input parameter. |
132 | * @param mtu The new mtu value. Input parameter. |
136 | * @param mtu The new mtu value. Input parameter. |
- | 137 | * @returns ENOENT if device is not found. |
|
133 | * @returns EOK on success. |
138 | * @returns EOK on success. |
134 | */ |
139 | */ |
135 | int arp_mtu_changed_msg( device_id_t device_id, size_t mtu ); |
140 | int arp_mtu_changed_message( device_id_t device_id, size_t mtu ); |
- | 141 | ||
- | 142 | /*@}*/ |
|
136 | 143 | ||
137 | DEVICE_MAP_IMPLEMENT( arp_cache, arp_device_t ) |
144 | DEVICE_MAP_IMPLEMENT( arp_cache, arp_device_t ) |
138 | 145 | ||
139 | INT_MAP_IMPLEMENT( arp_protos, arp_proto_t ) |
146 | INT_MAP_IMPLEMENT( arp_protos, arp_proto_t ) |
140 | 147 | ||
Line 490... | Line 497... | ||
490 | 497 | ||
491 | int arp_connect_module( services_t service ){ |
498 | int arp_connect_module( services_t service ){ |
492 | return EOK; |
499 | return EOK; |
493 | } |
500 | } |
494 | 501 | ||
495 | int arp_mtu_changed_msg( device_id_t device_id, size_t mtu ){ |
502 | int arp_mtu_changed_message( device_id_t device_id, size_t mtu ){ |
496 | arp_device_ref device; |
503 | arp_device_ref device; |
497 | 504 | ||
498 | fibril_rwlock_write_lock( & arp_globals.lock ); |
505 | fibril_rwlock_write_lock( & arp_globals.lock ); |
499 | device = arp_cache_find( & arp_globals.cache, device_id ); |
506 | device = arp_cache_find( & arp_globals.cache, device_id ); |
500 | if( ! device ){ |
507 | if( ! device ){ |
Line 565... | Line 572... | ||
565 | }while( packet ); |
572 | }while( packet ); |
566 | fibril_rwlock_read_unlock( & arp_globals.lock ); |
573 | fibril_rwlock_read_unlock( & arp_globals.lock ); |
567 | } |
574 | } |
568 | return ERROR_CODE; |
575 | return ERROR_CODE; |
569 | case NET_IL_MTU_CHANGED: |
576 | case NET_IL_MTU_CHANGED: |
570 | return arp_mtu_changed_msg( IPC_GET_DEVICE( call ), IPC_GET_MTU( call )); |
577 | return arp_mtu_changed_message( IPC_GET_DEVICE( call ), IPC_GET_MTU( call )); |
571 | } |
578 | } |
572 | return ENOTSUP; |
579 | return ENOTSUP; |
573 | } |
580 | } |
574 | 581 | ||
575 | /** @} |
582 | /** @} |