\hypertarget{scsi__sg_8c}{}\doxysection{cam/scsi/scsi\+\_\+sg.c File Reference}
\label{scsi__sg_8c}\index{cam/scsi/scsi\_sg.c@{cam/scsi/scsi\_sg.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/bio.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/fcntl.\+h$>$}\newline
{\ttfamily \#include $<$sys/ioccom.\+h$>$}\newline
{\ttfamily \#include $<$sys/conf.\+h$>$}\newline
{\ttfamily \#include $<$sys/errno.\+h$>$}\newline
{\ttfamily \#include $<$sys/devicestat.\+h$>$}\newline
{\ttfamily \#include $<$sys/proc.\+h$>$}\newline
{\ttfamily \#include $<$sys/uio.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam\+\_\+ccb.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam\+\_\+periph.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam\+\_\+queue.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam\+\_\+xpt\+\_\+periph.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam\+\_\+debug.\+h$>$}\newline
{\ttfamily \#include $<$cam/cam\+\_\+sim.\+h$>$}\newline
{\ttfamily \#include $<$cam/scsi/scsi\+\_\+all.\+h$>$}\newline
{\ttfamily \#include $<$cam/scsi/scsi\+\_\+message.\+h$>$}\newline
{\ttfamily \#include $<$cam/scsi/scsi\+\_\+sg.\+h$>$}\newline
Include dependency graph for scsi\+\_\+sg.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d8d/scsi__sg_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structsg__rdwr}{sg\+\_\+rdwr}}
\item 
struct \mbox{\hyperlink{structsg__softc}{sg\+\_\+softc}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{scsi__sg_8c_adecfb85cd1107f63e60d11fa90731323}{ccb\+\_\+type}}~\mbox{\hyperlink{cam__periph_8h_ad127bb2b91fcf23bfe8a13b01aa531f8}{ppriv\+\_\+field0}}
\item 
\#define \mbox{\hyperlink{scsi__sg_8c_a6f08f8c5cf5ec1983fce9e7c5c6a3e53}{ccb\+\_\+rdwr}}~\mbox{\hyperlink{cam__periph_8h_a11a83ff2d87797b3618f396be22ccf9b}{ppriv\+\_\+ptr1}}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7}{sg\+\_\+flags}} \{ \mbox{\hyperlink{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7a321c83f5cfea770255114f4ee2bd2554}{SG\+\_\+\+FLAG\+\_\+\+LOCKED}} = 0x01
, \mbox{\hyperlink{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7a548ea72a28734385a2e98054f74fd017}{SG\+\_\+\+FLAG\+\_\+\+INVALID}} = 0x02
 \}
\item 
enum \mbox{\hyperlink{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7}{sg\+\_\+state}} \{ \mbox{\hyperlink{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7a833d022ea6acf12a248883846f25d49c}{SG\+\_\+\+STATE\+\_\+\+NORMAL}}
 \}
\item 
enum \mbox{\hyperlink{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4d}{sg\+\_\+rdwr\+\_\+state}} \{ \mbox{\hyperlink{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da2e323724c49902054393dcfca4de2bd7}{SG\+\_\+\+RDWR\+\_\+\+FREE}}
, \mbox{\hyperlink{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da3ccf79d057f5bf0559cf919ba6fe8a00}{SG\+\_\+\+RDWR\+\_\+\+INPROG}}
, \mbox{\hyperlink{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da18979761e24d42e9975986fe699ea1b4}{SG\+\_\+\+RDWR\+\_\+\+DONE}}
 \}
\item 
enum \mbox{\hyperlink{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15}{sg\+\_\+ccb\+\_\+types}} \{ \mbox{\hyperlink{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15a0d112836f75973868e88c3bec6c6dfae}{SG\+\_\+\+CCB\+\_\+\+RDWR\+\_\+\+IO}}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{scsi__sg_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static void \mbox{\hyperlink{scsi__sg_8c_a76c3de5af0d3cbc437c31aa7dd5c8743}{sgasync}} (void $\ast$callback\+\_\+arg, uint32\+\_\+t code, struct \mbox{\hyperlink{structcam__path}{cam\+\_\+path}} $\ast$path, void $\ast$arg)
\item 
static void \mbox{\hyperlink{scsi__sg_8c_a960fc3009b1d5102172f6f9d8a3e4755}{sgdone}} (struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$periph, union \mbox{\hyperlink{unionccb}{ccb}} $\ast$done\+\_\+ccb)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_a0c6e5a44ca0417699f1e35ef9f107d8d}{sgsendccb}} (struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$periph, union \mbox{\hyperlink{unionccb}{ccb}} $\ast$\mbox{\hyperlink{unionccb}{ccb}})
\item 
static int \mbox{\hyperlink{scsi__sg_8c_a5b5ed2680231306f895af4b6f32fded2}{sgsendrdwr}} (struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$periph, union \mbox{\hyperlink{unionccb}{ccb}} $\ast$\mbox{\hyperlink{unionccb}{ccb}})
\item 
static int \mbox{\hyperlink{scsi__sg_8c_aefa0577158fd166cdecf34b8fd7bd8fc}{sgerror}} (union \mbox{\hyperlink{unionccb}{ccb}} $\ast$\mbox{\hyperlink{unionccb}{ccb}}, uint32\+\_\+t \mbox{\hyperlink{cam_8h_a14bf0cceb256c2063f776e6cc4aba316}{cam\+\_\+flags}}, uint32\+\_\+t sense\+\_\+flags)
\item 
static void \mbox{\hyperlink{scsi__sg_8c_a04f2d39394147a1c12006834c7ad9ced}{sg\+\_\+scsiio\+\_\+status}} (struct \mbox{\hyperlink{structccb__scsiio}{ccb\+\_\+scsiio}} $\ast$csio, u\+\_\+short $\ast$hoststat, u\+\_\+short $\ast$drvstat)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_a10c60cef0f98eee1a801f9b8e6324c54}{scsi\+\_\+group\+\_\+len}} (u\+\_\+char cmd)
\item 
\mbox{\hyperlink{scsi__sg_8c_a4c75a2a517b147de97848e6ba50c1d1f}{PERIPHDRIVER\+\_\+\+DECLARE}} (sg, \mbox{\hyperlink{scsi__sg_8c_a2849c5d15556c95a0c8544e241217af1}{sgdriver}})
\item 
static void \mbox{\hyperlink{scsi__sg_8c_a91edb4a9d92972bc8ccd30475f68d1a5}{sgdevgonecb}} (void $\ast$arg)
\item 
static void \mbox{\hyperlink{scsi__sg_8c_a2fe52278f5e5620d62a3b3d9cb74db47}{sgoninvalidate}} (struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$periph)
\item 
static void \mbox{\hyperlink{scsi__sg_8c_a6393d99f575b8898b16c815055f2d5ef}{sgcleanup}} (struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$periph)
\item 
static \mbox{\hyperlink{cam_8h_a9ff49352334e6ad8ce937cf2fdf4cfb3}{cam\+\_\+status}} \mbox{\hyperlink{scsi__sg_8c_aa0a650c5ea067b83d13a7da3472ad515}{sgregister}} (struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$periph, void $\ast$arg)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_ace91eb8c0e2dd531d79f9dce1705997a}{sgopen}} (struct cdev $\ast$dev, int flags, int fmt, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_a54973d70f6822d694cca49f2edb6241d}{sgclose}} (struct cdev $\ast$dev, int flag, int fmt, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_a0202db6cbbfa72a9d323ffd0b737dce4}{sgioctl}} (struct cdev $\ast$dev, u\+\_\+long cmd, caddr\+\_\+t arg, int flag, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_a74e1fd4f972ce5e0cef6ddd83b56f3ee}{sgwrite}} (struct cdev $\ast$dev, struct uio $\ast$uio, int ioflag)
\item 
static int \mbox{\hyperlink{scsi__sg_8c_af44181e4c691169a10f447ba119dce9b}{sgread}} (struct cdev $\ast$dev, struct uio $\ast$uio, int ioflag)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static d\+\_\+open\+\_\+t \mbox{\hyperlink{scsi__sg_8c_a6368bc1d5613fd1ac5d752e5609ce150}{sgopen}}
\item 
static d\+\_\+close\+\_\+t \mbox{\hyperlink{scsi__sg_8c_ad872400e827bdd2d10386ae4bf2a9241}{sgclose}}
\item 
static d\+\_\+ioctl\+\_\+t \mbox{\hyperlink{scsi__sg_8c_a53f307040bac4b146b703a02cc3021a9}{sgioctl}}
\item 
static d\+\_\+write\+\_\+t \mbox{\hyperlink{scsi__sg_8c_a838dcb1cf0b67bc0cf791099c27b7432}{sgwrite}}
\item 
static d\+\_\+read\+\_\+t \mbox{\hyperlink{scsi__sg_8c_ae598f964f0d18d2fb4064a8f67258ffa}{sgread}}
\item 
static \mbox{\hyperlink{cam__periph_8h_ae8635482322b2513ab2f662535250ac0}{periph\+\_\+init\+\_\+t}} \mbox{\hyperlink{scsi__sg_8c_ace4ffade9310780b7515aa82608c77ce}{sginit}}
\item 
static \mbox{\hyperlink{cam__periph_8h_a0134746116b0c19d248d1342a16aab04}{periph\+\_\+ctor\+\_\+t}} \mbox{\hyperlink{scsi__sg_8c_acd54b56f5d871039c9d268ea0158118c}{sgregister}}
\item 
static \mbox{\hyperlink{cam__periph_8h_a14602bb3ac9272ea2209d63f1e618fca}{periph\+\_\+oninv\+\_\+t}} \mbox{\hyperlink{scsi__sg_8c_ae40ce8e6da413772f7e6571f518a1f10}{sgoninvalidate}}
\item 
static \mbox{\hyperlink{cam__periph_8h_a8d863e438ef46ba796fbf3e77340b3e3}{periph\+\_\+dtor\+\_\+t}} \mbox{\hyperlink{scsi__sg_8c_ab1348fd9b13f0732799b0f1cf41841ae}{sgcleanup}}
\item 
static struct \mbox{\hyperlink{structperiph__driver}{periph\+\_\+driver}} \mbox{\hyperlink{scsi__sg_8c_a2849c5d15556c95a0c8544e241217af1}{sgdriver}}
\item 
static struct cdevsw \mbox{\hyperlink{scsi__sg_8c_a391d79d545431b8ffcd0bebc446ffce4}{sg\+\_\+cdevsw}}
\item 
static int \mbox{\hyperlink{scsi__sg_8c_ae01c37b8a7197c3871c7b46409818d19}{sg\+\_\+version}} = 30125
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{scsi__sg_8c_a6f08f8c5cf5ec1983fce9e7c5c6a3e53}\label{scsi__sg_8c_a6f08f8c5cf5ec1983fce9e7c5c6a3e53}} 
\index{scsi\_sg.c@{scsi\_sg.c}!ccb\_rdwr@{ccb\_rdwr}}
\index{ccb\_rdwr@{ccb\_rdwr}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{ccb\_rdwr}{ccb\_rdwr}}
{\footnotesize\ttfamily \#define ccb\+\_\+rdwr~\mbox{\hyperlink{cam__periph_8h_a11a83ff2d87797b3618f396be22ccf9b}{ppriv\+\_\+ptr1}}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00083}{83}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_adecfb85cd1107f63e60d11fa90731323}\label{scsi__sg_8c_adecfb85cd1107f63e60d11fa90731323}} 
\index{scsi\_sg.c@{scsi\_sg.c}!ccb\_type@{ccb\_type}}
\index{ccb\_type@{ccb\_type}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{ccb\_type}{ccb\_type}}
{\footnotesize\ttfamily \#define ccb\+\_\+type~\mbox{\hyperlink{cam__periph_8h_ad127bb2b91fcf23bfe8a13b01aa531f8}{ppriv\+\_\+field0}}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00082}{82}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15}\label{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_ccb\_types@{sg\_ccb\_types}}
\index{sg\_ccb\_types@{sg\_ccb\_types}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_ccb\_types}{sg\_ccb\_types}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15}{sg\+\_\+ccb\+\_\+types}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_CCB\_RDWR\_IO@{SG\_CCB\_RDWR\_IO}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_CCB\_RDWR\_IO@{SG\_CCB\_RDWR\_IO}}}\mbox{\Hypertarget{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15a0d112836f75973868e88c3bec6c6dfae}\label{scsi__sg_8c_a271e0ffe51de796f1833ec2c40ab3f15a0d112836f75973868e88c3bec6c6dfae}} 
SG\+\_\+\+CCB\+\_\+\+RDWR\+\_\+\+IO&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00078}{78}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7}\label{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_flags@{sg\_flags}}
\index{sg\_flags@{sg\_flags}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_flags}{sg\_flags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7}{sg\+\_\+flags}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_FLAG\_LOCKED@{SG\_FLAG\_LOCKED}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_FLAG\_LOCKED@{SG\_FLAG\_LOCKED}}}\mbox{\Hypertarget{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7a321c83f5cfea770255114f4ee2bd2554}\label{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7a321c83f5cfea770255114f4ee2bd2554}} 
SG\+\_\+\+FLAG\+\_\+\+LOCKED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_FLAG\_INVALID@{SG\_FLAG\_INVALID}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_FLAG\_INVALID@{SG\_FLAG\_INVALID}}}\mbox{\Hypertarget{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7a548ea72a28734385a2e98054f74fd017}\label{scsi__sg_8c_a92cfc840cfa2624408781255f65109a7a548ea72a28734385a2e98054f74fd017}} 
SG\+\_\+\+FLAG\+\_\+\+INVALID&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00063}{63}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4d}\label{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4d}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_rdwr\_state@{sg\_rdwr\_state}}
\index{sg\_rdwr\_state@{sg\_rdwr\_state}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_rdwr\_state}{sg\_rdwr\_state}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4d}{sg\+\_\+rdwr\+\_\+state}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_RDWR\_FREE@{SG\_RDWR\_FREE}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_RDWR\_FREE@{SG\_RDWR\_FREE}}}\mbox{\Hypertarget{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da2e323724c49902054393dcfca4de2bd7}\label{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da2e323724c49902054393dcfca4de2bd7}} 
SG\+\_\+\+RDWR\+\_\+\+FREE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_RDWR\_INPROG@{SG\_RDWR\_INPROG}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_RDWR\_INPROG@{SG\_RDWR\_INPROG}}}\mbox{\Hypertarget{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da3ccf79d057f5bf0559cf919ba6fe8a00}\label{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da3ccf79d057f5bf0559cf919ba6fe8a00}} 
SG\+\_\+\+RDWR\+\_\+\+INPROG&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_RDWR\_DONE@{SG\_RDWR\_DONE}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_RDWR\_DONE@{SG\_RDWR\_DONE}}}\mbox{\Hypertarget{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da18979761e24d42e9975986fe699ea1b4}\label{scsi__sg_8c_a8a94f004c110845d20abb452c5dbfa4da18979761e24d42e9975986fe699ea1b4}} 
SG\+\_\+\+RDWR\+\_\+\+DONE&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00072}{72}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7}\label{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_state@{sg\_state}}
\index{sg\_state@{sg\_state}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_state}{sg\_state}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7}{sg\+\_\+state}}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SG\_STATE\_NORMAL@{SG\_STATE\_NORMAL}!scsi\_sg.c@{scsi\_sg.c}}\index{scsi\_sg.c@{scsi\_sg.c}!SG\_STATE\_NORMAL@{SG\_STATE\_NORMAL}}}\mbox{\Hypertarget{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7a833d022ea6acf12a248883846f25d49c}\label{scsi__sg_8c_a8a0ac0929c96aa666c9af155e6f0bfa7a833d022ea6acf12a248883846f25d49c}} 
SG\+\_\+\+STATE\+\_\+\+NORMAL&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00068}{68}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



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

