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