\hypertarget{ng__btsocket__l2cap_8h_source}{}\doxysection{ng\+\_\+btsocket\+\_\+l2cap.\+h}
\label{ng__btsocket__l2cap_8h_source}\index{netgraph/bluetooth/include/ng\_btsocket\_l2cap.h@{netgraph/bluetooth/include/ng\_btsocket\_l2cap.h}}
\mbox{\hyperlink{ng__btsocket__l2cap_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00002}00002 \textcolor{comment}{ * ng\_btsocket\_l2cap.h}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00003}00003 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00004}00004 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00005}00005 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00006}00006 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00008}00008 \textcolor{comment}{ * Copyright (c) 2001-\/2002 Maksim Yevmenkin <m\_evmenkin@yahoo.com>}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00009}00009 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00010}00010 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00011}00011 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00012}00012 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00013}00013 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00014}00014 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00015}00015 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00016}00016 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00017}00017 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00018}00018 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00019}00019 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00020}00020 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00021}00021 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00022}00022 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00023}00023 \textcolor{comment}{ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00024}00024 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00025}00025 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00026}00026 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00027}00027 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00028}00028 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00029}00029 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00030}00030 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00031}00031 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00032}00032 \textcolor{comment}{ * \$Id: ng\_btsocket\_l2cap.h,v 1.4 2003/03/25 23:53:33 max Exp \$}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00033}00033 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00036}00036 \textcolor{preprocessor}{\#ifndef \_NETGRAPH\_BTSOCKET\_L2CAP\_H\_}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00037}00037 \textcolor{preprocessor}{\#define \_NETGRAPH\_BTSOCKET\_L2CAP\_H\_}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00038}00038 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00039}00039 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00040}00040 \textcolor{comment}{ * L2CAP routing entry}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00041}00041 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00043}00043 \textcolor{keyword}{struct }\mbox{\hyperlink{structng__hook}{ng\_hook}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00044}00044 \textcolor{keyword}{struct }ng\_message;}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00046}\mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{00046}} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry}} \{}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00047}\mbox{\hyperlink{structng__btsocket__l2cap__rtentry_a3f85803ece1961c834829e2230a144ef}{00047}}         bdaddr\_t                                 \mbox{\hyperlink{structng__btsocket__l2cap__rtentry_a3f85803ece1961c834829e2230a144ef}{src}};  \textcolor{comment}{/* source BD\_ADDR */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00048}\mbox{\hyperlink{structng__btsocket__l2cap__rtentry_a383377bd8995aec5f652ec12553c1050}{00048}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structng__hook}{ng\_hook}}                           *\mbox{\hyperlink{structng__btsocket__l2cap__rtentry_a383377bd8995aec5f652ec12553c1050}{hook}}; \textcolor{comment}{/* downstream hook */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00049}\mbox{\hyperlink{structng__btsocket__l2cap__rtentry_a2477968ed8af7f6921f46686c2c20336}{00049}}         \mbox{\hyperlink{structng__btsocket__l2cap__rtentry_a2477968ed8af7f6921f46686c2c20336}{LIST\_ENTRY}}(\mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry}})         next; \textcolor{comment}{/* link to next */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00050}00050 \};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00051}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ac5bc8cfb971182ee967b77c9c80545c6}{00051}} \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry}}       \mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry\_t}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00052}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ac07ca1d11a869a93ffa00f6083e97bd8}{00052}} \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry}} *     \mbox{\hyperlink{ng__btsocket__l2cap_8h_ac07ca1d11a869a93ffa00f6083e97bd8}{ng\_btsocket\_l2cap\_rtentry\_p}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00054}00054 \textcolor{comment}{/*****************************************************************************}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00055}00055 \textcolor{comment}{ *****************************************************************************}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00056}00056 \textcolor{comment}{ **                          SOCK\_RAW L2CAP sockets                         **}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00057}00057 \textcolor{comment}{ *****************************************************************************}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00058}00058 \textcolor{comment}{ *****************************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00060}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a0e3b081151e6e5e18abd787746e57192}{00060}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_RAW\_SENDSPACE NG\_L2CAP\_MTU\_DEFAULT}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00061}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ab1c3deb7f6a00358776dc95554e63150}{00061}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_RAW\_RECVSPACE NG\_L2CAP\_MTU\_DEFAULT}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00062}00062 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00063}00063 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00064}00064 \textcolor{comment}{ * Bluetooth raw L2CAP socket PCB}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00065}00065 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00066}00066 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00067}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb}{00067}} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb}{ng\_btsocket\_l2cap\_raw\_pcb}} \{}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00068}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a39118e243820b5d78cccd1cb5ed94bfd}{00068}}         \textcolor{keyword}{struct }socket                           *\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a39118e243820b5d78cccd1cb5ed94bfd}{so}};  \textcolor{comment}{/* socket */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00070}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a594a92adb63a3e2f0e00e4570713c731}{00070}}         u\_int32\_t                                \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a594a92adb63a3e2f0e00e4570713c731}{flags}}; \textcolor{comment}{/* flags */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00071}\mbox{\hyperlink{ng__btsocket__l2cap_8h_afa653c3f8cc74066f366ceaaabb11cde}{00071}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_RAW\_PRIVILEGED        (1 << 0)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00073}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a10b267cae9dae892642c306b2616b0fd}{00073}}         bdaddr\_t                                 \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a10b267cae9dae892642c306b2616b0fd}{src}};        \textcolor{comment}{/* source address */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00074}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_ae2209c77cf796c521638fdc1dacd2503}{00074}}         bdaddr\_t                                 \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_ae2209c77cf796c521638fdc1dacd2503}{dst}};        \textcolor{comment}{/* dest address */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00075}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a4774b5011bd8edc5fbaa3817f437019c}{00075}}         uint8\_t                                  \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a4774b5011bd8edc5fbaa3817f437019c}{srctype}};\textcolor{comment}{/*source addr type*/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00076}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_ab530b6ba20388990ba0ad950fcaf617b}{00076}}         uint8\_t                                  \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_ab530b6ba20388990ba0ad950fcaf617b}{dsttype}};\textcolor{comment}{/*source addr type*/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00077}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a09363b25753b65dec7161d9068300e22}{00077}}         \mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry\_p}}           \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a09363b25753b65dec7161d9068300e22}{rt}};    \textcolor{comment}{/* routing info */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00078}00078 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00079}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a66fdd727caff9e2b1d43d489ad4826d5}{00079}}         u\_int32\_t                                \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a66fdd727caff9e2b1d43d489ad4826d5}{token}};    \textcolor{comment}{/* message token */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00080}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_adb530528a896abe38a579fe5daa77b16}{00080}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structng__mesg}{ng\_mesg}}                           *\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_adb530528a896abe38a579fe5daa77b16}{msg}};   \textcolor{comment}{/* message */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00081}00081 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00082}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a1a98b964393b5154041a5166f3709219}{00082}}         \textcolor{keyword}{struct }mtx                               \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_a1a98b964393b5154041a5166f3709219}{pcb\_mtx}}; \textcolor{comment}{/* pcb mutex */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00083}00083 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00084}\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_ac974b0f0f9cbaa6f8bc41dab0032c5d0}{00084}}         \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb_ac974b0f0f9cbaa6f8bc41dab0032c5d0}{LIST\_ENTRY}}(\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb}{ng\_btsocket\_l2cap\_raw\_pcb}})         next;  \textcolor{comment}{/* link to next PCB */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00085}00085 \};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00086}\mbox{\hyperlink{ng__btsocket__l2cap_8h_af02b20e262782d604636ff5b37763ccb}{00086}} \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb}{ng\_btsocket\_l2cap\_raw\_pcb}}       \mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb}{ng\_btsocket\_l2cap\_raw\_pcb\_t}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00087}\mbox{\hyperlink{ng__btsocket__l2cap_8h_aca1ac7fac5913d2e491ad39d59a948a8}{00087}} \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__raw__pcb}{ng\_btsocket\_l2cap\_raw\_pcb}} *     \mbox{\hyperlink{ng__btsocket__l2cap_8h_aca1ac7fac5913d2e491ad39d59a948a8}{ng\_btsocket\_l2cap\_raw\_pcb\_p}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00088}00088 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00089}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a5394c4fe7ccfdb1b406008b4408fe592}{00089}} \textcolor{preprocessor}{\#define so2l2cap\_raw\_pcb(so) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00090}00090 \textcolor{preprocessor}{        ((struct ng\_btsocket\_l2cap\_raw\_pcb *)((so)-\/>so\_pcb))}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00091}00091 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00092}00092 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00093}00093 \textcolor{comment}{ * Bluetooth raw L2CAP socket methods}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00094}00094 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00096}00096 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00097}00097 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00098}00098 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__btsocket__l2cap_8h_aff758e5108a194479dc372e5d17d276d}{ng\_btsocket\_l2cap\_raw\_abort}}      (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00099}00099 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__btsocket__l2cap_8h_a77da5fd21ea2836e9c09ad81c11fa345}{ng\_btsocket\_l2cap\_raw\_close}}      (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00100}00100 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a4f17d3e76ae84c9117415ba55b1f8940}{ng\_btsocket\_l2cap\_raw\_attach}}     (\textcolor{keyword}{struct} socket *, \textcolor{keywordtype}{int}, \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00101}00101 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a1e073b9dad143635df3e911e029735b2}{ng\_btsocket\_l2cap\_raw\_bind}}       (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00102}00102                                        \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00103}00103 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a8ee22b8e60f91d840c48eb61712aec53}{ng\_btsocket\_l2cap\_raw\_connect}}    (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00104}00104                                        \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00105}00105 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a50beb37212a89d9bdb0c6c8295f1c629}{ng\_btsocket\_l2cap\_raw\_control}}    (\textcolor{keyword}{struct} socket *, u\_long, caddr\_t,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00106}00106                                        \textcolor{keyword}{struct} ifnet *, \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00107}00107 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__btsocket__l2cap_8h_aea75adb1cc096799e74679ce9f446a36}{ng\_btsocket\_l2cap\_raw\_detach}}     (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00108}00108 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_aba56c4c0cdd0cb2d3a8a8671a60f1bc1}{ng\_btsocket\_l2cap\_raw\_disconnect}} (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00109}00109 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a4a1c5ceba5b105d1c7e876d24aad899b}{ng\_btsocket\_l2cap\_raw\_peeraddr}}   (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr **);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00110}00110 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a3b2a7716a45fbad2d5f6e8235bd037f3}{ng\_btsocket\_l2cap\_raw\_send}}       (\textcolor{keyword}{struct} socket *, \textcolor{keywordtype}{int}, \textcolor{keyword}{struct} mbuf *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00111}00111                                        \textcolor{keyword}{struct} sockaddr *, \textcolor{keyword}{struct} mbuf *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00112}00112                                        \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00113}00113 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a00e1586a7f90e6e244d7d0200fa9a679}{ng\_btsocket\_l2cap\_raw\_sockaddr}}   (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr **);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00114}00114 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00115}00115 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00116}00116 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00117}00117 \textcolor{comment}{/*****************************************************************************}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00118}00118 \textcolor{comment}{ *****************************************************************************}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00119}00119 \textcolor{comment}{ **                    SOCK\_SEQPACKET L2CAP sockets                         **}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00120}00120 \textcolor{comment}{ *****************************************************************************}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00121}00121 \textcolor{comment}{ *****************************************************************************/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00122}00122 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00123}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ad1c2e644dabf38ea2d06027c8074675f}{00123}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_SENDSPACE     NG\_L2CAP\_MTU\_DEFAULT }\textcolor{comment}{/* (64 * 1024) */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00124}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a6c66ad8c197f05afc51c3cc000dda812}{00124}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_RECVSPACE     (64 * 1024)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00126}00126 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00127}00127 \textcolor{comment}{ * Bluetooth L2CAP socket PCB}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00128}00128 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00130}\mbox{\hyperlink{structng__btsocket__l2cap__pcb}{00130}} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__pcb}{ng\_btsocket\_l2cap\_pcb}} \{}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00131}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a4cc3318e19be2cc3e0150b0d9bf5d709}{00131}}         \textcolor{keyword}{struct }socket                   *\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a4cc3318e19be2cc3e0150b0d9bf5d709}{so}};       \textcolor{comment}{/* Pointer to socket */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00132}00132 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00133}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab452d19ab212aafb53ff627a4edb2d88}{00133}}         bdaddr\_t                         \mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab452d19ab212aafb53ff627a4edb2d88}{src}};             \textcolor{comment}{/* Source address */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00134}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a777b535be4c6ca1a2d12f935d8281b81}{00134}}         bdaddr\_t                         \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a777b535be4c6ca1a2d12f935d8281b81}{dst}};             \textcolor{comment}{/* Destination address */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00135}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab39081b75770347a07069036129ba45b}{00135}}         uint8\_t                          \mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab39081b75770347a07069036129ba45b}{srctype}};        \textcolor{comment}{/*source addr type*/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00136}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a73c93556e78281c5a6dcc4360a68145f}{00136}}         uint8\_t                          \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a73c93556e78281c5a6dcc4360a68145f}{dsttype}};        \textcolor{comment}{/*source addr type*/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00138}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab678f280f54dab4e38b394999350022f}{00138}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab678f280f54dab4e38b394999350022f}{psm}};             \textcolor{comment}{/* PSM */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00139}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_aa9a96f21ae3df4d8eeadfa776b4975bb}{00139}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_aa9a96f21ae3df4d8eeadfa776b4975bb}{cid}};             \textcolor{comment}{/* Local channel ID */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00140}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a25725146b54a9789b596ce2e417487ba}{00140}}         uint8\_t                          \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a25725146b54a9789b596ce2e417487ba}{idtype}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00141}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab7edb3109d687e3963c727d502d587b2}{00141}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_ab7edb3109d687e3963c727d502d587b2}{flags}};      \textcolor{comment}{/* socket flags */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00142}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a0bcf09a805e89db8c54172b22d12cdd0}{00142}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CLIENT        (1 << 0)     }\textcolor{comment}{/* socket is client */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00143}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a427bf6e6db2d643af5dac6c8068a362a}{00143}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_TIMO          (1 << 1)     }\textcolor{comment}{/* timeout pending */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00144}00144 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00145}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a60b665f68416e90c3534877cca371d5d}{00145}}         u\_int8\_t                         \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a60b665f68416e90c3534877cca371d5d}{state}};      \textcolor{comment}{/* socket state */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00146}\mbox{\hyperlink{ng__btsocket__l2cap_8h_aab62dc5c2057d94cf16106fa3c69ba98}{00146}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CLOSED        0            }\textcolor{comment}{/* socket closed */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00147}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a1bef328ad25d99c18012e0f9db9246db}{00147}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CONNECTING    1            }\textcolor{comment}{/* wait for connect */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00148}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ae0e9aad23bcdb71d3bbcd783363edf29}{00148}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CONFIGURING   2            }\textcolor{comment}{/* wait for config */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00149}\mbox{\hyperlink{ng__btsocket__l2cap_8h_af45f7ea5c795266bd90522145949129e}{00149}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_OPEN          3            }\textcolor{comment}{/* socket open */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00150}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a0278cb3eb7f0c2b11b04c6f2d319f4c7}{00150}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_DISCONNECTING 4            }\textcolor{comment}{/* wait for disconnect */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00151}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a9aa68f78b2908d9e193caf4e271fcde0}{00151}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_W4\_ENC\_CHANGE 5  }}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00152}00152 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00153}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_afee7af1d62ab0e7f825eede6ca59a228}{00153}}         u\_int8\_t                         \mbox{\hyperlink{structng__btsocket__l2cap__pcb_afee7af1d62ab0e7f825eede6ca59a228}{cfg\_state}};  \textcolor{comment}{/* config state */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00154}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a74d7fd642ebdd331930b852feaab43fa}{00154}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CFG\_IN        (1 << 0)     }\textcolor{comment}{/* incoming path done */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00155}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a5528cfb10243944c7ea116f314cfebdf}{00155}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CFG\_OUT       (1 << 1)     }\textcolor{comment}{/* outgoing path done */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00156}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a7add56fc4ebd78d73c99b3e1fb150c9b}{00156}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CFG\_BOTH \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00157}00157 \textcolor{preprocessor}{        (NG\_BTSOCKET\_L2CAP\_CFG\_IN | NG\_BTSOCKET\_L2CAP\_CFG\_OUT)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00158}00158 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00159}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ad5699ba89cc86e1179466bcf26ea9ddf}{00159}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CFG\_IN\_SENT   (1 << 2)     }\textcolor{comment}{/* L2CAP ConfigReq sent */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00160}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a3bebe84942e77fe1abe5187d3153de27}{00160}} \textcolor{preprocessor}{\#define NG\_BTSOCKET\_L2CAP\_CFG\_OUT\_SENT  (1 << 3)     }\textcolor{comment}{/* -\/-\/-\//-\/-\/-\/ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00161}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a4b57c41af69797c7a2802b576e3fb178}{00161}}         uint8\_t                          \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a4b57c41af69797c7a2802b576e3fb178}{encryption}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00162}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a35c8f52e597a0125b4336bf01aa7636f}{00162}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a35c8f52e597a0125b4336bf01aa7636f}{imtu}};       \textcolor{comment}{/* Incoming MTU */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00163}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_aee4fd572213c585d5db79cf74e997b1d}{00163}}         ng\_l2cap\_flow\_t                  \mbox{\hyperlink{structng__btsocket__l2cap__pcb_aee4fd572213c585d5db79cf74e997b1d}{iflow}};      \textcolor{comment}{/* Input flow spec */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00165}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a97537ea63c9964e085fa3f22d0ce8bb5}{00165}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a97537ea63c9964e085fa3f22d0ce8bb5}{omtu}};       \textcolor{comment}{/* Outgoing MTU */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00166}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_ac5523a7d9a53893ed129feb9da7f0627}{00166}}         ng\_l2cap\_flow\_t                  \mbox{\hyperlink{structng__btsocket__l2cap__pcb_ac5523a7d9a53893ed129feb9da7f0627}{oflow}};      \textcolor{comment}{/* Outgoing flow spec */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00167}00167 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00168}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a733ff83b9b31d09d9c50af47d8df753c}{00168}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a733ff83b9b31d09d9c50af47d8df753c}{flush\_timo}}; \textcolor{comment}{/* flush timeout */}   }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00169}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a2f46ae92d6beb0a0fa3268e330f666c0}{00169}}         u\_int16\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a2f46ae92d6beb0a0fa3268e330f666c0}{link\_timo}};  \textcolor{comment}{/* link timeout */} }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00170}00170 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00171}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a4375ada3761ae664b7f8441707802e61}{00171}}         \textcolor{keyword}{struct }callout                   \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a4375ada3761ae664b7f8441707802e61}{timo}};       \textcolor{comment}{/* timeout */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00172}00172 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00173}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a63340d46b20c1fff6f5c94540690c676}{00173}}         u\_int32\_t                        \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a63340d46b20c1fff6f5c94540690c676}{token}};         \textcolor{comment}{/* message token */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00174}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_ad50fa83cfd9d6a6fe0db91f7150c00db}{00174}}         \mbox{\hyperlink{structng__btsocket__l2cap__rtentry}{ng\_btsocket\_l2cap\_rtentry\_p}}   \mbox{\hyperlink{structng__btsocket__l2cap__pcb_ad50fa83cfd9d6a6fe0db91f7150c00db}{rt}};         \textcolor{comment}{/* routing info */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00175}00175 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00176}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a2518b31000b199c552dab31b697e9439}{00176}}         \textcolor{keyword}{struct }mtx                       \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a2518b31000b199c552dab31b697e9439}{pcb\_mtx}};    \textcolor{comment}{/* pcb mutex */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00177}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_abe0b47708a419f4e9840080242348fd6}{00177}}         uint16\_t                         \mbox{\hyperlink{structng__btsocket__l2cap__pcb_abe0b47708a419f4e9840080242348fd6}{need\_encrypt}}; \textcolor{comment}{/*encryption needed*/}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00178}00178 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00179}\mbox{\hyperlink{structng__btsocket__l2cap__pcb_a5fb6b03a10d28605bfa95be6495ef105}{00179}}         \mbox{\hyperlink{structng__btsocket__l2cap__pcb_a5fb6b03a10d28605bfa95be6495ef105}{LIST\_ENTRY}}(\mbox{\hyperlink{structng__btsocket__l2cap__pcb}{ng\_btsocket\_l2cap\_pcb}}) next;      \textcolor{comment}{/* link to next PCB */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00180}00180 \};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00181}\mbox{\hyperlink{ng__btsocket__l2cap_8h_ae0c1708c960e1d9ff82c8b716f99f32d}{00181}} \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__pcb}{ng\_btsocket\_l2cap\_pcb}}       \mbox{\hyperlink{structng__btsocket__l2cap__pcb}{ng\_btsocket\_l2cap\_pcb\_t}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00182}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a7c623847faa1372373bff85c5a1230fa}{00182}} \textcolor{keyword}{typedef} \textcolor{keyword}{struct }\mbox{\hyperlink{structng__btsocket__l2cap__pcb}{ng\_btsocket\_l2cap\_pcb}} *     \mbox{\hyperlink{ng__btsocket__l2cap_8h_a7c623847faa1372373bff85c5a1230fa}{ng\_btsocket\_l2cap\_pcb\_p}};}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00184}\mbox{\hyperlink{ng__btsocket__l2cap_8h_a34a0fa5af94c3717d2edc61642ac90a1}{00184}} \textcolor{preprocessor}{\#define so2l2cap\_pcb(so) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00185}00185 \textcolor{preprocessor}{        ((struct ng\_btsocket\_l2cap\_pcb *)((so)-\/>so\_pcb))}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00186}00186 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00187}00187 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00188}00188 \textcolor{comment}{ * Bluetooth L2CAP socket methods}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00189}00189 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00190}00190 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00191}00191 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00192}00192 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00193}00193 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__btsocket__l2cap_8h_ae3c4fecf2479af94c1c69187aa69cf79}{ng\_btsocket\_l2cap\_abort}}      (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00194}00194 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__btsocket__l2cap_8h_a396c7200d2fc3dd2b16a4a82da10ddf2}{ng\_btsocket\_l2cap\_close}}      (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00195}00195 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a5c149ca0507728355e49fc2d9eff7c59}{ng\_btsocket\_l2cap\_accept}}     (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr **);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00196}00196 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_aff5766369b2039d2c5468de92afdf506}{ng\_btsocket\_l2cap\_attach}}     (\textcolor{keyword}{struct} socket *, \textcolor{keywordtype}{int}, \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00197}00197 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a637003e56f9b30dc5411e45538454b05}{ng\_btsocket\_l2cap\_bind}}       (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00198}00198                                    \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00199}00199 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_aef58162f0850d43c2c37c3ec3ab324a2}{ng\_btsocket\_l2cap\_connect}}    (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00200}00200                                    \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00201}00201 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a1297b195097a61e760ad29553b4328ee}{ng\_btsocket\_l2cap\_control}}    (\textcolor{keyword}{struct} socket *, u\_long, caddr\_t,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00202}00202                                    \textcolor{keyword}{struct} ifnet *, \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00203}00203 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a4a80bae9ed3e6419005e6db37a20602b}{ng\_btsocket\_l2cap\_ctloutput}}  (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockopt *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00204}00204 \textcolor{keywordtype}{void} \mbox{\hyperlink{ng__btsocket__l2cap_8h_abcbc44b0714268cac09a90df7da74e03}{ng\_btsocket\_l2cap\_detach}}     (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00205}00205 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a78a17b60f75f4e846e029500877302d1}{ng\_btsocket\_l2cap\_disconnect}} (\textcolor{keyword}{struct} socket *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00206}00206 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a465632c1f538f7b6c970e5be4ef671ec}{ng\_btsocket\_l2cap\_listen}}     (\textcolor{keyword}{struct} socket *, \textcolor{keywordtype}{int}, \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00207}00207 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a28f762927b2707611190eed3c54df8c7}{ng\_btsocket\_l2cap\_peeraddr}}   (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr **);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00208}00208 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_a18c8e4746d883942abc53eff71cf7b83}{ng\_btsocket\_l2cap\_send}}       (\textcolor{keyword}{struct} socket *, \textcolor{keywordtype}{int}, \textcolor{keyword}{struct} mbuf *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00209}00209                                    \textcolor{keyword}{struct} sockaddr *, \textcolor{keyword}{struct} mbuf *,}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00210}00210                                    \textcolor{keyword}{struct} thread *);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00211}00211 \textcolor{keywordtype}{int}  \mbox{\hyperlink{ng__btsocket__l2cap_8h_acaf820d9350e652da10d033e36fa6c43}{ng\_btsocket\_l2cap\_sockaddr}}   (\textcolor{keyword}{struct} socket *, \textcolor{keyword}{struct} sockaddr **);}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00212}00212 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00213}00213 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00214}00214 }
\DoxyCodeLine{\Hypertarget{ng__btsocket__l2cap_8h_source_l00215}00215 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_NETGRAPH\_BTSOCKET\_L2CAP\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
