Removes all entries referencing the given device.
(&self, device: &dyn BusDeviceSync)
| 197 | |
| 198 | /// Removes all entries referencing the given device. |
| 199 | pub fn remove_by_device(&self, device: &dyn BusDeviceSync) -> Result<()> { |
| 200 | let mut device_list = self.devices.write().unwrap(); |
| 201 | let mut remove_key_list = Vec::new(); |
| 202 | |
| 203 | for (key, value) in device_list.iter() { |
| 204 | let value = value.upgrade().unwrap(); |
| 205 | if core::ptr::eq(Arc::as_ptr(&value), device) { |
| 206 | remove_key_list.push(*key); |
| 207 | } |
| 208 | } |
| 209 | |
| 210 | for key in remove_key_list.iter() { |
| 211 | device_list.remove(key); |
| 212 | } |
| 213 | |
| 214 | Ok(()) |
| 215 | } |
| 216 | |
| 217 | /// Updates the address range for an existing device. |
| 218 | pub fn update_range( |