Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Jun 2007 17:57:17 GMT
From:      Matt Jacob <mjacob@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 121279 for review
Message-ID:  <200706091757.l59HvHf2008469@repoman.freebsd.org>

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

Change 121279 by mjacob@mjexp on 2007/06/09 17:56:50

	IFC

Affected files ...

.. //depot/projects/mjexp/sys/amd64/conf/GENERIC#11 integrate
.. //depot/projects/mjexp/sys/arm/arm/busdma_machdep.c#6 integrate
.. //depot/projects/mjexp/sys/compat/opensolaris/kern/opensolaris_atomic.c#1 branch
.. //depot/projects/mjexp/sys/compat/opensolaris/sys/atomic.h#1 branch
.. //depot/projects/mjexp/sys/conf/NOTES#23 integrate
.. //depot/projects/mjexp/sys/conf/options#21 integrate
.. //depot/projects/mjexp/sys/contrib/ipfilter/netinet/fil.c#3 integrate
.. //depot/projects/mjexp/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#3 integrate
.. //depot/projects/mjexp/sys/contrib/opensolaris/common/atomic/i386/atomic.S#3 integrate
.. //depot/projects/mjexp/sys/contrib/opensolaris/common/atomic/ia64/atomic.S#1 branch
.. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 integrate
.. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/sys/asm_linkage.h#2 integrate
.. //depot/projects/mjexp/sys/contrib/opensolaris/uts/common/sys/atomic.h#2 delete
.. //depot/projects/mjexp/sys/dev/an/if_an.c#3 integrate
.. //depot/projects/mjexp/sys/dev/bge/if_bge.c#18 edit
.. //depot/projects/mjexp/sys/dev/cardbus/cardbus_cis.c#3 integrate
.. //depot/projects/mjexp/sys/dev/dcons/dcons.h#2 integrate
.. //depot/projects/mjexp/sys/dev/dcons/dcons_crom.c#3 integrate
.. //depot/projects/mjexp/sys/dev/dcons/dcons_os.c#5 integrate
.. //depot/projects/mjexp/sys/dev/dcons/dcons_os.h#2 integrate
.. //depot/projects/mjexp/sys/dev/firewire/firewire.c#8 integrate
.. //depot/projects/mjexp/sys/dev/firewire/fwohci.c#6 integrate
.. //depot/projects/mjexp/sys/dev/firewire/sbp_targ.c#6 integrate
.. //depot/projects/mjexp/sys/dev/hatm/if_hatm_intr.c#2 integrate
.. //depot/projects/mjexp/sys/dev/isp/isp_freebsd.c#29 integrate
.. //depot/projects/mjexp/sys/dev/mii/brgphy.c#12 integrate
.. //depot/projects/mjexp/sys/dev/nve/if_nve.c#4 integrate
.. //depot/projects/mjexp/sys/dev/pdq/pdq_ifsubr.c#2 integrate
.. //depot/projects/mjexp/sys/dev/pdq/pdqreg.h#2 integrate
.. //depot/projects/mjexp/sys/dev/sbsh/if_sbsh.c#4 integrate
.. //depot/projects/mjexp/sys/dev/sound/usb/uaudio.c#8 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_axe.c#6 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_cdce.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_cdcereg.h#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_cue.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_kue.c#4 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_rue.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_rum.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_udav.c#4 integrate
.. //depot/projects/mjexp/sys/dev/usb/if_ural.c#11 integrate
.. //depot/projects/mjexp/sys/dev/usb/uark.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/ubsa.c#7 integrate
.. //depot/projects/mjexp/sys/dev/usb/ubser.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/ucycom.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/udbp.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/ufm.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/ufoma.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/uftdi.c#4 integrate
.. //depot/projects/mjexp/sys/dev/usb/ugen.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/uhid.c#4 integrate
.. //depot/projects/mjexp/sys/dev/usb/uhub.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/uipaq.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/ukbd.c#6 integrate
.. //depot/projects/mjexp/sys/dev/usb/ulpt.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/umass.c#8 integrate
.. //depot/projects/mjexp/sys/dev/usb/umct.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/umodem.c#2 integrate
.. //depot/projects/mjexp/sys/dev/usb/ums.c#5 integrate
.. //depot/projects/mjexp/sys/dev/usb/uplcom.c#6 integrate
.. //depot/projects/mjexp/sys/dev/usb/urio.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/uscanner.c#4 integrate
.. //depot/projects/mjexp/sys/dev/usb/uvisor.c#3 integrate
.. //depot/projects/mjexp/sys/dev/usb/uvscom.c#5 integrate
.. //depot/projects/mjexp/sys/i386/conf/GENERIC#9 integrate
.. //depot/projects/mjexp/sys/ia64/conf/GENERIC#6 integrate
.. //depot/projects/mjexp/sys/ia64/ia64/machdep.c#11 integrate
.. //depot/projects/mjexp/sys/kern/init_main.c#12 integrate
.. //depot/projects/mjexp/sys/kern/kern_exit.c#9 integrate
.. //depot/projects/mjexp/sys/kern/kern_fork.c#13 integrate
.. //depot/projects/mjexp/sys/kern/kern_mutex.c#12 integrate
.. //depot/projects/mjexp/sys/kern/kern_prot.c#7 integrate
.. //depot/projects/mjexp/sys/kern/vfs_bio.c#13 integrate
.. //depot/projects/mjexp/sys/modules/zfs/Makefile#5 integrate
.. //depot/projects/mjexp/sys/net/pfil.h#2 integrate
.. //depot/projects/mjexp/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 integrate
.. //depot/projects/mjexp/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#2 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_asconf.c#11 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_auth.c#10 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_auth.h#5 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_input.c#14 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_output.c#16 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_pcb.c#15 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_timer.h#4 integrate
.. //depot/projects/mjexp/sys/netinet/sctp_uio.h#14 integrate
.. //depot/projects/mjexp/sys/netinet/sctputil.c#15 integrate
.. //depot/projects/mjexp/sys/netinet/tcp_hostcache.c#5 integrate
.. //depot/projects/mjexp/sys/pc98/conf/GENERIC#8 integrate
.. //depot/projects/mjexp/sys/powerpc/conf/GENERIC#7 integrate
.. //depot/projects/mjexp/sys/powerpc/powerpc/busdma_machdep.c#2 integrate
.. //depot/projects/mjexp/sys/security/audit/audit.c#10 integrate
.. //depot/projects/mjexp/sys/security/audit/audit.h#5 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_arg.c#8 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_syscalls.c#9 integrate
.. //depot/projects/mjexp/sys/sparc64/conf/GENERIC#7 integrate
.. //depot/projects/mjexp/sys/sun4v/conf/GENERIC#6 integrate
.. //depot/projects/mjexp/sys/sys/proc.h#17 integrate
.. //depot/projects/mjexp/sys/sys/ucred.h#3 integrate

