summaryrefslogtreecommitdiff
path: root/src/systemc
AgeCommit message (Collapse)Author
2018-08-08systemc: Add the Accellera implementation for the data type classes.Gabe Black
These files have been cleaned up style wise, and some macros have been resolved like they were for the header files. Change-Id: I447e5311961036847e7da0c5a86c0da25a633010 Reviewed-on: https://gem5-review.googlesource.com/10844 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-08Systemc: Port over all of the systemc "datatype" headers.Gabe Black
These are the headers originally written by Accellera with a few modifications. Most significantly, I went through and mostly (but not entirely) manually editted them to conform to gem5 style and to be more self consistent. Second, I resolved some macros which optionally select features. I removed support for deprecated functions, and otherwise enabled everything. The actual implementation behind these headers will also be ported over, but in a subsequent change. Change-Id: I203d3f6c8a3af9120b946001d01defbb0643a6b6 Reviewed-on: https://gem5-review.googlesource.com/10843 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-08-08systemc: Stub out all the standard utilility classes and functions.Gabe Black
Change-Id: I9e9724edb6281e0b0a6bae5546b0ede77d295c12 Reviewed-on: https://gem5-review.googlesource.com/10841 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24systemc: Flesh out the sc_port implementation slightly.Gabe Black
This makes other files compile because it changes the relationship between constructors,etc., slightly. Change-Id: I8d9a6e12ec640a82da166fe05c4f5e91f3f608de Reviewed-on: https://gem5-review.googlesource.com/10840 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24systemc: Stub out the predefined channels.Gabe Black
Change-Id: Ie030aad26875bd49e54981ec1e9076b7b5af6630 Reviewed-on: https://gem5-review.googlesource.com/10839 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24systemc: Add systemc and systemc.h header files.Gabe Black
These are the header files as defined by the standard, although some predefined channel types and most of the sc_dt namespace have yet to be stubbed out, and so those portions are excluded. Change-Id: Ic70f887c06e591974a4265c820eb0fdfa740d19a Reviewed-on: https://gem5-review.googlesource.com/10838 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24systemc: Stub out the sc_spawn related classes and functions.Gabe Black
Change-Id: I79f695cca97aaae9af324eb18cab073f42f0a193 Reviewed-on: https://gem5-review.googlesource.com/10837 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24systemc: Stub out the sc_process_handle class.Gabe Black
Change-Id: I2250ccb369e0a5f2b9172d35662a9ce5e41ab1c1 Reviewed-on: https://gem5-review.googlesource.com/10836 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-24systemc: Seperate the "external" header interface.Gabe Black
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-24systemc: Stub out the sc_module class and related functions.Gabe Black
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-24systemc: Add a stubbed out implementation of the sc_sensitive class.Gabe Black
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-24systemc: Add a stub implementation for sc_attr related classes.Gabe Black
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-23systemc: Add a stubbed out sc_event_finder class.Gabe Black
The standard defines this class very loosely, and so there isn't much in the stub definition. Change-Id: I2f8d07927a4eb087235e345a09d5a4d4891413b5 Reviewed-on: https://gem5-review.googlesource.com/10831 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23systemc: Implement a stub version of the sc_prim class.Gabe Black
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-23systemc: Add stubbed out versions of sc_port and sc_export.Gabe Black
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-23systemc: Add stubbed out versions of sc_event and related classes.Gabe Black
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-23systemc: Add stubbed out versions of the sc_time functions.Gabe Black
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-23systemc: Add the sc_nbdefs.hh header from Accellera.Gabe Black
This header defines the uint64 type alias needed for the sc_time class. Change-Id: I7793dbfb98001796c8c8fe24f69fe7868249ff85 Reviewed-on: https://gem5-review.googlesource.com/10826 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
2018-07-23systemc: Add a stub version of the sc_interface class.Gabe Black
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-23systemc: Hook up sc_main.Gabe Black
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-23systemc: Partially implement the sc_module_name class.Gabe Black
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-16systemc: Add a stub kernel SimObject.Gabe Black
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-16systemc: Add a stubbed out sc_object class.Gabe Black
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>