X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fxe1205%2FXE1205SendReceiveP.nc;h=9d11b1c4728024d8440da7e1f27568d1ea9e5a79;hb=e9bfab607e051bae6afb47b44892ce37541d1b44;hp=e8e41e7b57fc5c4df174ab9ed3391c4c252111b7;hpb=7c9cfc86286f6b4db85cf700a6032b3eccdc8ea0;p=tinyos-2.x.git diff --git a/tos/chips/xe1205/XE1205SendReceiveP.nc b/tos/chips/xe1205/XE1205SendReceiveP.nc index e8e41e7b..9d11b1c4 100644 --- a/tos/chips/xe1205/XE1205SendReceiveP.nc +++ b/tos/chips/xe1205/XE1205SendReceiveP.nc @@ -380,7 +380,9 @@ implementation { } 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) { @@ -431,7 +433,7 @@ implementation { 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; @@ -464,8 +466,7 @@ implementation { (((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(); } }