about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--arch/i386/bits/wexitstatus.h3
-rw-r--r--arch/x86_64/bits/wexitstatus.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/arch/i386/bits/wexitstatus.h b/arch/i386/bits/wexitstatus.h
index 34a80238..591d401a 100644
--- a/arch/i386/bits/wexitstatus.h
+++ b/arch/i386/bits/wexitstatus.h
@@ -5,5 +5,6 @@
 #define WCOREDUMP(s) ((s) & 0x80)
 #define WIFEXITED(s) (!WTERMSIG(s))
 #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
-#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s))
+#define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0)
+#define WIFCONTINUED(s) ((s) == 0xffff)
 #endif
diff --git a/arch/x86_64/bits/wexitstatus.h b/arch/x86_64/bits/wexitstatus.h
index 34a80238..591d401a 100644
--- a/arch/x86_64/bits/wexitstatus.h
+++ b/arch/x86_64/bits/wexitstatus.h
@@ -5,5 +5,6 @@
 #define WCOREDUMP(s) ((s) & 0x80)
 #define WIFEXITED(s) (!WTERMSIG(s))
 #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
-#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s))
+#define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0)
+#define WIFCONTINUED(s) ((s) == 0xffff)
 #endif