diff options
author | jchandra <jchandra@FreeBSD.org> | 2011-01-28 06:12:59 +0000 |
---|---|---|
committer | jchandra <jchandra@FreeBSD.org> | 2011-01-28 06:12:59 +0000 |
commit | 494df61f3bbd6b98dbe420f0854c6f0cb98ad36d (patch) | |
tree | 80eaa36d6670c31bba13e4745294e76f87c8a16a /sys/cddl/compat/opensolaris | |
parent | 2501c5eeee6bb52fa0ab1ccf812fcc63c3c1177d (diff) | |
download | FreeBSD-src-494df61f3bbd6b98dbe420f0854c6f0cb98ad36d.zip FreeBSD-src-494df61f3bbd6b98dbe420f0854c6f0cb98ad36d.tar.gz |
CDDL fixes for MIPS n32.
Provide 64 bit atomic ops, and use 32 bit pointer.
Diffstat (limited to 'sys/cddl/compat/opensolaris')
-rw-r--r-- | sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c | 2 | ||||
-rw-r--r-- | sys/cddl/compat/opensolaris/sys/atomic.h | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c b/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c index bdb8f02..72d1557 100644 --- a/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c +++ b/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c @@ -52,7 +52,7 @@ atomic_init(void) } #endif -#ifndef __LP64__ +#if !defined(__LP64__) && !defined(__mips_n32) void atomic_add_64(volatile uint64_t *target, int64_t delta) { diff --git a/sys/cddl/compat/opensolaris/sys/atomic.h b/sys/cddl/compat/opensolaris/sys/atomic.h index 1a8bd45..ddfb325 100644 --- a/sys/cddl/compat/opensolaris/sys/atomic.h +++ b/sys/cddl/compat/opensolaris/sys/atomic.h @@ -36,9 +36,11 @@ atomic_cmpset_ptr((volatile uintptr_t *)(_a), (uintptr_t)(_b), (uintptr_t) (_c)) #define cas32 atomic_cmpset_32 -#ifndef __LP64__ +#if !defined(__LP64__) && !defined(__mips_n32) extern void atomic_add_64(volatile uint64_t *target, int64_t delta); extern void atomic_dec_64(volatile uint64_t *target); +#endif +#ifndef __LP64__ extern void *atomic_cas_ptr(volatile void *target, void *cmp, void *newval); #endif #ifndef __sparc64__ @@ -84,7 +86,7 @@ atomic_dec_32_nv(volatile uint32_t *target) return (atomic_fetchadd_32(target, -1) - 1); } -#ifdef __LP64__ +#if defined(__LP64__) || defined(__mips_n32) static __inline void atomic_dec_64(volatile uint64_t *target) { |