diff options
Diffstat (limited to '')
-rw-r--r-- | c-user/io/directives.rst | 735 | ||||
-rw-r--r-- | c-user/io/introduction.rst | 62 |
2 files changed, 481 insertions, 316 deletions
diff --git a/c-user/io/directives.rst b/c-user/io/directives.rst index d3098cb..2ada7ac 100644 --- a/c-user/io/directives.rst +++ b/c-user/io/directives.rst @@ -1,421 +1,550 @@ .. SPDX-License-Identifier: CC-BY-SA-4.0 +.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +.. Do not manually edit this file. It is part of the RTEMS quality process +.. and was automatically generated. +.. +.. If you find something that needs to be fixed or worded better please +.. post a report to an RTEMS mailing list or raise a bug report: +.. +.. https://docs.rtems.org/branches/master/user/support/bugs.html +.. +.. For information on updating and regenerating please refer to: +.. +.. https://docs.rtems.org/branches/master/eng/req/howto.html + +.. _IOManagerDirectives: + Directives ========== -This section details the I/O 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. +This section details the directives of the I/O Manager. A subsection is +dedicated to each of this manager's directives and lists the calling sequence, +parameters, description, return values, and notes of the directive. + +.. Generated from spec:/rtems/io/if/register-driver .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_register_driver() .. index:: register a device driver -.. index:: rtems_io_register_driver - -.. _rtems_io_register_driver: - -IO_REGISTER_DRIVER - Register a device driver ---------------------------------------------- - -CALLING SEQUENCE: - .. code-block:: c - - rtems_status_code rtems_io_register_driver( - rtems_device_major_number major, - rtems_driver_address_table *driver_table, - rtems_device_major_number *registered_major - ); - -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table - - * - ``RTEMS_SUCCESSFUL`` - - successfully registered - * - ``RTEMS_INVALID_ADDRESS`` - - invalid registered major pointer - * - ``RTEMS_INVALID_ADDRESS`` - - invalid driver table - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number - * - ``RTEMS_TOO_MANY`` - - no available major device table slot - * - ``RTEMS_RESOURCE_IN_USE`` - - major device number entry in use - -DESCRIPTION: - This directive attempts to add a new device driver to the Device Driver - Table. The user can specify a specific major device number via the - directive's ``major`` parameter, or let the registration routine find the - next available major device number by specifing a major number of - ``0``. The selected major device number is returned via the - ``registered_major`` directive parameter. The directive automatically - allocation major device numbers from the highest value down. - - This directive automatically invokes the ``IO_INITIALIZE`` directive if the - driver address table has an initialization and open entry. - - The directive returns ``RTEMS_TOO_MANY`` if Device Driver Table is full, - and ``RTEMS_RESOURCE_IN_USE`` if a specific major device number is - requested and it is already in use. - -NOTES: - The Device Driver Table size is specified in the Configuration Table - condiguration. This needs to be set to maximum size the application - requires. + +.. _InterfaceRtemsIoRegisterDriver: + +rtems_io_register_driver() +-------------------------- + +Registers and initializes the device with the specified device driver address +table and device major number in the Device Driver Table. + +.. rubric:: CALLING SEQUENCE: + +.. code-block:: c + + rtems_status_code rtems_io_register_driver( + rtems_device_major_number major, + const rtems_driver_address_table *driver_table, + rtems_device_major_number *registered_major + ); + +.. rubric:: PARAMETERS: + +``major`` + This parameter is the device major number. Use a value of zero to let the + system obtain a device major number automatically. + +``driver_table`` + This parameter is the device driver address table. + +``registered_major`` + This parameter is the pointer to a device major number variable. The + device major number of the registered device will be stored in this + variable, in case of a successful operation. + +.. rubric:: RETURN VALUES: + +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. + +:c:macro:`RTEMS_INVALID_ADDRESS` + The device major number of the device was `NULL + <https://en.cppreference.com/w/c/types/NULL>`_. + +:c:macro:`RTEMS_INVALID_ADDRESS` + The device driver address table was empty. + +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number of the device was out of range, see + :ref:`CONFIGURE_MAXIMUM_DRIVERS`. + +:c:macro:`RTEMS_TOO_MANY` + The system was unable to obtain a device major number. + +:c:macro:`RTEMS_RESOURCE_IN_USE` + The device major number was already in use. + +:c:macro:`RTEMS_CALLED_FROM_ISR` + The directive was called from interrupt context. + +Other status codes may be returned by :ref:`InterfaceRtemsIoInitialize`. + +.. rubric:: NOTES: + +If the device major number equals zero a device major number will be obtained. +The device major number of the registered driver will be returned. + +After a successful registration, the :ref:`InterfaceRtemsIoInitialize` +directive will be called to initialize the device. + +.. Generated from spec:/rtems/io/if/unregister-driver .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_unregister_driver() .. index:: unregister a device driver -.. index:: rtems_io_unregister_driver -.. _rtems_io_unregister_driver: +.. _InterfaceRtemsIoUnregisterDriver: + +rtems_io_unregister_driver() +---------------------------- + +Removes a device driver specified by the device major number from the Device +Driver Table. + +.. rubric:: CALLING SEQUENCE: + +.. code-block:: c + + rtems_status_code rtems_io_unregister_driver( + rtems_device_major_number major + ); + +.. rubric:: PARAMETERS: + +``major`` + This parameter is the major number of the device. -IO_UNREGISTER_DRIVER - Unregister a device driver -------------------------------------------------- +.. rubric:: RETURN VALUES: -CALLING SEQUENCE: - .. code-block:: c +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. - rtems_status_code rtems_io_unregister_driver( - rtems_device_major_number major - ); +:c:macro:`RTEMS_UNSATISFIED` + The device major number was invalid. -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +:c:macro:`RTEMS_CALLED_FROM_ISR` + The directive was called from interrupt context. - * - ``RTEMS_SUCCESSFUL`` - - successfully registered - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number +.. rubric:: NOTES: -DESCRIPTION: - This directive removes a device driver from the Device Driver Table. +Currently no specific checks are made and the driver is not closed. -NOTES: - Currently no specific checks are made and the driver is not closed. +.. Generated from spec:/rtems/io/if/initialize .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_initialize() .. index:: initialize a device driver -.. index:: rtems_io_initialize -.. _rtems_io_initialize: +.. _InterfaceRtemsIoInitialize: -IO_INITIALIZE - Initialize a device driver ------------------------------------------- +rtems_io_initialize() +--------------------- -CALLING SEQUENCE: - .. code-block:: c +Initializes the device specified by the device major and minor numbers. - rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument - ); +.. rubric:: CALLING SEQUENCE: -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +.. code-block:: c - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number + rtems_status_code rtems_io_initialize( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *argument + ); -DESCRIPTION: - This directive calls the device driver initialization routine specified in - the Device Driver Table for this major number. This directive is - automatically invoked for each device driver when multitasking is initiated - via the initialize_executive directive. +.. rubric:: PARAMETERS: - A device driver initialization module is responsible for initializing all - hardware and data structures associated with a device. If necessary, it can - allocate memory to be used during other operations. +``major`` + This parameter is the major number of the device. -NOTES: - This directive may or may not cause the calling task to be preempted. This - is dependent on the device driver being initialized. +``minor`` + This parameter is the minor number of the device. -.. raw:: latex +``argument`` + This parameter is the argument passed to the device driver initialization + entry. - \clearpage +.. rubric:: DESCRIPTION: -.. index:: register device -.. index:: rtems_io_register_name +This directive calls the device driver initialization entry registered in the +Device Driver Table for the specified device major number. -.. _rtems_io_register_name: +.. rubric:: RETURN VALUES: -IO_REGISTER_NAME - Register a device ------------------------------------- +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. -CALLING SEQUENCE: - .. code-block:: c +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number was invalid. - rtems_status_code rtems_io_register_name( - const char *name, - rtems_device_major_number major, - rtems_device_minor_number minor - ); +Other status codes may be returned by the device driver initialization entry. -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +.. rubric:: NOTES: - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_TOO_MANY`` - - too many devices registered +This directive is automatically invoked for each device driver defined by the +application configuration during the system initialization and via the +:ref:`InterfaceRtemsIoRegisterDriver` directive. -DESCRIPTION: - This directive associates name with the specified major/minor number pair. +A device driver initialization entry is responsible for initializing all +hardware and data structures associated with a device. If necessary, it can +allocate memory to be used during other operations. -NOTES: - This directive will not cause the calling task to be preempted. +.. Generated from spec:/rtems/io/if/register-name .. raw:: latex - \clearpage + \clearpage + +.. index:: rtems_io_register_name() +.. index:: register a device in the file system + +.. _InterfaceRtemsIoRegisterName: + +rtems_io_register_name() +------------------------ + +Registers the device specified by the device major and minor numbers in the +file system under the specified name. + +.. rubric:: CALLING SEQUENCE: + +.. code-block:: c -.. index:: lookup device major and minor number -.. index:: rtems_io_lookup_name + rtems_status_code rtems_io_register_name( + const char *device_name, + rtems_device_major_number major, + rtems_device_minor_number minor + ); -.. _rtems_io_lookup_name: +.. rubric:: PARAMETERS: -IO_LOOKUP_NAME - Lookup a device --------------------------------- +``device_name`` + This parameter is the device name in the file system. -CALLING SEQUENCE: - .. code-block:: c +``major`` + This parameter is the device major number. - rtems_status_code rtems_io_lookup_name( - const char *name, - rtems_driver_name_t *device_info - ); +``minor`` + This parameter is the device minor number. -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +.. rubric:: RETURN VALUES: - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_UNSATISFIED`` - - name not registered +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. -DESCRIPTION: - This directive returns the major/minor number pair associated with the - given device name in ``device_info``. +:c:macro:`RTEMS_TOO_MANY` + The name was already in use or other errors occurred. -NOTES: - This directive will not cause the calling task to be preempted. +.. rubric:: NOTES: + +The device is registered as a character device. + +.. Generated from spec:/rtems/io/if/open .. raw:: latex - \clearpage + \clearpage + +.. index:: rtems_io_open() +.. index:: open a device + +.. _InterfaceRtemsIoOpen: + +rtems_io_open() +--------------- + +Opens the device specified by the device major and minor numbers. + +.. rubric:: CALLING SEQUENCE: + +.. code-block:: c + + rtems_status_code rtems_io_open( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *argument + ); + +.. rubric:: PARAMETERS: + +``major`` + This parameter is the major number of the device. + +``minor`` + This parameter is the minor number of the device. + +``argument`` + This parameter is the argument passed to the device driver close entry. -.. index:: open a devive -.. index:: rtems_io_open +.. rubric:: DESCRIPTION: -.. _rtems_io_open: +This directive calls the device driver open entry registered in the Device +Driver Table for the specified device major number. -IO_OPEN - Open a device ------------------------ +.. rubric:: RETURN VALUES: -CALLING SEQUENCE: - .. code-block:: c +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. - rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument - ); +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number was invalid. -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +Other status codes may be returned by the device driver open entry. - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number +.. rubric:: NOTES: -DESCRIPTION: - This directive calls the device driver open routine specified in the Device - Driver Table for this major number. The open entry point is commonly used - by device drivers to provide exclusive access to a device. +The open entry point is commonly used by device drivers to provide exclusive +access to a device. -NOTES: - This directive may or may not cause the calling task to be preempted. This - is dependent on the device driver being invoked. +.. Generated from spec:/rtems/io/if/close .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_close() .. index:: close a device -.. index:: rtems_io_close -.. _rtems_io_close: +.. _InterfaceRtemsIoClose: -IO_CLOSE - Close a device -------------------------- +rtems_io_close() +---------------- -CALLING SEQUENCE: - .. code-block:: c +Closes the device specified by the device major and minor numbers. - rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument - ); +.. rubric:: CALLING SEQUENCE: -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +.. code-block:: c - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number + rtems_status_code rtems_io_close( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *argument + ); -DESCRIPTION: - This directive calls the device driver close routine specified in the - Device Driver Table for this major number. The close entry point is - commonly used by device drivers to relinquish exclusive access to a device. +.. rubric:: PARAMETERS: -NOTES: - This directive may or may not cause the calling task to be preempted. This - is dependent on the device driver being invoked. +``major`` + This parameter is the major number of the device. + +``minor`` + This parameter is the minor number of the device. + +``argument`` + This parameter is the argument passed to the device driver close entry. + +.. rubric:: DESCRIPTION: + +This directive calls the device driver close entry registered in the Device +Driver Table for the specified device major number. + +.. rubric:: RETURN VALUES: + +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. + +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number was invalid. + +Other status codes may be returned by the device driver close entry. + +.. rubric:: NOTES: + +The close entry point is commonly used by device drivers to relinquish +exclusive access to a device. + +.. Generated from spec:/rtems/io/if/read .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_read() .. index:: read from a device -.. index:: rtems_io_read -.. _rtems_io_read: +.. _InterfaceRtemsIoRead: -IO_READ - Read from a device ----------------------------- +rtems_io_read() +--------------- + +Reads from the device specified by the device major and minor numbers. + +.. rubric:: CALLING SEQUENCE: -CALLING SEQUENCE: - .. code-block:: c +.. code-block:: c - rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument - ); + rtems_status_code rtems_io_read( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *argument + ); -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +.. rubric:: PARAMETERS: - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number +``major`` + This parameter is the major number of the device. -DESCRIPTION: - This directive calls the device driver read routine specified in the Device - Driver Table for this major number. Read operations typically require a - buffer address as part of the argument parameter block. The contents of - this buffer will be replaced with data from the device. +``minor`` + This parameter is the minor number of the device. -NOTES: - This directive may or may not cause the calling task to be preempted. This - is dependent on the device driver being invoked. +``argument`` + This parameter is the argument passed to the device driver read entry. + +.. rubric:: DESCRIPTION: + +This directive calls the device driver read entry registered in the Device +Driver Table for the specified device major number. + +.. rubric:: RETURN VALUES: + +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. + +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number was invalid. + +Other status codes may be returned by the device driver read entry. + +.. rubric:: NOTES: + +Read operations typically require a buffer address as part of the argument +parameter block. The contents of this buffer will be replaced with data from +the device. + +.. Generated from spec:/rtems/io/if/write .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_write() .. index:: write to a device -.. index:: rtems_io_write -.. _rtems_io_write: +.. _InterfaceRtemsIoWrite: -IO_WRITE - Write to a device ----------------------------- +rtems_io_write() +---------------- + +Writes to the device specified by the device major and minor numbers. + +.. rubric:: CALLING SEQUENCE: + +.. code-block:: c -CALLING SEQUENCE: - .. code-block:: c + rtems_status_code rtems_io_write( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *argument + ); - rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument - ); +.. rubric:: PARAMETERS: -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table +``major`` + This parameter is the major number of the device. - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number +``minor`` + This parameter is the minor number of the device. -DESCRIPTION: - This directive calls the device driver write routine specified in the - Device Driver Table for this major number. Write operations typically - require a buffer address as part of the argument parameter block. The - contents of this buffer will be sent to the device. +``argument`` + This parameter is the argument passed to the device driver write entry. -NOTES: - This directive may or may not cause the calling task to be preempted. This - is dependent on the device driver being invoked. +.. rubric:: DESCRIPTION: + +This directive calls the device driver write entry registered in the Device +Driver Table for the specified device major number. + +.. rubric:: RETURN VALUES: + +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. + +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number was invalid. + +Other status codes may be returned by the device driver write entry. + +.. rubric:: NOTES: + +Write operations typically require a buffer address as part of the argument +parameter block. The contents of this buffer will be sent to the device. + +.. Generated from spec:/rtems/io/if/control .. raw:: latex - \clearpage + \clearpage +.. index:: rtems_io_control() +.. index:: IO control .. index:: special device services -.. index:: IO Control -.. index:: rtems_io_control - -.. _rtems_io_control: - -IO_CONTROL - Special device services ------------------------------------- - -CALLING SEQUENCE: - .. code-block:: c - - rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument - ); - -DIRECTIVE STATUS CODES: - .. list-table:: - :class: rtems-table - - * - ``RTEMS_SUCCESSFUL`` - - successfully initialized - * - ``RTEMS_INVALID_NUMBER`` - - invalid major device number - -DESCRIPTION: - This directive calls the device driver I/O control routine specified in the - Device Driver Table for this major number. The exact functionality of the - driver entry called by this directive is driver dependent. It should not - be assumed that the control entries of two device drivers are compatible. - For example, an RS-232 driver I/O control operation may change the baud - rate of a serial line, while an I/O control operation for a floppy disk - driver may cause a seek operation. - -NOTES: - This directive may or may not cause the calling task to be preempted. This - is dependent on the device driver being invoked. + +.. _InterfaceRtemsIoControl: + +rtems_io_control() +------------------ + +Controls the device specified by the device major and minor numbers. + +.. rubric:: CALLING SEQUENCE: + +.. code-block:: c + + rtems_status_code rtems_io_control( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *argument + ); + +.. rubric:: PARAMETERS: + +``major`` + This parameter is the major number of the device. + +``minor`` + This parameter is the minor number of the device. + +``argument`` + This parameter is the argument passed to the device driver I/O control + entry. + +.. rubric:: DESCRIPTION: + +This directive calls the device driver I/O control entry registered in the +Device Driver Table for the specified device major number. + +.. rubric:: RETURN VALUES: + +:c:macro:`RTEMS_SUCCESSFUL` + The requested operation was successful. + +:c:macro:`RTEMS_INVALID_NUMBER` + The device major number was invalid. + +Other status codes may be returned by the device driver I/O control entry. + +.. rubric:: NOTES: + +The exact functionality of the driver entry called by this directive is driver +dependent. It should not be assumed that the control entries of two device +drivers are compatible. For example, an RS-232 driver I/O control operation +may change the baud of a serial line, while an I/O control operation for a +floppy disk driver may cause a seek operation. diff --git a/c-user/io/introduction.rst b/c-user/io/introduction.rst index e097c7f..7368e8a 100644 --- a/c-user/io/introduction.rst +++ b/c-user/io/introduction.rst @@ -1,30 +1,66 @@ .. SPDX-License-Identifier: CC-BY-SA-4.0 +.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +.. Do not manually edit this file. It is part of the RTEMS quality process +.. and was automatically generated. +.. +.. If you find something that needs to be fixed or worded better please +.. post a report to an RTEMS mailing list or raise a bug report: +.. +.. https://docs.rtems.org/branches/master/user/support/bugs.html +.. +.. For information on updating and regenerating please refer to: +.. +.. https://docs.rtems.org/branches/master/eng/req/howto.html + +.. Generated from spec:/rtems/io/if/group + +.. _IOManagerIntroduction: + Introduction ============ -The input/output interface manager provides a well-defined mechanism for -accessing device drivers and a structured methodology for organizing device -drivers. The directives provided by the I/O manager are: +.. The following list was generated from: +.. spec:/rtems/io/if/register-driver +.. spec:/rtems/io/if/unregister-driver +.. spec:/rtems/io/if/initialize +.. spec:/rtems/io/if/register-name +.. spec:/rtems/io/if/open +.. spec:/rtems/io/if/close +.. spec:/rtems/io/if/read +.. spec:/rtems/io/if/write +.. spec:/rtems/io/if/control -- :ref:`rtems_io_initialize` +The Input/Output (I/O) Manager provides a well-defined mechanism for accessing +device drivers and a structured methodology for organizing device drivers. The +directives provided by the I/O Manager are: -- :ref:`rtems_io_register_driver` +* :ref:`InterfaceRtemsIoRegisterDriver` - Registers and initializes the device + with the specified device driver address table and device major number in the + Device Driver Table. -- :ref:`rtems_io_unregister_driver` +* :ref:`InterfaceRtemsIoUnregisterDriver` - Removes a device driver specified + by the device major number from the Device Driver Table. -- :ref:`rtems_io_register_name` +* :ref:`InterfaceRtemsIoInitialize` - Initializes the device specified by the + device major and minor numbers. -- :ref:`rtems_io_lookup_name` +* :ref:`InterfaceRtemsIoRegisterName` - Registers the device specified by the + device major and minor numbers in the file system under the specified name. -- :ref:`rtems_io_open` +* :ref:`InterfaceRtemsIoOpen` - Opens the device specified by the device major + and minor numbers. -- :ref:`rtems_io_close` +* :ref:`InterfaceRtemsIoClose` - Closes the device specified by the device + major and minor numbers. -- :ref:`rtems_io_read` +* :ref:`InterfaceRtemsIoRead` - Reads from the device specified by the device + major and minor numbers. -- :ref:`rtems_io_write` +* :ref:`InterfaceRtemsIoWrite` - Writes to the device specified by the device + major and minor numbers. -- :ref:`rtems_io_control` +* :ref:`InterfaceRtemsIoControl` - Controls the device specified by the device + major and minor numbers. |