Differences ...

==== //depot/projects/mjexp/sys/amd64/conf/GENERIC#11 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.478 2007/05/28 14:38:42 simokawa Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.479 2007/06/08 20:29:05 rwatson Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -60,6 +60,7 @@
 options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
 options 	ADAPTIVE_GIANT		# Giant mutex is adaptive.
 options 	STOP_NMI		# Stop CPUS using NMI instead of IPI
+options 	AUDIT			# Security event auditing
 
 # Debugging for use in -current
 options 	KDB			# Enable kernel debugger support.

==== //depot/projects/mjexp/sys/arm/arm/busdma_machdep.c#6 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.31 2007/05/29 06:30:25 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.32 2007/06/07 21:51:09 cognet Exp $");
 
 /*
  * ARM bus dma support routines
@@ -674,8 +674,8 @@
 		CTR4(KTR_BUSDMA, "lowaddr= %d Maxmem= %d, boundary= %d, "
 		    "alignment= %d", dmat->lowaddr, ptoa((vm_paddr_t)Maxmem),
 		    dmat->boundary, dmat->alignment);
-		CTR3(KTR_BUSDMA, "map= %p, nobouncemap= %p, pagesneeded= %d",
-		    map, &nobounce_dmamap, map->pagesneeded);
+		CTR2(KTR_BUSDMA, "map= %p, pagesneeded= %d",
+		    map, map->pagesneeded);
 		/*
 		 * Count the number of bounce pages
 		 * needed in order to complete this transfer
@@ -1384,8 +1384,7 @@
 	struct bounce_page *bpage;
 
 	KASSERT(dmat->bounce_zone != NULL, ("no bounce zone in dma tag"));
-	KASSERT(map != NULL && map != &nobounce_dmamap,
-	    ("add_bounce_page: bad map %p", map));
+	KASSERT(map != NULL, ("add_bounce_page: bad map %p", map));
 
 	bz = dmat->bounce_zone;
 	if (map->pagesneeded == 0)

==== //depot/projects/mjexp/sys/conf/NOTES#23 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1428 2007/06/05 00:12:36 jeff Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1429 2007/06/08 21:36:52 attilio Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -226,11 +226,6 @@
 # and WITNESS options.
 options 	MUTEX_NOINLINE
 
-# MUTEX_WAKE_ALL changes the mutex unlock algorithm to wake all waiters
-# when a contested mutex is released rather than just awaking the highest
-# priority waiter.
-options 	MUTEX_WAKE_ALL
-
 # RWLOCK_NOINLINE forces rwlock operations to call functions to perform each
 # operation rather than inlining the simple cases.  This can be used to
 # shrink the size of the kernel text segment.  Note that this behavior is

==== //depot/projects/mjexp/sys/conf/options#21 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.590 2007/06/05 00:12:36 jeff Exp $
+# $FreeBSD: src/sys/conf/options,v 1.591 2007/06/08 21:36:52 attilio Exp $
 #
 #        On the handling of kernel options
 #
@@ -123,7 +123,6 @@
 MFI_DECODE_LOG	opt_mfi.h
 MPROF_BUFFERS	opt_mprof.h
 MPROF_HASH_SIZE	opt_mprof.h
-MUTEX_WAKE_ALL
 NO_ADAPTIVE_MUTEXES	opt_adaptive_mutexes.h
 NO_ADAPTIVE_RWLOCKS
 NSWBUF_MIN	opt_swap.h

==== //depot/projects/mjexp/sys/contrib/ipfilter/netinet/fil.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.51 2007/06/04 02:54:35 darrenr Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.52 2007/06/09 09:28:36 darrenr Exp $	*/
 
 /*
  * Copyright (C) 1993-2003 by Darren Reed.
@@ -155,7 +155,7 @@
 
 #if !defined(lint)
 static const char sccsid[] = "@(#)fil.c	1.36 6/5/96 (C) 1993-2000 Darren Reed";
-static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.51 2007/06/04 02:54:35 darrenr Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.52 2007/06/09 09:28:36 darrenr Exp $";
 /* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.78 2006/03/29 11:19:54 darrenr Exp $"; */
 #endif
 
