 f14fb60209
			
		
	
	
		f14fb60209
		
	
	
	
	
		
			
			* Updating common/lib * Updating lib/csu * Updating lib/libc * Updating libexec/ld.elf_so * Corrected test on __minix in featuretest to actually follow the meaning of the comment. * Cleaned up _REENTRANT-related defintions. * Disabled -D_REENTRANT for libfetch * Removing some unneeded __NBSD_LIBC defines and tests Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2
		
			
				
	
	
		
			98 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: membar_ops.3,v 1.3 2011/04/28 11:56:26 wiz Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 2007, 2008 The NetBSD Foundation, Inc.
 | |
| .\" All rights reserved.
 | |
| .\"
 | |
| .\" This code is derived from software contributed to The NetBSD Foundation
 | |
| .\" by Jason R. Thorpe.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\" notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\" notice, this list of conditions and the following disclaimer in the
 | |
| .\" documentation and/or other materials provided with the distribution.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 | |
| .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 | |
| .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 | |
| .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 | |
| .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | |
| .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | |
| .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | |
| .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | |
| .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | |
| .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | |
| .\" POSSIBILITY OF SUCH DAMAGE.
 | |
| .\"
 | |
| .Dd February 11, 2007
 | |
| .Dt MEMBAR_OPS 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm membar_ops ,
 | |
| .Nm membar_enter ,
 | |
| .Nm membar_exit ,
 | |
| .Nm membar_producer ,
 | |
| .Nm membar_consumer ,
 | |
| .Nm membar_sync
 | |
| .Nd memory access barrier operations
 | |
| .\" .Sh LIBRARY
 | |
| .\" .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In sys/atomic.h
 | |
| .\"
 | |
| .Ft void
 | |
| .Fn membar_enter "void"
 | |
| .Ft void
 | |
| .Fn membar_exit "void"
 | |
| .Ft void
 | |
| .Fn membar_producer "void"
 | |
| .Ft void
 | |
| .Fn membar_consumer "void"
 | |
| .Ft void
 | |
| .Fn membar_sync "void"
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Nm membar_ops
 | |
| family of functions provide memory access barrier operations necessary
 | |
| for synchronization in multiprocessor execution environments that have
 | |
| relaxed load and store order.
 | |
| .Pp
 | |
| .Bl -tag -width "mem"
 | |
| .It Fn membar_enter
 | |
| Any store preceding
 | |
| .Fn membar_enter
 | |
| will reach global visibility before all loads and stores following it.
 | |
| .Pp
 | |
| .Fn membar_enter
 | |
| is typically used in code that implements locking primitives to ensure
 | |
| that a lock protects its data.
 | |
| .It Fn membar_exit
 | |
| All loads and stores preceding
 | |
| .Fn membar_exit
 | |
| will reach global visibility before any store that follows it.
 | |
| .Pp
 | |
| .Fn membar_exit
 | |
| is typically used in code that implements locking primitives to ensure
 | |
| that a lock protects its data.
 | |
| .It Fn membar_producer
 | |
| All stores preceding the memory barrier will reach global visibility
 | |
| before any stores after the memory barrier reach global visibility.
 | |
| .It Fn membar_consumer
 | |
| All loads preceding the memory barrier will complete before any loads
 | |
| after the memory barrier complete.
 | |
| .It Fn membar_sync
 | |
| All loads and stores preceding the memory barrier will complete and
 | |
| reach global visibility before any loads and stores after the memory
 | |
| barrier complete and reach global visibility.
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr atomic_ops 3
 | |
| .Sh HISTORY
 | |
| The
 | |
| .Nm membar_ops
 | |
| functions first appeared in
 | |
| .Nx 5.0 .
 |