Ben Gras [Tue, 31 May 2005 15:22:06 +0000 (15:22 +0000)]
Fix for 'the kermit problem' (keyrepeats happening before the keyrepeat
timeout). A fix is to treat the alarm and interrupt cases differently and
only call the interrupt handler when an actual interrupt has been seen. No
apparent adverse effects.
Jorrit Herder [Tue, 31 May 2005 14:43:04 +0000 (14:43 +0000)]
Replaced flagalrm() timers with another technique to check for timeouts.
This allowed removing the p_flagarlm timer from the kernel's process table.
Furthermore, I merged p_syncalrm and p_signalrm into p_alarm_timer to save
even more space. Note that processes can no longer have both a signal and
synchronous alarm timer outstanding as of now.
Jorrit Herder [Tue, 31 May 2005 09:50:51 +0000 (09:50 +0000)]
Moved stime, time, times POSIX calls from FS to PM. Removed child time
accounting from kernel (now in PM). Large amount of files in this commit
is due to system time problems during development.
Ben Gras [Mon, 30 May 2005 15:09:51 +0000 (15:09 +0000)]
Disabled clearing screen in tty driver, started console printing after an
initial 1-line scroll at last line. If clearing screen in trailer of boot
monitor is disabled, all previous boot monitor and console messages are
preserved on rebooting.
All that's needed now is a scrollback buffer to see all old messages..
(Even from the boot monitor, bios, previous boots...)
Ben Gras [Mon, 30 May 2005 15:02:52 +0000 (15:02 +0000)]
Added 'bootdelay' feature in boot monitor, it pauses a given number of ms
so the list of programs in the image and their sizes can be seen before the
kernel starts filling the screen.
Added some formatting fixes in installboot and boot monitor itself,
some of the segments were larger than the formatting allowed.
Jorrit Herder [Fri, 27 May 2005 13:10:58 +0000 (13:10 +0000)]
Fixed a bug in PM: sending of reply messages didn't check if destination
process is still alive. This caused a panic in some situations, e.g., when
all processes are killed on a shutdown.
Jorrit Herder [Fri, 27 May 2005 12:44:14 +0000 (12:44 +0000)]
Improved NOTIFY system: fixed a minor error, ignore pending notifications
on SENDREC system calls. To be done: resource (buffer pool) management;
make it structurally impossible to run out of buffers.
Jorrit Herder [Thu, 26 May 2005 13:17:57 +0000 (13:17 +0000)]
Optimized scheduling code. Old code is still available withing DEAD_CODE
and NEW_SCHED_Q definitions. Some minor problems are being traced at the
moment. This commit is meant to backup my files.
--- Jorrit
Ben Gras [Tue, 24 May 2005 14:57:45 +0000 (14:57 +0000)]
this test breaks on the new pre-i/o i/o buffer check. it wants to read
more than its buffer allowed, so it is reasonable that it breaks. reducing
read request size 'fixes' it.
Ben Gras [Tue, 24 May 2005 12:30:29 +0000 (12:30 +0000)]
Added 2 checks to mapping function - one for overflow (virtual address +
size wraparound), one to see if the size fits in the designated segment.
It seems this check wasn't done. This came to light when trying to pre-check
the users buffer for read() and write() in using the vectored virtual
copy system call in servers/fs/read.c.
Jorrit Herder [Tue, 24 May 2005 10:06:17 +0000 (10:06 +0000)]
New NOTIFY system call! Queued at kernel. Duplicate messages (with same source
and type) are overwritten with newer flags/ arguments. The interface from
within the kernel is lock_notify(). User processes can make a system call with
notify(). NOTIFY fully replaces the old notification mechanism.
Jorrit Herder [Thu, 19 May 2005 14:05:51 +0000 (14:05 +0000)]
New NOTIFY trap (IPC call) to send queued notification messages.
The call works. Permission check, restriction of outstanding notifications
to be added. Low level code to make it work from within interrupt handlers
will be added as well.
Ben Gras [Fri, 13 May 2005 12:27:42 +0000 (12:27 +0000)]
If the file (created by setup) exists, use boot parameters from there
for the boot floppy instead of copying it from the current root partition.
This makes making a boot floppy at installation time before booting from
the new system possible (conveniently).
Ben Gras [Fri, 13 May 2005 12:26:40 +0000 (12:26 +0000)]
Added feature to remember root parameter in /usr/src/tools, so make fdboot
will know how to make a boot floppy before actually booting from the new
system.
Ben Gras [Thu, 12 May 2005 16:06:37 +0000 (16:06 +0000)]
. added rm_irq_handler which un-links an irq handler from the linked
list of handlers, callable by irqctl system call
. workaround for hanging keyboard bug after shutdown.. if key is pressed
during or after shutdown procedure, keyboard stops working. It looks like
irq 1 gets stuck high if no keyboard reading is done (e.g. because the
irq is masked or tty driver has exited). Workaround is to leave irqs
enabled until the last second, and call shutdown() immediately after the
last driver has stopped (tty task). This way the chance of an unserviced
interrupt occuring is negligible.
Ben Gras [Tue, 3 May 2005 15:39:41 +0000 (15:39 +0000)]
Raised version to 3.0.2 in config.h
Told the Makefile not to panic if creating /usr/include due to it existing
(due to bin not being allowed to create it) fails, this smoothens installs
done by bin (instead of root).
Ben Gras [Tue, 3 May 2005 15:37:34 +0000 (15:37 +0000)]
More polishing to the boot and release process. Highlights:
. Less dependency on scripts to be executable (they're in cvs)
. issue.install is the /etc/issue that goes on an install CD
for instructions (but not on the installed system)
. /usr/src goes on the CD uncompressed
Ben Gras [Tue, 3 May 2005 09:02:47 +0000 (09:02 +0000)]
. FS: removed half-baked stack trace code
. inet: removed silly error message from inet that ends up in the console
regularly
. Makefile: added some files to the incomplete clean target
Ben Gras [Tue, 3 May 2005 08:58:18 +0000 (08:58 +0000)]
. Moved sysenv to /bin (as well), used to read some boot parameters
in /etc/rc before /usr is mounted
. fixed ps.c compile breakage (MM_PROC_NR rename)
. made setup.sh a little less floppy-centric (cosmetic)
. removed ps binary from cvs (whoops!)
Ben Gras [Tue, 3 May 2005 08:56:01 +0000 (08:56 +0000)]
Made things a little more boot-cd friendly (specifically readonly /usr).
Also /etc/rc automatically determines where /usr should come from based
on where the ramdisk was copied from.