POWER: Add support for the Power ISA
[gem5.git] / src / arch / sparc / linux / linux.hh
index fefd27197ba95ae4b3927fa2ea5c3d704468c481..1f7567d43da334d941bc75aebfe65e7c973b1d3f 100644 (file)
@@ -58,25 +58,85 @@ class SparcLinux : public Linux
 
     static OpenFlagTransTable openFlagTable[];
 
-    static const int TGT_O_RDONLY      = 0x00000000;   //!< O_RDONLY
-    static const int TGT_O_WRONLY      = 0x00000001;   //!< O_WRONLY
-    static const int TGT_O_RDWR                = 0x00000002;   //!< O_RDWR
-    static const int TGT_O_NONBLOCK     = 0x00004000;  //!< O_NONBLOCK
-    static const int TGT_O_APPEND      = 0x00000008;   //!< O_APPEND
-    static const int TGT_O_CREAT       = 0x00000200;   //!< O_CREAT
-    static const int TGT_O_TRUNC       = 0x00000400;   //!< O_TRUNC
-    static const int TGT_O_EXCL                = 0x00000800;   //!< O_EXCL
-    static const int TGT_O_NOCTTY      = 0x00008000;   //!< O_NOCTTY
-    static const int TGT_O_SYNC                = 0x00002000;   //!< O_SYNC
-//    static const int TGT_O_DRD               = 0x00010000;   //!< O_DRD
-//    static const int TGT_O_DIRECTIO     = 0x00020000;        //!< O_DIRECTIO
-//    static const int TGT_O_CACHE     = 0x00002000;   //!< O_CACHE
-//    static const int TGT_O_DSYNC     = 0x00008000;   //!< O_DSYNC
-//    static const int TGT_O_RSYNC     = 0x00040000;   //!< O_RSYNC
+    static const int TGT_O_RDONLY       = 0x00000000;   //!< O_RDONLY
+    static const int TGT_O_WRONLY       = 0x00000001;   //!< O_WRONLY
+    static const int TGT_O_RDWR         = 0x00000002;   //!< O_RDWR
+    static const int TGT_O_NONBLOCK     = 0x00004000;   //!< O_NONBLOCK
+    static const int TGT_O_APPEND       = 0x00000008;   //!< O_APPEND
+    static const int TGT_O_CREAT        = 0x00000200;   //!< O_CREAT
+    static const int TGT_O_TRUNC        = 0x00000400;   //!< O_TRUNC
+    static const int TGT_O_EXCL         = 0x00000800;   //!< O_EXCL
+    static const int TGT_O_NOCTTY       = 0x00008000;   //!< O_NOCTTY
+    static const int TGT_O_SYNC         = 0x00002000;   //!< O_SYNC
+//    static const int TGT_O_DRD        = 0x00010000;   //!< O_DRD
+//    static const int TGT_O_DIRECTIO   = 0x00020000;   //!< O_DIRECTIO
+//    static const int TGT_O_CACHE      = 0x00002000;   //!< O_CACHE
+//    static const int TGT_O_DSYNC      = 0x00008000;   //!< O_DSYNC
+//    static const int TGT_O_RSYNC      = 0x00040000;   //!< O_RSYNC
 
     static const int NUM_OPEN_FLAGS;
 
     static const unsigned TGT_MAP_ANONYMOUS = 0x20;
+   
+    typedef struct {   
+        int64_t  uptime;    /* Seconds since boot */
+        uint64_t loads[3];  /* 1, 5, and 15 minute load averages */
+        uint64_t totalram;  /* Total usable main memory size */
+        uint64_t freeram;   /* Available memory size */
+        uint64_t sharedram; /* Amount of shared memory */
+        uint64_t bufferram; /* Memory used by buffers */
+        uint64_t totalswap; /* Total swap space size */
+        uint64_t freeswap;  /* swap space still available */
+        uint16_t procs;     /* Number of current processes */
+        uint64_t totalhigh; /* Total high memory size */
+        uint64_t freehigh;  /* Available high memory size */
+        uint64_t mem_unit;  /* Memory unit size in bytes */
+    } tgt_sysinfo;
+
+};
+
+class Sparc32Linux : public SparcLinux
+{
+  public:
+
+    typedef struct {
+        uint64_t st_dev;
+        uint64_t st_ino;
+        uint32_t st_mode;
+        uint32_t st_nlink;
+        uint32_t st_uid;
+        uint32_t st_gid;
+        uint64_t st_rdev;
+        uint8_t __pad3[8];
+        int64_t st_size;
+        int32_t st_blksize;
+        uint8_t __pad4[8];
+        int64_t st_blocks;
+        uint64_t st_atimeX;
+        uint64_t st_atime_nsec;
+        uint64_t st_mtimeX;
+        uint64_t st_mtime_nsec;
+        uint64_t st_ctimeX;
+        uint64_t st_ctime_nsec;
+        uint32_t __unused4;
+        uint32_t __unused5;
+    } tgt_stat64;
+      
+    typedef struct {
+        int32_t  uptime;    /* Seconds since boot */
+        uint32_t loads[3];  /* 1, 5, and 15 minute load averages */
+        uint32_t totalram;  /* Total usable main memory size */
+        uint32_t freeram;   /* Available memory size */
+        uint32_t sharedram; /* Amount of shared memory */
+        uint32_t bufferram; /* Memory used by buffers */
+        uint32_t totalswap; /* Total swap space size */
+        uint32_t freeswap;  /* swap space still available */
+        uint16_t procs;     /* Number of current processes */
+        uint32_t totalhigh; /* Total high memory size */
+        uint32_t freehigh;  /* Available high memory size */
+        uint32_t mem_unit;  /* Memory unit size in bytes */
+    } tgt_sysinfo;   
+
 };
 
 #endif