\hypertarget{kern__sx_8c}{}\doxysection{kern/kern\+\_\+sx.c File Reference}
\label{kern__sx_8c}\index{kern/kern\_sx.c@{kern/kern\_sx.c}}
{\ttfamily \#include \char`\"{}opt\+\_\+ddb.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}opt\+\_\+hwpmc\+\_\+hooks.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}opt\+\_\+no\+\_\+adaptive\+\_\+sx.\+h\char`\"{}}\newline
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/kdb.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/ktr.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/mutex.\+h$>$}\newline
{\ttfamily \#include $<$sys/proc.\+h$>$}\newline
{\ttfamily \#include $<$sys/sched.\+h$>$}\newline
{\ttfamily \#include $<$sys/sleepqueue.\+h$>$}\newline
{\ttfamily \#include $<$sys/sx.\+h$>$}\newline
{\ttfamily \#include $<$sys/smp.\+h$>$}\newline
{\ttfamily \#include $<$sys/sysctl.\+h$>$}\newline
Include dependency graph for kern\+\_\+sx.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d4/d7a/kern__sx_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a3cde1e96adc94f05ec2d174559d9cb8d}{SQ\+\_\+\+EXCLUSIVE\+\_\+\+QUEUE}}~0
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a725a544f24cc0de84f6ad4e3f0c1e6b0}{SQ\+\_\+\+SHARED\+\_\+\+QUEUE}}~1
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a9cc3c95f2349916c70a759a449314da5}{GIANT\+\_\+\+DECLARE}}
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a0f4702099e1ba4bb91339c5e1139caa0}{GIANT\+\_\+\+SAVE}}(work)
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a4071a8f3605a24fcdac5e4cba9d0526f}{GIANT\+\_\+\+RESTORE}}()
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a5745cf1e8f892977266d7fd5d04dbe2b}{sx\+\_\+recursed}}(sx)~((sx)-\/$>$sx\+\_\+recurse != 0)
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a0478335af0f3e1c3551f24f5a15f4af0}{\+\_\+sx\+\_\+assert}}(sx,  what,  file,  line)
\item 
\#define \mbox{\hyperlink{kern__sx_8c_a19a005c9232cefb0c074c02942bdfd16}{sx\+\_\+drop\+\_\+critical}}(x,  in\+\_\+critical,  extra\+\_\+work)~do \{ \} while (0)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{kern__sx_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static void \mbox{\hyperlink{kern__sx_8c_a126c78d982bd70dba13096237fec863c}{assert\+\_\+sx}} (const struct lock\+\_\+object $\ast$lock, int what)
\item 
static void \mbox{\hyperlink{kern__sx_8c_a1ec0c1b36987d7a629af9a5d3483233b}{lock\+\_\+sx}} (struct lock\+\_\+object $\ast$lock, uintptr\+\_\+t how)
\item 
static uintptr\+\_\+t \mbox{\hyperlink{kern__sx_8c_ae2a2d710b2b973aae2634f73b062a151}{unlock\+\_\+sx}} (struct lock\+\_\+object $\ast$lock)
\item 
void \mbox{\hyperlink{kern__sx_8c_a1e5c28ce122e977d9ef3b4e7b90c57a1}{sx\+\_\+sysinit}} (void $\ast$arg)
\item 
void \mbox{\hyperlink{kern__sx_8c_a229d232dd752a0cc68ecb23d7e6e75ab}{sx\+\_\+init\+\_\+flags}} (struct sx $\ast$sx, const char $\ast$description, int opts)
\item 
void \mbox{\hyperlink{kern__sx_8c_a7fdb7b1b5a911e5998ce226e9532adf1}{sx\+\_\+destroy}} (struct sx $\ast$sx)
\item 
int \mbox{\hyperlink{kern__sx_8c_a0a551f1ea2fe63ce69197c72240490ac}{sx\+\_\+try\+\_\+slock\+\_\+int}} (struct sx $\ast$sx LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
int \mbox{\hyperlink{kern__sx_8c_a425bba198755b8c06555c608f8d40760}{sx\+\_\+try\+\_\+slock\+\_\+}} (struct sx $\ast$sx, const char $\ast$file, int line)
\item 
int \mbox{\hyperlink{kern__sx_8c_afd5b60d873c35da597c0a18cd2310faf}{\+\_\+sx\+\_\+xlock}} (struct sx $\ast$sx, int opts, const char $\ast$file, int line)
\item 
int \mbox{\hyperlink{kern__sx_8c_aa02d82d982788408c448ea118ee15d59}{sx\+\_\+try\+\_\+xlock\+\_\+int}} (struct sx $\ast$sx LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
int \mbox{\hyperlink{kern__sx_8c_aa7726de1ed82c4a88b8c4462a3711989}{sx\+\_\+try\+\_\+xlock\+\_\+}} (struct sx $\ast$sx, const char $\ast$file, int line)
\item 
void \mbox{\hyperlink{kern__sx_8c_a4c442b0adeb98ff4b1dc1d3fe5b1d126}{\+\_\+sx\+\_\+xunlock}} (struct sx $\ast$sx, const char $\ast$file, int line)
\item 
int \mbox{\hyperlink{kern__sx_8c_a39f6a5d89e9fb03bc6cc567d185e7143}{sx\+\_\+try\+\_\+upgrade\+\_\+int}} (struct sx $\ast$sx LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
int \mbox{\hyperlink{kern__sx_8c_a4125d7b951c72f55b8714eec948b620b}{sx\+\_\+try\+\_\+upgrade\+\_\+}} (struct sx $\ast$sx, const char $\ast$file, int line)
\item 
void \mbox{\hyperlink{kern__sx_8c_ad4c92a36ddf649258004410472f013e6}{sx\+\_\+downgrade\+\_\+int}} (struct sx $\ast$sx LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
void \mbox{\hyperlink{kern__sx_8c_a1f96db1ef32cb3f6db4f8117831dab33}{sx\+\_\+downgrade\+\_\+}} (struct sx $\ast$sx, const char $\ast$file, int line)
\item 
int \mbox{\hyperlink{kern__sx_8c_acc52958e610760d9e978ecdb14365bc9}{\+\_\+sx\+\_\+xlock\+\_\+hard}} (struct sx $\ast$sx, uintptr\+\_\+t x, int opts LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
void \mbox{\hyperlink{kern__sx_8c_a038866f68f0a49227c3ec51014e077d3}{\+\_\+sx\+\_\+xunlock\+\_\+hard}} (struct sx $\ast$sx, uintptr\+\_\+t x LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
static bool \+\_\+\+\_\+always\+\_\+inline \mbox{\hyperlink{kern__sx_8c_a66ec52014dcfe61b9246cb5c1266dcad}{\+\_\+\+\_\+sx\+\_\+can\+\_\+read}} (struct thread $\ast$td, uintptr\+\_\+t x, bool fp)
\item 
static bool \+\_\+\+\_\+always\+\_\+inline \mbox{\hyperlink{kern__sx_8c_a6ed0837b4bb3b770089354c33a1b3063}{\+\_\+\+\_\+sx\+\_\+slock\+\_\+try}} (struct sx $\ast$sx, struct thread $\ast$td, uintptr\+\_\+t $\ast$xp, bool fp LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
static int \+\_\+\+\_\+noinline \mbox{\hyperlink{kern__sx_8c_a112785d75887c2f9917ba399e1a29c3f}{\+\_\+sx\+\_\+slock\+\_\+hard}} (struct sx $\ast$sx, int opts, uintptr\+\_\+t x LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
int \mbox{\hyperlink{kern__sx_8c_a358539e72da8dd6efa219dd8e33f9ff9}{\+\_\+sx\+\_\+slock\+\_\+int}} (struct sx $\ast$sx, int opts LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
int \mbox{\hyperlink{kern__sx_8c_a7b05dba72622341e9a8301eb8d388577}{\+\_\+sx\+\_\+slock}} (struct sx $\ast$sx, int opts, const char $\ast$file, int line)
\item 
static bool \+\_\+\+\_\+always\+\_\+inline \mbox{\hyperlink{kern__sx_8c_a81d688af1a27958688b946b17d0b409e}{\+\_\+sx\+\_\+sunlock\+\_\+try}} (struct sx $\ast$sx, struct thread $\ast$td, uintptr\+\_\+t $\ast$xp)
\item 
static void \+\_\+\+\_\+noinline \mbox{\hyperlink{kern__sx_8c_a93205f1e2c3bfd6b7a5a4a64adfe6759}{\+\_\+sx\+\_\+sunlock\+\_\+hard}} (struct sx $\ast$sx, struct thread $\ast$td, uintptr\+\_\+t x LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
void \mbox{\hyperlink{kern__sx_8c_aa0f8e781e61e868642aa469f791b4ebf}{\+\_\+sx\+\_\+sunlock\+\_\+int}} (struct sx $\ast$sx LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF)
\item 
void \mbox{\hyperlink{kern__sx_8c_a860700a0361b4749d75c166ea328a62b}{\+\_\+sx\+\_\+sunlock}} (struct sx $\ast$sx, const char $\ast$file, int line)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct lock\+\_\+class \mbox{\hyperlink{kern__sx_8c_a188613c956d39c9b944b9de278ce2801}{lock\+\_\+class\+\_\+sx}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{kern__sx_8c_a0478335af0f3e1c3551f24f5a15f4af0}\label{kern__sx_8c_a0478335af0f3e1c3551f24f5a15f4af0}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_assert@{\_sx\_assert}}
\index{\_sx\_assert@{\_sx\_assert}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_assert}{\_sx\_assert}}
{\footnotesize\ttfamily \#define \+\_\+sx\+\_\+assert(\begin{DoxyParamCaption}\item[{}]{sx,  }\item[{}]{what,  }\item[{}]{file,  }\item[{}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00142}{142}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a9cc3c95f2349916c70a759a449314da5}\label{kern__sx_8c_a9cc3c95f2349916c70a759a449314da5}} 
\index{kern\_sx.c@{kern\_sx.c}!GIANT\_DECLARE@{GIANT\_DECLARE}}
\index{GIANT\_DECLARE@{GIANT\_DECLARE}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{GIANT\_DECLARE}{GIANT\_DECLARE}}
{\footnotesize\ttfamily \#define GIANT\+\_\+\+DECLARE}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordtype}{int} \_giantcnt = 0;                                              \(\backslash\)}
\DoxyCodeLine{        WITNESS\_SAVE\_DECL(\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}})                                   \(\backslash\)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00087}{87}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a4071a8f3605a24fcdac5e4cba9d0526f}\label{kern__sx_8c_a4071a8f3605a24fcdac5e4cba9d0526f}} 
\index{kern\_sx.c@{kern\_sx.c}!GIANT\_RESTORE@{GIANT\_RESTORE}}
\index{GIANT\_RESTORE@{GIANT\_RESTORE}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{GIANT\_RESTORE}{GIANT\_RESTORE}}
{\footnotesize\ttfamily \#define GIANT\+\_\+\+RESTORE(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                            \(\backslash\)}
\DoxyCodeLine{        if (\_giantcnt > 0) \{                                            \(\backslash\)}
\DoxyCodeLine{                mtx\_assert(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}}, MA\_NOTOWNED);                   \(\backslash\)}
\DoxyCodeLine{                while (\_giantcnt-\/-\/)                                     \(\backslash\)}
\DoxyCodeLine{                        mtx\_lock(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}});                          \(\backslash\)}
\DoxyCodeLine{                WITNESS\_RESTORE(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}}.lock\_object, \mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}});           \(\backslash\)}
\DoxyCodeLine{        \}                                                               \(\backslash\)}
\DoxyCodeLine{\} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00102}{102}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a0f4702099e1ba4bb91339c5e1139caa0}\label{kern__sx_8c_a0f4702099e1ba4bb91339c5e1139caa0}} 
\index{kern\_sx.c@{kern\_sx.c}!GIANT\_SAVE@{GIANT\_SAVE}}
\index{GIANT\_SAVE@{GIANT\_SAVE}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{GIANT\_SAVE}{GIANT\_SAVE}}
{\footnotesize\ttfamily \#define GIANT\+\_\+\+SAVE(\begin{DoxyParamCaption}\item[{}]{work }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                            \(\backslash\)}
\DoxyCodeLine{        if (\_\_predict\_false(mtx\_owned(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}}))) \{                  \(\backslash\)}
\DoxyCodeLine{                work++;                                                 \(\backslash\)}
\DoxyCodeLine{                WITNESS\_SAVE(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}}.lock\_object, \mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}});              \(\backslash\)}
\DoxyCodeLine{                while (mtx\_owned(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}})) \{                                \(\backslash\)}
\DoxyCodeLine{                        \_giantcnt++;                                    \(\backslash\)}
\DoxyCodeLine{                        mtx\_unlock(\&\mbox{\hyperlink{kern__mutex_8c_accff5f12ab186e0ff39db70a656ece5f}{Giant}});                                \(\backslash\)}
\DoxyCodeLine{                \}                                                       \(\backslash\)}
\DoxyCodeLine{        \}                                                               \(\backslash\)}
\DoxyCodeLine{\} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00091}{91}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a3cde1e96adc94f05ec2d174559d9cb8d}\label{kern__sx_8c_a3cde1e96adc94f05ec2d174559d9cb8d}} 
\index{kern\_sx.c@{kern\_sx.c}!SQ\_EXCLUSIVE\_QUEUE@{SQ\_EXCLUSIVE\_QUEUE}}
\index{SQ\_EXCLUSIVE\_QUEUE@{SQ\_EXCLUSIVE\_QUEUE}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{SQ\_EXCLUSIVE\_QUEUE}{SQ\_EXCLUSIVE\_QUEUE}}
{\footnotesize\ttfamily \#define SQ\+\_\+\+EXCLUSIVE\+\_\+\+QUEUE~0}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00080}{80}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a725a544f24cc0de84f6ad4e3f0c1e6b0}\label{kern__sx_8c_a725a544f24cc0de84f6ad4e3f0c1e6b0}} 
\index{kern\_sx.c@{kern\_sx.c}!SQ\_SHARED\_QUEUE@{SQ\_SHARED\_QUEUE}}
\index{SQ\_SHARED\_QUEUE@{SQ\_SHARED\_QUEUE}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{SQ\_SHARED\_QUEUE}{SQ\_SHARED\_QUEUE}}
{\footnotesize\ttfamily \#define SQ\+\_\+\+SHARED\+\_\+\+QUEUE~1}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00081}{81}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a19a005c9232cefb0c074c02942bdfd16}\label{kern__sx_8c_a19a005c9232cefb0c074c02942bdfd16}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_drop\_critical@{sx\_drop\_critical}}
\index{sx\_drop\_critical@{sx\_drop\_critical}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_drop\_critical}{sx\_drop\_critical}}
{\footnotesize\ttfamily \#define sx\+\_\+drop\+\_\+critical(\begin{DoxyParamCaption}\item[{}]{x,  }\item[{}]{in\+\_\+critical,  }\item[{}]{extra\+\_\+work }\end{DoxyParamCaption})~do \{ \} while (0)}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00561}{561}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a5745cf1e8f892977266d7fd5d04dbe2b}\label{kern__sx_8c_a5745cf1e8f892977266d7fd5d04dbe2b}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_recursed@{sx\_recursed}}
\index{sx\_recursed@{sx\_recursed}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_recursed}{sx\_recursed}}
{\footnotesize\ttfamily \#define sx\+\_\+recursed(\begin{DoxyParamCaption}\item[{}]{sx }\end{DoxyParamCaption})~((sx)-\/$>$sx\+\_\+recurse != 0)}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00115}{115}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



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

\mbox{\Hypertarget{kern__sx_8c_a66ec52014dcfe61b9246cb5c1266dcad}\label{kern__sx_8c_a66ec52014dcfe61b9246cb5c1266dcad}} 
\index{kern\_sx.c@{kern\_sx.c}!\_\_sx\_can\_read@{\_\_sx\_can\_read}}
\index{\_\_sx\_can\_read@{\_\_sx\_can\_read}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_\_sx\_can\_read()}{\_\_sx\_can\_read()}}
{\footnotesize\ttfamily static bool \+\_\+\+\_\+always\+\_\+inline \+\_\+\+\_\+sx\+\_\+can\+\_\+read (\begin{DoxyParamCaption}\item[{struct thread $\ast$}]{td,  }\item[{uintptr\+\_\+t}]{x,  }\item[{bool}]{fp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00981}{981}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00993}{\+\_\+\+\_\+sx\+\_\+slock\+\_\+try()}}, and \mbox{\hyperlink{kern__sx_8c_source_l01018}{\+\_\+sx\+\_\+slock\+\_\+hard()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a66ec52014dcfe61b9246cb5c1266dcad_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a6ed0837b4bb3b770089354c33a1b3063}\label{kern__sx_8c_a6ed0837b4bb3b770089354c33a1b3063}} 
\index{kern\_sx.c@{kern\_sx.c}!\_\_sx\_slock\_try@{\_\_sx\_slock\_try}}
\index{\_\_sx\_slock\_try@{\_\_sx\_slock\_try}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_\_sx\_slock\_try()}{\_\_sx\_slock\_try()}}
{\footnotesize\ttfamily static bool \+\_\+\+\_\+always\+\_\+inline \+\_\+\+\_\+sx\+\_\+slock\+\_\+try (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{struct thread $\ast$}]{td,  }\item[{uintptr\+\_\+t $\ast$}]{xp,  }\item[{bool fp}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00993}{993}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00981}{\+\_\+\+\_\+sx\+\_\+can\+\_\+read()}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l01018}{\+\_\+sx\+\_\+slock\+\_\+hard()}}, and \mbox{\hyperlink{kern__sx_8c_source_l01254}{\+\_\+sx\+\_\+slock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=292pt]{d1/df6/kern__sx_8c_a6ed0837b4bb3b770089354c33a1b3063_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a6ed0837b4bb3b770089354c33a1b3063_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a7b05dba72622341e9a8301eb8d388577}\label{kern__sx_8c_a7b05dba72622341e9a8301eb8d388577}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_slock@{\_sx\_slock}}
\index{\_sx\_slock@{\_sx\_slock}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_slock()}{\_sx\_slock()}}
{\footnotesize\ttfamily int \+\_\+sx\+\_\+slock (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{int}]{opts,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01286}{1286}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l01254}{\+\_\+sx\+\_\+slock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a7b05dba72622341e9a8301eb8d388577_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a112785d75887c2f9917ba399e1a29c3f}\label{kern__sx_8c_a112785d75887c2f9917ba399e1a29c3f}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_slock\_hard@{\_sx\_slock\_hard}}
\index{\_sx\_slock\_hard@{\_sx\_slock\_hard}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_slock\_hard()}{\_sx\_slock\_hard()}}
{\footnotesize\ttfamily static int \+\_\+\+\_\+noinline \+\_\+sx\+\_\+slock\+\_\+hard (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{int}]{opts,  }\item[{uintptr\+\_\+t x}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01018}{1018}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00981}{\+\_\+\+\_\+sx\+\_\+can\+\_\+read()}}, \mbox{\hyperlink{kern__sx_8c_source_l00993}{\+\_\+\+\_\+sx\+\_\+slock\+\_\+try()}}, \mbox{\hyperlink{kern__sx_8c_source_l00087}{GIANT\+\_\+\+DECLARE}}, \mbox{\hyperlink{kern__sx_8c_source_l00102}{GIANT\+\_\+\+RESTORE}}, \mbox{\hyperlink{kern__sx_8c_source_l00091}{GIANT\+\_\+\+SAVE}}, \mbox{\hyperlink{subr__lock_8c_source_l00132}{lock\+\_\+delay()}}, \mbox{\hyperlink{kern__lockstat_8c_source_l00078}{lockstat\+\_\+nsecs()}}, \mbox{\hyperlink{sched__4bsd_8c_source_l01735}{sched\+\_\+tdname()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00309}{sleepq\+\_\+add()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00262}{sleepq\+\_\+lock()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00294}{sleepq\+\_\+release()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00652}{sleepq\+\_\+wait()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00667}{sleepq\+\_\+wait\+\_\+sig()}}, and \mbox{\hyperlink{kern__sx_8c_source_l00081}{SQ\+\_\+\+SHARED\+\_\+\+QUEUE}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l01254}{\+\_\+sx\+\_\+slock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a112785d75887c2f9917ba399e1a29c3f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a112785d75887c2f9917ba399e1a29c3f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a358539e72da8dd6efa219dd8e33f9ff9}\label{kern__sx_8c_a358539e72da8dd6efa219dd8e33f9ff9}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_slock\_int@{\_sx\_slock\_int}}
\index{\_sx\_slock\_int@{\_sx\_slock\_int}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_slock\_int()}{\_sx\_slock\_int()}}
{\footnotesize\ttfamily int \+\_\+sx\+\_\+slock\+\_\+int (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{int opts}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01254}{1254}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00993}{\+\_\+\+\_\+sx\+\_\+slock\+\_\+try()}}, \mbox{\hyperlink{kern__sx_8c_source_l01018}{\+\_\+sx\+\_\+slock\+\_\+hard()}}, and \mbox{\hyperlink{subr__kdb_8c_source_l00056}{kdb\+\_\+active}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l01286}{\+\_\+sx\+\_\+slock()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a358539e72da8dd6efa219dd8e33f9ff9_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=262pt]{d1/df6/kern__sx_8c_a358539e72da8dd6efa219dd8e33f9ff9_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a860700a0361b4749d75c166ea328a62b}\label{kern__sx_8c_a860700a0361b4749d75c166ea328a62b}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_sunlock@{\_sx\_sunlock}}
\index{\_sx\_sunlock@{\_sx\_sunlock}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_sunlock()}{\_sx\_sunlock()}}
{\footnotesize\ttfamily void \+\_\+sx\+\_\+sunlock (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01388}{1388}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l01365}{\+\_\+sx\+\_\+sunlock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a860700a0361b4749d75c166ea328a62b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a93205f1e2c3bfd6b7a5a4a64adfe6759}\label{kern__sx_8c_a93205f1e2c3bfd6b7a5a4a64adfe6759}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_sunlock\_hard@{\_sx\_sunlock\_hard}}
\index{\_sx\_sunlock\_hard@{\_sx\_sunlock\_hard}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_sunlock\_hard()}{\_sx\_sunlock\_hard()}}
{\footnotesize\ttfamily static void \+\_\+\+\_\+noinline \+\_\+sx\+\_\+sunlock\+\_\+hard (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{struct thread $\ast$}]{td,  }\item[{uintptr\+\_\+t x}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01316}{1316}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l01293}{\+\_\+sx\+\_\+sunlock\+\_\+try()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00992}{sleepq\+\_\+broadcast()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00262}{sleepq\+\_\+lock()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00294}{sleepq\+\_\+release()}}, \mbox{\hyperlink{kern__sx_8c_source_l00080}{SQ\+\_\+\+EXCLUSIVE\+\_\+\+QUEUE}}, and \mbox{\hyperlink{kern__sx_8c_source_l00081}{SQ\+\_\+\+SHARED\+\_\+\+QUEUE}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l01365}{\+\_\+sx\+\_\+sunlock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a93205f1e2c3bfd6b7a5a4a64adfe6759_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a93205f1e2c3bfd6b7a5a4a64adfe6759_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_aa0f8e781e61e868642aa469f791b4ebf}\label{kern__sx_8c_aa0f8e781e61e868642aa469f791b4ebf}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_sunlock\_int@{\_sx\_sunlock\_int}}
\index{\_sx\_sunlock\_int@{\_sx\_sunlock\_int}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_sunlock\_int()}{\_sx\_sunlock\_int()}}
{\footnotesize\ttfamily void \+\_\+sx\+\_\+sunlock\+\_\+int (\begin{DoxyParamCaption}\item[{struct sx $\ast$sx}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01365}{1365}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00142}{\+\_\+sx\+\_\+assert}}, \mbox{\hyperlink{kern__sx_8c_source_l01316}{\+\_\+sx\+\_\+sunlock\+\_\+hard()}}, and \mbox{\hyperlink{kern__sx_8c_source_l01293}{\+\_\+sx\+\_\+sunlock\+\_\+try()}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l01388}{\+\_\+sx\+\_\+sunlock()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_aa0f8e781e61e868642aa469f791b4ebf_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=286pt]{d1/df6/kern__sx_8c_aa0f8e781e61e868642aa469f791b4ebf_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a81d688af1a27958688b946b17d0b409e}\label{kern__sx_8c_a81d688af1a27958688b946b17d0b409e}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_sunlock\_try@{\_sx\_sunlock\_try}}
\index{\_sx\_sunlock\_try@{\_sx\_sunlock\_try}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_sunlock\_try()}{\_sx\_sunlock\_try()}}
{\footnotesize\ttfamily static bool \+\_\+\+\_\+always\+\_\+inline \+\_\+sx\+\_\+sunlock\+\_\+try (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{struct thread $\ast$}]{td,  }\item[{uintptr\+\_\+t $\ast$}]{xp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l01293}{1293}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l01316}{\+\_\+sx\+\_\+sunlock\+\_\+hard()}}, and \mbox{\hyperlink{kern__sx_8c_source_l01365}{\+\_\+sx\+\_\+sunlock\+\_\+int()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a81d688af1a27958688b946b17d0b409e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_afd5b60d873c35da597c0a18cd2310faf}\label{kern__sx_8c_afd5b60d873c35da597c0a18cd2310faf}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_xlock@{\_sx\_xlock}}
\index{\_sx\_xlock@{\_sx\_xlock}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_xlock()}{\_sx\_xlock()}}
{\footnotesize\ttfamily int \+\_\+sx\+\_\+xlock (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{int}]{opts,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00316}{316}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00571}{\+\_\+sx\+\_\+xlock\+\_\+hard()}}, and \mbox{\hyperlink{subr__kdb_8c_source_l00056}{kdb\+\_\+active}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_afd5b60d873c35da597c0a18cd2310faf_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_acc52958e610760d9e978ecdb14365bc9}\label{kern__sx_8c_acc52958e610760d9e978ecdb14365bc9}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_xlock\_hard@{\_sx\_xlock\_hard}}
\index{\_sx\_xlock\_hard@{\_sx\_xlock\_hard}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_xlock\_hard()}{\_sx\_xlock\_hard()}}
{\footnotesize\ttfamily int \+\_\+sx\+\_\+xlock\+\_\+hard (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{uintptr\+\_\+t}]{x,  }\item[{int opts}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00571}{571}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00087}{GIANT\+\_\+\+DECLARE}}, \mbox{\hyperlink{kern__sx_8c_source_l00102}{GIANT\+\_\+\+RESTORE}}, \mbox{\hyperlink{kern__sx_8c_source_l00091}{GIANT\+\_\+\+SAVE}}, \mbox{\hyperlink{subr__lock_8c_source_l00132}{lock\+\_\+delay()}}, \mbox{\hyperlink{kern__lockstat_8c_source_l00078}{lockstat\+\_\+nsecs()}}, \mbox{\hyperlink{sched__4bsd_8c_source_l01735}{sched\+\_\+tdname()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00309}{sleepq\+\_\+add()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00262}{sleepq\+\_\+lock()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00294}{sleepq\+\_\+release()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00652}{sleepq\+\_\+wait()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00667}{sleepq\+\_\+wait\+\_\+sig()}}, \mbox{\hyperlink{kern__sx_8c_source_l00080}{SQ\+\_\+\+EXCLUSIVE\+\_\+\+QUEUE}}, and \mbox{\hyperlink{kern__sx_8c_source_l00561}{sx\+\_\+drop\+\_\+critical}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00316}{\+\_\+sx\+\_\+xlock()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_acc52958e610760d9e978ecdb14365bc9_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=273pt]{d1/df6/kern__sx_8c_acc52958e610760d9e978ecdb14365bc9_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a4c442b0adeb98ff4b1dc1d3fe5b1d126}\label{kern__sx_8c_a4c442b0adeb98ff4b1dc1d3fe5b1d126}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_xunlock@{\_sx\_xunlock}}
\index{\_sx\_xunlock@{\_sx\_xunlock}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_xunlock()}{\_sx\_xunlock()}}
{\footnotesize\ttfamily void \+\_\+sx\+\_\+xunlock (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00403}{403}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00142}{\+\_\+sx\+\_\+assert}}, and \mbox{\hyperlink{kern__sx_8c_source_l00913}{\+\_\+sx\+\_\+xunlock\+\_\+hard()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a4c442b0adeb98ff4b1dc1d3fe5b1d126_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a038866f68f0a49227c3ec51014e077d3}\label{kern__sx_8c_a038866f68f0a49227c3ec51014e077d3}} 
\index{kern\_sx.c@{kern\_sx.c}!\_sx\_xunlock\_hard@{\_sx\_xunlock\_hard}}
\index{\_sx\_xunlock\_hard@{\_sx\_xunlock\_hard}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{\_sx\_xunlock\_hard()}{\_sx\_xunlock\_hard()}}
{\footnotesize\ttfamily void \+\_\+sx\+\_\+xunlock\+\_\+hard (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{uintptr\+\_\+t x}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00913}{913}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{subr__sleepqueue_8c_source_l00992}{sleepq\+\_\+broadcast()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00262}{sleepq\+\_\+lock()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00294}{sleepq\+\_\+release()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00424}{sleepq\+\_\+sleepcnt()}}, \mbox{\hyperlink{kern__sx_8c_source_l00080}{SQ\+\_\+\+EXCLUSIVE\+\_\+\+QUEUE}}, and \mbox{\hyperlink{kern__sx_8c_source_l00081}{SQ\+\_\+\+SHARED\+\_\+\+QUEUE}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00403}{\+\_\+sx\+\_\+xunlock()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a038866f68f0a49227c3ec51014e077d3_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=297pt]{d1/df6/kern__sx_8c_a038866f68f0a49227c3ec51014e077d3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a126c78d982bd70dba13096237fec863c}\label{kern__sx_8c_a126c78d982bd70dba13096237fec863c}} 
\index{kern\_sx.c@{kern\_sx.c}!assert\_sx@{assert\_sx}}
\index{assert\_sx@{assert\_sx}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{assert\_sx()}{assert\_sx()}}
{\footnotesize\ttfamily void assert\+\_\+sx (\begin{DoxyParamCaption}\item[{const struct lock\+\_\+object $\ast$}]{lock,  }\item[{int}]{what }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00178}{178}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a1ec0c1b36987d7a629af9a5d3483233b}\label{kern__sx_8c_a1ec0c1b36987d7a629af9a5d3483233b}} 
\index{kern\_sx.c@{kern\_sx.c}!lock\_sx@{lock\_sx}}
\index{lock\_sx@{lock\_sx}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{lock\_sx()}{lock\_sx()}}
{\footnotesize\ttfamily void lock\+\_\+sx (\begin{DoxyParamCaption}\item[{struct lock\+\_\+object $\ast$}]{lock,  }\item[{uintptr\+\_\+t}]{how }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00185}{185}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.

\mbox{\Hypertarget{kern__sx_8c_a7fdb7b1b5a911e5998ce226e9532adf1}\label{kern__sx_8c_a7fdb7b1b5a911e5998ce226e9532adf1}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_destroy@{sx\_destroy}}
\index{sx\_destroy@{sx\_destroy}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_destroy()}{sx\_destroy()}}
{\footnotesize\ttfamily void sx\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00266}{266}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{subr__lock_8c_source_l00108}{lock\+\_\+destroy()}}.



