From owner-p4-projects@FreeBSD.ORG Sat Jun 9 17:57:20 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0BA8416A46B; Sat, 9 Jun 2007 17:57:20 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A6AED16A41F for ; Sat, 9 Jun 2007 17:57:19 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 96D1313C4C3 for ; Sat, 9 Jun 2007 17:57:19 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l59HvJcV008490 for ; Sat, 9 Jun 2007 17:57:19 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l59HvHf2008469 for perforce@freebsd.org; Sat, 9 Jun 2007 17:57:17 GMT (envelope-from mjacob@freebsd.org) Date: Sat, 9 Jun 2007 17:57:17 GMT Message-Id: <200706091757.l59HvHf2008469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 121279 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jun 2007 17:57:20 -0000 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 -__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 -#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 -#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) <<<