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:

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