code: func (c *SCSICmd) XferLen() uint32 {
  	order := binary.BigEndian
  	switch c.CdbLen() {
  	case 6:
  		return uint32(c.cdb[4])
  	case 10:
  		return uint32(order.Uint16(c.cdb[7:9]))
  	case 12:
  		return uint32(order.Uint32(c.cdb[6:10]))
  	case 16:
  		return uint32(order.Uint32(c.cdb[10:14]))
  	default:
  		log.Errorf("What XferLen has this length: %d", c.CdbLen())
  		panic("unusal scsi command length")
  	}
  }
docs: // XferLen returns the length of the data buffer this command provides for transfering data to/from the kernel.