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).
|
* 2 == noisy debug messages (logfile only).
|
||||||
* 3 == will flood your log (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,
|
void xen_pv_printf(struct XenLegacyDevice *xendev, int msg_level,
|
||||||
const char *fmt, ...)
|
const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
FILE *logfile;
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
if (xendev) {
|
if (msg_level > (xendev ? xendev->debug : debug)) {
|
||||||
if (msg_level > xendev->debug) {
|
return;
|
||||||
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: ");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
va_start(args, fmt);
|
|
||||||
qemu_log_vprintf(fmt, args);
|
logfile = qemu_log_trylock();
|
||||||
va_end(args);
|
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) {
|
if (msg_level == 0) {
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vfprintf(stderr, fmt, args);
|
xen_pv_output_msg(xendev, stderr, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
qemu_log_flush();
|
qemu_log_flush();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user