Bill Paul [Mon, 19 Oct 1998 22:08:56 +0000 (22:08 +0000)]
Modify the transmit packet queuing strategy a bit to be a little less
agressive. With the old code, if a descriptor chain was already on its
way to the chip, xl_start() would try to splice new chains onto the end
of the current chain by stopping the transmitter, modifying the tail
pointer of the current chain to point to the head of the new chain, then
restart the transmitter. The manual says you're allowed to do this and
it works, but I'm not too keen on it anymore.
The new code waits until the eixsting chain has been sent and then
queues the next waiting chain in the 'transmit ok' handler.
Performance still looks good one way or the other.
Warner Losh [Mon, 19 Oct 1998 20:09:17 +0000 (20:09 +0000)]
Default to aout only on i386. Before we defaulted to elf only on
Alpha. This is a minor, but important distinction. Should be a no-op
to the install base. If OBJFORMAT is set elsewhere, things work
exactly as they did before.
Robert Nordier [Mon, 19 Oct 1998 19:13:53 +0000 (19:13 +0000)]
Make configurable (a) whether to use int 0x13 extensions; (b) timeout
value. Ignore failure to update mbr sector. Disable interrupts while
using extended registers. Default to F1 not F2.
Bill Paul [Sun, 18 Oct 1998 16:24:34 +0000 (16:24 +0000)]
Add driver support for PCI fast ethernet adapters based on the
RealTek 8129/8139 chipset like I've been threatening. Update kernel
configs, userconfig.c, relnotes and sysinstall. No man page yet;
comming soon.
I consider this driver stable enough that I want to give it some
exposure in -current.
Peter Wemm [Sun, 18 Oct 1998 15:55:12 +0000 (15:55 +0000)]
Some cleanups and optimizations:
- Use the system headers method for Elf32/Elf64 symbol compatability
- get rid of the UPRINTF debugging.
- check the ELF header for compatability much more completely
- optimize the section mapper. Use the same direct VM interfaces that
imgact_aout.c and kern_exec.c use.
- Check the return codes from the vm_* functions better. Some return
KERN_* results, not an errno.
- prefault the page tables to reduce startup faults on page tables like
a.out does.
- reset the segment protection to zero for each loop, otherwise each
segment could get progressively more privs. (eg: if the first was
read/write/execute, and the second was meant to be read/execute, the
bug would make the second r/w/x too. In practice this was not a
problem because executables are normally laid out with text first.)
- Don't impose arbitary limits. Use the limits on headers imposed by
the need to fit them into one page.
- Remove unused switch() cases now that the verbose debugging is gone.
I've been using an earlier version of this for a month or so.
This sped up ELF exec speed a bit for me but I found it hard to get
consistant benchmarks when I tested it last (a few weeks ago).
I'm still bothered by the page read out of order caused by the
transition from data to bss. This which requires either part filling the
transition page or clearing the remainder.
Peter Wemm [Sun, 18 Oct 1998 07:44:33 +0000 (07:44 +0000)]
Initialize earlier (ie: before npx) in case it makes any difference.
Print a message when it attaches to pmath_emulate if bootverbose so that
we can be sure it's online.
Peter Wemm [Sun, 18 Oct 1998 04:36:58 +0000 (04:36 +0000)]
OOPS!
Supply the moduledata handle rather than the event dispatcher function.
This should explain the panic on boot problem that's been discussed in
-current at the moment. Both machines had GNU_MATH_EMULATE.
David E. O'Brien [Sun, 18 Oct 1998 00:51:46 +0000 (00:51 +0000)]
Only process the ``PWD'' environmental var if built with "WANT_ENV_PWD"
defined. Bash v2 sets PWD and it creates major problems for those of us
with /usr/src being a symlink. See the lists for examples of the problems.
David E. O'Brien [Sat, 17 Oct 1998 22:20:06 +0000 (22:20 +0000)]
To clarify last commit, msmith says:
The reason the Alpha has less room than the i386 is because the bootstrap
is given a 256K mapping by the firmware; to add more requires extra work.
Bruce Evans [Sat, 17 Oct 1998 13:48:37 +0000 (13:48 +0000)]
Honour the default CFLAGS. This fixes a spew of warnings for compiling
unused static inlines in headers without -O.
Fixed missing libraries in DPADD.
Use .PATH instead of a symlink farm.
Removed bogus dependency of util.c on statetext.h (only util.o depends
on it). Removed rule for building statetext.h. The dependency was used
to get statetext.h built, but statetext.h is a non-generated source file
so it doesn't need building. This fixes an annoying message for the null
build and use of `make' instead of ${MAKE} to do the null build.
Brian Somers [Sat, 17 Oct 1998 12:28:08 +0000 (12:28 +0000)]
If the client asks for CBCP, then replies with CBCP_NONUM
to our REQ, allow no dialback - but only if we've
``set cbcp *''..
Suggested by: Andrzej Tobola <san@koziolek.lublin.top.pl>
Brian Somers [Sat, 17 Oct 1998 12:28:05 +0000 (12:28 +0000)]
Move help displays left one column to avoid problems with
broken terminals that can't handle 80 columns followed by
a linefeed.
Pointed out by: bde@FreeBSD.org
Bruce Evans [Sat, 17 Oct 1998 11:56:20 +0000 (11:56 +0000)]
Don't add /usr/games to $PATH. Adding it here can only work for the
`make world' case, and only made a difference for the evil NOTOOLS case
of `make world' since games tools are installed in ${TOOLROOT}/usr/bin
if they are built, but the PR was for normal builds. This is fixed
in rev.1.14 of src/games/fortune/datfiles/Makefile.
Bruce Evans [Sat, 17 Oct 1998 11:44:28 +0000 (11:44 +0000)]
Fixed building without /usr/games in $PATH. Just add /usr/games
to the _end_ of $PATH before using tools that are normally in
/usr/games. I broke this in rev.1.9 by assuming that these tools
are in $PATH (as they are for `make world' unless NOTOOLS is set).
Revs.1.10-1.13 of this file had various wrong fixes. Rev.1.18
of src/Makefile.inc1 has an incomplete fix.
PR: 7936
Fixed comments about what to comment out to [not] install the
potentially offensive fortunes. This should be configured using
an ifdef.
Fixed missing dependencies of fortunes.dat on fortunes, etc.
Removed bogus dependency of `all' on source files.
Robert Nordier [Sat, 17 Oct 1998 11:25:05 +0000 (11:25 +0000)]
Fix some glitches in the input routine:
Don't display a \b if not acting on it.
Don't process binary zero chars (which result from pressing function
keys, etc. on the PC).
Robert Nordier [Sat, 17 Oct 1998 09:50:09 +0000 (09:50 +0000)]
Treat all options as toggles (ie. -c -c is the same no -c). Since
the boot.config settings are persistent, this seems to provide a
useful override capability, and should break only on broken
boot.config's.
Output a cosmetic newline if booting with no input.
Bruce Evans [Sat, 17 Oct 1998 09:46:42 +0000 (09:46 +0000)]
Overload the correct errno for attempts to set an in-core label with
a raw partition at a nonzero offset (EINVAL should have been EXDEV;
DIOCSDINFO was broken, and DIOCWDINFO was broken because it depended
on DIOCSDINFO).
A zero offset for the raw partition should probably be enforced in
setdisklabel(), and DIOCWDINFO should probably always be handled by
first calling setdisklabel() so that writedisklabel() doesn't need to
enforce it, but this has never been done; dsioctl() has a special
check. Changes in this commit are limited to dsioctl() to preserve
bug for bug compatibility in drivers that don't use the slice code
(notably the ccd driver, which allows setting a bogus label in
DIOCWDINFO and doesn't undo the setting when writedisklabel() fails).
Robert Nordier [Sat, 17 Oct 1998 09:01:13 +0000 (09:01 +0000)]
biosboot compatibility fix:
Read boot.help before parsing boot.config. We were parsing
boot.config first, which could result in boot.help being read
from a different location (or not found), which would probably
just cause surprise, without being useful.
Bruce Evans [Sat, 17 Oct 1998 07:49:04 +0000 (07:49 +0000)]
Use only the correct raw partition for writing labels. Don't use the
partition that the label ioctl is being done on just because it has
offset 0, since there is no guarantee that such a partition is large
enough to contain the label. Don't use the wrong raw partition (0
instead of RAW_PART).
This fixes problems rewriting bizarre labels (with a nonzero offset
for the 'a' partition) in newfs(8). Such labels shouldn't normally
be used, but creating them was allowed if the ioctl was done on the
raw partition, and sysinstall creates them if the root partition isn't
allocated first.
Note that allowing write access to a partition other than the one that
has been checked for write access doesn't increase security holes
significantly, since write access to any partition already allows
changing the in-core label.
This fix should be in 3.0R. Rev.1.26 of newfs/newfs.c shouldn't be
in 3.0R.
Don't rewrite the disk label. The type field is already set correctly
and we don't use the frags info, so why bother? More to the point, it
seems to result in an EXDEV error when the label is written out and we
lose because of it (don't know why though). This is a work-around and
is marked as such.
Peter Wemm [Sat, 17 Oct 1998 03:06:38 +0000 (03:06 +0000)]
Load the first page of the file and use the headers in it. This should
avoid the need to seek back to offset zero which is causing trouble on
the Alpha with a gzipped kernel.
Kenneth D. Merry [Fri, 16 Oct 1998 21:12:07 +0000 (21:12 +0000)]
Add in the adv(4) and adw(4) man pages for the AdvanSys narrow and wide
SCSI controllers, respectively.
Once these drivers are tested on the alpha, these man pages can probably be
moved up a directory to reflect the fact that they're architecture
independent.
An mdoc guru should probably look at the AUTHORS sections in both of these
pages -- the .An macro seems to cause strange spacing problems.
Bruce Evans [Fri, 16 Oct 1998 16:53:15 +0000 (16:53 +0000)]
Split up rule for ${COMMONHDRS} so that `make -j N' doesn't create the
6 headers up to 6 times concurrently. Debugged by Don Lewis
(Don.Lewis@tsc.tdk.com).
Bruce Evans [Fri, 16 Oct 1998 15:33:17 +0000 (15:33 +0000)]
Generate code to interpret ioctl numbers for all ioctls defined in
headers under /usr/include, not just for the ones in <sys/ioctl.h>.
The generated file includes all headers that seem to define ioctls,
so build errors will probably occur if headers become less self-
sufficient than they are already. This is a feature. Build errors
shall not be fixed by adding more includes here.
Optionally generate a case statement instead of a list of if
statements. This source must be edited to change this. The case
statement should be non-optional. It currently can't be, because
many ioctl numbers are not unique.
Bruce Evans [Fri, 16 Oct 1998 15:00:18 +0000 (15:00 +0000)]
Don't generate unused file ioconf.h.
Didn't bump CONFIGVERS, since ioconf.h was already unused when
CONFIGVERS was last bumped (although essentially the same (CAM)
commit batch that bumped CONFIGVERS also added bogus includes of
ioconf.h).
Bruce Evans [Fri, 16 Oct 1998 14:22:54 +0000 (14:22 +0000)]
Fixed missing directories in the libraries target:
- in the elf case, csu must be built and installed before any shared
libraries. It wasn't, but we usually used a stale version that
happened to work. E.g., in the !NOTOOLS case we used the version
built and installed by the bootstrap-libraries target. Only cross
building was completely broken.
- the shared libmd must be built and installed before any shared
libraries that link to it. It wasn't, but we sometimes used a stale
version that happened to work, as above. For elf, this caused
bogus linkage of the target shared libatm and libopie with the host
static libmd. It isn't clear what this actually breaks, except for
cross compiling. For aout, the shared libmd is not built at all, so
all shared libraries linked to libmd may be broken. The linker
reports them by spewing RRS warnings.
Note that building src/lib early and building subdirs of src/lib in
the correct order in src/lib/Makefile doesn't help, since the subdirs
are all built before any are installed.
Fixed bitrot in the comments about the ordering requirements.
Peter Wemm [Fri, 16 Oct 1998 04:30:52 +0000 (04:30 +0000)]
Sample initial set of kld-ified modules. Not all have been completely
converted yet. These are more of a starting point. This is NOT connected
to the parent Makefile.
Peter Wemm [Fri, 16 Oct 1998 03:55:01 +0000 (03:55 +0000)]
*gulp*. Jordan specifically OK'ed this..
This is the bulk of the support for doing kld modules. Two linker_sets
were replaced by SYSINIT()'s. VFS's and exec handlers are self registered.
kld is now a superset of lkm. I have converted most of them, they will
follow as a seperate commit as samples.
This all still works as a static a.out kernel using LKM's.
Peter Wemm [Fri, 16 Oct 1998 03:04:15 +0000 (03:04 +0000)]
"fix" the gzipped kernel load problem by having the loader check that it
can seek back to the first PT_LOAD and doing a close/reopen if it cannot.
This is because the first PT_LOAD section includes the ELF headers.
This fixes gzipped kernels on the i386, it should solve mike's problem
for the Alpha.