Referenced by \mbox{\hyperlink{subr__epoch_8c_source_l00417}{epoch\+\_\+free()}}, \mbox{\hyperlink{uipc__sem_8c_source_l01053}{ksem\+\_\+module\+\_\+destroy()}}, \mbox{\hyperlink{kern__lockf_8c_source_l00417}{lf\+\_\+advlockasync()}}, \mbox{\hyperlink{kern__lockf_8c_source_l00763}{lf\+\_\+purgelocks()}}, \mbox{\hyperlink{uipc__mqueue_8c_source_l00698}{mqfs\+\_\+uninit()}}, \mbox{\hyperlink{kern__rmlock_8c_source_l00319}{rm\+\_\+destroy()}}, \mbox{\hyperlink{sysv__shm_8c_source_l01005}{shmunload()}}, and \mbox{\hyperlink{uipc__socket_8c_source_l00461}{sodealloc()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=265pt]{d1/df6/kern__sx_8c_a7fdb7b1b5a911e5998ce226e9532adf1_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a7fdb7b1b5a911e5998ce226e9532adf1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a1f96db1ef32cb3f6db4f8117831dab33}\label{kern__sx_8c_a1f96db1ef32cb3f6db4f8117831dab33}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_downgrade\_@{sx\_downgrade\_}}
\index{sx\_downgrade\_@{sx\_downgrade\_}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_downgrade\_()}{sx\_downgrade\_()}}
{\footnotesize\ttfamily void sx\+\_\+downgrade\+\_\+ (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00541}{541}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00477}{sx\+\_\+downgrade\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a1f96db1ef32cb3f6db4f8117831dab33_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_ad4c92a36ddf649258004410472f013e6}\label{kern__sx_8c_ad4c92a36ddf649258004410472f013e6}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_downgrade\_int@{sx\_downgrade\_int}}
\index{sx\_downgrade\_int@{sx\_downgrade\_int}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_downgrade\_int()}{sx\_downgrade\_int()}}
{\footnotesize\ttfamily void sx\+\_\+downgrade\+\_\+int (\begin{DoxyParamCaption}\item[{struct sx $\ast$sx}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00477}{477}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00142}{\+\_\+sx\+\_\+assert}}, \mbox{\hyperlink{kern__shutdown_8c_source_l00884}{panic()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00992}{sleepq\+\_\+broadcast()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00262}{sleepq\+\_\+lock()}}, \mbox{\hyperlink{subr__sleepqueue_8c_source_l00294}{sleepq\+\_\+release()}}, \mbox{\hyperlink{kern__sx_8c_source_l00081}{SQ\+\_\+\+SHARED\+\_\+\+QUEUE}}, and \mbox{\hyperlink{kern__sx_8c_source_l00115}{sx\+\_\+recursed}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00541}{sx\+\_\+downgrade\+\_\+()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_ad4c92a36ddf649258004410472f013e6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=313pt]{d1/df6/kern__sx_8c_ad4c92a36ddf649258004410472f013e6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a229d232dd752a0cc68ecb23d7e6e75ab}\label{kern__sx_8c_a229d232dd752a0cc68ecb23d7e6e75ab}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_init\_flags@{sx\_init\_flags}}
\index{sx\_init\_flags@{sx\_init\_flags}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_init\_flags()}{sx\_init\_flags()}}
{\footnotesize\ttfamily void sx\+\_\+init\+\_\+flags (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{description,  }\item[{int}]{opts }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00236}{236}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{subr__stats_8c_source_l00002}{flags}}, \mbox{\hyperlink{kern__sx_8c_source_l00127}{lock\+\_\+class\+\_\+sx}}, and \mbox{\hyperlink{subr__lock_8c_source_l00083}{lock\+\_\+init()}}.



