Commit Graph

201 Commits

Author SHA1 Message Date
dg
da97dc92f8 Commented out anti-paging code as it was found to be the cause of a
buffer deadlock.
1994-10-04 03:10:47 +00:00
phk
edef5d36b8 Based on the applause (in this case: not downright rejection :-) I have
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
1994-10-04 03:09:13 +00:00
phk
d92766a8ef First bug-fix. This this depends on something odd. I am looking at it,
but every now and then it will fail without an explanation :-(
1994-10-03 23:14:48 +00:00
phk
6e8d358dec ***
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.
1994-10-03 05:23:01 +00:00
ache
58a698518c Add VMIN/VTIME support
Obtained from:  scratch :-)
1994-10-03 01:12:18 +00:00
phk
c3e4945541 All of this is cosmetic. prototypes, #includes, printfs and so on. Makes
GCC a lot more silent.
1994-10-02 17:35:40 +00:00
dg
3b0f093fdc "idle priority" support. Based on code from Henrik Vestergaard Draboel,
but substantially rewritten by me.
1994-10-02 04:48:21 +00:00
dg
b329c83425 Laptop Advanced Power Management support by HOSOKAWA Tatsumi.
Submitted by:	HOSOKAWA Tatsumi
1994-10-01 02:56:21 +00:00
ache
a83f1d347b Log SA_CORE signals
Obtained from: FreeBSD 1.x
1994-09-30 00:38:34 +00:00
wollman
3418b20e52 Fixed bug in hardclock() that caused adjtime() to fail when given
a negative offset.  This would be seen in xntpd as a rash of
``Previous time adjustment didn't complete'' messages on startup.
1994-09-29 00:52:06 +00:00
wollman
0f24b2046a LKM support is no longer optional. 1994-09-28 22:45:04 +00:00
phk
59934affab A potential panic, found by adding declarations. 1994-09-28 19:55:10 +00:00
phk
ee374e9243 Added a %p to printf & friends, same thing as 0x%08x but more with the
potiential to make a warning from gcc more useful.
1994-09-28 19:22:32 +00:00
dfr
57b6c0c34c Make NFS ask the filesystems for directory cookies instead of making them
itself.
1994-09-28 16:45:22 +00:00
phk
d0ad392702 Moved the "relookup" routine into vfs_lookup.c from ufs/ufs/ufs_vnops.c.
Several FS's use this, so it doesn't belong in ufs.  (unionfs, msdosfs and ufs)
1994-09-27 20:33:41 +00:00
dg
8369f70aad Process accounting implementation by Chris Demetriou, with minor local
changes.

Obtained from:	NetBSD
1994-09-26 21:09:15 +00:00
phk
ddacaf4e0d init_sysent.c was missing the final newline. 1994-09-26 03:27:22 +00:00
phk
f73f358983 While in the real world, I had a bad case of being swapped out for a lot of
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.
1994-09-25 19:34:02 +00:00
sos
64d698fbe9 Added support for EXEC type modules. 1994-09-25 08:51:07 +00:00
dg
fb2315b514 Shuffled macros and definitions around to facilitate architecture
independance.
1994-09-24 21:37:01 +00:00
dg
4dba522530 Temporarily (?) disable block reallocation until either the real bug is
found or we throw out the vfs cluster code entirely.
1994-09-24 18:31:45 +00:00
dg
9cac835749 Added support for p_textvp which stores the vnode pointer of the execed binary. 1994-09-24 16:58:43 +00:00
wollman
999b7e9f8f Add MIB variable kern.bootfile (R/W) giving the name of the booted kernel.
Kernel variable is kernelname[].
1994-09-23 19:07:42 +00:00
wollman
d8d853f4fa Make NFS loadable. 1994-09-22 22:10:49 +00:00
wollman
900d29807d More loadable VFS changes:
- Make a number of filesystems work again when they are statically compiled
  (blush)

- FIFOs are no longer optional; ``options FIFO'' removed from distributed
  config files.
1994-09-22 19:38:41 +00:00
wollman
57d5fc27ae mount.h: Declare getvfs* functions from libc.
vfs_init.c: Fix fs_sysctl() so that getvfs* functions actually work.
1994-09-22 01:05:09 +00:00
wollman
8c2367ad38 Fix a few niggling little bugs:
- set args->lkm_offset correctly so that VFS modules can be unloaded
- initialize _fs_vfsops.vfc_refcount correctly so that VFS modules can
  be unloaded
