您的位置:标准吧 > 标准下载 > SJ 20820.9 2002 信息技术 小计算机系统接口SCSI 3基本命令层 第9部分:公共访问方法9

SJ 20820.9 2002 信息技术 小计算机系统接口SCSI 3基本命令层 第9部分:公共访问方法9

时间:2012-5-28 14:42:50 作者:标准吧 来源:SJ 阅读:1921次
SJ 20820.9 2002 信息技术  小计算机系统接口SCSI 3基本命令层 第9部分:公共访问方法9
 

——具有错误的完成请求:表示连接ID现存一个连接.

——无效的请求:因为不能实现一个或多个操作属性,所以该请求已被拒绝。

——无效的路径ID:表示未安装指定的路径ID.

11.7.3.2 CAM-3连接释放

    该函数能引起对指定连接ID连接的释放.SIM应验证连接的拥有者与释放连接的请求者相同.SIM应把cam.pdrv_reg组成、cam_sim__bhandle组成、和cam_sim_generation组成与现行连接存储的起始值进行比较,若该值不等于所存储的值.SIM不应释放该连接.

  XPT的供给者定义CAM-3连接释放CCB结构,如下所示,

  typedef struct ccb_bindrelease3

    {

    CCB HEADER3 ccb.header3            /*CCB_HEADER3信息字段*/

    CAM_ U32 cam_pdrv_reg              /*请求者驱动程序注册号*/

    } CCB_BIND-RELEASE3:

11.7.3.2.1连接释放的组成说明

    ——请求由CCB的发送者设置的CCB_HEADER3组成的信息,

    ·  cam_func_code;

    该组成应包含XPT CAM3__CCB函数代码,

    ·  cam3_func—code

    该组成应包含XPT—BIND_REL函数代码.

    .  port_id~

    该组成应包含一个端口号(如:SCSI总线号).

    ·  addr_specl:

    该组成应包含SCSI目标设备说明符, 

    ·  addr..spec2

    该组成应包含SC.SI逻辑单元说明符.

    ·  cam_sim—generation

    该组成应反映当前连接操作返回的Sit[连接生成号.

    ·  cam_sim..bhandle

    该组成应反映当前连接操作返回的SIM连接处理,

    ·  cam_f]ags;

    该函数不存在定义的CAM标记.

    ·  cam pdrv__reg;

    该组成是请求者外围驱动程序注册号,它由获得外围驱动程序注册号的请求

    者设置.   

11.7.3.2.连接释放返回

  ——无错误完成的请求:连接释放函数成功实现,

  ——具有错误的完成请求:表示一个连接对连接ID不是现存的.

  ——无效的请求:因为CCB发送者不是连接的当前拥有者,所以该请求已被拒绝.

  ——无效的路径ID.表示未安装指定的路径ID.