Referenced by \mbox{\hyperlink{kern__proc_8c_source_l00182}{procinit()}}, \mbox{\hyperlink{kern__rmlock_8c_source_l00280}{rm\+\_\+init\+\_\+flags()}}, and \mbox{\hyperlink{kern__sx_8c_source_l00228}{sx\+\_\+sysinit()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=251pt]{d1/df6/kern__sx_8c_a229d232dd752a0cc68ecb23d7e6e75ab_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a229d232dd752a0cc68ecb23d7e6e75ab_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a1e5c28ce122e977d9ef3b4e7b90c57a1}\label{kern__sx_8c_a1e5c28ce122e977d9ef3b4e7b90c57a1}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_sysinit@{sx\_sysinit}}
\index{sx\_sysinit@{sx\_sysinit}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_sysinit()}{sx\_sysinit()}}
{\footnotesize\ttfamily void sx\+\_\+sysinit (\begin{DoxyParamCaption}\item[{void $\ast$}]{arg }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00228}{228}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00236}{sx\+\_\+init\+\_\+flags()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/df6/kern__sx_8c_a1e5c28ce122e977d9ef3b4e7b90c57a1_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a425bba198755b8c06555c608f8d40760}\label{kern__sx_8c_a425bba198755b8c06555c608f8d40760}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_try\_slock\_@{sx\_try\_slock\_}}
\index{sx\_try\_slock\_@{sx\_try\_slock\_}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_try\_slock\_()}{sx\_try\_slock\_()}}
{\footnotesize\ttfamily int sx\+\_\+try\+\_\+slock\+\_\+ (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00309}{309}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00276}{sx\+\_\+try\+\_\+slock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=294pt]{d1/df6/kern__sx_8c_a425bba198755b8c06555c608f8d40760_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a0a551f1ea2fe63ce69197c72240490ac}\label{kern__sx_8c_a0a551f1ea2fe63ce69197c72240490ac}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_try\_slock\_int@{sx\_try\_slock\_int}}
\index{sx\_try\_slock\_int@{sx\_try\_slock\_int}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_try\_slock\_int()}{sx\_try\_slock\_int()}}
{\footnotesize\ttfamily int sx\+\_\+try\+\_\+slock\+\_\+int (\begin{DoxyParamCaption}\item[{struct sx $\ast$sx}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00276}{276}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{subr__kdb_8c_source_l00056}{kdb\+\_\+active}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00309}{sx\+\_\+try\+\_\+slock\+\_\+()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=294pt]{d1/df6/kern__sx_8c_a0a551f1ea2fe63ce69197c72240490ac_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a4125d7b951c72f55b8714eec948b620b}\label{kern__sx_8c_a4125d7b951c72f55b8714eec948b620b}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_try\_upgrade\_@{sx\_try\_upgrade\_}}
\index{sx\_try\_upgrade\_@{sx\_try\_upgrade\_}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_try\_upgrade\_()}{sx\_try\_upgrade\_()}}
{\footnotesize\ttfamily int sx\+\_\+try\+\_\+upgrade\+\_\+ (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00467}{467}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00426}{sx\+\_\+try\+\_\+upgrade\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=323pt]{d1/df6/kern__sx_8c_a4125d7b951c72f55b8714eec948b620b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_a39f6a5d89e9fb03bc6cc567d185e7143}\label{kern__sx_8c_a39f6a5d89e9fb03bc6cc567d185e7143}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_try\_upgrade\_int@{sx\_try\_upgrade\_int}}
\index{sx\_try\_upgrade\_int@{sx\_try\_upgrade\_int}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_try\_upgrade\_int()}{sx\_try\_upgrade\_int()}}
{\footnotesize\ttfamily int sx\+\_\+try\+\_\+upgrade\+\_\+int (\begin{DoxyParamCaption}\item[{struct sx $\ast$sx}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00426}{426}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00142}{\+\_\+sx\+\_\+assert}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00467}{sx\+\_\+try\+\_\+upgrade\+\_\+()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=323pt]{d1/df6/kern__sx_8c_a39f6a5d89e9fb03bc6cc567d185e7143_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_aa7726de1ed82c4a88b8c4462a3711989}\label{kern__sx_8c_aa7726de1ed82c4a88b8c4462a3711989}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_try\_xlock\_@{sx\_try\_xlock\_}}
\index{sx\_try\_xlock\_@{sx\_try\_xlock\_}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_try\_xlock\_()}{sx\_try\_xlock\_()}}
{\footnotesize\ttfamily int sx\+\_\+try\+\_\+xlock\+\_\+ (\begin{DoxyParamCaption}\item[{struct sx $\ast$}]{sx,  }\item[{const char $\ast$}]{file,  }\item[{int}]{line }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00396}{396}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{kern__sx_8c_source_l00347}{sx\+\_\+try\+\_\+xlock\+\_\+int()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=295pt]{d1/df6/kern__sx_8c_aa7726de1ed82c4a88b8c4462a3711989_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_aa02d82d982788408c448ea118ee15d59}\label{kern__sx_8c_aa02d82d982788408c448ea118ee15d59}} 
\index{kern\_sx.c@{kern\_sx.c}!sx\_try\_xlock\_int@{sx\_try\_xlock\_int}}
\index{sx\_try\_xlock\_int@{sx\_try\_xlock\_int}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{sx\_try\_xlock\_int()}{sx\_try\_xlock\_int()}}
{\footnotesize\ttfamily int sx\+\_\+try\+\_\+xlock\+\_\+int (\begin{DoxyParamCaption}\item[{struct sx $\ast$sx}]{LOCK\+\_\+\+FILE\+\_\+\+LINE\+\_\+\+ARG\+\_\+\+DEF }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00347}{347}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



References \mbox{\hyperlink{subr__kdb_8c_source_l00056}{kdb\+\_\+active}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00396}{sx\+\_\+try\+\_\+xlock\+\_\+()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=295pt]{d1/df6/kern__sx_8c_aa02d82d982788408c448ea118ee15d59_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{kern__sx_8c_ae2a2d710b2b973aae2634f73b062a151}\label{kern__sx_8c_ae2a2d710b2b973aae2634f73b062a151}} 
\index{kern\_sx.c@{kern\_sx.c}!unlock\_sx@{unlock\_sx}}
\index{unlock\_sx@{unlock\_sx}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{unlock\_sx()}{unlock\_sx()}}
{\footnotesize\ttfamily uintptr\+\_\+t unlock\+\_\+sx (\begin{DoxyParamCaption}\item[{struct lock\+\_\+object $\ast$}]{lock }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00197}{197}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{kern__sx_8c_a188613c956d39c9b944b9de278ce2801}\label{kern__sx_8c_a188613c956d39c9b944b9de278ce2801}} 
\index{kern\_sx.c@{kern\_sx.c}!lock\_class\_sx@{lock\_class\_sx}}
\index{lock\_class\_sx@{lock\_class\_sx}!kern\_sx.c@{kern\_sx.c}}
\doxysubsubsection{\texorpdfstring{lock\_class\_sx}{lock\_class\_sx}}
{\footnotesize\ttfamily struct lock\+\_\+class lock\+\_\+class\+\_\+sx}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .lc\_name = \textcolor{stringliteral}{"{}sx"{}},}
\DoxyCodeLine{        .lc\_flags = LC\_SLEEPLOCK | LC\_SLEEPABLE | LC\_RECURSABLE | LC\_UPGRADABLE,}
\DoxyCodeLine{        .lc\_assert = \mbox{\hyperlink{kern__sx_8c_a126c78d982bd70dba13096237fec863c}{assert\_sx}},}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{        .lc\_lock = \mbox{\hyperlink{kern__sx_8c_a1ec0c1b36987d7a629af9a5d3483233b}{lock\_sx}},}
\DoxyCodeLine{        .lc\_unlock = \mbox{\hyperlink{kern__sx_8c_ae2a2d710b2b973aae2634f73b062a151}{unlock\_sx}},}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{kern__sx_8c_source_l00127}{127}} of file \mbox{\hyperlink{kern__sx_8c_source}{kern\+\_\+sx.\+c}}.



Referenced by \mbox{\hyperlink{kern__sx_8c_source_l00236}{sx\+\_\+init\+\_\+flags()}}.

