tlds
Transactional Operations for Linked Data Structures
|
#include <icc-sync.hpp>
Our partial specialization helper is parameterized based on the type (T), the number of bytes in the type (N), and if this is a subword, word or double-word access (W). We assume that all addresses are aligned.
T is necessary so that the caller doesn't need to perform any casts.
N is necessary because our implementation depends on the number of bytes.
W allows us to deduce the platform without ifdefing anything.
NB: We've only implemented partial templates for what we actually use. Extending this is straightforward.