Commit graph

2104 commits

Author SHA1 Message Date
Ben Gras
7967177710 endpoint-aware conversion of servers.
'who', indicating caller number in pm and fs and some other servers, has
been removed in favour of 'who_e' (endpoint) and 'who_p' (proc nr.).

In both PM and FS, isokendpt() convert endpoints to process slot
numbers, returning OK if it was a valid and consistent endpoint number.
okendpt() does the same but panic()s if it doesn't succeed. (In PM,
this is pm_isok..)

pm and fs keep their own records of process endpoints in their proc tables,
which are needed to make kernel calls about those processes.

message field names have changed.

fs drivers are endpoints.

fs now doesn't try to get out of driver deadlock, as the protocol isn't
supposed to let that happen any more. (A warning is printed if ELOCKED
is detected though.)

fproc[].fp_task (indicating which driver the process is suspended on)
became an int.

PM and FS now get endpoint numbers of initial boot processes from the
kernel. These happen to be the same as the old proc numbers, to let
user processes reach them with the old numbers, but FS and PM don't know
that. All new processes after INIT, even after the generation number
wraps around, get endpoint numbers with generation 1 and higher, so
the first instances of the boot processes are the only processes ever
to have endpoint numbers in the old proc number range.

More return code checks of sys_* functions have been added.

IS has become endpoint-aware. Ditched the 'text' and 'data' fields
in the kernel dump (which show locations, not sizes, so aren't terribly
useful) in favour of the endpoint number. Proc number is still visible.

Some other dumps (e.g. dmap, rs) show endpoint numbers now too which got
the formatting changed.

PM reading segments using rw_seg() has changed - it uses other fields
in the message now instead of encoding the segment and process number and
fd in the fd field. For that it uses _read_pm() and _write_pm() which to
_taskcall()s directly in pm/misc.c.

PM now sys_exit()s itself on panic(), instead of sys_abort().

RS also talks in endpoints instead of process numbers.
2006-03-03 10:20:58 +00:00
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
Ben Gras
5d7f5fccf5 . rename message fields to endpoint variants
. remove or optionalify some pci debugging stuff
2006-03-03 09:44:55 +00:00
Ben Gras
7550304e19 Changes to support endpoints.
. rename message field name macros from *PROC* to *ENDPT*,
    both to reflect the new meaning and to use it to hunt down where
    they are used
  . _PM_SEG_FLAG in fd replaces funny segment loading construction by
    PM in FS
  . _MAX_MAGIC_PROC is the highest used proc number, including magic
    constants such as (currently) ANY, NONE and SELF, used by the
    endpoint macros to make sure they are encoded properly and no valid
    endpoint number ever encodes to it.
  . rename proc_nr in address copy struct to proc_nr_e (endpoint)
