\hypertarget{group__failpoint}{}\doxysection{fail(9) Facility}
\label{group__failpoint}\index{fail(9) Facility@{fail(9) Facility}}
Collaboration diagram for fail(9) Facility\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d38/group__failpoint}
\end{center}
\end{figure}
\doxysubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__failpoint__private}{Private fail(9) Implementation functions}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{group__failpoint_gac62707106b7a50c37809ff2cbc4c94ca}{fail\+\_\+point\+\_\+init}} (struct fail\+\_\+point $\ast$fp, const char $\ast$fmt,...)
\item 
void \mbox{\hyperlink{group__failpoint_gaf2374711f72dd5a21d36805f84d6769c}{fail\+\_\+point\+\_\+destroy}} (struct fail\+\_\+point $\ast$fp)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Failpoints allow for injecting fake errors into running code on the fly, without modifying code or recompiling with flags. Failpoints are always present, and are very efficient when disabled. Failpoints are described in man fail(9). 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__failpoint_gaf2374711f72dd5a21d36805f84d6769c}\label{group__failpoint_gaf2374711f72dd5a21d36805f84d6769c}} 
\index{fail(9) Facility@{fail(9) Facility}!fail\_point\_destroy@{fail\_point\_destroy}}
\index{fail\_point\_destroy@{fail\_point\_destroy}!fail(9) Facility@{fail(9) Facility}}
\doxysubsubsection{\texorpdfstring{fail\_point\_destroy()}{fail\_point\_destroy()}}
{\footnotesize\ttfamily void fail\+\_\+point\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct fail\+\_\+point $\ast$}]{fp }\end{DoxyParamCaption})}

Free the resources held by a fail\+\_\+point, and wake any paused threads. Thou shalt not allow threads to hit this fail point after you enter this function, nor shall you call this multiple times for a given fp. 

Definition at line \mbox{\hyperlink{kern__fail_8c_source_l00519}{519}} of file \mbox{\hyperlink{kern__fail_8c_source}{kern\+\_\+fail.\+c}}.



References \mbox{\hyperlink{kern__fail_8c_source_l00392}{fail\+\_\+point\+\_\+drain()}}, \mbox{\hyperlink{kern__fail_8c_source_l00359}{fail\+\_\+point\+\_\+garbage\+\_\+collect()}}, \mbox{\hyperlink{kern__fail_8c_source_l00083}{fp\+\_\+free}}, and \mbox{\hyperlink{kern__fail_8c_source_l00122}{sx\+\_\+fp\+\_\+set}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d38/group__failpoint_gaf2374711f72dd5a21d36805f84d6769c_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__failpoint_gac62707106b7a50c37809ff2cbc4c94ca}\label{group__failpoint_gac62707106b7a50c37809ff2cbc4c94ca}} 
\index{fail(9) Facility@{fail(9) Facility}!fail\_point\_init@{fail\_point\_init}}
\index{fail\_point\_init@{fail\_point\_init}!fail(9) Facility@{fail(9) Facility}}
\doxysubsubsection{\texorpdfstring{fail\_point\_init()}{fail\_point\_init()}}
{\footnotesize\ttfamily void fail\+\_\+point\+\_\+init (\begin{DoxyParamCaption}\item[{struct fail\+\_\+point $\ast$}]{fp,  }\item[{const char $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}

Initialize a fail\+\_\+point. The name is formed in a printf-\/like fashion from \char`\"{}fmt\char`\"{} and subsequent arguments. This function is generally used for custom failpoints located at odd places in the sysctl tree, and is not explicitly needed for standard in-\/line-\/declared failpoints. 

Definition at line \mbox{\hyperlink{kern__fail_8c_source_l00468}{468}} of file \mbox{\hyperlink{kern__fail_8c_source}{kern\+\_\+fail.\+c}}.



References \mbox{\hyperlink{kern__fail_8c_source_l00084}{fp\+\_\+malloc}}, \mbox{\hyperlink{kern__fail_8c_source_l00145}{name}}, and \mbox{\hyperlink{subr__prf_8c_source_l00565}{vsnprintf()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d38/group__failpoint_gac62707106b7a50c37809ff2cbc4c94ca_cgraph}
\end{center}
\end{figure}
