. define _MINIX_SYSTEM for all system code from minix.service.mk
. hide some system-level declarations and definitions
behind _MINIX_SYSTEM to cleanly fix host tool build problems on
Minix (such as: NONE being defined and paddr_t being used but not
declared)
. the similar definition _SYSTEM is unsuitable as it changes the
values of errno definitions
Change-Id: I407de79e2575115243a074b16e79546a279cfa3e
The constants ANY, NONE, and SELF are now a function of the way the
endpoint number is split between a generation number and a process
slot number, rather than the other way around. This allows for the
use of bit masking and shifting instead of the previous (and more
expensive) multiplication and division.
Change-Id: Id890eea74435444128c75eb0c89816b948f43c0b
There is important information about booting non-ack images in
docs/UPDATING. ack/aout-format images can't be built any more, and
booting clang/ELF-format ones is a little different. Updating to the
new boot monitor is recommended.
Changes in this commit:
. drop boot monitor -> allowing dropping ack support
. facility to copy ELF boot files to /boot so that old boot monitor
can still boot fairly easily, see UPDATING
. no more ack-format libraries -> single-case libraries
. some cleanup of OBJECT_FMT, COMPILER_TYPE, etc cases
. drop several ack toolchain commands, but not all support
commands (e.g. aal is gone but acksize is not yet).
. a few libc files moved to netbsd libc dir
. new /bin/date as minix date used code in libc/
. test compile fix
. harmonize includes
. /usr/lib is no longer special: without ack, /usr/lib plays no
kind of special bootstrapping role any more and bootstrapping
is done exclusively through packages, so releases depend even
less on the state of the machine making them now.
. rename nbsd_lib* to lib*
. reduce mtree
Headers that will be shared between old includes and NetBSD-like includes
are moved into common/include tree. They are still copied in /usr/include
in 'make includes', so compilation and programs aren't be affected.
NR_TASKS in the endpoint macros. MAX_NR_TASKS defines the maximal number of
kernel tasks. It is unlikely that we will ever need this many tasks as the goal
is not to have such a difference in the future. For now it makes possible to
remove the limiting NR_TASKS from the endpoint code.
- the magic numbers ANY, NONE and SELF are kept for the compatibility with the
current userspace. It is OK as long as NR_PROCS is greater so they don't
colide with other endpoints
- the 32 bit endpoint_t value is split in half, lower 16 bits for process slot
number and upper half for generation number
- transition to a structured endpoint_t in the future possible
. 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)