diff --git a/sys/powerpc/include/atomic.h b/sys/powerpc/include/atomic.h index bccfa5f..799bfb8 100644 --- a/sys/powerpc/include/atomic.h +++ b/sys/powerpc/include/atomic.h @@ -672,6 +672,7 @@ atomic_cmpset_rel_long(volatile u_long *p, u_long cmpval, u_long newval) * zero if the compare failed and sets *cmpval to the read value from *p, * nonzero otherwise. */ +#if 0 static __inline int atomic_fcmpset_int(volatile u_int *p, u_int *cmpval, u_int newval) { @@ -732,6 +733,27 @@ atomic_fcmpset_long(volatile u_long *p, u_long *cmpval, u_long newval) return (ret); } +#endif + +static __inline int +atomic_fcmpset_int(volatile u_int *dst, u_int *expect, u_int src) +{ + + if (atomic_cmpset_int(dst, *expect, src)) + return (1); + *expect = *dst; + return (0); +} + +static __inline int +atomic_fcmpset_long(volatile u_long *dst, u_long *expect, u_long src) +{ + + if (atomic_cmpset_long(dst, *expect, src)) + return (1); + *expect = *dst; + return (0); +} static __inline int atomic_fcmpset_acq_int(volatile u_int *p, u_int *cmpval, u_int newval)