bde [Tue, 20 Jan 1998 10:36:42 +0000 (10:36 +0000)]
Moved most of the (source-level) compatibility hacks for the vfsconf
interface from sys/mount.h to libc/getvfsent.c The new interface is
now the default.
bde [Tue, 20 Jan 1998 10:36:24 +0000 (10:36 +0000)]
Moved most of the (source-level) compatibility hacks for the vfsconf
interface from sys/mount.h to libc/getvfsent.c The new interface is
now the default.
kato [Tue, 20 Jan 1998 10:02:54 +0000 (10:02 +0000)]
- Move SETKLOC and CLEARKLOCK macros into uion.h.
- Set UN_ULOCK in union_lock() when UN_KLOCK is set. Caller expects
that vnode is locked correctly, and may call another function which
expects locked vnode and may unlock the vnode.
- Do not assume the behavior of inside functions in FreeBSD's
vfs_suber.c is same as 4.4BSD-Lite2. Vnode may be locked in
vget() even though flag is zero. (Locked vnode is, of course,
unlocked before returning from vget.)
jb [Tue, 20 Jan 1998 09:09:24 +0000 (09:09 +0000)]
Suggested by: bde
Move sigjmp_buf and jmp_buf structure definitions to machine/setjmp.h
so that i386 can continue to use int as the basic register type and
alpha can use long. Bruce was concerned about possible differing
alignment. I've left the definition of _JBLEN in machine/setjmp.h
even though Bruce's example used the number directly. I don't know if
any other code relies on _JBLEN, so I left it to avoid potential
breakage.
yokota [Tue, 20 Jan 1998 03:37:27 +0000 (03:37 +0000)]
- Add binary compatibility support for obsolete console/mouse ioctls
so that existing programs which were compiled before the introduction
of the new mouse code and use these ioctls will run unmodified.
jmb [Tue, 20 Jan 1998 01:48:12 +0000 (01:48 +0000)]
update hub's master configuraton file
limit sendmail to 500 messages per run
keeps the process from growing too large
sort the queue by host, not numeric priority
connecting to a host is too expensive,
once we got the connection, ram all the mail down his throat ;>
bde [Mon, 19 Jan 1998 18:48:36 +0000 (18:48 +0000)]
mount(8) only uses realpath() for the mountpoint, so don't look up the
real path here for the mount device (or path). This fixes difficulties
unmounting devices that are actually symlinks to real devices.
Also, print the original path instead of the real path in early error
messages. nfs path handling and later error messages may still be wrong,
probably only in silly cases where the original path is both a symlink
and a remote path.
wpaul [Mon, 19 Jan 1998 17:19:09 +0000 (17:19 +0000)]
Invoke rpcgen with -C so that headers are created with ANSI prototypes.
Note: this may cause some problems in a few cases. With very old versions
of rpcgen, if you defined a procedure called foo, then rpcen would create
client stubs for function foo_1() and server stubs _also_ with function
foo_1(). This only worked because of the lack of ANSI prototypes: the
client side stub takes different arguments than the server side stub.
(The client side takes a CLIENT * handle, while the server side wants
an svc_req *.)
To fix this conflict, rpcgen in ANSI mode generates foo_1() for the client
and foo_1_svc() for the server. RPC server code that depends on the old
behavior might break because of this. (Fixing it is just a matter of
adding the _svc suffix onto the server procedure names.)
bde [Mon, 19 Jan 1998 16:55:26 +0000 (16:55 +0000)]
Don't create superblocks with size larger than SBSIZE (8192). The
size was rounded up to a multiple of the fragment size, but this
gave invalid file systems when the fragment size was > SBSIZE (fsck
aborts early on them). Now a fragment size of 32768 seems to work
(too-simple tests with fsck and iozone worked).
bde [Mon, 19 Jan 1998 16:28:29 +0000 (16:28 +0000)]
Guard against a block size of 0 in the label. When the first
superblock is invalid, fsck looks at the label to help guess where
the next superblock should be. If the partition type is 4.2BSD,
fsck assumed that the block size was valid and divided by it, so
it dumped core if the size was 0.
Initialization of the label was broken almost 3 years ago in rev.1.9
of newfs/newfs.c. Newfs does not change the label at all, so there
is no problem (except the breakage of the automatic search for
backup superblocks) unless something else sets the partition type
to 4.2BSD. However, it is too easy to set partition types to
4.2.BSD by copying an old label or by using a disktab entry to
create the label.
bde [Mon, 19 Jan 1998 15:27:56 +0000 (15:27 +0000)]
Fixed accesses to addresses between VM_MAXUSER_ADDRESS (normally
0xefbfe000) and kernel_start (normally 0xf0100000).
Things are unnecessarily (?) difficult because procfs is used to
access user addresses in the live-kernel case although we must have
access to /dev/mem to work at all, and whatever works for the
dead-kernel case should work in all cases (modulo volatility of
live kernel variables). We used the wrong range [0, kernel_start)
for user addresses. Procfs should only work up to VM_MAXUSER_ADDRESS,
but it bogusly works for reads up to the address 2 pages higher
(the user area, including the kernel stack, is mapped to where the
user area used to be (WTUAUTB)). Procfs can not work at all for
addresses between WTUAUTB and kernel_start.
Now we use procfs only to access addresses up to VM_MAXUSER_ADDRESS.
Higher addresses are translated normally using kvtophys(), so the
user ptd is used for addresses below the real kernel start (0xf0000000;
see INKERNEL()) and nothing is found WTUAUTB.
Strange accesses that cross the user-kernel boundary are now handled,
but such ranges are currently always errors because they necessarily
overlap the hole WTUAUTB.
bde [Mon, 19 Jan 1998 14:27:41 +0000 (14:27 +0000)]
Removed `kstack' and associated mistranslations in kvtophys().
Correct translations would have been null. However, kstack was
the top of the kernel stack instead of the base of the kernel stack
like it was when the kernel exported it, so the area above the
kernel stack was mistranslated and the kernel stack was not
translated. This bug was depended on to compensate for the wrong
value of kstack - to read the pcb, instead of just using the address
of the pcb, we used the mistranslated address of kstack, which
happened to be the same (curpcb = kstack - 0x2000).
This area is simpler than it used to be now that the kernel stack
address is per-process. The code still seems to be more complicated
than necessary - the `found_pcb == 0' case seems to be unused.
bde [Mon, 19 Jan 1998 12:39:00 +0000 (12:39 +0000)]
Set p_retval for the correct process in getpriority(). This fixes
a null pointer panic when the pointer for the incorrect process is
NULL. getpriority() was broken in rev.1.27. Rev.1.28 broke the
warning instead of fixing the problem.
tegge [Mon, 19 Jan 1998 04:16:16 +0000 (04:16 +0000)]
The removal of a page from the free queue in vm_page_zero_idle was
imcomplete. Also set m->queue, in order to prevent vm_page_select_free
from selecting the page being zeroed.
brian [Sun, 18 Jan 1998 20:49:22 +0000 (20:49 +0000)]
Allow "set vj" for changing the default number of slots
and whether slot compression is requested.
Don't show current values with "show ipcp" if IPCP isn't
"opened".
bde [Sun, 18 Jan 1998 13:18:55 +0000 (13:18 +0000)]
Fixed endless loop for `p/x *(int *)0xf0000000'. kvm_uread() in
gdb was cloned from the buggy version of kvm_uread() in libkvm and
had the same bugs. It looped endlessly on EOF and checked errno
without setting it in the lseek() error check. The first bug caused
gdb to loop endlessly for reads from addresses between the end of
the user area and the start of the kernel text. kvm_uread() should
not be used for addresses beyond the end of the user area, but is
due to bugs elsewhere.
bde [Sun, 18 Jan 1998 12:35:48 +0000 (12:35 +0000)]
Don't override FRAME_CHAIN(). If the current frame is valid, then
the previous frame is in the usual place even for traps, interrupts
and syscalls in the kernel, because the assembly language stubs
don't change the frame pointer. The previous frame is just not for
the calling function. We may as well depend on this as on magic to
determine the trap frame address. The magic is in FRAME_SAVED_PC()
which elides the correct number of stubs (1) to go back to a pc that
matches the previous frame.
Removing fbsd_kern_frame_chain() fixes bugs in it. Xsyscall was
misspelled as _Xsyscall (gdb removes one leading underscore), so
the tf_syscall frame type was never found. This was harmless
because tf_normal works in all cases in fbsd_kern_frame_chain()
and Xsyscall is spelled correctly in fbsd_kern_frame_saved_pc()
where it matters. There were style bugs on almost every line,
starting with a primary indent of 7.
bde [Sat, 17 Jan 1998 16:45:03 +0000 (16:45 +0000)]
Started getting rid of the compatibility cruft for the Lite1 mount()
and the pre-Lite2 vfsconf interfaces.
For quot, just back out revs. 1.1 and 1.2 and change MNT_FFS to
"ufs", so that vfsconf isn't used at all. Revs. 1.1 and 1.2 were
hacks to get around f_fstypename not being in `struct statfs' in
Lite1.
bde [Sat, 17 Jan 1998 16:32:14 +0000 (16:32 +0000)]
Started getting rid of the compatibility cruft for the Lite1 mount()
and the pre-Lite2 vfsconf interfaces.
For getvfsent.c, just define _OLD_VFSCONF. This will give the
current default macro hacks in <sys/mount.h> when the default is
reversed. This is an intermediate step.
bde [Sat, 17 Jan 1998 16:24:27 +0000 (16:24 +0000)]
Started getting rid of the compatibility cruft for the Lite1 mount()
and the pre-Lite2 vfsconf interfaces.
For lsvfs, use the new interface for getvfsbyname(), and use the
old interface for getvfsent() explicitly instead of depending on
macro hacks in <sys/mount.h>. This is an intermediate step.
bde [Sat, 17 Jan 1998 15:52:32 +0000 (15:52 +0000)]
Don't install the tcl implementation headers. The tcl distribution
makefile doesn't install them, and they couldn't be used without
lots of undocumented -I's in CFLAGS. tcl.h is still installed in
/usr/include/tcl/. Note that rev.1.24 of tcl_bmake/mkMakefile.sh
broke all the section 3 tcl man pages by putting it there instead
of in /usr/include.
brian [Sat, 17 Jan 1998 14:21:21 +0000 (14:21 +0000)]
Remove the necessity of -ldes and -lalias etc from release/Makefile.
When building a release, RELEASE_CRUNCH is defined for a `make' of
the objects required by the crunch of each program. The object list
is still obtained in the same way, so you must make sure that all
objects are built (empty if necessary) by this make. ppp/Makefile
provides an example.
dyson [Sat, 17 Jan 1998 09:17:02 +0000 (09:17 +0000)]
Tie up some loose ends in vnode/object management. Remove an unneeded
config option in pmap. Fix a problem with faulting in pages. Clean-up
some loose ends in swap pager memory management.
The system should be much more stable, but all subtile bugs aren't fixed yet.
pst [Fri, 16 Jan 1998 22:13:07 +0000 (22:13 +0000)]
Bring in IDE ATAPI floppy support.
This is Junichi's v1.0 driver.
NOTE: Major device numbers have been changed to avoid conflict with other
FreeBSD 3.0 devices. The new numbers should be considered "official."
This driver is still considered "beta" quality, although we have been
playing with it. Please submit bugs to junichi and myself.
bde [Fri, 16 Jan 1998 18:49:42 +0000 (18:49 +0000)]
Removed references to the man pages for the obsolete interfaces
VOP_BLKATOFF, VOP_SEEK, VOP_SELECT, VOP_TRUNCATE, VOP_UPDATE,
VOP_VALLOC and VOP_VFREE.
bde [Fri, 16 Jan 1998 17:58:55 +0000 (17:58 +0000)]
Include <machine/pc/display.h>, not <i386/include/pc/display.h>. This is
not quite correct, because the Makefiles in lkm/syscons don't set up the
`machine' symlink, but other, more volatile headers in <machine> are
already used.
bde [Fri, 16 Jan 1998 16:45:05 +0000 (16:45 +0000)]
Fixed bugs in the conversion of kvm to to use procfs in rev.1.3. All
are in kvm_uread():
- the setting of errno before checking it in the lseek() was lost.
- EOF handling was lost. kvm_uread() retried forever on EOF. EOF is
not really an error, but report it one as in rev.1.2.
- reporting of errno after a read error was lost.
Fixed style bugs in rev.1.3 and rev.1.12.
Not fixed: errno is not reported after lseek() failures.
bde [Fri, 16 Jan 1998 12:28:09 +0000 (12:28 +0000)]
Removed `#pragma ident' (for a FreeBSD Id) so that the K&R support
isn't gratuitously broken. This also prevents ANSI compilers from
recognizing the pragma as a request to run /usr/games/hack...
FreeBSD Ids should be in comments or rcsids, not in `#pragma ident's
(which are equivalent to comments when compiled by gcc), and the
only FreeBSD change in this file seems to be adding the Id.
bde [Fri, 16 Jan 1998 12:20:41 +0000 (12:20 +0000)]
Commented out `#pragma ident' (for a Sun id) so that the K&R support
isn't gratuitously broken. This also prevents ANSI compilers from
recognizing the pragma as a request to run /usr/games/hack...
bde [Fri, 16 Jan 1998 12:10:13 +0000 (12:10 +0000)]
Made this header self-sufficent. It had unnecessary dependencies on
<sys/cdefs.h>, <sys/types.h>, <rpcsvc/yp_prot.h>, and on the latter's
prerequisites (5 more).
bde [Fri, 16 Jan 1998 11:37:54 +0000 (11:37 +0000)]
Commented out `#pragma ident' so that the K&R support isn't gratuitously
broken. This also prevents ANSI compilers from recognizing the pragma
as a request to run /usr/games/hack...
bde [Fri, 16 Jan 1998 09:43:47 +0000 (09:43 +0000)]
Fixed long lines in install rule. Fixed other bogons while I was here:
- removed vestigal rule for a Lite1 `.0' manpage.
- don't duplicate defaults in the `all' dependencies.
- removed bogus dependency of `setup' on monsters.asc.
- compile `setup' with the usual CFLAGS.
- create monster files at build time, not at install time.
- don't be so repetitive in the install rule.
- fixed too-global replacement of `install' by ${INSTALL}.
Long lines made disgustingly longer by: previous commit.
bde [Fri, 16 Jan 1998 08:59:21 +0000 (08:59 +0000)]
Use the system __CONCAT() instead of /**/ for concatenation in the
non-ANSI case. The system version is normally also /**/, but may
be different to support K&R compilers other than gcc -traditional.
bde [Fri, 16 Jan 1998 07:37:05 +0000 (07:37 +0000)]
Fixed handling of short writes. Previously, we stopped copying and
printed a bogus warning with a stale errno if write() returns a short
count. Now we continue copying. We still print a bogus warning if
write() returns an "impossible" short count of 0.
jmb [Thu, 15 Jan 1998 17:39:50 +0000 (17:39 +0000)]
update hub.mc to match what we are currently using:
both /etc/aliases and /etc/majordomo.aliases
sendmail.cw is *not* optional
command and connection timeouts
common hoststat directory for all queues
add fakenames database
clean up spam filter rules
limit the number of message processed each queue run
dont need to check Vixie's RBL in both check_relay and check_mail