[rtems commit] bsps/irq: bsp_interrupt_vector_disable()

Sebastian Huber sebh at rtems.org
Tue Jul 27 05:42:40 UTC 2021


Module:    rtems
Branch:    master
Commit:    32f5a195d79ecf49e9b464d3358dd4739ae82203
Changeset: http://git.rtems.org/rtems/commit/?id=32f5a195d79ecf49e9b464d3358dd4739ae82203

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jun 29 14:06:03 2021 +0200

bsps/irq: bsp_interrupt_vector_disable()

Return a status code for bsp_interrupt_vector_disable().

Update #3269.

---

 bsps/arm/beagle/irq/irq.c                 |  3 ++-
 bsps/arm/csb336/irq/irq.c                 |  4 +++-
 bsps/arm/csb337/irq/irq.c                 |  3 ++-
 bsps/arm/edb7312/irq/irq.c                |  4 +++-
 bsps/arm/gumstix/irq/irq.c                |  3 ++-
 bsps/arm/lpc24xx/irq/irq.c                |  3 ++-
 bsps/arm/lpc32xx/irq/irq.c                |  4 +++-
 bsps/arm/raspberrypi/irq/irq.c            |  3 ++-
 bsps/arm/rtl22xx/irq/irq.c                |  3 ++-
 bsps/arm/shared/irq/irq-armv7m.c          |  3 ++-
 bsps/arm/smdk2410/irq/irq.c               |  3 ++-
 bsps/arm/tms570/irq/irq.c                 |  3 ++-
 bsps/i386/shared/irq/irq.c                |  3 ++-
 bsps/include/bsp/irq-generic.h            | 16 ++++++++++------
 bsps/lm32/shared/irq/irq.c                |  3 ++-
 bsps/m68k/genmcf548x/irq/irq.c            |  4 +++-
 bsps/mips/shared/irq/irq.c                |  3 ++-
 bsps/powerpc/gen5200/irq/irq.c            |  4 +++-
 bsps/powerpc/gen83xx/irq/irq.c            |  4 +++-
 bsps/powerpc/mpc55xxevb/start/irq.c       |  3 ++-
 bsps/powerpc/mpc8260ads/irq/irq.c         |  4 +++-
 bsps/powerpc/psim/irq/irq_init.c          |  3 ++-
 bsps/powerpc/qemuppc/irq/irq_init.c       |  3 ++-
 bsps/powerpc/qoriq/irq/irq.c              |  6 ++++--
 bsps/powerpc/shared/irq/ppc-irq-generic.c |  3 ++-
 bsps/powerpc/t32mppc/irq/irq.c            |  3 ++-
 bsps/powerpc/tqm8xx/irq/irq.c             |  4 +++-
 bsps/powerpc/virtex/irq/irq_init.c        |  4 +++-
 bsps/riscv/griscv/irq/irq.c               |  3 ++-
 bsps/riscv/riscv/irq/irq.c                |  4 +++-
 bsps/shared/dev/irq/arm-gicv2.c           |  3 ++-
 bsps/shared/dev/irq/arm-gicv3.c           |  4 +++-
 bsps/shared/irq/irq-default.c             |  3 ++-
 bsps/shared/irq/irq-enable-disable.c      |  4 +---
 bsps/sparc/leon3/start/eirq.c             |  3 ++-
 bsps/sparc/shared/irq/irq-shared.c        |  3 ++-
 bsps/x86_64/amd64/interrupts/idt.c        |  3 ++-
 37 files changed, 94 insertions(+), 45 deletions(-)

diff --git a/bsps/arm/beagle/irq/irq.c b/bsps/arm/beagle/irq/irq.c
index ff5ab4d..d892299 100644
--- a/bsps/arm/beagle/irq/irq.c
+++ b/bsps/arm/beagle/irq/irq.c
@@ -150,7 +150,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   uint32_t mask, cur;
   uint32_t mir_reg = omap_get_mir_reg(vector, &mask);
