unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

ATOMIC_SUB_INT(9)        BSD Kernel Developer's Manual       ATOMIC_SUB_INT(9)

NAME
     atomic_sub_int, atomic_sub_int_nv, atomic_sub_long, atomic_sub_long_nv --
     atomic subtraction operations

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

     void
     atomic_sub_int(volatile unsigned int *p, unsigned int v);

     unsigned int
     atomic_sub_int_nv(volatile unsigned int *p, unsigned int v);

     void
     atomic_sub_long(volatile unsigned long *p, unsigned long v);

     unsigned long
     atomic_sub_long_nv(volatile unsigned long *p, unsigned long v);

DESCRIPTION
     The atomic_sub set of functions provide an interface for atomically per-
     forming sub and sub-and-fetch operations with respect to interrupts and
     multiple processors in the system.

     The value referenced by the pointer p is decremented by the value v.

CONTEXT
     atomic_sub_int(), atomic_sub_int_nv(), atomic_sub_long(), and
     atomic_sub_long_nv() can all be called during autoconf, from process con-
     text, or from interrupt context.

RETURN VALUES
     atomic_sub_int and atomic_sub_long perform the subtraction without
     returning any knowledge of the value at p.

     atomic_sub_int_nv and atomic_sub_long_nv return the value at p after the
     subtraction was performed.

SEE ALSO
     atomic_add_int(9), atomic_dec_int(9)

HISTORY
     The atomic_sub functions first appeared in OpenBSD 5.5.

BSD                              July 23, 2014                             BSD