The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=07263b02d872144c5182773889a0e1220e1e583a

commit 07263b02d872144c5182773889a0e1220e1e583a
Author:     Warner Losh <[email protected]>
AuthorDate: 2021-01-07 22:32:53 +0000
Commit:     Warner Losh <[email protected]>
CommitDate: 2021-01-08 03:23:04 +0000

    pccard: Remove if_ndis(4) PC Card attachment
    
    PC Card support is being removed, so remove its attachment here. ndis
    is slated to be removed entirely for 13, but that's not been done yet.
    
    Relnotes: Yes
---
 share/man/man4/ndis.4            |   5 +-
 sys/conf/files.x86               |   1 -
 sys/dev/if_ndis/if_ndis_pccard.c | 337 ---------------------------------------
 sys/modules/if_ndis/Makefile     |   4 +-
 4 files changed, 4 insertions(+), 343 deletions(-)

diff --git a/share/man/man4/ndis.4 b/share/man/man4/ndis.4
index 4f0b0ab2ed22..0feec231e605 100644
--- a/share/man/man4/ndis.4
+++ b/share/man/man4/ndis.4
@@ -105,9 +105,8 @@ file.
 The
 .Nm
 driver is designed to support mainly Ethernet and wireless
-network devices with PCI, PCMCIA and USB bus attachments.
-(Cardbus
-devices are also supported as a subset of PCI.)
+network devices with PCI and USB bus attachments.
+(Cardbus devices are also supported as PCI.)
 It can
 support many different media types and speeds.
 One limitation
diff --git a/sys/conf/files.x86 b/sys/conf/files.x86
index 785a1c719b91..f51392d0614c 100644
--- a/sys/conf/files.x86
+++ b/sys/conf/files.x86
@@ -158,7 +158,6 @@ dev/hyperv/vmbus/vmbus_res.c                                
optional        hyperv
 dev/hyperv/vmbus/vmbus_xact.c                          optional        hyperv
 dev/ichwd/ichwd.c              optional        ichwd
 dev/if_ndis/if_ndis.c          optional        ndis
-dev/if_ndis/if_ndis_pccard.c   optional        ndis pccard
 dev/if_ndis/if_ndis_pci.c      optional        ndis cardbus | ndis pci
 dev/if_ndis/if_ndis_usb.c      optional        ndis usb
 dev/imcsmb/imcsmb.c            optional        imcsmb
