From: scipio Date: Wed, 20 Jan 2010 19:59:07 +0000 (+0000) Subject: Remove rounding error in PoolP.nc, fix async warnings in BitVectorC. X-Git-Tag: rc_6_tinyos_2_1_1~48 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=267875ef02b9446e463c6f48b0930694f1b86716 Remove rounding error in PoolP.nc, fix async warnings in BitVectorC. --- diff --git a/tos/system/BitVectorC.nc b/tos/system/BitVectorC.nc index b3387934..81648479 100644 --- a/tos/system/BitVectorC.nc +++ b/tos/system/BitVectorC.nc @@ -75,22 +75,22 @@ implementation 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) { - m_bits[getIndex(bitnum)] |= getMask(bitnum); + atomic {m_bits[getIndex(bitnum)] |= getMask(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) { - m_bits[getIndex(bitnum)] ^= getMask(bitnum); + atomic {m_bits[getIndex(bitnum)] ^= getMask(bitnum);} } async command void BitVector.assign(uint16_t bitnum, bool value) diff --git a/tos/system/PoolP.nc b/tos/system/PoolP.nc index 14dbec66..9011d6cf 100644 --- a/tos/system/PoolP.nc +++ b/tos/system/PoolP.nc @@ -105,7 +105,7 @@ implementation { return FAIL; } else { - uint8_t emptyIndex = (index + free); + uint16_t emptyIndex = (index + free); if (emptyIndex >= size) { emptyIndex -= size; }