Merge git://git.infradead.org/~dwmw2/iommu-2.6.31
[linux-2.6-block.git] / drivers / scsi / lpfc / lpfc_nl.h
index 1accb5a9f4e68ccaa02644bf246bc39a53dbce59..27d1a88a98fe2fdeeb549ec7f69b045f49407de0 100644 (file)
 #define FC_REG_LINK_EVENT              0x0001  /* link up / down events */
 #define FC_REG_RSCN_EVENT              0x0002  /* RSCN events */
 #define FC_REG_CT_EVENT                        0x0004  /* CT request events */
-#define FC_REG_DUMP_EVENT              0x0008  /* Dump events */
-#define FC_REG_TEMPERATURE_EVENT       0x0010  /* temperature events */
-#define FC_REG_ELS_EVENT               0x0020  /* lpfc els events */
-#define FC_REG_FABRIC_EVENT            0x0040  /* lpfc fabric events */
-#define FC_REG_SCSI_EVENT              0x0080  /* lpfc scsi events */
-#define FC_REG_BOARD_EVENT             0x0100  /* lpfc board events */
-#define FC_REG_ADAPTER_EVENT           0x0200  /* lpfc adapter events */
+#define FC_REG_DUMP_EVENT              0x0010  /* Dump events */
+#define FC_REG_TEMPERATURE_EVENT       0x0020  /* temperature events */
+#define FC_REG_VPORTRSCN_EVENT         0x0040  /* Vport RSCN events */
+#define FC_REG_ELS_EVENT               0x0080  /* lpfc els events */
+#define FC_REG_FABRIC_EVENT            0x0100  /* lpfc fabric events */
+#define FC_REG_SCSI_EVENT              0x0200  /* lpfc scsi events */
+#define FC_REG_BOARD_EVENT             0x0400  /* lpfc board events */
+#define FC_REG_ADAPTER_EVENT           0x0800  /* lpfc adapter events */
 #define FC_REG_EVENT_MASK              (FC_REG_LINK_EVENT | \
                                                FC_REG_RSCN_EVENT | \
                                                FC_REG_CT_EVENT | \
                                                FC_REG_DUMP_EVENT | \
                                                FC_REG_TEMPERATURE_EVENT | \
+                                               FC_REG_VPORTRSCN_EVENT | \
                                                FC_REG_ELS_EVENT | \
                                                FC_REG_FABRIC_EVENT | \
                                                FC_REG_SCSI_EVENT | \
  * The payload sent via the fc transport is one-way driver->application.
  */
 
+/* RSCN event header */
+struct lpfc_rscn_event_header {
+       uint32_t event_type;
+       uint32_t payload_length; /* RSCN data length in bytes */
+       uint32_t rscn_payload[];
+};
+
 /* els event header */
 struct lpfc_els_event_header {
        uint32_t event_type;
@@ -65,6 +74,7 @@ struct lpfc_els_event_header {
 #define LPFC_EVENT_PRLO_RCV            0x02
 #define LPFC_EVENT_ADISC_RCV           0x04
 #define LPFC_EVENT_LSRJT_RCV           0x08
+#define LPFC_EVENT_LOGO_RCV            0x10
 
 /* special els lsrjt event */
 struct lpfc_lsrjt_event {
@@ -74,6 +84,11 @@ struct lpfc_lsrjt_event {
        uint32_t explanation;
 };
 
+/* special els logo event */
+struct lpfc_logo_event {
+       struct lpfc_els_event_header header;
+       uint8_t logo_wwpn[8];
+};
 
 /* fabric event header */
 struct lpfc_fabric_event_header {
@@ -125,6 +140,7 @@ struct lpfc_scsi_varqueuedepth_event {
 /* special case scsi check condition event */
 struct lpfc_scsi_check_condition_event {
        struct lpfc_scsi_event_header scsi_event;
+       uint8_t opcode;
        uint8_t sense_key;
        uint8_t asc;
        uint8_t ascq;