Znalazłem poniższy kod w https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h
static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v)
{
return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i);
}
#define arch_atomic_sub_and_test arch_atomic_sub_and_test
co tak #define
naprawdę robi? Kiedy jest to konieczne?