Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Nov 2002 23:35:22 -0800 (PST)
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 21259 for review
Message-ID:  <200211190735.gAJ7ZMDS059613@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=21259

Change 21259 by jmallett@jmallett_luna on 2002/11/18 23:35:03

	Too much unatomic clutter.  Fill in atomic_set_{int,long}, as
	they're the basis for most everything else, and other stuff can
	be added as it's actually needed.

Affected files ...

.. //depot/projects/mips/sys/mips/include/atomic.h#2 edit

Differences ...

==== //depot/projects/mips/sys/mips/include/atomic.h#2 (text+ko) ====

@@ -1,6 +1,5 @@
 /*-
- * Copyright (c) 2001 Jake Burkholder.
- * All rights reserved.
+ * Copyright (c) 2002 Juli Mallett.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -23,330 +22,43 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/sparc64/include/atomic.h,v 1.1 2001/07/31 05:45:16 jake Exp $
  */
 
-/*
- * This is not atomic.  It is just a stub to make things compile.
- */
-
 #ifndef	_MACHINE_ATOMIC_H_
 #define	_MACHINE_ATOMIC_H_
 
-#define	__atomic_op(p, op, v) ({					\
-	__typeof(*p) __v = (__typeof(*p))v;				\
-	*p op __v;							\
-})
+static __inline int
+atomic_set_int(int *p, int val)
+{
+	int temp;
 
-#define	__atomic_load(p) ({						\
-	__typeof(*p) __v;						\
-	__v = *p;							\
-	__v;								\
-})
+	__asm __volatile (
+	"ll	%[temp], %[p]\n\t"
+	"move	%[temp], %[val]\n\t"
+	"sc	%[temp], %[p]\n\t"
+	: [val] "=r"(val)
+	: [temp] "r"(temp), [p] "r"(p)
+	: "memory"
+	);
 
-#define	__atomic_load_clear(p) ({					\
-	__typeof(*p) __v;						\
-	__v = *p;							\
-	*p = 0;								\
-	__v;								\
-})
+	return (temp);
+}
 