11.7.3.3 CAH-3连接查询OCB

    该函数使SIM置入cam  bind_ops组成,产生它所支持的函数值,使SIM报告是否具有连接ID的当前连接.若连接ID具有当前连接.SIM应把一个任意的正值(推荐值为“l")置入cam-sim.bhandle组成,

  若互连协议支持命令传送时间报告的概念(如:FC),SIM应把cam_delivery_time组成置入以秒为单位的当前时间,以便给设备传送一条命令.SIM总是上舍入(进位舍入)时间到最近的秒数(如:“125”ms上舍入为“1”s).由于协议中没有机制置该值为“O”(如:SPI),所以SIM不能确定一个命令的传送时间.

  XPT的供给者定义CAM-3连接查询CCB结构如下:

  typedef struct ccb_bind—query3

    {

    CCB_HEDER3 ccb_header3:         /*CCB_HEADER3信息字段*/

    CAM-U32 cam_bJnd_ops.           /*操作属性*/

    CAM_U32 cam_pdrv_reg;          /*请求者驱动程序注册号*/

    } CCB_BIND_QUERY3:

11.7.3.3.1连接查询的组成说明

    ——请求CCB的发送者设置的CCB_HEADER3组成的信息。

    ·    cam_func-code;

    该组成应包含XPT_CAM_3_CCB函数代码.

    ·  cam3_func_code

    该组成应包含XPT_BIND_REL函数代码.,

    .  port_id

    该组成应包含一个端口号(如:SCSI总线号)。

    ·    addr_spec2

    该组成应包含SCSI日标设备说明符.

    ·  addr_specl

    该组成应包含SCSI逻辑单元说明符.

    ·  cam_flags

    该函数没有定义的CAM标记.

    ·  cam_bind-ops

   没有当前定义的操作属性.对于任何与CAM-3这个版本的一致的SIM.该组成应被置为0

  11.7.3.3.2连接查询返回

    一无错误完成的请求:连接释放函数成功实现,

    一无效的路径ID:表示未安装指定的路径ID。

11.7.4CAJP3获得设备类型

    对于给出的逻辑单元,该函数返回cam_pd-type组成中查迩响应数据的外围设备类型,任选供给的缓冲器中查询数据的头36字节.

    附属于SCSI设备上的信息在XPT/SIM需要的时候被集中(为每个驱动程序消除该要求,以便为设备尽量复制SCSI总线的扫描).

    XPT的供给者定义得到设备类型CCB结构如下:

    typedcf struct ccb_getdev 3

    {

    CCBJIEADER3 ccb_header3;.    /*CCB..HEADER3信息字段*/

    CAM_U8 cam..inq._data;        /*指向查询数据空间的指针*/

    CAM U8 cam_pd_type.           /*}围设备类型*/

    } CCB_GETDEV3;

11.7.4.1.获得设备类型的组成说明  

——请求CCB的发送者设置的CCB..HEADER3组成的信息.

    ·  cam_func_code

    该组成应包含XPT_CAM 3_CCB函数代码,

    ·  cam3_func_code:

    该组成应包含XPT_GDEV_TYPE函数代码.

    ·  cam_protocol;

    该组成应包含SCSI_PROTOCOL号,

    ·    logical_id

    该组成是对指定协议分配的设备逻辑标识符的XPT.

    ·  cam_flags:

    该函数没有定义的CAM标记。

    ——cam_pd_type

    逻辑单元字段的外围设备类型是来自直迫响应数据的外围设备类型。XPT/SlM应通过采用查询响应数据的字节“O”生成该数据并设置位7-5为“O”.

    --cam_inq.data;

    若查询数据指针字段包含一个不是空的值,它应指向最低36字节的缓冲器。当查询数据指针字段不为空时.XPT/SIM应从它的内部表拷贝查询响应数据的头36字节到已识别的缓冲器,若逻辑单元按SCSl-3的定义时,用直迦响应数据响应查询命令.

11.7.4.2获得设备类型返回

    该函数应返回一个不是在进行中请求的CAM状态.CAM状态应是下列情况之一:

    ——无错误完成的请求表示安装指定的设备,而且外围设备类型字段有效。

    一一未安装的SCST设备表示描述的外围设备(CAM协议类型绒logical_.id )在EDT中还没有找到.

  11.7.5 CAM-3路径查询

    该函数应返回已安装编址的HA/SCSI总线硬件或XFT上的信息.为获得附加的专用HA/SCSI总线的更进一步的信息.能够对每个分配的路径ID发出该函数.

    在某些操作系统环境中,它可能动态地装载和卸载SIH,所以端口ID可以不必从“O”开始到分配的最高端口ID进行连续地记数。

    若CCB被XPT寻址,则XPT应置protocol—type组成到它支持的所有协议类型中.若CCB被指向一个SIM.则对指定的port_id组成,SIM应置protocol_type组成到它支持的协议号。

    XPT的供给者应定义路径查询ccB结构和全部标记位定义.路径查询CCB结构定义如下:

    typedef struct ccb—pathinq3

    {

CCB._HEADER3 ccb_pathinq3:                 / *标题信息字段*/

CAM U8 cam version. num [32]               / * ASCII NULL .终止的串版本号*/

CAM_U8 cam_interconnect [32]               / * ASCII NULL 终止的串互连协议类型(如:SIP FCP ) * /

CAM U32 cam ha_inquiry:                    / *SIM/HA支持任务控制等*/

CAM_U32 casi_target_sprt                   / *目标设备方式支持的标记*/

CAM_U32 cam_ba_mi sc                       / *Misc HA 性能标记*/

CAM U32 cam ha_eng_cnt:                    / * HA 引擎记数*/

CAM_U32 cam_max_targ addr [2];             / *最大SCSI 目标设备地址*/

CAM_U32 cam_max_fun_ addr[2]               / *最大SCSI 逻辑单元地址*/

CAM U32 cam vuha_.flags[16]                / *售方专用能力*/

CAM U32 cam_async_flags;                   / *异步回调的事件能力*/

CAM_U32 cam_hpath_id;                      / *子系统中的最高路径ID * /

CAM_Ii32 cam-initiator_id[2]               / * SCSI 总线上HA的ID * /

CAM U32 cam_prsvdO                         / *为调整保留的字段*/

CAM_U8 csm_sim vid [32]                    / * SIM 的售方ID * /

CAM cam_havid [32]                         / * IIA 的售方ID * /

CAM U8 cam_osd_usage                      /指向OSD专用区域的指针*/

} CCB_PATJINQ3,

    注l5,对于不是路经查询CCB的CCB的XP的路径ID.CCB以无效路径ID的CAM状态返回。

11.7.5.1路径查询的组成说明

    ——请求CCB的发送者设置的CCB_HEADER3组成的信息

    ·  cam_func_code

    该组成应包含XPT_CAM_3_CCB函数代码.

    ·  cam3_func_code

    该组成应包含XPT_PATH_INQ函数代码.

    ·port.id

    该组成应包含一个端口号(如:SCSI总线号)或XPT的port id号(OxFF)。

    ·  cam_flags:

    该函数没有定义的CAM标记

    一cam_version num

    该版本号组成应识别与SIM/HA或XPT一致的CAM-3版本号-对一个有效的SIM/HA或者XPT寻址的路经查询CCB应在版本号组成中分别设置与它一致的ASCII NULL终止串CAM-3版本号.当认为ANSI CAM-3文本是一个标准时,版本串应是遵守该标准的售方的CAM-3V1.与此版本工作图一致应由CAM-3 WR[X]表示,其中[X]是版本号。现行CAM-3版本号是2.应由CAM一3WDR2的ASCII NULL终止串表示。

    一Cam_i nterconnect

    互连协议类型应识别SIWHA的互连协议

    ---cam_ha_inquiry

   SCSI性能组成可能是查询数据中字节7字段的两倍.根据SCSI传输协议的变化(如:SIP,

    FCP和SBP),某些定义的性能不适用.SIM应按下列定义设置它支持的性能标记:

    ·  SIM支持自动设备分辨,该标记指示SIM支持一种方法,该方法允许一个SCSI设备通过互连事件(如:SCAM、FC)改交它舸物理地址说明符。若它支持地址分辨方法的这个类型,SIM应设置这个标记.

    #定义PI_AUTO_DEV_RESOLVE    Ox80000000

    ·  SIM支持总线复位任务

    PI BUSRESET_ABLE    Ox200

    ·  SIM支持终止I/O任灸

    #定义PI TERMINATE_IO_ABLE    Ox100

    ·  SIM支持修改数据指针消息

    #定义PI_MDP_ABLE             Ox80

    ·  SIM支持32位宽SCSI数据传送

    #定义PI_WIDE_32    0x40

    ·  SIM支持16位宽SCSI数据传送

    #定义PI_WIDE- 16    0x20

    ·  SIM支持异步数据传送

    #定义PI SDTR_ABLE    Ox10

    ·  SIM支持链接的SCSI命令

    #定义PI_LINKED_CDB    Ox08

    ·  SIM支持标签排队命令

#定义PI_TAG- ABLE    Ox02

·  SIM支持软复位功能

    #定义PI SOFT_RST    0x01

    ·  保留标记位定义  0x02

--cam_ target.sprt;

    目标设备方式支持的组成为目标设备方式报告功能性支持.SI}X应按下列定义设置它支持的性能标记:

    ·  保留Ox100~~OxFFFFFF00标记位定义

        SIM支持主机目标设备方式

    #定义PIT_HOST-MODE    OxSO

    ·  SIM支持阶段认知方式

    #定义PIT_PHASE COG_MODE,    Ox40

    ·  SIM支持目标设备方式断开

    #定义PIT- TMODE DISCON    Ox20

    ·  SIM支持终止I/O处理消息

    #定义PIT_TERMINATE. IO    OxlO

    ·  SIM支持组6命令

    #定义PIT- Group_6    0xlO

        SIM支持组5命令

    #定义PIT_Group_5    0x20

    ·  保留OxOl~~Ox00标记位定义