@@ -160,6 +160,7 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
   cur = mmio_read(omap_intr.base + mir_reg);
   mmio_write(omap_intr.base + mir_reg, cur | mask);
   flush_data_cache();
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/csb336/irq/irq.c b/bsps/arm/csb336/irq/irq.c
index 4cdce1a..266ca01 100644
--- a/bsps/arm/csb336/irq/irq.c
+++ b/bsps/arm/csb336/irq/irq.c
@@ -78,12 +78,14 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
   if (vector < MC9328MXL_NUM_INTS)
     MC9328MXL_AITC_INTDISNUM = vector;
+
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/csb337/irq/irq.c b/bsps/arm/csb337/irq/irq.c
index f2e2dbb..32f19c7 100644
--- a/bsps/arm/csb337/irq/irq.c
+++ b/bsps/arm/csb337/irq/irq.c
@@ -76,10 +76,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   AIC_CTL_REG(AIC_IDCR) = 1 << vector;
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/edb7312/irq/irq.c b/bsps/arm/edb7312/irq/irq.c
index 820628a..e039e11 100644
--- a/bsps/arm/edb7312/irq/irq.c
+++ b/bsps/arm/edb7312/irq/irq.c
@@ -97,7 +97,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
     return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
     bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
@@ -121,6 +121,8 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
         /* interrupt managed by INTMR3 and INTSR3 */
         *EP7312_INTMR3 &= ~(1 << (vector - 21));
     }
+
+    return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/gumstix/irq/irq.c b/bsps/arm/gumstix/irq/irq.c
index da90bc7..e0f16e1 100644
--- a/bsps/arm/gumstix/irq/irq.c
+++ b/bsps/arm/gumstix/irq/irq.c
@@ -73,10 +73,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   XSCALE_INT_ICMR  &= ~(1 << vector);
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/lpc24xx/irq/irq.c b/bsps/arm/lpc24xx/irq/irq.c
index 94ea9f8..a851db8 100644
--- a/bsps/arm/lpc24xx/irq/irq.c
+++ b/bsps/arm/lpc24xx/irq/irq.c
@@ -113,10 +113,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   VICIntEnClear = 1U << vector;
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/lpc32xx/irq/irq.c b/bsps/arm/lpc32xx/irq/irq.c
index 6bd7455..f08d4fe 100644
--- a/bsps/arm/lpc32xx/irq/irq.c
+++ b/bsps/arm/lpc32xx/irq/irq.c
@@ -316,7 +316,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   rtems_interrupt_level level;
 
@@ -326,6 +326,8 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
   lpc32xx_irq_clear_bit_in_field(vector, &lpc32xx_irq_enable);
   lpc32xx_irq_clear_bit_in_register(vector, LPC32XX_IRQ_OFFSET_ER);
   rtems_interrupt_enable(level);
+
+  return RTEMS_SUCCESSFUL;
 }
 
 void lpc32xx_set_exception_handler(
diff --git a/bsps/arm/raspberrypi/irq/irq.c b/bsps/arm/raspberrypi/irq/irq.c
index 1298a89..bd98689 100644
--- a/bsps/arm/raspberrypi/irq/irq.c
+++ b/bsps/arm/raspberrypi/irq/irq.c
@@ -204,11 +204,12 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   BCM2835_REG(bsp_vector_to_reg(vector)->disable_reg_addr) =
               bsp_vector_to_mask(vector);
+  return RTEMS_SUCCESSFUL;
 }
 
 void bsp_interrupt_handler_default(rtems_vector_number vector)
