PROP_DATA(3)

PROP_DATA(3) | Library Functions Manual | PROP_DATA(3)

# NAME

prop_data, prop_data_create_data, prop_data_create_data_nocopy, prop_data_copy, prop_data_size, prop_data_data, prop_data_data_nocopy, prop_data_equals, prop_data_equals_data — opaque data value property object

# LIBRARY

Property Container Object Library (libprop, -lprop)

# SYNOPSIS

#include <prop/proplib.h>
prop_data_t
prop_data_create_data(const void *blob, size_t len);
prop_data_t
prop_data_create_data_nocopy(const void *blob, size_t len);
prop_data_t
prop_data_copy(prop_data_t data);
size_t
prop_data_size(prop_data_t data);
void *
prop_data_data(prop_data_t data);
const void *
prop_data_data_nocopy(prop_data_t data);
bool
prop_data_equals(prop_data_t dat1, prop_data_t dat2);
bool
prop_data_equals_data(prop_data_t data, const void *blob, size_t len);

# DESCRIPTION

The prop_data() family of functions operate on an opaque data value property object type.

prop_data_create_data(const void *blob, size_t len)
  Create a data object that contains a copy of blob with size len. Returns `NULL` on failure.
prop_data_create_data_nocopy(const void *blob, size_t len)
  Create a data object that contains a reference to blob with size len. Returns `NULL` on failure.
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 `NULL` on failure.
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.
prop_data_data(prop_data_t data)
  Returns a copy of the data object's contents. The caller is responsible for freeing the returned buffer. If the supplied object isn't a data object or if the data container is empty, `NULL` is returned.
  In user space, the buffer is allocated using malloc(3). In the kernel, the buffer is allocated using malloc(9) using the malloc type `M_TEMP`.
prop_data_data_nocopy(prop_data_t data)
  Returns an immutable reference to the contents of the data object. If the supplied object isn't a data object, `NULL` is returned.
prop_data_equals(prop_data_t dat1, prop_data_t dat2)
  Returns `true` if the two data objects are equivalent. If at least one of the supplied objects isn't a data object, `false` is returned.
prop_data_equals_data(prop_data_t data, const void *blob, size_t len)
  Returns `true` if the data object's value is equivalent to blob with size len. If the supplied object isn't a data object, `false` is returned.

# SEE ALSO

prop_array(3), prop_bool(3), prop_dictionary(3), prop_number(3), prop_object(3), prop_string(3), proplib(3)

# HISTORY

The proplib(3) property container object library first appeared in NetBSD 4.0.

April 22, 2006 | NetBSD 8.0