blob: 187eaa0c745fd45ca353d8adff01e4bee759d228 [file] [log] [blame] [edit]
// Arch specific struct definitions for setjmp/longjmp.
#ifndef ROS_ARCH_SETJMP_H
#define ROS_ARCH_SETJMP_H
#include <common.h>
#ifdef __x86_64__
struct jmpbuf {
uintptr_t retaddr; // return address
uintreg_t rsp; // post-return rsp
uintreg_t rbx; // callee saved registers
uintreg_t rbp;
uintreg_t r12;
uintreg_t r13;
uintreg_t r14;
uintreg_t r15;
};
#else
struct jmpbuf {
uintptr_t retaddr; // return address
uintreg_t esp; // post-return esp
uintreg_t ebx; // callee saved registers
uintreg_t ebp;
uintreg_t esi;
uintreg_t edi;
};
#endif
#endif /* !ROS_ARCH_SETJMP_H */