\mbox{\Hypertarget{scsi__sg_8c_a4c75a2a517b147de97848e6ba50c1d1f}\label{scsi__sg_8c_a4c75a2a517b147de97848e6ba50c1d1f}} 
\index{scsi\_sg.c@{scsi\_sg.c}!PERIPHDRIVER\_DECLARE@{PERIPHDRIVER\_DECLARE}}
\index{PERIPHDRIVER\_DECLARE@{PERIPHDRIVER\_DECLARE}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{PERIPHDRIVER\_DECLARE()}{PERIPHDRIVER\_DECLARE()}}
{\footnotesize\ttfamily PERIPHDRIVER\+\_\+\+DECLARE (\begin{DoxyParamCaption}\item[{sg}]{,  }\item[{\mbox{\hyperlink{scsi__sg_8c_a2849c5d15556c95a0c8544e241217af1}{sgdriver}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{scsi__sg_8c_a10c60cef0f98eee1a801f9b8e6324c54}\label{scsi__sg_8c_a10c60cef0f98eee1a801f9b8e6324c54}} 
\index{scsi\_sg.c@{scsi\_sg.c}!scsi\_group\_len@{scsi\_group\_len}}
\index{scsi\_group\_len@{scsi\_group\_len}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{scsi\_group\_len()}{scsi\_group\_len()}}
{\footnotesize\ttfamily static int scsi\+\_\+group\+\_\+len (\begin{DoxyParamCaption}\item[{u\+\_\+char}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00999}{999}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00672}{sgwrite()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=258pt]{d3/db1/scsi__sg_8c_a10c60cef0f98eee1a801f9b8e6324c54_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a04f2d39394147a1c12006834c7ad9ced}\label{scsi__sg_8c_a04f2d39394147a1c12006834c7ad9ced}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_scsiio\_status@{sg\_scsiio\_status}}
\index{sg\_scsiio\_status@{sg\_scsiio\_status}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_scsiio\_status()}{sg\_scsiio\_status()}}
{\footnotesize\ttfamily static void sg\+\_\+scsiio\+\_\+status (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structccb__scsiio}{ccb\+\_\+scsiio}} $\ast$}]{csio,  }\item[{u\+\_\+short $\ast$}]{hoststat,  }\item[{u\+\_\+short $\ast$}]{drvstat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00938}{938}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam_8h_source_l00290}{CAM\+\_\+\+AUTOSNS\+\_\+\+VALID}}, \mbox{\hyperlink{cam_8h_source_l00167}{CAM\+\_\+\+CMD\+\_\+\+TIMEOUT}}, \mbox{\hyperlink{cam_8h_source_l00158}{CAM\+\_\+\+DEV\+\_\+\+NOT\+\_\+\+THERE}}, \mbox{\hyperlink{cam_8h_source_l00140}{CAM\+\_\+\+REQ\+\_\+\+ABORTED}}, \mbox{\hyperlink{cam_8h_source_l00137}{CAM\+\_\+\+REQ\+\_\+\+CMP}}, \mbox{\hyperlink{cam_8h_source_l00146}{CAM\+\_\+\+REQ\+\_\+\+CMP\+\_\+\+ERR}}, \mbox{\hyperlink{cam_8h_source_l00152}{CAM\+\_\+\+REQ\+\_\+\+INVALID}}, \mbox{\hyperlink{cam_8h_source_l00176}{CAM\+\_\+\+SCSI\+\_\+\+BUS\+\_\+\+RESET}}, \mbox{\hyperlink{cam_8h_source_l00280}{CAM\+\_\+\+SCSI\+\_\+\+BUSY}}, \mbox{\hyperlink{cam_8h_source_l00170}{CAM\+\_\+\+SCSI\+\_\+\+STATUS\+\_\+\+ERROR}}, \mbox{\hyperlink{cam_8h_source_l00164}{CAM\+\_\+\+SEL\+\_\+\+TIMEOUT}}, \mbox{\hyperlink{cam_8h_source_l00302}{CAM\+\_\+\+STATUS\+\_\+\+MASK}}, \mbox{\hyperlink{cam_8h_source_l00179}{CAM\+\_\+\+UNCOR\+\_\+\+PARITY}}, \mbox{\hyperlink{cam__ccb_8h_source_l00750}{ccb\+\_\+scsiio\+::ccb\+\_\+h}}, \mbox{\hyperlink{scsi__sg_8h_source_l00131}{DID\+\_\+\+ABORT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00130}{DID\+\_\+\+BAD\+\_\+\+TARGET}}, \mbox{\hyperlink{scsi__sg_8h_source_l00128}{DID\+\_\+\+BUS\+\_\+\+BUSY}}, \mbox{\hyperlink{scsi__sg_8h_source_l00133}{DID\+\_\+\+ERROR}}, \mbox{\hyperlink{scsi__sg_8h_source_l00127}{DID\+\_\+\+NO\+\_\+\+CONNECT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00126}{DID\+\_\+\+OK}}, \mbox{\hyperlink{scsi__sg_8h_source_l00132}{DID\+\_\+\+PARITY}}, \mbox{\hyperlink{scsi__sg_8h_source_l00134}{DID\+\_\+\+RESET}}, \mbox{\hyperlink{scsi__sg_8h_source_l00129}{DID\+\_\+\+TIME\+\_\+\+OUT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00147}{DRIVER\+\_\+\+ERROR}}, \mbox{\hyperlink{scsi__sg_8h_source_l00149}{DRIVER\+\_\+\+INVALID}}, \mbox{\hyperlink{scsi__sg_8h_source_l00152}{DRIVER\+\_\+\+SENSE}}, and \mbox{\hyperlink{cam__ccb_8h_source_l00363}{ccb\+\_\+hdr\+::status}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00498}{sgioctl()}}, and \mbox{\hyperlink{scsi__sg_8c_source_l00794}{sgread()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=262pt]{d3/db1/scsi__sg_8c_a04f2d39394147a1c12006834c7ad9ced_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a76c3de5af0d3cbc437c31aa7dd5c8743}\label{scsi__sg_8c_a76c3de5af0d3cbc437c31aa7dd5c8743}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgasync@{sgasync}}
\index{sgasync@{sgasync}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgasync()}{sgasync()}}
{\footnotesize\ttfamily static void sgasync (\begin{DoxyParamCaption}\item[{void $\ast$}]{callback\+\_\+arg,  }\item[{uint32\+\_\+t}]{code,  }\item[{struct \mbox{\hyperlink{structcam__path}{cam\+\_\+path}} $\ast$}]{path,  }\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00252}{252}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__ccb_8h_source_l00874}{AC\+\_\+\+FOUND\+\_\+\+DEVICE}}, \mbox{\hyperlink{cam_8c_source_l00292}{cam\+\_\+fetch\+\_\+status\+\_\+entry()}}, \mbox{\hyperlink{cam__periph_8c_source_l00197}{cam\+\_\+periph\+\_\+alloc()}}, \mbox{\hyperlink{cam__periph_8c_source_l01471}{cam\+\_\+periph\+\_\+async()}}, \mbox{\hyperlink{cam__periph_8h_source_l00104}{CAM\+\_\+\+PERIPH\+\_\+\+BIO}}, \mbox{\hyperlink{cam_8h_source_l00137}{CAM\+\_\+\+REQ\+\_\+\+CMP}}, \mbox{\hyperlink{cam_8h_source_l00134}{CAM\+\_\+\+REQ\+\_\+\+INPROG}}, \mbox{\hyperlink{cam__ccb_8h_source_l00279}{PROTO\+\_\+\+SCSI}}, \mbox{\hyperlink{cam__ccb_8h_source_l00380}{ccb\+\_\+getdev\+::protocol}}, \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}, \mbox{\hyperlink{scsi__sg_8c_source_l00120}{sgcleanup}}, \mbox{\hyperlink{scsi__sg_8c_source_l00119}{sgoninvalidate}}, \mbox{\hyperlink{scsi__sg_8c_source_l00118}{sgregister}}, and \mbox{\hyperlink{cam_8h_source_l00359}{cam\+\_\+status\+\_\+entry\+::status\+\_\+text}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}, \mbox{\hyperlink{scsi__sg_8c_source_l00212}{sgoninvalidate()}}, and \mbox{\hyperlink{scsi__sg_8c_source_l00296}{sgregister()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a76c3de5af0d3cbc437c31aa7dd5c8743_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=261pt]{d3/db1/scsi__sg_8c_a76c3de5af0d3cbc437c31aa7dd5c8743_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a6393d99f575b8898b16c815055f2d5ef}\label{scsi__sg_8c_a6393d99f575b8898b16c815055f2d5ef}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgcleanup@{sgcleanup}}
\index{sgcleanup@{sgcleanup}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgcleanup()}{sgcleanup()}}
{\footnotesize\ttfamily static void sgcleanup (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$}]{periph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00240}{240}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{scsi__sg_8c_source_l00103}{sg\+\_\+softc\+::device\+\_\+stats}}, and \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}.

