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