diff options
author | peter <peter@FreeBSD.org> | 2003-11-21 03:02:00 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2003-11-21 03:02:00 +0000 |
commit | aefda7ad568c8310cab954248c6703f913ae46f8 (patch) | |
tree | 779c5488e9da51760220a217de1843de9e844d6c /sys/amd64/include/atomic.h | |
parent | 8bb74c49aa521edbbb542e8e7c613a47c82a2007 (diff) | |
download | FreeBSD-src-aefda7ad568c8310cab954248c6703f913ae46f8.zip FreeBSD-src-aefda7ad568c8310cab954248c6703f913ae46f8.tar.gz |
Cosmetic and/or trivial sync up with i386.
Approved by: re (rwatson)
Diffstat (limited to 'sys/amd64/include/atomic.h')
-rw-r--r-- | sys/amd64/include/atomic.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/amd64/include/atomic.h b/sys/amd64/include/atomic.h index bc10631..cbee271 100644 --- a/sys/amd64/include/atomic.h +++ b/sys/amd64/include/atomic.h @@ -99,7 +99,8 @@ atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ __asm __volatile(__XSTRING(MPLOCKED) OP \ : "+m" (*p) \ : CONS (V)); \ -} +} \ +struct __hack #else /* !__GNUC__ */ @@ -150,7 +151,7 @@ atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src) " movzbq %%al,%0 ; " "1: " "# atomic_cmpset_long" - : "+a" (res) /* 0 (result) %rax, XXX check */ + : "+a" (res) /* 0 (result) */ : "r" (src), /* 1 */ "m" (*(dst)) /* 2 */ : "memory"); @@ -185,7 +186,8 @@ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ : "+m" (*p), /* 0 */ \ "+r" (v) /* 1 */ \ : : "memory"); \ -} +} \ +struct __hack #else /* !defined(__GNUC__) */ @@ -330,7 +332,11 @@ atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) static __inline void * atomic_load_acq_ptr(volatile void *p) { - return (void *)atomic_load_acq_long((volatile u_long *)p); + /* + * The apparently-bogus cast to intptr_t in the following is to + * avoid a warning from "gcc -Wbad-function-cast". + */ + return ((void *)(intptr_t)atomic_load_acq_long((volatile u_long *)p)); } static __inline void |