freebsd-dev/sys/dev/vxge/include/vxgehal-mgmtaux.h
George V. Neville-Neil 548d35fd69 Exar driver for X3100 10GbE Server/Storage adapters
Features: Jumbo frames (up to 9600), LRO (Large Receive Offload),
          TSO (TCP segmentation offload), RTH (Receive Traffic Hash).

Submitted by: Sriram Rapuru at Exar
MFC after:	2 weeks
2011-04-28 14:33:15 +00:00

390 lines
12 KiB
C

/*-
* Copyright(c) 2002-2011 Exar Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification are permitted provided the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. Neither the name of the Exar Corporation nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/*$FreeBSD$*/
#ifndef VXGE_HAL_MGMTAUX_H
#define VXGE_HAL_MGMTAUX_H
__EXTERN_BEGIN_DECLS
/*
* vxge_hal_aux_about_read - Retrieve and format about info.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Retrieve about info (using vxge_hal_mgmt_about()) and sprintf it
* into the provided @retbuf.
*
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
* VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
* VXGE_HAL_FAIL - Failed to retrieve the information.
*
* See also: vxge_hal_mgmt_about(), vxge_hal_aux_device_dump().
*/
vxge_hal_status_e vxge_hal_aux_about_read(vxge_hal_device_h devh, int bufsize,
char *retbuf, int *retsize);
/*
* vxge_hal_aux_driver_config_read - Read Driver configuration.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read driver configuration,
*
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
*
* See also: vxge_hal_aux_device_config_read().
*/
vxge_hal_status_e
vxge_hal_aux_driver_config_read(int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_pci_config_read - Retrieve and format PCI Configuration
* info.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Retrieve about info (using vxge_hal_mgmt_pci_config()) and sprintf it
* into the provided @retbuf.
*
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
* VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
*
* See also: vxge_hal_mgmt_pci_config(), vxge_hal_aux_device_dump().
*/
vxge_hal_status_e
vxge_hal_aux_pci_config_read(vxge_hal_device_h devh,
int bufsize,
char *retbuf,
int *retsize);
/*
* vxge_hal_aux_device_config_read - Read device configuration.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device configuration,
*
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
* VXGE_HAL_ERR_VERSION_CONFLICT - Version it not maching.
*
* See also: vxge_hal_aux_driver_config_read().
*/
vxge_hal_status_e
vxge_hal_aux_device_config_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_bar0_read - Read and format X3100 BAR0 register.
* @devh: HAL device handle.
* @offset: Register offset in the BAR0 space.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read X3100 register from BAR0 space. The result is formatted as an
* ascii string.
*
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
* VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
* VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
* valid.
*
* See also: vxge_hal_mgmt_reg_read().
*/
vxge_hal_status_e
vxge_hal_aux_bar0_read(vxge_hal_device_h devh,
unsigned int offset, int bufsize, char *retbuf,
int *retsize);
/*
* vxge_hal_aux_bar1_read - Read and format X3100 BAR1 register.
* @devh: HAL device handle.
* @offset: Register offset in the BAR1 space.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read X3100 register from BAR1 space. The result is formatted as ascii string
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small.
* VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
* VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
* valid.
*
*/
vxge_hal_status_e
vxge_hal_aux_bar1_read(vxge_hal_device_h devh,
unsigned int offset, int bufsize, char *retbuf,
int *retsize);
/*
* vxge_hal_aux_bar0_write - Write BAR0 register.
* @devh: HAL device handle.
* @offset: Register offset in the BAR0 space.
* @value: Regsister value (to write).
*
* Write BAR0 register.
*
* Returns: VXGE_HAL_OK - success.
* VXGE_HAL_ERR_INVALID_DEVICE - Device is not valid.
* VXGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not
* valid.
*
* See also: vxge_hal_mgmt_reg_write().
*/
vxge_hal_status_e
vxge_hal_aux_bar0_write(vxge_hal_device_h devh,
unsigned int offset, u64 value);
/*
* vxge_hal_aux_stats_vpath_hw_read - Read vpath hardware statistics.
* @vpath_handle: HAL Vpath handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read vpath hardware statistics. This is a subset of stats counters
* from vxge_hal_vpath_stats_hw_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_vpath_hw_read(
vxge_hal_vpath_h vpath_handle,
int bufsize,
char *retbuf,
int *retsize);
/*
* vxge_hal_aux_stats_device_hw_read - Read device hardware statistics.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device hardware statistics. This is a subset of stats counters
* from vxge_hal_device_stats_hw_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_device_hw_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_stats_vpath_sw_fifo_read - Read vpath fifo software statistics.
* @vpath_handle: HAL Vpath handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read vpath fifo software statistics. This is a subset of stats counters
* from vxge_hal_vpath_stats_sw_fifo_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_fifo_read(
vxge_hal_vpath_h vpath_handle,
int bufsize,
char *retbuf,
int *retsize);
/*
* vxge_hal_aux_stats_vpath_sw_ring_read - Read vpath ring software statistics.
* @vpath_handle: HAL Vpath handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read vpath ring software statistics. This is a subset of stats counters
* from vxge_hal_vpath_stats_sw_ring_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_ring_read(
vxge_hal_vpath_h vpath_handle,
int bufsize,
char *retbuf,
int *retsize);
/*
* vxge_hal_aux_stats_vpath_sw_err_read - Read vpath err software statistics.
* @vpath_handle: HAL Vpath handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read vpath err software statistics. This is a subset of stats counters
* from vxge_hal_vpath_stats_sw_err_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_err_read(
vxge_hal_vpath_h vpath_handle,
int bufsize,
char *retbuf,
int *retsize);
/*
* vxge_hal_aux_stats_vpath_sw_read - Read vpath soft statistics.
* @vpath_handle: HAL Vpath handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device hardware statistics. This is a subset of stats counters
* from vxge_hal_vpath_stats_sw_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_vpath_sw_read(
vxge_hal_vpath_h vpath_handle,
int bufsize,
char *retbuf,
int *retsize);
/*
* vxge_hal_aux_stats_device_sw_read - Read device software statistics.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device software statistics. This is a subset of stats counters
* from vxge_hal_device_stats_sw_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_device_sw_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_stats_device_sw_err_read - Read device software error statistics
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device software error statistics. This is a subset of stats counters
* from vxge_hal_device_stats_sw_info_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_device_sw_err_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_stats_device_read - Read device statistics.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device statistics. This is a subset of stats counters
* from vxge_hal_device_stats_t {}.
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_device_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_stats_xpak_read - Read device xpak statistics.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read device xpak statistics. This is valid for function 0 device only
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_xpak_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_stats_mrpcim_read - Read device mrpcim statistics.
* @devh: HAL device handle.
* @bufsize: Buffer size.
* @retbuf: Buffer pointer.
* @retsize: Size of the result. Cannot be greater than @bufsize.
*
* Read mrpcim statistics. This is valid for function 0 device only
*
*/
vxge_hal_status_e
vxge_hal_aux_stats_mrpcim_read(vxge_hal_device_h devh,
int bufsize, char *retbuf, int *retsize);
/*
* vxge_hal_aux_vpath_ring_dump - Dump vpath ring.
* @vpath_handle: Vpath handle.
*
* Dump vpath ring.
*/
vxge_hal_status_e
vxge_hal_aux_vpath_ring_dump(vxge_hal_vpath_h vpath_handle);
/*
* vxge_hal_aux_vpath_fifo_dump - Dump vpath fifo.
* @vpath_handle: Vpath handle.
*
* Dump vpath fifo.
*/
vxge_hal_status_e
vxge_hal_aux_vpath_fifo_dump(vxge_hal_vpath_h vpath_handle);
/*
* vxge_hal_aux_device_dump - Dump driver "about" info and device state.
* @devh: HAL device handle.
*
* Dump driver & device "about" info and device state,
* including all BAR0 registers, hardware and software statistics, PCI
* configuration space.
*/
vxge_hal_status_e vxge_hal_aux_device_dump(vxge_hal_device_h devh);
__EXTERN_END_DECLS
#endif /* VXGE_HAL_MGMTAUX_H */