scons: Add sim_object and enums arguments to SimObject().

This will explicitly declare what SimObject and Enum types need to be set
up in C++, which will make importing all the SimObject modules during
the setup phase of SCons uneccessary.

Change-Id: Id2d7603daf33b236ceaa0789e2f089f589d34e62
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49406
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2021-08-15 22:07:27 -07:00
parent 60e55ecef8
commit 1c233ee9d2
79 changed files with 416 additions and 262 deletions

View File

@@ -28,18 +28,20 @@
Import('*')
SimObject('ClockedObject.py')
SimObject('TickedObject.py')
SimObject('Workload.py')
SimObject('Root.py')
SimObject('ClockDomain.py')
SimObject('VoltageDomain.py')
SimObject('System.py')
SimObject('DVFSHandler.py')
SimObject('SubSystem.py')
SimObject('RedirectPath.py')
SimObject('PowerState.py')
SimObject('PowerDomain.py')
SimObject('ClockedObject.py', sim_objects=['ClockedObject'])
SimObject('TickedObject.py', sim_objects=['TickedObject'])
SimObject('Workload.py', sim_objects=[
'Workload', 'StubWorkload', 'KernelWorkload', 'SEWorkload'])
SimObject('Root.py', sim_objects=['Root'])
SimObject('ClockDomain.py', sim_objects=[
'ClockDomain', 'SrcClockDomain', 'DerivedClockDomain'])
SimObject('VoltageDomain.py', sim_objects=['VoltageDomain'])
SimObject('System.py', sim_objects=['System'], enums=['MemoryMode'])
SimObject('DVFSHandler.py', sim_objects=['DVFSHandler'])
SimObject('SubSystem.py', sim_objects=['SubSystem'])
SimObject('RedirectPath.py', sim_objects=['RedirectPath'])
SimObject('PowerState.py', sim_objects=['PowerState'], enums=['PwrState'])
SimObject('PowerDomain.py', sim_objects=['PowerDomain'])
Source('async.cc')
Source('backtrace_%s.cc' % env['BACKTRACE_IMPL'], add_tags='gem5 trace')
@@ -97,8 +99,8 @@ GTest('serialize.test', 'serialize.test.cc', with_tag('gem5 serialize'))
GTest('serialize_handlers.test', 'serialize_handlers.test.cc')
if env['TARGET_ISA'] != 'null':
SimObject('InstTracer.py')
SimObject('Process.py')
SimObject('InstTracer.py', sim_objects=['InstTracer'])
SimObject('Process.py', sim_objects=['Process', 'EmulatedDriver'])
Source('faults.cc')
Source('process.cc')
Source('fd_array.cc')