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

📄 ib_srp.h

📁 linux-2.6.15.6
💻 H
字号:
/* * Copyright (c) 2005 Cisco Systems.  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: ib_srp.h 3932 2005-11-01 17:19:29Z roland $ */#ifndef IB_SRP_H#define IB_SRP_H#include <linux/types.h>#include <linux/list.h>#include <asm/semaphore.h>#include <scsi/scsi_host.h>#include <scsi/scsi_cmnd.h>#include <rdma/ib_verbs.h>#include <rdma/ib_sa.h>#include <rdma/ib_cm.h>enum {	SRP_PATH_REC_TIMEOUT_MS	= 1000,	SRP_ABORT_TIMEOUT_MS	= 5000,	SRP_PORT_REDIRECT	= 1,	SRP_DLID_REDIRECT	= 2,	SRP_MAX_LUN		= 512,	SRP_MAX_IU_LEN		= 256,	SRP_RQ_SHIFT    	= 6,	SRP_RQ_SIZE		= 1 << SRP_RQ_SHIFT,	SRP_SQ_SIZE		= SRP_RQ_SIZE - 1,	SRP_CQ_SIZE		= SRP_SQ_SIZE + SRP_RQ_SIZE,	SRP_TAG_TSK_MGMT	= 1 << (SRP_RQ_SHIFT + 1)};#define SRP_OP_RECV		(1 << 31)#define SRP_MAX_INDIRECT	((SRP_MAX_IU_LEN -			\				  sizeof (struct srp_cmd) -		\				  sizeof (struct srp_indirect_buf)) / 16)enum srp_target_state {	SRP_TARGET_LIVE,	SRP_TARGET_CONNECTING,	SRP_TARGET_DEAD,	SRP_TARGET_REMOVED};struct srp_host {	u8			initiator_port_id[16];	struct ib_device       *dev;	u8                      port;	struct ib_pd	       *pd;	struct ib_mr	       *mr;	struct class_device	class_dev;	struct list_head	target_list;	struct semaphore        target_mutex;	struct completion	released;	struct list_head	list;};struct srp_request {	struct list_head	list;	struct scsi_cmnd       *scmnd;	struct srp_iu	       *cmd;	struct srp_iu	       *tsk_mgmt;	DECLARE_PCI_UNMAP_ADDR(direct_mapping)	struct completion	done;	short			next;	u8			cmd_done;	u8			tsk_status;};struct srp_target_port {	__be64			id_ext;	__be64			ioc_guid;	__be64			service_id;	struct srp_host	       *srp_host;	struct Scsi_Host       *scsi_host;	char			target_name[32];	unsigned int		scsi_id;	struct ib_sa_path_rec	path;	struct ib_sa_query     *path_query;	int			path_query_id;	struct ib_cm_id	       *cm_id;	struct ib_cq	       *cq;	struct ib_qp	       *qp;	int			max_ti_iu_len;	s32			req_lim;	unsigned		rx_head;	struct srp_iu	       *rx_ring[SRP_RQ_SIZE];	unsigned		tx_head;	unsigned		tx_tail;	struct srp_iu	       *tx_ring[SRP_SQ_SIZE + 1];	int			req_head;	struct list_head	req_queue;	struct srp_request	req_ring[SRP_SQ_SIZE];	struct work_struct	work;	struct list_head	list;	struct completion	done;	int			status;	enum srp_target_state	state;};struct srp_iu {	dma_addr_t		dma;	void		       *buf;	size_t			size;	enum dma_data_direction	direction;};#endif /* IB_SRP_H */

⌨️ 快捷键说明

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