OpenCSD - CoreSight Trace Decode Library
1.5.2
Loading...
Searching...
No Matches
include
common
trc_raw_buffer.h
Go to the documentation of this file.
1
/*
2
* \file trc_raw_buffer.h
3
* \brief OpenCSD : Trace raw data byte buffer
4
*
5
* \copyright Copyright (c) 2019, ARM Limited. All Rights Reserved.
6
*/
7
8
/*
9
* Redistribution and use in source and binary forms, with or without modification,
10
* are permitted provided that the following conditions are met:
11
*
12
* 1. Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* 2. Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
*
19
* 3. Neither the name of the copyright holder nor the names of its contributors
20
* may be used to endorse or promote products derived from this software without
21
* specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND
24
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
27
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
30
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
*/
34
35
#ifndef ARM_TRC_RAW_BUFFER_H_INCLUDED
36
#define ARM_TRC_RAW_BUFFER_H_INCLUDED
37
38
#include <vector>
39
40
class
TraceRawBuffer
41
{
42
public
:
43
TraceRawBuffer
() :
44
m_bufSize(0),
45
m_bufProcessed(0),
46
m_pBuffer(0),
47
pkt(0)
48
{};
49
~TraceRawBuffer
() {};
50
51
// init the buffer
52
void
init
(
const
uint32_t
size
,
const
uint8_t *rawtrace, std::vector<uint8_t> *out_packet);
53
void
copyByteToPkt
();
// move a byte to the packet buffer
54
uint8_t
peekNextByte
();
// value of next byte in buffer.
55
56
bool
empty
() {
return
m_bufProcessed == m_bufSize; };
57
// bytes processed.
58
uint32_t
processed
() {
return
m_bufProcessed; };
59
// buffer size;
60
uint32_t
size
() {
return
m_bufSize; }
61
62
private
:
63
uint32_t m_bufSize;
64
uint32_t m_bufProcessed;
65
const
uint8_t *m_pBuffer;
66
std::vector<uint8_t> *pkt;
67
68
};
69
70
// init the buffer
71
inline
void
TraceRawBuffer::init
(
const
uint32_t size,
const
uint8_t *rawtrace, std::vector<uint8_t> *out_packet)
72
{
73
m_bufSize =
size
;
74
m_bufProcessed = 0;
75
m_pBuffer = rawtrace;
76
pkt = out_packet;
77
}
78
79
inline
void
TraceRawBuffer::copyByteToPkt
()
80
{
81
if
(!
empty
()) {
82
pkt->push_back(m_pBuffer[m_bufProcessed]);
83
m_bufProcessed++;
84
}
85
}
86
87
inline
uint8_t
TraceRawBuffer::peekNextByte
()
88
{
89
uint8_t val = 0;
90
if
(!
empty
())
91
val = m_pBuffer[m_bufProcessed];
92
return
val;
93
}
94
95
#endif
// ARM_TRC_RAW_BUFFER_H_INCLUDED
96
TraceRawBuffer
Definition
trc_raw_buffer.h:41
TraceRawBuffer::processed
uint32_t processed()
Definition
trc_raw_buffer.h:58
TraceRawBuffer::copyByteToPkt
void copyByteToPkt()
Definition
trc_raw_buffer.h:79
TraceRawBuffer::TraceRawBuffer
TraceRawBuffer()
Definition
trc_raw_buffer.h:43
TraceRawBuffer::empty
bool empty()
Definition
trc_raw_buffer.h:56
TraceRawBuffer::peekNextByte
uint8_t peekNextByte()
Definition
trc_raw_buffer.h:87
TraceRawBuffer::init
void init(const uint32_t size, const uint8_t *rawtrace, std::vector< uint8_t > *out_packet)
Definition
trc_raw_buffer.h:71
TraceRawBuffer::size
uint32_t size()
Definition
trc_raw_buffer.h:60
TraceRawBuffer::~TraceRawBuffer
~TraceRawBuffer()
Definition
trc_raw_buffer.h:49
Generated on Fri Sep 20 2024 07:30:32 for OpenCSD - CoreSight Trace Decode Library by
1.9.8