diff --git a/bsps/arm/rtl22xx/irq/irq.c b/bsps/arm/rtl22xx/irq/irq.c
index 2212bce..fcfe6a6 100644
--- a/bsps/arm/rtl22xx/irq/irq.c
+++ b/bsps/arm/rtl22xx/irq/irq.c
@@ -75,10 +75,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   VICIntEnClr = 1 << vector;
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/shared/irq/irq-armv7m.c b/bsps/arm/shared/irq/irq-armv7m.c
index a51fb53..8a1fd75 100644
--- a/bsps/arm/shared/irq/irq-armv7m.c
+++ b/bsps/arm/shared/irq/irq-armv7m.c
@@ -87,10 +87,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   _ARMV7M_NVIC_Clear_enable((int) vector);
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/smdk2410/irq/irq.c b/bsps/arm/smdk2410/irq/irq.c
index b4ea8d3..a293dac 100644
--- a/bsps/arm/smdk2410/irq/irq.c
+++ b/bsps/arm/smdk2410/irq/irq.c
@@ -75,9 +75,10 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/arm/tms570/irq/irq.c b/bsps/arm/tms570/irq/irq.c
index df3f097..e254d4e 100644
--- a/bsps/arm/tms570/irq/irq.c
+++ b/bsps/arm/tms570/irq/irq.c
@@ -156,12 +156,13 @@ rtems_status_code bsp_interrupt_vector_enable(
  * @retval RTEMS_INVALID_ID vector is invalid.
  * @retval RTEMS_SUCCESSFUL interrupt source disabled.
  */
-void bsp_interrupt_vector_disable(
+rtems_status_code bsp_interrupt_vector_disable(
   rtems_vector_number vector
 )
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   TMS570_VIM.REQENACLR[vector >> 5] = 1 << (vector & 0x1f);
+  return RTEMS_SUCCESSFUL;
 }
 
 /**
diff --git a/bsps/i386/shared/irq/irq.c b/bsps/i386/shared/irq/irq.c
index edb7a25..a0745ab 100644
--- a/bsps/i386/shared/irq/irq.c
+++ b/bsps/i386/shared/irq/irq.c
@@ -319,10 +319,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   BSP_irq_disable_at_i8259a(vector);
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/include/bsp/irq-generic.h b/bsps/include/bsp/irq-generic.h
index 8cd771c..1ff1f61 100644
--- a/bsps/include/bsp/irq-generic.h
+++ b/bsps/include/bsp/irq-generic.h
@@ -278,7 +278,7 @@ rtems_status_code bsp_interrupt_vector_is_enabled(
 rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector );
 
 /**
- * @brief Disables the interrupt vector with number @a vector.
+ * @brief Disables the interrupt vector.
  *
  * This function shall disable the vector at the corresponding facility (in
  * most cases the interrupt controller).  It will be called then the last
@@ -286,13 +286,17 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector );
  * example.
  *
  * @note The implementation should use
- * bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)) to valdiate the
- * vector number.
+ * bsp_interrupt_assert( bsp_interrupt_is_valid_vector( vector ) ) to validate
+ * the vector number in ::RTEMS_DEBUG configurations.
+ *
+ * @param vector is the interrupt vector number.
  *
- * @note You must not install or remove an interrupt handler in this function.
- * This may result in a deadlock.
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
+ *
+ * @retval ::RTEMS_UNSATISFIED The request to disable the interrupt vector has
+ *   not been satisfied.
  */
-void bsp_interrupt_vector_disable(rtems_vector_number vector);
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector );
 
 /**
  * @brief Checks if the interrupt is pending.
diff --git a/bsps/lm32/shared/irq/irq.c b/bsps/lm32/shared/irq/irq.c
index 6358eb8..b65c796 100644
--- a/bsps/lm32/shared/irq/irq.c
+++ b/bsps/lm32/shared/irq/irq.c
@@ -66,8 +66,9 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   lm32_interrupt_mask(1 << vector);
+  return RTEMS_SUCCESSFUL;
 }
diff --git a/bsps/m68k/genmcf548x/irq/irq.c b/bsps/m68k/genmcf548x/irq/irq.c
index 5d6446f..cd38b3e 100644
--- a/bsps/m68k/genmcf548x/irq/irq.c
+++ b/bsps/m68k/genmcf548x/irq/irq.c
@@ -116,7 +116,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   volatile uint32_t *imr = vector_to_imr(vector);
   uint32_t bit = vector_to_bit(vector);
@@ -127,6 +127,8 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
   rtems_interrupt_disable(level);
   *imr |= bit;
   rtems_interrupt_enable(level);
+
+  return RTEMS_SUCCESSFUL;
 }
 
 static void_func get_exception_handler(rtems_vector_number vector)
diff --git a/bsps/mips/shared/irq/irq.c b/bsps/mips/shared/irq/irq.c
index 35e1419..70abb2e 100644
--- a/bsps/mips/shared/irq/irq.c
+++ b/bsps/mips/shared/irq/irq.c
@@ -115,9 +115,10 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/powerpc/gen5200/irq/irq.c b/bsps/powerpc/gen5200/irq/irq.c
index ceab91b..9cf78f6 100644
--- a/bsps/powerpc/gen5200/irq/irq.c
+++ b/bsps/powerpc/gen5200/irq/irq.c
@@ -436,7 +436,7 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector)
 /*
  * This function disables a given siu interrupt
  */
