diff options
| author | Tor Aamodt <[email protected]> | 2010-07-17 10:29:05 -0800 |
|---|---|---|
| committer | Tor Aamodt <[email protected]> | 2010-07-17 10:29:05 -0800 |
| commit | d3d0b38b90f14660ecb6243373daa921f8ae02b1 (patch) | |
| tree | 9211056ccf334f37babafcecc662400bc42d278b /src/cuda-sim/memory.h | |
| parent | 9b43d5685c269331ea6d15fe3ed0dade063a798a (diff) | |
integrating Wilson's bugfixes from release branch
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6869]
Diffstat (limited to 'src/cuda-sim/memory.h')
| -rw-r--r-- | src/cuda-sim/memory.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/cuda-sim/memory.h b/src/cuda-sim/memory.h index 1ea3efe..78e7db7 100644 --- a/src/cuda-sim/memory.h +++ b/src/cuda-sim/memory.h @@ -83,6 +83,7 @@ #include <assert.h> #include <string.h> +#include <stdio.h> #include <string> #include "../abstract_hardware_model.h" @@ -118,6 +119,20 @@ public: memcpy(data,m_data+offset,length); } + void print( const char *format, FILE *fout ) const + { + unsigned int *i_data = (unsigned int*)m_data; + for (int d = 0; d < (BSIZE / sizeof(unsigned int)); d++) { + if (d % 8 == 0) { + fprintf(fout, "\n"); + } + fprintf(fout, format, i_data[d]); + fprintf(fout, " "); + } + fprintf(fout, "\n"); + fflush(fout); + } + private: unsigned m_nbytes; unsigned char *m_data; @@ -128,7 +143,8 @@ class memory_space public: virtual ~memory_space() {} virtual void write( mem_addr_t addr, size_t length, const void *data ) = 0; - virtual void read( mem_addr_t addr, size_t length, void *data ) const = 0;; + virtual void read( mem_addr_t addr, size_t length, void *data ) const = 0; + virtual void print( const char *format, FILE *fout ) const = 0; }; template<unsigned BSIZE> class memory_space_impl : public memory_space { @@ -137,6 +153,7 @@ public: virtual void write( mem_addr_t addr, size_t length, const void *data ); virtual void read( mem_addr_t addr, size_t length, void *data ) const; + virtual void print( const char *format, FILE *fout ) const; private: std::string m_name; |
