1 /*- 2 * Copyright 2007-2013 Solarflare Communications Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS AND 14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 * SUCH DAMAGE. 24 */ 25 26 #ifndef _SYS_NULLPHY_H 27 #define _SYS_NULLPHY_H 28 29 #include "efx.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #if EFSYS_OPT_PHY_NULL 36 37 #define NULLPHY_LOOPBACK_MASK \ 38 FALCON_XMAC_LOOPBACK_MASK 39 40 #define NULLPHY_LED_MASK 0 41 42 #define NULLPHY_NSTATS 0 43 44 #define NULLPHY_NPROPS 0 45 46 #define NULLPHY_ADV_CAP_MASK \ 47 ((1 << EFX_PHY_CAP_10000FDX) | \ 48 (1 << EFX_PHY_CAP_PAUSE)) 49 50 #define NULLPHY_ADV_CAP_PERM 0 51 52 #define NULLPHY_BIST_MASK 0 53 54 extern __checkReturn int 55 nullphy_reset( 56 __in efx_nic_t *enp); 57 58 extern __checkReturn int 59 nullphy_reconfigure( 60 __in efx_nic_t *enp); 61 62 extern __checkReturn int 63 nullphy_verify( 64 __in efx_nic_t *enp); 65 66 extern __checkReturn int 67 nullphy_downlink_check( 68 __in efx_nic_t *enp, 69 __out efx_link_mode_t *modep, 70 __out unsigned int *fcntlp, 71 __out uint32_t *lp_cap_maskp); 72 73 extern __checkReturn int 74 nullphy_oui_get( 75 __in efx_nic_t *enp, 76 __out uint32_t *ouip); 77 78 #if EFSYS_OPT_PHY_STATS 79 80 #define NULLPHY_STAT_MASK 0 81 82 extern __checkReturn int 83 nullphy_stats_update( 84 __in efx_nic_t *enp, 85 __in efsys_mem_t *esmp, 86 __out_ecount(EFX_PHY_NSTATS) uint32_t *stat); 87 88 #endif /* EFSYS_OPT_PHY_STATS */ 89 90 #if EFSYS_OPT_PHY_PROPS 91 92 #if EFSYS_OPT_NAMES 93 94 extern const char __cs * 95 nullphy_prop_name( 96 __in efx_nic_t *enp, 97 __in unsigned int id); 98 99 #endif 100 101 extern __checkReturn int 102 nullphy_prop_get( 103 __in efx_nic_t *enp, 104 __in unsigned int id, 105 __in uint32_t flags, 106 __out uint32_t *valp); 107 108 extern __checkReturn int 109 nullphy_prop_set( 110 __in efx_nic_t *enp, 111 __in unsigned int id, 112 __in uint32_t val); 113 114 #endif /* EFSYS_OPT_PHY_PROPS */ 115 116 #endif /* EFSYS_OPT_PHY_NULL */ 117 118 #ifdef __cplusplus 119 } 120 #endif 121 122 #endif /* _SYS_NULLPHY_H */