Obtained from: NetBSD as well (He submitted it there too)
make sure that teh shm region is beyond the sum of the text and data segs
as it was big progs could collide with the shm region.
but also IT ACTUALLY WORKS!
FreeBSD with options JREMOD now runs with no entries in the devsw tables
prior to the devices puting their own entries there..
Thanks to bde and terry for thoughts and comments.
next stop 'Real' devfs support in devices.
- Don't print out meaningless iCOMP numbers, those are for droids.
- Use a shorter wait to determine clock rate to avoid deficiencies
in DELAY().
- Use a fixed-point representation with 8 bits of fraction to store
the rate and rationalize the variable name. It would be
possible to use even more fraction if it turns out to be
worthwhile (I rather doubt it).
The question of source code arrangement remains unaddressed.
Errors in document processing are almost never passed back to `make'.
Removed the requirement for having an obj directory. fig.2.3.n
previously had to live in obj/.
a little different than the one to generate the document. This caused
wrong page numbers.
Fixed sourcing of index.so. The hack of handling it separately is no
longer necessary. This hack didn't quite work - the page numbers and
columnization of the index were wrong.
Fixed warnings about not being able to source index.so.
Fixed generation of `index' in the source directory.
Don't bother removing `index' after creating index.so. `index' gets
created again when the final document is built and it's too much
trouble to remove later.
Fixed dependencies. The long {SRCS} list in 4.4lite isn't quite
right and got broken to allow centralized rules.
1. ${ROFF} is run in ${.OBJDIR}.
2. the preprocessor prefixes ${SRCDIR}/ to relative pathnames in `.so'
statements.
This is useful when running ${ROFF} in the source directory isn't
convenient.
Added dependencies on ${EXTRA} and ${OBJS}. These are usually for files
that are sourced indirectly. ${OBJS} is for files that are built.
4.4lite has decentalized incomplete dependencies on ${EXTRA} and ${DPADD}.
These were broken by are centralized handling of the roff targets.
conflicted with S3 graphics cards. Now users should put sio[2-3]
in the config file if the hardware exisst, even if the probe is
certain to fail due to an interrupt conflict. Otherwise, ports
sharing the interrupt may fail the probe if the system is warm
booted while sio[2-3] are active (perhaps under another OS). The
same problem for nonstandard ports is now handled better than
before.
add a few safety checks in specfs because
now it's possible to get entries in [cd]devsw[] which are ALL NULL
so it's better to discover this BEFORE jumping into the d_open() entry..
more check to come later.. this getsthe code to the stage where I
can start testing it, even if I haven't caught every little error case...
I guess I'll find them quick enough..
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)