]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/cc1000/CC1000SendReceiveP.nc
Remove bogus 'tab:4' and 'tab:2' markers.
[tinyos-2.x.git] / tos / chips / cc1000 / CC1000SendReceiveP.nc
index a4aec3989936334a092b3ae7dd5f1ccc412a8421..19700e066bfe7083e3c3c6d1262fcd3fdafc4655 100644 (file)
@@ -1,6 +1,6 @@
 // $Id$
 
-/*                                                                     tab:4
+/*
  * "Copyright (c) 2000-2005 The Regents of the University  of California.  
  * All rights reserved.
  *
@@ -122,26 +122,26 @@ implementation
 
   uint16_t rxShiftBuf;
   message_t rxBuf;
-  message_t *rxBufPtr = &rxBuf;
+  message_t * ONE rxBufPtr = &rxBuf;
 
   uint16_t preambleLength;
-  message_t *txBufPtr;
+  message_t * ONE_NOK txBufPtr;
   uint8_t nextTxByte;
 
   const_uint8_t ackCode[5] = { 0xab, ACK_BYTE1, ACK_BYTE2, 0xaa, 0xaa };
 
   /* Packet structure accessor functions. Note that everything is
    * relative to the data field. */
-  cc1000_header_t *getHeader(message_t *amsg) {
-    return (cc1000_header_t *)(amsg->data - sizeof(cc1000_header_t));
+  cc1000_header_t * ONE getHeader(message_t * ONE amsg) {
+    return TCAST(cc1000_header_t * ONE, (uint8_t *)amsg + offsetof(message_t, data) - sizeof(cc1000_header_t));
   }
 
-  cc1000_footer_t *getFooter(message_t *amsg) {
+  cc1000_footer_t *getFooter(message_t * ONE amsg) {
     return (cc1000_footer_t *)(amsg->footer);
   }
   
-  cc1000_metadata_t *getMetadata(message_t *amsg) {
-    return (cc1000_metadata_t *)((uint8_t *)amsg->footer + sizeof(cc1000_footer_t));
+  cc1000_metadata_t * ONE getMetadata(message_t * ONE amsg) {
+    return TCAST(cc1000_metadata_t * ONE, (uint8_t *)amsg + offsetof(message_t, footer) + sizeof(cc1000_footer_t));
   }
   
   /* State transition functions */
@@ -498,7 +498,7 @@ implementation
 
     rxShiftBuf = rxShiftBuf << 8 | in;
     nextByte = rxShiftBuf >> f.rxBitOffset;
-    ((uint8_t *)rxBufPtr)[count++] = nextByte;
+    ((uint8_t *COUNT(sizeof(message_t)))rxBufPtr)[count++] = nextByte;
 
     // Adjust rxLength to correspond to the corresponding offset in message_t
     rxLength += offsetof(message_t, data);
@@ -568,22 +568,16 @@ implementation
   }
 
   void packetReceiveDone() {
-    message_t* pBuf;
     uint16_t snr;
-    atomic {
-      if (radioState != RECEIVED_STATE) {
-       return;
-      }
-      pBuf = rxBufPtr;
-    }
-    snr = (uint16_t) getMetadata(pBuf)->strength_or_preamble;
+
+    snr = (uint16_t) getMetadata(rxBufPtr)->strength_or_preamble;
     /* Higher signal strengths have lower voltages. So see if we're
        CC1000_WHITE_BIT_THRESH *below* the noise floor. */
     if ((snr + CC1000_WHITE_BIT_THRESH) < ((call CC1000Squelch.get()))) {
-      getMetadata(pBuf)->metadataBits |= CC1000_WHITE_BIT;
+      getMetadata(rxBufPtr)->metadataBits |= CC1000_WHITE_BIT;
     }
     else {
-      getMetadata(pBuf)->metadataBits &= ~CC1000_WHITE_BIT;
+      getMetadata(rxBufPtr)->metadataBits &= ~CC1000_WHITE_BIT;
     }
     
     post signalPacketReceived();
@@ -653,7 +647,7 @@ implementation
 
   command void* Packet.getPayload(message_t *msg, uint8_t len) {
     if (len <= TOSH_DATA_LENGTH) {
-      return (void*)msg->data;
+      return (void* COUNT_NOK(len))msg->data;
     }
     else {
       return NULL;