Commit Graph

365 Commits

Author SHA1 Message Date
Poul-Henning Kamp
087b6ad948 $Id: -> $Id$ 1995-01-31 04:33:41 +00:00
Bruce Evans
c9c9e30a03 Increase the reserved clist space for the raw queue from 512 to TTYHOG.
This might help avoid tty buffer overflows on loaded systems.
1995-01-30 06:16:59 +00:00
Bruce Evans
e45d35c3f8 Don't waste 1264K for each MB of unused text.
Remove misplaced comment.
1995-01-29 03:03:23 +00:00
Andreas Schulz
aa98692ffb Correct a name of one structure member in the sigaltstack structure.
Now it matches the man page and also the only other commercial implementation
i have found so far ( Solaris 2.x).
Changed the name from ss_base to ss_sp.
1995-01-29 01:19:25 +00:00
David Greenman
6a1c735df7 Fix problem with freeing busy pages reported by Nick Sayer.
Submitted by:	 John Dyson
1995-01-26 03:34:31 +00:00
David Greenman
9532143ae6 Fixed a variety of deadlock and panic bugs, removed the bypass code, and
implemented the ability to limit bufferspace by memory consumed. (vfs_bio.c)
Fixed recently introduced bugs that caused extra I/O to happen in some
cases. (vfs_cluster.c)

Submitted by:	John Dyson
1995-01-24 10:00:46 +00:00
David Greenman
fbdfe8ac22 Changed buffer allocation policy (machdep.c)
Moved various pmap 'bit' test/set functions back into real functions; gcc
generates better code at the expense of more of it. (pmap.c)
Fixed a deadlock problem with pv entry allocations (pmap.c)
Added a new, optional function 'pmap_prefault' that does clustered page
table preloading (pmap.c)
Changed the way that page tables are held onto (trap.c).

Submitted by:	John Dyson
1995-01-24 09:56:33 +00:00
David Greenman
0a2d61c61c Kill redundant declarations of d_open_t and d_close_t. 1995-01-23 18:46:13 +00:00
Poul-Henning Kamp
1aaca524e0 Fixed $Id$ 1995-01-23 02:31:53 +00:00
Bruce Evans
d7e3a89f1f Don't count the parent's previous timeslice in the child's resource usage
(it was counted twice).

Set the start time more accurately.
1995-01-21 15:08:57 +00:00
Bruce Evans
a2562ad917 Keep track of open devices better to avoid closing the console device when
the physical device is closed.  Previously only the reverse case was handled.
Abuse the cdevsw interface instead of the vfs interface to do this.

Remove unnecessary #includes.
1995-01-21 14:12:15 +00:00
Andrey A. Chernov
60efec1dab Restore original fix from ohki, not check m for NULL it is already done
in the code above.
Submitted by: ohki@gssm.otsuka.tsukuba.ac.jp
1995-01-21 06:32:26 +00:00
Andrey A. Chernov
f76c8e8cc3 Change if (m->valid == 0) to if (m && m->valid == 0) 1995-01-20 23:30:42 +00:00
Bill Paul
fc042b6935 Submitted by: ohki@gssm.otsuka.tsukuba.ac.jp
When using cp to copy a file under the following circumstanes:

- original file in on an NFS filesystem
- destination file is on the same NFS filesystem
- the file is less than 8Mbytes in size
- the file is larger than 65536 bytes in size

the cp process can get frozen in device-wait and never wake up (cp uses
mmap() in this case).
A small change to allocbuf() fixes this.
1995-01-20 20:11:31 +00:00
David Greenman
761dd66739 Attempt to close a hole using splhigh/splx. There still appears to be a
serious one in the same area that I don't have time to fix.
1995-01-15 09:35:58 +00:00
Bruce Evans
20415301cd Fix security holes in sigreturn(), ptrace() and procfs. sigreturn()
attempted to check for insecure and fatal eflags and segment
selectors, but missed many cases and got the IOPL check back to
front.  The other syscalls didn't check at all.

sys_process.c, machdep.c:
Only allow PT_WRITE_U to write to the registers (ordinary and FP).

psl.h, locore.s, machdep.c:
Eliminate PSL_MBZ, PSL_MBO and PSL_USERCLR.  We are not supposed
to assume anything about the reserved bits.  Use PSL_USERCHANGE
and PSL_KERNEL instead.  Rename PSL_USERSET to PSL_USER.

