diff options
author | Alexander Krutwig <alexander.krutwig@embedded-brains.de> | 2016-10-17 14:15:34 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-12-16 09:04:58 +0100 |
commit | e34fe384cb7ecdd2643e8bf528e08e1c988abc8a (patch) | |
tree | c1a1b26ac88b6f8161674b06ed67d736009e5ac4 /cpukit/libcsupport/include/rtems/termiostypes.h | |
parent | termios: Use mutex for task driven mode (diff) | |
download | rtems-e34fe384cb7ecdd2643e8bf528e08e1c988abc8a.tar.bz2 |
termios: Add TERMIOS_IRQ_SERVER_DRIVEN
Add a new interrupt server driven Termios mode (TERMIOS_IRQ_DRIVEN).
This mode is identical to the interrupt driven mode except that a mutex
is used for device level locking. The intended use case for this mode
are device drivers that use the interrupt server, e.g. SPI or I2C
connected devices.
Update #2839.
Diffstat (limited to '')
-rw-r--r-- | cpukit/libcsupport/include/rtems/termiostypes.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/cpukit/libcsupport/include/rtems/termiostypes.h b/cpukit/libcsupport/include/rtems/termiostypes.h index 81d28c283c..ffe172c439 100644 --- a/cpukit/libcsupport/include/rtems/termiostypes.h +++ b/cpukit/libcsupport/include/rtems/termiostypes.h @@ -57,7 +57,8 @@ struct rtems_termios_rawbuf { typedef enum { TERMIOS_POLLED, TERMIOS_IRQ_DRIVEN, - TERMIOS_TASK_DRIVEN + TERMIOS_TASK_DRIVEN, + TERMIOS_IRQ_SERVER_DRIVEN } rtems_termios_device_mode; struct rtems_termios_tty; @@ -74,7 +75,7 @@ typedef struct rtems_termios_device_context { /* Used for TERMIOS_POLLED and TERMIOS_IRQ_DRIVEN */ rtems_interrupt_lock interrupt; - /* Used for TERMIOS_TASK_DRIVEN */ + /* Used for TERMIOS_IRQ_SERVER_DRIVEN or TERMIOS_TASK_DRIVEN */ rtems_id mutex; } lock; @@ -161,8 +162,9 @@ typedef struct { /** * @brief Polled read. * - * In case mode is TERMIOS_IRQ_DRIVEN or TERMIOS_TASK_DRIVEN, then data is - * received via rtems_termios_enqueue_raw_characters(). + * In case mode is TERMIOS_IRQ_DRIVEN, TERMIOS_IRQ_SERVER_DRIVEN or + * TERMIOS_TASK_DRIVEN, then data is received via + * rtems_termios_enqueue_raw_characters(). * * @param[in] context The Termios device context. * |