From e34fe384cb7ecdd2643e8bf528e08e1c988abc8a Mon Sep 17 00:00:00 2001 From: Alexander Krutwig Date: Mon, 17 Oct 2016 14:15:34 +0200 Subject: 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. --- cpukit/libcsupport/include/rtems/termiostypes.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'cpukit/libcsupport/include/rtems') 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. * -- cgit v1.2.3