exception.s:
Define a private label for use by doreti when returning to user
mode fails.

machdep.c:
In syscalls, allow changing only the eflags that can be changed on
486's in user mode (no longer attempt to allow benign IOPL changes;
allow changing the nasty PSL_NT; don't allow changing the i586
bits).

Don't attempt to check all the cases involving invalid selectors
and %eip's.  Just check for privilege violations and let the invalid
things cause a trap.

procfs_machdep.c:
Call the ptrace register functions to do all the work for reading
and writing ordinary registers and for single stepping.

trap.c:
Ignore traps caused by PSL_NT being set.  Previously, users could
cause a fatal trap in user mode by setting PSL_NT and executing an
iret, and a fatal trap in kernel mode by setting PSL_NT and making
a syscall.  PSL_NT was cleared too late and not in enough modes to
fix the problem.

Make all traps in user mode (except T_NMI) nonfatal.

Recover from traps caused by attempting to load invalid user
registers in doreti by restarting the traps so that they appear to
occur in user mode.
---

Fix bogons that I noticed while fixing the above:

psl.h:
Fix some comments.

Uniformize idempotency ifdef.

exception.s, machdep.c:
Remove rsvd[0-14].  rsvd0 hasn't been reserved since the 486 came
out.  Replace rsvd0 by `align'.  rsvd[0-11] used wrong (magic
non-unique) trap numbers.  Replace rsvd[1-14] by rsvd.

locore.s:
Enable alignment check flag on 486's and 586's.

machdep.c:
Use a better type for kstack[].

Use TFREGP() to find the registers.

Reformat ptrace functions from SEF to something closer to KNF.

procfs_machdep.c:
The wrong pointer to the registers got fixed as a side effect.

Implement reading and writing of FP registers.

/proc/*/*regs now work (only) for processes that are in memory.

Clean up comments.

trap.c, trap.h:
Remove unused trap types.
1995-01-14 13:20:26 +00:00
David Greenman
ec2bb6ade1 Increase maxfiles to NPROC*2. This makes the per-process open file limit
highly bogus, however, and this needs to be fixed.
1995-01-12 03:38:12 +00:00
David Greenman
c3d05da5e3 MFS doesn't bother to associate a struct mount with the vnode...so work
around this by not trying to cluster this type of I/O.

Submitted by:	John Dyson
1995-01-11 01:53:18 +00:00
David Greenman
5943df8331 PG_FAKE is no longer used - so don't bother to clear it. 1995-01-10 09:20:34 +00:00
David Greenman
480dff540b Fixed some formatting weirdness that I overlooked in the previous commit. 1995-01-10 07:32:52 +00:00
David Greenman
0d94caffca These changes embody the support of the fully coherent merged VM buffer cache,
much higher filesystem I/O performance, and much better paging performance. It
represents the culmination of over 6 months of R&D.

The majority of the merged VM/cache work is by John Dyson.

The following highlights the most significant changes. Additionally, there are
(mostly minor) changes to the various filesystem modules (nfs, msdosfs, etc) to
support the new VM/buffer scheme.

vfs_bio.c:
Significant rewrite of most of vfs_bio to support the merged VM buffer cache
scheme.  The scheme is almost fully compatible with the old filesystem
interface.  Significant improvement in the number of opportunities for write
clustering.

vfs_cluster.c, vfs_subr.c
Upgrade and performance enhancements in vfs layer code to support merged
VM/buffer cache.  Fixup of vfs_cluster to eliminate the bogus pagemove stuff.

vm_object.c:
Yet more improvements in the collapse code.  Elimination of some windows that
can cause list corruption.

vm_pageout.c:
Fixed it, it really works better now.  Somehow in 2.0, some "enhancements"
broke the code.  This code has been reworked from the ground-up.

vm_fault.c, vm_page.c, pmap.c, vm_object.c
Support for small-block filesystems with merged VM/buffer cache scheme.

pmap.c vm_map.c
Dynamic kernel VM size, now we dont have to pre-allocate excessive numbers of
kernel PTs.

vm_glue.c
Much simpler and more effective swapping code.  No more gratuitous swapping.

proc.h
Fixed the problem that the p_lock flag was not being cleared on a fork.

swap_pager.c, vnode_pager.c
Removal of old vfs_bio cruft to support the past pseudo-coherency.  Now the
code doesn't need it anymore.

machdep.c
Changes to better support the parameter values for the merged VM/buffer cache
scheme.

machdep.c, kern_exec.c, vm_glue.c
Implemented a seperate submap for temporary exec string space and another one
to contain process upages. This eliminates all map fragmentation problems
that previously existed.

ffs_inode.c, ufs_inode.c, ufs_readwrite.c
Changes for merged VM/buffer cache.  Add "bypass" support for sneaking in on
busy buffers.

Submitted by:	John Dyson and David Greenman
1995-01-09 16:06:02 +00:00
Bruce Evans
4c5e4b09a7 Fix error handling for new TIOCSDRAINWAIT ioctl. 1995-01-06 14:56:42 +00:00
Stefan Eßer
623976474c Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Reviewed by: <wollman>
First hooks and defines for the ISDN driver,
that soon will see the light ...
1995-01-05 19:51:51 +00:00
Andrey A. Chernov
33c38bd574 Fight against hanging modems: add timeout to ttywait.
Reviewed by: Bruce
1995-01-05 00:01:07 +00:00
Jordan K. Hubbard
95da7f140e Another part of Bill Paul's fix to swapgeneric to properly use the -a flag.
Submitted by:	wpaul
1994-12-31 17:15:16 +00:00
Bruce Evans
62f603b64d Change an 0 to WHOLE_DISK_SLICE. 1994-12-30 12:19:11 +00:00
Bruce Evans
2336b9d7d7 Print "(null)" instead of "<null>" for NULL string args for consistency
with the libc and ddb printf's.

Print "(fmt null)\n" for NULL formats.
1994-12-30 12:17:42 +00:00
David Greenman
8f5067ba28 Make printf() a bit more robust and allow NULL strings (print them as
"<null>"). It bad to have diagnostic printfs cause panics when they are
trying to tell you about another problem.
1994-12-28 06:28:34 +00:00
David Greenman
be6a1d148e Fixed multiple bugs that cause null pointers to be followed or FREEed data
to be accessed if a process blocks when it is being run down.
1994-12-28 06:15:08 +00:00
Bruce Evans
13d7c724ca Obtained from: 1.1.5
Fix single-stepping of emulated FPU instructions.

Don't panic if an FPU instruction is attempted but there is no FPU
and no FPU emulator is configured.
1994-12-24 07:22:58 +00:00
David Greenman
602d2b481a Protect vnode buffer chain manipulation with splbio to prevent list
corruption..
1994-12-23 04:52:55 +00:00
Bruce Evans
222d875bec Print `slicename' and not a bogus pointer in diskerr() 1994-12-22 04:42:31 +00:00
Joerg Wunsch
91c38cb885 Ooops, i forgot one NVT > 0 in a previous commit. Now pcvt will also
work as the system's console.
1994-12-18 19:42:41 +00:00
Joerg Wunsch
00e82d39d7 Move the code providing the equivalent of ICRNL for console input from
the device driver(s) to cons.c.
1994-12-18 19:35:59 +00:00
Guido van Rooij
f81fcd410f Fix bug in sysctl_string so that when a string has a length that is to
short, it gets filled uop to its length. This matches the getdomainname
and gethostname manual pages.
(getbootfile also uses this function and I think it should have the same
behaviour)

