#ifndef _UAPIBSG_H
#define _UAPIBSG_H
#include <linux/types.h>
#define BSG_PROTOCOL_SCSI 0
#define BSG_SUB_PROTOCOL_SCSI_CMD 0
#define BSG_SUB_PROTOCOL_SCSI_TMF 1
#define BSG_SUB_PROTOCOL_SCSI_TRANSPORT 2
/*
* For flag constants below:
* sg.h sg_io_hdr also has bits defined for it's flags member. These
* two flag values (0x10 and 0x20) have the same meaning in sg.h . For
* bsg the BSG_FLAG_Q_AT_HEAD flag is ignored since it is the deafult.
*/
#define BSG_FLAG_Q_AT_TAIL 0x10 /* default is Q_AT_HEAD */
#define BSG_FLAG_Q_AT_HEAD 0x20
struct sg_io_v4 {
__s32 guard; /* [i] 'Q' to differentiate from v3 */
__u32 protocol; /* [i] 0 -> SCSI , .... */
__u32 subprotocol; /* [i] 0 -> SCSI command, 1 -> SCSI task
management function, .... */
__u32 request_len; /* [i] in bytes */
__u64 request; /* [i], [*i] {SCSI: cdb} */
__u64 request_tag; /* [i] {SCSI: task tag (only if flagged)} */
__u32 request_attr; /* [i] {SCSI: task attribute} */
__u32 request_priority; /* [i] {SCSI: task priority} */
__u32 request_extra; /* [i] {spare, for padding} */
__u32 max_response_len; /* [i] in bytes */
__u64 response; /* [i], [*o] {SCSI: (auto)sense data} */
/* "dout_": data out (to device); "din_": data in (from device) */
__u32 dout_iovec_count; /* [i] 0 -> "flat" dout transfer else
dout_xfer points to array of iovec */
__u32 dout_xfer_len; /* [i] bytes to be transferred to device */
__u32 din_iovec_count; /* [i] 0 -> "flat" din transfer */
__u32 din_xfer_len; /* [i] bytes to be transferred from device */
__u64 dout_xferp; /* [i], [*i] */
__u64 din_xferp; /* [i], [*o] */
__u32 timeout; /* [i] units: millisecond */
__u32 flags; /* [i] bit mask */
__u64 usr_ptr; /* [i->o] unused internally */
__u32 spare_in; /* [i] */
__u32 driver_status; /* [o] 0 -> ok */
__u32 transport_status; /* [o] 0 -> ok */
__u32 device_status; /* [o] {SCSI: command completion status} */
__u32 retry_delay; /* [o] {SCSI: status auxiliary information} */
__u32 info; /* [o] additional information */
__u32 duration; /* [o] time to complete, in milliseconds */
__u32 response_len; /* [o] bytes of response actually written */
__s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */
__s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */
__u64 generated_tag; /* [o] {SCSI: transport generated task tag} */
__u32 spare_out; /* [o] */
__u32 padding;
};
#endif /* _UAPIBSG_H */
小贝德罗
- 粉丝: 89
- 资源: 1万+
最新资源
- 内置天线基础介绍 例如手机平板等
- MMC-HVDC,模块化多电平变器,高压直流输电,单相MMC,电压均衡控制,纹波抑制,模块化多电平变器,MMC,HVDC
- 机械设计破碎筛分一体机sw20可编辑全套技术资料100%好用.zip
- 模块化多电平变器APF,模块化多电平变器,MMC,模块化多电平变器型有源电力滤波器,MMC型APF,相间电压均衡控制,桥臂电压均衡控制,桥臂内模块电压均衡控制,载波移相调制,环流抑制
- 基于深度学习的贫困生认定系统Python源码(高分项目).zip
- x86端游内存C++读写自动打怪实战课程
- Vienna整流器,L型滤波,中点电位平衡控制,维也纳整流器,
- 基于期望搜索的爱因斯坦棋博弈软件
- 三相逆变器,LC滤波,不对称负载,三相不对称负载逆变器,双闭环控制,SVPWM,空间矢量调制,直流电压波动抑制,电压纹波抑制
- LCL型整流器,有源阻尼,谐振抑制,双闭环控制,单位功率因数 LCL滤波
- 冒泡排序,选择排序,插入排序,快速排序的练习
- 预计2030年全球锂离子电池炭黑市场规模将达到12.5亿美元
- 预计2030年全球轮胎和橡胶设备市场规模将达到82.9亿美元
- 基于Django框架开发的自动化测试用例管理平台源码+文档说明(高分毕设)
- iShot Pro for Mac v2.5.9
- Java Swing 实现堆排序动画效果,后续陆续实现其他排序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