----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/1091/#review2379 -----------------------------------------------------------
Ship it! Ship It! - Ali Saidi On March 22, 2012, 9:40 a.m., Andreas Hansson wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/1091/ > ----------------------------------------------------------- > > (Updated March 22, 2012, 9:40 a.m.) > > > Review request for Default. > > > Description > ------- > > MEM: Introduce the master/slave port sub-classes in C++ > > This patch introduces the notion of a master and slave port in the C++ > code, thus bringing the previous classification from the Python > classes into the corresponding simulation objects and memory objects. > > The patch enables us to classify behaviours into the two bins and add > assumptions and enfore compliance, also simplifying the two > interfaces. As a starting point, isSnooping is confined to a master > port, and getAddrRanges to slave ports. More of these specilisations > are to come in later patches. > > The getPort function is not getMasterPort and getSlavePort, and > returns a port reference rather than a pointer as NULL would never be > a valid return value. The default implementation of these two > functions is placed in MemObject, and calls fatal. > > The one drawback with this specific patch is that it requires some > code duplication, e.g. QueuedPort becomes QueuedMasterPort and > QueuedSlavePort, and BusPort becomes BusMasterPort and BusSlavePort > (avoiding multiple inheritance). With the later introduction of the > port interfaces, moving the functionality outside the port itself, a > lot of the duplicated code will disappear again. > > > Diffs > ----- > > src/arch/arm/table_walker.hh 31648cc2e0d9 > src/arch/arm/table_walker.cc 31648cc2e0d9 > src/arch/arm/tlb.hh 31648cc2e0d9 > src/arch/arm/tlb.cc 31648cc2e0d9 > src/arch/x86/interrupts.hh 31648cc2e0d9 > src/arch/x86/interrupts.cc 31648cc2e0d9 > src/arch/x86/pagetable_walker.hh 31648cc2e0d9 > src/arch/x86/pagetable_walker.cc 31648cc2e0d9 > src/arch/x86/tlb.hh 31648cc2e0d9 > src/arch/x86/tlb.cc 31648cc2e0d9 > src/cpu/base.hh 31648cc2e0d9 > src/cpu/base.cc 31648cc2e0d9 > src/cpu/checker/cpu.hh 31648cc2e0d9 > src/cpu/inorder/resources/cache_unit.hh 31648cc2e0d9 > src/cpu/o3/cpu.hh 31648cc2e0d9 > src/cpu/o3/lsq_unit.hh 31648cc2e0d9 > src/cpu/o3/lsq_unit_impl.hh 31648cc2e0d9 > src/cpu/ozone/OzoneCPU.py 31648cc2e0d9 > src/cpu/ozone/cpu.hh 31648cc2e0d9 > src/cpu/ozone/cpu_impl.hh 31648cc2e0d9 > src/cpu/ozone/front_end.hh 31648cc2e0d9 > src/cpu/ozone/front_end_impl.hh 31648cc2e0d9 > src/cpu/ozone/lw_lsq.hh 31648cc2e0d9 > src/cpu/ozone/lw_lsq_impl.hh 31648cc2e0d9 > src/cpu/simple/atomic.hh 31648cc2e0d9 > src/cpu/simple/atomic.cc 31648cc2e0d9 > src/cpu/testers/directedtest/RubyDirectedTester.hh 31648cc2e0d9 > src/cpu/testers/directedtest/RubyDirectedTester.cc 31648cc2e0d9 > src/cpu/testers/memtest/memtest.hh 31648cc2e0d9 > src/cpu/testers/memtest/memtest.cc 31648cc2e0d9 > src/cpu/testers/networktest/networktest.hh 31648cc2e0d9 > src/cpu/testers/networktest/networktest.cc 31648cc2e0d9 > src/cpu/testers/rubytest/RubyTester.hh 31648cc2e0d9 > src/cpu/testers/rubytest/RubyTester.cc 31648cc2e0d9 > src/dev/copy_engine.hh 31648cc2e0d9 > src/dev/copy_engine.cc 31648cc2e0d9 > src/dev/io_device.hh 31648cc2e0d9 > src/dev/io_device.cc 31648cc2e0d9 > src/dev/pcidev.hh 31648cc2e0d9 > src/dev/x86/i82094aa.hh 31648cc2e0d9 > src/dev/x86/i82094aa.cc 31648cc2e0d9 > src/dev/x86/intdev.hh 31648cc2e0d9 > src/dev/x86/intdev.cc 31648cc2e0d9 > src/kern/tru64/tru64_events.cc 31648cc2e0d9 > src/mem/bridge.hh 31648cc2e0d9 > src/mem/bridge.cc 31648cc2e0d9 > src/mem/bus.hh 31648cc2e0d9 > src/mem/bus.cc 31648cc2e0d9 > src/mem/cache/base.hh 31648cc2e0d9 > src/mem/cache/base.cc 31648cc2e0d9 > src/mem/cache/builder.cc 31648cc2e0d9 > src/mem/cache/cache.hh 31648cc2e0d9 > src/mem/cache/cache_impl.hh 31648cc2e0d9 > src/mem/fs_translating_port_proxy.hh 31648cc2e0d9 > src/mem/fs_translating_port_proxy.cc 31648cc2e0d9 > src/mem/mem_object.hh 31648cc2e0d9 > src/mem/mem_object.cc 31648cc2e0d9 > src/mem/mport.hh 31648cc2e0d9 > src/mem/mport.cc 31648cc2e0d9 > src/mem/physical.hh 31648cc2e0d9 > src/mem/physical.cc 31648cc2e0d9 > src/mem/port.hh 31648cc2e0d9 > src/mem/port.cc 31648cc2e0d9 > src/mem/port_proxy.hh 31648cc2e0d9 > src/mem/qport.hh 31648cc2e0d9 > src/mem/ruby/system/RubyPort.hh 31648cc2e0d9 > src/mem/ruby/system/RubyPort.cc 31648cc2e0d9 > src/mem/se_translating_port_proxy.hh 31648cc2e0d9 > src/mem/se_translating_port_proxy.cc 31648cc2e0d9 > src/mem/tport.hh 31648cc2e0d9 > src/mem/tport.cc 31648cc2e0d9 > src/python/swig/pyobject.cc 31648cc2e0d9 > src/sim/system.hh 31648cc2e0d9 > src/sim/system.cc 31648cc2e0d9 > src/sim/tlb.hh 31648cc2e0d9 > > Diff: http://reviews.gem5.org/r/1091/diff/ > > > Testing > ------- > > util/regress all passing (disregarding t1000 and eio) > > > Thanks, > > Andreas Hansson > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
