]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/scsi/iscsi_if.h
[SCSI] iscsi_transport, qla4xxx: have class lookup host for drivers
[karo-tx-linux.git] / include / scsi / iscsi_if.h
index feff74e544b76c9bcbb53238fb47471495ac1daa..fba211743729c1077d4ff13e5618b59445fba811 100644 (file)
@@ -47,10 +47,19 @@ enum iscsi_uevent_e {
        ISCSI_UEVENT_TRANSPORT_EP_POLL          = UEVENT_BASE + 13,
        ISCSI_UEVENT_TRANSPORT_EP_DISCONNECT    = UEVENT_BASE + 14,
 
+       ISCSI_UEVENT_TGT_DSCVR          = UEVENT_BASE + 15,
+
        /* up events */
        ISCSI_KEVENT_RECV_PDU           = KEVENT_BASE + 1,
        ISCSI_KEVENT_CONN_ERROR         = KEVENT_BASE + 2,
        ISCSI_KEVENT_IF_ERROR           = KEVENT_BASE + 3,
+       ISCSI_KEVENT_DESTROY_SESSION    = KEVENT_BASE + 4,
+};
+
+enum iscsi_tgt_dscvr {
+       ISCSI_TGT_DSCVR_SEND_TARGETS    = 1,
+       ISCSI_TGT_DSCVR_ISNS            = 2,
+       ISCSI_TGT_DSCVR_SLP             = 3,
 };
 
 struct iscsi_uevent {
@@ -116,6 +125,17 @@ struct iscsi_uevent {
                struct msg_transport_disconnect {
                        uint64_t        ep_handle;
                } ep_disconnect;
+               struct msg_tgt_dscvr {
+                       enum iscsi_tgt_dscvr    type;
+                       uint32_t        host_no;
+                       /*
+                        * enable = 1 to establish a new connection
+                        * with the server. enable = 0 to disconnect
+                        * from the server. Used primarily to switch
+                        * from one iSNS server to another.
+                        */
+                       uint32_t        enable;
+               } tgt_dscvr;
        } u;
        union {
                /* messages k -> u */
@@ -138,6 +158,10 @@ struct iscsi_uevent {
                        uint32_t        cid;
                        uint32_t        error; /* enum iscsi_err */
                } connerror;
+               struct msg_session_destroyed {
+                       uint32_t        host_no;
+                       uint32_t        sid;
+               } d_session;
                struct msg_transport_connect_ret {
                        uint64_t        handle;
                } ep_connect_ret;
@@ -188,6 +212,7 @@ enum iscsi_param {
        ISCSI_PARAM_ERL,
        ISCSI_PARAM_IFMARKER_EN,
        ISCSI_PARAM_OFMARKER_EN,
+       ISCSI_PARAM_EXP_STATSN,
        ISCSI_PARAM_TARGET_NAME,
        ISCSI_PARAM_TPGT,
        ISCSI_PARAM_PERSISTENT_ADDRESS,
@@ -216,6 +241,7 @@ enum iscsi_param {
 #define ISCSI_ERL                      (1 << ISCSI_PARAM_ERL)
 #define ISCSI_IFMARKER_EN              (1 << ISCSI_PARAM_IFMARKER_EN)
 #define ISCSI_OFMARKER_EN              (1 << ISCSI_PARAM_OFMARKER_EN)
+#define ISCSI_EXP_STATSN               (1 << ISCSI_PARAM_EXP_STATSN)
 #define ISCSI_TARGET_NAME              (1 << ISCSI_PARAM_TARGET_NAME)
 #define ISCSI_TPGT                     (1 << ISCSI_PARAM_TPGT)
 #define ISCSI_PERSISTENT_ADDRESS       (1 << ISCSI_PARAM_PERSISTENT_ADDRESS)
@@ -224,6 +250,14 @@ enum iscsi_param {
 #define ISCSI_CONN_PORT                        (1 << ISCSI_PARAM_CONN_PORT)
 #define ISCSI_CONN_ADDRESS             (1 << ISCSI_PARAM_CONN_ADDRESS)
 
+/* iSCSI HBA params */
+enum iscsi_host_param {
+       ISCSI_HOST_PARAM_HWADDRESS,
+       ISCSI_HOST_PARAM_MAX,
+};
+
+#define ISCSI_HOST_HWADDRESS           (1 << ISCSI_HOST_PARAM_HWADDRESS)
+
 #define iscsi_ptr(_handle) ((void*)(unsigned long)_handle)
 #define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr)
 #define hostdata_session(_hostdata) (iscsi_ptr(*(unsigned long *)_hostdata))