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

📄 srp.h

📁 h内核
💻 H
字号:
/*****************************************************************************//* srp.h -- SCSI RDMA Protocol definitions                                   *//*                                                                           *//* Written By: Colin Devilbis, IBM Corporation                               *//*                                                                           *//* Copyright (C) 2003 IBM Corporation                                        *//*                                                                           *//* This program is free software; you can redistribute it and/or modify      *//* it under the terms of the GNU General Public License as published by      *//* the Free Software Foundation; either version 2 of the License, or         *//* (at your option) any later version.                                       *//*                                                                           *//* This program is distributed in the hope that it will be useful,           *//* but WITHOUT ANY WARRANTY; without even the implied warranty of            *//* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *//* GNU General Public License for more details.                              *//*                                                                           *//* You should have received a copy of the GNU General Public License         *//* along with this program; if not, write to the Free Software               *//* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//*                                                                           *//*                                                                           *//* This file contains structures and definitions for the SCSI RDMA Protocol  *//* (SRP) as defined in the T10 standard available at www.t10.org.  This      *//* file was based on the 16a version of the standard                         *//*                                                                           *//*****************************************************************************/#ifndef SRP_H#define SRP_H#define PACKED __attribute__((packed))enum srp_types {	SRP_LOGIN_REQ_TYPE = 0x00,	SRP_LOGIN_RSP_TYPE = 0xC0,	SRP_LOGIN_REJ_TYPE = 0x80,	SRP_I_LOGOUT_TYPE = 0x03,	SRP_T_LOGOUT_TYPE = 0x80,	SRP_TSK_MGMT_TYPE = 0x01,	SRP_CMD_TYPE = 0x02,	SRP_RSP_TYPE = 0xC1,	SRP_CRED_REQ_TYPE = 0x81,	SRP_CRED_RSP_TYPE = 0x41,	SRP_AER_REQ_TYPE = 0x82,	SRP_AER_RSP_TYPE = 0x42};enum srp_descriptor_formats {	SRP_NO_BUFFER = 0x00,	SRP_DIRECT_BUFFER = 0x01,	SRP_INDIRECT_BUFFER = 0x02};struct memory_descriptor {	u64 virtual_address;	u32 memory_handle;	u32 length;};struct indirect_descriptor {	struct memory_descriptor head;	u32 total_length;	struct memory_descriptor list[1] PACKED;};struct srp_generic {	u8 type;	u8 reserved1[7];	u64 tag;};struct srp_login_req {	u8 type;	u8 reserved1[7];	u64 tag;	u32 max_requested_initiator_to_target_iulen;	u32 reserved2;	u16 required_buffer_formats;	u8 reserved3:6;	u8 multi_channel_action:2;	u8 reserved4;	u32 reserved5;	u8 initiator_port_identifier[16];	u8 target_port_identifier[16];};struct srp_login_rsp {	u8 type;	u8 reserved1[3];	u32 request_limit_delta;	u64 tag;	u32 max_initiator_to_target_iulen;	u32 max_target_to_initiator_iulen;	u16 supported_buffer_formats;	u8 reserved2:6;	u8 multi_channel_result:2;	u8 reserved3;	u8 reserved4[24];};struct srp_login_rej {	u8 type;	u8 reserved1[3];	u32 reason;	u64 tag;	u64 reserved2;	u16 supported_buffer_formats;	u8 reserved3[6];};struct srp_i_logout {	u8 type;	u8 reserved1[7];	u64 tag;};struct srp_t_logout {	u8 type;	u8 reserved1[3];	u32 reason;	u64 tag;};struct srp_tsk_mgmt {	u8 type;	u8 reserved1[7];	u64 tag;	u32 reserved2;	u64 lun PACKED;	u8 reserved3;	u8 reserved4;	u8 task_mgmt_flags;	u8 reserved5;	u64 managed_task_tag;	u64 reserved6;};struct srp_cmd {	u8 type;	u32 reserved1 PACKED;	u8 data_out_format:4;	u8 data_in_format:4;	u8 data_out_count;	u8 data_in_count;	u64 tag;	u32 reserved2;	u64 lun PACKED;	u8 reserved3;	u8 reserved4:5;	u8 task_attribute:3;	u8 reserved5;	u8 additional_cdb_len;	u8 cdb[16];	u8 additional_data[0x100 - 0x30];};struct srp_rsp {	u8 type;	u8 reserved1[3];	u32 request_limit_delta;	u64 tag;	u16 reserved2;	u8 reserved3:2;	u8 diunder:1;	u8 diover:1;	u8 dounder:1;	u8 doover:1;	u8 snsvalid:1;	u8 rspvalid:1;	u8 status;	u32 data_in_residual_count;	u32 data_out_residual_count;	u32 sense_data_list_length;	u32 response_data_list_length;	u8 sense_and_response_data[18];};struct srp_cred_req {	u8 type;	u8 reserved1[3];	u32 request_limit_delta;	u64 tag;};struct srp_cred_rsp {	u8 type;	u8 reserved1[7];	u64 tag;};struct srp_aer_req {	u8 type;	u8 reserved1[3];	u32 request_limit_delta;	u64 tag;	u32 reserved2;	u64 lun;	u32 sense_data_list_length;	u32 reserved3;	u8 sense_data[20];};struct srp_aer_rsp {	u8 type;	u8 reserved1[7];	u64 tag;};union srp_iu {	struct srp_generic generic;	struct srp_login_req login_req;	struct srp_login_rsp login_rsp;	struct srp_login_rej login_rej;	struct srp_i_logout i_logout;	struct srp_t_logout t_logout;	struct srp_tsk_mgmt tsk_mgmt;	struct srp_cmd cmd;	struct srp_rsp rsp;	struct srp_cred_req cred_req;	struct srp_cred_rsp cred_rsp;	struct srp_aer_req aer_req;	struct srp_aer_rsp aer_rsp;};#endif

⌨️ 快捷键说明

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