It seems this script was broken because of the SYSINIT changes and a
rather awkward variable initialisation. For some reason the
make_device_driver.sh script is also broken, related to BUS_SETUP_INTR.
I have no experience with FreeBSD's interrupt handling, so I hope
someone else is willing to take a look at that shell script.
PR: misc/126435
MFC after: 1 month
- Added check of dirs used by example generator
- Fixed path for ${s}/conf/files.FOO and include it via files
directive from config file
- Changed kernel configuration example with the driver: it is
not produced by copying Generic but by including it
- KDB is added to config (for DDB)
- Added module building instead and fixed kernel building
Reviewed by: julian@
- Fixed path for ${s}/conf/files.FOO and a note that it should be merged into
corresponding file to be able to compile the kernel
- Changed kernel configuration example with the driver: it is not produced by
copying Generic but by including it
- Changed from automatic module building to asking an user if it whants to
Reviewed by: julian@
<bde>
o Add comments in some places to clarify some points.
o Don't typedef sc_p. This isn't usually done in the drivers and may
cause problems in teh future if C goes the C++ route of requiring
one and only one definition for each and every type. Instead use
the current convetion of expanding struct ${1}_softc * inline needed.
o change some comments to be more style(9)-like.
o Define and use DEV2SOFTC to encapsulate storing/getting softc from a
dev_t. This also takes care of the missing cast from the examples.
o Define and use DEVICE2SOFTC, similar to DEV2SOFTC for getting the
softc from a device_t.
</bde>
We still should have this generate foo_{isa,pci,pccard,cardbus,eisa}.c
and foovar.h from templates of some sort, but I was too lazy to do
that in this commit. I did document it in the comments, however.
Note: bde-like corrections made with the help of my my portable
plastic bde icon. Results with the real bde may vary with use.
I have added support for finding non-PNP devices to this
sample loadable ISA driver.
PCI support will come later.
If someone with a clue about newbus were to look it over it would be
really cool.
This creates a skeleton ISA device driver.
I don't pretend that it's fully correct or even opitimal
but it at least creates (and compiles) a 'clean' ISA driver.
Hopefully PCI/PCCARD/etc. support will be added when I understand it.
Unlike the old version this just creates a module. The old one tried to
create a new kernel with the driver to be tested.
configured in drivers.
Attempted to update the generated interrupt handler attachment to the
current "temporary" method. Not tested. To test it, someone would first
have to fix the bitrot in the ioctl command arg type.
create a skeleton device driver.
one for a real device and the other for a pseudo device.
they each take one argument which is the name (prefix) for the driver.
they add the new file to the /sys tree and add appropriate config files
etc for a build.
hopefully others will build on this so that we get
1/ these drivers improved and the shell scripts
improved in how/where that hook the new code in.
2/ similar tools for providing skeletons for other
modules (I'm tempted to do a VFS filesystem skeleton :)
please take a look and fix anything that maybe should be added.
they compile and link fine,
but I think I wouldn't trust them, as faar as RUNNING yet :)
(well they really wouldn't do very much being skeletons..
we need to add PCI and EISA skeletons as well
followed by a SCSI driver skeleton.