——cam_ha_misc

    支持的各种各样组成通过XPT报告各种各样的功能支持,XPT应按下列定义设置它支持的性能标记,

    ·  保留标记位定义(OxlO、Ox08、Ox04、Ox02、OxOl和Oxl00~OxFFFFFF00)

    ·  SCSI总线扫描方向.若XPT从低到高(如,目标设备OxO~~OxF)扫描,定义的位应被清除.若XPT从高到低(如,目标设备OxF~OxO)扫描,定义的位应被设置.

     #定义PIM..SCANHILO    Ox80

    ·  不包括在扫描中移走设备,这表示XPT不保持在那些设备上的查询数据.若XPT不为移走设备保持查询数据,该指示位应被设置.

    #定义PIM_NORF310VE    0x40.

    ·  查询数据不由XPT集保持表示XPT不存储查询数据,

    #定义PIM.NOINQUIRY    Ox20

--cam_ha engL cnt;

    引擎记数表示一个HA引擎在这个指定的端口ID上可用的引擎数.

——cam_max_targ_addr

    最大可寻址目标设备地址是两个CAM_U32中的一个阵列。该组成表示SIM/HA能够寻址到最高的目标设备地址。cam_max_target_addr [0]组成应包含最大SCSI目标设备说明符中的低32位(最低有效部分),cam_max_targetaddr[l]组成应包含最大SCSI目标设备说明符中的高32位(最高有效部分).

