- Whack unused code
authorNathan Binkert <binkertn@umich.edu>
Mon, 9 Feb 2004 15:49:48 +0000 (10:49 -0500)
committerNathan Binkert <binkertn@umich.edu>
Mon, 9 Feb 2004 15:49:48 +0000 (10:49 -0500)
-  Make the MemoryController use address ranges (via Range) instead
of an address and a mask

base/remote_gdb.cc:
    reflect name change
dev/alpha_access.h:
    better include
dev/alpha_console.cc:
    -  FunctionalMemory no longer takes care of mapping my address into
    the proper address space.  It must be done locally.
    -  the memory controller no longer uses a mask, but a size, and the
    size is determined by the device, not the .ini file
    -  fix up address calculations to reflect the removal of a mask
    -  PhysicalMemory::getSize() -> PhysicalMemory::size()
dev/alpha_console.hh:
    -  FunctionalMemory no longer takes care of mapping my address into
    the proper address space.  It must be done locally.
    -  the memory controller no longer uses a mask, but a size, and the
    size is determined by the device, not the .ini file
    -  fix up address calculations to reflect the removal of a mask
    -  get rid of MmapDevice and inherit from FunctionalMemory

--HG--
extra : convert_revision : e3a65c9debf6f899632d62c70781cbdc2826616b

base/remote_gdb.cc
dev/alpha_access.h
dev/alpha_console.cc
dev/alpha_console.hh

