From 9f26a3704d843116cbabc2b229180866394b5982 Mon Sep 17 00:00:00 2001
From: Stefan Weil <sw@weilnetz.de>
Date: Thu, 5 Sep 2013 22:19:32 +0200
Subject: [PATCH 5/7] sparc test

---
 linux-user/syscall_defs.h |   47 +++++++++++++++++++++++++++++++++++++--------
 1 file changed, 39 insertions(+), 8 deletions(-)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 086fbff..c05688a 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -7,6 +7,8 @@
 #ifndef SYSCALL_DEFS_H
 #define SYSCALL_DEFS_H 1
 
+//#define TARGET_SPARC xx
+//#define TARGET_SPARC64 xx
 
 #include "syscall_nr.h"
 
@@ -1249,26 +1251,55 @@ struct target_stat {
 	abi_ulong	__unused4[2];
 };
 
+#if 0
+struct stat64 {
+        __dev_t                    st_dev;               /*     0     8 */
+        short unsigned int         __pad1;               /*     8     2 */
+
+        /* XXX 6 bytes hole, try to pack */
+
+        __ino64_t                  st_ino;               /*    16     8 */
+        __mode_t                   st_mode;              /*    24     4 */
+        __nlink_t                  st_nlink;             /*    28     4 */
+        __uid_t                    st_uid;               /*    32     4 */
+        __gid_t                    st_gid;               /*    36     4 */
+        __dev_t                    st_rdev;              /*    40     8 */
+        short unsigned int         __pad2;               /*    48     2 */
+
+        /* XXX 6 bytes hole, try to pack */
+
+        __off64_t                  st_size;              /*    56     8 */
+        /* --- cacheline 1 boundary (64 bytes) --- */
+        __blksize_t                st_blksize;           /*    64     8 */
+        __blkcnt64_t               st_blocks;            /*    72     8 */
+        struct timespec            st_atim;              /*    80    16 */
+        struct timespec            st_mtim;              /*    96    16 */
+        struct timespec            st_ctim;              /*   112    16 */
+        /* --- cacheline 2 boundary (128 bytes) --- */
+        long unsigned int          __unused4;            /*   128     8 */
+        long unsigned int          __unused5;            /*   136     8 */
+#endif
+
 struct target_stat64 {
-	unsigned char	__pad0[6];
-	unsigned short	st_dev;
+	uint64_t	st_dev;
+	unsigned short	__pad1;
+	unsigned char	__hole0[6];
 
 	uint64_t	st_ino;
-	uint64_t	st_nlink;
-
 	unsigned int	st_mode;
+	unsigned int	st_nlink;
 
 	unsigned int	st_uid;
 	unsigned int	st_gid;
 
-	unsigned char	__pad2[6];
-	unsigned short	st_rdev;
+	uint64_t	st_rdev;
+	unsigned short	__pad2;
+	unsigned char	__hole1[6];
 
         int64_t		st_size;
 	int64_t		st_blksize;
 
-	unsigned char	__pad4[4];
-	unsigned int	st_blocks;
+	uint64_t	st_blocks;
 
 	abi_ulong	target_st_atime;
 	abi_ulong	__unused1;
-- 
1.7.10.4

