Commit Graph

15 Commits

Author SHA1 Message Date
Earl Ou
07688f1b4f systemc: keep SC_CONCAT* macro
Call of TLM_DECLARE_EXTENDED_PHASE requires SC_CONCAT* macros.  This change
keeps those macros to avoid compile errors.

Change-Id: I573c4c126a350ef1a752d1c50658e7d9cedaaeae
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24123
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2020-01-13 01:42:58 +00:00
Jui-min Lee
54458b125b systemc: Fix tlm2 socket integration
This change will make the systemc extension in gem5 more compatible to
the reference implementation by Accellera.

* Remove the alias of sc_port's bind in initiator socket.
* Ignore -Woverloaded-virtual in initiator socket.

Change-Id: I229e4d493e01d26174c5662ad71d4859d546d307
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23864
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2019-12-20 13:12:57 +00:00
Gabe Black
ef481775ae systemc: Purposefully *expose* bind in the initiator socket.
Apparently the base version of bind actually *is* supposed to be
accessible, so expose it with using instead of hiding it.

Change-Id: Ie762c35d6322e744696ed597189b7773ea68c3b7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23322
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2019-12-03 20:33:36 +00:00
Gabe Black
6ac429af87 systemc: Suppress a spurious clang warning in the systemc headers.
Change-Id: Ife2251d370133383debda9b0439cb84eca80978d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23126
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2019-12-03 13:24:12 +00:00
Gabe Black
5daf5ea2b6 systemc: Fix up some lingering Accellera specific code in TLM v1.
This was missed initially, but clang complained about it.

Change-Id: Ie6d240447a74f96faf9da87bd2f1134c1d82be8e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23128
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
2019-12-03 13:23:55 +00:00
Gabe Black
95c0aef6e4 systemc: Make an include in src/systemc/ext use a relative path.
The includes in src/systemc/ext are supposed to use relative paths so
that they can be included in other bodies of code which aren't based
in gem5 and don't share it's -I-s, or potentially even have access to
anything outside of src/systemc/ext.

Change-Id: Icde457329c2c4ab4689221015bfcfe2ff8b051f0
Reviewed-on: https://gem5-review.googlesource.com/c/16262
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
2019-02-14 11:53:24 +00:00
Gabe Black
e1ef0270da systemc: Fix TLM related includes.
There are a couple things this CL fixes related to the TLM #includes.

1. Removes #includes of <systemc> and <tlm>. These bring in a header
file from boost which shouldn't be necessary but which some of the
tests (and likely some external code) depends on. We avoid including
those in files built into gem5 itself so that gem5 isn't dependent on
boost.

2. All includes in ext should be relative. That way those headers can
be removed from gem5 and still build, allowing them to be moved over
to or referenced from a foreign codebase which isn't part of gem5.

Change-Id: I76e267385b48cb4fe93aea89ec8319c76465a0a4
Reviewed-on: https://gem5-review.googlesource.com/c/15796
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
2019-01-23 09:52:52 +00:00
Gabe Black
96ce18b828 systemc: Remove the TLM dependence on a non-standard method.
The sc_event_finder class in Accellera's implementation has a
non-standard report_error function that it uses internally. The TLM
headers were calling that function in their own event finder subclass.
This change replaces that call with what should be an equivalent bit of
code which is based on the report_error implementation.

Change-Id: Id57d26791df01403a77e70d5f4a00f650dc33599
Reviewed-on: https://gem5-review.googlesource.com/c/15063
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:36:28 +00:00
Gabe Black
29318390b5 systemc: Replace sc_core::sc_type_index with std::type_index.
The former is either the same as the later, or a custom wrapper if
C++11 isn't supported. Since we generally expect C++11 support, we can
skip the indirection.

Change-Id: I9a45e3854bb7cc56d094e3fe2773fe4b5c94403b
Reviewed-on: https://gem5-review.googlesource.com/c/15297
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:35:51 +00:00
Gabe Black
5701aab0f1 systemc: Stop using the Accellera specific "none" global event object.
That event being available is nonstandard. Define our own static event
for use in that case.

Change-Id: I5e8892bd83cc1984d63949ef3e249755dca0c702
Reviewed-on: https://gem5-review.googlesource.com/c/15296
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:35:37 +00:00
Gabe Black
e345154b19 systemc: Rename tlm_core header files to have a .hh extentension.
This makes those files more consistent with other headers in gem5. The
top level headers (tlm and tlm.h) and the tlm_utils headers were left
alone since the user might reasonably expect those to have a well known
name. The tlm_core headers by comparison are an implementation detail,
and users shouldn't include them directly by name.

Change-Id: Ibc82e8159e47717c79d76f50ed96fdd619294a06
Reviewed-on: https://gem5-review.googlesource.com/c/15067
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:35:21 +00:00
Gabe Black
fc5df0bdad systemc: Remove redundant tlm_ prefixes from file names.
We already know those files belong to tlm because of the directory
they're in. Removing the prefix makes the paths of the headers less
enormously long.

Change-Id: I869e58fae904162f353bb31f4c0919fba08dffa6
Reviewed-on: https://gem5-review.googlesource.com/c/15059
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:33:26 +00:00
Gabe Black
6bc26ff7f2 systemc: Replace some calls to some Accellera specific functions in TLM.
The TLM event finder class was calling implementation specific
functions from the Accellera version of systemc. This change replaces those
calls with equivalent calls which match the gem5 implementation.

Change-Id: I0ecdb0a4bf09aeb1aad823a01105fbd88edb4601
Reviewed-on: https://gem5-review.googlesource.com/c/15075
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:33:03 +00:00
Gabe Black
275d277965 systemc: Fix style issues in the TLM header files.
Change-Id: Id12ffb9b56b3887afcf30120f81ce5eb75a5987b
Reviewed-on: https://gem5-review.googlesource.com/c/15057
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:32:29 +00:00
Gabe Black
7364acfc75 systemc: Initial import of TLM headers from Accellera.
These headers will need to be cleaned up and have some Accellera
specific quirks ironed out of them, but I'll do that in a later change
to make it clear what those changes are.

Change-Id: Ia4e08633ab552b4c616c66c9b7e2bbd78ebfe7b9
Reviewed-on: https://gem5-review.googlesource.com/c/15055
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
2019-01-09 01:31:53 +00:00