mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Remove unnecessary casts
The volatile qualifier on the __LDREX/__STREX prototypes only means that it's safe to use them on volatile objects. Doesn't mean you actually have to pass them volatile pointers. Adding the volatile is a bit like doing strlen((const char *) ptr) because you've got a non-const pointer.pull/6368/head
							parent
							
								
									5523d53f83
								
							
						
					
					
						commit
						f62b93926a
					
				| 
						 | 
				
			
			@ -119,26 +119,26 @@ void core_util_critical_section_exit(void)
 | 
			
		|||
bool core_util_atomic_cas_u8(uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_t desiredValue)
 | 
			
		||||
{
 | 
			
		||||
    do {
 | 
			
		||||
        uint8_t currentValue = __LDREXB((volatile uint8_t*)ptr);
 | 
			
		||||
        uint8_t currentValue = __LDREXB(ptr);
 | 
			
		||||
        if (currentValue != *expectedCurrentValue) {
 | 
			
		||||
            *expectedCurrentValue = currentValue;
 | 
			
		||||
            __CLREX();
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    } while (__STREXB(desiredValue, (volatile uint8_t*)ptr));
 | 
			
		||||
    } while (__STREXB(desiredValue, ptr));
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool core_util_atomic_cas_u16(uint16_t *ptr, uint16_t *expectedCurrentValue, uint16_t desiredValue)
 | 
			
		||||
{
 | 
			
		||||
    do {
 | 
			
		||||
        uint16_t currentValue = __LDREXH((volatile uint16_t*)ptr);
 | 
			
		||||
        uint16_t currentValue = __LDREXH(ptr);
 | 
			
		||||
        if (currentValue != *expectedCurrentValue) {
 | 
			
		||||
            *expectedCurrentValue = currentValue;
 | 
			
		||||
            __CLREX();
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    } while (__STREXH(desiredValue, (volatile uint16_t*)ptr));
 | 
			
		||||
    } while (__STREXH(desiredValue, ptr));
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -146,13 +146,13 @@ bool core_util_atomic_cas_u16(uint16_t *ptr, uint16_t *expectedCurrentValue, uin
 | 
			
		|||
bool core_util_atomic_cas_u32(uint32_t *ptr, uint32_t *expectedCurrentValue, uint32_t desiredValue)
 | 
			
		||||
{
 | 
			
		||||
    do {
 | 
			
		||||
        uint32_t currentValue = __LDREXW((volatile uint32_t*)ptr);
 | 
			
		||||
        uint32_t currentValue = __LDREXW(ptr);
 | 
			
		||||
        if (currentValue != *expectedCurrentValue) {
 | 
			
		||||
            *expectedCurrentValue = currentValue;
 | 
			
		||||
            __CLREX();
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    } while (__STREXW(desiredValue, (volatile uint32_t*)ptr));
 | 
			
		||||
    } while (__STREXW(desiredValue, ptr));
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -160,8 +160,8 @@ uint8_t core_util_atomic_incr_u8(uint8_t *valuePtr, uint8_t delta)
 | 
			
		|||
{
 | 
			
		||||
    uint8_t newValue;
 | 
			
		||||
    do {
 | 
			
		||||
        newValue = __LDREXB((volatile uint8_t*)valuePtr) + delta;
 | 
			
		||||
    } while (__STREXB(newValue, (volatile uint8_t*)valuePtr));
 | 
			
		||||
        newValue = __LDREXB(valuePtr) + delta;
 | 
			
		||||
    } while (__STREXB(newValue, valuePtr));
 | 
			
		||||
    return newValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -169,8 +169,8 @@ uint16_t core_util_atomic_incr_u16(uint16_t *valuePtr, uint16_t delta)
 | 
			
		|||
{
 | 
			
		||||
    uint16_t newValue;
 | 
			
		||||
    do {
 | 
			
		||||
        newValue = __LDREXH((volatile uint16_t*)valuePtr) + delta;
 | 
			
		||||
    } while (__STREXH(newValue, (volatile uint16_t*)valuePtr));
 | 
			
		||||
        newValue = __LDREXH(valuePtr) + delta;
 | 
			
		||||
    } while (__STREXH(newValue, valuePtr));
 | 
			
		||||
    return newValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -178,8 +178,8 @@ uint32_t core_util_atomic_incr_u32(uint32_t *valuePtr, uint32_t delta)
 | 
			
		|||
{
 | 
			
		||||
    uint32_t newValue;
 | 
			
		||||
    do {
 | 
			
		||||
        newValue = __LDREXW((volatile uint32_t*)valuePtr) + delta;
 | 
			
		||||
    } while (__STREXW(newValue, (volatile uint32_t*)valuePtr));
 | 
			
		||||
        newValue = __LDREXW(valuePtr) + delta;
 | 
			
		||||
    } while (__STREXW(newValue, valuePtr));
 | 
			
		||||
    return newValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -188,8 +188,8 @@ uint8_t core_util_atomic_decr_u8(uint8_t *valuePtr, uint8_t delta)
 | 
			
		|||
{
 | 
			
		||||
    uint8_t newValue;
 | 
			
		||||
    do {
 | 
			
		||||
        newValue = __LDREXB((volatile uint8_t*)valuePtr) - delta;
 | 
			
		||||
    } while (__STREXB(newValue, (volatile uint8_t*)valuePtr));
 | 
			
		||||
        newValue = __LDREXB(valuePtr) - delta;
 | 
			
		||||
    } while (__STREXB(newValue, valuePtr));
 | 
			
		||||
    return newValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -197,8 +197,8 @@ uint16_t core_util_atomic_decr_u16(uint16_t *valuePtr, uint16_t delta)
 | 
			
		|||
{
 | 
			
		||||
    uint16_t newValue;
 | 
			
		||||
    do {
 | 
			
		||||
        newValue = __LDREXH((volatile uint16_t*)valuePtr) - delta;
 | 
			
		||||
    } while (__STREXH(newValue, (volatile uint16_t*)valuePtr));
 | 
			
		||||
        newValue = __LDREXH(valuePtr) - delta;
 | 
			
		||||
    } while (__STREXH(newValue, valuePtr));
 | 
			
		||||
    return newValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -206,8 +206,8 @@ uint32_t core_util_atomic_decr_u32(uint32_t *valuePtr, uint32_t delta)
 | 
			
		|||
{
 | 
			
		||||
    uint32_t newValue;
 | 
			
		||||
    do {
 | 
			
		||||
        newValue = __LDREXW((volatile uint32_t*)valuePtr) - delta;
 | 
			
		||||
    } while (__STREXW(newValue, (volatile uint32_t*)valuePtr));
 | 
			
		||||
        newValue = __LDREXW(valuePtr) - delta;
 | 
			
		||||
    } while (__STREXW(newValue, valuePtr));
 | 
			
		||||
    return newValue;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue