diff --git a/zipl/include/disk.h b/zipl/include/disk.h index 0147cee5..8264fa74 100644 --- a/zipl/include/disk.h +++ b/zipl/include/disk.h @@ -95,6 +95,7 @@ int disk_get_info(const char* device, struct job_target_data* target, struct disk_info** info); int disk_is_tape(const char* device); int disk_is_scsi(const char* device, struct job_target_data* target); +int disk_is_eckd_ldl(const char* device, struct job_target_data* target); int disk_is_nvme(const char* device, struct job_target_data* target); int disk_get_info_from_file(const char* filename, struct job_target_data* target, diff --git a/zipl/src/disk.c b/zipl/src/disk.c index d57050a5..db8dcad4 100644 --- a/zipl/src/disk.c +++ b/zipl/src/disk.c @@ -509,6 +509,19 @@ disk_is_scsi(const char* device, struct job_target_data* target) return rc; } +int disk_is_eckd_ldl(const char *device, struct job_target_data *target) +{ + struct disk_info *info; + int rc = 0; + + if (disk_get_info(device, target, &info) == -1) + return 0; + if (info->type == disk_type_eckd_ldl) + rc = 1; + disk_free_info(info); + return rc; +} + int disk_is_nvme(const char* device, struct job_target_data* target) {