That's EVERY SINGLE driver that has an entry in conf.c..
my next trick will be to define cdevsw[] and bdevsw[]
as empty arrays and remove all those DAMNED defines as well..
Each of these drivers has a SYSINIT linker set entry
that comes in very early.. and asks teh driver to add it's own
entry to the two devsw[] tables.
some slight reworking of the commits from yesterday (added the SYSINIT
stuff and some usually wrong but token DEVFS entries to all these
devices.
BTW does anyone know where the 'ata' entries in conf.c actually reside?
seems we don't actually have a 'ataopen() etc...
If you want to add a new device in conf.c
please make sure I know
so I can keep it up to date too..
as before, this is all dependent on #if defined(JREMOD)
(and #ifdef DEVFS in parts)
to <machine/conf.h>. conf.h was mechanically generated by
`grep ^d_ conf.c >conf.h'. This accounts for part of its ugliness. The
prototypes should be moved back to the driver sources when the functions
are staticalized.
labels.
Please test the slice/label features:
cd /dev; sh MAKEDEV svn0
cd /var/tmp; dd if=/dev/zero of=vnfile bs=8192 count=1024
vnconfig -c /dev/rvn0 /var/tmp/vnfile
fdisk /dev/rvn0 # invent a geometry, create one BSD partition
disklabel -r -w vn0 floppy # a convenient (bogus) label
disklabel -e vn0 # edit label to match device
newfs /dev/rvn0a
mount /dev/vn0a /mnt
...
The steps after the fdisk could name the device vn0s1 instead of vn0.
is supposed to work except "media removal" (shutting down the vn driver)
while some partitions are open.
Fix some errnos: return ENOTTY, not ENXIO for unknown ioctls; return
ENODEV, not ENXIO for the unsupported dump operation.