@@ -766,6 +766,7 @@
 			 * source of the original packet then this packet is
 			 * not correct.
 			 */
+			icmp6 = fin->fin_dp;
 			ip6 = (ip6_t *)((char *)icmp6 + ICMPERR_ICMPHLEN);
 			if (IP6_NEQ(&fin->fin_fi.fi_dst,
 				    (i6addr_t *)&ip6->ip6_src))

==== //depot/projects/mjexp/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#3 (text+ko) ====

@@ -31,296 +31,7 @@
 #define	_ASM
 #include <sys/asm_linkage.h>
 
-#if defined(_KERNEL)
-	/*
-	 * Legacy kernel interfaces; they will go away (eventually).
-	 */
-	ANSI_PRAGMA_WEAK2(cas8,atomic_cas_8,function)
-	ANSI_PRAGMA_WEAK2(cas32,atomic_cas_32,function)
-	ANSI_PRAGMA_WEAK2(cas64,atomic_cas_64,function)
-	ANSI_PRAGMA_WEAK2(caslong,atomic_cas_ulong,function)
-	ANSI_PRAGMA_WEAK2(casptr,atomic_cas_ptr,function)
-	ANSI_PRAGMA_WEAK2(atomic_and_long,atomic_and_ulong,function)
-	ANSI_PRAGMA_WEAK2(atomic_or_long,atomic_or_ulong,function)
-#endif
-
-	ENTRY(atomic_inc_8)
-	ALTENTRY(atomic_inc_uchar)
-	lock
-	incb	(%rdi)
-	ret
-	SET_SIZE(atomic_inc_uchar)
-	SET_SIZE(atomic_inc_8)
-
-	ENTRY(atomic_inc_16)
-	ALTENTRY(atomic_inc_ushort)
-	lock
-	incw	(%rdi)
-	ret
-	SET_SIZE(atomic_inc_ushort)
-	SET_SIZE(atomic_inc_16)
-
-	ENTRY(atomic_inc_32)
-	ALTENTRY(atomic_inc_uint)
-	lock
-	incl	(%rdi)
-	ret
-	SET_SIZE(atomic_inc_uint)
-	SET_SIZE(atomic_inc_32)
-
-	ENTRY(atomic_inc_64)
-	ALTENTRY(atomic_inc_ulong)
-	lock
-	incq	(%rdi)
-	ret
-	SET_SIZE(atomic_inc_ulong)
-	SET_SIZE(atomic_inc_64)
-
-	ENTRY(atomic_inc_8_nv)
-	ALTENTRY(atomic_inc_uchar_nv)
-	movb	(%rdi), %al	// %al = old value
-1:
-	leaq	1(%rax), %rcx	// %cl = new value
-	lock
-	cmpxchgb %cl, (%rdi)	// try to stick it in
-	jne	1b
-	movzbl	%cl, %eax	// return new value
-	ret
-	SET_SIZE(atomic_inc_uchar_nv)
-	SET_SIZE(atomic_inc_8_nv)
-
-	ENTRY(atomic_inc_16_nv)
-	ALTENTRY(atomic_inc_ushort_nv)
-	movw	(%rdi), %ax	// %ax = old value
-1:
-	leaq	1(%rax), %rcx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%rdi)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_inc_ushort_nv)
-	SET_SIZE(atomic_inc_16_nv)
-
-	ENTRY(atomic_inc_32_nv)
-	ALTENTRY(atomic_inc_uint_nv)
-	movl	(%rdi), %eax	// %eax = old value
-1:
-	leaq	1(%rax), %rcx	// %ecx = new value
-	lock
-	cmpxchgl %ecx, (%rdi)	// try to stick it in
-	jne	1b
-	movl	%ecx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_inc_uint_nv)
-	SET_SIZE(atomic_inc_32_nv)
-
-	ENTRY(atomic_inc_64_nv)
-	ALTENTRY(atomic_inc_ulong_nv)
-	movq	(%rdi), %rax	// %rax = old value
-1:
-	leaq	1(%rax), %rcx	// %rcx = new value
-	lock
-	cmpxchgq %rcx, (%rdi)	// try to stick it in
-	jne	1b
-	movq	%rcx, %rax	// return new value
-	ret
-	SET_SIZE(atomic_inc_ulong_nv)
-	SET_SIZE(atomic_inc_64_nv)
-
-	ENTRY(atomic_dec_8)
-	ALTENTRY(atomic_dec_uchar)
-	lock
-	decb	(%rdi)
-	ret
-	SET_SIZE(atomic_dec_uchar)
-	SET_SIZE(atomic_dec_8)
-
-	ENTRY(atomic_dec_16)
-	ALTENTRY(atomic_dec_ushort)
-	lock
-	decw	(%rdi)
-	ret
-	SET_SIZE(atomic_dec_ushort)
-	SET_SIZE(atomic_dec_16)
-
-	ENTRY(atomic_dec_32)
-	ALTENTRY(atomic_dec_uint)
-	lock
-	decl	(%rdi)
-	ret
-	SET_SIZE(atomic_dec_uint)
-	SET_SIZE(atomic_dec_32)
-
-	ENTRY(atomic_dec_64)
-	ALTENTRY(atomic_dec_ulong)
-	lock
-	decq	(%rdi)
-	ret
-	SET_SIZE(atomic_dec_ulong)
-	SET_SIZE(atomic_dec_64)
-
-	ENTRY(atomic_dec_8_nv)
-	ALTENTRY(atomic_dec_uchar_nv)
-	movb	(%rdi), %al	// %al = old value
-1:
-	leaq	-1(%rax), %rcx	// %cl = new value
-	lock
-	cmpxchgb %cl, (%rdi)	// try to stick it in
-	jne	1b
-	movzbl	%cl, %eax	// return new value
-	ret
-	SET_SIZE(atomic_dec_uchar_nv)
-	SET_SIZE(atomic_dec_8_nv)
-
-	ENTRY(atomic_dec_16_nv)
-	ALTENTRY(atomic_dec_ushort_nv)
-	movw	(%rdi), %ax	// %ax = old value
-1:
-	leaq	-1(%rax), %rcx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%rdi)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_dec_ushort_nv)
-	SET_SIZE(atomic_dec_16_nv)
-
-	ENTRY(atomic_dec_32_nv)
-	ALTENTRY(atomic_dec_uint_nv)
-	movl	(%rdi), %eax	// %eax = old value
-1:
-	leaq	-1(%rax), %rcx	// %ecx = new value
-	lock
-	cmpxchgl %ecx, (%rdi)	// try to stick it in
-	jne	1b
-	movl	%ecx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_dec_uint_nv)
-	SET_SIZE(atomic_dec_32_nv)
-
-	ENTRY(atomic_dec_64_nv)
-	ALTENTRY(atomic_dec_ulong_nv)
-	movq	(%rdi), %rax	// %rax = old value
-1:
-	leaq	-1(%rax), %rcx	// %rcx = new value
-	lock
-	cmpxchgq %rcx, (%rdi)	// try to stick it in
-	jne	1b
-	movq	%rcx, %rax	// return new value
-	ret
-	SET_SIZE(atomic_dec_ulong_nv)
-	SET_SIZE(atomic_dec_64_nv)
-
-	ENTRY(atomic_or_8)
-	ALTENTRY(atomic_or_uchar)
-	lock
-	orb	%sil, (%rdi)
-	ret
-	SET_SIZE(atomic_or_uchar)
-	SET_SIZE(atomic_or_8)
-
-	ENTRY(atomic_or_16)
-	ALTENTRY(atomic_or_ushort)
-	lock
-	orw	%si, (%rdi)
-	ret
-	SET_SIZE(atomic_or_ushort)
-	SET_SIZE(atomic_or_16)
-
-	ENTRY(atomic_or_32)
-	ALTENTRY(atomic_or_uint)
-	lock
-	orl	%esi, (%rdi)
-	ret
-	SET_SIZE(atomic_or_uint)
-	SET_SIZE(atomic_or_32)
-
-	ENTRY(atomic_or_64)
-	ALTENTRY(atomic_or_ulong)
-	lock
-	orq	%rsi, (%rdi)
-	ret
-	SET_SIZE(atomic_or_ulong)
-	SET_SIZE(atomic_or_64)
-
-	ENTRY(atomic_and_8)
-	ALTENTRY(atomic_and_uchar)
-	lock
-	andb	%sil, (%rdi)
-	ret
-	SET_SIZE(atomic_and_uchar)
-	SET_SIZE(atomic_and_8)
-
-	ENTRY(atomic_and_16)
-	ALTENTRY(atomic_and_ushort)
-	lock
-	andw	%si, (%rdi)
-	ret
-	SET_SIZE(atomic_and_ushort)
-	SET_SIZE(atomic_and_16)
-
-	ENTRY(atomic_and_32)
-	ALTENTRY(atomic_and_uint)
-	lock
-	andl	%esi, (%rdi)
-	ret
-	SET_SIZE(atomic_and_uint)
-	SET_SIZE(atomic_and_32)
-
-	ENTRY(atomic_and_64)
-	ALTENTRY(atomic_and_ulong)
-	lock
-	andq	%rsi, (%rdi)
-	ret
-	SET_SIZE(atomic_and_ulong)
-	SET_SIZE(atomic_and_64)
-
-	ENTRY(atomic_add_8_nv)
-	ALTENTRY(atomic_add_char_nv)
-	movb	(%rdi), %al	// %al = old value
-1:
-	movb	%sil, %cl
-	addb	%al, %cl	// %cl = new value
-	lock
-	cmpxchgb %cl, (%rdi)	// try to stick it in
-	jne	1b
-	movzbl	%cl, %eax	// return new value
-	ret
-	SET_SIZE(atomic_add_char_nv)
-	SET_SIZE(atomic_add_8_nv)
-
-	ENTRY(atomic_add_16_nv)
-	ALTENTRY(atomic_add_short_nv)
-	movw	(%rdi), %ax	// %ax = old value
-1:
-	movw	%si, %cx
-	addw	%ax, %cx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%rdi)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_add_short_nv)
-	SET_SIZE(atomic_add_16_nv)
-
-	ENTRY(atomic_add_32_nv)
-	ALTENTRY(atomic_add_int_nv)
-	movl	(%rdi), %eax
-1:
-	movl	%esi, %ecx
-	addl	%eax, %ecx
-	lock
-	cmpxchgl %ecx, (%rdi)
-	jne	1b
-	movl	%ecx, %eax
-	ret
-	SET_SIZE(atomic_add_int_nv)
-	SET_SIZE(atomic_add_32_nv)
-
 	ENTRY(atomic_add_64_nv)
