Patch to work around lexgrog bug
(Logical change 1.73)
diff --git a/doc/libunwind-ia64.tex b/doc/libunwind-ia64.tex
index 3ab29a3..b3dd45d 100644
--- a/doc/libunwind-ia64.tex
+++ b/doc/libunwind-ia64.tex
@@ -5,8 +5,7 @@
\begin{document}
-\begin{Name}{3}{libunwind-ia64}{David Mosberger-Tang}{Programming Library}{IA-64-specific support in libunwind}
- libunwind-ia64 -- IA-64-specific support in libunwind
+\begin{Name}{3}{libunwind-ia64}{David Mosberger-Tang}{Programming Library}{IA-64-specific support in libunwind}libunwind-ia64 -- IA-64-specific support in libunwind
\end{Name}
diff --git a/doc/libunwind-ptrace.tex b/doc/libunwind-ptrace.tex
index 00c5dfa..c788140 100644
--- a/doc/libunwind-ptrace.tex
+++ b/doc/libunwind-ptrace.tex
@@ -5,8 +5,7 @@
\begin{document}
-\begin{Name}{3}{libunwind-ptrace}{David Mosberger-Tang}{Programming Library}{ptrace() support in libunwind}
- libunwind-ptrace -- ptrace() support in libunwind
+\begin{Name}{3}{libunwind-ptrace}{David Mosberger-Tang}{Programming Library}{ptrace() support in libunwind}libunwind-ptrace -- ptrace() support in libunwind
\end{Name}
\section{Synopsis}
diff --git a/doc/libunwind-setjmp.tex b/doc/libunwind-setjmp.tex
index efaf957..c5f6af7 100644
--- a/doc/libunwind-setjmp.tex
+++ b/doc/libunwind-setjmp.tex
@@ -5,8 +5,7 @@
\begin{document}
-\begin{Name}{3}{libunwind-setjmp}{David Mosberger-Tang}{Programming Library}{libunwind-based non-local gotos}
- libunwind-setjmp -- libunwind-based non-local gotos
+\begin{Name}{3}{libunwind-setjmp}{David Mosberger-Tang}{Programming Library}{libunwind-based non-local gotos}libunwind-setjmp -- libunwind-based non-local gotos
\end{Name}
\section{Synopsis}
diff --git a/doc/libunwind.tex b/doc/libunwind.tex
index 16fba87..dd04ed5 100644
--- a/doc/libunwind.tex
+++ b/doc/libunwind.tex
@@ -5,9 +5,7 @@
\begin{document}
-\begin{Name}{3}{libunwind}{David Mosberger-Tang}{Programming Library}{Introduction to libunwind}
-
- libunwind -- a (mostly) platform-independent unwind API
+\begin{Name}{3}{libunwind}{David Mosberger-Tang}{Programming Library}{Introduction to libunwind}libunwind -- a (mostly) platform-independent unwind API
\end{Name}
\section{Synopsis}
diff --git a/doc/unw_create_addr_space.tex b/doc/unw_create_addr_space.tex
index b12d9e3..60a8217 100644
--- a/doc/unw_create_addr_space.tex
+++ b/doc/unw_create_addr_space.tex
@@ -5,9 +5,7 @@
\begin{document}
-\begin{Name}{3}{unw\_create\_addr\_space}{David Mosberger-Tang}{Programming Library}{unw\_create\_addr\_space}
-
- unw\_create\_addr\_space -- create address space for remote unwinding
+\begin{Name}{3}{unw\_create\_addr\_space}{David Mosberger-Tang}{Programming Library}{unw\_create\_addr\_space}unw\_create\_addr\_space -- create address space for remote unwinding
\end{Name}
\section{Synopsis}
diff --git a/doc/unw_destroy_addr_space.tex b/doc/unw_destroy_addr_space.tex
index ad49ab7..2b660ef 100644
--- a/doc/unw_destroy_addr_space.tex
+++ b/doc/unw_destroy_addr_space.tex
@@ -5,9 +5,7 @@
\begin{document}
-\begin{Name}{3}{unw\_destroy\_addr\_space}{David Mosberger-Tang}{Programming Library}{unw\_destroy\_addr\_space}
-
- unw\_destroy\_addr\_space -- destroy unwind address space
+\begin{Name}{3}{unw\_destroy\_addr\_space}{David Mosberger-Tang}{Programming Library}{unw\_destroy\_addr\_space}unw\_destroy\_addr\_space -- destroy unwind address space
\end{Name}
\section{Synopsis}
diff --git a/doc/unw_flush_cache.tex b/doc/unw_flush_cache.tex
index e69de29..818488a 100644
--- a/doc/unw_flush_cache.tex
+++ b/doc/unw_flush_cache.tex
@@ -0,0 +1,59 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_flush\_cache}{David Mosberger-Tang}{Programming Library}{unw\_flush\_cache}unw\_flush\_cache -- flush cached info
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{void} \Func{unw\_flush\_cache}(\Type{unw\_addr\_space\_t} \Var{as}, \Type{unw\_word\_t} \Var{lo}, \Type{unw\_word\_t} \Var{hi});\\
+
+\section{Description}
+
+The \Func{unw\_flush\_cache}() routine flushes all cached info as it
+relates to address-range \Var{lo} to \Var{hi} (non-inclusive) in the
+target address-space \Var{as}. In addition, all info cached for
+address-space \Var{as} that is not tied to a particular code-range is
+also flushed. For example, the address of the dynamic registration
+list is not tied to a code-range and its cached value (if any) is
+flushed by a call to this routine. The address range specified by
+\Var{lo} and \Var{hi} should be understood as a hint:
+\Func{unw\_flush\_cache}() may flush more information than requested,
+but \emph{never} less. In other words, \Func{unw\_flush\_cache}() may
+overflush, but not underflush.
+
+As a special case, if arguments \Var{lo} and \Var{hi} are both 0, all
+information cached on behalf of address space \Var{as} is flushed.
+
+\section{Return Value}
+
+The \Func{unw\_flush\_cache}() routine cannot fail and does not
+return a value.
+
+\section{Thread and Signal Safety}
+
+The \Func{unw\_flush\_cache}() routine is thread-safe as well as safe to
+use from a signal handler.
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)},
+\SeeAlso{unw\_set\_caching\_policy(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_accessors.tex b/doc/unw_get_accessors.tex
index e69de29..865c6fe 100644
--- a/doc/unw_get_accessors.tex
+++ b/doc/unw_get_accessors.tex
@@ -0,0 +1,57 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_get\_accessors}{David Mosberger-Tang}{Programming Library}{unw\_get\_accessors}unw\_get\_accessors -- get pointer to accessor call-backs
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{unw\_accessors\_t~*}\Func{unw\_get\_accessors}(\Type{unw\_addr\_space\_t~}\Var{as});\\
+
+\section{Description}
+
+The \Func{unw\_get\_accessors}() routine returns a pointer to a
+\Type{unw\_accessors\_t} structure, which contains the call-back
+routines that were specified when address space \Var{as} was created
+(see \Func{unw\_create\_addr\_space}(3)). The returned pointer is
+guaranteed to remain valid until address space \Var{as} is destroyed
+by a call to \Func{unw\_destroy\_addr\_space}(3).
+
+Note that \Func{unw\_get\_accessors}() can be used to retrieve the
+call-back routines for the local address space
+\Var{unw\_local\_addr\_space}.
+
+\section{Return Value}
+
+The \Func{unw\_get\_accessors}() routine cannot fail and always
+returns a valid (non-\Const{NULL}) pointer to an
+\Type{unw\_accessors\_t} structure.
+
+\section{Thread and Signal Safety}
+
+The \Func{unw\_get\_accessors}() routine is thread-safe as well as
+safe to use from a signal handler.
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)},
+\SeeAlso{unw\_create\_addr\_space(3)},
+\SeeAlso{unw\_destroy\_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}
diff --git a/doc/unw_get_proc_info.tex b/doc/unw_get_proc_info.tex
index e69de29..e67980f 100644
--- a/doc/unw_get_proc_info.tex
+++ b/doc/unw_get_proc_info.tex
@@ -0,0 +1,124 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_get\_proc\_info}{David Mosberger-Tang}{Programming Library}{unw\_get\_proc\_info}unw\_get\_proc\_info -- get info on current procedure
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{int} \Func{unw\_get\_proc\_info}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{unw\_proc\_info\_t~*}\Var{pip});\\
+
+\section{Description}
+
+The \Func{unw\_get\_proc\_info}() routine returns auxiliary
+information about the procedure that created the stack frame
+identified by argument \Var{cp}. The \Var{pip} argument is a pointer
+to a structure of type \Type{unw\_proc\_info\_t} which is used to
+return the information. The \Type{unw\_proc\_info\_t} has the
+following members:
+\begin{description}
+\item[\Type{unw\_word\_t} \Var{start\_ip}] The address of the first
+ instruction of the procedure. If this address cannot be determined
+ (e.g., due to lack of unwind information), the \Var{start\_ip}
+ member is cleared to 0. \\
+\item[\Type{unw\_word\_t} \Var{end\_ip}] The address of the first
+ instruction \emph{beyond} the end of the procedure. If this address
+ cannot be determined (e.g., due to lack of unwind information),
+ the \Var{end\_ip} member is cleared to 0. \\
+\item[\Type{unw\_word\_t} \Var{lsda}] The address of the
+ language-specific data-area (LSDA). This area normally contains
+ language-specific information needed during exception handling. If
+ the procedure has no such area, this member is cleared to 0. \\
+\item[\Type{unw\_word\_t} \Var{handler}] The address of the exception
+ handler routine. This is sometimes called the \emph{personality}
+ routine. If the procedure does not define
+ a personality routine, the \Var{handler} member is cleared to 0. \\
+\item[\Type{unw\_word\_t} \Var{gp}] The global-pointer of the
+ procedure. On platforms that do not use a global pointer, this
+ member may contain an undefined value. On all other platforms, it
+ must be set either to the correct global-pointer value of the
+ procedure or to 0 if the proper global-pointer cannot be
+ obtained for some reason. \\
+\item[\Type{unw\_word\_t} \Var{flags}] A set of flags. There are
+ currently no target-independent flags. For the IA-64 target, the
+ flag \Const{UNW_PI_FLAG_IA64_RBS_SWITCH} is set if the
+ procedure may switch the register-backing store.\\
+\item[\Type{int} \Var{format}] The format of the unwind-info for this
+ procedure. If the unwind-info consists of dynamic procedure info,
+ \Var{format} is equal to \Const{UNW\_INFO\_FORMAT\_DYNAMIC}. If the
+ unwind-info consists of a (target-specific) unwind table, it is
+ equal to to \Const{UNW\_INFO\_FORMAT\_TABLE}. All other values are
+ reserved for future use by \Prog{libunwind}. This member exists
+ for use by the \Func{find\_proc\_info}() call-back (see
+ \Func{unw\_create\_addr\_space}(3)). The
+ \Func{unw\_get\_proc\_info}() routine
+ may return an undefined value in this member. \\
+\item[\Type{int} \Var{unwind\_info\_size}] The size of the unwind-info
+ in bytes. This member exists for use by the
+ \Func{find\_proc\_info}() call-back (see
+ \Func{unw\_create\_addr\_space}(3)). The
+ \Func{unw\_get\_proc\_info}() routine
+ may return an undefined value in this member.\\
+\item[\Type{void~*}\Var{unwind\_info}] The pointer to the unwind-info.
+ If no unwind info is available, this member must be set to
+ \Const{NULL}. This member exists for use by the
+ \Func{find\_proc\_info}() call-back (see
+ \Func{unw\_create\_addr\_space}(3)). The
+ \Func{unw\_get\_proc\_info}() routine
+ may return an undefined value in this member.\\
+\end{description}
+Note that for the purposes of \Prog{libunwind}, the code of a
+procedure is assumed to occupy a single, contiguous range of
+addresses. For this reason, it is alwas possible to describe the
+extent of a procedure with the \Var{start\_ip} and \Var{end\_ip}
+members. If a single function/routine is split into multiple,
+discontiguous pieces, \Prog{libunwind} will treat each piece as a
+separate procedure.
+
+\section{Return Value}
+
+On successful completion, \Func{unw\_get\_proc\_info}() returns 0.
+Otherwise the negative value of one of the error-codes below is
+returned.
+
+\section{Thread and Signal Safety}
+
+\Func{unw\_get\_proc\_info}() 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
+ unwind-info for the procedure.
+\item[\Const{UNW\_EBADVERSION}] The unwind-info for the procedure has
+ version or format that is not understood by \Prog{libunwind}.
+\end{Description}
+In addition, \Func{unw\_get\_proc\_info}() may return any error
+returned by the \Func{access\_mem}() call-back (see
+\Func{unw\_create\_addr\_space}(3)).
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)},
+\SeeAlso{unw\_create\_addr\_space(3)},
+\SeeAlso{unw\_get\_proc\_name(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_proc_name.tex b/doc/unw_get_proc_name.tex
index e69de29..96202a7 100644
--- a/doc/unw_get_proc_name.tex
+++ b/doc/unw_get_proc_name.tex
@@ -0,0 +1,83 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_get\_proc\_name}{David Mosberger-Tang}{Programming Library}{unw\_get\_proc\_name}unw\_get\_proc\_name -- get name of current procedure
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{int} \Func{unw\_get\_proc\_name}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{char~*}\Var{bufp}, \Type{size\_t} \Var{len}, \Type{unw\_word\_t~*}\Var{offp});\\
+
+\section{Description}
+
+The \Func{unw\_get\_proc\_name}() routine returns the name of the
+procedure that created the stack frame identified by argument
+\Var{cp}. The \Var{bufp} argument is a pointer to a character buffer
+that is at least \Var{len} bytes long. This buffer is used to return
+the name of the procedure. The \Var{offp} argument is a pointer to a
+word that is used to return the byte-offset of the instruction-pointer
+saved in the stack frame identified by \Var{cp}, relative to the start
+of the procedure. For example, if procedure \Func{foo}() starts at
+address 0x40003000, then invoking \Func{unw\_get\_proc\_name}() on a
+stack frame with an instruction-pointer value of 0x40003080 would
+return a value of 0x80 in the word pointed to by \Var{offp} (assuming
+the procedure is at least 0x80 bytes long).
+
+Note that on some platforms there is no reliable way to distinguish
+between procedure names and ordinary labels. Furthermore, if symbol
+information has been stripped from a program, procedure names may be
+completely unavailable or may be limited to those exported via a
+dynamic symbol table. In such cases, \Func{unw\_get\_proc\_name}()
+may return the name of a label or a preceeding (nearby) procedure.
+However, the offset returned through \Var{offp} is always relative to
+the returned name, which ensures that the value (address) of the
+returned name plus the returned offset will always be equal to the
+instruction-pointer of the stack frame identified by \Var{cp}.
+
+\section{Return Value}
+
+On successful completion, \Func{unw\_get\_proc\_name}() returns 0.
+Otherwise the negative value of one of the error-codes below is
+returned.
+
+\section{Thread and Signal Safety}
+
+\Func{unw\_get\_proc\_name}() is thread-safe but \emph{not} 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 determine
+ the name of the procedure.
+\item[\Const{UNW\_ENOMME}] The procedure name is too long to fit
+ in the buffer provided. A truncated version of the name has been
+ returned.
+\end{Description}
+In addition, \Func{unw\_get\_proc\_name}() may return any error
+returned by the \Func{access\_mem}() call-back (see
+\Func{unw\_create\_addr\_space}(3)).
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)},
+\SeeAlso{unw\_get\_proc\_info(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_init_local.tex b/doc/unw_init_local.tex
index e69de29..d32821e 100644
--- a/doc/unw_init_local.tex
+++ b/doc/unw_init_local.tex
@@ -0,0 +1,83 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_init\_local}{David Mosberger-Tang}{Programming Library}{unw\_init\_local}unw\_init\_local -- initialize cursor for local unwinding
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{int} \Func{unw\_init\_local}(\Type{unw\_cursor\_t~*}\Var{c}, \Type{unw\_context\_t~*}\Var{ctxt});\\
+
+\section{Description}
+
+The \Func{unw\_init\_local}() routine initializes the unwind cursor
+pointed to by \Var{c} with the machine-state in the context structure
+pointed to by \Var{ctxt}. As such, the machine-state pointed to by
+\Var{ctxt} identifies the initial stack frame at which unwinding
+starts. The machine-state must remain valid for the duration for
+which the cursor \Var{c} is in use.
+
+The \Func{unw\_init\_local}() routine can be used only for unwinding in
+the address space of the current process (i.e., for local unwinding).
+For all other cases, \Func{unw\_init\_remote}() must be used instead.
+From a behavioral point of view, the call:
+
+\begin{verbatim}
+ ret = unw_init_local(&cursor, &ucontext);
+\end{verbatim}
+is equivalent to:
+
+\begin{verbatim}
+ ret = unw_init_remote(&cursor, unw_local_addr_space,
+ &ucontext);
+\end{verbatim}
+However, unwind performance may be better when using
+\Func{unw\_init\_local}(). Also, \Func{unw\_init\_local}() is
+available even when \Const{UNW\_LOCAL\_ONLY} has been defined before
+including \File{$<$libunwind.h$>$}, whereas \Func{unw\_init\_remote}()
+is not.
+
+\section{Return Value}
+
+On successful completion, \Func{unw\_init\_local}() returns 0.
+Otherwise the negative value of one of the error-codes below is
+returned.
+
+\section{Thread and Signal Safety}
+
+\Func{unw\_init\_local}() is thread-safe as well as safe to use from a
+signal handler.
+
+\section{Errors}
+
+\begin{Description}
+\item[\Const{UNW\_EINVAL}] \Func{unw\_init\_local}() was called in a
+ version of \Prog{libunwind} which supports remote unwinding only
+ (this normally happens when calling \Func{unw\_init\_local}() for a
+ cross-platform version of \Prog{libunwind}).
+\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred.
+\item[\Const{UNW\_EBADREG}] A register needed by \Func{unw\_init\_local}()
+ wasn't accessible.
+\end{Description}
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)}, \SeeAlso{unw\_init\_remote(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_init_remote.tex b/doc/unw_init_remote.tex
index e69de29..d41b9b8 100644
--- a/doc/unw_init_remote.tex
+++ b/doc/unw_init_remote.tex
@@ -0,0 +1,80 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_init\_remote}{David Mosberger-Tang}{Programming Library}{unw\_init\_remote}unw\_init\_remote -- initialize cursor for remote unwinding
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{int} \Func{unw\_init\_remote}(\Type{unw\_cursor\_t~*}\Var{c}, \Type{unw\_addr\_space\_t~}\Var{as}, \Type{void~*}\Var{arg});\\
+
+\section{Description}
+
+The \Func{unw\_init\_remote}() routine initializes the unwind cursor
+pointed to by \Var{c} for unwinding in the address space identified by
+\Var{as}. The \Var{as} argument can either be set to
+\Var{unw\_local\_addr\_space} (local address space) or to an arbitrary
+address space created with \Func{unw\_create\_addr\_space}().
+
+The \Var{arg} void-pointer tells the address space exactly what entity
+should be unwound. For example, if \Var{unw\_local\_addr\_space} is
+passed in \Var{as}, then \Var{arg} needs to be a pointer to a context
+structure containing the machine-state of the initial stack frame.
+However, other address-spaces may instead expect a process-id, a
+thread-id, or a pointer to an arbitrary structure which identifies the
+stack-frame chain to be unwound. In other words, the interpretation
+of \Var{arg} is entirely dependent on the address-space in use;
+\Prog{libunwind} never interprets the argument in any way on its own.
+
+Note that \Func{unw\_init\_remote}() can be used to initiate unwinding
+in \emph{any} process, including the local process in which the
+unwinder itself is running. However, for local unwinding, it is
+generally preferable to use \Func{unw\_init\_local}() instead, because
+it is easier to use and because it may perform better.
+
+\section{Return Value}
+
+On successful completion, \Func{unw\_init\_remote}() returns 0.
+Otherwise the negative value of one of the error-codes below is
+returned.
+
+\section{Thread and Signal Safety}
+
+\Func{unw\_init\_remote}() is thread-safe as well as safe to use from a
+signal handler.
+
+\section{Errors}
+
+\begin{Description}
+\item[\Const{UNW\_EINVAL}] \Func{unw\_init\_remote}() was called in a
+ version of \Prog{libunwind} which supports local unwinding only
+ (this normally happens when defining \Const{UNW\_LOCAL\_ONLY} before
+ including \File{$<$libunwind.h$>$} and then calling
+ \Func{unw\_init\_remote}()).
+\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred.
+\item[\Const{UNW\_EBADREG}] A register needed by \Func{unw\_init\_remote}()
+ wasn't accessible.
+\end{Description}
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)}, \SeeAlso{unw\_create\_addr\_space(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_regname.tex b/doc/unw_regname.tex
index e69de29..2563556 100644
--- a/doc/unw_regname.tex
+++ b/doc/unw_regname.tex
@@ -0,0 +1,49 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_regname}{David Mosberger-Tang}{Programming Library}{unw\_regname}unw\_regname -- get register name
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{const char~*}\Func{unw\_regname}(\Type{unw\_regnum\_t} \Var{regnum});\\
+
+\section{Description}
+
+The \Func{unw\_regname}() routine returns a printable name for
+register \Var{regnum}. If \Var{regnum} is an invalid or otherwise
+unrecognized register number, a string consisting of three question
+marks is returned. The returned string is statically allocated and
+therefore guaranteed to remain valid until the application terminates.
+
+\section{Return Value}
+
+The \Func{unw\_regname}() routine cannot fail and always returns a
+valid (non-\Const{NULL}) string.
+
+\section{Thread and Signal Safety}
+
+The \Func{unw\_regname}() routine is thread-safe as well as safe to
+use from a signal handler.
+
+\section{See Also}
+
+\SeeAlso{libunwind(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_resume.tex b/doc/unw_resume.tex
index fdb04be..68d740e 100644
--- a/doc/unw_resume.tex
+++ b/doc/unw_resume.tex
@@ -5,9 +5,7 @@
\begin{document}
-\begin{Name}{3}{unw\_resume}{David Mosberger-Tang}{Programming Library}{unw\_resume}
-
- unw\_resume -- resume execution in a particular stack frame
+\begin{Name}{3}{unw\_resume}{David Mosberger-Tang}{Programming Library}{unw\_resume}unw\_resume -- resume execution in a particular stack frame
\end{Name}
\section{Synopsis}
diff --git a/doc/unw_set_caching_policy.tex b/doc/unw_set_caching_policy.tex
index e69de29..0a0d0a7 100644
--- a/doc/unw_set_caching_policy.tex
+++ b/doc/unw_set_caching_policy.tex
@@ -0,0 +1,82 @@
+\documentclass{article}
+\usepackage[fancyhdr,pdf]{latex2man}
+
+\input{common.tex}
+
+\begin{document}
+
+\begin{Name}{3}{unw\_set\_caching\_policy}{David Mosberger-Tang}{Programming Library}{unw\_set\_caching\_policy}unw\_set\_caching\_policy -- set unwind caching policy
+\end{Name}
+
+\section{Synopsis}
+
+\File{\#include $<$libunwind.h$>$}\\
+
+\Type{int} \Func{unw\_set\_caching\_policy}(\Type{unw\_addr\_space\_t} \Var{as}, \Type{unw\_caching_policy\_t} \Var{policy});\\
+
+\section{Description}
+
+The \Func{unw\_set\_caching\_policy}() routine sets the caching policy
+of address space \Var{as} to the policy specified by argument
+\Var{policy}. The \Var{policy} argument can take one of three
+possible values:
+\begin{description}
+\item[\Const{UNW\_CACHE\_NONE}] Turns off caching completely. This
+ also implicitly flushes the contents of all caches as if
+ \Func{unw\_flush\_cache}() had been called.
+\item[\Const{UNW\_CACHE\_GLOBAL}] Enables caching using a global cache
+ that is shared by all threads. If global caching is unavailable or
+ unsupported, \Prog{libunwind} may fall back on using a per-thread
+ cache, as if \Const{UNW\_CACHE\_PER\_THREAD} had been specified.
+\item[\Const{UNW\_CACHE\_PER\_THREAD}] Enables caching using
+ thread-local caches. If a thread-local caching are unavailable or
+ unsupported, \Prog{libunwind} may fall back on using a global cache,
+ as if \Const{UNW\_CACHE\_GLOBAL} had been specified.
+\end{description}
+
+If caching is enabled, an application must be prepared to make
+appropriate calls to \Func{unw\_flush\_cache}() whenever the target
+changes in a way that could affect the validity of cached information.
+For example, after unloading (removing) a shared library,
+\Func{unw\_flush\_cache}() would have to be called (at least) for the
+address-range that was covered by the shared library.
+
+For address spaces created via \Func{unw\_create\_addr\_space}(3),
+caching is turned off by default. For the local address space
+\Func{unw\_local\_addr\_space}, caching is turned on by default.
+
+\section{Return Value}
+
+On successful completion, \Func{unw\_set\_caching\_policy}() returns 0.
+Otherwise the negative value of one of the error-codes below is
+returned.
+
+\section{Thread and Signal Safety}
+
+\Func{unw\_set\_caching\_policy}() is thread-safe but \emph{not} safe
+to use from a signal handler.
+
+\section{Errors}
+
+\begin{Description}
+\item[\Const{UNW\_ENOMEM}] The desired caching policy could not be
+ established because the application is out of memory.
+\end{Description}
+
+\section{See Also}
+
+\SeeAlso{libunwind(3)},
+\SeeAlso{unw\_create\_addr\_space(3)},
+\SeeAlso{unw\_flush\_cache(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}