action
container
contrib
controller
coordinates
datalinklayer
datapool
devicehandlers
events
fdir
globalfunctions
health
internalError
ipc
memory
AcceptsMemoryMessagesIF.h
HasMemoryIF.h
MemoryHelper.cpp
MemoryHelper.h
MemoryMessage.cpp
MemoryMessage.h
MemoryProxyIF.h
modes
monitoring
objectmanager
osal
parameters
power
returnvalues
rmap
serialize
serviceinterface
storagemanager
subsystem
tasks
tcdistribution
thermal
timemanager
tmstorage
tmtcpacket
tmtcservices
.gitignore
LICENSE
NOTICE
framework.mk
114 lines
3.3 KiB
C++
114 lines
3.3 KiB
C++
#include <framework/memory/MemoryMessage.h>
|
|
#include <framework/objectmanager/ObjectManagerIF.h>
|
|
MemoryMessage::MemoryMessage() {
|
|
}
|
|
|
|
uint32_t MemoryMessage::getAddress(const CommandMessage* message) {
|
|
return message->getParameter();
|
|
}
|
|
|
|
store_address_t MemoryMessage::getStoreID(const CommandMessage* message) {
|
|
store_address_t temp;
|
|
temp.raw = message->getParameter2();
|
|
return temp;
|
|
}
|
|
|
|
uint32_t MemoryMessage::getLength(const CommandMessage* message) {
|
|
return message->getParameter2();
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryDumpCommand(CommandMessage* message,
|
|
uint32_t address, uint32_t length) {
|
|
message->setCommand(CMD_MEMORY_DUMP);
|
|
message->setParameter( address );
|
|
message->setParameter2( length );
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryDumpReply(CommandMessage* message, store_address_t storageID) {
|
|
message->setCommand(REPLY_MEMORY_DUMP);
|
|
message->setParameter2( storageID.raw );
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryLoadCommand(CommandMessage* message,
|
|
uint32_t address, store_address_t storageID) {
|
|
message->setCommand(CMD_MEMORY_LOAD);
|
|
message->setParameter( address );
|
|
message->setParameter2( storageID.raw );
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::getErrorCode(const CommandMessage* message) {
|
|
return message->getParameter();
|
|
}
|
|
|
|
void MemoryMessage::clear(CommandMessage* message) {
|
|
switch (message->getCommand()) {
|
|
case CMD_MEMORY_LOAD:
|
|
case REPLY_MEMORY_DUMP: {
|
|
StorageManagerIF *ipcStore = objectManager->get<StorageManagerIF>(
|
|
objects::IPC_STORE);
|
|
if (ipcStore != NULL) {
|
|
ipcStore->deleteData(getStoreID(message));
|
|
}
|
|
}
|
|
/* NO BREAK falls through*/
|
|
case CMD_MEMORY_DUMP:
|
|
case CMD_MEMORY_CHECK:
|
|
case REPLY_MEMORY_CHECK:
|
|
case END_OF_MEMORY_COPY:
|
|
message->setCommand(CommandMessage::CMD_NONE);
|
|
message->setParameter(0);
|
|
message->setParameter2(0);
|
|
break;
|
|
}
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryCheckCommand(CommandMessage* message,
|
|
uint32_t address, uint32_t length) {
|
|
message->setCommand(CMD_MEMORY_CHECK);
|
|
message->setParameter( address );
|
|
message->setParameter2( length );
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryCheckReply(CommandMessage* message,
|
|
uint16_t crc) {
|
|
message->setCommand(REPLY_MEMORY_CHECK);
|
|
message->setParameter( crc );
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|
|
void MemoryMessage::setCrcReturnValue(CommandMessage* message, ReturnValue_t returnValue){
|
|
message->setParameter(returnValue<<16);
|
|
};
|
|
|
|
uint16_t MemoryMessage::getCrc(const CommandMessage* message) {
|
|
return (uint16_t)(message->getParameter());
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::getCrcReturnValue(const CommandMessage* message){
|
|
return (message->getParameter()>>16);
|
|
}
|
|
|
|
Command_t MemoryMessage::getInitialCommand(const CommandMessage* message) {
|
|
return message->getParameter2();
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryReplyFailed(CommandMessage* message,
|
|
ReturnValue_t errorCode, Command_t initialCommand) {
|
|
message->setCommand(REPLY_MEMORY_FAILED);
|
|
message->setParameter(errorCode);
|
|
message->setParameter2(initialCommand);
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|
|
ReturnValue_t MemoryMessage::setMemoryCopyEnd(CommandMessage* message) {
|
|
message->setCommand(END_OF_MEMORY_COPY);
|
|
message->setParameter(0);
|
|
message->setParameter2(0);
|
|
return HasReturnvaluesIF::RETURN_OK;
|
|
}
|
|
|