-	ALTENTRY(atomic_add_ptr_nv)
-	ALTENTRY(atomic_add_long_nv)
 	movq	(%rdi), %rax
 1:
 	movq	%rsi, %rcx
@@ -330,68 +41,9 @@
 	jne	1b
 	movq	%rcx, %rax
 	ret
-	SET_SIZE(atomic_add_long_nv)
-	SET_SIZE(atomic_add_ptr_nv)
 	SET_SIZE(atomic_add_64_nv)
 
-	ENTRY(atomic_and_8_nv)
-	ALTENTRY(atomic_and_uchar_nv)
-	movb	(%rdi), %al	// %al = old value
-1:
-	movb	%sil, %cl
-	andb	%al, %cl	// %cl = new value
-	lock
-	cmpxchgb %cl, (%rdi)	// try to stick it in
-	jne	1b
-	movzbl	%cl, %eax	// return new value
-	ret
-	SET_SIZE(atomic_and_uchar_nv)
-	SET_SIZE(atomic_and_8_nv)
-
-	ENTRY(atomic_and_16_nv)
-	ALTENTRY(atomic_and_ushort_nv)
-	movw	(%rdi), %ax	// %ax = old value
-1:
-	movw	%si, %cx
-	andw	%ax, %cx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%rdi)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_and_ushort_nv)
-	SET_SIZE(atomic_and_16_nv)
-
-	ENTRY(atomic_and_32_nv)
-	ALTENTRY(atomic_and_uint_nv)
-	movl	(%rdi), %eax
-1:
-	movl	%esi, %ecx
-	andl	%eax, %ecx
-	lock
-	cmpxchgl %ecx, (%rdi)
-	jne	1b
-	movl	%ecx, %eax
-	ret
-	SET_SIZE(atomic_and_uint_nv)
-	SET_SIZE(atomic_and_32_nv)
-
-	ENTRY(atomic_and_64_nv)
-	ALTENTRY(atomic_and_ulong_nv)
-	movq	(%rdi), %rax
-1:
-	movq	%rsi, %rcx
-	andq	%rax, %rcx
-	lock
-	cmpxchgq %rcx, (%rdi)
-	jne	1b
-	movq	%rcx, %rax
-	ret
-	SET_SIZE(atomic_and_ulong_nv)
-	SET_SIZE(atomic_and_64_nv)
-
 	ENTRY(atomic_or_8_nv)