- include kernel.h in a few placves to get the correct definition of DATA_SET
1994-09-21 23:22:52 +00:00
bde
6176de915e Fix compiler warnings. 1994-09-21 21:58:39 +00:00
wollman
c289ac89a1 Implemented loadable VFS modules, and made most existing filesystems
loadable.  (NFS is a notable exception.)
1994-09-21 03:47:43 +00:00
bde
04236ea592 Don't use SIG_DFL or SIG_IGN for case label expressions. ANSI requires
such expressions to have integral type.  "gcc -ansi -pedantic -W..."
fails to diagnose this constraint error.
1994-09-20 05:42:46 +00:00
ache
297cf34bad oget/sethostname: add missing argument to kern_sysctl
Reviewed by:
Submitted by:
Obtained from:
1994-09-19 21:15:14 +00:00
ache
a2b49a847c sysctl incorrectly check name[2] instead of name[1] 1994-09-19 21:07:00 +00:00
ache
f3cb7fd780 Add vm/vm.h for complete sysctl type.
Remove wrong time declaration, already have correct in kernel.h
(kern_ntptime not compiled without this changes)
1994-09-19 17:39:21 +00:00
dfr
646e433a5c Reversed last revision which was a mistake. 1994-09-19 15:49:46 +00:00
dfr
7efbb964fd Added msdosfs.
Obtained from: NetBSD
1994-09-19 15:41:57 +00:00
wollman
9028bd50ff Redo Kernel NTP PLL support, kernel side.
This code is mostly taken from the 1.1 port (which was in turn taken from
Dave Mills's kern.tar.Z example).  A few significant differences:

1) ntp_gettime() is now a MIB variable rather than a system call.  A few
fiddles are done in libc to make it behave the same.

2) mono_time does not participate in the PLL adjustments.

