OpenCSD - CoreSight Trace Decode Library
0.12.1
include
common
trc_printable_elem.h
Go to the documentation of this file.
1
9
/*
10
* Redistribution and use in source and binary forms, with or without modification,
11
* are permitted provided that the following conditions are met:
12
*
13
* 1. Redistributions of source code must retain the above copyright notice,
14
* this list of conditions and the following disclaimer.
15
*
16
* 2. Redistributions in binary form must reproduce the above copyright notice,
17
* this list of conditions and the following disclaimer in the documentation
18
* and/or other materials provided with the distribution.
19
*
20
* 3. Neither the name of the copyright holder nor the names of its contributors
21
* may be used to endorse or promote products derived from this software without
22
* specific prior written permission.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND
25
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
27
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
28
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
*/
35
36
#ifndef ARM_TRC_PRINTABLE_ELEM_H_INCLUDED
37
#define ARM_TRC_PRINTABLE_ELEM_H_INCLUDED
38
39
#include <string>
40
#include <cstdint>
41
55
class
trcPrintableElem
56
{
57
public
:
58
trcPrintableElem
() {};
59
virtual
~trcPrintableElem
() {};
60
virtual
void
toString
(std::string &str)
const
;
61
virtual
void
toStringFmt
(
const
uint32_t fmtFlags, std::string &str)
const
;
62
63
// print formatting utilities
64
static
void
getValStr
(std::string &valStr,
const
int
valTotalBitSize,
const
int
valValidBits,
const
uint64_t value,
const
bool
asHex =
true
,
const
int
updateBits = 0);
65
66
};
67
68
inline
void
trcPrintableElem::toString
(std::string &str)
const
69
{
70
str =
"Trace Element : print not implemented"
;
71
}
72
73
inline
void
trcPrintableElem::toStringFmt
(
const
uint32_t
/*fmtFlags*/
, std::string &str)
const
74
{
75
toString
(str);
76
}
77
79
template
<
class
Pc,
class
Pt>
80
void
trcPrintElemToString
(
const
void
*p_pkt, std::string &str)
81
{
82
Pc pktClass;
83
pktClass = static_cast<const Pt *>(p_pkt);
84
pktClass.toString(str);
85
}
86
89
#endif // ARM_TRC_PRINTABLE_ELEM_H_INCLUDED
90
91
/* End of File trc_printable_elem.h */
trcPrintElemToString
void trcPrintElemToString(const void *p_pkt, std::string &str)
Definition:
trc_printable_elem.h:80
trcPrintableElem::toStringFmt
virtual void toStringFmt(const uint32_t fmtFlags, std::string &str) const
Definition:
trc_printable_elem.h:73
trcPrintableElem
Class to provide trace element strings for printing.
Definition:
trc_printable_elem.h:55
trcPrintableElem::~trcPrintableElem
virtual ~trcPrintableElem()
Definition:
trc_printable_elem.h:59
trcPrintableElem::getValStr
static void getValStr(std::string &valStr, const int valTotalBitSize, const int valValidBits, const uint64_t value, const bool asHex=true, const int updateBits=0)
trcPrintableElem::toString
virtual void toString(std::string &str) const
Definition:
trc_printable_elem.h:68
trcPrintableElem::trcPrintableElem
trcPrintableElem()
Definition:
trc_printable_elem.h:58
Generated on Mon Feb 10 2020 22:37:53 for OpenCSD - CoreSight Trace Decode Library by
1.8.16