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: Jia Liu
Subject: Re: [Qemu-devel] [PATCH] linux-user: Fix target_stat and target_stat64 for OpenRISC
Date: Fri, 19 Jul 2013 08:25:18 +0800

Hi Peter,

On Thu, Jul 18, 2013 at 6:18 PM, Peter Maydell <address@hidden> wrote:
> Ping?
>

Thank you, it looks good to me, please push it.

> 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
>>
>>

Regards,
Jia



reply via email to

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