lib/syscall: convert to prctl-based syscall form
The syscall form used for issuing requests to the companion core is
based on ORing __OOB_SYSCALL_BIT to the syscall register for tagging
an out-of-band syscall, which is outside of the valid in-band range
for syscall numbers.
Unfortunately, this method has a major drawback: tools like Valgrind
which track system calls issued by applications may choke on
out-of-band system calls since these do not belong to the common set
it recognizes. Although adding syscall wrappers to Valgrind might be a
solution, this would not be the most practical one for dual kernel
syscall interfaces. The most practical approach would be to piggyback
on an existing system call which Valgrind (and others) already
recognizes. For this reason, Dovetail introduced a new syscall form
based on the regular prctl(2) syscall.
In order to benefit from this feature, EVL syscalls are now folded
into a prctl() request, which the core receives.
This change introduces ABI #27. Recent revisions of the EVL core
support both the former ABI and the new (prctl-based) one
indifferently.
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
Please register or sign in to comment