*/
void sendReply(error_t error, storage_len_t len)
{
- SerialReplyPacket *srpkt = (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg);
+ SerialReplyPacket *srpkt = (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg, sizeof(SerialReplyPacket));
+ if (srpkt == NULL) {
+ return;
+ }
if (error == SUCCESS) {
srpkt->error = SERIALMSG_SUCCESS;
} else {
error_t error)
{
if (state == S_READ) {
- SerialReplyPacket *serialMsg_payload = (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg);
+ SerialReplyPacket *serialMsg_payload = (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg, sizeof(SerialReplyPacket));
+ if (serialMsg_payload == NULL) {
+ return;
+ }
if (buf == serialMsg_payload->data) {
state = S_IDLE;
sendReply(error, len + sizeof(SerialReplyPacket));
state = S_IDLE;
if (error == SUCCESS) {
- SerialReplyPacket *srpkt = (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg);
+ SerialReplyPacket *srpkt = (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg, sizeof(SerialReplyPacket));
+ if (srpkt == NULL) {
+ return;
+ }
srpkt->data[1] = crc & 0xFF;
srpkt->data[0] = (crc >> 8) & 0xFF;
}
error_t error = SUCCESS;
SerialReqPacket *srpkt = (SerialReqPacket *)payload;
SerialReplyPacket *serialMsg_payload =
- (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg);
+ (SerialReplyPacket *)call SerialAMSender.getPayload(&serialMsg, sizeof(SerialReplyPacket));
uint8_t img_num = 0xFF;
-
+
+ if (serialMsg_payload == NULL) {
+ return msg;
+ }
// Converts the image number that the user wants to the real image number
switch (srpkt->img_num) {
case 0:
- img_num = VOLUME_DELUGE0;
+ img_num = VOLUME_GOLDENIMAGE;
break;
case 1:
img_num = VOLUME_DELUGE1;
break;
+ case 2:
+ img_num = VOLUME_DELUGE2;
+ break;
+ case 3:
+ img_num = VOLUME_DELUGE3;
+ break;
}
if (img_num != 0xFF) {
case SERIALMSG_SYNC: // === Sync the flash ===
state = S_SYNC;
error = call BlockWrite.sync[img_num]();
+ break;
#ifdef DELUGE
case SERIALMSG_ADDR: // === Gets the physical starting address of a volume ===
*(nx_uint32_t*)(&serialMsg_payload->data) =