-#define	__atomic_cas(p, e, s) ({					\
-	u_int __v;							\
-	if (*p == (__typeof(*p))e) {					\
-		*p = (__typeof(*p))s;					\
-		__v = 1;						\
-	} else {							\
-		__v = 0;						\
-	}								\
-	__v;								\
-})
+static __inline long
+atomic_set_long(long *p, long val)
+{
+	long temp;
 
-#define	__atomic_op_8(p, op, v)		__atomic_op(p, op, v)
-#define	__atomic_op_16(p, op, v)	__atomic_op(p, op, v)
-#define	__atomic_op_32(p, op, v)	__atomic_op(p, op, v)
-#define	__atomic_load_32(p)		__atomic_load(p)
-#define	__atomic_load_clear_32(p)	__atomic_load_clear(p)
-#define	__atomic_cas_32(p, e, s)	__atomic_cas(p, e, s)
-#define	__atomic_op_64(p, op, v)	__atomic_op(p, op, v)
-#define	__atomic_load_64(p)		__atomic_load(p)
-#define	__atomic_load_clear_64(p)	__atomic_load_clear(p)
-#define	__atomic_cas_64(p, e, s)	__atomic_cas(p, e, s)
+	__asm __volatile (
+	"lld	%[temp], %[p]\n\t"
+	"move	%[temp], %[val]\n\t"
+	"scd	%[temp], %[p]\n\t"
+	: [val] "=r"(val)
+	: [temp] "r"(temp), [p] "r"(p)
+	: "memory"
+	);
 
-#define	atomic_add_8(p, v)		__atomic_op_8(p, +=, v)
-#define	atomic_subtract_8(p, v)		__atomic_op_8(p, -=, v)
-#define	atomic_set_8(p, v)		__atomic_op_8(p, |=, v)
-#define	atomic_clear_8(p, v)		__atomic_op_8(p, &=, ~v)
-#define	atomic_store_8(p, v)		__atomic_op_8(p, =, v)
-
-#define	atomic_add_16(p, v)		__atomic_op_16(p, +=, v)
-#define	atomic_subtract_16(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_16(p, v)		__atomic_op_16(p, |=, v)
-#define	atomic_clear_16(p, v)		__atomic_op_16(p, &=, ~v)
-#define	atomic_store_16(p, v)		__atomic_op_16(p, =, v)
-
-#define	atomic_add_32(p, v)		__atomic_op_32(p, +=, v)
-#define	atomic_subtract_32(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_32(p, v)		__atomic_op_32(p, |=, v)
-#define	atomic_clear_32(p, v)		__atomic_op_32(p, &=, ~v)
-#define	atomic_store_32(p, v)		__atomic_op_32(p, =, v)
-#define	atomic_load_32(p)		__atomic_load_32(p)
-#define	atomic_readandclear_32(p)	__atomic_load_clear_32(p)
-#define	atomic_cmpset_32(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_64(p, v)		__atomic_op_64(p, +=, v)
-#define	atomic_subtract_64(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_64(p, v)		__atomic_op_64(p, |=, v)
-#define	atomic_clear_64(p, v)		__atomic_op_64(p, &=, ~v)
-#define	atomic_store_64(p, v)		__atomic_op_64(p, =, v)
-#define	atomic_load_64(p)		__atomic_load_64(p)
-#define	atomic_readandclear_64(p)	__atomic_load_clear_64(p)
-#define	atomic_cmpset_64(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_acq_8(p, v)		__atomic_op_8(p, +=, v)
-#define	atomic_subtract_acq_8(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_acq_8(p, v)		__atomic_op_8(p, |=, v)
-#define	atomic_clear_acq_8(p, v)	__atomic_op_8(p, &=, ~v)
-#define	atomic_store_acq_8(p, v)	__atomic_op_8(p, =, v)
-
-#define	atomic_add_acq_16(p, v)		__atomic_op_16(p, +=, v)
-#define	atomic_subtract_acq_16(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_acq_16(p, v)		__atomic_op_16(p, |=, v)
-#define	atomic_clear_acq_16(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_acq_16(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_acq_32(p, v)		__atomic_op_32(p, +=, v)
-#define	atomic_subtract_acq_32(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_acq_32(p, v)		__atomic_op_32(p, |=, v)
-#define	atomic_clear_acq_32(p, v)	__atomic_op_32(p, &=, ~v)
-#define	atomic_store_acq_32(p, v)	__atomic_op_32(p, =, v)
-#define	atomic_load_acq_32(p)		__atomic_load_32(p)
-#define	atomic_cmpset_acq_32(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_acq_64(p, v)		__atomic_op_64(p, +=, v)
-#define	atomic_subtract_acq_64(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_acq_64(p, v)		__atomic_op_64(p, |=, v)
-#define	atomic_clear_acq_64(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_acq_64(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_load_acq_64(p)		__atomic_load_64(p)
-#define	atomic_cmpset_acq_64(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_rel_8(p, v)		__atomic_op_8(p, +=, v)
-#define	atomic_subtract_rel_8(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_rel_8(p, v)		__atomic_op_8(p, |=, v)
-#define	atomic_clear_rel_8(p, v)	__atomic_op_8(p, &=, ~v)
-#define	atomic_store_rel_8(p, v)	__atomic_op_8(p, =, v)
-
-#define	atomic_add_rel_16(p, v)		__atomic_op_16(p, +=, v)
-#define	atomic_subtract_rel_16(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_rel_16(p, v)		__atomic_op_16(p, |=, v)
-#define	atomic_clear_rel_16(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_rel_16(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_rel_32(p, v)		__atomic_op_32(p, +=, v)
-#define	atomic_subtract_rel_32(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_rel_32(p, v)		__atomic_op_32(p, |=, v)
-#define	atomic_clear_rel_32(p, v)	__atomic_op_32(p, &=, ~v)
-#define	atomic_store_rel_32(p, v)	__atomic_op_32(p, =, v)
-#define	atomic_cmpset_rel_32(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_rel_64(p, v)		__atomic_op_64(p, +=, v)
-#define	atomic_subtract_rel_64(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_rel_64(p, v)		__atomic_op_64(p, |=, v)
-#define	atomic_clear_rel_64(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_rel_64(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_cmpset_rel_64(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_char(p, v)		__atomic_op_8(p, +=, v)
-#define	atomic_subtract_char(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_char(p, v)		__atomic_op_8(p, |=, v)
-#define	atomic_clear_char(p, v)		__atomic_op_8(p, &=, ~v)
-#define	atomic_store_char(p, v)		__atomic_op_8(p, =, v)
-
-#define	atomic_add_short(p, v)		__atomic_op_16(p, +=, v)
-#define	atomic_subtract_short(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_short(p, v)		__atomic_op_16(p, |=, v)
-#define	atomic_clear_short(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_short(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_int(p, v)		__atomic_op_32(p, +=, v)
-#define	atomic_subtract_int(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_int(p, v)		__atomic_op_32(p, |=, v)
-#define	atomic_clear_int(p, v)		__atomic_op_32(p, &=, ~v)
-#define	atomic_store_int(p, v)		__atomic_op_32(p, =, v)
-#define	atomic_load_int(p)		__atomic_load_32(p)
-#define	atomic_readandclear_int(p)	__atomic_load_clear_32(p)
-#define	atomic_cmpset_int(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_long(p, v)		__atomic_op_64(p, +=, v)
-#define	atomic_subtract_long(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_long(p, v)		__atomic_op_64(p, |=, v)
-#define	atomic_clear_long(p, v)		__atomic_op_64(p, &=, ~v)
-#define	atomic_store_long(p, v)		__atomic_op_64(p, =, v)
-#define	atomic_load_long(p)		__atomic_load_64(p)
-#define	atomic_readandclear_long(p)	__atomic_load_clear_64(p)
-#define	atomic_cmpset_long(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_acq_char(p, v)	__atomic_op_8(p, +=, v)
-#define	atomic_subtract_acq_char(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_acq_char(p, v)	__atomic_op_8(p, |=, v)
-#define	atomic_clear_acq_char(p, v)	__atomic_op_8(p, &=, ~v)
-#define	atomic_store_acq_char(p, v)	__atomic_op_8(p, =, v)
-
-#define	atomic_add_acq_short(p, v)	__atomic_op_16(p, +=, v)
-#define	atomic_subtract_acq_short(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_acq_short(p, v)	__atomic_op_16(p, |=, v)
-#define	atomic_clear_acq_short(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_acq_short(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_acq_int(p, v)	__atomic_op_32(p, +=, v)
-#define	atomic_subtract_acq_int(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_acq_int(p, v)	__atomic_op_32(p, |=, v)
-#define	atomic_clear_acq_int(p, v)	__atomic_op_32(p, &=, ~v)
-#define	atomic_store_acq_int(p, v)	__atomic_op_32(p, =, v)
-#define	atomic_load_acq_int(p)		__atomic_load_32(p)
-#define	atomic_cmpset_acq_int(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_acq_long(p, v)	__atomic_op_64(p, +=, v)
-#define	atomic_subtract_acq_long(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_acq_long(p, v)	__atomic_op_64(p, |=, v)
-#define	atomic_clear_acq_long(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_acq_long(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_load_acq_long(p)		__atomic_load_64(p)
-#define	atomic_cmpset_acq_long(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_rel_char(p, v)	__atomic_op_8(p, +=, v)
-#define	atomic_subtract_rel_char(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_rel_char(p, v)	__atomic_op_8(p, |=, v)
-#define	atomic_clear_rel_char(p, v)	__atomic_op_8(p, &=, ~v)
-#define	atomic_store_rel_char(p, v)	__atomic_op_8(p, =, v)
-
-#define	atomic_add_rel_short(p, v)	__atomic_op_16(p, +=, v)
-#define	atomic_subtract_rel_short(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_rel_short(p, v)	__atomic_op_16(p, |=, v)
-#define	atomic_clear_rel_short(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_rel_short(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_rel_int(p, v)	__atomic_op_32(p, +=, v)
-#define	atomic_subtract_rel_int(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_rel_int(p, v)	__atomic_op_32(p, |=, v)
-#define	atomic_clear_rel_int(p, v)	__atomic_op_32(p, &=, ~v)
-#define	atomic_store_rel_int(p, v)	__atomic_op_32(p, =, v)
-#define	atomic_cmpset_rel_int(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_rel_long(p, v)	__atomic_op_64(p, +=, v)
-#define	atomic_subtract_rel_long(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_rel_long(p, v)	__atomic_op_64(p, |=, v)
-#define	atomic_clear_rel_long(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_rel_long(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_cmpset_rel_long(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_char(p, v)		__atomic_op_8(p, +=, v)
-#define	atomic_subtract_char(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_char(p, v)		__atomic_op_8(p, |=, v)
-#define	atomic_clear_char(p, v)		__atomic_op_8(p, &=, ~v)
-#define	atomic_store_char(p, v)		__atomic_op_8(p, =, v)
-
-#define	atomic_add_short(p, v)		__atomic_op_16(p, +=, v)
-#define	atomic_subtract_short(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_short(p, v)		__atomic_op_16(p, |=, v)
-#define	atomic_clear_short(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_short(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_int(p, v)		__atomic_op_32(p, +=, v)
-#define	atomic_subtract_int(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_int(p, v)		__atomic_op_32(p, |=, v)
-#define	atomic_clear_int(p, v)		__atomic_op_32(p, &=, ~v)
-#define	atomic_store_int(p, v)		__atomic_op_32(p, =, v)
-#define	atomic_load_int(p)		__atomic_load_32(p)
-#define	atomic_readandclear_int(p)	__atomic_load_clear_32(p)
-#define	atomic_cmpset_int(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_long(p, v)		__atomic_op_64(p, +=, v)
-#define	atomic_subtract_long(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_long(p, v)		__atomic_op_64(p, |=, v)
-#define	atomic_clear_long(p, v)		__atomic_op_64(p, &=, ~v)
-#define	atomic_store_long(p, v)		__atomic_op_64(p, =, v)
-#define	atomic_load_long(p)		__atomic_load_64(p)
-#define	atomic_readandclear_long(p)	__atomic_load_clear_64(p)
-#define	atomic_cmpset_long(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_ptr(p, v)		__atomic_op_64(p, +=, v)
-#define	atomic_subtract_ptr(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_ptr(p, v)		__atomic_op_64(p, |=, v)
-#define	atomic_clear_ptr(p, v)		__atomic_op_64(p, &=, ~v)
-#define	atomic_store_ptr(p, v)		__atomic_op_64(p, =, v)
-#define	atomic_load_ptr(p)		__atomic_load_64(p)
-#define	atomic_readandclear_ptr(p)	__atomic_load_clear_64(p)
-#define	atomic_cmpset_ptr(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_acq_char(p, v)	__atomic_op_8(p, +=, v)
-#define	atomic_subtract_acq_char(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_acq_char(p, v)	__atomic_op_8(p, |=, v)
-#define	atomic_clear_acq_char(p, v)	__atomic_op_8(p, &=, ~v)
-#define	atomic_store_acq_char(p, v)	__atomic_op_8(p, =, v)
-
-#define	atomic_add_acq_short(p, v)	__atomic_op_16(p, +=, v)
-#define	atomic_subtract_acq_short(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_acq_short(p, v)	__atomic_op_16(p, |=, v)
-#define	atomic_clear_acq_short(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_acq_short(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_acq_int(p, v)	__atomic_op_32(p, +=, v)
-#define	atomic_subtract_acq_int(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_acq_int(p, v)	__atomic_op_32(p, |=, v)
-#define	atomic_clear_acq_int(p, v)	__atomic_op_32(p, &=, ~v)
-#define	atomic_store_acq_int(p, v)	__atomic_op_32(p, =, v)
-#define	atomic_load_acq_int(p)		__atomic_load_32(p)
-#define	atomic_cmpset_acq_int(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_acq_long(p, v)	__atomic_op_64(p, +=, v)
-#define	atomic_subtract_acq_long(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_acq_long(p, v)	__atomic_op_64(p, |=, v)
-#define	atomic_clear_acq_long(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_acq_long(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_load_acq_long(p)		__atomic_load_64(p)
-#define	atomic_cmpset_acq_long(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_acq_ptr(p, v)	__atomic_op_64(p, +=, v)
-#define	atomic_subtract_acq_ptr(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_acq_ptr(p, v)	__atomic_op_64(p, |=, v)
-#define	atomic_clear_acq_ptr(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_acq_ptr(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_load_acq_ptr(p)		__atomic_load_64(p)
-#define	atomic_cmpset_acq_ptr(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_rel_char(p, v)	__atomic_op_8(p, +=, v)
-#define	atomic_subtract_rel_char(p, v)	__atomic_op_8(p, -=, v)
-#define	atomic_set_rel_char(p, v)	__atomic_op_8(p, |=, v)
-#define	atomic_clear_rel_char(p, v)	__atomic_op_8(p, &=, ~v)
-#define	atomic_store_rel_char(p, v)	__atomic_op_8(p, =, v)
-
-#define	atomic_add_rel_short(p, v)	__atomic_op_16(p, +=, v)
-#define	atomic_subtract_rel_short(p, v)	__atomic_op_16(p, -=, v)
-#define	atomic_set_rel_short(p, v)	__atomic_op_16(p, |=, v)
-#define	atomic_clear_rel_short(p, v)	__atomic_op_16(p, &=, ~v)
-#define	atomic_store_rel_short(p, v)	__atomic_op_16(p, =, v)
-
-#define	atomic_add_rel_int(p, v)	__atomic_op_32(p, +=, v)
-#define	atomic_subtract_rel_int(p, v)	__atomic_op_32(p, -=, v)
-#define	atomic_set_rel_int(p, v)	__atomic_op_32(p, |=, v)
-#define	atomic_clear_rel_int(p, v)	__atomic_op_32(p, &=, ~v)
-#define	atomic_store_rel_int(p, v)	__atomic_op_32(p, =, v)
-#define	atomic_cmpset_rel_int(p, e, s)	__atomic_cas_32(p, e, s)
-
-#define	atomic_add_rel_long(p, v)	__atomic_op_64(p, +=, v)
-#define	atomic_subtract_rel_long(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_rel_long(p, v)	__atomic_op_64(p, |=, v)
-#define	atomic_clear_rel_long(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_rel_long(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_cmpset_rel_long(p, e, s)	__atomic_cas_64(p, e, s)
-
-#define	atomic_add_rel_ptr(p, v)	__atomic_op_64(p, +=, v)
-#define	atomic_subtract_rel_ptr(p, v)	__atomic_op_64(p, -=, v)
-#define	atomic_set_rel_ptr(p, v)	__atomic_op_64(p, |=, v)
-#define	atomic_clear_rel_ptr(p, v)	__atomic_op_64(p, &=, ~v)
-#define	atomic_store_rel_ptr(p, v)	__atomic_op_64(p, =, v)
-#define	atomic_cmpset_rel_ptr(p, e, s)	__atomic_cas_64(p, e, s)
+	return (temp);
+}
 
 #endif /* !_MACHINE_ATOMIC_H_ */

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211190735.gAJ7ZMDS059613>