diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 15:32:58 -0400 |
| commit | 5cb84ec742fd33f78c8022863fadaa8d0d93e176 (patch) | |
| tree | 1a81ca3665e6153923e40db7b0d988f8573ab59c /static/netbsd/man3/bitmap.3 | |
| parent | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (diff) | |
feat: Added NetBSD man pages
Diffstat (limited to 'static/netbsd/man3/bitmap.3')
| -rw-r--r-- | static/netbsd/man3/bitmap.3 | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/static/netbsd/man3/bitmap.3 b/static/netbsd/man3/bitmap.3 new file mode 100644 index 00000000..f6c89d85 --- /dev/null +++ b/static/netbsd/man3/bitmap.3 @@ -0,0 +1,151 @@ +.\" $NetBSD: bitmap.3,v 1.12 2018/03/08 06:47:30 wiz Exp $ +.\" +.\" Copyright (c) 2012 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Christos Zoulas. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd March 8, 2018 +.Dt BITMAP 3 +.Os +.Sh NAME +.Nm __BITMAP_CLR , +.Nm __BITMAP_ISSET , +.Nm __BITMAP_SET , +.Nm __BITMAP_SIZE , +.Nm __BITMAP_TYPE , +.Nm __BITMAP_ZERO +.Nd bitmap manipulation macros +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/bitops.h +.Fn __BITMAP_CLR "int bit" "type *bitmap" +.Fn __BITMAP_ISSET "int bit" "type *bitmap" +.Fn __BITMAP_SET "int bit" "type *bitmap" +.Fn __BITMAP_SIZE "type" "int nbits" +.Fn __BITMAP_TYPE "name" "type" "int nbits" +.Fn __BITMAP_ZERO "type *bitmap" +.Sh DESCRIPTION +The supplied macros are similar to the +.Xr select 2 +.Fn FD_SET +family, to the +.Xr setbit 9 , +macros and the +.Xr bitstring 3 +library. +They are different from +.Fn FD_SET +because they are designed to handle multiple sized bitmaps at the same time, +and they can be of any integral type. +They are different from +.Xr setbit 9 +because they can operate on different integral types, not just on bytes. +They are different from +.Xr bitstring 3 +because they are just macros, they don't allocate memory or use code, +and they can be used in both kernel and userland. +.Pp +The following macros are provided for manipulating creating and manipulating +bitmaps: +.Pp +.Fn __BITMAP_CLR bit bitmap +removes the given +.Fa bit +from the +.Fa bitmap . +.Pp +.Fn __BITMAP_ISSET bit bitmap +is non-zero if +.Fa bit +is a member of +.Fa bitmap , +zero otherwise. +.Pp +.Fn __BITMAP_SET bit bitmap +Sets the given +.Fa bit +in the +.Fa bitmap . +.Pp +.Fn __BITMAP_SIZE type nbits +Returns the number of elements would be required of the given +.Fa type +to hold +.Fa nbits . +.Pp +.Fn __BITMAP_TYPE name type nbits +Declares the properly sized bitmap structure +of the given +.Fa type +that holds +.Fa nbits +and is named +.Fa name . +.Pp +.Fn __BITMAP_ZERO bitmap +initializes a descriptor set pointed to by +.Fa bitmap +to the null set. +.Pp +The behavior of these macros is undefined for negative +bit values or ones greater than the number of bits the bitmap can hold. +.Sh EXAMPLES +.Bd -literal +#include <sys/bitops.h> + +int +main(int argc, char **argv) +{ + __BITMAP_TYPE(, uint32_t, 5000) bitmap; + + /* Initialize the read set to null */ + __BITMAP_ZERO(&bitmap); + + /* Set bit 1 */ + __BITMAP_SET(1, &bitmap); + + for (size_t i = 0; i < 5000; i++) { + if (__BITMAP_ISSET(i, &bitmap)) { + /* Should just print 1 */ + printf("Bit %zu is set\en", i); + __BITMAP_CLR(i, &bitmap); + } + break; + } + return 0; +} +.Ed +.Sh SEE ALSO +.Xr select 2 , +.Xr bitops 3 , +.Xr bitstring 3 , +.Xr setbit 9 +.Sh HISTORY +The +.Fn __BITMAP_* +macros appeared in +.Nx 7.0 . |
