diff options
author | Christian Menard <Christian.Menard@tu-dresden.de> | 2017-02-09 19:15:30 -0500 |
---|---|---|
committer | Christian Menard <Christian.Menard@tu-dresden.de> | 2017-02-09 19:15:30 -0500 |
commit | b25ea094d4350b8257d5f383a123ea620b614adf (patch) | |
tree | bf2be24b719fb45325012542bb77288f18ccb66e /util/tlm/sc_ext.cc | |
parent | 41a61589545c284d109019c3cb528762b8345aa0 (diff) | |
download | gem5-b25ea094d4350b8257d5f383a123ea620b614adf.tar.xz |
misc: Clean up and complete the gem5<->SystemC-TLM bridge [1/10]
The current TLM bridge only provides a Slave Port that allows the gem5
world to send request to the SystemC world. This patch series refractors
and cleans up the existing code, and adds a Master Port that allows the
SystemC world to send requests to the gem5 world.
This patch:
* Restructure the existing sources in preparation of the addition of the
* new
Master Port.
* Refractor names to allow for distinction of the slave and master port.
* Replace the Makefile by a SConstruct.
Testing Done: The examples provided in util/tlm (now
util/tlm/examples/slave_port) still compile and run error free.
Reviewed at http://reviews.gem5.org/r/3527/
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'util/tlm/sc_ext.cc')
-rw-r--r-- | util/tlm/sc_ext.cc | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/util/tlm/sc_ext.cc b/util/tlm/sc_ext.cc index ce7417e49..db0c36f03 100644 --- a/util/tlm/sc_ext.cc +++ b/util/tlm/sc_ext.cc @@ -1,5 +1,6 @@ /* * Copyright (c) 2015, University of Kaiserslautern + * Copyright (c) 2016, Dresden University of Technology (TU Dresden) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,42 +32,48 @@ * * Authors: * Matthias Jung + * Christian Menard */ #include "sc_ext.hh" using namespace tlm; -gem5Extension::gem5Extension(PacketPtr packet) +namespace Gem5SystemC +{ + +Gem5Extension::Gem5Extension(PacketPtr packet) { Packet = packet; } -gem5Extension& gem5Extension::getExtension(const tlm_generic_payload *payload) +Gem5Extension& Gem5Extension::getExtension(const tlm_generic_payload *payload) { - gem5Extension *result = NULL; + Gem5Extension *result = NULL; payload->get_extension(result); sc_assert(result!=NULL); return *result; } -gem5Extension& gem5Extension::getExtension(const tlm_generic_payload &payload) +Gem5Extension& Gem5Extension::getExtension(const tlm_generic_payload &payload) { - return gem5Extension::getExtension(&payload); + return Gem5Extension::getExtension(&payload); } -PacketPtr gem5Extension::getPacket() +PacketPtr Gem5Extension::getPacket() { return Packet; } -tlm_extension_base* gem5Extension::clone() const +tlm_extension_base* Gem5Extension::clone() const { - return new gem5Extension(Packet); + return new Gem5Extension(Packet); } -void gem5Extension::copy_from(const tlm_extension_base& ext) +void Gem5Extension::copy_from(const tlm_extension_base& ext) { - const gem5Extension& cpyFrom = static_cast<const gem5Extension&>(ext); + const Gem5Extension& cpyFrom = static_cast<const Gem5Extension&>(ext); Packet = cpyFrom.Packet; } + +} |