diff options
Diffstat (limited to 'c/src/lib/libbsp/i386/force386/startup/setvec.c')
-rw-r--r-- | c/src/lib/libbsp/i386/force386/startup/setvec.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/c/src/lib/libbsp/i386/force386/startup/setvec.c b/c/src/lib/libbsp/i386/force386/startup/setvec.c deleted file mode 100644 index 370178a8f5..0000000000 --- a/c/src/lib/libbsp/i386/force386/startup/setvec.c +++ /dev/null @@ -1,59 +0,0 @@ -/* set_vector - * - * This routine installs an interrupt vector on the Force CPU-386. - * - * INPUT: - * handler - interrupt handler entry point - * vector - vector number - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect - * - * RETURNS: - * address of previous interrupt handler - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include <rtems.h> -#include <bsp.h> - -i386_isr set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -) -{ - i386_isr previous_isr; - i386_IDT_slot idt; - - if ( type ) - rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr ); - else { - /* get the address of the old handler */ - - idt = Interrupt_descriptor_table[ vector ]; - - previous_isr = (i386_isr) - ((idt.offset_16_31 << 16) | idt.offset_0_15); - - /* build the IDT entry */ - idt.offset_0_15 = ((rtems_unsigned32) handler) & 0xffff; - idt.segment_selector = get_cs(); - idt.reserved = 0x00; - idt.p_dpl = 0x8e; /* present, ISR */ - idt.offset_16_31 = ((rtems_unsigned32) handler) >> 16; - - /* install the IDT entry */ - Interrupt_descriptor_table[ vector ] = idt; - } - return previous_isr; -} - |