\hypertarget{ctl__backend_8c}{}\doxysection{cam/ctl/ctl\+\_\+backend.c File Reference}
\label{ctl__backend_8c}\index{cam/ctl/ctl\_backend.c@{cam/ctl/ctl\_backend.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/types.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/mutex.\+h$>$}\newline
{\ttfamily \#include $<$sys/condvar.\+h$>$}\newline
{\ttfamily \#include $<$sys/queue.\+h$>$}\newline
{\ttfamily \#include $<$sys/sysctl.\+h$>$}\newline
{\ttfamily \#include $<$cam/scsi/scsi\+\_\+all.\+h$>$}\newline
{\ttfamily \#include $<$cam/scsi/scsi\+\_\+da.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+io.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+frontend.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+backend.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+ioctl.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+ha.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+private.\+h$>$}\newline
{\ttfamily \#include $<$cam/ctl/ctl\+\_\+debug.\+h$>$}\newline
Include dependency graph for ctl\+\_\+backend.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/ddf/ctl__backend_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{ctl__backend_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
int \mbox{\hyperlink{ctl__backend_8c_a7a92c5111a207f3aff58a85687df0eb4}{ctl\+\_\+backend\+\_\+register}} (struct \mbox{\hyperlink{structctl__backend__driver}{ctl\+\_\+backend\+\_\+driver}} $\ast$be)
\item 
int \mbox{\hyperlink{ctl__backend_8c_a9725bf364c0b5e7a6204314334667721}{ctl\+\_\+backend\+\_\+deregister}} (struct \mbox{\hyperlink{structctl__backend__driver}{ctl\+\_\+backend\+\_\+driver}} $\ast$be)
\item 
struct \mbox{\hyperlink{structctl__backend__driver}{ctl\+\_\+backend\+\_\+driver}} $\ast$ \mbox{\hyperlink{ctl__backend_8c_af1030577e0877add0cc83e447190cf83}{ctl\+\_\+backend\+\_\+find}} (char $\ast$backend\+\_\+name)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structctl__softc}{ctl\+\_\+softc}} $\ast$ \mbox{\hyperlink{ctl__backend_8c_a287e67b9712ba52864797bb0b454975e}{control\+\_\+softc}}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{ctl__backend_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{ctl__backend_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{ctl\_backend.c@{ctl\_backend.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!ctl\_backend.c@{ctl\_backend.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ctl__backend_8c_a9725bf364c0b5e7a6204314334667721}\label{ctl__backend_8c_a9725bf364c0b5e7a6204314334667721}} 
\index{ctl\_backend.c@{ctl\_backend.c}!ctl\_backend\_deregister@{ctl\_backend\_deregister}}
\index{ctl\_backend\_deregister@{ctl\_backend\_deregister}!ctl\_backend.c@{ctl\_backend.c}}
\doxysubsubsection{\texorpdfstring{ctl\_backend\_deregister()}{ctl\_backend\_deregister()}}
{\footnotesize\ttfamily int ctl\+\_\+backend\+\_\+deregister (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structctl__backend__driver}{ctl\+\_\+backend\+\_\+driver}} $\ast$}]{be }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{ctl__backend_8c_source_l00104}{104}} of file \mbox{\hyperlink{ctl__backend_8c_source}{ctl\+\_\+backend.\+c}}.



References \mbox{\hyperlink{ctl_8c_source_l00092}{control\+\_\+softc}}, \mbox{\hyperlink{ctl__private_8h_source_l00437}{ctl\+\_\+softc\+::ctl\+\_\+lock}}, \mbox{\hyperlink{ctl__backend_8h_source_l00185}{ctl\+\_\+backend\+\_\+driver\+::name}}, \mbox{\hyperlink{ctl__private_8h_source_l00463}{ctl\+\_\+softc\+::num\+\_\+backends}}, and \mbox{\hyperlink{ctl__backend_8h_source_l00188}{ctl\+\_\+backend\+\_\+driver\+::shutdown}}.

\mbox{\Hypertarget{ctl__backend_8c_af1030577e0877add0cc83e447190cf83}\label{ctl__backend_8c_af1030577e0877add0cc83e447190cf83}} 
\index{ctl\_backend.c@{ctl\_backend.c}!ctl\_backend\_find@{ctl\_backend\_find}}
\index{ctl\_backend\_find@{ctl\_backend\_find}!ctl\_backend.c@{ctl\_backend.c}}
\doxysubsubsection{\texorpdfstring{ctl\_backend\_find()}{ctl\_backend\_find()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structctl__backend__driver}{ctl\+\_\+backend\+\_\+driver}} $\ast$ ctl\+\_\+backend\+\_\+find (\begin{DoxyParamCaption}\item[{char $\ast$}]{backend\+\_\+name }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{ctl__backend_8c_source_l00126}{126}} of file \mbox{\hyperlink{ctl__backend_8c_source}{ctl\+\_\+backend.\+c}}.



References \mbox{\hyperlink{ctl_8c_source_l00092}{control\+\_\+softc}}, \mbox{\hyperlink{ctl__private_8h_source_l00437}{ctl\+\_\+softc\+::ctl\+\_\+lock}}, and \mbox{\hyperlink{ctl__backend_8h_source_l00185}{ctl\+\_\+backend\+\_\+driver\+::name}}.



Referenced by \mbox{\hyperlink{ctl_8c_source_l02596}{ctl\+\_\+ioctl()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=269pt]{d7/ddc/ctl__backend_8c_af1030577e0877add0cc83e447190cf83_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{ctl__backend_8c_a7a92c5111a207f3aff58a85687df0eb4}\label{ctl__backend_8c_a7a92c5111a207f3aff58a85687df0eb4}} 
\index{ctl\_backend.c@{ctl\_backend.c}!ctl\_backend\_register@{ctl\_backend\_register}}
\index{ctl\_backend\_register@{ctl\_backend\_register}!ctl\_backend.c@{ctl\_backend.c}}
\doxysubsubsection{\texorpdfstring{ctl\_backend\_register()}{ctl\_backend\_register()}}
{\footnotesize\ttfamily int ctl\+\_\+backend\+\_\+register (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structctl__backend__driver}{ctl\+\_\+backend\+\_\+driver}} $\ast$}]{be }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{ctl__backend_8c_source_l00068}{68}} of file \mbox{\hyperlink{ctl__backend_8c_source}{ctl\+\_\+backend.\+c}}.



References \mbox{\hyperlink{ctl_8c_source_l00092}{control\+\_\+softc}}, \mbox{\hyperlink{ctl_8c_source_l05102}{ctl\+\_\+config\+\_\+move\+\_\+done()}}, \mbox{\hyperlink{ctl__private_8h_source_l00437}{ctl\+\_\+softc\+::ctl\+\_\+lock}}, \mbox{\hyperlink{ctl__backend_8h_source_l00187}{ctl\+\_\+backend\+\_\+driver\+::init}}, \mbox{\hyperlink{ctl__backend_8h_source_l00185}{ctl\+\_\+backend\+\_\+driver\+::name}}, and \mbox{\hyperlink{ctl__private_8h_source_l00463}{ctl\+\_\+softc\+::num\+\_\+backends}}.

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


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{ctl__backend_8c_a287e67b9712ba52864797bb0b454975e}\label{ctl__backend_8c_a287e67b9712ba52864797bb0b454975e}} 
\index{ctl\_backend.c@{ctl\_backend.c}!control\_softc@{control\_softc}}
\index{control\_softc@{control\_softc}!ctl\_backend.c@{ctl\_backend.c}}
\doxysubsubsection{\texorpdfstring{control\_softc}{control\_softc}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structctl__softc}{ctl\+\_\+softc}}$\ast$ control\+\_\+softc\hspace{0.3cm}{\ttfamily [extern]}}



Definition at line \mbox{\hyperlink{ctl_8c_source_l00092}{92}} of file \mbox{\hyperlink{ctl_8c_source}{ctl.\+c}}.



Referenced by \mbox{\hyperlink{ctl__backend_8c_source_l00104}{ctl\+\_\+backend\+\_\+deregister()}}, \mbox{\hyperlink{ctl__backend_8c_source_l00126}{ctl\+\_\+backend\+\_\+find()}}, and \mbox{\hyperlink{ctl__backend_8c_source_l00068}{ctl\+\_\+backend\+\_\+register()}}.

