* Enable dynamically linked kernel. This involves adding a self-relocator
to locore to process the @fptr relocations in the dynamic executable.
* Don't initialise the timer until *after* we install the timecounter to
avoid a race between timecounter initialisation and hardclock.
* Tidy up bootinfo somewhat including adding sanity checks for when the
kernel is loaded without a recognisable bootinfo.
Add a strcasecmp() call I forgot in my hurry to commit the previous fix.
Without this call, the hostname check would in some cases yield false
positives.
Warner Losh [Thu, 13 Sep 2001 08:26:55 +0000 (08:26 +0000)]
<jkh> "Hey Rocky, watch me eject this pccard outta my laptop!" "What,
again? That NEVER works!" "This time for sure!"
Minor overhaul of how we do interrupts for the pci interrupt routing
case to cope with card ejection better (read: make it not hand on so
many cards):
o Reintroduce func_intr and func_arg and use the to store the
interrupt handler to call.
o Create a pcic_pci_func_intr to call the real interrupt handler
iff the card hasn't been ejected.
o Remove some checks in pcic_setup_intr now that it is used
exclusively for isa routed interrupts.
o Defer the eject event until later too, but make sure we can't
do any client driver ISR calling in the interrum.
o Add some simple code to make sure that we don't attach more
than one child. This should fix pccardd starting twice
problem (ala single user -> multi-user when you started pccardd
by hand in SU).
MFC: after jkh thinks I've put the crack pipe away.
Ruslan Ermilov [Thu, 13 Sep 2001 07:20:51 +0000 (07:20 +0000)]
Fixed the BINGRP handling mess.
EXEGRP and EXEMODE are used to install DOS (EXE format) binaries.
doscmd(1) can optionally be installed as ``setgid kmem''.
Hence the assignment operator for EXEGRP.
The previous commit appeared to just shove the bug under the carpet rather
than really solve it. This approach (inspired by Ruslan's patch) solves
the real problem by stripping the local domain off the host name in the
config line structure.
Also mark a bunch of code sections that either do not check the return value
of a strdup(), malloc() or calloc() call, or do not properly handle a NULL
return.
'make release' should install docproj ports with BATCH=yes so that your
release builds don't stop in the middle of the night asking for user
input about which Ghostscript drivers to install.
Warner Losh [Thu, 13 Sep 2001 06:18:07 +0000 (06:18 +0000)]
Due to a bug in the ed driver, which leads to hangs when using it with
dhclient and pccard_ether, introduce the concept of a "settle time" to
pccard_ether with the new pccard_ether_delay variable. Defaults to 5
seconds, which is enough time for the ed driver to finish its
autoconfiguration for newer Linksys based cards. This also can
eliminate the ed0: timeout messages that happen at startup as well.
Fix logging from remote hosts, which has been broken since (at least) revision
1.64, i.e. July of last year. Also fix a minor style bug in the same code.
PR: bin/28634
Pointy hat to: dwmalone
Pointed out by: my buggy DSL router's remote logging facility
John Baldwin [Wed, 12 Sep 2001 23:39:36 +0000 (23:39 +0000)]
Restore these files to being portable:
- Use some simple #define's at the top of the files for proc -> thread
changes instead of having lots of needless #ifdef's in the code.
- Don't try to use struct thread in !FreeBSD code.
- Don't use a few struct lwp's in some of the NetBSD code since it isn't
in their HEAD.
The new diff relative to before KSE is now signficantly smaller and easier
to maintain.
If an incoming struct proc could have been NULL before, tehn don't
automatically change the code to add
struct proc *p = td->td_proc;
because now 'td' is probably capable of being NULL too.
I expect to see more of this kind of error during the 'weeding'
process. It's too easy to make. (junior hacker project.. look for these :-)
KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED
make the kernel aware that there are smaller units of scheduling than the
process. (but only allow one thread per process at this time).
This is functionally equivalent to teh previousl -current except
that there is a thread associated with each process.
Add a version of the loader which runs under SKI, the HP ia64 simulator.
This loader is quite functional and can load and run kernels. The kernels
don't quite work right after loading but that should be easily fixable.
Peter Wemm [Wed, 12 Sep 2001 00:50:23 +0000 (00:50 +0000)]
Fix the kern.module_path issue that required the trailing '/' character
on each module path component. Fix a one-byte buffer overflow at the
same time that got highlighted in the process.
New release note about linker.hints and kldxref(8). Even though this
solves a pretty annoying problem, this release notes entry doesn't
describe what this fixes because I can't seem to figure out how to do
this without giving a lot of background.
Peter Wemm [Tue, 11 Sep 2001 01:09:24 +0000 (01:09 +0000)]
Implement the long-awaited module->file cache database. A userland
tool (kldxref(8)) keeps a cache of what modules and versions are inside
what .ko files. I have tested this on both Alpha and i386.
John Baldwin [Mon, 10 Sep 2001 21:04:49 +0000 (21:04 +0000)]
- Axe holding_giant as it is not used now anyways and was ok'd by
dillon in an earlier e-mail.
- We don't need to test the console right before we vfprintf() the panicstr
message. The printing of the panic message is a fine console test by
itself and doesn't make useful messages scroll off the screen or tick
developers off in quite the same.
Bruce A. Mah [Mon, 10 Sep 2001 20:41:39 +0000 (20:41 +0000)]
According to message-id <yfk7kv6rj15.fsf@vader.clickarray.com> on
freebsd-ports, ports/packages will be re-frozen and re-rolled before
4.4-RELEASE, so we can (imprecisely) mark the CVSup bugfix as being MFC-ed.
Bruce A. Mah [Mon, 10 Sep 2001 16:54:50 +0000 (16:54 +0000)]
New release notes: Use net/cvsup, rather than net/cvsup-bin and
net/cvsupd-bin. Also note CVSup update to fix S1G bug.
I'm breaking a self-imposed rule of not mentioning ports-collection
updates in release notes. I'm only doing this because CVSup is a
fairly essential part of the FreeBSD Project infrastructure. Save
for exceptions such as this, the release notes will continue to
document changes to the base system only.
* Make a start on a realistic definition for bootinfo.
* Switch to proc0's stack and backing store before calling ia64_init
so that we don't rely on the loader's stack at all.
* Change kernel entry point name from locorestart to __start.
Peter Wemm [Mon, 10 Sep 2001 12:05:47 +0000 (12:05 +0000)]
Fix a warning on alpha (real problem) and make pstat -t work as a bonus.
'struct tty' was out of sync in user and kernel due to dev_t/udev_t
mixups. This takes advantage of the fact that dev_t changes type in
userland, so it isn't too pretty.
Make the `nsops' variable in `semop' unsigned. This prevents an
overflow if uap->nsops (which is already unsigned) is over INT_MAX;
consequently, the bounds check below becomes valid. Previously, if a
value over INT_MAX was passed in uap->nsops, the bounds check wouldn't
catch it, and the value would be used to compute copyin()'s third
argument.
Peter Wemm [Mon, 10 Sep 2001 10:33:46 +0000 (10:33 +0000)]
Fix a warning in bsearch(). Like index() etc, it de-qualifies its
arguments. Caveat Emptor. However, the only two consumer of it (cam)
deals with it correctly and preserves the constness.