From 2e03d8623b572b38786117f98a75e31e3b764c66 Mon Sep 17 00:00:00 2001 From: "mostang.com!davidm" Date: Thu, 20 Mar 2003 07:51:37 +0000 Subject: [PATCH] (Logical change 1.64) --- doc/unw_get_fpreg.man | 116 ++++++++++++++++++++++++++++++++++ doc/unw_get_fpreg.tex | 81 ++++++++++++++++++++++++ doc/unw_get_reg.man | 117 ++++++++++++++++++++++++++++++++++ doc/unw_get_reg.tex | 81 ++++++++++++++++++++++++ doc/unw_getcontext.man | 74 ++++++++++++++++++++++ doc/unw_getcontext.tex | 53 ++++++++++++++++ doc/unw_is_fpreg.man | 75 ++++++++++++++++++++++ doc/unw_is_fpreg.tex | 53 ++++++++++++++++ doc/unw_is_signal_frame.man | 93 +++++++++++++++++++++++++++ doc/unw_is_signal_frame.tex | 71 +++++++++++++++++++++ doc/unw_set_fpreg.man | 122 ++++++++++++++++++++++++++++++++++++ doc/unw_set_fpreg.tex | 83 ++++++++++++++++++++++++ doc/unw_set_reg.man | 122 ++++++++++++++++++++++++++++++++++++ doc/unw_set_reg.tex | 83 ++++++++++++++++++++++++ doc/unw_step.man | 110 ++++++++++++++++++++++++++++++++ doc/unw_step.tex | 72 +++++++++++++++++++++ 16 files changed, 1406 insertions(+) create mode 100644 doc/unw_get_fpreg.man create mode 100644 doc/unw_get_fpreg.tex create mode 100644 doc/unw_get_reg.man create mode 100644 doc/unw_get_reg.tex create mode 100644 doc/unw_getcontext.man create mode 100644 doc/unw_getcontext.tex create mode 100644 doc/unw_is_fpreg.man create mode 100644 doc/unw_is_fpreg.tex create mode 100644 doc/unw_is_signal_frame.man create mode 100644 doc/unw_is_signal_frame.tex create mode 100644 doc/unw_set_fpreg.man create mode 100644 doc/unw_set_fpreg.tex create mode 100644 doc/unw_set_reg.man create mode 100644 doc/unw_set_reg.tex create mode 100644 doc/unw_step.man create mode 100644 doc/unw_step.tex diff --git a/doc/unw_get_fpreg.man b/doc/unw_get_fpreg.man new file mode 100644 index 00000000..6ecacb42 --- /dev/null +++ b/doc/unw_get_fpreg.man @@ -0,0 +1,116 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:33:01 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_GET\\_FPREG" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_get_fpreg \-\- get contents of floating\-point register +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_get_fpreg(unw_cursor_t *cp, +unw_regnum_t +reg, +unw_fpreg_t *valp); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_get_fpreg() +routine reads the value of floating\-point +register reg +in the stack frame identified by cursor cp +and stores the value in the variable pointed to by valp\&. +.PP +The register numbering is target\-dependent and described in separate +manual pages (e.g., libunwind\-ia64(3) for the IA\-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that cp +is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee\-saved\&'') registers and frame\-related registers (such as the +stack\-pointer). However, for signal frames (see +unw_is_signal_frame(3)), +it is usually possible to access +all registers. +.PP +Note that unw_get_fpreg() +can only read the contents of +floating\-point registers. See unw_get_fpreg(3) +for a way to +read registers which fit in a single word. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_get_fpreg() +returns 0. +Otherwise the negative value of one of the error\-codes below is +returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_get_fpreg() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH ERRORS + +.PP +.TP +UNW_EUNSPEC + An unspecified error occurred. +.TP +UNW_EBADREG + An attempt was made to read a register +that is either invalid or not accessible in the current frame. +.PP +In addition, unw_get_fpreg() +may return any error returned by +the access_mem(), +access_reg(), +and +access_fpreg() +call\-backs (see +unw_create_addr_space(3)). +.PP +.SH SEE ALSO + +.PP +libunwind(3), +libunwind\-ia64(3), +unw_get_reg(3), +unw_is_fpreg(3), +unw_is_signal_frame(3), +unw_set_fpreg(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_get_fpreg.tex b/doc/unw_get_fpreg.tex new file mode 100644 index 00000000..50100f9e --- /dev/null +++ b/doc/unw_get_fpreg.tex @@ -0,0 +1,81 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_get\_fpreg}{David Mosberger-Tang}{Programming Library}{unw\_get\_fpreg} + + unw\_get\_fpreg -- get contents of floating-point register +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_get\_fpreg}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{unw\_regnum\_t} \Var{reg}, \Type{unw\_fpreg\_t~*}\Var{valp});\\ + +\section{Description} + +The \Func{unw\_get\_fpreg}() routine reads the value of floating-point +register \Var{reg} in the stack frame identified by cursor \Var{cp} +and stores the value in the variable pointed to by \Var{valp}. + +The register numbering is target-dependent and described in separate +manual pages (e.g., libunwind-ia64(3) for the IA-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that \Var{cp} is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee-saved'') registers and frame-related registers (such as the +stack-pointer). However, for signal frames (see +\Func{unw\_is\_signal\_frame}(3)), it is usually possible to access +all registers. + +Note that \Func{unw\_get\_fpreg}() can only read the contents of +floating-point registers. See \Func{unw\_get\_fpreg}(3) for a way to +read registers which fit in a single word. + +\section{Return Value} + +On successful completion, \Func{unw\_get\_fpreg}() returns 0. +Otherwise the negative value of one of the error-codes below is +returned. + +\section{Thread and Signal Safety} + +\Func{unw\_get\_fpreg}() is thread-safe as well as safe to use +from a signal handler. + +\section{Errors} + +\begin{Description} +\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. +\item[\Const{UNW\_EBADREG}] An attempt was made to read a register + that is either invalid or not accessible in the current frame. +\end{Description} +In addition, \Func{unw\_get\_fpreg}() may return any error returned by +the \Func{access\_mem}(), \Func{access\_reg}(), and +\Func{access\_fpreg}() call-backs (see +\Func{unw\_create\_addr\_space}(3)). + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{libunwind-ia64(3)}, +\SeeAlso{unw\_get\_reg(3)}, +\SeeAlso{unw\_is\_fpreg(3)}, +\SeeAlso{unw\_is\_signal\_frame(3)}, +\SeeAlso{unw\_set\_fpreg(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_get_reg.man b/doc/unw_get_reg.man new file mode 100644 index 00000000..3305dc8a --- /dev/null +++ b/doc/unw_get_reg.man @@ -0,0 +1,117 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:19:28 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_GET\\_REG" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_get_reg \-\- get register contents +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_get_reg(unw_cursor_t *cp, +unw_regnum_t +reg, +unw_word_t *valp); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_get_reg() +routine reads the value of register +reg +in the stack frame identified by cursor cp +and stores +the value in the word pointed to by valp\&. +.PP +The register numbering is target\-dependent and described in separate +manual pages (e.g., libunwind\-ia64(3) for the IA\-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that cp +is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee\-saved\&'') registers and frame\-related registers (such as the +stack\-pointer). However, for signal frames (see +unw_is_signal_frame(3)), +it is usually possible to access +all registers. +.PP +Note that unw_get_reg() +can only read the contents of +registers whose values fit in a single word. See +unw_get_fpreg(3) +for a way to read registers which do not fit +this constraint. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_get_reg() +returns 0. +Otherwise the negative value of one of the error\-codes below is +returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_get_reg() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH ERRORS + +.PP +.TP +UNW_EUNSPEC + An unspecified error occurred. +.TP +UNW_EBADREG + An attempt was made to read a register +that is either invalid or not accessible in the current frame. +.PP +In addition, unw_get_reg() +may return any error returned by +the access_mem(), +access_reg(), +and +access_fpreg() +call\-backs (see +unw_create_addr_space(3)). +.PP +.SH SEE ALSO + +.PP +libunwind(3), +libunwind\-ia64(3), +unw_get_fpreg(3), +unw_is_signal_frame(3), +unw_set_reg(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_get_reg.tex b/doc/unw_get_reg.tex new file mode 100644 index 00000000..a3dc9004 --- /dev/null +++ b/doc/unw_get_reg.tex @@ -0,0 +1,81 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_get\_reg}{David Mosberger-Tang}{Programming Library}{unw\_get\_reg} + + unw\_get\_reg -- get register contents +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_get\_reg}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{unw\_regnum\_t} \Var{reg}, \Type{unw\_word\_t~*}\Var{valp});\\ + +\section{Description} + +The \Func{unw\_get\_reg}() routine reads the value of register +\Var{reg} in the stack frame identified by cursor \Var{cp} and stores +the value in the word pointed to by \Var{valp}. + +The register numbering is target-dependent and described in separate +manual pages (e.g., libunwind-ia64(3) for the IA-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that \Var{cp} is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee-saved'') registers and frame-related registers (such as the +stack-pointer). However, for signal frames (see +\Func{unw\_is\_signal\_frame}(3)), it is usually possible to access +all registers. + +Note that \Func{unw\_get\_reg}() can only read the contents of +registers whose values fit in a single word. See +\Func{unw\_get\_fpreg}(3) for a way to read registers which do not fit +this constraint. + +\section{Return Value} + +On successful completion, \Func{unw\_get\_reg}() returns 0. +Otherwise the negative value of one of the error-codes below is +returned. + +\section{Thread and Signal Safety} + +\Func{unw\_get\_reg}() is thread-safe as well as safe to use +from a signal handler. + +\section{Errors} + +\begin{Description} +\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. +\item[\Const{UNW\_EBADREG}] An attempt was made to read a register + that is either invalid or not accessible in the current frame. +\end{Description} +In addition, \Func{unw\_get\_reg}() may return any error returned by +the \Func{access\_mem}(), \Func{access\_reg}(), and +\Func{access\_fpreg}() call-backs (see +\Func{unw\_create\_addr\_space}(3)). + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{libunwind-ia64(3)}, +\SeeAlso{unw\_get\_fpreg(3)}, +\SeeAlso{unw\_is\_signal\_frame(3)}, +\SeeAlso{unw\_set\_reg(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_getcontext.man b/doc/unw_getcontext.man new file mode 100644 index 00000000..f53553bb --- /dev/null +++ b/doc/unw_getcontext.man @@ -0,0 +1,74 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 17:20:43 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_GETCONTEXT" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_getcontext \-\- get initial machine\-state +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_getcontext(unw_context_t *ucp); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_getcontext() +routine initializes the context structure +pointed to by ucp +with the machine\-state of the call\-site. The +exact set of registers stored by unw_getcontext() +is +platform\-specific, but, in general, at least all preserved +(``callee\-saved\&'') and all frame\-related registers, such as the +stack\-pointer, will be stored. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_getcontext() +returns 0. +Otherwise, a value of \-1 is returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_getcontext() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH SEE ALSO + +.PP +libunwind(3), +unw_init_local(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_getcontext.tex b/doc/unw_getcontext.tex new file mode 100644 index 00000000..c5af1618 --- /dev/null +++ b/doc/unw_getcontext.tex @@ -0,0 +1,53 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_getcontext}{David Mosberger-Tang}{Programming Library}{unw\_getcontext} + + unw\_getcontext -- get initial machine-state +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_getcontext}(\Type{unw\_context\_t~*}\Var{ucp});\\ + +\section{Description} + +The \Func{unw\_getcontext}() routine initializes the context structure +pointed to by \Var{ucp} with the machine-state of the call-site. The +exact set of registers stored by \Func{unw\_getcontext}() is +platform-specific, but, in general, at least all preserved +(``callee-saved'') and all frame-related registers, such as the +stack-pointer, will be stored. + +\section{Return Value} + +On successful completion, \Func{unw\_getcontext}() returns 0. +Otherwise, a value of -1 is returned. + +\section{Thread and Signal Safety} + +\Func{unw\_getcontext}() is thread-safe as well as safe to use +from a signal handler. + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{unw\_init\_local(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_is_fpreg.man b/doc/unw_is_fpreg.man new file mode 100644 index 00000000..002138c2 --- /dev/null +++ b/doc/unw_is_fpreg.man @@ -0,0 +1,75 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:43:08 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_IS\\_FPREG" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_is_fpreg \-\- check if a register is a floating\-point register +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_is_fpreg(unw_regnum_t +reg); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_is_fpreg() +routine checks whether register number +reg +is a floating\-point register. +.PP +.SH RETURN VALUE + +.PP +The unw_is_fpreg() +routine returns a non\-zero value if +reg +is a floating\-point register. Otherwise, it returns a value +of 0. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_is_fpreg() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH SEE ALSO + +.PP +libunwind(3), +unw_get_reg(3), +unw_set_reg(3), +unw_get_fpreg(3), +unw_set_fpreg(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_is_fpreg.tex b/doc/unw_is_fpreg.tex new file mode 100644 index 00000000..5bc188e2 --- /dev/null +++ b/doc/unw_is_fpreg.tex @@ -0,0 +1,53 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_is\_fpreg}{David Mosberger-Tang}{Programming Library}{unw\_is\_fpreg} + + unw\_is\_fpreg -- check if a register is a floating-point register +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_is\_fpreg}(\Type{unw\_regnum\_t} \Var{reg});\\ + +\section{Description} + +The \Func{unw\_is\_fpreg}() routine checks whether register number +\Var{reg} is a floating-point register. + +\section{Return Value} + +The \Func{unw\_is\_fpreg}() routine returns a non-zero value if +\Var{reg} is a floating-point register. Otherwise, it returns a value +of 0. + +\section{Thread and Signal Safety} + +\Func{unw\_is\_fpreg}() is thread-safe as well as safe to use +from a signal handler. + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{unw\_get\_reg(3)}, +\SeeAlso{unw\_set\_reg(3)}, +\SeeAlso{unw\_get\_fpreg(3)}, +\SeeAlso{unw\_set\_fpreg(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_is_signal_frame.man b/doc/unw_is_signal_frame.man new file mode 100644 index 00000000..20a5b610 --- /dev/null +++ b/doc/unw_is_signal_frame.man @@ -0,0 +1,93 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:09:48 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_IS\\_SIGNAL\\_FRAME" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_is_signal_frame \-\- check if current frame is a signal frame +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_is_signal_frame(unw_cursor_t *cp); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_is_signal_frame() +routine returns a positive value +if the current frame identified by cp +is a signal frame, and a +value of 0 otherwise. For the purpose of this discussion, a signal +frame is a frame that was created in response to a potentially +asynchronous interruption. For UNIX and UNIX\-like platforms, such +frames are normally created by the kernel when delivering a signal. +In a kernel\-environment, a signal frame might, for example, correspond +to a frame created in response to a device interrupt. +.PP +Signal frames are somewhat unusual because the asynchronous nature of +the events that create them require storing the contents of registers +that are normally treated as scratch (``caller\-saved\&'') registers. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_is_signal_frame() +returns a +positive value if the current frame is a signal frame, or 0 if it is +not. Otherwise, a negative value of one of the error\-codes below is +returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_is_signal_frame() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH ERRORS + +.PP +.TP +UNW_ENOINFO + Libunwind +is unable to determine +whether or not the current frame is a signal frame. +.PP +.SH SEE ALSO + +.PP +libunwind(3), +unw_get_reg(3), +unw_set_reg(3), +unw_get_fpreg(3), +unw_set_fpreg(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_is_signal_frame.tex b/doc/unw_is_signal_frame.tex new file mode 100644 index 00000000..ee6fe8c7 --- /dev/null +++ b/doc/unw_is_signal_frame.tex @@ -0,0 +1,71 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\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 +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_is\_signal\_frame}(\Type{unw\_cursor\_t~*}\Var{cp});\\ + +\section{Description} + +The \Func{unw\_is\_signal\_frame}() routine returns a positive value +if the current frame identified by \Var{cp} is a signal frame, and a +value of 0 otherwise. For the purpose of this discussion, a signal +frame is a frame that was created in response to a potentially +asynchronous interruption. For UNIX and UNIX-like platforms, such +frames are normally created by the kernel when delivering a signal. +In a kernel-environment, a signal frame might, for example, correspond +to a frame created in response to a device interrupt. + +Signal frames are somewhat unusual because the asynchronous nature of +the events that create them require storing the contents of registers +that are normally treated as scratch (``caller-saved'') registers. + +\section{Return Value} + +On successful completion, \Func{unw\_is\_signal\_frame}() returns a +positive value if the current frame is a signal frame, or 0 if it is +not. Otherwise, a negative value of one of the error-codes below is +returned. + +\section{Thread and Signal Safety} + +\Func{unw\_is\_signal\_frame}() is thread-safe as well as safe to use +from a signal handler. + +\section{Errors} + +\begin{Description} +\item[\Const{UNW\_ENOINFO}] \Prog{Libunwind} is unable to determine + whether or not the current frame is a signal frame. +\end{Description} + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{unw\_get\_reg(3)}, +\SeeAlso{unw\_set\_reg(3)}, +\SeeAlso{unw\_get\_fpreg(3)}, +\SeeAlso{unw\_set\_fpreg(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_set_fpreg.man b/doc/unw_set_fpreg.man new file mode 100644 index 00000000..63c56c19 --- /dev/null +++ b/doc/unw_set_fpreg.man @@ -0,0 +1,122 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:35:32 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_SET\\_FPREG" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_set_fpreg \-\- set contents of floating\-point register +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_set_fpreg(unw_cursor_t *cp, +unw_regnum_t +reg, +unw_fpreg_t +val); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_set_fpreg() +routine sets the value of register +reg +in the stack frame identified by cursor cp +to the +value passed in val\&. +.PP +The register numbering is target\-dependent and described in separate +manual pages (e.g., libunwind\-ia64(3) for the IA\-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that cp +is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee\-saved\&'') registers and frame\-related registers (such as the +stack\-pointer). However, for signal frames (see +unw_is_signal_frame(3)), +it is usually possible to access +all registers. +.PP +Note that unw_set_fpreg() +can only write the contents of +floating\-point registers. See unw_set_reg(3) +for a way to +write registers which fit in a single word. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_set_fpreg() +returns 0. +Otherwise the negative value of one of the error\-codes below is +returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_set_fpreg() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH ERRORS + +.PP +.TP +UNW_EUNSPEC + An unspecified error occurred. +.TP +UNW_EBADREG + An attempt was made to write a register +that is either invalid or not accessible in the current frame. +.TP +UNW_EREADONLY + An attempt was made to write to a +read\-only register. +.PP +In addition, unw_set_fpreg() +may return any error returned by +the access_mem(), +access_reg(), +and +access_fpreg() +call\-backs (see +unw_create_addr_space(3)). +.PP +.SH SEE ALSO + +.PP +libunwind(3), +libunwind\-ia64(3), +unw_get_fpreg(3), +unw_is_fpreg(3), +unw_is_signal_frame(3), +unw_set_reg(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_set_fpreg.tex b/doc/unw_set_fpreg.tex new file mode 100644 index 00000000..6d685bf6 --- /dev/null +++ b/doc/unw_set_fpreg.tex @@ -0,0 +1,83 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_set\_fpreg}{David Mosberger-Tang}{Programming Library}{unw\_set\_fpreg} + + unw\_set\_fpreg -- set contents of floating-point register +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_set\_fpreg}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{unw\_regnum\_t} \Var{reg}, \Type{unw\_fpreg\_t} \Var{val});\\ + +\section{Description} + +The \Func{unw\_set\_fpreg}() routine sets the value of register +\Var{reg} in the stack frame identified by cursor \Var{cp} to the +value passed in \Var{val}. + +The register numbering is target-dependent and described in separate +manual pages (e.g., libunwind-ia64(3) for the IA-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that \Var{cp} is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee-saved'') registers and frame-related registers (such as the +stack-pointer). However, for signal frames (see +\Func{unw\_is\_signal\_frame}(3)), it is usually possible to access +all registers. + +Note that \Func{unw\_set\_fpreg}() can only write the contents of +floating-point registers. See \Func{unw\_set\_reg}(3) for a way to +write registers which fit in a single word. + +\section{Return Value} + +On successful completion, \Func{unw\_set\_fpreg}() returns 0. +Otherwise the negative value of one of the error-codes below is +returned. + +\section{Thread and Signal Safety} + +\Func{unw\_set\_fpreg}() is thread-safe as well as safe to use +from a signal handler. + +\section{Errors} + +\begin{Description} +\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. +\item[\Const{UNW\_EBADREG}] An attempt was made to write a register + that is either invalid or not accessible in the current frame. +\item[\Const{UNW\_EREADONLY}] An attempt was made to write to a + read-only register. +\end{Description} +In addition, \Func{unw\_set\_fpreg}() may return any error returned by +the \Func{access\_mem}(), \Func{access\_reg}(), and +\Func{access\_fpreg}() call-backs (see +\Func{unw\_create\_addr\_space}(3)). + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{libunwind-ia64(3)}, +\SeeAlso{unw\_get\_fpreg(3)}, +\SeeAlso{unw\_is\_fpreg(3)}, +\SeeAlso{unw\_is\_signal\_frame(3)}, +\SeeAlso{unw\_set\_reg(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_set_reg.man b/doc/unw_set_reg.man new file mode 100644 index 00000000..4fb049fb --- /dev/null +++ b/doc/unw_set_reg.man @@ -0,0 +1,122 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:20:56 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_SET\\_REG" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_set_reg \-\- set register contents +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_set_reg(unw_cursor_t *cp, +unw_regnum_t +reg, +unw_word_t +val); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_set_reg() +routine sets the value of register +reg +in the stack frame identified by cursor cp +to the +value passed in val\&. +.PP +The register numbering is target\-dependent and described in separate +manual pages (e.g., libunwind\-ia64(3) for the IA\-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that cp +is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee\-saved\&'') registers and frame\-related registers (such as the +stack\-pointer). However, for signal frames (see +unw_is_signal_frame(3)), +it is usually possible to access +all registers. +.PP +Note that unw_set_reg() +can only write the contents of +registers whose values fit in a single word. See +unw_set_fpreg(3) +for a way to write registers which do not +fit this constraint. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_set_reg() +returns 0. +Otherwise the negative value of one of the error\-codes below is +returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_set_reg() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH ERRORS + +.PP +.TP +UNW_EUNSPEC + An unspecified error occurred. +.TP +UNW_EBADREG + An attempt was made to write a register +that is either invalid or not accessible in the current frame. +.TP +UNW_EREADONLY + An attempt was made to write to a +read\-only register. +.PP +In addition, unw_set_reg() +may return any error returned by +the access_mem(), +access_reg(), +and +access_fpreg() +call\-backs (see +unw_create_addr_space(3)). +.PP +.SH SEE ALSO + +.PP +libunwind(3), +libunwind\-ia64(3), +unw_get_reg(3), +unw_is_signal_frame(3), +unw_set_fpreg(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_set_reg.tex b/doc/unw_set_reg.tex new file mode 100644 index 00000000..247a6727 --- /dev/null +++ b/doc/unw_set_reg.tex @@ -0,0 +1,83 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_set\_reg}{David Mosberger-Tang}{Programming Library}{unw\_set\_reg} + + unw\_set\_reg -- set register contents +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_set\_reg}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{unw\_regnum\_t} \Var{reg}, \Type{unw\_word\_t} \Var{val});\\ + +\section{Description} + +The \Func{unw\_set\_reg}() routine sets the value of register +\Var{reg} in the stack frame identified by cursor \Var{cp} to the +value passed in \Var{val}. + +The register numbering is target-dependent and described in separate +manual pages (e.g., libunwind-ia64(3) for the IA-64 target). +Furthermore, the exact set of accessible registers may depend on the +type of frame that \Var{cp} is referring to. For ordinary stack +frames, it is normally possible to access only the preserved +(``callee-saved'') registers and frame-related registers (such as the +stack-pointer). However, for signal frames (see +\Func{unw\_is\_signal\_frame}(3)), it is usually possible to access +all registers. + +Note that \Func{unw\_set\_reg}() can only write the contents of +registers whose values fit in a single word. See +\Func{unw\_set\_fpreg}(3) for a way to write registers which do not +fit this constraint. + +\section{Return Value} + +On successful completion, \Func{unw\_set\_reg}() returns 0. +Otherwise the negative value of one of the error-codes below is +returned. + +\section{Thread and Signal Safety} + +\Func{unw\_set\_reg}() is thread-safe as well as safe to use +from a signal handler. + +\section{Errors} + +\begin{Description} +\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. +\item[\Const{UNW\_EBADREG}] An attempt was made to write a register + that is either invalid or not accessible in the current frame. +\item[\Const{UNW\_EREADONLY}] An attempt was made to write to a + read-only register. +\end{Description} +In addition, \Func{unw\_set\_reg}() may return any error returned by +the \Func{access\_mem}(), \Func{access\_reg}(), and +\Func{access\_fpreg}() call-backs (see +\Func{unw\_create\_addr\_space}(3)). + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{libunwind-ia64(3)}, +\SeeAlso{unw\_get\_reg(3)}, +\SeeAlso{unw\_is\_signal\_frame(3)}, +\SeeAlso{unw\_set\_fpreg(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document} diff --git a/doc/unw_step.man b/doc/unw_step.man new file mode 100644 index 00000000..6bd3d396 --- /dev/null +++ b/doc/unw_step.man @@ -0,0 +1,110 @@ +'\" t +.\" Manual page created with latex2man on Wed Mar 19 23:35:32 PST 2003 +.\" NOTE: This file is generated, DO NOT EDIT. +.de Vb +.ft CW +.nf +.. +.de Ve +.ft R + +.fi +.. +.TH "UNW\\_STEP" "3" "19 March 2003" "Programming Library " "Programming Library " +.SH NAME + +.PP +unw_step \-\- advance to next stack frame +.PP +.SH SYNOPSIS + +.PP +#include +.br +.PP +int +unw_step(unw_cursor_t *cp); +.br +.PP +.SH DESCRIPTION + +.PP +The unw_step() +routine advances the unwind cursor cp +to +the next older, less deeply nested stack frame. +.PP +.SH RETURN VALUE + +.PP +On successful completion, unw_step() +returns a positive value +if there are more stack frames in the call\-chain, or 0 if the returned +stack frame is the last frame in the chain. On error, the negative +value of one of the error\-codes below is returned. +.PP +.SH THREAD AND SIGNAL SAFETY + +.PP +unw_step() +is thread\-safe as well as safe to use +from a signal handler. +.PP +.SH ERRORS + +.PP +.TP +UNW_EUNSPEC + An unspecified error occurred. +.TP +UNW_ENOINFO + Libunwind +was unable to locate the +unwind\-info needed to complete the operation. +.TP +UNW_EBADVERSION + The unwind\-info needed to complete the +operation has a version or a format that is not understood by +libunwind\&. +.TP +UNW_EINVALIDIP + The instruction\-pointer +(``program\-counter\&'') of the next stack frame is invalid (e.g., not +properly aligned). +.TP +UNW_EBADFRAME + The next stack frame is invalid. +.TP +UNW_ESTOPUNWIND + Returned if a call to +find_proc_info() +returned \-UNW_ESTOPUNWIND\&. +.PP +In addition, unw_step() +may return any error returned by the +find_proc_info(), +get_dyn_info_list_addr(), +access_mem(), +access_reg(), +or access_fpreg() +call\-backs (see unw_create_addr_space(3)). +.PP +.SH SEE ALSO + +.PP +libunwind(3), +unw_create_addr_space(3) +.PP +.SH AUTHOR + +.PP +David Mosberger\-Tang +.br +Hewlett\-Packard Labs +.br +Palo\-Alto, CA 94304 +.br +Email: \fBdavidm@hpl.hp.com\fP +.br +WWW: \fBhttp://www.hpl.hp.com/research/linux/libunwind/\fP\&. +.\" NOTE: This file is generated, DO NOT EDIT. diff --git a/doc/unw_step.tex b/doc/unw_step.tex new file mode 100644 index 00000000..1103472c --- /dev/null +++ b/doc/unw_step.tex @@ -0,0 +1,72 @@ +\documentclass{article} +\usepackage[fancyhdr,pdf]{latex2man} + +\input{common.tex} + +\begin{document} + +\begin{Name}{3}{unw\_step}{David Mosberger-Tang}{Programming Library}{unw\_step} + + unw\_step -- advance to next stack frame +\end{Name} + +\section{Synopsis} + +\File{\#include $<$libunwind.h$>$}\\ + +\Type{int} \Func{unw\_step}(\Type{unw\_cursor\_t~*}\Var{cp});\\ + +\section{Description} + +The \Func{unw\_step}() routine advances the unwind cursor \Var{cp} to +the next older, less deeply nested stack frame. + +\section{Return Value} + +On successful completion, \Func{unw\_step}() returns a positive value +if there are more stack frames in the call-chain, or 0 if the returned +stack frame is the last frame in the chain. On error, the negative +value of one of the error-codes below is returned. + +\section{Thread and Signal Safety} + +\Func{unw\_step}() is thread-safe as well as safe to use +from a signal handler. + +\section{Errors} + +\begin{Description} +\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. +\item[\Const{UNW\_ENOINFO}] \Prog{Libunwind} was unable to locate the + unwind-info needed to complete the operation. +\item[\Const{UNW\_EBADVERSION}] The unwind-info needed to complete the + operation has a version or a format that is not understood by + \Prog{libunwind}. +\item[\Const{UNW\_EINVALIDIP}] The instruction-pointer + (``program-counter'') of the next stack frame is invalid (e.g., not + properly aligned). +\item[\Const{UNW\_EBADFRAME}] The next stack frame is invalid. +\item[\Const{UNW\_ESTOPUNWIND}] Returned if a call to + \Func{find\_proc\_info}() returned -\Const{UNW\_ESTOPUNWIND}. +\end{Description} +In addition, \Func{unw\_step}() may return any error returned by the +\Func{find\_proc\_info}(), \Func{get\_dyn\_info\_list\_addr}(), +\Func{access\_mem}(), \Func{access\_reg}(), or \Func{access\_fpreg}() +call-backs (see \Func{unw\_create\_addr\_space}(3)). + +\section{See Also} + +\SeeAlso{libunwind(3)}, +\SeeAlso{unw\_create\_addr\_space(3)} + +\section{Author} + +\noindent +David Mosberger-Tang\\ +Hewlett-Packard Labs\\ +Palo-Alto, CA 94304\\ +Email: \Email{davidm@hpl.hp.com}\\ +WWW: \URL{http://www.hpl.hp.com/research/linux/libunwind/}. +\LatexManEnd + +\end{document}