This also fixes a bug with keyinit where the seed was not saved in
/etc/skeykeys. So S/Key should be fully functional again.

Reviewed by:
Submitted by:
Obtained from:
1994-12-18 13:56:50 +00:00
David Greenman
8a8d90d871 Fix possible off by one in b_save allocation size. 1994-12-18 03:05:49 +00:00
David Greenman
763424fcf0 Changed splimp to splhigh to close a potential hole that could lead
to corrupted malloc data structures caused by frees occurring at other
than splimp.
1994-12-17 04:04:42 +00:00
Bruce Evans
fb72042b5c Duplicate readdisklabel() and writedisklabel() and remove DOS stuff from
from the copies to create correct_readdisklabel() and
correct_writedisklabel().

Print the slice number in diskerr() if it is nonzero.
1994-12-16 16:31:23 +00:00
Bruce Evans
9af6068321 Separate go-away code from dsinit() to produce dsgone().
Call correct_writedisklabel() instead of writedisklabel() (temporary
compatibility hack).

Remove kludge for allowing a label on slice 0.
1994-12-16 16:14:39 +00:00
Garrett Wollman
23f6ed01aa Actually enable NTP kernel PLL. (Oops!)
Noticed by Pete Carah.
1994-12-14 17:57:47 +00:00
Bruce Evans
20989d2d64 Obtained from: my fix for 1.1.5
Remove compatibility hack so that dup(fd) isn't interpreted as
dup2(fd & 0x3f, random_junk_on_stack_fd) when (fd & 0x3f) != 0.
1994-12-12 12:27:39 +00:00
Bruce Evans
6976af69e8 Obtained from: my old fix for 1.1.5
Improve hzto():

