1*c120c564SAndrew Turner /*!
2*c120c564SAndrew Turner * \file trc_mem_acc_cb.cpp
3*c120c564SAndrew Turner * \brief OpenCSD : Trace Mem accessor - callback function
4*c120c564SAndrew Turner *
5*c120c564SAndrew Turner * \copyright Copyright (c) 2015, ARM Limited. All Rights Reserved.
6*c120c564SAndrew Turner */
7*c120c564SAndrew Turner
8*c120c564SAndrew Turner #include "mem_acc/trc_mem_acc_cb.h"
9*c120c564SAndrew Turner
TrcMemAccCB(const ocsd_vaddr_t s_address,const ocsd_vaddr_t e_address,const ocsd_mem_space_acc_t mem_space)10*c120c564SAndrew Turner TrcMemAccCB::TrcMemAccCB(const ocsd_vaddr_t s_address,
11*c120c564SAndrew Turner const ocsd_vaddr_t e_address,
12*c120c564SAndrew Turner const ocsd_mem_space_acc_t mem_space) :
13*c120c564SAndrew Turner TrcMemAccessorBase(MEMACC_CB_IF, s_address, e_address),
14*c120c564SAndrew Turner m_p_CBclass(0),
15*c120c564SAndrew Turner m_p_CBfn(0),
16*c120c564SAndrew Turner m_p_cbfn_context(0)
17*c120c564SAndrew Turner {
18*c120c564SAndrew Turner setMemSpace(mem_space);
19*c120c564SAndrew Turner }
20*c120c564SAndrew Turner
21*c120c564SAndrew Turner /** Memory access override - allow decoder to read bytes from the buffer. */
readBytes(const ocsd_vaddr_t address,const ocsd_mem_space_acc_t memSpace,const uint8_t trcID,const uint32_t reqBytes,uint8_t * byteBuffer)22*c120c564SAndrew Turner const uint32_t TrcMemAccCB::readBytes(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t memSpace, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer)
23*c120c564SAndrew Turner {
24*c120c564SAndrew Turner // if we have a callback object, use it to call back.
25*c120c564SAndrew Turner if(m_p_CBclass)
26*c120c564SAndrew Turner return m_p_CBclass->readBytes(address,memSpace,reqBytes,byteBuffer);
27*c120c564SAndrew Turner if(m_p_CBfn)
28*c120c564SAndrew Turner return m_p_CBfn(m_p_cbfn_context, address,memSpace,reqBytes,byteBuffer);
29*c120c564SAndrew Turner if (m_p_CBIDfn)
30*c120c564SAndrew Turner return m_p_CBIDfn(m_p_cbfn_context, address, memSpace, trcID, reqBytes, byteBuffer);
31*c120c564SAndrew Turner return 0;
32*c120c564SAndrew Turner }
33*c120c564SAndrew Turner
34*c120c564SAndrew Turner /* End of File trc_mem_acc_cb.cpp */
35