-void bsp_interrupt_vector_disable( rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector)
 {
   int base_index = get_siu_irq_base_index( vector);
 
@@ -464,6 +464,8 @@ void bsp_interrupt_vector_disable( rtems_vector_number vector)
 
     rtems_interrupt_enable( level);
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 #if (BENCHMARK_IRQ_PROCESSING == 0)
diff --git a/bsps/powerpc/gen83xx/irq/irq.c b/bsps/powerpc/gen83xx/irq/irq.c
index 6dc58aa..358c269 100644
--- a/bsps/powerpc/gen83xx/irq/irq.c
+++ b/bsps/powerpc/gen83xx/irq/irq.c
@@ -440,7 +440,7 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable( rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector)
 {
   rtems_vector_number vecnum = vector - BSP_IPIC_IRQ_LOWEST_OFFSET;
   const BSP_isrc_rsc_t *rsc_ptr;
@@ -458,6 +458,8 @@ void bsp_interrupt_vector_disable( rtems_vector_number vector)
       rtems_interrupt_enable(level);
     }
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 /*
diff --git a/bsps/powerpc/mpc55xxevb/start/irq.c b/bsps/powerpc/mpc55xxevb/start/irq.c
index 9a68585..a4bf712 100644
--- a/bsps/powerpc/mpc55xxevb/start/irq.c
+++ b/bsps/powerpc/mpc55xxevb/start/irq.c
@@ -201,8 +201,9 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector)
 	return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable( rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector)
 {
 	bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 	mpc55xx_intc_set_priority( vector, MPC55XX_INTC_DISABLED_PRIORITY);
+	return RTEMS_SUCCESSFUL;
 }
diff --git a/bsps/powerpc/mpc8260ads/irq/irq.c b/bsps/powerpc/mpc8260ads/irq/irq.c
index 395e737..9b73979 100644
--- a/bsps/powerpc/mpc8260ads/irq/irq.c
+++ b/bsps/powerpc/mpc8260ads/irq/irq.c
@@ -384,7 +384,7 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqnum)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable( rtems_vector_number irqnum)
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(irqnum));
 
@@ -394,6 +394,8 @@ void bsp_interrupt_vector_disable( rtems_vector_number irqnum)
      */
     BSP_irq_disable_at_cpm (irqnum);
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize()
diff --git a/bsps/powerpc/psim/irq/irq_init.c b/bsps/powerpc/psim/irq/irq_init.c
index 20d38ae..97eb008 100644
--- a/bsps/powerpc/psim/irq/irq_init.c
+++ b/bsps/powerpc/psim/irq/irq_init.c
@@ -151,10 +151,11 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqnum)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable( rtems_vector_number irqnum)
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum)
 {
   /* FIXME: do something */
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(irqnum));
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/powerpc/qemuppc/irq/irq_init.c b/bsps/powerpc/qemuppc/irq/irq_init.c
index 63022ad..5990785 100644
--- a/bsps/powerpc/qemuppc/irq/irq_init.c
+++ b/bsps/powerpc/qemuppc/irq/irq_init.c
@@ -87,10 +87,11 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqnum)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable( rtems_vector_number irqnum)
+rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum)
 {
   /* FIXME: do something */
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(irqnum));
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/powerpc/qoriq/irq/irq.c b/bsps/powerpc/qoriq/irq/irq.c
index ab4e7b5..1992127 100644
--- a/bsps/powerpc/qoriq/irq/irq.c
+++ b/bsps/powerpc/qoriq/irq/irq.c
@@ -137,10 +137,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 	return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
 	bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 	ev_int_set_mask(vector, 1);
