23. Device Control — RTEMS POSIX API Guide 5.4-rc2 (21st August 2026) documentation

# 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