Skip to content

Commit

Permalink
log: do not use CONFIG_USER_ONLY
Browse files Browse the repository at this point in the history
This decouples logging further from config-target.h

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed May 19, 2016
1 parent 4b4629d commit f2937a3
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 17 deletions.
1 change: 1 addition & 0 deletions bsd-user/main.c
Expand Up @@ -849,6 +849,7 @@ int main(int argc, char **argv)
}

/* init debug */
qemu_log_needs_buffers();
qemu_set_log_filename(log_file);
if (log_mask) {
int mask;
Expand Down
17 changes: 2 additions & 15 deletions include/qemu/log.h
Expand Up @@ -104,21 +104,8 @@ typedef struct QEMULogItem {

extern const QEMULogItem qemu_log_items[];

/* This is the function that actually does the work of
* changing the log level; it should only be accessed via
* the qemu_set_log() wrapper.
*/
void do_qemu_set_log(int log_flags, bool use_own_buffers);

static inline void qemu_set_log(int log_flags)
{
#ifdef CONFIG_USER_ONLY
do_qemu_set_log(log_flags, true);
#else
do_qemu_set_log(log_flags, false);
#endif
}

void qemu_set_log(int log_flags);
void qemu_log_needs_buffers(void);
void qemu_set_log_filename(const char *filename);
void qemu_set_dfilter_ranges(const char *ranges);
bool qemu_log_in_addr_range(uint64_t addr);
Expand Down
1 change: 1 addition & 0 deletions linux-user/main.c
Expand Up @@ -3760,6 +3760,7 @@ static void handle_arg_log(const char *arg)
qemu_print_log_usage(stdout);
exit(EXIT_FAILURE);
}
qemu_log_needs_buffers();
qemu_set_log(mask);
}

Expand Down
12 changes: 10 additions & 2 deletions util/log.c
Expand Up @@ -42,8 +42,10 @@ void qemu_log(const char *fmt, ...)
va_end(ap);
}

static bool log_uses_own_buffers;

/* enable or disable low levels log */
void do_qemu_set_log(int log_flags, bool use_own_buffers)
void qemu_set_log(int log_flags)
{
qemu_loglevel = log_flags;
#ifdef CONFIG_TRACE_LOG
Expand All @@ -70,7 +72,7 @@ void do_qemu_set_log(int log_flags, bool use_own_buffers)
qemu_logfile = stderr;
}
/* must avoid mmap() usage of glibc by setting a buffer "by hand" */
if (use_own_buffers) {
if (log_uses_own_buffers) {
static char logfile_buf[4096];

setvbuf(qemu_logfile, logfile_buf, _IOLBF, sizeof(logfile_buf));
Expand All @@ -89,6 +91,12 @@ void do_qemu_set_log(int log_flags, bool use_own_buffers)
qemu_log_close();
}
}

void qemu_log_needs_buffers(void)
{
log_uses_own_buffers = true;
}

/*
* Allow the user to include %d in their logfile which will be
* substituted with the current PID. This is useful for debugging many
Expand Down

0 comments on commit f2937a3

Please sign in to comment.