Commit Graph

3 Commits (8a0af607f3c211178b1ac2a80f281662abb1e017)

Author SHA1 Message Date
Seppo Takalo 333b281000 Add moduletest for SlicingBlockDevice
This uses HeapBlockDevice for providing the underlying storage block.
Check boundaries that slicingblockdevice do not overlow over to unassigned
blocks.
2019-11-04 16:13:32 +02:00
Seppo Takalo 31fbed9066 Add some functionality to atomic stubs 2019-11-04 16:12:36 +02:00
Kevin Bracey 87396e0bf6 Assembler atomics
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.
2019-04-26 13:12:35 +03:00