[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