Commit graph

894 commits

Author SHA1 Message Date
Ben Gras
308d9a693c prettified rtl driver:
. no more kmalloc
 . no more umaps + physcopies / abscopies
 . the status register is directly readable from the drivers own
   address space now, and no physcopy is needed to read it
 . map+physcopy call combinations are replaced by vircopy calls
2005-06-03 08:59:54 +00:00
Ben Gras
d0b5cf84cb Undid usage of vector-copy function. It's a good idea but there's a bug
there somewhere. I'll debug first, then recommit.
2005-06-02 16:49:33 +00:00
Jorrit Herder
e782e76944 Created new findproc system call to the PM (to replace similar kernel
functionality). Currently working on memory allocation (not yet finished).
2005-06-02 12:43:21 +00:00
Jorrit Herder
f926f1209d Minor commit to remove conflict with update. 2005-06-01 14:34:59 +00:00
Jorrit Herder
6d23f072f3 Cleaned up src/lib/utils library. Renamed server_ functions to more logical
names. All system processes can now either use panic() or report() from
libutils, or redefine their own function. Assertions are done via the standard
<assert.h> functionality.
2005-06-01 14:31:00 +00:00
Ben Gras
75689debe3 fixed bug that caused number of inodes to make estimation to be terrible
in most cases
2005-06-01 11:39:45 +00:00
Ben Gras
0d31130d29 Make needs a little more memory 2005-06-01 11:14:08 +00:00
Ben Gras
25d2f4666c Removed mm files (obsolete; it's pm now) 2005-06-01 09:40:42 +00:00
Ben Gras
bd12703b76 Able to dump lock()/unlock() timing data 2005-06-01 09:40:27 +00:00
Ben Gras
66dab193f3 function key notifications became notifies fix 2005-06-01 09:40:02 +00:00
Ben Gras
447b988154 exec now uses phys_zero system call to zero bss segments (instead of
using phys_copy to copy zeroes there for every kb), which is a big
optimisation in some cases

fixed a bug that was introduced when function keys became notifies
2005-06-01 09:39:45 +00:00
Ben Gras
c977bd8709 Added args to lock() and unlock() to tell them apart, for use
when lock timing is enabled in minix/config.h.

Added phys_zero() routine to klib386.s that zeroes a range of memory, and
added corresponding system call.
2005-06-01 09:37:52 +00:00
Ben Gras
b4335679cb Added sys_physzero library call for corresponding system call; modified
system-printf() so it returns number of characters printed (for use in
smart formatting)
2005-06-01 09:36:07 +00:00
Ben Gras
dfe2b4513f Moved timing structs around to be more standard 2005-06-01 09:34:37 +00:00
Ben Gras
e0ffcdadd1 Added support for lock()/unlock() timing registration; also phys_zero system
call
2005-06-01 09:34:18 +00:00
Ben Gras
39a2fc72dd different way of dealing with fd's so chmem <arg> <long list of files>
doesn't fail due to file descriptor leaks
2005-06-01 09:31:14 +00:00
Jorrit Herder
a3d2f35993 Fixed minor bug in PM's child time administration. 2005-06-01 08:55:22 +00:00
Ben Gras
5a43b84e2d 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.
2005-05-31 15:22:06 +00:00
Jorrit Herder
f0af8d85e7 *** empty log message *** 2005-05-31 14:44:49 +00:00
Jorrit Herder
0165662cd9 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.
2005-05-31 14:43:04 +00:00
Ben Gras
e673eeee20 compile fixes for kermit and postmort 2005-05-31 12:32:35 +00:00
Ben Gras
135328ac59 Fixed some compiler warnings. 2005-05-31 11:14:37 +00:00
Ben Gras
9e5e6e7b51 Reverse trailer/delay order (delay first) 2005-05-31 11:11:47 +00:00
Jorrit Herder
ea46d51176 Added time.c 2005-05-31 10:57:19 +00:00
Jorrit Herder
322ec9ef8b 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.
2005-05-31 09:50:51 +00:00
Ben Gras
cd72f80639 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...)
2005-05-30 15:09:51 +00:00
Ben Gras
5927788cdd 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.
2005-05-30 15:02:52 +00:00
Jorrit Herder
b421423c77 SENDREC now always has flag FRESH_ANSWER to prevent pending notifications
to be used as answer to a SENDREC call.
2005-05-30 11:11:40 +00:00
Jorrit Herder
826fee4c6d Fixed clear_proc(): properly release resources (IRQ hooks, notify buffers);
Cleaned up comments in proc.c (old code still present for comparison);
2005-05-30 11:05:42 +00:00
Ben Gras
fcd113da7b Imported kermit v2.11 2005-05-30 10:55:32 +00:00
Jorrit Herder
9646824fce Fixed PM send() failed warning: don't reply to killed process that did reboot.
:  `VS: Enter Log.  Lines beginning with `CVS:' are removed automatically
2005-05-30 09:29:48 +00:00
Jorrit Herder
ed54b1cd6a Improved shared device driver code: use SELF instead of 'getprocnr'. 2005-05-30 08:51:23 +00:00
Jorrit Herder
852008d669 Kinfo counts lock_notify() and lock_send() calls. 2005-05-27 14:54:40 +00:00
Jorrit Herder
8d9c0886cd Created ECHO system call for testing purposes.
Furthermore, a quick way to get one's own process number.
2005-05-27 13:57:00 +00:00
Jorrit Herder
07d582872f 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.
2005-05-27 13:10:58 +00:00
Jorrit Herder
c2be104821 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.
2005-05-27 12:44:14 +00:00
Jorrit Herder
77c3213948 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
2005-05-26 13:17:57 +00:00
Ben Gras
dcffa17db2 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.
2005-05-24 14:57:45 +00:00
Jorrit Herder
0899f82ab2 Fixed some minor issues with the NOTIFY call. 2005-05-24 14:35:58 +00:00
Ben Gras
70cdffcc18 fixed compile breakage 2005-05-24 13:18:29 +00:00
Ben Gras
804cb810d0 added a debugging functionality in system/debugging.c (to check sanity of
run queues) and associated prototype in system.h
2005-05-24 12:33:03 +00:00
Ben Gras
168b7f2669 . fixed a recently introduced scheduler (run-queue) bug in proc.c
. a little (optional) debugging code added to proc.c and associated
  data in proc.h
2005-05-24 12:32:34 +00:00
Ben Gras
0f55ebe90a Initialisation required for optional debugging code. 2005-05-24 12:30:51 +00:00
Ben Gras
6a3519f3a8 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.
2005-05-24 12:30:29 +00:00
Ben Gras
6ea72ca1ee Make use of vectored virtual copy system call 2005-05-24 12:28:09 +00:00
Ben Gras
4e155167c8 sync after install in case of trouble while shutdowning 2005-05-24 12:03:42 +00:00
Jorrit Herder
ccd17ecfed 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.
2005-05-24 10:06:17 +00:00
Ben Gras
80e38daead freed up use of name 'offset' 2005-05-20 13:27:38 +00:00
Ben Gras
64ecaca24b Changed something in default no. of inodes in mkfs (I run out of inodes
often with the defaults).

Made setup script not make root filesystem with 1kB filesystem blocks,
as that restriction is out of the boot monitor now.
2005-05-20 12:40:46 +00:00
Ben Gras
cafbbedbba Fix to let FXP driver send messages.
Removed banner talking about the known hang-bug (it's fixed,
practically speaking).
2005-05-20 12:39:36 +00:00