index e701b5a0148299e4aa7fc4cc6791a04f3841b16b..e20800d1217272440286e4babd734718f3f92a52 100644 (file)
@@ -338,7 +338,7 @@ RemoteGDB::acc(Addr va, size_t len)
         }
 
         if (va < ALPHA_K1SEG_BASE) {
-            if (va < (ALPHA_K0SEG_BASE + pmem->getSize())) {
+            if (va < (ALPHA_K0SEG_BASE + pmem->size())) {
                 DPRINTF(GDBAcc, "acc:   Mapping is valid  K0SEG <= "
                         "%#x < K0SEG + size\n", va);
                 return true;
index 7502635e92bf992efd742c9d0ae4cebc6a436373..40567e96fab6448cc5b9c1b6549f2bf8b3be5492 100644 (file)
@@ -36,7 +36,7 @@
 #define ALPHA_ACCESS_VERSION (1301) /* CH++*/
 
 #ifndef CONSOLE
-#include <ostream>
+#include <iosfwd>
 #include <string>
 class Checkpoint;
 #endif
index e708be5147b74bb69861d4e73ae4b39532eeb4f2..2dc939b975d75f29a6ba162572f8b79d0e22db84 100644 (file)
 
 using namespace std;
 
-AlphaConsole::AlphaConsole(const string &name, SimConsole *cons,
-                           SimpleDisk *d, int size, System *system,
-                           BaseCPU *cpu, TlaserClock *clock, int num_cpus,
-                           Addr addr, Addr mask, MemoryController *mmu)
-    : MmapDevice(name, addr, mask, mmu), disk(d), console(cons)
+AlphaConsole::AlphaConsole(const string &name, SimConsole *cons, SimpleDisk *d,
+                           System *system, BaseCPU *cpu, TlaserClock *clock,
+                           int num_cpus, MemoryController *mmu, Addr a)
+    : FunctionalMemory(name), disk(d), console(cons), addr(a)
 {
+    mmu->add_child(this, Range<Addr>(addr, addr + size));
+
     consoleData = new uint8_t[size];
     memset(consoleData, 0, size);
 
@@ -65,7 +66,7 @@ AlphaConsole::AlphaConsole(const string &name, SimConsole *cons,
 
     alphaAccess->version = ALPHA_ACCESS_VERSION;
     alphaAccess->numCPUs = num_cpus;
-    alphaAccess->mem_size = system->physmem->getSize();
+    alphaAccess->mem_size = system->physmem->size();
     alphaAccess->cpuClock = cpu->getFreq() / 1000000;
     alphaAccess->intrClockFrequency = clock->frequency();
 
@@ -78,7 +79,8 @@ AlphaConsole::read(MemReqPtr &req, uint8_t *data)
     memset(data, 0, req->size);
     uint64_t val;
 
-    Addr daddr = req->paddr & addr_mask;
+    Addr daddr = req->paddr - addr;
+
     switch (daddr) {
       case offsetof(AlphaAccess, inputChar):
         val = console->console_in();
@@ -125,7 +127,7 @@ AlphaConsole::write(MemReqPtr &req, const uint8_t *data)
         return Machine_Check_Fault;
     }
 
-    Addr daddr = req->paddr & addr_mask;
+    Addr daddr = req->paddr - addr;
     ExecContext *other_xc;
 
     switch (daddr) {
@@ -243,11 +245,9 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(AlphaConsole)
 
     SimObjectParam<SimConsole *> sim_console;
     SimObjectParam<SimpleDisk *> disk;
-    Param<int> size;
     Param<int> num_cpus;
     SimObjectParam<MemoryController *> mmu;
     Param<Addr> addr;
-    Param<Addr> mask;
     SimObjectParam<System *> system;
     SimObjectParam<BaseCPU *> cpu;
     SimObjectParam<TlaserClock *> clock;
@@ -258,11 +258,9 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(AlphaConsole)
 
     INIT_PARAM(sim_console, "The Simulator Console"),
     INIT_PARAM(disk, "Simple Disk"),
-    INIT_PARAM_DFLT(size, "AlphaConsole size", sizeof(AlphaAccess)),
     INIT_PARAM_DFLT(num_cpus, "Number of CPU's", 1),
     INIT_PARAM(mmu, "Memory Controller"),
     INIT_PARAM(addr, "Device Address"),
-    INIT_PARAM(mask, "Address Mask"),
     INIT_PARAM(system, "system object"),
     INIT_PARAM(cpu, "Processor"),
     INIT_PARAM(clock, "Turbolaser Clock")
@@ -271,10 +269,8 @@ END_INIT_SIM_OBJECT_PARAMS(AlphaConsole)
 
 CREATE_SIM_OBJECT(AlphaConsole)
 {
-    return  new AlphaConsole(getInstanceName(), sim_console,
-                             disk, size, system,
-                             cpu, clock, num_cpus,
-                             addr, mask, mmu);
+    return  new AlphaConsole(getInstanceName(), sim_console, disk,
+                             system, cpu, clock, num_cpus, mmu, addr);
 }
 
 REGISTER_SIM_OBJECT("AlphaConsole", AlphaConsole)
index c39b8e8d4b0a94ef1e7a326a073f01bf4d963b91..54a2af6d51a373eee519cbc7931b437a534a48b1 100644 (file)
 #ifndef __ALPHA_CONSOLE_HH__
 #define __ALPHA_CONSOLE_HH__
 
-#include "sim/host.hh"
+#include "base/range.hh"
 #include "dev/alpha_access.h"
-#include "mem/functional_mem/mmap_device.hh"
+#include "mem/functional_mem/functional_memory.hh"
+#include "sim/host.hh"
 
 class BaseCPU;
 class SimConsole;
@@ -68,7 +69,7 @@ class SimpleDisk;
  * primarily used doing boot before the kernel has loaded its device
  * drivers.
  */
-class AlphaConsole : public MmapDevice
+class AlphaConsole : public FunctionalMemory
 {
   protected:
     union {
@@ -82,15 +83,15 @@ class AlphaConsole : public MmapDevice
     /** the system console (the terminal) is accessable from the console */
     SimConsole *console;
 
+    Addr addr;
+    static const Addr size = 0x80; // equal to sizeof(alpha_access);
+
   public:
     /** Standard Constructor */
-    AlphaConsole(const std::string &name, SimConsole *cons,
-                 SimpleDisk *d, int size,
-                 System *system, BaseCPU *cpu,
-                 TlaserClock *clock, int num_cpus,
-                 Addr addr, Addr mask, MemoryController *mmu);
+    AlphaConsole(const std::string &name, SimConsole *cons, SimpleDisk *d,
+                 System *system, BaseCPU *cpu, TlaserClock *clock,
+                 int num_cpus, MemoryController *mmu, Addr addr);
 
-  public:
     /**
      * memory mapped reads and writes
      */