[PATCH] bsps: create shared setvec.h for set_vector prototypes

Gedare Bloom gedare at rtems.org
Wed Apr 18 00:33:06 UTC 2012


You can view a nearly identical patch at
http://git.rtems.org/gedare/rtems.git/commit/?h=setvec&id=146a37f68c4a68384f3dcbbd7341a2f1a4fa121d

I built one bsp from each affected architecture. This is also fairly
mechanical, except for the handful of modifications to libchip
drivers, which now exposes the dependency of those drivers on the
set_vector prototype.

On Tue, Apr 17, 2012 at 8:28 PM, Gedare Bloom <gedare at rtems.org> wrote:
> Adds a shared setvec.h file to centralize the set_vector prototypes.
> Updates every BSP that uses set_vector to use the new header file and
> remove the old prototypes.
> ---
>  c/src/lib/libbsp/bfin/TLL6527M/Makefile.am        |    2 +
>  c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h      |    8 +---
>  c/src/lib/libbsp/bfin/TLL6527M/preinstall.am      |    4 ++
>  c/src/lib/libbsp/bfin/bf537Stamp/Makefile.am      |    2 +
>  c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h    |    8 +--
>  c/src/lib/libbsp/bfin/bf537Stamp/preinstall.am    |    4 ++
>  c/src/lib/libbsp/bfin/eZKit533/Makefile.am        |    2 +
>  c/src/lib/libbsp/bfin/eZKit533/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/bfin/eZKit533/preinstall.am      |    4 ++
>  c/src/lib/libbsp/lm32/lm32_evr/Makefile.am        |    1 +
>  c/src/lib/libbsp/lm32/lm32_evr/include/bsp.h      |   10 +----
>  c/src/lib/libbsp/lm32/lm32_evr/preinstall.am      |    4 ++
>  c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c        |    9 ++--
>  c/src/lib/libbsp/m68k/av5282/Makefile.am          |    1 +
>  c/src/lib/libbsp/m68k/av5282/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/m68k/av5282/preinstall.am        |    4 ++
>  c/src/lib/libbsp/m68k/csb360/Makefile.am          |    1 +
>  c/src/lib/libbsp/m68k/csb360/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/m68k/csb360/preinstall.am        |    4 ++
>  c/src/lib/libbsp/m68k/gen68302/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/gen68302/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/m68k/gen68302/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/gen68340/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/gen68340/include/bsp.h      |    9 +---
>  c/src/lib/libbsp/m68k/gen68340/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/gen68360/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/gen68360/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/m68k/gen68360/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/genmcf548x/Makefile.am      |    1 +
>  c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h    |    7 +--
>  c/src/lib/libbsp/m68k/genmcf548x/preinstall.am    |    4 ++
>  c/src/lib/libbsp/m68k/idp/Makefile.am             |    1 +
>  c/src/lib/libbsp/m68k/idp/include/bsp.h           |    8 +---
>  c/src/lib/libbsp/m68k/idp/preinstall.am           |    4 ++
>  c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am    |    1 +
>  c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h  |    9 +---
>  c/src/lib/libbsp/m68k/mcf5206elite/preinstall.am  |    4 ++
>  c/src/lib/libbsp/m68k/mcf52235/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/mcf52235/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/m68k/mcf52235/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/mcf5225x/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/m68k/mcf5225x/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/mcf5235/Makefile.am         |    1 +
>  c/src/lib/libbsp/m68k/mcf5235/include/bsp.h       |    6 +--
>  c/src/lib/libbsp/m68k/mcf5235/preinstall.am       |    4 ++
>  c/src/lib/libbsp/m68k/mcf5329/Makefile.am         |    1 +
>  c/src/lib/libbsp/m68k/mcf5329/include/bsp.h       |    7 +--
>  c/src/lib/libbsp/m68k/mcf5329/preinstall.am       |    4 ++
>  c/src/lib/libbsp/m68k/mrm332/Makefile.am          |    1 +
>  c/src/lib/libbsp/m68k/mrm332/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/m68k/mrm332/preinstall.am        |    4 ++
>  c/src/lib/libbsp/m68k/mvme136/Makefile.am         |    1 +
>  c/src/lib/libbsp/m68k/mvme136/include/bsp.h       |    9 +---
>  c/src/lib/libbsp/m68k/mvme136/preinstall.am       |    4 ++
>  c/src/lib/libbsp/m68k/mvme147/Makefile.am         |    1 +
>  c/src/lib/libbsp/m68k/mvme147/include/bsp.h       |    7 +--
>  c/src/lib/libbsp/m68k/mvme147/preinstall.am       |    4 ++
>  c/src/lib/libbsp/m68k/mvme147s/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/mvme147s/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/m68k/mvme147s/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/mvme162/Makefile.am         |    1 +
>  c/src/lib/libbsp/m68k/mvme162/include/bsp.h       |    7 +--
>  c/src/lib/libbsp/m68k/mvme162/preinstall.am       |    4 ++
>  c/src/lib/libbsp/m68k/mvme167/Makefile.am         |    1 +
>  c/src/lib/libbsp/m68k/mvme167/include/bsp.h       |    7 +--
>  c/src/lib/libbsp/m68k/mvme167/preinstall.am       |    4 ++
>  c/src/lib/libbsp/m68k/ods68302/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/ods68302/include/bsp.h      |    9 +---
>  c/src/lib/libbsp/m68k/ods68302/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/sim68000/Makefile.am        |    1 +
>  c/src/lib/libbsp/m68k/sim68000/include/bsp.h      |    5 +--
>  c/src/lib/libbsp/m68k/sim68000/preinstall.am      |    4 ++
>  c/src/lib/libbsp/m68k/uC5282/Makefile.am          |    1 +
>  c/src/lib/libbsp/m68k/uC5282/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/m68k/uC5282/preinstall.am        |    4 ++
>  c/src/lib/libbsp/mips/csb350/Makefile.am          |    1 +
>  c/src/lib/libbsp/mips/csb350/include/bsp.h        |    6 +--
>  c/src/lib/libbsp/mips/csb350/preinstall.am        |    4 ++
>  c/src/lib/libbsp/mips/genmongoosev/Makefile.am    |    1 +
>  c/src/lib/libbsp/mips/genmongoosev/include/bsp.h  |    4 +-
>  c/src/lib/libbsp/mips/genmongoosev/preinstall.am  |    4 ++
>  c/src/lib/libbsp/mips/hurricane/Makefile.am       |    1 +
>  c/src/lib/libbsp/mips/hurricane/include/bsp.h     |    6 +--
>  c/src/lib/libbsp/mips/hurricane/preinstall.am     |    4 ++
>  c/src/lib/libbsp/mips/hurricane/startup/setvec.c  |    1 +
>  c/src/lib/libbsp/mips/jmr3904/Makefile.am         |    1 +
>  c/src/lib/libbsp/mips/jmr3904/include/bsp.h       |    6 +--
>  c/src/lib/libbsp/mips/jmr3904/preinstall.am       |    4 ++
>  c/src/lib/libbsp/mips/malta/Makefile.am           |    1 +
>  c/src/lib/libbsp/mips/malta/include/bsp.h         |    4 +-
>  c/src/lib/libbsp/mips/malta/preinstall.am         |    4 ++
>  c/src/lib/libbsp/mips/rbtx4925/Makefile.am        |    1 +
>  c/src/lib/libbsp/mips/rbtx4925/include/bsp.h      |    6 +--
>  c/src/lib/libbsp/mips/rbtx4925/preinstall.am      |    4 ++
>  c/src/lib/libbsp/mips/rbtx4938/Makefile.am        |    1 +
>  c/src/lib/libbsp/mips/rbtx4938/include/bsp.h      |    5 +--
>  c/src/lib/libbsp/mips/rbtx4938/preinstall.am      |    4 ++
>  c/src/lib/libbsp/nios2/nios2_iss/Makefile.am      |    2 +
>  c/src/lib/libbsp/nios2/nios2_iss/include/bsp.h    |    8 +---
>  c/src/lib/libbsp/nios2/nios2_iss/preinstall.am    |    4 ++
>  c/src/lib/libbsp/no_cpu/no_bsp/Makefile.am        |    2 +
>  c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h      |    7 +--
>  c/src/lib/libbsp/no_cpu/no_bsp/preinstall.am      |    4 ++
>  c/src/lib/libbsp/powerpc/haleakala/include/bsp.h  |    9 +---
>  c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h |    7 +--
>  c/src/lib/libbsp/powerpc/score603e/Makefile.am    |    1 +
>  c/src/lib/libbsp/powerpc/score603e/preinstall.am  |    4 ++
>  c/src/lib/libbsp/powerpc/virtex/include/bsp.h     |    8 +---
>  c/src/lib/libbsp/sh/gensh2/Makefile.am            |    1 +
>  c/src/lib/libbsp/sh/gensh2/preinstall.am          |    4 ++
>  c/src/lib/libbsp/sh/gensh4/Makefile.am            |    1 +
>  c/src/lib/libbsp/sh/gensh4/preinstall.am          |    4 ++
>  c/src/lib/libbsp/sh/shsim/Makefile.am             |    1 +
>  c/src/lib/libbsp/sh/shsim/preinstall.am           |    4 ++
>  c/src/lib/libbsp/shared/include/setvec.h          |   54 +++++++++++++++++++++
>  c/src/lib/libbsp/shared/setvec.c                  |   13 ++---
>  c/src/lib/libbsp/sparc/erc32/Makefile.am          |    3 +-
>  c/src/lib/libbsp/sparc/erc32/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/sparc/erc32/preinstall.am        |    4 ++
>  c/src/lib/libbsp/sparc/leon2/Makefile.am          |    3 +-
>  c/src/lib/libbsp/sparc/leon2/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/sparc/leon2/preinstall.am        |    4 ++
>  c/src/lib/libbsp/sparc/leon3/Makefile.am          |    3 +-
>  c/src/lib/libbsp/sparc/leon3/include/bsp.h        |    7 +--
>  c/src/lib/libbsp/sparc/leon3/preinstall.am        |    4 ++
>  c/src/lib/libbsp/sparc64/niagara/Makefile.am      |    2 +
>  c/src/lib/libbsp/sparc64/niagara/include/bsp.h    |    8 +---
>  c/src/lib/libbsp/sparc64/niagara/preinstall.am    |    4 ++
>  c/src/lib/libbsp/sparc64/usiii/Makefile.am        |    2 +
>  c/src/lib/libbsp/sparc64/usiii/include/bsp.h      |    8 +---
>  c/src/lib/libbsp/sparc64/usiii/preinstall.am      |    4 ++
>  c/src/libchip/network/open_eth.c                  |   11 ++--
>  c/src/libchip/network/sonic.c                     |    9 ++-
>  c/src/libchip/serial/mc68681.c                    |    9 ++-
>  c/src/libchip/serial/z85c30.c                     |    9 ++-
>  136 files changed, 358 insertions(+), 284 deletions(-)
>  create mode 100644 c/src/lib/libbsp/shared/include/setvec.h
>
> diff --git a/c/src/lib/libbsp/bfin/TLL6527M/Makefile.am b/c/src/lib/libbsp/bfin/TLL6527M/Makefile.am
> index 6b15ad1..1c03431 100644
> --- a/c/src/lib/libbsp/bfin/TLL6527M/Makefile.am
> +++ b/c/src/lib/libbsp/bfin/TLL6527M/Makefile.am
> @@ -14,6 +14,8 @@ include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
>  include_HEADERS += include/cplb.h
>
> +include_bsp_HEADERS = ../../shared/include/setvec.h
> +
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
>  DISTCLEANFILES = include/bspopts.h
> diff --git a/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h b/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h
> index 9e25a27..1faed48 100644
> --- a/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h
> +++ b/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h
> @@ -29,7 +29,7 @@ extern "C" {
>  #include <rtems/score/bfin.h>
>  #include <rtems/bfin/bf52x.h>
>  #include <bf52x.h>
> -
> +#include <bsp/setvec.h>
>
>  /*
>  * PLL and clock setup values:
> @@ -66,12 +66,6 @@ extern "C" {
>  #define ODD_PARITY  0x08        /* Enable ODD parity  */
>  #define TWO_STP_BIT 0x04        /* 2 stop bits        */
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/bfin/TLL6527M/preinstall.am b/c/src/lib/libbsp/bfin/TLL6527M/preinstall.am
> index 557599a..f67f6bb 100644
> --- a/c/src/lib/libbsp/bfin/TLL6527M/preinstall.am
> +++ b/c/src/lib/libbsp/bfin/TLL6527M/preinstall.am
> @@ -49,6 +49,10 @@ $(PROJECT_INCLUDE)/cplb.h: include/cplb.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/cplb.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/cplb.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/Makefile.am b/c/src/lib/libbsp/bfin/bf537Stamp/Makefile.am
> index 6fb0ebf..ff4eb76 100644
> --- a/c/src/lib/libbsp/bfin/bf537Stamp/Makefile.am
> +++ b/c/src/lib/libbsp/bfin/bf537Stamp/Makefile.am
> @@ -13,6 +13,8 @@ dist_project_lib_DATA = bsp_specs
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
>
> +include_bsp_HEADERS = ../../shared/include/setvec.h
> +
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
>  DISTCLEANFILES = include/bspopts.h
> diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h b/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h
> index 2fe7c6f..e95289b 100644
> --- a/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h
> +++ b/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h
> @@ -30,6 +30,8 @@ extern "C" {
>  #include <libcpu/bf537.h>
>  #include <libcpu/memoryRegs.h>
>
> +#include <bsp/setvec.h>
> +
>  /* configure data cache to use 16K of each SRAM bank when enabled */
>  #define BSP_DATA_CACHE_CONFIG  (3 << DMEM_CONTROL_DMC_SHIFT)
>
> @@ -92,12 +94,6 @@ void setLED(uint8_t value);
>  */
>  uint8_t getLED(void);
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -
>  /*
>  * Network driver configuration
>  */
> diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/preinstall.am b/c/src/lib/libbsp/bfin/bf537Stamp/preinstall.am
> index bdd3a3e..d8f202c 100644
> --- a/c/src/lib/libbsp/bfin/bf537Stamp/preinstall.am
> +++ b/c/src/lib/libbsp/bfin/bf537Stamp/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/bfin/eZKit533/Makefile.am b/c/src/lib/libbsp/bfin/eZKit533/Makefile.am
> index 901966c..a943229 100644
> --- a/c/src/lib/libbsp/bfin/eZKit533/Makefile.am
> +++ b/c/src/lib/libbsp/bfin/eZKit533/Makefile.am
> @@ -14,6 +14,8 @@ include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
>  include_HEADERS += include/cplb.h
>
> +include_bsp_HEADERS = ../../shared/include/setvec.h
> +
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
>  DISTCLEANFILES = include/bspopts.h
> diff --git a/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h b/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h
> index 29427af..d562670 100644
> --- a/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h
> +++ b/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h
> @@ -30,6 +30,7 @@ extern "C" {
>  #include <rtems/clockdrv.h>
>  #include <rtems/score/bfin.h>
>  #include <rtems/bfin/bf533.h>
> +#include <bsp/setvec.h>
>
>  /*
>  * PLL and clock setup values:
> @@ -105,12 +106,6 @@ void setLED (uint8_t value);
>  */
>  uint8_t getLED (void);
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/bfin/eZKit533/preinstall.am b/c/src/lib/libbsp/bfin/eZKit533/preinstall.am
> index 557599a..f67f6bb 100644
> --- a/c/src/lib/libbsp/bfin/eZKit533/preinstall.am
> +++ b/c/src/lib/libbsp/bfin/eZKit533/preinstall.am
> @@ -49,6 +49,10 @@ $(PROJECT_INCLUDE)/cplb.h: include/cplb.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/cplb.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/cplb.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/lm32/lm32_evr/Makefile.am b/c/src/lib/libbsp/lm32/lm32_evr/Makefile.am
> index 362bce0..81d34a5 100644
> --- a/c/src/lib/libbsp/lm32/lm32_evr/Makefile.am
> +++ b/c/src/lib/libbsp/lm32/lm32_evr/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/lm32/lm32_evr/include/bsp.h b/c/src/lib/libbsp/lm32/lm32_evr/include/bsp.h
> index a7674f9..6d311ed 100644
> --- a/c/src/lib/libbsp/lm32/lm32_evr/include/bsp.h
> +++ b/c/src/lib/libbsp/lm32/lm32_evr/include/bsp.h
> @@ -26,6 +26,7 @@
>  #include <rtems.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  #if defined(RTEMS_NETWORKING)
>  #include <rtems/rtems_bsdnet.h>
> @@ -68,15 +69,6 @@ extern int rtems_tsmac_driver_attach(struct rtems_bsdnet_ifconfig *config,
>   { \
>   }
>
> -/* functions */
> -#if 0
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -#endif
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/lm32/lm32_evr/preinstall.am b/c/src/lib/libbsp/lm32/lm32_evr/preinstall.am
> index a95af39..b0b6148 100644
> --- a/c/src/lib/libbsp/lm32/lm32_evr/preinstall.am
> +++ b/c/src/lib/libbsp/lm32/lm32_evr/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c b/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c
> index e9ef8a1..2290678 100644
> --- a/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c
> +++ b/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c
> @@ -134,9 +134,6 @@ static inline void tsmacregwrite(unsigned int reg, uint16_t value)
>
>  rtems_isr tsmac_interrupt_handler(rtems_vector_number vector);
>
> -extern rtems_isr_entry set_vector(rtems_isr_entry handler,
> -                                rtems_vector_number vector, int type);
> -
>  /*
>  * Macros to access PHY registers through the (G)MII
>  */
> @@ -536,7 +533,11 @@ void tsmac_init(void *arg)
>       /*
>        * Setup interrupt handler
>        */
> -      set_vector( tsmac_interrupt_handler, TSMAC_VECTOR, 1 );
> +      set_vector(
> +          tsmac_interrupt_handler,
> +          TSMAC_VECTOR,
> +          1
> +      );
>
>       /* Interrupt line for TSMAC */
>       lm32_interrupt_unmask(TSMAC_IRQMASK);
> diff --git a/c/src/lib/libbsp/m68k/av5282/Makefile.am b/c/src/lib/libbsp/m68k/av5282/Makefile.am
> index 7c1d52f..421bffc 100644
> --- a/c/src/lib/libbsp/m68k/av5282/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/av5282/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/av5282/include/bsp.h b/c/src/lib/libbsp/m68k/av5282/include/bsp.h
> index 84d79b6..8e8c8e4 100644
> --- a/c/src/lib/libbsp/m68k/av5282/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/av5282/include/bsp.h
> @@ -13,6 +13,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -43,12 +44,6 @@ extern int rtems_fec_driver_attach (struct rtems_bsdnet_ifconfig *config, int at
>
>  uint32_t get_CPU_clock_speed(void);
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Interrupt assignments
>  *  Highest-priority listed first
> diff --git a/c/src/lib/libbsp/m68k/av5282/preinstall.am b/c/src/lib/libbsp/m68k/av5282/preinstall.am
> index 73323b5..3fc2f2f 100644
> --- a/c/src/lib/libbsp/m68k/av5282/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/av5282/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/csb360/Makefile.am b/c/src/lib/libbsp/m68k/csb360/Makefile.am
> index a537907..7a3164d 100644
> --- a/c/src/lib/libbsp/m68k/csb360/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/csb360/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/csb360/include/bsp.h b/c/src/lib/libbsp/m68k/csb360/include/bsp.h
> index 7b6b352..48ff17b 100644
> --- a/c/src/lib/libbsp/m68k/csb360/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/csb360/include/bsp.h
> @@ -112,6 +112,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  struct rtems_bsdnet_ifconfig;
>  extern int rtems_enet_driver_attach (struct rtems_bsdnet_ifconfig *config);
> @@ -157,12 +158,6 @@ extern rtems_isr (*rtems_clock_hook)(rtems_vector_number);
>
>  /* functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/csb360/preinstall.am b/c/src/lib/libbsp/m68k/csb360/preinstall.am
> index ed79155..0230163 100644
> --- a/c/src/lib/libbsp/m68k/csb360/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/csb360/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/gen68302/Makefile.am b/c/src/lib/libbsp/m68k/gen68302/Makefile.am
> index fe1a77c..734fd2d 100644
> --- a/c/src/lib/libbsp/m68k/gen68302/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/gen68302/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/gen68302/include/bsp.h b/c/src/lib/libbsp/m68k/gen68302/include/bsp.h
> index 2e75297..e3af16f 100644
> --- a/c/src/lib/libbsp/m68k/gen68302/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/gen68302/include/bsp.h
> @@ -27,6 +27,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /*
>  *  Simple spin delay in microsecond units for device drivers.
> @@ -65,12 +66,6 @@ extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
>  /* functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/gen68302/preinstall.am b/c/src/lib/libbsp/m68k/gen68302/preinstall.am
> index 540e452..58185cc 100644
> --- a/c/src/lib/libbsp/m68k/gen68302/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/gen68302/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/gen68340/Makefile.am b/c/src/lib/libbsp/m68k/gen68340/Makefile.am
> index 689ce53..881ec46 100644
> --- a/c/src/lib/libbsp/m68k/gen68340/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/gen68340/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/gen68340/include/bsp.h b/c/src/lib/libbsp/m68k/gen68340/include/bsp.h
> index e0eb9a7..a3a8f23 100644
> --- a/c/src/lib/libbsp/m68k/gen68340/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/gen68340/include/bsp.h
> @@ -30,6 +30,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /*
>  *  Simple spin delay in microsecond units for device drivers.
> @@ -53,14 +54,6 @@ extern "C" {
>
>  extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/gen68340/preinstall.am b/c/src/lib/libbsp/m68k/gen68340/preinstall.am
> index 0c891ea..de312ec 100644
> --- a/c/src/lib/libbsp/m68k/gen68340/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/gen68340/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/gen68360/Makefile.am b/c/src/lib/libbsp/m68k/gen68360/Makefile.am
> index ae439ca..05a537b 100644
> --- a/c/src/lib/libbsp/m68k/gen68360/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/gen68360/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
>  DISTCLEANFILES = include/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/gen68360/include/bsp.h b/c/src/lib/libbsp/m68k/gen68360/include/bsp.h
> index 4b5c858..c8b1269 100644
> --- a/c/src/lib/libbsp/m68k/gen68360/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/gen68360/include/bsp.h
> @@ -36,6 +36,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /*
>  * Network driver configuration
> @@ -72,12 +73,6 @@ extern char M360DefaultWatchdogFeeder;
>
>  extern int m360_clock_rate; /* BRG clock rate, defined in console.c */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Definitions for Atlas Computer Equipment Inc. High Speed Bridge (HSB)
>  */
> diff --git a/c/src/lib/libbsp/m68k/gen68360/preinstall.am b/c/src/lib/libbsp/m68k/gen68360/preinstall.am
> index 24d5ce9..f59c3f6 100644
> --- a/c/src/lib/libbsp/m68k/gen68360/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/gen68360/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am b/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am
> index d020eb7..c74b2d8 100644
> --- a/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h b/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h
> index dba6f5a..8b18f96 100644
> --- a/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/genmcf548x/include/bsp.h
> @@ -55,6 +55,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -81,12 +82,6 @@ extern int rtems_fec_driver_attach (struct rtems_bsdnet_ifconfig *config, int at
>
>  uint32_t get_CPU_clock_speed(void);
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Interrupt assignments
>  *  Highest-priority listed first
> diff --git a/c/src/lib/libbsp/m68k/genmcf548x/preinstall.am b/c/src/lib/libbsp/m68k/genmcf548x/preinstall.am
> index d6a779e..548222b 100644
> --- a/c/src/lib/libbsp/m68k/genmcf548x/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/genmcf548x/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/idp/Makefile.am b/c/src/lib/libbsp/m68k/idp/Makefile.am
> index c1979c3..a589a59 100644
> --- a/c/src/lib/libbsp/m68k/idp/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/idp/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/idp/include/bsp.h b/c/src/lib/libbsp/m68k/idp/include/bsp.h
> index aace39c..05c7a68 100644
> --- a/c/src/lib/libbsp/m68k/idp/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/idp/include/bsp.h
> @@ -13,6 +13,7 @@
>  #include <rtems.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/motorola/mc68230.h>
>  #include <rtems/motorola/mc68681.h>
>
> @@ -26,13 +27,6 @@
>  extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
>  /* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  void init_pit( void );
>
>  void transmit_char( char ch );
> diff --git a/c/src/lib/libbsp/m68k/idp/preinstall.am b/c/src/lib/libbsp/m68k/idp/preinstall.am
> index 1bcb5b6..f8852a8 100644
> --- a/c/src/lib/libbsp/m68k/idp/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/idp/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am b/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am
> index 54a0270..bb7c17e 100644
> --- a/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mcf5206elite/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h
> index a418ee3..8af68a2 100644
> --- a/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mcf5206elite/include/bsp.h
> @@ -128,6 +128,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/rtc.h>
>
>  #include "i2c.h"
> @@ -166,14 +167,6 @@ extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
>  extern rtems_isr (*rtems_clock_hook)(rtems_vector_number);
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/preinstall.am b/c/src/lib/libbsp/m68k/mcf5206elite/preinstall.am
> index 5454d9d..42dbffd 100644
> --- a/c/src/lib/libbsp/m68k/mcf5206elite/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mcf5206elite/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mcf52235/Makefile.am b/c/src/lib/libbsp/m68k/mcf52235/Makefile.am
> index a37ac2b..ddcbedd 100644
> --- a/c/src/lib/libbsp/m68k/mcf52235/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mcf52235/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h b/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h
> index 701e604..9bc7891 100644
> --- a/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mcf52235/include/bsp.h
> @@ -14,6 +14,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -43,12 +44,6 @@ extern "C" {
>
>  uint32_t bsp_get_CPU_clock_speed(void);
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Interrupt assignments
>  *  Highest-priority listed first
> diff --git a/c/src/lib/libbsp/m68k/mcf52235/preinstall.am b/c/src/lib/libbsp/m68k/mcf52235/preinstall.am
> index 73323b5..3fc2f2f 100644
> --- a/c/src/lib/libbsp/m68k/mcf52235/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mcf52235/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5225x/Makefile.am b/c/src/lib/libbsp/m68k/mcf5225x/Makefile.am
> index 4a7082d..23217a8 100644
> --- a/c/src/lib/libbsp/m68k/mcf5225x/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mcf5225x/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h
> index 9f24087..b00f525 100644
> --- a/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mcf5225x/include/bsp.h
> @@ -18,6 +18,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -64,12 +65,6 @@ extern "C" {
>
>  uint32_t bsp_get_CPU_clock_speed(void);
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Interrupt assignments
>  *  Highest-priority listed first
> diff --git a/c/src/lib/libbsp/m68k/mcf5225x/preinstall.am b/c/src/lib/libbsp/m68k/mcf5225x/preinstall.am
> index 73323b5..3fc2f2f 100644
> --- a/c/src/lib/libbsp/m68k/mcf5225x/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mcf5225x/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5235/Makefile.am b/c/src/lib/libbsp/m68k/mcf5235/Makefile.am
> index a1cbb4c..fa0ce0f 100644
> --- a/c/src/lib/libbsp/m68k/mcf5235/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mcf5235/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h
> index b822b8d..fffb53e 100644
> --- a/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mcf5235/include/bsp.h
> @@ -14,6 +14,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -37,11 +38,6 @@ extern int rtems_fec_driver_attach (struct rtems_bsdnet_ifconfig *config, int at
>  /* functions */
>
>  uint32_t get_CPU_clock_speed(void);
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
>
>  /*
>  * Interrupt assignments
> diff --git a/c/src/lib/libbsp/m68k/mcf5235/preinstall.am b/c/src/lib/libbsp/m68k/mcf5235/preinstall.am
> index 916e8d1..26aaf1f 100644
> --- a/c/src/lib/libbsp/m68k/mcf5235/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mcf5235/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5329/Makefile.am b/c/src/lib/libbsp/m68k/mcf5329/Makefile.am
> index b242072..9a69a99 100644
> --- a/c/src/lib/libbsp/m68k/mcf5329/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mcf5329/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h b/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h
> index 7a7db3b..205c516 100644
> --- a/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mcf5329/include/bsp.h
> @@ -14,6 +14,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -43,12 +44,6 @@ extern int rtems_fec_driver_attach (struct rtems_bsdnet_ifconfig *config, int at
>  uint32_t bsp_get_CPU_clock_speed(void);
>  uint32_t bsp_get_BUS_clock_speed(void);
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Interrupt assignments
>  *  Highest-priority listed first
> diff --git a/c/src/lib/libbsp/m68k/mcf5329/preinstall.am b/c/src/lib/libbsp/m68k/mcf5329/preinstall.am
> index aaadccc..845327f 100644
> --- a/c/src/lib/libbsp/m68k/mcf5329/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mcf5329/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mrm332/Makefile.am b/c/src/lib/libbsp/m68k/mrm332/Makefile.am
> index 2d9ec39..61aa9ec 100644
> --- a/c/src/lib/libbsp/m68k/mrm332/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mrm332/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mrm332/include/bsp.h b/c/src/lib/libbsp/m68k/mrm332/include/bsp.h
> index 88d2e6c..73edfc4 100644
> --- a/c/src/lib/libbsp/m68k/mrm332/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mrm332/include/bsp.h
> @@ -24,6 +24,7 @@ extern "C" {
>  #include <rtems.h>
>  #include <rtems/bspIo.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <mrm332.h>
> @@ -93,12 +94,6 @@ extern int stack_start;
>
>  /* functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  void Spurious_Initialize(void);
>
>  void _UART_flush(void);
> diff --git a/c/src/lib/libbsp/m68k/mrm332/preinstall.am b/c/src/lib/libbsp/m68k/mrm332/preinstall.am
> index 4a71e7d..cd1c5e1 100644
> --- a/c/src/lib/libbsp/m68k/mrm332/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mrm332/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mvme136/Makefile.am b/c/src/lib/libbsp/m68k/mvme136/Makefile.am
> index 9390a5c..7a02446 100644
> --- a/c/src/lib/libbsp/m68k/mvme136/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mvme136/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mvme136/include/bsp.h b/c/src/lib/libbsp/m68k/mvme136/include/bsp.h
> index 15d37cb..8dcc373 100644
> --- a/c/src/lib/libbsp/m68k/mvme136/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mvme136/include/bsp.h
> @@ -23,6 +23,7 @@ extern "C" {
>
>  #include <rtems.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>
> @@ -82,14 +83,6 @@ struct w_m681_info {
>
>  extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/mvme136/preinstall.am b/c/src/lib/libbsp/m68k/mvme136/preinstall.am
> index ed79155..0230163 100644
> --- a/c/src/lib/libbsp/m68k/mvme136/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mvme136/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mvme147/Makefile.am b/c/src/lib/libbsp/m68k/mvme147/Makefile.am
> index 4328aaa..4434ad2 100644
> --- a/c/src/lib/libbsp/m68k/mvme147/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mvme147/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mvme147/include/bsp.h b/c/src/lib/libbsp/m68k/mvme147/include/bsp.h
> index 8ebbeff..69f050f 100644
> --- a/c/src/lib/libbsp/m68k/mvme147/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mvme147/include/bsp.h
> @@ -27,6 +27,7 @@ extern "C" {
>
>  #include <rtems.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>
> @@ -108,12 +109,6 @@ extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
>  /* functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/mvme147/preinstall.am b/c/src/lib/libbsp/m68k/mvme147/preinstall.am
> index ed79155..0230163 100644
> --- a/c/src/lib/libbsp/m68k/mvme147/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mvme147/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mvme147s/Makefile.am b/c/src/lib/libbsp/m68k/mvme147s/Makefile.am
> index 04d42d1..b542cbf 100644
> --- a/c/src/lib/libbsp/m68k/mvme147s/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mvme147s/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h b/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h
> index 246e4e0..78f500a 100644
> --- a/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mvme147s/include/bsp.h
> @@ -27,6 +27,7 @@ extern "C" {
>
>  #include <rtems.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>
> @@ -183,12 +184,6 @@ extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
>  /* functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/mvme147s/preinstall.am b/c/src/lib/libbsp/m68k/mvme147s/preinstall.am
> index ed79155..0230163 100644
> --- a/c/src/lib/libbsp/m68k/mvme147s/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mvme147s/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mvme162/Makefile.am b/c/src/lib/libbsp/m68k/mvme162/Makefile.am
> index 988245a..d847f4e 100644
> --- a/c/src/lib/libbsp/m68k/mvme162/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mvme162/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h
> index 7dfd0fe..571fcc7 100644
> --- a/c/src/lib/libbsp/m68k/mvme162/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mvme162/include/bsp.h
> @@ -30,6 +30,7 @@ extern "C" {
>
>  #include <rtems.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>
> @@ -189,12 +190,6 @@ extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
>  /* functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/mvme162/preinstall.am b/c/src/lib/libbsp/m68k/mvme162/preinstall.am
> index 528c115..f724227 100644
> --- a/c/src/lib/libbsp/m68k/mvme162/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mvme162/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/mvme167/Makefile.am b/c/src/lib/libbsp/m68k/mvme167/Makefile.am
> index b6f76a6..01a2dfb 100644
> --- a/c/src/lib/libbsp/m68k/mvme167/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/mvme167/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h
> index 5c0ec6a..b14ad3a 100644
> --- a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h
> @@ -29,6 +29,7 @@ extern "C" {
>
>  #include <rtems.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
> @@ -296,12 +297,6 @@ typedef volatile struct cd2401_regs_ {
>
>  /* BSP-wide functions */
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef M167_INIT
>  #undef EXTERN
>  #define EXTERN
> diff --git a/c/src/lib/libbsp/m68k/mvme167/preinstall.am b/c/src/lib/libbsp/m68k/mvme167/preinstall.am
> index 332fc9c..8cf68cf 100644
> --- a/c/src/lib/libbsp/m68k/mvme167/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/mvme167/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/ods68302/Makefile.am b/c/src/lib/libbsp/m68k/ods68302/Makefile.am
> index 3cd01c3..04b17a6 100644
> --- a/c/src/lib/libbsp/m68k/ods68302/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/ods68302/Makefile.am
> @@ -13,6 +13,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/ods68302/include/bsp.h b/c/src/lib/libbsp/m68k/ods68302/include/bsp.h
> index 1e08d4f..672d8fa 100644
> --- a/c/src/lib/libbsp/m68k/ods68302/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/ods68302/include/bsp.h
> @@ -26,6 +26,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/m68k/m68302.h>
>
>  #ifndef VARIANT
> @@ -70,14 +71,6 @@ extern "C" {
>
>  extern rtems_isr_entry M68Kvec[];   /* vector table address */
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/ods68302/preinstall.am b/c/src/lib/libbsp/m68k/ods68302/preinstall.am
> index f95a843..2f98702 100644
> --- a/c/src/lib/libbsp/m68k/ods68302/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/ods68302/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/sim68000/Makefile.am b/c/src/lib/libbsp/m68k/sim68000/Makefile.am
> index c8d5223..a863b3b 100644
> --- a/c/src/lib/libbsp/m68k/sim68000/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/sim68000/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/sim68000/include/bsp.h b/c/src/lib/libbsp/m68k/sim68000/include/bsp.h
> index 3d6b71c..5f9473f 100644
> --- a/c/src/lib/libbsp/m68k/sim68000/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/sim68000/include/bsp.h
> @@ -26,6 +26,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /*
>  *  Define some hardware constants here
> @@ -48,10 +49,6 @@ extern "C" {
>                   : "0"  (_tmp), "1"  (_delay) ); \
>   }
>
> -/* functions */
> -
> -rtems_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/m68k/sim68000/preinstall.am b/c/src/lib/libbsp/m68k/sim68000/preinstall.am
> index bdd3a3e..d8f202c 100644
> --- a/c/src/lib/libbsp/m68k/sim68000/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/sim68000/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/m68k/uC5282/Makefile.am b/c/src/lib/libbsp/m68k/uC5282/Makefile.am
> index 51c0c24..7f183e4 100644
> --- a/c/src/lib/libbsp/m68k/uC5282/Makefile.am
> +++ b/c/src/lib/libbsp/m68k/uC5282/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h
> index 4365cf3..478319c 100644
> --- a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h
> +++ b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h
> @@ -22,6 +22,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <rtems/iosupp.h>
>  #include <rtems/bspIo.h>
>
> @@ -71,12 +72,6 @@ const char *bsp_getbenv(const char *a);
>  int bsp_flash_erase_range(volatile unsigned short *flashptr, int start, int end);
>  int bsp_flash_write_range(volatile unsigned short *flashptr, bsp_mnode_t *chain, int offset);
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry     handler,
> -  rtems_vector_number vector,
> -  int                 type
> -);
> -
>  /*
>  * Interrupt assignments
>  *  Highest-priority listed first
> diff --git a/c/src/lib/libbsp/m68k/uC5282/preinstall.am b/c/src/lib/libbsp/m68k/uC5282/preinstall.am
> index 73323b5..3fc2f2f 100644
> --- a/c/src/lib/libbsp/m68k/uC5282/preinstall.am
> +++ b/c/src/lib/libbsp/m68k/uC5282/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/mips/csb350/Makefile.am b/c/src/lib/libbsp/mips/csb350/Makefile.am
> index e5671bf..f29430a 100644
> --- a/c/src/lib/libbsp/mips/csb350/Makefile.am
> +++ b/c/src/lib/libbsp/mips/csb350/Makefile.am
> @@ -17,6 +17,7 @@ include_bsp_HEADERS = ../shared/liblnk/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/mips/csb350/include/bsp.h b/c/src/lib/libbsp/mips/csb350/include/bsp.h
> index 5044f6f..eaeb2e4 100644
> --- a/c/src/lib/libbsp/mips/csb350/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/csb350/include/bsp.h
> @@ -29,6 +29,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <libcpu/au1x00.h>
>
>  #define BSP_FEATURE_IRQ_EXTENSION
> @@ -44,11 +45,6 @@ int rtems_au1x00_emac_attach(struct rtems_bsdnet_ifconfig *config,
>  #define RTEMS_BSP_NETWORK_DRIVER_NAME  "eth0"
>  #define RTEMS_BSP_NETWORK_DRIVER_ATTACH        rtems_au1x00_emac_attach
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry, rtems_vector_number, int );
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/mips/csb350/preinstall.am b/c/src/lib/libbsp/mips/csb350/preinstall.am
> index 244a228..45955ef 100644
> --- a/c/src/lib/libbsp/mips/csb350/preinstall.am
> +++ b/c/src/lib/libbsp/mips/csb350/preinstall.am
> @@ -61,6 +61,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/mips/genmongoosev/Makefile.am b/c/src/lib/libbsp/mips/genmongoosev/Makefile.am
> index 1f27e45..4596996 100644
> --- a/c/src/lib/libbsp/mips/genmongoosev/Makefile.am
> +++ b/c/src/lib/libbsp/mips/genmongoosev/Makefile.am
> @@ -17,6 +17,7 @@ include_bsp_HEADERS = start/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/mips/genmongoosev/include/bsp.h b/c/src/lib/libbsp/mips/genmongoosev/include/bsp.h
> index 575eb6b..5d262b9 100644
> --- a/c/src/lib/libbsp/mips/genmongoosev/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/genmongoosev/include/bsp.h
> @@ -29,6 +29,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <libcpu/mongoose-v.h>
>
>  #define BSP_FEATURE_IRQ_EXTENSION
> @@ -58,9 +59,6 @@ extern void assertSoftwareInterrupt(uint32_t);
>
>  /* functions */
>
> -rtems_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
> -
> -
>  /* from start.S */
>  extern void promCopyIcacheFlush(void);
>  extern void promCopyDcacheFlush(void);
> diff --git a/c/src/lib/libbsp/mips/genmongoosev/preinstall.am b/c/src/lib/libbsp/mips/genmongoosev/preinstall.am
> index b2e4615..a8aa9f0 100644
> --- a/c/src/lib/libbsp/mips/genmongoosev/preinstall.am
> +++ b/c/src/lib/libbsp/mips/genmongoosev/preinstall.am
> @@ -61,6 +61,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/mips/hurricane/Makefile.am b/c/src/lib/libbsp/mips/hurricane/Makefile.am
> index 9b67d34..27731fb 100644
> --- a/c/src/lib/libbsp/mips/hurricane/Makefile.am
> +++ b/c/src/lib/libbsp/mips/hurricane/Makefile.am
> @@ -18,6 +18,7 @@ include_bsp_HEADERS = ../shared/liblnk/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/mips/hurricane/include/bsp.h b/c/src/lib/libbsp/mips/hurricane/include/bsp.h
> index 28b8be6..1b98175 100644
> --- a/c/src/lib/libbsp/mips/hurricane/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/hurricane/include/bsp.h
> @@ -27,6 +27,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <libcpu/rm5231.h>
>
>  extern void WriteDisplay( char * string );
> @@ -67,11 +68,6 @@ extern uint32_t mips_get_timer( void );
>  #define RAM_START 0
>  #define RAM_END   0x100000
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry, rtems_vector_number, int );
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/mips/hurricane/preinstall.am b/c/src/lib/libbsp/mips/hurricane/preinstall.am
> index ae6cd49..65c2108 100644
> --- a/c/src/lib/libbsp/mips/hurricane/preinstall.am
> +++ b/c/src/lib/libbsp/mips/hurricane/preinstall.am
> @@ -65,6 +65,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/mips/hurricane/startup/setvec.c b/c/src/lib/libbsp/mips/hurricane/startup/setvec.c
> index 091617d..9584e0b 100644
> --- a/c/src/lib/libbsp/mips/hurricane/startup/setvec.c
> +++ b/c/src/lib/libbsp/mips/hurricane/startup/setvec.c
> @@ -25,6 +25,7 @@
>  #include <rtems.h>
>  #include <bsp.h>
>
> +/* FIXME: use shared version */
>  mips_isr_entry set_vector(                    /* returns old vector */
>   rtems_isr_entry     handler,                  /* isr routine        */
>   rtems_vector_number vector,                   /* vector number      */
> diff --git a/c/src/lib/libbsp/mips/jmr3904/Makefile.am b/c/src/lib/libbsp/mips/jmr3904/Makefile.am
> index 540c123..b6fae13 100644
> --- a/c/src/lib/libbsp/mips/jmr3904/Makefile.am
> +++ b/c/src/lib/libbsp/mips/jmr3904/Makefile.am
> @@ -17,6 +17,7 @@ include_bsp_HEADERS = ../shared/liblnk/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/mips/jmr3904/include/bsp.h b/c/src/lib/libbsp/mips/jmr3904/include/bsp.h
> index 0d226a6..f16eb87 100644
> --- a/c/src/lib/libbsp/mips/jmr3904/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/jmr3904/include/bsp.h
> @@ -29,16 +29,12 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <libcpu/tx3904.h>
>
>  #define BSP_FEATURE_IRQ_EXTENSION
>  #define BSP_SHARED_HANDLER_SUPPORT      1
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry, rtems_vector_number, int );
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/mips/jmr3904/preinstall.am b/c/src/lib/libbsp/mips/jmr3904/preinstall.am
> index 244a228..45955ef 100644
> --- a/c/src/lib/libbsp/mips/jmr3904/preinstall.am
> +++ b/c/src/lib/libbsp/mips/jmr3904/preinstall.am
> @@ -61,6 +61,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/mips/malta/Makefile.am b/c/src/lib/libbsp/mips/malta/Makefile.am
> index 0c5da15..72bbed7 100644
> --- a/c/src/lib/libbsp/mips/malta/Makefile.am
> +++ b/c/src/lib/libbsp/mips/malta/Makefile.am
> @@ -16,6 +16,7 @@ include_bsp_HEADERS = ../shared/liblnk/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>  #pci
>  include_bsp_HEADERS += include/pci.h
>  #irq
> diff --git a/c/src/lib/libbsp/mips/malta/include/bsp.h b/c/src/lib/libbsp/mips/malta/include/bsp.h
> index b05b2c4..f1b7549 100644
> --- a/c/src/lib/libbsp/mips/malta/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/malta/include/bsp.h
> @@ -27,6 +27,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  #define BSP_FEATURE_IRQ_EXTENSION
>  #define BSP_SHARED_HANDLER_SUPPORT      1
> @@ -98,9 +99,6 @@ uint32_t simple_in_32( uint32_t base, uint32_t addr );
>  void simple_out_le16( uint32_t base, uint32_t addr, uint16_t val );
>  void simple_out_16( uint32_t base, uint32_t addr, uint16_t val );
>
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry, rtems_vector_number, int );
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/mips/malta/preinstall.am b/c/src/lib/libbsp/mips/malta/preinstall.am
> index 8d22a8c..7ed508f 100644
> --- a/c/src/lib/libbsp/mips/malta/preinstall.am
> +++ b/c/src/lib/libbsp/mips/malta/preinstall.am
> @@ -61,6 +61,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bsp/pci.h: include/pci.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/pci.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/pci.h
> diff --git a/c/src/lib/libbsp/mips/rbtx4925/Makefile.am b/c/src/lib/libbsp/mips/rbtx4925/Makefile.am
> index fe53813..28bcfdc 100644
> --- a/c/src/lib/libbsp/mips/rbtx4925/Makefile.am
> +++ b/c/src/lib/libbsp/mips/rbtx4925/Makefile.am
> @@ -17,6 +17,7 @@ include_bsp_HEADERS = ../shared/liblnk/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/mips/rbtx4925/include/bsp.h b/c/src/lib/libbsp/mips/rbtx4925/include/bsp.h
> index 3c275c9..6378496 100644
> --- a/c/src/lib/libbsp/mips/rbtx4925/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/rbtx4925/include/bsp.h
> @@ -28,16 +28,12 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <libcpu/tx4925.h>
>
>  #define BSP_FEATURE_IRQ_EXTENSION
>  #define BSP_SHARED_HANDLER_SUPPORT      1
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry, rtems_vector_number, int );
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/mips/rbtx4925/preinstall.am b/c/src/lib/libbsp/mips/rbtx4925/preinstall.am
> index b2d7806..4930fec 100644
> --- a/c/src/lib/libbsp/mips/rbtx4925/preinstall.am
> +++ b/c/src/lib/libbsp/mips/rbtx4925/preinstall.am
> @@ -61,6 +61,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/mips/rbtx4938/Makefile.am b/c/src/lib/libbsp/mips/rbtx4938/Makefile.am
> index fe53813..28bcfdc 100644
> --- a/c/src/lib/libbsp/mips/rbtx4938/Makefile.am
> +++ b/c/src/lib/libbsp/mips/rbtx4938/Makefile.am
> @@ -17,6 +17,7 @@ include_bsp_HEADERS = ../shared/liblnk/regs.h
>  include_bsp_HEADERS += ../../shared/include/irq-generic.h
>  include_bsp_HEADERS += ../../shared/include/irq-info.h
>  include_bsp_HEADERS += include/irq.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/mips/rbtx4938/include/bsp.h b/c/src/lib/libbsp/mips/rbtx4938/include/bsp.h
> index 0463911..32a9437 100644
> --- a/c/src/lib/libbsp/mips/rbtx4938/include/bsp.h
> +++ b/c/src/lib/libbsp/mips/rbtx4938/include/bsp.h
> @@ -28,15 +28,12 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <libcpu/tx4938.h>
>
>  #define BSP_FEATURE_IRQ_EXTENSION
>  #define BSP_SHARED_HANDLER_SUPPORT      1
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(
> -  rtems_isr_entry, rtems_vector_number, int );
>
>  #ifdef __cplusplus
>  }
> diff --git a/c/src/lib/libbsp/mips/rbtx4938/preinstall.am b/c/src/lib/libbsp/mips/rbtx4938/preinstall.am
> index b2d7806..4930fec 100644
> --- a/c/src/lib/libbsp/mips/rbtx4938/preinstall.am
> +++ b/c/src/lib/libbsp/mips/rbtx4938/preinstall.am
> @@ -61,6 +61,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am b/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am
> index 8fa6085..06d2f2e 100644
> --- a/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am
> +++ b/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am
> @@ -13,6 +13,8 @@ include_bspdir = $(includedir)/bsp
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
>
> +include_bsp_HEADERS = ../../shared/include/setvec.h
> +
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
>  DISTCLEANFILES = include/bspopts.h
> diff --git a/c/src/lib/libbsp/nios2/nios2_iss/include/bsp.h b/c/src/lib/libbsp/nios2/nios2_iss/include/bsp.h
> index 7f1e247..0741a15 100644
> --- a/c/src/lib/libbsp/nios2/nios2_iss/include/bsp.h
> +++ b/c/src/lib/libbsp/nios2/nios2_iss/include/bsp.h
> @@ -27,7 +27,7 @@ extern "C" {
>  #include <rtems.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> -
> +#include <bsp/setvec.h>
>
>  /*
>  *  Simple spin delay in microsecond units for device drivers.
> @@ -129,12 +129,6 @@ altera_avalon_jtag_uart_regs;
>
>  /* functions */
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/nios2/nios2_iss/preinstall.am b/c/src/lib/libbsp/nios2/nios2_iss/preinstall.am
> index 5e40708..25ffbef 100644
> --- a/c/src/lib/libbsp/nios2/nios2_iss/preinstall.am
> +++ b/c/src/lib/libbsp/nios2/nios2_iss/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/Makefile.am b/c/src/lib/libbsp/no_cpu/no_bsp/Makefile.am
> index 2a7958b..d8f4599 100644
> --- a/c/src/lib/libbsp/no_cpu/no_bsp/Makefile.am
> +++ b/c/src/lib/libbsp/no_cpu/no_bsp/Makefile.am
> @@ -14,6 +14,8 @@ dist_project_lib_DATA = bsp_specs
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
>
> +include_bsp_HEADERS = ../../shared/include/setvec.h
> +
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
>  DISTCLEANFILES = include/bspopts.h
> diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h b/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h
> index c137ab4..56cd0a7 100644
> --- a/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h
> +++ b/c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h
> @@ -26,6 +26,7 @@ extern "C" {
>  #include <rtems.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /*
>  *  Simple spin delay in microsecond units for device drivers.
> @@ -38,12 +39,6 @@ extern "C" {
>
>  /* functions */
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/preinstall.am b/c/src/lib/libbsp/no_cpu/no_bsp/preinstall.am
> index 72d079a..d753521 100644
> --- a/c/src/lib/libbsp/no_cpu/no_bsp/preinstall.am
> +++ b/c/src/lib/libbsp/no_cpu/no_bsp/preinstall.am
> @@ -40,6 +40,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h b/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h
> index f1a52a0..9e67120 100644
> --- a/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h
> +++ b/c/src/lib/libbsp/powerpc/haleakala/include/bsp.h
> @@ -64,6 +64,7 @@ extern "C" {
>   #include <rtems.h>
>   #include <rtems/console.h>
>   #include <rtems/clockdrv.h>
> +  #include <bsp/setvec.h>
>   #include <libcpu/io.h>
>   #include <rtems/console.h>
>   #include <rtems/iosupp.h>
> @@ -84,14 +85,6 @@ extern "C" {
>
>   #define BSP_UART_BAUD_BASE    (11059200 / 16)    /* Kilauea ext clock, max speed */
>
> -  /* functions */
> -
> -  rtems_isr_entry set_vector(                    /* returns old vector */
> -    rtems_isr_entry     handler,                  /* isr routine        */
> -    rtems_vector_number vector,                   /* vector number      */
> -    int                 type                      /* RTEMS or RAW intr  */
> -  );
> -
>  #endif /* ASM */
>
>  #ifdef __cplusplus
> diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h b/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h
> index eb7c624..e57ce3b 100644
> --- a/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h
> +++ b/c/src/lib/libbsp/powerpc/mpc8260ads/include/bsp.h
> @@ -26,6 +26,7 @@ extern "C" {
>  #include <rtems.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>  #include <mpc8260.h>
>  #include <mpc8260/cpm.h>
>  #include <mpc8260/mmu.h>
> @@ -81,12 +82,6 @@ void *M8260AllocateRiscTimers( int count );
>  extern char M8260DefaultWatchdogFeeder;
>  #endif
>
> -rtems_isr_entry set_vector(                    /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/c/src/lib/libbsp/powerpc/score603e/Makefile.am b/c/src/lib/libbsp/powerpc/score603e/Makefile.am
> index 3a6b070..e8896b1 100644
> --- a/c/src/lib/libbsp/powerpc/score603e/Makefile.am
> +++ b/c/src/lib/libbsp/powerpc/score603e/Makefile.am
> @@ -13,6 +13,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/powerpc/score603e/preinstall.am b/c/src/lib/libbsp/powerpc/score603e/preinstall.am
> index 4d2f767..ba6fc3f 100644
> --- a/c/src/lib/libbsp/powerpc/score603e/preinstall.am
> +++ b/c/src/lib/libbsp/powerpc/score603e/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/powerpc/virtex/include/bsp.h b/c/src/lib/libbsp/powerpc/virtex/include/bsp.h
> index 52c9648..d967d0a 100644
> --- a/c/src/lib/libbsp/powerpc/virtex/include/bsp.h
> +++ b/c/src/lib/libbsp/powerpc/virtex/include/bsp.h
> @@ -60,6 +60,7 @@ extern "C" {
>  #include <rtems/console.h>
>  #include <rtems/iosupp.h>
>  #include <bsp/irq.h>
> +#include <bsp/setvec.h>
>  #include <bsp/vectors.h>
>
>  /* miscellaneous stuff assumed to exist */
> @@ -77,13 +78,6 @@ extern xilTemac_driver_attach(struct rtems_bsdnet_ifconfig*, int );
>
>  #define BSP_PPC403_CLOCK_HOOK_EXCEPTION ASM_BOOKE_DEC_VECTOR
>
> -/* functions */
> -
> -rtems_isr_entry set_vector(                    /* returns old vector */
> -  rtems_isr_entry     handler,                  /* isr routine        */
> -  rtems_vector_number vector,                   /* vector number      */
> -  int                 type                      /* RTEMS or RAW intr  */
> -);
>  #endif /* ASM */
>
>  #ifdef __cplusplus
> diff --git a/c/src/lib/libbsp/sh/gensh2/Makefile.am b/c/src/lib/libbsp/sh/gensh2/Makefile.am
> index bc54b0a..ed05d7e 100644
> --- a/c/src/lib/libbsp/sh/gensh2/Makefile.am
> +++ b/c/src/lib/libbsp/sh/gensh2/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += ../../shared/include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/sh/gensh2/preinstall.am b/c/src/lib/libbsp/sh/gensh2/preinstall.am
> index 7d4c5ec..4f43efb 100644
> --- a/c/src/lib/libbsp/sh/gensh2/preinstall.am
> +++ b/c/src/lib/libbsp/sh/gensh2/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirs
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/sh/gensh4/Makefile.am b/c/src/lib/libbsp/sh/gensh4/Makefile.am
> index b73a2da..37605c8 100644
> --- a/c/src/lib/libbsp/sh/gensh4/Makefile.am
> +++ b/c/src/lib/libbsp/sh/gensh4/Makefile.am
> @@ -12,6 +12,7 @@ dist_project_lib_DATA = bsp_specs
>
>  include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
> +include_bsp_HEADERS = ../../shared/include/setvec.h
>
>  nodist_include_HEADERS = include/bspopts.h
>  nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
> diff --git a/c/src/lib/libbsp/sh/gensh4/preinstall.am b/c/src/lib/libbsp/sh/gensh4/preinstall.am
> index 3821249..f49bf44 100644
> --- a/c/src/lib/libbsp/sh/gensh4/preinstall.am
> +++ b/c/src/lib/libbsp/sh/gensh4/preinstall.am
> @@ -45,6 +45,10 @@ $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
> diff --git a/c/src/lib/libbsp/sh/shsim/Makefile.am b/c/src/lib/libbsp/sh/shsim/Makefile.am
> index 85c8e07..7dde1bc 100644
> --- a/c/src/lib/libbsp/sh/shsim/Makefile.am
> +++ b/c/src/lib/libbsp/sh/shsim/Makefile.am
> @@ -8,6 +8,7 @@ include $(top_srcdir)/../../../../automake/compile.am
>
>  include_bspdir = $(includedir)/bsp
>  include_bsp_HEADERS = include/syscall.h
> +include_bsp_HEADERS += ../../shared/include/setvec.h
>
>  dist_project_lib_DATA = bsp_specs
>
> diff --git a/c/src/lib/libbsp/sh/shsim/preinstall.am b/c/src/lib/libbsp/sh/shsim/preinstall.am
> index 9e08790..56b869c 100644
> --- a/c/src/lib/libbsp/sh/shsim/preinstall.am
> +++ b/c/src/lib/libbsp/sh/shsim/preinstall.am
> @@ -37,6 +37,10 @@ $(PROJECT_INCLUDE)/bsp/syscall.h: include/syscall.h $(PROJECT_INCLUDE)/bsp/$(dir
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/syscall.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/syscall.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
>  PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
> diff --git a/c/src/lib/libbsp/shared/include/setvec.h b/c/src/lib/libbsp/shared/include/setvec.h
> new file mode 100644
> index 0000000..95f7cd9
> --- /dev/null
> +++ b/c/src/lib/libbsp/shared/include/setvec.h
> @@ -0,0 +1,54 @@
> +/*
> + * Copyright (c) 2011 Gedare Bloom.
> + *
> + * The license and distribution terms for this file may be
> + * found in the file LICENSE in this distribution or at
> + * http://www.rtems.com/license/LICENSE.
> + */
> +
> +#ifndef LIBBSP_SHARED_SETVEC_H
> +#define LIBBSP_SHARED_SETVEC_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif /* __cplusplus */
> +
> +/**
> + * @defgroup bsp_set_vector
> + *
> + * @ingroup bsp_kit
> + *
> + * @brief Install an interrupt handler for simple vectored architectures.
> + *
> + * @{
> + */
> +/**
> + * Raw trap handler vectors directly to isr handler.
> + */
> +#define BSP_SET_VECTOR_RAW    0
> +/**
> + * RTEMS trap handler vectors through rtems interrupt handler (_ISR_Handler).
> + */
> +#define BSP_SET_VECTOR_RTEMS  1
> +
> +/**
> + * @brief bsp_set_vector
> + *
> + * Installs @a handler as the interrupt handler for vector number @a vector
> + * with @a type specifying either BSP_SET_VECTOR_RAW or BSP_SET_VECTOR_RTEMS
> + *
> + * @return Returns the old vector handler
> + */
> +rtems_isr_entry bsp_set_vector(
> +    rtems_isr_entry handler,
> +    rtems_vector_number vector,
> +    int type
> +);
> +
> +/** @} */
> +
> +#ifdef __cplusplus
> +}
> +#endif /* __cplusplus */
> +
> +#endif /* LIBBSP_SHARED_SETVEC_H */
> diff --git a/c/src/lib/libbsp/shared/setvec.c b/c/src/lib/libbsp/shared/setvec.c
> index dda3c91..4d89596 100644
> --- a/c/src/lib/libbsp/shared/setvec.c
> +++ b/c/src/lib/libbsp/shared/setvec.c
> @@ -16,22 +16,21 @@
>  *  RETURNS:
>  *    address of previous interrupt handler
>  *
> - *  COPYRIGHT (c) 1989-2009.
> + *  COPYRIGHT (c) 1989-2012.
>  *  On-Line Applications Research Corporation (OAR).
>  *
>  *  The license and distribution terms for this file may be
>  *  found in the file LICENSE in this distribution or at
>  *  http://www.rtems.com/license/LICENSE.
> - *
> - *  $Id$
>  */
>
>  #include <bsp.h>
> +#include <bsp/setvec.h>
>
> -rtems_isr_entry set_vector(                   /* returns old vector */
> -  rtems_isr_entry     handler,                /* isr routine        */
> -  rtems_vector_number vector,                 /* vector number      */
> -  int                 type                    /* RTEMS or RAW intr  */
> +rtems_isr_entry set_vector(
> +  rtems_isr_entry     handler,
> +  rtems_vector_number vector,
> +  int                 type
>  )
>  {
>   rtems_isr_entry previous_isr;
> diff --git a/c/src/lib/libbsp/sparc/erc32/Makefile.am b/c/src/lib/libbsp/sparc/erc32/Makefile.am
> index 615a3e0..d1f41b0 100644
> --- a/c/src/lib/libbsp/sparc/erc32/Makefile.am
> +++ b/c/src/lib/libbsp/sparc/erc32/Makefile.am
> @@ -59,7 +59,8 @@ libbsp_a_SOURCES += timer/timer.c
>  include_bsp_HEADERS = \
>     ../../shared/include/irq-generic.h \
>     ../../shared/include/irq-info.h \
> -    include/bsp/irq.h
> +    include/bsp/irq.h \
> +               ../../shared/include/setvec.h
>  libbsp_a_SOURCES += \
>     ../../sparc/shared/irq/irq-shared.c \
>     ../../shared/src/irq-default-handler.c \
> diff --git a/c/src/lib/libbsp/sparc/erc32/include/bsp.h b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
> index 879e714..0e03478 100644
> --- a/c/src/lib/libbsp/sparc/erc32/include/bsp.h
> +++ b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
> @@ -32,6 +32,7 @@ extern "C" {
>  #include <rtems/clockdrv.h>
>  #include <rtems/console.h>
>  #include <rtems/irq-extension.h>
> +#include <bsp/setvec.h>
>
>  /*
>  *  BSP provides its own Idle thread body
> @@ -69,12 +70,6 @@ extern int   end;        /* last address in the program */
>
>  /* functions */
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -    rtems_isr_entry     handler,                /* isr routine        */
> -    rtems_vector_number vector,                 /* vector number      */
> -    int                 type                    /* RTEMS or RAW intr  */
> -);
> -
>  void BSP_fatal_return( void );
>
>  void bsp_spurious_initialize( void );
> diff --git a/c/src/lib/libbsp/sparc/erc32/preinstall.am b/c/src/lib/libbsp/sparc/erc32/preinstall.am
> index a235296..fe55a59 100644
> --- a/c/src/lib/libbsp/sparc/erc32/preinstall.am
> +++ b/c/src/lib/libbsp/sparc/erc32/preinstall.am
> @@ -85,3 +85,7 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/bsp/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstam
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
> diff --git a/c/src/lib/libbsp/sparc/leon2/Makefile.am b/c/src/lib/libbsp/sparc/leon2/Makefile.am
> index 2acca78..aa5522e 100644
> --- a/c/src/lib/libbsp/sparc/leon2/Makefile.am
> +++ b/c/src/lib/libbsp/sparc/leon2/Makefile.am
> @@ -70,7 +70,8 @@ libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
>  include_bsp_HEADERS = \
>     ../../shared/include/irq-generic.h \
>     ../../shared/include/irq-info.h \
> -    include/bsp/irq.h
> +    include/bsp/irq.h \
> +               ../../shared/include/setvec.h
>  libbsp_a_SOURCES += \
>     ../../sparc/shared/irq/irq-shared.c \
>     ../../shared/src/irq-default-handler.c \
> diff --git a/c/src/lib/libbsp/sparc/leon2/include/bsp.h b/c/src/lib/libbsp/sparc/leon2/include/bsp.h
> index e96a63e..b63b37c 100644
> --- a/c/src/lib/libbsp/sparc/leon2/include/bsp.h
> +++ b/c/src/lib/libbsp/sparc/leon2/include/bsp.h
> @@ -31,6 +31,7 @@ extern "C" {
>  #include <rtems/clockdrv.h>
>  #include <rtems/console.h>
>  #include <rtems/irq-extension.h>
> +#include <bsp/setvec.h>
>
>  /* SPARC CPU variant: LEON2 */
>  #define LEON2 1
> @@ -89,12 +90,6 @@ extern int   end;        /* last address in the program */
>
>  /* miscellaneous stuff assumed to exist */
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -    rtems_isr_entry     handler,                /* isr routine        */
> -    rtems_vector_number vector,                 /* vector number      */
> -    int                 type                    /* RTEMS or RAW intr  */
> -);
> -
>  void BSP_fatal_return( void );
>
>  void bsp_spurious_initialize( void );
> diff --git a/c/src/lib/libbsp/sparc/leon2/preinstall.am b/c/src/lib/libbsp/sparc/leon2/preinstall.am
> index 00ed05e..a5e6487 100644
> --- a/c/src/lib/libbsp/sparc/leon2/preinstall.am
> +++ b/c/src/lib/libbsp/sparc/leon2/preinstall.am
> @@ -157,6 +157,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/bsp/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstam
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/i2cmst.h: ../../sparc/shared/include/i2cmst.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/i2cmst.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/i2cmst.h
> diff --git a/c/src/lib/libbsp/sparc/leon3/Makefile.am b/c/src/lib/libbsp/sparc/leon3/Makefile.am
> index ebbeb46..8ef422b 100644
> --- a/c/src/lib/libbsp/sparc/leon3/Makefile.am
> +++ b/c/src/lib/libbsp/sparc/leon3/Makefile.am
> @@ -59,7 +59,8 @@ libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
>  include_bsp_HEADERS = \
>     ../../shared/include/irq-generic.h \
>     ../../shared/include/irq-info.h \
> -    include/bsp/irq.h
> +    include/bsp/irq.h \
> +               ../../shared/include/setvec.h
>  libbsp_a_SOURCES += \
>     startup/eirq.c \
>     ../../sparc/shared/irq/irq-shared.c \
> diff --git a/c/src/lib/libbsp/sparc/leon3/include/bsp.h b/c/src/lib/libbsp/sparc/leon3/include/bsp.h
> index e5ae2c1..61028da 100644
> --- a/c/src/lib/libbsp/sparc/leon3/include/bsp.h
> +++ b/c/src/lib/libbsp/sparc/leon3/include/bsp.h
> @@ -31,6 +31,7 @@ extern "C" {
>  #include <rtems/clockdrv.h>
>  #include <rtems/console.h>
>  #include <rtems/irq-extension.h>
> +#include <bsp/setvec.h>
>
>  /* SPARC CPU variant: LEON3 */
>  #define LEON3 1
> @@ -99,12 +100,6 @@ extern int   end;        /* last address in the program */
>
>  /* miscellaneous stuff assumed to exist */
>
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -    rtems_isr_entry     handler,                /* isr routine        */
> -    rtems_vector_number vector,                 /* vector number      */
> -    int                 type                    /* RTEMS or RAW intr  */
> -);
> -
>  void BSP_fatal_return( void );
>
>  void bsp_spurious_initialize( void );
> diff --git a/c/src/lib/libbsp/sparc/leon3/preinstall.am b/c/src/lib/libbsp/sparc/leon3/preinstall.am
> index 8c27b81..dad935f 100644
> --- a/c/src/lib/libbsp/sparc/leon3/preinstall.am
> +++ b/c/src/lib/libbsp/sparc/leon3/preinstall.am
> @@ -97,6 +97,10 @@ $(PROJECT_INCLUDE)/bsp/irq.h: include/bsp/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstam
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/pci.h: ../../sparc/shared/include/pci.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/pci.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/pci.h
> diff --git a/c/src/lib/libbsp/sparc64/niagara/Makefile.am b/c/src/lib/libbsp/sparc64/niagara/Makefile.am
> index 099591a..b2207c9 100644
> --- a/c/src/lib/libbsp/sparc64/niagara/Makefile.am
> +++ b/c/src/lib/libbsp/sparc64/niagara/Makefile.am
> @@ -15,6 +15,8 @@ include_HEADERS = include/bsp.h
>  include_HEADERS += include/tm27.h
>  include_HEADERS += ../shared/include/asm.h
>
> +include_bsp_HEADERS = ../shared/include/bsp/setvec.h
> +
>  include_bootdir = $(includedir)/boot
>  include_boot_HEADERS = ../shared/helenos/boot/include/align.h \
>   ../shared/helenos/boot/include/balloc.h \
> diff --git a/c/src/lib/libbsp/sparc64/niagara/include/bsp.h b/c/src/lib/libbsp/sparc64/niagara/include/bsp.h
> index 5a55a89..63cb054 100644
> --- a/c/src/lib/libbsp/sparc64/niagara/include/bsp.h
> +++ b/c/src/lib/libbsp/sparc64/niagara/include/bsp.h
> @@ -31,6 +31,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /* support for simulated clock tick */
>  /*
> @@ -38,13 +39,6 @@ Thread clock_driver_sim_idle_body(uintptr_t);
>  #define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
>  */
>
> -/* this should be defined somewhere */
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -    rtems_isr_entry     handler,                /* isr routine        */
> -    rtems_vector_number vector,                 /* vector number      */
> -    int                 type                    /* RTEMS or RAW intr  */
> -);
> -
>  /*
>  *  Simple spin delay in microsecond units for device drivers.
>  *  This is very dependent on the clock speed of the target.
> diff --git a/c/src/lib/libbsp/sparc64/niagara/preinstall.am b/c/src/lib/libbsp/sparc64/niagara/preinstall.am
> index 722ccdd..c8ecc0f 100644
> --- a/c/src/lib/libbsp/sparc64/niagara/preinstall.am
> +++ b/c/src/lib/libbsp/sparc64/niagara/preinstall.am
> @@ -49,6 +49,10 @@ $(PROJECT_INCLUDE)/asm.h: ../shared/include/asm.h $(PROJECT_INCLUDE)/$(dirstamp)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/asm.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/asm.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../shared/include/bsp/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/boot/$(dirstamp):
>        @$(MKDIR_P) $(PROJECT_INCLUDE)/boot
>        @: > $(PROJECT_INCLUDE)/boot/$(dirstamp)
> diff --git a/c/src/lib/libbsp/sparc64/usiii/Makefile.am b/c/src/lib/libbsp/sparc64/usiii/Makefile.am
> index 2a25510..942d7e3 100644
> --- a/c/src/lib/libbsp/sparc64/usiii/Makefile.am
> +++ b/c/src/lib/libbsp/sparc64/usiii/Makefile.am
> @@ -16,6 +16,8 @@ include_HEADERS += include/tm27.h
>  include_HEADERS += ../shared/include/asm.h
>  include_HEADERS += ../shared/include/traptable.h
>
> +include_bsp_HEADERS = ../../shared/include/setvec.h
> +
>  ## these are the include files used by the boot process from HelenOS Sparc64
>  include_bootdir = $(includedir)/boot
>  include_boot_HEADERS = \
> diff --git a/c/src/lib/libbsp/sparc64/usiii/include/bsp.h b/c/src/lib/libbsp/sparc64/usiii/include/bsp.h
> index e622b3a..0019908 100644
> --- a/c/src/lib/libbsp/sparc64/usiii/include/bsp.h
> +++ b/c/src/lib/libbsp/sparc64/usiii/include/bsp.h
> @@ -33,6 +33,7 @@ extern "C" {
>  #include <rtems/iosupp.h>
>  #include <rtems/console.h>
>  #include <rtems/clockdrv.h>
> +#include <bsp/setvec.h>
>
>  /* support for simulated clock tick */
>  /*
> @@ -40,13 +41,6 @@ Thread clock_driver_sim_idle_body(uintptr_t);
>  #define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
>  */
>
> -/* this should be defined somewhere */
> -rtems_isr_entry set_vector(                     /* returns old vector */
> -    rtems_isr_entry     handler,                /* isr routine        */
> -    rtems_vector_number vector,                 /* vector number      */
> -    int                 type                    /* RTEMS or RAW intr  */
> -);
> -
>  /*
>  *  Simple spin delay in microsecond units for device drivers.
>  *  This is very dependent on the clock speed of the target.
> diff --git a/c/src/lib/libbsp/sparc64/usiii/preinstall.am b/c/src/lib/libbsp/sparc64/usiii/preinstall.am
> index 73f10f9..7f78895 100644
> --- a/c/src/lib/libbsp/sparc64/usiii/preinstall.am
> +++ b/c/src/lib/libbsp/sparc64/usiii/preinstall.am
> @@ -53,6 +53,10 @@ $(PROJECT_INCLUDE)/traptable.h: ../shared/include/traptable.h $(PROJECT_INCLUDE)
>        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/traptable.h
>  PREINSTALL_FILES += $(PROJECT_INCLUDE)/traptable.h
>
> +$(PROJECT_INCLUDE)/bsp/setvec.h: ../../shared/include/setvec.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
> +       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/setvec.h
> +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/setvec.h
> +
>  $(PROJECT_INCLUDE)/boot/$(dirstamp):
>        @$(MKDIR_P) $(PROJECT_INCLUDE)/boot
>        @: > $(PROJECT_INCLUDE)/boot/$(dirstamp)
> diff --git a/c/src/libchip/network/open_eth.c b/c/src/libchip/network/open_eth.c
> index dc8b22b..739cd0d 100644
> --- a/c/src/libchip/network/open_eth.c
> +++ b/c/src/libchip/network/open_eth.c
> @@ -26,8 +26,7 @@
>  #if !defined(OPENETH_NOT_SUPPORTED)
>  #include <bsp.h>
>  #include <rtems.h>
> -
> -#include <bsp.h>
> +#include <bsp/setvec.h>
>
>  #include <inttypes.h>
>  #include <stdlib.h>
> @@ -55,8 +54,6 @@
>  #undef free
>  #endif
>
> -extern rtems_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
> -
>  /*
>  #define OPEN_ETH_DEBUG
>  */
> @@ -322,7 +319,11 @@ open_eth_initialize_hardware (struct open_eth_softc *sc)
>     regs->mac_addr0 = mac_addr0;
>
>     /* install interrupt vector */
> -    set_vector (open_eth_interrupt_handler, sc->vector, 1);
> +    set_vector(
> +        open_eth_interrupt_handler,
> +        sc->vector,
> +        1
> +    );
>
>     /* clear all pending interrupts */
>
> diff --git a/c/src/libchip/network/sonic.c b/c/src/libchip/network/sonic.c
> index d900757..074e077 100644
> --- a/c/src/libchip/network/sonic.c
> +++ b/c/src/libchip/network/sonic.c
> @@ -36,6 +36,7 @@
>  #include <rtems.h>
>  #include <rtems/rtems_bsdnet.h>
>  #include <libchip/sonic.h>
> +#include <bsp/setvec.h>
>
>  #include <stdio.h>
>  #include <string.h>
> @@ -54,8 +55,6 @@
>  #include <netinet/in.h>
>  #include <netinet/if_ether.h>
>
> -extern rtems_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int );
> -
>  #if (SONIC_DEBUG & SONIC_DEBUG_DUMP_MBUFS)
>  #include <rtems/dumpbuf.h>
>  #endif
> @@ -1402,7 +1401,11 @@ SONIC_STATIC void sonic_initialize_hardware(struct sonic_softc *sc)
>  */
>
>   /* Ignore returned old handler */
> -  (void) set_vector(sonic_interrupt_handler, sc->vector, 1);
> +  (void) set_vector(
> +      sonic_interrupt_handler,
> +      sc->vector,
> +      1
> +  );
>
>   /*
>    * Remainder of hardware initialization is
> diff --git a/c/src/libchip/serial/mc68681.c b/c/src/libchip/serial/mc68681.c
> index 1a2e2f1..a8f6df7 100644
> --- a/c/src/libchip/serial/mc68681.c
> +++ b/c/src/libchip/serial/mc68681.c
> @@ -24,6 +24,7 @@
>  #include <libchip/mc68681.h>
>  #include <libchip/sersupp.h>
>  #include "mc68681_p.h"
> +#include <bsp/setvec.h>
>
>  /*
>  * Flow control is only supported when using interrupts
> @@ -55,8 +56,6 @@ console_fns mc68681_fns_polled =
>   false,                               /* deviceOutputUsesInterrupts */
>  };
>
> -extern void set_vector( rtems_isr_entry, rtems_vector_number, int );
> -
>  /*
>  *  Console Device Driver Entry Points
>  */
> @@ -432,7 +431,11 @@ MC68681_STATIC void mc68681_initialize_interrupts(int minor)
>
>   Console_Port_Data[minor].bActive = FALSE;
>
> -  set_vector(mc68681_isr, Console_Port_Tbl[minor]->ulIntVector, 1);
> +  set_vector(
> +      mc68681_isr,
> +      Console_Port_Tbl[minor]->ulIntVector,
> +      1
> +  );
>
>   mc68681_enable_interrupts(minor,MC68681_IMR_ENABLE_ALL_EXCEPT_TX);
>  }
> diff --git a/c/src/libchip/serial/z85c30.c b/c/src/libchip/serial/z85c30.c
> index e6adf33..d0114aa 100644
> --- a/c/src/libchip/serial/z85c30.c
> +++ b/c/src/libchip/serial/z85c30.c
> @@ -37,6 +37,7 @@
>  #include <libchip/serial.h>
>  #include <libchip/sersupp.h>
>  #include "z85c30_p.h"
> +#include <bsp/setvec.h>
>
>  /*
>  * Flow control is only supported when using interrupts
> @@ -80,8 +81,6 @@ console_fns z85c30_fns_polled = {
>   false                              /* deviceOutputUsesInterrupts */
>  };
>
> -extern void set_vector( rtems_isr_entry, rtems_vector_number, int );
> -
>  /*
>  *  z85c30_initialize_port
>  *
> @@ -722,7 +721,11 @@ Z85C30_STATIC void z85c30_initialize_interrupts(
>     z85c30_negate_RTS(minor);
>   }
>
> -  set_vector(z85c30_isr, Console_Port_Tbl[minor]->ulIntVector, 1);
> +  set_vector(
> +      z85c30_isr,
> +      Console_Port_Tbl[minor]->ulIntVector,
> +      1
> +  );
>
>   z85c30_enable_interrupts(minor, SCC_ENABLE_ALL_INTR_EXCEPT_TX);
>
> --
> 1.7.1
>




More information about the devel mailing list