\hypertarget{if__ipheth_8c_source}{}\doxysection{if\+\_\+ipheth.\+c}
\label{if__ipheth_8c_source}\index{dev/usb/net/if\_ipheth.c@{dev/usb/net/if\_ipheth.c}}
\mbox{\hyperlink{if__ipheth_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2010 Hans Petter Selasky. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2009 Diego Giagio. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00028}00028 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00029}00029 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00030}00030 \textcolor{comment}{ * Thanks to Diego Giagio for figuring out the programming details for}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00031}00031 \textcolor{comment}{ * the Apple iPhone Ethernet driver.}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00032}00032 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00035}\mbox{\hyperlink{if__ipheth_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00035}} \mbox{\hyperlink{if__ipheth_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/stdint.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/stddef.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <sys/condvar.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <sys/socket.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <sys/sx.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <sys/unistd.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <sys/callout.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <sys/priv.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00056}00056 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00057}00057 \textcolor{preprocessor}{\#include <net/if.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00058}00058 \textcolor{preprocessor}{\#include <net/if\_var.h>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00060}00060 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb_8h}{dev/usb/usb.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00061}00061 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi_8h}{dev/usb/usbdi.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00062}00062 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi__util_8h}{dev/usb/usbdi\_util.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00063}00063 \textcolor{preprocessor}{\#include "{}usbdevs.h"{}}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00065}\mbox{\hyperlink{if__ipheth_8c_a927dd6f59caf10a2991dfb564bcbb1e1}{00065}} \textcolor{preprocessor}{\#define USB\_DEBUG\_VAR ipheth\_debug}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00066}00066 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__debug_8h}{dev/usb/usb\_debug.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00067}00067 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__process_8h}{dev/usb/usb\_process.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00069}00069 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__ethernet_8h}{dev/usb/net/usb\_ethernet.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00070}00070 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{if__iphethvar_8h}{dev/usb/net/if\_iphethvar.h}}>}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00072}\mbox{\hyperlink{if__ipheth_8c_a0465fa71948c33751165b59783d7677c}{00072}} \textcolor{keyword}{static} device\_probe\_t \mbox{\hyperlink{if__ipheth_8c_a0465fa71948c33751165b59783d7677c}{ipheth\_probe}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00073}\mbox{\hyperlink{if__ipheth_8c_a5bad3aaeb0d80ae0a4771f1ac26c9e76}{00073}} \textcolor{keyword}{static} device\_attach\_t \mbox{\hyperlink{if__ipheth_8c_a5bad3aaeb0d80ae0a4771f1ac26c9e76}{ipheth\_attach}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00074}\mbox{\hyperlink{if__ipheth_8c_a655e8a24f618a8a553743aa56f372324}{00074}} \textcolor{keyword}{static} device\_detach\_t \mbox{\hyperlink{if__ipheth_8c_a655e8a24f618a8a553743aa56f372324}{ipheth\_detach}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00075}00075 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00076}\mbox{\hyperlink{if__ipheth_8c_a5f0c34f73ebcef0b79a1851f7236822f}{00076}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{if__ipheth_8c_a5f0c34f73ebcef0b79a1851f7236822f}{ipheth\_bulk\_write\_callback}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00077}\mbox{\hyperlink{if__ipheth_8c_ab54d46479ba2e2acea8e30ed3d85c7a1}{00077}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} \mbox{\hyperlink{if__ipheth_8c_ab54d46479ba2e2acea8e30ed3d85c7a1}{ipheth\_bulk\_read\_callback}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00078}00078 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00079}\mbox{\hyperlink{if__ipheth_8c_a671efd8a6f418aa9985eccd45f507567}{00079}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_a671efd8a6f418aa9985eccd45f507567}{ipheth\_attach\_post}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00080}\mbox{\hyperlink{if__ipheth_8c_a7e8a4e85b9d62473d47e89c56b0390dd}{00080}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_a7e8a4e85b9d62473d47e89c56b0390dd}{ipheth\_tick}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00081}\mbox{\hyperlink{if__ipheth_8c_a428d4defef4680f8f4ca199e28d37372}{00081}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_a428d4defef4680f8f4ca199e28d37372}{ipheth\_init}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00082}\mbox{\hyperlink{if__ipheth_8c_ac13708d50afb085dce83bd54f3aee8d7}{00082}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_ac13708d50afb085dce83bd54f3aee8d7}{ipheth\_stop}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00083}\mbox{\hyperlink{if__ipheth_8c_a502e6f4882d443a55d9f3102a758bfa3}{00083}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_a502e6f4882d443a55d9f3102a758bfa3}{ipheth\_start}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00084}\mbox{\hyperlink{if__ipheth_8c_a895201f64e3cc182cf78e7bad546d4c5}{00084}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_a895201f64e3cc182cf78e7bad546d4c5}{ipheth\_setmulti}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00085}\mbox{\hyperlink{if__ipheth_8c_ab071a23596aef2392e209c861c608a8d}{00085}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__ethernet_8h_ac29bf5775f723e7b7a1f7a29c906b93d}{uether\_fn\_t}} \mbox{\hyperlink{if__ipheth_8c_ab071a23596aef2392e209c861c608a8d}{ipheth\_setpromisc}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00087}00087 \textcolor{preprocessor}{\#ifdef USB\_DEBUG}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00088}00088 \textcolor{keyword}{static} \textcolor{keywordtype}{int} ipheth\_debug = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00090}00090 \textcolor{keyword}{static} \mbox{\hyperlink{dwc__otg_8c_a58e125bcf985ce2333baef42f97b33b3}{SYSCTL\_NODE}}(\_hw\_usb, OID\_AUTO, ipheth, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00091}00091     \textcolor{stringliteral}{"{}USB iPhone ethernet"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00092}00092 \mbox{\hyperlink{dwc__otg_8c_a83d020f0b15dc2783f3f1a6966c75e36}{SYSCTL\_INT}}(\_hw\_usb\_ipheth, OID\_AUTO, \mbox{\hyperlink{cfumass_8c_ac3e1795766a80ec63b157951b4b9a7d4}{debug}}, CTLFLAG\_RWTUN, \&ipheth\_debug, 0, \textcolor{stringliteral}{"{}Debug level"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00093}00093 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00095}\mbox{\hyperlink{if__ipheth_8c_a8e7ccc23ed8d3329f92ef0da614a8ff5}{00095}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__config}{usb\_config}} \mbox{\hyperlink{if__ipheth_8c_a8e7ccc23ed8d3329f92ef0da614a8ff5}{ipheth\_config}}[\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5a2be4f58c8622f2ad0bed92bafe13dab6}{IPHETH\_N\_TRANSFER}}] = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00096}00096         [\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5a1f6ec1122ce883bed014010f4e48353e}{IPHETH\_BULK\_RX}}] = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00097}00097                 .\mbox{\hyperlink{structusb__config_a5bd5d569870291a54d9bed8377ed8b10}{type}} = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00098}00098                 .endpoint = \mbox{\hyperlink{usb_8h_a1e8d1f402536e634471569b83f603197}{UE\_ADDR\_ANY}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00099}00099                 .direction = \mbox{\hyperlink{usb_8h_a6e0258e8570573ddabdd296569db720e}{UE\_DIR\_RX}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00100}00100                 .frames = \mbox{\hyperlink{if__iphethvar_8h_afa05543e6344654114f1fa8409516a1b}{IPHETH\_RX\_FRAMES\_MAX}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00101}00101                 .bufsize = (\mbox{\hyperlink{if__iphethvar_8h_afa05543e6344654114f1fa8409516a1b}{IPHETH\_RX\_FRAMES\_MAX}} * MCLBYTES),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00102}00102                 .\mbox{\hyperlink{structusb__config_a0e7feb3ff903ed490f21c1e5b128fc71}{flags}} = \{.\mbox{\hyperlink{structusb__xfer__flags_a4cebfba0749680b43016090e78773210}{short\_frames\_ok}} = 1,.short\_xfer\_ok = 1,.ext\_buffer = 1,\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00103}00103                 .callback = \mbox{\hyperlink{if__ipheth_8c_ab54d46479ba2e2acea8e30ed3d85c7a1}{ipheth\_bulk\_read\_callback}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00104}00104                 .timeout = 0,           \textcolor{comment}{/* no timeout */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00105}00105         \},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00107}00107         [\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5acb88b5d9a80607eab64b3110b6498820}{IPHETH\_BULK\_TX}}] = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00108}00108                 .type = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00109}00109                 .endpoint = \mbox{\hyperlink{usb_8h_a1e8d1f402536e634471569b83f603197}{UE\_ADDR\_ANY}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00110}00110                 .direction = \mbox{\hyperlink{usb_8h_aba70c1d0c8b6a6cd3452b304d9a981ba}{UE\_DIR\_TX}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00111}00111                 .frames = \mbox{\hyperlink{if__iphethvar_8h_a0bb2098306494724b50c9b40a1181b31}{IPHETH\_TX\_FRAMES\_MAX}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00112}00112                 .bufsize = (\mbox{\hyperlink{if__iphethvar_8h_a0bb2098306494724b50c9b40a1181b31}{IPHETH\_TX\_FRAMES\_MAX}} * \mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00113}00113                 .\mbox{\hyperlink{structusb__config_a0e7feb3ff903ed490f21c1e5b128fc71}{flags}} = \{.\mbox{\hyperlink{structusb__xfer__flags_a76816b701c58c22a9a78904b109c2e95}{force\_short\_xfer}} = 1,\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00114}00114                 .callback = \mbox{\hyperlink{if__ipheth_8c_a5f0c34f73ebcef0b79a1851f7236822f}{ipheth\_bulk\_write\_callback}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00115}00115                 .timeout = \mbox{\hyperlink{if__iphethvar_8h_a202aba70aa8d16a7545c91a399e212eb}{IPHETH\_TX\_TIMEOUT}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00116}00116         \},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00117}00117 \};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00119}\mbox{\hyperlink{if__ipheth_8c_a417433dee5627ff10ae357024d009f70}{00119}} \textcolor{keyword}{static} device\_method\_t \mbox{\hyperlink{if__ipheth_8c_a417433dee5627ff10ae357024d009f70}{ipheth\_methods}}[] = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00120}00120         \textcolor{comment}{/* Device interface */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00121}00121         DEVMETHOD(device\_probe, \mbox{\hyperlink{if__ipheth_8c_a0465fa71948c33751165b59783d7677c}{ipheth\_probe}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00122}00122         DEVMETHOD(device\_attach, \mbox{\hyperlink{if__ipheth_8c_a5bad3aaeb0d80ae0a4771f1ac26c9e76}{ipheth\_attach}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00123}00123         DEVMETHOD(device\_detach, \mbox{\hyperlink{if__ipheth_8c_a655e8a24f618a8a553743aa56f372324}{ipheth\_detach}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00124}00124 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00125}00125         DEVMETHOD\_END}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00126}00126 \};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00127}00127 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00128}\mbox{\hyperlink{if__ipheth_8c_a66b96c970a2070dfcd6384c8f7550f28}{00128}} \textcolor{keyword}{static} driver\_t \mbox{\hyperlink{if__ipheth_8c_a66b96c970a2070dfcd6384c8f7550f28}{ipheth\_driver}} = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00129}00129         .name = \textcolor{stringliteral}{"{}ipheth"{}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00130}00130         .methods = \mbox{\hyperlink{if__ipheth_8c_a417433dee5627ff10ae357024d009f70}{ipheth\_methods}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00131}00131         .size = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00132}00132 \};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00133}00133 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00134}\mbox{\hyperlink{if__ipheth_8c_afd3921cb98dca28bc96cdc8392b9efeb}{00134}} \textcolor{keyword}{static} devclass\_t \mbox{\hyperlink{if__ipheth_8c_afd3921cb98dca28bc96cdc8392b9efeb}{ipheth\_devclass}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00136}\mbox{\hyperlink{if__ipheth_8c_a56881c3febc0002d73185366f82b547d}{00136}} \textcolor{keyword}{static} \textcolor{keyword}{const} \mbox{\hyperlink{usbdi_8h_acf836fd8d6349b66a31f45420728da8d}{STRUCT\_USB\_HOST\_ID}} \mbox{\hyperlink{if__ipheth_8c_a56881c3febc0002d73185366f82b547d}{ipheth\_devs}}[] = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00137}00137 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00138}00138         \{\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{IPHETH\_ID}}(USB\_VENDOR\_APPLE, USB\_PRODUCT\_APPLE\_IPHONE,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00139}00139             \mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}, \mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00140}00140             \mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00141}00141         \{\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{IPHETH\_ID}}(USB\_VENDOR\_APPLE, USB\_PRODUCT\_APPLE\_IPHONE\_3G,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00142}00142             \mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}, \mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00143}00143             \mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00144}00144         \{\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{IPHETH\_ID}}(USB\_VENDOR\_APPLE, USB\_PRODUCT\_APPLE\_IPHONE\_3GS,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00145}00145             \mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}, \mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00146}00146             \mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00147}00147         \{\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{IPHETH\_ID}}(USB\_VENDOR\_APPLE, USB\_PRODUCT\_APPLE\_IPHONE\_4,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00148}00148             \mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}, \mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00149}00149             \mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00150}00150         \{\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{IPHETH\_ID}}(USB\_VENDOR\_APPLE, USB\_PRODUCT\_APPLE\_IPHONE\_4S,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00151}00151             \mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}, \mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00152}00152             \mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00153}00153         \{\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{IPHETH\_ID}}(USB\_VENDOR\_APPLE, USB\_PRODUCT\_APPLE\_IPHONE\_5,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00154}00154             \mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}, \mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00155}00155             \mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00156}00156 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00157}00157         \textcolor{comment}{/* product agnostic interface match */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00158}00158         \{\mbox{\hyperlink{usbdi_8h_ab5d541c01afa5eb1a62de5dc85273298}{USB\_VENDOR}}(USB\_VENDOR\_APPLE),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00159}00159          \mbox{\hyperlink{usbdi_8h_a74c0bae2d55b3014e0583ec8ea4d5dc0}{USB\_IFACE\_CLASS}}(\mbox{\hyperlink{if__iphethvar_8h_a1d58c7d7e3ac49e28877fda0492eacb0}{IPHETH\_USBINTF\_CLASS}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00160}00160          \mbox{\hyperlink{usbdi_8h_a15ff0bc986f953c98128bd03e394b571}{USB\_IFACE\_SUBCLASS}}(\mbox{\hyperlink{if__iphethvar_8h_af89f812d573cc4cf6ccd32c9cff5d9e8}{IPHETH\_USBINTF\_SUBCLASS}}),}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00161}00161          \mbox{\hyperlink{usbdi_8h_a99fe00139ae050549bc725ebd3c0d5cc}{USB\_IFACE\_PROTOCOL}}(\mbox{\hyperlink{if__iphethvar_8h_a8139f0c68ac8ed14c88a4653375a7596}{IPHETH\_USBINTF\_PROTO}})\},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00162}00162 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00163}00163 \};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00165}\mbox{\hyperlink{if__ipheth_8c_aab6244130bb8d4ee4e6099c7d6acc810}{00165}} \mbox{\hyperlink{if__ipheth_8c_aab6244130bb8d4ee4e6099c7d6acc810}{DRIVER\_MODULE}}(ipheth, uhub, \mbox{\hyperlink{if__ipheth_8c_a66b96c970a2070dfcd6384c8f7550f28}{ipheth\_driver}}, \mbox{\hyperlink{if__ipheth_8c_afd3921cb98dca28bc96cdc8392b9efeb}{ipheth\_devclass}}, NULL, 0);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00166}\mbox{\hyperlink{if__ipheth_8c_a34716bf7a733aeb6ab13feff22574775}{00166}} \mbox{\hyperlink{if__ipheth_8c_a34716bf7a733aeb6ab13feff22574775}{MODULE\_VERSION}}(ipheth, 1);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00167}\mbox{\hyperlink{if__ipheth_8c_aa5bbacff03be1088403a024985b38aaa}{00167}} \mbox{\hyperlink{if__ipheth_8c_aa5bbacff03be1088403a024985b38aaa}{MODULE\_DEPEND}}(ipheth, uether, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00168}\mbox{\hyperlink{if__ipheth_8c_ad598cde08b2949345baa435d4cb166bd}{00168}} \mbox{\hyperlink{if__ipheth_8c_aa5bbacff03be1088403a024985b38aaa}{MODULE\_DEPEND}}(ipheth, \mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00169}\mbox{\hyperlink{if__ipheth_8c_afbc99fb531d34e9b9362e5a66fe3819b}{00169}} \mbox{\hyperlink{if__ipheth_8c_aa5bbacff03be1088403a024985b38aaa}{MODULE\_DEPEND}}(ipheth, ether, 1, 1, 1);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00170}\mbox{\hyperlink{if__ipheth_8c_a64400f33280a8615cf2ae230816d8bf2}{00170}} \mbox{\hyperlink{if__ipheth_8c_a64400f33280a8615cf2ae230816d8bf2}{USB\_PNP\_HOST\_INFO}}(\mbox{\hyperlink{if__ipheth_8c_a56881c3febc0002d73185366f82b547d}{ipheth\_devs}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00172}\mbox{\hyperlink{if__ipheth_8c_a4150ddce6f04ec40ab4853c43accf123}{00172}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__ether__methods}{usb\_ether\_methods}} \mbox{\hyperlink{if__ipheth_8c_a4150ddce6f04ec40ab4853c43accf123}{ipheth\_ue\_methods}} = \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00173}00173         .\mbox{\hyperlink{structusb__ether__methods_a9568a90d86c68824b84eb6e5ccc7ebfc}{ue\_attach\_post}} = \mbox{\hyperlink{if__ipheth_8c_a671efd8a6f418aa9985eccd45f507567}{ipheth\_attach\_post}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00174}00174         .ue\_start = \mbox{\hyperlink{if__ipheth_8c_a502e6f4882d443a55d9f3102a758bfa3}{ipheth\_start}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00175}00175         .ue\_init = \mbox{\hyperlink{if__ipheth_8c_a428d4defef4680f8f4ca199e28d37372}{ipheth\_init}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00176}00176         .ue\_tick = \mbox{\hyperlink{if__ipheth_8c_a7e8a4e85b9d62473d47e89c56b0390dd}{ipheth\_tick}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00177}00177         .ue\_stop = \mbox{\hyperlink{if__ipheth_8c_ac13708d50afb085dce83bd54f3aee8d7}{ipheth\_stop}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00178}00178         .ue\_setmulti = \mbox{\hyperlink{if__ipheth_8c_a895201f64e3cc182cf78e7bad546d4c5}{ipheth\_setmulti}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00179}00179         .ue\_setpromisc = \mbox{\hyperlink{if__ipheth_8c_ab071a23596aef2392e209c861c608a8d}{ipheth\_setpromisc}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00180}00180 \};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00181}00181 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00182}\mbox{\hyperlink{if__ipheth_8c_aeb1f0bbcad6453fa0db5e7fc6f76ee06}{00182}} \textcolor{preprocessor}{\#define IPHETH\_ID(v,p,c,sc,pt) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00183}00183 \textcolor{preprocessor}{    USB\_VENDOR(v), USB\_PRODUCT(p), \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00184}00184 \textcolor{preprocessor}{    USB\_IFACE\_CLASS(c), USB\_IFACE\_SUBCLASS(sc), \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00185}00185 \textcolor{preprocessor}{    USB\_IFACE\_PROTOCOL(pt)}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00186}00186 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00187}00187 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00188}\mbox{\hyperlink{if__ipheth_8c_a2aa9785b520270b82b0aee4e81939085}{00188}} \mbox{\hyperlink{if__ipheth_8c_a2aa9785b520270b82b0aee4e81939085}{ipheth\_get\_mac\_addr}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00189}00189 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00190}00190         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__request}{usb\_device\_request}} \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00191}00191         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00192}00192 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00193}00193         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.bmRequestType = \mbox{\hyperlink{usb_8h_a6da49500e864a3c33c9eed3dd49d3e59}{UT\_READ\_VENDOR\_DEVICE}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00194}00194         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.bRequest = \mbox{\hyperlink{if__iphethvar_8h_a0d6ee83022f58de1b33761aafff7e8da}{IPHETH\_CMD\_GET\_MACADDR}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00195}00195         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wValue[0] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00196}00196         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wValue[1] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00197}00197         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wIndex[0] = sc-\/>\mbox{\hyperlink{structipheth__softc_a6027e70220723a6296e656eb701c0c0e}{sc\_iface\_no}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00198}00198         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wIndex[1] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00199}00199         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wLength[0] = ETHER\_ADDR\_LEN;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00200}00200         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wLength[1] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00201}00201 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00202}00202         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usbdi_8h_adf0c9751da27fa2e6a3b52a9bfd5f7d1}{usbd\_do\_request}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}}.\mbox{\hyperlink{structusb__ether_a9038cbb427aa5dfd094db8d183f909cc}{ue\_udev}}, NULL, \&\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}, sc-\/>\mbox{\hyperlink{structipheth__softc_aa0977fc87dfd7b7a9e6b6255d8a649f3}{sc\_data}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00204}00204         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00205}00205                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00206}00206 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00207}00207         memcpy(sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}}.\mbox{\hyperlink{structusb__ether_ad1e7ad3609b27b7adab9d6086a20059a}{ue\_eaddr}}, sc-\/>\mbox{\hyperlink{structipheth__softc_aa0977fc87dfd7b7a9e6b6255d8a649f3}{sc\_data}}, ETHER\_ADDR\_LEN);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00208}00208 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00209}00209         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00210}00210 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00211}00211 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00212}00212 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00213}\mbox{\hyperlink{if__ipheth_8c_a4c12891d4d44978be29a1c07dbc0fcb9}{00213}} \mbox{\hyperlink{if__ipheth_8c_a0465fa71948c33751165b59783d7677c}{ipheth\_probe}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00214}00214 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00215}00215         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa = device\_get\_ivars(dev);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00216}00216 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00217}00217         \textcolor{keywordflow}{if} (uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a246691e99681281d3113d63e81b7e4f0}{usb\_mode}} != \mbox{\hyperlink{usb_8h_a9bc559812598988121896dceb483806ba1c7091216cfa9c9f4a252b0825ed32cb}{USB\_MODE\_HOST}})}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00218}00218                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00219}00219 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00220}00220         \textcolor{keywordflow}{return} (\mbox{\hyperlink{usb__lookup_8c_aa691ad42d532498716f358cb1c994fb2}{usbd\_lookup\_id\_by\_uaa}}(\mbox{\hyperlink{if__ipheth_8c_a56881c3febc0002d73185366f82b547d}{ipheth\_devs}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{if__ipheth_8c_a56881c3febc0002d73185366f82b547d}{ipheth\_devs}}), uaa));}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00221}00221 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00222}00222 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00223}00223 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00224}\mbox{\hyperlink{if__ipheth_8c_a452182c57bba579fcbfdbb3a00b3b886}{00224}} \mbox{\hyperlink{if__ipheth_8c_a5bad3aaeb0d80ae0a4771f1ac26c9e76}{ipheth\_attach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00225}00225 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00226}00226         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00227}00227         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue = \&sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00228}00228         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa = device\_get\_ivars(dev);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00229}00229         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00230}00230 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00231}00231         sc-\/>\mbox{\hyperlink{structipheth__softc_a6027e70220723a6296e656eb701c0c0e}{sc\_iface\_no}} = uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}}.\mbox{\hyperlink{structusbd__lookup__info_a50a68740a4c82f1a9b999d4a7994b550}{bIfaceIndex}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00232}00232 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00233}00233         \mbox{\hyperlink{usb__util_8c_a2f65a197990caa1a69a16691ce4dc66a}{device\_set\_usb\_desc}}(dev);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00234}00234 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00235}00235         mtx\_init(\&sc-\/>\mbox{\hyperlink{structipheth__softc_ad3a6ab29e49330df0a6fcf3e3a06ba63}{sc\_mtx}}, device\_get\_nameunit(dev), NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00236}00236 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00237}00237         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__device_8c_a04693d160af658ae93ddddeac41e6ef2}{usbd\_set\_alt\_interface\_index}}(uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00238}00238             uaa-\/>\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}}.\mbox{\hyperlink{structusbd__lookup__info_a50a68740a4c82f1a9b999d4a7994b550}{bIfaceIndex}}, \mbox{\hyperlink{if__iphethvar_8h_a2643a0fa5a3fde4a9b3bd789286b6546}{IPHETH\_ALT\_INTFNUM}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00239}00239         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00240}00240                 device\_printf(dev, \textcolor{stringliteral}{"{}Cannot set alternate setting\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00241}00241                 \textcolor{keywordflow}{goto} detach;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00242}00242         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00243}00243         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__transfer_8c_a7494c04fae5c5e7ef1af436308670a21}{usbd\_transfer\_setup}}(uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}}, \&sc-\/>\mbox{\hyperlink{structipheth__softc_a6027e70220723a6296e656eb701c0c0e}{sc\_iface\_no}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00244}00244             sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}, \mbox{\hyperlink{if__ipheth_8c_a8e7ccc23ed8d3329f92ef0da614a8ff5}{ipheth\_config}}, \mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5a2be4f58c8622f2ad0bed92bafe13dab6}{IPHETH\_N\_TRANSFER}}, sc, \&sc-\/>\mbox{\hyperlink{structipheth__softc_ad3a6ab29e49330df0a6fcf3e3a06ba63}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00245}00245         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00246}00246                 device\_printf(dev, \textcolor{stringliteral}{"{}Cannot setup USB transfers\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00247}00247                 \textcolor{keywordflow}{goto} detach;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00248}00248         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00249}00249         ue-\/>\mbox{\hyperlink{structusb__ether_af979047fbf844a27c7f2266c87fd03a4}{ue\_sc}} = sc;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00250}00250         ue-\/>\mbox{\hyperlink{structusb__ether_ade8818fa2f6daf9addc42c3e39027515}{ue\_dev}} = dev;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00251}00251         ue-\/>\mbox{\hyperlink{structusb__ether_a9038cbb427aa5dfd094db8d183f909cc}{ue\_udev}} = uaa-\/>\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00252}00252         ue-\/>\mbox{\hyperlink{structusb__ether_af390d8b75a7bd2d9f347f808f0c15a4f}{ue\_mtx}} = \&sc-\/>\mbox{\hyperlink{structipheth__softc_ad3a6ab29e49330df0a6fcf3e3a06ba63}{sc\_mtx}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00253}00253         ue-\/>\mbox{\hyperlink{structusb__ether_a2b787f8aab7c5db729211c3a1c3bc141}{ue\_methods}} = \&\mbox{\hyperlink{if__ipheth_8c_a4150ddce6f04ec40ab4853c43accf123}{ipheth\_ue\_methods}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00254}00254 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00255}00255         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{if__ipheth_8c_a2aa9785b520270b82b0aee4e81939085}{ipheth\_get\_mac\_addr}}(sc);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00256}00256         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00257}00257                 device\_printf(dev, \textcolor{stringliteral}{"{}Cannot get MAC address\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00258}00258                 \textcolor{keywordflow}{goto} detach;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00259}00259         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00260}00260 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00261}00261         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__ethernet_8c_ad75ada74935d33849a41ff3448d1f291}{uether\_ifattach}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00262}00262         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00263}00263                 device\_printf(dev, \textcolor{stringliteral}{"{}could not attach interface\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00264}00264                 \textcolor{keywordflow}{goto} detach;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00265}00265         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00266}00266         \textcolor{keywordflow}{return} (0);                     \textcolor{comment}{/* success */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00267}00267 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00268}00268 detach:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00269}00269         \mbox{\hyperlink{if__ipheth_8c_a655e8a24f618a8a553743aa56f372324}{ipheth\_detach}}(dev);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00270}00270         \textcolor{keywordflow}{return} (ENXIO);                 \textcolor{comment}{/* failure */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00271}00271 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00272}00272 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00273}00273 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00274}\mbox{\hyperlink{if__ipheth_8c_ad4c8d90fcc0061e0067972ef2362da92}{00274}} \mbox{\hyperlink{if__ipheth_8c_a655e8a24f618a8a553743aa56f372324}{ipheth\_detach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00275}00275 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00276}00276         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = device\_get\_softc(dev);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00277}00277         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue = \&sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00278}00278 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00279}00279         \textcolor{comment}{/* stop all USB transfers first */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00280}00280         \mbox{\hyperlink{usb__transfer_8c_a2f5ab55bfe7f356bb7a7505ff35c9741}{usbd\_transfer\_unsetup}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}, \mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5a2be4f58c8622f2ad0bed92bafe13dab6}{IPHETH\_N\_TRANSFER}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00281}00281 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00282}00282         \mbox{\hyperlink{usb__ethernet_8c_a15f91b3474535af40e16b2c05d023e99}{uether\_ifdetach}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00283}00283 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00284}00284         mtx\_destroy(\&sc-\/>\mbox{\hyperlink{structipheth__softc_ad3a6ab29e49330df0a6fcf3e3a06ba63}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00285}00285 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00286}00286         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00287}00287 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00289}00289 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00290}\mbox{\hyperlink{if__ipheth_8c_a1d2a3d8c6cc0750a72e0f99fd6747558}{00290}} \mbox{\hyperlink{if__ipheth_8c_a502e6f4882d443a55d9f3102a758bfa3}{ipheth\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00291}00291 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00292}00292         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = \mbox{\hyperlink{usb__ethernet_8c_a2909b68b692c9927da7458ac0fe8c987}{uether\_getsc}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00293}00293 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00294}00294         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00295}00295 \textcolor{comment}{         * Start the USB transfers, if not already started:}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00296}00296 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00297}00297         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}[\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5acb88b5d9a80607eab64b3110b6498820}{IPHETH\_BULK\_TX}}]);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00298}00298         \mbox{\hyperlink{usb__transfer_8c_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}[\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5a1f6ec1122ce883bed014010f4e48353e}{IPHETH\_BULK\_RX}}]);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00299}00299 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00300}00300 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00301}00301 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00302}\mbox{\hyperlink{if__ipheth_8c_abbeafa004978f548058ba4605d941f52}{00302}} \mbox{\hyperlink{if__ipheth_8c_ac13708d50afb085dce83bd54f3aee8d7}{ipheth\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00303}00303 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00304}00304         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = \mbox{\hyperlink{usb__ethernet_8c_a2909b68b692c9927da7458ac0fe8c987}{uether\_getsc}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00305}00305 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00306}00306         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00307}00307 \textcolor{comment}{         * Stop the USB transfers, if not already stopped:}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00308}00308 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00309}00309         \mbox{\hyperlink{usb__transfer_8c_abe245d973df0cfd6fb96b884d33ebce3}{usbd\_transfer\_stop}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}[\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5acb88b5d9a80607eab64b3110b6498820}{IPHETH\_BULK\_TX}}]);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00310}00310         \mbox{\hyperlink{usb__transfer_8c_abe245d973df0cfd6fb96b884d33ebce3}{usbd\_transfer\_stop}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}[\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5a1f6ec1122ce883bed014010f4e48353e}{IPHETH\_BULK\_RX}}]);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00311}00311 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00312}00312 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00313}00313 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00314}\mbox{\hyperlink{if__ipheth_8c_a7b7177b33c8eca3792909b3133ccd383}{00314}} \mbox{\hyperlink{if__ipheth_8c_a7e8a4e85b9d62473d47e89c56b0390dd}{ipheth\_tick}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00315}00315 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00316}00316         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = \mbox{\hyperlink{usb__ethernet_8c_a2909b68b692c9927da7458ac0fe8c987}{uether\_getsc}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00317}00317         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__request}{usb\_device\_request}} \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00318}00318         \textcolor{keywordtype}{int} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00319}00319 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00320}00320         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.bmRequestType = \mbox{\hyperlink{usb_8h_a6da49500e864a3c33c9eed3dd49d3e59}{UT\_READ\_VENDOR\_DEVICE}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00321}00321         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.bRequest = \mbox{\hyperlink{if__iphethvar_8h_a277ffaee423ba582cf8466f01c91960f}{IPHETH\_CMD\_CARRIER\_CHECK}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00322}00322         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wValue[0] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00323}00323         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wValue[1] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00324}00324         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wIndex[0] = sc-\/>\mbox{\hyperlink{structipheth__softc_a6027e70220723a6296e656eb701c0c0e}{sc\_iface\_no}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00325}00325         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wIndex[1] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00326}00326         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wLength[0] = \mbox{\hyperlink{if__iphethvar_8h_a41f0ca3e3d2aa442624394a62e9251ce}{IPHETH\_CTRL\_BUF\_SIZE}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00327}00327         \mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}.wLength[1] = 0;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00328}00328 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00329}00329         \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} = \mbox{\hyperlink{usb__ethernet_8h_a273a1683cef752bf3069d84f08f1925d}{uether\_do\_request}}(ue, \&\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}, sc-\/>\mbox{\hyperlink{structipheth__softc_aa0977fc87dfd7b7a9e6b6255d8a649f3}{sc\_data}}, \mbox{\hyperlink{if__iphethvar_8h_a8f891c50170a4a3869cd83813971967a}{IPHETH\_CTRL\_TIMEOUT}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00330}00330 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00331}00331         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00332}00332                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00333}00333 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00334}00334         sc-\/>\mbox{\hyperlink{structipheth__softc_acac6a4cb8c82a9a9d4804dbbc24cb748}{sc\_carrier\_on}} =}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00335}00335             (sc-\/>\mbox{\hyperlink{structipheth__softc_aa0977fc87dfd7b7a9e6b6255d8a649f3}{sc\_data}}[0] == \mbox{\hyperlink{if__iphethvar_8h_adf6aac51ccf4f5926d362141c8239807}{IPHETH\_CARRIER\_ON}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00336}00336 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00337}00337 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00338}00338 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00339}\mbox{\hyperlink{if__ipheth_8c_aab6fe327300cf73ce556deb3aea0311e}{00339}} \mbox{\hyperlink{if__ipheth_8c_a671efd8a6f418aa9985eccd45f507567}{ipheth\_attach\_post}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00340}00340 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00341}00341 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00342}00342 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00343}00343 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00344}00344 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00345}\mbox{\hyperlink{if__ipheth_8c_a6730645c1fbc8d176d7eb6cac5b485ee}{00345}} \mbox{\hyperlink{if__ipheth_8c_a428d4defef4680f8f4ca199e28d37372}{ipheth\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00346}00346 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00347}00347         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = \mbox{\hyperlink{usb__ethernet_8c_a2909b68b692c9927da7458ac0fe8c987}{uether\_getsc}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00348}00348         \textcolor{keyword}{struct }ifnet *ifp = \mbox{\hyperlink{usb__ethernet_8c_a577186dbc54db90bca2eb053432d932d}{uether\_getifp}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00349}00349 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00350}00350         \mbox{\hyperlink{if__iphethvar_8h_a7c07229549bf163649e5bb71004d9c88}{IPHETH\_LOCK\_ASSERT}}(sc, MA\_OWNED);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00351}00351 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00352}00352         ifp-\/>if\_drv\_flags |= IFF\_DRV\_RUNNING;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00353}00353 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00354}00354         \textcolor{comment}{/* stall data write direction, which depends on USB mode */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00355}00355         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a0a8001c41a1eb25f74dce8be3bc37418}{sc\_xfer}}[\mbox{\hyperlink{if__iphethvar_8h_a4790f45dcc812c1b00184a2edccdddf5acb88b5d9a80607eab64b3110b6498820}{IPHETH\_BULK\_TX}}]);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00356}00356 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00357}00357         \textcolor{comment}{/* start data transfers */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00358}00358         \mbox{\hyperlink{if__ipheth_8c_a502e6f4882d443a55d9f3102a758bfa3}{ipheth\_start}}(ue);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00359}00359 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00361}00361 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00362}\mbox{\hyperlink{if__ipheth_8c_ae82a43470b3f821e878e043b6fc3ca99}{00362}} \mbox{\hyperlink{if__ipheth_8c_a895201f64e3cc182cf78e7bad546d4c5}{ipheth\_setmulti}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00363}00363 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00364}00364 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00365}00365 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00366}00366 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00367}00367 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00368}\mbox{\hyperlink{if__ipheth_8c_aabe74ab97474edab67c22432cbc5b9da}{00368}} \mbox{\hyperlink{if__ipheth_8c_ab071a23596aef2392e209c861c608a8d}{ipheth\_setpromisc}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__ether}{usb\_ether}} *ue)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00369}00369 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00370}00370 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00371}00371 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00372}00372 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00373}00373 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00374}\mbox{\hyperlink{if__ipheth_8c_afcb1a7a405a60aebf513e6b6c7696e4f}{00374}} \mbox{\hyperlink{if__ipheth_8c_afcb1a7a405a60aebf513e6b6c7696e4f}{ipheth\_free\_queue}}(\textcolor{keyword}{struct} mbuf **ppm, uint8\_t \mbox{\hyperlink{if__run_8c_a5a648f5ec00c526b0dfa2df7a272c6c0}{n}})}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00375}00375 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00376}00376         uint8\_t x;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00377}00377 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00378}00378         \textcolor{keywordflow}{for} (x = 0; x != \mbox{\hyperlink{if__run_8c_a5a648f5ec00c526b0dfa2df7a272c6c0}{n}}; x++) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00379}00379                 \textcolor{keywordflow}{if} (ppm[x] != NULL) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00380}00380                         m\_freem(ppm[x]);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00381}00381                         ppm[x] = NULL;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00382}00382                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00383}00383         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00384}00384 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00385}00385 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00386}00386 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00387}\mbox{\hyperlink{if__ipheth_8c_a446971836f259ecf1428603f232fe19f}{00387}} \mbox{\hyperlink{if__ipheth_8c_a5f0c34f73ebcef0b79a1851f7236822f}{ipheth\_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{if__ipheth_8c_source_l00388}00388 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00389}00389         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00390}00390         \textcolor{keyword}{struct }ifnet *ifp = \mbox{\hyperlink{usb__ethernet_8c_a577186dbc54db90bca2eb053432d932d}{uether\_getifp}}(\&sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00391}00391         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00392}00392         \textcolor{keyword}{struct }mbuf *m;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00393}00393         uint8\_t x;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00394}00394         \textcolor{keywordtype}{int} actlen;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00395}00395         \textcolor{keywordtype}{int} aframes;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00396}00396 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00397}00397         \mbox{\hyperlink{usb__transfer_8c_ac0c68320222f26c2a3eba47b46c47899}{usbd\_xfer\_status}}(xfer, \&actlen, NULL, \&aframes, NULL);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00398}00398 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00399}00399         DPRINTFN(1, \textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00400}00400 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00401}00401         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00402}00402         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00403}00403                 DPRINTFN(11, \textcolor{stringliteral}{"{}transfer complete: \%u bytes in \%u frames\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00404}00404                     actlen, aframes);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00405}00405 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00406}00406                 if\_inc\_counter(ifp, IFCOUNTER\_OPACKETS, 1);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00407}00407 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00408}00408                 \textcolor{comment}{/* free all previous TX buffers */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00409}00409                 \mbox{\hyperlink{if__ipheth_8c_afcb1a7a405a60aebf513e6b6c7696e4f}{ipheth\_free\_queue}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a939d564473fc125b3245c1cf672913a8}{sc\_tx\_buf}}, \mbox{\hyperlink{if__iphethvar_8h_a0bb2098306494724b50c9b40a1181b31}{IPHETH\_TX\_FRAMES\_MAX}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00410}00410 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00411}00411                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00412}00412         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00413}00413 tr\_setup:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00414}00414                 \textcolor{keywordflow}{for} (x = 0; x != \mbox{\hyperlink{if__iphethvar_8h_a0bb2098306494724b50c9b40a1181b31}{IPHETH\_TX\_FRAMES\_MAX}}; x++) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00415}00415                         IFQ\_DRV\_DEQUEUE(\&ifp-\/>if\_snd, m);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00416}00416 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00417}00417                         \textcolor{keywordflow}{if} (m == NULL)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00418}00418                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00419}00419 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00420}00420                         \mbox{\hyperlink{usb__transfer_8c_aa9f706e03ede8468e81331de474aebb4}{usbd\_xfer\_set\_frame\_offset}}(xfer,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00421}00421                             x * \mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}}, x);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00422}00422 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00423}00423                         pc = \mbox{\hyperlink{usb__transfer_8c_a6e66695b916f0770a259bed959c21555}{usbd\_xfer\_get\_frame}}(xfer, x);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00424}00424 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00425}00425                         sc-\/>\mbox{\hyperlink{structipheth__softc_a939d564473fc125b3245c1cf672913a8}{sc\_tx\_buf}}[x] = m;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00426}00426 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00427}00427                         \textcolor{keywordflow}{if} (m-\/>m\_pkthdr.len > \mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}})}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00428}00428                                 m-\/>m\_pkthdr.len = \mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00429}00429 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00430}00430                         \mbox{\hyperlink{usbdi_8h_a9696aa8bcb25b1adcf45e8387a13897a}{usbd\_m\_copy\_in}}(pc, 0, m, 0, m-\/>m\_pkthdr.len);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00431}00431 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00432}00432                         \mbox{\hyperlink{usb__transfer_8c_a31786497f0f4222203b1e993d52af753}{usbd\_xfer\_set\_frame\_len}}(xfer, x, \mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00433}00433 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00434}00434                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}} != m-\/>m\_pkthdr.len) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00435}00435                                 \mbox{\hyperlink{usb__busdma_8c_a462a55c3d98d29504f946ac3882f2961}{usbd\_frame\_zero}}(pc, m-\/>m\_pkthdr.len,}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00436}00436                                         \mbox{\hyperlink{if__iphethvar_8h_a4e35f034ae625c06a0109d64c8dcebd0}{IPHETH\_BUF\_SIZE}} -\/ m-\/>m\_pkthdr.len);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00437}00437                         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00438}00438 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00439}00439                         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00440}00440 \textcolor{comment}{                         * If there's a BPF listener, bounce a copy of}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00441}00441 \textcolor{comment}{                         * this frame to him:}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00442}00442 \textcolor{comment}{                         */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00443}00443                         BPF\_MTAP(ifp, m);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00444}00444                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00445}00445                 \textcolor{keywordflow}{if} (x != 0) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00446}00446                         \mbox{\hyperlink{usb__transfer_8c_a10f82b008c3a5311e5210e44beaca014}{usbd\_xfer\_set\_frames}}(xfer, x);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00447}00447 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00448}00448                         \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00449}00449                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00450}00450                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00451}00451 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00452}00452         \textcolor{keywordflow}{default}:                        \textcolor{comment}{/* Error */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00453}00453                 DPRINTFN(11, \textcolor{stringliteral}{"{}transfer error, \%s\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00454}00454                     \mbox{\hyperlink{usb__error_8c_a2391eb446dce3e4368cacf781857774e}{usbd\_errstr}}(\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}));}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00455}00455 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00456}00456                 \textcolor{comment}{/* free all previous TX buffers */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00457}00457                 \mbox{\hyperlink{if__ipheth_8c_afcb1a7a405a60aebf513e6b6c7696e4f}{ipheth\_free\_queue}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a939d564473fc125b3245c1cf672913a8}{sc\_tx\_buf}}, \mbox{\hyperlink{if__iphethvar_8h_a0bb2098306494724b50c9b40a1181b31}{IPHETH\_TX\_FRAMES\_MAX}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00458}00458 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00459}00459                 \textcolor{comment}{/* count output errors */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00460}00460                 if\_inc\_counter(ifp, IFCOUNTER\_OERRORS, 1);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00461}00461 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00462}00462                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00463}00463                         \textcolor{comment}{/* try to clear stall first */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00464}00464                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00465}00465                         \textcolor{keywordflow}{goto} tr\_setup;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00466}00466                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00467}00467                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00468}00468         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00469}00469 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00470}00470 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00471}00471 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00472}\mbox{\hyperlink{if__ipheth_8c_a52896988f7fac66c11810180818ef41f}{00472}} \mbox{\hyperlink{if__ipheth_8c_ab54d46479ba2e2acea8e30ed3d85c7a1}{ipheth\_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{if__ipheth_8c_source_l00473}00473 \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00474}00474         \textcolor{keyword}{struct }\mbox{\hyperlink{structipheth__softc}{ipheth\_softc}} *sc = \mbox{\hyperlink{usb__transfer_8c_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00475}00475         \textcolor{keyword}{struct }mbuf *m;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00476}00476         uint8\_t x;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00477}00477         \textcolor{keywordtype}{int} actlen;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00478}00478         \textcolor{keywordtype}{int} aframes;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00479}00479         \textcolor{keywordtype}{int} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00480}00480 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00481}00481         \mbox{\hyperlink{usb__transfer_8c_ac0c68320222f26c2a3eba47b46c47899}{usbd\_xfer\_status}}(xfer, \&actlen, NULL, \&aframes, NULL);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00482}00482 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00483}00483         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{USB\_GET\_STATE}}(xfer)) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00484}00484         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{USB\_ST\_TRANSFERRED}}:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00485}00485 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00486}00486                 \mbox{\hyperlink{umass_8c_aa786fc43d4857c3ab9f2c777b4e6f9c5}{DPRINTF}}(\textcolor{stringliteral}{"{}received \%u bytes in \%u frames\(\backslash\)n"{}}, actlen, aframes);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00487}00487 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00488}00488                 \textcolor{keywordflow}{for} (x = 0; x != aframes; x++) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00489}00489                         m = sc-\/>\mbox{\hyperlink{structipheth__softc_a4f9b376aea1459b61d2657d8bf9e8925}{sc\_rx\_buf}}[x];}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00490}00490                         sc-\/>\mbox{\hyperlink{structipheth__softc_a4f9b376aea1459b61d2657d8bf9e8925}{sc\_rx\_buf}}[x] = NULL;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00491}00491                         \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}} = \mbox{\hyperlink{usb__transfer_8c_a4a41497e9ac637390a5147766c135968}{usbd\_xfer\_frame\_len}}(xfer, x);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00492}00492 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00493}00493                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}} < (\textcolor{keywordtype}{int})(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} ether\_header) +}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00494}00494                             \mbox{\hyperlink{if__iphethvar_8h_a39d9d4c2c53519bbd99c41455c31d726}{IPHETH\_RX\_ADJ}})) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00495}00495                                 m\_freem(m);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00496}00496                                 \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00497}00497                         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00498}00498 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00499}00499                         m\_adj(m, \mbox{\hyperlink{if__iphethvar_8h_a39d9d4c2c53519bbd99c41455c31d726}{IPHETH\_RX\_ADJ}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00500}00500 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00501}00501                         \textcolor{comment}{/* queue up mbuf */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00502}00502                         \mbox{\hyperlink{usb__ethernet_8c_a821ec2eb97a85d4969f2859e6f51a783}{uether\_rxmbuf}}(\&sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}}, m, \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}} -\/ \mbox{\hyperlink{if__iphethvar_8h_a39d9d4c2c53519bbd99c41455c31d726}{IPHETH\_RX\_ADJ}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00503}00503                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00504}00504 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00505}00505                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00506}00506         \textcolor{keywordflow}{case} \mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{USB\_ST\_SETUP}}:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00507}00507 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00508}00508                 \textcolor{keywordflow}{for} (x = 0; x != \mbox{\hyperlink{if__iphethvar_8h_afa05543e6344654114f1fa8409516a1b}{IPHETH\_RX\_FRAMES\_MAX}}; x++) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00509}00509                         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structipheth__softc_a4f9b376aea1459b61d2657d8bf9e8925}{sc\_rx\_buf}}[x] == NULL) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00510}00510                                 m = \mbox{\hyperlink{usb__ethernet_8c_a14312ec54b66868f7ec3342ea4b8066b}{uether\_newbuf}}();}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00511}00511                                 \textcolor{keywordflow}{if} (m == NULL)}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00512}00512                                         \textcolor{keywordflow}{goto} tr\_stall;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00513}00513 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00514}00514                                 \textcolor{comment}{/* cancel alignment for ethernet */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00515}00515                                 m\_adj(m, ETHER\_ALIGN);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00516}00516 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00517}00517                                 sc-\/>\mbox{\hyperlink{structipheth__softc_a4f9b376aea1459b61d2657d8bf9e8925}{sc\_rx\_buf}}[x] = m;}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00518}00518                         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00519}00519                                 m = sc-\/>\mbox{\hyperlink{structipheth__softc_a4f9b376aea1459b61d2657d8bf9e8925}{sc\_rx\_buf}}[x];}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00520}00520                         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00521}00521 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00522}00522                         \mbox{\hyperlink{usb__transfer_8c_a30d239cbfe3c02ec7da6e6dfe5055762}{usbd\_xfer\_set\_frame\_data}}(xfer, x, m-\/>m\_data, m-\/>m\_len);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00523}00523                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00524}00524                 \textcolor{comment}{/* set number of frames and start hardware */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00525}00525                 \mbox{\hyperlink{usb__transfer_8c_a10f82b008c3a5311e5210e44beaca014}{usbd\_xfer\_set\_frames}}(xfer, x);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00526}00526                 \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00527}00527                 \textcolor{comment}{/* flush any received frames */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00528}00528                 \mbox{\hyperlink{usb__ethernet_8c_a007aff306fb41573661e03ac71e45966}{uether\_rxflush}}(\&sc-\/>\mbox{\hyperlink{structipheth__softc_a1e1702cbdf162718d9e5cdee934e74b9}{sc\_ue}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00529}00529                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00530}00530 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00531}00531         \textcolor{keywordflow}{default}:                        \textcolor{comment}{/* Error */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00532}00532                 \mbox{\hyperlink{umass_8c_aa786fc43d4857c3ab9f2c777b4e6f9c5}{DPRINTF}}(\textcolor{stringliteral}{"{}error = \%s\(\backslash\)n"{}}, \mbox{\hyperlink{usb__error_8c_a2391eb446dce3e4368cacf781857774e}{usbd\_errstr}}(\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}));}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00533}00533 }
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00534}00534                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}} != \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}}) \{}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00535}00535         tr\_stall:}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00536}00536                         \textcolor{comment}{/* try to clear stall first */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00537}00537                         \mbox{\hyperlink{usb__transfer_8c_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00538}00538                         \mbox{\hyperlink{usb__transfer_8c_a10f82b008c3a5311e5210e44beaca014}{usbd\_xfer\_set\_frames}}(xfer, 0);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00539}00539                         \mbox{\hyperlink{usb__transfer_8c_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(xfer);}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00540}00540                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00541}00541                 \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00542}00542                 \textcolor{comment}{/* need to free the RX-\/mbufs when we are cancelled */}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00543}00543                 \mbox{\hyperlink{if__ipheth_8c_afcb1a7a405a60aebf513e6b6c7696e4f}{ipheth\_free\_queue}}(sc-\/>\mbox{\hyperlink{structipheth__softc_a4f9b376aea1459b61d2657d8bf9e8925}{sc\_rx\_buf}}, \mbox{\hyperlink{if__iphethvar_8h_afa05543e6344654114f1fa8409516a1b}{IPHETH\_RX\_FRAMES\_MAX}});}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00544}00544                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00545}00545         \}}
\DoxyCodeLine{\Hypertarget{if__ipheth_8c_source_l00546}00546 \}}

\end{DoxyCode}