\mbox{\Hypertarget{scsi__sg_8c_a54973d70f6822d694cca49f2edb6241d}\label{scsi__sg_8c_a54973d70f6822d694cca49f2edb6241d}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgclose@{sgclose}}
\index{sgclose@{sgclose}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgclose()}{sgclose()}}
{\footnotesize\ttfamily static int sgclose (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{flag,  }\item[{int}]{fmt,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00465}{465}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__periph_8h_source_l00213}{cam\+\_\+periph\+\_\+mtx()}}, \mbox{\hyperlink{cam__periph_8c_source_l00453}{cam\+\_\+periph\+\_\+release\+\_\+locked()}}, and \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a54973d70f6822d694cca49f2edb6241d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a91edb4a9d92972bc8ccd30475f68d1a5}\label{scsi__sg_8c_a91edb4a9d92972bc8ccd30475f68d1a5}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgdevgonecb@{sgdevgonecb}}
\index{sgdevgonecb@{sgdevgonecb}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgdevgonecb()}{sgdevgonecb()}}
{\footnotesize\ttfamily static void sgdevgonecb (\begin{DoxyParamCaption}\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00171}{171}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__periph_8h_source_l00213}{cam\+\_\+periph\+\_\+mtx()}}, \mbox{\hyperlink{cam__periph_8c_source_l00453}{cam\+\_\+periph\+\_\+release\+\_\+locked()}}, \mbox{\hyperlink{scsi__sg_8c_source_l00101}{sg\+\_\+softc\+::open\+\_\+count}}, and \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00212}{sgoninvalidate()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a91edb4a9d92972bc8ccd30475f68d1a5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=286pt]{d3/db1/scsi__sg_8c_a91edb4a9d92972bc8ccd30475f68d1a5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a960fc3009b1d5102172f6f9d8a3e4755}\label{scsi__sg_8c_a960fc3009b1d5102172f6f9d8a3e4755}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgdone@{sgdone}}
\index{sgdone@{sgdone}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgdone()}{sgdone()}}
{\footnotesize\ttfamily static void sgdone (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$}]{periph,  }\item[{union \mbox{\hyperlink{unionccb}{ccb}} $\ast$}]{done\+\_\+ccb }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00397}{397}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__ccb_8h_source_l00082}{CAM\+\_\+\+DIR\+\_\+\+MASK}}, \mbox{\hyperlink{cam__ccb_8h_source_l00081}{CAM\+\_\+\+DIR\+\_\+\+NONE}}, \mbox{\hyperlink{cam__ccb_8h_source_l00080}{CAM\+\_\+\+DIR\+\_\+\+OUT}}, \mbox{\hyperlink{cam__ccb_8h_source_l00750}{ccb\+\_\+scsiio\+::ccb\+\_\+h}}, \mbox{\hyperlink{cam__ccb_8h_source_l01346}{ccb\+::ccb\+\_\+h}}, \mbox{\hyperlink{cam__ccb_8h_source_l01347}{ccb\+::csio}}, \mbox{\hyperlink{scsi__sg_8c_source_l00103}{sg\+\_\+softc\+::device\+\_\+stats}}, \mbox{\hyperlink{cam__ccb_8h_source_l00754}{ccb\+\_\+scsiio\+::dxfer\+\_\+len}}, \mbox{\hyperlink{cam__ccb_8h_source_l00368}{ccb\+\_\+hdr\+::flags}}, \mbox{\hyperlink{scsi__sg_8c_source_l00079}{SG\+\_\+\+CCB\+\_\+\+RDWR\+\_\+\+IO}}, \mbox{\hyperlink{scsi__sg_8c_source_l00075}{SG\+\_\+\+RDWR\+\_\+\+DONE}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, and \mbox{\hyperlink{cam__ccb_8h_source_l00766}{ccb\+\_\+scsiio\+::tag\+\_\+action}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00672}{sgwrite()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=221pt]{d3/db1/scsi__sg_8c_a960fc3009b1d5102172f6f9d8a3e4755_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_aefa0577158fd166cdecf34b8fd7bd8fc}\label{scsi__sg_8c_aefa0577158fd166cdecf34b8fd7bd8fc}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgerror@{sgerror}}
\index{sgerror@{sgerror}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgerror()}{sgerror()}}
{\footnotesize\ttfamily static int sgerror (\begin{DoxyParamCaption}\item[{union \mbox{\hyperlink{unionccb}{ccb}} $\ast$}]{ccb,  }\item[{uint32\+\_\+t}]{cam\+\_\+flags,  }\item[{uint32\+\_\+t}]{sense\+\_\+flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00931}{931}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__periph_8c_source_l01864}{cam\+\_\+periph\+\_\+error()}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00884}{sgsendccb()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_aefa0577158fd166cdecf34b8fd7bd8fc_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=320pt]{d3/db1/scsi__sg_8c_aefa0577158fd166cdecf34b8fd7bd8fc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a0202db6cbbfa72a9d323ffd0b737dce4}\label{scsi__sg_8c_a0202db6cbbfa72a9d323ffd0b737dce4}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgioctl@{sgioctl}}
\index{sgioctl@{sgioctl}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgioctl()}{sgioctl()}}
{\footnotesize\ttfamily static int sgioctl (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{u\+\_\+long}]{cmd,  }\item[{caddr\+\_\+t}]{arg,  }\item[{int}]{flag,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00498}{498}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam_8h_source_l00290}{CAM\+\_\+\+AUTOSNS\+\_\+\+VALID}}, \mbox{\hyperlink{cam__ccb_8h_source_l00091}{CAM\+\_\+\+DEV\+\_\+\+QFRZDIS}}, \mbox{\hyperlink{cam__ccb_8h_source_l00078}{CAM\+\_\+\+DIR\+\_\+\+BOTH}}, \mbox{\hyperlink{cam__ccb_8h_source_l00079}{CAM\+\_\+\+DIR\+\_\+\+IN}}, \mbox{\hyperlink{cam__ccb_8h_source_l00081}{CAM\+\_\+\+DIR\+\_\+\+NONE}}, \mbox{\hyperlink{cam__ccb_8h_source_l00080}{CAM\+\_\+\+DIR\+\_\+\+OUT}}, \mbox{\hyperlink{cam__ccb_8h_source_l01389}{cam\+\_\+fill\+\_\+csio()}}, \mbox{\hyperlink{cam__xpt_8c_source_l04695}{cam\+\_\+periph\+\_\+getccb()}}, \mbox{\hyperlink{cam__periph_8h_source_l00224}{cam\+\_\+periph\+\_\+lock}}, \mbox{\hyperlink{cam__periph_8h_source_l00227}{cam\+\_\+periph\+\_\+unlock}}, \mbox{\hyperlink{cam_8h_source_l00092}{CAM\+\_\+\+PRIORITY\+\_\+\+NORMAL}}, \mbox{\hyperlink{cam__sim_8h_source_l00109}{cam\+\_\+sim\+\_\+path()}}, \mbox{\hyperlink{mmc__sim__if_8m_source_l00053}{ccb}}, \mbox{\hyperlink{cam__ccb_8h_source_l00750}{ccb\+\_\+scsiio\+::ccb\+\_\+h}}, \mbox{\hyperlink{cam__ccb_8h_source_l00742}{cdb\+\_\+t\+::cdb\+\_\+bytes}}, \mbox{\hyperlink{cam__ccb_8h_source_l00763}{ccb\+\_\+scsiio\+::cdb\+\_\+io}}, \mbox{\hyperlink{scsi__sg_8h_source_l00040}{sg\+\_\+io\+\_\+hdr\+::cmd\+\_\+len}}, \mbox{\hyperlink{scsi__sg_8h_source_l00045}{sg\+\_\+io\+\_\+hdr\+::cmdp}}, \mbox{\hyperlink{cam__ccb_8h_source_l01347}{ccb\+::csio}}, \mbox{\hyperlink{scsi__sg_8h_source_l00133}{DID\+\_\+\+ERROR}}, \mbox{\hyperlink{scsi__sg_8h_source_l00149}{DRIVER\+\_\+\+INVALID}}, \mbox{\hyperlink{scsi__sg_8h_source_l00056}{sg\+\_\+io\+\_\+hdr\+::driver\+\_\+status}}, \mbox{\hyperlink{scsi__sg_8h_source_l00058}{sg\+\_\+io\+\_\+hdr\+::duration}}, \mbox{\hyperlink{scsi__sg_8h_source_l00039}{sg\+\_\+io\+\_\+hdr\+::dxfer\+\_\+direction}}, \mbox{\hyperlink{scsi__sg_8h_source_l00043}{sg\+\_\+io\+\_\+hdr\+::dxfer\+\_\+len}}, \mbox{\hyperlink{scsi__sg_8h_source_l00044}{sg\+\_\+io\+\_\+hdr\+::dxferp}}, \mbox{\hyperlink{scsi__sg_8h_source_l00108}{sg\+\_\+scsi\+\_\+id\+::host\+\_\+no}}, \mbox{\hyperlink{scsi__sg_8h_source_l00055}{sg\+\_\+io\+\_\+hdr\+::host\+\_\+status}}, \mbox{\hyperlink{scsi__sg_8h_source_l00059}{sg\+\_\+io\+\_\+hdr\+::info}}, \mbox{\hyperlink{cam__ccb_8h_source_l00050}{IOCDBLEN}}, \mbox{\hyperlink{scsi__sg_8h_source_l00042}{sg\+\_\+io\+\_\+hdr\+::iovec\+\_\+count}}, \mbox{\hyperlink{scsi__sg_8h_source_l00052}{sg\+\_\+io\+\_\+hdr\+::masked\+\_\+status}}, \mbox{\hyperlink{scsi__message_8h_source_l00035}{MSG\+\_\+\+SIMPLE\+\_\+\+Q\+\_\+\+TAG}}, \mbox{\hyperlink{scsi__sg_8h_source_l00041}{sg\+\_\+io\+\_\+hdr\+::mx\+\_\+sb\+\_\+len}}, \mbox{\hyperlink{cam__periph_8h_source_l00124}{cam\+\_\+periph\+::path}}, \mbox{\hyperlink{cam__ccb_8h_source_l00762}{ccb\+\_\+scsiio\+::resid}}, \mbox{\hyperlink{scsi__sg_8h_source_l00057}{sg\+\_\+io\+\_\+hdr\+::resid}}, \mbox{\hyperlink{scsi__sg_8h_source_l00054}{sg\+\_\+io\+\_\+hdr\+::sb\+\_\+len\+\_\+wr}}, \mbox{\hyperlink{scsi__sg_8h_source_l00046}{sg\+\_\+io\+\_\+hdr\+::sbp}}, \mbox{\hyperlink{cam__ccb_8h_source_l00760}{ccb\+\_\+scsiio\+::scsi\+\_\+status}}, \mbox{\hyperlink{cam__ccb_8h_source_l00756}{ccb\+\_\+scsiio\+::sense\+\_\+data}}, \mbox{\hyperlink{cam__ccb_8h_source_l00761}{ccb\+\_\+scsiio\+::sense\+\_\+resid}}, \mbox{\hyperlink{scsi__sg_8h_source_l00166}{SG\+\_\+\+DEFAULT\+\_\+\+HZ}}, \mbox{\hyperlink{scsi__sg_8h_source_l00089}{SG\+\_\+\+DXFER\+\_\+\+FROM\+\_\+\+DEV}}, \mbox{\hyperlink{scsi__sg_8h_source_l00087}{SG\+\_\+\+DXFER\+\_\+\+NONE}}, \mbox{\hyperlink{scsi__sg_8h_source_l00088}{SG\+\_\+\+DXFER\+\_\+\+TO\+\_\+\+DEV}}, \mbox{\hyperlink{scsi__sg_8h_source_l00090}{SG\+\_\+\+DXFER\+\_\+\+TO\+\_\+\+FROM\+\_\+\+DEV}}, \mbox{\hyperlink{scsi__sg_8h_source_l00013}{SG\+\_\+\+EMULATED\+\_\+\+HOST}}, \mbox{\hyperlink{scsi__sg_8h_source_l00035}{SG\+\_\+\+GET\+\_\+\+ACCESS\+\_\+\+COUNT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00016}{SG\+\_\+\+GET\+\_\+\+COMMAND\+\_\+Q}}, \mbox{\hyperlink{scsi__sg_8h_source_l00034}{SG\+\_\+\+GET\+\_\+\+KEEP\+\_\+\+ORPHAN}}, \mbox{\hyperlink{scsi__sg_8h_source_l00022}{SG\+\_\+\+GET\+\_\+\+LOW\+\_\+\+DMA}}, \mbox{\hyperlink{scsi__sg_8h_source_l00025}{SG\+\_\+\+GET\+\_\+\+NUM\+\_\+\+WAITING}}, \mbox{\hyperlink{scsi__sg_8h_source_l00024}{SG\+\_\+\+GET\+\_\+\+PACK\+\_\+\+ID}}, \mbox{\hyperlink{scsi__sg_8h_source_l00032}{SG\+\_\+\+GET\+\_\+\+REQUEST\+\_\+\+TABLE}}, \mbox{\hyperlink{scsi__sg_8h_source_l00018}{SG\+\_\+\+GET\+\_\+\+RESERVED\+\_\+\+SIZE}}, \mbox{\hyperlink{scsi__sg_8h_source_l00020}{SG\+\_\+\+GET\+\_\+\+SCSI\+\_\+\+ID}}, \mbox{\hyperlink{scsi__sg_8h_source_l00027}{SG\+\_\+\+GET\+\_\+\+SG\+\_\+\+TABLESIZE}}, \mbox{\hyperlink{scsi__sg_8h_source_l00012}{SG\+\_\+\+GET\+\_\+\+TIMEOUT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00015}{SG\+\_\+\+GET\+\_\+\+TRANSFORM}}, \mbox{\hyperlink{scsi__sg_8h_source_l00028}{SG\+\_\+\+GET\+\_\+\+VERSION\+\_\+\+NUM}}, \mbox{\hyperlink{scsi__sg_8h_source_l00031}{SG\+\_\+\+IO}}, \mbox{\hyperlink{scsi__sg_8h_source_l00029}{SG\+\_\+\+NEXT\+\_\+\+CMD\+\_\+\+LEN}}, \mbox{\hyperlink{scsi__sg_8h_source_l00030}{SG\+\_\+\+SCSI\+\_\+\+RESET}}, \mbox{\hyperlink{scsi__sg_8c_source_l00938}{sg\+\_\+scsiio\+\_\+status()}}, \mbox{\hyperlink{scsi__sg_8h_source_l00017}{SG\+\_\+\+SET\+\_\+\+COMMAND\+\_\+Q}}, \mbox{\hyperlink{scsi__sg_8h_source_l00026}{SG\+\_\+\+SET\+\_\+\+DEBUG}}, \mbox{\hyperlink{scsi__sg_8h_source_l00021}{SG\+\_\+\+SET\+\_\+\+FORCE\+\_\+\+LOW\+\_\+\+DMA}}, \mbox{\hyperlink{scsi__sg_8h_source_l00023}{SG\+\_\+\+SET\+\_\+\+FORCE\+\_\+\+PACK\+\_\+\+ID}}, \mbox{\hyperlink{scsi__sg_8h_source_l00033}{SG\+\_\+\+SET\+\_\+\+KEEP\+\_\+\+ORPHAN}}, \mbox{\hyperlink{scsi__sg_8h_source_l00019}{SG\+\_\+\+SET\+\_\+\+RESERVED\+\_\+\+SIZE}}, \mbox{\hyperlink{scsi__sg_8h_source_l00011}{SG\+\_\+\+SET\+\_\+\+TIMEOUT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00014}{SG\+\_\+\+SET\+\_\+\+TRANSFORM}}, \mbox{\hyperlink{scsi__sg_8c_source_l00151}{sg\+\_\+version}}, \mbox{\hyperlink{scsi__sg_8c_source_l00884}{sgsendccb()}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, \mbox{\hyperlink{cam__ccb_8h_source_l00363}{ccb\+\_\+hdr\+::status}}, \mbox{\hyperlink{scsi__sg_8h_source_l00051}{sg\+\_\+io\+\_\+hdr\+::status}}, \mbox{\hyperlink{cam__ccb_8h_source_l00373}{ccb\+\_\+hdr\+::timeout}}, \mbox{\hyperlink{scsi__sg_8h_source_l00047}{sg\+\_\+io\+\_\+hdr\+::timeout}}, \mbox{\hyperlink{cam__xpt_8c_source_l03895}{xpt\+\_\+path\+\_\+lun\+\_\+id()}}, \mbox{\hyperlink{cam__xpt_8c_source_l03880}{xpt\+\_\+path\+\_\+path\+\_\+id()}}, \mbox{\hyperlink{cam__xpt_8c_source_l03904}{xpt\+\_\+path\+\_\+sim()}}, \mbox{\hyperlink{cam__xpt_8c_source_l03886}{xpt\+\_\+path\+\_\+target\+\_\+id()}}, and \mbox{\hyperlink{cam__xpt_8c_source_l03924}{xpt\+\_\+release\+\_\+ccb()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a0202db6cbbfa72a9d323ffd0b737dce4_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a2fe52278f5e5620d62a3b3d9cb74db47}\label{scsi__sg_8c_a2fe52278f5e5620d62a3b3d9cb74db47}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgoninvalidate@{sgoninvalidate}}
\index{sgoninvalidate@{sgoninvalidate}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgoninvalidate()}{sgoninvalidate()}}
{\footnotesize\ttfamily static void sgoninvalidate (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$}]{periph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00212}{212}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{scsi__sg_8c_source_l00100}{sg\+\_\+softc\+::flags}}, \mbox{\hyperlink{cam__periph_8h_source_l00124}{cam\+\_\+periph\+::path}}, \mbox{\hyperlink{scsi__sg_8c_source_l00065}{SG\+\_\+\+FLAG\+\_\+\+INVALID}}, \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}, \mbox{\hyperlink{scsi__sg_8c_source_l00171}{sgdevgonecb()}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, and \mbox{\hyperlink{cam__xpt_8c_source_l05213}{xpt\+\_\+register\+\_\+async()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a2fe52278f5e5620d62a3b3d9cb74db47_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_ace91eb8c0e2dd531d79f9dce1705997a}\label{scsi__sg_8c_ace91eb8c0e2dd531d79f9dce1705997a}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgopen@{sgopen}}
\index{sgopen@{sgopen}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgopen()}{sgopen()}}
{\footnotesize\ttfamily static int sgopen (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{flags,  }\item[{int}]{fmt,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00429}{429}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__periph_8c_source_l00413}{cam\+\_\+periph\+\_\+acquire()}}, \mbox{\hyperlink{cam__periph_8h_source_l00224}{cam\+\_\+periph\+\_\+lock}}, \mbox{\hyperlink{cam__periph_8c_source_l00465}{cam\+\_\+periph\+\_\+release()}}, \mbox{\hyperlink{cam__periph_8c_source_l00453}{cam\+\_\+periph\+\_\+release\+\_\+locked()}}, \mbox{\hyperlink{cam__periph_8h_source_l00227}{cam\+\_\+periph\+\_\+unlock}}, \mbox{\hyperlink{scsi__sg_8c_source_l00100}{sg\+\_\+softc\+::flags}}, \mbox{\hyperlink{scsi__sg_8c_source_l00101}{sg\+\_\+softc\+::open\+\_\+count}}, \mbox{\hyperlink{scsi__sg_8c_source_l00065}{SG\+\_\+\+FLAG\+\_\+\+INVALID}}, and \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_ace91eb8c0e2dd531d79f9dce1705997a_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_af44181e4c691169a10f447ba119dce9b}\label{scsi__sg_8c_af44181e4c691169a10f447ba119dce9b}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgread@{sgread}}
\index{sgread@{sgread}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgread()}{sgread()}}
{\footnotesize\ttfamily static int sgread (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{ioflag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00794}{794}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__periph_8h_source_l00224}{cam\+\_\+periph\+\_\+lock}}, \mbox{\hyperlink{cam__periph_8h_source_l00233}{cam\+\_\+periph\+\_\+sleep}}, \mbox{\hyperlink{cam__periph_8h_source_l00227}{cam\+\_\+periph\+\_\+unlock}}, \mbox{\hyperlink{scsi__sg_8h_source_l00131}{DID\+\_\+\+ABORT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00135}{DID\+\_\+\+BAD\+\_\+\+INTR}}, \mbox{\hyperlink{scsi__sg_8h_source_l00130}{DID\+\_\+\+BAD\+\_\+\+TARGET}}, \mbox{\hyperlink{scsi__sg_8h_source_l00128}{DID\+\_\+\+BUS\+\_\+\+BUSY}}, \mbox{\hyperlink{scsi__sg_8h_source_l00133}{DID\+\_\+\+ERROR}}, \mbox{\hyperlink{scsi__sg_8h_source_l00127}{DID\+\_\+\+NO\+\_\+\+CONNECT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00126}{DID\+\_\+\+OK}}, \mbox{\hyperlink{scsi__sg_8h_source_l00132}{DID\+\_\+\+PARITY}}, \mbox{\hyperlink{scsi__sg_8h_source_l00136}{DID\+\_\+\+PASSTHROUGH}}, \mbox{\hyperlink{scsi__sg_8h_source_l00134}{DID\+\_\+\+RESET}}, \mbox{\hyperlink{scsi__sg_8h_source_l00137}{DID\+\_\+\+SOFT\+\_\+\+ERROR}}, \mbox{\hyperlink{scsi__sg_8h_source_l00129}{DID\+\_\+\+TIME\+\_\+\+OUT}}, \mbox{\hyperlink{scsi__sg_8h_source_l00152}{DRIVER\+\_\+\+SENSE}}, \mbox{\hyperlink{scsi__sg_8c_source_l00095}{sg\+\_\+rdwr\+::hdr}}, \mbox{\hyperlink{scsi__all_8c_source_l05161}{scsi\+\_\+sense\+\_\+print()}}, \mbox{\hyperlink{cam__ccb_8h_source_l00760}{ccb\+\_\+scsiio\+::scsi\+\_\+status}}, \mbox{\hyperlink{cam__ccb_8h_source_l00756}{ccb\+\_\+scsiio\+::sense\+\_\+data}}, \mbox{\hyperlink{cam__ccb_8h_source_l00757}{ccb\+\_\+scsiio\+::sense\+\_\+len}}, \mbox{\hyperlink{scsi__sg_8h_source_l00093}{SG\+\_\+\+MAX\+\_\+\+SENSE}}, \mbox{\hyperlink{scsi__sg_8c_source_l00075}{SG\+\_\+\+RDWR\+\_\+\+DONE}}, \mbox{\hyperlink{scsi__sg_8c_source_l00938}{sg\+\_\+scsiio\+\_\+status()}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, and \mbox{\hyperlink{cam__xpt_8c_source_l04630}{xpt\+\_\+free\+\_\+ccb()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_af44181e4c691169a10f447ba119dce9b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_aa0a650c5ea067b83d13a7da3472ad515}\label{scsi__sg_8c_aa0a650c5ea067b83d13a7da3472ad515}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgregister@{sgregister}}
\index{sgregister@{sgregister}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgregister()}{sgregister()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{cam_8h_a9ff49352334e6ad8ce937cf2fdf4cfb3}{cam\+\_\+status}} sgregister (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$}]{periph,  }\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00296}{296}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__ccb_8h_source_l00873}{AC\+\_\+\+LOST\+\_\+\+DEVICE}}, \mbox{\hyperlink{cam__periph_8c_source_l00413}{cam\+\_\+periph\+\_\+acquire()}}, \mbox{\hyperlink{cam__periph_8h_source_l00224}{cam\+\_\+periph\+\_\+lock}}, \mbox{\hyperlink{cam__periph_8c_source_l00453}{cam\+\_\+periph\+\_\+release\+\_\+locked()}}, \mbox{\hyperlink{cam__periph_8h_source_l00227}{cam\+\_\+periph\+\_\+unlock}}, \mbox{\hyperlink{cam_8h_source_l00137}{CAM\+\_\+\+REQ\+\_\+\+CMP}}, \mbox{\hyperlink{cam_8h_source_l00146}{CAM\+\_\+\+REQ\+\_\+\+CMP\+\_\+\+ERR}}, \mbox{\hyperlink{scsi__sg_8c_source_l00103}{sg\+\_\+softc\+::device\+\_\+stats}}, \mbox{\hyperlink{scsi__all_8h_source_l02260}{scsi\+\_\+inquiry\+\_\+data\+::flags}}, \mbox{\hyperlink{cam__ccb_8h_source_l00381}{ccb\+\_\+getdev\+::inq\+\_\+data}}, \mbox{\hyperlink{cam__ccb_8h_source_l00691}{ccb\+\_\+pathinq\+::maxio}}, \mbox{\hyperlink{scsi__sg_8c_source_l00102}{sg\+\_\+softc\+::maxio}}, \mbox{\hyperlink{cam__periph_8h_source_l00124}{cam\+\_\+periph\+::path}}, \mbox{\hyperlink{cam__periph_8h_source_l00123}{cam\+\_\+periph\+::periph\+\_\+name}}, \mbox{\hyperlink{scsi__sg_8c_source_l00140}{sg\+\_\+cdevsw}}, \mbox{\hyperlink{scsi__sg_8h_source_l00166}{SG\+\_\+\+DEFAULT\+\_\+\+HZ}}, \mbox{\hyperlink{scsi__sg_8h_source_l00167}{SG\+\_\+\+DEFAULT\+\_\+\+TIMEOUT}}, \mbox{\hyperlink{scsi__sg_8c_source_l00069}{SG\+\_\+\+STATE\+\_\+\+NORMAL}}, \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}, \mbox{\hyperlink{scsi__all_8h_source_l02262}{SID\+\_\+\+Cmd\+Que}}, \mbox{\hyperlink{scsi__all_8h_source_l02206}{SID\+\_\+\+TYPE}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, \mbox{\hyperlink{scsi__sg_8c_source_l00099}{sg\+\_\+softc\+::state}}, \mbox{\hyperlink{cam__ccb_8h_source_l00682}{ccb\+\_\+pathinq\+::transport}}, \mbox{\hyperlink{cam__periph_8h_source_l00127}{cam\+\_\+periph\+::unit\+\_\+number}}, \mbox{\hyperlink{cam__ccb_8h_source_l00310}{XPORT\+\_\+\+DEVSTAT\+\_\+\+TYPE}}, \mbox{\hyperlink{cam__xpt_8c_source_l01049}{xpt\+\_\+announce\+\_\+periph()}}, \mbox{\hyperlink{cam__xpt_8h_source_l00156}{xpt\+\_\+path\+\_\+inq()}}, \mbox{\hyperlink{cam__xpt_8c_source_l03814}{xpt\+\_\+print()}}, and \mbox{\hyperlink{cam__xpt_8c_source_l05213}{xpt\+\_\+register\+\_\+async()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_aa0a650c5ea067b83d13a7da3472ad515_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a0c6e5a44ca0417699f1e35ef9f107d8d}\label{scsi__sg_8c_a0c6e5a44ca0417699f1e35ef9f107d8d}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgsendccb@{sgsendccb}}
\index{sgsendccb@{sgsendccb}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgsendccb()}{sgsendccb()}}
{\footnotesize\ttfamily static int sgsendccb (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$}]{periph,  }\item[{union \mbox{\hyperlink{unionccb}{ccb}} $\ast$}]{ccb }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00884}{884}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__periph_8h_source_l00224}{cam\+\_\+periph\+\_\+lock}}, \mbox{\hyperlink{cam__periph_8c_source_l00793}{cam\+\_\+periph\+\_\+mapmem()}}, \mbox{\hyperlink{cam__periph_8c_source_l01207}{cam\+\_\+periph\+\_\+runccb()}}, \mbox{\hyperlink{cam__periph_8h_source_l00227}{cam\+\_\+periph\+\_\+unlock}}, \mbox{\hyperlink{cam__periph_8c_source_l01005}{cam\+\_\+periph\+\_\+unmapmem()}}, \mbox{\hyperlink{cam_8h_source_l00118}{CAM\+\_\+\+RETRY\+\_\+\+SELTO}}, \mbox{\hyperlink{scsi__sg_8c_source_l00103}{sg\+\_\+softc\+::device\+\_\+stats}}, \mbox{\hyperlink{scsi__sg_8c_source_l00102}{sg\+\_\+softc\+::maxio}}, \mbox{\hyperlink{cam_8h_source_l00122}{SF\+\_\+\+RETRY\+\_\+\+UA}}, \mbox{\hyperlink{scsi__sg_8c_source_l00931}{sgerror()}}, and \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00498}{sgioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a0c6e5a44ca0417699f1e35ef9f107d8d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=233pt]{d3/db1/scsi__sg_8c_a0c6e5a44ca0417699f1e35ef9f107d8d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a5b5ed2680231306f895af4b6f32fded2}\label{scsi__sg_8c_a5b5ed2680231306f895af4b6f32fded2}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgsendrdwr@{sgsendrdwr}}
\index{sgsendrdwr@{sgsendrdwr}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgsendrdwr()}{sgsendrdwr()}}
{\footnotesize\ttfamily static int sgsendrdwr (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structcam__periph}{cam\+\_\+periph}} $\ast$}]{periph,  }\item[{union \mbox{\hyperlink{unionccb}{ccb}} $\ast$}]{ccb }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00920}{920}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{scsi__sg_8c_source_l00103}{sg\+\_\+softc\+::device\+\_\+stats}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, and \mbox{\hyperlink{cam__xpt_8c_source_l02601}{xpt\+\_\+action()}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00672}{sgwrite()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/db1/scsi__sg_8c_a5b5ed2680231306f895af4b6f32fded2_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=242pt]{d3/db1/scsi__sg_8c_a5b5ed2680231306f895af4b6f32fded2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{scsi__sg_8c_a74e1fd4f972ce5e0cef6ddd83b56f3ee}\label{scsi__sg_8c_a74e1fd4f972ce5e0cef6ddd83b56f3ee}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgwrite@{sgwrite}}
\index{sgwrite@{sgwrite}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgwrite()}{sgwrite()}}
{\footnotesize\ttfamily static int sgwrite (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{ioflag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00672}{672}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



References \mbox{\hyperlink{cam__ccb_8h_source_l00091}{CAM\+\_\+\+DEV\+\_\+\+QFRZDIS}}, \mbox{\hyperlink{cam__ccb_8h_source_l00079}{CAM\+\_\+\+DIR\+\_\+\+IN}}, \mbox{\hyperlink{cam__ccb_8h_source_l00081}{CAM\+\_\+\+DIR\+\_\+\+NONE}}, \mbox{\hyperlink{cam__ccb_8h_source_l00080}{CAM\+\_\+\+DIR\+\_\+\+OUT}}, \mbox{\hyperlink{cam__ccb_8h_source_l01389}{cam\+\_\+fill\+\_\+csio()}}, \mbox{\hyperlink{cam__periph_8h_source_l00224}{cam\+\_\+periph\+\_\+lock}}, \mbox{\hyperlink{cam__periph_8h_source_l00227}{cam\+\_\+periph\+\_\+unlock}}, \mbox{\hyperlink{cam_8h_source_l00092}{CAM\+\_\+\+PRIORITY\+\_\+\+NORMAL}}, \mbox{\hyperlink{mmc__sim__if_8m_source_l00053}{ccb}}, \mbox{\hyperlink{cam__ccb_8h_source_l01346}{ccb\+::ccb\+\_\+h}}, \mbox{\hyperlink{cam__ccb_8h_source_l00742}{cdb\+\_\+t\+::cdb\+\_\+bytes}}, \mbox{\hyperlink{cam__ccb_8h_source_l00763}{ccb\+\_\+scsiio\+::cdb\+\_\+io}}, \mbox{\hyperlink{cam__ccb_8h_source_l01347}{ccb\+::csio}}, \mbox{\hyperlink{scsi__sg_8c_source_l00095}{sg\+\_\+rdwr\+::hdr}}, \mbox{\hyperlink{scsi__message_8h_source_l00035}{MSG\+\_\+\+SIMPLE\+\_\+\+Q\+\_\+\+TAG}}, \mbox{\hyperlink{cam__periph_8h_source_l00124}{cam\+\_\+periph\+::path}}, \mbox{\hyperlink{scsi__sg_8c_source_l00999}{scsi\+\_\+group\+\_\+len()}}, \mbox{\hyperlink{scsi__sg_8c_source_l00079}{SG\+\_\+\+CCB\+\_\+\+RDWR\+\_\+\+IO}}, \mbox{\hyperlink{scsi__sg_8h_source_l00093}{SG\+\_\+\+MAX\+\_\+\+SENSE}}, \mbox{\hyperlink{scsi__sg_8c_source_l00074}{SG\+\_\+\+RDWR\+\_\+\+INPROG}}, \mbox{\hyperlink{scsi__sg_8c_source_l00397}{sgdone()}}, \mbox{\hyperlink{scsi__sg_8c_source_l00920}{sgsendrdwr()}}, \mbox{\hyperlink{cam__periph_8h_source_l00125}{cam\+\_\+periph\+::softc}}, \mbox{\hyperlink{cam__xpt_8c_source_l04612}{xpt\+\_\+alloc\+\_\+ccb()}}, \mbox{\hyperlink{cam__xpt_8c_source_l04630}{xpt\+\_\+free\+\_\+ccb()}}, and \mbox{\hyperlink{cam__xpt_8c_source_l03520}{xpt\+\_\+setup\+\_\+ccb()}}.

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


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{scsi__sg_8c_a391d79d545431b8ffcd0bebc446ffce4}\label{scsi__sg_8c_a391d79d545431b8ffcd0bebc446ffce4}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_cdevsw@{sg\_cdevsw}}
\index{sg\_cdevsw@{sg\_cdevsw}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_cdevsw}{sg\_cdevsw}}
{\footnotesize\ttfamily struct cdevsw sg\+\_\+cdevsw\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .d\_version =    D\_VERSION,}
\DoxyCodeLine{        .d\_flags =      D\_TRACKCLOSE,}
\DoxyCodeLine{        .d\_open =       \mbox{\hyperlink{scsi__sg_8c_a6368bc1d5613fd1ac5d752e5609ce150}{sgopen}},}
\DoxyCodeLine{        .d\_close =      \mbox{\hyperlink{scsi__sg_8c_ad872400e827bdd2d10386ae4bf2a9241}{sgclose}},}
\DoxyCodeLine{        .d\_ioctl =      \mbox{\hyperlink{scsi__sg_8c_a53f307040bac4b146b703a02cc3021a9}{sgioctl}},}
\DoxyCodeLine{        .d\_write =      \mbox{\hyperlink{scsi__sg_8c_a838dcb1cf0b67bc0cf791099c27b7432}{sgwrite}},}
\DoxyCodeLine{        .d\_read =       \mbox{\hyperlink{scsi__sg_8c_ae598f964f0d18d2fb4064a8f67258ffa}{sgread}},}
\DoxyCodeLine{        .d\_name =       \textcolor{stringliteral}{"{}sg"{}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00140}{140}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00296}{sgregister()}}.

