arm: don't touch the field user_regs_struct_t::ARM_ORIG_r0

The field user_regs_struct_t::ARM_ORIG_r0 isn't used to prevent
a syscall restart on ARM unlike x86.

Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Reported-by: Chanho Park <chanho61.park@samsusng.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cr: introduced the macro REG_SYSCALL_NR

The macro REG_SYSCALL_NR is designated to get the value of the CPU register
storing syscall number in a machine-independent way.

Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Acked-by: Andrew Vagin <avagin@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cr: renamed restore_fpu() to sigreturn_prep_fpu_frame() and vice versa

The names of these functions should be swapped to avoid confusion.

Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Acked-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
restore: add action scripts setup-namespaces (v2)

After creating namespaces we may need to apply some configuration.
For example uid and gid maps should be applied in this moment.

This script should be executed from crtools, but namespaces are created
in a root process, so we need to add a new stage for synchronizing.

v2: use a separate stage instead of socketpair.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
cr: generalized the prototype of the routine restore_fpu()

A struct sigframe* instead of fpu_state_t should be passed
to the routine restore_fpu() since FPU registers are stored
in different fields of the sigframe in different architectures.
An architecture-specific implementation of the routine restore_fpu()
should know details of this layout instead of construct_sigframe().

This change makes it possible to move ARM FPU restoration
from sigreturn_prep_fpu_frame() (where it caused a segfault
since the pointer fpu_stat has become invalid in the dumper
address space) to restore_fpu()

Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Acked-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
zdtm: added a test validating ARM NEON checkpoint/restore

This patch adds the test static/arm-neon00 modelled
after the test static/fpu00: it initializes ARM NEON
registers before a checkpoint, carries out a simple
computation on ARM NEON after a restore and compares
the result against the result of the same computation
carried out before a checkpoint.

Signed-off-by: Alexander Kartashov <alekskartashov@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>