mirror of https://github.com/ARMmbed/mbed-os.git
Reimplement atomic code in inline assembly. This can improve optimisation, and avoids potential architectural problems with using LDREX/STREX intrinsics. API further extended: * Bitwise operations (fetch_and/fetch_or/fetch_xor) * fetch_add and fetch_sub (like incr/decr, but returning old value - aligning with C++11) * compare_exchange_weak * Explicit memory order specification * Basic freestanding template overloads for C++ This gives our existing C implementation essentially all the functionality needed by C++11. An actual Atomic<T> template based upon these C functions could follow. |
||
---|---|---|
.. | ||
BlockDevice.h | ||
BufferedBlockDevice.cpp | ||
BufferedBlockDevice.h | ||
ChainingBlockDevice.cpp | ||
ChainingBlockDevice.h | ||
ExhaustibleBlockDevice.cpp | ||
ExhaustibleBlockDevice.h | ||
FlashSimBlockDevice.cpp | ||
FlashSimBlockDevice.h | ||
HeapBlockDevice.cpp | ||
HeapBlockDevice.h | ||
MBRBlockDevice.cpp | ||
MBRBlockDevice.h | ||
ObservingBlockDevice.cpp | ||
ObservingBlockDevice.h | ||
ProfilingBlockDevice.cpp | ||
ProfilingBlockDevice.h | ||
ReadOnlyBlockDevice.cpp | ||
ReadOnlyBlockDevice.h | ||
SlicingBlockDevice.cpp | ||
SlicingBlockDevice.h |