\hypertarget{jmphy_8c_source}{}\doxysection{jmphy.\+c}
\label{jmphy_8c_source}\index{dev/mii/jmphy.c@{dev/mii/jmphy.c}}
\mbox{\hyperlink{jmphy_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00011}00011 \textcolor{comment}{ *    notice unmodified, this list of conditions, and the following}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00012}00012 \textcolor{comment}{ *    disclaimer.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00013}00013 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00015}00015 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00016}00016 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00017}00017 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00018}00018 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00019}00019 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00020}00020 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00021}00021 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00022}00022 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00023}00023 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00024}00024 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00025}00025 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00026}00026 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00027}00027 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00028}00028 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00029}00029 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00030}00030 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00031}\mbox{\hyperlink{jmphy_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00031}} \mbox{\hyperlink{jmphy_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00032}00032 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00033}00033 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00034}00034 \textcolor{comment}{ * Driver for the JMicron JMP211 10/100/1000, JMP202 10/100 PHY.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00035}00035 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/socket.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <net/if.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <net/if\_var.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <net/if\_media.h>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{mii_8h}{dev/mii/mii.h}}>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{miivar_8h}{dev/mii/miivar.h}}>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00050}00050 \textcolor{preprocessor}{\#include "{}miidevs.h"{}}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00051}00051 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{jmphyreg_8h}{dev/mii/jmphyreg.h}}>}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00054}00054 \textcolor{preprocessor}{\#include "{}miibus\_if.h"{}}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00056}00056 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{jmphy_8c_a00ab309a7b3b638359d3fbbafda8ad09}{jmphy\_probe}}(device\_t);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00057}00057 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{jmphy_8c_ad816443504b9ab5d1edb098e2d19e114}{jmphy\_attach}}(device\_t);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00058}00058 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{jmphy_8c_a0d7018cfa8edf5bc38464fa0e9650e2f}{jmphy\_reset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00059}00059 \textcolor{keyword}{static} uint16\_t \mbox{\hyperlink{jmphy_8c_a0686003bd81cffbe5f92b98adfcac77c}{jmphy\_anar}}(\textcolor{keyword}{struct} ifmedia\_entry *);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00060}00060 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{jmphy_8c_a4065cc8686a9884b95fdb1341cb9b3b7}{jmphy\_setmedia}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *, \textcolor{keyword}{struct} ifmedia\_entry *);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00062}\mbox{\hyperlink{jmphy_8c_adbf96279cf275c90bf7f4b55bcbaf5ca}{00062}} \textcolor{keyword}{static} device\_method\_t \mbox{\hyperlink{jmphy_8c_adbf96279cf275c90bf7f4b55bcbaf5ca}{jmphy\_methods}}[] = \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00063}00063         \textcolor{comment}{/* Device interface. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00064}00064         DEVMETHOD(device\_probe,         \mbox{\hyperlink{jmphy_8c_a00ab309a7b3b638359d3fbbafda8ad09}{jmphy\_probe}}),}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00065}00065         DEVMETHOD(device\_attach,        \mbox{\hyperlink{jmphy_8c_ad816443504b9ab5d1edb098e2d19e114}{jmphy\_attach}}),}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00066}00066         DEVMETHOD(device\_detach,        \mbox{\hyperlink{mii__physubr_8c_af08a34e3932c19824be61fc41ee1083f}{mii\_phy\_detach}}),}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00067}00067         DEVMETHOD(device\_shutdown,      bus\_generic\_shutdown),}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00068}00068         DEVMETHOD\_END}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00069}00069 \};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00071}\mbox{\hyperlink{jmphy_8c_a4302ae3f5f67e9677d8f472fab74a29d}{00071}} \textcolor{keyword}{static} devclass\_t \mbox{\hyperlink{jmphy_8c_a4302ae3f5f67e9677d8f472fab74a29d}{jmphy\_devclass}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00072}\mbox{\hyperlink{jmphy_8c_aa0195097a968e9686b91d51229d3217d}{00072}} \textcolor{keyword}{static} driver\_t \mbox{\hyperlink{jmphy_8c_aa0195097a968e9686b91d51229d3217d}{jmphy\_driver}} = \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00073}00073         \textcolor{stringliteral}{"{}jmphy"{}},}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00074}00074         \mbox{\hyperlink{jmphy_8c_adbf96279cf275c90bf7f4b55bcbaf5ca}{jmphy\_methods}},}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00075}00075         \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structmii__softc}{mii\_softc}})}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00076}00076 \};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00078}\mbox{\hyperlink{jmphy_8c_ad701d4bbeacf46fc05eacfa4d8999ca7}{00078}} \mbox{\hyperlink{jmphy_8c_ad701d4bbeacf46fc05eacfa4d8999ca7}{DRIVER\_MODULE}}(jmphy, \mbox{\hyperlink{miibus__if_8m_a4cbc1805319b363b9b338406a4b2a683}{miibus}}, \mbox{\hyperlink{jmphy_8c_aa0195097a968e9686b91d51229d3217d}{jmphy\_driver}}, \mbox{\hyperlink{jmphy_8c_a4302ae3f5f67e9677d8f472fab74a29d}{jmphy\_devclass}}, 0, 0);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00079}00079 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00080}00080 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{jmphy_8c_a434d1316ebbc574a8f7d1f7b7bb0cf11}{jmphy\_service}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structmii__data}{mii\_data}} *, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00081}00081 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{jmphy_8c_a28d51485b46e7f24ffb13dbb93c79699}{jmphy\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00082}00082 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00083}\mbox{\hyperlink{jmphy_8c_a219269d0f704d524bf4ce32eb81aa446}{00083}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__phydesc}{mii\_phydesc}} \mbox{\hyperlink{jmphy_8c_a219269d0f704d524bf4ce32eb81aa446}{jmphys}}[] = \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00084}00084         \mbox{\hyperlink{miivar_8h_ae87ddbe9ffefd4caca54be68c7b281fc}{MII\_PHY\_DESC}}(JMICRON, JMP202),}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00085}00085         \mbox{\hyperlink{miivar_8h_ae87ddbe9ffefd4caca54be68c7b281fc}{MII\_PHY\_DESC}}(JMICRON, JMP211),}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00086}00086         \mbox{\hyperlink{miivar_8h_a4cc657798701d214afbeff2b27c5083d}{MII\_PHY\_END}}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00087}00087 \};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00088}00088 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00089}\mbox{\hyperlink{jmphy_8c_a1721e8ccdef4c4ac5e0651ceb7247c3c}{00089}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__phy__funcs}{mii\_phy\_funcs}} \mbox{\hyperlink{jmphy_8c_a1721e8ccdef4c4ac5e0651ceb7247c3c}{jmphy\_funcs}} = \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00090}00090         \mbox{\hyperlink{jmphy_8c_a434d1316ebbc574a8f7d1f7b7bb0cf11}{jmphy\_service}},}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00091}00091         \mbox{\hyperlink{jmphy_8c_a28d51485b46e7f24ffb13dbb93c79699}{jmphy\_status}},}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00092}00092         \mbox{\hyperlink{jmphy_8c_a0d7018cfa8edf5bc38464fa0e9650e2f}{jmphy\_reset}}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00093}00093 \};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00095}00095 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00096}\mbox{\hyperlink{jmphy_8c_a00ab309a7b3b638359d3fbbafda8ad09}{00096}} \mbox{\hyperlink{jmphy_8c_a00ab309a7b3b638359d3fbbafda8ad09}{jmphy\_probe}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00097}00097 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00098}00098 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00099}00099         \textcolor{keywordflow}{return} (\mbox{\hyperlink{mii__physubr_8c_a6eae4dd21de85ca536b06467bf0a5f88}{mii\_phy\_dev\_probe}}(dev, \mbox{\hyperlink{jmphy_8c_a219269d0f704d524bf4ce32eb81aa446}{jmphys}}, BUS\_PROBE\_DEFAULT));}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00100}00100 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00102}00102 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00103}\mbox{\hyperlink{jmphy_8c_ad816443504b9ab5d1edb098e2d19e114}{00103}} \mbox{\hyperlink{jmphy_8c_ad816443504b9ab5d1edb098e2d19e114}{jmphy\_attach}}(device\_t dev)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00104}00104 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00105}00105         u\_int flags;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00107}00107         flags = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00108}00108         \textcolor{keywordflow}{if} (\mbox{\hyperlink{mii_8c_a35bcd1b02f42ca5891e8cb303f431285}{mii\_dev\_mac\_match}}(dev, \textcolor{stringliteral}{"{}jme"{}}) \&\&}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00109}00109             (miibus\_get\_flags(dev) \& \mbox{\hyperlink{miivar_8h_a0314c7a6cff6515cb3c5871216b4ee79}{MIIF\_MACPRIV0}}) != 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00110}00110                 flags |= \mbox{\hyperlink{miivar_8h_aeff9132795910ffcb66a26503a6bd09b}{MIIF\_PHYPRIV0}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00111}00111         \mbox{\hyperlink{mii__physubr_8c_a50acf7ba3fab73b23c13fe7da8c93f1d}{mii\_phy\_dev\_attach}}(dev, flags, \&\mbox{\hyperlink{jmphy_8c_a1721e8ccdef4c4ac5e0651ceb7247c3c}{jmphy\_funcs}}, 1);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00112}00112         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00113}00113 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00114}00114 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00115}00115 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00116}\mbox{\hyperlink{jmphy_8c_a434d1316ebbc574a8f7d1f7b7bb0cf11}{00116}} \mbox{\hyperlink{jmphy_8c_a434d1316ebbc574a8f7d1f7b7bb0cf11}{jmphy\_service}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structmii__data}{mii\_data}} *mii, \textcolor{keywordtype}{int} cmd)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00117}00117 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00118}00118         \textcolor{keyword}{struct }ifmedia\_entry *ife = mii-\/>\mbox{\hyperlink{structmii__data_ac0e7ceb0ad8cc3eb2e55a6947d4c6fd0}{mii\_media}}.ifm\_cur;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00120}00120         \textcolor{keywordflow}{switch} (cmd) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00121}00121         \textcolor{keywordflow}{case} \mbox{\hyperlink{miivar_8h_a5ee687df11441661206e4d2922ab5a52}{MII\_POLLSTAT}}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00122}00122                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00124}00124         \textcolor{keywordflow}{case} \mbox{\hyperlink{miivar_8h_a6c5cb4a5233e6b1e8a8542636e8ba4c8}{MII\_MEDIACHG}}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00125}00125                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{jmphy_8c_a4065cc8686a9884b95fdb1341cb9b3b7}{jmphy\_setmedia}}(sc, ife) != EJUSTRETURN)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00126}00126                         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00127}00127                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00128}00128 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00129}00129         \textcolor{keywordflow}{case} \mbox{\hyperlink{miivar_8h_a7aba758235b2d688fc41842a167187e5}{MII\_TICK}}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00130}00130                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00131}00131 \textcolor{comment}{                 * Only used for autonegotiation.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00132}00132 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00133}00133                 \textcolor{keywordflow}{if} (IFM\_SUBTYPE(ife-\/>ifm\_media) != IFM\_AUTO) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00134}00134                         sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00135}00135                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00136}00136                 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00138}00138                 \textcolor{comment}{/* Check for link. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00139}00139                 \textcolor{keywordflow}{if} ((\mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{jmphyreg_8h_a0b97ddaa8595337bb1ea0d4e794acc28}{JMPHY\_SSR}}) \& \mbox{\hyperlink{jmphyreg_8h_a6bf060380a0b9e04f3ec40e5d84850d5}{JMPHY\_SSR\_LINK\_UP}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00140}00140                         sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00141}00141                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00142}00142                 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00143}00143 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00144}00144                 \textcolor{comment}{/* Announce link loss right after it happens. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00145}00145                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}}++ == 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00146}00146                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00147}00147                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} <= sc-\/>\mbox{\hyperlink{structmii__softc_a360601e70b34832b08ce0b1db3b39113}{mii\_anegticks}})}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00148}00148                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00150}00150                 sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00151}00151                 (void)\mbox{\hyperlink{jmphy_8c_a4065cc8686a9884b95fdb1341cb9b3b7}{jmphy\_setmedia}}(sc, ife);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00152}00152                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00153}00153         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00155}00155         \textcolor{comment}{/* Update the media status. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00156}00156         \mbox{\hyperlink{miivar_8h_a1c1cdb714bf40ba701256727dd6a73c5}{PHY\_STATUS}}(sc);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00157}00157 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00158}00158         \textcolor{comment}{/* Callback if something changed. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00159}00159         \mbox{\hyperlink{mii__physubr_8c_ac5a93e41e086c93143a04d9d4548b251}{mii\_phy\_update}}(sc, cmd);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00160}00160         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00161}00161 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00162}00162 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00163}00163 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00164}\mbox{\hyperlink{jmphy_8c_a28d51485b46e7f24ffb13dbb93c79699}{00164}} \mbox{\hyperlink{jmphy_8c_a28d51485b46e7f24ffb13dbb93c79699}{jmphy\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00165}00165 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00166}00166         \textcolor{keyword}{struct }\mbox{\hyperlink{structmii__data}{mii\_data}} *mii = sc-\/>\mbox{\hyperlink{structmii__softc_a12011aec864a92fb63b711b43e6b4356}{mii\_pdata}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00167}00167         \textcolor{keywordtype}{int} bmcr, ssr;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00168}00168 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00169}00169         mii-\/>\mbox{\hyperlink{structmii__data_a15c66b8658a144ac3294603a8146ac09}{mii\_media\_status}} = IFM\_AVALID;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00170}00170         mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} = IFM\_ETHER;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00172}00172         ssr = \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{jmphyreg_8h_a0b97ddaa8595337bb1ea0d4e794acc28}{JMPHY\_SSR}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00173}00173         \textcolor{keywordflow}{if} ((ssr \& \mbox{\hyperlink{jmphyreg_8h_a6bf060380a0b9e04f3ec40e5d84850d5}{JMPHY\_SSR\_LINK\_UP}}) != 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00174}00174                 mii-\/>\mbox{\hyperlink{structmii__data_a15c66b8658a144ac3294603a8146ac09}{mii\_media\_status}} |= IFM\_ACTIVE;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00175}00175 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00176}00176         bmcr = \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a9137acedc42ff140f244da7473cff29e}{MII\_BMCR}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00177}00177         \textcolor{keywordflow}{if} ((bmcr \& \mbox{\hyperlink{mii_8h_a28b8dcb818bc18a079b39b5517c27e3a}{BMCR\_ISO}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00178}00178                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_NONE;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00179}00179                 mii-\/>\mbox{\hyperlink{structmii__data_a15c66b8658a144ac3294603a8146ac09}{mii\_media\_status}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00180}00180                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00181}00181         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00182}00182 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00183}00183         \textcolor{keywordflow}{if} ((bmcr \& \mbox{\hyperlink{mii_8h_aafd596a9125ddece08d5a9798dce42d6}{BMCR\_LOOP}}) != 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00184}00184                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_LOOP;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00185}00185 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00186}00186         \textcolor{keywordflow}{if} ((ssr \& \mbox{\hyperlink{jmphyreg_8h_a2aba1822e96a87d52bd1c930d386cb17}{JMPHY\_SSR\_SPD\_DPLX\_RESOLVED}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00187}00187                 \textcolor{comment}{/* Erg, still trying, I guess... */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00188}00188                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_NONE;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00189}00189                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00190}00190         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00192}00192         \textcolor{keywordflow}{switch} ((ssr \& \mbox{\hyperlink{jmphyreg_8h_a95195cb49e0049aea84bae951354e770}{JMPHY\_SSR\_SPEED\_MASK}})) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00193}00193         \textcolor{keywordflow}{case} \mbox{\hyperlink{jmphyreg_8h_a720574b50845b64cbbc047c1332fd63d}{JMPHY\_SSR\_SPEED\_1000}}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00194}00194                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_1000\_T;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00195}00195                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00196}00196 \textcolor{comment}{                 * jmphy(4) got a valid link so reset mii\_ticks.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00197}00197 \textcolor{comment}{                 * Resetting mii\_ticks is needed in order to}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00198}00198 \textcolor{comment}{                 * detect link loss after auto-\/negotiation.}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00199}00199 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00200}00200                 sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00201}00201                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00202}00202         \textcolor{keywordflow}{case} \mbox{\hyperlink{jmphyreg_8h_adbbdfe59891de08a57fc3686e153a9f0}{JMPHY\_SSR\_SPEED\_100}}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00203}00203                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_100\_TX;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00204}00204                 sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00205}00205                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00206}00206         \textcolor{keywordflow}{case} \mbox{\hyperlink{jmphyreg_8h_aedc1ac44400aa916d98c2a1a294f8eb9}{JMPHY\_SSR\_SPEED\_10}}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00207}00207                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_10\_T;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00208}00208                 sc-\/>\mbox{\hyperlink{structmii__softc_a4be7f594fccaa2de7950161135edb3eb}{mii\_ticks}} = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00209}00209                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00210}00210         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00211}00211                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_NONE;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00212}00212                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00213}00213         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00214}00214 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00215}00215         \textcolor{keywordflow}{if} ((ssr \& \mbox{\hyperlink{jmphyreg_8h_ab748e8ffc363e60437f94ed90c19ebe6}{JMPHY\_SSR\_DUPLEX}}) != 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00216}00216                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_FDX | \mbox{\hyperlink{mii__physubr_8c_a02a13013ccece7f7569fce9ab65424d3}{mii\_phy\_flowstatus}}(sc);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00217}00217         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00218}00218                 mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_HDX;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00219}00219 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00220}00220         \textcolor{keywordflow}{if} (IFM\_SUBTYPE(mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}}) == IFM\_1000\_T) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00221}00221                 \textcolor{keywordflow}{if} ((\mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a91e1cbedb89e3b64f611f568ab843b5a}{MII\_100T2SR}}) \& \mbox{\hyperlink{mii_8h_a048ba93f00872845d1f32f3807cfef63}{GTSR\_MS\_RES}}) != 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00222}00222                         mii-\/>\mbox{\hyperlink{structmii__data_a374b422968b2e4f40959161a1f6ed490}{mii\_media\_active}} |= IFM\_ETH\_MASTER;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00223}00223         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00224}00224 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00226}00226 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00227}\mbox{\hyperlink{jmphy_8c_a0d7018cfa8edf5bc38464fa0e9650e2f}{00227}} \mbox{\hyperlink{jmphy_8c_a0d7018cfa8edf5bc38464fa0e9650e2f}{jmphy\_reset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *sc)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00228}00228 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00229}00229         uint16\_t t2cr, \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00230}00230         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00231}00231 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00232}00232         \textcolor{comment}{/* Disable sleep mode. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00233}00233         \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_a76dff0caae7e0491cd02dae09dc1f470}{JMPHY\_TMCTL}},}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00234}00234             \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{jmphyreg_8h_a76dff0caae7e0491cd02dae09dc1f470}{JMPHY\_TMCTL}}) \& \string~\mbox{\hyperlink{jmphyreg_8h_a5badaab0866e43d985d0fc9af1ae9808}{JMPHY\_TMCTL\_SLEEP\_ENB}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00235}00235         \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_a9137acedc42ff140f244da7473cff29e}{MII\_BMCR}}, \mbox{\hyperlink{mii_8h_a602d307dfe6dbbf35e6b62f0914f5594}{BMCR\_RESET}} | \mbox{\hyperlink{mii_8h_a8d92e7dc8997005e43add732fba16a0d}{BMCR\_AUTOEN}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00236}00236 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00237}00237         \textcolor{keywordflow}{for} (i = 0; i < 1000; i++) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00238}00238                 DELAY(1);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00239}00239                 \textcolor{keywordflow}{if} ((\mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a9137acedc42ff140f244da7473cff29e}{MII\_BMCR}}) \& \mbox{\hyperlink{mii_8h_a602d307dfe6dbbf35e6b62f0914f5594}{BMCR\_RESET}}) == 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00240}00240                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00241}00241         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00242}00242         \textcolor{comment}{/* Perform vendor recommended PHY calibration. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00243}00243         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structmii__softc_a99b489a558d699d0a69ffd5405db81aa}{mii\_flags}} \& \mbox{\hyperlink{miivar_8h_aeff9132795910ffcb66a26503a6bd09b}{MIIF\_PHYPRIV0}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00244}00244                 \textcolor{comment}{/* Select PHY test mode 1. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00245}00245                 t2cr = \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a17295b0b6d416c072e4fe4d593f42882}{MII\_100T2CR}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00246}00246                 t2cr \&= \string~GTCR\_TEST\_MASK;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00247}00247                 t2cr |= 0x2000;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00248}00248                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_a17295b0b6d416c072e4fe4d593f42882}{MII\_100T2CR}}, t2cr);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00249}00249                 \textcolor{comment}{/* Apply calibration patch. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00250}00250                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_ae4f897ac69cf0cad6712a5c810adf697}{JMPHY\_SPEC\_ADDR}}, \mbox{\hyperlink{jmphyreg_8h_aaded0f49fc829f51ac0aeb7b5cab9be5}{JMPHY\_SPEC\_ADDR\_READ}} |}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00251}00251                     \mbox{\hyperlink{jmphyreg_8h_a83b071c2a1b03246a225be8b3adad851}{JMPHY\_EXT\_COMM\_2}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00252}00252                 \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}} = \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{jmphyreg_8h_aabbc96c5f56394afc26cb4ae69609da4}{JMPHY\_SPEC\_DATA}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00253}00253                 \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}} \&= \string~0x0002;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00254}00254                 \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}} |= 0x0010 | 0x0001;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00255}00255                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_aabbc96c5f56394afc26cb4ae69609da4}{JMPHY\_SPEC\_DATA}}, \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00256}00256                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_ae4f897ac69cf0cad6712a5c810adf697}{JMPHY\_SPEC\_ADDR}}, \mbox{\hyperlink{jmphyreg_8h_a6fa6123151bebd3da260470977014cba}{JMPHY\_SPEC\_ADDR\_WRITE}} |}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00257}00257                     \mbox{\hyperlink{jmphyreg_8h_a83b071c2a1b03246a225be8b3adad851}{JMPHY\_EXT\_COMM\_2}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00258}00258 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00259}00259                 \textcolor{comment}{/* XXX 20ms to complete recalibration. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00260}00260                 DELAY(20 * 1000);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00261}00261 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00262}00262                 \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a17295b0b6d416c072e4fe4d593f42882}{MII\_100T2CR}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00263}00263                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_ae4f897ac69cf0cad6712a5c810adf697}{JMPHY\_SPEC\_ADDR}}, \mbox{\hyperlink{jmphyreg_8h_aaded0f49fc829f51ac0aeb7b5cab9be5}{JMPHY\_SPEC\_ADDR\_READ}} |}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00264}00264                     \mbox{\hyperlink{jmphyreg_8h_a83b071c2a1b03246a225be8b3adad851}{JMPHY\_EXT\_COMM\_2}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00265}00265                 \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}} = \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{jmphyreg_8h_aabbc96c5f56394afc26cb4ae69609da4}{JMPHY\_SPEC\_DATA}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00266}00266                 \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}} \&= \string~(0x0001 | 0x0002 | 0x0010);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00267}00267                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_aabbc96c5f56394afc26cb4ae69609da4}{JMPHY\_SPEC\_DATA}}, \mbox{\hyperlink{miibus__if_8m_aa0ccb5ee6d882ee3605ff47745c6467b}{val}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00268}00268                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{jmphyreg_8h_ae4f897ac69cf0cad6712a5c810adf697}{JMPHY\_SPEC\_ADDR}}, \mbox{\hyperlink{jmphyreg_8h_a6fa6123151bebd3da260470977014cba}{JMPHY\_SPEC\_ADDR\_WRITE}} |}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00269}00269                     \mbox{\hyperlink{jmphyreg_8h_a83b071c2a1b03246a225be8b3adad851}{JMPHY\_EXT\_COMM\_2}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00270}00270                 \textcolor{comment}{/* Disable PHY test mode. */}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00271}00271                 \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a17295b0b6d416c072e4fe4d593f42882}{MII\_100T2CR}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00272}00272                 t2cr \&= \string~GTCR\_TEST\_MASK;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00273}00273                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_a17295b0b6d416c072e4fe4d593f42882}{MII\_100T2CR}}, t2cr);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00274}00274         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00275}00275 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00276}00276 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00277}00277 \textcolor{keyword}{static} uint16\_t}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00278}\mbox{\hyperlink{jmphy_8c_a0686003bd81cffbe5f92b98adfcac77c}{00278}} \mbox{\hyperlink{jmphy_8c_a0686003bd81cffbe5f92b98adfcac77c}{jmphy\_anar}}(\textcolor{keyword}{struct} ifmedia\_entry *ife)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00279}00279 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00280}00280         uint16\_t anar;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00281}00281 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00282}00282         anar = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00283}00283         \textcolor{keywordflow}{switch} (IFM\_SUBTYPE(ife-\/>ifm\_media)) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00284}00284         \textcolor{keywordflow}{case} IFM\_AUTO:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00285}00285                 anar |= \mbox{\hyperlink{mii_8h_acc5b03ac472df013d7fe11cd83d8e1cd}{ANAR\_TX\_FD}} | \mbox{\hyperlink{mii_8h_ad283e403f5a3845ec5eb8fb71e5add8f}{ANAR\_TX}} | \mbox{\hyperlink{mii_8h_ac4e51c5edcd6ddc1ec760bfe89ac3be4}{ANAR\_10\_FD}} | \mbox{\hyperlink{mii_8h_afffabbb091cbb816be17b68290d91a46}{ANAR\_10}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00286}00286                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00287}00287         \textcolor{keywordflow}{case} IFM\_1000\_T:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00288}00288                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00289}00289         \textcolor{keywordflow}{case} IFM\_100\_TX:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00290}00290                 anar |= \mbox{\hyperlink{mii_8h_ad283e403f5a3845ec5eb8fb71e5add8f}{ANAR\_TX}} | \mbox{\hyperlink{mii_8h_acc5b03ac472df013d7fe11cd83d8e1cd}{ANAR\_TX\_FD}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00291}00291                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00292}00292         \textcolor{keywordflow}{case} IFM\_10\_T:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00293}00293                 anar |= \mbox{\hyperlink{mii_8h_afffabbb091cbb816be17b68290d91a46}{ANAR\_10}} | \mbox{\hyperlink{mii_8h_ac4e51c5edcd6ddc1ec760bfe89ac3be4}{ANAR\_10\_FD}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00294}00294                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00295}00295         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00296}00296                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00297}00297         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00298}00298 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00299}00299         \textcolor{keywordflow}{return} (anar);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00300}00300 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00301}00301 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00302}00302 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00303}\mbox{\hyperlink{jmphy_8c_a4065cc8686a9884b95fdb1341cb9b3b7}{00303}} \mbox{\hyperlink{jmphy_8c_a4065cc8686a9884b95fdb1341cb9b3b7}{jmphy\_setmedia}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmii__softc}{mii\_softc}} *sc, \textcolor{keyword}{struct} ifmedia\_entry *ife)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00304}00304 \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00305}00305         uint16\_t anar, bmcr, gig;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00306}00306 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00307}00307         gig = 0;}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00308}00308         bmcr = \mbox{\hyperlink{miivar_8h_a4f9acdc044cd8d94bd80432e4f01bcd2}{PHY\_READ}}(sc, \mbox{\hyperlink{mii_8h_a9137acedc42ff140f244da7473cff29e}{MII\_BMCR}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00309}00309         \textcolor{keywordflow}{switch} (IFM\_SUBTYPE(ife-\/>ifm\_media)) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00310}00310         \textcolor{keywordflow}{case} IFM\_AUTO:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00311}00311                 gig |= \mbox{\hyperlink{mii_8h_ac0c6d14e65e3e49b1cfcb95f0d914ef1}{GTCR\_ADV\_1000TFDX}} | \mbox{\hyperlink{mii_8h_a4a266f25c59599c5d226af57878fc1e8}{GTCR\_ADV\_1000THDX}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00312}00312                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00313}00313         \textcolor{keywordflow}{case} IFM\_1000\_T:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00314}00314                 gig |= \mbox{\hyperlink{mii_8h_ac0c6d14e65e3e49b1cfcb95f0d914ef1}{GTCR\_ADV\_1000TFDX}} | \mbox{\hyperlink{mii_8h_a4a266f25c59599c5d226af57878fc1e8}{GTCR\_ADV\_1000THDX}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00315}00315                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00316}00316         \textcolor{keywordflow}{case} IFM\_100\_TX:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00317}00317         \textcolor{keywordflow}{case} IFM\_10\_T:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00318}00318                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00319}00319         \textcolor{keywordflow}{case} IFM\_NONE:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00320}00320                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_a9137acedc42ff140f244da7473cff29e}{MII\_BMCR}}, bmcr | \mbox{\hyperlink{mii_8h_a28b8dcb818bc18a079b39b5517c27e3a}{BMCR\_ISO}} | \mbox{\hyperlink{mii_8h_a268f2a026617b4490ae48826b4af8a7b}{BMCR\_PDOWN}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00321}00321                 \textcolor{keywordflow}{return} (EJUSTRETURN);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00322}00322         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00323}00323                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00324}00324         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00325}00325 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00326}00326         anar = \mbox{\hyperlink{jmphy_8c_a0686003bd81cffbe5f92b98adfcac77c}{jmphy\_anar}}(ife);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00327}00327         \textcolor{keywordflow}{if} ((IFM\_SUBTYPE(ife-\/>ifm\_media) == IFM\_AUTO ||}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00328}00328             (ife-\/>ifm\_media \& IFM\_FDX) != 0) \&\&}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00329}00329             ((ife-\/>ifm\_media \& IFM\_FLOW) != 0 ||}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00330}00330             (sc-\/>\mbox{\hyperlink{structmii__softc_a99b489a558d699d0a69ffd5405db81aa}{mii\_flags}} \& \mbox{\hyperlink{miivar_8h_a16048a4e2a1da2f657f54b516df4b1fe}{MIIF\_FORCEPAUSE}}) != 0))}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00331}00331                 anar |= \mbox{\hyperlink{mii_8h_a08a7a407970026feccc3ead3a749121c}{ANAR\_PAUSE\_TOWARDS}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00332}00332 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00333}00333         \textcolor{keywordflow}{if} ((sc-\/>\mbox{\hyperlink{structmii__softc_a99b489a558d699d0a69ffd5405db81aa}{mii\_flags}} \& \mbox{\hyperlink{miivar_8h_a376a284eabf873a1d35c3d52c93e8502}{MIIF\_HAVE\_GTCR}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00334}00334                 \textcolor{keywordflow}{if} (IFM\_SUBTYPE(ife-\/>ifm\_media) == IFM\_1000\_T) \{}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00335}00335                         gig |= \mbox{\hyperlink{mii_8h_adb9180da2be476b08b85f9f4f331b18d}{GTCR\_MAN\_MS}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00336}00336                         \textcolor{keywordflow}{if} ((ife-\/>ifm\_media \& IFM\_ETH\_MASTER) != 0)}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00337}00337                                 gig |= \mbox{\hyperlink{mii_8h_a3d7cdf3121ba79b18a1dde71110acbb9}{GTCR\_ADV\_MS}};}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00338}00338                 \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00339}00339                 \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_a17295b0b6d416c072e4fe4d593f42882}{MII\_100T2CR}}, gig);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00340}00340         \}}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00341}00341         \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_aacb2ab0ea5579b5d9e30b075991add1d}{MII\_ANAR}}, anar | \mbox{\hyperlink{mii_8h_a890fc8f217d4396d1b0c65f1cefe9a2e}{ANAR\_CSMA}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00342}00342         \mbox{\hyperlink{miivar_8h_af302bd91f8177e3ca317b822f00680b5}{PHY\_WRITE}}(sc, \mbox{\hyperlink{mii_8h_a9137acedc42ff140f244da7473cff29e}{MII\_BMCR}}, bmcr | \mbox{\hyperlink{mii_8h_a8d92e7dc8997005e43add732fba16a0d}{BMCR\_AUTOEN}} | \mbox{\hyperlink{mii_8h_a2ed0562d5bde5bf56ec01a2e0b9a12a7}{BMCR\_STARTNEG}});}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00343}00343 }
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00344}00344         \textcolor{keywordflow}{return} (EJUSTRETURN);}
\DoxyCodeLine{\Hypertarget{jmphy_8c_source_l00345}00345 \}}

\end{DoxyCode}
