a route. (This still doesn't work, but it doesn't panic now.) It looks
like there may be a number of incipient bugs in this code.
Also, get ready for the time when all IP gateway routes are cloning, which
is necessary to keep proper TCP statistics.
- excise some unused code (#if 0'd out - don't want to nuke it yet)
- fix problems with "make depend" - some macros were screwing it up
- get rid of some static local variables
There still seems to be a small reentrancy problem somewhere.
systems with it on by default (or the equivalent flag) and terminal control
sequences confuse it greatly. (Try running `ls' under bash in an XTerm,
for instance.)
"APM" macro.
machdep.c: Made the APM-descriptors unconditional.
Bruce: if these still conflict with your debugger, please put in a reservation
for your debugger. These three desc. can be anywhere, as long as they are
contiguous, so just move them as needed.
pmap.c: tons of unused vars zapped, various other warnings silenced.
trap.c: unused vars zapped.
vm_machdep.c: A wrong argument, which by chance did the right thing, was
corrected.
the first place was so that BPF could grok trailer packets. I've since
decided that this is a job for tcpdump to decipher (if at all). Also
fixed up checks for received packet length to better cope with ancient
starlan boards.
1) cut this up into /sys/sys/inflate.h, sys/kern/inflate.c
sys/kern/ingact_gzip.c
2) make a lot more things static
3) make a lot of globals const
4) make some args const
5) first stage of making globals into a struct (not used yet)
The vm_allocate() call which was introduced between revisions 1.4 and
1.5 of imagact_gzip.c broke things. I have backed that out for the time
being. (Davidg: help please)
WARNING: if you have gzip enabled in your kernel, you must now run
config again, as another source file has been added. Otherwise your
kernel compile will fall over.
This is all still WIP. More commits to come.
Suggestions from: phk.
Submitted by: Thomas David Rivers <rivers%ponds@ncren.net>
WARNING: might hide some bug below! I commit this to improve the stability
of 2.0.
Thomas wrote:
-------------
I have been running a kernel with this change since October 4th; barring
unrelated network router troubles, the pitiful little machine has
completed several builds without any interaction from me, and continues
to chug along.
I re-read wd.c, and added appropriate printfs() to look for references
to dk_badsect[]. My changes should have printed something when dk_badsect[]
was referenced.
I got no output :-(
Thus, I'm forced to concluded that something else is examining some
spurious memory... which happened to be in dk_badsect[] of the disk structure
in wd.c. I can find no other explanation of why this unnecessary
initialization causes things to operate correctly.
On the premise that such an initialization isn't going to hurt anything,
I'm going to suggest it go into 2.0.
I'd like to thank everyone for there assistance, particularly David,
John and Bruce.
more weird kinds of a.out than anyone can argue for. This code failed to
load the first 28K of the text-segment, in the case where the first page
of the a.out contains only the a.out-header, and the text is still at 0x0.
Thanks Steven !
been relocated to run in the 64k segment at 0x10000 with the stack at
the top of this segment. This corrects the problems machines with 512K
base memory had booting.
2. startprog routing rewritten to convert the BOOTSEG ss to a KERNELSEG
ss, this eliminated the last of the >512K memory references. Additional
cleanup in here included a better way to copy the arguments to the
kernel stack.
3. Elimination of argv and esym cruft saved a few bytes.
4. Only need to truncate the head.a_entry to a meg boundary once intead
of every time we used it! [Saving more bytes].
5. Addition of version 1 bootinfo structure support. These boot blocks
pass the kernel name in to the kernel now.
6. Removed historical comments about MACH argv stuff, as it is useless now.
that and when it does it will be done differently.
2. The kernel now does a frame setup on entry so it ``looks'' like a
real function call. This will be needed by future boot code and
debuggers.
3. Clean up stack offsets to all be in decimal and use %ebp when copying
parameters in from the boot code.
4. Implement version 1 of the uniform boot code passing mechanism with
support for kernelname passing and nfs_diskless structure passing.
5. Document the 3 different ways the kernel is called depending on what code
is calling it.
- Allow PPP to run multicasts natively.
- Deal properly with lots of similarly-named interfaces.
- Don't sign-extend if_flags.
NB: the last fix (to rtsock.c) must be reversed when we expand if_flags to a
reasonable size.
Submitted by: Mark Treacy
the uncompression buffer. Now malloc(M_GZIP) is used for all the Huffman-
tree stuff only. Numbers so far indicate < 15Kb Malloc use + 32 Kb for
the abovementioned buffer while uncompressing.
drives that return sector counts of 0 and cause division by 0 traps during
the probe).
Reviewed by: Dave <root@hclb.demon.co.uk>
Obtained from: FreeBSD 1.1.5.1
cleaned up much of the cruft in this thing.
No printf's in the case where things go well.
Gzip-headers can contain filenames and comments (as long as they're
shorter than the page-size.)
I don't think we leak memory, in the "exec/aout" code. I'm not quite sure
about the inflate code yet, but I don't think memory is lost.
Q: Can I add a class M_GZIP to <sys/malloc.h> and bump M_LAST one up
without any thing else needing tweaking ?
Poul-Henning
inadvertantly introduced in pre-1.1.5. This could cause page modifications
to go unnoticed during certain extreme low memory/high paging rate conditions.
Submitted by: John Dyson and David Greenman
WARNING: THIS MATERIAL MIGHT GO AWAY!
This material needs the core-groups approval to stay here for the 2.0 release.
If the core-group does not concent to this commit, it will be backed out.
***
It is a non-gpl'ed "unzip" which will allow execution of a.out files which
have been sent through "gzip -9". The idea being saved disk-space.
Just now this code has quality rating: "working prototype".
To compress a file to be used with this, do it exactly this way:
gzip -9 -v < /bin/FOO > /tmp/FOO
remember to chmod /tmp/FOO as needed.
DON'T compress all of you binaries right away ! There are several things
which you should consider first:
1. Using compressed binaries, you use >MUCH< more VM, and thus swap-space.
2. It is slow.
3. It might crash your machine.
Apart from that, I welcome comments...
NB: There is also a change to sys/conf/files, but cvs core-dumped on me,
so it didn't get into the logs or emailed, but the commit seems to have
happended OK.
WARNING: THIS MATERIAL MIGHT GO AWAY!
This material needs the core-groups approval to stay here for the 2.0 release.
If the core-group does not concent to this commit, it will be backed out.
***
It is a non-gpl'ed "unzip" which will allow execution of a.out files which
have been sent through "gzip -9". The idea being saved disk-space.
Just now this code has quality rating: "working prototype".
To compress a file to be used with this, do it exactly this way:
gzip -9 -v < /bin/FOO > /tmp/FOO
remember to chmod /tmp/FOO as needed.
DON'T compress all of you binaries right away ! There are several things
which you should consider first:
1. Using compressed binaries, you use >MUCH< more VM, and thus swap-space.
2. It is slow.
3. It might crash your machine.
Apart from that, I welcome comments...
be merged at some point)
New AMD family ethernet driver. Should support BICC,NE2100, TNIC,
AT1500 and anything else that uses a Lance/PCnet type chip. Only been
tested with the BICC so far though.
Still work to do on performance and MULTICAST support needs to be added
but it's basically working and I want the revision history from this
point on
AT1500 and anything else that uses a Lance/PCnet type chip. Only been
tested with the BICC so far though.
Still work to do on performance and MULTICAST support needs to be added
but it's basically working and I want the revision history from this
point on
must #define NFS before including <sys/mount.h> to pick up some of
the definitions needed for struct diskless. Be sure to undef it after this
so you do not effect other code.
This is kinda sick, but it does the job. Problem found by davidg.
2. Clean up the .S files to use /* */ style comments.
This is a totally cosmetic change, not one byte of the resulting boot
code changes. But at least it is installed with correct owners and in
the right places, and gets recompiled correctly when things change!
2. New detection code so we know what boot code called us.
3. Remove old DISKLESS support code and halt if we are called by that boot
code as it will NOT work with the new nfs_diskless structure.
This is really in preperation for new boot code and new diskless support.
Reviewed by: davidg
a FreeBSD box to do proxy ARP as easily as most commercial routers do,
without messing around with (potentially variable) Ethernet addresses.
This code is really quite simple; I'm not at all sure why it wasn't
implemented in 4.4.
It might be worth stealing an interface flag (maybe IFF_LINK1) to use for
finer-grained control over which interfaces get proxy treatment. For the
moment, it's all or nothing.
I think I have narrowed this down to the stack being overflown. I have
taken the push/pop of %fs out, it shouldn't be needed anyway, but the
real & correct solution might to save the registers on the stack in
locore.s before calling this stuff.
NOTE: 2.9 is backwards compatable with programs compiled with older
soundcard.h, but new programs compiled with 2.9 will not work on pre-2.9
sound drivers.
Changes are only effective, if NEW_SCSICONF is defined:
1) Added u_int16 quirks to struct scsi_link for device quirks.
2) Added void *devmodes to struct scsi_link for tape density modes.
3) Modified selectdev() to return first full match (with wildcard).
With this patch all device dependent configuration is done in one place
(scsiconf.c), while there were some specifications in st.c and some
hardware dependent drivers (ie. ncr.c) before.
New version with improved support for WIDE SCSI using the NCR 53c825.
Test for buggy secondary cache implementations.
PCI Int to IRQ mapping now specified per slot.
improvements from 1.1.5.1. I tried to compile a kernel without BOUNCE_BUFFERS
with the previous version for my Bt946c and it puked and died. Bringing
these enhancements back in allows the faster controllers to DTRT while
still not messing up the older ISA/broken VLB controllers, since
bounce-buffering is still the default. In theory, anyway. Bt445S and Bt545S
folks should start testing this ASAP! (actually, Bt445C and Bt545C folks
even more so!).
including files. vector.s sometimes left the data section misaligned
(depending on the configuration) so all the time-critical globals in icu.s
were sometimes misaligned.
...(this commit): moved initialization of 'start' to make it more clear
that it is initialized properly (also in vm_page_alloc_contig).
Reviewed by:
Submitted by:
Obtained from:
if requested. LKMs which need it should use:
SRCS+= vnode_if.h
CLEANFILES+= vnode_if.h vnode_if.c
These rules were already present for VFS LKMs; now they are enabled all
the time. (VFS LKMs do not need the fragment above; it is still done for them.)
cycles. While waiting there I added a lot of the extra ()'s I have, (I have
never used LISP to any extent). So I compiled the kernel with -Wall and
shut up a lot of "suggest you add ()'s", removed a bunch of unused var's
and added a couple of declarations here and there. Having a lap-top is
highly recommended. My kernel still runs, yell at me if you kernel breaks.
This is needed for having the fdformat program no longer searching
non-public include paths.
Protect the definitions in fdreg.h against double inclusion.
than making it 16bit and extending the major to 16bit because doing that
would have caused problems with existing filesystems /dev entries. This
change should have no apparant side effects.
This change is needed for the DOS partition re-work and other things.
Submitted by: Bruce Evans