Line 3... |
Line 3... |
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* @brief System Bus class declaration (AMBA or whatever).
|
* @brief System Bus class declaration (AMBA or whatever).
|
*/
|
*/
|
|
|
#ifndef __DEBUGGER_BUS_H__
|
#ifndef __DEBUGGER_LIBDBG64G_SERVICES_BUS_BUS_H__
|
#define __DEBUGGER_BUS_H__
|
#define __DEBUGGER_LIBDBG64G_SERVICES_BUS_BUS_H__
|
|
|
#include "iclass.h"
|
#include <iclass.h>
|
#include "iservice.h"
|
#include <iservice.h>
|
#include "coreservices/iclock.h"
|
#include "coreservices/iclock.h"
|
#include "coreservices/ibus.h"
|
#include "coreservices/imemop.h"
|
|
#include "coreservices/idsugen.h"
|
#include <string>
|
#include <string>
|
|
|
namespace debugger {
|
namespace debugger {
|
|
|
class Bus : public IService,
|
class Bus : public IService,
|
public IBus {
|
public IMemoryOperation {
|
public:
|
public:
|
explicit Bus(const char *name);
|
explicit Bus(const char *name);
|
virtual ~Bus();
|
virtual ~Bus();
|
|
|
/** IService interface */
|
/** IService interface */
|
virtual void postinitService();
|
virtual void postinitService();
|
|
|
/** IBus interface */
|
/** IMemoryOperation interface */
|
virtual void map(IMemoryOperation *imemop);
|
|
virtual ETransStatus b_transport(Axi4TransactionType *trans);
|
virtual ETransStatus b_transport(Axi4TransactionType *trans);
|
virtual ETransStatus nb_transport(Axi4TransactionType *trans,
|
virtual ETransStatus nb_transport(Axi4TransactionType *trans,
|
IAxi4NbResponse *cb);
|
IAxi4NbResponse *cb);
|
virtual BusUtilType *bus_utilization();
|
|
|
|
private:
|
private:
|
AttributeType listMap_;
|
void getMapedDevice(Axi4TransactionType *trans,
|
AttributeType imap_;
|
IMemoryOperation **pdev, uint32_t *sz);
|
|
|
|
private:
|
|
AttributeType dsu_;
|
|
|
// Clock interface is used just to tag debug output with some step value,
|
// Clock interface is used just to tag debug output with some step value,
|
// in a case of several clocks the first found will be used.
|
// in a case of several clocks the first found will be used.
|
IClock *iclk0_;
|
IClock *iclk0_;
|
|
IDsuGeneric *idsu_;
|
mutex_def mutexBAccess_;
|
mutex_def mutexBAccess_;
|
mutex_def mutexNBAccess_;
|
mutex_def mutexNBAccess_;
|
|
Axi4TransactionType b_tr_;
|
BusUtilType info_[CFG_NASTI_MASTER_TOTAL];
|
Axi4TransactionType nb_tr_;
|
};
|
};
|
|
|
DECLARE_CLASS(Bus)
|
DECLARE_CLASS(Bus)
|
|
|
} // namespace debugger
|
} // namespace debugger
|
|
|
#endif // __DEBUGGER_BUS_H__
|
#endif // __DEBUGGER_LIBDBG64G_SERVICES_BUS_BUS_H__
|
|
|
No newline at end of file
|
No newline at end of file
|