Finished device configuration database work for all ISA devices (except `ze')
and all SCSI devices (except that it's not done quite the way I want). New information added includes: - A text description of the device - A ``state''---unknown, unconfigured, idle, or busy - A generic parent device (with support in the m.i. code) - An interrupt mask type field (which will hopefully go away) so that . ``doconfig'' can be written This requires a new version of the `lsdev' program as well (next commit).
This commit is contained in:
parent
ee8c176b39
commit
b26d43dd93
@ -32,7 +32,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)npx.c 7.2 (Berkeley) 5/12/91
|
||||
* $Id: npx.c,v 1.13 1994/09/22 14:44:16 davidg Exp $
|
||||
* $Id: npx.c,v 1.14 1994/10/08 22:27:58 phk Exp $
|
||||
*/
|
||||
|
||||
#include "npx.h"
|
||||
@ -43,11 +43,14 @@
|
||||
#include <sys/conf.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/devconf.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include <machine/cpu.h>
|
||||
#include <machine/pcb.h>
|
||||
#include <machine/trap.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <machine/specialreg.h>
|
||||
|
||||
#include <i386/isa/icu.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/isa.h>
|
||||
@ -302,6 +305,26 @@ npxprobe1(dvp)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_npx[NNPX] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"npx", 0, { MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Floating-point unit"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
npx_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_npx[id->id_unit] = kdc_npx[0];
|
||||
kdc_npx[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_npx[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_npx[id->id_unit]);
|
||||
}
|
||||
|
||||
/*
|
||||
* Attach routine - announce which it is, and wire into system
|
||||
*/
|
||||
@ -318,6 +341,7 @@ npxattach(dvp)
|
||||
}
|
||||
}
|
||||
npxinit(__INITIAL_NPXCW__);
|
||||
npx_registerdev(dvp);
|
||||
return (1); /* XXX unused */
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)isa.c 7.2 (Berkeley) 5/13/91
|
||||
* $Id: isa.c,v 1.30 1994/10/19 01:59:06 wollman Exp $
|
||||
* $Id: isa.c,v 1.31 1994/10/19 21:57:51 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -106,6 +106,16 @@ inthand2_t *intr_handler[ICU_LEN];
|
||||
u_int intr_mask[ICU_LEN];
|
||||
int intr_unit[ICU_LEN];
|
||||
|
||||
struct kern_devconf kdc_isa0 = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"isa", 0, { MDDT_BUS, 0 },
|
||||
0, 0, 0, BUS_EXTERNALLEN,
|
||||
0, /* no parent yet; parent should be CPU */
|
||||
0, /* no parentdata */
|
||||
DC_BUSY, /* busses are always busy */
|
||||
"ISA or EISA bus"
|
||||
};
|
||||
|
||||
static inthand_t *fastintr[ICU_LEN] = {
|
||||
&IDTVEC(fastintr0), &IDTVEC(fastintr1),
|
||||
&IDTVEC(fastintr2), &IDTVEC(fastintr3),
|
||||
@ -270,6 +280,8 @@ void
|
||||
isa_configure() {
|
||||
struct isa_device *dvp;
|
||||
|
||||
dev_attach(&kdc_isa0);
|
||||
|
||||
splhigh();
|
||||
enable_intr();
|
||||
INTREN(IRQ_SLAVE);
|
||||
|
@ -32,7 +32,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)npx.c 7.2 (Berkeley) 5/12/91
|
||||
* $Id: npx.c,v 1.13 1994/09/22 14:44:16 davidg Exp $
|
||||
* $Id: npx.c,v 1.14 1994/10/08 22:27:58 phk Exp $
|
||||
*/
|
||||
|
||||
#include "npx.h"
|
||||
@ -43,11 +43,14 @@
|
||||
#include <sys/conf.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/devconf.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include <machine/cpu.h>
|
||||
#include <machine/pcb.h>
|
||||
#include <machine/trap.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <machine/specialreg.h>
|
||||
|
||||
#include <i386/isa/icu.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/isa.h>
|
||||
@ -302,6 +305,26 @@ npxprobe1(dvp)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_npx[NNPX] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"npx", 0, { MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Floating-point unit"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
npx_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_npx[id->id_unit] = kdc_npx[0];
|
||||
kdc_npx[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_npx[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_npx[id->id_unit]);
|
||||
}
|
||||
|
||||
/*
|
||||
* Attach routine - announce which it is, and wire into system
|
||||
*/
|
||||
@ -318,6 +341,7 @@ npxattach(dvp)
|
||||
}
|
||||
}
|
||||
npxinit(__INITIAL_NPXCW__);
|
||||
npx_registerdev(dvp);
|
||||
return (1); /* XXX unused */
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
* the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000,
|
||||
* and a variety of similar clones.
|
||||
*
|
||||
* $Id: if_ed.c,v 1.52 1994/10/19 01:58:58 wollman Exp $
|
||||
* $Id: if_ed.c,v 1.53 1994/10/22 17:52:22 phk Exp $
|
||||
*/
|
||||
|
||||
#include "ed.h"
|
||||
@ -173,17 +173,22 @@ static unsigned short ed_790_intr_mask[] = {
|
||||
|
||||
static struct kern_devconf kdc_ed[NED] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ed", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ed", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always ``open'' */
|
||||
"" /* description */
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ed_registerdev(struct isa_device *id)
|
||||
ed_registerdev(struct isa_device *id, const char *descr)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_ed[id->id_unit] = kdc_ed[0];
|
||||
kdc_ed[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ed[id->id_unit].kdc_isa = id;
|
||||
kdc_ed[id->id_unit].kdc_parentdata = id;
|
||||
kdc_ed[id->id_unit].kdc_description = descr;
|
||||
dev_attach(&kdc_ed[id->id_unit]);
|
||||
}
|
||||
|
||||
@ -1120,7 +1125,7 @@ ed_attach(isa_dev)
|
||||
* Attach the interface
|
||||
*/
|
||||
if_attach(ifp);
|
||||
ed_registerdev(isa_dev);
|
||||
ed_registerdev(isa_dev, sc->type_str ? sc->type_str : "Ethernet adapter");
|
||||
|
||||
/*
|
||||
* Print additional info when attached
|
||||
|
@ -21,8 +21,8 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* From: if_ep.c,v 1.9 1994/01/25 10:46:29 deraadt Exp $
|
||||
* $Id: if_ep.c,v 1.12 1994/09/03 18:10:43 ats Exp $
|
||||
* From: if_ep.c,v 1.9 1994/01/25 10:46:29 deraadt Exp
|
||||
* $Id: if_ep.c,v 1.13 1994/09/16 13:33:41 davidg Exp $
|
||||
*/
|
||||
|
||||
#include "ep.h"
|
||||
@ -40,6 +40,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/devconf.h>
|
||||
#if defined(__NetBSD__)
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
@ -119,6 +120,26 @@ struct isa_driver epdriver = {
|
||||
"ep"
|
||||
};
|
||||
|
||||
static struct kern_devconf kdc_ep[NEP] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ep", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always ``open'' */
|
||||
"3Com 3C509 Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ep_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_ep[id->id_unit] = kdc_ep[0];
|
||||
kdc_ep[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ep[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_ep[id->id_unit]);
|
||||
}
|
||||
|
||||
static int send_ID_sequence __P((u_short));
|
||||
static u_short epreadeeprom __P((int, int));
|
||||
static int epbusyeeprom __P((int, ushort));
|
||||
@ -377,6 +398,7 @@ epattach(is)
|
||||
ifp->if_watchdog = epwatchdog;
|
||||
|
||||
if_attach(ifp);
|
||||
ep_registerdev(is);
|
||||
|
||||
/*
|
||||
* Fill the hardware address into ifa_addr if we find an
|
||||
|
@ -40,7 +40,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
|
||||
* $Id: fd.c,v 1.35 1994/10/19 01:58:56 wollman Exp $
|
||||
* $Id: fd.c,v 1.36 1994/10/21 16:58:50 joerg Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@ -85,29 +85,50 @@ static int fd_externalize(struct proc *, struct kern_devconf *, void *, size_t);
|
||||
/*
|
||||
* Templates for the kern_devconf structures used when we attach.
|
||||
*/
|
||||
static struct kern_devconf kdc_fd_template = {
|
||||
static struct kern_devconf kdc_fd[NFD] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"fd", 0, { "fdc0", MDDT_DISK, 0 },
|
||||
fd_externalize, 0, fd_goaway, DISK_EXTERNALLEN
|
||||
};
|
||||
"fd", 0, { MDDT_DISK, 0 },
|
||||
fd_externalize, 0, fd_goaway, DISK_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy disk"
|
||||
} };
|
||||
|
||||
static struct kern_devconf kdc_fdc_template = {
|
||||
struct kern_devconf kdc_fdc[NFDC] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"fdc", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, fdc_goaway, ISA_EXTERNALLEN
|
||||
};
|
||||
"fdc", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, fdc_goaway, ISA_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy disk/tape controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
fd_registerdev(int ctlr, int unit)
|
||||
{
|
||||
struct kern_devconf *kdc;
|
||||
if(unit != 0)
|
||||
kdc_fd[unit] = kdc_fd[0];
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc) return;
|
||||
*kdc = kdc_fd_template;
|
||||
kdc->kdc_unit = unit;
|
||||
sprintf(kdc->kdc_md.mddc_parent, "fdc%d", ctlr);
|
||||
dev_attach(kdc);
|
||||
kdc_fd[unit].kdc_unit = unit;
|
||||
kdc_fd[unit].kdc_parent = &kdc_fdc[ctlr];
|
||||
kdc_fd[unit].kdc_parentdata = 0;
|
||||
dev_attach(&kdc_fd[unit]);
|
||||
}
|
||||
|
||||
static inline void
|
||||
fdc_registerdev(struct isa_device *dvp)
|
||||
{
|
||||
int unit = dvp->id_unit;
|
||||
|
||||
if(unit != 0)
|
||||
kdc_fdc[unit] = kdc_fdc[0];
|
||||
|
||||
kdc_fdc[unit].kdc_unit = unit;
|
||||
kdc_fdc[unit].kdc_parent = &kdc_isa0;
|
||||
kdc_fdc[unit].kdc_parentdata = dvp;
|
||||
dev_attach(&kdc_fdc[unit]);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -115,7 +136,6 @@ fdc_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
if(force) {
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
} else {
|
||||
return EBUSY; /* XXX fix */
|
||||
@ -126,7 +146,6 @@ static int
|
||||
fd_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -372,15 +391,8 @@ fdattach(dev)
|
||||
fd_p fd;
|
||||
int fdsu, st0, i;
|
||||
struct isa_device *fdup;
|
||||
struct kern_devconf *kdc;
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc)
|
||||
return 0;
|
||||
*kdc = kdc_fdc_template;
|
||||
kdc->kdc_unit = fdcu;
|
||||
kdc->kdc_isa = dev;
|
||||
dev_attach(kdc);
|
||||
fdc_registerdev(dev);
|
||||
|
||||
fdc->fdcu = fdcu;
|
||||
fdc->flags |= FDC_ATTACHED;
|
||||
|
@ -43,7 +43,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: if_ie.c,v 1.15 1994/09/07 03:34:12 wollman Exp $
|
||||
* $Id: if_ie.c,v 1.16 1994/10/19 01:59:00 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -308,17 +308,22 @@ static int ni_probe(struct isa_device *);
|
||||
|
||||
static struct kern_devconf kdc_ie[NIE] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ie", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ie", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always ``busy'' */
|
||||
""
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ie_registerdev(struct isa_device *id)
|
||||
ie_registerdev(struct isa_device *id, const char *descr)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_ie[id->id_unit] = kdc_ie[0];
|
||||
kdc_ie[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ie[id->id_unit].kdc_isa = id;
|
||||
kdc_ie[id->id_unit].kdc_description = descr;
|
||||
dev_attach(&kdc_ie[id->id_unit]);
|
||||
}
|
||||
|
||||
@ -586,7 +591,7 @@ ieattach(dvp)
|
||||
#endif
|
||||
|
||||
if_attach(ifp);
|
||||
ie_registerdev(dvp);
|
||||
ie_registerdev(dvp, ie_hardware_names[ie_softc[unit].hard_type]);
|
||||
|
||||
{
|
||||
struct ifaddr *ifa = ifp->if_addrlist;
|
||||
|
@ -730,8 +730,12 @@ lnc_tint(int unit)
|
||||
|
||||
static struct kern_devconf kdc_lnc[NLNC] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"lnc", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"lnc", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY,
|
||||
"Generic LANCE-based Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
|
@ -39,7 +39,7 @@
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mcd.c,v 1.24 1994/09/06 21:56:09 se Exp $
|
||||
* $Id: mcd.c,v 1.25 1994/09/14 20:28:25 ache Exp $
|
||||
*/
|
||||
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
|
||||
|
||||
@ -58,6 +58,8 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
|
||||
#include <sys/errno.h>
|
||||
#include <sys/dkbad.h>
|
||||
#include <sys/disklabel.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/mcdreg.h>
|
||||
@ -197,6 +199,27 @@ struct isa_driver mcddriver = { mcd_probe, mcd_attach, "mcd" };
|
||||
#define MIN_DELAY 15
|
||||
#define DELAY_GETREPLY 1300000
|
||||
|
||||
static struct kern_devconf kdc_mcd[NMCD] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"mcd", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_IDLE, /* status */
|
||||
"Mitsumi CD-ROM controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
mcd_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_mcd[id->id_unit] = kdc_mcd[0];
|
||||
kdc_mcd[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_mcd[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_mcd[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
int mcd_attach(struct isa_device *dev)
|
||||
{
|
||||
struct mcd_data *cd = mcd_data + dev->id_unit;
|
||||
@ -210,6 +233,7 @@ int mcd_attach(struct isa_device *dev)
|
||||
/* wire controller for interrupts and dma */
|
||||
mcd_configure(cd);
|
||||
#endif
|
||||
mcd_registerdev(dev);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -266,6 +290,7 @@ MCD_TRACE("open: partition=%d, disksize = %d, blksize=%d\n",
|
||||
cd->openflags |= (1<<part);
|
||||
if (part == RAW_PART && phys != 0)
|
||||
cd->partflags[part] |= MCDREADRAW;
|
||||
kdc_mcd[unit].kdc_state = DC_BUSY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -288,6 +313,7 @@ int mcdclose(dev_t dev)
|
||||
if (!(cd->flags & MCDINIT))
|
||||
return ENXIO;
|
||||
|
||||
kdc_mcd[unit].kdc_state = DC_IDLE;
|
||||
if (mcd_getstat(unit,1) == -2)
|
||||
return 0;
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*
|
||||
* $Id: mse.c,v 1.6 1994/08/13 03:50:10 wollman Exp $
|
||||
* $Id: mse.c,v 1.7 1994/10/21 01:19:07 wollman Exp $
|
||||
*/
|
||||
/*
|
||||
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
|
||||
@ -53,6 +53,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/tty.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/icu.h>
|
||||
@ -174,6 +175,26 @@ mseprobe(idp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_mse[NMSE] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"mse", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"ATI or Logitech bus mouse adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
mse_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_mse[id->id_unit] = kdc_mse[0];
|
||||
kdc_mse[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_mse[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_mse[id->id_unit]);
|
||||
}
|
||||
|
||||
int
|
||||
mseattach(idp)
|
||||
struct isa_device *idp;
|
||||
@ -181,6 +202,7 @@ mseattach(idp)
|
||||
struct mse_softc *sc = &mse_sc[idp->id_unit];
|
||||
|
||||
sc->sc_port = idp->id_iobase;
|
||||
mse_registerdev(idp);
|
||||
return (1);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
||||
* $Id: sio.c,v 1.56 1994/10/19 21:38:19 bde Exp $
|
||||
* $Id: sio.c,v 1.57 1994/10/20 00:45:36 phk Exp $
|
||||
*/
|
||||
|
||||
#include "sio.h"
|
||||
@ -57,6 +57,7 @@
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/clock.h>
|
||||
|
||||
@ -526,6 +527,27 @@ sioprobe(dev)
|
||||
return (result);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_sio[NSIO] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sio", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"RS-232 serial port"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
sio_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_sio[id->id_unit] = kdc_sio[0];
|
||||
kdc_sio[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_sio[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_sio[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
sioattach(isdp)
|
||||
struct isa_device *isdp;
|
||||
@ -660,6 +682,8 @@ determined_type: ;
|
||||
#endif /* COM_MULTIPORT */
|
||||
printf("\n");
|
||||
|
||||
sio_registerdev(isdp);
|
||||
|
||||
#ifdef KGDB
|
||||
if (kgdb_dev == makedev(commajor, unit)) {
|
||||
if (unit == comconsole)
|
||||
|
@ -35,7 +35,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: syscons.c,v 1.69 1994/10/18 03:34:53 ache Exp $
|
||||
* $Id: syscons.c,v 1.70 1994/10/20 00:08:20 phk Exp $
|
||||
*/
|
||||
|
||||
#include "sc.h"
|
||||
@ -55,10 +55,13 @@
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/console.h>
|
||||
#include <machine/psl.h>
|
||||
#include <machine/frame.h>
|
||||
#include <machine/pc/display.h>
|
||||
|
||||
#include <i386/isa/isa.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/timerreg.h>
|
||||
@ -336,6 +339,27 @@ pcprobe(struct isa_device *dev)
|
||||
return (IO_KBDSIZE);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_sc[NSC] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sc", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Parallel printer adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
sc_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_sc[id->id_unit] = kdc_sc[0];
|
||||
kdc_sc[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_sc[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_sc[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
pcattach(struct isa_device *dev)
|
||||
{
|
||||
@ -386,6 +410,7 @@ pcattach(struct isa_device *dev)
|
||||
/* get cursor going */
|
||||
cursor_pos(1);
|
||||
update_leds(console[0].status);
|
||||
sc_registerdev(dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
*
|
||||
* commenced: Sun Sep 27 18:14:01 PDT 1992
|
||||
*
|
||||
* $Id: aha1742.c,v 1.22 1994/09/16 13:33:34 davidg Exp $
|
||||
* $Id: aha1742.c,v 1.23 1994/10/19 01:58:51 wollman Exp $
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -319,8 +319,12 @@ struct scsi_device ahb_dev =
|
||||
|
||||
static struct kern_devconf kdc_ahb[NAHB] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ahb", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ahb", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always ``in use'' */
|
||||
"Adaptec 174x-series SCSI host adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
@ -329,7 +333,7 @@ ahb_registerdev(struct isa_device *id)
|
||||
if(id->id_unit)
|
||||
kdc_ahb[id->id_unit] = kdc_ahb[0];
|
||||
kdc_ahb[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ahb[id->id_unit].kdc_isa = id;
|
||||
kdc_ahb[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_ahb[id->id_unit]);
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: devconf.h,v 1.2 1994/10/17 23:33:52 wollman Exp $
|
||||
* $Id: devconf.h,v 1.4 1994/10/19 01:58:42 wollman Exp $
|
||||
*/
|
||||
/*
|
||||
* devconf.h - machine-dependent device configuration table
|
||||
@ -50,23 +50,21 @@ enum machdep_devtype { MDDT_CPU, MDDT_ISA, MDDT_EISA, MDDT_PCI, MDDT_SCSI,
|
||||
}
|
||||
|
||||
struct machdep_devconf {
|
||||
char mddc_parent[PARENTNAMELEN];
|
||||
enum machdep_devtype mddc_devtype;
|
||||
int mddc_flags;
|
||||
/*
|
||||
* The user doesn't need to see this, but it's useful in the kernel code.
|
||||
*/
|
||||
union {
|
||||
struct isa_device *mddcu_isa;
|
||||
struct scsi_link *mddcu_scsi;
|
||||
} mddc_un;
|
||||
char mddc_imask[4];
|
||||
};
|
||||
|
||||
#define dc_parent dc_md.mddc_parent
|
||||
#define MDDC_SCSI { MDDT_SCSI, 0 }
|
||||
#define MDDC_SCBUS { MDDT_BUS, 0 }
|
||||
|
||||
#define machdep_kdevconf machdep_devconf
|
||||
#define MACHDEP_COPYDEV(dc, kdc) ((dc)->dc_md = (kdc)->kdc_md)
|
||||
|
||||
#define dc_devtype dc_md.mddc_devtype
|
||||
#define dc_flags dc_md.mddc_flags
|
||||
#define kdc_isa kdc_md.mddc_un.mddcu_isa
|
||||
#define kdc_scsi kdc_md.mddc_un.mddcu_scsi
|
||||
#define kdc_isa kdc_parentdata
|
||||
#define kdc_scsi kdc_parentdata
|
||||
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/pci/pcireg.h>
|
||||
|
@ -12,7 +12,7 @@
|
||||
* on the understanding that TFS is not responsible for the correct
|
||||
* functioning of this software in any circumstances.
|
||||
*
|
||||
* $Id: aha1542.c,v 1.36 1994/10/10 01:12:23 phk Exp $
|
||||
* $Id: aha1542.c,v 1.37 1994/10/19 01:58:50 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -347,8 +347,12 @@ struct isa_driver ahadriver =
|
||||
|
||||
static struct kern_devconf kdc_aha[NAHA] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"aha", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"aha", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always busy */
|
||||
"Adaptec 154x-series SCSI host adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
@ -357,7 +361,7 @@ aha_registerdev(struct isa_device *id)
|
||||
if(id->id_unit)
|
||||
kdc_aha[id->id_unit] = kdc_aha[0];
|
||||
kdc_aha[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_aha[id->id_unit].kdc_isa = id;
|
||||
kdc_aha[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_aha[id->id_unit]);
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
*
|
||||
* commenced: Sun Sep 27 18:14:01 PDT 1992
|
||||
*
|
||||
* $Id: aha1742.c,v 1.22 1994/09/16 13:33:34 davidg Exp $
|
||||
* $Id: aha1742.c,v 1.23 1994/10/19 01:58:51 wollman Exp $
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -319,8 +319,12 @@ struct scsi_device ahb_dev =
|
||||
|
||||
static struct kern_devconf kdc_ahb[NAHB] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ahb", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ahb", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always ``in use'' */
|
||||
"Adaptec 174x-series SCSI host adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
@ -329,7 +333,7 @@ ahb_registerdev(struct isa_device *id)
|
||||
if(id->id_unit)
|
||||
kdc_ahb[id->id_unit] = kdc_ahb[0];
|
||||
kdc_ahb[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ahb[id->id_unit].kdc_isa = id;
|
||||
kdc_ahb[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_ahb[id->id_unit]);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id: aic6360.c,v 1.1 1994/09/26 16:15:45 jkh Exp $
|
||||
* $Id: aic6360.c,v 1.2 1994/10/19 01:58:53 wollman Exp $
|
||||
*
|
||||
* Acknowledgements: Many of the algorithms used in this driver are
|
||||
* inspired by the work of Julian Elischer (julian@tfs.com) and
|
||||
@ -751,8 +751,12 @@ struct scsi_device aic_dev = {
|
||||
|
||||
static struct kern_devconf kdc_aic[NAIC] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"aic", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"aic", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always busy */
|
||||
"Adaptec AIC-6360 SCSI host adapter chipset"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
@ -761,7 +765,7 @@ aic_registerdev(struct isa_device *id)
|
||||
if(id->id_unit)
|
||||
kdc_aic[id->id_unit] = kdc_aic[0];
|
||||
kdc_aic[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_aic[id->id_unit].kdc_isa = id;
|
||||
kdc_aic[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_aic[id->id_unit]);
|
||||
}
|
||||
|
||||
|
@ -518,8 +518,12 @@ bquioctl(dev_t dev, int cmd, caddr_t addr, int flag, struct proc *p)
|
||||
|
||||
static struct kern_devconf kdc_bqu[NBQU] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"bqu", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"bqu", 0, { MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* we don't support this yet */
|
||||
"B004-compatible Transputer board"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
@ -528,7 +532,7 @@ bqu_registerdev(struct isa_device *id)
|
||||
if(id->id_unit)
|
||||
kdc_bqu[id->id_unit] = kdc_bqu[0];
|
||||
kdc_bqu[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_bqu[id->id_unit].kdc_isa = id;
|
||||
kdc_bqu[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_bqu[id->id_unit]);
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
* on the understanding that TFS is not responsible for the correct
|
||||
* functioning of this software in any circumstances.
|
||||
*
|
||||
* $Id: bt742a.c,v 1.27 1994/10/12 04:15:30 phk Exp $
|
||||
* $Id: bt742a.c,v 1.28 1994/10/17 21:16:35 phk Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -51,6 +51,7 @@
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <scsi/scsi_all.h>
|
||||
#include <scsi/scsiconf.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#ifdef KERNEL
|
||||
#include <sys/kernel.h>
|
||||
@ -435,6 +436,26 @@ struct scsi_device bt_dev =
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static struct kern_devconf kdc_bt[NBT] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"bt", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always busy */
|
||||
"Buslogic 742-compatible SCSI host adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
bt_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_bt[id->id_unit] = kdc_bt[0];
|
||||
kdc_bt[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_bt[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_bt[id->id_unit]);
|
||||
}
|
||||
|
||||
#endif /*KERNEL */
|
||||
|
||||
#define BT_RESET_TIMEOUT 1000
|
||||
@ -658,6 +679,7 @@ btattach(dev)
|
||||
bt->sc_link.device = &bt_dev;
|
||||
bt->sc_link.flags = SDEV_BOUNCE;
|
||||
|
||||
bt_registerdev(dev);
|
||||
/*
|
||||
* ask the adapter what subunits are present
|
||||
*/
|
||||
|
@ -8,7 +8,7 @@
|
||||
* of this software, nor does the author assume any responsibility
|
||||
* for damages incurred with its use.
|
||||
*
|
||||
* $Id: ctx.c,v 1.2 1994/10/19 01:58:55 wollman Exp $
|
||||
* $Id: ctx.c,v 1.3 1994/10/21 01:19:05 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -156,8 +156,12 @@ struct ctx_soft_registers {
|
||||
|
||||
static struct kern_devconf kdc_ctx[NCTX] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ctx", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ctx", 0, { MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"CORTEX-I frame grabber"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
|
@ -40,7 +40,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
|
||||
* $Id: fd.c,v 1.35 1994/10/19 01:58:56 wollman Exp $
|
||||
* $Id: fd.c,v 1.36 1994/10/21 16:58:50 joerg Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@ -85,29 +85,50 @@ static int fd_externalize(struct proc *, struct kern_devconf *, void *, size_t);
|
||||
/*
|
||||
* Templates for the kern_devconf structures used when we attach.
|
||||
*/
|
||||
static struct kern_devconf kdc_fd_template = {
|
||||
static struct kern_devconf kdc_fd[NFD] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"fd", 0, { "fdc0", MDDT_DISK, 0 },
|
||||
fd_externalize, 0, fd_goaway, DISK_EXTERNALLEN
|
||||
};
|
||||
"fd", 0, { MDDT_DISK, 0 },
|
||||
fd_externalize, 0, fd_goaway, DISK_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy disk"
|
||||
} };
|
||||
|
||||
static struct kern_devconf kdc_fdc_template = {
|
||||
struct kern_devconf kdc_fdc[NFDC] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"fdc", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, fdc_goaway, ISA_EXTERNALLEN
|
||||
};
|
||||
"fdc", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, fdc_goaway, ISA_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy disk/tape controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
fd_registerdev(int ctlr, int unit)
|
||||
{
|
||||
struct kern_devconf *kdc;
|
||||
if(unit != 0)
|
||||
kdc_fd[unit] = kdc_fd[0];
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc) return;
|
||||
*kdc = kdc_fd_template;
|
||||
kdc->kdc_unit = unit;
|
||||
sprintf(kdc->kdc_md.mddc_parent, "fdc%d", ctlr);
|
||||
dev_attach(kdc);
|
||||
kdc_fd[unit].kdc_unit = unit;
|
||||
kdc_fd[unit].kdc_parent = &kdc_fdc[ctlr];
|
||||
kdc_fd[unit].kdc_parentdata = 0;
|
||||
dev_attach(&kdc_fd[unit]);
|
||||
}
|
||||
|
||||
static inline void
|
||||
fdc_registerdev(struct isa_device *dvp)
|
||||
{
|
||||
int unit = dvp->id_unit;
|
||||
|
||||
if(unit != 0)
|
||||
kdc_fdc[unit] = kdc_fdc[0];
|
||||
|
||||
kdc_fdc[unit].kdc_unit = unit;
|
||||
kdc_fdc[unit].kdc_parent = &kdc_isa0;
|
||||
kdc_fdc[unit].kdc_parentdata = dvp;
|
||||
dev_attach(&kdc_fdc[unit]);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -115,7 +136,6 @@ fdc_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
if(force) {
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
} else {
|
||||
return EBUSY; /* XXX fix */
|
||||
@ -126,7 +146,6 @@ static int
|
||||
fd_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -372,15 +391,8 @@ fdattach(dev)
|
||||
fd_p fd;
|
||||
int fdsu, st0, i;
|
||||
struct isa_device *fdup;
|
||||
struct kern_devconf *kdc;
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc)
|
||||
return 0;
|
||||
*kdc = kdc_fdc_template;
|
||||
kdc->kdc_unit = fdcu;
|
||||
kdc->kdc_isa = dev;
|
||||
dev_attach(kdc);
|
||||
fdc_registerdev(dev);
|
||||
|
||||
fdc->fdcu = fdcu;
|
||||
fdc->flags |= FDC_ATTACHED;
|
||||
|
@ -17,7 +17,7 @@
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* ft.c - QIC-40/80 floppy tape driver
|
||||
* $Id: ft.c,v 1.7 1994/06/22 05:52:36 jkh Exp $
|
||||
* $Id: ft.c,v 1.12 1994/09/25 06:04:23 phk Exp $
|
||||
*
|
||||
* 06/07/94 v0.9 ++sg
|
||||
* Tape stuck on segment problem should be gone. Re-wrote buffering
|
||||
@ -75,6 +75,8 @@
|
||||
#include <sys/buf.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/ftape.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/cpufunc.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/fdreg.h>
|
||||
@ -392,6 +394,39 @@ segio_free(ft_p ft, SegReq *sp)
|
||||
DPRT(("segio_free: nfree=%d ndone=%d nreq=%d\n", ft->nfreelist, ft->ndoneq, ft->nsegq));
|
||||
}
|
||||
|
||||
static int ft_externalize(struct proc *, struct kern_devconf *, void *,
|
||||
size_t);
|
||||
|
||||
extern struct kern_devconf kdc_fdc[];
|
||||
static struct kern_devconf kdc_ft[NFT] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"ft", 0, { MDDT_DISK, 0 },
|
||||
ft_externalize, 0, 0, DISK_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy tape"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ft_registerdev(int ctlr, int unit)
|
||||
{
|
||||
if(unit != 0)
|
||||
kdc_ft[unit] = kdc_ft[0];
|
||||
|
||||
kdc_ft[unit].kdc_unit = unit;
|
||||
kdc_ft[unit].kdc_parent = &kdc_fdc[ctlr];
|
||||
kdc_ft[unit].kdc_parentdata = 0;
|
||||
dev_attach(&kdc_ft[unit]);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
ft_externalize(struct proc *p, struct kern_devconf *kdc, void *userp,
|
||||
size_t len)
|
||||
{
|
||||
return disk_externalize(ft_data[kdc->kdc_unit].ftsu, userp, &len);
|
||||
}
|
||||
|
||||
/*
|
||||
* Probe/attach floppy tapes.
|
||||
@ -503,6 +538,7 @@ ftattach(isadev, fdup)
|
||||
break;
|
||||
}
|
||||
printf(" [%d: ft%d: %s tape]", fdup->id_physid, fdup->id_unit, manu);
|
||||
ft_registerdev(fdcu, ftu);
|
||||
}
|
||||
ft->attaching = 0;
|
||||
return(ft->type);
|
||||
|
@ -13,7 +13,7 @@
|
||||
* the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000,
|
||||
* and a variety of similar clones.
|
||||
*
|
||||
* $Id: if_ed.c,v 1.52 1994/10/19 01:58:58 wollman Exp $
|
||||
* $Id: if_ed.c,v 1.53 1994/10/22 17:52:22 phk Exp $
|
||||
*/
|
||||
|
||||
#include "ed.h"
|
||||
@ -173,17 +173,22 @@ static unsigned short ed_790_intr_mask[] = {
|
||||
|
||||
static struct kern_devconf kdc_ed[NED] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ed", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ed", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always ``open'' */
|
||||
"" /* description */
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ed_registerdev(struct isa_device *id)
|
||||
ed_registerdev(struct isa_device *id, const char *descr)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_ed[id->id_unit] = kdc_ed[0];
|
||||
kdc_ed[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ed[id->id_unit].kdc_isa = id;
|
||||
kdc_ed[id->id_unit].kdc_parentdata = id;
|
||||
kdc_ed[id->id_unit].kdc_description = descr;
|
||||
dev_attach(&kdc_ed[id->id_unit]);
|
||||
}
|
||||
|
||||
@ -1120,7 +1125,7 @@ ed_attach(isa_dev)
|
||||
* Attach the interface
|
||||
*/
|
||||
if_attach(ifp);
|
||||
ed_registerdev(isa_dev);
|
||||
ed_registerdev(isa_dev, sc->type_str ? sc->type_str : "Ethernet adapter");
|
||||
|
||||
/*
|
||||
* Print additional info when attached
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Questions, comments, bug reports and fixes to kimmel@cs.umass.edu.
|
||||
*
|
||||
* $Id: if_el.c,v 1.6 1994/10/19 01:58:59 wollman Exp $
|
||||
* $Id: if_el.c,v 1.7 1994/10/21 01:19:06 wollman Exp $
|
||||
*/
|
||||
/* Except of course for the portions of code lifted from other FreeBSD
|
||||
* drivers (mainly elread, elget and el_ioctl)
|
||||
@ -100,8 +100,12 @@ struct isa_driver eldriver = {
|
||||
|
||||
static struct kern_devconf kdc_el[NEL] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"el", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"el", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always busy */
|
||||
"3Com 3C501 Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
|
@ -21,8 +21,8 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* From: if_ep.c,v 1.9 1994/01/25 10:46:29 deraadt Exp $
|
||||
* $Id: if_ep.c,v 1.12 1994/09/03 18:10:43 ats Exp $
|
||||
* From: if_ep.c,v 1.9 1994/01/25 10:46:29 deraadt Exp
|
||||
* $Id: if_ep.c,v 1.13 1994/09/16 13:33:41 davidg Exp $
|
||||
*/
|
||||
|
||||
#include "ep.h"
|
||||
@ -40,6 +40,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/devconf.h>
|
||||
#if defined(__NetBSD__)
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
@ -119,6 +120,26 @@ struct isa_driver epdriver = {
|
||||
"ep"
|
||||
};
|
||||
|
||||
static struct kern_devconf kdc_ep[NEP] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ep", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always ``open'' */
|
||||
"3Com 3C509 Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ep_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_ep[id->id_unit] = kdc_ep[0];
|
||||
kdc_ep[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ep[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_ep[id->id_unit]);
|
||||
}
|
||||
|
||||
static int send_ID_sequence __P((u_short));
|
||||
static u_short epreadeeprom __P((int, int));
|
||||
static int epbusyeeprom __P((int, ushort));
|
||||
@ -377,6 +398,7 @@ epattach(is)
|
||||
ifp->if_watchdog = epwatchdog;
|
||||
|
||||
if_attach(ifp);
|
||||
ep_registerdev(is);
|
||||
|
||||
/*
|
||||
* Fill the hardware address into ifa_addr if we find an
|
||||
|
@ -43,7 +43,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: if_ie.c,v 1.15 1994/09/07 03:34:12 wollman Exp $
|
||||
* $Id: if_ie.c,v 1.16 1994/10/19 01:59:00 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -308,17 +308,22 @@ static int ni_probe(struct isa_device *);
|
||||
|
||||
static struct kern_devconf kdc_ie[NIE] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ie", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"ie", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always ``busy'' */
|
||||
""
|
||||
} };
|
||||
|
||||
static inline void
|
||||
ie_registerdev(struct isa_device *id)
|
||||
ie_registerdev(struct isa_device *id, const char *descr)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_ie[id->id_unit] = kdc_ie[0];
|
||||
kdc_ie[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_ie[id->id_unit].kdc_isa = id;
|
||||
kdc_ie[id->id_unit].kdc_description = descr;
|
||||
dev_attach(&kdc_ie[id->id_unit]);
|
||||
}
|
||||
|
||||
@ -586,7 +591,7 @@ ieattach(dvp)
|
||||
#endif
|
||||
|
||||
if_attach(ifp);
|
||||
ie_registerdev(dvp);
|
||||
ie_registerdev(dvp, ie_hardware_names[ie_softc[unit].hard_type]);
|
||||
|
||||
{
|
||||
struct ifaddr *ifa = ifp->if_addrlist;
|
||||
|
@ -11,7 +11,7 @@
|
||||
* of this software, nor does the author assume any responsibility
|
||||
* for damages incurred with its use.
|
||||
*
|
||||
* $Id: if_is.c,v 1.27 1994/09/21 18:33:23 davidg Exp $
|
||||
* $Id: if_is.c,v 1.28 1994/10/19 01:59:02 wollman Exp $
|
||||
*/
|
||||
|
||||
/* TODO
|
||||
@ -142,8 +142,12 @@ u_short isrdcsr(unit,port)
|
||||
|
||||
static struct kern_devconf kdc_is[NIS] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"is", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"is", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always busy */
|
||||
"Isolan AT 4141-0, Isolink 4110, or NE2100 Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
|
@ -21,9 +21,13 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: if_le.c,v 1.7 1994/10/12 11:39:37 se Exp $
|
||||
* $Id: if_le.c,v 1.8 1994/10/19 01:59:03 wollman Exp $
|
||||
*
|
||||
* $Log: if_le.c,v $
|
||||
* Revision 1.8 1994/10/19 01:59:03 wollman
|
||||
* Add support for devconf to a large number of device drivers, and do
|
||||
* the right thing in dev_goawayall() when kdc_goaway is null.
|
||||
*
|
||||
* Revision 1.7 1994/10/12 11:39:37 se
|
||||
* Submitted by: Matt Thomas <thomas@lkg.dec.com>
|
||||
* #ifdef MULTICAST removed.
|
||||
@ -337,8 +341,12 @@ unsigned le_intrs[NLE];
|
||||
|
||||
static struct kern_devconf kdc_le[NLE] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"le", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"le", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* network interfaces are always busy */
|
||||
"DEC EtherWorks II or EtherWorks III Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
|
@ -730,8 +730,12 @@ lnc_tint(int unit)
|
||||
|
||||
static struct kern_devconf kdc_lnc[NLNC] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"lnc", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN
|
||||
"lnc", 0, { MDDT_ISA, 0, "net" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY,
|
||||
"Generic LANCE-based Ethernet adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
|
@ -46,6 +46,10 @@
|
||||
* ETO, Toshihisa <eto@osl.fujitsu.co.jp>
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include "ze.h"
|
||||
#if NZE > 0
|
||||
#include "bpfilter.h"
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)isa.c 7.2 (Berkeley) 5/13/91
|
||||
* $Id: isa.c,v 1.30 1994/10/19 01:59:06 wollman Exp $
|
||||
* $Id: isa.c,v 1.31 1994/10/19 21:57:51 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -106,6 +106,16 @@ inthand2_t *intr_handler[ICU_LEN];
|
||||
u_int intr_mask[ICU_LEN];
|
||||
int intr_unit[ICU_LEN];
|
||||
|
||||
struct kern_devconf kdc_isa0 = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"isa", 0, { MDDT_BUS, 0 },
|
||||
0, 0, 0, BUS_EXTERNALLEN,
|
||||
0, /* no parent yet; parent should be CPU */
|
||||
0, /* no parentdata */
|
||||
DC_BUSY, /* busses are always busy */
|
||||
"ISA or EISA bus"
|
||||
};
|
||||
|
||||
static inthand_t *fastintr[ICU_LEN] = {
|
||||
&IDTVEC(fastintr0), &IDTVEC(fastintr1),
|
||||
&IDTVEC(fastintr2), &IDTVEC(fastintr3),
|
||||
@ -270,6 +280,8 @@ void
|
||||
isa_configure() {
|
||||
struct isa_device *dvp;
|
||||
|
||||
dev_attach(&kdc_isa0);
|
||||
|
||||
splhigh();
|
||||
enable_intr();
|
||||
INTREN(IRQ_SLAVE);
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)isa_device.h 7.1 (Berkeley) 5/9/91
|
||||
* $Id: isa_device.h,v 1.12 1994/10/17 21:16:39 phk Exp $
|
||||
* $Id: isa_device.h,v 1.14 1994/10/19 01:59:07 wollman Exp $
|
||||
*/
|
||||
|
||||
#ifndef _I386_ISA_ISA_DEVICE_H_
|
||||
@ -142,6 +142,7 @@ extern int eisa_externalize(struct isa_device *, int, void *, size_t *);
|
||||
struct kern_devconf;
|
||||
extern int isa_generic_externalize(struct proc *, struct kern_devconf *, void *, size_t);
|
||||
extern int eisa_generic_externalize(struct proc *,struct kern_devconf *, void *, size_t);
|
||||
extern struct kern_devconf kdc_isa0;
|
||||
#endif /* KERNEL */
|
||||
|
||||
#endif /* _I386_ISA_ISA_DEVICE_H_ */
|
||||
|
@ -46,7 +46,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: unknown origin, 386BSD 0.1
|
||||
* $Id: lpt.c,v 1.19 1994/09/18 06:12:45 phk Exp $
|
||||
* $Id: lpt.c,v 1.20 1994/10/10 01:12:27 phk Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -112,6 +112,7 @@
|
||||
#include <sys/tty.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
@ -254,6 +255,27 @@ struct isa_driver lptdriver = {
|
||||
};
|
||||
|
||||
|
||||
static struct kern_devconf kdc_lpt[NLPT] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"lpt", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Parallel printer adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
lpt_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_lpt[id->id_unit] = kdc_lpt[0];
|
||||
kdc_lpt[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_lpt[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_lpt[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Internal routine to lptprobe to do port tests of one byte value
|
||||
@ -406,6 +428,8 @@ lptattach(struct isa_device *isdp)
|
||||
}
|
||||
lprintf("irq %x\n", sc->sc_irq);
|
||||
|
||||
lpt_registerdev(isdp);
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mcd.c,v 1.24 1994/09/06 21:56:09 se Exp $
|
||||
* $Id: mcd.c,v 1.25 1994/09/14 20:28:25 ache Exp $
|
||||
*/
|
||||
static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
|
||||
|
||||
@ -58,6 +58,8 @@ static char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
|
||||
#include <sys/errno.h>
|
||||
#include <sys/dkbad.h>
|
||||
#include <sys/disklabel.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/mcdreg.h>
|
||||
@ -197,6 +199,27 @@ struct isa_driver mcddriver = { mcd_probe, mcd_attach, "mcd" };
|
||||
#define MIN_DELAY 15
|
||||
#define DELAY_GETREPLY 1300000
|
||||
|
||||
static struct kern_devconf kdc_mcd[NMCD] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"mcd", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_IDLE, /* status */
|
||||
"Mitsumi CD-ROM controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
mcd_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_mcd[id->id_unit] = kdc_mcd[0];
|
||||
kdc_mcd[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_mcd[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_mcd[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
int mcd_attach(struct isa_device *dev)
|
||||
{
|
||||
struct mcd_data *cd = mcd_data + dev->id_unit;
|
||||
@ -210,6 +233,7 @@ int mcd_attach(struct isa_device *dev)
|
||||
/* wire controller for interrupts and dma */
|
||||
mcd_configure(cd);
|
||||
#endif
|
||||
mcd_registerdev(dev);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -266,6 +290,7 @@ MCD_TRACE("open: partition=%d, disksize = %d, blksize=%d\n",
|
||||
cd->openflags |= (1<<part);
|
||||
if (part == RAW_PART && phys != 0)
|
||||
cd->partflags[part] |= MCDREADRAW;
|
||||
kdc_mcd[unit].kdc_state = DC_BUSY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -288,6 +313,7 @@ int mcdclose(dev_t dev)
|
||||
if (!(cd->flags & MCDINIT))
|
||||
return ENXIO;
|
||||
|
||||
kdc_mcd[unit].kdc_state = DC_IDLE;
|
||||
if (mcd_getstat(unit,1) == -2)
|
||||
return 0;
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*
|
||||
* $Id: mse.c,v 1.6 1994/08/13 03:50:10 wollman Exp $
|
||||
* $Id: mse.c,v 1.7 1994/10/21 01:19:07 wollman Exp $
|
||||
*/
|
||||
/*
|
||||
* Driver for the Logitech and ATI Inport Bus mice for use with 386bsd and
|
||||
@ -53,6 +53,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/tty.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/icu.h>
|
||||
@ -174,6 +175,26 @@ mseprobe(idp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_mse[NMSE] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"mse", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"ATI or Logitech bus mouse adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
mse_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_mse[id->id_unit] = kdc_mse[0];
|
||||
kdc_mse[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_mse[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_mse[id->id_unit]);
|
||||
}
|
||||
|
||||
int
|
||||
mseattach(idp)
|
||||
struct isa_device *idp;
|
||||
@ -181,6 +202,7 @@ mseattach(idp)
|
||||
struct mse_softc *sc = &mse_sc[idp->id_unit];
|
||||
|
||||
sc->sc_port = idp->id_iobase;
|
||||
mse_registerdev(idp);
|
||||
return (1);
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)npx.c 7.2 (Berkeley) 5/12/91
|
||||
* $Id: npx.c,v 1.13 1994/09/22 14:44:16 davidg Exp $
|
||||
* $Id: npx.c,v 1.14 1994/10/08 22:27:58 phk Exp $
|
||||
*/
|
||||
|
||||
#include "npx.h"
|
||||
@ -43,11 +43,14 @@
|
||||
#include <sys/conf.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/devconf.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#include <machine/cpu.h>
|
||||
#include <machine/pcb.h>
|
||||
#include <machine/trap.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <machine/specialreg.h>
|
||||
|
||||
#include <i386/isa/icu.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/isa.h>
|
||||
@ -302,6 +305,26 @@ npxprobe1(dvp)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_npx[NNPX] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"npx", 0, { MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Floating-point unit"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
npx_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_npx[id->id_unit] = kdc_npx[0];
|
||||
kdc_npx[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_npx[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_npx[id->id_unit]);
|
||||
}
|
||||
|
||||
/*
|
||||
* Attach routine - announce which it is, and wire into system
|
||||
*/
|
||||
@ -318,6 +341,7 @@ npxattach(dvp)
|
||||
}
|
||||
}
|
||||
npxinit(__INITIAL_NPXCW__);
|
||||
npx_registerdev(dvp);
|
||||
return (1); /* XXX unused */
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
* $Id: pas.c,v 1.4 1994/09/16 13:33:46 davidg Exp $
|
||||
* $Id: pas.c,v 1.5 1994/10/18 03:53:12 phk Exp $
|
||||
*
|
||||
* This is a driver for the one particular kind of the "ProAudioSpectrum"
|
||||
* card from MediaVision. To find out if your card is supported, you can
|
||||
@ -70,14 +70,15 @@
|
||||
#include "pas.h"
|
||||
#if NPAS > 0
|
||||
|
||||
#include "param.h"
|
||||
#include "systm.h"
|
||||
#include "types.h"
|
||||
#include "buf.h"
|
||||
#include "i386/isa/isa_device.h"
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/buf.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/ic/ncr_5380.h>
|
||||
#include <scsi/scsi_all.h>
|
||||
#include <scsi/scsiconf.h>
|
||||
#include "ic/ncr_5380.h"
|
||||
|
||||
/*
|
||||
* Define this macro to disable the PSEUDO-DMA transfers.
|
||||
@ -306,6 +307,26 @@ pas_adapter_info(int adapter_number)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_pas[NPAS] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"pas", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always busy */
|
||||
"Media Vision ProAudioSpectrum SCSI host adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
pas_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_pas[id->id_unit] = kdc_pas[0];
|
||||
kdc_pas[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_pas[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_pas[id->id_unit]);
|
||||
}
|
||||
|
||||
int
|
||||
pasattach(struct isa_device *dev)
|
||||
{
|
||||
@ -336,6 +357,7 @@ pasattach(struct isa_device *dev)
|
||||
outb(base^0xbc00,0x01);
|
||||
outb(base^0x8003,0x4d);
|
||||
|
||||
pas_registerdev(dev);
|
||||
scsi_attachdevs(&(ppas->sc_link));
|
||||
pas_reset(dev->id_unit);
|
||||
return 1;
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
||||
* $Id: sio.c,v 1.56 1994/10/19 21:38:19 bde Exp $
|
||||
* $Id: sio.c,v 1.57 1994/10/20 00:45:36 phk Exp $
|
||||
*/
|
||||
|
||||
#include "sio.h"
|
||||
@ -57,6 +57,7 @@
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/clock.h>
|
||||
|
||||
@ -526,6 +527,27 @@ sioprobe(dev)
|
||||
return (result);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_sio[NSIO] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sio", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"RS-232 serial port"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
sio_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_sio[id->id_unit] = kdc_sio[0];
|
||||
kdc_sio[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_sio[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_sio[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
sioattach(isdp)
|
||||
struct isa_device *isdp;
|
||||
@ -660,6 +682,8 @@ determined_type: ;
|
||||
#endif /* COM_MULTIPORT */
|
||||
printf("\n");
|
||||
|
||||
sio_registerdev(isdp);
|
||||
|
||||
#ifdef KGDB
|
||||
if (kgdb_dev == makedev(commajor, unit)) {
|
||||
if (unit == comconsole)
|
||||
|
@ -35,7 +35,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: syscons.c,v 1.69 1994/10/18 03:34:53 ache Exp $
|
||||
* $Id: syscons.c,v 1.70 1994/10/20 00:08:20 phk Exp $
|
||||
*/
|
||||
|
||||
#include "sc.h"
|
||||
@ -55,10 +55,13 @@
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/console.h>
|
||||
#include <machine/psl.h>
|
||||
#include <machine/frame.h>
|
||||
#include <machine/pc/display.h>
|
||||
|
||||
#include <i386/isa/isa.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/timerreg.h>
|
||||
@ -336,6 +339,27 @@ pcprobe(struct isa_device *dev)
|
||||
return (IO_KBDSIZE);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_sc[NSC] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sc", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Parallel printer adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
sc_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_sc[id->id_unit] = kdc_sc[0];
|
||||
kdc_sc[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_sc[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_sc[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
pcattach(struct isa_device *dev)
|
||||
{
|
||||
@ -386,6 +410,7 @@ pcattach(struct isa_device *dev)
|
||||
/* get cursor going */
|
||||
cursor_pos(1);
|
||||
update_leds(console[0].status);
|
||||
sc_registerdev(dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
* today: Fri Jun 2 17:21:03 EST 1994
|
||||
* added 24F support ++sg
|
||||
*
|
||||
* $Id: ultra14f.c,v 1.24 1994/08/28 16:08:51 bde Exp $
|
||||
* $Id: ultra14f.c,v 1.25 1994/09/16 13:33:50 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -38,6 +38,7 @@
|
||||
#include <sys/buf.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/user.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <i386/isa/isa_device.h>
|
||||
#endif /*KERNEL */
|
||||
@ -313,6 +314,26 @@ struct scsi_device uha_dev =
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static struct kern_devconf kdc_uha[NUHA] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"uha", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_BUSY, /* host adapters are always busy */
|
||||
"UltraStore 14F or 34F SCSI host adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
uha_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_uha[id->id_unit] = kdc_uha[0];
|
||||
kdc_uha[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_uha[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_uha[id->id_unit]);
|
||||
}
|
||||
|
||||
#endif /*KERNEL */
|
||||
|
||||
#ifndef KERNEL
|
||||
@ -522,6 +543,7 @@ uha_attach(dev)
|
||||
uha->sc_link.device = &uha_dev;
|
||||
uha->sc_link.flags = SDEV_BOUNCE;
|
||||
|
||||
uha_registerdev(dev);
|
||||
/*
|
||||
* ask the adapter what subunits are present
|
||||
*/
|
||||
|
@ -37,7 +37,7 @@ static int wdtest = 0;
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)wd.c 7.2 (Berkeley) 5/9/91
|
||||
* $Id: wd.c,v 1.54 1994/10/20 00:08:22 phk Exp $
|
||||
* $Id: wd.c,v 1.55 1994/10/22 01:57:12 phk Exp $
|
||||
*/
|
||||
|
||||
/* TODO:
|
||||
@ -116,29 +116,48 @@ static int wdc_externalize(struct proc *, struct kern_devconf *, void *, size_t)
|
||||
/*
|
||||
* Templates for the kern_devconf structures used when we attach.
|
||||
*/
|
||||
static struct kern_devconf kdc_wd_template = {
|
||||
static struct kern_devconf kdc_wd[NWD] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"wd", 0, { "wdc0", MDDT_DISK, 0 },
|
||||
wd_externalize, 0, wd_goaway, DISK_EXTERNALLEN
|
||||
};
|
||||
"wd", 0, { MDDT_DISK, 0 },
|
||||
wd_externalize, 0, wd_goaway, DISK_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* don't support state yet */
|
||||
"ST506/ESDI/IDE disk"
|
||||
} };
|
||||
|
||||
static struct kern_devconf kdc_wdc_template = {
|
||||
static struct kern_devconf kdc_wdc[NWDC] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"wdc", 0, { "isa0", MDDT_ISA, 0 },
|
||||
wdc_externalize, 0, wdc_goaway, ISA_EXTERNALLEN
|
||||
};
|
||||
"wdc", 0, { MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, wdc_goaway, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"ST506/ESDI/IDE disk controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
wd_registerdev(int ctlr, int unit)
|
||||
{
|
||||
struct kern_devconf *kdc;
|
||||
if(unit != 0)
|
||||
kdc_wd[unit] = kdc_wd[0];
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc) return;
|
||||
*kdc = kdc_wd_template;
|
||||
kdc->kdc_unit = unit;
|
||||
sprintf(kdc->kdc_md.mddc_parent, "wdc%d", ctlr);
|
||||
dev_attach(kdc);
|
||||
kdc_wd[unit].kdc_unit = unit;
|
||||
kdc_wd[unit].kdc_parent = &kdc_wdc[ctlr];
|
||||
dev_attach(&kdc_wd[unit]);
|
||||
}
|
||||
|
||||
static inline void
|
||||
wdc_registerdev(struct isa_device *dvp)
|
||||
{
|
||||
int unit = dvp->id_unit;
|
||||
|
||||
if(unit != 0)
|
||||
kdc_wd[unit] = kdc_wd[0];
|
||||
|
||||
kdc_wdc[unit].kdc_unit = unit;
|
||||
kdc_wdc[unit].kdc_parentdata = dvp;
|
||||
dev_attach(&kdc_wdc[unit]);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -146,7 +165,6 @@ wdc_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
if(force) {
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
} else {
|
||||
return EBUSY; /* XXX fix */
|
||||
@ -157,7 +175,6 @@ static int
|
||||
wd_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -213,7 +230,6 @@ struct disk {
|
||||
long dk_badsect[127]; /* 126 plus trailing -1 marker */
|
||||
};
|
||||
|
||||
static struct isa_device *wdcdevs[NWDC];
|
||||
static struct disk *wddrives[NWD]; /* table of units */
|
||||
static struct buf wdtab[NWDC];
|
||||
static struct buf wdutab[NWD]; /* head of queue per drive */
|
||||
@ -251,12 +267,6 @@ wd_externalize(struct proc *p, struct kern_devconf *kdc, void *userp, size_t len
|
||||
return disk_externalize(wddrives[kdc->kdc_unit]->dk_unit, userp, &len);
|
||||
}
|
||||
|
||||
static int
|
||||
wdc_externalize(struct proc *p, struct kern_devconf *kdc, void *userp, size_t len)
|
||||
{
|
||||
return isa_externalize(wdcdevs[kdc->kdc_unit], userp, &len);
|
||||
}
|
||||
|
||||
struct isa_driver wdcdriver = {
|
||||
wdprobe, wdattach, "wdc",
|
||||
};
|
||||
@ -274,7 +284,6 @@ wdprobe(struct isa_device *dvp)
|
||||
|
||||
if (unit >= NWDC)
|
||||
return (0);
|
||||
wdcdevs[unit] = dvp;
|
||||
|
||||
du = malloc(sizeof *du, M_TEMP, M_NOWAIT);
|
||||
if (du == NULL)
|
||||
@ -350,17 +359,11 @@ wdattach(struct isa_device *dvp)
|
||||
int unit, lunit;
|
||||
struct isa_device *wdup;
|
||||
struct disk *du;
|
||||
struct kern_devconf *kdc;
|
||||
|
||||
if (dvp->id_unit >= NWDC)
|
||||
return (0);
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc)
|
||||
return 0;
|
||||
*kdc = kdc_wdc_template;
|
||||
kdc->kdc_unit = dvp->id_unit;
|
||||
dev_attach(kdc);
|
||||
wdc_registerdev(dvp);
|
||||
|
||||
for (wdup = isa_biotab_wdc; wdup->id_driver != 0; wdup++) {
|
||||
if (wdup->id_iobase != dvp->id_iobase)
|
||||
|
@ -19,7 +19,7 @@
|
||||
* the original CMU copyright notice.
|
||||
*
|
||||
* Version 1.3, Thu Nov 11 12:09:13 MSK 1993
|
||||
* $Id: wt.c,v 1.10 1994/08/23 07:52:29 paul Exp $
|
||||
* $Id: wt.c,v 1.11 1994/09/16 13:33:51 davidg Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@ -61,7 +61,9 @@
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mtio.h>
|
||||
#include <sys/devconf.h>
|
||||
#include <vm/vm_param.h>
|
||||
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/wtreg.h>
|
||||
|
||||
@ -209,6 +211,27 @@ int wtprobe (struct isa_device *id)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_wt[NWT] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"wt", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* host adapters are always busy */
|
||||
"Archive or Wangtek QIC-02/QIC-36 tape controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
wt_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_wt[id->id_unit] = kdc_wt[0];
|
||||
kdc_wt[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_wt[id->id_unit].kdc_parentdata = id;
|
||||
dev_attach(&kdc_wt[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Device is found, configure it.
|
||||
*/
|
||||
@ -223,6 +246,7 @@ int wtattach (struct isa_device *id)
|
||||
printf ("wt%d: type <Wangtek>\n", t->unit);
|
||||
t->flags = TPSTART; /* tape is rewound */
|
||||
t->dens = -1; /* unknown density */
|
||||
wt_registerdev(id);
|
||||
return (1);
|
||||
}
|
||||
|
||||
|
64
sys/isa/fd.c
64
sys/isa/fd.c
@ -40,7 +40,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)fd.c 7.4 (Berkeley) 5/25/91
|
||||
* $Id: fd.c,v 1.35 1994/10/19 01:58:56 wollman Exp $
|
||||
* $Id: fd.c,v 1.36 1994/10/21 16:58:50 joerg Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@ -85,29 +85,50 @@ static int fd_externalize(struct proc *, struct kern_devconf *, void *, size_t);
|
||||
/*
|
||||
* Templates for the kern_devconf structures used when we attach.
|
||||
*/
|
||||
static struct kern_devconf kdc_fd_template = {
|
||||
static struct kern_devconf kdc_fd[NFD] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"fd", 0, { "fdc0", MDDT_DISK, 0 },
|
||||
fd_externalize, 0, fd_goaway, DISK_EXTERNALLEN
|
||||
};
|
||||
"fd", 0, { MDDT_DISK, 0 },
|
||||
fd_externalize, 0, fd_goaway, DISK_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy disk"
|
||||
} };
|
||||
|
||||
static struct kern_devconf kdc_fdc_template = {
|
||||
struct kern_devconf kdc_fdc[NFDC] = { {
|
||||
0, 0, 0, /* filled in by kern_devconf.c */
|
||||
"fdc", 0, { "isa0", MDDT_ISA, 0 },
|
||||
isa_generic_externalize, 0, fdc_goaway, ISA_EXTERNALLEN
|
||||
};
|
||||
"fdc", 0, { MDDT_ISA, 0, "bio" },
|
||||
isa_generic_externalize, 0, fdc_goaway, ISA_EXTERNALLEN,
|
||||
0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* state */
|
||||
"floppy disk/tape controller"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
fd_registerdev(int ctlr, int unit)
|
||||
{
|
||||
struct kern_devconf *kdc;
|
||||
if(unit != 0)
|
||||
kdc_fd[unit] = kdc_fd[0];
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc) return;
|
||||
*kdc = kdc_fd_template;
|
||||
kdc->kdc_unit = unit;
|
||||
sprintf(kdc->kdc_md.mddc_parent, "fdc%d", ctlr);
|
||||
dev_attach(kdc);
|
||||
kdc_fd[unit].kdc_unit = unit;
|
||||
kdc_fd[unit].kdc_parent = &kdc_fdc[ctlr];
|
||||
kdc_fd[unit].kdc_parentdata = 0;
|
||||
dev_attach(&kdc_fd[unit]);
|
||||
}
|
||||
|
||||
static inline void
|
||||
fdc_registerdev(struct isa_device *dvp)
|
||||
{
|
||||
int unit = dvp->id_unit;
|
||||
|
||||
if(unit != 0)
|
||||
kdc_fdc[unit] = kdc_fdc[0];
|
||||
|
||||
kdc_fdc[unit].kdc_unit = unit;
|
||||
kdc_fdc[unit].kdc_parent = &kdc_isa0;
|
||||
kdc_fdc[unit].kdc_parentdata = dvp;
|
||||
dev_attach(&kdc_fdc[unit]);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -115,7 +136,6 @@ fdc_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
if(force) {
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
} else {
|
||||
return EBUSY; /* XXX fix */
|
||||
@ -126,7 +146,6 @@ static int
|
||||
fd_goaway(struct kern_devconf *kdc, int force)
|
||||
{
|
||||
dev_detach(kdc);
|
||||
FREE(kdc, M_TEMP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -372,15 +391,8 @@ fdattach(dev)
|
||||
fd_p fd;
|
||||
int fdsu, st0, i;
|
||||
struct isa_device *fdup;
|
||||
struct kern_devconf *kdc;
|
||||
|
||||
MALLOC(kdc, struct kern_devconf *, sizeof *kdc, M_TEMP, M_NOWAIT);
|
||||
if(!kdc)
|
||||
return 0;
|
||||
*kdc = kdc_fdc_template;
|
||||
kdc->kdc_unit = fdcu;
|
||||
kdc->kdc_isa = dev;
|
||||
dev_attach(kdc);
|
||||
fdc_registerdev(dev);
|
||||
|
||||
fdc->fdcu = fdcu;
|
||||
fdc->flags |= FDC_ATTACHED;
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)com.c 7.5 (Berkeley) 5/16/91
|
||||
* $Id: sio.c,v 1.56 1994/10/19 21:38:19 bde Exp $
|
||||
* $Id: sio.c,v 1.57 1994/10/20 00:45:36 phk Exp $
|
||||
*/
|
||||
|
||||
#include "sio.h"
|
||||
@ -57,6 +57,7 @@
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/clock.h>
|
||||
|
||||
@ -526,6 +527,27 @@ sioprobe(dev)
|
||||
return (result);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_sio[NSIO] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sio", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"RS-232 serial port"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
sio_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_sio[id->id_unit] = kdc_sio[0];
|
||||
kdc_sio[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_sio[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_sio[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
sioattach(isdp)
|
||||
struct isa_device *isdp;
|
||||
@ -660,6 +682,8 @@ determined_type: ;
|
||||
#endif /* COM_MULTIPORT */
|
||||
printf("\n");
|
||||
|
||||
sio_registerdev(isdp);
|
||||
|
||||
#ifdef KGDB
|
||||
if (kgdb_dev == makedev(commajor, unit)) {
|
||||
if (unit == comconsole)
|
||||
|
@ -35,7 +35,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: syscons.c,v 1.69 1994/10/18 03:34:53 ache Exp $
|
||||
* $Id: syscons.c,v 1.70 1994/10/20 00:08:20 phk Exp $
|
||||
*/
|
||||
|
||||
#include "sc.h"
|
||||
@ -55,10 +55,13 @@
|
||||
#include <sys/syslog.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include <machine/console.h>
|
||||
#include <machine/psl.h>
|
||||
#include <machine/frame.h>
|
||||
#include <machine/pc/display.h>
|
||||
|
||||
#include <i386/isa/isa.h>
|
||||
#include <i386/isa/isa_device.h>
|
||||
#include <i386/isa/timerreg.h>
|
||||
@ -336,6 +339,27 @@ pcprobe(struct isa_device *dev)
|
||||
return (IO_KBDSIZE);
|
||||
}
|
||||
|
||||
static struct kern_devconf kdc_sc[NSC] = { {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sc", 0, { MDDT_ISA, 0, "tty" },
|
||||
isa_generic_externalize, 0, 0, ISA_EXTERNALLEN,
|
||||
&kdc_isa0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"Parallel printer adapter"
|
||||
} };
|
||||
|
||||
static inline void
|
||||
sc_registerdev(struct isa_device *id)
|
||||
{
|
||||
if(id->id_unit)
|
||||
kdc_sc[id->id_unit] = kdc_sc[0];
|
||||
kdc_sc[id->id_unit].kdc_unit = id->id_unit;
|
||||
kdc_sc[id->id_unit].kdc_isa = id;
|
||||
dev_attach(&kdc_sc[id->id_unit]);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
pcattach(struct isa_device *dev)
|
||||
{
|
||||
@ -386,6 +410,7 @@ pcattach(struct isa_device *dev)
|
||||
/* get cursor going */
|
||||
cursor_pos(1);
|
||||
update_leds(console[0].status);
|
||||
sc_registerdev(dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: kern_devconf.c,v 1.1 1994/10/16 03:52:13 wollman Exp $
|
||||
* $Id: kern_devconf.c,v 1.3 1994/10/19 01:59:11 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -103,11 +103,27 @@ static void
|
||||
make_devconf(struct kern_devconf *kdc, struct devconf *dc)
|
||||
{
|
||||
strncpy(dc->dc_name, kdc->kdc_name, sizeof dc->dc_name);
|
||||
dc->dc_name[sizeof dc->dc_name - 1] = '\0';
|
||||
dc->dc_name[(sizeof dc->dc_name) - 1] = '\0';
|
||||
dc->dc_unit = kdc->kdc_unit;
|
||||
dc->dc_md = kdc->kdc_md;
|
||||
dc->dc_number = kdc->kdc_number;
|
||||
|
||||
if(kdc->kdc_parent) {
|
||||
strncpy(dc->dc_pname, kdc->kdc_parent->kdc_name, sizeof dc->dc_pname);
|
||||
dc->dc_pname[(sizeof dc->dc_pname) - 1] = '\0';
|
||||
dc->dc_punit = kdc->kdc_parent->kdc_unit;
|
||||
dc->dc_pnumber = kdc->kdc_parent->kdc_number;
|
||||
} else {
|
||||
bzero(dc->dc_pname, sizeof dc->dc_pname);
|
||||
dc->dc_punit = -1;
|
||||
dc->dc_pnumber = -1;
|
||||
}
|
||||
|
||||
MACHDEP_COPYDEV(dc, kdc);
|
||||
dc->dc_state = kdc->kdc_state;
|
||||
dc->dc_datalen = kdc->kdc_datalen;
|
||||
|
||||
strncpy(dc->dc_descr, kdc->kdc_description, sizeof dc->dc_descr);
|
||||
dc->dc_descr[(sizeof dc->dc_descr) - 1] = '\0';
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -14,7 +14,7 @@
|
||||
*
|
||||
* Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
|
||||
*
|
||||
* $Id: cd.c,v 1.25 1994/10/08 22:26:35 phk Exp $
|
||||
* $Id: cd.c,v 1.26 1994/10/19 00:09:42 wollman Exp $
|
||||
*/
|
||||
|
||||
#define SPLCD splbio
|
||||
@ -136,8 +136,12 @@ cd_externalize(struct proc *p, struct kern_devconf *kdc, void *userp,
|
||||
|
||||
static struct kern_devconf kdc_cd_template = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"cd", 0, { "scsi", MDDT_SCSI, 0 },
|
||||
cd_externalize, 0, cd_goaway, SCSI_EXTERNALLEN
|
||||
"cd", 0, MDDC_SCSI,
|
||||
cd_externalize, 0, cd_goaway, SCSI_EXTERNALLEN,
|
||||
&kdc_scbus0, /* parent - XXX should be host adapter*/
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"SCSI CD-ROM drive"
|
||||
};
|
||||
|
||||
static inline void
|
||||
@ -149,6 +153,7 @@ cd_registerdev(int unit)
|
||||
if(!kdc) return;
|
||||
*kdc = kdc_cd_template;
|
||||
kdc->kdc_unit = unit;
|
||||
/* XXX should set parentdata */
|
||||
dev_attach(kdc);
|
||||
if(dk_ndrive < DK_NDRIVE) {
|
||||
sprintf(dk_names[dk_ndrive], "cd%d", unit);
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Written by grefen@?????
|
||||
* Based on scsi drivers by Julian Elischer (julian@tfs.com)
|
||||
*
|
||||
* $Id: ch.c,v 1.9 1994/10/19 00:09:44 wollman Exp $
|
||||
* $Id: ch.c,v 1.10 1994/10/21 01:19:20 wollman Exp $
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -94,8 +94,12 @@ ch_externalize(struct proc *p, struct kern_devconf *kdc, void *userp,
|
||||
|
||||
static struct kern_devconf kdc_ch_template = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"ch", 0, { "scsi", MDDT_SCSI, 0 },
|
||||
ch_externalize, 0, ch_goaway, SCSI_EXTERNALLEN
|
||||
"ch", 0, MDDC_SCSI,
|
||||
ch_externalize, 0, ch_goaway, SCSI_EXTERNALLEN,
|
||||
&kdc_scbus0, /* parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"SCSI media changer"
|
||||
};
|
||||
|
||||
static inline void
|
||||
|
@ -14,7 +14,7 @@
|
||||
*
|
||||
* Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
|
||||
*
|
||||
* $Id: scsiconf.c,v 1.10 1994/10/08 22:26:38 phk Exp $
|
||||
* $Id: scsiconf.c,v 1.11 1994/10/19 20:34:15 wollman Exp $
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -22,6 +22,8 @@
|
||||
#include <sys/systm.h>
|
||||
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/devconf.h>
|
||||
|
||||
#include "st.h"
|
||||
#include "sd.h"
|
||||
#include "ch.h"
|
||||
@ -348,6 +350,24 @@ struct scsi_device probe_switch =
|
||||
*/
|
||||
int32 scsibus = 0x0; /* This is the Nth scsibus we've seen */
|
||||
|
||||
/*
|
||||
* XXX
|
||||
* This is BOGUS.
|
||||
* We do this because it was easier than adding the requisite information
|
||||
* to the scsi_link structure and modifying everything to use that.
|
||||
* Someday, we will do just that, and users will be able to nail down their
|
||||
* preferred SCSI ids.
|
||||
*/
|
||||
struct kern_devconf kdc_scbus0 = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"scbus", 0, MDDC_SCBUS,
|
||||
0, 0, 0, 0, /* no external data */
|
||||
0, /* no parent */
|
||||
0, /* no parentdata */
|
||||
DC_BUSY, /* busses are always busy */
|
||||
"SCSI subsystem"
|
||||
};
|
||||
|
||||
/*
|
||||
* The routine called by the adapter boards to get all their
|
||||
* devices configured in.
|
||||
@ -356,6 +376,10 @@ void
|
||||
scsi_attachdevs(sc_link_proto)
|
||||
struct scsi_link *sc_link_proto;
|
||||
{
|
||||
static int timesthru = 0;
|
||||
if(!timesthru++) {
|
||||
dev_attach(&kdc_scbus0);
|
||||
}
|
||||
|
||||
if(scsibus >= NSCBUS) {
|
||||
printf("too many scsi busses, reconfigure the kernel\n");
|
||||
|
@ -14,7 +14,7 @@
|
||||
*
|
||||
* Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
|
||||
*
|
||||
* $Id: scsiconf.h,v 1.11 1994/10/19 01:20:44 wollman Exp $
|
||||
* $Id: scsiconf.h,v 1.12 1994/10/19 01:49:23 wollman Exp $
|
||||
*/
|
||||
#ifndef SCSI_SCSICONF_H
|
||||
#define SCSI_SCSICONF_H 1
|
||||
@ -290,6 +290,7 @@ extern void sc_print_addr(struct scsi_link *);
|
||||
|
||||
extern int scsi_externalize(struct scsi_link *, void *, size_t *);
|
||||
extern int scsi_internalize(struct scsi_link *, void **, size_t *);
|
||||
extern struct kern_devconf kdc_scbus0; /* XXX should go away */
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
*
|
||||
* Ported to run under 386BSD by Julian Elischer (julian@dialix.oz.au) Sept 1992
|
||||
*
|
||||
* $Id: sd.c,v 1.35 1994/10/19 00:09:45 wollman Exp $
|
||||
* $Id: sd.c,v 1.36 1994/10/20 00:08:31 phk Exp $
|
||||
*/
|
||||
|
||||
#define SPLSD splbio
|
||||
@ -137,8 +137,12 @@ sd_externalize(struct proc *p, struct kern_devconf *kdc, void *userp,
|
||||
|
||||
static struct kern_devconf kdc_sd_template = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"sd", 0, { "scsi", MDDT_SCSI, 0 },
|
||||
sd_externalize, 0, sd_goaway, SCSI_EXTERNALLEN
|
||||
"sd", 0, MDDC_SCSI,
|
||||
sd_externalize, 0, sd_goaway, SCSI_EXTERNALLEN,
|
||||
&kdc_scbus0, /* XXX parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"SCSI disk"
|
||||
};
|
||||
|
||||
static inline void
|
||||
|
@ -12,7 +12,7 @@
|
||||
* on the understanding that TFS is not responsible for the correct
|
||||
* functioning of this software in any circumstances.
|
||||
*
|
||||
* $Id: st.c,v 1.19 1994/09/28 20:16:45 se Exp $
|
||||
* $Id: st.c,v 1.20 1994/10/19 00:09:47 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -33,7 +33,7 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/errno.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/malloc.h>
|
||||
@ -273,8 +273,12 @@ st_externalize(struct proc *p, struct kern_devconf *kdc, void *userp,
|
||||
|
||||
static struct kern_devconf kdc_st_template = {
|
||||
0, 0, 0, /* filled in by dev_attach */
|
||||
"st", 0, { "scsi", MDDT_SCSI, 0 },
|
||||
st_externalize, 0, st_goaway, SCSI_EXTERNALLEN
|
||||
"st", 0, MDDC_SCSI,
|
||||
st_externalize, 0, st_goaway, SCSI_EXTERNALLEN,
|
||||
&kdc_scbus0, /* XXX parent */
|
||||
0, /* parentdata */
|
||||
DC_UNKNOWN, /* not supported */
|
||||
"SCSI tape drive"
|
||||
};
|
||||
|
||||
static inline void
|
||||
|
@ -22,7 +22,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: devconf.h,v 1.1 1994/10/16 03:52:59 wollman Exp $
|
||||
* $Id: devconf.h,v 1.2 1994/10/19 00:10:10 wollman Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -37,14 +37,27 @@
|
||||
#include <machine/devconf.h>
|
||||
|
||||
#define MAXDEVNAME 32
|
||||
#define MAXDEVDESCR 64
|
||||
|
||||
enum dc_state {
|
||||
DC_UNKNOWN = 0, /* don't know the state or driver doesn't support */
|
||||
DC_UNCONFIGURED, /* driver is present but not configured */
|
||||
DC_IDLE, /* driver supports state and is not in use */
|
||||
DC_BUSY /* driver supports state and is currently busy */
|
||||
};
|
||||
|
||||
struct devconf {
|
||||
char dc_name[MAXDEVNAME]; /* name of the device */
|
||||
int dc_unit; /* unit number of the device */
|
||||
int dc_number; /* device unique id */
|
||||
struct machdep_devconf dc_md; /* machine-dependent stuff */
|
||||
size_t dc_datalen; /* length of data */
|
||||
char dc_data[1]; /* variable-length data */
|
||||
char dc_name[MAXDEVNAME]; /* name */
|
||||
char dc_descr[MAXDEVDESCR]; /* description */
|
||||
int dc_unit; /* unit number */
|
||||
int dc_number; /* unique id */
|
||||
char dc_pname[MAXDEVNAME]; /* name of the parent device */
|
||||
int dc_punit; /* unit number of the parent */
|
||||
int dc_pnumber; /* unique id of the parent */
|
||||
struct machdep_devconf dc_md; /* machine-dependent stuff */
|
||||
enum dc_state dc_state; /* state of the device (see above) */
|
||||
size_t dc_datalen; /* length of data */
|
||||
char dc_data[1]; /* variable-length data */
|
||||
};
|
||||
|
||||
#ifdef KERNEL
|
||||
@ -78,11 +91,15 @@ struct kern_devconf {
|
||||
int kdc_number; /* filled in by kern_devconf */
|
||||
const char *kdc_name; /* filled in by driver */
|
||||
int kdc_unit; /* filled in by driver */
|
||||
struct machdep_devconf kdc_md; /* filled in by driver */
|
||||
struct machdep_kdevconf kdc_md; /* filled in by driver */
|
||||
kdc_externalize_t kdc_externalize; /* filled in by driver */
|
||||
kdc_internalize_t kdc_internalize; /* filled in by driver */
|
||||
kdc_goaway_t kdc_goaway; /* filled in by driver */
|
||||
size_t kdc_datalen; /* filled in by driver */
|
||||
struct kern_devconf *kdc_parent; /* filled in by driver */
|
||||
void *kdc_parentdata; /* filled in by driver */
|
||||
enum dc_state kdc_state; /* filled in by driver dynamically */
|
||||
const char *kdc_description; /* filled in by driver; maybe dyn. */
|
||||
};
|
||||
|
||||
int dev_attach(struct kern_devconf *);
|
||||
@ -97,7 +114,7 @@ int dev_goawayall(int);
|
||||
#define DEVCONF_NUMBER 0 /* get number of devices */
|
||||
#define DEVCONF_MAXID 1 /* number of items (not really) */
|
||||
|
||||
#define CTL_DEVCONF_NAMES { \
|
||||
#define HW_DEVCONF_NAMES { \
|
||||
{ "number", CTLTYPE_INT }, \
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user