summaryrefslogtreecommitdiff
path: root/src/setjmp
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-01-30 13:27:49 -0500
committerJakob Kaivo <jkk@ung.org>2024-01-30 13:27:49 -0500
commit635f3167091b5f7419cef9b24810f24269f40a37 (patch)
treeaae4edbab58abc6034fe46b7527ebfdc7ef5179d /src/setjmp
parent371913c93cc3ffc4dd0a4a18bc0f3021f0ec05db (diff)
update standards and safety
Diffstat (limited to 'src/setjmp')
-rw-r--r--src/setjmp/_longjmp.c7
-rw-r--r--src/setjmp/_setjmp.c7
-rw-r--r--src/setjmp/longjmp.c7
-rw-r--r--src/setjmp/setjmp.c7
-rw-r--r--src/setjmp/sigjmp_buf.c6
-rw-r--r--src/setjmp/siglongjmp.c6
-rw-r--r--src/setjmp/sigsetjmp.c2
7 files changed, 15 insertions, 27 deletions
diff --git a/src/setjmp/_longjmp.c b/src/setjmp/_longjmp.c
index 8378c9ac..c274889c 100644
--- a/src/setjmp/_longjmp.c
+++ b/src/setjmp/_longjmp.c
@@ -1,11 +1,11 @@
-#if 0
-
#include <setjmp.h>
+#include "_safety.h"
/** restore calling environment **/
void _longjmp(jmp_buf env, int val)
{
+ SIGNAL_SAFE(0);
return longjmp(env, val);
}
@@ -31,6 +31,3 @@ UNDEFINED(THIS() is called from a nested signal handler)
XOPEN(400)
XOBSOLETE(700, FUNCTION(siglongjmp))
*/
-
-
-#endif
diff --git a/src/setjmp/_setjmp.c b/src/setjmp/_setjmp.c
index 53bc1a2c..6ed81a7e 100644
--- a/src/setjmp/_setjmp.c
+++ b/src/setjmp/_setjmp.c
@@ -1,11 +1,11 @@
-#if 0
-
#include <setjmp.h>
+#include "_safety.h"
/** save program state **/
int _setjmp(jmp_buf env)
{
+ SIGNAL_SAFE(0);
return setjmp(env);
}
@@ -28,6 +28,3 @@ UNDEFINED(A program defines an external identifier named LITERAL(setjmp))
XOPEN(400)
XOBSOLETE(700, FUNCTION(siglongjmp))
*/
-
-
-#endif
diff --git a/src/setjmp/longjmp.c b/src/setjmp/longjmp.c
index fc4305ca..26c65299 100644
--- a/src/setjmp/longjmp.c
+++ b/src/setjmp/longjmp.c
@@ -1,12 +1,12 @@
-#if 0
-
#include <setjmp.h>
+#include "_safety.h"
/** restore calling environment **/
_Noreturn void longjmp(jmp_buf env, int val)
{
extern _Noreturn void __longjmp(jmp_buf);
+ SIGNAL_SAFE(0);
/* use val if nonzero, otherwise 1 */
env[0] = val ? val : 1;
@@ -35,6 +35,3 @@ UNDEFINED(The function containing the previous call to FUNCTION(setjmp) is no lo
UNDEFINED(THIS() is called from a nested signal handler)
STDC(1)
*/
-
-
-#endif
diff --git a/src/setjmp/setjmp.c b/src/setjmp/setjmp.c
index c5cad278..093bd7c5 100644
--- a/src/setjmp/setjmp.c
+++ b/src/setjmp/setjmp.c
@@ -1,13 +1,13 @@
-#if 0
-
#include <setjmp.h>
#include <string.h>
+#include "_safety.h"
/** save program state **/
int setjmp(jmp_buf env)
{
extern int __setjmp(jmp_buf);
+ SIGNAL_SAFE(0);
memset(env, 0, sizeof(jmp_buf));
return __setjmp(env);
}
@@ -33,6 +33,3 @@ UNDEFINED(A program defines an external identifier named LITERAL(setjmp))
STDC(1)
*/
-
-
-#endif
diff --git a/src/setjmp/sigjmp_buf.c b/src/setjmp/sigjmp_buf.c
index a79c9f9b..54358117 100644
--- a/src/setjmp/sigjmp_buf.c
+++ b/src/setjmp/sigjmp_buf.c
@@ -1,5 +1,3 @@
-#if 0
-
#include <setjmp.h>
/** program environment with signal mask **/
@@ -12,9 +10,7 @@ environment, including the signal mask.
***/
/*
+SIGNAL_SAFE(0)
TYPEDEF(an array type)
POSIX(1)
*/
-
-
-#endif
diff --git a/src/setjmp/siglongjmp.c b/src/setjmp/siglongjmp.c
index 8147c036..7dc550ce 100644
--- a/src/setjmp/siglongjmp.c
+++ b/src/setjmp/siglongjmp.c
@@ -3,12 +3,15 @@
#include <setjmp.h>
#include <sys/types.h>
#include <signal.h>
+#include "_safety.h"
/** restore calling environment with signal mask **/
void siglongjmp(sigjmp_buf env, int val)
{
- /* restor signal mask */
+ SIGNAL_SAFE(0);
+
+ /* restore signal mask */
return longjmp(env, val);
}
@@ -36,5 +39,4 @@ UNDEFINED(THIS() is called from a nested signal handler)
POSIX(1)
*/
-
#endif
diff --git a/src/setjmp/sigsetjmp.c b/src/setjmp/sigsetjmp.c
index 2d78eed5..7ca66b31 100644
--- a/src/setjmp/sigsetjmp.c
+++ b/src/setjmp/sigsetjmp.c
@@ -8,6 +8,8 @@
int sigsetjmp(sigjmp_buf env, int savemask)
{
+ SIGNAL_SAFE(0);
+
if (savemask) {
/* save mask to env */
}