strace/linux/i386/arch_sigreturn.c
Dmitry V. Levin a3c483545a sigreturn.c: split arch specific code into separate arch files
Split code that use arch-specific registers to separate arch files.

* sigreturn.c (sys_sigreturn): Move arch-specific code
to linux/*/arch_sigreturn.c, include "arch_sigreturn.c".
* linux/arch_sigreturn.c: New file.
* Makefile.am (EXTRA_DIST): Add linux/arch_sigreturn.c
and linux/*/arch_sigreturn.c files.
2015-03-23 22:25:05 +00:00

21 lines
550 B
C

/*
* On i386, sigcontext is followed on stack by struct fpstate
* and after it an additional u32 extramask which holds
* upper half of the mask.
*/
struct {
uint32_t struct_sigcontext_padding1[20];
uint32_t oldmask;
uint32_t struct_sigcontext_padding2;
uint32_t struct_fpstate_padding[156];
uint32_t extramask;
} frame;
if (umove(tcp, *i386_esp_ptr, &frame) < 0) {
tprintf("{mask=%#lx}", (unsigned long) *i386_esp_ptr);
} else {
uint32_t mask[2] = { frame.oldmask, frame.extramask };
tprintsigmask_addr("{mask=", mask);
tprints("}");
}