NetBSD-5.0.2/sys/lkm/dev/isa/common/lkm_isa.c.tmpl

/* $NetBSD: lkm_isa.c.tmpl,v 1.2 2008/04/26 20:10:15 xtraeme Exp $ */

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/device.h>
#include <sys/lkm.h>

/*
 * Common template for ISA drivers.
 */

CFDRIVER_DECL(@LKM_ISA_DRVNAME@, DV_DULL, NULL);
extern struct cfattach @LKM_ISA_DRVNAME_CA@_ca;

/* The ISA devices use 7 locators. */
static int isaloc[] = {
	@LKM_ISA_IO_PORT@,	/* port */
	@LKM_ISA_SIZE@,		/* size */
	@LKM_ISA_IOMEM@,	/* iomem */
	@LKM_ISA_IOSIZE@, 	/* iosize */
	@LKM_ISA_IRQ@,		/* irq */
	@LKM_ISA_DRQ@,		/* drq */
	@LKM_ISA_DRQ2@,		/* drq2 */
};

static struct cfparent isaparent = {
	"isa", "isa", DVUNIT_ANY
};

static struct cfdata @LKM_ISA_DRVNAME@_cfdata[] = {
	{ "@LKM_ISA_DRVNAME@",
	  "@LKM_ISA_DRVNAME_CA@",
	  0,
	  FSTATE_NOTFOUND,
	  isaloc,
	  0,
	  &isaparent },
	{ .cf_pspec = NULL }
};

static struct cfdriver *@LKM_ISA_DRVNAME@_cfdrivers[] = {
	&@LKM_ISA_DRVNAME@_cd,
	NULL
};

static struct cfattach *@LKM_ISA_DRVNAME@_cfattachs[] = {
	&@LKM_ISA_DRVNAME_CA@_ca,
	NULL
};

static const struct cfattachlkminit @LKM_ISA_DRVNAME@_cfattachinit[] = {
	{ "@LKM_ISA_DRVNAME@", @LKM_ISA_DRVNAME@_cfattachs },
	{ .cfai_list = NULL }
};

int @LKM_ISA_DRVNAME@_lkmentry(struct lkm_table *, int, int);

MOD_DRV("@LKM_ISA_DRVNAME@", @LKM_ISA_DRVNAME@_cfdrivers,
	@LKM_ISA_DRVNAME@_cfattachinit, @LKM_ISA_DRVNAME@_cfdata);

int
@LKM_ISA_DRVNAME@_lkmentry(struct lkm_table *lkmtp, int cmd, int ver)
{

	DISPATCH(lkmtp, cmd, ver, lkm_nofunc, lkm_nofunc, lkm_nofunc);
}