Round up instead of down and then add 1 tick.  This fixes sleep(1)
sometimes sleeping for < 1 second and usleep(10000) sometimes sleeping
for as little as 1 usec + syscall time.

Don't do all the calculations at splhigh().

Don't depend on `tick' being a multiple of 1000.

Don't lose accuracy for `sec' between 0x7fffffff / 1000 - 1000 and
0x7fffffff / hz.

Don't assume that longs are 32 bits or that ints have the same size as
longs.
1994-12-12 11:58:46 +00:00
David Greenman
e8cdac9bfd Don't mess with already freed structures when a process is being run
down.
1994-12-12 06:04:27 +00:00
Bruce Evans
0300a965c8 diskslice_machdep.c implements reading and checking of DOS slice tables.
It will eventually replace readMBR.c.
1994-12-12 00:22:30 +00:00
Bruce Evans
d1f35d579f subr_diskslice.c implements everything related to slices and labels except
reading and writing the slice tables and labels.

subr_dkbad.c implements everything related to bad sector remapping using
the bad144 format.
1994-12-12 00:20:34 +00:00
Bruce Evans
a81b757af0 Don't allow negative limits at all. Convert them to RLIM_INFINITY instead
of returning EINVAL since something may depend on them being broken.
Allowing negative limits caused bugs almost everywhere.  The recent
fixes for MAXSSIZ checked the limits too late to stop anyone defeating
limits set by root...
1994-12-06 22:53:37 +00:00
Poul-Henning Kamp
54213fd84a Implemented a "TEXT_SET" called 'cleanup_set' which will be called before
the reboot takes place (if not RB_NOSYNC that is).  The vn driver needs this.
Other places might benefit too.
1994-12-04 19:58:43 +00:00
Andrey A. Chernov
cdbbd9cfaf don't allow ctty to be set to ctty - infinite kernel recursion
Obtained from: 1.1.5.1
1994-12-04 01:46:13 +00:00
Andrey A. Chernov
73a361245d Call d_stop in ttyflush not only for WRITE but for READ too
Obtained from: 1.1.5.1
1994-12-04 01:01:45 +00:00
Andreas Schulz
06935b59e5 Add one forgotten u_quad_t typecast in dosetrlimit. 1994-12-02 23:00:40 +00:00
Andreas Schulz
a7d72265c4 The values for setrlimit in the data size and stack size case are
used as an address value. Then all comparisons should be done unsigned
and not signed. Fix it with a typecast of u_quad_t.
Error can be demonstrated with the current bash in port, do a
ulimit -s unlimited and the machine hangs. bash delivers through
an internal error a large negative value for the stacksize, the
comparison saw this smaller than MAXSSIZ and then tried to expand
the stack to this size.
1994-12-01 20:20:21 +00:00
Bruce Evans
d1a795a280 Fix cblock starvation bugs by reserving enough cblocks for minimal
operation of each clist.  Limit the growth of each clist.  Clists
can only grow larger than the reserved minimum if there are free
cblocks in a shared pool.  The size of this pool is now fixed
(this could be improved).  The reserved and maximum sizes are more
carefully allocated for slip and ppp, depending on the mtu.  A maximum
MTU of 16384 is now enforced for ppp.
1994-11-26 19:24:13 +00:00
Bruce Evans
ba77d4e47b Don't block for output in non-blocking mode if clists run out.
Remove an unnecessary test (if the output queue is above high water
then it is nonempty).
1994-11-26 18:54:25 +00:00
David Greenman
eadf9e27cd These changes fix a couple of lingering VM problems:
1.	The pageout daemon used to block under certain
	circumstances, and we needed to add new functionality
	that would cause the pageout daemon to block more often.
	Now, the pageout daemon mostly just gets rid of pages
	and kills processes when the system is out of swap.
	The swapping, rss limiting and object cache trimming
	have been folded into a new daemon called "vmdaemon".
	This new daemon does things that need to be done for
	the VM system, but can block.  For example, if the
	vmdaemon blocks for memory, the pageout daemon
	can take care of it.  If the pageout daemon had
	blocked for memory, it was difficult to handle
	the situation correctly (and in some cases, was
	impossible).

