gem5
v20.1.0.0
systemc
tlm_bridge
sc_ext.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015, University of Kaiserslautern
3
* Copyright (c) 2016, Dresden University of Technology (TU Dresden)
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are
8
* met:
9
*
10
* 1. Redistributions of source code must retain the above copyright notice,
11
* this list of conditions and the following disclaimer.
12
*
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
*
17
* 3. Neither the name of the copyright holder nor the names of its
18
* contributors may be used to endorse or promote products derived from
19
* this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
25
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
*/
33
34
#ifndef __SYSTEMC_TLM_BRIDGE_SC_EXT_HH__
35
#define __SYSTEMC_TLM_BRIDGE_SC_EXT_HH__
36
37
#include "
mem/packet.hh
"
38
#include "
systemc/ext/tlm_core/2/generic_payload/gp.hh
"
39
40
namespace
Gem5SystemC
41
{
42
43
class
Gem5Extension
:
public
tlm::tlm_extension
<Gem5Extension>
44
{
45
public
:
46
Gem5Extension
(
PacketPtr
_packet);
47
48
virtual
tlm_extension_base *
clone
()
const
;
49
virtual
void
copy_from
(
const
tlm_extension_base &
ext
);
50
51
static
Gem5Extension
&
getExtension
(
52
const
tlm::tlm_generic_payload
*payload);
53
static
Gem5Extension
&
getExtension
(
54
const
tlm::tlm_generic_payload
&payload);
55
PacketPtr
getPacket
();
56
57
bool
isPipeThrough
()
const
{
return
pipeThrough
; }
58
void
setPipeThrough
() {
pipeThrough
=
true
; }
59
60
private
:
61
PacketPtr
packet
;
62
bool
pipeThrough
;
63
};
64
65
}
// namespace Gem5SystemC
66
67
#endif // __SYSTEMC_TLM_BRIDGE_SC_EXT_HH__
Gem5SystemC::Gem5Extension::getPacket
PacketPtr getPacket()
Definition:
sc_ext.cc:63
packet.hh
Gem5SystemC::Gem5Extension::Gem5Extension
Gem5Extension(PacketPtr _packet)
Definition:
sc_ext.cc:41
Gem5SystemC
Definition:
sc_ext.cc:38
ArmISA::ext
Bitfield< 12 > ext
Definition:
miscregs_types.hh:422
Gem5SystemC::Gem5Extension::clone
virtual tlm_extension_base * clone() const
Definition:
sc_ext.cc:69
Gem5SystemC::Gem5Extension::pipeThrough
bool pipeThrough
Definition:
sc_ext.hh:62
tlm::tlm_generic_payload
Definition:
gp.hh:133
tlm::tlm_extension
Definition:
gp.hh:83
Gem5SystemC::Gem5Extension::getExtension
static Gem5Extension & getExtension(const tlm::tlm_generic_payload *payload)
Definition:
sc_ext.cc:48
Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition:
packet.hh:257
Gem5SystemC::Gem5Extension::setPipeThrough
void setPipeThrough()
Definition:
sc_ext.hh:58
Gem5SystemC::Gem5Extension::isPipeThrough
bool isPipeThrough() const
Definition:
sc_ext.hh:57
Gem5SystemC::Gem5Extension
Definition:
sc_ext.hh:43
Gem5SystemC::Gem5Extension::copy_from
virtual void copy_from(const tlm_extension_base &ext)
Definition:
sc_ext.cc:75
Gem5SystemC::Gem5Extension::packet
PacketPtr packet
Definition:
sc_ext.hh:61
gp.hh
Generated on Wed Sep 30 2020 14:02:18 for gem5 by
doxygen
1.8.17