——cam_max lun addr

    最大可寻址逻辑单元地址是两个CAM_U32中的一个阵列。该组成表示SIM/HA能够寻址到最高的逻辑单元地址.cam_max_target_addr [0]组成cam_max_target_addr[1]组成应包含SCSI逻辑设备说明符的低32位(最低有效部分),cam max_targe t_addr[1]组成应包含SCSI逻辑设备说明符的高32位(最高有效部分).

  --cam vuha_.area

    售方专用存储区域为16字节.

  ——cam_sim__priv

    在某些环境中,返回的私人数据区域字段值可能为“0”,这是因为OSD具有私人数据要求的主要存储元素分配,或按照OSD售方的定义是一个固定值。对限于一个特定的HA实现,售方专用HA性能的定义见售方说明.

  ——cam_async_.flags;

    异步事件性能字段表示所能引起XPT/SIM生成一个异步事件回调的原因。XPT或SIl4应按下列定义设置它支持的性能标记:

    ·  位值Oxl000000~OxFF000000(位24~~31)是售方专用.

    ·  位值Oxl00~OxOFFFF00(位8~~23)保留。

    ·  重新扫描期间寻找到新设备,CCB寻址XPT(XPT集)。

    ◇#定义AC_FOUNDDEVICES Ox80

    ·  消除SIM模块注册,CCB寻址XPT (XPT集).

    ◇#定义AC_SIM..DEREGISTER Ox40

    ·  注册SIM模块,CCB寻址XPT (XPT集).

    ◇#定义AC_SIM_REGISTER  Ox20

    ·  发送总线设备复位到目标设备.CCB寻址SIM(SIM集)。

    ◇#定义AC SENT_ BDR    OxlO

    ·SCSI AEN.CCB寻址SIM (SIM集).

    ◇#定义AC_SCSI_ AEN    Ox08

    ·  Ox04保留

    ·  主动请求的重新选择.CCB寻址SIM (SIM集).

    ◇#定义AC_UNSOL_RESEL  Ox02

    ·  主动请求的SCSI总线复位.CCB寻址SIM(SIM集)。

    ◇#定义AC_BUS_RESET    OxOl

——cam hpath_id:

    若CCB的路径ID字段有值FFh (XPT路径ID),那么仅在返回到调用者时有效的字段是分配的最高路径ID组成和版本号组成。若CCB中的路径ID字段包含一个FFh以外的值,分配的最高路径ID字段无效,

    若没有端口ID(即:没有SCSl总线被注册),分配的最高路径ID字段应为FFh,ID为XPT.

——cam_initiator_id

    CAM启动设备标识符是两个CAM_U32中的一个阵列。该组成表示这个HA的目标设备地址(启动设备id)作为port id组成的标识符.cam _target_id [0]组成应包含SCSI目标设备说明符(启动设备id)中的低32位(最低有效部分).cam _target_id[1]组成应包含SCSI目标设备说明符(启动设备id)中的高32位(最高有效部分).

