1 /*- 2 * Copyright 2008-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_FALCON_XMAC_H 27 #define _SYS_FALCON_XMAC_H 28 29 #include "efx.h" 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #if EFSYS_OPT_MAC_FALCON_XMAC 36 37 #if EFSYS_OPT_LOOPBACK 38 39 #define FALCON_XMAC_LOOPBACK_MASK \ 40 ((1 << EFX_LOOPBACK_XGMII) | \ 41 (1 << EFX_LOOPBACK_XGXS) | \ 42 (1 << EFX_LOOPBACK_XAUI)) 43 44 #endif /* EFSYS_OPT_LOOPBACK */ 45 46 #define XMAC_INTR_SUPPORTED B_TRUE 47 48 extern __checkReturn int 49 falcon_xmac_reset( 50 __in efx_nic_t *enp); 51 52 extern __checkReturn int 53 falcon_xmac_reconfigure( 54 __in efx_nic_t *enp); 55 56 #if EFSYS_OPT_MAC_STATS 57 58 extern __checkReturn int 59 falcon_xmac_stats_update( 60 __in efx_nic_t *enp, 61 __in efsys_mem_t *esmp, 62 __in_ecount(EFX_MAC_NSTATS) efsys_stat_t *essp, 63 __out_opt uint32_t *generationp); 64 65 #endif 66 67 #endif /* EFSYS_OPT_MAC_XMAC */ 68 69 extern void 70 falcon_xmac_poll( 71 __in efx_nic_t *enp, 72 __out boolean_t *mac_upp); 73 74 #ifdef __cplusplus 75 } 76 #endif 77 78 #endif /* _SYS_FALCON_XMAC_H */