gem5
v19.0.0.0
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
+
Enumerations
a
b
c
d
e
f
i
l
m
o
p
r
s
t
v
x
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
+
Enumerations
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
w
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Related Functions
:
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
z
+
Typedefs
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
+
Enumerations
a
b
c
d
e
f
g
i
l
m
o
p
r
s
t
v
w
+
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
systemc
tlm_bridge
sc_ext.cc
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
* Authors:
34
* Matthias Jung
35
* Christian Menard
36
*/
37
38
#include "
systemc/tlm_bridge/sc_ext.hh
"
39
40
#include "
systemc/ext/utils/sc_report_handler.hh
"
41
42
namespace
Gem5SystemC
43
{
44
45
Gem5Extension::Gem5Extension
(
PacketPtr
_packet)
46
{
47
packet
= _packet;
48
pipeThrough
=
false
;
49
}
50
51
Gem5Extension
&
52
Gem5Extension::getExtension
(
const
tlm::tlm_generic_payload
*payload)
53
{
54
Gem5Extension
*result = NULL;
55
payload->
get_extension
(result);
56
sc_assert
(result != NULL);
57
return
*result;
58
}
59
60
Gem5Extension
&
61
Gem5Extension::getExtension
(
const
tlm::tlm_generic_payload
&payload)
62
{
63
return
Gem5Extension::getExtension
(&payload);
64
}
65
66
PacketPtr
67
Gem5Extension::getPacket
()
68
{
69
return
packet
;
70
}
71
72
tlm::tlm_extension_base
*
73
Gem5Extension::clone
()
const
74
{
75
return
new
Gem5Extension
(
packet
);
76
}
77
78
void
79
Gem5Extension::copy_from
(
const
tlm::tlm_extension_base
&
ext
)
80
{
81
const
Gem5Extension
&cpyFrom =
static_cast<
const
Gem5Extension
&
>
(
ext
);
82
packet
= cpyFrom.
packet
;
83
}
84
85
}
// namespace Gem5SystemC
Gem5SystemC::Gem5Extension::getExtension
static Gem5Extension & getExtension(const tlm::tlm_generic_payload *payload)
Definition:
sc_ext.cc:52
Gem5SystemC::Gem5Extension
Definition:
sc_ext.hh:47
Gem5SystemC::Gem5Extension::Gem5Extension
Gem5Extension(PacketPtr _packet)
Definition:
sc_ext.cc:45
Gem5SystemC::Gem5Extension::copy_from
virtual void copy_from(const tlm_extension_base &ext)
Definition:
sc_ext.cc:79
tlm::tlm_generic_payload::get_extension
void get_extension(T *&ext) const
Definition:
gp.hh:364
tlm::tlm_generic_payload
Definition:
gp.hh:116
sc_report_handler.hh
ArmISA::ext
Bitfield< 12 > ext
Definition:
miscregs_types.hh:424
Gem5SystemC
Definition:
sc_ext.cc:42
Gem5SystemC::Gem5Extension::pipeThrough
bool pipeThrough
Definition:
sc_ext.hh:66
Gem5SystemC::Gem5Extension::clone
virtual tlm_extension_base * clone() const
Definition:
sc_ext.cc:73
sc_ext.hh
Gem5SystemC::Gem5Extension::packet
PacketPtr packet
Definition:
sc_ext.hh:65
tlm::tlm_extension_base
Definition:
gp.hh:48
Packet
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Definition:
packet.hh:255
sc_assert
#define sc_assert(expr)
Definition:
sc_report_handler.hh:137
Gem5SystemC::Gem5Extension::getPacket
PacketPtr getPacket()
Definition:
sc_ext.cc:67
Generated on Fri Feb 28 2020 16:27:05 for gem5 by
doxygen
1.8.13