hw/xen: Split out xen_pv_output_msg
Do not replicate the individual logging statements. Use qemu_log_trylock/unlock instead of qemu_log directly. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220417183019.755276-9-richard.henderson@linaro.org>
This commit is contained in:
parent
c60f599bcb
commit
6fef222971
@ -196,34 +196,38 @@ const char *xenbus_strstate(enum xenbus_state state)
|
||||
* 2 == noisy debug messages (logfile only).
|
||||
* 3 == will flood your log (logfile only).
|
||||
*/
|
||||
static void xen_pv_output_msg(struct XenLegacyDevice *xendev,
|
||||
FILE *f, const char *fmt, va_list args)
|
||||
{
|
||||
if (xendev) {
|
||||
fprintf(f, "xen be: %s: ", xendev->name);
|
||||
} else {
|
||||
fprintf(f, "xen be core: ");
|
||||
}
|
||||
vfprintf(f, fmt, args);
|
||||
}
|
||||
|
||||
void xen_pv_printf(struct XenLegacyDevice *xendev, int msg_level,
|
||||
const char *fmt, ...)
|
||||
{
|
||||
FILE *logfile;
|
||||
va_list args;
|
||||
|
||||
if (xendev) {
|
||||
if (msg_level > xendev->debug) {
|
||||
return;
|
||||
}
|
||||
qemu_log("xen be: %s: ", xendev->name);
|
||||
if (msg_level == 0) {
|
||||
fprintf(stderr, "xen be: %s: ", xendev->name);
|
||||
}
|
||||
} else {
|
||||
if (msg_level > debug) {
|
||||
return;
|
||||
}
|
||||
qemu_log("xen be core: ");
|
||||
if (msg_level == 0) {
|
||||
fprintf(stderr, "xen be core: ");
|
||||
}
|
||||
if (msg_level > (xendev ? xendev->debug : debug)) {
|
||||
return;
|
||||
}
|
||||
va_start(args, fmt);
|
||||
qemu_log_vprintf(fmt, args);
|
||||
va_end(args);
|
||||
|
||||
logfile = qemu_log_trylock();
|
||||
if (logfile) {
|
||||
va_start(args, fmt);
|
||||
xen_pv_output_msg(xendev, logfile, fmt, args);
|
||||
va_end(args);
|
||||
qemu_log_unlock(logfile);
|
||||
}
|
||||
|
||||
if (msg_level == 0) {
|
||||
va_start(args, fmt);
|
||||
vfprintf(stderr, fmt, args);
|
||||
xen_pv_output_msg(xendev, stderr, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
qemu_log_flush();
|
||||
|
Loading…
x
Reference in New Issue
Block a user