qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3] Introduce format string for pid_t


From: Blue Swirl
Subject: Re: [Qemu-devel] [PATCH v3] Introduce format string for pid_t
Date: Wed, 15 Jun 2011 23:26:53 +0300

Thanks, applied.

On Thu, Jun 2, 2011 at 8:58 PM, Andreas Färber <address@hidden> wrote:
> BeOS and Haiku on i386 use long for 32-bit types, including pid_t.
> Using %d with pid_t therefore results in a warning.
>
> Unfortunately POSIX:2008 does not define a PRId* string for pid_t.
>
> In some places pid_t was previously casted to long and %ld hardcoded.
> The predecessor of this patch added another upcast for the simpletrace
> filename but was not applied to date.
>
> Since new uses of pid_t with %d keep creeping in, let's instead define
> an OS-dependent format string and use that consistently.
>
> Cc: Stefan Hajnoczi <address@hidden>
> Cc: Blue Swirl <address@hidden>
> Cc: Ingo Weinhold <address@hidden>
> Cc: Gleb Natapov <address@hidden>
> Signed-off-by: Andreas Färber <address@hidden>
> ---
>  v2: Use %ld and long instead of %lu for Haiku for x86_64 compatibility.
>
>  configure  |    2 +-
>  os-posix.c |    2 +-
>  os-win32.c |    2 +-
>  osdep.h    |    6 ++++++
>  vl.c       |    2 +-
>  5 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/configure b/configure
> index a318d37..0f2b6bf 100755
> --- a/configure
> +++ b/configure
> @@ -3037,7 +3037,7 @@ if test "$trace_backend" = "simple"; then
>  fi
>  # Set the appropriate trace file.
>  if test "$trace_backend" = "simple"; then
> -  trace_file="\"$trace_file-%u\""
> +  trace_file="\"$trace_file-\" FMT_pid"
>  fi
>  if test "$trace_backend" = "dtrace" -a "$trace_backend_stap" = "yes" ; then
>   echo "CONFIG_SYSTEMTAP_TRACE=y" >> $config_host_mak
> diff --git a/os-posix.c b/os-posix.c
> index 3204197..7dfb278 100644
> --- a/os-posix.c
> +++ b/os-posix.c
> @@ -368,7 +368,7 @@ int qemu_create_pidfile(const char *filename)
>     if (lockf(fd, F_TLOCK, 0) == -1) {
>         return -1;
>     }
> -    len = snprintf(buffer, sizeof(buffer), "%ld\n", (long)getpid());
> +    len = snprintf(buffer, sizeof(buffer), FMT_pid "\n", getpid());
>     if (write(fd, buffer, len) != len) {
>         return -1;
>     }
> diff --git a/os-win32.c b/os-win32.c
> index d6d54c6..b6652af 100644
> --- a/os-win32.c
> +++ b/os-win32.c
> @@ -258,7 +258,7 @@ int qemu_create_pidfile(const char *filename)
>     if (file == INVALID_HANDLE_VALUE) {
>         return -1;
>     }
> -    len = snprintf(buffer, sizeof(buffer), "%ld\n", (long)getpid());
> +    len = snprintf(buffer, sizeof(buffer), FMT_pid "\n", getpid());
>     ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len,
>                      &overlap, NULL);
>     if (ret == 0) {
> diff --git a/osdep.h b/osdep.h
> index 970d767..97d167a 100644
> --- a/osdep.h
> +++ b/osdep.h
> @@ -127,6 +127,12 @@ void qemu_vfree(void *ptr);
>
>  int qemu_madvise(void *addr, size_t len, int advice);
>
> +#if defined(__HAIKU__) && defined(__i386__)
> +#define FMT_pid "%ld"
> +#else
> +#define FMT_pid "%d"
> +#endif
> +
>  int qemu_create_pidfile(const char *filename);
>  int qemu_get_thread_id(void);
>
> diff --git a/vl.c b/vl.c
> index b362871..b7b98f0 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1191,7 +1191,7 @@ void qemu_kill_report(void)
>              */
>             fputc('\n', stderr);
>         } else {
> -            fprintf(stderr, " from pid %d\n", shutdown_pid);
> +            fprintf(stderr, " from pid " FMT_pid "\n", shutdown_pid);
>         }
>         shutdown_signal = -1;
>     }
> --
> 1.7.5.2.317.g391b14
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]