2.	The collapse problem has now been entirely fixed.
	It now appears to be impossible to accumulate unnecessary
	vm objects.  The object collapsing now occurs when ref counts
	drop to one (where it is more likely to be more simple anyway
	because less pages would be out on disk.)  The original
	fixes were incomplete in that pathological circumstances
	could still be contrived to cause uncontrolled growth
	of swap.  Also, the old code still, under steady state
	conditions, used more swap space than necessary.  When
	using the new code, users will generally notice a
	significant decrease in swap space usage, and theoretically,
	the system should be leaving fewer unused pages around
	competing for memory.

Submitted by:	John Dyson
1994-11-25 07:58:29 +00:00
Bruce Evans
6124ac44aa Move declarations of public functions to <sys/sysctl.h>.
Make some private data static.

Comment about MAXPATHLEN bytes of bloat for the kernel name.
1994-11-14 13:58:30 +00:00
Poul-Henning Kamp
e113d7633d Make a kernel sans FFS possible. 1994-11-12 01:47:43 +00:00
Andreas Schulz
94e6bbfc64 pick up the changes from a makesyscall.sh run. The multiple lkmnosys
declarations should now be gone.
1994-11-10 23:59:47 +00:00
Poul-Henning Kamp
4385de1699 Added "const" to the arguments here and there. 1994-11-07 20:48:35 +00:00
Andreas Schulz
f0e1ab7bc7 Put a small hack into a large hack named makeyscall.sh. Generate only
one lkmnosys() entry in init_sysent.c.
1994-11-06 21:57:16 +00:00
Andrey A. Chernov
08ee5d13ae Security nitpicking: don't make *.core world readable 1994-11-06 11:13:02 +00:00
David Greenman
cf17350a73 Added support for starting the experimental "vmdaemon" system process.
Enabled via REL2_1.

Submitted by:	John Dyson
1994-11-06 05:01:58 +00:00
David Greenman
c4a7b7e10c From tim@cs.city.ac.uk (Tim Wilkinson):
Find enclosed a short bugfix to get the union filesystem up and running
in FreeBSD-current.  We don't think we've got all the problems yet but
these fixes sort out the major ones (which mostly concert bad locking
of vnodes), no doubt we'll post others as necessary.  Known problems
include the inability of the umount command (not the system call) to unmount
unions in certain circumstances (this is due the way "realpath" works),
and the failure of direntries to always get all available files in
unioned subdirectories.  We are, as they say, working on it.

Submitted by:	tim@cs.city.ac.uk (Tim Wilkinson)
1994-11-04 14:41:46 +00:00
Bruce Evans
e8b7f39747 Return immediately from ttwrite() if the ttysleep()s that wait for
a clist return with an error.  There are some clist starvation/deadlock
bugs elsewhere and killing clist hogs didn't help because the breaks
only exited from the inner loops.
1994-11-01 22:23:29 +00:00
Joerg Wunsch
0cdf7aff6d Added hooks for an easy drop-in of the pcvt concole driver.
Don't panic:-), this is simple stuff just doing exactly the same as for syscons.
(files.i386 did already contain the necessary stuff.)
1994-10-31 17:20:15 +00:00
Bruce Evans
ab4bc4b293 Fix selector arg to match the (missing) prototype for sdtossd().
Cosmetic.