——cam_sim_vid[16];

    SIM供给者的售方ID组成应包含SIM垡方名称的NULL终止的串。

——cam_ha_vid[16]t

  .HA供给者的售方ID组成应包含H^售方名称的NULL终止的串.

——cam_osd_usage

    OSD用法(使用)指针字段被提供给OS专用或SIM执行的平台专用函数.该字段的内容是售方专用并且不在本部分中定义,


 SJ  20820/9--2002

    ——请求CCB的发送者设置的CCB_HEADER3组成的信息.

    ·    cam func_code:

    该组成应包含XPT_CAM_3_CCB函数代码。

    ·  cam3 func code=

    该组成应包含XPT_RESET_BUS函数代码。

    .port_id~

    该组成应包含一个端口号(如:SCSI总线号).

    ·  cam-flagsr

    该函数没有CAM标记.

11.7.12.2复位SCSt总线返回

    该函数应返回不是进行中的请求的CAM状态,CAM状态应是下列情况之一

    ——无错误完成的请求表示该路径ID有效. 

    ——无效的路径ID表示该路径ID无效。

    复位SCSI总线函数的失败或成功实际上由异步回调信息来表示.

11.7.13CAM-3复位SCSI设备

    该函数用于指定的SCSI目标设备复位,不应用于正常操作,该请求总是导致发出盛线设备复位任务。

  XPT的提供者定义如下的复位SCSI设备CCB结构;

  typedof struct ccb-resetdev3

    {

    CCB.HEADER3 ccb_header3;    /*标题信息字段*/

    } CCB_RESETDEV3,

11.7.13.1复位SOSl设备的组成说明

.——请求CCB的发送者设置的CCB_HEADER3组成的信息.

    ·  cam_func_code:

    该组成应包含.XPT_CAM 3_CCB函数代码。

    ·    cam3_func_code

    该组成应包含XPT_RESET_DEV函数代码。

    .  port_id;

    该组成应包含一个端口号(如:SCSl总线号)。

    ·  addr_specl

    该组成应包含SCSI目标设备说明符.

    ·  addr_spec2

    该组成应包含SCSI逻辑单元说明符.

    .  cam_sim_bhandles

    该组成应反映为当前连接操作返回的SIM连接处理.

    ·  cam flags

    该函数没有CAM标记.

    11.7.13.2复位SCSl设备返回

    该函数应返网不是进行中的请求的C脯状态,CAM状态应是下列情况之一:

    ——无错误完成的请求表示该路径ID有效,

    ——无效的路径ID表示该路径ID无效。

    ——无连接表示或者连接还没有建立或者连接已被丢失。

    复位SCSI设备函数的失败或成功实际上由异步回调信息来表示.

11.7.14CAM-3终止I/0处理

    该函数请求SCSI I/O要求由识别与此请求有关的CCB来终止.驱动程序期望终止的还没有完成的任何I/O请求应被发出.SIM/HA应根据下列条件之一在SCSI总线上发出一个终止I/0处理消息:

    ——被中止的指针字段的CCB中标识的CCB是一个已建立I _T_L联系的I/O处理.(不带标记的当前命令有效).

    ——被中止的指针字段的CCB中标识的CCB是一个己建立I T L_Q联系的I/O处理,

    若偶然联系条件对指定的执行I/O请求CCB有效(如:从逻辑单元的捡验情况或命令终止已返回的一个SCSI状态).则执行SCSI I/O请求CCB应按本部分的正常规定完成。若为执行SCSI I/O请求CCB规定自动断定.SIWHA会重新得到自动断定数据。

    若标识的CCB未建立I/O处理,该请求不必导致在SCSI总线上发出一个终止I/0处理消息.

    XPT的供给者定义中止I/0处理CCB结构如下:

    typedef struct ccb_termi03

    {

    CCB_HEADER3 ccb_ header3:     /*标题信启字段*/

    CCB_HEADER3 cam_termio_ ch.   /*终止CCB的指针*/

    } CCB_TERMI033;

