scsi_tgt_if.h

来自「linux 内核源代码」· C头文件 代码 · 共 109 行

H
109
字号
/* * SCSI target kernel/user interface * * Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org> * Copyright (C) 2005 Mike Christie <michaelc@cs.wisc.edu> * * 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., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA */#ifndef __SCSI_TARGET_IF_H#define __SCSI_TARGET_IF_H/* user -> kernel */#define	TGT_UEVENT_CMD_RSP		0x0001#define	TGT_UEVENT_IT_NEXUS_RSP		0x0002#define	TGT_UEVENT_TSK_MGMT_RSP		0x0003/* kernel -> user */#define	TGT_KEVENT_CMD_REQ		0x1001#define	TGT_KEVENT_CMD_DONE		0x1002#define	TGT_KEVENT_IT_NEXUS_REQ		0x1003#define	TGT_KEVENT_TSK_MGMT_REQ		0x1004struct tgt_event_hdr {	uint16_t version;	uint16_t status;	uint16_t type;	uint16_t len;} __attribute__ ((aligned (sizeof(uint64_t))));struct tgt_event {	struct tgt_event_hdr hdr;	union {		/* user-> kernel */		struct {			int host_no;			int result;			aligned_u64 itn_id;			aligned_u64 tag;			aligned_u64 uaddr;			aligned_u64 sense_uaddr;			uint32_t len;			uint32_t sense_len;			uint8_t rw;		} cmd_rsp;		struct {			int host_no;			int result;			aligned_u64 itn_id;			aligned_u64 mid;		} tsk_mgmt_rsp;		struct {			__s32 host_no;			__s32 result;			aligned_u64 itn_id;			__u32 function;		} it_nexus_rsp;		/* kernel -> user */		struct {			int host_no;			uint32_t data_len;			aligned_u64 itn_id;			uint8_t scb[16];			uint8_t lun[8];			int attribute;			aligned_u64 tag;		} cmd_req;		struct {			int host_no;			int result;			aligned_u64 itn_id;			aligned_u64 tag;		} cmd_done;		struct {			int host_no;			int function;			aligned_u64 itn_id;			aligned_u64 tag;			uint8_t lun[8];			aligned_u64 mid;		} tsk_mgmt_req;		struct {			__s32 host_no;			__u32 function;			aligned_u64 itn_id;			__u32 max_cmds;			__u8 initiator_id[16];		} it_nexus_req;	} p;} __attribute__ ((aligned (sizeof(uint64_t))));#define TGT_RING_SIZE (1UL << 16)#endif

⌨️ 快捷键说明

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