summaryrefslogtreecommitdiff
path: root/src/arch/x86/linux/linux.hh
diff options
context:
space:
mode:
authorVince Weaver <vince@csl.cornell.edu>2009-10-20 15:15:37 -0400
committerVince Weaver <vince@csl.cornell.edu>2009-10-20 15:15:37 -0400
commit776f9405fa0e58ea5ca0354cd233ebb2603bddbf (patch)
tree3160e90596d9ea0e9fbf08bfea8099ddcd9ae798 /src/arch/x86/linux/linux.hh
parent2b232e11a8395c90e792fe743fc681bb3abfb16f (diff)
downloadgem5-776f9405fa0e58ea5ca0354cd233ebb2603bddbf.tar.xz
Fix stat64 structure on 32-bit X86_SE
The st_size entry was in the wrong place (see linux-2.6.29/arch/x86/include/asm/stat.h ) Also, the packed attribute is needed when compiling on a 64-bit machine, otherwise gcc adds extra padding that break the layout of the structure.
Diffstat (limited to 'src/arch/x86/linux/linux.hh')
-rw-r--r--src/arch/x86/linux/linux.hh4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86/linux/linux.hh b/src/arch/x86/linux/linux.hh
index a810d4a79..238b5e683 100644
--- a/src/arch/x86/linux/linux.hh
+++ b/src/arch/x86/linux/linux.hh
@@ -142,8 +142,8 @@ class X86Linux32 : public Linux
uint32_t st_uid;
uint32_t st_gid;
uint64_t st_rdev;
- int64_t st_size;
uint8_t __pad3[4];
+ int64_t st_size;
uint32_t st_blksize;
uint64_t st_blocks;
uint32_t st_atimeX;
@@ -153,7 +153,7 @@ class X86Linux32 : public Linux
uint32_t st_ctimeX;
uint32_t st_ctime_nsec;
uint64_t st_ino;
- } tgt_stat64;
+ } __attribute__((__packed__)) tgt_stat64;
static OpenFlagTransTable openFlagTable[];