\hypertarget{uark_8c_source}{}\doxysection{uark.\+c}
\label{uark_8c_source}\index{dev/usb/serial/uark.c@{dev/usb/serial/uark.c}}
\mbox{\hyperlink{uark_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00001}00001 \textcolor{comment}{/*      \$OpenBSD: uark.c,v 1.1 2006/08/14 08:30:22 jsg Exp \$    */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00002}00002 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00003}00003 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2006 Jonathan Gray <jsg@openbsd.org>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00005}00005 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00006}00006 \textcolor{comment}{ * Permission to use, copy, modify, and distribute this software for any}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00007}00007 \textcolor{comment}{ * purpose with or without fee is hereby granted, provided that the above}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00008}00008 \textcolor{comment}{ * copyright notice and this permission notice appear in all copies.}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00009}00009 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00010}00010 \textcolor{comment}{ * THE SOFTWARE IS PROVIDED "{}AS IS"{} AND THE AUTHOR DISCLAIMS ALL WARRANTIES}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00011}00011 \textcolor{comment}{ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00012}00012 \textcolor{comment}{ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00013}00013 \textcolor{comment}{ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00014}00014 \textcolor{comment}{ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00015}00015 \textcolor{comment}{ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00016}00016 \textcolor{comment}{ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00017}00017 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00018}00018 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00019}00019 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00020}00020 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00021}00021 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00022}00022 \textcolor{comment}{ * NOTE: all function names beginning like "{}uark\_cfg\_"{} can only}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00023}00023 \textcolor{comment}{ * be called from within the config thread function !}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00024}00024 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00025}00025 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00026}00026 \textcolor{preprocessor}{\#include <sys/stdint.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00027}00027 \textcolor{preprocessor}{\#include <sys/stddef.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00028}00028 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00029}00029 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00030}00030 \textcolor{preprocessor}{\#include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00031}00031 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00032}00032 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00033}00033 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/condvar.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/sx.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/unistd.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/callout.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/priv.h>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb_8h}{dev/usb/usb.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi_8h}{dev/usb/usbdi.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi__util_8h}{dev/usb/usbdi\_util.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbhid_8h}{dev/usb/usbhid.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00049}00049 \textcolor{preprocessor}{\#include "{}usbdevs.h"{}}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00050}00050 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00051}\mbox{\hyperlink{uark_8c_a927dd6f59caf10a2991dfb564bcbb1e1}{00051}} \textcolor{preprocessor}{\#define USB\_DEBUG\_VAR usb\_debug}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__debug_8h}{dev/usb/usb\_debug.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__process_8h}{dev/usb/usb\_process.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00054}00054 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__serial_8h}{dev/usb/serial/usb\_serial.h}}>}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00056}00056 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00057}\mbox{\hyperlink{uark_8c_a28a06100054b230e7139549e9af23e63}{00057}} \textcolor{preprocessor}{\#define UARK\_BUF\_SIZE           1024    }\textcolor{comment}{/* bytes */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00059}\mbox{\hyperlink{uark_8c_a59c15dcc7eb0b8cfe875efb80e3e9d88}{00059}} \textcolor{preprocessor}{\#define UARK\_SET\_DATA\_BITS(x)   ((x) -\/ 5)}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00061}\mbox{\hyperlink{uark_8c_a64f19a78ef50ece0ce86c13799a2cfb1}{00061}} \textcolor{preprocessor}{\#define UARK\_PARITY\_NONE        0x00}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00062}\mbox{\hyperlink{uark_8c_a3948fc6100c8c9ba0d0ccd7e511111fe}{00062}} \textcolor{preprocessor}{\#define UARK\_PARITY\_ODD         0x08}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00063}\mbox{\hyperlink{uark_8c_aea9747b9adf121946ab84c94baf58c5d}{00063}} \textcolor{preprocessor}{\#define UARK\_PARITY\_EVEN        0x18}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00065}\mbox{\hyperlink{uark_8c_a18ab3996117c87b52e3412c91757ede5}{00065}} \textcolor{preprocessor}{\#define UARK\_STOP\_BITS\_1        0x00}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00066}\mbox{\hyperlink{uark_8c_a9dbaed8f6ca3eb23ad5bb2ae9a8ac681}{00066}} \textcolor{preprocessor}{\#define UARK\_STOP\_BITS\_2        0x04}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00067}00067 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00068}\mbox{\hyperlink{uark_8c_afdf14dafc05d2ae2662efc8d4e39c1c6}{00068}} \textcolor{preprocessor}{\#define UARK\_BAUD\_REF           3000000}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00070}\mbox{\hyperlink{uark_8c_a8d46cdccd861081b20dcc61657ba7653}{00070}} \textcolor{preprocessor}{\#define UARK\_WRITE              0x40}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00071}\mbox{\hyperlink{uark_8c_ad1e5feca10cbbbccc034890d8813df2e}{00071}} \textcolor{preprocessor}{\#define UARK\_READ               0xc0}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00073}\mbox{\hyperlink{uark_8c_a92f2dbfed16833977602393cb2e0ba1a}{00073}} \textcolor{preprocessor}{\#define UARK\_REQUEST            0xfe}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00074}00074 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00075}\mbox{\hyperlink{uark_8c_a74f3e441c9902a5b06dfbed1e5b9be8f}{00075}} \textcolor{preprocessor}{\#define UARK\_CONFIG\_INDEX       0}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00076}\mbox{\hyperlink{uark_8c_aeb902ca27e61add0addd29836fde268a}{00076}} \textcolor{preprocessor}{\#define UARK\_IFACE\_INDEX        0}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00078}00078 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00079}\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a8953a5dd3515740a1752552d5d909cca}{00079}}         \mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a8953a5dd3515740a1752552d5d909cca}{UARK\_BULK\_DT\_WR}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00080}\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a039f75dc1b3bd615a007f78ce56fe9f7}{00080}}         \mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a039f75dc1b3bd615a007f78ce56fe9f7}{UARK\_BULK\_DT\_RD}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00081}\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{00081}}         \mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{UARK\_N\_TRANSFER}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00082}00082 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00083}00083 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00084}\mbox{\hyperlink{structuark__softc}{00084}} \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00085}\mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{00085}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structucom__super__softc}{ucom\_super\_softc}} \mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{sc\_super\_ucom}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00086}\mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{00086}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structucom__softc}{ucom\_softc}} \mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{sc\_ucom}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00088}\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{00088}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{UARK\_N\_TRANSFER}}];}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00089}\mbox{\hyperlink{structuark__softc_a161ed360368195ebb7e3762382dc6ffc}{00089}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}} *\mbox{\hyperlink{structuark__softc_a161ed360368195ebb7e3762382dc6ffc}{sc\_udev}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00090}\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{00090}}         \textcolor{keyword}{struct }mtx \mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00091}00091 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00092}\mbox{\hyperlink{structuark__softc_a177b1a948063e142f201b62ed4a7e33e}{00092}}         uint8\_t \mbox{\hyperlink{structuark__softc_a177b1a948063e142f201b62ed4a7e33e}{sc\_msr}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00093}\mbox{\hyperlink{structuark__softc_a18806e59637bb1d0309154a9021a8138}{00093}}         uint8\_t \mbox{\hyperlink{structuark__softc_a18806e59637bb1d0309154a9021a8138}{sc\_lsr}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00094}00094 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00096}00096 \textcolor{comment}{/* prototypes */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00097}00097 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00098}\mbox{\hyperlink{uark_8c_a929235715e87544020edf66fbd3d0acf}{00098}} \textcolor{keyword}{static} device\_probe\_t \mbox{\hyperlink{uark_8c_a929235715e87544020edf66fbd3d0acf}{uark\_probe}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00099}\mbox{\hyperlink{uark_8c_a9adcba4fbff14e1ebb1ea8c34c8e3839}{00099}} \textcolor{keyword}{static} device\_attach\_t \mbox{\hyperlink{uark_8c_a9adcba4fbff14e1ebb1ea8c34c8e3839}{uark\_attach}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00100}\mbox{\hyperlink{uark_8c_a3910ddfbccd7283e45bfa253f9c0a4cd}{00100}} \textcolor{keyword}{static} device\_detach\_t \mbox{\hyperlink{uark_8c_a3910ddfbccd7283e45bfa253f9c0a4cd}{uark\_detach}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00101}00101 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{uark_8c_ac8d2fa527274b0274b2ea1e83dbd9992}{uark\_free\_softc}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuark__softc}{uark\_softc}} *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00102}00102 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00103}\mbox{\hyperlink{uark_8c_a3ff971be8a5a0c8c532979ca4975b115}{00103}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{uark_8c_a3ff971be8a5a0c8c532979ca4975b115}{uark\_bulk\_write\_callback}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00104}\mbox{\hyperlink{uark_8c_a46db3b84620c547c23c8e88e1f12f2ab}{00104}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{uark_8c_a46db3b84620c547c23c8e88e1f12f2ab}{uark\_bulk\_read\_callback}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00105}00105 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00106}00106 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_a9cea3cccfbffe4740251de4b3f78c6d9}{uark\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00107}00107 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_a3a4a5a4bbd8673cd370321d76e357f73}{uark\_start\_read}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00108}00108 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_af86134c9ec5d7af0d112ab06bca083b9}{uark\_stop\_read}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00109}00109 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_a70f487487972d67a33cf1a44d7c991d5}{uark\_start\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00110}00110 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_a1fbe9dd181370c65084563cc3822b33d}{uark\_stop\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00111}00111 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{uark_8c_af24a27699292c86a9f05cb162bcb3d0f}{uark\_pre\_param}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *, \textcolor{keyword}{struct} termios *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00112}00112 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_a064f5373ca4b187d1fd34a3300317f41}{uark\_cfg\_param}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *, \textcolor{keyword}{struct} termios *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00113}00113 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_ad84ea1753b594377a397d36ebaf52c41}{uark\_cfg\_get\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *, uint8\_t *,}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00114}00114                     uint8\_t *);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00115}00115 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_ad9b54f32e0126bfff1223b0fdc20249c}{uark\_cfg\_set\_break}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *, uint8\_t);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00116}00116 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuark__softc}{uark\_softc}} *, uint16\_t, uint16\_t);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00117}00117 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{uark_8c_aad3d8b9444021cad89537dcf086de1cf}{uark\_poll}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00119}00119 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__config}{usb\_config}}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00120}\mbox{\hyperlink{uark_8c_a084fa9e51468822c9100095836fb91a9}{00120}}         \mbox{\hyperlink{uark_8c_a084fa9e51468822c9100095836fb91a9}{uark\_xfer\_config}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{UARK\_N\_TRANSFER}}] = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00121}00121         [\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a8953a5dd3515740a1752552d5d909cca}{UARK\_BULK\_DT\_WR}}] = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00122}00122                 .\mbox{\hyperlink{structusb__config_a5bd5d569870291a54d9bed8377ed8b10}{type}} = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00123}00123                 .endpoint = \mbox{\hyperlink{usb_8h_a1e8d1f402536e634471569b83f603197}{UE\_ADDR\_ANY}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00124}00124                 .direction = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00125}00125                 .bufsize = \mbox{\hyperlink{uark_8c_a28a06100054b230e7139549e9af23e63}{UARK\_BUF\_SIZE}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00126}00126                 .flags = \{.pipe\_bof = 1,.force\_short\_xfer = 1,\},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00127}00127                 .callback = \&\mbox{\hyperlink{uark_8c_a3ff971be8a5a0c8c532979ca4975b115}{uark\_bulk\_write\_callback}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00128}00128         \},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00130}00130         [\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a039f75dc1b3bd615a007f78ce56fe9f7}{UARK\_BULK\_DT\_RD}}] = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00131}00131                 .type = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00132}00132                 .endpoint = \mbox{\hyperlink{usb_8h_a1e8d1f402536e634471569b83f603197}{UE\_ADDR\_ANY}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00133}00133                 .direction = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00134}00134                 .bufsize = \mbox{\hyperlink{uark_8c_a28a06100054b230e7139549e9af23e63}{UARK\_BUF\_SIZE}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00135}00135                 .flags = \{.pipe\_bof = 1,.short\_xfer\_ok = 1,\},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00136}00136                 .callback = \&\mbox{\hyperlink{uark_8c_a46db3b84620c547c23c8e88e1f12f2ab}{uark\_bulk\_read\_callback}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00137}00137         \},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00138}00138 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00139}00139 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00140}\mbox{\hyperlink{uark_8c_a0f2c9ab00a95c700efdb5a5fbb406737}{00140}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structucom__callback}{ucom\_callback}} \mbox{\hyperlink{uark_8c_a0f2c9ab00a95c700efdb5a5fbb406737}{uark\_callback}} = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00141}00141         .\mbox{\hyperlink{structucom__callback_af543b5023679a91b3ae77ed22f2df40d}{ucom\_cfg\_get\_status}} = \&\mbox{\hyperlink{uark_8c_ad84ea1753b594377a397d36ebaf52c41}{uark\_cfg\_get\_status}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00142}00142         .ucom\_cfg\_set\_break = \&\mbox{\hyperlink{uark_8c_ad9b54f32e0126bfff1223b0fdc20249c}{uark\_cfg\_set\_break}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00143}00143         .ucom\_cfg\_param = \&\mbox{\hyperlink{uark_8c_a064f5373ca4b187d1fd34a3300317f41}{uark\_cfg\_param}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00144}00144         .ucom\_pre\_param = \&\mbox{\hyperlink{uark_8c_af24a27699292c86a9f05cb162bcb3d0f}{uark\_pre\_param}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00145}00145         .ucom\_start\_read = \&\mbox{\hyperlink{uark_8c_a3a4a5a4bbd8673cd370321d76e357f73}{uark\_start\_read}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00146}00146         .ucom\_stop\_read = \&\mbox{\hyperlink{uark_8c_af86134c9ec5d7af0d112ab06bca083b9}{uark\_stop\_read}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00147}00147         .ucom\_start\_write = \&\mbox{\hyperlink{uark_8c_a70f487487972d67a33cf1a44d7c991d5}{uark\_start\_write}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00148}00148         .ucom\_stop\_write = \&\mbox{\hyperlink{uark_8c_a1fbe9dd181370c65084563cc3822b33d}{uark\_stop\_write}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00149}00149         .ucom\_poll = \&\mbox{\hyperlink{uark_8c_aad3d8b9444021cad89537dcf086de1cf}{uark\_poll}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00150}00150         .ucom\_free = \&\mbox{\hyperlink{uark_8c_a9cea3cccfbffe4740251de4b3f78c6d9}{uark\_free}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00151}00151 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00152}00152 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00153}\mbox{\hyperlink{uark_8c_a45ca90ac64ed3b1fceb9bdda565e9790}{00153}} \textcolor{keyword}{static} device\_method\_t \mbox{\hyperlink{uark_8c_a45ca90ac64ed3b1fceb9bdda565e9790}{uark\_methods}}[] = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00154}00154         \textcolor{comment}{/* Device methods */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00155}00155         DEVMETHOD(device\_probe, \mbox{\hyperlink{uark_8c_a929235715e87544020edf66fbd3d0acf}{uark\_probe}}),}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00156}00156         DEVMETHOD(device\_attach, \mbox{\hyperlink{uark_8c_a9adcba4fbff14e1ebb1ea8c34c8e3839}{uark\_attach}}),}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00157}00157         DEVMETHOD(device\_detach, \mbox{\hyperlink{uark_8c_a3910ddfbccd7283e45bfa253f9c0a4cd}{uark\_detach}}),}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00158}00158         DEVMETHOD\_END}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00159}00159 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00160}00160 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00161}\mbox{\hyperlink{uark_8c_a46c1dc77238d9638805dba7614b7bb78}{00161}} \textcolor{keyword}{static} devclass\_t \mbox{\hyperlink{uark_8c_a46c1dc77238d9638805dba7614b7bb78}{uark\_devclass}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00162}00162 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00163}\mbox{\hyperlink{uark_8c_a50ca3c1773d92ed4903f8a4333b5b86f}{00163}} \textcolor{keyword}{static} driver\_t \mbox{\hyperlink{uark_8c_a50ca3c1773d92ed4903f8a4333b5b86f}{uark\_driver}} = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00164}00164         .name = \textcolor{stringliteral}{"{}uark"{}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00165}00165         .methods = \mbox{\hyperlink{uark_8c_a45ca90ac64ed3b1fceb9bdda565e9790}{uark\_methods}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00166}00166         .size = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}}),}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00167}00167 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00168}00168 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00169}\mbox{\hyperlink{uark_8c_a57eb6c926a72d93784a7aa68f714446d}{00169}} \textcolor{keyword}{static} \textcolor{keyword}{const} \mbox{\hyperlink{usbdi_8h_acf836fd8d6349b66a31f45420728da8d}{STRUCT\_USB\_HOST\_ID}} \mbox{\hyperlink{uark_8c_a57eb6c926a72d93784a7aa68f714446d}{uark\_devs}}[] = \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00170}00170         \{\mbox{\hyperlink{usbdi_8h_acdab3edd999014815e8baeb9b33e9071}{USB\_VPI}}(USB\_VENDOR\_ARKMICRO, USB\_PRODUCT\_ARKMICRO\_ARK3116, 0)\},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00171}00171 \};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00172}00172 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00173}\mbox{\hyperlink{uark_8c_ab3831d270678629eb57e1018bb9653b1}{00173}} \mbox{\hyperlink{uark_8c_ab3831d270678629eb57e1018bb9653b1}{DRIVER\_MODULE}}(uark, uhub, \mbox{\hyperlink{uark_8c_a50ca3c1773d92ed4903f8a4333b5b86f}{uark\_driver}}, \mbox{\hyperlink{uark_8c_a46c1dc77238d9638805dba7614b7bb78}{uark\_devclass}}, NULL, 0);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00174}\mbox{\hyperlink{uark_8c_a7ba5e5f10c0f15e4b44539c1b8ba9097}{00174}} \mbox{\hyperlink{uark_8c_a7ba5e5f10c0f15e4b44539c1b8ba9097}{MODULE\_DEPEND}}(uark, ucom, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00175}\mbox{\hyperlink{uark_8c_a5a9e77eaf25af837f65deada8403c2bc}{00175}} \mbox{\hyperlink{uark_8c_a7ba5e5f10c0f15e4b44539c1b8ba9097}{MODULE\_DEPEND}}(uark, \mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00176}\mbox{\hyperlink{uark_8c_a96969d5ca83bb96c6fcaeebd248ccd7e}{00176}} \mbox{\hyperlink{uark_8c_a96969d5ca83bb96c6fcaeebd248ccd7e}{MODULE\_VERSION}}(uark, 1);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00177}\mbox{\hyperlink{uark_8c_a510dcf968849bc2a87ac3dc814a6e6f0}{00177}} \mbox{\hyperlink{uark_8c_a510dcf968849bc2a87ac3dc814a6e6f0}{USB\_PNP\_HOST\_INFO}}(\mbox{\hyperlink{uark_8c_a57eb6c926a72d93784a7aa68f714446d}{uark\_devs}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00178}00178 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00179}00179 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00180}\mbox{\hyperlink{uark_8c_a83f70837b2f4c497d9c7f14f063551b3}{00180}} \mbox{\hyperlink{uark_8c_a929235715e87544020edf66fbd3d0acf}{uark\_probe}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00181}00181 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00182}00182         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa = device\_get\_ivars(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00184}00184         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a246691e99681281d3113d63e81b7e4f0}{usb\_mode}} != \mbox{\hyperlink{usb_8h_a9bc559812598988121896dceb483806ba1c7091216cfa9c9f4a252b0825ed32cb}{USB\_MODE\_HOST}}) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00185}00185                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00186}00186         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00187}00187         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}}.\mbox{\hyperlink{structusbd__lookup__info_a9e2af2c9a58f0df11559c7679185b0e8}{bConfigIndex}} != 0) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00188}00188                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00189}00189         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00190}00190         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}}.\mbox{\hyperlink{structusbd__lookup__info_a50a68740a4c82f1a9b999d4a7994b550}{bIfaceIndex}} != \mbox{\hyperlink{uark_8c_aeb902ca27e61add0addd29836fde268a}{UARK\_IFACE\_INDEX}}) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00191}00191                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00192}00192         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00193}00193         \textcolor{keywordflow}{return} (\mbox{\hyperlink{usb__lookup_8c_aa691ad42d532498716f358cb1c994fb2}{usbd\_lookup\_id\_by\_uaa}}(\mbox{\hyperlink{uark_8c_a57eb6c926a72d93784a7aa68f714446d}{uark\_devs}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{uark_8c_a57eb6c926a72d93784a7aa68f714446d}{uark\_devs}}), uaa));}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00194}00194 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00195}00195 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00196}00196 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00197}\mbox{\hyperlink{uark_8c_a1767fe58b4672eca4fbe220d8aa534e8}{00197}} \mbox{\hyperlink{uark_8c_a9adcba4fbff14e1ebb1ea8c34c8e3839}{uark\_attach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00198}00198 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00199}00199         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa = device\_get\_ivars(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00200}00200         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00201}00201         int32\_t \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00202}00202         uint8\_t iface\_index;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00204}00204         \mbox{\hyperlink{usb__util_8c_a2f65a197990caa1a69a16691ce4dc66a}{device\_set\_usb\_desc}}(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00205}00205         mtx\_init(\&sc-\/>\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}}, \textcolor{stringliteral}{"{}uark"{}}, NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00206}00206         \mbox{\hyperlink{usb__serial_8c_a3533648e606891c90d0267b21b3ba59e}{ucom\_ref}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{sc\_super\_ucom}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00207}00207 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00208}00208         sc-\/>\mbox{\hyperlink{structuark__softc_a161ed360368195ebb7e3762382dc6ffc}{sc\_udev}} = uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00209}00209 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00210}00210         iface\_index = \mbox{\hyperlink{uark_8c_aeb902ca27e61add0addd29836fde268a}{UARK\_IFACE\_INDEX}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00211}00211         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__transfer_8c_a7494c04fae5c5e7ef1af436308670a21}{usbd\_transfer\_setup}}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00212}00212             (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}}, \&iface\_index, sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}},}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00213}00213             \mbox{\hyperlink{uark_8c_a084fa9e51468822c9100095836fb91a9}{uark\_xfer\_config}}, \mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{UARK\_N\_TRANSFER}}, sc, \&sc-\/>\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00214}00214 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00215}00215         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00216}00216                 device\_printf(dev, \textcolor{stringliteral}{"{}allocating control USB "{}}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00217}00217                     \textcolor{stringliteral}{"{}transfers failed\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00218}00218                 \textcolor{keywordflow}{goto} detach;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00219}00219         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00220}00220         \textcolor{comment}{/* clear stall at first run */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00221}00221         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00222}00222         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a8953a5dd3515740a1752552d5d909cca}{UARK\_BULK\_DT\_WR}}]);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00223}00223         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a039f75dc1b3bd615a007f78ce56fe9f7}{UARK\_BULK\_DT\_RD}}]);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00224}00224         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00226}00226         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__serial_8c_a1a14cc63123395507acee783de212d75}{ucom\_attach}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{sc\_super\_ucom}}, \&sc-\/>\mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{sc\_ucom}}, 1, sc,}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00227}00227             \&\mbox{\hyperlink{uark_8c_a0f2c9ab00a95c700efdb5a5fbb406737}{uark\_callback}}, \&sc-\/>\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00228}00228         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00229}00229                 \mbox{\hyperlink{umass_8c_aa786fc43d4857c3ab9f2c777b4e6f9c5}{DPRINTF}}(\textcolor{stringliteral}{"{}ucom\_attach failed\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00230}00230                 \textcolor{keywordflow}{goto} detach;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00231}00231         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00232}00232         \mbox{\hyperlink{usb__serial_8c_a5fd441bb430a68061e8c933443f1d14f}{ucom\_set\_pnpinfo\_usb}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{sc\_super\_ucom}}, dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00233}00233 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00234}00234         \textcolor{keywordflow}{return} (0);                     \textcolor{comment}{/* success */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00235}00235 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00236}00236 detach:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00237}00237         \mbox{\hyperlink{uark_8c_a3910ddfbccd7283e45bfa253f9c0a4cd}{uark\_detach}}(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00238}00238         \textcolor{keywordflow}{return} (ENXIO);                 \textcolor{comment}{/* failure */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00239}00239 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00240}00240 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00241}00241 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00242}\mbox{\hyperlink{uark_8c_a27277556ef423d67d136d77402e74b2c}{00242}} \mbox{\hyperlink{uark_8c_a3910ddfbccd7283e45bfa253f9c0a4cd}{uark\_detach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00243}00243 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00244}00244         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00245}00245 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00246}00246         \mbox{\hyperlink{usb__serial_8c_abcceb7ddf05b758da5f3ada77a962ad1}{ucom\_detach}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{sc\_super\_ucom}}, \&sc-\/>\mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{sc\_ucom}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00247}00247         \mbox{\hyperlink{usb__transfer_8c_a2f5ab55bfe7f356bb7a7505ff35c9741}{usbd\_transfer\_unsetup}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}, \mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{UARK\_N\_TRANSFER}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00248}00248 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00249}00249         device\_claim\_softc(dev);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00250}00250 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00251}00251         \mbox{\hyperlink{uark_8c_ac8d2fa527274b0274b2ea1e83dbd9992}{uark\_free\_softc}}(sc);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00253}00253         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00254}00254 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00255}00255 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00256}\mbox{\hyperlink{uark_8c_a7f1ee39cb5958745cd7d1e4fbba0bc6a}{00256}} \mbox{\hyperlink{uark_8c_a7f1ee39cb5958745cd7d1e4fbba0bc6a}{UCOM\_UNLOAD\_DRAIN}}(uark);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00257}00257 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00258}00258 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00259}\mbox{\hyperlink{uark_8c_ac8d2fa527274b0274b2ea1e83dbd9992}{00259}} \mbox{\hyperlink{uark_8c_ac8d2fa527274b0274b2ea1e83dbd9992}{uark\_free\_softc}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00260}00260 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00261}00261         \textcolor{keywordflow}{if} (\mbox{\hyperlink{usb__serial_8c_a27ca652272693169923a38646505d083}{ucom\_unref}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_afff3f40dc2d083690b5c56d3f6a75078}{sc\_super\_ucom}})) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00262}00262                 mtx\_destroy(\&sc-\/>\mbox{\hyperlink{structuark__softc_a9af04cdebc543a1f1286c5f3e29de946}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00263}00263                 device\_free\_softc(sc);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00264}00264         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00265}00265 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00266}00266 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00267}00267 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00268}\mbox{\hyperlink{uark_8c_a9cea3cccfbffe4740251de4b3f78c6d9}{00268}} \mbox{\hyperlink{uark_8c_a9cea3cccfbffe4740251de4b3f78c6d9}{uark\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00269}00269 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00270}00270         \mbox{\hyperlink{uark_8c_ac8d2fa527274b0274b2ea1e83dbd9992}{uark\_free\_softc}}(ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00271}00271 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00272}00272 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00273}00273 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00274}\mbox{\hyperlink{uark_8c_ae0ffff553e36dcd1d87094ba75a085d3}{00274}} \mbox{\hyperlink{uark_8c_a3ff971be8a5a0c8c532979ca4975b115}{uark\_bulk\_write\_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{uark_8c_source_l00275}00275 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00276}00276         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00277}00277         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00278}00278         uint32\_t actlen;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00279}00279 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00280}00280         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00281}00281         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00282}00282         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00283}00283 tr\_setup:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00284}00284                 pc = \mbox{\hyperlink{usb__transfer_8c_a6e66695b916f0770a259bed959c21555}{usbd\_xfer\_get\_frame}}(xfer, 0);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00285}00285                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{usb__serial_8c_a014a131e1bce5fb84d1788e48a69733f}{ucom\_get\_data}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{sc\_ucom}}, pc, 0,}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00286}00286                     \mbox{\hyperlink{uark_8c_a28a06100054b230e7139549e9af23e63}{UARK\_BUF\_SIZE}}, \&actlen)) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00287}00287                         \mbox{\hyperlink{usb__transfer_8c_a31786497f0f4222203b1e993d52af753}{usbd\_xfer\_set\_frame\_len}}(xfer, 0, actlen);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00288}00288                         \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00289}00289                 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00290}00290                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00292}00292         \textcolor{keywordflow}{default}:                        \textcolor{comment}{/* Error */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00293}00293                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00294}00294                         \textcolor{comment}{/* try to clear stall first */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00295}00295                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00296}00296                         \textcolor{keywordflow}{goto} tr\_setup;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00297}00297                 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00298}00298                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00299}00299         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00300}00300 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00301}00301 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00302}00302 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00303}\mbox{\hyperlink{uark_8c_ad7371eeedcd0fe587dfb6be3cc62003f}{00303}} \mbox{\hyperlink{uark_8c_a46db3b84620c547c23c8e88e1f12f2ab}{uark\_bulk\_read\_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{uark_8c_source_l00304}00304 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00305}00305         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00306}00306         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00307}00307         \textcolor{keywordtype}{int} actlen;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00308}00308 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00309}00309         \mbox{\hyperlink{usb__transfer_8c_ac0c68320222f26c2a3eba47b46c47899}{usbd\_xfer\_status}}(xfer, \&actlen, NULL, NULL, NULL);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00310}00310 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00311}00311         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00312}00312         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00313}00313                 pc = \mbox{\hyperlink{usb__transfer_8c_a6e66695b916f0770a259bed959c21555}{usbd\_xfer\_get\_frame}}(xfer, 0);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00314}00314                 \mbox{\hyperlink{usb__serial_8c_af96494685ba012ad6a1c2e18b783e185}{ucom\_put\_data}}(\&sc-\/>\mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{sc\_ucom}}, pc, 0, actlen);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00316}00316         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00317}00317 tr\_setup:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00318}00318                 \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{uark_8c_source_l00319}00319                 \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00320}00320                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00321}00321 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00322}00322         \textcolor{keywordflow}{default}:                        \textcolor{comment}{/* Error */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00323}00323                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00324}00324                         \textcolor{comment}{/* try to clear stall first */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00325}00325                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00326}00326                         \textcolor{keywordflow}{goto} tr\_setup;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00327}00327                 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00328}00328                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00329}00329         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00330}00330 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00331}00331 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00332}00332 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00333}\mbox{\hyperlink{uark_8c_a3a4a5a4bbd8673cd370321d76e357f73}{00333}} \mbox{\hyperlink{uark_8c_a3a4a5a4bbd8673cd370321d76e357f73}{uark\_start\_read}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00334}00334 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00335}00335         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00336}00336 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00337}00337         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a039f75dc1b3bd615a007f78ce56fe9f7}{UARK\_BULK\_DT\_RD}}]);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00338}00338 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00339}00339 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00340}00340 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00341}\mbox{\hyperlink{uark_8c_af86134c9ec5d7af0d112ab06bca083b9}{00341}} \mbox{\hyperlink{uark_8c_af86134c9ec5d7af0d112ab06bca083b9}{uark\_stop\_read}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00342}00342 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00343}00343         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00344}00344 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00345}00345         \mbox{\hyperlink{usb__transfer_8c_abe245d973df0cfd6fb96b884d33ebce3}{usbd\_transfer\_stop}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a039f75dc1b3bd615a007f78ce56fe9f7}{UARK\_BULK\_DT\_RD}}]);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00346}00346 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00347}00347 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00348}00348 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00349}\mbox{\hyperlink{uark_8c_a70f487487972d67a33cf1a44d7c991d5}{00349}} \mbox{\hyperlink{uark_8c_a70f487487972d67a33cf1a44d7c991d5}{uark\_start\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00350}00350 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00351}00351         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00352}00352 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00353}00353         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a8953a5dd3515740a1752552d5d909cca}{UARK\_BULK\_DT\_WR}}]);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00354}00354 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00355}00355 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00356}00356 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00357}\mbox{\hyperlink{uark_8c_a1fbe9dd181370c65084563cc3822b33d}{00357}} \mbox{\hyperlink{uark_8c_a1fbe9dd181370c65084563cc3822b33d}{uark\_stop\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00358}00358 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00359}00359         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00361}00361         \mbox{\hyperlink{usb__transfer_8c_abe245d973df0cfd6fb96b884d33ebce3}{usbd\_transfer\_stop}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}[\mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a8953a5dd3515740a1752552d5d909cca}{UARK\_BULK\_DT\_WR}}]);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00362}00362 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00363}00363 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00364}00364 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00365}\mbox{\hyperlink{uark_8c_af24a27699292c86a9f05cb162bcb3d0f}{00365}} \mbox{\hyperlink{uark_8c_af24a27699292c86a9f05cb162bcb3d0f}{uark\_pre\_param}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom, \textcolor{keyword}{struct} termios *t)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00366}00366 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00367}00367         \textcolor{keywordflow}{if} ((t-\/>c\_ospeed < 300) || (t-\/>c\_ospeed > 115200))}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00368}00368                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00369}00369         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00370}00370 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00371}00371 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00372}00372 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00373}\mbox{\hyperlink{uark_8c_a064f5373ca4b187d1fd34a3300317f41}{00373}} \mbox{\hyperlink{uark_8c_a064f5373ca4b187d1fd34a3300317f41}{uark\_cfg\_param}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom, \textcolor{keyword}{struct} termios *t)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00374}00374 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00375}00375         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00376}00376         uint32\_t speed = t-\/>c\_ospeed;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00377}00377         uint16\_t data;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00378}00378 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00379}00379         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00380}00380 \textcolor{comment}{         * NOTE: When reverse computing the baud rate from the "{}data"{} all}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00381}00381 \textcolor{comment}{         * allowed baud rates are within 3\% of the initial baud rate.}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00382}00382 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00383}00383         data = (\mbox{\hyperlink{uark_8c_afdf14dafc05d2ae2662efc8d4e39c1c6}{UARK\_BAUD\_REF}} + (speed / 2)) / speed;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00384}00384 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00385}00385         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 3, 0x83);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00386}00386         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 0, data \& 0xFF);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00387}00387         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 1, data >> 8);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00388}00388         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 3, 0x03);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00389}00389 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00390}00390         \textcolor{keywordflow}{if} (t-\/>c\_cflag \& CSTOPB)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00391}00391                 data = \mbox{\hyperlink{uark_8c_a9dbaed8f6ca3eb23ad5bb2ae9a8ac681}{UARK\_STOP\_BITS\_2}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00392}00392         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00393}00393                 data = \mbox{\hyperlink{uark_8c_a18ab3996117c87b52e3412c91757ede5}{UARK\_STOP\_BITS\_1}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00394}00394 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00395}00395         \textcolor{keywordflow}{if} (t-\/>c\_cflag \& PARENB) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00396}00396                 \textcolor{keywordflow}{if} (t-\/>c\_cflag \& PARODD)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00397}00397                         data |= \mbox{\hyperlink{uark_8c_a3948fc6100c8c9ba0d0ccd7e511111fe}{UARK\_PARITY\_ODD}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00398}00398                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00399}00399                         data |= \mbox{\hyperlink{uark_8c_aea9747b9adf121946ab84c94baf58c5d}{UARK\_PARITY\_EVEN}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00400}00400         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00401}00401                 data |= \mbox{\hyperlink{uark_8c_a64f19a78ef50ece0ce86c13799a2cfb1}{UARK\_PARITY\_NONE}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00402}00402 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00403}00403         \textcolor{keywordflow}{switch} (t-\/>c\_cflag \& CSIZE) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00404}00404         \textcolor{keywordflow}{case} CS5:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00405}00405                 data |= \mbox{\hyperlink{uark_8c_a59c15dcc7eb0b8cfe875efb80e3e9d88}{UARK\_SET\_DATA\_BITS}}(5);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00406}00406                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00407}00407         \textcolor{keywordflow}{case} CS6:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00408}00408                 data |= \mbox{\hyperlink{uark_8c_a59c15dcc7eb0b8cfe875efb80e3e9d88}{UARK\_SET\_DATA\_BITS}}(6);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00409}00409                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00410}00410         \textcolor{keywordflow}{case} CS7:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00411}00411                 data |= \mbox{\hyperlink{uark_8c_a59c15dcc7eb0b8cfe875efb80e3e9d88}{UARK\_SET\_DATA\_BITS}}(7);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00412}00412                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00413}00413         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00414}00414         \textcolor{keywordflow}{case} CS8:}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00415}00415                 data |= \mbox{\hyperlink{uark_8c_a59c15dcc7eb0b8cfe875efb80e3e9d88}{UARK\_SET\_DATA\_BITS}}(8);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00416}00416                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00417}00417         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00418}00418         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 3, 0x00);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00419}00419         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 3, data);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00420}00420 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00421}00421 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00422}00422 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00423}\mbox{\hyperlink{uark_8c_ad84ea1753b594377a397d36ebaf52c41}{00423}} \mbox{\hyperlink{uark_8c_ad84ea1753b594377a397d36ebaf52c41}{uark\_cfg\_get\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom, uint8\_t *lsr, uint8\_t *msr)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00424}00424 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00425}00425         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00426}00426 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00427}00427         \textcolor{comment}{/* XXX Note: sc\_lsr is always zero */}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00428}00428         *lsr = sc-\/>\mbox{\hyperlink{structuark__softc_a18806e59637bb1d0309154a9021a8138}{sc\_lsr}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00429}00429         *msr = sc-\/>\mbox{\hyperlink{structuark__softc_a177b1a948063e142f201b62ed4a7e33e}{sc\_msr}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00430}00430 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00431}00431 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00432}00432 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00433}\mbox{\hyperlink{uark_8c_ad9b54f32e0126bfff1223b0fdc20249c}{00433}} \mbox{\hyperlink{uark_8c_ad9b54f32e0126bfff1223b0fdc20249c}{uark\_cfg\_set\_break}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom, uint8\_t onoff)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00434}00434 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00435}00435         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00436}00436 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00437}00437         \mbox{\hyperlink{umass_8c_aa786fc43d4857c3ab9f2c777b4e6f9c5}{DPRINTF}}(\textcolor{stringliteral}{"{}onoff=\%d\(\backslash\)n"{}}, onoff);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00438}00438 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00439}00439         \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(sc, 4, onoff ? 0x01 : 0x00);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00440}00440 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00441}00441 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00442}00442 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00443}\mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{00443}} \mbox{\hyperlink{uark_8c_a4ceea387073c5a0c88668ddc03c85e0e}{uark\_cfg\_write}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc, uint16\_t index, uint16\_t value)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00444}00444 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00445}00445         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__request}{usb\_device\_request}} \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00446}00446         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} err;}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00447}00447 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00448}00448         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.bmRequestType = \mbox{\hyperlink{uark_8c_a8d46cdccd861081b20dcc61657ba7653}{UARK\_WRITE}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00449}00449         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.bRequest = \mbox{\hyperlink{uark_8c_a92f2dbfed16833977602393cb2e0ba1a}{UARK\_REQUEST}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00450}00450         \mbox{\hyperlink{usb__endian_8h_a69f5ba903a605cb9dc7eed2ad905f2dc}{USETW}}(\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wValue, value);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00451}00451         \mbox{\hyperlink{usb__endian_8h_a69f5ba903a605cb9dc7eed2ad905f2dc}{USETW}}(\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wIndex, index);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00452}00452         \mbox{\hyperlink{usb__endian_8h_a69f5ba903a605cb9dc7eed2ad905f2dc}{USETW}}(\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wLength, 0);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00453}00453 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00454}00454         err = \mbox{\hyperlink{usb__serial_8h_aef1b97ecbf82451d6b353c561648b24f}{ucom\_cfg\_do\_request}}(sc-\/>\mbox{\hyperlink{structuark__softc_a161ed360368195ebb7e3762382dc6ffc}{sc\_udev}}, \&sc-\/>\mbox{\hyperlink{structuark__softc_a41994972c232121222555845255ba967}{sc\_ucom}}, }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00455}00455             \&\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}, NULL, 0, 1000);}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00456}00456         \textcolor{keywordflow}{if} (err) \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00457}00457                 DPRINTFN(0, \textcolor{stringliteral}{"{}device request failed, err=\%s "{}}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00458}00458                     \textcolor{stringliteral}{"{}(ignored)\(\backslash\)n"{}}, \mbox{\hyperlink{usb__error_8c_a2391eb446dce3e4368cacf781857774e}{usbd\_errstr}}(err));}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00459}00459         \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00460}00460 \}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00461}00461 }
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00462}00462 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00463}\mbox{\hyperlink{uark_8c_aad3d8b9444021cad89537dcf086de1cf}{00463}} \mbox{\hyperlink{uark_8c_aad3d8b9444021cad89537dcf086de1cf}{uark\_poll}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structucom__softc}{ucom\_softc}} *ucom)}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00464}00464 \{}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00465}00465         \textcolor{keyword}{struct }\mbox{\hyperlink{structuark__softc}{uark\_softc}} *sc = ucom-\/>\mbox{\hyperlink{structucom__softc_a4ebbc8663d0291bf6e0ffb93cc2dc70e}{sc\_parent}};}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00466}00466         \mbox{\hyperlink{usb__transfer_8c_ab2036eadf83fca25cf0d8cdec16d7227}{usbd\_transfer\_poll}}(sc-\/>\mbox{\hyperlink{structuark__softc_a60800bc8b67b6226dba7901b796ea1e5}{sc\_xfer}}, \mbox{\hyperlink{uark_8c_af3520ff6d43011872bab77edd27d4de3a84328aeee138eaa3177ec0961d87cb14}{UARK\_N\_TRANSFER}});}
\DoxyCodeLine{\Hypertarget{uark_8c_source_l00467}00467 \}}

\end{DoxyCode}
