OpenCSD - CoreSight Trace Decode Library
0.14.4
|
Go to the documentation of this file.
33 #ifndef ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED
34 #define ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED
91 m_root_idx(root_index),
139 m_addr_val = addr_val;
143 const bool hasAddr()
const {
return m_has_addr; };
175 void setIS(
const uint8_t IS) { m_IS = IS; };
176 const uint8_t
getIS()
const {
return m_IS; };
207 bool m_prev_addr_same;
208 uint16_t m_excep_num;
213 m_prev_addr_same(false)
258 int nRemove = (nCancel <= m_atom.
num) ? nCancel : m_atom.
num;
259 m_atom.
num -= nRemove;
266 uint32_t mask = 0x1 << (m_atom.
num - 1);
285 void setParam(
const uint32_t param,
const int nParamNum) { m_param[(nParamNum & 0x3)] = param; };
286 const uint32_t &
getParam(
const int nParamNum)
const {
return m_param[(nParamNum & 0x3)]; };
308 void pop_back(
bool pend_delete =
true);
333 std::deque<TrcStackElem *> m_P0_stack;
334 std::vector<TrcStackElem *> m_popped_elem;
335 std::deque<TrcStackElem *>::iterator m_iter;
347 m_P0_stack.push_front(pElem);
353 m_P0_stack.push_back(pElem);
360 m_popped_elem.push_back(m_P0_stack.back());
361 m_P0_stack.pop_back();
367 m_popped_elem.push_back(m_P0_stack.front());
368 m_P0_stack.pop_front();
374 if (m_P0_stack.size() > 0)
378 m_P0_stack.pop_back();
385 if (m_P0_stack.size() > 0)
389 m_P0_stack.pop_front();
398 return m_P0_stack.back();
403 return m_P0_stack.front();
409 while (m_P0_stack.size() > 0)
417 while (m_popped_elem.size() > 0)
419 delete m_popped_elem.back();
420 m_popped_elem.pop_back();
422 m_popped_elem.clear();
428 return m_P0_stack.size();
431 #endif // ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED
const bool hasAddr() const
TrcStackElem * createParamElemNoParam(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, bool back=false)
TrcStackQElem * createQElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const int count)
enum _p0_elem_t p0_elem_t
TrcStackElemExcept * createExceptElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const bool bSame, const uint16_t excepNum)
void setInstrCount(const int instr_count)
void setExcepNum(const uint16_t num)
void setAtom(const ocsd_pkt_atom &atom)
TrcStackElemParam * createParamElem(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const std::vector< uint32_t > ¶ms)
const bool isEmpty() const
TrcStackElemAddr * createAddrElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_addr_val_t &addr_val)
void setAddr(const etmv4_addr_val_t &addr_val)
void erase_curr_from_front()
const etmv4_addr_val_t & getAddr() const
TrcStackElemAddr(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
virtual ~TrcStackElemAddr()
ocsd_vaddr_t val
Address value.
const uint32_t & getParam(const int nParamNum) const
void pop_back(bool pend_delete=true)
const etmv4_addr_val_t & getAddr() const
TrcStackElemParam(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
TrcStackElemCtxt * createContextElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_context_t &context, const uint8_t IS, const bool back=false)
uint8_t isa
instruction set.
virtual ~TrcStackElemExcept()
void setAddr(const etmv4_addr_val_t &addr_val)
const ocsd_atm_val commitOldest()
enum _ocsd_atm_val ocsd_atm_val
const uint16_t getExcepNum() const
const bool getPrevSame() const
void push_front(TrcStackElem *pElem)
void setContext(const etmv4_context_t &ctxt)
virtual ~TrcStackElemAtom()
void pop_front(bool pend_delete=true)
const p0_elem_t getP0Type() const
virtual ~TrcStackElemCtxt()
TrcStackElemAtom * createAtomElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const ocsd_pkt_atom &atom)
const uint8_t getIS() const
TrcStackQElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
void setPrevSame(bool bSame)
void setParam(const uint32_t param, const int nParamNum)
void push_back(TrcStackElem *pElem)
uint32_t ocsd_trc_index_t
const ocsd_etmv4_i_pkt_type getRootPkt() const
const int getInstrCount() const
enum _ocsd_etmv4_i_pkt_type ocsd_etmv4_i_pkt_type
void setIS(const uint8_t IS)
virtual ~TrcStackElemParam()
TrcStackElemAtom(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const ocsd_trc_index_t getRootIndex() const
TrcStackElemExcept(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const etmv4_context_t & getContext() const
TrcStackElem * from_front_next()
TrcStackElem(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
int cancelNewest(const int nCancel)
TrcStackElemCtxt(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)