Return from trap() if trap_fatal() returns.  trap_fatal() isn't
fatal if you have ddb.  Returning from trap() is usually the right
thing to do and much better than falling through.
1994-10-30 20:25:21 +00:00
Bruce Evans
a6a21d9edf Don't attempt to free null cblocks. There may be less to free than
normal due to cblock resource starvation or malloc() failing when
the device is opened.
1994-10-30 19:43:49 +00:00
Andrey A. Chernov
934051e5c5 write ptys use _the_same_ tsleep/wakeup address as read ptys due to
mistype, fixed.
1994-10-29 23:59:48 +00:00
Jordan K. Hubbard
54c7241bd3 Julian Elischer's disklabel fixes. 1994-10-27 20:45:13 +00:00
Poul-Henning Kamp
5f7bd355f0 Fix the panic message if init dies to show the exit status. 1994-10-27 05:21:39 +00:00
Poul-Henning Kamp
2257b745d1 When all else fails, try to use "/stand/sysinstall" as "init" process. The
new installation procedure needs this.
1994-10-26 03:34:20 +00:00
David Greenman
f15b8850dd Changed some variable names in lf_addblock to make the code both
understandable and conform to other conventions used in the file.
1994-10-25 11:27:51 +00:00
Garrett Wollman
fb5a05599e Don't do suser() check; it's already done in __sysctl(). 1994-10-23 23:01:03 +00:00
Garrett Wollman
2f86936a07 Finished device configuration database work for all ISA devices (except `ze')
and all SCSI devices (except that it's not done quite the way I want).  New
information added includes:

-	A text description of the device
-	A ``state''---unknown, unconfigured, idle, or busy
-	A generic parent device (with support in the m.i. code)
-	An interrupt mask type field (which will hopefully go away) so that
.	  ``doconfig'' can be written

This requires a new version of the `lsdev' program as well (next commit).
1994-10-23 21:28:03 +00:00
David Greenman
e03b612d87 Only VM_WAIT if curproc != pageproc. A deadlock can occur otherwise.
Submitted by:	John Dyson
1994-10-23 20:52:11 +00:00
David Greenman
26305b211a Round down instead of up in 'kerninfo'/ctrl-T stats code. Incorrect output
can result otherwise.

Submitted by:	John Dyson
1994-10-23 06:18:13 +00:00
Poul-Henning Kamp
8963028c59 Make the diagnostics a little more useful.
A word of wisdom, don't do this:

|	cd /usr/bin
|	for i in *
|	do
|		cp $i /tmp/a
|		gzip -9 < /tmp/a > $i
|	done

It will compress files with multiple links several times.  do it this way:

|	cd /usr/bin
|	for i in *
|	do
|		gunzip -f < $i > /tmp/a
|		gzip -9 < /tmp/a > $i
|	done
1994-10-22 11:55:16 +00:00
Poul-Henning Kamp
6aafb7e048 I belive imgact_gzip is finally reentrant. It is also a whole lot more
readable.

inflate is now much more general, and is there if anybody feels like making
a uncompressing filesystem or something like that (hint hint !)
1994-10-22 11:40:38 +00:00
Garrett Wollman
091b0456f4 Make my ALLDEVS kernel compile (basically, LINT minus a lot of options).
This involves fixing a few things I broke last time.
1994-10-21 01:19:28 +00:00
Garrett Wollman
09f7992adf Make my ALLDEVS kernel compile (basically, LINT minus a lot of options). 1994-10-21 01:18:38 +00:00
Garrett Wollman
03a6294027 Actually implement the functionality documented in sysctl.h for type CTL_FS.
(Namely, call a filesystem-dependent sysctl function analogous to how it works
for networking and (now) physical devices.)
1994-10-20 00:48:28 +00:00
Poul-Henning Kamp
953ca71d9d Peter Dufaults comconsole changes.
Submitted by:	Peter Dufault
1994-10-20 00:08:31 +00:00
Garrett Wollman
f1d8109335 Add support for devconf to a large number of device drivers, and do
the right thing in dev_goawayall() when kdc_goaway is null.
1994-10-19 01:59:11 +00:00
Garrett Wollman
299b48a4da Use a static length for externalized data, rather than calling a function. 1994-10-19 00:08:48 +00:00
David Greenman
08d7d166b8 Removed references to bclnlist which we don't use/support/need. 1994-10-18 06:55:57 +00:00
Poul-Henning Kamp
1be9232f73 This basically allows you to stick a disklabel on any partition.
For it to be useful, you must stick your disklabel on the partition which
starts where the MBR says FreeBSD lives.  If you don't do that, you might
get a bad day.

Oh, that probably also means that putting swap there is a bad idea...
1994-10-17 02:31:33 +00:00
Garrett Wollman
8478cabaea kern_clock.c: define dk_names[][].
kern_sysctl.c: call dev_sysctl for hw.devconf mib subtree
kern_devconf.c: sysctl-accessible device-configuration and -management
	interface
1994-10-16 03:52:14 +00:00
Andrey A. Chernov
61181d7df2 ttywait: check conditions again right after oproc
Obtained from: (I know, but can't say :-)
1994-10-15 17:59:02 +00:00
Poul-Henning Kamp
17b9f9f4a1 Fix the problem with panics when mounting on nonexistant directories. Probably
my fault in the first place...
1994-10-15 02:53:26 +00:00
Søren Schmidt
2b101991d4 Damn, check in the wrong version, fixed.
Reviewed by:
Submitted by:
Obtained from:
1994-10-13 21:41:36 +00:00
Søren Schmidt
8117efaa95 Made it possible for ioctl to return a value.
Ifdef by COMPAT_IBCS2 (used by the socksys system).
Submitted by:	Mostyn Lewis (mostyn@mrl.com)
1994-10-13 21:01:47 +00:00
Søren Schmidt
6fc4a1ae38 Added ifdef COMPAT_IBCS2 around setre[ug]id. 1994-10-13 20:59:49 +00:00
Søren Schmidt
2a460312c8 Don't allow the same MISC module loading more than once.. 1994-10-12 20:28:32 +00:00
Søren Schmidt
fabbd9b7ce Ouch, fixed bug in errno translation (ibcs2 support). 1994-10-11 22:37:14 +00:00
Søren Schmidt
bc576ac45e Fixed bug in ibcs2 signal translation. 1994-10-11 20:42:01 +00:00
Søren Schmidt
99ec0d5b44 Removed static declaration of getvnode() (used in ibcs2) 1994-10-11 20:40:12 +00:00
Andrey A. Chernov
220553025d Better IXANY/IXOFF processing into setflags.
Cosmetique 'tab' fix
1994-10-11 20:29:42 +00:00
Andrey A. Chernov
dec3cc9756 Fix old cs8->cs7 bug, bringed by rlogin.
Obtained from:  FreeBSD 1.x
1994-10-11 20:04:49 +00:00
Geoff Rehmet
65bbec73d7 - remove unnecessary #includes (I think a couple of redundant ones remain)
- 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.
1994-10-11 11:29:17 +00:00
Søren Schmidt
76d121f2b4 Hmm, only translate errno when doing an actual return.
Reviewed by:	sef@freefall.cdrom.com
1994-10-10 07:33:01 +00:00
Poul-Henning Kamp
d93f860c60 Cosmetics. related to getting prototypes into view. 1994-10-10 01:00:49 +00:00
Søren Schmidt
5de177eaf6 Added errno conversion table (initialize to zero). 1994-10-09 22:07:38 +00:00
Søren Schmidt
c96f129304 Updated to convert errno return in syscall if conversion tabel present. 1994-10-09 22:02:06 +00:00
Søren Schmidt
c1451a8a5c Updated to add errno conversion table. (intialize to zero). 1994-10-09 21:58:47 +00:00
Søren Schmidt
5aa7191752 Changed option IBCS2 to COMPAT_IBCS2 (for lkm support) 1994-10-09 21:53:49 +00:00
David Greenman
35c10d2239 Got rid of map.h. It's a leftover from the rmap code, and we use rlists.
Changed swapmap into swaplist.
1994-10-09 07:35:18 +00:00
Poul-Henning Kamp
dcd01eb305 Cosmetics: added ()'s and fixed prinf-formats to make gcc silent. 1994-10-08 22:33:43 +00:00
Poul-Henning Kamp
3fb3086e98 db_disasm.c: Unused var zapped.
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.
1994-10-08 22:19:51 +00:00
Poul-Henning Kamp
0f954e5d09 POSSIBLE BOGUS CODE found, (related to dos-partitions) in ufs_disksubr.c,
look for CC_WALL.
Cosmetics, a couple of unused vars.
1994-10-08 06:57:29 +00:00
Geoff Rehmet
2f7048bff0 Make inflate() reentrant - no more global variables.
(The gzip image activator now needs a good code tidy up.)
1994-10-07 23:18:18 +00:00
Geoff Rehmet
ee38c19853 First stage of getting imgact_gzip reentrant:
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.
1994-10-07 22:27:00 +00:00
David Greenman
824789192c Use tsleep() rather than sleep so that 'ps' is more informative about
the wait.
1994-10-06 21:07:04 +00:00
Poul-Henning Kamp
c3a82ca0a6 Steven Wallace provided a program which broke this stuff. I guess there are
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 !
1994-10-06 18:22:24 +00:00
Garrett Wollman
5d1b52e53e Allow for loadable line disciplines (eventually). 1994-10-05 21:22:24 +00:00
David Greenman
8e58bf6875 Stuff object into v_vmdata rather than pager. Not important which at
the moment, but will be in the future. Other changes mostly cosmetic,
but are made for future VMIO considerations.

Submitted by:	John Dyson
1994-10-05 09:48:45 +00:00
Poul-Henning Kamp
009bc0f68d David Greenman told me to do this: (Thanks!) use vm_allocate to allocate
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.
1994-10-05 00:58:33 +00:00
Poul-Henning Kamp
0c99df0d8d Added M_GZIP for the imgact_gzip code. The gzip-code is likely to be used
for other weird things in the future (hint, hint!)
1994-10-04 06:51:42 +00:00
Poul-Henning Kamp
c5789ba376 Moved m_copyback into uipc_mbuf.c 1994-10-04 06:50:01 +00:00
David Greenman
91b1e28556 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
Poul-Henning Kamp
4efda9261d 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
Poul-Henning Kamp
4dd5a68318 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
Poul-Henning Kamp
37c32e9f3a ***
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
Andrey A. Chernov
d32198f15b Add VMIN/VTIME support
Obtained from:  scratch :-)
1994-10-03 01:12:18 +00:00
Poul-Henning Kamp
797f2d22f0 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
David Greenman
7216391e49 "idle priority" support. Based on code from Henrik Vestergaard Draboel,
but substantially rewritten by me.
1994-10-02 04:48:21 +00:00
David Greenman
22414e535a Laptop Advanced Power Management support by HOSOKAWA Tatsumi.
Submitted by:	HOSOKAWA Tatsumi
1994-10-01 02:56:21 +00:00
Andrey A. Chernov
c364e17e10 Log SA_CORE signals
Obtained from: FreeBSD 1.x
1994-09-30 00:38:34 +00:00
Garrett Wollman
93e010b0fd 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
Garrett Wollman
5ea9b26376 LKM support is no longer optional. 1994-09-28 22:45:04 +00:00
Poul-Henning Kamp
92cbac681e A potential panic, found by adding declarations. 1994-09-28 19:55:10 +00:00
Poul-Henning Kamp
12d17f6512 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
Doug Rabson
9abf4d6ee0 Make NFS ask the filesystems for directory cookies instead of making them
itself.
1994-09-28 16:45:22 +00:00
Poul-Henning Kamp
3810319894 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
David Greenman
c7d893de7a Process accounting implementation by Chris Demetriou, with minor local
changes.

Obtained from:	NetBSD
1994-09-26 21:09:15 +00:00
Poul-Henning Kamp
fa69874a39 init_sysent.c was missing the final newline. 1994-09-26 03:27:22 +00:00
Poul-Henning Kamp
bb56ec4a05 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
Søren Schmidt
a2cedb8e88 Added support for EXEC type modules. 1994-09-25 08:51:07 +00:00
David Greenman
bc6d744470 Shuffled macros and definitions around to facilitate architecture
independance.
1994-09-24 21:37:01 +00:00
David Greenman
7de4b2667e 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
David Greenman
2a531c809e Added support for p_textvp which stores the vnode pointer of the execed binary. 1994-09-24 16:58:43 +00:00
Garrett Wollman
63b46ee515 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
Garrett Wollman
e21fa31a8e Make NFS loadable. 1994-09-22 22:10:49 +00:00
Garrett Wollman
c9b1d6048d 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
Garrett Wollman
dff55bb5c2 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
Garrett Wollman
67bfdf835b 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
Bruce Evans
ccadde2151 Fix compiler warnings. 1994-09-21 21:58:39 +00:00
Garrett Wollman
c901836c14 Implemented loadable VFS modules, and made most existing filesystems
loadable.  (NFS is a notable exception.)
1994-09-21 03:47:43 +00:00
Bruce Evans
0b53fbe8da 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
Andrey A. Chernov
a40a3595b7 oget/sethostname: add missing argument to kern_sysctl
Reviewed by:
Submitted by:
Obtained from:
1994-09-19 21:15:14 +00:00
Andrey A. Chernov
e9e2a85282 sysctl incorrectly check name[2] instead of name[1] 1994-09-19 21:07:00 +00:00
Andrey A. Chernov
1e35c6c787 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