diff options
author | peter <peter@FreeBSD.org> | 2000-03-19 13:07:12 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2000-03-19 13:07:12 +0000 |
commit | 35e00e91c81c202b223a8954e6798bff332b6ca2 (patch) | |
tree | 9a22fcf4c02473f470d31db949a7c6d32f882f33 /sys/dev/pci | |
parent | d5a5d97386bb5078082d6af0f294010609a96f04 (diff) | |
download | FreeBSD-src-35e00e91c81c202b223a8954e6798bff332b6ca2.zip FreeBSD-src-35e00e91c81c202b223a8954e6798bff332b6ca2.tar.gz |
Connect the ISA and PCI compatability shims to an option. In this case
it's options COMPAT_OLDISA and COMPAT_OLDPCI. This is meant to be a
fairly strong incentive to update the older drivers to newbus, but doesn't
(quite) leave anybody hanging with no hardware support. I was talking with
a few folks and I was encouraged to simply break or disable the shims but
that was a bit too drastic for my liking.
Diffstat (limited to 'sys/dev/pci')
-rw-r--r-- | sys/dev/pci/pci.c | 7 | ||||
-rw-r--r-- | sys/dev/pci/pcivar.h | 12 |
2 files changed, 17 insertions, 2 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 74ae9f9..faa813b 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -30,6 +30,7 @@ #include "opt_bus.h" #include "opt_simos.h" +#include "opt_compat_oldpci.h" #include <sys/param.h> #include <sys/systm.h> @@ -857,6 +858,9 @@ static struct cdevsw pcicdev = { #include "pci_if.h" +static devclass_t pci_devclass; + +#ifdef COMPAT_OLDPCI /* * A simple driver to wrap the old pci driver mechanism for back-compat. */ @@ -919,8 +923,6 @@ static device_method_t pci_compat_methods[] = { { 0, 0 } }; -static devclass_t pci_devclass; - /* * Create a new style driver around each old pci driver. */ @@ -950,6 +952,7 @@ compat_pci_handler(module_t mod, int type, void *data) } return 0; } +#endif /* * New style pci driver. Parent device is either a pci-host-bridge or a diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index 9c345c0..23cd2af 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -137,6 +137,7 @@ typedef struct { u_int8_t seclat; /* CardBus latency timer */ } pcih2cfgregs; +#if 0 /* PCI bus attach definitions (there could be multiple PCI bus *trees* ... */ typedef struct pciattach { @@ -144,6 +145,7 @@ typedef struct pciattach { int pcibushigh; struct pciattach *next; } pciattach; +#endif extern u_int32_t pci_numdevs; @@ -277,6 +279,12 @@ PCIB_ACCESSOR(hose, HOSE, u_int32_t) #ifdef PCI_COMPAT +#ifdef _KERNEL +#include "opt_compat_oldpci.h" +#endif + +/* all this is going some day */ + typedef pcicfgregs *pcici_t; typedef unsigned pcidi_t; typedef void pci_inthand_t(void *arg); @@ -285,6 +293,7 @@ typedef void pci_inthand_t(void *arg); /* just copied from old PCI code for now ... */ +#ifdef COMPAT_OLDPCI struct pci_device { char* pd_name; const char* (*pd_probe ) (pcici_t tag, pcidi_t type); @@ -292,6 +301,7 @@ struct pci_device { u_long *pd_count; int (*pd_shutdown) (int, int); }; +#endif #ifdef __i386__ typedef u_short pci_port_t; @@ -312,6 +322,7 @@ int pci_unmap_int (pcici_t tag); pcici_t pci_get_parent_from_tag(pcici_t tag); int pci_get_bus_from_tag(pcici_t tag); +#ifdef COMPAT_OLDPCI struct module; int compat_pci_handler (struct module *, int, void *); #define COMPAT_PCI_DRIVER(name, pcidata) \ @@ -321,6 +332,7 @@ static moduledata_t name##_mod = { \ &pcidata \ }; \ DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_ANY) +#endif #endif /* PCI_COMPAT */ |