Commit graph

153 commits

Author SHA1 Message Date
Ben Gras
1335d5d700 'proc number' is process slot, 'endpoint' are generation-aware process
instance numbers, encoded and decoded using macros in <minix/endpoint.h>.

proc number -> endpoint migration
  . proc_nr in the interrupt hook is now an endpoint, proc_nr_e.
  . m_source for messages and notifies is now an endpoint, instead of
    proc number.
  . isokendpt() converts an endpoint to a process number, returns
    success (but fails if the process number is out of range, the
    process slot is not a living process, or the given endpoint
    number does not match the endpoint number in the process slot,
    indicating an old process).
  . okendpt() is the same as isokendpt(), but panic()s if the conversion
    fails. This is mainly used for decoding message.m_source endpoints,
    and other endpoint numbers in kernel data structures, which should
    always be correct.
  . if DEBUG_ENABLE_IPC_WARNINGS is enabled, isokendpt() and okendpt()
    get passed the __FILE__ and __LINE__ of the calling lines, and
    print messages about what is wrong with the endpoint number
    (out of range proc, empty proc, or inconsistent endpoint number),
    with the caller, making finding where the conversion failed easy
    without having to include code for every call to print where things
    went wrong. Sometimes this is harmless (wrong arg to a kernel call),
    sometimes it's a fatal internal inconsistency (bogus m_source).
  . some process table fields have been appended an _e to indicate it's
    become and endpoint.
  . process endpoint is stored in p_endpoint, without generation number.
    it turns out the kernel never needs the generation number, except
    when fork()ing, so it's decoded then.
  . kernel calls all take endpoints as arguments, not proc numbers.
    the one exception is sys_fork(), which needs to know in which slot
    to put the child.
2006-03-03 10:00:02 +00:00
Philip Homburg
7034c0795d Moved PCI driver to the ramdisk. 2006-02-15 14:21:56 +00:00
Philip Homburg
c3a88d15d8 Initial root filesystem is now on a ramdisk that is part of the image. 2006-02-15 11:18:21 +00:00
Ben Gras
88ba4b5268 added reenter check to lock_dequeue() to avoid unlocking of interrupts
via cause_sig() during an exception.

moved lock check configuration to <minix/sys_config.h> instead of
kernel/config.h, because the 'relocking' field in kinfo depends on it.

