\hypertarget{if__uath_8c_source}{}\doxysection{if\+\_\+uath.\+c}
\label{if__uath_8c_source}\index{dev/usb/wlan/if\_uath.c@{dev/usb/wlan/if\_uath.c}}
\mbox{\hyperlink{if__uath_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: (BSD-\/2-\/Clause-\/FreeBSD AND BSD-\/1-\/Clause)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2006 Sam Leffler, Errno Consulting}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2008-\/2009 Weongyo Jeong <weongyo@freebsd.org>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00006}00006 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00008}00008 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00009}00009 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00010}00010 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00011}00011 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer,}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00013}00013 \textcolor{comment}{ *    without modification.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00014}00014 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce at minimum a disclaimer}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00015}00015 \textcolor{comment}{ *    similar to the "{}NO WARRANTY"{} disclaimer below ("{}Disclaimer"{}) and any}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00016}00016 \textcolor{comment}{ *    redistribution must be conditioned upon including a substantially}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00017}00017 \textcolor{comment}{ *    similar Disclaimer requirement for further binary redistribution.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00018}00018 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00019}00019 \textcolor{comment}{ * NO WARRANTY}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00020}00020 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00021}00021 \textcolor{comment}{ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00022}00022 \textcolor{comment}{ * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00023}00023 \textcolor{comment}{ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00024}00024 \textcolor{comment}{ * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00025}00025 \textcolor{comment}{ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00026}00026 \textcolor{comment}{ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00027}00027 \textcolor{comment}{ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00028}00028 \textcolor{comment}{ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00029}00029 \textcolor{comment}{ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00030}00030 \textcolor{comment}{ * THE POSSIBILITY OF SUCH DAMAGES.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00031}00031 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00032}00032 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00033}00033 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00034}00034 \textcolor{comment}{ * This driver is distantly derived from a driver of the same name}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00035}00035 \textcolor{comment}{ * by Damien Bergamini.  The original copyright is included below:}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00036}00036 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00037}00037 \textcolor{comment}{ * Copyright (c) 2006}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00038}00038 \textcolor{comment}{ *      Damien Bergamini <damien.bergamini@free.fr>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00039}00039 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00040}00040 \textcolor{comment}{ * Permission to use, copy, modify, and distribute this software for any}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00041}00041 \textcolor{comment}{ * purpose with or without fee is hereby granted, provided that the above}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00042}00042 \textcolor{comment}{ * copyright notice and this permission notice appear in all copies.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00043}00043 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00044}00044 \textcolor{comment}{ * THE SOFTWARE IS PROVIDED "{}AS IS"{} AND THE AUTHOR DISCLAIMS ALL WARRANTIES}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00045}00045 \textcolor{comment}{ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00046}00046 \textcolor{comment}{ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00047}00047 \textcolor{comment}{ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00048}00048 \textcolor{comment}{ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00049}00049 \textcolor{comment}{ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00050}00050 \textcolor{comment}{ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00051}00051 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00054}\mbox{\hyperlink{if__uath_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00054}} \mbox{\hyperlink{if__uath_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00056}00056 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00057}00057 \textcolor{comment}{ * Driver for Atheros AR5523 USB parts.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00058}00058 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00059}00059 \textcolor{comment}{ * The driver requires firmware to be loaded into the device.  This}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00060}00060 \textcolor{comment}{ * is done on device discovery from a user application (uathload)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00061}00061 \textcolor{comment}{ * that is launched by devd when a device with suitable product ID}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00062}00062 \textcolor{comment}{ * is recognized.  Once firmware has been loaded the device will}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00063}00063 \textcolor{comment}{ * reset the USB port and re-\/attach with the original product ID+1}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00064}00064 \textcolor{comment}{ * and this driver will be attached.  The firmware is licensed for}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00065}00065 \textcolor{comment}{ * general use (royalty free) and may be incorporated in products.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00066}00066 \textcolor{comment}{ * Note that the firmware normally packaged with the NDIS drivers}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00067}00067 \textcolor{comment}{ * for these devices does not work in this way and so does not work}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00068}00068 \textcolor{comment}{ * with this driver.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00069}00069 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00071}00071 \textcolor{preprocessor}{\#include "{}opt\_wlan.h"{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00073}00073 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00074}00074 \textcolor{preprocessor}{\#include <sys/sockio.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00075}00075 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00076}00076 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00077}00077 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00078}00078 \textcolor{preprocessor}{\#include <sys/mbuf.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00079}00079 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00080}00080 \textcolor{preprocessor}{\#include <sys/socket.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00081}00081 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00082}00082 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00083}00083 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00084}00084 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00085}00085 \textcolor{preprocessor}{\#include <sys/endian.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00086}00086 \textcolor{preprocessor}{\#include <sys/kdb.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00088}00088 \textcolor{preprocessor}{\#include <net/bpf.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00089}00089 \textcolor{preprocessor}{\#include <net/if.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00090}00090 \textcolor{preprocessor}{\#include <net/if\_var.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00091}00091 \textcolor{preprocessor}{\#include <net/if\_arp.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00092}00092 \textcolor{preprocessor}{\#include <net/ethernet.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00093}00093 \textcolor{preprocessor}{\#include <net/if\_dl.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00094}00094 \textcolor{preprocessor}{\#include <net/if\_media.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00095}00095 \textcolor{preprocessor}{\#include <net/if\_types.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00096}00096 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00097}00097 \textcolor{preprocessor}{\#ifdef INET}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00098}00098 \textcolor{preprocessor}{\#include <netinet/in.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00099}00099 \textcolor{preprocessor}{\#include <netinet/in\_systm.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00100}00100 \textcolor{preprocessor}{\#include <netinet/in\_var.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00101}00101 \textcolor{preprocessor}{\#include <netinet/if\_ether.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00102}00102 \textcolor{preprocessor}{\#include <netinet/ip.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00103}00103 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00104}00104 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00105}00105 \textcolor{preprocessor}{\#include <net80211/ieee80211\_var.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00106}00106 \textcolor{preprocessor}{\#include <net80211/ieee80211\_input.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00107}00107 \textcolor{preprocessor}{\#include <net80211/ieee80211\_regdomain.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00108}00108 \textcolor{preprocessor}{\#include <net80211/ieee80211\_radiotap.h>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00109}00109 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00110}00110 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb_8h}{dev/usb/usb.h}}>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00111}00111 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi_8h}{dev/usb/usbdi.h}}>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00112}00112 \textcolor{preprocessor}{\#include "{}usbdevs.h"{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00114}00114 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{if__uathreg_8h}{dev/usb/wlan/if\_uathreg.h}}>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00115}00115 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{if__uathvar_8h}{dev/usb/wlan/if\_uathvar.h}}>}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00116}00116 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00117}\mbox{\hyperlink{if__uath_8c_ac5242e7b972d861717f8b75879d3c0ed}{00117}} \textcolor{keyword}{static} \mbox{\hyperlink{if__uath_8c_ac5242e7b972d861717f8b75879d3c0ed}{SYSCTL\_NODE}}(\_hw\_usb, OID\_AUTO, uath, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00118}00118     \textcolor{stringliteral}{"{}USB Atheros"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00120}\mbox{\hyperlink{if__uath_8c_af50f3797e97d7a523e15988fd12cadc0}{00120}} \textcolor{keyword}{static}  \textcolor{keywordtype}{int} \mbox{\hyperlink{if__uath_8c_af50f3797e97d7a523e15988fd12cadc0}{uath\_countrycode}} = CTRY\_DEFAULT;    \textcolor{comment}{/* country code */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00121}\mbox{\hyperlink{if__uath_8c_a50952ea3d319e067db8a94e45ce6c932}{00121}} \mbox{\hyperlink{if__uath_8c_a50952ea3d319e067db8a94e45ce6c932}{SYSCTL\_INT}}(\_hw\_usb\_uath, OID\_AUTO, countrycode, CTLFLAG\_RWTUN, \&\mbox{\hyperlink{if__uath_8c_af50f3797e97d7a523e15988fd12cadc0}{uath\_countrycode}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00122}00122     0, \textcolor{stringliteral}{"{}country code"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00123}\mbox{\hyperlink{if__uath_8c_a5b794c80369c09fba5d13bebb86e3a55}{00123}} \textcolor{keyword}{static}  \textcolor{keywordtype}{int} \mbox{\hyperlink{if__uath_8c_a5b794c80369c09fba5d13bebb86e3a55}{uath\_regdomain}} = 0;                   \textcolor{comment}{/* regulatory domain */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00124}\mbox{\hyperlink{if__uath_8c_a6c579b616a50ab0a887fe5a802677bd8}{00124}} \mbox{\hyperlink{if__uath_8c_a50952ea3d319e067db8a94e45ce6c932}{SYSCTL\_INT}}(\_hw\_usb\_uath, OID\_AUTO, regdomain, CTLFLAG\_RD, \&\mbox{\hyperlink{if__uath_8c_a5b794c80369c09fba5d13bebb86e3a55}{uath\_regdomain}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00125}00125     0, \textcolor{stringliteral}{"{}regulatory domain"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00127}00127 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00128}00128 \textcolor{keywordtype}{int} uath\_debug = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00129}00129 \mbox{\hyperlink{if__uath_8c_a50952ea3d319e067db8a94e45ce6c932}{SYSCTL\_INT}}(\_hw\_usb\_uath, OID\_AUTO, \mbox{\hyperlink{cfumass_8c_ac3e1795766a80ec63b157951b4b9a7d4}{debug}}, CTLFLAG\_RWTUN, \&uath\_debug, 0,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00130}00130     \textcolor{stringliteral}{"{}uath debug level"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00131}00131 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00132}00132         UATH\_DEBUG\_XMIT         = 0x00000001,   \textcolor{comment}{/* basic xmit operation */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00133}00133         UATH\_DEBUG\_XMIT\_DUMP    = 0x00000002,   \textcolor{comment}{/* xmit dump */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00134}00134         UATH\_DEBUG\_RECV         = 0x00000004,   \textcolor{comment}{/* basic recv operation */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00135}00135         UATH\_DEBUG\_TX\_PROC      = 0x00000008,   \textcolor{comment}{/* tx ISR proc */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00136}00136         UATH\_DEBUG\_RX\_PROC      = 0x00000010,   \textcolor{comment}{/* rx ISR proc */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00137}00137         UATH\_DEBUG\_RECV\_ALL     = 0x00000020,   \textcolor{comment}{/* trace all frames (beacons) */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00138}00138         UATH\_DEBUG\_INIT         = 0x00000040,   \textcolor{comment}{/* initialization of dev */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00139}00139         UATH\_DEBUG\_DEVCAP       = 0x00000080,   \textcolor{comment}{/* dev caps */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00140}00140         UATH\_DEBUG\_CMDS         = 0x00000100,   \textcolor{comment}{/* commands */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00141}00141         UATH\_DEBUG\_CMDS\_DUMP    = 0x00000200,   \textcolor{comment}{/* command buffer dump */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00142}00142         UATH\_DEBUG\_RESET        = 0x00000400,   \textcolor{comment}{/* reset processing */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00143}00143         UATH\_DEBUG\_STATE        = 0x00000800,   \textcolor{comment}{/* 802.11 state transitions */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00144}00144         UATH\_DEBUG\_MULTICAST    = 0x00001000,   \textcolor{comment}{/* multicast */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00145}00145         UATH\_DEBUG\_WME          = 0x00002000,   \textcolor{comment}{/* WME */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00146}00146         UATH\_DEBUG\_CHANNEL      = 0x00004000,   \textcolor{comment}{/* channel */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00147}00147         UATH\_DEBUG\_RATES        = 0x00008000,   \textcolor{comment}{/* rates */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00148}00148         UATH\_DEBUG\_CRYPTO       = 0x00010000,   \textcolor{comment}{/* crypto */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00149}00149         UATH\_DEBUG\_LED          = 0x00020000,   \textcolor{comment}{/* LED */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00150}00150         UATH\_DEBUG\_ANY          = 0xffffffff}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00151}00151 \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00152}00152 \textcolor{preprocessor}{\#define DPRINTF(sc, m, fmt, ...) do \{                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00153}00153 \textcolor{preprocessor}{        if (sc-\/>sc\_debug \& (m))                                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00154}00154 \textcolor{preprocessor}{                printf(fmt, \_\_VA\_ARGS\_\_);                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00155}00155 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00156}00156 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00157}\mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{00157}} \textcolor{preprocessor}{\#define DPRINTF(sc, m, fmt, ...) do \{                           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00158}00158 \textcolor{preprocessor}{        (void) sc;                                              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00159}00159 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00160}00160 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00162}00162 \textcolor{comment}{/* recognized device vendors/products */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00163}\mbox{\hyperlink{if__uath_8c_ad30f2bc1fcdb14c5548f2457377142c4}{00163}} \textcolor{keyword}{static} \textcolor{keyword}{const} \mbox{\hyperlink{usbdi_8h_acf836fd8d6349b66a31f45420728da8d}{STRUCT\_USB\_HOST\_ID}} \mbox{\hyperlink{if__uath_8c_ad30f2bc1fcdb14c5548f2457377142c4}{uath\_devs}}[] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00164}00164 \textcolor{preprocessor}{\#define UATH\_DEV(v,p) \{ USB\_VP(USB\_VENDOR\_\#\#v, USB\_PRODUCT\_\#\#v\#\#\_\#\#p) \}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00165}00165         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(ACCTON,                SMCWUSBTG2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00166}00166         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(ATHEROS,               AR5523),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00167}00167         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(ATHEROS2,              AR5523\_1),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00168}00168         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(ATHEROS2,              AR5523\_2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00169}00169         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(ATHEROS2,              AR5523\_3),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00170}00170         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(CONCEPTRONIC,          AR5523\_1),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00171}00171         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(CONCEPTRONIC,          AR5523\_2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00172}00172         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(DLINK,                 DWLAG122),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00173}00173         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(DLINK,                 DWLAG132),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00174}00174         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(DLINK,                 DWLG132),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00175}00175         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(DLINK2,                DWA120),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00176}00176         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(GIGASET,               AR5523),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00177}00177         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(GIGASET,               SMCWUSBTG),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00178}00178         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(GLOBALSUN,             AR5523\_1),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00179}00179         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(GLOBALSUN,             AR5523\_2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00180}00180         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(NETGEAR,               WG111U),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00181}00181         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(NETGEAR3,              WG111T),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00182}00182         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(NETGEAR3,              WPN111),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00183}00183         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(NETGEAR3,              WPN111\_2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00184}00184         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(UMEDIA,                TEW444UBEU),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00185}00185         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(UMEDIA,                AR5523\_2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00186}00186         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(WISTRONNEWEB,          AR5523\_1),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00187}00187         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(WISTRONNEWEB,          AR5523\_2),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00188}00188         \mbox{\hyperlink{if__uath_8c_a32cc8e6d144fc3788d32e52d8afe1dbc}{UATH\_DEV}}(ZCOM,                  AR5523)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00189}00189 \textcolor{preprocessor}{\#undef UATH\_DEV}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00190}00190 \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00192}\mbox{\hyperlink{if__uath_8c_a94c731b38b9eaeeaedb670b8144bb7ef}{00192}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{if__uath_8c_a94c731b38b9eaeeaedb670b8144bb7ef}{uath\_intr\_rx\_callback}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00193}\mbox{\hyperlink{if__uath_8c_a449501491c88f46d34ff256ac08fe3ba}{00193}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{if__uath_8c_a449501491c88f46d34ff256ac08fe3ba}{uath\_intr\_tx\_callback}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00194}\mbox{\hyperlink{if__uath_8c_a8e22fe92dbabb87269dbf06ec28a5d0b}{00194}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{if__uath_8c_a8e22fe92dbabb87269dbf06ec28a5d0b}{uath\_bulk\_rx\_callback}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00195}\mbox{\hyperlink{if__uath_8c_a7c3ad5fcfe8abb6f7e9e10f10fde33b7}{00195}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{if__uath_8c_a7c3ad5fcfe8abb6f7e9e10f10fde33b7}{uath\_bulk\_tx\_callback}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00196}00196 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00197}\mbox{\hyperlink{if__uath_8c_a909f7f6976312a8d7599eb8477a86e6e}{00197}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__config}{usb\_config}} \mbox{\hyperlink{if__uath_8c_a909f7f6976312a8d7599eb8477a86e6e}{uath\_usbconfig}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa2eb684810abc6c3d57d395c2b06bc06a}{UATH\_N\_XFERS}}] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00198}00198         [\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa7d2c8ed1d45ef2f676416bc60e6c8e4a}{UATH\_INTR\_RX}}] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00199}00199                 .\mbox{\hyperlink{structusb__config_a5bd5d569870291a54d9bed8377ed8b10}{type}} = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00200}00200                 .endpoint = 0x1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00201}00201                 .direction = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00202}00202                 .bufsize = \mbox{\hyperlink{if__uathreg_8h_a885873ccf823d63d89ec1c10c30ce5c8}{UATH\_MAX\_CMDSZ}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00203}00203                 .flags = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00204}00204                         .pipe\_bof = 1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00205}00205                         .short\_xfer\_ok = 1}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00206}00206                 \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00207}00207                 .callback = \mbox{\hyperlink{if__uath_8c_a94c731b38b9eaeeaedb670b8144bb7ef}{uath\_intr\_rx\_callback}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00208}00208         \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00209}00209         [\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffacba09e5356bc1781ff49c0a57d86638f}{UATH\_INTR\_TX}}] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00210}00210                 .type = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00211}00211                 .endpoint = 0x1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00212}00212                 .direction = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00213}00213                 .bufsize = \mbox{\hyperlink{if__uathreg_8h_a885873ccf823d63d89ec1c10c30ce5c8}{UATH\_MAX\_CMDSZ}} * \mbox{\hyperlink{if__uathvar_8h_ab15644c5153c73715dc798182d10e2bc}{UATH\_CMD\_LIST\_COUNT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00214}00214                 .flags = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00215}00215                         .force\_short\_xfer = 1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00216}00216                         .pipe\_bof = 1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00217}00217                 \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00218}00218                 .callback = \mbox{\hyperlink{if__uath_8c_a449501491c88f46d34ff256ac08fe3ba}{uath\_intr\_tx\_callback}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00219}00219                 .timeout = \mbox{\hyperlink{if__uathvar_8h_a267f4edc8e601a2aa7ee82dbffa01e3f}{UATH\_CMD\_TIMEOUT}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00220}00220         \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00221}00221         [\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa72304fb4646649b25b87546fec65bcda}{UATH\_BULK\_RX}}] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00222}00222                 .type = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00223}00223                 .endpoint = 0x2,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00224}00224                 .direction = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00225}00225                 .bufsize = MCLBYTES,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00226}00226                 .flags = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00227}00227                         .ext\_buffer = 1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00228}00228                         .pipe\_bof = 1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00229}00229                         .short\_xfer\_ok = 1}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00230}00230                 \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00231}00231                 .callback = \mbox{\hyperlink{if__uath_8c_a8e22fe92dbabb87269dbf06ec28a5d0b}{uath\_bulk\_rx\_callback}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00232}00232         \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00233}00233         [\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa45a1bc34c96adf883de69c6f59225822}{UATH\_BULK\_TX}}] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00234}00234                 .type = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00235}00235                 .endpoint = 0x2,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00236}00236                 .direction = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00237}00237                 .bufsize = \mbox{\hyperlink{if__uathreg_8h_adda9583f1f4de4b5652991b63b0f0f35}{UATH\_MAX\_TXBUFSZ}} * \mbox{\hyperlink{if__uathvar_8h_ad900fa90d648d6e779b5cc24468a66e5}{UATH\_TX\_DATA\_LIST\_COUNT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00238}00238                 .flags = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00239}00239                         .force\_short\_xfer = 1,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00240}00240                         .pipe\_bof = 1}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00241}00241                 \},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00242}00242                 .callback = \mbox{\hyperlink{if__uath_8c_a7c3ad5fcfe8abb6f7e9e10f10fde33b7}{uath\_bulk\_tx\_callback}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00243}00243                 .timeout = \mbox{\hyperlink{if__uathvar_8h_a79f58da0054feacc639310ef3ead835a}{UATH\_DATA\_TIMEOUT}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00244}00244         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00245}00245 \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00246}00246 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00247}00247 \textcolor{keyword}{static} \textcolor{keyword}{struct }ieee80211vap *\mbox{\hyperlink{if__uath_8c_aaf6a53c7537be4fec9280d970e440dd6}{uath\_vap\_create}}(\textcolor{keyword}{struct} ieee80211com *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00248}00248                     \textcolor{keyword}{const} \textcolor{keywordtype}{char} [IFNAMSIZ], \textcolor{keywordtype}{int}, \textcolor{keyword}{enum} ieee80211\_opmode, \textcolor{keywordtype}{int},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00249}00249                     \textcolor{keyword}{const} uint8\_t [IEEE80211\_ADDR\_LEN],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00250}00250                     \textcolor{keyword}{const} uint8\_t [IEEE80211\_ADDR\_LEN]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00251}00251 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a0dbac72d11c32697554a7baf3771829b}{uath\_vap\_delete}}(\textcolor{keyword}{struct} ieee80211vap *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00252}00252 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_aa49374794cccf8822f505f8cc0df26b8}{uath\_alloc\_cmd\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd}{uath\_cmd}} []);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00253}00253 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_ae1f86416c582e3ec8bf7d66de936f3c5}{uath\_free\_cmd\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd}{uath\_cmd}} []);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00254}00254 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_abc90ba6d951d67d6533916c56283fe61}{uath\_host\_available}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00255}00255 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a696bcc644dd3f57731994ff7910609b4}{uath\_get\_capability}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, uint32\_t *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00256}00256 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a03b2441323d441951aa8f980fc56d9a2}{uath\_get\_devcap}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00257}00257 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00258}00258                 \mbox{\hyperlink{if__uath_8c_ab86789392fcebf1e2e730dda77104a79}{uath\_get\_cmdbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00259}00259 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{uath\_cmd\_read}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00260}00260                     \textcolor{keywordtype}{int}, \textcolor{keywordtype}{void} *, \textcolor{keywordtype}{int}, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00261}00261 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00262}00262                     \textcolor{keywordtype}{int}, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00263}00263 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a49bda70cf9a83a120067df6ee47b2f98}{uath\_stat}}(\textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00264}00264 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00265}00265 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     uath\_dump\_cmd(\textcolor{keyword}{const} uint8\_t *, \textcolor{keywordtype}{int}, \textcolor{keywordtype}{char});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00266}00266 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00267}00267                 uath\_codename(\textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00268}00268 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00269}00269 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_aa77554611fd10e790e093610244df4c7}{uath\_get\_devstatus}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00270}00270                     uint8\_t macaddr[IEEE80211\_ADDR\_LEN]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00271}00271 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_aa4b82b2f825796be7b4ad99e2e56b7a3}{uath\_get\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, \textcolor{keywordtype}{void} *, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00272}00272 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_ab87425e17aadc0e9f1ec82f8732f6864}{uath\_alloc\_rx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00273}00273 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_ad72043f478ea822645f2c80381ff7fe8}{uath\_alloc\_tx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00274}00274 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a895bdaa2a5cf5ba31764d599c65c6fe1}{uath\_free\_rx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00275}00275 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a3cf9bf550bf8ff142c632c11b662759d}{uath\_free\_tx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00276}00276 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a81e89320c848112d18ede4d94d8201de}{uath\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00277}00277 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{uath\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00278}00278 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a3fee5a16ce41a44b60dbf9d31d94969e}{uath\_parent}}(\textcolor{keyword}{struct} ieee80211com *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00279}00279 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a573a0311364b3fa2d9550107b822e8f8}{uath\_transmit}}(\textcolor{keyword}{struct} ieee80211com *, \textcolor{keyword}{struct} mbuf *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00280}00280 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a928c054b6eb1aff382543840b9f7ebf6}{uath\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00281}00281 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_ad5c90412b33937884148892873f7fafa}{uath\_raw\_xmit}}(\textcolor{keyword}{struct} ieee80211\_node *, \textcolor{keyword}{struct} mbuf *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00282}00282                     \textcolor{keyword}{const} \textcolor{keyword}{struct} ieee80211\_bpf\_params *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00283}00283 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a47dde4e2f0e066863dd3ddee3400d9a4}{uath\_scan\_start}}(\textcolor{keyword}{struct} ieee80211com *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00284}00284 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_abc2fefda9f04091c6b9ebc081d4e5adc}{uath\_scan\_end}}(\textcolor{keyword}{struct} ieee80211com *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00285}00285 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a203b25e54396a52818325cc5b65a668d}{uath\_set\_channel}}(\textcolor{keyword}{struct} ieee80211com *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00286}00286 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a68bedb1a43402f5303f291c6115cb17b}{uath\_update\_mcast}}(\textcolor{keyword}{struct} ieee80211com *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00287}00287 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a8d030094e176ddcf93dee3c6eb34a138}{uath\_update\_promisc}}(\textcolor{keyword}{struct} ieee80211com *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00288}00288 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, uint32\_t);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00289}00289 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a9cb9a725e39fa2b548499942ea7ac9e2}{uath\_config\_multi}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00290}00290                     \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00291}00291 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_aebcd216d9406bb5f7df6a277b8968c3f}{uath\_switch\_channel}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00292}00292                     \textcolor{keyword}{struct} ieee80211\_channel *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00293}00293 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a63339bf67ccf320f50edc5fe3a24a19b}{uath\_set\_rxfilter}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, uint32\_t, uint32\_t);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00294}00294 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a577081fbd1a75455879e5f304b5c7eae}{uath\_watchdog}}(\textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00295}00295 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_ad38a2aa1c86e0d72bd1b0a5260d5f3ba}{uath\_abort\_xfers}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00296}00296 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a3b8bf88a679285cc4c3d73ca39482047}{uath\_dataflush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00297}00297 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_aff8b93d6c9592408b67b70008ffa36e7}{uath\_cmdflush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00298}00298 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a0b1d7b0184c64b14be7790d2b6a9c92f}{uath\_flush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00299}00299 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00300}00300 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a7bcd221113443320710c4688051fe577}{uath\_set\_chan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, \textcolor{keyword}{struct} ieee80211\_channel *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00301}00301 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a96b18b69ad643d0ebf25f211ff57ab38}{uath\_reset\_tx\_queues}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00302}00302 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a83c76ccf0b0332d39a055d0071bc301c}{uath\_wme\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00303}00303 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00304}00304                 \mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{uath\_getbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00305}00305 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_ad6fd206e3f532010becc173dae90d93d}{uath\_newstate}}(\textcolor{keyword}{struct} ieee80211vap *, \textcolor{keyword}{enum} ieee80211\_state,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00306}00306                     \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00307}00307 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_ab1e6db8c4308f14cf930c9386cb24f07}{uath\_set\_key}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00308}00308                     \textcolor{keyword}{const} \textcolor{keyword}{struct} ieee80211\_key *, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00309}00309 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{if__uath_8c_a97938d7f1cfb7ff0ae6acc184ba8bc71}{uath\_set\_keys}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *, \textcolor{keyword}{struct} ieee80211vap *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00310}00310 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{if__uath_8c_a8d80fbcef0d112029547acfddf45aba1}{uath\_sysctl\_node}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00311}00311 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00312}00312 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00313}\mbox{\hyperlink{if__uath_8c_a621c213fd47c538420328a24d7a10b35}{00313}} \mbox{\hyperlink{if__uath_8c_a621c213fd47c538420328a24d7a10b35}{uath\_match}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00314}00314 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00315}00315         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa = device\_get\_ivars(dev);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00316}00316 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00317}00317         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a246691e99681281d3113d63e81b7e4f0}{usb\_mode}} != \mbox{\hyperlink{usb_8h_a9bc559812598988121896dceb483806ba1c7091216cfa9c9f4a252b0825ed32cb}{USB\_MODE\_HOST}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00318}00318                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00319}00319         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}}.\mbox{\hyperlink{structusbd__lookup__info_a9e2af2c9a58f0df11559c7679185b0e8}{bConfigIndex}} != \mbox{\hyperlink{if__uathreg_8h_a3aaebe43b1c7086dc14e0982437efbea}{UATH\_CONFIG\_INDEX}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00320}00320                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00321}00321         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}}.\mbox{\hyperlink{structusbd__lookup__info_a50a68740a4c82f1a9b999d4a7994b550}{bIfaceIndex}} != \mbox{\hyperlink{if__uathreg_8h_a8d402bbc6d613416a4289641fa04ee98}{UATH\_IFACE\_INDEX}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00322}00322                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00323}00323 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00324}00324         \textcolor{keywordflow}{return} (\mbox{\hyperlink{usb__lookup_8c_aa691ad42d532498716f358cb1c994fb2}{usbd\_lookup\_id\_by\_uaa}}(\mbox{\hyperlink{if__uath_8c_ad30f2bc1fcdb14c5548f2457377142c4}{uath\_devs}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{if__uath_8c_ad30f2bc1fcdb14c5548f2457377142c4}{uath\_devs}}), uaa));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00325}00325 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00326}00326 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00327}00327 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00328}\mbox{\hyperlink{if__uath_8c_a8e691fb8927448019c9f0001dd0ffee5}{00328}} \mbox{\hyperlink{if__uath_8c_a8e691fb8927448019c9f0001dd0ffee5}{uath\_attach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00329}00329 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00330}00330         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00331}00331         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa = device\_get\_ivars(dev);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00332}00332         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00333}00333         uint8\_t bands[IEEE80211\_MODE\_BYTES];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00334}00334         uint8\_t iface\_index = \mbox{\hyperlink{if__uathreg_8h_a8d402bbc6d613416a4289641fa04ee98}{UATH\_IFACE\_INDEX}};         \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00335}00335         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00336}00336 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00337}00337         sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}} = dev;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00338}00338         sc-\/>\mbox{\hyperlink{structuath__softc_a875a72ac3bf5f237bc46576fffdf003c}{sc\_udev}} = uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00339}00339 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00340}00340         sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} = uath\_debug;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00341}00341 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00342}00342         \mbox{\hyperlink{usb__util_8c_a2f65a197990caa1a69a16691ce4dc66a}{device\_set\_usb\_desc}}(dev);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00343}00343 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00344}00344         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00345}00345 \textcolor{comment}{         * Only post-\/firmware devices here.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00346}00346 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00347}00347         mtx\_init(\&sc-\/>\mbox{\hyperlink{structuath__softc_a4f6388466f9112dc2008f926bd0e426c}{sc\_mtx}}, device\_get\_nameunit(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}), MTX\_NETWORK\_LOCK,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00348}00348             MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00349}00349         callout\_init(\&sc-\/>\mbox{\hyperlink{structuath__softc_a9e1ebd93f1fc55390ea6b37ecb6d9bb0}{stat\_ch}}, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00350}00350         callout\_init\_mtx(\&sc-\/>\mbox{\hyperlink{structuath__softc_af6f80f1fbb2888caf0c429ffc0183c8f}{watchdog\_ch}}, \&sc-\/>\mbox{\hyperlink{structuath__softc_a4f6388466f9112dc2008f926bd0e426c}{sc\_mtx}}, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00351}00351         mbufq\_init(\&sc-\/>\mbox{\hyperlink{structuath__softc_adb8165a1b4704b3d3238f79b0d58d1cf}{sc\_snd}}, ifqmaxlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00352}00352 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00353}00353         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__transfer_8c_a7494c04fae5c5e7ef1af436308670a21}{usbd\_transfer\_setup}}(uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}}, \&iface\_index, sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00354}00354             \mbox{\hyperlink{if__uath_8c_a909f7f6976312a8d7599eb8477a86e6e}{uath\_usbconfig}}, \mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa2eb684810abc6c3d57d395c2b06bc06a}{UATH\_N\_XFERS}}, sc, \&sc-\/>\mbox{\hyperlink{structuath__softc_a4f6388466f9112dc2008f926bd0e426c}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00355}00355         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00356}00356                 device\_printf(dev, \textcolor{stringliteral}{"{}could not allocate USB transfers, "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00357}00357                     \textcolor{stringliteral}{"{}err=\%s\(\backslash\)n"{}}, \mbox{\hyperlink{usb__error_8c_a2391eb446dce3e4368cacf781857774e}{usbd\_errstr}}(\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00358}00358                 \textcolor{keywordflow}{goto} \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00359}00359         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00361}00361         sc-\/>\mbox{\hyperlink{structuath__softc_af22a7587d109162fc1e8f115604973f5}{sc\_cmd\_dma\_buf}} = }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00362}00362             \mbox{\hyperlink{usb__transfer_8c_a5c51a0e41cb978b9e01e032ce56f7d5a}{usbd\_xfer\_get\_frame\_buffer}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffacba09e5356bc1781ff49c0a57d86638f}{UATH\_INTR\_TX}}], 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00363}00363         sc-\/>\mbox{\hyperlink{structuath__softc_abe116a6842cae2764c5496854e743fec}{sc\_tx\_dma\_buf}} = }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00364}00364             \mbox{\hyperlink{usb__transfer_8c_a5c51a0e41cb978b9e01e032ce56f7d5a}{usbd\_xfer\_get\_frame\_buffer}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa45a1bc34c96adf883de69c6f59225822}{UATH\_BULK\_TX}}], 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00365}00365 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00366}00366         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00367}00367 \textcolor{comment}{         * Setup buffers for firmware commands.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00368}00368 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00369}00369         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aa49374794cccf8822f505f8cc0df26b8}{uath\_alloc\_cmd\_list}}(sc, sc-\/>\mbox{\hyperlink{structuath__softc_a582ffa9dadc239d55c76aaf70d0feb4e}{sc\_cmd}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00370}00370         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00371}00371                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00372}00372                     \textcolor{stringliteral}{"{}could not allocate Tx command list\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00373}00373                 \textcolor{keywordflow}{goto} fail1;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00374}00374         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00375}00375 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00376}00376         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00377}00377 \textcolor{comment}{         * We're now ready to send+receive firmware commands.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00378}00378 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00379}00379         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00380}00380         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_abc90ba6d951d67d6533916c56283fe61}{uath\_host\_available}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00381}00381         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00382}00382                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not initialize adapter\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00383}00383                 \textcolor{keywordflow}{goto} fail2;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00384}00384         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00385}00385         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a03b2441323d441951aa8f980fc56d9a2}{uath\_get\_devcap}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00386}00386         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00387}00387                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00388}00388                     \textcolor{stringliteral}{"{}could not get device capabilities\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00389}00389                 \textcolor{keywordflow}{goto} fail2;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00390}00390         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00391}00391         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00392}00392 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00393}00393         \textcolor{comment}{/* Create device sysctl node. */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00394}00394         \mbox{\hyperlink{if__uath_8c_a8d80fbcef0d112029547acfddf45aba1}{uath\_sysctl\_node}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00395}00395 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00396}00396         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00397}00397         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aa77554611fd10e790e093610244df4c7}{uath\_get\_devstatus}}(sc, ic-\/>ic\_macaddr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00398}00398         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00399}00399                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not get device status\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00400}00400                 \textcolor{keywordflow}{goto} fail2;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00401}00401         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00402}00402 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00403}00403         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00404}00404 \textcolor{comment}{         * Allocate xfers for Rx/Tx data pipes.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00405}00405 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00406}00406         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_ab87425e17aadc0e9f1ec82f8732f6864}{uath\_alloc\_rx\_data\_list}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00407}00407         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00408}00408                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not allocate Rx data list\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00409}00409                 \textcolor{keywordflow}{goto} fail2;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00410}00410         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00411}00411         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_ad72043f478ea822645f2c80381ff7fe8}{uath\_alloc\_tx\_data\_list}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00412}00412         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00413}00413                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not allocate Tx data list\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00414}00414                 \textcolor{keywordflow}{goto} fail2;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00415}00415         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00416}00416         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00417}00417 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00418}00418         ic-\/>ic\_softc = sc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00419}00419         ic-\/>ic\_name = device\_get\_nameunit(dev);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00420}00420         ic-\/>ic\_phytype = IEEE80211\_T\_OFDM;      \textcolor{comment}{/* not only, but not used */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00421}00421         ic-\/>ic\_opmode = IEEE80211\_M\_STA;        \textcolor{comment}{/* default to BSS mode */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00422}00422 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00423}00423         \textcolor{comment}{/* set device capabilities */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00424}00424         ic-\/>ic\_caps =}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00425}00425             IEEE80211\_C\_STA |           \textcolor{comment}{/* station mode */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00426}00426             IEEE80211\_C\_MONITOR |       \textcolor{comment}{/* monitor mode supported */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00427}00427             IEEE80211\_C\_TXPMGT |        \textcolor{comment}{/* tx power management */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00428}00428             IEEE80211\_C\_SHPREAMBLE |    \textcolor{comment}{/* short preamble supported */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00429}00429             IEEE80211\_C\_SHSLOT |        \textcolor{comment}{/* short slot time supported */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00430}00430             IEEE80211\_C\_WPA |           \textcolor{comment}{/* 802.11i */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00431}00431             IEEE80211\_C\_BGSCAN |        \textcolor{comment}{/* capable of bg scanning */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00432}00432             IEEE80211\_C\_TXFRAG;         \textcolor{comment}{/* handle tx frags */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00433}00433 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00434}00434         \textcolor{comment}{/* put a regulatory domain to reveal informations.  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00435}00435         \mbox{\hyperlink{if__uath_8c_a5b794c80369c09fba5d13bebb86e3a55}{uath\_regdomain}} = sc-\/>\mbox{\hyperlink{structuath__softc_aabc066c43b4425ea108acb2a63486839}{sc\_devcap}}.\mbox{\hyperlink{structuath__devcap_a6e8ce6d3cbc25a52e5dbdae7b887dde3}{regDomain}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00436}00436 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00437}00437         memset(bands, 0, \textcolor{keyword}{sizeof}(bands));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00438}00438         setbit(bands, IEEE80211\_MODE\_11B);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00439}00439         setbit(bands, IEEE80211\_MODE\_11G);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00440}00440         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_aabc066c43b4425ea108acb2a63486839}{sc\_devcap}}.\mbox{\hyperlink{structuath__devcap_a48e8ce8eaed12a75dded2ffd36747995}{analog5GhzRevision}} \& 0xf0) == 0x30)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00441}00441                 setbit(bands, IEEE80211\_MODE\_11A);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00442}00442         \textcolor{comment}{/* XXX turbo */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00443}00443         ieee80211\_init\_channels(ic, NULL, bands);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00444}00444 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00445}00445         ieee80211\_ifattach(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00446}00446         ic-\/>ic\_raw\_xmit = \mbox{\hyperlink{if__uath_8c_ad5c90412b33937884148892873f7fafa}{uath\_raw\_xmit}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00447}00447         ic-\/>ic\_scan\_start = \mbox{\hyperlink{if__uath_8c_a47dde4e2f0e066863dd3ddee3400d9a4}{uath\_scan\_start}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00448}00448         ic-\/>ic\_scan\_end = \mbox{\hyperlink{if__uath_8c_abc2fefda9f04091c6b9ebc081d4e5adc}{uath\_scan\_end}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00449}00449         ic-\/>ic\_set\_channel = \mbox{\hyperlink{if__uath_8c_a203b25e54396a52818325cc5b65a668d}{uath\_set\_channel}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00450}00450         ic-\/>ic\_vap\_create = \mbox{\hyperlink{if__uath_8c_aaf6a53c7537be4fec9280d970e440dd6}{uath\_vap\_create}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00451}00451         ic-\/>ic\_vap\_delete = \mbox{\hyperlink{if__uath_8c_a0dbac72d11c32697554a7baf3771829b}{uath\_vap\_delete}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00452}00452         ic-\/>ic\_update\_mcast = \mbox{\hyperlink{if__uath_8c_a68bedb1a43402f5303f291c6115cb17b}{uath\_update\_mcast}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00453}00453         ic-\/>ic\_update\_promisc = \mbox{\hyperlink{if__uath_8c_a8d030094e176ddcf93dee3c6eb34a138}{uath\_update\_promisc}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00454}00454         ic-\/>ic\_transmit = \mbox{\hyperlink{if__uath_8c_a573a0311364b3fa2d9550107b822e8f8}{uath\_transmit}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00455}00455         ic-\/>ic\_parent = \mbox{\hyperlink{if__uath_8c_a3fee5a16ce41a44b60dbf9d31d94969e}{uath\_parent}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00456}00456 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00457}00457         ieee80211\_radiotap\_attach(ic,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00458}00458             \&sc-\/>\mbox{\hyperlink{structuath__softc_ac4c547407688bbc29075e1c6de9c68fd}{sc\_txtap}}.\mbox{\hyperlink{structuath__tx__radiotap__header_ab0b76eb4333515515b119017486f7f97}{wt\_ihdr}}, \textcolor{keyword}{sizeof}(sc-\/>\mbox{\hyperlink{structuath__softc_ac4c547407688bbc29075e1c6de9c68fd}{sc\_txtap}}),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00459}00459                 \mbox{\hyperlink{if__uathvar_8h_ace83f310f9fca66cd8b55df8bffbd916}{UATH\_TX\_RADIOTAP\_PRESENT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00460}00460             \&sc-\/>\mbox{\hyperlink{structuath__softc_adb78b8ccc2c957d7d725fcb6d2719b09}{sc\_rxtap}}.\mbox{\hyperlink{structuath__rx__radiotap__header_ad738cfd98e57ba203c5bc7a9adbe9db7}{wr\_ihdr}}, \textcolor{keyword}{sizeof}(sc-\/>\mbox{\hyperlink{structuath__softc_adb78b8ccc2c957d7d725fcb6d2719b09}{sc\_rxtap}}),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00461}00461                 \mbox{\hyperlink{if__uathvar_8h_a5582565b6bcc650d8e21292cb3f48cc0}{UATH\_RX\_RADIOTAP\_PRESENT}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00462}00462 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00463}00463         \textcolor{keywordflow}{if} (bootverbose)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00464}00464                 ieee80211\_announce(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00465}00465 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00466}00466         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00467}00467 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00468}00468 fail2:  \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00469}00469         \mbox{\hyperlink{if__uath_8c_ae1f86416c582e3ec8bf7d66de936f3c5}{uath\_free\_cmd\_list}}(sc, sc-\/>\mbox{\hyperlink{structuath__softc_a582ffa9dadc239d55c76aaf70d0feb4e}{sc\_cmd}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00470}00470 fail1:  \mbox{\hyperlink{usb__transfer_8c_a2f5ab55bfe7f356bb7a7505ff35c9741}{usbd\_transfer\_unsetup}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}, \mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa2eb684810abc6c3d57d395c2b06bc06a}{UATH\_N\_XFERS}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00471}00471 \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00472}00472         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00473}00473 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00474}00474 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00475}00475 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00476}\mbox{\hyperlink{if__uath_8c_a41c041716d7da2ffc4a6801a31189f97}{00476}} \mbox{\hyperlink{if__uath_8c_a41c041716d7da2ffc4a6801a31189f97}{uath\_detach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00477}00477 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00478}00478         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00479}00479         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00480}00480         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} x;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00481}00481 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00482}00482         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00483}00483 \textcolor{comment}{         * Prevent further allocations from RX/TX/CMD}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00484}00484 \textcolor{comment}{         * data lists and ioctls}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00485}00485 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00486}00486         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00487}00487         sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} |= \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00488}00488 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00489}00489         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00490}00490         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00491}00491 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00492}00492         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_adf1120e88bdde7131e3b3096afc8987b}{sc\_tx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00493}00493         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00494}00494         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_af01f24be953d79836b8d67e11daaa770}{sc\_tx\_pending}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00495}00495 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00496}00496         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a175717d6b9195d31c4f1d00e34338a1e}{sc\_cmd\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00497}00497         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a94c9fef25851a995bb3cb2a28337d041}{sc\_cmd\_pending}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00498}00498         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_acb0fce1fb1509c57bc45a15a5703cac6}{sc\_cmd\_waiting}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00499}00499         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00500}00500 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00501}00501         \mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{uath\_stop}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00502}00502         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00503}00503 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00504}00504         callout\_drain(\&sc-\/>\mbox{\hyperlink{structuath__softc_a9e1ebd93f1fc55390ea6b37ecb6d9bb0}{stat\_ch}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00505}00505         callout\_drain(\&sc-\/>\mbox{\hyperlink{structuath__softc_af6f80f1fbb2888caf0c429ffc0183c8f}{watchdog\_ch}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00506}00506 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00507}00507         \textcolor{comment}{/* drain USB transfers */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00508}00508         \textcolor{keywordflow}{for} (x = 0; x != \mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa2eb684810abc6c3d57d395c2b06bc06a}{UATH\_N\_XFERS}}; x++)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00509}00509                 \mbox{\hyperlink{usb__transfer_8c_aa525d15cc84d40dafaaecf86537e2c7f}{usbd\_transfer\_drain}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[x]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00510}00510 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00511}00511         \textcolor{comment}{/* free data buffers */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00512}00512         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00513}00513         \mbox{\hyperlink{if__uath_8c_a895bdaa2a5cf5ba31764d599c65c6fe1}{uath\_free\_rx\_data\_list}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00514}00514         \mbox{\hyperlink{if__uath_8c_a3cf9bf550bf8ff142c632c11b662759d}{uath\_free\_tx\_data\_list}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00515}00515         \mbox{\hyperlink{if__uath_8c_ae1f86416c582e3ec8bf7d66de936f3c5}{uath\_free\_cmd\_list}}(sc, sc-\/>\mbox{\hyperlink{structuath__softc_a582ffa9dadc239d55c76aaf70d0feb4e}{sc\_cmd}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00516}00516         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00517}00517 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00518}00518         \textcolor{comment}{/* free USB transfers and some data buffers */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00519}00519         \mbox{\hyperlink{usb__transfer_8c_a2f5ab55bfe7f356bb7a7505ff35c9741}{usbd\_transfer\_unsetup}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}, \mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa2eb684810abc6c3d57d395c2b06bc06a}{UATH\_N\_XFERS}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00520}00520 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00521}00521         ieee80211\_ifdetach(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00522}00522         mbufq\_drain(\&sc-\/>\mbox{\hyperlink{structuath__softc_adb8165a1b4704b3d3238f79b0d58d1cf}{sc\_snd}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00523}00523         mtx\_destroy(\&sc-\/>\mbox{\hyperlink{structuath__softc_a4f6388466f9112dc2008f926bd0e426c}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00524}00524         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00525}00525 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00526}00526 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00527}00527 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00528}\mbox{\hyperlink{if__uath_8c_ae1f86416c582e3ec8bf7d66de936f3c5}{00528}} \mbox{\hyperlink{if__uath_8c_ae1f86416c582e3ec8bf7d66de936f3c5}{uath\_free\_cmd\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd}{uath\_cmd}} cmds[])}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00529}00529 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00530}00530         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00531}00531 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00532}00532         \textcolor{keywordflow}{for} (i = 0; i != \mbox{\hyperlink{if__uathvar_8h_ab15644c5153c73715dc798182d10e2bc}{UATH\_CMD\_LIST\_COUNT}}; i++)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00533}00533                 cmds[i].buf = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00534}00534 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00535}00535 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00536}00536 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00537}\mbox{\hyperlink{if__uath_8c_aa49374794cccf8822f505f8cc0df26b8}{00537}} \mbox{\hyperlink{if__uath_8c_aa49374794cccf8822f505f8cc0df26b8}{uath\_alloc\_cmd\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd}{uath\_cmd}} cmds[])}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00538}00538 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00539}00539         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00540}00540 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00541}00541         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a175717d6b9195d31c4f1d00e34338a1e}{sc\_cmd\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00542}00542         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a94c9fef25851a995bb3cb2a28337d041}{sc\_cmd\_pending}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00543}00543         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_acb0fce1fb1509c57bc45a15a5703cac6}{sc\_cmd\_waiting}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00544}00544         STAILQ\_INIT(\&sc-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00545}00545 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00546}00546         \textcolor{keywordflow}{for} (i = 0; i != \mbox{\hyperlink{if__uathvar_8h_ab15644c5153c73715dc798182d10e2bc}{UATH\_CMD\_LIST\_COUNT}}; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00547}00547                 \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *cmd = \&cmds[i];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00548}00548 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00549}00549                 cmd-\/>\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}} = \mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}};       \textcolor{comment}{/* backpointer for callbacks */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00550}00550                 cmd-\/>\mbox{\hyperlink{structuath__cmd_ac64232f1f090e0ef63046342a207eb46}{msgid}} = i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00551}00551                 cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}} = ((uint8\_t *)\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_af22a7587d109162fc1e8f115604973f5}{sc\_cmd\_dma\_buf}}) +}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00552}00552                     (i * \mbox{\hyperlink{if__uathreg_8h_a885873ccf823d63d89ec1c10c30ce5c8}{UATH\_MAX\_CMDSZ}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00553}00553                 STAILQ\_INSERT\_TAIL(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}}, cmd, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00554}00554                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00555}00555         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00556}00556         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00557}00557 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00558}00558 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00559}00559 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00560}\mbox{\hyperlink{if__uath_8c_abc90ba6d951d67d6533916c56283fe61}{00560}} \mbox{\hyperlink{if__uath_8c_abc90ba6d951d67d6533916c56283fe61}{uath\_host\_available}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00561}00561 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00562}00562         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__host__available}{uath\_cmd\_host\_available}} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00563}00563 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00564}00564         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00565}00565 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00566}00566         \textcolor{comment}{/* inform target the host is available */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00567}00567         setup.\mbox{\hyperlink{structuath__cmd__host__available_a2d4b975ba750cf79553bd1079d98a825}{sw\_ver\_major}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_a54fc709480d426d24a21ae3011f6d328}{ATH\_SW\_VER\_MAJOR}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00568}00568         setup.\mbox{\hyperlink{structuath__cmd__host__available_acc227e2ced15e80087acdb4f9df2c070}{sw\_ver\_minor}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_a823d94ff65dbc1c15223c8427da80e6d}{ATH\_SW\_VER\_MINOR}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00569}00569         setup.\mbox{\hyperlink{structuath__cmd__host__available_ae03a089b13db0af9369bfae91b8d5cac}{sw\_ver\_patch}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_ad92cf4dacf26ac2ab5fe11e22a2ee6b7}{ATH\_SW\_VER\_PATCH}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00570}00570         setup.\mbox{\hyperlink{structuath__cmd__host__available_a5916a9d3b2109b3571e109ea7ab86f7a}{sw\_ver\_build}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_aa0e390b9de0e038537e5d33327819cdd}{ATH\_SW\_VER\_BUILD}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00571}00571         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{uath\_cmd\_read}}(sc, \mbox{\hyperlink{if__uathreg_8h_a06e737fa170e5cc76c183e74a003b8e0}{WDCMSG\_HOST\_AVAILABLE}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00572}00572                 \&setup, \textcolor{keyword}{sizeof} setup, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00573}00573 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00574}00574 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00575}00575 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00576}00576 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00577}00577 uath\_dump\_cmd(\textcolor{keyword}{const} uint8\_t *buf, \textcolor{keywordtype}{int} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, \textcolor{keywordtype}{char} prefix)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00578}00578 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00579}00579         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *sep = \textcolor{stringliteral}{"{}"{}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00580}00580         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00581}00581 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00582}00582         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00583}00583                 \textcolor{keywordflow}{if} ((i \% 16) == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00584}00584                         printf(\textcolor{stringliteral}{"{}\%s\%c "{}}, sep, prefix);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00585}00585                         sep = \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00586}00586                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00587}00587                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ((i \% 4) == 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00588}00588                         printf(\textcolor{stringliteral}{"{} "{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00589}00589                 printf(\textcolor{stringliteral}{"{}\%02x"{}}, buf[i]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00590}00590         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00591}00591         printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00592}00592 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00593}00593 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00594}00594 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00595}00595 uath\_codename(\textcolor{keywordtype}{int} code)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00596}00596 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00597}00597         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *names[] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00598}00598             \textcolor{stringliteral}{"{}0x00"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00599}00599             \textcolor{stringliteral}{"{}HOST\_AVAILABLE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00600}00600             \textcolor{stringliteral}{"{}BIND"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00601}00601             \textcolor{stringliteral}{"{}TARGET\_RESET"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00602}00602             \textcolor{stringliteral}{"{}TARGET\_GET\_CAPABILITY"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00603}00603             \textcolor{stringliteral}{"{}TARGET\_SET\_CONFIG"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00604}00604             \textcolor{stringliteral}{"{}TARGET\_GET\_STATUS"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00605}00605             \textcolor{stringliteral}{"{}TARGET\_GET\_STATS"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00606}00606             \textcolor{stringliteral}{"{}TARGET\_START"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00607}00607             \textcolor{stringliteral}{"{}TARGET\_STOP"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00608}00608             \textcolor{stringliteral}{"{}TARGET\_ENABLE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00609}00609             \textcolor{stringliteral}{"{}TARGET\_DISABLE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00610}00610             \textcolor{stringliteral}{"{}CREATE\_CONNECTION"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00611}00611             \textcolor{stringliteral}{"{}UPDATE\_CONNECT\_ATTR"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00612}00612             \textcolor{stringliteral}{"{}DELETE\_CONNECT"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00613}00613             \textcolor{stringliteral}{"{}SEND"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00614}00614             \textcolor{stringliteral}{"{}FLUSH"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00615}00615             \textcolor{stringliteral}{"{}STATS\_UPDATE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00616}00616             \textcolor{stringliteral}{"{}BMISS"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00617}00617             \textcolor{stringliteral}{"{}DEVICE\_AVAIL"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00618}00618             \textcolor{stringliteral}{"{}SEND\_COMPLETE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00619}00619             \textcolor{stringliteral}{"{}DATA\_AVAIL"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00620}00620             \textcolor{stringliteral}{"{}SET\_PWR\_MODE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00621}00621             \textcolor{stringliteral}{"{}BMISS\_ACK"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00622}00622             \textcolor{stringliteral}{"{}SET\_LED\_STEADY"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00623}00623             \textcolor{stringliteral}{"{}SET\_LED\_BLINK"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00624}00624             \textcolor{stringliteral}{"{}SETUP\_BEACON\_DESC"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00625}00625             \textcolor{stringliteral}{"{}BEACON\_INIT"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00626}00626             \textcolor{stringliteral}{"{}RESET\_KEY\_CACHE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00627}00627             \textcolor{stringliteral}{"{}RESET\_KEY\_CACHE\_ENTRY"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00628}00628             \textcolor{stringliteral}{"{}SET\_KEY\_CACHE\_ENTRY"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00629}00629             \textcolor{stringliteral}{"{}SET\_DECOMP\_MASK"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00630}00630             \textcolor{stringliteral}{"{}SET\_REGULATORY\_DOMAIN"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00631}00631             \textcolor{stringliteral}{"{}SET\_LED\_STATE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00632}00632             \textcolor{stringliteral}{"{}WRITE\_ASSOCID"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00633}00633             \textcolor{stringliteral}{"{}SET\_STA\_BEACON\_TIMERS"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00634}00634             \textcolor{stringliteral}{"{}GET\_TSF"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00635}00635             \textcolor{stringliteral}{"{}RESET\_TSF"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00636}00636             \textcolor{stringliteral}{"{}SET\_ADHOC\_MODE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00637}00637             \textcolor{stringliteral}{"{}SET\_BASIC\_RATE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00638}00638             \textcolor{stringliteral}{"{}MIB\_CONTROL"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00639}00639             \textcolor{stringliteral}{"{}GET\_CHANNEL\_DATA"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00640}00640             \textcolor{stringliteral}{"{}GET\_CUR\_RSSI"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00641}00641             \textcolor{stringliteral}{"{}SET\_ANTENNA\_SWITCH"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00642}00642             \textcolor{stringliteral}{"{}0x2c"{}}, \textcolor{stringliteral}{"{}0x2d"{}}, \textcolor{stringliteral}{"{}0x2e"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00643}00643             \textcolor{stringliteral}{"{}USE\_SHORT\_SLOT\_TIME"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00644}00644             \textcolor{stringliteral}{"{}SET\_POWER\_MODE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00645}00645             \textcolor{stringliteral}{"{}SETUP\_PSPOLL\_DESC"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00646}00646             \textcolor{stringliteral}{"{}SET\_RX\_MULTICAST\_FILTER"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00647}00647             \textcolor{stringliteral}{"{}RX\_FILTER"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00648}00648             \textcolor{stringliteral}{"{}PER\_CALIBRATION"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00649}00649             \textcolor{stringliteral}{"{}RESET"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00650}00650             \textcolor{stringliteral}{"{}DISABLE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00651}00651             \textcolor{stringliteral}{"{}PHY\_DISABLE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00652}00652             \textcolor{stringliteral}{"{}SET\_TX\_POWER\_LIMIT"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00653}00653             \textcolor{stringliteral}{"{}SET\_TX\_QUEUE\_PARAMS"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00654}00654             \textcolor{stringliteral}{"{}SETUP\_TX\_QUEUE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00655}00655             \textcolor{stringliteral}{"{}RELEASE\_TX\_QUEUE"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00656}00656         \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00657}00657         \textcolor{keyword}{static} \textcolor{keywordtype}{char} buf[8];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00658}00658 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00659}00659         \textcolor{keywordflow}{if} (code < nitems(names))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00660}00660                 \textcolor{keywordflow}{return} names[code];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00661}00661         \textcolor{keywordflow}{if} (code == \mbox{\hyperlink{if__uathreg_8h_abd4172251de361893e7c3d3ac0a73531}{WDCMSG\_SET\_DEFAULT\_KEY}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00662}00662                 \textcolor{keywordflow}{return} \textcolor{stringliteral}{"{}SET\_DEFAULT\_KEY"{}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00663}00663         snprintf(buf, \textcolor{keyword}{sizeof}(buf), \textcolor{stringliteral}{"{}0x\%02x"{}}, code);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00664}00664         \textcolor{keywordflow}{return} buf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00665}00665 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00666}00666 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00667}00667 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00668}00668 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00669}00669 \textcolor{comment}{ * Low-\/level function to send read or write commands to the firmware.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00670}00670 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00671}00671 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00672}\mbox{\hyperlink{if__uath_8c_a92bb6d3dca221fc787836e761dac0e89}{00672}} \mbox{\hyperlink{if__uath_8c_a92bb6d3dca221fc787836e761dac0e89}{uath\_cmdsend}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t code, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *idata, \textcolor{keywordtype}{int} ilen,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00673}00673     \textcolor{keywordtype}{void} *odata, \textcolor{keywordtype}{int} olen, \textcolor{keywordtype}{int} flags)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00674}00674 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00675}00675         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}} *hdr;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00676}00676         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *cmd;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00677}00677         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00678}00678 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00679}00679         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00680}00680 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00681}00681         \textcolor{comment}{/* grab a xfer */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00682}00682         cmd = \mbox{\hyperlink{if__uath_8c_ab86789392fcebf1e2e730dda77104a79}{uath\_get\_cmdbuf}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00683}00683         \textcolor{keywordflow}{if} (cmd == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00684}00684                 device\_printf(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}\%s: empty inactive queue\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00685}00685                     \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00686}00686                 \textcolor{keywordflow}{return} (ENOBUFS);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00687}00687         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00688}00688         cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} = \mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00689}00689         \textcolor{comment}{/* always bulk-\/out a multiple of 4 bytes */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00690}00690         cmd-\/>\mbox{\hyperlink{structuath__cmd_a3fc0496a413ddefffdec319b3c57394f}{buflen}} = roundup2(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}}) + ilen, 4);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00691}00691 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00692}00692         hdr = (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}} *)cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00693}00693         memset(hdr, 0, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00694}00694         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}}   = htobe32(cmd-\/>\mbox{\hyperlink{structuath__cmd_a3fc0496a413ddefffdec319b3c57394f}{buflen}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00695}00695         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}  = htobe32(\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00696}00696         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_abdd88194c57270876f23d46b9a80fcd2}{msgid}} = cmd-\/>\mbox{\hyperlink{structuath__cmd_ac64232f1f090e0ef63046342a207eb46}{msgid}};      \textcolor{comment}{/* don't care about endianness */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00697}00697         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_aaf6d944a26843679e547e654a6628729}{magic}} = htobe32((cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} \& \mbox{\hyperlink{if__uathvar_8h_aca589c48f139c5537481c91252a6d8a5}{UATH\_CMD\_FLAG\_MAGIC}}) ? 1 << 24 : 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00698}00698         memcpy((uint8\_t *)(hdr + 1), idata, ilen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00699}00699 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00700}00700 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00701}00701         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_CMDS) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00702}00702                 printf(\textcolor{stringliteral}{"{}\%s: send  \%s [flags 0x\%x] olen \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00703}00703                     \_\_func\_\_, uath\_codename(\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}), cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}}, olen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00704}00704                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_CMDS\_DUMP)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00705}00705                         uath\_dump\_cmd(cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}}, cmd-\/>\mbox{\hyperlink{structuath__cmd_a3fc0496a413ddefffdec319b3c57394f}{buflen}}, \textcolor{charliteral}{'+'});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00706}00706         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00707}00707 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00708}00708         cmd-\/>\mbox{\hyperlink{structuath__cmd_ad7b8f68b91cf471ef89619d1640ed1b8}{odata}} = odata;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00709}00709         KASSERT(odata == NULL ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00710}00710             olen < \mbox{\hyperlink{if__uathreg_8h_a885873ccf823d63d89ec1c10c30ce5c8}{UATH\_MAX\_CMDSZ}} -\/ \textcolor{keyword}{sizeof}(*hdr) + \textcolor{keyword}{sizeof}(uint32\_t),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00711}00711             (\textcolor{stringliteral}{"{}odata \%p olen \%u"{}}, odata, olen));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00712}00712         cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}} = olen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00713}00713 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00714}00714         STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_a94c9fef25851a995bb3cb2a28337d041}{sc\_cmd\_pending}}, cmd, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00715}00715         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_cmd\_pending);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00716}00716         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffacba09e5356bc1781ff49c0a57d86638f}{UATH\_INTR\_TX}}]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00717}00717 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00718}00718         \textcolor{keywordflow}{if} (cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} \& \mbox{\hyperlink{if__uathvar_8h_afe0cf3a67cff29bc55fac765e97a8e71}{UATH\_CMD\_FLAG\_READ}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00719}00719                 \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa7d2c8ed1d45ef2f676416bc60e6c8e4a}{UATH\_INTR\_RX}}]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00720}00720 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00721}00721                 \textcolor{comment}{/* wait at most two seconds for command reply */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00722}00722                 \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = mtx\_sleep(cmd, \&sc-\/>\mbox{\hyperlink{structuath__softc_a4f6388466f9112dc2008f926bd0e426c}{sc\_mtx}}, 0, \textcolor{stringliteral}{"{}uathcmd"{}}, 2 * hz);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00723}00723                 cmd-\/>\mbox{\hyperlink{structuath__cmd_ad7b8f68b91cf471ef89619d1640ed1b8}{odata}} = NULL; \textcolor{comment}{/* in case reply comes too late */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00724}00724                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00725}00725                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}timeout waiting for reply "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00726}00726                             \textcolor{stringliteral}{"{}to cmd 0x\%x (\%u)\(\backslash\)n"{}}, \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00727}00727                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}} != olen) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00728}00728                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}unexpected reply data count "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00729}00729                             \textcolor{stringliteral}{"{}to cmd 0x\%x (\%u), got \%u, expected \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00730}00730                             \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}}, olen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00731}00731                         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = EINVAL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00732}00732                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00733}00733                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00734}00734         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00735}00735         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00736}00736 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00737}00737 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00738}00738 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00739}\mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{00739}} \mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{uath\_cmd\_read}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *idata,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00740}00740     \textcolor{keywordtype}{int} ilen, \textcolor{keywordtype}{void} *odata, \textcolor{keywordtype}{int} olen, \textcolor{keywordtype}{int} flags)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00741}00741 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00742}00742 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00743}00743         flags |= \mbox{\hyperlink{if__uathvar_8h_afe0cf3a67cff29bc55fac765e97a8e71}{UATH\_CMD\_FLAG\_READ}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00744}00744         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_a92bb6d3dca221fc787836e761dac0e89}{uath\_cmdsend}}(sc, \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, idata, ilen, odata, olen, flags);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00745}00745 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00746}00746 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00747}00747 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00748}\mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{00748}} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{int} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00749}00749     \textcolor{keywordtype}{int} flags)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00750}00750 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00751}00751 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00752}00752         flags \&= \string~UATH\_CMD\_FLAG\_READ;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00753}00753         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_a92bb6d3dca221fc787836e761dac0e89}{uath\_cmdsend}}(sc, \mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, data, \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, NULL, 0, flags);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00754}00754 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00755}00755 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00756}00756 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00757}\mbox{\hyperlink{if__uath_8c_ab86789392fcebf1e2e730dda77104a79}{00757}} \mbox{\hyperlink{if__uath_8c_ab86789392fcebf1e2e730dda77104a79}{uath\_get\_cmdbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00758}00758 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00759}00759         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *uc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00760}00760 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00761}00761         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00762}00762 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00763}00763         uc = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00764}00764         \textcolor{keywordflow}{if} (uc != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00765}00765                 STAILQ\_REMOVE\_HEAD(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00766}00766                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00767}00767         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00768}00768                 uc = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00769}00769         \textcolor{keywordflow}{if} (uc == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00770}00770                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, UATH\_DEBUG\_XMIT, \textcolor{stringliteral}{"{}\%s: \%s\(\backslash\)n"{}}, \_\_func\_\_,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00771}00771                     \textcolor{stringliteral}{"{}out of command xmit buffers"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00772}00772         \textcolor{keywordflow}{return} (uc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00773}00773 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00774}00774 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00775}00775 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00776}00776 \textcolor{comment}{ * This function is called periodically (every second) when associated to}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00777}00777 \textcolor{comment}{ * query device statistics.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00778}00778 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00779}00779 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00780}\mbox{\hyperlink{if__uath_8c_a49bda70cf9a83a120067df6ee47b2f98}{00780}} \mbox{\hyperlink{if__uath_8c_a49bda70cf9a83a120067df6ee47b2f98}{uath\_stat}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00781}00781 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00782}00782         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = arg;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00783}00783         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00784}00784 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00785}00785         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00786}00786         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00787}00787 \textcolor{comment}{         * Send request for statistics asynchronously. The timer will be}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00788}00788 \textcolor{comment}{         * restarted when we'll get the stats notification.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00789}00789 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00790}00790         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a31764e41482682ca047838dc6753cb6c}{WDCMSG\_TARGET\_GET\_STATS}}, NULL, 0,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00791}00791             \mbox{\hyperlink{if__uathvar_8h_a9528998c33c3c96766d546194dd3ea9e}{UATH\_CMD\_FLAG\_ASYNC}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00792}00792         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00793}00793                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00794}00794                     \textcolor{stringliteral}{"{}could not query stats, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00795}00795         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00796}00796         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00797}00797 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00798}00798 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00799}00799 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00800}\mbox{\hyperlink{if__uath_8c_a696bcc644dd3f57731994ff7910609b4}{00800}} \mbox{\hyperlink{if__uath_8c_a696bcc644dd3f57731994ff7910609b4}{uath\_get\_capability}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t cap, uint32\_t *\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00801}00801 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00802}00802         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00803}00803 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00804}00804         cap = htobe32(cap);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00805}00805         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{uath\_cmd\_read}}(sc, \mbox{\hyperlink{if__uathreg_8h_a1f172981d67e7a94cf1ccad543f5341d}{WDCMSG\_TARGET\_GET\_CAPABILITY}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00806}00806             \&cap, \textcolor{keyword}{sizeof} cap, \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}, \textcolor{keyword}{sizeof}(uint32\_t), \mbox{\hyperlink{if__uathvar_8h_aca589c48f139c5537481c91252a6d8a5}{UATH\_CMD\_FLAG\_MAGIC}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00807}00807         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00808}00808                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not read capability \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00809}00809                     be32toh(cap));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00810}00810                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00811}00811         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00812}00812         *\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}} = be32toh(*\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00813}00813         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00814}00814 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00815}00815 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00816}00816 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00817}\mbox{\hyperlink{if__uath_8c_a03b2441323d441951aa8f980fc56d9a2}{00817}} \mbox{\hyperlink{if__uath_8c_a03b2441323d441951aa8f980fc56d9a2}{uath\_get\_devcap}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00818}00818 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00819}00819 \textcolor{preprocessor}{\#define GETCAP(x, v) do \{                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00820}00820 \textcolor{preprocessor}{        error = uath\_get\_capability(sc, x, \&v);         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00821}00821 \textcolor{preprocessor}{        if (error != 0)                                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00822}00822 \textcolor{preprocessor}{                return (error);                         \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00823}00823 \textcolor{preprocessor}{        DPRINTF(sc, UATH\_DEBUG\_DEVCAP,                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00824}00824 \textcolor{preprocessor}{            "{}\%s: \%s=0x\%08x\(\backslash\)n"{}}, \_\_func\_\_, \#x, v);        \(\backslash\)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00825}00825 \} while (0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00826}00826         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__devcap}{uath\_devcap}} *cap = \&sc-\/>\mbox{\hyperlink{structuath__softc_aabc066c43b4425ea108acb2a63486839}{sc\_devcap}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00827}00827         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00828}00828 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00829}00829         \textcolor{comment}{/* collect device capabilities */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00830}00830         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a0e9ed6008ae93e38a80f3d810d39305e}{CAP\_TARGET\_VERSION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a5e3933b2320b874289e4072f026376ac}{targetVersion}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00831}00831         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a454b2fb95b94420cff49e0b55203cabc}{CAP\_TARGET\_REVISION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a77385ed4727d4459afa72350b0b1a3cc}{targetRevision}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00832}00832         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13aa25f7077a239e805bf06fc98bb182d0a}{CAP\_MAC\_VERSION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a94a9c9ed0b3c740c3db64d25e28dcfb0}{macVersion}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00833}00833         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13ada118fa43e8bf28da188ec10f5143e2e}{CAP\_MAC\_REVISION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ae4b6ed8b22c05dcd960c7d0127c94c5b}{macRevision}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00834}00834         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13abe5f5f8f22dc453a25adcbfbc05a61c5}{CAP\_PHY\_REVISION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a50eb8b7af7f53f6766a1a294587e24d3}{phyRevision}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00835}00835         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a1a4ac2baab233941d3a7507377950185}{CAP\_ANALOG\_5GHz\_REVISION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a48e8ce8eaed12a75dded2ffd36747995}{analog5GhzRevision}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00836}00836         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a1e197a3f065636a55e76f5d6a267efe0}{CAP\_ANALOG\_2GHz\_REVISION}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a39efb72d83e2d4e933ccafb55513c43c}{analog2GhzRevision}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00837}00837 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00838}00838         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13abbcc24280703fc02ef385c1046a925b7}{CAP\_REG\_DOMAIN}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a6e8ce6d3cbc25a52e5dbdae7b887dde3}{regDomain}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00839}00839         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a25e6bf2b3b5d492421ba2003065e78d9}{CAP\_REG\_CAP\_BITS}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ad8d9e198a438e107b18f608a3bdac0f3}{regCapBits}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00840}00840 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00841}00841         \textcolor{comment}{/* NB: not supported in rev 1.5 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00842}00842         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a497f1a86514e68e445b8193a84c0f294}{CAP\_COUNTRY\_CODE}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a1f19661555e99f33c7b9ca92ca3567b6}{countryCode}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00843}00843 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00844}00844         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13ade00e12f86e5092d6e1ddc6e92bce5ed}{CAP\_WIRELESS\_MODES}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a7eeaf661acffc4d184e61c1c544e0283}{wirelessModes}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00845}00845         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a5d5b62288f729312f2f3c73981aaeb81}{CAP\_CHAN\_SPREAD\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a3d18183a31337ce457cec86fd6298f3c}{chanSpreadSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00846}00846         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13ab084298ca5a6a0f92230c24a29fb8cd5}{CAP\_COMPRESS\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a27adb2d4bd01a43cff12881853ce7e4b}{compressSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00847}00847         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13ac07f9df782cd6d37a62b88c47b20fdf5}{CAP\_BURST\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ab34f51bffb5e921a51d29795297b6fa3}{burstSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00848}00848         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a16e52b905d198868d5bf16e4f738ab20}{CAP\_FAST\_FRAMES\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_aef4c5dd37b3849c6a0a470cebb854449}{fastFramesSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00849}00849         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13aadcb02ee972e8e4850d89fbe96d37176}{CAP\_CHAP\_TUNING\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a4e8008fd30661e052d1952066f1b5de2}{chapTuningSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00850}00850         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13abda04286820c82ee2676a66672d4cd6c}{CAP\_TURBOG\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a825daab61bcf86320e01b27679595ad3}{turboGSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00851}00851         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a6e083896cd90f2727dc306c63342e768}{CAP\_TURBO\_PRIME\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ad644a5e945b63bdf903862d9f7cc57af}{turboPrimeSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00852}00852         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a96f1dd6547a49d06ae8a2b2c291b84b7}{CAP\_DEVICE\_TYPE}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a7a5023c5a0a37a3509d68eaf1448278a}{deviceType}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00853}00853         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a8816b9c0fb7ce812fa65f6059d0cf23e}{CAP\_WME\_SUPPORT}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a5a356a6c66f1da955126137de6dfa129}{wmeSupport}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00854}00854         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a0924cdb47dd195c90c68d958b2d84064}{CAP\_TOTAL\_QUEUES}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a029349d57f708e3e8da8253130b52060}{numTxQueues}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00855}00855         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a61e85a0f2e9a94f5f3d207c048314646}{CAP\_CONNECTION\_ID\_MAX}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a746fc6211aaea9003a74fd11da6ac1c2}{connectionIdMax}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00856}00856 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00857}00857         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13aa0e294e1ee20ce7b7bac711dfbfc12f4}{CAP\_LOW\_5GHZ\_CHAN}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ac5d25723fc1a27c37eb0aad887848e26}{low5GhzChan}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00858}00858         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a4edb10340dfede950120345b094da006}{CAP\_HIGH\_5GHZ\_CHAN}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ac875e43940e81c58fb08438541c8251a}{high5GhzChan}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00859}00859         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13adf366ed254c45b9ee6036af00d2c1651}{CAP\_LOW\_2GHZ\_CHAN}}, cap-\/>\mbox{\hyperlink{structuath__devcap_af4e3cb64e9c4901231d9f8b5a0016873}{low2GhzChan}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00860}00860         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13ad4a3c3eae6af259f08fbcbfbd1287f5c}{CAP\_HIGH\_2GHZ\_CHAN}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a5858907a25e09c50e9259bc9d15a649f}{high2GhzChan}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00861}00861         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a5f188a7a85ae21bd2e948e4204ac5c42}{CAP\_TWICE\_ANTENNAGAIN\_5G}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a47a13a16355c063143514f39b6e3828e}{twiceAntennaGain5G}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00862}00862         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a2ae29d1b868514ba9e3917bae45d1319}{CAP\_TWICE\_ANTENNAGAIN\_2G}}, cap-\/>\mbox{\hyperlink{structuath__devcap_ac85b9e70506e5f09e336cacf8e742f8e}{twiceAntennaGain2G}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00863}00863 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00864}00864         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13aa35ab25dfb524698992b6fdf79bb9dbe}{CAP\_CIPHER\_AES\_CCM}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a1b3ff8792fab740210baec9490cb6c54}{supportCipherAES\_CCM}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00865}00865         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13adfc8ef173a2572644f85684ef557dc7c}{CAP\_CIPHER\_TKIP}}, cap-\/>\mbox{\hyperlink{structuath__devcap_a98ddb5005365b7238dd9a9a76215adeb}{supportCipherTKIP}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00866}00866         \mbox{\hyperlink{if__uath_8c_a377da2909169482ba72cfe6fc5e2322a}{GETCAP}}(\mbox{\hyperlink{if__uathreg_8h_a0ac0b7994a7d738aa77d2c1cfe8d6d13a5ca54a25e9135d19cd7b3c465ca5fead}{CAP\_MIC\_TKIP}}, cap-\/>\mbox{\hyperlink{structuath__devcap_aad23705ff4bdca0cb3c1d9a9b59e8e0f}{supportMicTKIP}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00867}00867 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00868}00868         cap-\/>\mbox{\hyperlink{structuath__devcap_a5e660bd4ab8fded3b45893569e4bca2a}{supportCipherWEP}} = 1;      \textcolor{comment}{/* NB: always available */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00869}00869 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00870}00870         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00871}00871 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00872}00872 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00873}00873 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00874}\mbox{\hyperlink{if__uath_8c_aa77554611fd10e790e093610244df4c7}{00874}} \mbox{\hyperlink{if__uath_8c_aa77554611fd10e790e093610244df4c7}{uath\_get\_devstatus}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint8\_t macaddr[IEEE80211\_ADDR\_LEN])}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00875}00875 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00876}00876         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00877}00877 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00878}00878         \textcolor{comment}{/* retrieve MAC address */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00879}00879         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aa4b82b2f825796be7b4ad99e2e56b7a3}{uath\_get\_status}}(sc, \mbox{\hyperlink{if__uathreg_8h_a5bea799269f02f5b3395d6b2c068b618a67be7f9a8baf000d7c64f0a3d258af1d}{ST\_MAC\_ADDR}}, macaddr, IEEE80211\_ADDR\_LEN);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00880}00880         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00881}00881                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not read MAC address\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00882}00882                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00883}00883         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00884}00884 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00885}00885         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aa4b82b2f825796be7b4ad99e2e56b7a3}{uath\_get\_status}}(sc, \mbox{\hyperlink{if__uathreg_8h_a5bea799269f02f5b3395d6b2c068b618a72421b94c9101129cd7e411a109b1a00}{ST\_SERIAL\_NUMBER}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00886}00886             \&sc-\/>\mbox{\hyperlink{structuath__softc_ad64c8a6391be44c02a21a170f41b5fc5}{sc\_serial}}[0], \textcolor{keyword}{sizeof}(sc-\/>\mbox{\hyperlink{structuath__softc_ad64c8a6391be44c02a21a170f41b5fc5}{sc\_serial}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00887}00887         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00888}00888                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00889}00889                     \textcolor{stringliteral}{"{}could not read device serial number\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00890}00890                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00891}00891         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00892}00892         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00893}00893 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00894}00894 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00895}00895 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00896}\mbox{\hyperlink{if__uath_8c_aa4b82b2f825796be7b4ad99e2e56b7a3}{00896}} \mbox{\hyperlink{if__uath_8c_aa4b82b2f825796be7b4ad99e2e56b7a3}{uath\_get\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t which, \textcolor{keywordtype}{void} *odata, \textcolor{keywordtype}{int} olen)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00897}00897 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00898}00898         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00899}00899 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00900}00900         which = htobe32(which);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00901}00901         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{uath\_cmd\_read}}(sc, \mbox{\hyperlink{if__uathreg_8h_a31434df24ec8df9652305a4ab8769358}{WDCMSG\_TARGET\_GET\_STATUS}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00902}00902             \&which, \textcolor{keyword}{sizeof}(which), odata, olen, \mbox{\hyperlink{if__uathvar_8h_aca589c48f139c5537481c91252a6d8a5}{UATH\_CMD\_FLAG\_MAGIC}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00903}00903         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00904}00904                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00905}00905                     \textcolor{stringliteral}{"{}could not read EEPROM offset 0x\%02x\(\backslash\)n"{}}, be32toh(which));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00906}00906         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00907}00907 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00908}00908 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00909}00909 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00910}\mbox{\hyperlink{if__uath_8c_ac6805be225f2e665280b21716e78f0b3}{00910}} \mbox{\hyperlink{if__uath_8c_ac6805be225f2e665280b21716e78f0b3}{uath\_free\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__data}{uath\_data}} data[], \textcolor{keywordtype}{int} ndata,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00911}00911     \textcolor{keywordtype}{int} fillmbuf)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00912}00912 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00913}00913         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00914}00914 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00915}00915         \textcolor{keywordflow}{for} (i = 0; i < ndata; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00916}00916                 \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *dp = \&data[i];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00917}00917 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00918}00918                 \textcolor{keywordflow}{if} (fillmbuf == 1) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00919}00919                         \textcolor{keywordflow}{if} (dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00920}00920                                 m\_freem(dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00921}00921                                 dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00922}00922                                 dp-\/>\mbox{\hyperlink{structuath__data_ab7fec662eda85fa39027eab465c474bd}{buf}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00923}00923                         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00924}00924                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00925}00925                         dp-\/>\mbox{\hyperlink{structuath__data_ab7fec662eda85fa39027eab465c474bd}{buf}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00926}00926                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00927}00927                 \textcolor{keywordflow}{if} (dp-\/>\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00928}00928                         ieee80211\_free\_node(dp-\/>\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00929}00929                         dp-\/>\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00930}00930                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00931}00931         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00932}00932 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00933}00933 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00934}00934 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00935}\mbox{\hyperlink{if__uath_8c_ad0e5b0e8566ac062ef6b5acdf0630d4f}{00935}} \mbox{\hyperlink{if__uath_8c_ad0e5b0e8566ac062ef6b5acdf0630d4f}{uath\_alloc\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__data}{uath\_data}} data[],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00936}00936     \textcolor{keywordtype}{int} ndata, \textcolor{keywordtype}{int} maxsz, \textcolor{keywordtype}{void} *dma\_buf)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00937}00937 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00938}00938         \textcolor{keywordtype}{int} i, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00939}00939 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00940}00940         \textcolor{keywordflow}{for} (i = 0; i < ndata; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00941}00941                 \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *dp = \&data[i];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00942}00942 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00943}00943                 dp-\/>\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}} = \mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00944}00944                 \textcolor{keywordflow}{if} (dma\_buf == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00945}00945                         \textcolor{comment}{/* XXX check maxsz */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00946}00946                         dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} = m\_getcl(M\_NOWAIT, MT\_DATA, M\_PKTHDR);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00947}00947                         \textcolor{keywordflow}{if} (dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00948}00948                                 device\_printf(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00949}00949                                     \textcolor{stringliteral}{"{}could not allocate rx mbuf\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00950}00950                                 \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = ENOMEM;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00951}00951                                 \textcolor{keywordflow}{goto} \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00952}00952                         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00953}00953                         dp-\/>\mbox{\hyperlink{structuath__data_ab7fec662eda85fa39027eab465c474bd}{buf}} = mtod(dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}}, uint8\_t *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00954}00954                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00955}00955                         dp-\/>\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00956}00956                         dp-\/>\mbox{\hyperlink{structuath__data_ab7fec662eda85fa39027eab465c474bd}{buf}} = ((uint8\_t *)dma\_buf) + (i * maxsz);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00957}00957                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00958}00958                 dp-\/>\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00959}00959         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00960}00960 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00961}00961         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00962}00962 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00963}00963 \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}}:       \mbox{\hyperlink{if__uath_8c_ac6805be225f2e665280b21716e78f0b3}{uath\_free\_data\_list}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, data, ndata, 1 \textcolor{comment}{/* free mbufs */});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00964}00964         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00965}00965 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00966}00966 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00967}00967 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00968}\mbox{\hyperlink{if__uath_8c_ab87425e17aadc0e9f1ec82f8732f6864}{00968}} \mbox{\hyperlink{if__uath_8c_ab87425e17aadc0e9f1ec82f8732f6864}{uath\_alloc\_rx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00969}00969 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00970}00970         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00971}00971 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00972}00972         \textcolor{comment}{/* XXX is it enough to store the RX packet with MCLBYTES bytes?  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00973}00973         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_ad0e5b0e8566ac062ef6b5acdf0630d4f}{uath\_alloc\_data\_list}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00974}00974             \mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_acd8574607c7ab202b6f7e81d8294760f}{sc\_rx}}, \mbox{\hyperlink{if__uathvar_8h_a3d75910208a6f5db4ee2bc12d96eaef9}{UATH\_RX\_DATA\_LIST\_COUNT}}, MCLBYTES,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00975}00975             NULL \textcolor{comment}{/* setup mbufs */});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00976}00976         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00977}00977                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00978}00978 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00979}00979         STAILQ\_INIT(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00980}00980         STAILQ\_INIT(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00981}00981 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00982}00982         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{if__uathvar_8h_a3d75910208a6f5db4ee2bc12d96eaef9}{UATH\_RX\_DATA\_LIST\_COUNT}}; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00983}00983                 STAILQ\_INSERT\_HEAD(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}}, \&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_acd8574607c7ab202b6f7e81d8294760f}{sc\_rx}}[i],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00984}00984                     \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00985}00985                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_rx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00986}00986         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00987}00987 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00988}00988         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00989}00989 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00990}00990 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00991}00991 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00992}\mbox{\hyperlink{if__uath_8c_ad72043f478ea822645f2c80381ff7fe8}{00992}} \mbox{\hyperlink{if__uath_8c_ad72043f478ea822645f2c80381ff7fe8}{uath\_alloc\_tx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00993}00993 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00994}00994         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00995}00995 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00996}00996         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_ad0e5b0e8566ac062ef6b5acdf0630d4f}{uath\_alloc\_data\_list}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00997}00997             \mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a5487e33c758cd5d9add4e85d84caf30f}{sc\_tx}}, \mbox{\hyperlink{if__uathvar_8h_ad900fa90d648d6e779b5cc24468a66e5}{UATH\_TX\_DATA\_LIST\_COUNT}}, \mbox{\hyperlink{if__uathreg_8h_adda9583f1f4de4b5652991b63b0f0f35}{UATH\_MAX\_TXBUFSZ}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00998}00998             \mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_abe116a6842cae2764c5496854e743fec}{sc\_tx\_dma\_buf}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l00999}00999         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01000}01000                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01001}01001 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01002}01002         STAILQ\_INIT(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_adf1120e88bdde7131e3b3096afc8987b}{sc\_tx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01003}01003         STAILQ\_INIT(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01004}01004         STAILQ\_INIT(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_af01f24be953d79836b8d67e11daaa770}{sc\_tx\_pending}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01005}01005 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01006}01006         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{if__uathvar_8h_ad900fa90d648d6e779b5cc24468a66e5}{UATH\_TX\_DATA\_LIST\_COUNT}}; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01007}01007                 STAILQ\_INSERT\_HEAD(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}}, \&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a5487e33c758cd5d9add4e85d84caf30f}{sc\_tx}}[i],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01008}01008                     \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01009}01009                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01010}01010         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01011}01011 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01012}01012         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01013}01013 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01014}01014 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01015}01015 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01016}\mbox{\hyperlink{if__uath_8c_a895bdaa2a5cf5ba31764d599c65c6fe1}{01016}} \mbox{\hyperlink{if__uath_8c_a895bdaa2a5cf5ba31764d599c65c6fe1}{uath\_free\_rx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01017}01017 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01018}01018         \mbox{\hyperlink{if__uath_8c_ac6805be225f2e665280b21716e78f0b3}{uath\_free\_data\_list}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, \mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_acd8574607c7ab202b6f7e81d8294760f}{sc\_rx}}, \mbox{\hyperlink{if__uathvar_8h_a3d75910208a6f5db4ee2bc12d96eaef9}{UATH\_RX\_DATA\_LIST\_COUNT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01019}01019             1 \textcolor{comment}{/* free mbufs */});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01020}01020 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01021}01021 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01022}01022 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01023}\mbox{\hyperlink{if__uath_8c_a3cf9bf550bf8ff142c632c11b662759d}{01023}} \mbox{\hyperlink{if__uath_8c_a3cf9bf550bf8ff142c632c11b662759d}{uath\_free\_tx\_data\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01024}01024 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01025}01025         \mbox{\hyperlink{if__uath_8c_ac6805be225f2e665280b21716e78f0b3}{uath\_free\_data\_list}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, \mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a5487e33c758cd5d9add4e85d84caf30f}{sc\_tx}}, \mbox{\hyperlink{if__uathvar_8h_ad900fa90d648d6e779b5cc24468a66e5}{UATH\_TX\_DATA\_LIST\_COUNT}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01026}01026             0 \textcolor{comment}{/* no mbufs */});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01027}01027 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01028}01028 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01029}01029 \textcolor{keyword}{static} \textcolor{keyword}{struct }ieee80211vap *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01030}\mbox{\hyperlink{if__uath_8c_aaf6a53c7537be4fec9280d970e440dd6}{01030}} \mbox{\hyperlink{if__uath_8c_aaf6a53c7537be4fec9280d970e440dd6}{uath\_vap\_create}}(\textcolor{keyword}{struct} ieee80211com *ic, \textcolor{keyword}{const} \textcolor{keywordtype}{char} name[IFNAMSIZ], \textcolor{keywordtype}{int} unit,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01031}01031     \textcolor{keyword}{enum} ieee80211\_opmode opmode, \textcolor{keywordtype}{int} flags,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01032}01032     \textcolor{keyword}{const} uint8\_t bssid[IEEE80211\_ADDR\_LEN],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01033}01033     \textcolor{keyword}{const} uint8\_t mac[IEEE80211\_ADDR\_LEN])}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01034}01034 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01035}01035         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__vap}{uath\_vap}} *uvp;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01036}01036         \textcolor{keyword}{struct }ieee80211vap *vap;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01037}01037 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01038}01038         \textcolor{keywordflow}{if} (!TAILQ\_EMPTY(\&ic-\/>ic\_vaps))         \textcolor{comment}{/* only one at a time */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01039}01039                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01040}01040         uvp =  malloc(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__vap}{uath\_vap}}), M\_80211\_VAP, M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01041}01041         vap = \&uvp-\/>\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01042}01042         \textcolor{comment}{/* enable s/w bmiss handling for sta mode */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01043}01043 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01044}01044         \textcolor{keywordflow}{if} (ieee80211\_vap\_setup(ic, vap, name, unit, opmode,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01045}01045             flags | IEEE80211\_CLONE\_NOBEACONS, bssid) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01046}01046                 \textcolor{comment}{/* out of memory */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01047}01047                 free(uvp, M\_80211\_VAP);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01048}01048                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01049}01049         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01050}01050 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01051}01051         \textcolor{comment}{/* override state transition machine */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01052}01052         uvp-\/>\mbox{\hyperlink{structuath__vap_affae96b754e15a68edb3383437ff0220}{newstate}} = vap-\/>iv\_newstate;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01053}01053         vap-\/>iv\_newstate = \mbox{\hyperlink{if__uath_8c_ad6fd206e3f532010becc173dae90d93d}{uath\_newstate}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01054}01054 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01055}01055         \textcolor{comment}{/* complete setup */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01056}01056         ieee80211\_vap\_attach(vap, ieee80211\_media\_change,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01057}01057             ieee80211\_media\_status, mac);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01058}01058         ic-\/>ic\_opmode = opmode;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01059}01059         \textcolor{keywordflow}{return} (vap);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01060}01060 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01061}01061 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01062}01062 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01063}\mbox{\hyperlink{if__uath_8c_a0dbac72d11c32697554a7baf3771829b}{01063}} \mbox{\hyperlink{if__uath_8c_a0dbac72d11c32697554a7baf3771829b}{uath\_vap\_delete}}(\textcolor{keyword}{struct} ieee80211vap *vap)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01064}01064 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01065}01065         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__vap}{uath\_vap}} *uvp = \mbox{\hyperlink{if__uathvar_8h_ade3bf4d89971d7a072753b2507ee5d76}{UATH\_VAP}}(\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01066}01066 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01067}01067         ieee80211\_vap\_detach(\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01068}01068         free(uvp, M\_80211\_VAP);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01069}01069 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01070}01070 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01071}01071 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01072}\mbox{\hyperlink{if__uath_8c_a81e89320c848112d18ede4d94d8201de}{01072}} \mbox{\hyperlink{if__uath_8c_a81e89320c848112d18ede4d94d8201de}{uath\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01073}01073 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01074}01074         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01075}01075         \textcolor{keyword}{struct }ieee80211vap *vap = TAILQ\_FIRST(\&ic-\/>ic\_vaps);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01076}01076         uint32\_t \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01077}01077         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01078}01078 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01079}01079         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01080}01080 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01081}01081         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01082}01082                 \mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{uath\_stop}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01083}01083 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01084}01084         \textcolor{comment}{/* reset variables */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01085}01085         sc-\/>\mbox{\hyperlink{structuath__softc_a9e27b2f743d68eefe7136ffb2847a9fa}{sc\_intrx\_nextnum}} = sc-\/>\mbox{\hyperlink{structuath__softc_ab3971fefc5433be6ff09b2f907601ef5}{sc\_msgid}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01086}01086 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01087}01087         \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}} = htobe32(0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01088}01088         \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a708596ce12ae02ece0f7cd2ebc140dbc}{WDCMSG\_BIND}}, \&\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}, \textcolor{keyword}{sizeof} \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01089}01089 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01090}01090         \textcolor{comment}{/* set MAC address */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01091}01091         \mbox{\hyperlink{if__uath_8c_a9cb9a725e39fa2b548499942ea7ac9e2}{uath\_config\_multi}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426addee63301ce36e363e6dfb0a5231270b}{CFG\_MAC\_ADDR}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01092}01092             vap ? vap-\/>iv\_myaddr : ic-\/>ic\_macaddr, IEEE80211\_ADDR\_LEN);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01093}01093 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01094}01094         \textcolor{comment}{/* XXX honor net80211 state */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01095}01095         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a8fcc53bfa3de04c69f19af9ef5a5d1ba}{CFG\_RATE\_CONTROL\_ENABLE}}, 0x00000001);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01096}01096         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a0f8e66ce49feb5a9e499587ac8625c58}{CFG\_DIVERSITY\_CTL}}, 0x00000001);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01097}01097         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a0ccc73ef6467465dc2da0f18267e81e2}{CFG\_ABOLT}}, 0x0000003f);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01098}01098         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426abaa0c91e7da5af9a554454a73d2c9c57}{CFG\_WME\_ENABLED}}, 0x00000001);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01099}01099 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01100}01100         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426ac8474ee11f649d80d82d4535fb5a9e85}{CFG\_SERVICE\_TYPE}}, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01101}01101         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a5c52d18a2401ad93167a7955eae78b0e}{CFG\_TP\_SCALE}}, 0x00000000);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01102}01102         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a70ece41d50491a5266a6f3d779412ee6}{CFG\_TPC\_HALF\_DBM5}}, 0x0000003c);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01103}01103         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a39bf98b6d893fb1b08f9d042f8a6f31d}{CFG\_TPC\_HALF\_DBM2}}, 0x0000003c);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01104}01104         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a642ef84ab5a6e72f4f0fda07aff57911}{CFG\_OVERRD\_TX\_POWER}}, 0x00000000);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01105}01105         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426aa5c2bbd24e8846ce70058da0e0d460a3}{CFG\_GMODE\_PROTECTION}}, 0x00000000);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01106}01106         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a25ea56351b212f23d1423b9a5194daae}{CFG\_GMODE\_PROTECT\_RATE\_INDEX}}, 0x00000003);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01107}01107         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426ae949bbfe134837f902d6c65b59d1947d}{CFG\_PROTECTION\_TYPE}}, 0x00000000);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01108}01108         \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a6fe662125a23d1901ed6ba7567f55f7a}{CFG\_MODE\_CTS}}, 0x00000002);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01109}01109 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01110}01110         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aeee11bd405faedf453d9c0c01b413d06}{uath\_cmd\_read}}(sc, \mbox{\hyperlink{if__uathreg_8h_af76fbd1cfba900e91b2059cd827e22c5}{WDCMSG\_TARGET\_START}}, NULL, 0,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01111}01111             \&\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}), \mbox{\hyperlink{if__uathvar_8h_aca589c48f139c5537481c91252a6d8a5}{UATH\_CMD\_FLAG\_MAGIC}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01112}01112         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01113}01113                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01114}01114                     \textcolor{stringliteral}{"{}could not start target, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01115}01115                 \textcolor{keywordflow}{goto} \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01116}01116         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01117}01117         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_INIT, \textcolor{stringliteral}{"{}\%s returns handle: 0x\%x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01118}01118             uath\_codename(\mbox{\hyperlink{if__uathreg_8h_af76fbd1cfba900e91b2059cd827e22c5}{WDCMSG\_TARGET\_START}}), be32toh(\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01119}01119 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01120}01120         \textcolor{comment}{/* set default channel */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01121}01121         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aebcd216d9406bb5f7df6a277b8968c3f}{uath\_switch\_channel}}(sc, ic-\/>ic\_curchan);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01122}01122         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01123}01123                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01124}01124                     \textcolor{stringliteral}{"{}could not switch channel, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01125}01125                 \textcolor{keywordflow}{goto} \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01126}01126         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01127}01127 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01128}01128         \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_ae62fccd8cea8f216b24ba625d404c4aeaf0d0b7972648fb8bec1a7241a55146f9}{TARGET\_DEVICE\_AWAKE}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01129}01129         \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a2ff8e8fe17a22c36761e35409753c9b5}{WDCMSG\_SET\_PWR\_MODE}}, \&\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}, \textcolor{keyword}{sizeof} \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}}, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01130}01130         \textcolor{comment}{/* XXX? check */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01131}01131         \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_ab82cae207db8c28d326dba135176490e}{WDCMSG\_RESET\_KEY\_CACHE}}, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01132}01132 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01133}01133         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa72304fb4646649b25b87546fec65bcda}{UATH\_BULK\_RX}}]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01134}01134         \textcolor{comment}{/* enable Rx */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01135}01135         \mbox{\hyperlink{if__uath_8c_a63339bf67ccf320f50edc5fe3a24a19b}{uath\_set\_rxfilter}}(sc, 0x0, \mbox{\hyperlink{if__uathreg_8h_af3befcc2834731bf009c4cf62909805d}{UATH\_FILTER\_OP\_INIT}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01136}01136         \mbox{\hyperlink{if__uath_8c_a63339bf67ccf320f50edc5fe3a24a19b}{uath\_set\_rxfilter}}(sc,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01137}01137             \mbox{\hyperlink{if__uathreg_8h_af079c51f19f0989fe3a42071c4d718b8}{UATH\_FILTER\_RX\_UCAST}} | \mbox{\hyperlink{if__uathreg_8h_a30f2e7b9e5b0efff3adc6a85dbe150b5}{UATH\_FILTER\_RX\_MCAST}} |}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01138}01138             \mbox{\hyperlink{if__uathreg_8h_acf5964cb9d820d81669331b2f8de3fc1}{UATH\_FILTER\_RX\_BCAST}} | \mbox{\hyperlink{if__uathreg_8h_a6583842e23dccac608cdab28a7393387}{UATH\_FILTER\_RX\_BEACON}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01139}01139             \mbox{\hyperlink{if__uathreg_8h_a09e1b15ad64cfad7a77c8ee4e79c76dd}{UATH\_FILTER\_OP\_SET}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01140}01140 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01141}01141         sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} |= \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01142}01142 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01143}01143         callout\_reset(\&sc-\/>\mbox{\hyperlink{structuath__softc_af6f80f1fbb2888caf0c429ffc0183c8f}{watchdog\_ch}}, hz, \mbox{\hyperlink{if__uath_8c_a577081fbd1a75455879e5f304b5c7eae}{uath\_watchdog}}, sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01144}01144 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01145}01145         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01146}01146 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01147}01147 \mbox{\hyperlink{if__runreg_8h_a041c8b8d78f50876bc74559cb40f00f4}{fail}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01148}01148         \mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{uath\_stop}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01149}01149         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01150}01150 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01151}01151 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01152}01152 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01153}\mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{01153}} \mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{uath\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01154}01154 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01155}01155 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01156}01156         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01157}01157 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01158}01158         sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \&= \string~UATH\_FLAG\_INITDONE;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01159}01159 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01160}01160         callout\_stop(\&sc-\/>\mbox{\hyperlink{structuath__softc_a9e1ebd93f1fc55390ea6b37ecb6d9bb0}{stat\_ch}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01161}01161         callout\_stop(\&sc-\/>\mbox{\hyperlink{structuath__softc_af6f80f1fbb2888caf0c429ffc0183c8f}{watchdog\_ch}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01162}01162         sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01163}01163         \textcolor{comment}{/* abort pending transmits  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01164}01164         \mbox{\hyperlink{if__uath_8c_ad38a2aa1c86e0d72bd1b0a5260d5f3ba}{uath\_abort\_xfers}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01165}01165         \textcolor{comment}{/* flush data \& control requests into the target  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01166}01166         (void)\mbox{\hyperlink{if__uath_8c_a0b1d7b0184c64b14be7790d2b6a9c92f}{uath\_flush}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01167}01167         \textcolor{comment}{/* set a LED status to the disconnected.  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01168}01168         \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(sc, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01169}01169         \textcolor{comment}{/* stop the target  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01170}01170         \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a89250db6c6a09b13f54199fdf2214a14}{WDCMSG\_TARGET\_STOP}}, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01171}01171 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01172}01172 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01173}01173 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01174}\mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{01174}} \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t \mbox{\hyperlink{if__rum_8c_a9428adc9af4653a2050e2536b55dec8d}{reg}}, uint32\_t \mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01175}01175 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01176}01176         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__write__mac}{uath\_write\_mac}} write;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01177}01177         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01178}01178 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01179}01179         write.\mbox{\hyperlink{structuath__write__mac_ab80800878427ec10c392e6a9748bcff4}{reg}} = htobe32(\mbox{\hyperlink{if__rum_8c_a9428adc9af4653a2050e2536b55dec8d}{reg}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01180}01180         write.\mbox{\hyperlink{structuath__write__mac_afa75d25cd400bf2074b79314c8770f3f}{len}} = htobe32(0);      \textcolor{comment}{/* 0 = single write */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01181}01181         *(uint32\_t *)write.\mbox{\hyperlink{structuath__write__mac_a0f5868109130504ac2e9575c81461b93}{data}} = htobe32(\mbox{\hyperlink{if__rum_8c_ae1f13e96d928504e11ec4da744f67f9b}{val}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01182}01182 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01183}01183         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_ac69b17e8e3e2935403d819b08ef49433}{WDCMSG\_TARGET\_SET\_CONFIG}}, \&write,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01184}01184             3 * \textcolor{keyword}{sizeof} (uint32\_t), 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01185}01185         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01186}01186                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not write register 0x\%02x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01187}01187                     \mbox{\hyperlink{if__rum_8c_a9428adc9af4653a2050e2536b55dec8d}{reg}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01188}01188         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01189}01189         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01190}01190 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01191}01191 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01192}01192 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01193}\mbox{\hyperlink{if__uath_8c_a9cb9a725e39fa2b548499942ea7ac9e2}{01193}} \mbox{\hyperlink{if__uath_8c_a9cb9a725e39fa2b548499942ea7ac9e2}{uath\_config\_multi}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t \mbox{\hyperlink{if__rum_8c_a9428adc9af4653a2050e2536b55dec8d}{reg}}, \textcolor{keyword}{const} \textcolor{keywordtype}{void} *\mbox{\hyperlink{structuath__write__mac_a0f5868109130504ac2e9575c81461b93}{data}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01194}01194     \textcolor{keywordtype}{int} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01195}01195 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01196}01196         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__write__mac}{uath\_write\_mac}} write;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01197}01197         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01198}01198 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01199}01199         write.\mbox{\hyperlink{structuath__write__mac_ab80800878427ec10c392e6a9748bcff4}{reg}} = htobe32(\mbox{\hyperlink{if__rum_8c_a9428adc9af4653a2050e2536b55dec8d}{reg}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01200}01200         write.\mbox{\hyperlink{structuath__write__mac_afa75d25cd400bf2074b79314c8770f3f}{len}} = htobe32(\mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01201}01201         bcopy(\mbox{\hyperlink{structuath__write__mac_a0f5868109130504ac2e9575c81461b93}{data}}, write.\mbox{\hyperlink{structuath__write__mac_a0f5868109130504ac2e9575c81461b93}{data}}, \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01202}01202 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01203}01203         \textcolor{comment}{/* properly handle the case where len is zero (reset) */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01204}01204         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_ac69b17e8e3e2935403d819b08ef49433}{WDCMSG\_TARGET\_SET\_CONFIG}}, \&write,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01205}01205             (\mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}} == 0) ? \textcolor{keyword}{sizeof} (uint32\_t) : 2 * \textcolor{keyword}{sizeof} (uint32\_t) + \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01206}01206         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01207}01207                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01208}01208                     \textcolor{stringliteral}{"{}could not write \%d bytes to register 0x\%02x\(\backslash\)n"{}}, \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, \mbox{\hyperlink{if__rum_8c_a9428adc9af4653a2050e2536b55dec8d}{reg}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01209}01209         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01210}01210         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01211}01211 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01212}01212 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01213}01213 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01214}\mbox{\hyperlink{if__uath_8c_aebcd216d9406bb5f7df6a277b8968c3f}{01214}} \mbox{\hyperlink{if__uath_8c_aebcd216d9406bb5f7df6a277b8968c3f}{uath\_switch\_channel}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} ieee80211\_channel *c)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01215}01215 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01216}01216         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01217}01217 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01218}01218         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01219}01219 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01220}01220         \textcolor{comment}{/* set radio frequency */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01221}01221         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a7bcd221113443320710c4688051fe577}{uath\_set\_chan}}(sc, c);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01222}01222         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01223}01223                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01224}01224                     \textcolor{stringliteral}{"{}could not set channel, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01225}01225                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01226}01226         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01227}01227         \textcolor{comment}{/* reset Tx rings */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01228}01228         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a96b18b69ad643d0ebf25f211ff57ab38}{uath\_reset\_tx\_queues}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01229}01229         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01230}01230                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01231}01231                     \textcolor{stringliteral}{"{}could not reset Tx queues, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01232}01232                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01233}01233         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01234}01234         \textcolor{comment}{/* set Tx rings WME properties */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01235}01235         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a83c76ccf0b0332d39a055d0071bc301c}{uath\_wme\_init}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01236}01236         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01237}01237                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01238}01238                     \textcolor{stringliteral}{"{}could not init Tx queues, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01239}01239                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01240}01240         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01241}01241         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(sc, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01242}01242         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01243}01243                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01244}01244                     \textcolor{stringliteral}{"{}could not set led state, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01245}01245                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01246}01246         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01247}01247         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a0b1d7b0184c64b14be7790d2b6a9c92f}{uath\_flush}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01248}01248         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01249}01249                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01250}01250                     \textcolor{stringliteral}{"{}could not flush pipes, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01251}01251                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01252}01252         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01253}01253 failed:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01254}01254         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01255}01255 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01256}01256 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01257}01257 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01258}\mbox{\hyperlink{if__uath_8c_a63339bf67ccf320f50edc5fe3a24a19b}{01258}} \mbox{\hyperlink{if__uath_8c_a63339bf67ccf320f50edc5fe3a24a19b}{uath\_set\_rxfilter}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t bits, uint32\_t op)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01259}01259 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01260}01260         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__rx__filter}{uath\_cmd\_rx\_filter}} rxfilter;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01261}01261 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01262}01262         rxfilter.\mbox{\hyperlink{structuath__cmd__rx__filter_ad4b1243d56143f2b61d424afc1b1e46f}{bits}} = htobe32(\mbox{\hyperlink{structuath__cmd__rx__filter_ad4b1243d56143f2b61d424afc1b1e46f}{bits}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01263}01263         rxfilter.\mbox{\hyperlink{structuath__cmd__rx__filter_ab2ead64e549aefaf1318a1a55acca059}{op}} = htobe32(\mbox{\hyperlink{structuath__cmd__rx__filter_ab2ead64e549aefaf1318a1a55acca059}{op}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01264}01264 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01265}01265         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RECV | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01266}01266             \textcolor{stringliteral}{"{}setting Rx filter=0x\%x flags=0x\%x\(\backslash\)n"{}}, \mbox{\hyperlink{structuath__cmd__rx__filter_ad4b1243d56143f2b61d424afc1b1e46f}{bits}}, \mbox{\hyperlink{structuath__cmd__rx__filter_ab2ead64e549aefaf1318a1a55acca059}{op}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01267}01267         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a7edfa5d7d10ddacd21c6377c54d78df8}{WDCMSG\_RX\_FILTER}}, \&rxfilter,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01268}01268             \textcolor{keyword}{sizeof} rxfilter, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01269}01269 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01270}01270 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01271}01271 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01272}\mbox{\hyperlink{if__uath_8c_a577081fbd1a75455879e5f304b5c7eae}{01272}} \mbox{\hyperlink{if__uath_8c_a577081fbd1a75455879e5f304b5c7eae}{uath\_watchdog}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01273}01273 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01274}01274         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = arg;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01275}01275         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01276}01276 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01277}01277         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} > 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01278}01278                 \textcolor{keywordflow}{if} (-\/-\/sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01279}01279                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}device timeout\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01280}01280                         counter\_u64\_add(ic-\/>ic\_oerrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01281}01281                         ieee80211\_restart\_all(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01282}01282                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01283}01283                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01284}01284                 callout\_reset(\&sc-\/>\mbox{\hyperlink{structuath__softc_af6f80f1fbb2888caf0c429ffc0183c8f}{watchdog\_ch}}, hz, \mbox{\hyperlink{if__uath_8c_a577081fbd1a75455879e5f304b5c7eae}{uath\_watchdog}}, sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01285}01285         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01286}01286 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01287}01287 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01288}01288 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01289}\mbox{\hyperlink{if__uath_8c_ad38a2aa1c86e0d72bd1b0a5260d5f3ba}{01289}} \mbox{\hyperlink{if__uath_8c_ad38a2aa1c86e0d72bd1b0a5260d5f3ba}{uath\_abort\_xfers}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01290}01290 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01291}01291         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01292}01292 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01293}01293         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01294}01294         \textcolor{comment}{/* abort any pending transfers */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01295}01295         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa2eb684810abc6c3d57d395c2b06bc06a}{UATH\_N\_XFERS}}; i++)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01296}01296                 \mbox{\hyperlink{usb__transfer_8c_abe245d973df0cfd6fb96b884d33ebce3}{usbd\_transfer\_stop}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[i]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01297}01297 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01298}01298 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01299}01299 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01300}\mbox{\hyperlink{if__uath_8c_a0b1d7b0184c64b14be7790d2b6a9c92f}{01300}} \mbox{\hyperlink{if__uath_8c_a0b1d7b0184c64b14be7790d2b6a9c92f}{uath\_flush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01301}01301 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01302}01302         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01303}01303 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01304}01304         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a3b8bf88a679285cc4c3d73ca39482047}{uath\_dataflush}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01305}01305         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01306}01306                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01307}01307 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01308}01308         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_aff8b93d6c9592408b67b70008ffa36e7}{uath\_cmdflush}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01309}01309         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01310}01310                 \textcolor{keywordflow}{goto} failed;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01311}01311 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01312}01312 failed:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01313}01313         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01314}01314 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01315}01315 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01316}01316 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01317}\mbox{\hyperlink{if__uath_8c_aff8b93d6c9592408b67b70008ffa36e7}{01317}} \mbox{\hyperlink{if__uath_8c_aff8b93d6c9592408b67b70008ffa36e7}{uath\_cmdflush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01318}01318 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01319}01319 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01320}01320         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_ad5c2e39ea9fb549fc77d3eded51f9e79}{WDCMSG\_FLUSH}}, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01321}01321 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01322}01322 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01323}01323 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01324}\mbox{\hyperlink{if__uath_8c_a3b8bf88a679285cc4c3d73ca39482047}{01324}} \mbox{\hyperlink{if__uath_8c_a3b8bf88a679285cc4c3d73ca39482047}{uath\_dataflush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01325}01325 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01326}01326         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *data;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01327}01327         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}} *chunk;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01328}01328         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}} *\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01329}01329 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01330}01330         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01331}01331 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01332}01332         data = \mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{uath\_getbuf}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01333}01333         \textcolor{keywordflow}{if} (data == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01334}01334                 \textcolor{keywordflow}{return} (ENOBUFS);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01335}01335         data-\/>buflen = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}}) + sizeof(struct \mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01336}01336         data-\/>m = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01337}01337         data-\/>ni = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01338}01338         chunk = (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}} *)data-\/>buf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01339}01339         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} = (\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}} *)(chunk + 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01340}01340 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01341}01341         \textcolor{comment}{/* one chunk only */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01342}01342         chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01343}01343         chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} = \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01344}01344         chunk-\/>\mbox{\hyperlink{structuath__chunk_a402b2218631f40014edcb31c79edebce}{length}} = htobe16(\textcolor{keyword}{sizeof} (\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01345}01345 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01346}01346         memset(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}, 0, \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01347}01347         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>msglen = htobe32(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01348}01348         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>msgid  = (sc-\/>\mbox{\hyperlink{structuath__softc_ab3971fefc5433be6ff09b2f907601ef5}{sc\_msgid}}++) + 1; \textcolor{comment}{/* don't care about endianness */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01349}01349         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>type   = htobe32(\mbox{\hyperlink{if__uathreg_8h_ad5c2e39ea9fb549fc77d3eded51f9e79}{WDCMSG\_FLUSH}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01350}01350         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>txqid  = htobe32(0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01351}01351         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>connid = htobe32(0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01352}01352         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>flags  = htobe32(0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01353}01353 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01354}01354 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01355}01355         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_CMDS) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01356}01356                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RESET, \textcolor{stringliteral}{"{}send flush ix \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01357}01357                     \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>msgid);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01358}01358                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_CMDS\_DUMP)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01359}01359                         uath\_dump\_cmd(data-\/>buf, data-\/>buflen, \textcolor{charliteral}{'+'});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01360}01360         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01361}01361 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01362}01362 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01363}01363         STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_af01f24be953d79836b8d67e11daaa770}{sc\_tx\_pending}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01364}01364         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_tx\_pending);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01365}01365         sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} = 5;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01366}01366         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa45a1bc34c96adf883de69c6f59225822}{UATH\_BULK\_TX}}]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01367}01367 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01368}01368         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01369}01369 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01370}01370 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01371}01371 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01372}\mbox{\hyperlink{if__uath_8c_a3fa2f40b356bf9c13f0f1b4b9378bdfb}{01372}} \mbox{\hyperlink{if__uath_8c_a3fa2f40b356bf9c13f0f1b4b9378bdfb}{\_uath\_getbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01373}01373 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01374}01374         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *bf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01375}01375 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01376}01376         bf = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01377}01377         \textcolor{keywordflow}{if} (bf != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01378}01378                 STAILQ\_REMOVE\_HEAD(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01379}01379                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01380}01380         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01381}01381                 bf = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01382}01382         \textcolor{keywordflow}{if} (bf == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01383}01383                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, UATH\_DEBUG\_XMIT, \textcolor{stringliteral}{"{}\%s: \%s\(\backslash\)n"{}}, \_\_func\_\_,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01384}01384                     \textcolor{stringliteral}{"{}out of xmit buffers"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01385}01385         \textcolor{keywordflow}{return} (bf);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01386}01386 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01387}01387 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01388}01388 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01389}\mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{01389}} \mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{uath\_getbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01390}01390 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01391}01391         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *bf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01392}01392 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01393}01393         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01394}01394 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01395}01395         bf = \mbox{\hyperlink{if__uath_8c_a3fa2f40b356bf9c13f0f1b4b9378bdfb}{\_uath\_getbuf}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01396}01396         \textcolor{keywordflow}{if} (bf == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01397}01397                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, UATH\_DEBUG\_XMIT, \textcolor{stringliteral}{"{}\%s: stop queue\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01398}01398         \textcolor{keywordflow}{return} (bf);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01399}01399 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01400}01400 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01401}01401 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01402}\mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{01402}} \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, \textcolor{keywordtype}{int} connected)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01403}01403 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01404}01404 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01405}01405         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, UATH\_DEBUG\_LED,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01406}01406             \textcolor{stringliteral}{"{}set led state \%sconnected\(\backslash\)n"{}}, connected ? \textcolor{stringliteral}{"{}"{}} : \textcolor{stringliteral}{"{}!"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01407}01407         connected = htobe32(connected);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01408}01408         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, \mbox{\hyperlink{if__uathreg_8h_a5567a8e79ef3a174eecb93e6a4d6704b}{WDCMSG\_SET\_LED\_STATE}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01409}01409              \&connected, \textcolor{keyword}{sizeof} connected, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01410}01410 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01411}01411 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01412}01412 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01413}\mbox{\hyperlink{if__uath_8c_a7bcd221113443320710c4688051fe577}{01413}} \mbox{\hyperlink{if__uath_8c_a7bcd221113443320710c4688051fe577}{uath\_set\_chan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, \textcolor{keyword}{struct} ieee80211\_channel *c)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01414}01414 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01415}01415 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01416}01416         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01417}01417 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01418}01418         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__reset}{uath\_cmd\_reset}} reset;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01419}01419 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01420}01420         memset(\&reset, 0, \textcolor{keyword}{sizeof}(reset));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01421}01421         \textcolor{keywordflow}{if} (IEEE80211\_IS\_CHAN\_2GHZ(c))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01422}01422                 reset.\mbox{\hyperlink{structuath__cmd__reset_a9b7e6a11e4b2913a532bf4d33785381e}{flags}} |= htobe32(\mbox{\hyperlink{if__uathreg_8h_a37edc4ee7c3c07664e0d73ccc7d68444}{UATH\_CHAN\_2GHZ}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01423}01423         \textcolor{keywordflow}{if} (IEEE80211\_IS\_CHAN\_5GHZ(c))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01424}01424                 reset.\mbox{\hyperlink{structuath__cmd__reset_a9b7e6a11e4b2913a532bf4d33785381e}{flags}} |= htobe32(\mbox{\hyperlink{if__uathreg_8h_a334f33db09a3b38bd570a055f30e5d46}{UATH\_CHAN\_5GHZ}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01425}01425         \textcolor{comment}{/* NB: 11g =>'s 11b so don't specify both OFDM and CCK */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01426}01426         \textcolor{keywordflow}{if} (IEEE80211\_IS\_CHAN\_OFDM(c))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01427}01427                 reset.\mbox{\hyperlink{structuath__cmd__reset_a9b7e6a11e4b2913a532bf4d33785381e}{flags}} |= htobe32(\mbox{\hyperlink{if__uathreg_8h_a7795d2a1b4a88fe13dfb3cef6715b9e3}{UATH\_CHAN\_OFDM}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01428}01428         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (IEEE80211\_IS\_CHAN\_CCK(c))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01429}01429                 reset.\mbox{\hyperlink{structuath__cmd__reset_a9b7e6a11e4b2913a532bf4d33785381e}{flags}} |= htobe32(\mbox{\hyperlink{if__uathreg_8h_aabce138884c9c3ccdf4c4fdbb6272367}{UATH\_CHAN\_CCK}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01430}01430         \textcolor{comment}{/* turbo can be used in either 2GHz or 5GHz */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01431}01431         \textcolor{keywordflow}{if} (c-\/>ic\_flags \& IEEE80211\_CHAN\_TURBO)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01432}01432                 reset.\mbox{\hyperlink{structuath__cmd__reset_a9b7e6a11e4b2913a532bf4d33785381e}{flags}} |= htobe32(\mbox{\hyperlink{if__uathreg_8h_a219d5e4556a16e24ad7a24627b7e9148}{UATH\_CHAN\_TURBO}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01433}01433         reset.\mbox{\hyperlink{structuath__cmd__reset_a488eb8d530e6c88e79597355144b29c6}{freq}} = htobe32(c-\/>ic\_freq);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01434}01434         reset.\mbox{\hyperlink{structuath__cmd__reset_ad93ec5c3a831a760f8f9be3b6083d7aa}{maxrdpower}} = htobe32(50);       \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01435}01435         reset.\mbox{\hyperlink{structuath__cmd__reset_acaa3f68a3ab2f83b0d237e2131592223}{channelchange}} = htobe32(1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01436}01436         reset.\mbox{\hyperlink{structuath__cmd__reset_a24ea25da61f0d1f41b5033d996fcee40}{keeprccontent}} = htobe32(0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01437}01437 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01438}01438         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_CHANNEL, \textcolor{stringliteral}{"{}set channel \%d, flags 0x\%x freq \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01439}01439             ieee80211\_chan2ieee(ic, c),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01440}01440             be32toh(reset.\mbox{\hyperlink{structuath__cmd__reset_a9b7e6a11e4b2913a532bf4d33785381e}{flags}}), be32toh(reset.\mbox{\hyperlink{structuath__cmd__reset_a488eb8d530e6c88e79597355144b29c6}{freq}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01441}01441         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a832e5b46f8acf52f267e22a36b234608}{WDCMSG\_RESET}}, \&reset, \textcolor{keyword}{sizeof} reset, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01442}01442 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01443}01443 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01444}01444 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01445}\mbox{\hyperlink{if__uath_8c_a96b18b69ad643d0ebf25f211ff57ab38}{01445}} \mbox{\hyperlink{if__uath_8c_a96b18b69ad643d0ebf25f211ff57ab38}{uath\_reset\_tx\_queues}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01446}01446 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01447}01447         \textcolor{keywordtype}{int} ac, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01448}01448 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01449}01449         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RESET, \textcolor{stringliteral}{"{}\%s: reset Tx queues\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01450}01450         \textcolor{keywordflow}{for} (ac = 0; ac < 4; ac++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01451}01451                 \textcolor{keyword}{const} uint32\_t qid = htobe32(ac);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01452}01452 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01453}01453                 \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a124e1becb028832d2e1b643ed42f6d6e}{WDCMSG\_RELEASE\_TX\_QUEUE}}, \&qid,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01454}01454                     \textcolor{keyword}{sizeof} qid, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01455}01455                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01456}01456                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01457}01457         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01458}01458         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01459}01459 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01460}01460 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01461}01461 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01462}\mbox{\hyperlink{if__uath_8c_a83c76ccf0b0332d39a055d0071bc301c}{01462}} \mbox{\hyperlink{if__uath_8c_a83c76ccf0b0332d39a055d0071bc301c}{uath\_wme\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01463}01463 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01464}01464         \textcolor{comment}{/* XXX get from net80211 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01465}01465         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__wme__settings}{uath\_wme\_settings}} uath\_wme\_11g[4] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01466}01466                 \{ 7, 4, 10,  0, 0 \},    \textcolor{comment}{/* Background */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01467}01467                 \{ 3, 4, 10,  0, 0 \},    \textcolor{comment}{/* Best-\/Effort */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01468}01468                 \{ 3, 3,  4, 26, 0 \},    \textcolor{comment}{/* Video */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01469}01469                 \{ 2, 2,  3, 47, 0 \}     \textcolor{comment}{/* Voice */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01470}01470         \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01471}01471         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__txq__setup}{uath\_cmd\_txq\_setup}} qinfo;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01472}01472         \textcolor{keywordtype}{int} ac, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01473}01473 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01474}01474         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_WME, \textcolor{stringliteral}{"{}\%s: setup Tx queues\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01475}01475         \textcolor{keywordflow}{for} (ac = 0; ac < 4; ac++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01476}01476                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_a82c4e7c9c4a6d5059ba53b00e221e88c}{qid}}            = htobe32(ac);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01477}01477                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_a3a4011cd0afffce12e5b01ef3abeaee9}{len}}            = htobe32(\textcolor{keyword}{sizeof}(qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01478}01478                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_a0f1159d6ded40dfa87bbc590fbc5fa0e}{priority}} = htobe32(ac);  \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01479}01479                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_afe21ba84aad3fd625cd390d5cca4a3dc}{aifs}}         = htobe32(uath\_wme\_11g[ac].aifsn);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01480}01480                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_af4a63c94d8a7b8782f7287501800b68f}{logcwmin}} = htobe32(uath\_wme\_11g[ac].logcwmin);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01481}01481                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_a8b5d7e3c6a61d62b3329ccc05f2325ba}{logcwmax}} = htobe32(uath\_wme\_11g[ac].logcwmax);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01482}01482                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_a04d70dfd87e30548a9bef2aca6147f29}{bursttime}}       = htobe32(IEEE80211\_TXOP\_TO\_US(}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01483}01483                                             uath\_wme\_11g[ac].txop));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01484}01484                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_a0c0f56be0e50b852111c3d1328989c8a}{mode}}         = htobe32(uath\_wme\_11g[ac].acm);\textcolor{comment}{/*XXX? */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01485}01485                 qinfo.\mbox{\hyperlink{structuath__cmd__txq__setup_ae3d4212140f93ea75a202087b46c91f8}{attr}}.\mbox{\hyperlink{structuath__cmd__txq__attr_ad08a58472bca75c432df0713e9e32469}{qflags}}     = htobe32(1);   \textcolor{comment}{/* XXX? */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01486}01486 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01487}01487                 \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a971b366dc5ef281c5f3e35f055374d97}{WDCMSG\_SETUP\_TX\_QUEUE}}, \&qinfo,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01488}01488                     \textcolor{keyword}{sizeof} qinfo, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01489}01489                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01490}01490                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01491}01491         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01492}01492         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01493}01493 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01494}01494 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01495}01495 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01496}\mbox{\hyperlink{if__uath_8c_a3fee5a16ce41a44b60dbf9d31d94969e}{01496}} \mbox{\hyperlink{if__uath_8c_a3fee5a16ce41a44b60dbf9d31d94969e}{uath\_parent}}(\textcolor{keyword}{struct} ieee80211com *ic)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01497}01497 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01498}01498         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01499}01499         \textcolor{keywordtype}{int} startall = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01500}01500 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01501}01501         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01502}01502         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01503}01503                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01504}01504                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01505}01505         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01506}01506 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01507}01507         \textcolor{keywordflow}{if} (ic-\/>ic\_nrunning > 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01508}01508                 \textcolor{keywordflow}{if} (!(sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}})) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01509}01509                         \mbox{\hyperlink{if__uath_8c_a81e89320c848112d18ede4d94d8201de}{uath\_init}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01510}01510                         startall = 1;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01511}01511                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01512}01512         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01513}01513                 \mbox{\hyperlink{if__uath_8c_af68d35ac44e229d05cd29f81ea63389c}{uath\_stop}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01514}01514         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01515}01515         \textcolor{keywordflow}{if} (startall)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01516}01516                 ieee80211\_start\_all(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01517}01517 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01518}01518 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01519}01519 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01520}\mbox{\hyperlink{if__uath_8c_a8241df19bfb72d334155bac035d2d9df}{01520}} \mbox{\hyperlink{if__uath_8c_a8241df19bfb72d334155bac035d2d9df}{uath\_tx\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} mbuf *m0, \textcolor{keyword}{struct} ieee80211\_node *ni,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01521}01521     \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__data}{uath\_data}} *data)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01522}01522 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01523}01523         \textcolor{keyword}{struct }ieee80211vap *vap = ni-\/>ni\_vap;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01524}01524         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}} *chunk;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01525}01525         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}} *\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01526}01526         \textcolor{keyword}{const} \textcolor{keyword}{struct }ieee80211\_frame *wh;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01527}01527         \textcolor{keyword}{struct }ieee80211\_key *\mbox{\hyperlink{if__run_8c_aae04ad987a21b789518aaae9825b668c}{k}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01528}01528         \textcolor{keywordtype}{int} framelen, msglen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01529}01529 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01530}01530         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01531}01531 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01532}01532         data-\/>ni = ni;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01533}01533         data-\/>m = m0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01534}01534         chunk = (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}} *)data-\/>buf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01535}01535         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} = (\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}} *)(chunk + 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01536}01536 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01537}01537         \textcolor{keywordflow}{if} (ieee80211\_radiotap\_active\_vap(vap)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01538}01538                 \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__tx__radiotap__header}{uath\_tx\_radiotap\_header}} *tap = \&sc-\/>\mbox{\hyperlink{structuath__softc_ac4c547407688bbc29075e1c6de9c68fd}{sc\_txtap}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01539}01539 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01540}01540                 tap-\/>\mbox{\hyperlink{structuath__tx__radiotap__header_a491f2e9598c98dd2b590d0c551069e73}{wt\_flags}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01541}01541                 \textcolor{keywordflow}{if} (m0-\/>m\_flags \& M\_FRAG)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01542}01542                         tap-\/>\mbox{\hyperlink{structuath__tx__radiotap__header_a491f2e9598c98dd2b590d0c551069e73}{wt\_flags}} |= IEEE80211\_RADIOTAP\_F\_FRAG;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01543}01543 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01544}01544                 ieee80211\_radiotap\_tx(vap, m0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01545}01545         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01546}01546 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01547}01547         wh = mtod(m0, \textcolor{keyword}{struct} ieee80211\_frame *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01548}01548         \textcolor{keywordflow}{if} (wh-\/>i\_fc[1] \& IEEE80211\_FC1\_PROTECTED) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01549}01549                 \mbox{\hyperlink{if__run_8c_aae04ad987a21b789518aaae9825b668c}{k}} = ieee80211\_crypto\_encap(ni, m0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01550}01550                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__run_8c_aae04ad987a21b789518aaae9825b668c}{k}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01551}01551                         m\_freem(m0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01552}01552                         \textcolor{keywordflow}{return} (ENOBUFS);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01553}01553                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01554}01554 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01555}01555                 \textcolor{comment}{/* packet header may have moved, reset our local pointer */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01556}01556                 wh = mtod(m0, \textcolor{keyword}{struct} ieee80211\_frame *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01557}01557         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01558}01558         m\_copydata(m0, 0, m0-\/>m\_pkthdr.len, (uint8\_t *)(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} + 1));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01559}01559 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01560}01560         framelen = m0-\/>m\_pkthdr.len + IEEE80211\_CRC\_LEN;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01561}01561         msglen = framelen + \textcolor{keyword}{sizeof} (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__tx__desc}{uath\_tx\_desc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01562}01562         data-\/>buflen = \mbox{\hyperlink{structuath__tx__desc_ac79519553b6e38d87cbabedc7558f9eb}{msglen}} + \textcolor{keyword}{sizeof} (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01563}01563 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01564}01564         \textcolor{comment}{/* one chunk only for now */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01565}01565         chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} = sc-\/>\mbox{\hyperlink{structuath__softc_a739f9dc24bf7ada0809b59644337ea5f}{sc\_seqnum}}++;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01566}01566         chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} = (m0-\/>m\_flags \& M\_FRAG) ? 0 : \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01567}01567         \textcolor{keywordflow}{if} (m0-\/>m\_flags \& M\_LASTFRAG)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01568}01568                 chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} |= \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01569}01569         chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} = \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01570}01570         chunk-\/>\mbox{\hyperlink{structuath__chunk_a402b2218631f40014edcb31c79edebce}{length}} = htobe16(msglen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01571}01571 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01572}01572         \textcolor{comment}{/* fill Tx descriptor */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01573}01573         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>msglen = htobe32(msglen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01574}01574         \textcolor{comment}{/* NB: to get UATH\_TX\_NOTIFY reply, `msgid' must be larger than 0  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01575}01575         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>msgid  = (sc-\/>\mbox{\hyperlink{structuath__softc_ab3971fefc5433be6ff09b2f907601ef5}{sc\_msgid}}++) + 1; \textcolor{comment}{/* don't care about endianness */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01576}01576         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>type   = htobe32(\mbox{\hyperlink{if__uathreg_8h_af8c594c2e91970d50529d6b5065ff1be}{WDCMSG\_SEND}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01577}01577         \textcolor{keywordflow}{switch} (wh-\/>i\_fc[0] \& IEEE80211\_FC0\_TYPE\_MASK) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01578}01578         \textcolor{keywordflow}{case} IEEE80211\_FC0\_TYPE\_CTL:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01579}01579         \textcolor{keywordflow}{case} IEEE80211\_FC0\_TYPE\_MGT:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01580}01580                 \textcolor{comment}{/* NB: force all management frames to highest queue */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01581}01581                 \textcolor{keywordflow}{if} (ni-\/>ni\_flags \& IEEE80211\_NODE\_QOS) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01582}01582                         \textcolor{comment}{/* NB: force all management frames to highest queue */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01583}01583                         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>txqid = htobe32(WME\_AC\_VO | \mbox{\hyperlink{if__uathreg_8h_a66aef5d7f47d3556d655ea9f5ab6e096}{UATH\_TXQID\_MINRATE}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01584}01584                 \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01585}01585                         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>txqid = htobe32(WME\_AC\_BE | \mbox{\hyperlink{if__uathreg_8h_a66aef5d7f47d3556d655ea9f5ab6e096}{UATH\_TXQID\_MINRATE}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01586}01586                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01587}01587         \textcolor{keywordflow}{case} IEEE80211\_FC0\_TYPE\_DATA:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01588}01588                 \textcolor{comment}{/* XXX multicast frames should honor mcastrate */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01589}01589                 \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>txqid = htobe32(M\_WME\_GETAC(m0));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01590}01590                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01591}01591         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01592}01592                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}bogus frame type 0x\%x (\%s)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01593}01593                         wh-\/>i\_fc[0] \& IEEE80211\_FC0\_TYPE\_MASK, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01594}01594                 m\_freem(m0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01595}01595                 \textcolor{keywordflow}{return} (EIO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01596}01596         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01597}01597         \textcolor{keywordflow}{if} (vap-\/>iv\_state == IEEE80211\_S\_AUTH ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01598}01598             vap-\/>iv\_state == IEEE80211\_S\_ASSOC ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01599}01599             vap-\/>iv\_state == IEEE80211\_S\_RUN)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01600}01600                 \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>connid = htobe32(\mbox{\hyperlink{if__uathvar_8h_a647aa6abc84b0083093411abe2c76a35}{UATH\_ID\_BSS}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01601}01601         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01602}01602                 \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>connid = htobe32(\mbox{\hyperlink{if__uathreg_8h_a5510e481849abad61187b703c9512f87}{UATH\_ID\_INVALID}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01603}01603         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>flags  = htobe32(0 \textcolor{comment}{/* no UATH\_TX\_NOTIFY */});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01604}01604         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>buflen = htobe32(m0-\/>m\_pkthdr.len);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01605}01605 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01606}01606 \textcolor{preprocessor}{\#ifdef UATH\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01607}01607         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_XMIT,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01608}01608             \textcolor{stringliteral}{"{}send frame ix \%u framelen \%d msglen \%d connid 0x\%x txqid 0x\%x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01609}01609             \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>msgid, framelen, msglen, be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>connid),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01610}01610             be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>txqid));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01611}01611         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_XMIT\_DUMP)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01612}01612                 uath\_dump\_cmd(data-\/>buf, data-\/>buflen, \textcolor{charliteral}{'+'});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01613}01613 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01614}01614 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01615}01615         STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_af01f24be953d79836b8d67e11daaa770}{sc\_tx\_pending}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01616}01616         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_tx\_pending);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01617}01617         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuath__softc_a23bcfae192bb245378e5c7dd6df8a2b2}{sc\_xfer}}[\mbox{\hyperlink{if__uathvar_8h_aa94c5fdcac6a4b26211b612c3edc04ffa45a1bc34c96adf883de69c6f59225822}{UATH\_BULK\_TX}}]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01618}01618 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01619}01619         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01620}01620 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01621}01621 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01622}01622 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01623}01623 \textcolor{comment}{ * Cleanup driver resources when we run out of buffers while processing}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01624}01624 \textcolor{comment}{ * fragments; return the tx buffers allocated and drop node references.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01625}01625 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01626}01626 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01627}\mbox{\hyperlink{if__uath_8c_a519bce3891a018c998b5e3f3a128e60c}{01627}} \mbox{\hyperlink{if__uath_8c_a519bce3891a018c998b5e3f3a128e60c}{uath\_txfrag\_cleanup}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01628}01628     uath\_datahead *frags, \textcolor{keyword}{struct} ieee80211\_node *ni)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01629}01629 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01630}01630         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *bf, *\mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01631}01631 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01632}01632         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01633}01633 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01634}01634         STAILQ\_FOREACH\_SAFE(bf, frags, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01635}01635                 \textcolor{comment}{/* NB: bf assumed clean */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01636}01636                 STAILQ\_REMOVE\_HEAD(frags, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01637}01637                 STAILQ\_INSERT\_HEAD(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}}, bf, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01638}01638                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01639}01639                 ieee80211\_node\_decref(\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01640}01640         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01641}01641 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01642}01642 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01643}01643 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01644}01644 \textcolor{comment}{ * Setup xmit of a fragmented frame.  Allocate a buffer for each frag and bump}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01645}01645 \textcolor{comment}{ * the node reference count to reflect the held reference to be setup by}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01646}01646 \textcolor{comment}{ * uath\_tx\_start.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01647}01647 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01648}01648 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01649}\mbox{\hyperlink{if__uath_8c_a260b7816d7d1031b4bbda728d2a2bc83}{01649}} \mbox{\hyperlink{if__uath_8c_a260b7816d7d1031b4bbda728d2a2bc83}{uath\_txfrag\_setup}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, uath\_datahead *frags,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01650}01650     \textcolor{keyword}{struct} mbuf *m0, \textcolor{keyword}{struct} ieee80211\_node *\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01651}01651 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01652}01652         \textcolor{keyword}{struct }mbuf *m;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01653}01653         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *bf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01654}01654 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01655}01655         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01656}01656         \textcolor{keywordflow}{for} (\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} = m0-\/>m\_nextpkt; \mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} != NULL; \mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}} = \mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}}-\/>m\_nextpkt) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01657}01657                 bf = \mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{uath\_getbuf}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01658}01658                 \textcolor{keywordflow}{if} (bf == NULL) \{       \textcolor{comment}{/* out of buffers, cleanup */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01659}01659                         \mbox{\hyperlink{if__uath_8c_a519bce3891a018c998b5e3f3a128e60c}{uath\_txfrag\_cleanup}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, frags, \mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01660}01660                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01661}01661                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01662}01662                 ieee80211\_node\_incref(\mbox{\hyperlink{structuath__data_aed1e8dc3b52a0c2b47e8df2737674eac}{ni}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01663}01663                 STAILQ\_INSERT\_TAIL(frags, bf, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01664}01664         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01665}01665 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01666}01666         \textcolor{keywordflow}{return} !STAILQ\_EMPTY(frags);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01667}01667 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01668}01668 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01669}01669 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01670}\mbox{\hyperlink{if__uath_8c_a573a0311364b3fa2d9550107b822e8f8}{01670}} \mbox{\hyperlink{if__uath_8c_a573a0311364b3fa2d9550107b822e8f8}{uath\_transmit}}(\textcolor{keyword}{struct} ieee80211com *ic, \textcolor{keyword}{struct} mbuf *\mbox{\hyperlink{structuath__data_ae847e2b6b52b0756580a95dc011fa3d2}{m}})   }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01671}01671 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01672}01672         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01673}01673         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01674}01674 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01675}01675         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01676}01676         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01677}01677                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01678}01678                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01679}01679         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01680}01680         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = mbufq\_enqueue(\&sc-\/>\mbox{\hyperlink{structuath__softc_adb8165a1b4704b3d3238f79b0d58d1cf}{sc\_snd}}, m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01681}01681         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01682}01682                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01683}01683                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01684}01684         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01685}01685         \mbox{\hyperlink{if__uath_8c_a928c054b6eb1aff382543840b9f7ebf6}{uath\_start}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01686}01686         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01687}01687 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01688}01688         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01689}01689 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01690}01690 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01691}01691 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01692}\mbox{\hyperlink{if__uath_8c_a928c054b6eb1aff382543840b9f7ebf6}{01692}} \mbox{\hyperlink{if__uath_8c_a928c054b6eb1aff382543840b9f7ebf6}{uath\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01693}01693 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01694}01694         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *bf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01695}01695         \textcolor{keyword}{struct }ieee80211\_node *ni;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01696}01696         \textcolor{keyword}{struct }mbuf *m, *\mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01697}01697         uath\_datahead frags;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01698}01698 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01699}01699         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01700}01700 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01701}01701         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}}) == 0 ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01702}01702             (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01703}01703                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01704}01704 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01705}01705         \textcolor{keywordflow}{while} ((m = mbufq\_dequeue(\&sc-\/>\mbox{\hyperlink{structuath__softc_adb8165a1b4704b3d3238f79b0d58d1cf}{sc\_snd}})) != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01706}01706                 bf = \mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{uath\_getbuf}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01707}01707                 \textcolor{keywordflow}{if} (bf == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01708}01708                         mbufq\_prepend(\&sc-\/>\mbox{\hyperlink{structuath__softc_adb8165a1b4704b3d3238f79b0d58d1cf}{sc\_snd}}, m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01709}01709                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01710}01710                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01711}01711 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01712}01712                 ni = (\textcolor{keyword}{struct }ieee80211\_node *)m-\/>m\_pkthdr.rcvif;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01713}01713                 m-\/>m\_pkthdr.rcvif = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01714}01714 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01715}01715                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01716}01716 \textcolor{comment}{                 * Check for fragmentation.  If this frame has been broken up}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01717}01717 \textcolor{comment}{                 * verify we have enough buffers to send all the fragments}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01718}01718 \textcolor{comment}{                 * so all go out or none...}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01719}01719 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01720}01720                 STAILQ\_INIT(\&frags);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01721}01721                 \textcolor{keywordflow}{if} ((m-\/>m\_flags \& M\_FRAG) \&\& }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01722}01722                     !\mbox{\hyperlink{if__uath_8c_a260b7816d7d1031b4bbda728d2a2bc83}{uath\_txfrag\_setup}}(sc, \&frags, m, ni)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01723}01723                         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_XMIT,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01724}01724                             \textcolor{stringliteral}{"{}\%s: out of txfrag buffers\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01725}01725                         ieee80211\_free\_mbuf(m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01726}01726                         \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01727}01727                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01728}01728                 sc-\/>\mbox{\hyperlink{structuath__softc_a739f9dc24bf7ada0809b59644337ea5f}{sc\_seqnum}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01729}01729         nextfrag:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01730}01730                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01731}01731 \textcolor{comment}{                 * Pass the frame to the h/w for transmission.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01732}01732 \textcolor{comment}{                 * Fragmented frames have each frag chained together}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01733}01733 \textcolor{comment}{                 * with m\_nextpkt.  We know there are sufficient uath\_data's}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01734}01734 \textcolor{comment}{                 * to send all the frags because of work done by}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01735}01735 \textcolor{comment}{                 * uath\_txfrag\_setup.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01736}01736 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01737}01737                 \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}} = m-\/>m\_nextpkt;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01738}01738                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__uath_8c_a8241df19bfb72d334155bac035d2d9df}{uath\_tx\_start}}(sc, m, ni, bf) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01739}01739         bad:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01740}01740                         if\_inc\_counter(ni-\/>ni\_vap-\/>iv\_ifp,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01741}01741                             IFCOUNTER\_OERRORS, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01742}01742         reclaim:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01743}01743                         STAILQ\_INSERT\_HEAD(\&sc-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}}, bf, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01744}01744                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_tx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01745}01745                         \mbox{\hyperlink{if__uath_8c_a519bce3891a018c998b5e3f3a128e60c}{uath\_txfrag\_cleanup}}(sc, \&frags, ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01746}01746                         ieee80211\_free\_node(ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01747}01747                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01748}01748                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01749}01749 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01750}01750                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01751}01751                         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01752}01752 \textcolor{comment}{                         * Beware of state changing between frags.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01753}01753 \textcolor{comment}{                         XXX check sta power-\/save state?}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01754}01754 \textcolor{comment}{                        */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01755}01755                         \textcolor{keywordflow}{if} (ni-\/>ni\_vap-\/>iv\_state != IEEE80211\_S\_RUN) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01756}01756                                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_XMIT,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01757}01757                                     \textcolor{stringliteral}{"{}\%s: flush fragmented packet, state \%s\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01758}01758                                     \_\_func\_\_,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01759}01759                                     ieee80211\_state\_name[ni-\/>ni\_vap-\/>iv\_state]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01760}01760                                 ieee80211\_free\_mbuf(\mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01761}01761                                 \textcolor{keywordflow}{goto} reclaim;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01762}01762                         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01763}01763                         m = \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01764}01764                         bf = STAILQ\_FIRST(\&frags);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01765}01765                         KASSERT(bf != NULL, (\textcolor{stringliteral}{"{}no buf for txfrag"{}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01766}01766                         STAILQ\_REMOVE\_HEAD(\&frags, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01767}01767                         \textcolor{keywordflow}{goto} nextfrag;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01768}01768                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01769}01769 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01770}01770                 sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} = 5;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01771}01771         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01772}01772 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01773}01773 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01774}01774 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01775}\mbox{\hyperlink{if__uath_8c_ad5c90412b33937884148892873f7fafa}{01775}} \mbox{\hyperlink{if__uath_8c_ad5c90412b33937884148892873f7fafa}{uath\_raw\_xmit}}(\textcolor{keyword}{struct} ieee80211\_node *ni, \textcolor{keyword}{struct} mbuf *m,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01776}01776     \textcolor{keyword}{const} \textcolor{keyword}{struct} ieee80211\_bpf\_params *params)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01777}01777 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01778}01778         \textcolor{keyword}{struct }ieee80211com *ic = ni-\/>ni\_ic;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01779}01779         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *bf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01780}01780         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01781}01781 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01782}01782         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01783}01783         \textcolor{comment}{/* prevent management frames from being sent if we're not ready */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01784}01784         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01785}01785             !(sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}})) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01786}01786                 m\_freem(m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01787}01787                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01788}01788                 \textcolor{keywordflow}{return} (ENETDOWN);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01789}01789         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01790}01790 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01791}01791         \textcolor{comment}{/* grab a TX buffer  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01792}01792         bf = \mbox{\hyperlink{if__uath_8c_afc3a2073d5a2b901a619353a0303ac3d}{uath\_getbuf}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01793}01793         \textcolor{keywordflow}{if} (bf == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01794}01794                 m\_freem(m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01795}01795                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01796}01796                 \textcolor{keywordflow}{return} (ENOBUFS);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01797}01797         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01798}01798 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01799}01799         sc-\/>\mbox{\hyperlink{structuath__softc_a739f9dc24bf7ada0809b59644337ea5f}{sc\_seqnum}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01800}01800         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__uath_8c_a8241df19bfb72d334155bac035d2d9df}{uath\_tx\_start}}(sc, m, ni, bf) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01801}01801                 STAILQ\_INSERT\_HEAD(\&sc-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}}, bf, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01802}01802                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_tx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01803}01803                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01804}01804                 \textcolor{keywordflow}{return} (EIO);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01805}01805         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01806}01806         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01807}01807 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01808}01808         sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} = 5;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01809}01809         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01810}01810 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01811}01811 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01812}01812 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01813}\mbox{\hyperlink{if__uath_8c_a47dde4e2f0e066863dd3ddee3400d9a4}{01813}} \mbox{\hyperlink{if__uath_8c_a47dde4e2f0e066863dd3ddee3400d9a4}{uath\_scan\_start}}(\textcolor{keyword}{struct} ieee80211com *ic)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01814}01814 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01815}01815         \textcolor{comment}{/* do nothing  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01816}01816 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01817}01817 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01818}01818 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01819}\mbox{\hyperlink{if__uath_8c_abc2fefda9f04091c6b9ebc081d4e5adc}{01819}} \mbox{\hyperlink{if__uath_8c_abc2fefda9f04091c6b9ebc081d4e5adc}{uath\_scan\_end}}(\textcolor{keyword}{struct} ieee80211com *ic)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01820}01820 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01821}01821         \textcolor{comment}{/* do nothing  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01822}01822 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01823}01823 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01824}01824 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01825}\mbox{\hyperlink{if__uath_8c_a203b25e54396a52818325cc5b65a668d}{01825}} \mbox{\hyperlink{if__uath_8c_a203b25e54396a52818325cc5b65a668d}{uath\_set\_channel}}(\textcolor{keyword}{struct} ieee80211com *ic)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01826}01826 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01827}01827         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01828}01828 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01829}01829         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01830}01830         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01831}01831             (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01832}01832                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01833}01833                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01834}01834         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01835}01835         (void)\mbox{\hyperlink{if__uath_8c_aebcd216d9406bb5f7df6a277b8968c3f}{uath\_switch\_channel}}(sc, ic-\/>ic\_curchan);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01836}01836         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01837}01837 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01838}01838 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01839}01839 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01840}\mbox{\hyperlink{if__uath_8c_ab372678377a9571f96b0684d4adc9830}{01840}} \mbox{\hyperlink{if__uath_8c_ab372678377a9571f96b0684d4adc9830}{uath\_set\_rxmulti\_filter}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01841}01841 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01842}01842         \textcolor{comment}{/* XXX broken */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01843}01843         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01844}01844 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01845}01845 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01846}\mbox{\hyperlink{if__uath_8c_a68bedb1a43402f5303f291c6115cb17b}{01846}} \mbox{\hyperlink{if__uath_8c_a68bedb1a43402f5303f291c6115cb17b}{uath\_update\_mcast}}(\textcolor{keyword}{struct} ieee80211com *ic)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01847}01847 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01848}01848         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01849}01849 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01850}01850         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01851}01851         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01852}01852             (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01853}01853                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01854}01854                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01855}01855         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01856}01856         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01857}01857 \textcolor{comment}{         * this is for avoiding the race condition when we're try to}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01858}01858 \textcolor{comment}{         * connect to the AP with WPA.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01859}01859 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01860}01860         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01861}01861                 (void)\mbox{\hyperlink{if__uath_8c_ab372678377a9571f96b0684d4adc9830}{uath\_set\_rxmulti\_filter}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01862}01862         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01863}01863 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01864}01864 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01865}01865 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01866}\mbox{\hyperlink{if__uath_8c_a8d030094e176ddcf93dee3c6eb34a138}{01866}} \mbox{\hyperlink{if__uath_8c_a8d030094e176ddcf93dee3c6eb34a138}{uath\_update\_promisc}}(\textcolor{keyword}{struct} ieee80211com *ic)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01867}01867 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01868}01868         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01869}01869 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01870}01870         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01871}01871         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01872}01872             (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01873}01873                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01874}01874                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01875}01875         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01876}01876         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a32e45014484a5ca12d730c7bd1a67ca9}{UATH\_FLAG\_INITDONE}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01877}01877                 \mbox{\hyperlink{if__uath_8c_a63339bf67ccf320f50edc5fe3a24a19b}{uath\_set\_rxfilter}}(sc,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01878}01878                     \mbox{\hyperlink{if__uathreg_8h_af079c51f19f0989fe3a42071c4d718b8}{UATH\_FILTER\_RX\_UCAST}} | \mbox{\hyperlink{if__uathreg_8h_a30f2e7b9e5b0efff3adc6a85dbe150b5}{UATH\_FILTER\_RX\_MCAST}} |}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01879}01879                     \mbox{\hyperlink{if__uathreg_8h_acf5964cb9d820d81669331b2f8de3fc1}{UATH\_FILTER\_RX\_BCAST}} | \mbox{\hyperlink{if__uathreg_8h_a6583842e23dccac608cdab28a7393387}{UATH\_FILTER\_RX\_BEACON}} |}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01880}01880                     \mbox{\hyperlink{if__uathreg_8h_afc7d5a400b5122a830d1507d4b23c6f2}{UATH\_FILTER\_RX\_PROM}}, \mbox{\hyperlink{if__uathreg_8h_a09e1b15ad64cfad7a77c8ee4e79c76dd}{UATH\_FILTER\_OP\_SET}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01881}01881         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01882}01882         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01883}01883 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01884}01884 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01885}01885 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01886}\mbox{\hyperlink{if__uath_8c_ab80eeb828e057a28b2914c5ab0fb701f}{01886}} \mbox{\hyperlink{if__uath_8c_ab80eeb828e057a28b2914c5ab0fb701f}{uath\_create\_connection}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, uint32\_t connid)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01887}01887 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01888}01888         \textcolor{keyword}{const} \textcolor{keyword}{struct }ieee80211\_rateset *rs;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01889}01889         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01890}01890         \textcolor{keyword}{struct }ieee80211vap *vap = TAILQ\_FIRST(\&ic-\/>ic\_vaps);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01891}01891         \textcolor{keyword}{struct }ieee80211\_node *ni;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01892}01892         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__create__connection}{uath\_cmd\_create\_connection}} create;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01893}01893 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01894}01894         ni = ieee80211\_ref\_node(vap-\/>iv\_bss);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01895}01895         memset(\&create, 0, \textcolor{keyword}{sizeof}(create));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01896}01896         create.\mbox{\hyperlink{structuath__cmd__create__connection_ab9731e7543561f3e27b622272bbb419d}{connid}} = htobe32(\mbox{\hyperlink{structuath__cmd__create__connection_ab9731e7543561f3e27b622272bbb419d}{connid}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01897}01897         create.\mbox{\hyperlink{structuath__cmd__create__connection_aefb64f01650d032356a62aecb4143992}{bssid}} = htobe32(0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01898}01898         \textcolor{comment}{/* XXX packed or not?  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01899}01899         create.\mbox{\hyperlink{structuath__cmd__create__connection_a31b24063db16b698765c0f86c97a0da1}{size}} = htobe32(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd__rateset}{uath\_cmd\_rateset}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01900}01900 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01901}01901         rs = \&ni-\/>ni\_rates;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01902}01902         create.\mbox{\hyperlink{structuath__cmd__create__connection_ab516db8b03a5123d784e21f574948d3f}{connattr}}.\mbox{\hyperlink{structuath__cmd__connection__attr_ac949ff660d7d8f0090c8401f9165e309}{rateset}}.\mbox{\hyperlink{structuath__cmd__rateset_a3ba10f544f06e4c1be274fd764c7079a}{length}} = rs-\/>rs\_nrates;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01903}01903         bcopy(rs-\/>rs\_rates, \&create.\mbox{\hyperlink{structuath__cmd__create__connection_ab516db8b03a5123d784e21f574948d3f}{connattr}}.\mbox{\hyperlink{structuath__cmd__connection__attr_ac949ff660d7d8f0090c8401f9165e309}{rateset}}.\mbox{\hyperlink{structuath__cmd__rateset_ae7658adcd29cdaec96bcf6a17f98cd19}{set}}[0],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01904}01904             rs-\/>rs\_nrates);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01905}01905 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01906}01906         \textcolor{comment}{/* XXX turbo */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01907}01907         \textcolor{keywordflow}{if} (IEEE80211\_IS\_CHAN\_A(ni-\/>ni\_chan))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01908}01908                 create.\mbox{\hyperlink{structuath__cmd__create__connection_ab516db8b03a5123d784e21f574948d3f}{connattr}}.\mbox{\hyperlink{structuath__cmd__connection__attr_a5d17064304c81ed81687de8fb83a52a2}{wlanmode}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_a2f1398dba5e4a5616b83437528bdb28ea5bd4ab0a56c787c656736161c082412a}{WLAN\_MODE\_11a}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01909}01909         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (IEEE80211\_IS\_CHAN\_ANYG(ni-\/>ni\_chan))}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01910}01910                 create.\mbox{\hyperlink{structuath__cmd__create__connection_ab516db8b03a5123d784e21f574948d3f}{connattr}}.\mbox{\hyperlink{structuath__cmd__connection__attr_a5d17064304c81ed81687de8fb83a52a2}{wlanmode}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_a2f1398dba5e4a5616b83437528bdb28eae07279927a35b493de5b0a353c23eef4}{WLAN\_MODE\_11g}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01911}01911         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01912}01912                 create.\mbox{\hyperlink{structuath__cmd__create__connection_ab516db8b03a5123d784e21f574948d3f}{connattr}}.\mbox{\hyperlink{structuath__cmd__connection__attr_a5d17064304c81ed81687de8fb83a52a2}{wlanmode}} = htobe32(\mbox{\hyperlink{if__uathreg_8h_a2f1398dba5e4a5616b83437528bdb28ea939fa4026e73481965d303c6747cac7e}{WLAN\_MODE\_11b}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01913}01913         ieee80211\_free\_node(ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01914}01914 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01915}01915         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a15f82c335a7be77a205223d106e38c00}{WDCMSG\_CREATE\_CONNECTION}}, \&create,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01916}01916             \textcolor{keyword}{sizeof} create, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01917}01917 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01918}01918 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01919}01919 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01920}\mbox{\hyperlink{if__uath_8c_ada9ca4f4c37adc9f0b03802d21f17906}{01920}} \mbox{\hyperlink{if__uath_8c_ada9ca4f4c37adc9f0b03802d21f17906}{uath\_set\_rates}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{const} \textcolor{keyword}{struct} ieee80211\_rateset *rs)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01921}01921 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01922}01922         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__rates}{uath\_cmd\_rates}} rates;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01923}01923 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01924}01924         memset(\&rates, 0, \textcolor{keyword}{sizeof}(rates));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01925}01925         rates.\mbox{\hyperlink{structuath__cmd__rates_ac44151ac0155e7a4ed80ed53442a5241}{connid}} = htobe32(\mbox{\hyperlink{if__uathvar_8h_a647aa6abc84b0083093411abe2c76a35}{UATH\_ID\_BSS}});           \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01926}01926         rates.\mbox{\hyperlink{structuath__cmd__rates_a47fcab9563b9135f09e29f54c19c59b7}{size}}   = htobe32(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd__rateset}{uath\_cmd\_rateset}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01927}01927         \textcolor{comment}{/* XXX bounds check rs-\/>rs\_nrates */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01928}01928         rates.\mbox{\hyperlink{structuath__cmd__rates_ab41291d0c732afab1ab90915c8621fe6}{rateset}}.\mbox{\hyperlink{structuath__cmd__rateset_a3ba10f544f06e4c1be274fd764c7079a}{length}} = rs-\/>rs\_nrates;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01929}01929         bcopy(rs-\/>rs\_rates, \&rates.\mbox{\hyperlink{structuath__cmd__rates_ab41291d0c732afab1ab90915c8621fe6}{rateset}}.\mbox{\hyperlink{structuath__cmd__rateset_ae7658adcd29cdaec96bcf6a17f98cd19}{set}}[0], rs-\/>rs\_nrates);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01930}01930 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01931}01931         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RATES,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01932}01932             \textcolor{stringliteral}{"{}setting supported rates nrates=\%d\(\backslash\)n"{}}, rs-\/>rs\_nrates);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01933}01933         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a1a779e21c12691769088ed8851eddcb8}{WDCMSG\_SET\_BASIC\_RATE}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01934}01934             \&rates, \textcolor{keyword}{sizeof} rates, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01935}01935 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01936}01936 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01937}01937 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01938}\mbox{\hyperlink{if__uath_8c_a7fe9c77f4201fad2a0b341554b3d563e}{01938}} \mbox{\hyperlink{if__uath_8c_a7fe9c77f4201fad2a0b341554b3d563e}{uath\_write\_associd}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01939}01939 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01940}01940         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01941}01941         \textcolor{keyword}{struct }ieee80211vap *vap = TAILQ\_FIRST(\&ic-\/>ic\_vaps);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01942}01942         \textcolor{keyword}{struct }ieee80211\_node *ni;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01943}01943         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__set__associd}{uath\_cmd\_set\_associd}} \mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01944}01944 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01945}01945         ni = ieee80211\_ref\_node(vap-\/>iv\_bss);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01946}01946         memset(\&\mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}, 0, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01947}01947         \mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}.defaultrateix = htobe32(1);      \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01948}01948         \mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}.associd = htobe32(ni-\/>ni\_associd);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01949}01949         \mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}.timoffset = htobe32(0x3b);       \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01950}01950         IEEE80211\_ADDR\_COPY(\mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}.bssid, ni-\/>ni\_bssid);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01951}01951         ieee80211\_free\_node(ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01952}01952         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_afad14d3045e923d7848d42112a1c5908}{WDCMSG\_WRITE\_ASSOCID}}, \&\mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01953}01953             \textcolor{keyword}{sizeof} \mbox{\hyperlink{structuath__cmd__set__associd_a227aa9d1ecd0eda4a54487841d4d8125}{associd}}, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01954}01954 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01955}01955 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01956}01956 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01957}\mbox{\hyperlink{if__uath_8c_ab98af51fa69e7feb32c7e45b04ca7591}{01957}} \mbox{\hyperlink{if__uath_8c_ab98af51fa69e7feb32c7e45b04ca7591}{uath\_set\_ledsteady}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keywordtype}{int} lednum, \textcolor{keywordtype}{int} ledmode)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01958}01958 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01959}01959         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__ledsteady}{uath\_cmd\_ledsteady}} led;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01960}01960 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01961}01961         led.\mbox{\hyperlink{structuath__cmd__ledsteady_af38332ca46e32f8fb75c893852277c60}{lednum}} = htobe32(\mbox{\hyperlink{structuath__cmd__ledsteady_af38332ca46e32f8fb75c893852277c60}{lednum}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01962}01962         led.\mbox{\hyperlink{structuath__cmd__ledsteady_a73430d940bdfe9b80a8bb98a106ec473}{ledmode}} = htobe32(\mbox{\hyperlink{structuath__cmd__ledsteady_a73430d940bdfe9b80a8bb98a106ec473}{ledmode}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01963}01963 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01964}01964         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_LED, \textcolor{stringliteral}{"{}set \%s led \%s (steady)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01965}01965             (\mbox{\hyperlink{structuath__cmd__ledsteady_af38332ca46e32f8fb75c893852277c60}{lednum}} == \mbox{\hyperlink{if__uathreg_8h_af299b60a994a78cd51fe7c3b3bd77dda}{UATH\_LED\_LINK}}) ? \textcolor{stringliteral}{"{}link"{}} : \textcolor{stringliteral}{"{}activity"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01966}01966             \mbox{\hyperlink{structuath__cmd__ledsteady_a73430d940bdfe9b80a8bb98a106ec473}{ledmode}} ? \textcolor{stringliteral}{"{}on"{}} : \textcolor{stringliteral}{"{}off"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01967}01967         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a43ef7f974c3c5225f8e9351e9cfa330a}{WDCMSG\_SET\_LED\_STEADY}}, \&led, \textcolor{keyword}{sizeof} led, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01968}01968 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01969}01969 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01970}01970 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01971}\mbox{\hyperlink{if__uath_8c_a8d7181be56134ed97fc49c1a4814bfa6}{01971}} \mbox{\hyperlink{if__uath_8c_a8d7181be56134ed97fc49c1a4814bfa6}{uath\_set\_ledblink}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keywordtype}{int} \mbox{\hyperlink{structuath__cmd__ledsteady_af38332ca46e32f8fb75c893852277c60}{lednum}}, \textcolor{keywordtype}{int} \mbox{\hyperlink{structuath__cmd__ledsteady_a73430d940bdfe9b80a8bb98a106ec473}{ledmode}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01972}01972         \textcolor{keywordtype}{int} blinkrate, \textcolor{keywordtype}{int} slowmode)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01973}01973 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01974}01974         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__ledblink}{uath\_cmd\_ledblink}} led;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01975}01975 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01976}01976         led.\mbox{\hyperlink{structuath__cmd__ledblink_ae5b5a1c4aabc2920504e5b6b3826b0ed}{lednum}} = htobe32(\mbox{\hyperlink{structuath__cmd__ledblink_ae5b5a1c4aabc2920504e5b6b3826b0ed}{lednum}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01977}01977         led.\mbox{\hyperlink{structuath__cmd__ledblink_ae5bc1193547249177ed00538f4c53d7a}{ledmode}} = htobe32(\mbox{\hyperlink{structuath__cmd__ledblink_ae5bc1193547249177ed00538f4c53d7a}{ledmode}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01978}01978         led.\mbox{\hyperlink{structuath__cmd__ledblink_a43b0d072785ffb04c19b41ffbd6c2f91}{blinkrate}} = htobe32(\mbox{\hyperlink{structuath__cmd__ledblink_a43b0d072785ffb04c19b41ffbd6c2f91}{blinkrate}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01979}01979         led.\mbox{\hyperlink{structuath__cmd__ledblink_af817ff32cf4d98bb1abddf42757ceb8d}{slowmode}} = htobe32(\mbox{\hyperlink{structuath__cmd__ledblink_af817ff32cf4d98bb1abddf42757ceb8d}{slowmode}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01980}01980 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01981}01981         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_LED, \textcolor{stringliteral}{"{}set \%s led \%s (blink)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01982}01982             (\mbox{\hyperlink{structuath__cmd__ledblink_ae5b5a1c4aabc2920504e5b6b3826b0ed}{lednum}} == \mbox{\hyperlink{if__uathreg_8h_af299b60a994a78cd51fe7c3b3bd77dda}{UATH\_LED\_LINK}}) ? \textcolor{stringliteral}{"{}link"{}} : \textcolor{stringliteral}{"{}activity"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01983}01983             \mbox{\hyperlink{structuath__cmd__ledblink_ae5bc1193547249177ed00538f4c53d7a}{ledmode}} ? \textcolor{stringliteral}{"{}on"{}} : \textcolor{stringliteral}{"{}off"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01984}01984         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_a5bbfd5deea0195636ca612e73ecd9c53}{WDCMSG\_SET\_LED\_BLINK}}, \&led, \textcolor{keyword}{sizeof} led, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01985}01985 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01986}01986 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01987}01987 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01988}\mbox{\hyperlink{if__uath_8c_ad6fd206e3f532010becc173dae90d93d}{01988}} \mbox{\hyperlink{if__uath_8c_ad6fd206e3f532010becc173dae90d93d}{uath\_newstate}}(\textcolor{keyword}{struct} ieee80211vap *vap, \textcolor{keyword}{enum} ieee80211\_state nstate, \textcolor{keywordtype}{int} arg)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01989}01989 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01990}01990         \textcolor{keyword}{enum} ieee80211\_state ostate = vap-\/>iv\_state;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01991}01991         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01992}01992         \textcolor{keyword}{struct }ieee80211\_node *ni;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01993}01993         \textcolor{keyword}{struct }ieee80211com *ic = vap-\/>iv\_ic;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01994}01994         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = ic-\/>ic\_softc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01995}01995         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__vap}{uath\_vap}} *uvp = \mbox{\hyperlink{if__uathvar_8h_ade3bf4d89971d7a072753b2507ee5d76}{UATH\_VAP}}(\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01996}01996 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01997}01997         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_STATE,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01998}01998             \textcolor{stringliteral}{"{}\%s: \%s -\/> \%s\(\backslash\)n"{}}, \_\_func\_\_, ieee80211\_state\_name[\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}}-\/>iv\_state],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l01999}01999             ieee80211\_state\_name[nstate]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02000}02000 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02001}02001         IEEE80211\_UNLOCK(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02002}02002         \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02003}02003         callout\_stop(\&sc-\/>\mbox{\hyperlink{structuath__softc_a9e1ebd93f1fc55390ea6b37ecb6d9bb0}{stat\_ch}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02004}02004         callout\_stop(\&sc-\/>\mbox{\hyperlink{structuath__softc_af6f80f1fbb2888caf0c429ffc0183c8f}{watchdog\_ch}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02005}02005         ni = ieee80211\_ref\_node(\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}}-\/>iv\_bss);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02006}02006 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02007}02007         \textcolor{keywordflow}{switch} (nstate) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02008}02008         \textcolor{keywordflow}{case} IEEE80211\_S\_INIT:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02009}02009                 \textcolor{keywordflow}{if} (ostate == IEEE80211\_S\_RUN) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02010}02010                         \textcolor{comment}{/* turn link and activity LEDs off */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02011}02011                         \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(sc, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02012}02012                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02013}02013                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02014}02014 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02015}02015         \textcolor{keywordflow}{case} IEEE80211\_S\_SCAN:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02016}02016                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02017}02017 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02018}02018         \textcolor{keywordflow}{case} IEEE80211\_S\_AUTH:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02019}02019                 \textcolor{comment}{/* XXX good place?  set RTS threshold  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02020}02020                 \mbox{\hyperlink{if__uath_8c_a5be1973b0bd391519ecb3b625caad1f3}{uath\_config}}(sc, \mbox{\hyperlink{if__uathreg_8h_aeac2de18c0ed342a690b3e2ba3c52426a51c806f5cf677134041ec4b7e33cfe31}{CFG\_USER\_RTS\_THRESHOLD}}, \mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}}-\/>iv\_rtsthreshold);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02021}02021                 \textcolor{comment}{/* XXX bad place  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02022}02022                 \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_a97938d7f1cfb7ff0ae6acc184ba8bc71}{uath\_set\_keys}}(sc, \mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02023}02023                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02024}02024                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02025}02025                             \textcolor{stringliteral}{"{}could not set crypto keys, error \%d\(\backslash\)n"{}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02026}02026                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02027}02027                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02028}02028                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__uath_8c_aebcd216d9406bb5f7df6a277b8968c3f}{uath\_switch\_channel}}(sc, ni-\/>ni\_chan) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02029}02029                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}could not switch channel\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02030}02030                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02031}02031                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02032}02032                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__uath_8c_ab80eeb828e057a28b2914c5ab0fb701f}{uath\_create\_connection}}(sc, \mbox{\hyperlink{if__uathvar_8h_a647aa6abc84b0083093411abe2c76a35}{UATH\_ID\_BSS}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02033}02033                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02034}02034                             \textcolor{stringliteral}{"{}could not create connection\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02035}02035                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02036}02036                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02037}02037                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02038}02038 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02039}02039         \textcolor{keywordflow}{case} IEEE80211\_S\_ASSOC:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02040}02040                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__uath_8c_ada9ca4f4c37adc9f0b03802d21f17906}{uath\_set\_rates}}(sc, \&ni-\/>ni\_rates) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02041}02041                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02042}02042                             \textcolor{stringliteral}{"{}could not set negotiated rate set\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02043}02043                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02044}02044                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02045}02045                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02046}02046 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02047}02047         \textcolor{keywordflow}{case} IEEE80211\_S\_RUN:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02048}02048                 \textcolor{comment}{/* XXX monitor mode doesn't be tested  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02049}02049                 \textcolor{keywordflow}{if} (ic-\/>ic\_opmode == IEEE80211\_M\_MONITOR) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02050}02050                         \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(sc, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02051}02051                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02052}02052                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02053}02053 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02054}02054                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02055}02055 \textcolor{comment}{                 * Tx rate is controlled by firmware, report the maximum}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02056}02056 \textcolor{comment}{                 * negotiated rate in ifconfig output.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02057}02057 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02058}02058                 ni-\/>ni\_txrate = ni-\/>ni\_rates.rs\_rates[ni-\/>ni\_rates.rs\_nrates-\/1];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02059}02059 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02060}02060                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__uath_8c_a7fe9c77f4201fad2a0b341554b3d563e}{uath\_write\_associd}}(sc) != 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02061}02061                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02062}02062                             \textcolor{stringliteral}{"{}could not write association id\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02063}02063                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02064}02064                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02065}02065                 \textcolor{comment}{/* turn link LED on */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02066}02066                 \mbox{\hyperlink{if__uath_8c_ab98af51fa69e7feb32c7e45b04ca7591}{uath\_set\_ledsteady}}(sc, \mbox{\hyperlink{if__uathreg_8h_af299b60a994a78cd51fe7c3b3bd77dda}{UATH\_LED\_LINK}}, \mbox{\hyperlink{if__uathreg_8h_a6c48f7c1889a3afa934501faa7ed7bee}{UATH\_LED\_ON}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02067}02067                 \textcolor{comment}{/* make activity LED blink */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02068}02068                 \mbox{\hyperlink{if__uath_8c_a8d7181be56134ed97fc49c1a4814bfa6}{uath\_set\_ledblink}}(sc, \mbox{\hyperlink{if__uathreg_8h_af21ffaff2e785fd7415cc820c14be01c}{UATH\_LED\_ACTIVITY}}, \mbox{\hyperlink{if__uathreg_8h_a6c48f7c1889a3afa934501faa7ed7bee}{UATH\_LED\_ON}}, 1, 2);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02069}02069                 \textcolor{comment}{/* set state to associated */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02070}02070                 \mbox{\hyperlink{if__uath_8c_a13b0aa5d5bb32f4975028763e50efbc3}{uath\_set\_ledstate}}(sc, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02071}02071 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02072}02072                 \textcolor{comment}{/* start statistics timer */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02073}02073                 callout\_reset(\&sc-\/>\mbox{\hyperlink{structuath__softc_a9e1ebd93f1fc55390ea6b37ecb6d9bb0}{stat\_ch}}, hz, \mbox{\hyperlink{structuath__stat}{uath\_stat}}, sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02074}02074                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02075}02075         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02076}02076                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02077}02077         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02078}02078         ieee80211\_free\_node(ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02079}02079         \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02080}02080         IEEE80211\_LOCK(ic);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02081}02081         \textcolor{keywordflow}{return} (uvp-\/>\mbox{\hyperlink{structuath__vap_affae96b754e15a68edb3383437ff0220}{newstate}}(\mbox{\hyperlink{structuath__vap_a000b66f22b6f4bf979dfac5e6fe462dd}{vap}}, nstate, arg));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02082}02082 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02083}02083 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02084}02084 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02085}\mbox{\hyperlink{if__uath_8c_ab1e6db8c4308f14cf930c9386cb24f07}{02085}} \mbox{\hyperlink{if__uath_8c_ab1e6db8c4308f14cf930c9386cb24f07}{uath\_set\_key}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{const} \textcolor{keyword}{struct} ieee80211\_key *wk,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02086}02086     \textcolor{keywordtype}{int} index)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02087}02087 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02088}02088 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02089}02089         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__crypto}{uath\_cmd\_crypto}} crypto;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02090}02090         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02091}02091 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02092}02092         memset(\&crypto, 0, \textcolor{keyword}{sizeof}(crypto));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02093}02093         crypto.\mbox{\hyperlink{structuath__cmd__crypto_a3f69c7ca4cbb23ba56f95bd33e221c66}{keyidx}} = htobe32(index);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02094}02094         crypto.magic1 = htobe32(1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02095}02095         crypto.\mbox{\hyperlink{structuath__cmd__crypto_a539e7bbe720905c3e300a7f182965bc6}{size}}   = htobe32(368);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02096}02096         crypto.mask   = htobe32(0xffff);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02097}02097         crypto.flags  = htobe32(0x80000068);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02098}02098         \textcolor{keywordflow}{if} (index != \mbox{\hyperlink{if__uathreg_8h_a8da2abdd1824ac84351203849bcc4c00}{UATH\_DEFAULT\_KEY}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02099}02099                 crypto.flags |= htobe32(index << 16);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02100}02100         memset(crypto.magic2, 0xff, \textcolor{keyword}{sizeof}(crypto.magic2));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02101}02101 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02102}02102         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02103}02103 \textcolor{comment}{         * Each byte of the key must be XOR'ed with 10101010 before being}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02104}02104 \textcolor{comment}{         * transmitted to the firmware.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02105}02105 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02106}02106         \textcolor{keywordflow}{for} (i = 0; i < wk-\/>wk\_keylen; i++)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02107}02107                 crypto.key[i] = wk-\/>wk\_key[i] \string^ 0xaa;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02108}02108 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02109}02109         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_CRYPTO,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02110}02110             \textcolor{stringliteral}{"{}setting crypto key index=\%d len=\%d\(\backslash\)n"{}}, index, wk-\/>wk\_keylen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02111}02111         \textcolor{keywordflow}{return} \mbox{\hyperlink{if__uath_8c_afdaeabf6b482dae8adae33f64ab13655}{uath\_cmd\_write}}(sc, \mbox{\hyperlink{if__uathreg_8h_abd250f12b7000819389a5657ce5da4fe}{WDCMSG\_SET\_KEY\_CACHE\_ENTRY}}, \&crypto,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02112}02112             \textcolor{keyword}{sizeof} crypto, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02113}02113 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02114}02114         \textcolor{comment}{/* XXX support H/W cryto  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02115}02115         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02116}02116 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02117}02117 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02118}02118 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02119}02119 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02120}\mbox{\hyperlink{if__uath_8c_a97938d7f1cfb7ff0ae6acc184ba8bc71}{02120}} \mbox{\hyperlink{if__uath_8c_a97938d7f1cfb7ff0ae6acc184ba8bc71}{uath\_set\_keys}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} ieee80211vap *vap)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02121}02121 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02122}02122         \textcolor{keywordtype}{int} i, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02123}02123 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02124}02124         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02125}02125         \textcolor{keywordflow}{for} (i = 0; i < IEEE80211\_WEP\_NKID; i++) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02126}02126                 \textcolor{keyword}{const} \textcolor{keyword}{struct }ieee80211\_key *wk = \&vap-\/>iv\_nw\_keys[i];}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02127}02127 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02128}02128                 \textcolor{keywordflow}{if} (wk-\/>wk\_flags \& (IEEE80211\_KEY\_XMIT|IEEE80211\_KEY\_RECV)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02129}02129                         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_ab1e6db8c4308f14cf930c9386cb24f07}{uath\_set\_key}}(sc, wk, i);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02130}02130                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02131}02131                                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02132}02132                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02133}02133         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02134}02134         \textcolor{keywordflow}{if} (vap-\/>iv\_def\_txkey != IEEE80211\_KEYIX\_NONE) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02135}02135                 \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__uath_8c_ab1e6db8c4308f14cf930c9386cb24f07}{uath\_set\_key}}(sc, \&vap-\/>iv\_nw\_keys[vap-\/>iv\_def\_txkey],}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02136}02136                         \mbox{\hyperlink{if__uathreg_8h_a8da2abdd1824ac84351203849bcc4c00}{UATH\_DEFAULT\_KEY}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02137}02137         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02138}02138         \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02139}02139 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02140}02140 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02141}\mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{02141}} \textcolor{preprocessor}{\#define UATH\_SYSCTL\_STAT\_ADD32(c, h, n, p, d)   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02142}02142 \textcolor{preprocessor}{            SYSCTL\_ADD\_UINT(c, h, OID\_AUTO, n, CTLFLAG\_RD, p, 0, d)}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02143}02143 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02144}02144 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02145}\mbox{\hyperlink{if__uath_8c_a8d80fbcef0d112029547acfddf45aba1}{02145}} \mbox{\hyperlink{if__uath_8c_a8d80fbcef0d112029547acfddf45aba1}{uath\_sysctl\_node}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02146}02146 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02147}02147         \textcolor{keyword}{struct }sysctl\_ctx\_list *ctx;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02148}02148         \textcolor{keyword}{struct }sysctl\_oid\_list *child;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02149}02149         \textcolor{keyword}{struct }sysctl\_oid *tree;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02150}02150         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__stat}{uath\_stat}} *stats;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02151}02151 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02152}02152         stats = \&sc-\/>\mbox{\hyperlink{structuath__softc_a921697b6af14ca82a562c9ebd32f04b2}{sc\_stat}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02153}02153         ctx = device\_get\_sysctl\_ctx(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02154}02154         child = SYSCTL\_CHILDREN(device\_get\_sysctl\_tree(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02155}02155 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02156}02156         tree = SYSCTL\_ADD\_NODE(ctx, child, OID\_AUTO, \textcolor{stringliteral}{"{}stats"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02157}02157             CTLFLAG\_RD | CTLFLAG\_MPSAFE, NULL, \textcolor{stringliteral}{"{}UATH statistics"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02158}02158         child = SYSCTL\_CHILDREN(tree);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02159}02159         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}badchunkseqnum"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02160}02160             \&stats-\/>\mbox{\hyperlink{structuath__stat_ac8bb16606eeb8a6e7a60019471e24aa2}{st\_badchunkseqnum}}, \textcolor{stringliteral}{"{}Bad chunk sequence numbers"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02161}02161         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}invalidlen"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_a4b7bbc8965864abc7ca1a42858e54a1f}{st\_invalidlen}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02162}02162             \textcolor{stringliteral}{"{}Invalid length"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02163}02163         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}multichunk"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_a9749818e30eec9f3ba5eb66122af36bc}{st\_multichunk}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02164}02164             \textcolor{stringliteral}{"{}Multi chunks"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02165}02165         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}toobigrxpkt"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02166}02166             \&stats-\/>\mbox{\hyperlink{structuath__stat_abd00309863c372999a58aa32c51c9057}{st\_toobigrxpkt}}, \textcolor{stringliteral}{"{}Too big rx packets"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02167}02167         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}stopinprogress"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02168}02168             \&stats-\/>\mbox{\hyperlink{structuath__stat_a877928a8569ea178d411281381d380a6}{st\_stopinprogress}}, \textcolor{stringliteral}{"{}Stop in progress"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02169}02169         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}crcerrs"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_a5b5d31ebc08066407d4e79eb502c5c70}{st\_crcerr}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02170}02170             \textcolor{stringliteral}{"{}CRC errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02171}02171         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}phyerr"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_ad5cae3138384ee3d788d49b2e1f65972}{st\_phyerr}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02172}02172             \textcolor{stringliteral}{"{}PHY errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02173}02173         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}decrypt\_crcerr"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02174}02174             \&stats-\/>\mbox{\hyperlink{structuath__stat_aea264fb0c002a884dfb554f4f288fa21}{st\_decrypt\_crcerr}}, \textcolor{stringliteral}{"{}Decryption CRC errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02175}02175         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}decrypt\_micerr"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02176}02176             \&stats-\/>\mbox{\hyperlink{structuath__stat_a77c30f169a6d92567b73bc01055f1d75}{st\_decrypt\_micerr}}, \textcolor{stringliteral}{"{}Decryption Misc errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02177}02177         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}decomperr"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_a4dea2fe47511f721c6865706560637ca}{st\_decomperr}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02178}02178             \textcolor{stringliteral}{"{}Decomp errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02179}02179         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}keyerr"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_a66d9442fcf829b8904320599fccec479}{st\_keyerr}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02180}02180             \textcolor{stringliteral}{"{}Key errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02181}02181         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}err"{}}, \&stats-\/>\mbox{\hyperlink{structuath__stat_af45e52bbce43f4a2920a100d3db65afb}{st\_err}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02182}02182             \textcolor{stringliteral}{"{}Unknown errors"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02183}02183 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02184}02184         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}cmd\_active"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02185}02185             \&stats-\/>\mbox{\hyperlink{structuath__stat_a3ca0b8dd91ada32d20f758783f9a30e1}{st\_cmd\_active}}, \textcolor{stringliteral}{"{}Active numbers in Command queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02186}02186         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}cmd\_inactive"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02187}02187             \&stats-\/>\mbox{\hyperlink{structuath__stat_ae19d3c2875a817cccd8342bdf33d3d2e}{st\_cmd\_inactive}}, \textcolor{stringliteral}{"{}Inactive numbers in Command queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02188}02188         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}cmd\_pending"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02189}02189             \&stats-\/>\mbox{\hyperlink{structuath__stat_a0ed36aaeba9c5bb960065076c5f390a7}{st\_cmd\_pending}}, \textcolor{stringliteral}{"{}Pending numbers in Command queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02190}02190         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}cmd\_waiting"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02191}02191             \&stats-\/>\mbox{\hyperlink{structuath__stat_a833f202acad7d2c033a49030717f098e}{st\_cmd\_waiting}}, \textcolor{stringliteral}{"{}Waiting numbers in Command queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02192}02192         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}rx\_active"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02193}02193             \&stats-\/>\mbox{\hyperlink{structuath__stat_a4bcd2585b9d9d8762e2e8618c1de2754}{st\_rx\_active}}, \textcolor{stringliteral}{"{}Active numbers in RX queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02194}02194         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}rx\_inactive"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02195}02195             \&stats-\/>\mbox{\hyperlink{structuath__stat_ac25a20a0bd761a456ce4545613108124}{st\_rx\_inactive}}, \textcolor{stringliteral}{"{}Inactive numbers in RX queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02196}02196         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}tx\_active"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02197}02197             \&stats-\/>\mbox{\hyperlink{structuath__stat_aef2627d0b5f0b8c4cb27410c4a0a4493}{st\_tx\_active}}, \textcolor{stringliteral}{"{}Active numbers in TX queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02198}02198         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}tx\_inactive"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02199}02199             \&stats-\/>\mbox{\hyperlink{structuath__stat_aced42d3ad2997f6b96a83315b8894fb0}{st\_tx\_inactive}}, \textcolor{stringliteral}{"{}Inactive numbers in TX queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02200}02200         \mbox{\hyperlink{if__uath_8c_a1d8faf5b0603bdaa425f9a8882f2e949}{UATH\_SYSCTL\_STAT\_ADD32}}(ctx, child, \textcolor{stringliteral}{"{}tx\_pending"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02201}02201             \&stats-\/>\mbox{\hyperlink{structuath__stat_a9936bac9c534550999838cced4079679}{st\_tx\_pending}}, \textcolor{stringliteral}{"{}Pending numbers in TX queue"{}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02202}02202 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02203}02203 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02204}02204 \textcolor{preprocessor}{\#undef UATH\_SYSCTL\_STAT\_ADD32}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02205}02205 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02206}\mbox{\hyperlink{if__uath_8c_a8772bc299da14314594304ec51d5f09e}{02206}} \mbox{\hyperlink{if__uath_8c_a8772bc299da14314594304ec51d5f09e}{CTASSERT}}(\textcolor{keyword}{sizeof}(u\_int) >= \textcolor{keyword}{sizeof}(uint32\_t));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02207}02207 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02208}02208 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02209}\mbox{\hyperlink{if__uath_8c_abb6c79873dd4e906a6467ce1c4b2ef0f}{02209}} \mbox{\hyperlink{if__uath_8c_abb6c79873dd4e906a6467ce1c4b2ef0f}{uath\_cmdeof}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *cmd)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02210}02210 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02211}02211         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}} *hdr;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02212}02212         uint32\_t dlen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02213}02213 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02214}02214         hdr = (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}} *)cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02215}02215         \textcolor{comment}{/* NB: msgid is passed thru w/o byte swapping */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02216}02216 \#ifdef UATH\_DEBUG}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02217}02217         if (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_CMDS) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02218}02218                 uint32\_t \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}} = be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02219}02219                 printf(\textcolor{stringliteral}{"{}\%s: \%s [ix \%u] len \%u status \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02220}02220                     \_\_func\_\_, uath\_codename(be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}})),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02221}02221                     hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_abdd88194c57270876f23d46b9a80fcd2}{msgid}}, \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_aaf6d944a26843679e547e654a6628729}{magic}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02222}02222                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_aa03c2d2a1a6b0e6fb303d388dbb5a55f}{sc\_debug}} \& UATH\_DEBUG\_CMDS\_DUMP)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02223}02223                         uath\_dump\_cmd(cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02224}02224                             \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}} > \mbox{\hyperlink{if__uathreg_8h_a885873ccf823d63d89ec1c10c30ce5c8}{UATH\_MAX\_CMDSZ}} ? \textcolor{keyword}{sizeof}(*hdr) : \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, \textcolor{charliteral}{'-\/'});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02225}02225         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02226}02226 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02227}02227         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}} = be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02228}02228         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} = be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02229}02229         hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_aaf6d944a26843679e547e654a6628729}{magic}} = be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_aaf6d944a26843679e547e654a6628729}{magic}});     \textcolor{comment}{/* target status on return */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02230}02230 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02231}02231         \textcolor{keywordflow}{switch} (hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}} \& 0xff) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02232}02232         \textcolor{comment}{/* reply to a read command */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02233}02233         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02234}02234                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RX\_PROC | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02235}02235                     \textcolor{stringliteral}{"{}\%s: code \%d hdr len \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02236}02236                     \_\_func\_\_, hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}} \& 0xff, hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02237}02237                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02238}02238 \textcolor{comment}{                 * The first response from the target after the}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02239}02239 \textcolor{comment}{                 * HOST\_AVAILABLE has an invalid msgid so we must}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02240}02240 \textcolor{comment}{                 * treat it specially.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02241}02241 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02242}02242                 \textcolor{keywordflow}{if} (hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_abdd88194c57270876f23d46b9a80fcd2}{msgid}} < \mbox{\hyperlink{if__uathvar_8h_ab15644c5153c73715dc798182d10e2bc}{UATH\_CMD\_LIST\_COUNT}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02243}02243                         uint32\_t *rp = (uint32\_t *)(hdr+1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02244}02244                         u\_int olen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02245}02245 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02246}02246                         \textcolor{keywordflow}{if} (\textcolor{keyword}{sizeof}(*hdr) > hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02247}02247                             hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} >= \mbox{\hyperlink{if__uathreg_8h_a885873ccf823d63d89ec1c10c30ce5c8}{UATH\_MAX\_CMDSZ}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02248}02248                                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02249}02249                                     \textcolor{stringliteral}{"{}\%s: invalid WDC msg length \%u; "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02250}02250                                     \textcolor{stringliteral}{"{}msg ignored\(\backslash\)n"{}}, \_\_func\_\_, hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02251}02251                                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02252}02252                         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02253}02253                         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02254}02254 \textcolor{comment}{                         * Calculate return/receive payload size; the}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02255}02255 \textcolor{comment}{                         * first word, if present, always gives the}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02256}02256 \textcolor{comment}{                         * number of bytes-\/-\/unless it's 0 in which}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02257}02257 \textcolor{comment}{                         * case a single 32-\/bit word should be present.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02258}02258 \textcolor{comment}{                         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02259}02259                         dlen = hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} -\/ \textcolor{keyword}{sizeof}(*hdr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02260}02260                         \textcolor{keywordflow}{if} (dlen >= \textcolor{keyword}{sizeof}(uint32\_t)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02261}02261                                 olen = be32toh(rp[0]);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02262}02262                                 dlen -\/= \textcolor{keyword}{sizeof}(uint32\_t);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02263}02263                                 \textcolor{keywordflow}{if} (olen == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02264}02264                                         \textcolor{comment}{/* convention is 0 =>'s one word */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02265}02265                                         olen = \textcolor{keyword}{sizeof}(uint32\_t);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02266}02266                                         \textcolor{comment}{/* XXX KASSERT(olen == dlen ) */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02267}02267                                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02268}02268                         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02269}02269                                 olen = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02270}02270                         \textcolor{keywordflow}{if} (cmd-\/>\mbox{\hyperlink{structuath__cmd_ad7b8f68b91cf471ef89619d1640ed1b8}{odata}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02271}02271                                 \textcolor{comment}{/* NB: cmd-\/>olen validated in uath\_cmd */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02272}02272                                 \textcolor{keywordflow}{if} (olen > (u\_int)cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02273}02273                                         \textcolor{comment}{/* XXX complain? */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02274}02274                                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02275}02275                                             \textcolor{stringliteral}{"{}\%s: cmd 0x\%x olen \%u cmd olen \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02276}02276                                             \_\_func\_\_, hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, olen,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02277}02277                                             cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02278}02278                                         olen = cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02279}02279                                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02280}02280                                 \textcolor{keywordflow}{if} (olen > dlen) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02281}02281                                         \textcolor{comment}{/* XXX complain, shouldn't happen */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02282}02282                                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02283}02283                                             \textcolor{stringliteral}{"{}\%s: cmd 0x\%x olen \%u dlen \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02284}02284                                             \_\_func\_\_, hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a6199fbe7ed5bef326aa6786f559c1399}{code}}, olen, dlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02285}02285                                         olen = dlen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02286}02286                                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02287}02287                                 \textcolor{comment}{/* XXX have submitter do this */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02288}02288                                 \textcolor{comment}{/* copy answer into caller's supplied buffer */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02289}02289                                 bcopy(\&rp[1], cmd-\/>\mbox{\hyperlink{structuath__cmd_ad7b8f68b91cf471ef89619d1640ed1b8}{odata}}, olen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02290}02290                                 cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}} = olen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02291}02291                         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02292}02292                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02293}02293                 wakeup\_one(cmd);                \textcolor{comment}{/* wake up caller */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02294}02294                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02295}02295 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02296}02296         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_af76fbd1cfba900e91b2059cd827e22c5}{WDCMSG\_TARGET\_START}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02297}02297                 \textcolor{keywordflow}{if} (hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_abdd88194c57270876f23d46b9a80fcd2}{msgid}} >= \mbox{\hyperlink{if__uathvar_8h_ab15644c5153c73715dc798182d10e2bc}{UATH\_CMD\_LIST\_COUNT}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02298}02298                         \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02299}02299                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02300}02300                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02301}02301                 dlen = hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} -\/ \textcolor{keyword}{sizeof}(*hdr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02302}02302                 \textcolor{keywordflow}{if} (dlen != \textcolor{keyword}{sizeof}(uint32\_t)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02303}02303                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02304}02304                             \textcolor{stringliteral}{"{}\%s: dlen (\%u) != \%zu!\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02305}02305                             \_\_func\_\_, dlen, \textcolor{keyword}{sizeof}(uint32\_t));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02306}02306                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02307}02307                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02308}02308                 \textcolor{comment}{/* XXX have submitter do this */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02309}02309                 \textcolor{comment}{/* copy answer into caller's supplied buffer */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02310}02310                 bcopy(hdr+1, cmd-\/>\mbox{\hyperlink{structuath__cmd_ad7b8f68b91cf471ef89619d1640ed1b8}{odata}}, \textcolor{keyword}{sizeof}(uint32\_t));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02311}02311                 cmd-\/>\mbox{\hyperlink{structuath__cmd_a829b1fb4d3a2a9209f409f5510092de1}{olen}} = \textcolor{keyword}{sizeof}(uint32\_t);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02312}02312                 wakeup\_one(cmd);                \textcolor{comment}{/* wake up caller */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02313}02313                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02314}02314 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02315}02315         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_a98e5ad076de497d071ae262e5b6931b0}{WDCMSG\_SEND\_COMPLETE}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02316}02316                 \textcolor{comment}{/* this notification is sent when UATH\_TX\_NOTIFY is set */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02317}02317                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RX\_PROC | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02318}02318                     \textcolor{stringliteral}{"{}\%s: received Tx notification\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02319}02319                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02320}02320 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02321}02321         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_a31764e41482682ca047838dc6753cb6c}{WDCMSG\_TARGET\_GET\_STATS}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02322}02322                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RX\_PROC | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02323}02323                     \textcolor{stringliteral}{"{}\%s: received device statistics\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02324}02324                 callout\_reset(\&sc-\/>\mbox{\hyperlink{structuath__softc_a9e1ebd93f1fc55390ea6b37ecb6d9bb0}{stat\_ch}}, hz, \mbox{\hyperlink{structuath__stat}{uath\_stat}}, sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02325}02325                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02326}02326         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02327}02327 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02328}02328 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02329}02329 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02330}\mbox{\hyperlink{if__uath_8c_ad483967e4379e1ccd58fa92369b80d4b}{02330}} \mbox{\hyperlink{if__uath_8c_a94c731b38b9eaeeaedb670b8144bb7ef}{uath\_intr\_rx\_callback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02331}02331 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02332}02332         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02333}02333         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *cmd;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02334}02334         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}} *hdr;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02335}02335         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02336}02336         \textcolor{keywordtype}{int} actlen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02337}02337 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02338}02338         \mbox{\hyperlink{usb__transfer_8c_ac0c68320222f26c2a3eba47b46c47899}{usbd\_xfer\_status}}(xfer, \&actlen, NULL, NULL, NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02339}02339 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02340}02340         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02341}02341 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02342}02342         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02343}02343         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02344}02344                 cmd = STAILQ\_FIRST(\&sc-\/>\mbox{\hyperlink{structuath__softc_acb0fce1fb1509c57bc45a15a5703cac6}{sc\_cmd\_waiting}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02345}02345                 \textcolor{keywordflow}{if} (cmd == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02346}02346                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02347}02347                 STAILQ\_REMOVE\_HEAD(\&sc-\/>\mbox{\hyperlink{structuath__softc_acb0fce1fb1509c57bc45a15a5703cac6}{sc\_cmd\_waiting}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02348}02348                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(sc, st\_cmd\_waiting);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02349}02349                 STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}}, cmd, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02350}02350                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_cmd\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02351}02351 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02352}02352                 \textcolor{keywordflow}{if} (actlen < \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}})) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02353}02353                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02354}02354                             \textcolor{stringliteral}{"{}\%s: short xfer error (actlen \%d)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02355}02355                             \_\_func\_\_, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02356}02356                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02357}02357                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02358}02358 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02359}02359                 pc = \mbox{\hyperlink{usb__transfer_8c_a6e66695b916f0770a259bed959c21555}{usbd\_xfer\_get\_frame}}(xfer, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02360}02360                 \mbox{\hyperlink{usb__busdma_8c_af52eece45b7868dbf58386f4c9e4eb9a}{usbd\_copy\_out}}(pc, 0, cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}}, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02361}02361 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02362}02362                 hdr = (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd__hdr}{uath\_cmd\_hdr}} *)cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02363}02363                 hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} = be32toh(hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02364}02364                 \textcolor{keywordflow}{if} (hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}} > (uint32\_t)actlen) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02365}02365                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02366}02366                             \textcolor{stringliteral}{"{}\%s: truncated xfer (len \%u, actlen \%d)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02367}02367                             \_\_func\_\_, hdr-\/>\mbox{\hyperlink{structuath__cmd__hdr_a9317de954c80ecdc37fd1cea2e5507b4}{len}}, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02368}02368                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02369}02369                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02370}02370 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02371}02371                 \mbox{\hyperlink{if__uath_8c_abb6c79873dd4e906a6467ce1c4b2ef0f}{uath\_cmdeof}}(sc, cmd);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02372}02372         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02373}02373 setup:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02374}02374                 \mbox{\hyperlink{usb__transfer_8c_a31786497f0f4222203b1e993d52af753}{usbd\_xfer\_set\_frame\_len}}(xfer, 0, \mbox{\hyperlink{usb__transfer_8c_ae34a7cc2f01c6dfb68bca6fd0b72647e}{usbd\_xfer\_max\_len}}(xfer));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02375}02375                 \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02376}02376                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02377}02377         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02378}02378                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02379}02379                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02380}02380                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02381}02381                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02382}02382                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02383}02383         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02384}02384 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02385}02385 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02386}02386 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02387}\mbox{\hyperlink{if__uath_8c_a70cebfc65f8c37c9b47f539c77203bf1}{02387}} \mbox{\hyperlink{if__uath_8c_a449501491c88f46d34ff256ac08fe3ba}{uath\_intr\_tx\_callback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02388}02388 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02389}02389         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02390}02390         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__cmd}{uath\_cmd}} *cmd;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02391}02391 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02392}02392         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02393}02393 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02394}02394         cmd = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a175717d6b9195d31c4f1d00e34338a1e}{sc\_cmd\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02395}02395         \textcolor{keywordflow}{if} (cmd != NULL \&\& \mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer) != \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02396}02396                 STAILQ\_REMOVE\_HEAD(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a175717d6b9195d31c4f1d00e34338a1e}{sc\_cmd\_active}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02397}02397                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02398}02398                 STAILQ\_INSERT\_TAIL((cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} \& \mbox{\hyperlink{if__uathvar_8h_afe0cf3a67cff29bc55fac765e97a8e71}{UATH\_CMD\_FLAG\_READ}}) ?}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02399}02399                     \&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_acb0fce1fb1509c57bc45a15a5703cac6}{sc\_cmd\_waiting}} : \&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}}, cmd, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02400}02400                 \textcolor{keywordflow}{if} (cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} \& \mbox{\hyperlink{if__uathvar_8h_afe0cf3a67cff29bc55fac765e97a8e71}{UATH\_CMD\_FLAG\_READ}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02401}02401                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_waiting);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02402}02402                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02403}02403                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02404}02404         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02405}02405 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02406}02406         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02407}02407         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02408}02408         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02409}02409 setup:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02410}02410                 cmd = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a94c9fef25851a995bb3cb2a28337d041}{sc\_cmd\_pending}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02411}02411                 \textcolor{keywordflow}{if} (cmd == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02412}02412                         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, UATH\_DEBUG\_XMIT, \textcolor{stringliteral}{"{}\%s: empty pending queue\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02413}02413                             \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02414}02414                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02415}02415                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02416}02416                 STAILQ\_REMOVE\_HEAD(\&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a94c9fef25851a995bb3cb2a28337d041}{sc\_cmd\_pending}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02417}02417                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_pending);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02418}02418                 STAILQ\_INSERT\_TAIL((cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} \& \mbox{\hyperlink{if__uathvar_8h_a9528998c33c3c96766d546194dd3ea9e}{UATH\_CMD\_FLAG\_ASYNC}}) ?}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02419}02419                     \&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a498e2b05bfca3a64a9b6503697d45b52}{sc\_cmd\_inactive}} : \&\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a175717d6b9195d31c4f1d00e34338a1e}{sc\_cmd\_active}}, cmd, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02420}02420                 \textcolor{keywordflow}{if} (cmd-\/>\mbox{\hyperlink{structuath__cmd_ab487b37a4d866a91807ad6349c3c51b5}{flags}} \& \mbox{\hyperlink{if__uathvar_8h_a9528998c33c3c96766d546194dd3ea9e}{UATH\_CMD\_FLAG\_ASYNC}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02421}02421                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02422}02422                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02423}02423                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_cmd\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02424}02424 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02425}02425                 \mbox{\hyperlink{usb__transfer_8c_a30d239cbfe3c02ec7da6e6dfe5055762}{usbd\_xfer\_set\_frame\_data}}(xfer, 0, cmd-\/>\mbox{\hyperlink{structuath__cmd_a33d62b1116bc01c0f142634f8a0211f5}{buf}}, cmd-\/>\mbox{\hyperlink{structuath__cmd_a3fc0496a413ddefffdec319b3c57394f}{buflen}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02426}02426                 \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02427}02427                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02428}02428         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02429}02429                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02430}02430                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02431}02431                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02432}02432                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02433}02433                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02434}02434         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02435}02435 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02436}02436 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02437}02437 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02438}\mbox{\hyperlink{if__uath_8c_a63fef81187c5f75fabae116b23c296e9}{02438}} \mbox{\hyperlink{if__uath_8c_a63fef81187c5f75fabae116b23c296e9}{uath\_update\_rxstat}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__softc}{uath\_softc}} *\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, uint32\_t \mbox{\hyperlink{xhci_8h_ade818037fd6c985038ff29656089758d}{status}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02439}02439 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02440}02440 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02441}02441         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{xhci_8h_ade818037fd6c985038ff29656089758d}{status}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02442}02442         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_a5737d4b5f3459f25827ca74becd541ef}{UATH\_STATUS\_STOP\_IN\_PROGRESS}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02443}02443                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_stopinprogress);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02444}02444                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02445}02445         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_a9dc3f06db67b9ceb6b7aff190a6854e0}{UATH\_STATUS\_CRC\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02446}02446                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_crcerr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02447}02447                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02448}02448         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_a9a7bfebbdf479da7eeff98e4aa0309cc}{UATH\_STATUS\_PHY\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02449}02449                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_phyerr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02450}02450                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02451}02451         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_ae3dc1962155bef5ef17f4b6931e74268}{UATH\_STATUS\_DECRYPT\_CRC\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02452}02452                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_decrypt\_crcerr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02453}02453                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02454}02454         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_ad7f200963d4a4f87a1f760d18c32b3ef}{UATH\_STATUS\_DECRYPT\_MIC\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02455}02455                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_decrypt\_micerr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02456}02456                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02457}02457         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_ab4b59611a5ce2a1f26ef8de6eb2e23a0}{UATH\_STATUS\_DECOMP\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02458}02458                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_decomperr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02459}02459                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02460}02460         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_a21732d14fedfe28ca762404e03ddc0e9}{UATH\_STATUS\_KEY\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02461}02461                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_keyerr);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02462}02462                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02463}02463         \textcolor{keywordflow}{case} \mbox{\hyperlink{if__uathreg_8h_afda7539a1e02b5d4018b7b7c1ea6ba85}{UATH\_STATUS\_ERR}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02464}02464                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__cmd_a2564be61c0c169fa3b9e19bfc873561e}{sc}}, st\_err);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02465}02465                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02466}02466         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02467}02467                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02468}02468         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02469}02469 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02470}02470 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02471}\mbox{\hyperlink{if__uath_8c_a4b76b2015e02ac403b0312f071f68326}{02471}} \mbox{\hyperlink{if__uath_8c_a8772bc299da14314594304ec51d5f09e}{CTASSERT}}(\mbox{\hyperlink{if__uathreg_8h_abbc1180dc78e16130d2b9df4e2dd4bd4}{UATH\_MIN\_RXBUFSZ}} >= \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__chunk}{uath\_chunk}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02472}02472 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02473}02473 \textcolor{keyword}{static} \textcolor{keyword}{struct }mbuf *}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02474}\mbox{\hyperlink{if__uath_8c_aa5e3f6c00135ced80ac7ba8d0877c205}{02474}} \mbox{\hyperlink{if__uath_8c_aa5e3f6c00135ced80ac7ba8d0877c205}{uath\_data\_rxeof}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__data}{uath\_data}} *data,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02475}02475     \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}} **pdesc)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02476}02476 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02477}02477         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02478}02478         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02479}02479         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}} *chunk;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02480}02480         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}} *\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02481}02481         \textcolor{keyword}{struct }mbuf *m = data-\/>m, *mnew, *mp;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02482}02482         uint16\_t chunklen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02483}02483         \textcolor{keywordtype}{int} actlen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02484}02484 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02485}02485         \mbox{\hyperlink{usb__transfer_8c_ac0c68320222f26c2a3eba47b46c47899}{usbd\_xfer\_status}}(xfer, \&actlen, NULL, NULL, NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02486}02486 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02487}02487         \textcolor{keywordflow}{if} (actlen < (\textcolor{keywordtype}{int})\mbox{\hyperlink{if__uathreg_8h_abbc1180dc78e16130d2b9df4e2dd4bd4}{UATH\_MIN\_RXBUFSZ}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02488}02488                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RECV | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02489}02489                     \textcolor{stringliteral}{"{}\%s: wrong xfer size (len=\%d)\(\backslash\)n"{}}, \_\_func\_\_, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02490}02490                 counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02491}02491                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02492}02492         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02493}02493 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02494}02494         chunk = (\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}} *)data-\/>buf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02495}02495         chunklen = be16toh(chunk-\/>\mbox{\hyperlink{structuath__chunk_a402b2218631f40014edcb31c79edebce}{length}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02496}02496         \textcolor{keywordflow}{if} (chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} == 0 \&\& chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} == 0 \&\& chunklen == 0) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02497}02497                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}}, \textcolor{stringliteral}{"{}\%s: strange response\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02498}02498                 counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02499}02499                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02500}02500                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02501}02501         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02502}02502 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02503}02503         \textcolor{keywordflow}{if} (chunklen > actlen) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02504}02504                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02505}02505                     \textcolor{stringliteral}{"{}\%s: invalid chunk length (len \%u > actlen \%d)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02506}02506                     \_\_func\_\_, chunklen, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02507}02507                 counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02508}02508                 \textcolor{comment}{/* XXX cleanup? */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02509}02509                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02510}02510                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02511}02511         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02512}02512 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02513}02513         \textcolor{keywordflow}{if} (chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} != sc-\/>\mbox{\hyperlink{structuath__softc_a9e27b2f743d68eefe7136ffb2847a9fa}{sc\_intrx\_nextnum}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02514}02514                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_XMIT, \textcolor{stringliteral}{"{}invalid seqnum \%d, expected \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02515}02515                     chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}}, sc-\/>\mbox{\hyperlink{structuath__softc_a9e27b2f743d68eefe7136ffb2847a9fa}{sc\_intrx\_nextnum}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02516}02516                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_badchunkseqnum);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02517}02517                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02518}02518                         m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02519}02519                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02520}02520                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02521}02521         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02522}02522 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02523}02523         \textcolor{comment}{/* check multi-\/chunk frames  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02524}02524         \textcolor{keywordflow}{if} ((chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} == 0 \&\& !(chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}})) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02525}02525             (chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} != 0 \&\& (chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}})) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02526}02526             chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_aa916241d1e8ad5a67ec1eebbea4cc050}{UATH\_CFLAGS\_RXMSG}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02527}02527                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_multichunk);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02528}02528 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02529}02529         \textcolor{keywordflow}{if} (chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02530}02530                 \textcolor{keywordflow}{if} (chunklen < \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}})) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02531}02531                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02532}02532                             \textcolor{stringliteral}{"{}\%s: invalid chunk length \%d\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02533}02533                             \_\_func\_\_, chunklen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02534}02534                         counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02535}02535                         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02536}02536                                 m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02537}02537                         \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02538}02538                         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02539}02539                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02540}02540                 chunklen -\/= \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02541}02541         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02542}02542 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02543}02543         \textcolor{keywordflow}{if} (chunklen > 0 \&\&}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02544}02544             (!(chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}}) || !(chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} == 0))) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02545}02545                 \textcolor{comment}{/* we should use intermediate RX buffer  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02546}02546                 \textcolor{keywordflow}{if} (chunk-\/>\mbox{\hyperlink{structuath__chunk_ad2bf0dbbb77671f831af7fc593824854}{seqnum}} == 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02547}02547                         \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02548}02548                 \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_ae395972385a333583ff60fbc797ab7b3}{sc\_intrx\_len}} + \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}}) +}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02549}02549                     chunklen) > \mbox{\hyperlink{if__uathvar_8h_ae81a003e157c9d0999efb181291dce03}{UATH\_MAX\_INTRX\_SIZE}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02550}02550                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_invalidlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02551}02551                         counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02552}02552                         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02553}02553                                 m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02554}02554                         \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02555}02555                         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02556}02556                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02557}02557 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02558}02558                 m-\/>m\_len = chunklen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02559}02559                 m-\/>m\_data += \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02560}02560 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02561}02561                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02562}02562                         sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} = m;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02563}02563                         sc-\/>\mbox{\hyperlink{structuath__softc_a8c5acf091ff4a8f32116cbb25ae8cb96}{sc\_intrx\_tail}} = m;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02564}02564                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02565}02565                         m-\/>m\_flags \&= \string~M\_PKTHDR;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02566}02566                         sc-\/>\mbox{\hyperlink{structuath__softc_a8c5acf091ff4a8f32116cbb25ae8cb96}{sc\_intrx\_tail}}-\/>m\_next = m;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02567}02567                         sc-\/>\mbox{\hyperlink{structuath__softc_a8c5acf091ff4a8f32116cbb25ae8cb96}{sc\_intrx\_tail}} = m;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02568}02568                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02569}02569         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02570}02570         sc-\/>\mbox{\hyperlink{structuath__softc_ae395972385a333583ff60fbc797ab7b3}{sc\_intrx\_len}} += chunklen;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02571}02571 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02572}02572         mnew = m\_getcl(M\_NOWAIT, MT\_DATA, M\_PKTHDR);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02573}02573         \textcolor{keywordflow}{if} (mnew == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02574}02574                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RECV | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02575}02575                     \textcolor{stringliteral}{"{}\%s: can't get new mbuf, drop frame\(\backslash\)n"{}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02576}02576                 counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02577}02577                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02578}02578                         m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02579}02579                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02580}02580                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02581}02581         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02582}02582 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02583}02583         data-\/>m = mnew;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02584}02584         data-\/>buf = mtod(mnew, uint8\_t *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02585}02585 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02586}02586         \textcolor{comment}{/* if the frame is not final continue the transfer  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02587}02587         \textcolor{keywordflow}{if} (!(chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_affcc2aa23cd9adab337021c0f48ba921}{UATH\_CFLAGS\_FINAL}})) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02588}02588                 sc-\/>\mbox{\hyperlink{structuath__softc_a9e27b2f743d68eefe7136ffb2847a9fa}{sc\_intrx\_nextnum}}++;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02589}02589                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02590}02590                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02591}02591         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02592}02592 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02593}02593         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02594}02594 \textcolor{comment}{         * if the frame is not set UATH\_CFLAGS\_RXMSG, then rx descriptor is}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02595}02595 \textcolor{comment}{         * located at the end, 32-\/bit aligned}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02596}02596 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02597}02597         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} = (chunk-\/>\mbox{\hyperlink{structuath__chunk_aabb42629ed811898e4fbba6694cf7ad9}{flags}} \& \mbox{\hyperlink{if__uathreg_8h_aa916241d1e8ad5a67ec1eebbea4cc050}{UATH\_CFLAGS\_RXMSG}}) ?}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02598}02598                 (\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}} *)(chunk + 1) :}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02599}02599                 (\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}} *)(((uint8\_t *)chunk) + }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02600}02600                     \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}}) + be16toh(chunk-\/>\mbox{\hyperlink{structuath__chunk_a402b2218631f40014edcb31c79edebce}{length}}) -\/}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02601}02601                     sizeof(struct \mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}}));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02602}02602         \textcolor{keywordflow}{if} ((uint8\_t *)chunk + actlen -\/ \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}}) <}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02603}02603             (uint8\_t *)\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02604}02604                 device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02605}02605                     \textcolor{stringliteral}{"{}\%s: wrong Rx descriptor pointer "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02606}02606                     \textcolor{stringliteral}{"{}(desc \%p chunk \%p actlen \%d)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02607}02607                     \_\_func\_\_, \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}, chunk, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02608}02608                 counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02609}02609                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02610}02610                         m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02611}02611                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02612}02612                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02613}02613         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02614}02614 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02615}02615         *pdesc = \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02616}02616 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02617}02617         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RECV | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02618}02618             \textcolor{stringliteral}{"{}\%s: frame len \%u code \%u status \%u rate \%u antenna \%u "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02619}02619             \textcolor{stringliteral}{"{}rssi \%d channel \%u phyerror \%u connix \%u decrypterror \%u "{}}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02620}02620             \textcolor{stringliteral}{"{}keycachemiss \%u\(\backslash\)n"{}}, \_\_func\_\_, be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>framelen)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02621}02621             , be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>code), be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>status), be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>rate)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02622}02622             , be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>antenna), be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>rssi), be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>channel)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02623}02623             , be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>phyerror), be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>connix)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02624}02624             , be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>decrypterror), be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>keycachemiss));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02625}02625 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02626}02626         \textcolor{keywordflow}{if} (be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>len) > MCLBYTES) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02627}02627                 \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(sc, UATH\_DEBUG\_RECV | UATH\_DEBUG\_RECV\_ALL,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02628}02628                     \textcolor{stringliteral}{"{}\%s: bad descriptor (len=\%d)\(\backslash\)n"{}}, \_\_func\_\_,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02629}02629                     be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>len));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02630}02630                 counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02631}02631                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_toobigrxpkt);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02632}02632                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02633}02633                         m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02634}02634                 \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02635}02635                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02636}02636         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02637}02637 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02638}02638         \mbox{\hyperlink{if__uath_8c_a63fef81187c5f75fabae116b23c296e9}{uath\_update\_rxstat}}(sc, be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>status));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02639}02639 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02640}02640         \textcolor{comment}{/* finalize mbuf */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02641}02641         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02642}02642                 uint32\_t \mbox{\hyperlink{structuath__rx__desc_a343a5b108ee9e9520e27b36e9dca6f81}{framelen}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02643}02643 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02644}02644                 \textcolor{keywordflow}{if} (be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>framelen) < \mbox{\hyperlink{if__uathreg_8h_afbcab3352d8b19a4b9be6fdcc8590b29}{UATH\_RX\_DUMMYSIZE}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02645}02645                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02646}02646                             \textcolor{stringliteral}{"{}\%s: framelen too small (\%u)\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02647}02647                             \_\_func\_\_, be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>framelen));}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02648}02648                         counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02649}02649                         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02650}02650                                 m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02651}02651                         \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02652}02652                         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02653}02653                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02654}02654 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02655}02655                 \mbox{\hyperlink{structuath__rx__desc_a343a5b108ee9e9520e27b36e9dca6f81}{framelen}} = be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>framelen) -\/ \mbox{\hyperlink{if__uathreg_8h_afbcab3352d8b19a4b9be6fdcc8590b29}{UATH\_RX\_DUMMYSIZE}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02656}02656                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{structuath__rx__desc_a343a5b108ee9e9520e27b36e9dca6f81}{framelen}} > actlen -\/ \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuath__chunk}{uath\_chunk}}) ||}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02657}02657                     \mbox{\hyperlink{structuath__rx__desc_a343a5b108ee9e9520e27b36e9dca6f81}{framelen}} < \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} ieee80211\_frame\_ack)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02658}02658                         device\_printf(sc-\/>\mbox{\hyperlink{structuath__softc_abf1d73aabdbb09e2959549f5868cf003}{sc\_dev}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02659}02659                             \textcolor{stringliteral}{"{}\%s: wrong frame length (\%u, actlen \%d)!\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02660}02660                             \_\_func\_\_, \mbox{\hyperlink{structuath__rx__desc_a343a5b108ee9e9520e27b36e9dca6f81}{framelen}}, actlen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02661}02661                         counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02662}02662                         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}} != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02663}02663                                 m\_freem(sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02664}02664                         \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02665}02665                         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02666}02666                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02667}02667 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02668}02668                 m-\/>m\_pkthdr.len = m-\/>m\_len = \mbox{\hyperlink{structuath__rx__desc_a343a5b108ee9e9520e27b36e9dca6f81}{framelen}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02669}02669                 m-\/>m\_data += \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__chunk}{uath\_chunk}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02670}02670         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02671}02671                 mp = sc-\/>\mbox{\hyperlink{structuath__softc_a4691c4875c05e72afdc82fd26ffe8f36}{sc\_intrx\_head}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02672}02672                 mp-\/>m\_flags |= M\_PKTHDR;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02673}02673                 mp-\/>m\_pkthdr.len = sc-\/>\mbox{\hyperlink{structuath__softc_ae395972385a333583ff60fbc797ab7b3}{sc\_intrx\_len}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02674}02674                 m = mp;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02675}02675         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02676}02676 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02677}02677         \textcolor{comment}{/* there are a lot more fields in the RX descriptor */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02678}02678         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) == 0 \&\&}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02679}02679             ieee80211\_radiotap\_active(ic)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02680}02680                 \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__rx__radiotap__header}{uath\_rx\_radiotap\_header}} *tap = \&sc-\/>\mbox{\hyperlink{structuath__softc_adb78b8ccc2c957d7d725fcb6d2719b09}{sc\_rxtap}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02681}02681                 uint32\_t tsf\_hi = be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>tstamp\_high);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02682}02682                 uint32\_t tsf\_lo = be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>tstamp\_low);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02683}02683 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02684}02684                 \textcolor{comment}{/* XXX only get low order 24bits of tsf from h/w */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02685}02685                 tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_a40f5f2525aa0489d16c927e91fc34e44}{wr\_tsf}} = htole64(((uint64\_t)tsf\_hi << 32) | tsf\_lo);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02686}02686                 tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_a961a5020f65f15fc06201e7577d5046a}{wr\_flags}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02687}02687                 \textcolor{keywordflow}{if} (be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>status) == \mbox{\hyperlink{if__uathreg_8h_a9dc3f06db67b9ceb6b7aff190a6854e0}{UATH\_STATUS\_CRC\_ERR}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02688}02688                         tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_a961a5020f65f15fc06201e7577d5046a}{wr\_flags}} |= IEEE80211\_RADIOTAP\_F\_BADFCS;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02689}02689                 \textcolor{comment}{/* XXX map other status to BADFCS? */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02690}02690                 \textcolor{comment}{/* XXX ath h/w rate code, need to map */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02691}02691                 tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_add6d7dc5d68887a81cb4a1e0eb7d8f9c}{wr\_rate}} = be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>rate);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02692}02692                 tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_a8de092b2ed5153ac1caa6a993d3945c5}{wr\_antenna}} = be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>antenna);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02693}02693                 tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_a7232d761c966dc3a6ef0dbaeaf5cf7b1}{wr\_antsignal}} = -\/95 + be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>rssi);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02694}02694                 tap-\/>\mbox{\hyperlink{structuath__rx__radiotap__header_acb316be6c2f4b931ae876248f2e47800}{wr\_antnoise}} = -\/95;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02695}02695         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02696}02696 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02697}02697         \mbox{\hyperlink{if__uathvar_8h_a19838d5e7e101d432e31ecb17ade4eb5}{UATH\_RESET\_INTRX}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02698}02698 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02699}02699         \textcolor{keywordflow}{return} (m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02700}02700 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02701}02701 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02702}02702 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02703}\mbox{\hyperlink{if__uath_8c_af30357ac7f1acaccb435cddd3a9e4664}{02703}} \mbox{\hyperlink{if__uath_8c_a8e22fe92dbabb87269dbf06ec28a5d0b}{uath\_bulk\_rx\_callback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02704}02704 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02705}02705         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02706}02706         \textcolor{keyword}{struct }ieee80211com *ic = \&sc-\/>\mbox{\hyperlink{structuath__softc_a0ad70a7ec5e30b06c6ea34f8361026cf}{sc\_ic}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02707}02707         \textcolor{keyword}{struct }ieee80211\_frame *wh;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02708}02708         \textcolor{keyword}{struct }ieee80211\_node *ni;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02709}02709         \textcolor{keyword}{struct }epoch\_tracker et;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02710}02710         \textcolor{keyword}{struct }mbuf *m = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02711}02711         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *data;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02712}02712         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__rx__desc}{uath\_rx\_desc}} *\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02713}02713         int8\_t nf;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02714}02714 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02715}02715         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02716}02716 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02717}02717         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02718}02718         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02719}02719                 data = STAILQ\_FIRST(\&sc-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02720}02720                 \textcolor{keywordflow}{if} (data == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02721}02721                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02722}02722                 STAILQ\_REMOVE\_HEAD(\&sc-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02723}02723                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(sc, st\_rx\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02724}02724                 m = \mbox{\hyperlink{if__uath_8c_aa5e3f6c00135ced80ac7ba8d0877c205}{uath\_data\_rxeof}}(xfer, data, \&\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02725}02725                 STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02726}02726                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_rx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02727}02727                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02728}02728         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02729}02729 setup:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02730}02730                 data = STAILQ\_FIRST(\&sc-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02731}02731                 \textcolor{keywordflow}{if} (data == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02732}02732                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02733}02733                 STAILQ\_REMOVE\_HEAD(\&sc-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02734}02734                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(sc, st\_rx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02735}02735                 STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02736}02736                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_rx\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02737}02737                 \mbox{\hyperlink{usb__transfer_8c_a30d239cbfe3c02ec7da6e6dfe5055762}{usbd\_xfer\_set\_frame\_data}}(xfer, 0, data-\/>buf, MCLBYTES);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02738}02738                 \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02739}02739 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02740}02740                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02741}02741 \textcolor{comment}{                 * To avoid LOR we should unlock our private mutex here to call}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02742}02742 \textcolor{comment}{                 * ieee80211\_input() because here is at the end of a USB}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02743}02743 \textcolor{comment}{                 * callback and safe to unlock.}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02744}02744 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02745}02745                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02746}02746                         \textcolor{keywordflow}{if} (m != NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02747}02747                                 m\_freem(m);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02748}02748                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02749}02749                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02750}02750                 \mbox{\hyperlink{if__uathvar_8h_a43eda56e859546a47fd485fbc7ba7b28}{UATH\_UNLOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02751}02751                 \textcolor{keywordflow}{if} (m != NULL \&\& \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02752}02752                         wh = mtod(m, \textcolor{keyword}{struct} ieee80211\_frame *);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02753}02753                         ni = ieee80211\_find\_rxnode(ic,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02754}02754                             (\textcolor{keyword}{struct} ieee80211\_frame\_min *)wh);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02755}02755                         nf = -\/95;       \textcolor{comment}{/* XXX */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02756}02756                         NET\_EPOCH\_ENTER(et);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02757}02757                         \textcolor{keywordflow}{if} (ni != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02758}02758                                 (void) ieee80211\_input(ni, m,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02759}02759                                     (\textcolor{keywordtype}{int})be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>rssi), nf);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02760}02760                                 \textcolor{comment}{/* node is no longer needed */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02761}02761                                 ieee80211\_free\_node(ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02762}02762                         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02763}02763                                 (\textcolor{keywordtype}{void}) ieee80211\_input\_all(ic, m,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02764}02764                                     (\textcolor{keywordtype}{int})be32toh(\mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}}-\/>rssi), nf);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02765}02765                         NET\_EPOCH\_EXIT(et);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02766}02766                         m = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02767}02767                         \mbox{\hyperlink{usb__device_8h_ab3a00cd7fdc532cb4cd4d59733b440bf}{desc}} = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02768}02768                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02769}02769                 \mbox{\hyperlink{if__uathvar_8h_a237a3c36552e37635106eac58684f9b2}{UATH\_LOCK}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02770}02770                 \mbox{\hyperlink{if__uath_8c_a928c054b6eb1aff382543840b9f7ebf6}{uath\_start}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02771}02771                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02772}02772         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02773}02773                 \textcolor{comment}{/* needs it to the inactive queue due to a error.  */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02774}02774                 data = STAILQ\_FIRST(\&sc-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02775}02775                 \textcolor{keywordflow}{if} (data != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02776}02776                         STAILQ\_REMOVE\_HEAD(\&sc-\/>\mbox{\hyperlink{structuath__softc_aa739ddb5dbdcfbaf56d33fee393c6b4f}{sc\_rx\_active}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02777}02777                         \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(sc, st\_rx\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02778}02778                         STAILQ\_INSERT\_TAIL(\&sc-\/>\mbox{\hyperlink{structuath__softc_a7e3c8ec0ac82ab331c0877876bba1c54}{sc\_rx\_inactive}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02779}02779                         \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(sc, st\_rx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02780}02780                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02781}02781                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02782}02782                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02783}02783                         counter\_u64\_add(ic-\/>ic\_ierrors, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02784}02784                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02785}02785                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02786}02786                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02787}02787         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02788}02788 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02789}02789 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02790}02790 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02791}\mbox{\hyperlink{if__uath_8c_aac6a1c2999e999b1598c07158d4bd5c8}{02791}} \mbox{\hyperlink{if__uath_8c_aac6a1c2999e999b1598c07158d4bd5c8}{uath\_data\_txeof}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keyword}{struct} \mbox{\hyperlink{structuath__data}{uath\_data}} *data)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02792}02792 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02793}02793         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02794}02794 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02795}02795         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(sc);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02796}02796 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02797}02797         \textcolor{keywordflow}{if} (data-\/>m) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02798}02798                 \textcolor{comment}{/* XXX status? */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02799}02799                 ieee80211\_tx\_complete(data-\/>ni, data-\/>m, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02800}02800                 data-\/>m = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02801}02801                 data-\/>ni = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02802}02802         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02803}02803         sc-\/>\mbox{\hyperlink{structuath__softc_ab2621df88fc5c5da06455b00b9aa1b37}{sc\_tx\_timer}} = 0;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02804}02804 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02805}02805 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02806}02806 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02807}\mbox{\hyperlink{if__uath_8c_a97ab0598c3d5bfc1deb822bb141e1b53}{02807}} \mbox{\hyperlink{if__uath_8c_a7c3ad5fcfe8abb6f7e9e10f10fde33b7}{uath\_bulk\_tx\_callback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02808}02808 \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02809}02809         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02810}02810         \textcolor{keyword}{struct }\mbox{\hyperlink{structuath__data}{uath\_data}} *data;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02811}02811 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02812}02812         \mbox{\hyperlink{if__uathvar_8h_a642d2bb96d9cff6f9dbbe75cf9da0f9b}{UATH\_ASSERT\_LOCKED}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02813}02813 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02814}02814         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02815}02815         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02816}02816                 data = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_adf1120e88bdde7131e3b3096afc8987b}{sc\_tx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02817}02817                 \textcolor{keywordflow}{if} (data == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02818}02818                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02819}02819                 STAILQ\_REMOVE\_HEAD(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_adf1120e88bdde7131e3b3096afc8987b}{sc\_tx\_active}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02820}02820                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02821}02821                 \mbox{\hyperlink{if__uath_8c_aac6a1c2999e999b1598c07158d4bd5c8}{uath\_data\_txeof}}(xfer, data);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02822}02822                 STAILQ\_INSERT\_TAIL(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_ab2f86d49fca1e8c68133648ce111eeea}{sc\_tx\_inactive}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02823}02823                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_inactive);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02824}02824                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02825}02825         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02826}02826 setup:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02827}02827                 data = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_af01f24be953d79836b8d67e11daaa770}{sc\_tx\_pending}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02828}02828                 \textcolor{keywordflow}{if} (data == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02829}02829                         \mbox{\hyperlink{if__uath_8c_a8f3cb9c69cf684badf6c665802ffd1a3}{DPRINTF}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, UATH\_DEBUG\_XMIT, \textcolor{stringliteral}{"{}\%s: empty pending queue\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02830}02830                             \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02831}02831                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02832}02832                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02833}02833                 STAILQ\_REMOVE\_HEAD(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_af01f24be953d79836b8d67e11daaa770}{sc\_tx\_pending}}, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02834}02834                 \mbox{\hyperlink{if__uathvar_8h_a873194b1d385a6f90233210e05b50972}{UATH\_STAT\_DEC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_pending);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02835}02835                 STAILQ\_INSERT\_TAIL(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_adf1120e88bdde7131e3b3096afc8987b}{sc\_tx\_active}}, data, \mbox{\hyperlink{ehci_8h_a37d1073c5e1d321bdce7cddeaf65a02f}{next}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02836}02836                 \mbox{\hyperlink{if__uathvar_8h_a10d287ee8bb7bb61866bdc011d9b9b18}{UATH\_STAT\_INC}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}, st\_tx\_active);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02837}02837 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02838}02838                 \mbox{\hyperlink{usb__transfer_8c_a30d239cbfe3c02ec7da6e6dfe5055762}{usbd\_xfer\_set\_frame\_data}}(xfer, 0, data-\/>buf, data-\/>buflen);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02839}02839                 \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02840}02840 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02841}02841                 \mbox{\hyperlink{if__uath_8c_a928c054b6eb1aff382543840b9f7ebf6}{uath\_start}}(\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02842}02842                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02843}02843         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02844}02844                 data = STAILQ\_FIRST(\&\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_adf1120e88bdde7131e3b3096afc8987b}{sc\_tx\_active}});}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02845}02845                 \textcolor{keywordflow}{if} (data == NULL)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02846}02846                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02847}02847                 \textcolor{keywordflow}{if} (data-\/>ni != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02848}02848                         if\_inc\_counter(data-\/>ni-\/>ni\_vap-\/>iv\_ifp,}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02849}02849                             IFCOUNTER\_OERRORS, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02850}02850                         \textcolor{keywordflow}{if} ((\mbox{\hyperlink{structuath__data_a6aa82f3c486ae13606b2c3c396b4d6c5}{sc}}-\/>\mbox{\hyperlink{structuath__softc_a037400aeb9b29bbd71ff46ac811ec211}{sc\_flags}} \& \mbox{\hyperlink{if__uathvar_8h_a582b1257a543b95d39fe37bb7be9c7c6}{UATH\_FLAG\_INVALID}}) == 0)}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02851}02851                                 ieee80211\_free\_node(data-\/>ni);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02852}02852                         data-\/>ni = NULL;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02853}02853                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02854}02854                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02855}02855                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02856}02856                         \textcolor{keywordflow}{goto} setup;}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02857}02857                 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02858}02858                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02859}02859         \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02860}02860 \}}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02861}02861 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02862}\mbox{\hyperlink{if__uath_8c_aee9e3a4a2b2fccd8d52c193b4ee45f32}{02862}} \textcolor{keyword}{static} device\_method\_t \mbox{\hyperlink{if__uath_8c_aee9e3a4a2b2fccd8d52c193b4ee45f32}{uath\_methods}}[] = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02863}02863         DEVMETHOD(device\_probe, \mbox{\hyperlink{if__uath_8c_a621c213fd47c538420328a24d7a10b35}{uath\_match}}),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02864}02864         DEVMETHOD(device\_attach, \mbox{\hyperlink{if__uath_8c_a8e691fb8927448019c9f0001dd0ffee5}{uath\_attach}}),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02865}02865         DEVMETHOD(device\_detach, \mbox{\hyperlink{if__uath_8c_a41c041716d7da2ffc4a6801a31189f97}{uath\_detach}}),}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02866}02866         DEVMETHOD\_END}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02867}02867 \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02868}\mbox{\hyperlink{if__uath_8c_a47396086a65608ea1b3acddcc33174c5}{02868}} \textcolor{keyword}{static} driver\_t \mbox{\hyperlink{if__uath_8c_a47396086a65608ea1b3acddcc33174c5}{uath\_driver}} = \{}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02869}02869         .name = \textcolor{stringliteral}{"{}uath"{}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02870}02870         .methods = \mbox{\hyperlink{if__uath_8c_aee9e3a4a2b2fccd8d52c193b4ee45f32}{uath\_methods}},}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02871}02871         .size = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuath__softc}{uath\_softc}})}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02872}02872 \};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02873}\mbox{\hyperlink{if__uath_8c_a9abd0f12cdd1c9edfce8c4430dd22ea1}{02873}} \textcolor{keyword}{static} devclass\_t \mbox{\hyperlink{if__uath_8c_a9abd0f12cdd1c9edfce8c4430dd22ea1}{uath\_devclass}};}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02874}02874 }
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02875}\mbox{\hyperlink{if__uath_8c_a74817f6792abdaa7e93ecfafdcf5b503}{02875}} \mbox{\hyperlink{if__uath_8c_a74817f6792abdaa7e93ecfafdcf5b503}{DRIVER\_MODULE}}(uath, uhub, \mbox{\hyperlink{if__uath_8c_a47396086a65608ea1b3acddcc33174c5}{uath\_driver}}, \mbox{\hyperlink{if__uath_8c_a9abd0f12cdd1c9edfce8c4430dd22ea1}{uath\_devclass}}, NULL, 0);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02876}\mbox{\hyperlink{if__uath_8c_a0120465ce04745d5778b53324246b104}{02876}} \mbox{\hyperlink{if__uath_8c_a0120465ce04745d5778b53324246b104}{MODULE\_DEPEND}}(uath, wlan, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02877}\mbox{\hyperlink{if__uath_8c_ae21f7110ae74df206f75fba716f6b8d4}{02877}} \mbox{\hyperlink{if__uath_8c_a0120465ce04745d5778b53324246b104}{MODULE\_DEPEND}}(uath, \mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02878}\mbox{\hyperlink{if__uath_8c_a332b7f33ee778dbbcf9dd8312395beb2}{02878}} \mbox{\hyperlink{if__uath_8c_a332b7f33ee778dbbcf9dd8312395beb2}{MODULE\_VERSION}}(uath, 1);}
\DoxyCodeLine{\Hypertarget{if__uath_8c_source_l02879}\mbox{\hyperlink{if__uath_8c_a2638b63007bb4a0d7abb0793e0d2f0d8}{02879}} \mbox{\hyperlink{if__uath_8c_a2638b63007bb4a0d7abb0793e0d2f0d8}{USB\_PNP\_HOST\_INFO}}(\mbox{\hyperlink{if__uath_8c_ad30f2bc1fcdb14c5548f2457377142c4}{uath\_devs}});}

\end{DoxyCode}
