tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
How to compile a modified example kernel module
Hi,
on NetBSD 6.1.5, I am failing to compile a modified version of the example found in
/usr/src/sys/module/example/
I tried to mimic the modules found in /usr/src/sys/module/
but nothing is compiling.
How I am doing things:
===================
Test the original example by
$ cp -R /usr/src/sys/module/example ~/
$ cd ~/example
$ make
$ modload ./example.kmod
And it worked.
After making the following modifications, the module stopped compiling
/*** example.c ======BEGIN=FILE====================***/
struct example_softc {
device_t sc_dev;
};
static int
example_match(device_t parent, cfdata_t match, void *aux)
{
struct pci_attach_args *pa = aux;
printf("pci_vendor: %#x" ", pci_product: %#x"
", pci_class: %#x" ", pci_subclass: %#x\n",
PCI_VENDOR(pa->pa_id), PCI_PRODUCT(pa->pa_id),
PCI_CLASS(pa->pa_class), PCI_CLASS(pa->pa_class));
return 0;
}
static void
example_attach(device_t parent, device_t self, void *aux)
{
return;
}
static int
example_detach(device_t self, int flags)
{
return 0;
}
CFATTACH_DECL(
example,
sizeof(struct example_softc),
example_match,
example_attach,
example_detach,
NULL
);
MODULE(MODULE_CLASS_MISC, example, "pci");
#ifdef _MODULE
#include "ioconf.c"
#endif
static int
example_modcmd(modcmd_t cmd, void *arg)
{
int error = 0;
switch (cmd) {
case MODULE_CMD_INIT:
#ifdef _MODULE
error = config_init_component(cfdriver_ioconf_example,
cfattach_ioconf_example, cfdata_ioconf_example);
#endif
return error;
case MODULE_CMD_FINI:
#ifdef _MODULE
error = config_fini_component(cfdriver_ioconf_example,
cfattach_ioconf_example, cfdata_ioconf_example);
#endif
return error;
default:
return ENOTTY;
}
}
/*** example.c ======END=FILE====================***/
/*** Makefile ======BEGIN=FILE====================***/
KMOD= example
SRCS= example.c
.include <bsd.kmodule.mk>
/*** Makefile ======END=FILE====================***/
So, I'm asking how do I implement the example.ioconf which I'm obviously lacking ?
---mugius---
Home |
Main Index |
Thread Index |
Old Index