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

-- Constants used by the rt_sigprocmask call.

SIG_BLOCK
SIG_SETMASK

_NSIG8				(_NSIG / 8)

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

UCONTEXT_FLAGS			ucontext (__uc_flags)
UCONTEXT_LINK			ucontext (uc_link)
UCONTEXT_STACK			ucontext (uc_stack)
UCONTEXT_MCONTEXT		ucontext (uc_mcontext)
UCONTEXT_SIGMASK		ucontext (uc_sigmask)

STACK_SP			stack (ss_sp)
STACK_SIZE			stack (ss_size)
STACK_FLAGS			stack (ss_flags)

MCONTEXT_GREGS			mcontext (__gregs)
MCONTEXT_FPREGS			mcontext (__fpregs)

UCONTEXT_SIZE			sizeof (ucontext_t)
