/* $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); }