Commit graph

116 commits

Author SHA1 Message Date
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
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
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
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
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
Jorrit Herder
0899f82ab2 Fixed some minor issues with the NOTIFY call. 2005-05-24 14:35:58 +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
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
Jorrit Herder
307c825515 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.
2005-05-19 14:05:51 +00:00
Jorrit Herder
614f49b557 Fixed some comments and reorganized some code.
Fixed minor bug in notify() function.
2005-05-18 10:36:23 +00:00
Ben Gras
d0c3e8f818 . 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.
2005-05-12 16:06:37 +00:00
Jorrit Herder
ab39ce451b Fixed some system call checks;
Added SYS_PHYSVCOPY system call;
Fixed IRQ hooks dump in IS server;
2005-05-10 11:06:24 +00:00
Jorrit Herder
ac0995259d *** empty log message *** 2005-05-02 14:30:04 +00:00
Jorrit Herder
89ac678b9b *** empty log message *** 2005-04-29 15:36:43 +00:00
Ben Gras
9865aeaa79 Initial revision 2005-04-21 14:53:53 +00:00