[PATCH 8/8] sparc: Remove BSP specifics from <pci/irq.h>

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Jan 2 14:21:15 UTC 2018


Update #3254.
Update #3260.
Update #3269.
---
 c/src/lib/libbsp/sparc/erc32/include/bsp.h |  7 -------
 c/src/lib/libbsp/sparc/leon2/include/bsp.h |  7 -------
 c/src/lib/libbsp/sparc/leon3/include/bsp.h |  7 -------
 cpukit/libpci/pci/irq.h                    | 22 ++++++++++++++++------
 4 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/c/src/lib/libbsp/sparc/erc32/include/bsp.h b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
index ec2f72352a..71719f9cf3 100644
--- a/c/src/lib/libbsp/sparc/erc32/include/bsp.h
+++ b/c/src/lib/libbsp/sparc/erc32/include/bsp.h
@@ -177,13 +177,6 @@ void rtems_bsp_delay(int usecs);
 void console_outbyte_polled(int  port, unsigned char ch);
 int console_inbyte_nonblocking(int port);
 
-/* BSP PCI Interrupt support - to avoid warnings by libpci */
-#define BSP_PCI_shared_interrupt_register    BSP_shared_interrupt_register
-#define BSP_PCI_shared_interrupt_unregister  BSP_shared_interrupt_unregister
-#define BSP_PCI_shared_interrupt_unmask      BSP_shared_interrupt_unmask
-#define BSP_PCI_shared_interrupt_mask        BSP_shared_interrupt_mask
-#define BSP_PCI_shared_interrupt_clear       BSP_shared_interrupt_clear
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/c/src/lib/libbsp/sparc/leon2/include/bsp.h b/c/src/lib/libbsp/sparc/leon2/include/bsp.h
index 77d7d78e13..2028ba0db3 100644
--- a/c/src/lib/libbsp/sparc/leon2/include/bsp.h
+++ b/c/src/lib/libbsp/sparc/leon2/include/bsp.h
@@ -201,13 +201,6 @@ void rtems_bsp_delay(int usecs);
  */
 int cchip1_register(void);
 
-/* BSP PCI Interrupt support */
-#define BSP_PCI_shared_interrupt_register    BSP_shared_interrupt_register
-#define BSP_PCI_shared_interrupt_unregister  BSP_shared_interrupt_unregister
-#define BSP_PCI_shared_interrupt_unmask      BSP_shared_interrupt_unmask
-#define BSP_PCI_shared_interrupt_mask        BSP_shared_interrupt_mask
-#define BSP_PCI_shared_interrupt_clear       BSP_shared_interrupt_clear
-
 /* AT697 has PCI defined as big endian */
 #define BSP_PCI_BIG_ENDIAN
 
diff --git a/c/src/lib/libbsp/sparc/leon3/include/bsp.h b/c/src/lib/libbsp/sparc/leon3/include/bsp.h
index ef597cb704..3fda4edc66 100644
--- a/c/src/lib/libbsp/sparc/leon3/include/bsp.h
+++ b/c/src/lib/libbsp/sparc/leon3/include/bsp.h
@@ -233,13 +233,6 @@ extern const unsigned char LEON3_mp_irq;
 extern const unsigned char LEON3_irq_to_cpu[32];
 #endif
 
-/* BSP PCI Interrupt support */
-#define BSP_PCI_shared_interrupt_register    BSP_shared_interrupt_register
-#define BSP_PCI_shared_interrupt_unregister  BSP_shared_interrupt_unregister
-#define BSP_PCI_shared_interrupt_unmask      BSP_shared_interrupt_unmask
-#define BSP_PCI_shared_interrupt_mask        BSP_shared_interrupt_mask
-#define BSP_PCI_shared_interrupt_clear       BSP_shared_interrupt_clear
-
 /* Common driver build-time configurations. On small systems undefine
  * [DRIVER]_INFO_AVAIL to avoid info routines get dragged in. It is good
  * for debugging and printing information about the system, but makes the
diff --git a/cpukit/libpci/pci/irq.h b/cpukit/libpci/pci/irq.h
index 6c84977d45..7622201fd6 100644
--- a/cpukit/libpci/pci/irq.h
+++ b/cpukit/libpci/pci/irq.h
@@ -14,10 +14,18 @@
 #ifndef __PCI_IRQ_H__
 #define __PCI_IRQ_H__
 
-#include <bsp.h>
 #include <rtems/irq-extension.h>
 #include <rtems/score/basedefs.h>
 
+/*
+ * FIXME: This should be available via the IRQ extensions API.
+ *
+ * https://devel.rtems.org/ticket/3269
+ */
+void BSP_shared_interrupt_clear(int irq);
+void BSP_shared_interrupt_unmask(int irq);
+void BSP_shared_interrupt_mask(int irq);
+
 /* PCI Handler (ISR) called when IRQ is generated by any of the PCI devices
  * connected to the same PCI IRQ Pin. This has been defined the same way as
  * rtems_interrupt_handler in order for BSPs to "direct-map" the register
@@ -43,7 +51,9 @@ extern int pci_dev_irq(pci_dev_t dev);
 RTEMS_INLINE_ROUTINE int pci_interrupt_register(int irq, const char *info,
 						pci_isr isr, void *arg)
 {
-	return BSP_PCI_shared_interrupt_register(irq, info, isr, arg);
+	return rtems_interrupt_handler_install(irq, info,
+					       RTEMS_INTERRUPT_SHARED, isr,
+					       arg);
 }
 
 /* Unregister previously registered shared PCI IRQ handler
@@ -56,7 +66,7 @@ RTEMS_INLINE_ROUTINE int pci_interrupt_register(int irq, const char *info,
 RTEMS_INLINE_ROUTINE int pci_interrupt_unregister(int irq, pci_isr isr,
 						  void *arg)
 {
-	return BSP_PCI_shared_interrupt_unregister(irq, isr, arg);
+	return rtems_interrupt_handler_remove(irq, isr, arg);
 }
 
 /* Enable shared PCI IRQ handler. This function will unmask the interrupt
@@ -72,7 +82,7 @@ RTEMS_INLINE_ROUTINE int pci_interrupt_unregister(int irq, pci_isr isr,
  */
 RTEMS_INLINE_ROUTINE void pci_interrupt_unmask(int irq)
 {
-	BSP_PCI_shared_interrupt_unmask(irq);
+	BSP_shared_interrupt_unmask(irq);
 }
 
 /* Disable shared PCI IRQ handler. This function will mask the interrupt
@@ -88,7 +98,7 @@ RTEMS_INLINE_ROUTINE void pci_interrupt_unmask(int irq)
  */
 RTEMS_INLINE_ROUTINE void pci_interrupt_mask(int irq)
 {
-	BSP_PCI_shared_interrupt_mask(irq);
+	BSP_shared_interrupt_mask(irq);
 }
 
 /* Acknowledge the interrupt controller by writing to the interrupt controller.
@@ -102,7 +112,7 @@ RTEMS_INLINE_ROUTINE void pci_interrupt_mask(int irq)
  */
 RTEMS_INLINE_ROUTINE void pci_interrupt_clear(int irq)
 {
-	BSP_PCI_shared_interrupt_clear(irq);
+	BSP_shared_interrupt_clear(irq);
 }
 
 #endif /* !__PCI_IRQ_H__ */
-- 
2.12.3



More information about the devel mailing list