From d997b26243cfe0d1f7edabb2bd3874340539b60d Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Mon, 7 Jan 2013 23:51:42 +0100 Subject: [PATCH] ipro1000: Haiku changes to have it compiled again. * a lot of gcc2 specific changes... --- .../network/ipro1000/dev/e1000/Jamfile | 1 + .../network/ipro1000/dev/e1000/if_em.c | 94 +++++++++++++------ .../network/ipro1000/dev/e1000/if_em.h | 2 + .../network/ipro1000/dev/e1000/if_lem.c | 43 +++++++-- .../network/ipro1000/dev/e1000/if_lem.h | 2 + .../drivers/network/ipro1000/if_compat.h | 6 -- 6 files changed, 107 insertions(+), 41 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/Jamfile b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/Jamfile index 3f8ea6f32c..cca75a3218 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/Jamfile +++ b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/Jamfile @@ -18,6 +18,7 @@ KernelAddon ipro1000 : e1000_82571.c e1000_82575.c e1000_api.c + e1000_i210.c e1000_ich8lan.c e1000_mac.c e1000_manage.c diff --git a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.c b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.c index 856aac7da5..b58abd330f 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.c +++ b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.c @@ -40,9 +40,11 @@ #include #include +#ifndef __HAIKU__ #if __FreeBSD_version >= 800000 #include #endif +#endif #include #include #include @@ -78,7 +80,9 @@ #include #include +#ifndef __HAIKU__ #include +#endif #include #include @@ -472,10 +476,12 @@ em_attach(device_t dev) INIT_DEBUGOUT("em_attach: begin"); +#ifndef __HAIKU__ if (resource_disabled("em", device_get_unit(dev))) { device_printf(dev, "Disabled by device hint\n"); return (ENXIO); } +#endif adapter = device_get_softc(dev); adapter->dev = adapter->osdep.dev = dev; @@ -724,8 +730,10 @@ em_attach(device_t dev) adapter->ifp->if_drv_flags &= ~IFF_DRV_RUNNING; adapter->ifp->if_drv_flags |= IFF_DRV_OACTIVE; +#ifndef __HAIKU__ adapter->led_dev = led_create(em_led_func, adapter, device_get_nameunit(dev)); +#endif #ifdef DEV_NETMAP em_netmap_attach(adapter); #endif /* DEV_NETMAP */ @@ -776,9 +784,10 @@ em_detach(device_t dev) if (ifp->if_capenable & IFCAP_POLLING) ether_poll_deregister(ifp); #endif - +#ifndef __HAIKU__ if (adapter->led_dev != NULL) led_destroy(adapter->led_dev); +#endif EM_CORE_LOCK(adapter); adapter->in_detach = 1; @@ -863,7 +872,8 @@ em_resume(device_t dev) if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING) && adapter->link_active) { - for (int i = 0; i < adapter->num_queues; i++, txr++) { + int i; + for (i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -967,11 +977,12 @@ em_mq_start(struct ifnet *ifp, struct mbuf *m) static void em_qflush(struct ifnet *ifp) { + int i; struct adapter *adapter = ifp->if_softc; struct tx_ring *txr = adapter->tx_rings; struct mbuf *m; - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); while ((m = buf_ring_dequeue_sc(txr->br)) != NULL) m_freem(m); @@ -1654,7 +1665,8 @@ em_handle_link(void *context, int pending) E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK | E1000_IMS_LSC); if (adapter->link_active) { - for (int i = 0; i < adapter->num_queues; i++, txr++) { + int i; + for (i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -2214,6 +2226,7 @@ em_set_multi(struct adapter *adapter) static void em_local_timer(void *arg) { + int i; struct adapter *adapter = arg; struct ifnet *ifp = adapter->ifp; struct tx_ring *txr = adapter->tx_rings; @@ -2241,7 +2254,7 @@ em_local_timer(void *arg) ** can be done without the lock because its RO ** and the HUNG state will be static if set. */ - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (i = 0; i < adapter->num_queues; i++, txr++) { if ((txr->queue_status == EM_QUEUE_HUNG) && (adapter->pause_frames == 0)) goto hung; @@ -2332,13 +2345,14 @@ em_update_link_status(struct adapter *adapter) ifp->if_baudrate = adapter->link_speed * 1000000; if_link_state_change(ifp, LINK_STATE_UP); } else if (!link_check && (adapter->link_active == 1)) { + int i; ifp->if_baudrate = adapter->link_speed = 0; adapter->link_duplex = 0; if (bootverbose) device_printf(dev, "Link is Down\n"); adapter->link_active = 0; /* Link down, disable watchdog */ - for (int i = 0; i < adapter->num_queues; i++, txr++) + for (i = 0; i < adapter->num_queues; i++, txr++) txr->queue_status = EM_QUEUE_IDLE; if_link_state_change(ifp, LINK_STATE_DOWN); } @@ -2356,6 +2370,7 @@ em_update_link_status(struct adapter *adapter) static void em_stop(void *arg) { + int i; struct adapter *adapter = arg; struct ifnet *ifp = adapter->ifp; struct tx_ring *txr = adapter->tx_rings; @@ -2372,7 +2387,7 @@ em_stop(void *arg) ifp->if_drv_flags |= IFF_DRV_OACTIVE; /* Unarm watchdog timer. */ - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); txr->queue_status = EM_QUEUE_IDLE; EM_TX_UNLOCK(txr); @@ -2521,6 +2536,7 @@ em_allocate_legacy(struct adapter *adapter) int em_allocate_msix(struct adapter *adapter) { + int i; device_t dev = adapter->dev; struct tx_ring *txr = adapter->tx_rings; struct rx_ring *rxr = adapter->rx_rings; @@ -2531,7 +2547,7 @@ em_allocate_msix(struct adapter *adapter) E1000_WRITE_REG(&adapter->hw, E1000_IMC, 0xffffffff); /* First set up ring resources */ - for (int i = 0; i < adapter->num_queues; i++, txr++, rxr++) { + for (i = 0; i < adapter->num_queues; i++, txr++, rxr++) { /* RX ring */ rid = vector + 1; @@ -2635,6 +2651,7 @@ em_allocate_msix(struct adapter *adapter) static void em_free_pci_resources(struct adapter *adapter) { + int i; device_t dev = adapter->dev; struct tx_ring *txr; struct rx_ring *rxr; @@ -2644,7 +2661,7 @@ em_free_pci_resources(struct adapter *adapter) /* ** Release all the queue interrupt resources: */ - for (int i = 0; i < adapter->num_queues; i++) { + for (i = 0; i < adapter->num_queues; i++) { txr = &adapter->tx_rings[i]; rxr = &adapter->rx_rings[i]; /* an early abort? */ @@ -3115,6 +3132,7 @@ em_dma_free(struct adapter *adapter, struct em_dma_alloc *dma) static int em_allocate_queues(struct adapter *adapter) { + int i; device_t dev = adapter->dev; struct tx_ring *txr = NULL; struct rx_ring *rxr = NULL; @@ -3147,7 +3165,7 @@ em_allocate_queues(struct adapter *adapter) * possibility that things fail midcourse and we need to * undo memory gracefully */ - for (int i = 0; i < adapter->num_queues; i++, txconf++) { + for (i = 0; i < adapter->num_queues; i++, txconf++) { /* Set up some basics */ txr = &adapter->tx_rings[i]; txr->adapter = adapter; @@ -3174,10 +3192,12 @@ em_allocate_queues(struct adapter *adapter) error = ENOMEM; goto err_tx_desc; } +#ifndef __HAIKU__ #if __FreeBSD_version >= 800000 /* Allocate a buf ring */ txr->br = buf_ring_alloc(4096, M_DEVBUF, M_WAITOK, &txr->tx_mtx); +#endif #endif } @@ -3186,7 +3206,7 @@ em_allocate_queues(struct adapter *adapter) */ rsize = roundup2(adapter->num_rx_desc * sizeof(struct e1000_rx_desc), EM_DBA_ALIGN); - for (int i = 0; i < adapter->num_queues; i++, rxconf++) { + for (i = 0; i < adapter->num_queues; i++, rxconf++) { rxr = &adapter->rx_rings[i]; rxr->adapter = adapter; rxr->me = i; @@ -3225,8 +3245,10 @@ err_tx_desc: em_dma_free(adapter, &txr->txdma); free(adapter->rx_rings, M_DEVBUF); rx_fail: +#ifndef __HAIKU__ #if __FreeBSD_version >= 800000 buf_ring_free(txr->br, M_DEVBUF); +#endif #endif free(adapter->tx_rings, M_DEVBUF); fail: @@ -3372,9 +3394,10 @@ em_setup_transmit_ring(struct tx_ring *txr) static void em_setup_transmit_structures(struct adapter *adapter) { + int i; struct tx_ring *txr = adapter->tx_rings; - for (int i = 0; i < adapter->num_queues; i++, txr++) + for (i = 0; i < adapter->num_queues; i++, txr++) em_setup_transmit_ring(txr); return; @@ -3388,13 +3411,14 @@ em_setup_transmit_structures(struct adapter *adapter) static void em_initialize_transmit_unit(struct adapter *adapter) { + int i; struct tx_ring *txr = adapter->tx_rings; struct e1000_hw *hw = &adapter->hw; u32 tctl, tarc, tipg = 0; INIT_DEBUGOUT("em_initialize_transmit_unit: begin"); - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (i = 0; i < adapter->num_queues; i++, txr++) { u64 bus_addr = txr->txdma.dma_paddr; /* Base and Len of TX Ring */ E1000_WRITE_REG(hw, E1000_TDLEN(i), @@ -3480,9 +3504,10 @@ em_initialize_transmit_unit(struct adapter *adapter) static void em_free_transmit_structures(struct adapter *adapter) { + int i; struct tx_ring *txr = adapter->tx_rings; - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); em_free_transmit_buffers(txr); em_dma_free(adapter, &txr->txdma); @@ -3501,6 +3526,7 @@ em_free_transmit_structures(struct adapter *adapter) static void em_free_transmit_buffers(struct tx_ring *txr) { + int i; struct adapter *adapter = txr->adapter; struct em_buffer *txbuf; @@ -3509,7 +3535,7 @@ em_free_transmit_buffers(struct tx_ring *txr) if (txr->tx_buffers == NULL) return; - for (int i = 0; i < adapter->num_tx_desc; i++) { + for (i = 0; i < adapter->num_tx_desc; i++) { txbuf = &txr->tx_buffers[i]; if (txbuf->m_head != NULL) { bus_dmamap_sync(txr->txtag, txbuf->map, @@ -3531,9 +3557,11 @@ em_free_transmit_buffers(struct tx_ring *txr) txbuf->map = NULL; } } +#ifndef __HAIKU__ #if __FreeBSD_version >= 800000 if (txr->br != NULL) buf_ring_free(txr->br, M_DEVBUF); +#endif #endif if (txr->tx_buffers != NULL) { free(txr->tx_buffers, M_DEVBUF); @@ -3989,6 +4017,7 @@ update: static int em_allocate_receive_buffers(struct rx_ring *rxr) { + int i; struct adapter *adapter = rxr->adapter; device_t dev = adapter->dev; struct em_buffer *rxbuf; @@ -4020,7 +4049,7 @@ em_allocate_receive_buffers(struct rx_ring *rxr) } rxbuf = rxr->rx_buffers; - for (int i = 0; i < adapter->num_rx_desc; i++, rxbuf++) { + for (i = 0; i < adapter->num_rx_desc; i++, rxbuf++) { rxbuf = &rxr->rx_buffers[i]; error = bus_dmamap_create(rxr->rxtag, BUS_DMA_NOWAIT, &rxbuf->map); @@ -4047,6 +4076,7 @@ fail: static int em_setup_receive_ring(struct rx_ring *rxr) { + int i, j; struct adapter *adapter = rxr->adapter; struct em_buffer *rxbuf; bus_dma_segment_t seg[1]; @@ -4069,7 +4099,7 @@ em_setup_receive_ring(struct rx_ring *rxr) /* ** Free current RX buffer structs and their mbufs */ - for (int i = 0; i < adapter->num_rx_desc; i++) { + for (i = 0; i < adapter->num_rx_desc; i++) { rxbuf = &rxr->rx_buffers[i]; if (rxbuf->m_head != NULL) { bus_dmamap_sync(rxr->rxtag, rxbuf->map, @@ -4081,7 +4111,7 @@ em_setup_receive_ring(struct rx_ring *rxr) } /* Now replenish the mbufs */ - for (int j = 0; j != adapter->num_rx_desc; ++j) { + for (j = 0; j != adapter->num_rx_desc; ++j) { rxbuf = &rxr->rx_buffers[j]; #ifdef DEV_NETMAP if (slot) { @@ -4139,6 +4169,7 @@ fail: static int em_setup_receive_structures(struct adapter *adapter) { + int i, n; struct rx_ring *rxr = adapter->rx_rings; int q; @@ -4153,9 +4184,9 @@ fail: * the rings that completed, the failing case will have * cleaned up for itself. 'q' failed, so its the terminus. */ - for (int i = 0; i < q; ++i) { + for (i = 0; i < q; ++i) { rxr = &adapter->rx_rings[i]; - for (int n = 0; n < adapter->num_rx_desc; n++) { + for (n = 0; n < adapter->num_rx_desc; n++) { struct em_buffer *rxbuf; rxbuf = &rxr->rx_buffers[n]; if (rxbuf->m_head != NULL) { @@ -4181,9 +4212,10 @@ fail: static void em_free_receive_structures(struct adapter *adapter) { + int i; struct rx_ring *rxr = adapter->rx_rings; - for (int i = 0; i < adapter->num_queues; i++, rxr++) { + for (i = 0; i < adapter->num_queues; i++, rxr++) { em_free_receive_buffers(rxr); /* Free the ring memory as well */ em_dma_free(adapter, &rxr->rxdma); @@ -4208,7 +4240,8 @@ em_free_receive_buffers(struct rx_ring *rxr) INIT_DEBUGOUT("free_receive_buffers: begin"); if (rxr->rx_buffers != NULL) { - for (int i = 0; i < adapter->num_rx_desc; i++) { + int i; + for (i = 0; i < adapter->num_rx_desc; i++) { rxbuf = &rxr->rx_buffers[i]; if (rxbuf->map != NULL) { bus_dmamap_sync(rxr->rxtag, rxbuf->map, @@ -4247,6 +4280,7 @@ em_free_receive_buffers(struct rx_ring *rxr) static void em_initialize_receive_unit(struct adapter *adapter) { + int i; struct rx_ring *rxr = adapter->rx_rings; struct ifnet *ifp = adapter->ifp; struct e1000_hw *hw = &adapter->hw; @@ -4277,7 +4311,8 @@ em_initialize_receive_unit(struct adapter *adapter) ** using the EITR register (82574 only) */ if (hw->mac.type == e1000_82574) { - for (int i = 0; i < 4; i++) + int i; + for (i = 0; i < 4; i++) E1000_WRITE_REG(hw, E1000_EITR_82574(i), DEFAULT_ITR); /* Disable accelerated acknowledge */ @@ -4300,7 +4335,7 @@ em_initialize_receive_unit(struct adapter *adapter) if (hw->mac.type == e1000_82573) E1000_WRITE_REG(hw, E1000_RDTR, 0x20); - for (int i = 0; i < adapter->num_queues; i++, rxr++) { + for (i = 0; i < adapter->num_queues; i++, rxr++) { /* Setup the Base and Length of the Rx Descriptor Ring */ bus_addr = rxr->rxdma.dma_paddr; E1000_WRITE_REG(hw, E1000_RDLEN(i), @@ -4691,6 +4726,7 @@ em_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) static void em_setup_vlan_hw_support(struct adapter *adapter) { + int i; struct e1000_hw *hw = &adapter->hw; u32 reg; @@ -4707,7 +4743,7 @@ em_setup_vlan_hw_support(struct adapter *adapter) ** A soft reset zero's out the VFTA, so ** we need to repopulate it now. */ - for (int i = 0; i < EM_VFTA_SIZE; i++) + for (i = 0; i < EM_VFTA_SIZE; i++) if (adapter->shadow_vfta[i] != 0) E1000_WRITE_REG_ARRAY(hw, E1000_VFTA, i, adapter->shadow_vfta[i]); @@ -5008,6 +5044,7 @@ em_enable_wakeup(device_t dev) static int em_enable_phy_wakeup(struct adapter *adapter) { + int i; struct e1000_hw *hw = &adapter->hw; u32 mreg, ret = 0; u16 preg; @@ -5016,7 +5053,7 @@ em_enable_phy_wakeup(struct adapter *adapter) e1000_copy_rx_addrs_to_phy_ich8lan(hw); /* copy MAC MTA to PHY MTA */ - for (int i = 0; i < adapter->hw.mac.mta_reg_count; i++) { + for (i = 0; i < adapter->hw.mac.mta_reg_count; i++) { mreg = E1000_READ_REG_ARRAY(hw, E1000_MTA, i); e1000_write_phy_reg(hw, BM_MTA(i), (u16)(mreg & 0xFFFF)); e1000_write_phy_reg(hw, BM_MTA(i) + 1, @@ -5244,8 +5281,10 @@ em_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) struct adapter *adapter; u_int val; +#ifndef __HAIKU__ adapter = oidp->oid_arg1; val = E1000_READ_REG(&adapter->hw, oidp->oid_arg2); +#endif return (sysctl_handle_int(oidp, &val, 0, req)); } @@ -5255,6 +5294,7 @@ em_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) static void em_add_hw_stats(struct adapter *adapter) { + int i; device_t dev = adapter->dev; struct tx_ring *txr = adapter->tx_rings; @@ -5309,7 +5349,7 @@ em_add_hw_stats(struct adapter *adapter) CTLFLAG_RD, &adapter->hw.fc.low_water, 0, "Flow Control Low Watermark"); - for (int i = 0; i < adapter->num_queues; i++, rxr++, txr++) { + for (i = 0; i < adapter->num_queues; i++, rxr++, txr++) { snprintf(namebuf, QUEUE_NAME_LEN, "queue%d", i); queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, CTLFLAG_RD, NULL, "Queue Name"); diff --git a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.h b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.h index f1afbadb32..fc83147089 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.h +++ b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_em.h @@ -213,9 +213,11 @@ #define EM_MSIX_BAR 3 /* On 82575 */ /* More backward compatibility */ +#ifndef __HAIKU__ #if __FreeBSD_version < 900000 #define SYSCTL_ADD_UQUAD SYSCTL_ADD_QUAD #endif +#endif /* Defines for printing debug information */ #define DEBUG_INIT 0 diff --git a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.c b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.c index b5bca6a8e4..ce863d3300 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.c +++ b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.c @@ -75,7 +75,9 @@ #include #include +#ifndef __HAIKU__ #include +#endif #include #include @@ -268,12 +270,21 @@ static device_method_t lem_methods[] = { {0, 0} }; +#ifndef __HAIKU__ static driver_t lem_driver = { "em", lem_methods, sizeof(struct adapter), }; extern devclass_t em_devclass; DRIVER_MODULE(lem, pci, lem_driver, em_devclass, 0, 0); +#else +static driver_t lem_driver = { + "lem", lem_methods, sizeof(struct adapter), +}; + +devclass_t lem_devclass; +DRIVER_MODULE(lem, pci, lem_driver, lem_devclass, 0, 0); +#endif MODULE_DEPEND(lem, pci, 1, 1, 1); MODULE_DEPEND(lem, ether, 1, 1, 1); @@ -391,10 +402,12 @@ lem_attach(device_t dev) INIT_DEBUGOUT("lem_attach: begin"); +#ifndef __HAIKU__ if (resource_disabled("lem", device_get_unit(dev))) { device_printf(dev, "Disabled by device hint\n"); return (ENXIO); } +#endif adapter = device_get_softc(dev); adapter->dev = adapter->osdep.dev = dev; @@ -653,8 +666,10 @@ lem_attach(device_t dev) /* Tell the stack that the interface is not active */ adapter->ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); +#ifndef __HAIKU__ adapter->led_dev = led_create(lem_led_func, adapter, device_get_nameunit(dev)); +#endif #ifdef DEV_NETMAP lem_netmap_attach(adapter); @@ -713,8 +728,10 @@ lem_detach(device_t dev) ether_poll_deregister(ifp); #endif +#ifndef __HAIKU__ if (adapter->led_dev != NULL) led_destroy(adapter->led_dev); +#endif EM_CORE_LOCK(adapter); EM_TX_LOCK(adapter); @@ -2591,6 +2608,7 @@ lem_dma_free(struct adapter *adapter, struct em_dma_alloc *dma) static int lem_allocate_transmit_structures(struct adapter *adapter) { + int i; device_t dev = adapter->dev; struct em_buffer *tx_buffer; int error; @@ -2623,7 +2641,7 @@ lem_allocate_transmit_structures(struct adapter *adapter) } /* Create the descriptor buffer dma maps */ - for (int i = 0; i < adapter->num_tx_desc; i++) { + for (i = 0; i < adapter->num_tx_desc; i++) { tx_buffer = &adapter->tx_buffer_area[i]; error = bus_dmamap_create(adapter->txtag, 0, &tx_buffer->map); if (error != 0) { @@ -2647,6 +2665,7 @@ fail: static void lem_setup_transmit_structures(struct adapter *adapter) { + int i; struct em_buffer *tx_buffer; #ifdef DEV_NETMAP /* we are already locked */ @@ -2659,7 +2678,7 @@ lem_setup_transmit_structures(struct adapter *adapter) (sizeof(struct e1000_tx_desc)) * adapter->num_tx_desc); /* Free any existing TX buffers */ - for (int i = 0; i < adapter->num_tx_desc; i++, tx_buffer++) { + for (i = 0; i < adapter->num_tx_desc; i++, tx_buffer++) { tx_buffer = &adapter->tx_buffer_area[i]; bus_dmamap_sync(adapter->txtag, tx_buffer->map, BUS_DMASYNC_POSTWRITE); @@ -2775,7 +2794,8 @@ lem_free_transmit_structures(struct adapter *adapter) INIT_DEBUGOUT("free_transmit_structures: begin"); if (adapter->tx_buffer_area != NULL) { - for (int i = 0; i < adapter->num_tx_desc; i++) { + int i; + for (i = 0; i < adapter->num_tx_desc; i++) { tx_buffer = &adapter->tx_buffer_area[i]; if (tx_buffer->m_head != NULL) { bus_dmamap_sync(adapter->txtag, tx_buffer->map, @@ -2802,10 +2822,12 @@ lem_free_transmit_structures(struct adapter *adapter) bus_dma_tag_destroy(adapter->txtag); adapter->txtag = NULL; } +#ifndef __HAIKU__ #if __FreeBSD_version >= 800000 if (adapter->br != NULL) buf_ring_free(adapter->br, M_DEVBUF); #endif +#endif } /********************************************************************* @@ -3278,6 +3300,7 @@ lem_setup_receive_structures(struct adapter *adapter) static void lem_initialize_receive_unit(struct adapter *adapter) { + int i; struct ifnet *ifp = adapter->ifp; u64 bus_addr; u32 rctl, rxcsum; @@ -3306,7 +3329,7 @@ lem_initialize_receive_unit(struct adapter *adapter) ** using the EITR register (82574 only) */ if (adapter->msix) - for (int i = 0; i < 4; i++) + for (i = 0; i < 4; i++) E1000_WRITE_REG(&adapter->hw, E1000_EITR_82574(i), DEFAULT_ITR); @@ -3460,7 +3483,7 @@ lem_free_receive_structures(struct adapter *adapter) static bool lem_rxeof(struct adapter *adapter, int count, int *done) { - struct ifnet *ifp = adapter->ifp;; + struct ifnet *ifp = adapter->ifp; struct mbuf *mp; u8 status = 0, accept_frame = 0, eop = 0; u16 len, desc_len, prev_len_adj; @@ -3792,6 +3815,7 @@ lem_unregister_vlan(void *arg, struct ifnet *ifp, u16 vtag) static void lem_setup_vlan_hw_support(struct adapter *adapter) { + int i; struct e1000_hw *hw = &adapter->hw; u32 reg; @@ -3808,7 +3832,7 @@ lem_setup_vlan_hw_support(struct adapter *adapter) ** A soft reset zero's out the VFTA, so ** we need to repopulate it now. */ - for (int i = 0; i < EM_VFTA_SIZE; i++) + for (i = 0; i < EM_VFTA_SIZE; i++) if (adapter->shadow_vfta[i] != 0) E1000_WRITE_REG_ARRAY(hw, E1000_VFTA, i, adapter->shadow_vfta[i]); @@ -4073,12 +4097,13 @@ lem_enable_wakeup(device_t dev) static int lem_enable_phy_wakeup(struct adapter *adapter) { + int i; struct e1000_hw *hw = &adapter->hw; u32 mreg, ret = 0; u16 preg; /* copy MAC RARs to PHY RARs */ - for (int i = 0; i < adapter->hw.mac.rar_entry_count; i++) { + for (i = 0; i < adapter->hw.mac.rar_entry_count; i++) { mreg = E1000_READ_REG(hw, E1000_RAL(i)); e1000_write_phy_reg(hw, BM_RAR_L(i), (u16)(mreg & 0xFFFF)); e1000_write_phy_reg(hw, BM_RAR_M(i), @@ -4090,7 +4115,7 @@ lem_enable_phy_wakeup(struct adapter *adapter) } /* copy MAC MTA to PHY MTA */ - for (int i = 0; i < adapter->hw.mac.mta_reg_count; i++) { + for (i = 0; i < adapter->hw.mac.mta_reg_count; i++) { mreg = E1000_READ_REG_ARRAY(hw, E1000_MTA, i); e1000_write_phy_reg(hw, BM_MTA(i), (u16)(mreg & 0xFFFF)); e1000_write_phy_reg(hw, BM_MTA(i) + 1, @@ -4325,8 +4350,10 @@ lem_sysctl_reg_handler(SYSCTL_HANDLER_ARGS) struct adapter *adapter; u_int val; +#ifndef __HAIKU__ adapter = oidp->oid_arg1; val = E1000_READ_REG(&adapter->hw, oidp->oid_arg2); +#endif return (sysctl_handle_int(oidp, &val, 0, req)); } diff --git a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.h b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.h index c1973e55be..787efb9cb2 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.h +++ b/src/add-ons/kernel/drivers/network/ipro1000/dev/e1000/if_lem.h @@ -217,9 +217,11 @@ #define EM_BAR_MEM_TYPE_64BIT 0x00000004 #define EM_MSIX_BAR 3 /* On 82575 */ +#ifndef __HAIKU__ #if __FreeBSD_version < 900000 #define SYSCTL_ADD_UQUAD SYSCTL_ADD_QUAD #endif +#endif /* Defines for printing debug information */ #define DEBUG_INIT 0 diff --git a/src/add-ons/kernel/drivers/network/ipro1000/if_compat.h b/src/add-ons/kernel/drivers/network/ipro1000/if_compat.h index f4cd7a0f9f..4d73dca6e6 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/if_compat.h +++ b/src/add-ons/kernel/drivers/network/ipro1000/if_compat.h @@ -122,12 +122,6 @@ struct ifmedia uint32 ifm_media; }; -struct ifmediareq -{ - uint32 ifm_status; - uint32 ifm_active; -}; - struct if_queue { volatile struct mbuf * ifq_head;