Richard Henderson <richard.hender...@linaro.org> writes:
> Move QemuLogFile, qemu_logfile, and all inline functions into qemu/log.c. > No need to expose these implementation details in the api. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> > --- > include/qemu/log.h | 38 ++++---------------------------------- > tests/unit/test-logging.c | 1 + > util/log.c | 30 +++++++++++++++++++++++++++++- > 3 files changed, 34 insertions(+), 35 deletions(-) > > diff --git a/include/qemu/log.h b/include/qemu/log.h > index 75973111bb..42d545f77a 100644 > --- a/include/qemu/log.h > +++ b/include/qemu/log.h > @@ -3,46 +3,16 @@ > > /* A small part of this API is split into its own header */ > #include "qemu/log-for-trace.h" > -#include "qemu/rcu.h" > - > -typedef struct QemuLogFile { > - struct rcu_head rcu; > - FILE *fd; > -} QemuLogFile; > - > -/* Private global variable, don't use */ > -extern QemuLogFile *qemu_logfile; > - > > /* > * The new API: > - * > */ > > -/* Log settings checking macros: */ > +/* Returns true if qemu_log() will really write somewhere. */ > +bool qemu_log_enabled(void); > > -/* Returns true if qemu_log() will really write somewhere > - */ > -static inline bool qemu_log_enabled(void) > -{ > - return qemu_logfile != NULL; > -} > - > -/* Returns true if qemu_log() will write somewhere else than stderr > - */ > -static inline bool qemu_log_separate(void) > -{ > - QemuLogFile *logfile; > - bool res = false; > - > - rcu_read_lock(); > - logfile = qatomic_rcu_read(&qemu_logfile); > - if (logfile && logfile->fd != stderr) { > - res = true; > - } > - rcu_read_unlock(); > - return res; > -} > +/* Returns true if qemu_log() will write somewhere other than stderr. */ > +bool qemu_log_separate(void); > > #define CPU_LOG_TB_OUT_ASM (1 << 0) > #define CPU_LOG_TB_IN_ASM (1 << 1) > diff --git a/tests/unit/test-logging.c b/tests/unit/test-logging.c > index dcb8ac70df..9b87af75af 100644 > --- a/tests/unit/test-logging.c > +++ b/tests/unit/test-logging.c > @@ -30,6 +30,7 @@ > #include "qemu-common.h" > #include "qapi/error.h" > #include "qemu/log.h" > +#include "qemu/rcu.h" > > static void test_parse_range(void) > { > diff --git a/util/log.c b/util/log.c > index caa38e707b..8b8b6a5d83 100644 > --- a/util/log.c > +++ b/util/log.c > @@ -26,14 +26,42 @@ > #include "trace/control.h" > #include "qemu/thread.h" > #include "qemu/lockable.h" > +#include "qemu/rcu.h" > + > + > +typedef struct QemuLogFile { > + struct rcu_head rcu; > + FILE *fd; > +} QemuLogFile; > > static char *logfilename; > static QemuMutex qemu_logfile_mutex; > -QemuLogFile *qemu_logfile; > +static QemuLogFile *qemu_logfile; > int qemu_loglevel; > static int log_append = 0; > static GArray *debug_regions; > > +/* Returns true if qemu_log() will really write somewhere. */ > +bool qemu_log_enabled(void) > +{ > + return qemu_logfile != NULL; > +} > + > +/* Returns true if qemu_log() will write somewhere other than stderr. */ > +bool qemu_log_separate(void) > +{ > + QemuLogFile *logfile; > + bool res = false; > + > + rcu_read_lock(); > + logfile = qatomic_rcu_read(&qemu_logfile); > + if (logfile && logfile->fd != stderr) { > + res = true; > + } > + rcu_read_unlock(); > + return res; > +} > + > /* Lock/unlock output. */ > > FILE *qemu_log_trylock(void) -- Alex Bennée