Print this page
        
*** 409,419 ****
  } MR_QUAD_ELEMENT;                                      /* 0x20, Total size */
  
  typedef struct _MR_SPAN_INFO {
          U32             noElements;                     /* 0x00 */
          U32             reserved1;                      /* 0x04 */
!         MR_QUAD_ELEMENT quad[MAX_RAIDMAP_SPAN_DEPTH];   /* 0x08 */
  } MR_SPAN_INFO;                                         /* 0x108, Total size */
  
  typedef struct _MR_LD_SPAN_ {                           /* SPAN structure */
          /* 0x00, starting block number in array */
          U64             startBlk;
--- 409,419 ----
  } MR_QUAD_ELEMENT;                                      /* 0x20, Total size */
  
  typedef struct _MR_SPAN_INFO {
          U32             noElements;                     /* 0x00 */
          U32             reserved1;                      /* 0x04 */
!         MR_QUAD_ELEMENT quads[MAX_RAIDMAP_SPAN_DEPTH];  /* 0x08 */
  } MR_SPAN_INFO;                                         /* 0x108, Total size */
  
  typedef struct _MR_LD_SPAN_ {                           /* SPAN structure */
          /* 0x00, starting block number in array */
          U64             startBlk;
*** 473,483 ****
  
          /* 0x1b, Pre calculate region type requests based on MFC etc.. */
          U8      regTypeReqOnWrite;
  
          U8      modFactor;              /* 0x1c, same as rowSize */
!         U8      regTypeReqOnRead;               /* 0x1d, region lock type used for read, valid only if regTypeOnReadIsValid=1 */
          U16     seqNum;                 /* 0x1e, LD sequence number */
  
          struct {
                  /* This LD requires sync command before completing */
                  U32     ldSyncRequired:1;
--- 473,487 ----
  
          /* 0x1b, Pre calculate region type requests based on MFC etc.. */
          U8      regTypeReqOnWrite;
  
          U8      modFactor;              /* 0x1c, same as rowSize */
!         /*
!          * 0x1d, region lock type used for read, valid only if
!          * regTypeOnReadIsValid=1
!          */
!         U8      regTypeReqOnRead;
          U16     seqNum;                 /* 0x1e, LD sequence number */
  
          struct {
                  /* This LD requires sync command before completing */
                  U32     ldSyncRequired:1;
*** 513,527 ****
          } u1;
  
          U32                     ldCount;                /* count of lds */
          U32                     Reserved1;
  
!         /*   0x20 This doesn't correspond to
              * FW Ld Tgt Id to LD, but will purge. For example: if tgt Id is 4
              * and FW LD is 2, and there is only one LD, FW will populate the
              * array like this. [0xFF, 0xFF, 0xFF, 0xFF, 0x0.....]. This is to
!             * help reduce the entire strcture size if there are few LDs or
              * driver is looking info for 1 LD only.
              */
          U8                      ldTgtIdToLd[MAX_RAIDMAP_LOGICAL_DRIVES+ \
                                  MAX_RAIDMAP_VIEWS]; /* 0x20 */
          /* timeout value used by driver in FP IOs */
--- 517,532 ----
          } u1;
  
          U32                     ldCount;                /* count of lds */
          U32                     Reserved1;
  
!         /*
!          * 0x20 This doesn't correspond to
           * FW Ld Tgt Id to LD, but will purge. For example: if tgt Id is 4
           * and FW LD is 2, and there is only one LD, FW will populate the
           * array like this. [0xFF, 0xFF, 0xFF, 0xFF, 0x0.....]. This is to
!          * help reduce the entire structure size if there are few LDs or
           * driver is looking info for 1 LD only.
           */
          U8                      ldTgtIdToLd[MAX_RAIDMAP_LOGICAL_DRIVES+ \
                                  MAX_RAIDMAP_VIEWS]; /* 0x20 */
          /* timeout value used by driver in FP IOs */