qemu_log_lock/unlock now preserves the qemu_logfile handle.

qemu_log_lock() now returns a handle and qemu_log_unlock() receives a
handle to unlock.  This allows for changing the handle during logging
and ensures the lock() and unlock() are for the same file.

Also in target/tilegx/translate.c removed the qemu_log_lock()/unlock()
calls (and the log("\n")), since the translator can longjmp out of the
loop if it attempts to translate an instruction in an inaccessible page.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20191118211528.3221-5-robert.foley@linaro.org>
This commit is contained in:
Robert Foley 2019-11-18 16:15:26 -05:00 committed by Alex Bennée
parent b8121fe7c0
commit fc59d2d870
15 changed files with 39 additions and 42 deletions

View file

@ -53,14 +53,17 @@ static inline bool qemu_log_separate(void)
* qemu_loglevel is never set when qemu_logfile is unset.
*/
static inline void qemu_log_lock(void)
static inline FILE *qemu_log_lock(void)
{
qemu_flockfile(qemu_logfile);
return logfile->fd;
}
static inline void qemu_log_unlock(void)
static inline void qemu_log_unlock(FILE *fd)
{
qemu_funlockfile(qemu_logfile);
if (fd) {
qemu_funlockfile(fd);
}
}
/* Logging functions: */