bde [Fri, 13 Feb 1998 06:33:16 +0000 (06:33 +0000)]
Update timer0_prescaler_count before calling hardclock() while timer0
is "acquired". This fixes a TSC biasing error of about 10 msec when
pcaudio is active.
Update `time' before calling hardclock() when timer0 is being released.
This is not known to be important.
Added some delays in writertc(). Efficiency is not critical here, unlike
in rtcin(), and we already use conservative delays there.
Don't touch the hardware when machdep.i8254_freq is being changed but
the maximum count wouldn't change. This fixes jitter of up to 10 msec
for most small adjustments to machdep.i8254_freq. When the maximum
count needs to change, the hardware should be adjusted more carefully.
wpaul [Fri, 13 Feb 1998 03:38:41 +0000 (03:38 +0000)]
Close PR #2206: fix the services.byname target so that it can handle
/etc/services entries with any protocol instead of just udp and tcp.
Rather thani having the awk script explicitly search for 'udp' or 'tcp'
in the second field using index(), use split() to break up the field
at the '/' character if it exists, which extracts the protocol from
the field no matter what it is.
bde [Fri, 13 Feb 1998 03:10:28 +0000 (03:10 +0000)]
Uncommit the generated file key_prot.h. Install it from where it
is generated. It must be installed in both /usr/include/rpc/ and
/usr/include/rpcsvc/ for historical reasons. The generated version
was once missing ANSI prototypes because the wrong flags were passed
to rpcgen, but that is fixed now. The committed version had `#pragma
indent' which gratuitously broke K&R support. Apart from this, all
versions before and after this commit are identical.
bde [Fri, 13 Feb 1998 02:19:29 +0000 (02:19 +0000)]
Ensure that the linker sets for commands exist by putting a standard
command in each of them. This removes the need for hard-to-configure
dummy instantiations of the sets.
imp [Fri, 13 Feb 1998 02:13:24 +0000 (02:13 +0000)]
Many security improvements from OpenBSD:
implement mkdtemp
improve man page for mk*temp
use arc4random to seed extra XXX's randomly
Optionally warn of unsafe mktemp uses
From various commits by theo de raadt and Todd Miller.
Obtained from: OpenBSD
julian [Fri, 13 Feb 1998 01:27:34 +0000 (01:27 +0000)]
Fixes from Jeremy Allison and Terry Lambert for pthreads:
specifically:
uthread_accept.c: Fix for inherited socket not getting correct entry in
pthread flags.
uthread_create.c: Fix to allow pthread_t pointer return to be null if
caller doesn't care about return.
uthread_fd.c: Fix for return codes to be placed into correct errno.
uthread_init.c: Changes to make gcc-2.8 thread aware for exception stack
frames (WARNING: This is #ifdef'ed out by default and is
different from the Cygnus egcs fix).
uthread_ioctl.c: Fix for blocking/non-blocking ioctl.
uthread_kern.c: Signal handling fixes (only one case left to fix,
that of an externally sent SIGSEGV and friends -
a fairly unusual case).
uthread_write.c: Fix for lock of fd - ask for write lock, not read/write.
uthread_writev.c: Fix for lock of fd - ask for write lock, not read/write.
Pthreads now works well enough to run the LDAP and ACAPD(with the gcc 2.8 fix)
sample implementations.
phk [Thu, 12 Feb 1998 22:05:08 +0000 (22:05 +0000)]
Add support for VESA mode 0x102 (800x600x4) in syscons. You can activate
this using option "-b" to the boot blocks. It is smartest to compile
a font into your kernel (See LINT), but not mandatory, but apart from
the cursor you will see nothing on the screen until you load a font.
This mode allows XF86_VGA16 to run in 800x600 mode on otherwise unsupported
graphics hardware.
A number of buglets in the cursor handling in syscons may become
visible this way.
bde [Thu, 12 Feb 1998 22:00:01 +0000 (22:00 +0000)]
Fixed initialization of the 4MB page. Kernels larger than about 2.75MB
(from _btext to _end) crashed in pmap_bootstrap(). Smaller kernels
worked accidentally.
bde [Thu, 12 Feb 1998 21:41:10 +0000 (21:41 +0000)]
Only use the i586-optimized copying and zeroing functions if they are
actually faster (more than 20% faster for zeroing 1 MB at boot time).
This fixes pessimized copying and zeroing on K6's and perhaps on other
CPUs that are misclassified as i586's.
wpaul [Thu, 12 Feb 1998 19:29:05 +0000 (19:29 +0000)]
Fix _listmatch() again so that it works with group lists containing only
one group. Thanks to Dirk Froemberg for supplying a patch for this. I will
be closing out the PR and moving this to the 2.2.5 branch later: my login
sessions to freefall from Columbia are ridiculously spotty today.
alex [Thu, 12 Feb 1998 00:57:06 +0000 (00:57 +0000)]
Alter ipfw's behavior with respect to fragmented packets when the packet
offset is non-zero:
- Do not match fragmented packets if the rule specifies a port or
TCP flags
- Match fragmented packets if the rule does not specify a port and
TCP flags
Since ipfw cannot examine port numbers or TCP flags for such packets,
it is now illegal to specify the 'frag' option with either ports or
tcpflags. Both kernel and ipfw userland utility will reject rules
containing a combination of these options.
BEWARE: packets that were previously passed may now be rejected, and
vice versa.
wpaul [Wed, 11 Feb 1998 19:15:32 +0000 (19:15 +0000)]
Fix a bug in the database handle caching. This has to do with the way the
underlying database code works. When dealing with first/next queries, you
have the notion of a database 'cursor,' which is essentially a file pointer
for the database. To select the first entry, you do a fetch with the
R_FIRST flag set, then you can use the R_NEXT flag to enumerate the other
entries in the database. Unfortunately, doing a direct fetch with no flag
does _not_ set the 'cursor,' so you can't do a direct fetch and then
enumerate the table from there.
The bug is that cached handles generated as the result of a YPPROC_MATCH
were being treated as though they were the same as handles generated by
a YPPROC_FIRST, which is not the case. The manifestation is that if you
do a 'ypmatch first-key-in-map map' followed by a yp_first()/yp_next()
pair, the yp_first() and yp_next() both return the first key in the
table, which makes the entry appear to be duplicated.
A couple smaller things since I'm here:
- yp_main.c and yp_error.c both have a global 'int debug' in them.
For some reason, our cc/ld doesn't flag this as a multiply defined
symbol even though it should. Removed the declaration from yp_main.c;
we want the one in yp_error.c.
- The Makefile wasn't installing ypinit in the right place.
guido [Wed, 11 Feb 1998 18:43:42 +0000 (18:43 +0000)]
Only forward source routed packets when ip_forwarding is set to 1.
This means that a FreeBSD will only forward source routed packets
when both net.inet.ip.forwarding and net.inet.ip.sourceroute are set
to 1.
You can hit me now ;-)
Submitted by: Thomas Ptacek
yokota [Wed, 11 Feb 1998 15:02:40 +0000 (15:02 +0000)]
- Move the mouse cursor to the center of the screen after video
mode switch in ioctl.
Possibly related to PR: kern/4271
- A kludge: initialize scp->xpixel and ypixel even in the text mode.
If the console enters the `unknown' graphics mode via the ioctl KDSETMODE
(KD_GRAPHICS), these fields are not set (because syscons cannot know
the correct values), but set_mouse_pos() need to refer to these field
to adjust the mouse position.
- Turn off MOUSE_VISIBLE when switching video mode by ioctl.
- another new option: SC_MOUSE_CHAR
Define the first character code of four consecutive codes to be used for
the mouse cursor. Default codes are 0xd0 through 0xd3. Beware that
if you decide to use any codes outside the range of 0xc0-0xdf,
the mouse cursor may not look good, because of the way VGA displays
characters in 9-dot-wide character cells.
Requested by several people.
(This patch was tested by a person who recently reported, in the -current
ML, a page fault problem in the kernel (draw_mouse_iamge()) after
X server shutdown. The patch cured his problem.)
yokota [Wed, 11 Feb 1998 14:58:15 +0000 (14:58 +0000)]
- Break scrn_timer() into two pieces. Now screen update is done in a
separate routine: scupdate() called from scrn_timer().
- Make sure that the screen is updated for the low-level console
routines sccngetc() and sccncheckc(). A new routine, sccnupdate(),
is introduced and will call scupdate() above.
Requested by: bde and msmith
yokota [Wed, 11 Feb 1998 14:56:02 +0000 (14:56 +0000)]
- Ignore KBD_RAW_MODE and KBD_CODE_MODE in scgetc() when it's called
from the low-level console routines sccngetc() and sccncheckc().
Submitted by: bde (a long time ago)
- Don't try to ring bell and immediately return from do_bell() while
device probe is in progress at boot time; the timeout queue is not
functional yet.
PR: kern/2424
- Stop running the screen saver after panic() is called: check
if `panicstr' is non-NULL during scrn_timer().
PR: kern/5314
- A new option: SC_DISABLE_REBOOT
The reboot key (usually Ctl-Alt-Del) will be ignored if this option
is defined. You may still have the reboot key defined in the keymap and
it won't cause error when the keymap is loaded, but it will be quietly
treated as nop.
brian [Tue, 10 Feb 1998 22:33:43 +0000 (22:33 +0000)]
Move handle_signals() to before the FD_SETs. handle_signals()
may result in a our modem closing after it's made its way into
the fd_set, resulting in a program exit (with select(): bad file
descriptor) rather than a dropped link.
jkh [Tue, 10 Feb 1998 18:31:27 +0000 (18:31 +0000)]
Totally change the way that devices are made in the MFS and subsequently
probed in sysinstall. Rather than make template devices and use up lots
of inodes, also restricting the number of devices that can be dealt with,
mknod all necessary devices as necessary using built-in information.
This removes a number of constraints on the number and type of devices
that sysinstall can see.
msmith [Tue, 10 Feb 1998 00:10:35 +0000 (00:10 +0000)]
If the kernel was built with USERCONFIG_BOOT, and the '-c' (RB_CONFIG) flag
was supplied to the kernel when booting, ignore any 'quit' commands in the
userconfig script.
This provides an escape mechanism whereby a broken userconfig script may
be worked around.
cwt [Mon, 9 Feb 1998 08:41:49 +0000 (08:41 +0000)]
Adjustments for ccd devices:
1) Resulting special files now in group operator. (Reviewed by bde)
2) Use $disk_umask when creating ccd device specials. (Suggested by
bde)
3) No longer create rccd{n}.ctl; ccd's are not necessarily scsi.
(Suggested by bde)
4) No need to split short lines. (Suggested by bde)
jdp [Mon, 9 Feb 1998 06:05:25 +0000 (06:05 +0000)]
Move the trampolines for dlopen and related functions from crt0.o
into libc. This reduces the size of every dynamically linked
executable by 248 bytes, and it reduces the size of static executables
by a lesser amount. It also eliminates some global namespace
pollution.
With this change in place, the source for dlfcn.h should probably
be moved to "/usr/src/include". I'll save that for another day.
Compatibility note: Programs which use dlopen, if compiled on
systems with this change, will not run on systems with a libc from
prior to this change. Very few programs use dlopen, so I think
that is OK.
hoek [Sat, 7 Feb 1998 21:07:51 +0000 (21:07 +0000)]
Change documentation for `make package' (Thanks (indirectly) O'Brien!).
Document `make readmes'. This is getting old, and the intent is to
stop questions regarding it; however, I have a suspicion documenting it
will work counter to ending questions about it and am mentally prepared
to see it go-ooooooooo.......
helbig [Sat, 7 Feb 1998 17:19:06 +0000 (17:19 +0000)]
Postpone the test for non-emptiness of $PROG, $OBJS and $CLEANFILES
to ``shell time''. The previous version didn't work in
/usr/src7share/man/man4.
Reviewed by: bde