mirror of
https://github.com/xen-project/xen.git
synced 2026-10-30 03:00:05 +01:00
x86: drop unused barrier parameter from build_{read,write}_atomic()
Also take the opportunity and make an attempt at making the macro definitions readable. Drop pointless casts while doing so. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
1 parent
5a0b9fba92
commit
8fd2fe0bbf
1 file changed
+18
-14
@@ -4,15 +4,19 @@
|
||||
#include <xen/atomic.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
#define build_read_atomic(name, size, type, reg, barrier) \
|
||||
#define build_read_atomic(name, size, type, reg) \
|
||||
static inline type name(const volatile type *addr) \
|
||||
{ type ret; asm volatile("mov" size " %1,%0":reg (ret) \
|
||||
:"m" (*(volatile type *)addr) barrier); return ret; }
|
||||
{ \
|
||||
type ret; \
|
||||
asm volatile ( "mov" size " %1,%0" : reg (ret) : "m" (*addr) ); \
|
||||
return ret; \
|
||||
}
|
||||
|
||||
#define build_write_atomic(name, size, type, reg, barrier) \
|
||||
#define build_write_atomic(name, size, type, reg) \
|
||||
static inline void name(volatile type *addr, type val) \
|
||||
{ asm volatile("mov" size " %1,%0": "=m" (*(volatile type *)addr) \
|
||||
:reg (val) barrier); }
|
||||
{ \
|
||||
asm volatile ( "mov" size " %1,%0" : "=m" (*addr) : reg (val) ); \
|
||||
}
|
||||
|
||||
#define build_add_sized(name, size, type, reg) \
|
||||
static inline void name(volatile type *addr, type val) \
|
||||
@@ -22,15 +26,15 @@ static inline void name(volatile type *addr, type val) \
|
||||
: reg (val)); \
|
||||
}
|
||||
|
||||
build_read_atomic(read_u8_atomic, "b", uint8_t, "=q", )
|
||||
build_read_atomic(read_u16_atomic, "w", uint16_t, "=r", )
|
||||
build_read_atomic(read_u32_atomic, "l", uint32_t, "=r", )
|
||||
build_read_atomic(read_u64_atomic, "q", uint64_t, "=r", )
|
||||
build_read_atomic(read_u8_atomic, "b", uint8_t, "=q")
|
||||
build_read_atomic(read_u16_atomic, "w", uint16_t, "=r")
|
||||
build_read_atomic(read_u32_atomic, "l", uint32_t, "=r")
|
||||
build_read_atomic(read_u64_atomic, "q", uint64_t, "=r")
|
||||
|
||||
build_write_atomic(write_u8_atomic, "b", uint8_t, "q", )
|
||||
build_write_atomic(write_u16_atomic, "w", uint16_t, "r", )
|
||||
build_write_atomic(write_u32_atomic, "l", uint32_t, "r", )
|
||||
build_write_atomic(write_u64_atomic, "q", uint64_t, "r", )
|
||||
build_write_atomic(write_u8_atomic, "b", uint8_t, "q")
|
||||
build_write_atomic(write_u16_atomic, "w", uint16_t, "r")
|
||||
build_write_atomic(write_u32_atomic, "l", uint32_t, "r")
|
||||
build_write_atomic(write_u64_atomic, "q", uint64_t, "r")
|
||||
|
||||
build_add_sized(add_u8_sized, "b", uint8_t, "qi")
|
||||
build_add_sized(add_u16_sized, "w", uint16_t, "ri")
|
||||
|
||||