if_xe.c (148030) | if_xe.c (148654) |
---|---|
1/*- 2 * Copyright (c) 1998, 1999, 2003 Scott Mitchell 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 43 unchanged lines hidden (view full) --- 52 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 53 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 54 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 55 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 56 * OF THE POSSIBILITY OF SUCH DAMAGE. 57 */ 58 59#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1998, 1999, 2003 Scott Mitchell 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 43 unchanged lines hidden (view full) --- 52 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 53 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 54 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 55 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 56 * OF THE POSSIBILITY OF SUCH DAMAGE. 57 */ 58 59#include <sys/cdefs.h> |
60__FBSDID("$FreeBSD: head/sys/dev/xe/if_xe.c 148030 2005-07-15 06:08:26Z imp $"); | 60__FBSDID("$FreeBSD: head/sys/dev/xe/if_xe.c 148654 2005-08-03 00:18:35Z rwatson $"); |
61 62/* 63 * FreeBSD device driver for Xircom CreditCard PCMCIA Ethernet adapters. The 64 * following cards are currently known to work with the driver: 65 * Xircom CreditCard 10/100 (CE3) 66 * Xircom CreditCard Ethernet + Modem 28 (CEM28) 67 * Xircom CreditCard Ethernet 10/100 + Modem 56 (CEM56) 68 * Xircom RealPort Ethernet 10 --- 1200 unchanged lines hidden (view full) --- 1269 XE_OUTB(XE_SWC1, XE_INB(XE_SWC1) | XE_SWC1_ALLMULTI); 1270 return; 1271 } 1272 else 1273 XE_OUTB(XE_SWC1, XE_INB(XE_SWC1) & ~XE_SWC1_ALLMULTI); 1274 1275 /* Iterate over multicast address list */ 1276 count = 0; | 61 62/* 63 * FreeBSD device driver for Xircom CreditCard PCMCIA Ethernet adapters. The 64 * following cards are currently known to work with the driver: 65 * Xircom CreditCard 10/100 (CE3) 66 * Xircom CreditCard Ethernet + Modem 28 (CEM28) 67 * Xircom CreditCard Ethernet 10/100 + Modem 56 (CEM56) 68 * Xircom RealPort Ethernet 10 --- 1200 unchanged lines hidden (view full) --- 1269 XE_OUTB(XE_SWC1, XE_INB(XE_SWC1) | XE_SWC1_ALLMULTI); 1270 return; 1271 } 1272 else 1273 XE_OUTB(XE_SWC1, XE_INB(XE_SWC1) & ~XE_SWC1_ALLMULTI); 1274 1275 /* Iterate over multicast address list */ 1276 count = 0; |
1277 IF_ADDR_LOCK(ifp); |
|
1277#if __FreeBSD_version < 500000 1278 LIST_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) { 1279#else 1280 TAILQ_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) { 1281#endif 1282 if (maddr->ifma_addr->sa_family != AF_LINK) 1283 continue; 1284 --- 5 unchanged lines hidden (view full) --- 1290 else 1291 if (scp->mohawk) 1292 /* Use hash filter on Mohawk and Dingo */ 1293 xe_mchash(scp, LLADDR((struct sockaddr_dl *)maddr->ifma_addr)); 1294 else 1295 /* Nowhere else to put them on CE2 */ 1296 break; 1297 } | 1278#if __FreeBSD_version < 500000 1279 LIST_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) { 1280#else 1281 TAILQ_FOREACH(maddr, &ifp->if_multiaddrs, ifma_link) { 1282#endif 1283 if (maddr->ifma_addr->sa_family != AF_LINK) 1284 continue; 1285 --- 5 unchanged lines hidden (view full) --- 1291 else 1292 if (scp->mohawk) 1293 /* Use hash filter on Mohawk and Dingo */ 1294 xe_mchash(scp, LLADDR((struct sockaddr_dl *)maddr->ifma_addr)); 1295 else 1296 /* Nowhere else to put them on CE2 */ 1297 break; 1298 } |
1299 IF_ADDR_UNLOCK(ifp); |
|
1298 1299 DEVPRINTF(2, (scp->dev, "set_multicast: count = %u\n", count)); 1300 1301 /* Now do some cleanup and enable multicast handling as needed */ 1302 if (count == 0) { 1303 /* Disable all multicast handling */ 1304 XE_SELECT_PAGE(0x42); 1305 XE_OUTB(XE_SWC1, XE_INB(XE_SWC1) & ~(XE_SWC1_IA_ENABLE|XE_SWC1_ALLMULTI)); --- 660 unchanged lines hidden --- | 1300 1301 DEVPRINTF(2, (scp->dev, "set_multicast: count = %u\n", count)); 1302 1303 /* Now do some cleanup and enable multicast handling as needed */ 1304 if (count == 0) { 1305 /* Disable all multicast handling */ 1306 XE_SELECT_PAGE(0x42); 1307 XE_OUTB(XE_SWC1, XE_INB(XE_SWC1) & ~(XE_SWC1_IA_ENABLE|XE_SWC1_ALLMULTI)); --- 660 unchanged lines hidden --- |