summaryrefslogtreecommitdiffstats
path: root/qemu-error.c
Commit message (Collapse)AuthorAgeFilesLines
* error: Add an accessor for prognamemichael@ozlabs.org2011-12-151-0/+5
| | | | | | | | | | We'd like to get the progname for help output, so add an accessor. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Reviewed-by: Andreas F=E4rber <afaerber@suse.de> Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Strip trailing '\n' from error_report()'s first argumentMarkus Armbruster2011-06-241-0/+2
| | | | | | | | | error_report() prepends location, and appends a newline. The message constructed from the arguments should not contain a newline. Fix the obvious offenders. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
* Remove unused sysemu.h include directivesBlue Swirl2011-04-151-1/+0
| | | | | | | Remove unused sysemu.h include directives to speed up build with the following patches. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* error: Move qerror_report() from qemu-error.[ch] to qerror.[ch]Markus Armbruster2010-03-271-18/+0
| | | | | Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* error: Make use of error_set_progname() optionalMarkus Armbruster2010-03-271-1/+1
| | | | | Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* qemu-error: Avoid build warning.Edgar E. Iglesias2010-03-231-1/+1
| | | | | | | | | | CC qemu-error.o cc1: warnings being treated as errors /home/edgar/src/c/qemu/git/qemu/qemu-error.c: In function 'error_print_loc': /home/edgar/src/c/qemu/git/qemu/qemu-error.c:191: error: format not a string literal and no format arguments make: *** [qemu-error.o] Error 1 Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* error: New error_printf_unless_qmp()Markus Armbruster2010-03-161-0/+11
|
* error: Let converted handlers print in human monitorMarkus Armbruster2010-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | While fully converted handlers are not supposed to print anything when running in a QMP monitor, they are free to print in a human monitor. For instance, device_add (not yet converted) prints help, and will continue to do so after conversion. Moreover, utility functions converted to QError should remain usable from unconverted handlers. Two problems: * handler_audit() complains when a converted handler prints. Limit that to QMP monitors. * With QMP, handlers need to pass the error object by way of monitor_set_error(). However, we do that both for QMP and for the human monitor. The human monitor prints the error object after the handler returns. If the handler prints anything else, that output "overtakes" the error message. Limit use of monitor_set_error() to QMP monitors. Update handler_audit() accordingly.
* error: Track locations on command lineMarkus Armbruster2010-03-161-0/+20
| | | | | | | New LOC_CMDLINE. Use it for tracking option with argument in lookup_opt(). We now report errors like this qemu: -device smbus-eeprom: Did not find I2C bus for smbus-eeprom
* error: Track locations in configuration filesMarkus Armbruster2010-03-161-0/+20
| | | | | | | | | | | | | | | | | New LOC_FILE. Use it for tracking file name and line number in qemu_config_parse(). We now report errors like qemu:foo.conf:42: Did not find I2C bus for smbus-eeprom In particular, gems like this message: -device: no driver specified become almost nice now: qemu:foo.conf:44: -device: no driver specified (A later commit will get rid of the bogus -device:)
* error: Include the program name in error messages to stderrMarkus Armbruster2010-03-161-1/+19
|
* error: Infrastructure to track locations for error reportingMarkus Armbruster2010-03-161-1/+84
| | | | | | | | | | | | | | | | | | New struct Location holds a location. So far, the only location is LOC_NONE, so this doesn't do anything useful yet. Passing the current location all over the place would be too cumbersome. Hide it away in static cur_loc instead, and provide accessors. Print it in error_report(). Store it in QError, and print it in qerror_print(). Store it in QemuOpt, for use by qemu_opts_foreach(). This makes error_report() do the right thing when it runs within qemu_opts_foreach(). We may still have to store it in other data structures holding user input for better error messages. Left for another day.
* error: Rename qemu_error_new() to qerror_report()Markus Armbruster2010-03-161-3/+3
|
* error: Replace qemu_error() by error_report()Markus Armbruster2010-03-161-1/+7
| | | | | | | | | | | | | error_report() terminates the message with a newline. Strip it it from its arguments. This fixes a few error messages lacking a newline: net_handle_fd_param()'s "No file descriptor named %s found", and tap_open()'s "vnet_hdr=1 requested, but no kernel support for IFF_VNET_HDR available" (all three versions). There's one place that passes arguments without newlines intentionally: load_vmstate(). Fix it up.
* error: New error_printf() and error_vprintf()Markus Armbruster2010-03-161-7/+42
|
* error: Simplify error sink setupMarkus Armbruster2010-03-161-67/+9
| | | | | | | | | | | | | | qemu_error_sink can either point to a monitor or a file. In practice, it always points to the current monitor if we have one, else to stderr. Simply route errors to the current monitor or else to stderr, and remove qemu_error_sink along with the functions to control it. Actually, the old code switches the sink slightly later, in handle_user_command() and handle_qmp_command(), than it gets switched now, implicitly, by setting the current monitor in monitor_read() and monitor_control_read(). Likewise, it switches back slightly earlier (same places). Doesn't make a difference, because there are no calls of qemu_error() in between.
* error: Move qemu_error() & friends from monitor.c to own fileMarkus Armbruster2010-03-161-0/+92
They're about reporting errors, not about the monitor.
OpenPOWER on IntegriCloud