11.7.14.1终止I/0处理的组成说明

  ——请求CCB的发送者设置的CCB_HEADER3组成的信息.

    ·  cam func code;

    该组成应包含XPT  CAM_3_CCB函数代码。

    ·  cam3_func_code

    该组成应包含XPT_  TER IO函数代码.

    .  port_id

    该组成应包含一个端口号(如:SCSI总线号).

    ·    addr_specl;

    该组成应包含SCSI目标设备说明符.

    ·    addr_spec2

    该组成应包含SCSI逻辑单元说明符.

    ·  cam_sim_generation

    该组成应反映当前连接操作返回的SIM连接生成号。

    ·  cam sim_bhandle

    该组成应反映当前连接操作返回的SIM连接处理。

    ·  cam flags;

    该函数没有CCAM标记。该设备排队的状态(如冻结或未冻结)应由正被中止的CCB的CAM标记来控制。

    ——cam termio_cht

    终止CCB的指针.

11.7.14.2终止I/0处理返回

  该函数应返回不是进行中的请求的CAM状态.CAM状态应是下列情况之一

  ——无错误完成的请求表示该路径ID有效.

  ——无效的路径ID表示该路径ID无效.

  ——无连接表示或者连接还没有建立或者连接已被丢失。

  指定的执行I/O请求CCB可能是下列确定终止I/O处理功能的最终结果的状态之一:

  ——可寻址的逻辑单元未包含在SIM/HA排队中.SIM/HA不应对指定的CCB的任何更进一步处理负责

——可寻址的逻辑单元包含在SIM / HA 排队中,而不是该逻辑单元中的一个I/ 0 处理。SIM / HA 应在指定CCB 中设置CAM 状态字段进行终止I / 0 处理并通过CCB 中规定的机制返回CCB 。

——可寻址的逻辑单元包含在SIM / HA 排队中,它是该逻辑单元中的一个I / 0 处理。SIM / HA 接收一个响应启动设备终止.处理消息的消息拒绝消息。当I / 0 处理按照SJ 20631 一97 的规定完成时,SIM / HA 应对规定的CCB 设置CAM状态字段为不能终止I / 0 处理,按本部分的规定完成对规定的CCB 的处理。
SIM / HA 接收SCSI 一2 状态字节而不是规定CCB 的命令中止。当I / 0 处理按照SJ 20631 一97的规定被完成时,SIM / HA 应对规定的CCB 设置CAM 状态字段为不能终止I / 0 处理,并按本部分的规定完成对规定的CCB 的处理。
SIM /HA对规定的CCB 接收sSCSI-2 状态字节命令中止。当I/ 0 处理按照SJ 20631 一97 的规定被完成时,SIM / HA 应设置C AM状态字段为完成具有错误的请求.同时按本部分的规定完成对规定的CCB 的处理(如自动断定机制)。
11 . 8 CAM 一3 控制块请求I/ O
    外围驱动程序由使用这个CCB 的SCSI I/ 0 请求构成,而这个CCB 被设计成利用任何HA / SIM 的组合实际能提供的所有SCSI 性能。CCB 的格式和结构是共用的,功能代码如下:

——执行SCSI I/O(更进一步的信息见11.8.1)。
——执行目标设备I/0 (更进一步的信息见12.2.6 )。
——接受目标设备I/0 (更进一步的信息见12.3.10 )。
——继续目标设备I/0 (更进一步的信息见12.3.11 )。
11 . 8 . 1 CAM 一3 执行SCSI I/0 请求
    此函数典型地返回进行中请求的CAM 状态,表明这种请求进行成功地排队。请求完成能够由轮询CAM 状态而不是在进行中的请求或通过使用完成回调字段来确定。推荐不采用轮询CCB 完成.

SCSI命令描述块或者是连续的16 字节的一个阵列,或者是一个指向连续字节的阵列的指针.XPT 的供给者对执行SCSI I/0 请求CCB 定义SCSI命令描述块结构如下:
typedef union cdb un
{
CAM一U8 * cam cdb ptr : / *指向发送CDB 字节的指针*/
CAM   U8   cam cdb bytes [16] / *发送的CDB 的字节阵列*/
} CDB UN
XPT 的供给者定义执行SCSI I/0 请求CCB 结构如下:

typedef union cdb scsiio3

