#ifndef _SYS_HXGE_HXGE_DEFS_H
#define _SYS_HXGE_HXGE_DEFS_H
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) && \
!defined(__BIG_ENDIAN) && !defined(__LITTLE_ENDIAN)
#error Host endianness not defined
#endif
#if !defined(_BIT_FIELDS_HTOL) && !defined(_BIT_FIELDS_LTOH) && \
!defined(__BIT_FIELDS_HTOL) && !defined(__BIT_FIELDS_LTOH)
#error Bit ordering not defined
#endif
#define DMA_CSR_SIZE 2048
#define RBR_DEFAULT_MAX_BLKS 4096
#define RBR_NBLK_PER_LINE 16
#define RBR_DEFAULT_MAX_LEN 65472
#define RBR_DEFAULT_MIN_LEN 64
#define SW_OFFSET_NO_OFFSET 0
#define SW_OFFSET_64 1
#define SW_OFFSET_128 2
#define SW_OFFSET_INVALID 3
#define RBR_BKADDR_SHIFT 12
#define RCR_DEFAULT_MAX_BLKS 4096
#define RCR_NBLK_PER_LINE 8
#define RCR_DEFAULT_MAX_LEN (RCR_DEFAULT_MAX_BLKS)
#define RCR_DEFAULT_MIN_LEN 32
#define HXGE_MAX_DMCS (HXGE_MAX_RDCS + HXGE_MAX_TDCS)
#define HXGE_MAX_RDCS 4
#define HXGE_MAX_TDCS 4
#define VLAN_ETHERTYPE (0x8100)
#define TCAM_HXGE_TCAM_MAX_ENTRY 42
#define TX_RNG_CFIG 0x1000000
#define TDMC_PIOVADDR_OFFSET(channel) (2 * DMA_CSR_SIZE * channel)
#define RDMC_PIOVADDR_OFFSET(channel) (TDMC_OFFSET(channel) + DMA_CSR_SIZE)
#define DMC_OFFSET(channel) (DMA_CSR_SIZE * channel)
#define TDMC_OFFSET(channel) (TX_RNG_CFIG + DMA_CSR_SIZE * channel)
#ifdef SOLARIS
#ifndef i386
#define _BIT_FIELDS_BIG_ENDIAN _BIT_FIELDS_HTOL
#else
#define _BIT_FIELDS_LITTLE_ENDIAN _BIT_FIELDS_LTOH
#endif
#else
#define _BIT_FIELDS_LITTLE_ENDIAN _LITTLE_ENDIAN_BITFIELD
#endif
#define TXDMA_CHANNEL_VALID(cn) (cn < HXGE_MAX_TDCS)
#define HXGE_INT_MAX_LD 32
#define HXGE_INT_MAX_LDG 32
#define HXGE_RDMA_LD_START 0
#define HXGE_TDMA_LD_START 8
#define HXGE_VMAC_LD 16
#define HXGE_PFC_LD 17
#define HXGE_NMAC_LD 18
#define HXGE_MBOX_LD_START 20
#define HXGE_SYS_ERROR_LD 31
#define LDG_VALID(n) (n < HXGE_INT_MAX_LDG)
#define LD_VALID(n) (n < HXGE_INT_MAX_LD)
#define LD_RXDMA_LD_VALID(n) (n < HXGE_MAX_RDCS)
#define LD_TXDMA_LD_VALID(n) (n >= HXGE_MAX_RDCS && \
((n - HXGE_MAX_RDCS) < HXGE_MAX_TDCS)))
#define LD_TIMER_MAX 0x3f
#define LD_INTTIMER_VALID(n) (n <= LD_TIMER_MAX)
#define SID_VECTOR_MAX 0x1f
#define SID_VECTOR_VALID(n) (n <= SID_VECTOR_MAX)
#define LD_IM_MASK 0x00000003ULL
#define LDGTITMRES_RES_MASK 0x000FFFFFULL
#define MIN_FRAME_SIZE 106
#define MAX_FRAME_SIZE 9216
#define STD_FRAME_SIZE 1522
#define HXGE_DEFAULT_MTU 1500
#define MTU_TO_FRAME_SIZE 38
#ifdef __cplusplus
}
#endif
#endif