Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:51

0001 /*  set_vector
0002  *
0003  *  This routine installs an interrupt vector on the target Board/CPU.
0004  *  This routine is allowed to be as board dependent as necessary.
0005  *
0006  *  INPUT:
0007  *    handler - interrupt handler entry point
0008  *    vector  - vector number
0009  *    type    - 0 indicates raw hardware connect
0010  *              1 indicates RTEMS interrupt connect
0011  *
0012  *  RETURNS:
0013  *    address of previous interrupt handler
0014  *
0015  *  COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
0016  *  Derived from no_cpu/no_bsp/startup/setvec.c 1.8,
0017  *  COPYRIGHT (c) 1989-1999.
0018  *  On-Line Applications Research Corporation (OAR).
0019  *
0020  *  The license and distribution terms for this file may be
0021  *  found in the file LICENSE in this distribution or at
0022  *  http://www.rtems.org/license/LICENSE.
0023  */
0024 
0025 #include <rtems.h>
0026 #include <bsp.h>
0027 
0028 rtems_isr_entry set_vector(                    /* returns old vector */
0029   rtems_isr_entry     handler,                  /* isr routine        */
0030   rtems_vector_number vector,                   /* vector number      */
0031   int                 type                      /* RTEMS or RAW intr  */
0032 )
0033 {
0034   rtems_isr_entry previous_isr;
0035 
0036   if ( type )
0037     rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
0038   else {
0039     /* XXX: install non-RTEMS ISR as "raw" interupt */
0040   }
0041   return previous_isr;
0042 }