*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: membar_sync | Section: 9 | Source: OpenBSD | File: membar_sync.9
MEMBAR(9) FreeBSD Kernel Developer's Manual MEMBAR(9) NAME membar_enter, membar_exit, membar_producer, membar_consumer, membar_sync, membar_enter_after_atomic, membar_exit_before_atomic - memory access barrier operations SYNOPSIS #include <sys/atomic.h> void membar_enter(void); void membar_exit(void); void membar_producer(void); void membar_consumer(void); void membar_sync(void); void membar_enter_after_atomic(void); void membar_exit_before_atomic(void); DESCRIPTION The membar set of functions provide an interface for issuing memory barrier access operations with respect to multiple processors in the system. membar_enter() Any store preceding membar_enter() will reach global visibility before all loads and stores following it. membar_enter() is typically used in code that implements locking primitives to ensure that a lock protects its data. membar_exit() All loads and stores preceding membar_exit() will reach global visibility before any store that follows it. membar_exit() is typically used in code that implements locking primitives to ensure that a lock protects its data. membar_producer() All stores preceding the memory barrier will reach global visibility before any stores after the memory barrier reach global visibility. membar_consumer() All loads preceding the memory barrier will complete before any loads after the memory barrier complete. 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. membar_enter_after_atomic() An atomic operation preceding membar_enter_after_atomic() will reach global visibility before all loads and stores following it. The atomic operation is used to protect the start of a critical section. membar_exit_before_atomic() All loads and stores preceding membar_exit_before_atomic() will reach global visibility before atomic operation that follows it. The atomic operation is used to protect the end of a critical section. The atomic operations that can be used with membar_enter_after_atomic() and membar_exit_before_atomic() are the atomic_add, atomic_sub, atomic_inc, atomic_dec, and atomic_cas set of functions. For other cases use membar_enter() or membar_exit(). CONTEXT membar_enter(), membar_exit(), membar_producer(), membar_consumer(), membar_sync(), membar_enter_after_atomic(), membar_exit_before_atomic() can all be called during autoconf, from process context, or from interrupt context. HISTORY The membar functions first appeared in NetBSD 5.0 and OpenBSD 5.5. FreeBSD 14.1-RELEASE-p8 March 13, 2022 FreeBSD 14.1-RELEASE-p8

Navigation Options