\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\\
Email: \Email{dmosberger@gmail.com}\\
WWW: \URL{http://www.nongnu.org/libunwind/}.
\LatexManEnd

\end{document}