2006-03-03 09:43:06 +00:00
Ben Gras
7475a433bb Test fixes
Added test41, for endpoint macros
2006-03-01 15:28:07 +00:00
Ben Gras
7d83ef196d Don't include cdprobe any more 2006-02-24 12:56:06 +00:00
Philip Homburg
4ae5403558 LBA48 support. 2006-02-24 12:55:47 +00:00
Philip Homburg
b6d12e81aa Change to some debug code. 2006-02-24 12:55:00 +00:00
Philip Homburg
f1bf17aa68 Allow bigger sizes. 2006-02-24 12:53:54 +00:00
Ben Gras
c08b6c2e28 Lance needs 4k due to 4k clicksize 2006-02-22 13:45:29 +00:00
Ben Gras
c69fe50658 Don't complain, urlget 2006-02-21 16:06:28 +00:00
Ben Gras
04429a150b Peter Boonstoppel's recwave update. 2006-02-21 16:04:18 +00:00
Ben Gras
fb240f6354 Peter Boonstoppel's audio changes. 2006-02-21 15:59:33 +00:00
Ben Gras
284dbccf65 Initial endpoint macros. 2006-02-21 15:26:12 +00:00
Ben Gras
b89ee5b188 *** empty log message *** 2006-02-20 16:00:24 +00:00
Ben Gras
fec2fa95e2 It's not always initialization 2006-02-20 15:11:41 +00:00
Philip Homburg
1d78f4a203 Fixed bug in canceling TCP ioctls before INET got an IP address. 2006-02-20 14:35:01 +00:00
Ben Gras
ba667a0774 Don't copy memory to rescue
local package initialization
2006-02-17 16:46:08 +00:00
Ben Gras
17032f9909 Make a /usr/local/etc/rc.d 2006-02-17 15:14:46 +00:00
Ben Gras
b3d3ed8f7c Install memory in /usr/sbin 2006-02-17 15:03:38 +00:00
Ben Gras
73c79dde56 Smaller device 2006-02-17 14:43:00 +00:00
Philip Homburg
b13e39ed1b Conditional compilation for SIGIOT and SIGEMT. 2006-02-17 14:12:47 +00:00
Philip Homburg
83bac36746 Reintroduced SIGEMT. 2006-02-17 14:12:12 +00:00
Ben Gras
c2f668d1d2 Refix 2006-02-17 14:05:46 +00:00
Philip Homburg
c367670fa8 improved tcp_acceptto. 2006-02-17 13:47:31 +00:00
Philip Homburg
1991246020 Socket options SO_RCVBUF, SO_SNDBUF, and TCP_NODELAY. 2006-02-17 13:45:41 +00:00
Philip Homburg
38804a964b More error texts. 2006-02-17 13:44:48 +00:00
Philip Homburg
fa6f63c3cb New errors and defines for socket options. 2006-02-17 13:43:50 +00:00
Philip Homburg
d430c4fac8 SIGBUS needs its own number. Removed SIGEMT. Made SIGIOT conditional on
_MINIX.
2006-02-17 13:43:07 +00:00
Ben Gras
36a571d78f don't make clean first 2006-02-17 13:27:48 +00:00
Ben Gras
997d2dcbd3 Throw elvis out of the base system 2006-02-17 13:27:01 +00:00
Ben Gras
2fa6eb3993 memory moved 2006-02-17 13:19:10 +00:00
Ben Gras
07308df374 Make 'make install' work 2006-02-17 13:12:07 +00:00
Ben Gras
77b0252796 Let saving random data work again 2006-02-17 13:11:20 +00:00
Ben Gras
151401bcb4 *** empty log message *** 2006-02-17 13:10:37 +00:00
Ben Gras
c162654310 Kick nvi out of base 2006-02-17 12:36:53 +00:00
Ben Gras
32a4ffb9c0 Make more 2006-02-17 12:34:18 +00:00
Ben Gras
e7657e1b67 Added some of my root devices 2006-02-17 11:58:02 +00:00
Ben Gras
65e7b878d4 getmachine info first, then init tty.
Problem report and fix given by:
Prof: Alejandro T. Bello Ruiz <abello@macareo.pucp.edu.pe>
2006-02-17 10:23:16 +00:00
Ben Gras
2827767745 bigmake.inc is obsolete 2006-02-16 20:56:34 +00:00
Ben Gras
7862ac9f42 *** empty log message *** 2006-02-16 15:44:52 +00:00
Ben Gras
f7132f1b1a Fixes for packaging system that will read .postinstall script and run it
if exists.

packit installs a package.
2006-02-16 15:43:37 +00:00
Ben Gras
fc1582bb57 sshd user 2006-02-16 15:38:13 +00:00
Philip Homburg
df92754d67 Fixed two memory leaks. 2006-02-16 14:13:36 +00:00
Ben Gras
30f7f852ba Really disable debug 2006-02-15 14:22:40 +00:00
Philip Homburg
7034c0795d Moved PCI driver to the ramdisk. 2006-02-15 14:21:56 +00:00
Ben Gras
1116853ae9 Turn off debug in getsockname.c
allow NULL for setgroups argument
2006-02-15 14:16:06 +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
Philip Homburg
3a05de3763 image_small doesn't fit anymore. What do we do with that? 2006-02-15 11:06:32 +00:00
Philip Homburg
bc015a9b49 /dev/ram is no longer hardcoded. 2006-02-15 11:05:47 +00:00