+	return RTEMS_SUCCESSFUL;
 }
 
 void bsp_interrupt_dispatch(uintptr_t exception_number)
@@ -403,9 +404,10 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
 	return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
 	pic_vector_enable(vector, VPR_MSK);
+	return RTEMS_SUCCESSFUL;
 }
 
 void bsp_interrupt_dispatch(uintptr_t exception_number)
diff --git a/bsps/powerpc/shared/irq/ppc-irq-generic.c b/bsps/powerpc/shared/irq/ppc-irq-generic.c
index 8f706a0..729e92d 100644
--- a/bsps/powerpc/shared/irq/ppc-irq-generic.c
+++ b/bsps/powerpc/shared/irq/ppc-irq-generic.c
@@ -144,10 +144,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   BSP_disable_irq_at_pic(vector);
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/powerpc/t32mppc/irq/irq.c b/bsps/powerpc/t32mppc/irq/irq.c
index 09f5637..30ecfe5 100644
--- a/bsps/powerpc/t32mppc/irq/irq.c
+++ b/bsps/powerpc/t32mppc/irq/irq.c
@@ -73,9 +73,10 @@ void bsp_interrupt_dispatch(uintptr_t exception_number)
 	}
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
 	bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
+	return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/powerpc/tqm8xx/irq/irq.c b/bsps/powerpc/tqm8xx/irq/irq.c
index 91c3ed4..4251750 100644
--- a/bsps/powerpc/tqm8xx/irq/irq.c
+++ b/bsps/powerpc/tqm8xx/irq/irq.c
@@ -118,7 +118,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
@@ -127,6 +127,8 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
   } else if (BSP_IS_SIU_IRQ(vector)) {
     bsp_irq_disable_at_SIU(vector);
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 /*
diff --git a/bsps/powerpc/virtex/irq/irq_init.c b/bsps/powerpc/virtex/irq/irq_init.c
index f8ca280..031e59c 100644
--- a/bsps/powerpc/virtex/irq/irq_init.c
+++ b/bsps/powerpc/virtex/irq/irq_init.c
@@ -185,13 +185,15 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
   if (BSP_IS_OPBINTC_IRQ(vector)) {
     BSP_irq_disable_at_opbintc(vector);
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 static int C_dispatch_irq_handler(BSP_Exception_frame *frame, unsigned int excNum)
diff --git a/bsps/riscv/griscv/irq/irq.c b/bsps/riscv/griscv/irq/irq.c
index 44251a0..454de41 100644
--- a/bsps/riscv/griscv/irq/irq.c
+++ b/bsps/riscv/griscv/irq/irq.c
@@ -148,11 +148,12 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   int irq = (int)vector;
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   GRLIB_Cpu_Mask_interrupt(irq, bsp_irq_cpu(irq));
+  return RTEMS_SUCCESSFUL;
 }
 
 void bsp_interrupt_get_affinity(
diff --git a/bsps/riscv/riscv/irq/irq.c b/bsps/riscv/riscv/irq/irq.c
index 7672ec6..000f5c5 100644
--- a/bsps/riscv/riscv/irq/irq.c
+++ b/bsps/riscv/riscv/irq/irq.c
@@ -323,7 +323,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
@@ -363,6 +363,8 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
 
     rtems_interrupt_lock_release(&riscv_plic_lock, &lock_context);
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 void bsp_interrupt_set_affinity(
diff --git a/bsps/shared/dev/irq/arm-gicv2.c b/bsps/shared/dev/irq/arm-gicv2.c
index 16169c4..7094db7 100644
--- a/bsps/shared/dev/irq/arm-gicv2.c
+++ b/bsps/shared/dev/irq/arm-gicv2.c
@@ -127,13 +127,14 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   volatile gic_dist *dist = ARM_GIC_DIST;
 
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
   gic_id_disable(dist, vector);
+  return RTEMS_SUCCESSFUL;
 }
 
 static inline uint32_t get_id_count(volatile gic_dist *dist)
diff --git a/bsps/shared/dev/irq/arm-gicv3.c b/bsps/shared/dev/irq/arm-gicv3.c
index 027de85..227f3eb 100644
--- a/bsps/shared/dev/irq/arm-gicv3.c
+++ b/bsps/shared/dev/irq/arm-gicv3.c
@@ -243,7 +243,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
 
@@ -255,6 +255,8 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
       gicv3_get_sgi_ppi(_SMP_Get_current_processor());
     sgi_ppi->icspicer[0] = 1 << (vector % 32);
   }
+
+  return RTEMS_SUCCESSFUL;
 }
 
 static inline uint32_t get_id_count(volatile gic_dist *dist)
diff --git a/bsps/shared/irq/irq-default.c b/bsps/shared/irq/irq-default.c
index f786c71..b7d9d99 100644
--- a/bsps/shared/irq/irq-default.c
+++ b/bsps/shared/irq/irq-default.c
@@ -86,10 +86,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_UNSATISFIED;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   (void)vector;
+  return RTEMS_UNSATISFIED;
 }
 
 rtems_status_code bsp_interrupt_facility_initialize(void)
diff --git a/bsps/shared/irq/irq-enable-disable.c b/bsps/shared/irq/irq-enable-disable.c
index 36b7bab..75d3d5e 100644
--- a/bsps/shared/irq/irq-enable-disable.c
+++ b/bsps/shared/irq/irq-enable-disable.c
@@ -97,7 +97,5 @@ rtems_status_code rtems_interrupt_vector_disable( rtems_vector_number vector )
     return RTEMS_INVALID_ID;
   }
 
-  bsp_interrupt_vector_disable( vector );
-
-  return RTEMS_SUCCESSFUL;
+  return bsp_interrupt_vector_disable( vector );
 }
diff --git a/bsps/sparc/leon3/start/eirq.c b/bsps/sparc/leon3/start/eirq.c
index 810918c..54b4575 100644
--- a/bsps/sparc/leon3/start/eirq.c
+++ b/bsps/sparc/leon3/start/eirq.c
@@ -167,7 +167,7 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
 #if defined(RTEMS_SMP)
   rtems_interrupt_lock_context lock_context;
@@ -192,6 +192,7 @@ void bsp_interrupt_vector_disable(rtems_vector_number vector)
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   BSP_Cpu_Mask_interrupt(vector, _LEON3_Get_current_processor());
 #endif
+  return RTEMS_SUCCESSFUL;
 }
 
 #if defined(RTEMS_SMP)
diff --git a/bsps/sparc/shared/irq/irq-shared.c b/bsps/sparc/shared/irq/irq-shared.c
index 3629a1f..c332cdb 100644
--- a/bsps/sparc/shared/irq/irq-shared.c
+++ b/bsps/sparc/shared/irq/irq-shared.c
@@ -92,10 +92,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
   BSP_Cpu_Mask_interrupt(vector, 0);
+  return RTEMS_SUCCESSFUL;
 }
 #endif
 
diff --git a/bsps/x86_64/amd64/interrupts/idt.c b/bsps/x86_64/amd64/interrupts/idt.c
index fb0b4bc..0fe26c3 100644
--- a/bsps/x86_64/amd64/interrupts/idt.c
+++ b/bsps/x86_64/amd64/interrupts/idt.c
@@ -141,9 +141,10 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
   return RTEMS_SUCCESSFUL;
 }
 
-void bsp_interrupt_vector_disable(rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
 {
   /* XXX */
+  return RTEMS_SUCCESSFUL;
 }
 
 rtems_status_code bsp_interrupt_get_attributes(



More information about the vc mailing list