\hypertarget{ng__bluetooth_8c_source}{}\doxysection{ng\+\_\+bluetooth.\+c}
\label{ng__bluetooth_8c_source}\index{netgraph/bluetooth/common/ng\_bluetooth.c@{netgraph/bluetooth/common/ng\_bluetooth.c}}
\mbox{\hyperlink{ng__bluetooth_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00002}00002 \textcolor{comment}{ * bluetooth.c}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00003}00003 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00004}00004 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00005}00005 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00006}00006 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00008}00008 \textcolor{comment}{ * Copyright (c) 2001-\/2002 Maksim Yevmenkin <m\_evmenkin@yahoo.com>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00009}00009 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00010}00010 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00011}00011 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00012}00012 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00013}00013 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00014}00014 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00015}00015 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00016}00016 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00017}00017 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00018}00018 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00019}00019 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00020}00020 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00021}00021 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00022}00022 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00023}00023 \textcolor{comment}{ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00024}00024 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00025}00025 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00026}00026 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00027}00027 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00028}00028 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00029}00029 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00030}00030 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00031}00031 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00032}00032 \textcolor{comment}{ * \$Id: ng\_bluetooth.c,v 1.3 2003/04/26 22:37:31 max Exp \$}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00033}00033 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/errno.h>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{ng__bluetooth_8h}{netgraph/bluetooth/include/ng\_bluetooth.h}}>}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00045}00045 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00046}00046 \textcolor{comment}{ * Bluetooth stack sysctl globals}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00047}00047 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00049}\mbox{\hyperlink{ng__bluetooth_8c_ad1b82786cff52b26c122a65b6e1c7a6b}{00049}} \textcolor{keyword}{static} u\_int32\_t        \mbox{\hyperlink{ng__bluetooth_8c_ad1b82786cff52b26c122a65b6e1c7a6b}{bluetooth\_hci\_command\_timeout\_value}}  = 5;   \textcolor{comment}{/* sec */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00050}\mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{00050}} \textcolor{keyword}{static} u\_int32\_t        \mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}}  = 60;  \textcolor{comment}{/* sec */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00051}\mbox{\hyperlink{ng__bluetooth_8c_a33cc806cebcc98aa37dfb8a852df6941}{00051}} \textcolor{keyword}{static} u\_int32\_t        \mbox{\hyperlink{ng__bluetooth_8c_a33cc806cebcc98aa37dfb8a852df6941}{bluetooth\_hci\_max\_neighbor\_age\_value}} = 600; \textcolor{comment}{/* sec */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00052}\mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{00052}} \textcolor{keyword}{static} u\_int32\_t        \mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}}    = 60;  \textcolor{comment}{/* sec */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00053}\mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{00053}} \textcolor{keyword}{static} u\_int32\_t        \mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{bluetooth\_l2cap\_ertx\_timeout\_value}}   = 300; \textcolor{comment}{/* sec */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00054}\mbox{\hyperlink{ng__bluetooth_8c_aa063515d2822d11b67af185ff56c68ca}{00054}} \textcolor{keyword}{static} u\_int32\_t        \mbox{\hyperlink{ng__bluetooth_8c_aa063515d2822d11b67af185ff56c68ca}{bluetooth\_sco\_rtx\_timeout\_value}}      = 60;  \textcolor{comment}{/* sec */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00056}00056 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00057}00057 \textcolor{comment}{ * Define sysctl tree that shared by other parts of Bluetooth stack}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00058}00058 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00060}\mbox{\hyperlink{ng__bluetooth_8c_a3c59ac7d808011194bfbbe652810f4e4}{00060}} \mbox{\hyperlink{ng__bluetooth_8c_a3c59ac7d808011194bfbbe652810f4e4}{SYSCTL\_NODE}}(\_net, OID\_AUTO, bluetooth, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00061}00061     \textcolor{stringliteral}{"{}Bluetooth family"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00062}\mbox{\hyperlink{ng__bluetooth_8c_accd33c62592698ffe1257baef4160aa8}{00062}} \mbox{\hyperlink{ng__bluetooth_8c_accd33c62592698ffe1257baef4160aa8}{SYSCTL\_INT}}(\_net\_bluetooth, OID\_AUTO, \mbox{\hyperlink{netflow_8h_ab6d7b6f8c2ceaba7acda80aaf05f4899}{version}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00063}00063         CTLFLAG\_RD, SYSCTL\_NULL\_INT\_PTR, \mbox{\hyperlink{ng__bluetooth_8h_aa0d4fe7aaf68485ee71a69d38410da16}{NG\_BLUETOOTH\_VERSION}}, \textcolor{stringliteral}{"{}Version of the stack"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00065}00065 \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00066}00066 \textcolor{comment}{ * HCI}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00067}00067 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00069}\mbox{\hyperlink{ng__bluetooth_8c_a57d7cbfb7bae0f160b97b4ea1f97bdf4}{00069}} \mbox{\hyperlink{ng__bluetooth_8c_a3c59ac7d808011194bfbbe652810f4e4}{SYSCTL\_NODE}}(\_net\_bluetooth, OID\_AUTO, hci, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00070}00070     \textcolor{stringliteral}{"{}Bluetooth HCI family"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00072}00072 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00073}\mbox{\hyperlink{ng__bluetooth_8c_ab8ca396bc1e772f87ce7c702eaab3329}{00073}} \mbox{\hyperlink{ng__bluetooth_8c_ab8ca396bc1e772f87ce7c702eaab3329}{bluetooth\_set\_hci\_command\_timeout\_value}}(SYSCTL\_HANDLER\_ARGS)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00074}00074 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00075}00075         u\_int32\_t       value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00076}00076         \textcolor{keywordtype}{int}             error;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00078}00078         value = \mbox{\hyperlink{ng__bluetooth_8c_ad1b82786cff52b26c122a65b6e1c7a6b}{bluetooth\_hci\_command\_timeout\_value}};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00079}00079         error = sysctl\_handle\_int(oidp, \&value, 0, req);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00080}00080         \textcolor{keywordflow}{if} (error == 0 \&\& req-\/>newptr != NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00081}00081                 \textcolor{keywordflow}{if} (value > 0)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00082}00082                         \mbox{\hyperlink{ng__bluetooth_8c_ad1b82786cff52b26c122a65b6e1c7a6b}{bluetooth\_hci\_command\_timeout\_value}} = value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00083}00083                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00084}00084                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00085}00085         \}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00087}00087         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00088}00088 \} \textcolor{comment}{/* bluetooth\_set\_hci\_command\_timeout\_value */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00090}\mbox{\hyperlink{ng__bluetooth_8c_ae5bba1ee2e61c652667edcf298148751}{00090}} \mbox{\hyperlink{ng__bluetooth_8c_ae5bba1ee2e61c652667edcf298148751}{SYSCTL\_PROC}}(\_net\_bluetooth\_hci, OID\_AUTO, command\_timeout,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00091}00091         CTLTYPE\_INT | CTLFLAG\_RW | CTLFLAG\_NEEDGIANT,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00092}00092         \&\mbox{\hyperlink{ng__bluetooth_8c_ad1b82786cff52b26c122a65b6e1c7a6b}{bluetooth\_hci\_command\_timeout\_value}}, 5, }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00093}00093         \mbox{\hyperlink{ng__bluetooth_8c_ab8ca396bc1e772f87ce7c702eaab3329}{bluetooth\_set\_hci\_command\_timeout\_value}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00094}00094         \textcolor{stringliteral}{"{}I"{}}, \textcolor{stringliteral}{"{}HCI command timeout (sec)"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00096}00096 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00097}\mbox{\hyperlink{ng__bluetooth_8c_a6c4dd43e5c49a75a6b05f14d82084e5b}{00097}} \mbox{\hyperlink{ng__bluetooth_8c_a6c4dd43e5c49a75a6b05f14d82084e5b}{bluetooth\_set\_hci\_connect\_timeout\_value}}(SYSCTL\_HANDLER\_ARGS)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00098}00098 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00099}00099         u\_int32\_t       value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00100}00100         \textcolor{keywordtype}{int}             error;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00102}00102         value = \mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00103}00103         error = sysctl\_handle\_int(oidp, \&value, 0, req);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00104}00104         \textcolor{keywordflow}{if} (error == 0 \&\& req-\/>newptr != NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00105}00105                 \textcolor{keywordflow}{if} (0 < value \&\& value <= \mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00106}00106                         \mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}} = value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00107}00107                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00108}00108                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00109}00109         \}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00110}00110 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00111}00111         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00112}00112 \} \textcolor{comment}{/* bluetooth\_set\_hci\_connect\_timeout\_value */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00114}\mbox{\hyperlink{ng__bluetooth_8c_a3952140195039df6a97482b919c37a52}{00114}} \mbox{\hyperlink{ng__bluetooth_8c_ae5bba1ee2e61c652667edcf298148751}{SYSCTL\_PROC}}(\_net\_bluetooth\_hci, OID\_AUTO, connection\_timeout, }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00115}00115         CTLTYPE\_INT | CTLFLAG\_RW | CTLFLAG\_NEEDGIANT,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00116}00116         \&\mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}}, 60, }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00117}00117         \mbox{\hyperlink{ng__bluetooth_8c_a6c4dd43e5c49a75a6b05f14d82084e5b}{bluetooth\_set\_hci\_connect\_timeout\_value}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00118}00118         \textcolor{stringliteral}{"{}I"{}}, \textcolor{stringliteral}{"{}HCI connect timeout (sec)"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00120}\mbox{\hyperlink{ng__bluetooth_8c_aeae145f2f7d2b59105b827ec16deecf3}{00120}} \mbox{\hyperlink{ng__bluetooth_8c_aeae145f2f7d2b59105b827ec16deecf3}{SYSCTL\_UINT}}(\_net\_bluetooth\_hci, OID\_AUTO, max\_neighbor\_age, CTLFLAG\_RW,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00121}00121         \&\mbox{\hyperlink{ng__bluetooth_8c_a33cc806cebcc98aa37dfb8a852df6941}{bluetooth\_hci\_max\_neighbor\_age\_value}}, 600,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00122}00122         \textcolor{stringliteral}{"{}Maximal HCI neighbor cache entry age (sec)"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00124}00124 \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00125}00125 \textcolor{comment}{ * L2CAP}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00126}00126 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00127}00127 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00128}\mbox{\hyperlink{ng__bluetooth_8c_a830726cff329dd7d969362835b36bbfd}{00128}} \mbox{\hyperlink{ng__bluetooth_8c_a3c59ac7d808011194bfbbe652810f4e4}{SYSCTL\_NODE}}(\_net\_bluetooth, OID\_AUTO, l2cap, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00129}00129     \textcolor{stringliteral}{"{}Bluetooth L2CAP family"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00130}00130 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00131}00131 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00132}\mbox{\hyperlink{ng__bluetooth_8c_ab33d13349153b1ae440a06f5eb9dee9c}{00132}} \mbox{\hyperlink{ng__bluetooth_8c_ab33d13349153b1ae440a06f5eb9dee9c}{bluetooth\_set\_l2cap\_rtx\_timeout\_value}}(SYSCTL\_HANDLER\_ARGS)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00133}00133 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00134}00134         u\_int32\_t       value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00135}00135         \textcolor{keywordtype}{int}             error;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00136}00136 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00137}00137         value = \mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00138}00138         error = sysctl\_handle\_int(oidp, \&value, 0, req);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00139}00139         \textcolor{keywordflow}{if} (error == 0 \&\& req-\/>newptr != NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00140}00140                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}} <= value \&\&}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00141}00141                     value <= \mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{bluetooth\_l2cap\_ertx\_timeout\_value}})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00142}00142                         \mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}} = value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00143}00143                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00144}00144                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00145}00145         \}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00146}00146 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00147}00147         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00148}00148 \} \textcolor{comment}{/* bluetooth\_set\_l2cap\_rtx\_timeout\_value */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00150}\mbox{\hyperlink{ng__bluetooth_8c_a79423206273c80e327042cf66253eb5c}{00150}} \mbox{\hyperlink{ng__bluetooth_8c_ae5bba1ee2e61c652667edcf298148751}{SYSCTL\_PROC}}(\_net\_bluetooth\_l2cap, OID\_AUTO, rtx\_timeout,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00151}00151         CTLTYPE\_INT | CTLFLAG\_RW | CTLFLAG\_NEEDGIANT,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00152}00152         \&\mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}}, 60,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00153}00153         \mbox{\hyperlink{ng__bluetooth_8c_ab33d13349153b1ae440a06f5eb9dee9c}{bluetooth\_set\_l2cap\_rtx\_timeout\_value}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00154}00154         \textcolor{stringliteral}{"{}I"{}}, \textcolor{stringliteral}{"{}L2CAP RTX timeout (sec)"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00156}00156 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00157}\mbox{\hyperlink{ng__bluetooth_8c_a3349d0b0d8fa8a135ffa7c4b8d960e59}{00157}} \mbox{\hyperlink{ng__bluetooth_8c_a3349d0b0d8fa8a135ffa7c4b8d960e59}{bluetooth\_set\_l2cap\_ertx\_timeout\_value}}(SYSCTL\_HANDLER\_ARGS)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00158}00158 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00159}00159         u\_int32\_t       value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00160}00160         \textcolor{keywordtype}{int}             error;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00162}00162         value = \mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{bluetooth\_l2cap\_ertx\_timeout\_value}};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00163}00163         error = sysctl\_handle\_int(oidp, \&value, 0, req);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00164}00164         \textcolor{keywordflow}{if} (error == 0 \&\& req-\/>newptr != NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00165}00165                 \textcolor{keywordflow}{if} (value >= \mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00166}00166                         \mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{bluetooth\_l2cap\_ertx\_timeout\_value}} = value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00167}00167                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00168}00168                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00169}00169         \}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00170}00170 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00171}00171         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00172}00172 \} \textcolor{comment}{/* bluetooth\_set\_l2cap\_ertx\_timeout\_value */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00173}00173 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00174}\mbox{\hyperlink{ng__bluetooth_8c_a2174ef20f71eefd591976f22ab202555}{00174}} \mbox{\hyperlink{ng__bluetooth_8c_ae5bba1ee2e61c652667edcf298148751}{SYSCTL\_PROC}}(\_net\_bluetooth\_l2cap, OID\_AUTO, ertx\_timeout,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00175}00175         CTLTYPE\_INT | CTLFLAG\_RW | CTLFLAG\_NEEDGIANT,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00176}00176         \&\mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{bluetooth\_l2cap\_ertx\_timeout\_value}}, 300,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00177}00177         \mbox{\hyperlink{ng__bluetooth_8c_a3349d0b0d8fa8a135ffa7c4b8d960e59}{bluetooth\_set\_l2cap\_ertx\_timeout\_value}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00178}00178         \textcolor{stringliteral}{"{}I"{}}, \textcolor{stringliteral}{"{}L2CAP ERTX timeout (sec)"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00179}00179 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00180}00180 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00181}00181 \textcolor{comment}{ * Return various sysctl values}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00182}00182 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00184}00184 u\_int32\_t}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00185}\mbox{\hyperlink{ng__bluetooth_8c_afbc08d7a7a46dba29e40a3755f8b079f}{00185}} \mbox{\hyperlink{ng__bluetooth_8c_afbc08d7a7a46dba29e40a3755f8b079f}{bluetooth\_hci\_command\_timeout}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00186}00186 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00187}00187         \textcolor{keywordflow}{return} (\mbox{\hyperlink{ng__bluetooth_8c_ad1b82786cff52b26c122a65b6e1c7a6b}{bluetooth\_hci\_command\_timeout\_value}} * hz);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00188}00188 \} \textcolor{comment}{/* bluetooth\_hci\_command\_timeout */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00189}00189 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00190}00190 u\_int32\_t}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00191}\mbox{\hyperlink{ng__bluetooth_8c_a2d8e4ead16f9446f313222c1049e5d65}{00191}} \mbox{\hyperlink{ng__bluetooth_8c_a2d8e4ead16f9446f313222c1049e5d65}{bluetooth\_hci\_connect\_timeout}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00192}00192 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00193}00193         \textcolor{keywordflow}{return} (\mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}} * hz);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00194}00194 \} \textcolor{comment}{/* bluetooth\_hci\_connect\_timeout */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00195}00195 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00196}00196 u\_int32\_t}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00197}\mbox{\hyperlink{ng__bluetooth_8c_af6b15612774003dd542a9cfee107373b}{00197}} \mbox{\hyperlink{ng__bluetooth_8c_af6b15612774003dd542a9cfee107373b}{bluetooth\_hci\_max\_neighbor\_age}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00198}00198 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00199}00199         \textcolor{keywordflow}{return} (\mbox{\hyperlink{ng__bluetooth_8c_a33cc806cebcc98aa37dfb8a852df6941}{bluetooth\_hci\_max\_neighbor\_age\_value}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00200}00200 \} \textcolor{comment}{/* bluetooth\_hci\_max\_neighbor\_age */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00201}00201 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00202}00202 u\_int32\_t}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00203}\mbox{\hyperlink{ng__bluetooth_8c_a8f9f90d41247bf91f94cc233147736ca}{00203}} \mbox{\hyperlink{ng__bluetooth_8c_a8f9f90d41247bf91f94cc233147736ca}{bluetooth\_l2cap\_rtx\_timeout}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00204}00204 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00205}00205         \textcolor{keywordflow}{return} (\mbox{\hyperlink{ng__bluetooth_8c_ace259ed7b7717057f9728172cd62fdfc}{bluetooth\_l2cap\_rtx\_timeout\_value}} * hz);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00206}00206 \} \textcolor{comment}{/* bluetooth\_l2cap\_rtx\_timeout */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00207}00207 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00208}00208 u\_int32\_t}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00209}\mbox{\hyperlink{ng__bluetooth_8c_a0b2550e31c19c286b6c2de6f2dbf0736}{00209}} \mbox{\hyperlink{ng__bluetooth_8c_a0b2550e31c19c286b6c2de6f2dbf0736}{bluetooth\_l2cap\_ertx\_timeout}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00210}00210 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00211}00211         \textcolor{keywordflow}{return} (\mbox{\hyperlink{ng__bluetooth_8c_a4f2e63a2b5870f5ace9bfdc0f8336b77}{bluetooth\_l2cap\_ertx\_timeout\_value}} * hz);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00212}00212 \} \textcolor{comment}{/* bluetooth\_l2cap\_ertx\_timeout */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00213}00213 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00214}00214 u\_int32\_t}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00215}\mbox{\hyperlink{ng__bluetooth_8c_aa69338c9260637e6cac2bf6e8a6cb990}{00215}} \mbox{\hyperlink{ng__bluetooth_8c_aa69338c9260637e6cac2bf6e8a6cb990}{bluetooth\_sco\_rtx\_timeout}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00216}00216 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00217}00217         \textcolor{keywordflow}{return} (\mbox{\hyperlink{ng__bluetooth_8c_aa063515d2822d11b67af185ff56c68ca}{bluetooth\_sco\_rtx\_timeout\_value}} * hz);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00218}00218 \} \textcolor{comment}{/* bluetooth\_sco\_rtx\_timeout */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00219}00219 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00220}00220 \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00221}00221 \textcolor{comment}{ * RFCOMM}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00222}00222 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00224}\mbox{\hyperlink{ng__bluetooth_8c_a1f37955ccfa0c0bc90ab3915443775f8}{00224}} \mbox{\hyperlink{ng__bluetooth_8c_a3c59ac7d808011194bfbbe652810f4e4}{SYSCTL\_NODE}}(\_net\_bluetooth, OID\_AUTO, rfcomm, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00225}00225     \textcolor{stringliteral}{"{}Bluetooth RFCOMM family"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00226}00226 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00227}00227 \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00228}00228 \textcolor{comment}{ * SCO}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00229}00229 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00230}00230 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00231}\mbox{\hyperlink{ng__bluetooth_8c_a17290d0afe5e436c9d74bf27c71ef97f}{00231}} \mbox{\hyperlink{ng__bluetooth_8c_a3c59ac7d808011194bfbbe652810f4e4}{SYSCTL\_NODE}}(\_net\_bluetooth, OID\_AUTO, sco, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0, }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00232}00232     \textcolor{stringliteral}{"{}Bluetooth SCO family"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00233}00233 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00234}00234 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00235}\mbox{\hyperlink{ng__bluetooth_8c_a8f8b169d73373df1de3116b88a9539c8}{00235}} \mbox{\hyperlink{ng__bluetooth_8c_a8f8b169d73373df1de3116b88a9539c8}{bluetooth\_set\_sco\_rtx\_timeout\_value}}(SYSCTL\_HANDLER\_ARGS)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00236}00236 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00237}00237         u\_int32\_t       value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00238}00238         \textcolor{keywordtype}{int}             error;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00239}00239 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00240}00240         value = \mbox{\hyperlink{ng__bluetooth_8c_aa063515d2822d11b67af185ff56c68ca}{bluetooth\_sco\_rtx\_timeout\_value}};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00241}00241         error = sysctl\_handle\_int(oidp, \&value, 0, req);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00242}00242         \textcolor{keywordflow}{if} (error == 0 \&\& req-\/>newptr != NULL) \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00243}00243                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{ng__bluetooth_8c_a7aae7e9dd209c2a46ee7112c40e6d003}{bluetooth\_hci\_connect\_timeout\_value}} <= value)}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00244}00244                         \mbox{\hyperlink{ng__bluetooth_8c_aa063515d2822d11b67af185ff56c68ca}{bluetooth\_sco\_rtx\_timeout\_value}} = value;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00245}00245                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00246}00246                         error = EINVAL;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00247}00247         \}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00248}00248 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00249}00249         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00250}00250 \} \textcolor{comment}{/* bluetooth\_set\_sco\_rtx\_timeout\_value */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00251}00251 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00252}\mbox{\hyperlink{ng__bluetooth_8c_a352d14cf056b1172a9d24d55074e253a}{00252}} \mbox{\hyperlink{ng__bluetooth_8c_ae5bba1ee2e61c652667edcf298148751}{SYSCTL\_PROC}}(\_net\_bluetooth\_sco, OID\_AUTO, rtx\_timeout,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00253}00253         CTLTYPE\_INT | CTLFLAG\_RW | CTLFLAG\_NEEDGIANT,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00254}00254         \&\mbox{\hyperlink{ng__bluetooth_8c_aa063515d2822d11b67af185ff56c68ca}{bluetooth\_sco\_rtx\_timeout\_value}}, 60,}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00255}00255         \mbox{\hyperlink{ng__bluetooth_8c_a8f8b169d73373df1de3116b88a9539c8}{bluetooth\_set\_sco\_rtx\_timeout\_value}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00256}00256         \textcolor{stringliteral}{"{}I"{}}, \textcolor{stringliteral}{"{}SCO RTX timeout (sec)"{}});}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00257}00257 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00258}00258 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00259}00259 \textcolor{comment}{ * Handle loading and unloading for this code.}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00260}00260 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00261}00261 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00262}00262 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00263}\mbox{\hyperlink{ng__bluetooth_8c_aa5640fea9935113acae6f92c62c7b0a9}{00263}} \mbox{\hyperlink{ng__bluetooth_8c_aa5640fea9935113acae6f92c62c7b0a9}{bluetooth\_modevent}}(module\_t mod, \textcolor{keywordtype}{int} \mbox{\hyperlink{ng__ubt__var_8h_aeef6900f411bc223febdd92c9435693b}{event}}, \textcolor{keywordtype}{void} *\mbox{\hyperlink{ng__ubt__var_8h_a7f897df1949af68456ee830f2468e476}{data}})}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00264}00264 \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00265}00265         \textcolor{keywordtype}{int}     error = 0;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00266}00266 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00267}00267         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{ng__ubt__var_8h_aeef6900f411bc223febdd92c9435693b}{event}}) \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00268}00268         \textcolor{keywordflow}{case} MOD\_LOAD:}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00269}00269                 \textcolor{keywordflow}{break}; }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00270}00270 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00271}00271         \textcolor{keywordflow}{case} MOD\_UNLOAD:}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00272}00272                 \textcolor{keywordflow}{break}; }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00273}00273 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00274}00274         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00275}00275                 error = EOPNOTSUPP;}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00276}00276                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00277}00277         \}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00278}00278 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00279}00279         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00280}00280 \} \textcolor{comment}{/* bluetooth\_modevent */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00281}00281 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00282}00282 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00283}00283 \textcolor{comment}{ * Module}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00284}00284 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00285}00285 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00286}\mbox{\hyperlink{ng__bluetooth_8c_aba5fd1db4fa28ce806bc41398a8a5d87}{00286}} \textcolor{keyword}{static} moduledata\_t     \mbox{\hyperlink{ng__bluetooth_8c_aba5fd1db4fa28ce806bc41398a8a5d87}{bluetooth\_mod}} = \{}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00287}00287         \textcolor{stringliteral}{"{}ng\_bluetooth"{}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00288}00288         \mbox{\hyperlink{ng__bluetooth_8c_aa5640fea9935113acae6f92c62c7b0a9}{bluetooth\_modevent}},}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00289}00289         NULL}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00290}00290 \};}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00292}\mbox{\hyperlink{ng__bluetooth_8c_ad7a00c5b6aca6c4963c1d544b5661a9c}{00292}} \mbox{\hyperlink{ng__bluetooth_8c_ad7a00c5b6aca6c4963c1d544b5661a9c}{DECLARE\_MODULE}}(ng\_bluetooth, \mbox{\hyperlink{ng__bluetooth_8c_aba5fd1db4fa28ce806bc41398a8a5d87}{bluetooth\_mod}}, SI\_SUB\_PSEUDO, SI\_ORDER\_ANY);}
\DoxyCodeLine{\Hypertarget{ng__bluetooth_8c_source_l00293}\mbox{\hyperlink{ng__bluetooth_8c_ade5fbe928bf528f698a8fa523f07e338}{00293}} \mbox{\hyperlink{ng__bluetooth_8c_ade5fbe928bf528f698a8fa523f07e338}{MODULE\_VERSION}}(ng\_bluetooth, \mbox{\hyperlink{ng__bluetooth_8h_aa0d4fe7aaf68485ee71a69d38410da16}{NG\_BLUETOOTH\_VERSION}});}

\end{DoxyCode}
