From db9ae7078d4fe001139d1fbb7816ef71a3d2f2ae Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 26 Jul 2000 21:15:27 +0000 Subject: Patch from Charles-Antoine Gauthier that removes warnings from the network.c file and has slight additions to the configuration file to support Java. --- c/src/lib/libbsp/m68k/mvme167/include/bsp.h | 2 +- c/src/lib/libbsp/m68k/mvme167/network/network.c | 140 ++++++++++++------------ c/src/lib/libbsp/m68k/mvme167/network/uti596.h | 10 +- 3 files changed, 78 insertions(+), 74 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h index 913ca39bec..d1d771fd3a 100644 --- a/c/src/lib/libbsp/m68k/mvme167/include/bsp.h +++ b/c/src/lib/libbsp/m68k/mvme167/include/bsp.h @@ -46,7 +46,7 @@ extern "C" { */ struct rtems_bsdnet_ifconfig; -extern int uti596_attach(struct rtems_bsdnet_ifconfig * pConfig ); +int uti596_attach(struct rtems_bsdnet_ifconfig * pConfig, int attaching ); #define RTEMS_BSP_NETWORK_DRIVER_NAME "uti1" #define RTEMS_BSP_NETWORK_DRIVER_ATTACH uti596_attach diff --git a/c/src/lib/libbsp/m68k/mvme167/network/network.c b/c/src/lib/libbsp/m68k/mvme167/network/network.c index cce24b56be..aaa5095314 100644 --- a/c/src/lib/libbsp/m68k/mvme167/network/network.c +++ b/c/src/lib/libbsp/m68k/mvme167/network/network.c @@ -52,6 +52,8 @@ #include #include +#include +#include #include #include @@ -123,7 +125,7 @@ char uti596initSetup[] = { static unsigned long word_swap ( unsigned long ); static void * malloc_16byte_aligned ( void **, void ** adjusted_pointer, size_t ); -RTEMS_INLINE_ROUTINE void uti596_writePortFunction ( void *, unsigned long ); +RTEMS_INLINE_ROUTINE void uti596_writePortFunction ( volatile void *, unsigned long ); RTEMS_INLINE_ROUTINE void uti596_portReset( void ); static unsigned long uti596_portSelfTest( i596_selftest * ); static int uti596_portDump ( i596_dump_result * ); @@ -285,7 +287,7 @@ static i596_scp * uti596_scp_alloc( * The Motorola manual swapped the high and low registers. */ RTEMS_INLINE_ROUTINE void uti596_writePortFunction( - void * addr, + volatile void * addr, unsigned long cmd ) { @@ -745,7 +747,7 @@ static int uti596_diagnose( void ) diagnose.command = CmdDiagnose; diagnose.status = 0; - uti596_softc.pCurrent_command_status = &diagnose.status; + uti596_softc.pCurrent_command_status = (unsigned short *)&diagnose.status; uti596_addPolledCmd(&diagnose); return (uti596_wait ( &uti596_softc, UTI596_WAIT_FOR_STAT_C )); @@ -774,11 +776,11 @@ static int uti596_configure ( ) { sc->set_conf.cmd.command = CmdConfigure; - memcpy (sc->set_conf.data, uti596initSetup, 14); + memcpy ( (void *)sc->set_conf.data, uti596initSetup, 14); uti596_addPolledCmd( (i596_cmd *) &sc->set_conf); /* Poll for successful command completion */ - sc->pCurrent_command_status = &(sc->set_conf.cmd.status); + sc->pCurrent_command_status = (unsigned short *)&(sc->set_conf.cmd.status); return ( uti596_wait ( sc, UTI596_WAIT_FOR_STAT_C ) ); } @@ -811,7 +813,7 @@ static int uti596_IAsetup ( uti596_addPolledCmd((i596_cmd *)&sc->set_add); /* Poll for successful command completion */ - sc->pCurrent_command_status = &(sc->set_add.cmd.status); + sc->pCurrent_command_status = (unsigned short *)&(sc->set_add.cmd.status); return ( uti596_wait ( sc, UTI596_WAIT_FOR_STAT_C ) ); } @@ -1433,7 +1435,7 @@ void uti596_supplyFD ( */ if (uti596_softc.pLastUnkRFD != I596_NULL ) { - uti596_append(&uti596_softc.pSavedRfdQueue, pRfd); /* Only here! saved Q */ + uti596_append((i596_rfd **)&uti596_softc.pSavedRfdQueue, pRfd); /* Only here! saved Q */ uti596_softc.pEndSavedQueue = pRfd; uti596_softc.savedCount++; uti596_softc.countRFD--; @@ -1480,7 +1482,7 @@ void uti596_supplyFD ( * too late , pLastRfd in use ( or NULL ), * in either case, EL bit has been read, and RNR condition will occur */ - uti596_append( &uti596_softc.pSavedRfdQueue, pRfd); /* save it for RNR */ + uti596_append( (i596_rfd **)&uti596_softc.pSavedRfdQueue, pRfd); /* save it for RNR */ uti596_softc.pEndSavedQueue = pRfd; /* reset end of saved queue */ uti596_softc.savedCount++; @@ -1649,30 +1651,31 @@ void send_packet( ***********************************************************************/ int uti596_attach( - struct rtems_bsdnet_ifconfig * pConfig + struct rtems_bsdnet_ifconfig * pConfig, + int attaching ) { uti596_softc_ *sc = &uti596_softc; /* device dependent data structure */ - struct ifnet * ifp = &sc->arpcom.ac_if; /* ifnet structure */ - int unitNumber; - char *unitName; - char *pAddr; - int addr; + struct ifnet * ifp = (struct ifnet *)&sc->arpcom.ac_if; /* ifnet structure */ + int unitNumber; + char *unitName; + char *pAddr; + int addr; - #ifdef DBG_ATTACH + #ifdef DBG_ATTACH printk(("uti596_attach: begins\n")) - #endif + #endif /* The NIC is not started yet */ sc->started = 0; /* Indicate to ULCS that this is initialized */ - ifp->if_softc = sc; + ifp->if_softc = (void *)sc; sc->pScp = NULL; - /* Parse driver name */ - if ((unitNumber = rtems_bsdnet_parse_driver_name (pConfig, &unitName)) < 0) - return 0; + /* Parse driver name */ + if ((unitNumber = rtems_bsdnet_parse_driver_name (pConfig, &unitName)) < 0) + return 0; ifp->if_name = unitName; ifp->if_unit = unitNumber; @@ -1692,17 +1695,17 @@ int uti596_attach( * should be NULL because buffer memory allocated to hold the * structure values is unrecoverable and would be lost here. */ - if ( addr = nvram->ipaddr ) { - if ( pAddr = malloc ( INET_ADDR_MAX_BUF_SIZE, 0, M_NOWAIT ) ) - pConfig->ip_address = inet_ntop(AF_INET, &addr, pAddr, INET_ADDR_MAX_BUF_SIZE -1 ); - else - rtems_panic("Can't allocate ip_address buffer!\n"); + if ( (addr = nvram->ipaddr) ) { + if ( (pAddr = malloc ( INET_ADDR_MAX_BUF_SIZE, 0, M_NOWAIT )) ) + pConfig->ip_address = (char *)inet_ntop(AF_INET, &addr, pAddr, INET_ADDR_MAX_BUF_SIZE -1 ); + else + rtems_panic("Can't allocate ip_address buffer!\n"); } - if ( addr = nvram->netmask ) { - if ( pAddr = malloc ( INET_ADDR_MAX_BUF_SIZE, 0, M_NOWAIT ) ) - pConfig->ip_netmask = inet_ntop(AF_INET, &addr, pAddr, INET_ADDR_MAX_BUF_SIZE -1 ); - else - rtems_panic("Can't allocate ip_netmask buffer!\n"); + if ( (addr = nvram->netmask) ) { + if ( (pAddr = malloc ( INET_ADDR_MAX_BUF_SIZE, 0, M_NOWAIT )) ) + pConfig->ip_netmask = (char *)inet_ntop(AF_INET, &addr, pAddr, INET_ADDR_MAX_BUF_SIZE -1 ); + else + rtems_panic("Can't allocate ip_netmask buffer!\n"); } /* Ethernet address can be specified in NVRAM, or in the ifconfig @@ -1710,13 +1713,13 @@ int uti596_attach( * (6 bytes) mvme167 manual p. 1-47 */ if ( nvram->enaddr ) { - memcpy (sc->arpcom.ac_enaddr, &nvram->enaddr, ETHER_ADDR_LEN); + memcpy ((void *)sc->arpcom.ac_enaddr, &nvram->enaddr, ETHER_ADDR_LEN); } else if ( pConfig->hardware_address) { - memcpy (sc->arpcom.ac_enaddr, pConfig->hardware_address, ETHER_ADDR_LEN); + memcpy ((void *)sc->arpcom.ac_enaddr, pConfig->hardware_address, ETHER_ADDR_LEN); } else { - memcpy (sc->arpcom.ac_enaddr, (char *)0xFFFC1F2C, ETHER_ADDR_LEN); + memcpy ((void *)sc->arpcom.ac_enaddr, (char *)0xFFFC1F2C, ETHER_ADDR_LEN); } /* Possibly override default acceptance of broadcast packets */ @@ -1800,39 +1803,39 @@ void uti596_init( ) { uti596_softc_ *sc = arg; - struct ifnet *ifp = &sc->arpcom.ac_if; + struct ifnet *ifp = (struct ifnet *)&sc->arpcom.ac_if; if (sc->txDaemonTid == 0) { /* * Initialize the 82596 */ - #ifdef DBG_INIT + #ifdef DBG_INIT printk(("uti596_init: begins\nuti596_init: initializing the 82596...\n")) - #endif + #endif uti596_initialize_hardware(sc); /* * Start driver tasks */ - #ifdef DBG_INIT + #ifdef DBG_INIT printk(("uti596_init: starting driver tasks...\n")) - #endif - sc->txDaemonTid = rtems_bsdnet_newproc ("UTtx", 2*4096, uti596_txDaemon, sc); - sc->rxDaemonTid = rtems_bsdnet_newproc ("UTrx", 2*4096, uti596_rxDaemon, sc); - sc->resetDaemonTid = rtems_bsdnet_newproc ("UTrt", 2*4096, uti596_resetDaemon, sc); + #endif + sc->txDaemonTid = rtems_bsdnet_newproc ("UTtx", 2*4096, uti596_txDaemon, (void *)sc); + sc->rxDaemonTid = rtems_bsdnet_newproc ("UTrx", 2*4096, uti596_rxDaemon, (void *)sc); + sc->resetDaemonTid = rtems_bsdnet_newproc ("UTrt", 2*4096, uti596_resetDaemon, (void *)sc); - #ifdef DBG_INIT + #ifdef DBG_INIT printk(("uti596_init: After attach, status of board = 0x%x\n", sc->scb.status )) - #endif + #endif } /* * Enable receiver */ - #ifdef DBG_INIT - printk(("uti596_init: enabling the reciever...\n" )) - #endif + #ifdef DBG_INIT + printk(("uti596_init: enabling the reciever...\n" )) + #endif sc->scb.command = RX_START; uti596_issueCA ( sc, UTI596_WAIT_FOR_CU_ACCEPT ); @@ -1840,9 +1843,9 @@ void uti596_init( * Tell the world that we're running. */ ifp->if_flags |= IFF_RUNNING; - #ifdef DBG_INIT - printk(("uti596_init: completed.\n")) - #endif + #ifdef DBG_INIT + printk(("uti596_init: completed.\n")) + #endif } /*********************************************************************** @@ -1864,19 +1867,19 @@ void uti596_init( uti596_softc_ *sc ) { - struct ifnet *ifp = &sc->arpcom.ac_if; + struct ifnet *ifp = (struct ifnet *)&sc->arpcom.ac_if; - ifp->if_flags &= ~IFF_RUNNING; + ifp->if_flags &= ~IFF_RUNNING; sc->started = 0; - #ifdef DBG_STOP - printk(("uti596stop: %s: Shutting down ethercard, status was %4.4x.\n", + #ifdef DBG_STOP + printk(("uti596stop: %s: Shutting down ethercard, status was %4.4x.\n", uti596_softc.arpcom.ac_if.if_name, uti596_softc.scb.status)) - #endif + #endif - printk(("Stopping interface\n")) - sc->scb.command = CUC_ABORT | RX_ABORT; - i82596->chan_attn = 0x00000000; + printk(("Stopping interface\n")) + sc->scb.command = CUC_ABORT | RX_ABORT; + i82596->chan_attn = 0x00000000; } @@ -1895,7 +1898,7 @@ void uti596_txDaemon( ) { uti596_softc_ *sc = (uti596_softc_ *)arg; - struct ifnet *ifp = &sc->arpcom.ac_if; + struct ifnet *ifp = (struct ifnet *)&sc->arpcom.ac_if; struct mbuf *m; rtems_event_set events; @@ -1940,7 +1943,7 @@ void uti596_txDaemon( ) { uti596_softc_ *sc = (uti596_softc_ *)arg; - struct ifnet *ifp = &sc->arpcom.ac_if; + struct ifnet *ifp = (struct ifnet *)&sc->arpcom.ac_if; struct mbuf *m; i596_rfd *pRfd; @@ -1978,7 +1981,7 @@ void uti596_txDaemon( * While received frames are available. Note that the frame may be * a fragment, so it is NOT a complete packet. */ - pRfd = uti596_dequeue( &sc->pInboundFrameQueue); + pRfd = uti596_dequeue( (i596_rfd **)&sc->pInboundFrameQueue); while ( pRfd && pRfd != I596_NULL && pRfd -> stat & STAT_C ) @@ -2004,7 +2007,7 @@ void uti596_txDaemon( m->m_pkthdr.rcvif = ifp; /* move everything into an mbuf */ - memcpy(m->m_data, pRfd->data, pkt_len); + memcpy(m->m_data, (const char *)pRfd->data, pkt_len); m->m_len = m->m_pkthdr.len = pkt_len - sizeof(struct ether_header) - 4; /* move the header to an mbuf */ @@ -2059,7 +2062,7 @@ void uti596_txDaemon( uti596_supplyFD ( pRfd ); /* Return RFD to RFA. */ _ISR_Enable(level); - pRfd = uti596_dequeue( &sc->pInboundFrameQueue); /* grab next frame */ + pRfd = uti596_dequeue( (i596_rfd **)&sc->pInboundFrameQueue); /* grab next frame */ } /* end while */ } /* end for() */ @@ -2227,7 +2230,7 @@ void uti596_resetDaemon( /* the rfd next link is stored with upper and lower words swapped so read it that way */ pIsrRfd = (i596_rfd *) word_swap ((unsigned long)uti596_softc.pBeginRFA->next); /* the append destroys the link */ - uti596_append( &uti596_softc.pInboundFrameQueue , uti596_softc.pBeginRFA ); + uti596_append( (i596_rfd **)&uti596_softc.pInboundFrameQueue , uti596_softc.pBeginRFA ); /* * if we have just received the a frame in the last unknown RFD, @@ -2461,7 +2464,7 @@ void uti596_resetDaemon( #endif uti596_softc.pEndRFA -> next = I596_NULL; /* added feb 16 */ } - uti596_append( &uti596_softc.pSavedRfdQueue, uti596_softc.pLastUnkRFD ); + uti596_append( (i596_rfd **)&uti596_softc.pSavedRfdQueue, uti596_softc.pLastUnkRFD ); uti596_softc.savedCount++; uti596_softc.pEndSavedQueue = uti596_softc.pLastUnkRFD; uti596_softc.countRFD--; /* It was not in the RFA */ @@ -2575,7 +2578,8 @@ void uti596_resetDaemon( static int uti596_ioctl( struct ifnet *ifp, - int command, caddr_t data + int command, + caddr_t data ) { uti596_softc_ *sc = ifp->if_softc; @@ -2602,13 +2606,13 @@ static int uti596_ioctl( case IFF_UP: printk(("IFF_UP\n")) - uti596_init (sc); + uti596_init ( (void *)sc); break; case IFF_UP | IFF_RUNNING: printk(("IFF_UP and RUNNING\n")) uti596_stop (sc); - uti596_init (sc); + uti596_init ( (void *)sc); break; default: @@ -3076,4 +3080,4 @@ static void print_echo( } } -#endif \ No newline at end of file +#endif diff --git a/c/src/lib/libbsp/m68k/mvme167/network/uti596.h b/c/src/lib/libbsp/m68k/mvme167/network/uti596.h index d1d3d1ae2e..556945a5fe 100644 --- a/c/src/lib/libbsp/m68k/mvme167/network/uti596.h +++ b/c/src/lib/libbsp/m68k/mvme167/network/uti596.h @@ -208,7 +208,7 @@ typedef volatile struct i596_selftest { typedef volatile struct i596_cmd { unsigned short status; unsigned short command; - struct i596_cmd *next; + volatile struct i596_cmd *next; } i596_cmd; typedef volatile struct i596_nop { @@ -227,7 +227,7 @@ typedef volatile struct i596_configure { typedef volatile struct i596_tx { i596_cmd cmd; - struct i596_tbd *pTbd; + volatile struct i596_tbd *pTbd; unsigned short count; unsigned short pad; char data[6]; @@ -250,7 +250,7 @@ typedef volatile struct i596_dump { typedef volatile struct i596_tbd { unsigned short size; unsigned short pad; - struct i596_tbd *next; + volatile struct i596_tbd *next; char *data; } i596_tbd; @@ -261,7 +261,7 @@ typedef volatile struct i596_tbd { typedef volatile struct i596_rbd { unsigned short count; unsigned short offset; - struct i596_rbd *next; + volatile struct i596_rbd *next; char *data; unsigned short size; unsigned short pad; @@ -273,7 +273,7 @@ typedef volatile struct i596_rbd { typedef volatile struct i596_rfd { unsigned short stat; unsigned short cmd; - struct i596_rfd *next; + volatile struct i596_rfd *next; i596_rbd *pRbd; unsigned short count; unsigned short size; -- cgit v1.2.3