diff options
author | Vipul Nayyar <nayyar_vipul@yahoo.com> | 2013-07-26 20:23:39 +0530 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-29 09:07:19 +0200 |
commit | 2bdcf4fd511941dab9ef0db0790363dedfaf622f (patch) | |
tree | bd5fd57c1b34098691a332fb2012506795617b0e /c/src/lib/libbsp/i386/pc386/wd8003 | |
parent | score: Move object content to public API (diff) | |
download | rtems-2bdcf4fd511941dab9ef0db0790363dedfaf622f.tar.bz2 |
Updated legacy code in i386 pc386
Diffstat (limited to 'c/src/lib/libbsp/i386/pc386/wd8003')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c | 44 |
1 files changed, 16 insertions, 28 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c b/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c index d26464c6e8..64b7fda174 100644 --- a/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c +++ b/c/src/lib/libbsp/i386/pc386/wd8003/wd8003.c @@ -18,6 +18,7 @@ #include <errno.h> #include <rtems/error.h> #include <rtems/rtems_bsdnet.h> +#include <assert.h> #include <sys/param.h> #include <sys/mbuf.h> @@ -73,7 +74,6 @@ */ struct wd_softc { struct arpcom arpcom; - rtems_irq_connect_data irqInfo; struct mbuf **rxMbuf; struct mbuf **txMbuf; int acceptBroadcast; @@ -84,6 +84,7 @@ struct wd_softc { int txBdActiveCount; rtems_id rxDaemonTid; rtems_id txDaemonTid; + rtems_vector_number name; unsigned int port; unsigned char *base; @@ -127,7 +128,7 @@ static struct wd_softc wd_softc[NWDDRIVER]; * WD interrupt handler */ static void -wd8003Enet_interrupt_handler (void *unused) +wd8003Enet_interrupt_handler (void * unused) { unsigned int tport; unsigned char status, status2; @@ -169,19 +170,6 @@ wd8003Enet_interrupt_handler (void *unused) } -static void nopOn(const rtems_irq_connect_data* notUsed) -{ - /* - * code should be moved from wd8003Enet_initialize_hardware - * to this location - */ -} - -static int wdIsOn(const rtems_irq_connect_data* irq) -{ - return BSP_irq_enabled_at_i8259s (irq->name); -} - /* * Initialize the ethernet hardware */ @@ -191,7 +179,7 @@ wd8003Enet_initialize_hardware (struct wd_softc *sc) int i1, ultra; char cc1, cc2; unsigned char temp; - rtems_status_code st; + rtems_status_code status; unsigned int tport; unsigned char *hwaddr; @@ -257,15 +245,15 @@ wd8003Enet_initialize_hardware (struct wd_softc *sc) /* * Set up interrupts */ - sc->irqInfo.hdl = wd8003Enet_interrupt_handler; - sc->irqInfo.on = nopOn; - sc->irqInfo.off = nopOn; - sc->irqInfo.isOn = wdIsOn; - - st = BSP_install_rtems_irq_handler (&sc->irqInfo); - if (!st) - rtems_panic ("Can't attach WD interrupt handler for irq %d\n", - sc->irqInfo.name); + + status = rtems_interrupt_handler_install( + sc->name, + "wd8003", + RTEMS_INTERRUPT_UNIQUE, + wd8003Enet_interrupt_handler, + NULL + ); + assert(status == RTEMS_SUCCESSFUL); } static void @@ -397,7 +385,7 @@ sendpacket (struct ifnet *ifp, struct mbuf *m) /* * Driver transmit daemon */ -void +static void wd_txDaemon (void *arg) { struct wd_softc *sc = (struct wd_softc *)arg; @@ -607,9 +595,9 @@ rtems_wd_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach) mtu = ETHERMTU; if (config->irno) - sc->irqInfo.name = config->irno; + sc->name = config->irno; else - sc->irqInfo.name = 5; + sc->name = 5; if (config->port) sc->port = config->port; |