@@ -853,31 +853,29 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
type = IF_NONE;
max_devs = 0;
} else {
- fprintf(stderr, "qemu: unsupported bus type '%s'\n", buf);
+ qerror_report(QERR_UNSUPPORTED_BUS_TYPE, buf);
return NULL;
}
}
if (cyls || heads || secs) {
if (cyls < 1 || (type == IF_IDE && cyls > 16383)) {
- fprintf(stderr, "qemu: '%s' invalid physical cyls number\n", buf);
+ qerror_report(QERR_INVALID_PHYSICAL_NUMBER, buf, "cyls");
return NULL;
}
if (heads < 1 || (type == IF_IDE && heads > 16)) {
- fprintf(stderr, "qemu: '%s' invalid physical heads number\n", buf);
+ qerror_report(QERR_INVALID_PHYSICAL_NUMBER, buf, "heads");
return NULL;
}
if (secs < 1 || (type == IF_IDE && secs > 63)) {
- fprintf(stderr, "qemu: '%s' invalid physical secs number\n", buf);
+ qerror_report(QERR_INVALID_PHYSICAL_NUMBER, buf, "secs");
return NULL;
}
}
if ((buf = qemu_opt_get(opts, "trans")) != NULL) {
if (!cyls) {
- fprintf(stderr,
- "qemu: '%s' trans must be used with cyls,heads and secs\n",
- buf);
+ qerror_report(QERR_MISSING_PARAMETER, "cyls");
return NULL;
}
if (!strcmp(buf, "none"))
@@ -887,7 +885,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
else if (!strcmp(buf, "auto"))
translation = BIOS_ATA_TRANSLATION_AUTO;
else {
- fprintf(stderr, "qemu: '%s' invalid translation type\n", buf);
+ qerror_report(QERR_INVALID_PARAMETER, "trans");
return NULL;
}
}
@@ -897,13 +895,12 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
media = MEDIA_DISK;
} else if (!strcmp(buf, "cdrom")) {
if (cyls || secs || heads) {
- fprintf(stderr,
- "qemu: '%s' invalid physical CHS format\n", buf);
+ qerror_report(QERR_INVALID_PHYSICAL_FORMAT, buf, "CHS");
return NULL;
}
media = MEDIA_CDROM;
} else {
- fprintf(stderr, "qemu: '%s' invalid media\n", buf);
+ qerror_report(QERR_INVALID_PARAMETER, "media");
return NULL;
}
}
@@ -916,7 +913,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
else if (!strcmp(buf, "writeback"))
cache = 2;
else {
- fprintf(stderr, "qemu: invalid cache option\n");
+ qerror_report(QERR_INVALID_PARAMETER, "cache");
return NULL;
}
}
@@ -928,7 +925,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
else if (!strcmp(buf, "native"))
aio = 1;
else {
- fprintf(stderr, "qemu: invalid aio option\n");
+ qerror_report(QERR_INVALID_PARAMETER, "aio");
return NULL;
}
}
@@ -943,7 +940,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
}
drv = bdrv_find_whitelisted_format(buf);
if (!drv) {
- fprintf(stderr, "qemu: '%s' invalid format\n", buf);
+ qerror_report(QERR_INVALID_PARAMETER, "format");
return NULL;
}
}
@@ -951,7 +948,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
on_write_error = BLOCK_ERR_STOP_ENOSPC;
if ((buf = qemu_opt_get(opts, "werror")) != NULL) {
if (type != IF_IDE && type != IF_SCSI && type != IF_VIRTIO) {
- fprintf(stderr, "werror is no supported by this format\n");
+ qerror_report(QERR_UNSUPPORTED_PARAMETER_BY, "werror", devname);
return NULL;
}
@@ -964,7 +961,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
on_read_error = BLOCK_ERR_REPORT;
if ((buf = qemu_opt_get(opts, "rerror")) != NULL) {
if (type != IF_IDE && type != IF_VIRTIO) {
- fprintf(stderr, "rerror is no supported by this format\n");
+ qerror_report(QERR_UNSUPPORTED_PARAMETER_BY, "rerror", devname);
return NULL;
}
@@ -976,7 +973,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
if ((devaddr = qemu_opt_get(opts, "addr")) != NULL) {
if (type != IF_VIRTIO) {
- fprintf(stderr, "addr is not supported\n");
+ qerror_report(QERR_UNSUPPORTED_PARAMETER_BY, "addr", devname);
return NULL;
}
}
@@ -1017,8 +1014,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
/* check unit id */
if (max_devs && unit_id >= max_devs) {
- fprintf(stderr, "qemu: unit %d too big (max is %d)\n",
- unit_id, max_devs - 1);
+ qerror_report(QERR_INVALID_UNIT_SIZE, unit_id, max_devs -1);
return NULL;
}
@@ -1122,7 +1118,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
ro = 1;
} else if (ro == 1) {
if (type != IF_SCSI && type != IF_VIRTIO && type != IF_FLOPPY) {
- fprintf(stderr, "qemu: readonly flag not supported for drive with this interface\n");
+ qerror_report(QERR_UNSUPPORTED_FLAG, "Readonly", devname);
return NULL;
}
}
@@ -1130,8 +1126,7 @@ DriveInfo *drive_init(QemuOpts *opts, void *opaque,
bdrv_flags |= ro ? 0 : BDRV_O_RDWR;
if (bdrv_open2(dinfo->bdrv, file, bdrv_flags, drv) < 0) {
- fprintf(stderr, "qemu: could not open disk image %s: %s\n",
- file, strerror(errno));
+ qerror_report(QERR_OPEN_FILE_FAILED, file);
return NULL;
}
Port of vl.c drive_init to QError API. Signed-off-by: Leandro Dorileo <ldorileo@gmail.com> --- vl.c | 39 +++++++++++++++++---------------------- 1 files changed, 17 insertions(+), 22 deletions(-)