- Cleanup of unused macros for VFS - FS protocols
- Update servers/vfs/README to reflect the new requests names.
- Alphabetically re-order the message union, as well as minor
formatting, for readability.
Change-Id: Ief7c38489e93bcf5f795dccbf3a8e10b44b95af4
All of these requests share the same message type as at least one server
manages those requests in the same handler, just by checking the actual
type of the request, and then acting upon it.
Change-Id: I17337b4c67ae209523574c22ccc108cf5f1e65e9
These two request are handled by the same function in some FSes, which
prevents us from using two different kinds of messages.
Change-Id: Ib2fc80bdd56ef67db6b4c51cf8963353a761aab1
These two request are handled by the same function in some FSes, which
prevents us from using two different kinds of messages.
Change-Id: Iede3a0251d8d84ca7f121c56f30f42b045b0c737
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)
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
This patch adds pthread compatibility by using libmthread.
To use this with a program using pthreads, you have to replace
#include <pthread>
with
#define _MTHREADIFY_PTHREADS
#include <minix/mthreads>
This also changes the initialization function to be a constructor, which
is implicitly called before the call to main. This allows for
conformance with pthreads, while not paying a high price by checking on
each mthread_* call whether the library has been initialized or not.
As mthread_init is now a constructor, it also has been set as static, and
relevent calls removed from programs using it.
Change-Id: I2aa375db557958d2bee9a70d285aabb990c88f00
- Fix for possible unset uid/gid in toproto
- Fix for default mtree style
- Update libelf
- Importing libexecinfo
- Resynchronize GCC, mpc, gmp, mpfr
- build.sh: Replace params with show-params.
This has been done as the make target has been renamed in the same
way, while a new target named params has been added. This new
target generates a file containing all the parameters, instead of
printing it on the console.
- Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org)
get getservbyport() out of the inner loop
Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
This allows us to write things like this:
message m;
m.m_notify.interrupts = new_value;
or
message *mp;
mp->m_notify.interrupts = new_value;
The shorthands macro have been adapted for the new scheme, and will be
kept as long as we have generic messages being used.
Change-Id: Icfd02b5f126892b1d5d2cebe8c8fb02b180000f7