\mbox{\Hypertarget{scsi__sg_8c_ae01c37b8a7197c3871c7b46409818d19}\label{scsi__sg_8c_ae01c37b8a7197c3871c7b46409818d19}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sg\_version@{sg\_version}}
\index{sg\_version@{sg\_version}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sg\_version}{sg\_version}}
{\footnotesize\ttfamily int sg\+\_\+version = 30125\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00151}{151}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00498}{sgioctl()}}.

\mbox{\Hypertarget{scsi__sg_8c_ab1348fd9b13f0732799b0f1cf41841ae}\label{scsi__sg_8c_ab1348fd9b13f0732799b0f1cf41841ae}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgcleanup@{sgcleanup}}
\index{sgcleanup@{sgcleanup}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgcleanup}{sgcleanup}}
{\footnotesize\ttfamily \mbox{\hyperlink{cam__periph_8h_a8d863e438ef46ba796fbf3e77340b3e3}{periph\+\_\+dtor\+\_\+t}} sgcleanup\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00120}{120}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}.

\mbox{\Hypertarget{scsi__sg_8c_ad872400e827bdd2d10386ae4bf2a9241}\label{scsi__sg_8c_ad872400e827bdd2d10386ae4bf2a9241}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgclose@{sgclose}}
\index{sgclose@{sgclose}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgclose}{sgclose}}
{\footnotesize\ttfamily d\+\_\+close\+\_\+t sgclose\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00112}{112}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_a2849c5d15556c95a0c8544e241217af1}\label{scsi__sg_8c_a2849c5d15556c95a0c8544e241217af1}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgdriver@{sgdriver}}
\index{sgdriver@{sgdriver}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgdriver}{sgdriver}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structperiph__driver}{periph\+\_\+driver}} sgdriver\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=}
\DoxyCodeLine{\{}
\DoxyCodeLine{        \mbox{\hyperlink{scsi__sg_8c_ace4ffade9310780b7515aa82608c77ce}{sginit}}, \textcolor{stringliteral}{"{}sg"{}},}
\DoxyCodeLine{        TAILQ\_HEAD\_INITIALIZER(\mbox{\hyperlink{scsi__sg_8c_a2849c5d15556c95a0c8544e241217af1}{sgdriver}}.units),  0}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00133}{133}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_ace4ffade9310780b7515aa82608c77ce}\label{scsi__sg_8c_ace4ffade9310780b7515aa82608c77ce}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sginit@{sginit}}
\index{sginit@{sginit}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sginit}{sginit}}
{\footnotesize\ttfamily static void sginit (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00117}{117}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_a53f307040bac4b146b703a02cc3021a9}\label{scsi__sg_8c_a53f307040bac4b146b703a02cc3021a9}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgioctl@{sgioctl}}
\index{sgioctl@{sgioctl}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgioctl}{sgioctl}}
{\footnotesize\ttfamily d\+\_\+ioctl\+\_\+t sgioctl\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00113}{113}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_ae40ce8e6da413772f7e6571f518a1f10}\label{scsi__sg_8c_ae40ce8e6da413772f7e6571f518a1f10}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgoninvalidate@{sgoninvalidate}}
\index{sgoninvalidate@{sgoninvalidate}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgoninvalidate}{sgoninvalidate}}
{\footnotesize\ttfamily \mbox{\hyperlink{cam__periph_8h_a14602bb3ac9272ea2209d63f1e618fca}{periph\+\_\+oninv\+\_\+t}} sgoninvalidate\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00119}{119}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}.

