Commit Graph

21 Commits

Author SHA1 Message Date
Gabe Black
2a5f2ef55a scons: Make the sim_objects parameter of SimObject mandantory.
If there really are no c++ sim_objects in the file, then sim_objects can
be set to [] which it used to default to.

This way, if someone hasn't remembered to update their SConscript files
for the new sim_objects and enums parameters, this will give them some
indication what's wrong, rather than the build just failing later.

Change-Id: Ic1933f7b9dfff7dd7e403c6c84f1f510c8ee8c72
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/54203
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
2021-12-15 10:48:03 +00:00
Gabe Black
0592272cff systemc: Delete authors lists from systemc files.
Change-Id: I6c6219732029d5a9db1d317c130086cf2d16a272
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25410
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
2020-02-18 03:34:18 +00:00
Gabe Black
e76777d5e6 systemc: Add Port types for initiator and target sockets.
These make it clear that a port represents a TLM socket, what direction
it faces, and what its width is.

Change-Id: Idcbea2b9b053f1e0685e011bc2c7de2468fb25b2
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18172
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
2019-04-24 11:00:43 +00:00
Gabe Black
b48e4a90bf systemc: Move systemc disabling checks to SConsopts.
This will ensure that the value of USE_SYSTEMC is consistent throughout
the build. It also has the side effect that USE_SYSTEMC can be forced
to a particular value if you're confident you know what you're doing
and want to override these checks.

Change-Id: I0f2d1153245ff17ce4a828c6b7496cb9ded6bd5b
Reviewed-on: https://gem5-review.googlesource.com/c/16810
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2019-02-28 22:29:36 +00:00
Nikos Nikoleris
f256a2c44f scons: Disable systemc on Mac OS
LLVM on Mac OS up until version 10.0.0 doesn't seem to support the
attribute for weak linking and fails to compile. Additionally, even
the basic example tests fail. Therefore, this change disables systemc
by default on Mac OS until we address these issues.

Change-Id: Iaa6360ec61317e01f4e645af8b509961b3144282
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14818
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-12-19 09:00:20 +00:00
Giacomo Travaglini
b185350191 base, systemc: Fix clang compilation
This patch is fixing the following issues:

- base: typename should be used only for types
- systemc: 'GCC_VERSION' is not defined for clang

Change-Id: I27c94445d65691a08a0a14a0ffe6b6942f6c455f
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14976
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-12-08 17:14:07 +00:00
Gabe Black
db5ea63267 systemc: Disable systemc when using gcc versions older than 5.0.
These versions don't support the std::put_time function. Since versions
of gcc older than 5.0 aren't going to be supported at all in the fairly
near future, this should only be temporary. The number of people using
both systemc and older versions of gcc should be very small, or even
zero.

Change-Id: Ie9572fdf83ba9569df6bc0457c98d86565dcdcd8
Reviewed-on: https://gem5-review.googlesource.com/c/14755
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-11-30 11:00:50 +00:00
Gabe Black
db4953c827 systemc: Put systemc headers in the include path when supported.
When the native systemc API support is built in, put the systemc and
systemc.h header files in the include path so they can be used as
normal. We don't want any external systemc headers being included and
getting mixed in with our local ones.

Change-Id: I5fc01ff5f069cfadb7c19a9dead13e7ce7272976
Reviewed-on: https://gem5-review.googlesource.com/c/14397
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-11-19 21:23:50 +00:00
Gabe Black
a60868f5d5 systemc: Seperate the "external" header interface.
Most (but not all) of the SystemC headers are part of the "external"
interface that an existing, standard compliant module would include
through <systemc.h> or <systemc>. Since those follow slightly different
rules (relative includes, no gem5 includes), this change separates them
out so that they're easier to identify.

Also, this change moves the other files into a "core" subdirectory,
with the intention to add a "dt", aka data type, directory some time in
the future when those standard defined types are implemented.

