mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Add some functionality to atomic stubs
							parent
							
								
									168b51c415
								
							
						
					
					
						commit
						31fbed9066
					
				| 
						 | 
				
			
			@ -57,113 +57,143 @@ uint32_t core_util_atomic_exchange_u32(volatile uint32_t *ptr, uint32_t desiredV
 | 
			
		|||
 | 
			
		||||
uint8_t core_util_atomic_incr_u8(volatile uint8_t *valuePtr, uint8_t delta)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    return *valuePtr+=delta;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_incr_u16(volatile uint16_t *valuePtr, uint16_t delta)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    return *valuePtr+=delta;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_incr_u32(volatile uint32_t *valuePtr, uint32_t delta)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    return *valuePtr+=delta;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t core_util_atomic_decr_u8(volatile uint8_t *valuePtr, uint8_t delta)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    return *valuePtr-=delta;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_decr_u16(volatile uint16_t *valuePtr, uint16_t delta)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    return *valuePtr-=delta;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_decr_u32(volatile uint32_t *valuePtr, uint32_t delta)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    return *valuePtr-=delta;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t core_util_atomic_fetch_add_u8(volatile uint8_t *valuePtr, uint8_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint8_t v = *valuePtr;
 | 
			
		||||
    *valuePtr += arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_fetch_add_u16(volatile uint16_t *valuePtr, uint16_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint16_t v = *valuePtr;
 | 
			
		||||
    *valuePtr += arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_fetch_add_u32(volatile uint32_t *valuePtr, uint32_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint32_t v = *valuePtr;
 | 
			
		||||
    *valuePtr += arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t core_util_atomic_fetch_sub_u8(volatile uint8_t *valuePtr, uint8_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint8_t v = *valuePtr;
 | 
			
		||||
    *valuePtr -= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_fetch_sub_u16(volatile uint16_t *valuePtr, uint16_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint16_t v = *valuePtr;
 | 
			
		||||
    *valuePtr -= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_fetch_sub_u32(volatile uint32_t *valuePtr, uint32_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint32_t v = *valuePtr;
 | 
			
		||||
    *valuePtr -= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t core_util_atomic_fetch_and_u8(volatile uint8_t *valuePtr, uint8_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint8_t v = *valuePtr;
 | 
			
		||||
    *valuePtr &= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_fetch_and_u16(volatile uint16_t *valuePtr, uint16_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint16_t v = *valuePtr;
 | 
			
		||||
    *valuePtr &= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_fetch_and_u32(volatile uint32_t *valuePtr, uint32_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint32_t v = *valuePtr;
 | 
			
		||||
    *valuePtr &= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t core_util_atomic_fetch_or_u8(volatile uint8_t *valuePtr, uint8_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint8_t v = *valuePtr;
 | 
			
		||||
    *valuePtr |= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_fetch_or_u16(volatile uint16_t *valuePtr, uint16_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint16_t v = *valuePtr;
 | 
			
		||||
    *valuePtr |= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_fetch_or_u32(volatile uint32_t *valuePtr, uint32_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint32_t v = *valuePtr;
 | 
			
		||||
    *valuePtr |= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint8_t core_util_atomic_fetch_xor_u8(volatile uint8_t *valuePtr, uint8_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint8_t v = *valuePtr;
 | 
			
		||||
    *valuePtr ^= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint16_t core_util_atomic_fetch_xor_u16(volatile uint16_t *valuePtr, uint16_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint16_t v = *valuePtr;
 | 
			
		||||
    *valuePtr ^= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t core_util_atomic_fetch_xor_u32(volatile uint32_t *valuePtr, uint32_t arg)
 | 
			
		||||
{
 | 
			
		||||
    return 0;
 | 
			
		||||
    uint32_t v = *valuePtr;
 | 
			
		||||
    *valuePtr ^= arg;
 | 
			
		||||
    return v;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue