xref: /openbsd-src/share/man/man9/atomic_setbits_int.9 (revision 38e9b2a9d8c6497246f98e737d13394c42651303)
1*38e9b2a9Sjmc.\" $OpenBSD: atomic_setbits_int.9,v 1.3 2014/02/13 14:25:21 jmc Exp $
22f64292eSdlg.\"
32f64292eSdlg.\" Copyright (c) 2007 Artur Grabowski <art@openbsd.org>
42f64292eSdlg.\" All rights reserved.
52f64292eSdlg.\"
62f64292eSdlg.\" Permission to use, copy, modify, and distribute this software for any
72f64292eSdlg.\" purpose with or without fee is hereby granted, provided that the above
82f64292eSdlg.\" copyright notice and this permission notice appear in all copies.
92f64292eSdlg.\"
102f64292eSdlg.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
112f64292eSdlg.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
122f64292eSdlg.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
132f64292eSdlg.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
142f64292eSdlg.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
152f64292eSdlg.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
162f64292eSdlg.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
172f64292eSdlg.\"
18c468d2a2Sdlg.Dd $Mdocdate: February 13 2014 $
192f64292eSdlg.Dt ATOMIC_SETBITS_INT 9
202f64292eSdlg.Os
212f64292eSdlg.Sh NAME
222f64292eSdlg.Nm atomic_setbits_int ,
232f64292eSdlg.Nm atomic_clearbits_int
242f64292eSdlg.Nd interface to perform atomic operations on data
252f64292eSdlg.Sh SYNOPSIS
262f64292eSdlg.In sys/atomic.h
272f64292eSdlg.Ft void
282f64292eSdlg.Fn atomic_setbits_int "unsigned int *p" "unsigned int b"
292f64292eSdlg.Ft void
302f64292eSdlg.Fn atomic_clearbits_int "unsigned int *p" "unsigned int b"
312f64292eSdlg.Sh DESCRIPTION
322f64292eSdlgThe atomic bits set of functions provide an interface for changing data atomically with respect to interrupts and multiple processors in the system.
332f64292eSdlg.Pp
342f64292eSdlgThe
352f64292eSdlg.Fn atomic_setbits_int
362f64292eSdlgfunction sets the bits in
372f64292eSdlg.Fa b
382f64292eSdlgin the integer pointed to by
392f64292eSdlg.Fa p .
402f64292eSdlgIt is equivalent to
412f64292eSdlg.Bd -literal -offset indent
422f64292eSdlg*p |= b;
432f64292eSdlg.Ed
442f64292eSdlg.Pp
452f64292eSdlgThe
462f64292eSdlg.Fn atomic_clearbits_int
472f64292eSdlgfunction clears the bits in
482f64292eSdlg.Fa b
492f64292eSdlgin the integer pointed to by
502f64292eSdlg.Fa p .
512f64292eSdlgIt is equivalent to
522f64292eSdlg.Bd -literal -offset indent
532f64292eSdlg*p &= ~b;
542f64292eSdlg.Ed
55c468d2a2Sdlg.Sh CONTEXT
56c468d2a2Sdlg.Fn atomic_setbits_int ,
57c468d2a2Sdlgand
58c468d2a2Sdlg.Fn atomic_clearbits_int
59c468d2a2Sdlgcan be called during autoconf, from process context, or from interrupt context.
602f64292eSdlg.Sh SEE ALSO
61*38e9b2a9Sjmc.Xr atomic_add_int 9 ,
62*38e9b2a9Sjmc.Xr atomic_cas_uint 9 ,
63*38e9b2a9Sjmc.Xr atomic_dec_int 9 ,
64*38e9b2a9Sjmc.Xr atomic_inc_int 9 ,
65*38e9b2a9Sjmc.Xr atomic_sub_int 9 ,
66*38e9b2a9Sjmc.Xr atomic_swap_uint 9
672f64292eSdlg.Sh HISTORY
682f64292eSdlgThe
692f64292eSdlg.Nm
702f64292eSdlgfunctions first appeared in
712f64292eSdlg.Ox 4.1 .
72