summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/machdep.c4
-rw-r--r--sys/amd64/include/sigframe.h17
-rw-r--r--sys/i386/i386/machdep.c4
-rw-r--r--sys/i386/include/sigframe.h17
4 files changed, 22 insertions, 20 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 7bd9188..aa8e179 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -533,7 +533,7 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
else {
/* Old FreeBSD-style arguments. */
sf.sf_arg2 = code;
- sf.sf_addr = (char *)regs->tf_err;
+ sf.sf_addr = regs->tf_err;
sf.sf_ahu.sf_handler = catcher;
}
@@ -686,7 +686,7 @@ sendsig(catcher, sig, mask, code)
else {
/* Old FreeBSD-style arguments. */
sf.sf_siginfo = code;
- sf.sf_addr = (char *)regs->tf_err;
+ sf.sf_addr = regs->tf_err;
sf.sf_ahu.sf_handler = catcher;
}
diff --git a/sys/amd64/include/sigframe.h b/sys/amd64/include/sigframe.h
index e7b47fa..eedc8c1 100644
--- a/sys/amd64/include/sigframe.h
+++ b/sys/amd64/include/sigframe.h
@@ -37,7 +37,7 @@
struct osigframe {
/*
- * The first three members may be used by applications.
+ * The first four members may be used by applications.
*/
register_t sf_signum;
@@ -51,6 +51,8 @@ struct osigframe {
/* Points to sf_siginfo.si_sc. */
register_t sf_scp;
+ register_t *sf_addr;
+
/*
* The following arguments are not constrained by the
* function call protocol.
@@ -59,8 +61,6 @@ struct osigframe {
* arguments.
*/
- char *sf_addr;
-
union {
__osiginfohandler_t *sf_action;
__sighandler_t *sf_handler;
@@ -73,14 +73,15 @@ struct osigframe {
struct sigframe {
/*
* 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.
+ * 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 */
- char *sf_addr; /* undocumented 4th arg */
+ register_t sf_siginfo; /* code or pointer to sf_si */
+ register_t sf_ucontext; /* points to sf_uc */
+ register_t *sf_addr; /* undocumented 4th arg */
union {
__siginfohandler_t *sf_action;
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 7bd9188..aa8e179 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -533,7 +533,7 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
else {
/* Old FreeBSD-style arguments. */
sf.sf_arg2 = code;
- sf.sf_addr = (char *)regs->tf_err;
+ sf.sf_addr = regs->tf_err;
sf.sf_ahu.sf_handler = catcher;
}
@@ -686,7 +686,7 @@ sendsig(catcher, sig, mask, code)
else {
/* Old FreeBSD-style arguments. */
sf.sf_siginfo = code;
- sf.sf_addr = (char *)regs->tf_err;
+ sf.sf_addr = regs->tf_err;
sf.sf_ahu.sf_handler = catcher;
}
diff --git a/sys/i386/include/sigframe.h b/sys/i386/include/sigframe.h
index e7b47fa..eedc8c1 100644
--- a/sys/i386/include/sigframe.h
+++ b/sys/i386/include/sigframe.h
@@ -37,7 +37,7 @@
struct osigframe {
/*
- * The first three members may be used by applications.
+ * The first four members may be used by applications.
*/
register_t sf_signum;
@@ -51,6 +51,8 @@ struct osigframe {
/* Points to sf_siginfo.si_sc. */
register_t sf_scp;
+ register_t *sf_addr;
+
/*
* The following arguments are not constrained by the
* function call protocol.
@@ -59,8 +61,6 @@ struct osigframe {
* arguments.
*/
- char *sf_addr;
-
union {
__osiginfohandler_t *sf_action;
__sighandler_t *sf_handler;
@@ -73,14 +73,15 @@ struct osigframe {
struct sigframe {
/*
* 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.
+ * 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 */
- char *sf_addr; /* undocumented 4th arg */
+ register_t sf_siginfo; /* code or pointer to sf_si */
+ register_t sf_ucontext; /* points to sf_uc */
+ register_t *sf_addr; /* undocumented 4th arg */
union {
__siginfohandler_t *sf_action;
OpenPOWER on IntegriCloud