9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * CDDL HEADER START
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License").
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * or http://www.opensolaris.org/os/licensing.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * See the License for the specific language governing permissions
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * and limitations under the License.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * When distributing Covered Code, include this CDDL HEADER in each
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * If applicable, add the following below this CDDL HEADER, with the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * fields enclosed by brackets "[]" replaced with your own identifying
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * information: Portions Copyright [yyyy] [name of copyright owner]
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * CDDL HEADER END
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Copyright 2008 NetXen, Inc. All rights reserved.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Use is subject to license terms.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Use is subject to license terms.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifndef _UNM_NIC_
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define _UNM_NIC_
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#ifdef __cplusplus
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUNextern "C" {
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#endif
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/inttypes.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/rwlock.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/mutex.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/ddi.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/sunddi.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/types.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/stream.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/strsun.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/strsubr.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/dlpi.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/devops.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/stat.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/pci.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/note.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/modctl.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/kstat.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/ethernet.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/errno.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <netinet/ip6.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <inet/common.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/pattr.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <inet/mi.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <inet/nd.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#ifdef SOLARIS11
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng#include <sys/mac_provider.h>
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/mac_ether.h>
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#else
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#include "mac.h"
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#include "mac_ether.h"
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include <sys/miiregs.h> /* by fjlite out of intel */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_nic_hw.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "nic_cmn.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_inc.h" /* For MAX_RCV_CTX */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_brdcfg.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_version.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "nic_phan_reg.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#include "unm_nic_ioctl.h"
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MAX_ADDR_LEN 6
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define ADDR_IN_WINDOW1(off) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((off > UNM_CRB_PCIX_HOST2) && (off < UNM_CRB_MAX)) ? 1 : 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef unsigned long uptr_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define FIRST_PAGE_GROUP_START 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define FIRST_PAGE_GROUP_END 0x100000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define SECOND_PAGE_GROUP_START 0x6000000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define SECOND_PAGE_GROUP_END 0x68BC000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define THIRD_PAGE_GROUP_START 0x70E4000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define THIRD_PAGE_GROUP_END 0x8000000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define FIRST_PAGE_GROUP_SIZE FIRST_PAGE_GROUP_END - FIRST_PAGE_GROUP_START
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define SECOND_PAGE_GROUP_SIZE SECOND_PAGE_GROUP_END - SECOND_PAGE_GROUP_START
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define THIRD_PAGE_GROUP_SIZE THIRD_PAGE_GROUP_END - THIRD_PAGE_GROUP_START
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * normalize a 64MB crb address to 32MB PCI window
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * To use CRB_NORMALIZE, window _must_ be set to 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define CRB_NORMAL(reg) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (reg) - UNM_CRB_PCIX_HOST2 + UNM_CRB_PCIX_HOST
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define CRB_NORMALIZE(adapter, reg) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (void *)(unsigned long)(pci_base_offset(adapter, CRB_NORMAL(reg)))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DB_NORMALIZE(adapter, off) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (void *)((unsigned long)adapter->ahw.db_base + (off))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define find_diff_among(a, b, range) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((a) < (b)?((b)-(a)):((b)+(range)-(a)))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define __FUNCTION__ __func__
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define nx_msleep(_msecs_) delay(drv_usectohz(_msecs_ * 1000))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define HOST_TO_LE_64 LE_64
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define HOST_TO_LE_32 LE_32
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define LE_TO_HOST_32 LE_32
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define HOST_TO_LE_16 LE_16
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define LE_TO_HOST_16 LE_16
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define dbwritel(DATA, ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_put32(adapter->db_handle, (uint32_t *)(ADDRESS), (DATA))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Following macros require the mapped addresses to access
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the Phantom memory.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_READ_8(ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_get8(adapter->regs_handle, (uint8_t *)(ADDRESS))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_READ_16(ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_get16(adapter->regs_handle, (uint16_t *)(ADDRESS))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_READ_32(ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_get32(adapter->regs_handle, (uint32_t *)(ADDRESS))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_READ_64(ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_get64(adapter->regs_handle, (uint64_t *)(ADDRESS))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_WRITE_8(DATA, ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_put8(adapter->regs_handle, (uint8_t *)(ADDRESS), (DATA))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_WRITE_16(DATA, ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_put16(adapter->regs_handle, (uint16_t *)(ADDRESS), (DATA))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_WRITE_32(DATA, ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_put32(adapter->regs_handle, (uint32_t *)(ADDRESS), (DATA))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_PCI_WRITE_64(DATA, ADDRESS) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_put64(adapter->regs_handle, (uint64_t *)(ADDRESS), (DATA))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#ifdef DEBUG_LEVEL
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DPRINTF(n, args) if (DEBUG_LEVEL > (n)) cmn_err args;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#else
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define DPRINTF(n, args)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_SPIN_LOCK(_lp_) mutex_enter((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_SPIN_UNLOCK(_lp_) mutex_exit((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_SPIN_LOCK_ISR(_lp_) mutex_enter((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_SPIN_UNLOCK_ISR(_lp_) mutex_exit((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_WRITE_LOCK(_lp_) rw_enter((_lp_), RW_WRITER)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_WRITE_UNLOCK(_lp_) rw_exit((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_READ_LOCK(_lp_) rw_enter((_lp_), RW_READER)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_READ_UNLOCK(_lp_) rw_exit((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_WRITE_LOCK_IRQS(_lp_, _fl_) rw_enter((_lp_), RW_WRITER)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_WRITE_UNLOCK_IRQR(_lp_, _fl_) rw_exit((_lp_))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaextern char unm_nic_driver_name[];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaextern int verbmsg;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct unm_dmah_node {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_dmah_node *next;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t dmahdl;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}unm_dmah_node_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct dma_area {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t acc_hdl; /* handle for memory */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t dma_hdl; /* DMA handle */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t ncookies;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 dma_addr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *vaddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} dma_area_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinastruct unm_cmd_buffer {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China dma_area_t dma_area;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China mblk_t *msg;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_dmah_node_t *head, *tail;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct pkt_info {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t total_len;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t mblk_no;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t etype;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t mac_hlen;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t ip_hlen;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t l4_proto;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} pktinfo_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct unm_rcv_desc_context_s unm_rcv_desc_ctx_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct unm_adapter_s unm_adapter;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct unm_rx_buffer {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_rx_buffer *next;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China dma_area_t dma_info;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China frtn_t rx_recycle; /* recycle function */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China mblk_t *mp;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_rcv_desc_ctx_t *rcv_desc;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_adapter *adapter;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}unm_rx_buffer_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Board types */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_GBE 0x01
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_XGBE 0x02
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * One hardware_context{} per adapter
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * contains interrupt info as well shared hardware info.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct _hardware_context {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long pci_base0;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long pci_len0;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long pci_base1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long pci_len1;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long pci_base2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long pci_len2;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long first_page_group_end;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long first_page_group_start;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint8_t revision_id;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint8_t cut_through;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t board_type;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int pci_func;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t max_ports;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_board_info_t boardcfg;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t linkup;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_adapter_s *adapter;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China cmdDescType0_t *cmdDescHead;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t cmdProducer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t cmdConsumer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t rcvFlag;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t crb_base;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long db_base; /* base of mapped db memory */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long db_len; /* length of mapped db memory */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t cmdDesc_physAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int qdr_sn_window, ddr_mn_window;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long mn_win_crb, ms_win_crb;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t cmd_desc_dma_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t cmd_desc_acc_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_cookie_t cmd_desc_dma_cookie;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} hardware_context, *phardware_context;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_CT_DEFAULT_RX_BUF_LEN 2048
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MTU_SIZE 1500
dda0720a40a5b9892e9c96b39ff67c6f504656afjing xiong ERI-SUN#define MAX_COOKIES_PER_CMD 15
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_DB_MAPSIZE_BYTES 0x1000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define EXTRA_HANDLES 512
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_TX_BCOPY_THRESHOLD 128
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_RX_BCOPY_THRESHOLD 128
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_MIN_DRIVER_RDS_SIZE 64
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct unm_pauseparam {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t rx_pause;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t tx_pause;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} unm_pauseparam_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * The driver supports the NDD ioctls ND_GET/ND_SET, and the loopback
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * ioctls LB_GET_INFO_SIZE/LB_GET_INFO/LB_GET_MODE/LB_SET_MODE
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * These are the values to use with LD_SET_MODE.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_LOOP_NONE 0
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_LOOP_INTERNAL_PHY 1
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_LOOP_INTERNAL_MAC 2
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Named Data (ND) Parameter Management Structure
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int ndp_info;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int ndp_min;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int ndp_max;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int ndp_val;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China char *ndp_name;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} nd_param_t; /* 0x18 (24) bytes */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * NDD parameter indexes, divided into:
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China *
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * read-only parameters describing the hardware's capabilities
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * read-write parameters controlling the advertised capabilities
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * read-only parameters describing the partner's capabilities
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * read-only parameters describing the link state
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaenum {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_AUTONEG_CAP = 0,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_PAUSE_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ASYM_PAUSE_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_10000FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_1000FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_1000HDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_100T4_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_100FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_100HDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_10FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_10HDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_AUTONEG_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_PAUSE_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_ASYM_PAUSE_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_10000FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_1000FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_1000HDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_100T4_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_100FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_100HDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_10FDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_ADV_10HDX_CAP,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_LINK_STATUS,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_LINK_SPEED,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_LINK_DUPLEX,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_LOOP_MODE,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China PARAM_COUNT
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinastruct unm_adapter_stats {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t rcvdbadmsg;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t xmitcalled;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t xmitedframes;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t xmitfinished;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t badmsglen;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t nocmddescriptor;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t polled;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t uphappy;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t updropped;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t uplcong;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t uphcong;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t upmcong;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t updunno;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t msgfreed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t txdropped;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t txnullmsg;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t csummed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t no_rcv;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t rxbytes;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t txbytes;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t ints;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t desballocfailed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t txcopyed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t txmapped;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t outoftxdmahdl;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t outofcmddesc;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t rxcopyed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t rxmapped;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t outofrxbuf;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t promiscmode;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t rxbufshort;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t allocbfailed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* descriptor types */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_RING_STD RCV_DESC_NORMAL
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_RING_JUMBO RCV_DESC_JUMBO
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define RCV_RING_LRO RCV_DESC_LRO
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Rcv Descriptor Context. One such per Rcv Descriptor. There may
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * be one Rcv Descriptor for normal packets, one for jumbo,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * one for LRO and may be expanded.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinastruct unm_rcv_desc_context_s {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t producer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t phys_addr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China dev_info_t *phys_pdev;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* address of rx ring in Phantom */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China rcvDesc_t *desc_head;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t MaxRxDescCount;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t rx_desc_handled;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t rx_buf_card;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t rx_buf_total;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t rx_buf_free;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t rx_buf_recycle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_rx_buffer_t *rx_buf_pool;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_rx_buffer_t *pool_list;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_rx_buffer_t *recycle_list;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China kmutex_t pool_lock[1]; /* buffer pool lock */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China kmutex_t recycle_lock[1]; /* buffer recycle lock */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* size of the receive buf */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t buf_size;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* rx buffers for receive */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t rx_desc_dma_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t rx_desc_acc_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_cookie_t rx_desc_dma_cookie;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t host_rx_producer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t dma_size;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Receive context. There is one such structure per instance of the
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * receive processing. Any state information that is relevant to
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * the receive, and is must be in this structure. The global data may be
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * present elsewhere.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinatypedef struct unm_recv_context_s {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_rcv_desc_ctx_t rcv_desc[NUM_RCV_DESC_RINGS];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t statusRxConsumer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t rcvStatusDesc_physAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China statusDesc_t *rcvStatusDescHead;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t status_desc_dma_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t status_desc_acc_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_cookie_t status_desc_dma_cookie;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t state, host_sds_consumer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t context_id, virt_port;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China} unm_recv_context_t;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_MSI_ENABLED 0x02
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_NIC_MSIX_ENABLED 0x04
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_IS_MSI_FAMILY(ADAPTER) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((ADAPTER)->flags & (UNM_NIC_MSI_ENABLED | UNM_NIC_MSIX_ENABLED))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define NX_USE_MSIX
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* msix defines */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MSIX_ENTRIES_PER_ADAPTER 8
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_MSIX_TBL_SPACE 8192
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PCI_REG_MSIX_TBL 0x44
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Bug: word or char write on MSI-X capcabilities register (0x40) in PCI config
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * space has no effect on register values. Need to write dword.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_HWBUG_8_WORKAROUND
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Bug: Can not reset bit 32 (msix enable bit) on MSI-X capcabilities
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * register (0x40) independently.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Need to write 0x0 (zero) to MSI-X capcabilities register in order to reset
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * msix enable bit. On writing zero rest of the bits are not touched.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_HWBUG_9_WORKAROUND
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_MC_COUNT 38 /* == ((UNM_ADDR_L2LU_COUNT-1)/4) -2 */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Following structure is for specific port information */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinastruct unm_adapter_s {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China hardware_context ahw;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint8_t id[32];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t portnum;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t physical_port;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t link_speed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t link_duplex;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_adapter_stats stats;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int rx_csum;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int status;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China kmutex_t stats_lock;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned char mac_addr[MAX_ADDR_LEN];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int mtu; /* active mtu */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int maxmtu; /* max possible mtu value */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t promisc;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China mac_resource_handle_t mac_rx_ring_ha;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China mac_handle_t mach;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int flags;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int instance;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China dev_info_t *dip;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t pci_cfg_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t regs_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_attr_t gc_dma_attr_desc;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct ddi_device_acc_attr gc_attr_desc;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_iblock_cookie_t iblock_cookie;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China const char *name;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t db_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_intr_handle_t intr_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int intr_type;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint_t intr_pri;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_dmah_node_t *dmahdl_pool;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_dmah_node_t tx_dma_hdls[MAX_CMD_DESCRIPTORS+EXTRA_HANDLES];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t freehdls;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t freecmds;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int tx_bcopy_threshold;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China kmutex_t tx_lock;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China krwlock_t adapter_lock;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China kmutex_t lock;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct nx_legacy_intr_set legacy_intr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China timeout_id_t watchdog_timer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China kstat_t *kstats[1];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t curr_window;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t crb_win;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t cmdProducer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t *cmdConsumer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t interrupt_crb;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t fw_major;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t crb_addr_cmd_producer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t crb_addr_cmd_consumer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint16_t tx_context_id;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China short context_alloced;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int max_rds_rings;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t lastCmdConsumer;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* Num of bufs posted in phantom */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t pendingCmdCount;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t MaxTxDescCount;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t MaxRxDescCount;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t MaxJumboRxDescCount;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t MaxLroRxDescCount;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* Num of instances active on cmd buffer ring */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int resched_needed;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int driver_mismatch;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t temp;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_cmd_buffer *cmd_buf_arr; /* Command buffers for xmit */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int rx_bcopy_threshold;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Receive instances. These can be either one per port,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * or one per peg, etc.
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_recv_context_t recv_ctx[MAX_RCV_CTX];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int is_up;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China /* context interface shared between card and host */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China RingContext *ctxDesc;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t ctxDesc_physAddr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t ctxDesc_dma_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t ctxDesc_acc_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *addr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint64_t phys_addr;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t dma_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t acc_handle;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China } dummy_dma;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void (*unm_nic_pci_change_crbwindow)(struct unm_adapter_s *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_crb_writelit_adapter)(struct unm_adapter_s *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long, int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long long
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (*unm_nic_pci_set_window)(struct unm_adapter_s *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long long);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_fill_statistics)(struct unm_adapter_s *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_statistics *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_clear_statistics)(struct unm_adapter_s *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_hw_write_wx)(struct unm_adapter_s *, u64,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *, int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_hw_read_wx)(struct unm_adapter_s *, u64, void *, int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_hw_write_ioctl)(struct unm_adapter_s *, u64, void *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_hw_read_ioctl)(struct unm_adapter_s *, u64, void *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_pci_mem_write)(struct unm_adapter_s *, u64, void *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_pci_mem_read)(struct unm_adapter_s *, u64, void *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_pci_write_immediate)(struct unm_adapter_s *, u64,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u32 *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int (*unm_nic_pci_read_immediate)(struct unm_adapter_s *, u64,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u32 *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void (*unm_nic_pci_write_normalize)(struct unm_adapter_s *, u64,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u32);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u32 (*unm_nic_pci_read_normalize)(struct unm_adapter_s *, u64);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China caddr_t nd_data_p;
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China nd_param_t nd_params[PARAM_COUNT];
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China}; /* unm_adapter structure */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_HOST_DUMMY_DMA_SIZE 1024
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Following structure is for specific port information */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PCI_OFFSET_FIRST_RANGE(adapter, off) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((adapter)->ahw.pci_base0 + off)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PCI_OFFSET_SECOND_RANGE(adapter, off) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((adapter)->ahw.pci_base1 + off - SECOND_PAGE_GROUP_START)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define PCI_OFFSET_THIRD_RANGE(adapter, off) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((adapter)->ahw.pci_base2 + off - THIRD_PAGE_GROUP_START)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define pci_base_offset(adapter, off) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((((off) < ((adapter)->ahw.first_page_group_end)) && \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((off) >= ((adapter)->ahw.first_page_group_start))) ? \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((adapter)->ahw.pci_base0 + (off)) : \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((((off) < SECOND_PAGE_GROUP_END) && \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((off) >= SECOND_PAGE_GROUP_START)) ? \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((adapter)->ahw.pci_base1 + \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China (off) - SECOND_PAGE_GROUP_START) : \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((((off) < THIRD_PAGE_GROUP_END) && \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((off) >= THIRD_PAGE_GROUP_START)) ? \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((adapter)->ahw.pci_base2 + (off) - \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China THIRD_PAGE_GROUP_START) : \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China 0)))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define unm_nic_reg_write(_adp_, _off_, _val_) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China { \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China __uint32_t _v1_ = (_val_); \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((_adp_)->unm_nic_hw_write_wx((_adp_), (_off_), \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China &_v1_, 4)); \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China }
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define unm_nic_reg_read(_adp_, _off_, _ptr_) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((_adp_)->unm_nic_hw_read_wx((_adp_), (_off_), (_ptr_), 4))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define unm_nic_write_w0(_adp_, _idx_, _val_) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((_adp_)->unm_nic_hw_write_wx((_adp_), (_idx_), &(_val_), 4))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define unm_nic_read_w0(_adp_, _idx_, _val_) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ((_adp_)->unm_nic_hw_read_wx((_adp_), (_idx_), (_val_), 4))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* Functions available from unm_nic_hw.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_get_board_info(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid _unm_nic_write_crb(struct unm_adapter_s *adapter, uint32_t index,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t value);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_write_crb(struct unm_adapter_s *adapter, uint32_t index,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t value);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid _unm_nic_read_crb(struct unm_adapter_s *adapter, uint32_t index,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t *value);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_read_crb(struct unm_adapter_s *adapter, uint32_t index,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t *value);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China// int unm_nic_reg_read (unm_adapter *adapter, u64 off);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint _unm_nic_hw_write(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_write(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint _unm_nic_hw_read(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_read(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid _unm_nic_hw_block_read(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int num_words);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_hw_block_read(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int num_words);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid _unm_nic_hw_block_write(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int num_words);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_hw_block_write(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int num_words);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_mem_write(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China u64 off, void *data, int size);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_mem_block_read(struct unm_adapter_s *adapter, u64 off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *data, int num_words);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_mem_block_write(struct unm_adapter_s *adapter, u64 off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *data, int num_words);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_read_ioctl(unm_adapter *adapter, u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_write_ioctl(unm_adapter *adapter, u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_macaddr_set(struct unm_adapter_s *, __uint8_t *addr);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_tcl_resetall(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_tcl_phaninit(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_tcl_postimage(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_set_mtu(struct unm_adapter_s *adapter, int new_mtu);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinalong unm_nic_phy_read(unm_adapter *adapter, long reg, __uint32_t *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinalong unm_nic_init_port(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_crb_write_adapter(unsigned long off, void *data,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_crb_read_adapter(unsigned long off, void *data,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_crb_read_val_adapter(unsigned long off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_stop_port(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_set_promisc_mode(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_unset_promisc_mode(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_nic_hw.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_pci_change_crbwindow_128M(unm_adapter *adapter, uint32_t wndw);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_crb_writelit_adapter_128M(struct unm_adapter_s *, unsigned long, int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_write_wx_128M(unm_adapter *adapter, u64 off, void *data,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_read_wx_128M(unm_adapter *adapter, u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_write_ioctl_128M(unm_adapter *adapter, u64 off, void *data,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_read_ioctl_128M(unm_adapter *adapter, u64 off, void *data,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_mem_write_128M(struct unm_adapter_s *adapter, u64 off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *data, int size);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_mem_read_128M(struct unm_adapter_s *adapter, u64 off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *data, int size);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_pci_write_normalize_128M(unm_adapter *adapter, u64 off, u32 data);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinau32 unm_nic_pci_read_normalize_128M(unm_adapter *adapter, u64 off);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_write_immediate_128M(unm_adapter *adapter, u64 off, u32 *data);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_read_immediate_128M(unm_adapter *adapter, u64 off, u32 *data);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaunsigned long long unm_nic_pci_set_window_128M(unm_adapter *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long long addr);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_clear_statistics_128M(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_fill_statistics_128M(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_statistics *unm_stats);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_pci_change_crbwindow_2M(unm_adapter *adapter, uint32_t wndw);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_crb_writelit_adapter_2M(struct unm_adapter_s *, unsigned long, int);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_write_wx_2M(unm_adapter *adapter, u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_mem_write_2M(struct unm_adapter_s *adapter, u64 off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *data, int size);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_mem_read_2M(struct unm_adapter_s *adapter, u64 off,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China void *data, int size);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_hw_read_wx_2M(unm_adapter *adapter, u64 off, void *data, int len);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_pci_write_normalize_2M(unm_adapter *adapter, u64 off, u32 data);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinau32 unm_nic_pci_read_normalize_2M(unm_adapter *adapter, u64 off);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_write_immediate_2M(unm_adapter *adapter, u64 off, u32 *data);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_pci_read_immediate_2M(unm_adapter *adapter, u64 off, u32 *data);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaunsigned long long unm_nic_pci_set_window_2M(unm_adapter *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unsigned long long addr);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_clear_statistics_2M(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nic_fill_statistics_2M(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China struct unm_statistics *unm_stats);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid nx_p3_nic_set_multi(unm_adapter *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_nic_init.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint phantom_init(struct unm_adapter_s *adapter, int first_time);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint load_from_flash(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint pinit_from_rom(unm_adapter *adapter, int verbose);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint rom_fast_read(struct unm_adapter_s *adapter, int addr, int *valp);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_nic_isr.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_handle_phy_intr(unm_adapter *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* niu.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinanative_t unm_niu_set_promiscuous_mode(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_niu_prom_mode_t mode);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinanative_t unm_niu_xg_set_promiscuous_mode(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_niu_prom_mode_t mode);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_niu_xg_macaddr_set(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_ethernet_macaddr_t addr);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinanative_t unm_niu_disable_xg_port(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinalong unm_niu_gbe_init_port(long port);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinanative_t unm_niu_enable_gbe_port(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_niu_gbe_ifmode_t mode);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinanative_t unm_niu_disable_gbe_port(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_niu_macaddr_get(struct unm_adapter_s *adapter, unsigned char *addr);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_niu_macaddr_set(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China unm_ethernet_macaddr_t addr);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_niu_xg_set_tx_flow_ctl(struct unm_adapter_s *adapter, int enable);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_niu_gbe_set_rx_flow_ctl(struct unm_adapter_s *adapter, int enable);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_niu_gbe_set_tx_flow_ctl(struct unm_adapter_s *adapter, int enable);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinalong unm_niu_gbe_disable_phy_interrupts(struct unm_adapter_s *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinalong unm_niu_gbe_phy_read(struct unm_adapter_s *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China long reg, unm_crbword_t *readval);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_nic_ctx.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint netxen_create_rxtx(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid netxen_destroy_rxtx(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint nx_fw_cmd_set_mtu(struct unm_adapter_s *adapter, int mtu);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_nic_main.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint receive_peg_ready(struct unm_adapter_s *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nic_update_cmd_producer(struct unm_adapter_s *adapter,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint32_t crb_producer);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_desc_dma_sync(ddi_dma_handle_t handle, uint_t start, uint_t count,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China uint_t range, uint_t unit_size, uint_t direction);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_pci_alloc_consistent(unm_adapter *, int, caddr_t *,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_dma_cookie_t *, ddi_dma_handle_t *, ddi_acc_handle_t *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_pci_free_consistent(ddi_dma_handle_t *, ddi_acc_handle_t *);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_ndd.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaint unm_nd_init(unm_adapter *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaenum ioc_reply unm_nd_ioctl(unm_adapter *adapter, queue_t *wq,
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China mblk_t *mp, struct iocblk *iocp);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_nd_cleanup(unm_adapter *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/* unm_gem.c */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_destroy_intr(unm_adapter *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinavoid unm_free_dummy_dma(unm_adapter *adapter);
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * (Internal) return values from ioctl subroutines
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing Chinaenum ioc_reply {
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IOC_INVAL = -1, /* bad, NAK with EINVAL */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IOC_DONE, /* OK, reply sent */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IOC_ACK, /* OK, just send ACK */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IOC_REPLY, /* OK, just send reply */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IOC_RESTART_ACK, /* OK, restart & ACK */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China IOC_RESTART_REPLY /* OK, restart & reply */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China};
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Shorthand for the NDD parameters
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_autoneg nd_params[PARAM_ADV_AUTONEG_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_pause nd_params[PARAM_ADV_PAUSE_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_asym_pause nd_params[PARAM_ADV_ASYM_PAUSE_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_10000fdx nd_params[PARAM_ADV_10000FDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_1000fdx nd_params[PARAM_ADV_1000FDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_1000hdx nd_params[PARAM_ADV_1000HDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_100fdx nd_params[PARAM_ADV_100FDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_100hdx nd_params[PARAM_ADV_100HDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_10fdx nd_params[PARAM_ADV_10FDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_adv_10hdx nd_params[PARAM_ADV_10HDX_CAP].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_link_up nd_params[PARAM_LINK_STATUS].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_link_speed nd_params[PARAM_LINK_SPEED].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_link_duplex nd_params[PARAM_LINK_DUPLEX].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define param_loop_mode nd_params[PARAM_LOOP_MODE].ndp_val
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Property lookups
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PROP_EXISTS(d, n) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_prop_exists(DDI_DEV_T_ANY, (d), DDI_PROP_DONTPASS, (n))
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_PROP_GET_INT(d, n) \
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China ddi_prop_get_int(DDI_DEV_T_ANY, (d), DDI_PROP_DONTPASS, (n), -1)
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China/*
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China * Bit flags in the 'debug' word ...
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_DBG_TRACE 0x00000002 /* general flow tracing */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define UNM_DBG_NDD 0x20000000 /* NDD operations */
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MBPS_10 10
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MBPS_100 100
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#define MBPS_1000 1000
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#ifdef __cplusplus
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN}
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN#endif
93833965647072e8fb234b6f0cd4060544c6dc4ajing xiong ERI-SUN
9a5557fdd04be37785607871e8d4189e39490129lucy wang - Sun Microsystems - Beijing China#endif /* !_UNM_NIC_ */