rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: #include rlm@8: rlm@8: #include "asim/rrr/service_ids.h" rlm@8: rlm@8: #include "asim/provides/connected_application.h" rlm@8: rlm@8: rlm@8: rlm@8: using namespace std; rlm@8: rlm@8: // ===== service instantiation ===== rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS PROCESSORSYSTEMRRR_SERVER_CLASS::instance; rlm@8: rlm@8: // constructor rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::PROCESSORSYSTEMRRR_SERVER_CLASS() : rlm@8: serverStub(new PROCESSORSYSTEMRRR_SERVER_STUB_CLASS(this)) rlm@8: { rlm@8: // instantiate stub rlm@8: memory = NULL; rlm@8: fflush(stdout); rlm@8: } rlm@8: rlm@8: // destructor rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::~PROCESSORSYSTEMRRR_SERVER_CLASS() rlm@8: { rlm@8: Cleanup(); rlm@8: } rlm@8: rlm@8: // init rlm@8: void rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::Init(PLATFORMS_MODULE p) rlm@8: { rlm@8: parent = p; rlm@8: } rlm@8: rlm@8: // uninit rlm@8: void rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::Uninit() rlm@8: { rlm@8: Cleanup(); rlm@8: } rlm@8: rlm@8: // cleanup rlm@8: void rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::Cleanup() rlm@8: { rlm@8: delete serverStub; rlm@8: } rlm@8: rlm@8: rlm@8: // rlm@8: // RRR service methods rlm@8: // rlm@8: rlm@8: UINT32 rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::MemoryRequestLoad (UINT32 address) rlm@8: { rlm@8: UINT32 returnVal; rlm@8: rlm@8: if(memory == NULL) { rlm@8: memory = new FUNCP_SIMULATED_MEMORY_CLASS(); rlm@8: } rlm@8: rlm@8: rlm@8: rlm@8: memory->Read(0,(UINT64) address, sizeof(UINT32), &returnVal); rlm@8: return returnVal; rlm@8: } rlm@8: rlm@8: void rlm@8: PROCESSORSYSTEMRRR_SERVER_CLASS::MemoryRequestStore (UINT32 address, UINT32 data) rlm@8: { rlm@8: if(memory == NULL) { rlm@8: memory = new FUNCP_SIMULATED_MEMORY_CLASS(); rlm@8: } rlm@8: rlm@8: memory->Write(0,(UINT64) address, sizeof(UINT32), &data); rlm@8: }