亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iscsi_target.h

?? iscsi源代碼 UNH的progect 有initiator端和target端的源碼
?? H
字號:
/*	target/iscsi_target.h	vi: set autoindent tabstop=8 shiftwidth=8 :	header file for the iSCSI Target*//*	Copyright (C) 2001-2003 InterOperability Lab (IOL)					University of New Hampshier (UNH)					Durham, NH 03824	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, 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.	The name of IOL and/or UNH may not be used to endorse or promote products	derived from this software without specific prior written permission.*/#ifndef	_ISCSI_TARGET_H#define	_ISCSI_TARGET_H#include "scsi_target.h"#include <linux/proc_fs.h>#include "../common/iscsi_common.h"#include "../common/debug.h"#include "../common/my_memory.h"#include "../common/range.h"#include "../common/crc.h"#include "../common/tcp_utilities.h"/* chap and srp support - CHONG */#include "../security/misc/misc_func.h"#include "../security/chap/chap.h"#include "../security/srp/srp.h"#include "../common/text_param.h"#include "../common/target_negotiate.h"#include "iscsi_portal_group.h"struct data_list{	__u32 offset;	__u32 length;	char *buffer;	struct data_list *next;};/* values for "state" in struct iscsi_cmnd */#define ISCSI_CMND_RECEIVED			1#define ISCSI_NEW_CMND				2#define ISCSI_BUFFER_RDY			3#define ISCSI_DONE				4#define ISCSI_SENT				5#define ISCSI_DEQUEUE				6#define ISCSI_ALL_R2TS_SENT			7#define ISCSI_IMMEDIATE_DATA_IN			8#define ISCSI_UNSOLICITED_DATA_IN		9#define ISCSI_DATA_IN				10#define ISCSI_MGT_FN_DONE			11#define ISCSI_SEND_TEXT_RESPONSE		12#define ISCSI_LOGOUT				13#define ISCSI_PING				14#define ISCSI_QUEUE_CMND			15#define ISCSI_QUEUE_CMND_RDY			16#define ISCSI_QUEUE_OTHER			17#define ISCSI_NOPIN_SENT			18#define ISCSI_RESEND_STATUS			19#define ISCSI_ASK_FOR_MORE_TEXT			20#define ISCSI_AWAIT_MORE_TEXT			21#define ISCSI_BLOCKED_SENDING_TEXT		22/* stores everything related to a SCSI command received */struct iscsi_cmnd{  /* next: pointer to the next command in the list */  struct iscsi_cmnd	*next;  /* conn: connection on which this command was received */  struct iscsi_conn	*conn;  /* session: session on which this command was received */  struct iscsi_session	*session;  /* unsolicited_data_sem: to control receiving immediate data */  struct semaphore    	unsolicited_data_sem;  /* state: execution state of the command */  __u8			state;  /* response: task_mgt_function response */  __u8			response;  /* flag for errorRecovery of r2t */  __u8 			recovery_r2t;  /* flags from command pdu */  __u8			command_flags;  /* ping_data: data get from nopout and send for nopin */  char			*ping_data;  /* in_progress_buffer: accumulated data during text negotiations */  char			*in_progress_buffer;  /* cmnd: cmnd corresponding to this struct */  Target_Scsi_Cmnd	*cmnd;  /* message: message corresponding to this struct */  Target_Scsi_Message 	*message;  /* immediate_data_present: */  __u8    		immediate_data_present;  /* unsolicited_data_present: */  __u8    		unsolicited_data_present;  /* Data PDU re-transmission on Data SNACK - SAI */  __u8                  retransmit_flg;  /* opcode_byte: command's opcode byte (including I bit) */  __u8                  opcode_byte;  /* data_length: total number of bytes of data to be transferred by command */  __u32			data_length;  /* first_burst_size: data associated with the command */  __u32			first_burst_len;  /* max_burst_size: data associated with one R2T */  __u32			next_burst_len;  /* data_done: number of bytes of data transferred so far in a command */  __u32			data_done;  /* r2t_data_total: total amount of data to be solicited by r2ts */  int			r2t_data_total;  /* r2t_data: data_length_left for the next r2t -- can go negative! */  int			r2t_data;  /* scatter_list_offset:when processing a WRITE command, is byte offset in   *			 current sg list item of where to start storing next   *			 data byte from a DataOut pdu if pdus, seqs are in order   *			 when processing a READ command, is byte offset in   *			 current sg list iemt of where to start sending next   *			 data byte in a DataOut pdu if pdus, seqs are in order   */  __u32           	scatter_list_offset;  /* scatter_entry_count:when processing a WRITE command, is index into   *			 current sg list of item of where to start storing next   *			 data byte from a DataOut pdu if pdus, seqs are in order   *			 when processing a READ command, is byte offset in   *			 current sg list item of where to start sending next   *			 data byte in a DataOut pdu if pdus, seqs are in order   */  __u32           	scatter_list_count;  /* init_task_tag: Initiator Tag */  __u32			init_task_tag;  /* target_xfer_tag: Target Assigned Tag */  __u32			target_xfer_tag;  /* ref_task_tag: Referenced Task Tag used when aborting tasks*/  __u32           	ref_task_tag;  /* ref_cmd_sn: Referenced command sn used when aborting command*/  __u32           	ref_cmd_sn;  /* ref_function: Referenced function for task management */  __u32			ref_function;  /* ref_task_lun: Referenced Task lun used when aborting luns*/  __u64           	ref_task_lun;  /* lun and cdb: as their name mean */  __u64   lun;  __u8    cdb[16];	  /* cmd_sn of this command and stat_sn of this command response */  __u32			cmd_sn;  __u32			stat_sn;  __u32			cmd_sn_increment;   /* used by SCSI Command pdus only */  /* Command WIDE COUNTERS: data_sn and r2t_sn */  __u32			data_sn;  __u32			r2t_sn;  __u32			outstanding_r2t;  /* for out-of-order sequence and DataOut PDUs */  struct order_range      seq_range_list;  struct order_range      pdu_range_list;        /* for out-of-order command */  __u8			 hdr[ISCSI_HDR_LEN];  struct data_list	*unsolicited_data_head;  struct data_list	*unsolicited_data_tail;  /* Added r2t cookie details - SAI */  struct iscsi_cookie	*first_r2t_cookie;  struct iscsi_cookie	*last_r2t_cookie;  /* queue out-of-order data pdus - SAI */  struct iscsi_cookie	*first_data_q;  struct iscsi_cookie	*last_data_q;  /* Added timestamp for r2t retransmissions - SAI */  int		timestamp;  /* Store the previously sent data_sn, used when retransmit_flg set */  __u32		prev_data_sn;  /* Store the retransmission limits for data_sn set by a SNACK,   * used when retransmit_flg set */  __u32		startsn, endsn;};extern struct iscsi_global *devdata;int	iscsi_detect		(Scsi_Target_Template*);int	iscsi_release		(Scsi_Target_Device*);int	iscsi_xmit_response	(Target_Scsi_Cmnd*);int	iscsi_rdy_to_xfer	(Target_Scsi_Cmnd*);int 	iscsi_proc_info		(char *, char **, off_t, int, int, int);void 	iscsi_task_mgt_fn_done 	(Target_Scsi_Message *msg);int	iscsi_server_thread (void*);int	iscsi_rx_thread	(void*);int	iscsi_tx_thread (void*);    #define PDU_SENSE_LENGTH_SIZE 2#define SENSE_STRUCTURE_SIZE 18/* * executed only by the rx thread, in spite of the tx in the name! * iscsi_tx_reject: this function transmits a reject to the Initiator * the attached 48-byte data segment is the header of the rejected PDU * OUTPUT: 0 if everything is okay, < 0 if there is trouble */intiscsi_tx_rjt(struct iscsi_conn *conn, __u8 *bad_hdr, __u8 reason);/* * executed only by the rx thread. * Allocates new reject item, fills it in with header of rejected pdu, * and enqueues it for tx thread on reject_list of this connection. */intenqueue_reject(struct iscsi_conn *conn, __u8 reason);/* * find_iovec_needed: this function returns the number of iovecs that * are needed to receive some data * INPUT: amount of data needed, pointer to scattergather list (from the * 	  point where the data is to start for this round, offset within * 	  the first scattergather element - in case it was not used up * 	  completely * OUTPUT: number of iovectors needed, else < 0 if there is trouble */int __attribute__ ((no_instrument_function))find_iovec_needed (__u32 data_len, 	struct scatterlist *st_list, __u32 offset);/* * fill_iovec: This function fills in a given iovec structure so as to * reflect a given scattergather list upto the length that is required * No checks are made on the length on the iovec given except that it * needs to be greater than the size needed. Also, the scatterlist is * also not checked. The integer offset upon return reflects the posn of * the offset in the last scatterlist that was used for this function * INPUT: struct iovec, no. of iovecs, scatterlist, ptr to offset within * 	  the first element, and the total length required * OUTPUT: how many st_list elements are used, < 0 if there is trouble */int __attribute__ ((no_instrument_function))fill_iovec (struct iovec *iov, int i, int niov,        struct scatterlist *st_list, int *offset, __u32 data);/* * iscsi_rx_data: will receive a fixed amount of data. * INPUT: struct iscsi_conn (what connection), struct iovec, number of iovecs, * total amount of data in bytes * OUTPUT: int total bytes read if everything is okay * 	       < 0 if trouble */int iscsi_rx_data (struct iscsi_conn *conn, struct iovec *iov, int niov, int data);/* * iscsi_tx_data: will transmit a fixed amount of data. * INPUT: struct iscsi_conn (what connection), struct iovec, number of iovecs, * total amount of data in bytes, * OUTPUT: int total bytes read if everything is okay * 	       < 0 if trouble */int iscsi_tx_data (struct iscsi_conn *conn, struct iovec *iov, int niov, int data);				#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人精品在线观看| 亚洲一区影音先锋| 日韩专区欧美专区| 伊人婷婷欧美激情| 日韩经典中文字幕一区| 日韩精品一区二区三区中文不卡 | 亚洲国产精品一区二区www在线| 最新不卡av在线| 亚洲在线免费播放| 欧美成人三级在线| 91捆绑美女网站| 欧美精品自拍偷拍动漫精品| 久久精品国产精品亚洲红杏| 粉嫩在线一区二区三区视频| 一本一道综合狠狠老| 日韩免费电影网站| 国产色91在线| 精品对白一区国产伦| 在线亚洲欧美专区二区| 国产精品自在欧美一区| 色综合一个色综合| 久久久噜噜噜久久人人看| 亚洲成人激情自拍| 成人白浆超碰人人人人| 精品国产欧美一区二区| 亚洲综合自拍偷拍| av亚洲产国偷v产偷v自拍| 亚洲高清中文字幕| 成人黄色av电影| 欧美成人女星排名| 欧美xxxxx牲另类人与| 在线免费精品视频| 99久久免费国产| 中文字幕一区在线观看视频| 麻豆国产精品777777在线| 欧美日韩在线不卡| 亚洲三级免费观看| 99精品桃花视频在线观看| 国产v综合v亚洲欧| 精品99久久久久久| 极品少妇一区二区| 欧美日韩国产乱码电影| 欧美videossexotv100| 久久精品国产亚洲高清剧情介绍| 亚洲国产中文字幕在线视频综合 | 久久久国产精品午夜一区ai换脸 | 日韩视频在线永久播放| 麻豆成人久久精品二区三区红| 午夜久久电影网| 韩国精品在线观看| 久久久99精品久久| 91蜜桃传媒精品久久久一区二区| 91免费观看国产| 亚洲激情第一区| 制服视频三区第一页精品| 日本女优在线视频一区二区| 国内精品久久久久影院薰衣草| 欧美激情自拍偷拍| 欧美在线free| 国产精品免费av| 日本三级亚洲精品| 成人蜜臀av电影| 欧洲精品一区二区三区在线观看| 视频一区二区中文字幕| 欧美α欧美αv大片| 亚洲最新视频在线播放| 91丨九色丨尤物| 欧美aaa在线| 亚洲三级小视频| 中文欧美字幕免费| 欧美一区二区视频免费观看| 波多野结衣中文字幕一区二区三区| 色美美综合视频| 国产成人精品免费网站| 久久草av在线| 午夜久久久影院| 国产精品久久精品日日| 欧美www视频| 欧美xxxxxxxx| 久久久久久一二三区| 欧美一区二区三区成人| 欧美日韩国产色站一区二区三区| 97精品国产露脸对白| 亚洲三级在线免费观看| 亚洲欧洲日产国码二区| 成人激情开心网| 成人综合婷婷国产精品久久蜜臀| 国内精品在线播放| 国产不卡一区视频| 成人激情动漫在线观看| av在线播放不卡| 欧美高清性hdvideosex| 欧美日韩高清一区二区不卡 | 亚洲国产美女搞黄色| 亚洲美女在线国产| 一本久久综合亚洲鲁鲁五月天| 日本一区二区久久| 国产精品国产自产拍在线| 亚洲日本护士毛茸茸| 亚洲成av人影院在线观看网| 欧美中文字幕亚洲一区二区va在线 | 成人午夜视频福利| 欧美午夜影院一区| 久久久久久电影| 欧美高清你懂得| 日本一区二区久久| 91福利国产成人精品照片| 正在播放一区二区| 亚洲欧美自拍偷拍| 六月婷婷色综合| 精品1区2区3区| 成人精品免费看| 3atv在线一区二区三区| www.日本不卡| 精品欧美一区二区久久| 伊人性伊人情综合网| 国产精品天干天干在线综合| 天天影视涩香欲综合网| 97se亚洲国产综合自在线| 成人高清视频在线| 亚洲精选视频免费看| 国产精品一二三四| 欧美一级艳片视频免费观看| 国产精品色哟哟| 成人在线综合网| 中文字幕不卡在线观看| 国产在线精品免费| 精品一区二区精品| 欧美电影免费观看高清完整版在线 | 欧美福利视频一区| 一区二区三区日韩欧美精品| 国产成人综合网| 成人黄色av网站在线| 欧洲国内综合视频| 欧美日韩一区二区电影| 亚洲精品中文字幕乱码三区| 亚洲精品成人精品456| 色狠狠桃花综合| 欧美手机在线视频| 欧美日韩精品一区二区三区四区| 亚洲欧美偷拍三级| 欧美日韩一区不卡| 日本成人在线电影网| 欧美一级艳片视频免费观看| 国产精品一区二区黑丝| 国产日产欧美一区二区视频| 福利一区二区在线观看| 一区二区三区四区亚洲| 日韩一区精品视频| 精品国产自在久精品国产| 欧美三级韩国三级日本三斤| 午夜精品久久久久久久久| 久久综合五月天婷婷伊人| 中文字幕一区二| 欧美日韩国产另类一区| 成人深夜福利app| 日本电影亚洲天堂一区| 91精品综合久久久久久| 成人黄色a**站在线观看| 精品一区二区三区欧美| 成+人+亚洲+综合天堂| 久久久久国产精品人| 色吊一区二区三区| 久久嫩草精品久久久精品一| 欧美日韩一区三区四区| 色综合中文综合网| 日韩精品电影一区亚洲| 福利一区福利二区| 日韩成人午夜精品| 日日摸夜夜添夜夜添国产精品 | 99国产欧美久久久精品| 精品国产免费视频| 99久久精品国产观看| 精品中文av资源站在线观看| 久久先锋影音av鲁色资源网| 91精品国产乱| 欧美一区二区三区日韩视频| 欧美日韩国产高清一区二区| 91亚洲永久精品| 色婷婷综合久久久久中文 | 亚洲美女一区二区三区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91丨九色丨蝌蚪丨老版| 欧美这里有精品| 中文字幕亚洲区| 一区二区三区不卡视频在线观看| 综合久久综合久久| 亚洲一级片在线观看| 欧美本精品男人aⅴ天堂| 日本一区二区三区高清不卡| 日韩一区中文字幕| 久久久影院官网| 一区二区在线电影| 精品动漫一区二区三区在线观看 | 免费在线视频一区| 天堂影院一区二区| 欧美亚洲一区二区三区四区| 精品国产百合女同互慰| 久久久99久久| 日本在线播放一区二区三区|