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 4.1 January 17, 2011 DragonFly 4.1