create an m5 package in python/m5 move the objects package into the m5 package move the m5config into the m5 package as config leave both importers outside of the package. SConscript: sim/main.cc: move sim/pyconfig/* -> python python/SConscript: m5config.py -> m5/config.py (now automatically embedded) objects -> python/m5/objects embed all python files in python/m5 python/m5/config.py: importer renamed mpy_importer move code to m5/__init__.py test/genini.py: deal with new python organization keep track of paths we want to add and add them after parameters are parsed. --HG-- rename : sim/pyconfig/SConscript => python/SConscript rename : sim/pyconfig/m5config.py => python/m5/config.py rename : objects/AlphaConsole.mpy => python/m5/objects/AlphaConsole.mpy rename : objects/AlphaTLB.mpy => python/m5/objects/AlphaTLB.mpy rename : objects/BadDevice.mpy => python/m5/objects/BadDevice.mpy rename : objects/BaseCPU.mpy => python/m5/objects/BaseCPU.mpy rename : objects/BaseCache.mpy => python/m5/objects/BaseCache.mpy rename : objects/BaseSystem.mpy => python/m5/objects/BaseSystem.mpy rename : objects/Bus.mpy => python/m5/objects/Bus.mpy rename : objects/CoherenceProtocol.mpy => python/m5/objects/CoherenceProtocol.mpy rename : objects/Device.mpy => python/m5/objects/Device.mpy rename : objects/DiskImage.mpy => python/m5/objects/DiskImage.mpy rename : objects/Ethernet.mpy => python/m5/objects/Ethernet.mpy rename : objects/Ide.mpy => python/m5/objects/Ide.mpy rename : objects/IntrControl.mpy => python/m5/objects/IntrControl.mpy rename : objects/MemTest.mpy => python/m5/objects/MemTest.mpy rename : objects/Pci.mpy => python/m5/objects/Pci.mpy rename : objects/PhysicalMemory.mpy => python/m5/objects/PhysicalMemory.mpy rename : objects/Platform.mpy => python/m5/objects/Platform.mpy rename : objects/Process.mpy => python/m5/objects/Process.mpy rename : objects/Repl.mpy => python/m5/objects/Repl.mpy rename : objects/Root.mpy => python/m5/objects/Root.mpy rename : objects/SimConsole.mpy => python/m5/objects/SimConsole.mpy rename : objects/SimpleDisk.mpy => python/m5/objects/SimpleDisk.mpy rename : objects/Tsunami.mpy => python/m5/objects/Tsunami.mpy rename : objects/Uart.mpy => python/m5/objects/Uart.mpy extra : convert_revision : aebf6ccda33028b1125974ca8b6aeab6f7570f30
33 lines
1.1 KiB
Text
33 lines
1.1 KiB
Text
from FunctionalMemory import FunctionalMemory
|
|
|
|
# This device exists only because there are some devices that I don't
|
|
# want to have a Platform parameter because it would cause a cycle in
|
|
# the C++ that cannot be easily solved.
|
|
#
|
|
# The real solution to this problem is to pass the ParamXXX structure
|
|
# to the constructor, but with the express condition that SimObject
|
|
# parameter values are not to be available at construction time. If
|
|
# some further configuration must be done, it must be done during the
|
|
# initialization phase at which point all SimObject pointers will be
|
|
# valid.
|
|
simobj FooPioDevice(FunctionalMemory):
|
|
type = 'PioDevice'
|
|
abstract = True
|
|
addr = Param.Addr("Device Address")
|
|
mmu = Param.MemoryController(Super, "Memory Controller")
|
|
io_bus = Param.Bus(NULL, "The IO Bus to attach to")
|
|
pio_latency = Param.Tick(1, "Programmed IO latency in bus cycles")
|
|
|
|
simobj FooDmaDevice(FooPioDevice):
|
|
type = 'DmaDevice'
|
|
abstract = True
|
|
|
|
simobj PioDevice(FooPioDevice):
|
|
type = 'PioDevice'
|
|
abstract = True
|
|
platform = Param.Platform(Super, "Platform")
|
|
|
|
simobj DmaDevice(PioDevice):
|
|
type = 'DmaDevice'
|
|
abstract = True
|
|
|