summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/pc386/console/console.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/i386/pc386/console/console.c53
1 files changed, 34 insertions, 19 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/console/console.c b/c/src/lib/libbsp/i386/pc386/console/console.c
index a204283b9d..c6f0c08c0f 100644
--- a/c/src/lib/libbsp/i386/pc386/console/console.c
+++ b/c/src/lib/libbsp/i386/pc386/console/console.c
@@ -58,27 +58,45 @@
int PC386ConsolePort = PC386_CONSOLE_PORT_CONSOLE;
-static int conSetAttr(int minor, const struct termios *);
extern BSP_polling_getchar_function_type BSP_poll_char;
/*-------------------------------------------------------------------------+
| External Prototypes
+--------------------------------------------------------------------------*/
-extern void _IBMPC_keyboard_isr(void);
-extern void _IBMPC_keyboard_isr_on(const rtems_irq_connect_data*);
-extern void _IBMPC_keyboard_isr_off(const rtems_irq_connect_data*);
-extern int _IBMPC_keyboard_isr_is_on(const rtems_irq_connect_data*);
+extern void _IBMPC_keyboard_isr(void);
+extern rtems_boolean _IBMPC_scankey(char *); /* defined in 'inch.c' */
+extern char BSP_wait_polled_input(void);
+extern void _IBMPC_initVideo(void);
+
+static int conSetAttr(int minor, const struct termios *);
+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 *);
+
static rtems_irq_connect_data console_isr_data = {PC_386_KEYBOARD,
_IBMPC_keyboard_isr,
- _IBMPC_keyboard_isr_on,
- _IBMPC_keyboard_isr_off,
- _IBMPC_keyboard_isr_is_on};
+ 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;
+}
-extern rtems_boolean _IBMPC_scankey(char *); /* defined in 'inch.c' */
-extern char BSP_wait_polled_input(void);
-extern void _IBMPC_initVideo(void);
+static int
+isr_is_on(const rtems_irq_connect_data *irq)
+{
+ return pc386_irq_enabled_at_i8259s(irq->name);
+}
void console_reserve_resources(rtems_configuration_table *conf)
{
@@ -203,7 +221,7 @@ console_initialize(rtems_device_major_number major,
{
printk("Initialized console on port COM2 9600-8-N-1\n\n");
}
-#define PRINTK_ON_SERIAL
+#define PRINTK_ON_SERIAL
#ifdef PRINTK_ON_SERIAL
/*
* You can remove the follwoing tree lines if you want to have printk
@@ -221,9 +239,11 @@ console_initialize(rtems_device_major_number major,
static int console_open_count = 0;
-static void console_last_close()
+static int console_last_close(int major, int minor, void *arg)
{
pc386_remove_rtems_irq_handler (&console_isr_data);
+
+ return 0;
}
/*-------------------------------------------------------------------------+
@@ -294,7 +314,7 @@ console_close(rtems_device_major_number major,
}
else {
if (--console_open_count == 0) {
- console_last_close();
+ console_last_close(major, minor, arg);
}
}
@@ -474,9 +494,4 @@ BSP_output_char_function_type BSP_output_char =
BSP_polling_getchar_function_type BSP_poll_char = BSP_wait_polled_input;
-void BSP_emergency_output_init()
-{
- _IBMPC_initVideo();
-}
-