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

Gedare Bloom gedare at rtems.org
Wed Apr 18 00:28:13 UTC 2012


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