PROP_SEND_IOCTL(3) BSD Library Functions Manual PROP_SEND_IOCTL(3)NAME
prop_array_send_ioctl, prop_array_recv_ioctl, prop_dictionary_send_ioctl,
prop_dictionary_recv_ioctl, prop_dictionary_sendrecv_ioctl — Send and
receive propertly lists to and from the kernel using ioctl
LIBRARY
library “libprop”
SYNOPSIS
#include <libprop/proplib.h>
int
prop_array_send_ioctl(prop_array_t array, int fd, unsigned long cmd);
int
prop_array_recv_ioctl(int fd, unsigned long cmd, prop_array_t *arrayp);
int
prop_dictionary_send_ioctl(prop_dictionary_t dict, int fd,
unsigned long cmd);
int
prop_dictionary_recv_ioctl(int fd, unsigned long cmd,
prop_dictionary_t *dictp);
prop_dictionary_sendrecv_ioctl(prop_dictionary_t dict, int fd,
unsigned long cmd, prop_dictionary_t *dictp);
DESCRIPTION
The prop_array_send_ioctl, prop_array_recv_ioctl,
prop_dictionary_send_ioctl, prop_dictionary_recv_ioctl, and
prop_dictionary_sendrecv_ioctl functions implement the user space side of
a protocol for sending property lists to and from the kernel using
ioctl(2).
RETURN VALUES
If successful, functions return zero. Otherwise, an error number is
returned to indicate the error.
ERRORSprop_array_send_ioctl() and prop_dictionary_send_ioctl() will fail if:
[ENOMEM] Cannot allocate memory
[ENOTSUP] Not supported
prop_array_recv_ioctl() and prop_dictionary_recv_ioctl() will fail if:
[EIO] Input/output error
[ENOTSUP] Not supported
In addition to these, ioctl(2) errors may be returned.
EXAMPLES
The following (simplified) example demonstrates using
prop_dictionary_send_ioctl() and prop_dictionary_recv_ioctl() in an
application:
void
foo_setprops(prop_dictionary_t dict)
{
int fd;
fd = open("/dev/foo", O_RDWR, 0640);
if (fd == -1)
return;
(void) prop_dictionary_send_ioctl(dict, fd, FOOSETPROPS);
(void) close(fd);
}
prop_dictionary_t
foo_getprops(void)
{
prop_dictionary_t dict;
int fd;
fd = open("/dev/foo", O_RDONLY, 0640);
if (fd == -1)
return (NULL);
if (prop_dictionary_recv_ioctl(fd, FOOGETPROPS, &dict) != 0)
return (NULL);
(void) close(fd);
return (dict);
}
The prop_dictionary_sendrecv_ioctl function combines the send and receive
functionality, allowing for ioctls that require two-way communication
(for example to specify arguments for the ioctl operation).
SEE ALSOprop_array(3), prop_dictionary(3), proplib(3), prop_copyin_ioctl(9)HISTORY
The proplib property container object library first appeared in
NetBSD 4.0.
BSD January 21, 2008 BSD