]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Remove rounding error in PoolP.nc, fix async warnings in BitVectorC.
authorscipio <scipio>
Wed, 20 Jan 2010 19:59:07 +0000 (19:59 +0000)
committerscipio <scipio>
Wed, 20 Jan 2010 19:59:07 +0000 (19:59 +0000)
tos/system/BitVectorC.nc
tos/system/PoolP.nc

index b3387934d2f64f18acd62b3f33c4b7298e560f51..816484795b10db3f6d3875e457ca37130d1d73f4 100644 (file)
@@ -75,22 +75,22 @@ implementation
 
   async command bool BitVector.get(uint16_t bitnum)
   {
 
   async command bool BitVector.get(uint16_t bitnum)
   {
-    return (m_bits[getIndex(bitnum)] & getMask(bitnum)) ? TRUE : FALSE;
+    atomic {return (m_bits[getIndex(bitnum)] & getMask(bitnum)) ? TRUE : FALSE;}
   }
 
   async command void BitVector.set(uint16_t bitnum)
   {
   }
 
   async command void BitVector.set(uint16_t bitnum)
   {
-    m_bits[getIndex(bitnum)] |= getMask(bitnum);
+    atomic {m_bits[getIndex(bitnum)] |= getMask(bitnum);}
   }
 
   async command void BitVector.clear(uint16_t bitnum)
   {
   }
 
   async command void BitVector.clear(uint16_t bitnum)
   {
-    m_bits[getIndex(bitnum)] &= ~getMask(bitnum);
+    atomic {m_bits[getIndex(bitnum)] &= ~getMask(bitnum);}
   }
 
   async command void BitVector.toggle(uint16_t bitnum)
   {
   }
 
   async command void BitVector.toggle(uint16_t bitnum)
   {
-    m_bits[getIndex(bitnum)] ^= getMask(bitnum);
+    atomic {m_bits[getIndex(bitnum)] ^= getMask(bitnum);}
   }
 
   async command void BitVector.assign(uint16_t bitnum, bool value)
   }
 
   async command void BitVector.assign(uint16_t bitnum, bool value)
index 14dbec6659d266e7c1b2111664568d69aaae786e..9011d6cfd273898c93c904d0fde6c6a4e3fffd1f 100644 (file)
@@ -105,7 +105,7 @@ implementation {
       return FAIL;
     }
     else {
       return FAIL;
     }
     else {
-      uint8_t emptyIndex = (index + free);
+      uint16_t emptyIndex = (index + free);
       if (emptyIndex >= size) {
         emptyIndex -= size;
       }
       if (emptyIndex >= size) {
         emptyIndex -= size;
       }