aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_hw.h
diff options
context:
space:
mode:
authorJamie Wellnitz <Jamie.Wellnitz@emulex.com>2006-02-28 19:25:15 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-02-28 19:52:50 -0500
commit7bb3b137abf2b7073e683c14cfe062d811d35247 (patch)
tree3293962805fc790ef90fd5aa28171cb419dd82c4 /drivers/scsi/lpfc/lpfc_hw.h
parent0228aadd0fb1d8ca90efbe74291f3b5b753c2da2 (diff)
[SCSI] lpfc 8.1.2: Handling of ELS commands RRQ, RPS, RPL and LIRR correctly
Handling of ELS commands RRQ, RPS, RPL and LIRR correctly Signed-off-by: Jamie Wellnitz <Jamie.Wellnitz@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hw.h')
-rw-r--r--drivers/scsi/lpfc/lpfc_hw.h47
1 files changed, 40 insertions, 7 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h
index 1ea565e0561f..e613dd07d2ad 100644
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -454,10 +454,13 @@ struct serv_parm { /* Structure is in Big Endian format */
454#define ELS_CMD_ADISC 0x52000000 454#define ELS_CMD_ADISC 0x52000000
455#define ELS_CMD_FARP 0x54000000 455#define ELS_CMD_FARP 0x54000000
456#define ELS_CMD_FARPR 0x55000000 456#define ELS_CMD_FARPR 0x55000000
457#define ELS_CMD_RPS 0x56000000
458#define ELS_CMD_RPL 0x57000000
457#define ELS_CMD_FAN 0x60000000 459#define ELS_CMD_FAN 0x60000000
458#define ELS_CMD_RSCN 0x61040000 460#define ELS_CMD_RSCN 0x61040000
459#define ELS_CMD_SCR 0x62000000 461#define ELS_CMD_SCR 0x62000000
460#define ELS_CMD_RNID 0x78000000 462#define ELS_CMD_RNID 0x78000000
463#define ELS_CMD_LIRR 0x7A000000
461#else /* __LITTLE_ENDIAN_BITFIELD */ 464#else /* __LITTLE_ENDIAN_BITFIELD */
462#define ELS_CMD_MASK 0xffff 465#define ELS_CMD_MASK 0xffff
463#define ELS_RSP_MASK 0xff 466#define ELS_RSP_MASK 0xff
@@ -486,10 +489,13 @@ struct serv_parm { /* Structure is in Big Endian format */
486#define ELS_CMD_ADISC 0x52 489#define ELS_CMD_ADISC 0x52
487#define ELS_CMD_FARP 0x54 490#define ELS_CMD_FARP 0x54
488#define ELS_CMD_FARPR 0x55 491#define ELS_CMD_FARPR 0x55
492#define ELS_CMD_RPS 0x56
493#define ELS_CMD_RPL 0x57
489#define ELS_CMD_FAN 0x60 494#define ELS_CMD_FAN 0x60
490#define ELS_CMD_RSCN 0x0461 495#define ELS_CMD_RSCN 0x0461
491#define ELS_CMD_SCR 0x62 496#define ELS_CMD_SCR 0x62
492#define ELS_CMD_RNID 0x78 497#define ELS_CMD_RNID 0x78
498#define ELS_CMD_LIRR 0x7A
493#endif 499#endif
494 500
495/* 501/*
@@ -758,12 +764,40 @@ typedef struct _RNID { /* Structure is in Big Endian format */
758 } un; 764 } un;
759} RNID; 765} RNID;
760 766
761typedef struct _RRQ { /* Structure is in Big Endian format */ 767typedef struct _RPS { /* Structure is in Big Endian format */
762 uint32_t SID; 768 union {
763 uint16_t Oxid; 769 uint32_t portNum;
764 uint16_t Rxid; 770 struct lpfc_name portName;
765 uint8_t resv[32]; /* optional association hdr */ 771 } un;
766} RRQ; 772} RPS;
773
774typedef struct _RPS_RSP { /* Structure is in Big Endian format */
775 uint16_t rsvd1;
776 uint16_t portStatus;
777 uint32_t linkFailureCnt;
778 uint32_t lossSyncCnt;
779 uint32_t lossSignalCnt;
780 uint32_t primSeqErrCnt;
781 uint32_t invalidXmitWord;
782 uint32_t crcCnt;
783} RPS_RSP;
784
785typedef struct _RPL { /* Structure is in Big Endian format */
786 uint32_t maxsize;
787 uint32_t index;
788} RPL;
789
790typedef struct _PORT_NUM_BLK {
791 uint32_t portNum;
792 uint32_t portID;
793 struct lpfc_name portName;
794} PORT_NUM_BLK;
795
796typedef struct _RPL_RSP { /* Structure is in Big Endian format */
797 uint32_t listLen;
798 uint32_t index;
799 PORT_NUM_BLK port_num_blk;
800} RPL_RSP;
767 801
768/* This is used for RSCN command */ 802/* This is used for RSCN command */
769typedef struct _D_ID { /* Structure is in Big Endian format */ 803typedef struct _D_ID { /* Structure is in Big Endian format */
@@ -804,7 +838,6 @@ typedef struct _ELS_PKT { /* Structure is in Big Endian format */
804 FARP farp; /* Payload for FARP/ACC */ 838 FARP farp; /* Payload for FARP/ACC */
805 FAN fan; /* Payload for FAN */ 839 FAN fan; /* Payload for FAN */
806 SCR scr; /* Payload for SCR/ACC */ 840 SCR scr; /* Payload for SCR/ACC */
807 RRQ rrq; /* Payload for RRQ */
808 RNID rnid; /* Payload for RNID */ 841 RNID rnid; /* Payload for RNID */
809 uint8_t pad[128 - 4]; /* Pad out to payload of 128 bytes */ 842 uint8_t pad[128 - 4]; /* Pad out to payload of 128 bytes */
810 } un; 843 } un;