-	ALTENTRY(atomic_or_uchar_nv)
 	movb	(%rdi), %al	// %al = old value
 1:
 	movb	%sil, %cl
@@ -401,160 +53,16 @@
 	jne	1b
 	movzbl	%cl, %eax	// return new value
 	ret
-	SET_SIZE(atomic_and_uchar_nv)
-	SET_SIZE(atomic_and_8_nv)
+	SET_SIZE(atomic_or_8_nv)
 
-	ENTRY(atomic_or_16_nv)
-	ALTENTRY(atomic_or_ushort_nv)
-	movw	(%rdi), %ax	// %ax = old value
-1:
-	movw	%si, %cx
-	orw	%ax, %cx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%rdi)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_or_ushort_nv)
-	SET_SIZE(atomic_or_16_nv)
-
-	ENTRY(atomic_or_32_nv)
-	ALTENTRY(atomic_or_uint_nv)
-	movl	(%rdi), %eax
-1:
-	movl	%esi, %ecx
-	orl	%eax, %ecx
-	lock
-	cmpxchgl %ecx, (%rdi)
-	jne	1b
-	movl	%ecx, %eax
-	ret
-	SET_SIZE(atomic_or_uint_nv)
-	SET_SIZE(atomic_or_32_nv)
-
-	ENTRY(atomic_or_64_nv)
-	ALTENTRY(atomic_or_ulong_nv)
-	movq	(%rdi), %rax
-1:
-	movq	%rsi, %rcx
-	orq	%rax, %rcx
-	lock
-	cmpxchgq %rcx, (%rdi)
-	jne	1b
-	movq	%rcx, %rax
-	ret
-	SET_SIZE(atomic_or_ulong_nv)
-	SET_SIZE(atomic_or_64_nv)
-
-	ENTRY(atomic_cas_8)
-	ALTENTRY(atomic_cas_uchar)
-	movzbl	%sil, %eax
-	lock
-	cmpxchgb %dl, (%rdi)
-	ret
-	SET_SIZE(atomic_cas_uchar)
-	SET_SIZE(atomic_cas_8)
-
-	ENTRY(atomic_cas_16)
-	ALTENTRY(atomic_cas_ushort)
-	movzwl	%si, %eax
-	lock
-	cmpxchgw %dx, (%rdi)
-	ret
-	SET_SIZE(atomic_cas_ushort)
-	SET_SIZE(atomic_cas_16)
-
-	ENTRY(atomic_cas_32)
-	ALTENTRY(atomic_cas_uint)
-	movl	%esi, %eax
-	lock
-	cmpxchgl %edx, (%rdi)
-	ret
-	SET_SIZE(atomic_cas_uint)
-	SET_SIZE(atomic_cas_32)
-
 	ENTRY(atomic_cas_64)
