aboutsummaryrefslogtreecommitdiff
path: root/manual/setjmp.texi
diff options
context:
space:
mode:
Diffstat (limited to 'manual/setjmp.texi')
-rw-r--r--manual/setjmp.texi33
1 files changed, 11 insertions, 22 deletions
diff --git a/manual/setjmp.texi b/manual/setjmp.texi
index 94d16becdc..710252881c 100644
--- a/manual/setjmp.texi
+++ b/manual/setjmp.texi
@@ -96,17 +96,15 @@ performing non-local exits. These facilities are declared in
@file{setjmp.h}.
@pindex setjmp.h
-@comment setjmp.h
-@comment ISO
@deftp {Data Type} jmp_buf
+@standards{ISO, setjmp.h}
Objects of type @code{jmp_buf} hold the state information to
be restored by a non-local exit. The contents of a @code{jmp_buf}
identify a specific place to return to.
@end deftp
-@comment setjmp.h
-@comment ISO
@deftypefn Macro int setjmp (jmp_buf @var{state})
+@standards{ISO, setjmp.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
@c _setjmp ok
@c __sigsetjmp(!savemask) ok
@@ -117,9 +115,8 @@ execution state of the program in @var{state} and returns zero. If
@var{state}, @code{setjmp} returns a nonzero value.
@end deftypefn
-@comment setjmp.h
-@comment ISO
@deftypefun void longjmp (jmp_buf @var{state}, int @var{value})
+@standards{ISO, setjmp.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@ascuplugin{} @asucorrupt{} @asulock{/hurd}}@acunsafe{@acucorrupt{} @aculock{/hurd}}}
@c __libc_siglongjmp @ascuplugin @asucorrupt @asulock/hurd @acucorrupt @aculock/hurd
@c _longjmp_unwind @ascuplugin @asucorrupt @acucorrupt
@@ -207,16 +204,14 @@ The facilities in this section are declared in the header file
@file{setjmp.h}.
@pindex setjmp.h
-@comment setjmp.h
-@comment POSIX.1
@deftp {Data Type} sigjmp_buf
+@standards{POSIX.1, setjmp.h}
This is similar to @code{jmp_buf}, except that it can also store state
information about the set of blocked signals.
@end deftp
-@comment setjmp.h
-@comment POSIX.1
@deftypefun int sigsetjmp (sigjmp_buf @var{state}, int @var{savesigs})
+@standards{POSIX.1, setjmp.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{/hurd}}@acunsafe{@aculock{/hurd}}}
@c sigsetjmp @asulock/hurd @aculock/hurd
@c __sigsetjmp(savemask) @asulock/hurd @aculock/hurd
@@ -227,9 +222,8 @@ of blocked signals is saved in @var{state} and will be restored if a
@code{siglongjmp} is later performed with this @var{state}.
@end deftypefun
-@comment setjmp.h
-@comment POSIX.1
@deftypefun void siglongjmp (sigjmp_buf @var{state}, int @var{value})
+@standards{POSIX.1, setjmp.h}
@safety{@prelim{}@mtsafe{}@asunsafe{@ascuplugin{} @asucorrupt{} @asulock{/hurd}}@acunsafe{@acucorrupt{} @aculock{/hurd}}}
@c Alias to longjmp.
This is similar to @code{longjmp} except for the type of its @var{state}
@@ -258,9 +252,8 @@ contained. The type is also used in a few more places as we will see.
The types and functions described in this section are all defined and
declared respectively in the @file{ucontext.h} header file.
-@comment ucontext.h
-@comment SVID
@deftp {Data Type} ucontext_t
+@standards{SVID, ucontext.h}
The @code{ucontext_t} type is defined as a structure with at least the
following elements:
@@ -289,9 +282,8 @@ applications less portable.
Objects of this type have to be created by the user. The initialization
and modification happens through one of the following functions:
-@comment ucontext.h
-@comment SVID
@deftypefun int getcontext (ucontext_t *@var{ucp})
+@standards{SVID, ucontext.h}
@safety{@prelim{}@mtsafe{@mtsrace{:ucp}}@assafe{}@acsafe{}}
@c Linux-only implementations in assembly, including sigprocmask
@c syscall. A few cases call the sigprocmask function, but that's safe
@@ -318,9 +310,8 @@ Once the context variable is initialized it can be used as is or it can
be modified using the @code{makecontext} function. The latter is normally
done when implementing co-routines or similar constructs.
-@comment ucontext.h
-@comment SVID
@deftypefun void makecontext (ucontext_t *@var{ucp}, void (*@var{func}) (void), int @var{argc}, @dots{})
+@standards{SVID, ucontext.h}
@safety{@prelim{}@mtsafe{@mtsrace{:ucp}}@assafe{}@acsafe{}}
@c Linux-only implementations mostly in assembly, nothing unsafe.
@@ -366,9 +357,8 @@ can, depending on the direction the stack grows, be different). This
difference makes the @code{makecontext} function hard to use and it
requires detection of the platform at compile time.
-@comment ucontext.h
-@comment SVID
@deftypefun int setcontext (const ucontext_t *@var{ucp})
+@standards{SVID, ucontext.h}
@safety{@prelim{}@mtsafe{@mtsrace{:ucp}}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}}
@c Linux-only implementations mostly in assembly. Some ports use
@c sigreturn or swapcontext syscalls; others restore the signal mask
@@ -411,9 +401,8 @@ The @code{setcontext} function simply replaces the current context with
the one described by the @var{ucp} parameter. This is often useful but
there are situations where the current context has to be preserved.
-@comment ucontext.h
-@comment SVID
@deftypefun int swapcontext (ucontext_t *restrict @var{oucp}, const ucontext_t *restrict @var{ucp})
+@standards{SVID, ucontext.h}
@safety{@prelim{}@mtsafe{@mtsrace{:oucp} @mtsrace{:ucp}}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}}
@c Linux-only implementations mostly in assembly. Some ports call or
@c inline getcontext and/or setcontext, adjusting the saved context in