Application developers, as well as device driver
developers, must be aware of the following regarding the RTEMS
I/O Manager:
A device driver routine executes in the context of the
invoking task. Thus if the driver blocks, the invoking task
blocks.
The device driver is free to change the modes of the
invoking task, although the driver should restore them to their
original values.
Device drivers may be invoked from ISRs.
Only local device drivers are accessible through the I/O
manager.
A device driver routine may invoke all other RTEMS
directives, including I/O directives, on both local and global
objects.
Although the RTEMS I/O manager provides a framework
for device drivers, it makes no assumptions regarding the
construction or operation of a device driver.