X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Flib%2Ftossim%2FTossimActiveMessageC.nc;h=eb9f49b234f9421e528161eab3b6e844583e4632;hb=da0cfeda9689aa64cfce0aa209f51803dcb11c21;hp=47a29214ab43a2e5214f77e11862bef746030883;hpb=594acbf436f5f78611348f7763a89c84f38ba46a;p=tinyos-2.x.git diff --git a/tos/lib/tossim/TossimActiveMessageC.nc b/tos/lib/tossim/TossimActiveMessageC.nc index 47a29214..eb9f49b2 100644 --- a/tos/lib/tossim/TossimActiveMessageC.nc +++ b/tos/lib/tossim/TossimActiveMessageC.nc @@ -84,26 +84,10 @@ implementation { return call Packet.maxPayloadLength(); } - command void* AMSend.getPayload[am_id_t id](message_t* m) { - return call Packet.getPayload(m, NULL); - } - - command void* Receive.getPayload[am_id_t id](message_t* m, uint8_t* len) { + command void* AMSend.getPayload[am_id_t id](message_t* m, uint8_t len) { return call Packet.getPayload(m, len); } - command uint8_t Receive.payloadLength[am_id_t id](message_t* m) { - return call Packet.payloadLength(m); - } - - command void* Snoop.getPayload[am_id_t id](message_t* m, uint8_t* len) { - return call Packet.getPayload(m, len); - } - - command uint8_t Snoop.payloadLength[am_id_t id](message_t* m) { - return call Packet.payloadLength(m); - } - command int8_t TossimPacket.strength(message_t* msg) { return getMetadata(msg)->strength; } @@ -119,7 +103,7 @@ implementation { void* payload; memcpy(bufferPointer, msg, sizeof(message_t)); - payload = call Packet.getPayload(bufferPointer, &len); + payload = call Packet.getPayload(bufferPointer, call Packet.maxPayloadLength()); if (call AMPacket.isForMe(msg)) { dbg("AM", "Received active message (%p) of type %hhu and length %hhu for me @ %s.\n", bufferPointer, call AMPacket.type(bufferPointer), len, sim_time_string()); @@ -193,11 +177,13 @@ implementation { return TOSH_DATA_LENGTH; } - command void* Packet.getPayload(message_t* msg, uint8_t* len) { - if (len != NULL) { - *len = call Packet.payloadLength(msg); + command void* Packet.getPayload(message_t* msg, uint8_t len) { + if (len <= TOSH_DATA_LENGTH) { + return msg->data; + } + else { + return NULL; } - return msg->data; } command am_group_t AMPacket.group(message_t* amsg) {