DragonFly On-Line Manual Pages
PROP_SEND_SYCALL(3) DragonFly Library Functions Manual PROP_SEND_SYCALL(3)
NAME
prop_array_send_syscall, prop_array_recv_syscall,
prop_dictionary_send_syscall, prop_dictionary_recv_syscall -- send and
receive property lists to and from the kernel using syscalls
LIBRARY
Property Container Object Library (libprop, -lprop)
SYNOPSIS
#include <libprop/proplib.h>
int
prop_array_send_syscall(prop_array_t array, struct plistref *prefp);
int
prop_array_recv_syscall(const struct plistref *prefp,
prop_array_t *arrayp);
int
prop_dictionary_send_syscall(prop_dictionary_t dict,
struct plistref *prefp);
int
prop_dictionary_recv_syscall(const struct plistref *prefp,
prop_dictionary_t *dictp);
DESCRIPTION
The prop_array_send_syscall, prop_array_recv_syscall,
prop_dictionary_send_syscall, and prop_dictionary_recv_syscall functions
implement the user space side of a protocol for sending property lists to
and from the kernel using syscall(2).
RETURN VALUES
If successful, functions return zero. Otherwise, an error number is
returned to indicate the error.
EXAMPLES
The following (simplified) example demonstrates using
prop_dictionary_send_syscall() and prop_dictionary_recv_syscall() in an
application:
void
foo_setprops(prop_dictionary_t dict)
{
struct pref pref;
(void) prop_dictionary_send_syscall(dict, &pref);
(void) my_syscall_set(&pref);
}
prop_dictionary_t
foo_getprops(void)
{
prop_dictionary_t dict;
struct pref pref;
(void) my_syscall_get(&pref);
if (prop_dictionary_recv_syscall(&pref, &dict) != 0)
return (NULL);
return (dict);
}
ERRORS
prop_array_send_syscall() and prop_dictionary_send_syscall() will fail
if:
[ENOMEM] Cannot allocate memory
[ENOTSUP] Not supported
prop_array_recv_syscall() and prop_dictionary_recv_syscall() will fail
if:
[EIO] Input/output error
[ENOTSUP] Not supported
SEE ALSO
prop_array(3), prop_dictionary(3), proplib(3), prop_copyin_ioctl(9)
HISTORY
The proplib property container object library first appeared in
NetBSD 4.0.
DragonFly 3.5 January 17, 2011 DragonFly 3.5