more portable
authorNathan Binkert <binkertn@umich.edu>
Sat, 4 Jun 2005 18:16:04 +0000 (14:16 -0400)
committerNathan Binkert <binkertn@umich.edu>
Sat, 4 Jun 2005 18:16:04 +0000 (14:16 -0400)
arch/alpha/alpha_tru64_process.cc:
    Sort #includes
    Make code more portable. g++ doesn't seem to always like
    struct ::stat (and others). So, we typedef stat outside of
    the namespace as something else and use the typedef
base/hostinfo.cc:
    use snprintf to quell warning
base/inifile.cc:
    use strncpy to quell warning
base/stats/events.cc:
    don't use strcpy
cpu/beta_cpu/btb.cc:
    use FloorLog2 instead of log2
cpu/beta_cpu/comm.hh:
cpu/beta_cpu/inst_queue.hh:
cpu/beta_cpu/sat_counter.hh:
    use sim/host.hh instead of stdint.h

--HG--
extra : convert_revision : 59bd9235dda74e72a8b6a70b3f3a981840384f3f

arch/alpha/alpha_tru64_process.cc
base/hostinfo.cc
base/inifile.cc
base/stats/events.cc
cpu/beta_cpu/btb.cc
cpu/beta_cpu/comm.hh
cpu/beta_cpu/inst_queue.hh
cpu/beta_cpu/sat_counter.hh

index 6fe4290e8124034dab8b2a53bcf8789c9fe8de04..4d73e711f2b5d74ec0ff0ca9bf023033288b962b 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>     // for host open() flags
 #include <sys/types.h>
 #include <sys/stat.h>
+#if defined(__OpenBSD__)
+#include <sys/param.h>
+#include <sys/mount.h>
+#else
 #include <sys/statfs.h>
-#include <string.h>    // for memset()
+#endif
+
 #include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>     // for host open() flags
+#include <string.h>    // for memset()
+#include <unistd.h>
 
-#include "sim/host.hh"
+#include "arch/alpha/alpha_common_syscall_emul.hh"
+#include "arch/alpha/alpha_tru64_process.hh"
+#include "base/trace.hh"
 #include "cpu/base_cpu.hh"
-#include "mem/functional_mem/functional_memory.hh"
-#include "sim/process.hh"
 #include "cpu/exec_context.hh"
+#include "mem/functional_mem/functional_memory.hh"
 #include "sim/fake_syscall.hh"
-
-#include "arch/alpha/alpha_common_syscall_emul.hh"
-#include "arch/alpha/alpha_tru64_process.hh"
-
+#include "sim/host.hh"
+#include "sim/process.hh"
+#include "sim/root.hh"
 #include "sim/syscall_emul.hh"
-#include "sim/root.hh" // for curTick & ticksPerSecond
-
-#include "base/trace.hh"
 
 using namespace std;
 
+typedef struct stat global_stat;
+typedef struct statfs global_statfs;
+typedef struct dirent global_dirent;
+
 ///
 /// This class encapsulates the types, structures, constants,
 /// functions, and syscall-number mappings specific to the Alpha Tru64
