diff --git a/headers/private/kernel/disk_device_manager/disk_device_manager.h b/headers/private/kernel/disk_device_manager/disk_device_manager.h index 6342af1c9b..b3fc6b4d64 100644 --- a/headers/private/kernel/disk_device_manager/disk_device_manager.h +++ b/headers/private/kernel/disk_device_manager/disk_device_manager.h @@ -113,6 +113,7 @@ disk_system_id find_disk_system(const char *name); bool update_disk_device_job_progress(disk_job_id jobID, float progress); bool update_disk_device_job_extra_progress(disk_job_id jobID, const char *info); +bool set_disk_device_job_error_message(disk_job_id jobID, const char *message); uint32 update_disk_device_job_interrupt_properties(disk_job_id jobID, uint32 interruptProperties); // returns one of B_DISK_DEVICE_JOB_{CONTINUE,CANCEL,REVERSE} diff --git a/src/kernel/core/disk_device_manager/disk_device_manager.cpp b/src/kernel/core/disk_device_manager/disk_device_manager.cpp index e09fcadd15..f2b3441214 100644 --- a/src/kernel/core/disk_device_manager/disk_device_manager.cpp +++ b/src/kernel/core/disk_device_manager/disk_device_manager.cpp @@ -220,6 +220,20 @@ update_disk_device_job_extra_progress(disk_job_id jobID, const char *info) return false; } +// set_disk_device_job_error_message +bool +set_disk_device_job_error_message(disk_job_id jobID, const char *message) +{ + KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + if (ManagerLocker locker = manager) { + if (KDiskDeviceJob *job = manager->FindJob(jobID)) { + job->SetErrorMessage(message); + return true; + } + } + return false; +} + // update_disk_device_job_interrupt_properties uint32 update_disk_device_job_interrupt_properties(disk_job_id jobID,