diff options
author | Richard Braun <rbraun@sceen.net> | 2019-08-16 03:47:14 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2019-08-16 03:47:14 +0200 |
commit | 8d3129dc0fe1b89e62b73fb789affbca2d365760 (patch) | |
tree | 9e91626bf38645941a1b4caeeef646a1b17c1861 | |
parent | 16b683b343fba4792fc4e99b0c7a7010c00eed3f (diff) |
kern/latomic: implement fences as atomic signal fences
-rw-r--r-- | kern/latomic.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/kern/latomic.h b/kern/latomic.h index 683720af..8e93028e 100644 --- a/kern/latomic.h +++ b/kern/latomic.h @@ -31,6 +31,11 @@ * as memory-mapped device registers, while other operations only require * interrupt safety. * + * Also note that interrupts are considered to strictly match the definition + * of signals as described in the specification of program execution in + * the C language. This defines the forms of communication allowed with + * interrupts handlers. + * * This header provides a generic implementation. Architectures can * individually override any of the operations provided by this module. */ @@ -140,10 +145,6 @@ MACRO_BEGIN \ latomic_select(ptr, xor)(ptr, val, memorder); \ MACRO_END -#define latomic_fence(memorder) \ -MACRO_BEGIN \ - assert(memorder != LATOMIC_RELAXED); \ - barrier(); \ -MACRO_END +#define latomic_fence(memorder) __atomic_signal_fence(memorder) #endif /* KERN_LATOMIC_H */ |