On Fri, Aug 22, 2025 at 3:28 PM Paolo Bonzini <pbonz...@redhat.com> wrote:
>
> Bindgen makes the LOG_* constants unsigned, even if they are defined as
> (1 << 15):
>
>    pub const LOG_TRACE: u32 = 32768;
>
> Make them unsigned in C as well, and also change the type of the variable
> that they are used with.
>
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
> ---

Reviewed-by: Manos Pitsidianakis <manos.pitsidiana...@linaro.org>

>  include/qemu/log-for-trace.h |  4 ++--
>  include/qemu/log.h           | 44 ++++++++++++++++++------------------
>  util/log.c                   |  2 +-
>  rust/qemu-api/src/log.rs     |  2 +-
>  4 files changed, 26 insertions(+), 26 deletions(-)
>
> diff --git a/include/qemu/log-for-trace.h b/include/qemu/log-for-trace.h
> index d47c9cd4462..f3a8791f1d4 100644
> --- a/include/qemu/log-for-trace.h
> +++ b/include/qemu/log-for-trace.h
> @@ -19,9 +19,9 @@
>  #define QEMU_LOG_FOR_TRACE_H
>
>  /* Private global variable, don't use */
> -extern int qemu_loglevel;
> +extern unsigned qemu_loglevel;
>
> -#define LOG_TRACE          (1 << 15)
> +#define LOG_TRACE          (1u << 15)
>
>  /* Returns true if a bit is set in the current loglevel mask */
>  static inline bool qemu_loglevel_mask(int mask)
> diff --git a/include/qemu/log.h b/include/qemu/log.h
> index aae72985f0d..7effba4da4c 100644
> --- a/include/qemu/log.h
> +++ b/include/qemu/log.h
> @@ -14,30 +14,30 @@ bool qemu_log_enabled(void);
>  /* 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)
> -#define CPU_LOG_TB_OP      (1 << 2)
> -#define CPU_LOG_TB_OP_OPT  (1 << 3)
> -#define CPU_LOG_INT        (1 << 4)
> -#define CPU_LOG_EXEC       (1 << 5)
> -#define CPU_LOG_PCALL      (1 << 6)
> -#define CPU_LOG_TB_CPU     (1 << 8)
> -#define CPU_LOG_RESET      (1 << 9)
> -#define LOG_UNIMP          (1 << 10)
> -#define LOG_GUEST_ERROR    (1 << 11)
> -#define CPU_LOG_MMU        (1 << 12)
> -#define CPU_LOG_TB_NOCHAIN (1 << 13)
> -#define CPU_LOG_PAGE       (1 << 14)
> +#define CPU_LOG_TB_OUT_ASM (1u << 0)
> +#define CPU_LOG_TB_IN_ASM  (1u << 1)
> +#define CPU_LOG_TB_OP      (1u << 2)
> +#define CPU_LOG_TB_OP_OPT  (1u << 3)
> +#define CPU_LOG_INT        (1u << 4)
> +#define CPU_LOG_EXEC       (1u << 5)
> +#define CPU_LOG_PCALL      (1u << 6)
> +#define CPU_LOG_TB_CPU     (1u << 8)
> +#define CPU_LOG_RESET      (1u << 9)
> +#define LOG_UNIMP          (1u << 10)
> +#define LOG_GUEST_ERROR    (1u << 11)
> +#define CPU_LOG_MMU        (1u << 12)
> +#define CPU_LOG_TB_NOCHAIN (1u << 13)
> +#define CPU_LOG_PAGE       (1u << 14)
>  /* LOG_TRACE (1 << 15) is defined in log-for-trace.h */
> -#define CPU_LOG_TB_OP_IND  (1 << 16)
> -#define CPU_LOG_TB_FPU     (1 << 17)
> -#define CPU_LOG_PLUGIN     (1 << 18)
> +#define CPU_LOG_TB_OP_IND  (1u << 16)
> +#define CPU_LOG_TB_FPU     (1u << 17)
> +#define CPU_LOG_PLUGIN     (1u << 18)
>  /* LOG_STRACE is used for user-mode strace logging. */
> -#define LOG_STRACE         (1 << 19)
> -#define LOG_PER_THREAD     (1 << 20)
> -#define CPU_LOG_TB_VPU     (1 << 21)
> -#define LOG_TB_OP_PLUGIN   (1 << 22)
> -#define LOG_INVALID_MEM    (1 << 23)
> +#define LOG_STRACE         (1u << 19)
> +#define LOG_PER_THREAD     (1u << 20)
> +#define CPU_LOG_TB_VPU     (1u << 21)
> +#define LOG_TB_OP_PLUGIN   (1u << 22)
> +#define LOG_INVALID_MEM    (1u << 23)
>
>  /* Lock/unlock output. */
>
> diff --git a/util/log.c b/util/log.c
> index abdcb6b3111..41f78ce86b2 100644
> --- a/util/log.c
> +++ b/util/log.c
> @@ -44,7 +44,7 @@ static FILE *global_file;
>  static __thread FILE *thread_file;
>  static __thread Notifier qemu_log_thread_cleanup_notifier;
>
> -int qemu_loglevel;
> +unsigned qemu_loglevel;
>  static bool log_per_thread;
>  static GArray *debug_regions;
>
> diff --git a/rust/qemu-api/src/log.rs b/rust/qemu-api/src/log.rs
> index a441b8c1f2e..fe43e30104c 100644
> --- a/rust/qemu-api/src/log.rs
> +++ b/rust/qemu-api/src/log.rs
> @@ -140,7 +140,7 @@ macro_rules! log_mask_ln {
>          let _: Log = $mask;
>
>          if unsafe {
> -            (::qemu_api::bindings::qemu_loglevel & ($mask as 
> std::os::raw::c_int)) != 0
> +            (::qemu_api::bindings::qemu_loglevel & ($mask as 
> std::os::raw::c_uint)) != 0
>          } {
>              _ = ::qemu_api::log::LogGuard::log_fmt(
>                  format_args!("{}\n", format_args!($fmt $($args)*)));
> --
> 2.50.1
>
>

Reply via email to