Change-Id: Ida63f9cc0bc0431024d4dd691cc5b22b944a99a8
Reviewed-on: https://gem5-review.googlesource.com/10835
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24 21:38:22 +00:00
Gabe Black
82d17ee5df systemc: Stub out the sc_module class and related functions.
Change-Id: I2c20717fe1f750bf7ae84de79726b1503ec6e1cd
Reviewed-on: https://gem5-review.googlesource.com/10834
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24 21:35:57 +00:00
Gabe Black
527f23c7dd systemc: Add a stubbed out implementation of the sc_sensitive class.
This sc_sensitive class is mostly implementation defined, but has a
few standards defined methods.

Change-Id: I7157f6bfaaef38b5804b19a1de9f3f0aff08b697
Reviewed-on: https://gem5-review.googlesource.com/10833
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24 20:42:02 +00:00
Gabe Black
9cc75bd8d7 systemc: Add a stub implementation for sc_attr related classes.
Change-Id: I59ba11f71b5412643ea7026df91587fafa0c6fda
Reviewed-on: https://gem5-review.googlesource.com/10832
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24 20:41:17 +00:00
Gabe Black
9ea0962532 systemc: Implement a stub version of the sc_prim class.
Change-Id: Iad32f6e385e62dc10491783c1e5cdd5d9bfcc3e6
Reviewed-on: https://gem5-review.googlesource.com/10830
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:20:20 +00:00
Gabe Black
29cee9208d systemc: Add stubbed out versions of sc_port and sc_export.
Change-Id: I04edb5da995212f9179eeb7a97486031eea71aff
Reviewed-on: https://gem5-review.googlesource.com/10829
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:19:18 +00:00
Gabe Black
021b86d116 systemc: Add stubbed out versions of sc_event and related classes.
Change-Id: Id45c80cbb8774d8469d4df6ce7915161df977de0
Reviewed-on: https://gem5-review.googlesource.com/10828
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:18:22 +00:00
Gabe Black
0ac709b5b8 systemc: Add stubbed out versions of the sc_time functions.
Change-Id: Ie7e3eac0382dc2ed861eaa9ea53ab11069812db8
Reviewed-on: https://gem5-review.googlesource.com/10827
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:17:08 +00:00
Gabe Black
b3cab9d881 systemc: Add a stub version of the sc_interface class.
Change-Id: Iad1da472e13b0e16ad4de03f456ca0a001e69b51
Reviewed-on: https://gem5-review.googlesource.com/10825
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:15:37 +00:00
Gabe Black
821b175834 systemc: Hook up sc_main.
sc_main is exported as a python method on the SystemC_Kernel class and
takes a series of string arguments. The internal c++ implementation
converts those arguments into the standard argc and argv and uses them
to call the standard SystemC version of that function.

A weak SystemC version of sc_main is provided so that systemc will
compile with or without a simulation provided version of that
function. The weak version just complains and dies.

Change-Id: Iad735536c37c8bc85d06cf24779f607ae4309b8b
Reviewed-on: https://gem5-review.googlesource.com/10824
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:14:00 +00:00
Gabe Black
7014f69487 systemc: Partially implement the sc_module_name class.
This class is mostly implemented as defined by the spec, except that
it doesn't maintain the module name stack (which doesn't yet exist).

Change-Id: I05fdc4aa40fb0497b0165824baee87ebf01a7821
Reviewed-on: https://gem5-review.googlesource.com/10823
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23 22:09:45 +00:00
Gabe Black
889fdb90d9 systemc: Add a stub kernel SimObject.
The guts of this class will be added in later changes.

Change-Id: I3582c40f88f7d9ba6028a6f0a8ee5c32924a65bf
Reviewed-on: https://gem5-review.googlesource.com/10822
Maintainer: Gabe Black <gabeblack@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2018-07-16 21:54:10 +00:00
Gabe Black
2c974a9ae0 systemc: Add a stubbed out sc_object class.
Also add a SConsopt variable USE_SYSTEMC to hide systemc support until
it's usable.

Change-Id: Ibb37483432b147ee690a36bb5c8dd74f1c4c7ae4
Reviewed-on: https://gem5-review.googlesource.com/10821
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
2018-07-16 21:53:05 +00:00