/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_HXGE_HXGE_RXDMA_H
#define _SYS_HXGE_HXGE_RXDMA_H
#ifdef __cplusplus
extern "C" {
#endif
#include <hxge_rdc_hw.h>
#include <hpi_rxdma.h>
/*
* Receive Completion Ring (RCR)
*/
/* the following are write 1 to clear bits */
RDC_STAT_RBR_CPL | \
typedef union _rcr_entry_t {
struct {
#if defined(_BIG_ENDIAN)
#else
#endif
} bits;
typedef struct _rxdma_mailbox_t {
/*
* hardware workarounds: kick 16 (was 8 before)
*/
/*
* Receive buffer thresholds and buffer types
*/
typedef enum {
typedef enum {
typedef struct _rdc_errlog {
} rdc_errlog_t;
/*
* Receive Statistics.
*/
typedef struct _hxge_rx_ring_stats_t {
/*
* Error event stats.
*/
/*
* RCR invalids: when processing RCR entries, can
* run into invalid RCR entries. This counter provides
* a means to account for invalid RCR entries.
*/
/* Packets dropped in order to prevent rbr_empty condition */
typedef struct _hxge_rdc_sys_stats {
typedef struct _rx_msg_t {
/* Receive Completion Ring */
typedef struct _rx_rcr_ring_t {
/* Buffer index information */
typedef struct _rxbuf_index_info_t {
/* Buffer index information */
typedef struct _rxring_info_t {
typedef enum {
} rbr_state_t;
/* Receive Buffer Block Ring */
typedef struct _rx_rbr_ring_t {
/*
* <rbr_ref_cnt> is a count of those receive buffers which
* have been loaned to the kernel. We will not free this
* ring until the reference count reaches zero (0).
*/
/* Receive Mailbox */
typedef struct _rx_mbox_t {
typedef struct _rx_rbr_rings_t {
typedef struct _rx_rcr_rings_t {
typedef struct _rx_mbox_areas_t {
/*
* Receive DMA Prototypes.
*/
extern int hxge_enable_poll(void *arg);
extern int hxge_disable_poll(void *arg);
#ifdef __cplusplus
}
#endif
#endif /* _SYS_HXGE_HXGE_RXDMA_H */