aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/include/sigframe.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/sys/amd64/include/sigframe.h b/sys/amd64/include/sigframe.h
index 9c47915902c3..ac64ddb00130 100644
--- a/sys/amd64/include/sigframe.h
+++ b/sys/amd64/include/sigframe.h
@@ -29,7 +29,11 @@
*/
#ifndef _MACHINE_SIGFRAME_H_
-#define _MACHINE_SIGFRAME_H_ 1
+#define _MACHINE_SIGFRAME_H_
+
+/*
+ * Signal frames, arguments passed to application signal handlers.
+ */
struct osigframe {
/*
@@ -68,12 +72,16 @@ struct osigframe {
struct sigframe {
/*
- * The first three members may be used by applications.
+ * The first four members may be used by applications.
+ * NOTE: The 4th argument is undocumented, ill commented
+ * on and seems to be somewhat BSD "standard".
+ * Handlers installed with sigvec may be using it.
*/
register_t sf_signum;
register_t sf_siginfo; /* code or pointer to sf_si */
register_t sf_ucontext; /* points to sf_uc */
- register_t __spare__; /* Align sf_ahu */
+ char *sf_addr; /* undocumented 4th arg */
+
union {
__siginfohandler_t *sf_action;
__sighandler_t *sf_handler;
@@ -83,4 +91,4 @@ struct sigframe {
ucontext_t sf_uc; /* = *sf_ucontext */
};
-#endif /* _MACHINE_SIGFRAME_H_ */
+#endif /* !_MACHINE_SIGFRAME_H_ */