The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/ncsw/Peripherals/FM/MAC/fm_mac.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright 2008-2012 Freescale Semiconductor Inc.
    3  *
    4  * Redistribution and use in source and binary forms, with or without
    5  * modification, are permitted provided that the following conditions are met:
    6  *     * Redistributions of source code must retain the above copyright
    7  *       notice, this list of conditions and the following disclaimer.
    8  *     * Redistributions in binary form must reproduce the above copyright
    9  *       notice, this list of conditions and the following disclaimer in the
   10  *       documentation and/or other materials provided with the distribution.
   11  *     * Neither the name of Freescale Semiconductor nor the
   12  *       names of its contributors may be used to endorse or promote products
   13  *       derived from this software without specific prior written permission.
   14  *
   15  *
   16  * ALTERNATIVELY, this software may be distributed under the terms of the
   17  * GNU General Public License ("GPL") as published by the Free Software
   18  * Foundation, either version 2 of that License or (at your option) any
   19  * later version.
   20  *
   21  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
   22  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   23  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   24  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
   25  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   26  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   27  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   28  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   31  */
   32 
   33 
   34 /******************************************************************************
   35  @File          fm_mac.c
   36 
   37  @Description   FM MAC ...
   38 *//***************************************************************************/
   39 #include "std_ext.h"
   40 #include "string_ext.h"
   41 #include "sprint_ext.h"
   42 #include "error_ext.h"
   43 #include "fm_ext.h"
   44 
   45 #include "fm_common.h"
   46 #include "fm_mac.h"
   47 
   48 
   49 /* ......................................................................... */
   50 
   51 t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam)
   52 {
   53     t_FmMacControllerDriver *p_FmMacControllerDriver;
   54     uint16_t                fmClkFreq;
   55 
   56     SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_INVALID_HANDLE, NULL);
   57 
   58     fmClkFreq = FmGetClockFreq(p_FmMacParam->h_Fm);
   59     if (fmClkFreq == 0)
   60     {
   61         REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Can't get clock for MAC!"));
   62         return NULL;
   63     }
   64 
   65 #if (DPAA_VERSION == 10)
   66     if (ENET_SPEED_FROM_MODE(p_FmMacParam->enetMode) < e_ENET_SPEED_10000)
   67         p_FmMacControllerDriver = (t_FmMacControllerDriver *)DTSEC_Config(p_FmMacParam);
   68     else
   69 #if FM_MAX_NUM_OF_10G_MACS > 0
   70         p_FmMacControllerDriver = (t_FmMacControllerDriver *)TGEC_Config(p_FmMacParam);
   71 #else
   72         p_FmMacControllerDriver = NULL;
   73 #endif /* FM_MAX_NUM_OF_10G_MACS > 0 */
   74 #else
   75     p_FmMacControllerDriver = (t_FmMacControllerDriver *)MEMAC_Config(p_FmMacParam);
   76 #endif /* (DPAA_VERSION == 10) */
   77 
   78     if (!p_FmMacControllerDriver)
   79         return NULL;
   80 
   81     p_FmMacControllerDriver->h_Fm           = p_FmMacParam->h_Fm;
   82     p_FmMacControllerDriver->enetMode       = p_FmMacParam->enetMode;
   83     p_FmMacControllerDriver->macId          = p_FmMacParam->macId;
   84     p_FmMacControllerDriver->resetOnInit    = DEFAULT_resetOnInit;
   85 
   86     p_FmMacControllerDriver->clkFreq        = fmClkFreq;
   87 
   88     return (t_Handle)p_FmMacControllerDriver;
   89 }
   90 
   91 /* ......................................................................... */
   92 
   93 t_Error FM_MAC_Init (t_Handle h_FmMac)
   94 {
   95     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
   96 
   97     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
   98 
   99     if (p_FmMacControllerDriver->resetOnInit &&
  100         !p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit &&
  101         (FmResetMac(p_FmMacControllerDriver->h_Fm,
  102                     ((ENET_INTERFACE_FROM_MODE(p_FmMacControllerDriver->enetMode) == e_ENET_IF_XGMII) ?
  103                         e_FM_MAC_10G : e_FM_MAC_1G),
  104                     p_FmMacControllerDriver->macId) != E_OK))
  105         RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Can't reset MAC!"));
  106 
  107     if (p_FmMacControllerDriver->f_FM_MAC_Init)
  108         return p_FmMacControllerDriver->f_FM_MAC_Init(h_FmMac);
  109     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  110 }
  111 
  112 /* ......................................................................... */
  113 
  114 t_Error FM_MAC_Free (t_Handle h_FmMac)
  115 {
  116     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  117 
  118     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  119 
  120     if (p_FmMacControllerDriver->f_FM_MAC_Free)
  121         return p_FmMacControllerDriver->f_FM_MAC_Free(h_FmMac);
  122 
  123     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  124 }
  125 
  126 /* ......................................................................... */
  127 
  128 t_Error FM_MAC_ConfigResetOnInit (t_Handle h_FmMac, bool enable)
  129 {
  130     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  131 
  132     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  133 
  134     if (p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit)
  135         return p_FmMacControllerDriver->f_FM_MAC_ConfigResetOnInit(h_FmMac, enable);
  136 
  137     p_FmMacControllerDriver->resetOnInit = enable;
  138 
  139     return E_OK;
  140 }
  141 
  142 /* ......................................................................... */
  143 
  144 t_Error FM_MAC_ConfigLoopback (t_Handle h_FmMac, bool newVal)
  145 {
  146     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  147 
  148     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  149 
  150     if (p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback)
  151         return p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback(h_FmMac, newVal);
  152 
  153     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  154 }
  155 
  156 /* ......................................................................... */
  157 
  158 t_Error FM_MAC_ConfigMaxFrameLength (t_Handle h_FmMac, uint16_t newVal)
  159 {
  160     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  161 
  162     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  163 
  164     if (p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength)
  165         return p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength(h_FmMac, newVal);
  166     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  167 }
  168 
  169 /* ......................................................................... */
  170 
  171 t_Error FM_MAC_ConfigWan (t_Handle h_FmMac, bool flag)
  172 {
  173    t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  174 
  175     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  176 
  177     if (p_FmMacControllerDriver->f_FM_MAC_ConfigWan)
  178         return p_FmMacControllerDriver->f_FM_MAC_ConfigWan(h_FmMac, flag);
  179 
  180     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  181 }
  182 
  183 /* ......................................................................... */
  184 
  185 t_Error FM_MAC_ConfigPadAndCrc (t_Handle h_FmMac, bool newVal)
  186 {
  187     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  188 
  189     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  190 
  191     if (p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc)
  192         return p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc(h_FmMac, newVal);
  193 
  194     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  195 }
  196 
  197 /* ......................................................................... */
  198 
  199 t_Error FM_MAC_ConfigHalfDuplex (t_Handle h_FmMac, bool newVal)
  200 {
  201     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  202 
  203     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  204 
  205     if (p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex)
  206         return p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex(h_FmMac,newVal);
  207 
  208     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  209 }
  210 
  211 /* ......................................................................... */
  212 
  213 t_Error FM_MAC_ConfigTbiPhyAddr (t_Handle h_FmMac, uint8_t newVal)
  214 {
  215     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  216 
  217     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  218 
  219     if (p_FmMacControllerDriver->f_FM_MAC_ConfigTbiPhyAddr)
  220         return p_FmMacControllerDriver->f_FM_MAC_ConfigTbiPhyAddr(h_FmMac,newVal);
  221 
  222     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  223 }
  224 
  225 /* ......................................................................... */
  226 
  227 t_Error FM_MAC_ConfigLengthCheck (t_Handle h_FmMac, bool newVal)
  228 {
  229     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  230 
  231     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  232 
  233     if (p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck)
  234         return p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck(h_FmMac,newVal);
  235 
  236     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  237 }
  238 
  239 /* ......................................................................... */
  240 
  241 t_Error FM_MAC_ConfigException (t_Handle h_FmMac, e_FmMacExceptions ex, bool enable)
  242 {
  243     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  244 
  245     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  246 
  247     if (p_FmMacControllerDriver->f_FM_MAC_ConfigException)
  248         return p_FmMacControllerDriver->f_FM_MAC_ConfigException(h_FmMac, ex, enable);
  249 
  250     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  251 }
  252 
  253 #ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004
  254 /* ......................................................................... */
  255 
  256 t_Error FM_MAC_ConfigSkipFman11Workaround (t_Handle h_FmMac)
  257 {
  258     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  259 
  260     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  261 
  262     if (p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround)
  263         return p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround(h_FmMac);
  264 
  265     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  266 }
  267 #endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */
  268 
  269 
  270 /*****************************************************************************/
  271 /* Run Time Control                                                          */
  272 /*****************************************************************************/
  273 
  274 /* ......................................................................... */
  275 
  276 t_Error FM_MAC_Enable  (t_Handle h_FmMac,  e_CommMode mode)
  277 {
  278     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  279 
  280     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  281 
  282     if (p_FmMacControllerDriver->f_FM_MAC_Enable)
  283         return p_FmMacControllerDriver->f_FM_MAC_Enable(h_FmMac, mode);
  284 
  285     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  286 }
  287 
  288 /* ......................................................................... */
  289 
  290 t_Error FM_MAC_Disable (t_Handle h_FmMac, e_CommMode mode)
  291 {
  292     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  293 
  294     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  295 
  296     if (p_FmMacControllerDriver->f_FM_MAC_Disable)
  297         return p_FmMacControllerDriver->f_FM_MAC_Disable(h_FmMac, mode);
  298 
  299     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  300 }
  301 
  302 t_Error FM_MAC_Resume (t_Handle h_FmMac)
  303 {
  304     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  305 
  306     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  307 
  308     if (p_FmMacControllerDriver->f_FM_MAC_Resume)
  309         return p_FmMacControllerDriver->f_FM_MAC_Resume(h_FmMac);
  310 
  311     return E_OK;
  312 }
  313 
  314 /* ......................................................................... */
  315 
  316 t_Error FM_MAC_Enable1588TimeStamp (t_Handle h_FmMac)
  317 {
  318     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  319 
  320     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  321 
  322     if (p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp)
  323         return p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp(h_FmMac);
  324 
  325     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  326 }
  327 
  328 /* ......................................................................... */
  329 
  330 t_Error FM_MAC_Disable1588TimeStamp (t_Handle h_FmMac)
  331 {
  332     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  333 
  334     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  335 
  336     if (p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp)
  337         return p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp(h_FmMac);
  338 
  339     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  340 }
  341 
  342 /* ......................................................................... */
  343 
  344 t_Error FM_MAC_SetTxAutoPauseFrames(t_Handle h_FmMac,
  345                                     uint16_t pauseTime)
  346 {
  347     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  348 
  349     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  350 
  351     if (p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames)
  352         return p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames(h_FmMac,
  353                                                                       pauseTime);
  354 
  355     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  356 }
  357 
  358 /* ......................................................................... */
  359 
  360 t_Error FM_MAC_SetTxPauseFrames(t_Handle h_FmMac,
  361                                 uint8_t  priority,
  362                                 uint16_t pauseTime,
  363                                 uint16_t threshTime)
  364 {
  365     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  366 
  367     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  368 
  369     if (p_FmMacControllerDriver->f_FM_MAC_SetTxPauseFrames)
  370         return p_FmMacControllerDriver->f_FM_MAC_SetTxPauseFrames(h_FmMac,
  371                                                                   priority,
  372                                                                   pauseTime,
  373                                                                   threshTime);
  374 
  375     RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, NO_MSG);
  376 }
  377 
  378 /* ......................................................................... */
  379 
  380 t_Error FM_MAC_SetRxIgnorePauseFrames (t_Handle h_FmMac, bool en)
  381 {
  382     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  383 
  384     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  385 
  386     if (p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames)
  387         return p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames(h_FmMac, en);
  388 
  389     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  390 }
  391 
  392 /* ......................................................................... */
  393 
  394 t_Error FM_MAC_SetWakeOnLan (t_Handle h_FmMac, bool en)
  395 {
  396     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  397 
  398     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  399 
  400     if (p_FmMacControllerDriver->f_FM_MAC_SetWakeOnLan)
  401         return p_FmMacControllerDriver->f_FM_MAC_SetWakeOnLan(h_FmMac, en);
  402 
  403     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  404 }
  405 
  406 /* ......................................................................... */
  407 
  408 t_Error FM_MAC_ResetCounters (t_Handle h_FmMac)
  409 {
  410     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  411 
  412     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  413 
  414     if (p_FmMacControllerDriver->f_FM_MAC_ResetCounters)
  415         return p_FmMacControllerDriver->f_FM_MAC_ResetCounters(h_FmMac);
  416 
  417     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  418 }
  419 
  420 /* ......................................................................... */
  421 
  422 t_Error FM_MAC_SetException(t_Handle h_FmMac, e_FmMacExceptions ex, bool enable)
  423 {
  424    t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  425 
  426     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  427 
  428     if (p_FmMacControllerDriver->f_FM_MAC_SetException)
  429         return p_FmMacControllerDriver->f_FM_MAC_SetException(h_FmMac, ex, enable);
  430 
  431     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  432 }
  433 
  434 /* ......................................................................... */
  435 
  436 t_Error FM_MAC_SetStatistics (t_Handle h_FmMac, e_FmMacStatisticsLevel statisticsLevel)
  437 {
  438     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  439 
  440     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  441 
  442     if (p_FmMacControllerDriver->f_FM_MAC_SetStatistics)
  443         return p_FmMacControllerDriver->f_FM_MAC_SetStatistics(h_FmMac, statisticsLevel);
  444 
  445     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  446 }
  447 
  448 /* ......................................................................... */
  449 
  450 t_Error FM_MAC_GetStatistics (t_Handle h_FmMac, t_FmMacStatistics *p_Statistics)
  451 {
  452     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  453 
  454     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  455 
  456     if (p_FmMacControllerDriver->f_FM_MAC_GetStatistics)
  457         return p_FmMacControllerDriver->f_FM_MAC_GetStatistics(h_FmMac, p_Statistics);
  458 
  459     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  460 }
  461 
  462 /* ......................................................................... */
  463 
  464 t_Error FM_MAC_ModifyMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
  465 {
  466     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  467 
  468     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  469 
  470     if (p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr)
  471         return p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr(h_FmMac, p_EnetAddr);
  472 
  473     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  474 }
  475 
  476 /* ......................................................................... */
  477 
  478 t_Error FM_MAC_AddHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
  479 {
  480     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  481 
  482     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  483 
  484     if (p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr)
  485         return p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr(h_FmMac, p_EnetAddr);
  486 
  487     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  488 }
  489 
  490 /* ......................................................................... */
  491 
  492 t_Error FM_MAC_RemoveHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
  493 {
  494     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  495 
  496     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  497 
  498     if (p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr)
  499         return p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr(h_FmMac, p_EnetAddr);
  500 
  501     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  502 }
  503 
  504 /* ......................................................................... */
  505 
  506 t_Error FM_MAC_AddExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
  507 {
  508     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  509 
  510     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  511 
  512     if (p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr)
  513         return p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr(h_FmMac, p_EnetAddr);
  514 
  515     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  516 }
  517 
  518 /* ......................................................................... */
  519 
  520 t_Error FM_MAC_RemovelExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr)
  521 {
  522     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  523 
  524     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  525 
  526     if (p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr)
  527         return p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr(h_FmMac, p_EnetAddr);
  528 
  529     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  530 }
  531 
  532 /* ......................................................................... */
  533 
  534 t_Error FM_MAC_GetVesrion (t_Handle h_FmMac, uint32_t *macVresion)
  535 {
  536     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  537 
  538     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  539 
  540     if (p_FmMacControllerDriver->f_FM_MAC_GetVersion)
  541         return p_FmMacControllerDriver->f_FM_MAC_GetVersion(h_FmMac, macVresion);
  542 
  543     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  544 
  545 }
  546 
  547 /* ......................................................................... */
  548 
  549 t_Error FM_MAC_GetId (t_Handle h_FmMac, uint32_t *macId)
  550 {
  551     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  552 
  553     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  554 
  555     if (p_FmMacControllerDriver->f_FM_MAC_GetId)
  556         return p_FmMacControllerDriver->f_FM_MAC_GetId(h_FmMac, macId);
  557 
  558     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  559 }
  560 
  561 /* ......................................................................... */
  562 
  563 t_Error FM_MAC_SetPromiscuous (t_Handle h_FmMac, bool newVal)
  564 {
  565     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  566 
  567     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  568 
  569     if (p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous)
  570         return p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous(h_FmMac, newVal);
  571 
  572     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  573 }
  574 
  575 /* ......................................................................... */
  576 
  577 t_Error FM_MAC_AdjustLink(t_Handle h_FmMac, e_EnetSpeed speed, bool fullDuplex)
  578 {
  579     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  580 
  581     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  582 
  583     if (p_FmMacControllerDriver->f_FM_MAC_AdjustLink)
  584         return p_FmMacControllerDriver->f_FM_MAC_AdjustLink(h_FmMac, speed, fullDuplex);
  585 
  586     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  587 }
  588 
  589 /* ......................................................................... */
  590 
  591 t_Error FM_MAC_RestartAutoneg(t_Handle h_FmMac)
  592 {
  593     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  594 
  595     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  596 
  597     if (p_FmMacControllerDriver->f_FM_MAC_RestartAutoneg)
  598         return p_FmMacControllerDriver->f_FM_MAC_RestartAutoneg(h_FmMac);
  599 
  600     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  601 }
  602 
  603 /* ......................................................................... */
  604 
  605 t_Error FM_MAC_MII_WritePhyReg (t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t data)
  606 {
  607     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  608 
  609     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  610 
  611     if (p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg)
  612         return p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg(h_FmMac, phyAddr, reg, data);
  613 
  614     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  615 }
  616 
  617 /* ......................................................................... */
  618 
  619 t_Error FM_MAC_MII_ReadPhyReg(t_Handle h_FmMac,  uint8_t phyAddr, uint8_t reg, uint16_t *p_Data)
  620 {
  621     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  622 
  623     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  624 
  625     if (p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg)
  626         return p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg(h_FmMac, phyAddr, reg, p_Data);
  627 
  628     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  629 }
  630 
  631 /* ......................................................................... */
  632 
  633 uint16_t FM_MAC_GetMaxFrameLength(t_Handle h_FmMac)
  634 {
  635     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  636 
  637     SANITY_CHECK_RETURN_VALUE(p_FmMacControllerDriver, E_INVALID_HANDLE, 0);
  638 
  639     if (p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength)
  640         return p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength(h_FmMac);
  641 
  642     REPORT_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  643     return 0;
  644 }
  645 
  646 #if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0))
  647 /*****************************************************************************/
  648 t_Error FM_MAC_DumpRegs(t_Handle h_FmMac)
  649 {
  650     t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac;
  651 
  652     SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE);
  653 
  654     if (p_FmMacControllerDriver->f_FM_MAC_DumpRegs)
  655          return p_FmMacControllerDriver->f_FM_MAC_DumpRegs(h_FmMac);
  656     RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG);
  657 }
  658 #endif /* (defined(DEBUG_ERRORS) && ... */

Cache object: 49f509c88fc4f09e624395d368fa46bb


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.