-	ALTENTRY(atomic_cas_ulong)
-	ALTENTRY(atomic_cas_ptr)
 	movq	%rsi, %rax
 	lock
 	cmpxchgq %rdx, (%rdi)
 	ret
-	SET_SIZE(atomic_cas_ptr)
-	SET_SIZE(atomic_cas_ulong)
 	SET_SIZE(atomic_cas_64)
 
-	ENTRY(atomic_swap_8)
-	ALTENTRY(atomic_swap_uchar)
-	movzbl	%sil, %eax
-	lock
-	xchgb %al, (%rdi)
-	ret
-	SET_SIZE(atomic_swap_uchar)
-	SET_SIZE(atomic_swap_8)
-
-	ENTRY(atomic_swap_16)
-	ALTENTRY(atomic_swap_ushort)
-	movzwl	%si, %eax
-	lock
-	xchgw %ax, (%rdi)
-	ret
-	SET_SIZE(atomic_swap_ushort)
-	SET_SIZE(atomic_swap_16)
-
-	ENTRY(atomic_swap_32)
-	ALTENTRY(atomic_swap_uint)
-	movl	%esi, %eax
-	lock
-	xchgl %eax, (%rdi)
-	ret
-	SET_SIZE(atomic_swap_uint)
-	SET_SIZE(atomic_swap_32)
-
-	ENTRY(atomic_swap_64)
-	ALTENTRY(atomic_swap_ulong)
-	ALTENTRY(atomic_swap_ptr)
-	movq	%rsi, %rax
-	lock
-	xchgq %rax, (%rdi)
-	ret
-	SET_SIZE(atomic_swap_ptr)
-	SET_SIZE(atomic_swap_ulong)
-	SET_SIZE(atomic_swap_64)
-
-	ENTRY(atomic_set_long_excl)
-	xorl	%eax, %eax
-	lock
-	btsq	%rsi, (%rdi)
-	jnc	1f
-	decl	%eax			// return -1
-1:
-	ret
-	SET_SIZE(atomic_set_long_excl)
-
-	ENTRY(atomic_clear_long_excl)
-	xorl	%eax, %eax
-	lock
-	btrq	%rsi, (%rdi)
-	jc	1f
-	decl	%eax			// return -1
-1:
-	ret
-	SET_SIZE(atomic_clear_long_excl)
-
-	ENTRY(membar_enter)
-	ALTENTRY(membar_exit)
-	mfence
-	ret
-	SET_SIZE(membar_exit)
-	SET_SIZE(membar_enter)
-
 	ENTRY(membar_producer)
 	sfence
 	ret
 	SET_SIZE(membar_producer)
