MEM: Move port creation to the memory object(s) construction
authorAndreas Hansson <andreas.hansson@arm.com>
Fri, 24 Feb 2012 16:43:53 +0000 (11:43 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Fri, 24 Feb 2012 16:43:53 +0000 (11:43 -0500)
commit1031b824b975cec999c37cabc8c05c485a4ae5ca
tree18af5987accd59781642001849908ddb486d069a
parent9f07d2ce7ecf435b9a1946f15fb3491bb4636637
MEM: Move port creation to the memory object(s) construction

This patch moves all port creation from the getPort method to be
consistently done in the MemObject's constructor. This is possible
thanks to the Swig interface passing the length of the vector ports.
Previously there was a mix of: 1) creating the ports as members (at
object construction time) and using getPort for the name resolution,
or 2) dynamically creating the ports in the getPort call. This is now
uniform. Furthermore, objects that would not be complete without a
port have these ports as members rather than having pointers to
dynamically allocated ports.

This patch also enables an elaboration-time enumeration of all the
ports in the system which can be used to determine the masterId.
28 files changed:
src/arch/arm/table_walker.cc
src/arch/arm/table_walker.hh
src/arch/x86/interrupts.cc
src/arch/x86/interrupts.hh
src/cpu/testers/directedtest/RubyDirectedTester.cc
src/cpu/testers/rubytest/RubyTester.cc
src/dev/alpha/tsunami_pchip.cc
src/dev/arm/pl111.cc
src/dev/copy_engine.cc
src/dev/copy_engine.hh
src/dev/i8254xGBe.cc
src/dev/io_device.cc
src/dev/io_device.hh
src/dev/mips/malta_pchip.cc
src/dev/pcidev.cc
src/dev/pcidev.hh
src/dev/sinic.cc
src/dev/x86/i82094aa.cc
src/dev/x86/i82094aa.hh
src/dev/x86/intdev.cc
src/dev/x86/intdev.hh
src/mem/bridge.cc
src/mem/bridge.hh
src/mem/bus.cc
src/mem/bus.hh
src/mem/physical.cc
src/mem/ruby/system/RubyPort.cc
src/mem/ruby/system/RubyPort.hh