-
Jan Kiszka authored
I-pipe makes sure that arguments of compat calls are ordered just like native calls. Dovetail does not. But it is better to use the kernel's syscall_get_arguments for retrieving the arguments anyway. Introduce pipeline_get_syscall_args to abstract that difference. Xenomai/ARM syscalls have an unconventional argument marshalling, with ARM_ORIG_r0 containing the Xenomai syscall number (ORed with __COBALT_SYSCALL_BIT), followed by the first actual argument to the syscall in ARM_r1. For this reason, using syscall_get_arguments() to collect the syscall parameters won't yield the expected result, with regs[0] matching __xn_reg_sys(regs) instead of __xn_reg_arg1(regs). Allow Dovetail-enabled architectures to override the generic implementation of pipeline_get_syscall_args(), provide a working one for ARM. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> [Philippe: add special handling of ARM] Signed-off-by: Philippe Gerum <rpm@xenomai.org>
d1fe9293