]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/xe1205/XE1205SendReceiveP.nc
Merge TinyOS 2.1.1 into master.
[tinyos-2.x.git] / tos / chips / xe1205 / XE1205SendReceiveP.nc
index e8e41e7b57fc5c4df174ab9ed3391c4c252111b7..9d11b1c4728024d8440da7e1f27568d1ea9e5a79 100644 (file)
@@ -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();
      }
 
  }