/*
    AUTOMATICALLY GENERATED BY tspec 2.10
    API SUBSET: svid3:ucontext.h (VERSION 2.6)
*/

#ifndef __TDF_SVID3_UCONTEXT_H
#define __TDF_SVID3_UCONTEXT_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma TenDRA declaration block api__svid3__ucontext begin

#ifndef __TDF_SVID3_SIGNAL_H
#pragma extend interface "../svid3.api/signal.h"
#endif /* __TDF_SVID3_SIGNAL_H */
/* The specification of ucontext(BA_ENV) is rubbish */
#pragma token TYPE mcontext_t # svid3.ucontext.mcontext_t
#pragma token STRUCT TAG ucontext # svid3.ucontext.ucontext
#pragma token MEMBER struct ucontext * : struct ucontext : uc_link # svid3.ucontext.ucontext.uc_link
#pragma token MEMBER sigset_t : struct ucontext : uc_sigmask # svid3.ucontext.ucontext.uc_sigmask
#pragma token MEMBER stack_t : struct ucontext : uc_stack # svid3.ucontext.ucontext.uc_stack
#pragma token MEMBER mcontext_t : struct ucontext : uc_mcontext # svid3.ucontext.ucontext.uc_mcontext
typedef struct ucontext ucontext_t;
#pragma token FUNC int (ucontext_t *) : getcontext # svid3.ucontext.getcontext
#pragma token FUNC int (ucontext_t *) : setcontext # svid3.ucontext.setcontext
/* From errata */
#pragma token FUNC void (ucontext_t *, void (*) (), int, ...) : makecontext # svid3.ucontext.makecontext
#pragma token FUNC int (ucontext_t *, ucontext_t *) : swapcontext # svid3.ucontext.swapcontext

#pragma interface mcontext_t TAG ucontext TAG ucontext.uc_link
#pragma interface TAG ucontext.uc_sigmask TAG ucontext.uc_stack
#pragma interface TAG ucontext.uc_mcontext getcontext setcontext swapcontext

#pragma TenDRA declaration block end

#ifdef __cplusplus
}
#endif

#endif /* __TDF_SVID3_UCONTEXT_H */
