⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mthca_dev.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 2004, 2005 Topspin Communications.  All rights reserved. * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2005 Cisco Systems.  All rights reserved. * Copyright (c) 2005 Mellanox Technologies. All rights reserved. * Copyright (c) 2004 Voltaire, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses.  You may choose to be licensed under the terms of the GNU * General Public License (GPL) Version 2, available from the file * COPYING in the main directory of this source tree, or the * OpenIB.org BSD license below: * *     Redistribution and use in source and binary forms, with or *     without modification, are permitted provided that the following *     conditions are met: * *      - Redistributions of source code must retain the above *        copyright notice, this list of conditions and the following *        disclaimer. * *      - Redistributions in binary form must reproduce the above *        copyright notice, this list of conditions and the following *        disclaimer in the documentation and/or other materials *        provided with the distribution. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * * $Id: mthca_dev.h 1349 2004-12-16 21:09:43Z roland $ */#ifndef MTHCA_DEV_H#define MTHCA_DEV_H#include <linux/spinlock.h>#include <linux/kernel.h>#include <linux/pci.h>#include <linux/dma-mapping.h>#include <asm/semaphore.h>#include "mthca_provider.h"#include "mthca_doorbell.h"#define DRV_NAME	"ib_mthca"#define PFX		DRV_NAME ": "#define DRV_VERSION	"0.06"#define DRV_RELDATE	"June 23, 2005"enum {	MTHCA_FLAG_DDR_HIDDEN = 1 << 1,	MTHCA_FLAG_SRQ        = 1 << 2,	MTHCA_FLAG_MSI        = 1 << 3,	MTHCA_FLAG_MSI_X      = 1 << 4,	MTHCA_FLAG_NO_LAM     = 1 << 5,	MTHCA_FLAG_FMR        = 1 << 6,	MTHCA_FLAG_MEMFREE    = 1 << 7,	MTHCA_FLAG_PCIE       = 1 << 8};enum {	MTHCA_MAX_PORTS = 2};enum {	MTHCA_BOARD_ID_LEN = 64};enum {	MTHCA_EQ_CONTEXT_SIZE =  0x40,	MTHCA_CQ_CONTEXT_SIZE =  0x40,	MTHCA_QP_CONTEXT_SIZE = 0x200,	MTHCA_RDB_ENTRY_SIZE  =  0x20,	MTHCA_AV_SIZE         =  0x20,	MTHCA_MGM_ENTRY_SIZE  =  0x40,	/* Arbel FW gives us these, but we need them for Tavor */	MTHCA_MPT_ENTRY_SIZE  =  0x40,	MTHCA_MTT_SEG_SIZE    =  0x40,	MTHCA_QP_PER_MGM      = 4 * (MTHCA_MGM_ENTRY_SIZE / 16 - 2)};enum {	MTHCA_EQ_CMD,	MTHCA_EQ_ASYNC,	MTHCA_EQ_COMP,	MTHCA_NUM_EQ};enum {	MTHCA_OPCODE_NOP            = 0x00,	MTHCA_OPCODE_RDMA_WRITE     = 0x08,	MTHCA_OPCODE_RDMA_WRITE_IMM = 0x09,	MTHCA_OPCODE_SEND           = 0x0a,	MTHCA_OPCODE_SEND_IMM       = 0x0b,	MTHCA_OPCODE_RDMA_READ      = 0x10,	MTHCA_OPCODE_ATOMIC_CS      = 0x11,	MTHCA_OPCODE_ATOMIC_FA      = 0x12,	MTHCA_OPCODE_BIND_MW        = 0x18,	MTHCA_OPCODE_INVALID        = 0xff};struct mthca_cmd {	struct pci_pool          *pool;	int                       use_events;	struct semaphore          hcr_sem;	struct semaphore 	  poll_sem;	struct semaphore 	  event_sem;	int              	  max_cmds;	spinlock_t                context_lock;	int                       free_head;	struct mthca_cmd_context *context;	u16                       token_mask;};struct mthca_limits {	int      num_ports;	int      vl_cap;	int      mtu_cap;	int      gid_table_len;	int      pkey_table_len;	int      local_ca_ack_delay;	int      num_uars;	int      max_sg;	int      num_qps;	int      max_wqes;	int	 max_desc_sz;	int	 max_qp_init_rdma;	int      reserved_qps;	int      num_srqs;	int      max_srq_wqes;	int      reserved_srqs;	int      num_eecs;	int      reserved_eecs;	int      num_cqs;	int      max_cqes;	int      reserved_cqs;	int      num_eqs;	int      reserved_eqs;	int      num_mpts;	int      num_mtt_segs;	int      fmr_reserved_mtts;	int      reserved_mtts;	int      reserved_mrws;	int      reserved_uars;	int      num_mgms;	int      num_amgms;	int      reserved_mcgs;	int      num_pds;	int      reserved_pds;	u32      page_size_cap;	u32      flags;	u8       port_width_cap;};struct mthca_alloc {	u32            last;	u32            top;	u32            max;	u32            mask;	spinlock_t     lock;	unsigned long *table;};struct mthca_array {	struct {		void    **page;		int       used;	} *page_list;};struct mthca_uar_table {	struct mthca_alloc alloc;	u64                uarc_base;	int                uarc_size;};struct mthca_pd_table {	struct mthca_alloc alloc;};struct mthca_buddy {	unsigned long **bits;	int             max_order;	spinlock_t      lock;};struct mthca_mr_table {	struct mthca_alloc      mpt_alloc;	struct mthca_buddy      mtt_buddy;	struct mthca_buddy     *fmr_mtt_buddy;	u64                     mtt_base;	u64                     mpt_base;	struct mthca_icm_table *mtt_table;	struct mthca_icm_table *mpt_table;	struct {		void __iomem   *mpt_base;		void __iomem   *mtt_base;		struct mthca_buddy mtt_buddy;	} tavor_fmr;};struct mthca_eq_table {	struct mthca_alloc alloc;	void __iomem      *clr_int;	u32                clr_mask;	u32                arm_mask;	struct mthca_eq    eq[MTHCA_NUM_EQ];	u64                icm_virt;	struct page       *icm_page;	dma_addr_t         icm_dma;	int                have_irq;	u8                 inta_pin;};struct mthca_cq_table {	struct mthca_alloc 	alloc;	spinlock_t         	lock;	struct mthca_array      cq;	struct mthca_icm_table *table;};struct mthca_srq_table {	struct mthca_alloc 	alloc;	spinlock_t         	lock;	struct mthca_array      srq;	struct mthca_icm_table *table;};struct mthca_qp_table {	struct mthca_alloc     	alloc;	u32                    	rdb_base;	int                    	rdb_shift;	int                    	sqp_start;	spinlock_t             	lock;	struct mthca_array     	qp;	struct mthca_icm_table *qp_table;	struct mthca_icm_table *eqp_table;	struct mthca_icm_table *rdb_table;};struct mthca_av_table {	struct pci_pool   *pool;	int                num_ddr_avs;	u64                ddr_av_base;	void __iomem      *av_map;	struct mthca_alloc alloc;};struct mthca_mcg_table {	struct semaphore   	sem;	struct mthca_alloc 	alloc;	struct mthca_icm_table *table;};struct mthca_catas_err {	u64			addr;	u32 __iomem	       *map;	unsigned long		stop;	u32			size;	struct timer_list	timer;};struct mthca_dev {	struct ib_device  ib_dev;	struct pci_dev   *pdev;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -