mirror of https://gitee.com/openkylin/qemu.git
linux-user: Fix target_stat and target_stat64 for OpenRISC
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. Reviewed-by: Jia Liu <proljc@gmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
885a73f72b
commit
c7819dfbd2
|
@ -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;
|
||||
|
||||
abi_long __unused[3];
|
||||
unsigned int __unused4;
|
||||
unsigned int __unused5;
|
||||
};
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue