summaryrefslogtreecommitdiffstats
path: root/posix-users/device_and_class_specific.rst
diff options
context:
space:
mode:
Diffstat (limited to 'posix-users/device_and_class_specific.rst')
-rw-r--r--posix-users/device_and_class_specific.rst460
1 files changed, 460 insertions, 0 deletions
diff --git a/posix-users/device_and_class_specific.rst b/posix-users/device_and_class_specific.rst
new file mode 100644
index 0000000..24b2763
--- /dev/null
+++ b/posix-users/device_and_class_specific.rst
@@ -0,0 +1,460 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. COMMENT: COPYRIGHT (c) 1988-2002.
+.. COMMENT: On-Line Applications Research Corporation (OAR).
+.. COMMENT: All rights reserved.
+
+Device- and Class- Specific Functions Manager
+#############################################
+
+Introduction
+============
+
+The device- and class- specific functions manager is ...
+
+The directives provided by the device- and class- specific functions manager
+are:
+
+- cfgetispeed_ - Reads terminal input baud rate
+
+- cfgetospeed_ - Reads terminal output baud rate
+
+- cfsetispeed_ - Sets terminal input baud rate
+
+- cfsetospeed_ - Set terminal output baud rate
+
+- tcgetattr_ - Gets terminal attributes
+
+- tcsetattr_ - Set terminal attributes
+
+- tcsendbreak_ - Sends a break to a terminal
+
+- tcdrain_ - Waits for all output to be transmitted to the terminal
+
+- tcflush_ - Discards terminal data
+
+- tcflow_ - Suspends/restarts terminal output
+
+- tcgetpgrp_ - Gets foreground process group ID
+
+- tcsetpgrp_ - Sets foreground process group ID
+
+Background
+==========
+
+There is currently no text in this section.
+
+Operations
+==========
+
+There is currently no text in this section.
+
+Directives
+==========
+
+This section details the device- and class- specific functions manager's
+directives. A subsection is dedicated to each of this manager's directives
+and describes the calling sequence, related constants, usage,
+and status codes.
+
+.. _cfgetispeed:
+
+cfgetispeed - Reads terminal input baud rate
+--------------------------------------------
+.. index:: cfgetispeed
+.. index:: reads terminal input baud rate
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ int cfgetispeed(
+ const struct termios *p
+ );
+
+**STATUS CODES:**
+
+The ``cfgetispeed()`` function returns a code for baud rate.
+
+**DESCRIPTION:**
+
+The ``cfsetispeed()`` function stores a code for the terminal speed stored in a
+struct termios. The codes are defined in ``<termios.h>`` by the macros ``BO``,
+``B50``, ``B75``, ``B110``, ``B134``, ``B150``, ``B200``, ``B300``, ``B600``,
+``B1200``, ``B1800``, ``B2400``, ``B4800``, ``B9600``, ``B19200``, and
+``B38400``.
+
+The ``cfsetispeed()`` function does not do anything to the hardware. It merely
+stores a value for use by ``tcsetattr()``.
+
+**NOTES:**
+
+Baud rates are defined by symbols, such as ``B110``, ``B1200``, ``B2400``. The
+actual number returned for any given speed may change from system to system.
+
+.. _cfgetospeed:
+
+cfgetospeed - Reads terminal output baud rate
+---------------------------------------------
+.. index:: cfgetospeed
+.. index:: reads terminal output baud rate
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ int cfgetospeed(
+ const struct termios *p
+ );
+
+**STATUS CODES:**
+
+The ``cfgetospeed()`` function returns the termios code for the baud rate.
+
+**DESCRIPTION:**
+
+The ``cfgetospeed()`` function returns a code for the terminal speed stored in
+a ``struct termios``. The codes are defined in ``<termios.h>`` by the macros
+``BO``, ``B50``, ``B75``, ``B110``, ``B134``, ``B150``, ``B200``, ``B300``,
+``B600``, ``B1200``, ``B1800``, ``B2400``, ``B4800``, ``B9600``, ``B19200``,
+and ``B38400``.
+
+The ``cfgetospeed()`` function does not do anything to the hardware. It merely
+returns the value stored by a previous call to ``tcgetattr()``.
+
+**NOTES:**
+
+Baud rates are defined by symbols, such as ``B110``, ``B1200``, ``B2400``. The
+actual number returned for any given speed may change from system to system.
+
+.. _cfsetispeed:
+
+cfsetispeed - Sets terminal input baud rate
+-------------------------------------------
+.. index:: cfsetispeed
+.. index:: sets terminal input baud rate
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ int cfsetispeed(
+ struct termios *p,
+ speed_t speed
+ );
+
+**STATUS CODES:**
+
+The ``cfsetispeed()`` function returns a zero when successful and returns -1
+when an error occurs.
+
+**DESCRIPTION:**
+
+The ``cfsetispeed()`` function stores a code for the terminal speed stored in a
+struct termios. The codes are defined in ``<termios.h>`` by the macros ``BO``,
+``B50``, ``B75``, ``B110``, ``B134``, ``B150``, ``B200``, ``B300``, ``B600``,
+``B1200``, ``B1800``, ``B2400``, ``B4800``, ``B9600``, ``B19200``, and
+``B38400``.
+
+**NOTES:**
+
+This function merely stores a value in the ``termios`` structure. It does not
+change the terminal speed until a ``tcsetattr()`` is done. It does not detect
+impossible terminal speeds.
+
+.. _cfsetospeed:
+
+cfsetospeed - Sets terminal output baud rate
+--------------------------------------------
+.. index:: cfsetospeed
+.. index:: sets terminal output baud rate
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ int cfsetospeed(
+ struct termios *p,
+ speed_t speed
+ );
+
+**STATUS CODES:**
+
+The ``cfsetospeed()`` function returns a zero when successful and
+returns -1 when an error occurs.
+
+**DESCRIPTION:**
+
+The ``cfsetospeed()`` function stores a code for the terminal speed stored in a
+struct ``termios``. The codes are defiined in ``<termios.h>`` by the macros
+``BO``, ``B50``, ``B75``, ``B110``, ``B134``, ``B150``, ``B200``, ``B300``,
+``B600``, ``B1200``, ``B1800``, ``B2400``, ``B4800``, ``B9600``, ``B19200``,
+and ``B38400``.
+
+The ``cfsetospeed()`` function does not do anything to the hardware. It merely
+stores a value for use by ``tcsetattr()``.
+
+**NOTES:**
+
+This function merely stores a value in the ``termios`` structure. It does not
+change the terminal speed until a ``tcsetattr()`` is done. It does not detect
+impossible terminal speeds.
+
+.. _tcgetattr:
+
+tcgetattr - Gets terminal attributes
+------------------------------------
+.. index:: tcgetattr
+.. index:: gets terminal attributes
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ #include <unistd.h>
+ int tcgetattr(
+ int fildes,
+ struct termios *p
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``EBADF``
+ - Invalid file descriptor
+ * - ``ENOOTY``
+ - Terminal control function attempted for a file that is not a terminal.
+
+**DESCRIPTION:**
+
+The ``tcgetattr()`` gets the parameters associated with the terminal referred
+to by ``fildes`` and stores them into the ``termios()`` structure pointed to by
+``termios_p``.
+
+**NOTES:**
+
+NONE
+
+.. _tcsetattr:
+
+tcsetattr - Set terminal attributes
+-----------------------------------
+.. index:: tcsetattr
+.. index:: set terminal attributes
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ #include <unistd.h>
+ int tcsetattr(
+ int fildes,
+ int options,
+ const struct termios *tp
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``E``
+ - The
+
+**DESCRIPTION:**
+
+**NOTES:**
+
+.. _tcsendbreak:
+
+tcsendbreak - Sends a break to a terminal
+-----------------------------------------
+.. index:: tcsendbreak
+.. index:: sends a break to a terminal
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ int tcsendbreak(
+ int fd
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``E``
+ - The
+
+**DESCRIPTION:**
+
+**NOTES:**
+
+This routine is not currently supported by RTEMS but could be
+in a future version.
+
+.. _tcdrain:
+
+tcdrain - Waits for all output to be transmitted to the terminal.
+-----------------------------------------------------------------
+.. index:: tcdrain
+.. index:: waits for all output to be transmitted to the terminal.
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ #include <termios.h>
+ #include <unistd.h>
+ int tcdrain(
+ int fildes
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``EBADF``
+ - Invalid file descriptor
+ * - ``EINTR``
+ - Function was interrupted by a signal
+ * - ``ENOTTY``
+ - Terminal control function attempted for a file that is not a terminal.
+
+**DESCRIPTION:**
+
+The ``tcdrain()`` function waits until all output written to ``fildes`` has been
+transmitted.
+
+**NOTES:**
+
+NONE
+
+.. _tcflush:
+
+tcflush - Discards terminal data
+--------------------------------
+.. index:: tcflush
+.. index:: discards terminal data
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ int tcflush(
+ int fd
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``E``
+ - The
+
+**DESCRIPTION:**
+
+**NOTES:**
+
+This routine is not currently supported by RTEMS but could be in a future
+version.
+
+.. _tcflow:
+
+tcflow - Suspends/restarts terminal output.
+-------------------------------------------
+.. index:: tcflow
+.. index:: suspends/restarts terminal output.
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ int tcflow(
+ int fd
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``E``
+ - The
+
+**DESCRIPTION:**
+
+**NOTES:**
+
+This routine is not currently supported by RTEMS but could be in a future
+version.
+
+.. _tcgetpgrp:
+
+tcgetpgrp - Gets foreground process group ID
+--------------------------------------------
+.. index:: tcgetpgrp
+.. index:: gets foreground process group id
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ int tcgetpgrp(
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``E``
+ - The
+
+**DESCRIPTION:**
+
+**NOTES:**
+
+This routine is not currently supported by RTEMS but could be in a future
+version.
+
+.. _tcsetpgrp:
+
+tcsetpgrp - Sets foreground process group ID
+--------------------------------------------
+.. index:: tcsetpgrp
+.. index:: sets foreground process group id
+
+**CALLING SEQUENCE:**
+
+.. code-block:: c
+
+ int tcsetpgrp(
+ );
+
+**STATUS CODES:**
+
+.. list-table::
+ :class: rtems-table
+
+ * - ``E``
+ - The
+
+**DESCRIPTION:**
+
+**NOTES:**
+
+This routine is not currently supported by RTEMS but could be in a future
+version.