-
-	ENTRY(membar_consumer)
-	lfence
-	ret
-	SET_SIZE(membar_consumer)

==== //depot/projects/mjexp/sys/contrib/opensolaris/common/atomic/i386/atomic.S#3 (text+ko) ====

@@ -31,327 +31,6 @@
 #define	_ASM
 #include <sys/asm_linkage.h>
 
-#if defined(_KERNEL)
-	/*
-	 * Legacy kernel interfaces; they will go away (eventually).
-	 */
-	ANSI_PRAGMA_WEAK2(cas8,atomic_cas_8,function)
-	ANSI_PRAGMA_WEAK2(cas32,atomic_cas_32,function)
-	ANSI_PRAGMA_WEAK2(cas64,atomic_cas_64,function)
-	ANSI_PRAGMA_WEAK2(caslong,atomic_cas_ulong,function)
-	ANSI_PRAGMA_WEAK2(casptr,atomic_cas_ptr,function)
-	ANSI_PRAGMA_WEAK2(atomic_and_long,atomic_and_ulong,function)
-	ANSI_PRAGMA_WEAK2(atomic_or_long,atomic_or_ulong,function)
-#endif
-
-	ENTRY(atomic_inc_8)
-	ALTENTRY(atomic_inc_uchar)
-	movl	4(%esp), %eax
-	lock
-	incb	(%eax)
-	ret
-	SET_SIZE(atomic_inc_uchar)
-	SET_SIZE(atomic_inc_8)
-
-	ENTRY(atomic_inc_16)
-	ALTENTRY(atomic_inc_ushort)
-	movl	4(%esp), %eax
-	lock
-	incw	(%eax)
-	ret
-	SET_SIZE(atomic_inc_ushort)
-	SET_SIZE(atomic_inc_16)
-
-	ENTRY(atomic_inc_32)
-	ALTENTRY(atomic_inc_uint)
-	ALTENTRY(atomic_inc_ulong)
-	movl	4(%esp), %eax
-	lock
-	incl	(%eax)
-	ret
-	SET_SIZE(atomic_inc_ulong)
-	SET_SIZE(atomic_inc_uint)
-	SET_SIZE(atomic_inc_32)
-
-	ENTRY(atomic_inc_8_nv)
-	ALTENTRY(atomic_inc_uchar_nv)
-	movl	4(%esp), %edx	// %edx = target address
-	movb	(%edx), %al	// %al = old value
-1:
-	leal	1(%eax), %ecx	// %cl = new value
-	lock
-	cmpxchgb %cl, (%edx)	// try to stick it in
-	jne	1b
-	movzbl	%cl, %eax	// return new value
-	ret
-	SET_SIZE(atomic_inc_uchar_nv)
-	SET_SIZE(atomic_inc_8_nv)
-
-	ENTRY(atomic_inc_16_nv)
-	ALTENTRY(atomic_inc_ushort_nv)
-	movl	4(%esp), %edx	// %edx = target address
-	movw	(%edx), %ax	// %ax = old value
-1:
-	leal	1(%eax), %ecx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%edx)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_inc_ushort_nv)
-	SET_SIZE(atomic_inc_16_nv)
-
-	ENTRY(atomic_inc_32_nv)
-	ALTENTRY(atomic_inc_uint_nv)
-	ALTENTRY(atomic_inc_ulong_nv)
-	movl	4(%esp), %edx	// %edx = target address
-	movl	(%edx), %eax	// %eax = old value
-1:
-	leal	1(%eax), %ecx	// %ecx = new value
-	lock
-	cmpxchgl %ecx, (%edx)	// try to stick it in
-	jne	1b
-	movl	%ecx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_inc_ulong_nv)
-	SET_SIZE(atomic_inc_uint_nv)
-	SET_SIZE(atomic_inc_32_nv)
-
-	ENTRY(atomic_inc_64)
-	ALTENTRY(atomic_inc_64_nv)
-	pushl	%edi
-	pushl	%ebx
-	movl	12(%esp), %edi	// %edi = target address
-	movl	(%edi), %eax
-	movl	4(%edi), %edx	// %edx:%eax = old value
-1:
-	xorl	%ebx, %ebx
-	xorl	%ecx, %ecx
-	incl	%ebx		// %ecx:%ebx = 1
-	addl	%eax, %ebx
-	adcl	%edx, %ecx	// add in the carry from inc
-	lock
-	cmpxchg8b (%edi)	// try to stick it in
-	jne	1b
-	movl	%ebx, %eax
-	movl	%ecx, %edx	// return new value
-	popl	%ebx
-	popl	%edi
-	ret
-	SET_SIZE(atomic_inc_64_nv)
-	SET_SIZE(atomic_inc_64)
-
-	ENTRY(atomic_dec_8)
-	ALTENTRY(atomic_dec_uchar)
-	movl	4(%esp), %eax
-	lock
-	decb	(%eax)
-	ret
-	SET_SIZE(atomic_dec_uchar)
-	SET_SIZE(atomic_dec_8)
-
-	ENTRY(atomic_dec_16)
-	ALTENTRY(atomic_dec_ushort)
-	movl	4(%esp), %eax
-	lock
-	decw	(%eax)
-	ret
-	SET_SIZE(atomic_dec_ushort)
-	SET_SIZE(atomic_dec_16)
-
-	ENTRY(atomic_dec_32)
-	ALTENTRY(atomic_dec_uint)
-	ALTENTRY(atomic_dec_ulong)
-	movl	4(%esp), %eax
-	lock
-	decl	(%eax)
-	ret
-	SET_SIZE(atomic_dec_ulong)
-	SET_SIZE(atomic_dec_uint)
-	SET_SIZE(atomic_dec_32)
-
-	ENTRY(atomic_dec_8_nv)
-	ALTENTRY(atomic_dec_uchar_nv)
-	movl	4(%esp), %edx	// %edx = target address
-	movb	(%edx), %al	// %al = old value
-1:
-	leal	-1(%eax), %ecx	// %cl = new value
-	lock
-	cmpxchgb %cl, (%edx)	// try to stick it in
-	jne	1b
-	movzbl	%cl, %eax	// return new value
-	ret
-	SET_SIZE(atomic_dec_uchar_nv)
-	SET_SIZE(atomic_dec_8_nv)
-
-	ENTRY(atomic_dec_16_nv)
-	ALTENTRY(atomic_dec_ushort_nv)
-	movl	4(%esp), %edx	// %edx = target address
-	movw	(%edx), %ax	// %ax = old value
-1:
-	leal	-1(%eax), %ecx	// %cx = new value
-	lock
-	cmpxchgw %cx, (%edx)	// try to stick it in
-	jne	1b
-	movzwl	%cx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_dec_ushort_nv)
-	SET_SIZE(atomic_dec_16_nv)
-
-	ENTRY(atomic_dec_32_nv)
-	ALTENTRY(atomic_dec_uint_nv)
-	ALTENTRY(atomic_dec_ulong_nv)
-	movl	4(%esp), %edx	// %edx = target address
-	movl	(%edx), %eax	// %eax = old value
-1:
-	leal	-1(%eax), %ecx	// %ecx = new value
-	lock
-	cmpxchgl %ecx, (%edx)	// try to stick it in
-	jne	1b
-	movl	%ecx, %eax	// return new value
-	ret
-	SET_SIZE(atomic_dec_ulong_nv)
-	SET_SIZE(atomic_dec_uint_nv)
-	SET_SIZE(atomic_dec_32_nv)
-
-	ENTRY(atomic_dec_64)
-	ALTENTRY(atomic_dec_64_nv)
-	pushl	%edi
-	pushl	%ebx
-	movl	12(%esp), %edi	// %edi = target address
-	movl	(%edi), %eax
-	movl	4(%edi), %edx	// %edx:%eax = old value
-1:
-	xorl	%ebx, %ebx
-	xorl	%ecx, %ecx
-	not	%ecx
-	not	%ebx		// %ecx:%ebx = -1
-	addl	%eax, %ebx
-	adcl	%edx, %ecx	// add in the carry from inc
-	lock
-	cmpxchg8b (%edi)	// try to stick it in
-	jne	1b
-	movl	%ebx, %eax
-	movl	%ecx, %edx	// return new value
-	popl	%ebx
-	popl	%edi
-	ret
-	SET_SIZE(atomic_dec_64_nv)
-	SET_SIZE(atomic_dec_64)
-
-	ENTRY(atomic_or_8)
-	ALTENTRY(atomic_or_uchar)
-	movl	4(%esp), %eax
-	movb	8(%esp), %cl
-	lock
-	orb	%cl, (%eax)
-	ret
-	SET_SIZE(atomic_or_uchar)
-	SET_SIZE(atomic_or_8)
-
-	ENTRY(atomic_or_16)
-	ALTENTRY(atomic_or_ushort)
-	movl	4(%esp), %eax
-	movw	8(%esp), %cx
-	lock
-	orw	%cx, (%eax)
-	ret
-	SET_SIZE(atomic_or_ushort)
-	SET_SIZE(atomic_or_16)
-
-	ENTRY(atomic_or_32)
-	ALTENTRY(atomic_or_uint)
-	ALTENTRY(atomic_or_ulong)
-	movl	4(%esp), %eax
-	movl	8(%esp), %ecx
-	lock
-	orl	%ecx, (%eax)
-	ret
-	SET_SIZE(atomic_or_ulong)
-	SET_SIZE(atomic_or_uint)
-	SET_SIZE(atomic_or_32)
-

>>> TRUNCATED FOR MAIL (1000 lines) <<<



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