qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] linux-user: Fix target_stat and target_stat64 f


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] linux-user: Fix target_stat and target_stat64 for OpenRISC
Date: Thu, 18 Jul 2013 11:18:14 +0100

Ping?

thanks
-- PMM

On 6 July 2013 21:44, Peter Maydell <address@hidden> wrote:
> OpenRISC uses the asm-generic versions of target_stat and
> target_stat64, but it was incorrectly using the x86/ARM/etc version
> due to a misplaced defined(TARGET_OPENRISC).  The previously unused
> OpenRISC section of the ifdef ladder also defined an incorrect
> target_stat and omitted the target_stat64 definition.  Fix
> target_stat, provide target_stat64, and add a comment noting that
> these are the asm-generic versions for the benefit of future ports.
>
> Signed-off-by: Peter Maydell <address@hidden>
> ---
> This fixes basic problems like "ls -l output is nonsense" and "shell
> thinks programs aren't executable and won't run them".
>
>  linux-user/syscall_defs.h |   49 
> ++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 37 insertions(+), 12 deletions(-)
>
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 92c01a9..cb6341f 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -1138,8 +1138,7 @@ struct target_winsize {
>  #endif
>
>  #if (defined(TARGET_I386) && defined(TARGET_ABI32)) || defined(TARGET_ARM) \
> -    || defined(TARGET_CRIS) || defined(TARGET_UNICORE32) \
> -    || defined(TARGET_OPENRISC)
> +    || defined(TARGET_CRIS) || defined(TARGET_UNICORE32)
>  struct target_stat {
>         unsigned short st_dev;
>         unsigned short __pad1;
> @@ -1837,29 +1836,55 @@ struct target_stat {
>      abi_ulong  __unused[3];
>  };
>  #elif defined(TARGET_OPENRISC)
> +
> +/* These are the asm-generic versions of the stat and stat64 structures */
> +
>  struct target_stat {
>      abi_ulong st_dev;
>      abi_ulong st_ino;
> -    abi_ulong st_nlink;
> -
>      unsigned int st_mode;
> +    unsigned int st_nlink;
>      unsigned int st_uid;
>      unsigned int st_gid;
> -    unsigned int __pad0;
>      abi_ulong st_rdev;
> +    abi_ulong __pad1;
>      abi_long st_size;
> -    abi_long st_blksize;
> -    abi_long st_blocks;    /* Number 512-byte blocks allocated. */
> -
> -    abi_ulong target_st_atime;
> +    int st_blksize;
> +    int __pad2;
> +    abi_long st_blocks;
> +    abi_long target_st_atime;
>      abi_ulong target_st_atime_nsec;
> -    abi_ulong target_st_mtime;
> +    abi_long target_st_mtime;
>      abi_ulong target_st_mtime_nsec;
> -    abi_ulong target_st_ctime;
> +    abi_long target_st_ctime;
>      abi_ulong target_st_ctime_nsec;
> +    unsigned int __unused4;
> +    unsigned int __unused5;
> +};
>
> -    abi_long __unused[3];
> +struct target_stat64 {
> +    uint64_t st_dev;
> +    uint64_t st_ino;
> +    unsigned int st_mode;
> +    unsigned int st_nlink;
> +    unsigned int st_uid;
> +    unsigned int st_gid;
> +    uint64_t st_rdev;
> +    uint64_t __pad1;
> +    int64_t st_size;
> +    int st_blksize;
> +    int __pad2;
> +    int64_t st_blocks;
> +    int target_st_atime;
> +    unsigned int target_st_atime_nsec;
> +    int target_st_mtime;
> +    unsigned int target_st_mtime_nsec;
> +    int target_st_ctime;
> +    unsigned int target_st_ctime_nsec;
> +    unsigned int __unused4;
> +    unsigned int __unused5;
>  };
> +
>  #else
>  #error unsupported CPU
>  #endif
> --
> 1.7.9.5
>
>



reply via email to

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