summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/shared/comm/tty_drv.c
diff options
context:
space:
mode:
authorVipul Nayyar <nayyar_vipul@yahoo.com>2013-07-26 20:23:39 +0530
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-29 09:07:19 +0200
commit2bdcf4fd511941dab9ef0db0790363dedfaf622f (patch)
treebd5fd57c1b34098691a332fb2012506795617b0e /c/src/lib/libbsp/i386/shared/comm/tty_drv.c
parentscore: Move object content to public API (diff)
downloadrtems-2bdcf4fd511941dab9ef0db0790363dedfaf622f.tar.bz2
Updated legacy code in i386 pc386
Diffstat (limited to 'c/src/lib/libbsp/i386/shared/comm/tty_drv.c')
-rw-r--r--c/src/lib/libbsp/i386/shared/comm/tty_drv.c93
1 files changed, 34 insertions, 59 deletions
diff --git a/c/src/lib/libbsp/i386/shared/comm/tty_drv.c b/c/src/lib/libbsp/i386/shared/comm/tty_drv.c
index aafb02a58f..16a40df465 100644
--- a/c/src/lib/libbsp/i386/shared/comm/tty_drv.c
+++ b/c/src/lib/libbsp/i386/shared/comm/tty_drv.c
@@ -27,63 +27,19 @@
#include <termios.h>
#include <uart.h>
#include <libcpu/cpuModel.h>
+#include "tty_drv.h"
int BSP_poll_read(int);
/* Internal routines */
static int tty1_conSetAttr( int minor, const struct termios *t);
static int tty2_conSetAttr( int minor, const struct termios *t);
-static void isr_on(const rtems_irq_connect_data *);
-static void isr_off(const rtems_irq_connect_data *);
-static int isr_is_on(const rtems_irq_connect_data *);
extern BSP_polling_getchar_function_type BSP_poll_char;
extern int BSPConsolePort;
extern void rtems_set_waiting_id_comx( int port, rtems_id id, rtems_event_set event );
/*
- * Interrupt structure for tty1
- */
-static rtems_irq_connect_data tty1_isr_data =
-{
- BSP_UART_COM1_IRQ,
- BSP_uart_termios_isr_com1,
- 0,
- isr_on,
- isr_off,
- isr_is_on};
-
-/*
- * Interrupt structure for tty2
- */
-static rtems_irq_connect_data tty2_isr_data =
-{
- BSP_UART_COM2_IRQ,
- BSP_uart_termios_isr_com2,
- 0,
- isr_on,
- isr_off,
- isr_is_on};
-
-static void
-isr_on(const rtems_irq_connect_data *unused)
-{
- return;
-}
-
-static void
-isr_off(const rtems_irq_connect_data *unused)
-{
- return;
-}
-
-static int
-isr_is_on(const rtems_irq_connect_data *irq)
-{
- return BSP_irq_enabled_at_i8259s(irq->name);
-}
-
-/*
* TTYS1 - device driver INITIALIZE entry point.
*/
rtems_device_driver
@@ -111,12 +67,14 @@ tty1_initialize(rtems_device_major_number major,
*/
/* 9600-8-N-1, without hardware flow control */
BSP_uart_init( BSP_UART_COM1, 9600, CHR_8_BITS, 0, 0, 0 );
- status = BSP_install_rtems_irq_handler( &tty1_isr_data );
- if( !status )
- {
- printk("Error installing ttyS1 interrupt handler!\n");
- rtems_fatal_error_occurred(status);
- }
+ status = rtems_interrupt_handler_install(
+ BSP_UART_COM1_IRQ,
+ "tty_drv",
+ RTEMS_INTERRUPT_UNIQUE,
+ BSP_uart_termios_isr_com1,
+ NULL
+ );
+ assert(status == RTEMS_SUCCESSFUL);
/*
* Register the device
*/
@@ -132,7 +90,14 @@ tty1_initialize(rtems_device_major_number major,
static int tty1_last_close(int major, int minor, void *arg)
{
- BSP_remove_rtems_irq_handler( &tty1_isr_data );
+ rtems_status_code status;
+
+ status = rtems_interrupt_handler_remove(
+ BSP_UART_COM1_IRQ,
+ BSP_uart_termios_isr_com1,
+ NULL
+ );
+ assert(status == RTEMS_SUCCESSFUL);
return 0;
}
@@ -339,12 +304,15 @@ tty2_initialize(rtems_device_major_number major,
*/
/* 9600-8-N-1, without hardware flow control */
BSP_uart_init( BSP_UART_COM2, 9600, CHR_8_BITS, 0, 0, 0);
- status = BSP_install_rtems_irq_handler( &tty2_isr_data );
- if( !status )
- {
- printk("Error installing serial console interrupt handler!\n");
- rtems_fatal_error_occurred(status);
- }
+ status = rtems_interrupt_handler_install(
+ BSP_UART_COM2_IRQ,
+ "tty_drv",
+ RTEMS_INTERRUPT_UNIQUE,
+ BSP_uart_termios_isr_com2,
+ NULL
+ );
+ assert(status == RTEMS_SUCCESSFUL);
+
/*
* Register the device
*/
@@ -360,7 +328,14 @@ tty2_initialize(rtems_device_major_number major,
static int tty2_last_close(int major, int minor, void *arg)
{
- BSP_remove_rtems_irq_handler( &tty2_isr_data );
+ rtems_status_code status;
+
+ status = rtems_interrupt_handler_remove(
+ BSP_UART_COM2_IRQ,
+ BSP_uart_termios_isr_com2,
+ NULL
+ );
+ assert(status == RTEMS_SUCCESSFUL);
return 0;
}