diff --git a/sys/dev/if_ndis/if_ndis_pccard.c b/sys/dev/if_ndis/if_ndis_pccard.c
deleted file mode 100644
index 85b23a18d11a..000000000000
--- a/sys/dev/if_ndis/if_ndis_pccard.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-4-Clause
- *
- * Copyright (c) 2003
- *     Bill Paul <[email protected]>.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by Bill Paul.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/ctype.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <sys/socket.h>
-#include <sys/queue.h>
-#include <sys/sysctl.h>
-
-#include <net/if.h>
-#include <net/if_var.h>
-#include <net/if_arp.h>
-#include <net/if_media.h>
-#include <net/ethernet.h>
-
-#include <machine/bus.h>
-#include <machine/resource.h>
-#include <sys/bus.h>
-#include <sys/rman.h>
-
-#include <dev/usb/usb.h>
-#include <dev/usb/usbdi.h>
-
-#include <net80211/ieee80211_var.h>
-
-#include <compat/ndis/pe_var.h>
-#include <compat/ndis/cfg_var.h>
-#include <compat/ndis/resource_var.h>
-#include <compat/ndis/ntoskrnl_var.h>
-#include <compat/ndis/ndis_var.h>
-#include <dev/if_ndis/if_ndisvar.h>
-
-#include <dev/pccard/pccardvar.h>
-#include "card_if.h"
-
-MODULE_DEPEND(ndis, pccard, 1, 1, 1);
-
-static int ndis_probe_pccard   (device_t);
-static int ndis_attach_pccard  (device_t);
-static int ndis_detach_pccard  (device_t);
-static struct resource_list *ndis_get_resource_list
-                               (device_t, device_t);
-static int ndis_devcompare     (interface_type,
-                                struct ndis_pccard_type *, device_t);
-extern int ndisdrv_modevent    (module_t, int, void *);
-extern int ndis_attach         (device_t);
-extern int ndis_shutdown       (device_t);
-extern int ndis_detach         (device_t);
-extern int ndis_suspend                (device_t);
-extern int ndis_resume         (device_t);
-
-extern unsigned char drv_data[];
-
-static device_method_t ndis_methods[] = {
-       /* Device interface */
-       DEVMETHOD(device_probe,         ndis_probe_pccard),
-       DEVMETHOD(device_attach,        ndis_attach_pccard),
-       DEVMETHOD(device_detach,        ndis_detach_pccard),
-       DEVMETHOD(device_shutdown,      ndis_shutdown),
-       DEVMETHOD(device_suspend,       ndis_suspend),
-       DEVMETHOD(device_resume,        ndis_resume),
-
-       /* Bus interface. */
-
-       /*
-        * This is an awful kludge, but we need it becase pccard
-        * does not implement a bus_get_resource_list() method.
-        */
-
-       DEVMETHOD(bus_get_resource_list, ndis_get_resource_list),
-
-       { 0, 0 }
-};
-
-static driver_t ndis_driver = {
-       "ndis",
-       ndis_methods,
-       sizeof(struct ndis_softc)
-};
-
-static devclass_t ndis_devclass;
-
-DRIVER_MODULE(ndis, pccard, ndis_driver, ndis_devclass, ndisdrv_modevent, 0);
-
-static int
-ndis_devcompare(bustype, t, dev)
-       interface_type          bustype;
-       struct ndis_pccard_type *t;
-       device_t                dev;
-{
-       const char              *prodstr, *vendstr;
-       int                     error;
-
-       if (bustype != PCMCIABus)
-               return(FALSE);
-
-       error = pccard_get_product_str(dev, &prodstr);
-       if (error)
-               return(FALSE);
-       error = pccard_get_vendor_str(dev, &vendstr);
-       if (error)
-               return(FALSE);
-
-       while(t->ndis_name != NULL) {
-               if (strcasecmp(vendstr, t->ndis_vid) == 0 &&
-                   strcasecmp(prodstr, t->ndis_did) == 0) {
-                       device_set_desc(dev, t->ndis_name);
-                       return(TRUE);
-               }
-               t++;
-       }
-
-       return(FALSE);
-}
-
-/*
- * Probe for an NDIS device. Check the PCI vendor and device
- * IDs against our list and return a device name if we find a match.
- */
-static int
-ndis_probe_pccard(dev)
-       device_t                dev;
-{
-       driver_object           *drv;
-       struct drvdb_ent        *db;
-
-       drv = windrv_lookup(0, "PCCARD Bus"); 
-       if (drv == NULL)
-               return(ENXIO);
-
-       db = windrv_match((matchfuncptr)ndis_devcompare, dev);
-
-       if (db != NULL) {
-               /* Create PDO for this device instance */
-               windrv_create_pdo(drv, dev);
-               return(0);
-       }
-
-       return(ENXIO);
-}
-
-#define NDIS_AM_RID 3
-
-static int
-ndis_alloc_amem(struct ndis_softc *sc)
-{
-       int error, rid;
-
-       rid = NDIS_AM_RID;
-       sc->ndis_res_am = bus_alloc_resource_anywhere(sc->ndis_dev,
-           SYS_RES_MEMORY, &rid, 0x1000, RF_ACTIVE);
-
-       if (sc->ndis_res_am == NULL) {
-               device_printf(sc->ndis_dev,
-                   "failed to allocate attribute memory\n");
-               return(ENXIO);
-       }
-       sc->ndis_rescnt++;
-       resource_list_add(&sc->ndis_rl, SYS_RES_MEMORY, rid,
-           rman_get_start(sc->ndis_res_am), rman_get_end(sc->ndis_res_am),
-           rman_get_size(sc->ndis_res_am));
-
-       error = CARD_SET_MEMORY_OFFSET(device_get_parent(sc->ndis_dev),
-           sc->ndis_dev, rid, 0, NULL);
-
-       if (error) {
-               device_printf(sc->ndis_dev,
-                   "CARD_SET_MEMORY_OFFSET() returned 0x%x\n", error);
-               return(error);
-       }
-
-       error = CARD_SET_RES_FLAGS(device_get_parent(sc->ndis_dev),
-           sc->ndis_dev, SYS_RES_MEMORY, rid, PCCARD_A_MEM_ATTR);
-
-       if (error) {
-               device_printf(sc->ndis_dev,
-                   "CARD_SET_RES_FLAGS() returned 0x%x\n", error);
-               return(error);
-       }
-
-       sc->ndis_am_rid = rid;
-
-       return(0);
-}
-
-/*
- * Attach the interface. Allocate softc structures, do ifmedia
- * setup and ethernet/BPF attach.
- */
-static int
-ndis_attach_pccard(dev)
-       device_t                dev;
-{
-       struct ndis_softc       *sc;
-       int                     unit, error = 0, rid;
-       struct ndis_pccard_type *t;
-       int                     devidx = 0;
-       const char              *prodstr, *vendstr;
-       struct drvdb_ent        *db;
-
-       sc = device_get_softc(dev);
-       unit = device_get_unit(dev);
-       sc->ndis_dev = dev;
-
-       db = windrv_match((matchfuncptr)ndis_devcompare, dev);
-       if (db == NULL)
-               return (ENXIO);
-       sc->ndis_dobj = db->windrv_object;
-       sc->ndis_regvals = db->windrv_regvals;
-       resource_list_init(&sc->ndis_rl);
-
-       sc->ndis_io_rid = 0;
-       sc->ndis_res_io = bus_alloc_resource_any(dev, SYS_RES_IOPORT,
-           &sc->ndis_io_rid, RF_ACTIVE);
-       if (sc->ndis_res_io == NULL) {
-               device_printf(dev,
-                   "couldn't map iospace\n");
-               error = ENXIO;
-               goto fail;
-       }
-       sc->ndis_rescnt++;
-       resource_list_add(&sc->ndis_rl, SYS_RES_IOPORT, sc->ndis_io_rid,
-           rman_get_start(sc->ndis_res_io), rman_get_end(sc->ndis_res_io),
-           rman_get_size(sc->ndis_res_io));
-
-       rid = 0;
-       sc->ndis_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
-           RF_SHAREABLE | RF_ACTIVE);
-       if (sc->ndis_irq == NULL) {
-               device_printf(dev,
-                   "couldn't map interrupt\n");
-               error = ENXIO;
-               goto fail;
-       }
-       sc->ndis_rescnt++;
-       resource_list_add(&sc->ndis_rl, SYS_RES_IRQ, rid,
-           rman_get_start(sc->ndis_irq), rman_get_start(sc->ndis_irq), 1);
-
-       sc->ndis_iftype = PCMCIABus;
-
-       /* Figure out exactly which device we matched. */
-
-       t = db->windrv_devlist;
-
-       error = pccard_get_product_str(dev, &prodstr);
-       if (error)
-               return(error);
-       error = pccard_get_vendor_str(dev, &vendstr);
-       if (error)
-               return(error);
-
-       while(t->ndis_name != NULL) {
-               if (strcasecmp(vendstr, t->ndis_vid) == 0 &&
-                   strcasecmp(prodstr, t->ndis_did) == 0)
-                       break;
-               t++;
-               devidx++;
-       }
-
-       sc->ndis_devidx = devidx;
-
-       error = ndis_alloc_amem(sc);
-       if (error) {
-               device_printf(dev, "failed to allocate attribute memory\n");
-               goto fail;
-       }
-
-       error = ndis_attach(dev);
-       if (error == 0)
-               gone_in_dev(dev, 13, "ndis removed");
-
-fail:
-       return(error);
-}
-
-static int
-ndis_detach_pccard(device_t dev)
-{
-       struct ndis_softc *sc = device_get_softc(dev);
-
-       (void) ndis_detach(dev);
-
-       if (sc->ndis_res_am != NULL)
-               bus_release_resource(sc->ndis_dev, SYS_RES_MEMORY,
-                   sc->ndis_am_rid, sc->ndis_res_am);
-       resource_list_free(&sc->ndis_rl);
-
-       return (0);
-}
-
-static struct resource_list *
-ndis_get_resource_list(dev, child)
-       device_t                dev;
-       device_t                child;
-{
-       struct ndis_softc       *sc;
-
-       sc = device_get_softc(dev);
-       return (&sc->ndis_rl);
-}
diff --git a/sys/modules/if_ndis/Makefile b/sys/modules/if_ndis/Makefile
index ced1a4fb332c..efdde6e0977e 100644
--- a/sys/modules/if_ndis/Makefile
+++ b/sys/modules/if_ndis/Makefile
@@ -3,8 +3,8 @@
 .PATH: ${SRCTOP}/sys/dev/if_ndis
 
 KMOD=  if_ndis
-SRCS=  if_ndis.c if_ndis_pci.c if_ndis_pccard.c if_ndis_usb.c
-SRCS+= device_if.h bus_if.h pci_if.h card_if.h pccarddevs.h
+SRCS=  if_ndis.c if_ndis_pci.c if_ndis_usb.c
+SRCS+= device_if.h bus_if.h pci_if.h
 SRCS+= opt_bus.h opt_usb.h usb_if.h usbdevs.h
 
 .include <bsd.kmod.mk>
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to