forked from Imagelibrary/rtems
2009-10-17 Chris Johns <chrisj@rtems.org>
* shared/irq/idt.c: Check is the irq handlers are present before
calling.
* shared/comm/i386-stub-glue.c: Revert the change of 2009-05-06 as
the handlers need to be present. Fixed the warnings.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2009-10-17 Chris Johns <chrisj@rtems.org>
|
||||
|
||||
* shared/irq/idt.c: Check is the irq handlers are present before
|
||||
calling.
|
||||
* shared/comm/i386-stub-glue.c: Revert the change of 2009-05-06 as
|
||||
the handlers need to be present. Fixed the warnings.
|
||||
|
||||
2009-10-01 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||
|
||||
PR 1445/BSPs
|
||||
|
||||
@@ -20,6 +20,17 @@ int getDebugChar(void); /* read and return a single char */
|
||||
/* assign an exception handler */
|
||||
void exceptionHandler(int, void (*handler)(void));
|
||||
|
||||
static void
|
||||
nop(const rtems_raw_irq_connect_data* notused)
|
||||
{
|
||||
}
|
||||
|
||||
static int
|
||||
isOn(const rtems_raw_irq_connect_data* notused)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
void BSP_loop(int uart);
|
||||
|
||||
/* Current uart used by gdb stub */
|
||||
@@ -36,7 +47,8 @@ i386_stub_glue_init(int uart)
|
||||
|
||||
uart_current = uart;
|
||||
|
||||
BSP_uart_init(uart, 38400, CHR_8_BITS, 0, 0, 0);
|
||||
/* BSP_uart_init(uart, 38400, CHR_8_BITS, 0, 0, 0);*/
|
||||
BSP_uart_init(uart, 115200, CHR_8_BITS, 0, 0, 0);
|
||||
}
|
||||
|
||||
void BSP_uart_on(const rtems_raw_irq_connect_data* used)
|
||||
@@ -152,9 +164,9 @@ void exceptionHandler(int vector, void (*handler)(void))
|
||||
rtems_fatal_error_occurred(1);
|
||||
}
|
||||
|
||||
excep_raw_irq_data.on = NULL;
|
||||
excep_raw_irq_data.off = NULL;
|
||||
excep_raw_irq_data.isOn = NULL;
|
||||
excep_raw_irq_data.on = nop;
|
||||
excep_raw_irq_data.off = nop;
|
||||
excep_raw_irq_data.isOn = isOn;
|
||||
excep_raw_irq_data.hdl = handler;
|
||||
|
||||
if (!i386_set_idt_entry (&excep_raw_irq_data)) {
|
||||
|
||||
@@ -87,7 +87,8 @@ int i386_set_idt_entry (const rtems_raw_irq_connect_data* irq)
|
||||
|
||||
raw_irq_table [irq->idtIndex] = *irq;
|
||||
create_interrupt_gate_descriptor (&idt_entry_tbl[irq->idtIndex], irq->hdl);
|
||||
irq->on(irq);
|
||||
if (irq->on)
|
||||
irq->on(irq);
|
||||
|
||||
rtems_interrupt_enable(level);
|
||||
return 1;
|
||||
@@ -168,7 +169,8 @@ int i386_delete_idt_entry (const rtems_raw_irq_connect_data* irq)
|
||||
|
||||
idt_entry_tbl[irq->idtIndex] = default_idt_entry;
|
||||
|
||||
irq->off(irq);
|
||||
if (irq->off)
|
||||
irq->off(irq);
|
||||
|
||||
raw_irq_table[irq->idtIndex] = default_raw_irq_entry;
|
||||
raw_irq_table[irq->idtIndex].idtIndex = irq->idtIndex;
|
||||
|
||||
Reference in New Issue
Block a user