@@ -530,7 +537,7 @@ class Tru64 {
     /// memory space.  Used by stat(), fstat(), and lstat().
     template <class T>
     static void
-    copyOutStatBuf(FunctionalMemory *mem, Addr addr, struct ::stat *host)
+    copyOutStatBuf(FunctionalMemory *mem, Addr addr, global_stat *host)
     {
         TypedBufferArg<T> tgt(addr);
 
@@ -556,11 +563,15 @@ class Tru64 {
     /// memory space.  Used by statfs() and fstatfs().
     template <class T>
     static void
-    copyOutStatfsBuf(FunctionalMemory *mem, Addr addr, struct ::statfs *host)
+    copyOutStatfsBuf(FunctionalMemory *mem, Addr addr, global_statfs *host)
     {
         TypedBufferArg<T> tgt(addr);
 
+#if defined(__OpenBSD__)
+        tgt->f_type = 0;
+#else
         tgt->f_type = host->f_type;
+#endif
         tgt->f_bsize = host->f_bsize;
         tgt->f_blocks = host->f_blocks;
         tgt->f_bfree = host->f_bfree;
@@ -575,13 +586,13 @@ class Tru64 {
     class F64 {
       public:
         static void copyOutStatBuf(FunctionalMemory *mem, Addr addr,
-                                   struct ::stat *host)
+                                   global_stat *host)
         {
             Tru64::copyOutStatBuf<Tru64::F64_stat>(mem, addr, host);
         }
 
         static void copyOutStatfsBuf(FunctionalMemory *mem, Addr addr,
-                                     struct ::statfs *host)
+                                     global_statfs *host)
         {
             Tru64::copyOutStatfsBuf<Tru64::F64_statfs>(mem, addr, host);
         }
@@ -590,13 +601,13 @@ class Tru64 {
     class PreF64 {
       public:
         static void copyOutStatBuf(FunctionalMemory *mem, Addr addr,
-                                   struct ::stat *host)
+                                   global_stat *host)
         {
             Tru64::copyOutStatBuf<Tru64::pre_F64_stat>(mem, addr, host);
         }
 
         static void copyOutStatfsBuf(FunctionalMemory *mem, Addr addr,
-                                     struct ::statfs *host)
+                                     global_statfs *host)
         {
             Tru64::copyOutStatfsBuf<Tru64::pre_F64_statfs>(mem, addr, host);
         }
@@ -826,7 +837,7 @@ class Tru64 {
         char *host_buf_ptr = host_buf;
         char *host_buf_end = host_buf + host_result;
         while (host_buf_ptr < host_buf_end) {
-            struct ::dirent *host_dp = (struct ::dirent *)host_buf_ptr;
+            global_dirent *host_dp = (global_dirent *)host_buf_ptr;
             int namelen = strlen(host_dp->d_name);
 
             // Actual size includes padded string rounded up for alignment.
index cb5c04efcf473105bf7eee164962a39a4717f8eb..6d07c957ef9c25ef3b7c0f8e83f73cc5a8171062 100644 (file)
@@ -70,7 +70,7 @@ procInfo(char *filename, char *target)
     while (fp && !feof(fp) && !done) {
         if (fgets(line, 80, fp)) {
             if (strncmp(line, target, strlen(target)) == 0) {
-                sprintf(format, "%s %%lld", target);
+                snprintf(format, sizeof(format), "%s %%lld", target);
                 sscanf(line, format, &usage);
 
                 fclose(fp);
index 862e4082f805c333c93920a985f0ba2e74cd7ccf..cbb506c8bdad768b89e2ab27ffdf1acb777128c7 100644 (file)
@@ -79,7 +79,8 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
 
     tmpf.close();
 
-    char *cfile = strcpy(new char[file.size() + 1], file.c_str());
+    char *cfile = strncpy(new char[file.size() + 1], file.c_str(),
+                          file.size());
     char *dir = dirname(cfile);
     char *dir_arg = NULL;
     if (*dir != '.') {
@@ -87,7 +88,7 @@ IniFile::loadCPP(const string &file, vector<char *> &cppArgs)
         arg += dir;
 
         dir_arg = new char[arg.size() + 1];
-        strcpy(dir_arg, arg.c_str());
+        strncpy(dir_arg, arg.c_str(), arg.size());
     }
 
     delete [] cfile;
index dd7ec2ccf81f9f16a315c3573b52f501e9733719..e083cf0da49413b97f1464583063d3a1662d0603 100644 (file)
@@ -140,6 +140,10 @@ InsertEvent::insert(const string &stat)
 void
 InsertEvent::flush()
 {
+    static const char query_header[] = "INSERT INTO "
+        "events(ev_event, ev_run, ev_tick)"
+        "values";
+
     if (size) {
         MySQL::Connection &mysql = MySqlDB.conn();
         assert(mysql.connected());
@@ -147,12 +151,9 @@ InsertEvent::flush()
     }
 
     query[0] = '\0';
-    size = 0;
+    size = sizeof(query_header);
     first = true;
-    strcpy(query, "INSERT INTO "
-           "events(ev_event, ev_run, ev_tick)"
-           "values");
-    size = strlen(query);
+    memcpy(query, query_header, size);
 }
 
 void
index 65b7fffa4217b764530217d14d32d45c2333fa87..92864dbaa518e27b089779a1099daf212d9e999b 100644 (file)
@@ -26,8 +26,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <math.h>
-
+#include "base/intmath.hh"
 #include "base/trace.hh"
 #include "cpu/beta_cpu/btb.hh"
 
@@ -53,7 +52,7 @@ DefaultBTB::DefaultBTB(unsigned _numEntries,
 
     tagMask = (1 << tagBits) - 1;
 
-    tagShiftAmt = instShiftAmt + (int)log2(numEntries);
+    tagShiftAmt = instShiftAmt + FloorLog2(numEntries);
 }
 
 inline
index 61660d39ff7ee7bbb3e6dcd7bd3b200c1fd873c4..475ab8df8a25d5cf33f9a08a0ba2c4cdee4c7eed 100644 (file)
 #ifndef __CPU_BETA_CPU_COMM_HH__
 #define __CPU_BETA_CPU_COMM_HH__
 
-#include <stdint.h>
 #include <vector>
 
 #include "arch/alpha/isa_traits.hh"
 #include "cpu/inst_seq.hh"
+#include "sim/host.hh"
 
 // Find better place to put this typedef.
 // The impl might be the best place for this.
index 7d726c27f341eea1cb5c2c532bbd1580796764ba..02dc1222dbc63c2a88cf55c9503cb015de051721 100644 (file)
 #include <list>
 #include <map>
 #include <queue>
-#include <stdint.h>
 #include <vector>
 
 #include "base/statistics.hh"
 #include "base/timebuf.hh"
 #include "cpu/inst_seq.hh"
+#include "sim/host.hh"
 
 /**
  * A standard instruction queue class.  It holds ready instructions, in
index 5b32774cc9c9101970ddecd53865b876449110a7..5455ca56a87c8b835e0abb50344687bc1bd04cb1 100644 (file)
@@ -29,7 +29,7 @@
 #ifndef __CPU_BETA_CPU_SAT_COUNTER_HH__
 #define __CPU_BETA_CPU_SAT_COUNTER_HH__
 
-#include <stdint.h>
+#include "sim/host.hh"
 
 /**
  * Private counter class for the internal saturating counters.