1d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\documentclass{article}
2d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\usepackage[fancyhdr,pdf]{latex2man}
3d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
4d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\input{common.tex}
5d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
6d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\begin{document}
7d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
8d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\begin{Name}{3}{unw\_is\_signal\_frame}{David Mosberger-Tang}{Programming Library}{unw\_is\_signal\_frame}unw\_is\_signal\_frame -- check if current frame is a signal frame
9d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\end{Name}
10d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
11d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{Synopsis}
12d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
13d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\File{\#include $<$libunwind.h$>$}\\
14d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
15d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\Type{int} \Func{unw\_is\_signal\_frame}(\Type{unw\_cursor\_t~*}\Var{cp});\\
16d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
17d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{Description}
18d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
19d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmThe \Func{unw\_is\_signal\_frame}() routine returns a positive value
20d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmif the current frame identified by \Var{cp} is a signal frame, and a
21d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmvalue of 0 otherwise.  For the purpose of this discussion, a signal
22d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmframe is a frame that was created in response to a potentially
23d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmasynchronous interruption.  For UNIX and UNIX-like platforms, such
24d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmframes are normally created by the kernel when delivering a signal.
25d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmIn a kernel-environment, a signal frame might, for example, correspond
26d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmto a frame created in response to a device interrupt.
27d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
28d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmSignal frames are somewhat unusual because the asynchronous nature of
29d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmthe events that create them require storing the contents of registers
30d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmthat are normally treated as scratch (``caller-saved'') registers.
31d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
32d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{Return Value}
33d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
34d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmOn successful completion, \Func{unw\_is\_signal\_frame}() returns a
35d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmpositive value if the current frame is a signal frame, or 0 if it is
36d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmnot.  Otherwise, a negative value of one of the error-codes below is
37d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmreturned.
38d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
39d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{Thread and Signal Safety}
40d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
41d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\Func{unw\_is\_signal\_frame}() is thread-safe as well as safe to use
42d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmfrom a signal handler.
43d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
44d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{Errors}
45d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
46d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\begin{Description}
47d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\item[\Const{UNW\_ENOINFO}] \Prog{Libunwind} is unable to determine
48d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm  whether or not the current frame is a signal frame.
49d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\end{Description}
50d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
51d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{See Also}
52d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
53d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\SeeAlso{libunwind(3)},
54d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\SeeAlso{unw\_get\_reg(3)},
55d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\SeeAlso{unw\_set\_reg(3)},
56d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\SeeAlso{unw\_get\_fpreg(3)},
57d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\SeeAlso{unw\_set\_fpreg(3)}
58d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
59d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\section{Author}
60d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
61d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\noindent
62d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidmDavid Mosberger-Tang\\
6375f34ccb7dcdfd2b96e370824b3fd723b2f22b49David Mosberger-TangEmail: \Email{dmosberger@gmail.com}\\
6475f34ccb7dcdfd2b96e370824b3fd723b2f22b49David Mosberger-TangWWW: \URL{http://www.nongnu.org/libunwind/}.
65d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\LatexManEnd
66d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm
67d0028f3b308078fe19b1ec7a29f1d8cf6ebf39efmostang.com!davidm\end{document}
68