/* This is what SunOS does, so shall I unless we use new 32bit signals or rt signals. */ struct sigcontext32 { int sigc_onstack; /* state to restore */ int sigc_mask; /* sigmask to restore */ int sigc_sp; /* stack pointer */ int sigc_pc; /* program counter */ int sigc_npc; /* next program counter */ int sigc_psr; /* for condition codes etc */ int sigc_g1; /* User uses these two registers */ int sigc_o0; /* within the trampoline code. */
/* Now comes information regarding the users window set * at the time of the signal.
*/ int sigc_oswins; /* outstanding windows */
/* stack ptrs for each regwin buf */ unsignedint sigc_spbuf[__SUNOS_MAXWIN];
/* Windows to restore after signal */ struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN];
};
/* This is what we use for 32bit new non-rt signals. */
typedefstruct { struct { unsignedint psr; unsignedint pc; unsignedint npc; unsignedint y; unsignedint u_regs[16]; /* globals and ins */
} si_regs; int si_mask;
} __siginfo32_t;
/* This is what SunOS doesn't, so we have to write this alone
and do it properly. */ struct sigcontext { /* The size of this array has to match SI_MAX_SIZE from siginfo.h */ char sigc_info[128]; struct { unsignedlong u_regs[16]; /* globals and ins */ unsignedlong tstate; unsignedlong tpc; unsignedlong tnpc; unsignedint y; unsignedint fprs;
} sigc_regs;
__siginfo_fpu_t * sigc_fpu_save; struct { void * ss_sp; int ss_flags; unsignedlong ss_size;
} sigc_stack; unsignedlong sigc_mask;
__siginfo_rwin_t * sigc_rwin_save;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.