From a6ffcfb320d376c85353582a030ee710396a0f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 16 Jul 2013 18:24:01 +0200 Subject: [PATCH] scsi_disk: added a hook for rescanning devices * a call indicates the media was changed. --- .../drivers/disk/scsi/scsi_disk/scsi_disk.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp b/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp index a50a149b8a..d3d13af21f 100644 --- a/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp +++ b/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.cpp @@ -595,6 +595,19 @@ das_register_child_devices(void* _cookie) } +static status_t +das_rescan_child_devices(void* _cookie) +{ + das_driver_info* info = (das_driver_info*)_cookie; + uint64 capacity = info->capacity; + update_capacity(info); + if (info->capacity != capacity) + sSCSIPeripheral->media_changed(info->scsi_periph_device); + return B_OK; +} + + + module_dependency module_dependencies[] = { {SCSI_PERIPH_MODULE_NAME, (module_info**)&sSCSIPeripheral}, {B_DEVICE_MANAGER_MODULE_NAME, (module_info**)&sDeviceManager}, @@ -636,7 +649,7 @@ struct driver_module_info sSCSIDiskDriver = { das_init_driver, das_uninit_driver, das_register_child_devices, - NULL, // rescan + das_rescan_child_devices, NULL, // removed };