Patch from Aleksey (Quality Quorum <qqi@world.std.com>):

1. Finally fixes raw interrupts for pc386
    2. Makes some minor cleanup in console and startup
    3. Makes rtems_termios_dequeue_characters() to return count of
       outstanding chars - it allows to simplify console isrs a little
       bit.
    4. pc386 uart modified to be friendlier to termios parameter changes,
       to have minor performance improvement and to take advantage of
       of above termios modification.
This commit is contained in:
Joel Sherrill
1998-09-23 13:20:34 +00:00
parent 362b88ebb5
commit 8a496e462e
16 changed files with 90 additions and 88 deletions

View File

@@ -116,22 +116,30 @@ void rtems_irq_mngt_init()
{
int i;
interrupt_gate_descriptor* idt_entry_tbl;
unsigned limit;
unsigned int limit;
unsigned int level;
i386_get_info_from_IDTR (&idt_entry_tbl, &limit);
/* Convert limit into number of entries */
limit = (limit + 1) / sizeof(interrupt_gate_descriptor);
i386_get_info_from_IDTR(&idt_entry_tbl, &limit);
/* Convert into number of entries */
limit = (limit + 1)/sizeof(interrupt_gate_descriptor);
if(limit != IDT_SIZE) {
printk("IDT table size mismatch !!! System locked\n");
while(1);
}
_CPU_ISR_Disable(level);
/*
* Init the complete IDT vector table with defaultRawIrq value
*/
for (i = 0; i < limit; i++) {
for (i = 0; i < IDT_SIZE ; i++) {
idtHdl[i] = defaultRawIrq;
idtHdl[i].idtIndex = i;
}
raw_initial_config.idtSize = IDT_SIZE;
raw_initial_config.defaultRawEntry = defaultRawIrq;
raw_initial_config.rawIrqHdlTbl = idtHdl;