other prettification: common locking macro, whether lock timing is on or
not.
2006-02-10 16:53:51 +00:00
Ben Gras
0a02bfb056 Moved ipc debug out of conditional.
Gave pci server sys_getinfo privilege.
2006-02-06 15:16:14 +00:00
Philip Homburg
38a16399f8 Store resource lists for drivers. Limited checks to enforce those lists. 2006-01-27 13:21:12 +00:00
Philip Homburg
d9d970bdfa GET_IRQACTIDS, allow SELF in do_vm_map. 2006-01-12 14:38:51 +00:00
Philip Homburg
eec836014a PCI support in a separate driver 2005-12-02 14:45:38 +00:00
Ben Gras
87f2236ad2 load average measurement implementation, accessable through
getloadavg() system call in the library.
2005-11-14 15:50:46 +00:00
Philip Homburg
b85736bd7b Grant tty permission to use SYS_VM_MAP and SYS_IOPENABLE. 2005-11-09 15:48:41 +00:00
Philip Homburg
0b7fcbfd70 Only the memory driver should be allowed access to SYS_IOPENABLE 2005-11-04 17:06:49 +00:00
Philip Homburg
bfa0a555ad Removed debug printfs. 2005-10-24 13:48:50 +00:00
Ben Gras
85209d2e29 Test for SENDING else RECEIVING should be SENDING, then RECEIVING. 2005-10-21 18:13:10 +00:00
Ben Gras
81fa8fc3b8 Don't enqueue processes unless their flags have become 0 2005-10-21 17:35:39 +00:00
Jorrit Herder
78f20c3959 Rest ... 2005-10-21 13:46:47 +00:00
Ben Gras
cf16c73e62 . check for notify() from NONE (shouldn't happen any more)
. test for cleared process slots when checking processes on exiting
 . clear process slot first, then do cleanup on exiting
2005-10-20 20:59:02 +00:00
Jorrit Herder
86e3333454 New error codes for IPC errors.
Made VM code debug output disappear.
2005-10-20 20:25:32 +00:00
Ben Gras
2bf8bfe126 Turn IPC warning messages off by default
(because inet deadlocks are normal and will confuse our users).
2005-10-18 16:13:12 +00:00
Ben Gras
ea75918df1 printf() by kernel and servers now send messages to an array of processes,
OUTPUT_PROCS_ARRAY in <minix/config.h>, in that order, terminated by NONE.
log no longer forwards messages to tty itself. This leads to less funny
loops and more robust debug-message handling. Also the list of
processes receiving messages can easily be changed around or disabled by
editing the array (e.g. disable it by changing the array to { NONE }.).
2005-10-18 10:34:54 +00:00
Ben Gras
61b6139752 Al's system -> kernel call change 2005-10-14 09:13:52 +00:00
Ben Gras
32514fb5f9 Al's system call -> kernel call renaming 2005-10-14 08:58:59 +00:00
Ben Gras
ee9b08e5c0 Comment fix about sys_abort() 2005-10-13 09:43:39 +00:00
Jorrit Herder
b16a88692a New deadlock check at proc.c.
New exit checks (stop IPC).
2005-10-12 15:08:23 +00:00
Ben Gras
cc3201bacd Al's cosmetic rearrangement 2005-10-09 19:58:25 +00:00
Ben Gras
ab1374a9cb Comment corrections from Al 2005-10-07 13:23:18 +00:00
Ben Gras
4fc5f85a88 Corrected correction of clock's 2005-10-06 10:21:24 +00:00
Ben Gras
293e1ea70d Missing comma 2005-10-06 09:39:36 +00:00
Ben Gras
b46a51cfd6 Semidefinitive copyright statement. 2005-10-06 09:38:55 +00:00
Jorrit Herder
32c05f45c6 Minor bug fixes in proc.c and utility.c;
Removed debug dumps on panic from main.c;
Return error on exit when other process does IPC to/from exiting process.
2005-10-05 09:51:50 +00:00
Ben Gras
71b6f31d4e Let TTY call SYS_ABORT 2005-10-05 08:45:55 +00:00
Ben Gras
afc6721239 Al's comment fixes 2005-10-05 08:21:35 +00:00
Ben Gras
7ca48023af Al's comment bug. 2005-10-04 08:29:44 +00:00
Ben Gras
e32131bb05 Fixed wrong comment. 2005-10-04 08:28:07 +00:00
Ben Gras
15c6f7182b Al's comment fixes 2005-10-02 19:02:05 +00:00
Philip Homburg
9bee3f4b08 IOPL, VM, and serial debug output (disabled). 2005-09-30 12:54:59 +00:00
Ben Gras
b2dd3ff593 New copyright statement. 2005-09-23 22:10:11 +00:00
Ben Gras
1d0852bcd4 Enforce system call bitmask 2005-09-20 12:24:19 +00:00
Ben Gras
5ae6f98dea Andy's formatting fixes. 2005-09-11 16:44:06 +00:00
Ben Gras
c655d8b3ae Added shutdown_started global variable. If it's set, we're in the
process of doing a shutdown.

Initial purpose is - suppress dead process diagnostic message.
2005-09-08 14:31:23 +00:00
Ben Gras
769d420b5d No backquotes. 2005-09-07 18:15:21 +00:00
Ben Gras
75781d7c7b 1-second-delayed-shutdown reinstated to fix shutdown mess; possible now due
to boot monitor cooperation.
2005-09-07 16:42:31 +00:00
Ben Gras
c79dfb2e41 No newline for this error (dead dest) 2005-09-07 11:20:53 +00:00
Ben Gras
911ff6a873 Formatting fixes for the book 2005-08-29 16:47:18 +00:00
Jorrit Herder
5cb414f4d5 Reverted PH copyright to 1987-2001. 2005-08-23 13:10:12 +00:00
Jorrit Herder
b4d7de6ee1 New makefile (src/tools/Makefile) logic:
- make fresh install: still builds new everything (libraries, services, image)
- make clean image: only builds new boot image (about 5 sec. now!)
2005-08-23 12:53:35 +00:00
Jorrit Herder
7bf400a709 *** empty log message *** 2005-08-23 11:31:32 +00:00
Jorrit Herder
10e4e98947 Renamed SM to RS (Reincarnation Server). 2005-08-23 11:28:16 +00:00
Jorrit Herder
5ecb45c346 Improved scheduling: new way to catch infinite loops. 2005-08-23 10:25:01 +00:00
Ben Gras
d11b2e4b8c Al's double-blank-line removal request 2005-08-22 15:23:47 +00:00
Jorrit Herder
872687ddfc Scheduling updates to the kernel. Sched() function now is single point for
policy. Actual policy not yet implemented.

PM calculates nice values for processes in boot image.

IS debug dumps improved (Shift+F1-F4).
2005-08-22 15:14:11 +00:00