\mbox{\Hypertarget{scsi__sg_8c_a6368bc1d5613fd1ac5d752e5609ce150}\label{scsi__sg_8c_a6368bc1d5613fd1ac5d752e5609ce150}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgopen@{sgopen}}
\index{sgopen@{sgopen}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgopen}{sgopen}}
{\footnotesize\ttfamily d\+\_\+open\+\_\+t sgopen\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00111}{111}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_ae598f964f0d18d2fb4064a8f67258ffa}\label{scsi__sg_8c_ae598f964f0d18d2fb4064a8f67258ffa}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgread@{sgread}}
\index{sgread@{sgread}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgread}{sgread}}
{\footnotesize\ttfamily d\+\_\+read\+\_\+t sgread\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00115}{115}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

\mbox{\Hypertarget{scsi__sg_8c_acd54b56f5d871039c9d268ea0158118c}\label{scsi__sg_8c_acd54b56f5d871039c9d268ea0158118c}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgregister@{sgregister}}
\index{sgregister@{sgregister}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgregister}{sgregister}}
{\footnotesize\ttfamily \mbox{\hyperlink{cam__periph_8h_a0134746116b0c19d248d1342a16aab04}{periph\+\_\+ctor\+\_\+t}} sgregister\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00118}{118}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.



Referenced by \mbox{\hyperlink{scsi__sg_8c_source_l00252}{sgasync()}}.

\mbox{\Hypertarget{scsi__sg_8c_a838dcb1cf0b67bc0cf791099c27b7432}\label{scsi__sg_8c_a838dcb1cf0b67bc0cf791099c27b7432}} 
\index{scsi\_sg.c@{scsi\_sg.c}!sgwrite@{sgwrite}}
\index{sgwrite@{sgwrite}!scsi\_sg.c@{scsi\_sg.c}}
\doxysubsubsection{\texorpdfstring{sgwrite}{sgwrite}}
{\footnotesize\ttfamily d\+\_\+write\+\_\+t sgwrite\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{scsi__sg_8c_source_l00114}{114}} of file \mbox{\hyperlink{scsi__sg_8c_source}{scsi\+\_\+sg.\+c}}.

