summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2000-03-19 13:07:12 +0000
committerpeter <peter@FreeBSD.org>2000-03-19 13:07:12 +0000
commit35e00e91c81c202b223a8954e6798bff332b6ca2 (patch)
tree9a22fcf4c02473f470d31db949a7c6d32f882f33 /sys
parentd5a5d97386bb5078082d6af0f294010609a96f04 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/amd64/isa/isa.c6
-rw-r--r--sys/conf/files.i3862
-rw-r--r--sys/conf/files.pc982
-rw-r--r--sys/conf/options1
-rw-r--r--sys/conf/options.i3861
-rw-r--r--sys/conf/options.pc981
-rw-r--r--sys/dev/pci/pci.c7
-rw-r--r--sys/dev/pci/pcivar.h12
-rw-r--r--sys/i386/isa/isa.c6
-rw-r--r--sys/i386/isa/isa_device.h4
-rw-r--r--sys/pci/pci.c7
-rw-r--r--sys/pci/pcivar.h12
12 files changed, 53 insertions, 8 deletions
diff --git a/sys/amd64/isa/isa.c b/sys/amd64/isa/isa.c
index 6c4b71a..5e9e69a 100644
--- a/sys/amd64/isa/isa.c
+++ b/sys/amd64/isa/isa.c
@@ -56,6 +56,8 @@
* SUCH DAMAGE.
*/
+#include "opt_compat_oldisa.h"
+
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/malloc.h>
@@ -69,7 +71,9 @@
void
isa_init(void)
{
- isa_wrap_old_drivers();
+#ifdef COMPAT_OLDISA
+ isa_wrap_old_drivers();
+#endif
}
/*
diff --git a/sys/conf/files.i386 b/sys/conf/files.i386
index 351cf50..54e15a7 100644
--- a/sys/conf/files.i386
+++ b/sys/conf/files.i386
@@ -218,7 +218,7 @@ i386/isa/intr_machdep.c standard
i386/isa/ipl_funcs.c standard \
compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}"
i386/isa/isa.c optional isa
-i386/isa/isa_compat.c optional isa
+i386/isa/isa_compat.c optional isa compat_oldisa
i386/isa/isa_dma.c optional isa
i386/isa/istallion.c optional stli
i386/isa/labpc.c optional labpc
diff --git a/sys/conf/files.pc98 b/sys/conf/files.pc98
index 43783c5..e619ae8 100644
--- a/sys/conf/files.pc98
+++ b/sys/conf/files.pc98
@@ -204,7 +204,7 @@ i386/isa/intr_machdep.c standard
i386/isa/ipl_funcs.c standard \
compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}"
i386/isa/isa.c optional isa
-pc98/pc98/isa_compat.c optional isa
+pc98/pc98/isa_compat.c optional isa compat_oldisa
pc98/pc98/isa_dma.c optional isa
i386/isa/istallion.c optional stli
i386/isa/labpc.c optional labpc
diff --git a/sys/conf/options b/sys/conf/options
index b88f60d..607e39e 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -374,6 +374,7 @@ MSGBUF_SIZE opt_msgbuf.h
# PCI related options
PCI_QUIET opt_pci.h
+COMPAT_OLDPCI
# NFS options
NFS_MINATTRTIMO opt_nfs.h
diff --git a/sys/conf/options.i386 b/sys/conf/options.i386
index 8ef1aee..bbea5e9 100644
--- a/sys/conf/options.i386
+++ b/sys/conf/options.i386
@@ -19,6 +19,7 @@ CONSPEED opt_comconsole.h
I586_PMC_GUPROF opt_i586_guprof.h
WLCACHE opt_wavelan.h
WLDEBUG opt_wavelan.h
+COMPAT_OLDISA
# Options for emulators. These should only be used at config time, so
# they are handled like options for static file systems
diff --git a/sys/conf/options.pc98 b/sys/conf/options.pc98
index ff03d96..33835f7 100644
--- a/sys/conf/options.pc98
+++ b/sys/conf/options.pc98
@@ -19,6 +19,7 @@ CONSPEED opt_comconsole.h
I586_PMC_GUPROF opt_i586_guprof.h
WLCACHE opt_wavelan.h
WLDEBUG opt_wavelan.h
+COMPAT_OLDISA
# Options for emulators. These should only be used at config time, so
# they are handled like options for static file systems
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 */
diff --git a/sys/i386/isa/isa.c b/sys/i386/isa/isa.c
index 6c4b71a..5e9e69a 100644
--- a/sys/i386/isa/isa.c
+++ b/sys/i386/isa/isa.c
@@ -56,6 +56,8 @@
* SUCH DAMAGE.
*/
+#include "opt_compat_oldisa.h"
+
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/malloc.h>
@@ -69,7 +71,9 @@
void
isa_init(void)
{
- isa_wrap_old_drivers();
+#ifdef COMPAT_OLDISA
+ isa_wrap_old_drivers();
+#endif
}
/*
diff --git a/sys/i386/isa/isa_device.h b/sys/i386/isa/isa_device.h
index 0a86c0b..e6e7353 100644
--- a/sys/i386/isa/isa_device.h
+++ b/sys/i386/isa/isa_device.h
@@ -41,12 +41,14 @@
#ifndef _ISA_ISAVAR_H_
#include <i386/isa/isa_dma.h>
#endif
+#include "opt_compat_oldisa.h"
#endif
/*
* ISA Bus Autoconfiguration
*/
+#ifdef COMPAT_OLDISA
/*
* Per device structure.
*/
@@ -95,4 +97,6 @@ int isa_compat_nextid __P((void));
#endif
+#endif /* COMPAT_OLDISA */
+
#endif /* !_I386_ISA_ISA_DEVICE_H_ */
diff --git a/sys/pci/pci.c b/sys/pci/pci.c
index 74ae9f9..faa813b 100644
--- a/sys/pci/pci.c
+++ b/sys/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/pci/pcivar.h b/sys/pci/pcivar.h
index 9c345c0..23cd2af 100644
--- a/sys/pci/pcivar.h
+++ b/sys/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 */
OpenPOWER on IntegriCloud