3) A new interface has been defined (in <machine/clock.h>) for doing
possibly machine-dependent things around the time of the clock update.
This is used in Pentium kernels to disable interrupts, set `time', and
reset the CPU cycle counter as quickly as possible to avoid jitter in
microtime().  Measurements show an apparent resolution of a bit more than
8.14usec, which is reasonable given system-call overhead.
1994-09-18 20:40:01 +00:00
dg
88bd88b7a0 Got rid of compiler warnings. 1994-09-17 13:24:29 +00:00
dfr
a45a125824 Added code for FreeBSD-1.1.5 backwards compatibility. 1994-09-16 17:43:22 +00:00
ache
ba25185ec9 KERN_ADJKERNTZ removed from here to cpu_sysctl MACHDEP section 1994-09-16 00:53:58 +00:00
bde
9400f03fed Supply prototypes for some functions that were implicitly declared and
fix the resulting warnings.
1994-09-15 19:47:47 +00:00
ache
7c99dec97a KERN_ADJKERNTZ added in preparation of resettodr() implementation 1994-09-14 23:21:00 +00:00
dg
7753bf2cb8 Added missing #ifdef SYSVSHM. 1994-09-14 05:52:13 +00:00
dg
33ca5bbbd1 Removed prototype for cblock_alloc_cblocks (and moved it into tty.h). 1994-09-13 16:02:20 +00:00
dfr
580fe46632 Added SYSV ipcs.
Obtained from: NetBSD and FreeBSD-1.1.5
1994-09-13 14:47:38 +00:00
wollman
be512700dd Forgot to check this important file in. 1994-09-13 02:21:48 +00:00
wollman
37c8ae5b9e Added namespace information for future pollution-control measures. 1994-09-13 00:48:26 +00:00
dg
59c7dfa7fe Limit p_estcpu to UCHAR_MAX to keep it within reasonable bounds - else
it goes crazy (into the billions) during any lengthy build.

Submitted by:	John Dyson, modified slightly by me.
1994-09-12 11:27:03 +00:00
ats
75635299bc Delete the extra's int nosys(); declarations like the new makesyscall.sh
do it now.
1994-09-11 20:56:02 +00:00
ats
e55f4b3d3c Change the makesyscalls.sh to only generate one line for the external
declaration of nosys. This prevents some warnings from the compiler.
1994-09-11 20:45:34 +00:00
dg
0756c91ab2 Be more careful about dereferencing curproc, p_vmspace, and curpcb,
otherwise the machine will overflow the stack in a recursive fault loop
(causing the machine to spontaneously reboot because of the stack fault
that ultimately happens).

Submitted by:	Inspired by Bruce Evans, but this change is different
		than what he suggested.
1994-09-11 11:26:18 +00:00
wollman
7ae0ceacbd Define new MIB variable, hw.floatingpoint, which is true if FP hardware
is present, and false if an emulator is being used.
1994-09-09 23:13:03 +00:00
bde
b0b76e7d37 Remove <machine/eflags.h> and all dependencies on it. eflags.h is just
the Mach/i386 version of the BSD/vax(?) <machine/psl.h>.  The Mach
version has slightly better names for many macros but is now out of
date and little used.  It was originally used even less (for spelling
PSL_T as EFL_TF in <machine/db_machdep.h>).
1994-09-08 11:49:04 +00:00
dg
ff6fc2bc2a Whoops, accidently left out some pieces of the munmapfd patch. 1994-09-02 15:06:51 +00:00
dg
454da81a5a Make sure that uio_resid isn't negative in read(). 1994-09-02 14:04:39 +00:00
dg
70a7b53e06 Disallow truncating to negative file sizes. Doing so causes ffs_truncate()
and perhaps other fs truncate's to go crazy and panic the machine or worse.
This fixes the truncate bug reported by Michael Class.
1994-09-02 10:23:43 +00:00
dg
28c9f84238 munmapfd() was being called with one too few params - bug introduced
during my initial kernel port.
1994-09-02 10:17:30 +00:00
dg
4e8717c691 Make olstat() consistent with lstat() - so they both return the same
owner..

Submitted by:	Kirk McKusick
1994-09-02 04:14:44 +00:00
dg
bf11780374 Fixed bug that caused system processes to run at realtime priority. 1994-09-01 11:20:11 +00:00
dg
0d935e2ef5 Realtime priority scheduling support.
Added "sys/rtprio.h" with the used defines.
    Added rtprio(2) - the kernel interface.                  init_sysent.c,
                                                             kern_resource.c
                                                             syscalls.master
    Added 32 new runqueues (rtqs), with initialization.      kern_proc.c
                                                             kern_synch.c
    Realtime processes do not change nice/priority           kern_synch.c
    Added a column "rt" to ddb's ps (#ifdef RTPRIO_DEBUG)    kern_synch.c
    Realtime priorities are enherited through fork().        kern_fork.c
    Init (and children) NOT run as realtime process.         init_main.c

Submitted by:	Henrik Vestergaard Draboel
1994-09-01 05:15:50 +00:00
dg
43e565295a Realtime priority scheduling support.
Submitted by:	Henrik Vestergaard Draboel
1994-09-01 05:12:53 +00:00
dg
82189d4894 Conditionalized support for syscons as the console so that it can be
made optional in the kernel config file.

Submitted by:	John Hay
1994-08-31 07:44:22 +00:00
dg
a9a9ceeae2 Rather than exclude bounce buffers support with NOBOUNCE, include it
with BOUNCE_BUFFERS. This is more intuitive, and is better for future
multiplatform support. Added BOUNCE_BUFFERS option to the GENERIC and
LINT kernel config files.
1994-08-31 06:17:49 +00:00
dg
945e895904 Cleaned up after Bruce: there were still some things that included
com.h/lpa.h. Removed all vestiges of com/lpa out of conf.c and also
fixed up the end of cdevsw/bdevsw to have "no" routines instead of
a NULL pointer (suggested by someone a few weeks back).
1994-08-30 19:36:35 +00:00
dg
f81bd8035b Changed to reclaim memory from other buffers to eliminate memory
thrashing.

Submitted by:	John Dyson
1994-08-30 18:19:11 +00:00
dg
f15c464e97 "bogus" fixes from 1.1.5 to work around some cache coherency problems. 1994-08-29 06:09:15 +00:00
bde
f110979efe Don't test if a u_int is < 0. The remaining test is sufficient and the
extra one caused a warning.
1994-08-28 16:16:33 +00:00
dg
4d4250da00 1) Changed ddb into a option rather than a pseudo-device (use options DDB
in your kernel config now).
2) Added ps ddb function from 1.1.5. Cleaned it up a bit and moved into its
   own file.
3) Added \r handing in db_printf.
4) Added missing memory usage stats to statclock().
5) Added dummy function to pseudo_set so it will be emitted if there
   are no other pseudo declarations.
1994-08-27 16:14:39 +00:00
wollman
411b82456b Added ntp_gettime and ntp_adjtime syscalls, both nosys'ed out until
someone gets to re-integrating the code.  ntp_gettime() should be
turned into a sysctl variable and emulated in the library.
1994-08-26 18:15:25 +00:00
sos
970f32f702 Oops didn't check that init_sysent.c was generated proberly. Fixed.
Reviewed by:
Submitted by:
1994-08-26 09:33:37 +00:00
sos
89c704fc47 Changes to new sysent structure. TODO MOD_EXEC support.
Reviewed by:
Submitted by:
1994-08-26 08:42:07 +00:00
bde
429bde1b5f Support speeds 57600 and 115200.
Privatize functions.
1994-08-25 10:01:00 +00:00
sos
ecc424b57b Changes preparing for iBCS support
Reviewed by:
Submitted by:
1994-08-24 11:52:21 +00:00
dg
2f63d99b81 Pay attention to *all* errors from copyinstr(). This patch fixes a bug
that causes a no-panic instant reboot when bogus argv/envvs are fed to
execve().
1994-08-24 10:53:53 +00:00
dg
ee3a8a1d81 Initialized v_writecount. 1994-08-24 04:06:39 +00:00
dg
b2d6b5fa24 print "BUSY" instead of error number if filesystem was busy during
vfs_unmountall() - this is the most common case. If it was a different
error, then print the error number.
1994-08-22 17:05:00 +00:00
dg
f817326b2e Implemented filesystem clean bit via:
machdep.c:
	Changed printf's a little and call vfs_unmountall() if the sync was
	successful.

cd9660_vfsops.c, ffs_vfsops.c, nfs_vfsops.c, lfs_vfsops.c:
	Allow dismount of root FS. It is now disallowed at a higher level.

vfs_conf.c:
	Removed unused rootfs global.

vfs_subr.c:
	Added new routines vfs_unmountall and vfs_unmountroot. Filesystems
	are now dismounted if the machine is properly rebooted.

ffs_vfsops.c:
	Toggle clean bit at the appropriate places. Print warning if an
	unclean FS is mounted.

ffs_vfsops.c, lfs_vfsops.c:
	Fix bug in selecting proper flags for VOP_CLOSE().

vfs_syscalls.c:
	Disallow dismounting root FS via umount syscall.
1994-08-20 16:03:26 +00:00
dg
c97639b923 1) cleaned up after Garrett - fixed more redundant declarations, changed
use of timeout_t -> timeout_func_t in aha1542 and aha1742 drivers.
2) fix a bug in the portalfs that was uncovered by better prototyping -
   specifically, the time must be converted from timeval to timespec
   before storing in va_atime.
3) fixed/added some miscellaneous prototypes
1994-08-20 03:49:02 +00:00
dg
6b1e97340f Terry Lambert's loadable kernel module support w/improvements from the
NetBSD group.
1994-08-19 11:45:29 +00:00
wollman
f9fc827448 Fix up some sloppy coding practices:
- Delete redundant declarations.
- Add -Wredundant-declarations to Makefile.i386 so they don't come back.
- Delete sloppy COMMON-style declarations of uninitialized data in
  header files.
- Add a few prototypes.
- Clean up warnings resulting from the above.

NB: ioconf.c will still generate a redundant-declaration warning, which
is unavoidable unless somebody volunteers to make `config' smarter.
1994-08-18 22:36:09 +00:00
dg
bf2d1675b9 Added support for TIOCSTAT ioctl. This allows shells that use raw/cbreak
tty modes to process a control-T and do the right thing.
1994-08-18 09:16:37 +00:00
dg
c87abe4536 Moved over my fix for vnode lossage when multiple TIOCSCTTY ioctls are
done. This patch was extended to also include a suggested change by
Kirk McKusick which allows the control tty to be reasigned to a different
tty without losing a vnode.
1994-08-18 03:53:38 +00:00
dg
9daaac06d0 Made the kernel compile cleanly with gcc 2.6.0. Thanks go to Bruce
Evans for suggesting a method to detect various versions of gcc.
1994-08-13 14:21:58 +00:00
wollman
07e1c7f69d Change all #includes to follow the current Berkeley style. Some of these
``changes'' are actually not changes at all, but CVS sometimes has trouble
telling the difference.