{

CCB HEADER3 ccb header3           / *标题信息字段*/

CCB HEADER3*cam next ccb          / * Ptr to the next CCB for action * /

CAM VOID OFFSET*cam req map       / * Ptr for 切apping info on the Req . * /

CAM VOID(*cam cbfcnp)()           / *完成功能回调*/

CAM U8*cam data ptr               /*指向数据缓冲器/SG 表的指针*/

CAM U32cam dxfer len              / *数据传送长度*/

CAM U8cam cdb len                 / * CDB 的字节数*/

CAM U8cam reservedl               / *保留校准*/

CAM U16cam sglist cnt             / *分散集中表入口个数*/

CAM U3cam vu field                / *售方专用字段*/

CAM U8cam scsi status              / *返回的SCSI 设备状态*/

CAM U8cam reserved2 ;              / *保留校准*/
CAM U16cam sense resid :           / *自动断定驻留长度:2 ' 5 co , p * /
CAM 132cam  resid :                / *传送剩余长度:2 ' 5 comp * /
CAM U32cam _timeout :              / *超时值*/
CAM UN3cam _ cdb _ 10 :            / * CDB 字节/指针的结合*/
CAM U8* cam msg ptr ;              / *指向消息缓冲器的指针州
CAM U16cam msgb_ len ;             / *消息缓冲器中的字节数*/
CAM U16cam _vu flags :             / *售方专用标记*/
CAM U8cam tag  ction ;             / *标记怎样排队*/
CAM Uscam resorved3[3] ;           / *保留校准*/
CAM U32cam tag id ;                / *标记ID * /
CAM U32cam initiator id [2] :      / *启动设备ID 目标操作*/
CAM U16cam sense _len :            / *请求自动断定的字节数*/
CAM U8cam reserved4 ;              / *保留校准*/
CAM U32cam_sim_sense [16] ;        / *重新得到断定数据SIM 的工作区域*/
CAM U8cam_sense_ buf [256] :       / *断定数据缓冲器*/

11.8.1.1执行SCSl I/0请求的组成说明

  ——请求ccB的发送者设置的CCB HEADER3组成的信息.

    ·  cam_func_code;

    该组成应包含XFrrCAM_S_CCB函数代码.

    ·  cam3_func_code;

    该组成应包含XPT...SCS I_IO函数代码。

    ·    port_id

    该组成应包含一个端口号(如:SCSI总线号).

    ·  addr_specl

    该组成应包含SCSI目标设备说明符.

    addr_spec2.

    该组成应包含SCSI逻辑单元说明符.

    ·  cam_sim_generation

    该组成应反映当前连接操作返回的SIM连接生成号

    ·  cam_sim_bhandle

    该组成应反映当前连接操作返回的SIM连接处理.

    ·    cam_fIags

    该组成包含用来指示请求的函数特殊处理的位设置.按照CAM标记的规定而设置的所需行为特征应取决于逻辑特征成功能特征.例如,外围驱动程序希望指示数据传送方向是进入启动设备并且发散/集中表有效,外围驱动程序可能通过如下的列式实现该函数:

    ccb->ccb_header3, cam_flagsl=(CAM_DIR_INlCAM_SCATTER..VALID);

    该标记定义如下;

    ·  CAM方向标记规定了与SCSI启动设备有关的数据传送的方向。在数据传送期间这些编码位识别数据移动的方向.

    ◇保留

    #定义CAM. DIR_RESV    Ox00000000

    ◇数据方向入(读自逻辑单元);

    #定义CAM_DIR_IN    Ox00000040

    ◇数据方向出(写到逻辑单元):

    #定义CAM DIR_.OUT    Ox00000080

    ◇数据方向无(无数据传送):

    #定义CAII_DIR._NONE    Ox000000CO

    ·  已删除禁止自动断定性能标记,目前自动断定是CAM-3中的必要性能.

    ·  当数据位置“l”时(此位表示.数据不传到/来自存储器中单个存储元素,而是传到/来自几个元素),分散/集中表有效.在这种情况中,数据缓冲器指针指的是被传送的数据

    的

    每个地址的地址表和字节长度.

    #定义CAW_SCATTER_VALID    0x000000lO

    SG表的格式定义如下:

    typedef struct sg_elem

    {

CAM U8*cam sg_address:          /*分散/集中地址*/

U32cam_ sg countr              /*分散/集中字节记数*/

}SG._ELEM:

1921
国家标准下载

下载说明:
1.请先分享,再下载
2.直接单击下载地址,不要使用“目标另存为”
3.压缩文件请先解压
4.PDF文件,请用PDF专用软件打开查看
5.如果资料不能下载,请联系本站
最新评论
发表评论
大名:
联络: QQ 或者 邮箱
内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。

验证码: 5329