The goal is to prevent a name collision with the expected mount/umount
function signatures, if we decide one day to allow any application
using those to work on MINIX.
At this moment the caller has to start the required services, but if we
implement that logic inside the mount/unmout function, this would allow
any application to call those function successfully.
By renaming those now, we prevent a possible ABI break in the future.
Change-Id: Iaf6a9472bca0dda6bfe634bdb6029b3aa2e1ea3b
This cause in some software to assume we are linux, as this is rightly
only used there.
By default hide it behind _MINIX_SYSTEM, until we have removed traces
of it from getpeereid/[gs]etsocketopt and replaced it by the NetBSD
mechanism.
Change-Id: Iacd4cc1b152bcb7e90f5b1249185a222c90351d6
/bin/false is often used by PKGSRC packages which create unpriviledged
users as part of their install process.
This fixes the generation and installation of such packages.
Change-Id: Ie2a590c56c86dc40a61e3c08d14f5443ebe4f58c
Make libminc a build dependency of services to ensure the services
get rebuilt if libminc changes.
Change-Id: I703a9d98d7641a9a85e04d88402a7228ad0be19f
The get and set context calls where wrongly assuming that the value
of arguments passed on the stack where kept unmodified.
Change-Id: I779b08d7f5a6472c5e9dc351ae44abb2acafb3bd
The setcontext method did not alway set the return value to 0 after
restoring the desired context. Specially When calling setcontext with
the _UC_IGNSIGM and the _UC_IGNFPU flags the return value would be non
zero.
Change-Id: Iec7f8d6a680950aa53e3c88c86e03f65005e66b2
Check if the .settings entry is a file and not a directory. Eclipse
as we found out also likes creating .settings directories.
Change-Id: I3cbcaa7aa9e5dfb3d51c6c71df7fd72079fe213e
. NUL input in 2 source files cause patch(1)
to truncate the input (and fail the patches); a sed
command removes the NULs
. in binutils/ld, configdoc.texi is patched to be removed
but some patch(1)es leave an empty file, causing build problems;
this file is explicitly removed.
Change-Id: Iec38d3992b0df4f7bbb9a87b1320005ab3272ff1
Currently we don't accept writable file mmap()s, as there is no
system in place to guarantee dirty buffers would make it back to
disk. But we can actually accept MAP_SHARED for PROT_READ mappings,
meaning the ranges aren't writable at all (and no private copy is
made as with MAP_PRIVATE), as it turns out a fairly large class of
usage.
. fail writable MAP_SHARED mappings at runtime
. reduces some minix-specific patches
. lets binutils gold build on minix without further patching
Change-Id: If2896c0a555328ac5b324afa706063fc6d86519e
We have moved the gerrit service to a new server and at the same time allowed
direct access to gerrit. This change updates the '.gitreview' file to reflect
these changes. If you have an existing checkout you might need to update your
.ssh/config file to remove the git-minix alias and edit .git/config to update
the gerrit repository from 'git-minix' to the new url sheme:
ssh://username@gerrit.minix3.org:2222/minix
Change-Id: I621848d56c81c8c22a90b8092adf4ab0f29e2fb8
The job option enable the usage of pipes to communicate with sub-makes.
On MINIX, it seems that there is possibility of receiving an EAGAIN on
such reads, even when it had previously been tested for POLLIN using
poll().
This patch is a workaround, by wrapping the read operation within a
do {} while(errno == EAGAIN && ...) loop.
Change-Id: Ia184c4d600efe7218d197820df87761604120862
. select callback on close() on a pipe
would falsely revive a read-select on
the pipe
. the extra pipe_check catches it
. fixes the new import of the netbsd
make in -j N mode (make jobs that communicate
with pipes)
. 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
tests many complex system/process memory interaction cases.
has to run as root so it can flush the FS cache; needed to
force FS cache misses for unmapped pages.
See the comment in test74.c for a full description of what the tested
cases are.
also re-enable filemap on arm
This fcntl requests all cached blocks associated with the minor device
number associated with the regular file are invalidated. If the file
is a block special, invalidate the blocks associated with that minor
device instead.
This is to be used for a test that tests unmapped file-mapped memory
ranges whose blocks are not in the cache and therefore must be fetched
from a FS.
Change-Id: Ide914b2e88413aa90bd731ae587ca06fa5f13ebc
Change the kernel to add features to vircopy and safecopies so that
transparent copy fixing won't happen to avoid deadlocks, and such copies
fail with EFAULT.
Transparently making copying work from filesystems (as normally done by
the kernel & VM when copying fails because of missing/readonly memory)
is problematic as it can happen that, for file-mapped ranges, that that
same filesystem that is blocked on the copy request is needed to satisfy
the memory range, leading to deadlock. Dito for VFS itself, if done with
a blocking call.
This change makes the copying done from a filesystem fail in such cases
with EFAULT by VFS adding the CPF_TRY flag to the grants. If a FS call
fails with EFAULT, VFS will then request the range to be made available
to VM after the FS is unblocked, allowing it to be used to satisfy the
range if need be in another VFS thread.
Similarly, for datacopies that VFS itself does, it uses the failable
vircopy variant and callers use a wrapper that talk to VM if necessary
to get the copy to work.
. kernel: add CPF_TRY flag to safecopies
. kernel: only request writable ranges to VM for the
target buffer when copying fails
. do copying in VFS TRY-first
. some fixes in VM to build SANITYCHECK mode
. add regression test for the cases where
- a FS system call needs memory mapped in a process that the
FS itself must map.
- such a range covers more than one file-mapped region.
. add 'try' mode to vircopy, physcopy
. add flags field to copy kernel call messages
. if CP_FLAG_TRY is set, do not transparently try
to fix memory ranges
. for use by VFS when accessing user buffers to avoid
deadlock
. remove some obsolete backwards compatability assignments
. VFS: let thread scheduling work for VM requests too
Allows VFS to make calls to VM while suspending and resuming
the currently running thread. Does currently not work for the
main thread.
. VM: add fix memory range call for use by VFS
Change-Id: I295794269cea51a3163519a9cfe5901301d90b32
. makes it safe to transparently repeate i/o operation on
EFAULT
. needed for future re-issued i/o operation change in VFS
Change-Id: Iea6b29f3bff19002dcd69b30569671768ac17e21
Diagnostics messages are printed using locally generated requests,
using KERNEL as the calling endpoint. No reply should be sent for
such cases. This check was accidentally lost with the previous
removal of tty_reply().
Change-Id: I4b76215a4d90e927b0071675d89d861aa399abb3