summaryrefslogtreecommitdiff
path: root/src/setjmp/_longjmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/setjmp/_longjmp.c')
-rw-r--r--src/setjmp/_longjmp.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/setjmp/_longjmp.c b/src/setjmp/_longjmp.c
index 6a7d0b5c..f8c46b32 100644
--- a/src/setjmp/_longjmp.c
+++ b/src/setjmp/_longjmp.c
@@ -1,10 +1,31 @@
#include <setjmp.h>
+/** restore calling environment **/
+
void _longjmp(jmp_buf env, int val)
{
return longjmp(env, val);
}
+/***
+restores the environment, without manipulation the signal mask, of a previous
+call to FUNCTION(_setjmp) and continues execution at the location of the call
+to FUNCTION(_setjmp).
+
+All objects previously accessible at the time of the call to FUNCTION(_setjmp)
+have the same values. Non-TYPE(volatile) objects of automatic storage duration
+that have changed since the call to FUNCTION(_setjmp) have intederminate values.
+
+When execution resumes at the point of the original call to FUNCTION(_setjmp),
+the value specified by ARGUMENT(val) is returned. If 0 is specified, then the
+return value is 1.
+***/
+
/*
+UNDEFINED(There was no previous call to FUNCTION(_setjmp))
+UNDEFINED(The function containing the previous call to FUNCTION(_setjmp) is no longer executing)
+UNDEFINED(THIS() is called from a nested signal handler)
+
XOPEN(400)
+XOBSOLETE(700, FUNCTION(siglongjmp))
*/