[PATCH] classic networking: do not reference

Pavel Pisa ppisa4lists at pikron.com
Thu Aug 4 21:43:50 UTC 2016


This change is required to build RTEMS with classic "--enable-networking"
and link applications/tests which reference RTEMS_BSP_NETWORK_DRIVER_ATTACH.
---
 c/src/lib/libbsp/i386/pc386/ne2000/ne2000.c | 10 +---------
 c/src/libchip/network/dec21140.c            |  7 +------
 c/src/libchip/network/elnk.c                | 12 +-----------
 c/src/libchip/network/if_dc.c               |  9 +--------
 c/src/libchip/network/if_fxp.c              |  7 +------
 5 files changed, 5 insertions(+), 40 deletions(-)

 Discussion: I have stumbled over problem to build some external tests
 for i386 because original integrated Ethernet drivers cannot be linked
 into application. Even that libbsd is a future goal it worth to correct
 this at least for testing. It seems that original i8259s concept
 handling is finally overcome by generic approach.
 I hope that field isOn is no longer referenced by any architecture
 or if referenced, that NULL is valid option.
 
 I am leaving for next week so I would not push this change probably.

 In the longer perspective, I think that even for these deprecated drivers
 rtems_interrupt_handler_install generic concept could/should be used.
 If it is agreed that it is right change then I can prepare patch
 for that in future.

 But I think that correction of the builds in meantime worth
 to be pushed.

diff --git a/c/src/lib/libbsp/i386/pc386/ne2000/ne2000.c b/c/src/lib/libbsp/i386/pc386/ne2000/ne2000.c
index 5a13b29..d757e27 100644
--- a/c/src/lib/libbsp/i386/pc386/ne2000/ne2000.c
+++ b/c/src/lib/libbsp/i386/pc386/ne2000/ne2000.c
@@ -428,14 +428,6 @@ ne_interrupt_off (const rtems_irq_connect_data *irq)
     outport_byte (sc->port + IMR, 0);
 }
 
-/* Return whether NE2000 interrupts are on.  */
-
-static int
-ne_interrupt_is_on (const rtems_irq_connect_data *irq)
-{
-  return BSP_irq_enabled_at_i8259s (irq->name);
-}
-
 /* Initialize the NE2000 hardware.  */
 
 static void
@@ -526,7 +518,7 @@ ne_init_irq_handler(int irno)
   irq.handle = (rtems_irq_hdl) irno;
   irq.on = ne_interrupt_on;
   irq.off = ne_interrupt_off;
-  irq.isOn = ne_interrupt_is_on;
+  irq.isOn = NULL;
 
   if (!BSP_install_rtems_irq_handler (&irq))
     rtems_panic ("Can't attach NE interrupt handler for irq %d\n", irno);
diff --git a/c/src/libchip/network/dec21140.c b/c/src/libchip/network/dec21140.c
index aa6be29..3bfc91d 100644
--- a/c/src/libchip/network/dec21140.c
+++ b/c/src/libchip/network/dec21140.c
@@ -345,11 +345,6 @@ static void no_op(const rtems_irq_connect_data* irq)
    return;
 }
 
-static int dec21140IsOn(const rtems_irq_connect_data* irq)
-{
-  return BSP_irq_enabled_at_i8259s (irq->name);
-}
-
 /*
  * DEC21140 interrupt handler
  */
@@ -539,7 +534,7 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
    sc->irqInfo.hdl  = (rtems_irq_hdl)dec21140Enet_interrupt_handler_entry;
    sc->irqInfo.on   = no_op;
    sc->irqInfo.off  = no_op;
-   sc->irqInfo.isOn = dec21140IsOn;
+   sc->irqInfo.isOn = NULL;
 
 #ifdef DEC_DEBUG
    printk( "dec2114x: Installing IRQ %d\n", sc->irqInfo.name );
diff --git a/c/src/libchip/network/elnk.c b/c/src/libchip/network/elnk.c
index 06ece5b..1c63e35 100644
--- a/c/src/libchip/network/elnk.c
+++ b/c/src/libchip/network/elnk.c
@@ -1875,16 +1875,6 @@ static void no_op(const rtems_irq_connect_data* irq)
 
 
 
-static int elnkIsOn(const rtems_irq_connect_data* irq)
-{
-  return BSP_irq_enabled_at_i8259s (irq->name);
-}
-
-
-
-
-
-
 static void
 elnk_start_txchain( struct elnk_softc *sc, struct TXMD *chainhead )
 {
@@ -2214,7 +2204,7 @@ elnk_initialize_hardware (struct elnk_softc *sc)
    sc->irqInfo.hdl  = (rtems_irq_hdl)elnk_interrupt_handler_entry;
    sc->irqInfo.on   = no_op;
    sc->irqInfo.off  = no_op;
-   sc->irqInfo.isOn = elnkIsOn;
+   sc->irqInfo.isOn = NULL;
 
    if( sc->irqInfo.name != 255 )
    {
diff --git a/c/src/libchip/network/if_dc.c b/c/src/libchip/network/if_dc.c
index 1563be5..24f2fc1 100644
--- a/c/src/libchip/network/if_dc.c
+++ b/c/src/libchip/network/if_dc.c
@@ -1893,13 +1893,6 @@ nop(const rtems_irq_connect_data* unused)
 {
 }
 
-static int
-decISON(const rtems_irq_connect_data* irq)
-{
-	return (BSP_irq_enabled_at_i8259s(irq->name));
-}
-
-
 /*
  * Attach the interface. Allocate softc structures, do ifmedia
  * setup and ethernet/BPF attach.
@@ -2023,7 +2016,7 @@ rtems_dc_driver_attach(struct rtems_bsdnet_ifconfig *config, int attaching)
 	sc->irqInfo.handle = (void *)sc; /* new parameter */
 	sc->irqInfo.on = nop;
 	sc->irqInfo.off = nop;
-	sc->irqInfo.isOn = decISON;
+	sc->irqInfo.isOn = NULL;
 
 #ifdef BSP_SHARED_HANDLER_SUPPORT
 	rc = BSP_install_rtems_shared_irq_handler( &sc->irqInfo );
diff --git a/c/src/libchip/network/if_fxp.c b/c/src/libchip/network/if_fxp.c
index ce59db1..35d7c07 100644
--- a/c/src/libchip/network/if_fxp.c
+++ b/c/src/libchip/network/if_fxp.c
@@ -431,11 +431,6 @@ static void nopOn(const rtems_irq_connect_data* notUsed)
    */
 }
 
-static int fxpIsOn(const rtems_irq_connect_data* irq)
-{
-  return BSP_irq_enabled_at_i8259s (irq->name);
-}
-
 int
 rtems_fxp_attach(struct rtems_bsdnet_ifconfig *config, int attaching)
 {
@@ -1933,7 +1928,7 @@ rtems_task_wake_after(100);
 		sc->irqInfo.hdl = (rtems_irq_hdl)fxp_intr;
 		sc->irqInfo.on  = nopOn;
 		sc->irqInfo.off = nopOn;
-		sc->irqInfo.isOn = fxpIsOn;
+		sc->irqInfo.isOn = NULL;
 		rv = BSP_install_rtems_irq_handler (&sc->irqInfo);
 		if (rv != 1) {
 		  rtems_panic ("Can't attach fxp interrupt handler for irq %d\n",
-- 
1.9.1



More information about the devel mailing list