summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/cdbr.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man3/cdbr.3
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff)
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man3/cdbr.3')
-rw-r--r--static/netbsd/man3/cdbr.3147
1 files changed, 147 insertions, 0 deletions
diff --git a/static/netbsd/man3/cdbr.3 b/static/netbsd/man3/cdbr.3
new file mode 100644
index 00000000..0b90cfd4
--- /dev/null
+++ b/static/netbsd/man3/cdbr.3
@@ -0,0 +1,147 @@
+.\" $NetBSD: cdbr.3,v 1.7 2023/10/27 04:05:55 simonb Exp $
+.\"
+.\" Copyright (c) 2010 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Joerg Sonnenberger.
+.\" 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 COPYRIGHT HOLDERS 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
+.\" COPYRIGHT HOLDERS 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 December 1, 2018
+.Dt CDBR 3
+.Os
+.Sh NAME
+.Nm cdbr ,
+.Nm cdbr_open ,
+.Nm cdbr_open_mem ,
+.Nm cdbr_entries ,
+.Nm cdbr_get ,
+.Nm cdbr_find ,
+.Nm cdbr_close
+.Nd constant database access methods
+.Sh SYNOPSIS
+.In cdbr.h
+.Ft "struct cdbr *"
+.Fn cdbr_open "const char *path" "int flags"
+.Ft "struct cdbr *"
+.Fo cdbr_open_mem
+.Fa "void *base"
+.Fa "size_t size"
+.Fa "int flags"
+.Fa "void (*unmap)(void *, void *, size_t)"
+.Fa "void *cookie"
+.Fc
+.Ft uint32_t
+.Fn cdbr_entries "struct cdbr *cdbr"
+.Ft int
+.Fn cdbr_get "struct cdbr *cdbr" "uint32_t index" "const void **data" "size_t *datalen"
+.Ft int
+.Fo cdbr_find
+.Fa "struct cdbr *cdbr"
+.Fa "const void *key"
+.Fa "size_t keylen"
+.Fa "const void **data"
+.Fa "size_t *datalen"
+.Fc
+.Ft void
+.Fn cdbr_close "struct cdbr *cdbr"
+.Sh DESCRIPTION
+The
+.Nm
+library provides a space efficient (key,value) database based
+on perfect hashing.
+.Pp
+A cdb database is opened for reading by calling
+.Fn cdbr_open .
+The only supported value for
+.Va flags
+is
+.Dv CDBR_DEFAULT .
+The function returns a handle to pass to the other functions.
+The database is closed by invoking
+.Fn cdbr_close .
+All resources associated with the handle are freed and the memory
+returned by
+.Fn cdbr_get
+and
+.Fn cdbr_find
+is invalidated.
+.Fn cdbr_open_mem
+works like
+.Fn cdbr_open ,
+but takes a memory reference to the content of the database file.
+If
+.Va unmap
+is not
+.Dv NULL ,
+it is called by
+.Fn cdbr_close
+with
+.Va cookie ,
+.Va base
+and
+.Va size
+as arguments.
+It is not called by
+.Fn cdbr_open_mem
+on error.
+.Pp
+The number of records in the database can be obtained by calling
+.Fn cdbr_entries .
+Records can be obtained by record number using
+.Fn cdbr_get
+or by key using
+.Fn cdbr_find .
+Both functions return 0 on success and update
+.Va data
+and
+.Va datalen
+accordingly.
+The location
+.Va *data
+remains valid until
+.Fn cdbr_close
+is called.
+It is the responsibility of the caller of
+.Fn cdbr_find
+to ensure that the key matches the returned data.
+The function returns the only possible match, but the database doesn't store
+the keys to minimize overhead.
+.Sh SEE ALSO
+.Xr nbperf 1 ,
+.Xr cdbw 3 ,
+.Xr db 3 ,
+.Xr cdb 5
+.Sh HISTORY
+Support for the
+.Nm cdb
+format first appeared in
+.Nx 6.0 .
+.Sh AUTHORS
+The
+.Nm cdbr
+and
+.Nm cdbw
+functions have been written by
+.An Joerg Sonnenberger Aq Mt joerg@NetBSD.org .