}
command void Packet.clear(message_t* msg) {
- memset(msg, 0, sizeof(message_t));
+ memset(getHeader(msg), 0, sizeof(xe1205_header_t));
+ memset(getFooter(msg), 0, sizeof(xe1205_footer_t));
+ memset(getMetadata(msg), 0, sizeof(xe1205_metadata_t));
}
command uint8_t Packet.payloadLength(message_t* msg) {
return datalen + sizeof(xe1205_header_t) + sizeof(xe1205_footer_t) + sizeof(xe1205_phy_header_t);
}
- task void signalPacketReceived() __attribute__ ((noinline)) {
+ task void signalPacketReceived() {
atomic {
getMetadata((message_t*) rxMsgPtr)->length = rxPhyHdr.length;
(((getHeader((message_t*)rxMsgPtr))->ack)& 0x01)==1) {
post sendAck();
} else {
- atomic rxBufPtr = NULL;
- rxMsgPtr = signal Receive.receive(rxMsgPtr, rxMsgPtr->data, getMetadata(rxMsgPtr)->length);
+ post signalPacketReceived();
}
}