2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-28 04:48:16 +00:00
criu/compel/arch/x86/plugins/std/prologue.S
Dmitry Safonov 5cf76474f1 compel: plugins,std -- Add prologue.S
The prologue includes routines needed for parasite blob to work
and is always included with the std plugin.

Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-03-14 23:58:09 +03:00

34 lines
846 B
ArmAsm

#include "common/asm/linkage.h"
#include "asm/prologue.h"
#include "uapi/std/syscall-codes.h"
.section .compel.prologue.text, "ax"
ENTRY(__export_std_prologue_start)
push %rsp
leaq __export_std_prologue_init_args(%rip), %rdi
movq __export_std_plugin_begin(%rip), %rsi
movq __export_std_plugin_size(%rip), %rdx
call __export_std_compel_start
do_rt_sigreturn:
leaq __export_std_prologue_sigframe(%rip), %rax
addq $8, %rax
movq %rax, %rsp # we can't use sys_rt_sigreturn here
mov $__NR_rt_sigreturn, %eax # because we're adjusting stack
syscall
GLOBAL(__export_std_prologue_init_args)
.space PROLOGUE_INIT_ARGS_SIZE, 0
GLOBAL(__export_std_plugin_begin)
.space 8, 0
GLOBAL(__export_std_plugin_size)
.space 8, 0
.align 64
GLOBAL(__export_std_prologue_sigframe)
.space PROLOGUE_SGFRAME_SIZE, 0
END(__export_std_prologue_start)