unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (NetBSD-6.1.5)
Page:
Section:
Apropos / Subsearch:
optional field

__INSN_BARRIER(3)          Library Functions Manual          __INSN_BARRIER(3)

NAME
     __insn_barrier -- compiler reorder barrier

SYNOPSIS
     #include <&lt;sys/cdefs.h>&gt;

     void
     __insn_barrier();

DESCRIPTION
     The __insn_barrier() macro prevents GCC from moving code across the
     barrier.  In other words, the compiler is not allowed to reorder read and
     write commands below the barrier with the code preceding the barrier.
     Like with the volatile type qualifier, __insn_barrier() may be necessary
     in some corner cases to prevent the compiler from misoptimizing.

SEE ALSO
     gcc(1), cdefs(3), mb(9)

     Paul E. McKenney, Memory Barriers: a Hardware View for Software Hackers,
     June 7, 2010,
     http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.06.07c.pdf.

HISTORY
     The __insn_barrier() macro first appeared in NetBSD 2.0.

NetBSD 6.1.5                    January 2, 2011                   NetBSD 6.1.5