PROP_SEND_IOCTL(3) | Library Functions Manual | PROP_SEND_IOCTL(3) |
prop_array_send_ioctl
,
prop_array_recv_ioctl
,
prop_dictionary_send_ioctl
,
prop_dictionary_recv_ioctl
,
prop_dictionary_sendrecv_ioctl
—
#include <prop/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);
int
prop_dictionary_sendrecv_ioctl
(prop_dictionary_t
dict, int fd,
unsigned long cmd,
prop_dictionary_t
*dictp);
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).
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).
prop_array_send_ioctl
() and
prop_dictionary_send_ioctl
() will fail if:
prop_array_recv_ioctl
() and
prop_dictionary_recv_ioctl
() will fail if:
In addition to these, ioctl(2) errors may be returned.
January 21, 2008 | NetBSD 9.0 |