1 /*
   2  * Copyright (c) 2009-2015 Solarflare Communications Inc.
   3  * All rights reserved.
   4  *
   5  * Redistribution and use in source and binary forms, with or without
   6  * modification, are permitted provided that the following conditions are met:
   7  *
   8  * 1. Redistributions of source code must retain the above copyright notice,
   9  *    this list of conditions and the following disclaimer.
  10  * 2. Redistributions in binary form must reproduce the above copyright notice,
  11  *    this list of conditions and the following disclaimer in the documentation
  12  *    and/or other materials provided with the distribution.
  13  *
  14  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  15  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  16  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  17  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  21  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  22  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  23  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  24  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25  *
  26  * The views and conclusions contained in the software and documentation are
  27  * those of the authors and should not be interpreted as representing official
  28  * policies, either expressed or implied, of the FreeBSD Project.
  29  */
  30 
  31 #ifndef _SYS_MCDI_MON_H
  32 #define _SYS_MCDI_MON_H
  33 
  34 #include "efx.h"
  35 
  36 #ifdef  __cplusplus
  37 extern "C" {
  38 #endif
  39 
  40 #if EFSYS_OPT_MON_MCDI
  41 
  42 #if EFSYS_OPT_MON_STATS
  43 
  44         __checkReturn   efx_rc_t
  45 mcdi_mon_cfg_build(
  46     __in                efx_nic_t *enp);
  47 
  48                         void
  49 mcdi_mon_cfg_free(
  50         __in            efx_nic_t *enp);
  51 
  52 
  53 extern  __checkReturn                   efx_rc_t
  54 mcdi_mon_ev(
  55         __in                            efx_nic_t *enp,
  56         __in                            efx_qword_t *eqp,
  57         __out                           efx_mon_stat_t *idp,
  58         __out                           efx_mon_stat_value_t *valuep);
  59 
  60 extern  __checkReturn                   efx_rc_t
  61 mcdi_mon_stats_update(
  62         __in                            efx_nic_t *enp,
  63         __in                            efsys_mem_t *esmp,
  64         __inout_ecount(EFX_MON_NSTATS)  efx_mon_stat_value_t *values);
  65 
  66 #endif  /* EFSYS_OPT_MON_STATS */
  67 
  68 #endif /* EFSYS_OPT_MON_MCDI */
  69 
  70 #ifdef  __cplusplus
  71 }
  72 #endif
  73 
  74 #endif  /* _SYS_MCDI_MON_H */