From 2bdcf4fd511941dab9ef0db0790363dedfaf622f Mon Sep 17 00:00:00 2001 From: Vipul Nayyar Date: Fri, 26 Jul 2013 20:23:39 +0530 Subject: Updated legacy code in i386 pc386 --- c/src/lib/libbsp/i386/pc386/console/ps2_mouse.c | 58 ++++++++++--------------- c/src/lib/libbsp/i386/pc386/console/vgacons.c | 35 ++++++--------- 2 files changed, 36 insertions(+), 57 deletions(-) (limited to 'c/src/lib/libbsp/i386/pc386/console') diff --git a/c/src/lib/libbsp/i386/pc386/console/ps2_mouse.c b/c/src/lib/libbsp/i386/pc386/console/ps2_mouse.c index d0af6b95dd..911255259c 100644 --- a/c/src/lib/libbsp/i386/pc386/console/ps2_mouse.c +++ b/c/src/lib/libbsp/i386/pc386/console/ps2_mouse.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -29,6 +30,7 @@ #define INITIALIZE_MOUSE /* Some configuration switches are present in the include file... */ #include "ps2_mouse.h" +#include "ps2_drv.h" static void kbd_write_command_w(int data); #if 0 @@ -36,6 +38,7 @@ static void kbd_write_output_w(int data); #endif static unsigned char handle_kbd_event(void); +static void ps2_set_driver_handler(int port, mouse_parser_enqueue_handler handler); /* used only by send_data - set by keyboard_interrupt */ static volatile unsigned char reply_expected = 0; @@ -56,14 +59,14 @@ static unsigned char mouse_reply_expected = 0; #define AUX_INTS_ON (KBD_MODE_KCC | KBD_MODE_SYS | KBD_MODE_MOUSE_INT | KBD_MODE_KBD_INT) #define MAX_RETRIES 60 /* some aux operations take long time*/ -static void ps2_mouse_interrupt(rtems_irq_hdl_param); +static void ps2_mouse_interrupt(void *); static mouse_parser_enqueue_handler driver_input_handler_ps2 = NULL; /* * This routine sets the handler to handle the characters received * from the serial port. */ -void ps2_set_driver_handler( +static void ps2_set_driver_handler( int port, mouse_parser_enqueue_handler handler ) @@ -78,30 +81,6 @@ static void mdelay( unsigned long t ) static void* termios_ttyp_paux = NULL; -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 ); -} - -static rtems_irq_connect_data ps2_isr_data = { AUX_IRQ, - ps2_mouse_interrupt, - 0, - isr_on, - isr_off, - isr_is_on }; - /* * Wait for keyboard controller input buffer to drain. * @@ -223,7 +202,7 @@ static unsigned char handle_kbd_event(void) return status; } -static void ps2_mouse_interrupt(rtems_irq_hdl_param ignored) +static void ps2_mouse_interrupt(void * unused) { handle_kbd_event(); } @@ -323,11 +302,17 @@ static int queue_empty(void) static int release_aux(void) { + rtems_status_code status; if (--aux_count) return 0; kbd_write_cmd(AUX_INTS_OFF); /* Disable controller ints */ kbd_write_command_w(KBD_CCMD_MOUSE_DISABLE); - BSP_remove_rtems_irq_handler( &ps2_isr_data ); + status = rtems_interrupt_handler_remove( + AUX_IRQ, + ps2_mouse_interrupt, + NULL + ); + assert(status == RTEMS_SUCCESSFUL); return 0; } @@ -338,18 +323,21 @@ static int release_aux(void) static int open_aux(void) { - int status; + rtems_status_code status; if (aux_count++) { return 0; } queue->head = queue->tail = 0; /* Flush input queue */ - status = BSP_install_rtems_irq_handler( &ps2_isr_data ); - if( !status ) { - printk("Error installing ps2-mouse interrupt handler!\n" ); - rtems_fatal_error_occurred( status ); - } + status = rtems_interrupt_handler_install( + AUX_IRQ, + "ps2_mouse", + RTEMS_INTERRUPT_UNIQUE, + ps2_mouse_interrupt, + NULL + ); + assert(status == RTEMS_SUCCESSFUL); kbd_write_command_w(KBD_CCMD_MOUSE_ENABLE); /* Enable the auxiliary port on controller. */ @@ -429,7 +417,7 @@ static int psaux_init( void ) /* * paux device driver INITIALIZE entry point. */ -rtems_device_driver paux_initialize( +rtems_device_driver paux_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *arg) diff --git a/c/src/lib/libbsp/i386/pc386/console/vgacons.c b/c/src/lib/libbsp/i386/pc386/console/vgacons.c index d1143daac3..91d88ee883 100644 --- a/c/src/lib/libbsp/i386/pc386/console/vgacons.c +++ b/c/src/lib/libbsp/i386/pc386/console/vgacons.c @@ -1,5 +1,5 @@ /* - * This file contains the termios TTY driver for the i386 + * This file contains the termios TTY driver for the i386 * vga. * * COPYRIGHT (c) 1989-2011. @@ -20,23 +20,11 @@ #include #include #include +#include +#include "keyboard.h" #define VGACONS_STATIC static -static int isr_is_on(const rtems_irq_connect_data *irq) -{ - return BSP_irq_enabled_at_i8259s(irq->name); -} - -static rtems_irq_connect_data keyboard_isr_data = { - BSP_KEYBOARD, - keyboard_interrupt, - 0, - NULL, - NULL, - isr_is_on -}; - /* * vgacons_init * @@ -44,7 +32,7 @@ static rtems_irq_connect_data keyboard_isr_data = { */ VGACONS_STATIC void vgacons_init(int minor) { - /* + /* * Note: We do not initialize the KBD interface here since * it was initialized regardless of whether the * vga is available or not. Therefore it is initialized @@ -160,7 +148,7 @@ bool vgacons_probe( int minor ) { - int status; + rtems_status_code status; static bool firstTime = true; if ((*(unsigned char*) NB_MAX_ROW_ADDR == 0) && @@ -175,11 +163,14 @@ bool vgacons_probe( * can be COM1 and you can still use the mouse/VGA for graphics. */ if ( firstTime ) { - status = BSP_install_rtems_irq_handler(&keyboard_isr_data); - if (!status) { - printk("Error installing keyboard interrupt handler!\n"); - rtems_fatal_error_occurred(status); - } + status = rtems_interrupt_handler_install( + BSP_KEYBOARD, + "vgacons", + RTEMS_INTERRUPT_UNIQUE, + keyboard_interrupt, + NULL + ); + assert(status == RTEMS_SUCCESSFUL); } firstTime = false; -- cgit v1.2.3