This also includes support for second-directory compiles.  This is not
quite complete yet, as `config' doesn't yet do the right thing.  You can
still make it work trivially, however, by doing the following:

rm /sys/compile
mkdir /usr/obj/sys/compile
ln -s M-. /sys/compile
cd /sys/i386/conf
config MYKERNEL
cd ../../compile/MYKERNEL
ln -s /sys @
rm machine
ln -s @/i386/include machine
make depend
make
1994-08-13 03:50:34 +00:00
wollman
f0e3ec0f96 Make it easier for programs to figure out what revision of FreeBSD they
are running under.  Here's how to bootstrap (order is important):

1) Re-compile gcc (just the driver is all you need).
2) Re-compile libc.
3) Re-compile your kernel.  Reboot.
4) cd /usr/src/include; make install

You can now detect the compilation environment with the following code:

#if !defined(__FreeBSD__)
#define __FreeBSD_version 199401
#elif __FreeBSD__ == 1
#define __FreeBSD_version 199405
#else
#include <osreldate.h>
#endif

You can determine the run-time environment by calling the new C library
function getosreldate(), or by examining the MIB variable kern.osreldate.

For the time being, the release date is defined as 199409, which we have
already established as our target.
1994-08-10 06:25:07 +00:00
wollman
27d6cc8585 Handle NMI's in accordance with data in van Gilluwe book. 1994-08-10 04:39:52 +00:00
wollman
1a485fa264 Change default security level to -1, so that users don't get bitten by
upcoming makefile change.
1994-08-10 02:41:09 +00:00
dg
8c8cfc5c11 Made lockf advisory locking code generic (rather than ufs specific), and
use it in NFS. This is required both for diskless support and for POSIX
compliance. Note: the support in NFS is only for the local node.

Submitted by:	based on work originally done by Yuval Yurom
1994-08-08 17:31:01 +00:00
wollman
5e00042a4a Run-time configuration of VFS update interval. Old UPDATE_INTERVAL
configuration option is no longer supported.
1994-08-08 15:41:08 +00:00
dg
90aed30c20 Detect the "EOF" condition. Specifically, end of partition.
Submitted by:	Bruce Evans
1994-08-08 13:53:55 +00:00
dg
0c715f4417 Process tracing code. Written by Sean Eric Fagan.
Submitted by:	Sean Eric Fagan
1994-08-08 13:00:27 +00:00
dg
a5f60ab1cf Changed B_AGE policy to work correctly in a world with relatively large
buffer caches. The old policy generally ended up caching nothing.
1994-08-08 09:11:44 +00:00
wollman
ee4032e27e Define a sysctl MIB variable for the YP domain name. 1994-08-08 00:30:12 +00:00
dg
5f96899afd Made pmap_kenter "TLB safe". ...and then removed all the pmap_updates that
are no longer needed because of this.
1994-08-07 14:53:27 +00:00
dg
81dc370a9d Provide support for upcoming merged VM/buffer cache, and fixed a few bugs
that haven't appeared to manifest themselves (yet).

Submitted by:	John Dyson
1994-08-07 13:10:43 +00:00
dg
8b20309268 Incorporated post 1.1.5 work from John Dyson. This includes performance
improvements via the new routines pmap_qenter/pmap_qremove and pmap_kenter/
pmap_kremove. These routine allow fast mapping of pages for those
architectures that have "normal" MMUs. Also included is a fix to the
pageout daemon to properly check a queue end condition.

Submitted by:	John Dyson
1994-08-06 09:15:42 +00:00
dg
edb74877fe Implemented support for the "ps_strings" structure (grrrr...) for use in
the userland library libkvm.
1994-08-06 09:06:31 +00:00
dg
9719140bdf Process scheduling changes - adapted from FreeBSD 1.1.5. Basically,
charge scheduling CPU of child process to the parent and have child
inherit scheduling CPU from parent on fork. Makes a **big** difference
in the feel of the system to interactive users.

Submitted by:	John Dyson
1994-08-06 07:15:04 +00:00
dg
92c719582b Fixed bug that would cause free memory reserves to be depleted and cause a
panic in some cases.
Submitted by:	John Dyson
1994-08-04 19:43:13 +00:00
dg
8d205697aa Added $Id$ 1994-08-02 07:55:43 +00:00
dg
0e87163cbf Removed all code related to the pagescan daemon, and changed 'act_count'
adjustments to compensate for a world without the pagescan daemon.
1994-08-01 11:25:45 +00:00