summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/prop_data.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/prop_data.3')
-rw-r--r--static/netbsd/man3/prop_data.3154
1 files changed, 154 insertions, 0 deletions
diff --git a/static/netbsd/man3/prop_data.3 b/static/netbsd/man3/prop_data.3
new file mode 100644
index 00000000..99a7be8c
--- /dev/null
+++ b/static/netbsd/man3/prop_data.3
@@ -0,0 +1,154 @@
+.\" $NetBSD: prop_data.3,v 1.10 2025/09/23 21:32:38 rillig Exp $
+.\"
+.\" Copyright (c) 2006, 2020 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Jason R. Thorpe.
+.\"
+.\" 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 June 2, 2020
+.Dt PROP_DATA 3
+.Os
+.Sh NAME
+.Nm prop_data ,
+.Nm prop_data_create_copy ,
+.Nm prop_data_create_nocopy ,
+.Nm prop_data_copy ,
+.Nm prop_data_size ,
+.Nm prop_data_value ,
+.Nm prop_data_copy_value ,
+.Nm prop_data_equals ,
+.Nm prop_data_equals_data
+.Nd opaque data value property object
+.Sh LIBRARY
+.Lb libprop
+.Sh SYNOPSIS
+.In prop/proplib.h
+.\"
+.Ft prop_data_t
+.Fn prop_data_create_copy "const void *blob" "size_t len"
+.Ft prop_data_t
+.Fn prop_data_create_nocopy "const void *blob" "size_t len"
+.\"
+.Ft prop_data_t
+.Fn prop_data_copy "prop_data_t data"
+.\"
+.Ft const void *
+.Fn prop_data_value "prop_data_t data"
+.Ft bool
+.Fn prop_data_copy_value "prop_data_t data" "void *buf" "size_t buflen"
+.\"
+.Ft size_t
+.Fn prop_data_size "prop_data_t data"
+.\"
+.Ft bool
+.Fn prop_data_equals "prop_data_t dat1" "prop_data_t dat2"
+.Ft bool
+.Fn prop_data_equals_data "prop_data_t data" "const void *blob" "size_t len"
+.Sh DESCRIPTION
+The
+.Nm
+family of functions operate on an opaque data value property object type.
+.Bl -tag -width "xxxxx"
+.It Fn prop_data_create_copy "const void *blob" "size_t len"
+Create a data object that contains a copy of
+.Fa blob
+with size
+.Fa len .
+Returns
+.Dv NULL
+on failure.
+.It Fn prop_data_create_nocopy "const void *blob" "size_t len"
+Similar to
+.Fn prop_data_create_copy ,
+but is allowed to not create an internal copy of the opaque data, instead
+referencing the buffer passed by the caller.
+Caution must be exercised because data objects can have an indefinite
+lifespan.
+The caller must therefore ensure that the provided buffer reference will
+also be valid indefinitely.
+This is provided as a memory optimization; it is not guaranteed that
+the returned data object will reference the provided buffer, and thus
+callers should not rely on this behavior.
+Returns
+.Dv NULL
+on failure.
+.It Fn prop_data_copy "prop_data_t data"
+Copy a data object.
+If the data object being copied is an external data reference,
+then the copy also references the same external data.
+Returns
+.Dv NULL
+on failure.
+.It Fn prop_data_size "prop_data_t data"
+Returns the size of the data object.
+If the supplied object isn't a data object, zero is returned.
+.It Fn prop_data_value "prop_data_t data"
+Returns a reference to the data object's buffer.
+If the supplied object isn't a data object or
+if the data container is empty,
+.Dv NULL
+is returned.
+.It Fn prop_data_copy_value "prop_data_t data" "void *buf" "size_t buflen"
+Copies the contents of the data object into the supplied buffer of the
+specified size.
+Returns
+.Dv true
+if the copy succeeds and
+.Dv false
+iff the supplied buffer is not large enough or if the object is not a
+data object.
+.It Fn prop_data_equals "prop_data_t dat1" "prop_data_t dat2"
+Returns
+.Dv true
+if the two data objects are equivalent.
+If at least one of the supplied objects isn't a data object,
+.Dv false
+is returned.
+.It Fn prop_data_equals_data "prop_data_t data" "const void *blob" "size_t len"
+Returns
+.Dv true
+if the data object's value is equivalent to
+.Fa blob
+with size
+.Fa len .
+If the supplied object isn't a data object,
+.Dv false
+is returned.
+.El
+.Sh SEE ALSO
+.Xr prop_array 3 ,
+.Xr prop_bool 3 ,
+.Xr prop_dictionary 3 ,
+.Xr prop_number 3 ,
+.Xr prop_object 3 ,
+.Xr prop_string 3 ,
+.Xr proplib 3
+.Sh HISTORY
+The
+.Xr proplib 3
+property container object library first appeared in
+.Nx 4.0 .
+Support for mutable data objects was deprecated in
+.Nx 10.0 .