23. Device Control#
23.1. Introduction#
The POSIX Device Control API is defined by POSIX 1003.26 and attempts to provides a portable alternative to the ioctl() service which is not standardized across POSIX implementations. Support for this standard is required by the Open Group’s FACE Technical Standard :cits:”FACE:2012:FTS”. Unfortunately, this part of the POSIX standard is not widely implemented.
The services provided by the timer manager are:
posix_devctl_ - Control a Device
23.2. Background#
23.3. Operations#
23.4. System Calls#
This section details the POSIX device control’s services. A subsection is dedicated to each of this manager’s services and describes the calling sequence, related constants, usage, and status codes.
23.4.1. posix_devctl - Control a Device#
CALLING SEQUENCE:
#include <devctl.h>
int posix_devctl(
int fd,
int dcmd,
void *restrict dev_data_ptr,
size_t nbyte,
int *restrict dev_info_ptr
);
STATUS CODES:
The status codes returned reflect those returned by the ioctl()
service
and the underlying device drivers.
DESCRIPTION:
This method is intended to be a portable alternative to the ioctl()
method. The RTEMS implementation follows what is referred to as a library
implementation which is a simple wrapper for the ioctl()
method.
The fd, fcmd, dev_data_ptr, and nbyte parameters are passed unmodified
to the ioctl()
method.
If the dev_info_ptr parameter is not NULL, then the location pointed to by dev_info_ptr is set to 0.
NOTES:
NONE