mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-19 19:51:42 +00:00
vl.c: Error message rework
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWOHMSAAoJEDhwtADrkYZTF3sQALtMGAB2Iz7+BG0HEUKdIFYO l0Yg4F7v8BEFtv2yDRw55yiORk8/G5QQufSE1PNtWJFinD9InivTyScMkR3UF/6I YNFCLksilCIJEd+YxjDc+XXEmnkqxy5uslB+7jz70RHkmkhWXGfj+Jl0dlA6X7NA v8ugw01tDGWZen8I1SU/S8qAtGkk75+Id48TNLWR5JqjKD8yvk8L0xgdCgjmNW7F ms19zNOiIX5JQa9VU3CVMUvXVTkmGEWUhKYdSVHVJU6A2zmwPeN05EgYq9P/OX3P S81g5hgKSamuD2ddMPpTNm+F4OsZwPIliXSn7eUz2eUNIs4qA+yv2B5SzoiCIJzz Zpf91xavzg3fSONqjhW8Erkq0rZsMrzoKcPQO0uwjRr7Y9Frll91wogtg44pOC3Z HxhKhXEz3/K5GYkpudbBN7Dk3zzQFlSEosgJa0PyC37mJ90Bh72PMqR4L8IJR1jn V08ElsC6CKnr9xGtO7t+RfSEeLzlilK0XGsfAvlXmYhIwyACjetgKaTAsHRgLzTD Yc2dEVtjC5vIe3pdX4QS2L0qQ6VJ7MMPWAfGSgn1pVhQlkvn2bOr5EppfjQBhiPd MkJlLgXLA+VtFO8UovnZpPNO7m4xS64UQqlenkRVQ4Ul2vL0A09uXmxZQwfKNFSJ OeXgTnloxHQZBjARXM6z =FYSa -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2015-11-03' into staging vl.c: Error message rework # gpg: Signature made Tue 03 Nov 2015 08:40:50 GMT using RSA key ID EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" * remotes/armbru/tags/pull-error-2015-11-03: vl.c: Use "%s support is disabled" error messages consistently vl.c: Improve warnings on use of deprecated options vl.c: Touch up error messages vl.c: Remove unnecessary uppercase in error messages vl.c: Use "warning:" prefix consistently on warnings vl.c: Remove periods and exclamation points from error messages vl.c: Replace fprintf(stderr) with error_report() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
2b5a79f1d9
256
vl.c
256
vl.c
@ -674,9 +674,9 @@ void runstate_set(RunState new_state)
|
||||
assert(new_state < RUN_STATE_MAX);
|
||||
|
||||
if (!runstate_valid_transitions[current_run_state][new_state]) {
|
||||
fprintf(stderr, "ERROR: invalid runstate transition: '%s' -> '%s'\n",
|
||||
RunState_lookup[current_run_state],
|
||||
RunState_lookup[new_state]);
|
||||
error_report("invalid runstate transition: '%s' -> '%s'",
|
||||
RunState_lookup[current_run_state],
|
||||
RunState_lookup[new_state]);
|
||||
abort();
|
||||
}
|
||||
trace_runstate_set(new_state);
|
||||
@ -828,8 +828,9 @@ static void configure_rtc_date_offset(const char *startdate, int legacy)
|
||||
rtc_start_date = mktimegm(&tm);
|
||||
if (rtc_start_date == -1) {
|
||||
date_fail:
|
||||
fprintf(stderr, "Invalid date format. Valid formats are:\n"
|
||||
"'2006-06-17T16:01:21' or '2006-06-17'\n");
|
||||
error_report("invalid date format");
|
||||
error_printf("valid formats: "
|
||||
"'2006-06-17T16:01:21' or '2006-06-17'\n");
|
||||
exit(1);
|
||||
}
|
||||
rtc_date_offset = qemu_time() - rtc_start_date;
|
||||
@ -859,7 +860,7 @@ static void configure_rtc(QemuOpts *opts)
|
||||
} else if (!strcmp(value, "vm")) {
|
||||
rtc_clock = QEMU_CLOCK_VIRTUAL;
|
||||
} else {
|
||||
fprintf(stderr, "qemu: invalid option value '%s'\n", value);
|
||||
error_report("invalid option value '%s'", value);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -879,7 +880,7 @@ static void configure_rtc(QemuOpts *opts)
|
||||
} else if (!strcmp(value, "none")) {
|
||||
/* discard is default */
|
||||
} else {
|
||||
fprintf(stderr, "qemu: invalid option value '%s'\n", value);
|
||||
error_report("invalid option value '%s'", value);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -905,7 +906,7 @@ static int bt_hci_parse(const char *str)
|
||||
bdaddr_t bdaddr;
|
||||
|
||||
if (nb_hcis >= MAX_NICS) {
|
||||
fprintf(stderr, "qemu: Too many bluetooth HCIs (max %i).\n", MAX_NICS);
|
||||
error_report("too many bluetooth HCIs (max %i)", MAX_NICS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -931,8 +932,8 @@ static void bt_vhci_add(int vlan_id)
|
||||
struct bt_scatternet_s *vlan = qemu_find_bt_vlan(vlan_id);
|
||||
|
||||
if (!vlan->slave)
|
||||
fprintf(stderr, "qemu: warning: adding a VHCI to "
|
||||
"an empty scatternet %i\n", vlan_id);
|
||||
error_report("warning: adding a VHCI to an empty scatternet %i",
|
||||
vlan_id);
|
||||
|
||||
bt_vhci_init(bt_new_hci(vlan));
|
||||
}
|
||||
@ -950,7 +951,7 @@ static struct bt_device_s *bt_device_add(const char *opt)
|
||||
if (endp) {
|
||||
vlan_id = strtol(endp + 6, &endp, 0);
|
||||
if (*endp) {
|
||||
fprintf(stderr, "qemu: unrecognised bluetooth vlan Id\n");
|
||||
error_report("unrecognised bluetooth vlan Id");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -958,13 +959,13 @@ static struct bt_device_s *bt_device_add(const char *opt)
|
||||
vlan = qemu_find_bt_vlan(vlan_id);
|
||||
|
||||
if (!vlan->slave)
|
||||
fprintf(stderr, "qemu: warning: adding a slave device to "
|
||||
"an empty scatternet %i\n", vlan_id);
|
||||
error_report("warning: adding a slave device to an empty scatternet %i",
|
||||
vlan_id);
|
||||
|
||||
if (!strcmp(devname, "keyboard"))
|
||||
return bt_keyboard_init(vlan);
|
||||
|
||||
fprintf(stderr, "qemu: unsupported bluetooth device `%s'\n", devname);
|
||||
error_report("unsupported bluetooth device '%s'", devname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -987,11 +988,11 @@ static int bt_parse(const char *opt)
|
||||
if (strstart(endp, ",vlan=", &p)) {
|
||||
vlan = strtol(p, (char **) &endp, 0);
|
||||
if (*endp) {
|
||||
fprintf(stderr, "qemu: bad scatternet '%s'\n", p);
|
||||
error_report("bad scatternet '%s'", p);
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "qemu: bad parameter '%s'\n", endp + 1);
|
||||
error_report("bad parameter '%s'", endp + 1);
|
||||
return 1;
|
||||
}
|
||||
} else
|
||||
@ -1003,7 +1004,7 @@ static int bt_parse(const char *opt)
|
||||
} else if (strstart(opt, "device:", &endp))
|
||||
return !bt_device_add(endp);
|
||||
|
||||
fprintf(stderr, "qemu: bad bluetooth parameter '%s'\n", opt);
|
||||
error_report("bad bluetooth parameter '%s'", opt);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -1018,8 +1019,7 @@ static int parse_sandbox(void *opaque, QemuOpts *opts, Error **errp)
|
||||
return -1;
|
||||
}
|
||||
#else
|
||||
error_report("sandboxing request but seccomp is not compiled "
|
||||
"into this build");
|
||||
error_report("seccomp support is disabled");
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
@ -1100,7 +1100,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, Error **errp)
|
||||
}
|
||||
#endif
|
||||
if (dupfd == -1) {
|
||||
error_report("Error duplicating fd: %s", strerror(errno));
|
||||
error_report("error duplicating fd: %s", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1220,18 +1220,19 @@ static void smp_parse(QemuOpts *opts)
|
||||
} else if (threads == 0) {
|
||||
threads = cpus / (cores * sockets);
|
||||
} else if (sockets * cores * threads < cpus) {
|
||||
fprintf(stderr, "cpu topology: error: "
|
||||
"sockets (%u) * cores (%u) * threads (%u) < "
|
||||
"smp_cpus (%u)\n",
|
||||
sockets, cores, threads, cpus);
|
||||
error_report("cpu topology: "
|
||||
"sockets (%u) * cores (%u) * threads (%u) < "
|
||||
"smp_cpus (%u)",
|
||||
sockets, cores, threads, cpus);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
max_cpus = qemu_opt_get_number(opts, "maxcpus", cpus);
|
||||
if (sockets * cores * threads > max_cpus) {
|
||||
fprintf(stderr, "cpu topology: error: "
|
||||
"sockets (%u) * cores (%u) * threads (%u) > maxcpus (%u)\n",
|
||||
sockets, cores, threads, max_cpus);
|
||||
error_report("cpu topology: "
|
||||
"sockets (%u) * cores (%u) * threads (%u) > "
|
||||
"maxcpus (%u)",
|
||||
sockets, cores, threads, max_cpus);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -1246,11 +1247,11 @@ static void smp_parse(QemuOpts *opts)
|
||||
}
|
||||
|
||||
if (max_cpus > MAX_CPUMASK_BITS) {
|
||||
fprintf(stderr, "Unsupported number of maxcpus\n");
|
||||
error_report("unsupported number of maxcpus");
|
||||
exit(1);
|
||||
}
|
||||
if (max_cpus < smp_cpus) {
|
||||
fprintf(stderr, "maxcpus must be equal to or greater than smp\n");
|
||||
error_report("maxcpus must be equal to or greater than smp");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -1260,7 +1261,7 @@ static void realtime_init(void)
|
||||
{
|
||||
if (enable_mlock) {
|
||||
if (os_mlock() < 0) {
|
||||
fprintf(stderr, "qemu: locking memory failed\n");
|
||||
error_report("locking memory failed");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -1414,7 +1415,7 @@ static int usb_parse(const char *cmdline)
|
||||
int r;
|
||||
r = usb_device_add(cmdline);
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "qemu: could not add USB device '%s'\n", cmdline);
|
||||
error_report("could not add USB device '%s'", cmdline);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
@ -1624,14 +1625,14 @@ static int qemu_shutdown_requested(void)
|
||||
static void qemu_kill_report(void)
|
||||
{
|
||||
if (!qtest_driver() && shutdown_signal != -1) {
|
||||
fprintf(stderr, "qemu: terminating on signal %d", shutdown_signal);
|
||||
if (shutdown_pid == 0) {
|
||||
/* This happens for eg ^C at the terminal, so it's worth
|
||||
* avoiding printing an odd message in that case.
|
||||
*/
|
||||
fputc('\n', stderr);
|
||||
error_report("terminating on signal %d", shutdown_signal);
|
||||
} else {
|
||||
fprintf(stderr, " from pid " FMT_pid "\n", shutdown_pid);
|
||||
error_report("terminating on signal %d from pid " FMT_pid,
|
||||
shutdown_signal, shutdown_pid);
|
||||
}
|
||||
shutdown_signal = -1;
|
||||
}
|
||||
@ -1980,28 +1981,28 @@ static void select_vgahw (const char *p)
|
||||
if (vga_available()) {
|
||||
vga_interface_type = VGA_STD;
|
||||
} else {
|
||||
fprintf(stderr, "Error: standard VGA not available\n");
|
||||
error_report("standard VGA not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (strstart(p, "cirrus", &opts)) {
|
||||
if (cirrus_vga_available()) {
|
||||
vga_interface_type = VGA_CIRRUS;
|
||||
} else {
|
||||
fprintf(stderr, "Error: Cirrus VGA not available\n");
|
||||
error_report("Cirrus VGA not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (strstart(p, "vmware", &opts)) {
|
||||
if (vmware_vga_available()) {
|
||||
vga_interface_type = VGA_VMWARE;
|
||||
} else {
|
||||
fprintf(stderr, "Error: VMWare SVGA not available\n");
|
||||
error_report("VMWare SVGA not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (strstart(p, "virtio", &opts)) {
|
||||
if (virtio_vga_available()) {
|
||||
vga_interface_type = VGA_VIRTIO;
|
||||
} else {
|
||||
fprintf(stderr, "Error: Virtio VGA not available\n");
|
||||
error_report("Virtio VGA not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (strstart(p, "xenfb", &opts)) {
|
||||
@ -2010,26 +2011,26 @@ static void select_vgahw (const char *p)
|
||||
if (qxl_vga_available()) {
|
||||
vga_interface_type = VGA_QXL;
|
||||
} else {
|
||||
fprintf(stderr, "Error: QXL VGA not available\n");
|
||||
error_report("QXL VGA not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (strstart(p, "tcx", &opts)) {
|
||||
if (tcx_vga_available()) {
|
||||
vga_interface_type = VGA_TCX;
|
||||
} else {
|
||||
fprintf(stderr, "Error: TCX framebuffer not available\n");
|
||||
error_report("TCX framebuffer not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (strstart(p, "cg3", &opts)) {
|
||||
if (cg3_vga_available()) {
|
||||
vga_interface_type = VGA_CG3;
|
||||
} else {
|
||||
fprintf(stderr, "Error: CG3 framebuffer not available\n");
|
||||
error_report("CG3 framebuffer not available");
|
||||
exit(0);
|
||||
}
|
||||
} else if (!strstart(p, "none", &opts)) {
|
||||
invalid_vga:
|
||||
fprintf(stderr, "Unknown vga type: %s\n", p);
|
||||
error_report("unknown vga type: %s", p);
|
||||
exit(1);
|
||||
}
|
||||
while (*opts) {
|
||||
@ -2105,7 +2106,7 @@ static DisplayType select_display(const char *p)
|
||||
}
|
||||
} else {
|
||||
invalid_sdl_args:
|
||||
error_report("Invalid SDL option string");
|
||||
error_report("invalid SDL option string");
|
||||
exit(1);
|
||||
}
|
||||
opts = nextopt;
|
||||
@ -2134,7 +2135,7 @@ static DisplayType select_display(const char *p)
|
||||
#ifdef CONFIG_CURSES
|
||||
display = DT_CURSES;
|
||||
#else
|
||||
error_report("Curses support is disabled");
|
||||
error_report("curses support is disabled");
|
||||
exit(1);
|
||||
#endif
|
||||
} else if (strstart(p, "gtk", &opts)) {
|
||||
@ -2163,7 +2164,7 @@ static DisplayType select_display(const char *p)
|
||||
}
|
||||
} else {
|
||||
invalid_gtk_args:
|
||||
error_report("Invalid GTK option string");
|
||||
error_report("invalid GTK option string");
|
||||
exit(1);
|
||||
}
|
||||
opts = nextopt;
|
||||
@ -2175,7 +2176,7 @@ static DisplayType select_display(const char *p)
|
||||
} else if (strstart(p, "none", &opts)) {
|
||||
display = DT_NONE;
|
||||
} else {
|
||||
error_report("Unknown display type");
|
||||
error_report("unknown display type");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -2276,8 +2277,8 @@ static int parse_fw_cfg(void *opaque, QemuOpts *opts, Error **errp)
|
||||
return -1;
|
||||
}
|
||||
if (strncmp(name, "opt/", 4) != 0) {
|
||||
error_report("WARNING: externally provided fw_cfg item names "
|
||||
"should be prefixed with \"opt/\"!");
|
||||
error_report("warning: externally provided fw_cfg item names "
|
||||
"should be prefixed with \"opt/\"");
|
||||
}
|
||||
if (nonempty_str(str)) {
|
||||
size = strlen(str); /* NUL terminator NOT included in fw_cfg blob */
|
||||
@ -2349,7 +2350,7 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp)
|
||||
} else if (strcmp(mode, "control") == 0) {
|
||||
flags = MONITOR_USE_CONTROL;
|
||||
} else {
|
||||
fprintf(stderr, "unknown monitor mode \"%s\"\n", mode);
|
||||
error_report("unknown monitor mode \"%s\"", mode);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -2362,7 +2363,7 @@ static int mon_init_func(void *opaque, QemuOpts *opts, Error **errp)
|
||||
chardev = qemu_opt_get(opts, "chardev");
|
||||
chr = qemu_chr_find(chardev);
|
||||
if (chr == NULL) {
|
||||
fprintf(stderr, "chardev \"%s\" not found\n", chardev);
|
||||
error_report("chardev \"%s\" not found", chardev);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -2390,7 +2391,7 @@ static void monitor_parse(const char *optarg, const char *mode, bool pretty)
|
||||
}
|
||||
opts = qemu_chr_parse_compat(label, optarg);
|
||||
if (!opts) {
|
||||
fprintf(stderr, "parse error: %s\n", optarg);
|
||||
error_report("parse error: %s", optarg);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -2464,14 +2465,14 @@ static int serial_parse(const char *devname)
|
||||
if (strcmp(devname, "none") == 0)
|
||||
return 0;
|
||||
if (index == MAX_SERIAL_PORTS) {
|
||||
fprintf(stderr, "qemu: too many serial ports\n");
|
||||
error_report("too many serial ports");
|
||||
exit(1);
|
||||
}
|
||||
snprintf(label, sizeof(label), "serial%d", index);
|
||||
serial_hds[index] = qemu_chr_new(label, devname, NULL);
|
||||
if (!serial_hds[index]) {
|
||||
fprintf(stderr, "qemu: could not connect serial device"
|
||||
" to character backend '%s'\n", devname);
|
||||
error_report("could not connect serial device"
|
||||
" to character backend '%s'", devname);
|
||||
return -1;
|
||||
}
|
||||
index++;
|
||||
@ -2486,14 +2487,14 @@ static int parallel_parse(const char *devname)
|
||||
if (strcmp(devname, "none") == 0)
|
||||
return 0;
|
||||
if (index == MAX_PARALLEL_PORTS) {
|
||||
fprintf(stderr, "qemu: too many parallel ports\n");
|
||||
error_report("too many parallel ports");
|
||||
exit(1);
|
||||
}
|
||||
snprintf(label, sizeof(label), "parallel%d", index);
|
||||
parallel_hds[index] = qemu_chr_new(label, devname, NULL);
|
||||
if (!parallel_hds[index]) {
|
||||
fprintf(stderr, "qemu: could not connect parallel device"
|
||||
" to character backend '%s'\n", devname);
|
||||
error_report("could not connect parallel device"
|
||||
" to character backend '%s'", devname);
|
||||
return -1;
|
||||
}
|
||||
index++;
|
||||
@ -2510,7 +2511,7 @@ static int virtcon_parse(const char *devname)
|
||||
if (strcmp(devname, "none") == 0)
|
||||
return 0;
|
||||
if (index == MAX_VIRTIO_CONSOLES) {
|
||||
fprintf(stderr, "qemu: too many virtio consoles\n");
|
||||
error_report("too many virtio consoles");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -2527,8 +2528,8 @@ static int virtcon_parse(const char *devname)
|
||||
snprintf(label, sizeof(label), "virtcon%d", index);
|
||||
virtcon_hds[index] = qemu_chr_new(label, devname, NULL);
|
||||
if (!virtcon_hds[index]) {
|
||||
fprintf(stderr, "qemu: could not connect virtio console"
|
||||
" to character backend '%s'\n", devname);
|
||||
error_report("could not connect virtio console"
|
||||
" to character backend '%s'", devname);
|
||||
return -1;
|
||||
}
|
||||
qemu_opt_set(dev_opts, "chardev", label, &error_abort);
|
||||
@ -2548,7 +2549,7 @@ static int sclp_parse(const char *devname)
|
||||
return 0;
|
||||
}
|
||||
if (index == MAX_SCLP_CONSOLES) {
|
||||
fprintf(stderr, "qemu: too many sclp consoles\n");
|
||||
error_report("too many sclp consoles");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -2560,8 +2561,8 @@ static int sclp_parse(const char *devname)
|
||||
snprintf(label, sizeof(label), "sclpcon%d", index);
|
||||
sclp_hds[index] = qemu_chr_new(label, devname, NULL);
|
||||
if (!sclp_hds[index]) {
|
||||
fprintf(stderr, "qemu: could not connect sclp console"
|
||||
" to character backend '%s'\n", devname);
|
||||
error_report("could not connect sclp console"
|
||||
" to character backend '%s'", devname);
|
||||
return -1;
|
||||
}
|
||||
qemu_opt_set(dev_opts, "chardev", label, &error_abort);
|
||||
@ -2579,7 +2580,7 @@ static int debugcon_parse(const char *devname)
|
||||
}
|
||||
opts = qemu_opts_create(qemu_find_opts("device"), "debugcon", 1, NULL);
|
||||
if (!opts) {
|
||||
fprintf(stderr, "qemu: already have a debugcon device\n");
|
||||
error_report("already have a debugcon device");
|
||||
exit(1);
|
||||
}
|
||||
qemu_opt_set(opts, "driver", "isa-debugcon", &error_abort);
|
||||
@ -2634,8 +2635,8 @@ static gint machine_class_cmp(gconstpointer a, gconstpointer b)
|
||||
return mc;
|
||||
}
|
||||
if (name && !is_help_option(name)) {
|
||||
error_report("Unsupported machine type");
|
||||
error_printf("Use -machine help to list supported machines!\n");
|
||||
error_report("unsupported machine type");
|
||||
error_printf("Use -machine help to list supported machines\n");
|
||||
} else {
|
||||
printf("Supported machines are:\n");
|
||||
machines = g_slist_sort(machines, machine_class_cmp);
|
||||
@ -3010,8 +3011,7 @@ int main(int argc, char **argv, char **envp)
|
||||
runstate_init();
|
||||
|
||||
if (qcrypto_init(&err) < 0) {
|
||||
fprintf(stderr, "Cannot initialize crypto: %s\n",
|
||||
error_get_pretty(err));
|
||||
error_report("cannot initialize crypto: %s", error_get_pretty(err));
|
||||
exit(1);
|
||||
}
|
||||
rtc_clock = QEMU_CLOCK_HOST;
|
||||
@ -3169,7 +3169,7 @@ int main(int argc, char **argv, char **envp)
|
||||
}
|
||||
} else if (*p != '\0') {
|
||||
chs_fail:
|
||||
fprintf(stderr, "qemu: invalid physical CHS format\n");
|
||||
error_report("invalid physical CHS format");
|
||||
exit(1);
|
||||
}
|
||||
if (hda_opts != NULL) {
|
||||
@ -3212,7 +3212,7 @@ int main(int argc, char **argv, char **envp)
|
||||
#ifdef CONFIG_CURSES
|
||||
display_type = DT_CURSES;
|
||||
#else
|
||||
fprintf(stderr, "Curses support is disabled\n");
|
||||
error_report("curses support is disabled");
|
||||
exit(1);
|
||||
#endif
|
||||
break;
|
||||
@ -3223,8 +3223,7 @@ int main(int argc, char **argv, char **envp)
|
||||
graphic_rotate = strtol(optarg, (char **) &optarg, 10);
|
||||
if (graphic_rotate != 0 && graphic_rotate != 90 &&
|
||||
graphic_rotate != 180 && graphic_rotate != 270) {
|
||||
fprintf(stderr,
|
||||
"qemu: only 90, 180, 270 deg rotation is available\n");
|
||||
error_report("only 90, 180, 270 deg rotation is available");
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@ -3375,7 +3374,7 @@ int main(int argc, char **argv, char **envp)
|
||||
w = strtol(p, (char **)&p, 10);
|
||||
if (w <= 0) {
|
||||
graphic_error:
|
||||
fprintf(stderr, "qemu: invalid resolution or depth\n");
|
||||
error_report("invalid resolution or depth");
|
||||
exit(1);
|
||||
}
|
||||
if (*p != 'x')
|
||||
@ -3441,7 +3440,7 @@ int main(int argc, char **argv, char **envp)
|
||||
case QEMU_OPTION_fsdev:
|
||||
olist = qemu_find_opts("fsdev");
|
||||
if (!olist) {
|
||||
fprintf(stderr, "fsdev is not supported by this qemu build.\n");
|
||||
error_report("fsdev support is disabled");
|
||||
exit(1);
|
||||
}
|
||||
opts = qemu_opts_parse_noisily(olist, optarg, true);
|
||||
@ -3456,7 +3455,7 @@ int main(int argc, char **argv, char **envp)
|
||||
|
||||
olist = qemu_find_opts("virtfs");
|
||||
if (!olist) {
|
||||
fprintf(stderr, "virtfs is not supported by this qemu build.\n");
|
||||
error_report("virtfs support is disabled");
|
||||
exit(1);
|
||||
}
|
||||
opts = qemu_opts_parse_noisily(olist, optarg, true);
|
||||
@ -3466,15 +3465,15 @@ int main(int argc, char **argv, char **envp)
|
||||
|
||||
if (qemu_opt_get(opts, "fsdriver") == NULL ||
|
||||
qemu_opt_get(opts, "mount_tag") == NULL) {
|
||||
fprintf(stderr, "Usage: -virtfs fsdriver,mount_tag=tag.\n");
|
||||
error_report("Usage: -virtfs fsdriver,mount_tag=tag");
|
||||
exit(1);
|
||||
}
|
||||
fsdev = qemu_opts_create(qemu_find_opts("fsdev"),
|
||||
qemu_opt_get(opts, "mount_tag"),
|
||||
1, NULL);
|
||||
if (!fsdev) {
|
||||
fprintf(stderr, "duplicate fsdev id: %s\n",
|
||||
qemu_opt_get(opts, "mount_tag"));
|
||||
error_report("duplicate fsdev id: %s",
|
||||
qemu_opt_get(opts, "mount_tag"));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -3483,8 +3482,8 @@ int main(int argc, char **argv, char **envp)
|
||||
#ifdef CONFIG_SYNC_FILE_RANGE
|
||||
qemu_opt_set(fsdev, "writeout", writeout, &error_abort);
|
||||
#else
|
||||
fprintf(stderr, "writeout=immediate not supported on "
|
||||
"this platform\n");
|
||||
error_report("writeout=immediate not supported "
|
||||
"on this platform");
|
||||
exit(1);
|
||||
#endif
|
||||
}
|
||||
@ -3523,7 +3522,7 @@ int main(int argc, char **argv, char **envp)
|
||||
fsdev = qemu_opts_create(qemu_find_opts("fsdev"), "v_synth",
|
||||
1, NULL);
|
||||
if (!fsdev) {
|
||||
fprintf(stderr, "duplicate option: %s\n", "virtfs_synth");
|
||||
error_report("duplicate option: %s", "virtfs_synth");
|
||||
exit(1);
|
||||
}
|
||||
qemu_opt_set(fsdev, "fsdriver", "synth", &error_abort);
|
||||
@ -3544,15 +3543,14 @@ int main(int argc, char **argv, char **envp)
|
||||
break;
|
||||
case QEMU_OPTION_watchdog:
|
||||
if (watchdog) {
|
||||
fprintf(stderr,
|
||||
"qemu: only one watchdog option may be given\n");
|
||||
error_report("only one watchdog option may be given");
|
||||
return 1;
|
||||
}
|
||||
watchdog = optarg;
|
||||
break;
|
||||
case QEMU_OPTION_watchdog_action:
|
||||
if (select_watchdog_action(optarg) == -1) {
|
||||
fprintf(stderr, "Unknown -watchdog-action parameter\n");
|
||||
error_report("unknown -watchdog-action parameter");
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@ -3596,7 +3594,7 @@ int main(int argc, char **argv, char **envp)
|
||||
display_type = DT_SDL;
|
||||
break;
|
||||
#else
|
||||
fprintf(stderr, "SDL support is disabled\n");
|
||||
error_report("SDL support is disabled");
|
||||
exit(1);
|
||||
#endif
|
||||
case QEMU_OPTION_pidfile:
|
||||
@ -3658,8 +3656,7 @@ int main(int argc, char **argv, char **envp)
|
||||
qemu_opts_parse_noisily(olist, "accel=tcg", false);
|
||||
break;
|
||||
case QEMU_OPTION_no_kvm_pit: {
|
||||
fprintf(stderr, "Warning: KVM PIT can no longer be disabled "
|
||||
"separately.\n");
|
||||
error_report("warning: ignoring deprecated option");
|
||||
break;
|
||||
}
|
||||
case QEMU_OPTION_no_kvm_pit_reinjection: {
|
||||
@ -3672,8 +3669,8 @@ int main(int argc, char **argv, char **envp)
|
||||
{ /* end of list */ }
|
||||
};
|
||||
|
||||
fprintf(stderr, "Warning: option deprecated, use "
|
||||
"lost_tick_policy property of kvm-pit instead.\n");
|
||||
error_report("warning: deprecated, replaced by "
|
||||
"-global kvm-pit.lost_tick_policy=discard");
|
||||
qdev_prop_register_global_list(kvm_pit_lost_tick_policy);
|
||||
break;
|
||||
}
|
||||
@ -3708,7 +3705,7 @@ int main(int argc, char **argv, char **envp)
|
||||
exit(1);
|
||||
}
|
||||
#else
|
||||
fprintf(stderr, "VNC support is disabled\n");
|
||||
error_report("VNC support is disabled");
|
||||
exit(1);
|
||||
#endif
|
||||
break;
|
||||
@ -3721,7 +3718,7 @@ int main(int argc, char **argv, char **envp)
|
||||
break;
|
||||
case QEMU_OPTION_balloon:
|
||||
if (balloon_parse(optarg) < 0) {
|
||||
fprintf(stderr, "Unknown -balloon argument %s\n", optarg);
|
||||
error_report("unknown -balloon argument %s", optarg);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@ -3736,15 +3733,14 @@ int main(int argc, char **argv, char **envp)
|
||||
break;
|
||||
case QEMU_OPTION_uuid:
|
||||
if(qemu_uuid_parse(optarg, qemu_uuid) < 0) {
|
||||
fprintf(stderr, "Fail to parse UUID string."
|
||||
" Wrong format.\n");
|
||||
error_report("failed to parse UUID string: wrong format");
|
||||
exit(1);
|
||||
}
|
||||
qemu_uuid_set = true;
|
||||
break;
|
||||
case QEMU_OPTION_option_rom:
|
||||
if (nb_option_roms >= MAX_OPTION_ROMS) {
|
||||
fprintf(stderr, "Too many option ROMs\n");
|
||||
error_report("too many option ROMs");
|
||||
exit(1);
|
||||
}
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("option-rom"),
|
||||
@ -3756,7 +3752,7 @@ int main(int argc, char **argv, char **envp)
|
||||
option_rom[nb_option_roms].bootindex =
|
||||
qemu_opt_get_number(opts, "bootindex", -1);
|
||||
if (!option_rom[nb_option_roms].name) {
|
||||
fprintf(stderr, "Option ROM file is not specified\n");
|
||||
error_report("Option ROM file is not specified");
|
||||
exit(1);
|
||||
}
|
||||
nb_option_roms++;
|
||||
@ -3781,9 +3777,8 @@ int main(int argc, char **argv, char **envp)
|
||||
} else if (strcmp("auto", target) == 0) {
|
||||
semihosting.target = SEMIHOSTING_TARGET_AUTO;
|
||||
} else {
|
||||
fprintf(stderr, "Unsupported semihosting-config"
|
||||
" %s\n",
|
||||
optarg);
|
||||
error_report("unsupported semihosting-config %s",
|
||||
optarg);
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
@ -3793,14 +3788,12 @@ int main(int argc, char **argv, char **envp)
|
||||
qemu_opt_foreach(opts, add_semihosting_arg,
|
||||
&semihosting, NULL);
|
||||
} else {
|
||||
fprintf(stderr, "Unsupported semihosting-config %s\n",
|
||||
optarg);
|
||||
error_report("unsupported semihosting-config %s", optarg);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case QEMU_OPTION_tdf:
|
||||
fprintf(stderr, "Warning: user space PIT time drift fix "
|
||||
"is no longer supported.\n");
|
||||
error_report("warning: ignoring deprecated option");
|
||||
break;
|
||||
case QEMU_OPTION_name:
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("name"),
|
||||
@ -3811,7 +3804,7 @@ int main(int argc, char **argv, char **envp)
|
||||
break;
|
||||
case QEMU_OPTION_prom_env:
|
||||
if (nb_prom_envs >= MAX_PROM_ENVS) {
|
||||
fprintf(stderr, "Too many prom variables\n");
|
||||
error_report("too many prom variables");
|
||||
exit(1);
|
||||
}
|
||||
prom_envs[nb_prom_envs] = optarg;
|
||||
@ -3894,8 +3887,8 @@ int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
int ret = qemu_read_config_file(optarg);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "read config %s: %s\n", optarg,
|
||||
strerror(-ret));
|
||||
error_report("read config %s: %s", optarg,
|
||||
strerror(-ret));
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@ -3903,7 +3896,7 @@ int main(int argc, char **argv, char **envp)
|
||||
case QEMU_OPTION_spice:
|
||||
olist = qemu_find_opts("spice");
|
||||
if (!olist) {
|
||||
fprintf(stderr, "spice is not supported by this qemu build.\n");
|
||||
error_report("spice support is disabled");
|
||||
exit(1);
|
||||
}
|
||||
opts = qemu_opts_parse_noisily(olist, optarg, false);
|
||||
@ -3920,7 +3913,8 @@ int main(int argc, char **argv, char **envp)
|
||||
} else {
|
||||
fp = fopen(optarg, "w");
|
||||
if (fp == NULL) {
|
||||
fprintf(stderr, "open %s: %s\n", optarg, strerror(errno));
|
||||
error_report("open %s: %s", optarg,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -3981,13 +3975,13 @@ int main(int argc, char **argv, char **envp)
|
||||
break;
|
||||
case QEMU_OPTION_dump_vmstate:
|
||||
if (vmstate_dump_file) {
|
||||
fprintf(stderr, "qemu: only one '-dump-vmstate' "
|
||||
"option may be given\n");
|
||||
error_report("only one '-dump-vmstate' "
|
||||
"option may be given");
|
||||
exit(1);
|
||||
}
|
||||
vmstate_dump_file = fopen(optarg, "w");
|
||||
if (vmstate_dump_file == NULL) {
|
||||
fprintf(stderr, "open %s: %s\n", optarg, strerror(errno));
|
||||
error_report("open %s: %s", optarg, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@ -4004,8 +3998,8 @@ int main(int argc, char **argv, char **envp)
|
||||
}
|
||||
|
||||
if (machine_class == NULL) {
|
||||
fprintf(stderr, "No machine specified, and there is no default.\n"
|
||||
"Use -machine help to list supported machines!\n");
|
||||
error_report("No machine specified, and there is no default");
|
||||
error_printf("Use -machine help to list supported machines\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -4106,9 +4100,9 @@ int main(int argc, char **argv, char **envp)
|
||||
|
||||
machine_class->max_cpus = machine_class->max_cpus ?: 1; /* Default to UP */
|
||||
if (max_cpus > machine_class->max_cpus) {
|
||||
fprintf(stderr, "Number of SMP CPUs requested (%d) exceeds max CPUs "
|
||||
"supported by machine '%s' (%d)\n", max_cpus,
|
||||
machine_class->name, machine_class->max_cpus);
|
||||
error_report("Number of SMP CPUs requested (%d) exceeds max CPUs "
|
||||
"supported by machine '%s' (%d)", max_cpus,
|
||||
machine_class->name, machine_class->max_cpus);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -4169,12 +4163,12 @@ int main(int argc, char **argv, char **envp)
|
||||
if (display_type == DT_NOGRAPHIC
|
||||
&& (default_parallel || default_serial
|
||||
|| default_monitor || default_virtcon)) {
|
||||
fprintf(stderr, "-nographic can not be used with -daemonize\n");
|
||||
error_report("-nographic cannot be used with -daemonize");
|
||||
exit(1);
|
||||
}
|
||||
#ifdef CONFIG_CURSES
|
||||
if (display_type == DT_CURSES) {
|
||||
fprintf(stderr, "curses display can not be used with -daemonize\n");
|
||||
error_report("curses display cannot be used with -daemonize");
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
@ -4233,12 +4227,12 @@ int main(int argc, char **argv, char **envp)
|
||||
}
|
||||
|
||||
if ((no_frame || alt_grab || ctrl_grab) && display_type != DT_SDL) {
|
||||
fprintf(stderr, "-no-frame, -alt-grab and -ctrl-grab are only valid "
|
||||
"for SDL, ignoring option\n");
|
||||
error_report("-no-frame, -alt-grab and -ctrl-grab are only valid "
|
||||
"for SDL, ignoring option");
|
||||
}
|
||||
if (no_quit && (display_type != DT_GTK && display_type != DT_SDL)) {
|
||||
fprintf(stderr, "-no-quit is only valid for GTK and SDL, "
|
||||
"ignoring option\n");
|
||||
error_report("-no-quit is only valid for GTK and SDL, "
|
||||
"ignoring option");
|
||||
}
|
||||
|
||||
#if defined(CONFIG_GTK)
|
||||
@ -4253,9 +4247,9 @@ int main(int argc, char **argv, char **envp)
|
||||
#endif
|
||||
if (request_opengl == 1 && display_opengl == 0) {
|
||||
#if defined(CONFIG_OPENGL)
|
||||
fprintf(stderr, "OpenGL is not supported by the display.\n");
|
||||
error_report("OpenGL is not supported by the display");
|
||||
#else
|
||||
fprintf(stderr, "QEMU was built without opengl support.\n");
|
||||
error_report("OpenGL support is disabled");
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
@ -4281,7 +4275,7 @@ int main(int argc, char **argv, char **envp)
|
||||
#endif
|
||||
|
||||
if (pid_file && qemu_create_pidfile(pid_file) != 0) {
|
||||
fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno));
|
||||
error_report("could not acquire pid file: %s", strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -4352,17 +4346,17 @@ int main(int argc, char **argv, char **envp)
|
||||
linux_boot = (kernel_filename != NULL);
|
||||
|
||||
if (!linux_boot && *kernel_cmdline != '\0') {
|
||||
fprintf(stderr, "-append only allowed with -kernel option\n");
|
||||
error_report("-append only allowed with -kernel option");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!linux_boot && initrd_filename != NULL) {
|
||||
fprintf(stderr, "-initrd only allowed with -kernel option\n");
|
||||
error_report("-initrd only allowed with -kernel option");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!linux_boot && qemu_opt_get(machine_opts, "dtb")) {
|
||||
fprintf(stderr, "-dtb only allowed with -kernel option\n");
|
||||
error_report("-dtb only allowed with -kernel option");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -4381,7 +4375,7 @@ int main(int argc, char **argv, char **envp)
|
||||
cpu_ticks_init();
|
||||
if (icount_opts) {
|
||||
if (kvm_enabled() || xen_enabled()) {
|
||||
fprintf(stderr, "-icount is not allowed with kvm or xen\n");
|
||||
error_report("-icount is not allowed with kvm or xen");
|
||||
exit(1);
|
||||
}
|
||||
configure_icount(icount_opts, &error_abort);
|
||||
@ -4414,7 +4408,7 @@ int main(int argc, char **argv, char **envp)
|
||||
if (!xen_enabled()) {
|
||||
/* On 32-bit hosts, QEMU is limited by virtual address space */
|
||||
if (ram_size > (2047 << 20) && HOST_LONG_BITS == 32) {
|
||||
fprintf(stderr, "qemu: at most 2047 MB RAM can be simulated\n");
|
||||
error_report("at most 2047 MB RAM can be simulated");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -4579,7 +4573,7 @@ int main(int argc, char **argv, char **envp)
|
||||
vnc_init_func, NULL, NULL);
|
||||
if (show_vnc_port) {
|
||||
char *ret = vnc_display_local_addr("default");
|
||||
printf("VNC server running on `%s'\n", ret);
|
||||
printf("VNC server running on '%s'\n", ret);
|
||||
g_free(ret);
|
||||
}
|
||||
#endif
|
||||
@ -4601,7 +4595,7 @@ int main(int argc, char **argv, char **envp)
|
||||
qemu_run_machine_init_done_notifiers();
|
||||
|
||||
if (rom_check_and_register_reset() != 0) {
|
||||
fprintf(stderr, "rom check and register reset failed\n");
|
||||
error_report("rom check and register reset failed");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user