#include <stddef.h>
#include <signal.h>
#include <sys/ucontext.h>

--

SIG_BLOCK
SIG_SETMASK


-- Offsets of the fields in the powerpc64 ABI stack frame.
-- XXX Do these correspond to some struct?

FRAME_BACKCHAIN		0
FRAME_CR_SAVE		8
FRAME_LR_SAVE		16
FRAME_COMPILER_DW	24
FRAME_LINKER_DW		32
FRAME_TOC_SAVE		40
FRAME_PARM_SAVE		48
FRAME_PARM1_SAVE	48
FRAME_PARM2_SAVE	56
FRAME_PARM3_SAVE	64
FRAME_PARM4_SAVE	72
FRAME_PARM5_SAVE	80
FRAME_PARM6_SAVE	88
FRAME_PARM7_SAVE	96
FRAME_PARM8_SAVE	104
FRAME_PARM9_SAVE	112


-- Offsets of the fields in the ucontext_t structure.
#define ucontext(member)	offsetof (ucontext_t, member)
#define mcontext(member)	ucontext (uc_mcontext.member)

UCONTEXT_LINK			ucontext (uc_link)
UCONTEXT_STACK			ucontext (uc_stack)
UCONTEXT_STACK_SP		ucontext (uc_stack.ss_sp)
UCONTEXT_STACK_FLAGS		ucontext (uc_stack.ss_flags)
UCONTEXT_STACK_SIZE		ucontext (uc_stack.ss_size)
UCONTEXT_SIGMASK		ucontext (uc_sigmask)
UCONTEXT_MCONTEXT		ucontext (uc_mcontext)
SIGCONTEXT_SIGNAL		mcontext (signal)
SIGCONTEXT_HANDLER		mcontext (handler)
SIGCONTEXT_OLDMASK		mcontext (oldmask)
SIGCONTEXT_PT_REGS		mcontext (regs)
SIGCONTEXT_GP_REGS		mcontext (gp_regs)
SIGCONTEXT_FP_REGS		mcontext (fp_regs)
SIGCONTEXT_V_REGS_PTR		mcontext (v_regs)
SIGCONTEXT_V_RESERVE		mcontext (vmx_reserve)
