chiark / gitweb /
[PATCH] add documentation about the BUS key being optional for the LABEL rule.
[elogind.git] / extras / multipath / main.h
index 43a24ac7bc93c415dcfb1d4092fd900d16753c58..3941c32e7c0f884d00146b3168c7da6e964dd4bb 100644 (file)
 
 /* local includes */
 #include "sg_include.h"
-#include "sg_err.h"
+
+/* exerpt from "sg_err.h" */
+#define SCSI_CHECK_CONDITION   0x2
+#define SCSI_COMMAND_TERMINATED 0x22
+#define SG_ERR_DRIVER_SENSE     0x08
+
+/* exerpt from "scsi.h" */
+#define RECOVERED_ERROR     0x01
+#define SCSI_IOCTL_GET_IDLUN            0x5382
+#define SCSI_IOCTL_GET_BUS_NUMBER       0x5386
 
 /* global defs */
 #define WWID_SIZE      33
 #define TUR_CMD_LEN    6
 #define MX_ALLOC_LEN   255
 #define BLKGETSIZE      _IO(0x12,96)
-#define DM_TARGET      "striped"
+#define DM_TARGET      "multipath"
+
+/* Storage controlers cpabilities */
+#define FAILOVER       0
+#define MULTIBUS       1
 
 #define PINDEX(x,y)    mp[(x)].pindex[(y)]
 
@@ -71,16 +84,17 @@ struct path {
        char sg_dev[FILE_NAME_SIZE];
        struct scsi_idlun scsi_id;
        struct sg_id sg_id;
-       int state;
        char wwid[WWID_SIZE];
        char vendor_id[8];
        char product_id[16];
        char rev[4];
+       int iopolicy;
 };
 
 struct multipath {
        char wwid[WWID_SIZE];
        int npaths;
+       long size;
        int pindex[MAX_MP_PATHS];
 };
 
@@ -89,15 +103,18 @@ struct env {
        int verbose;
        int quiet;
        int dry_run;
+       int forcedfailover;
        int with_sysfs;
+       int dm_path_test_int;
        char sysfs_path[FILE_NAME_SIZE];
+       char hotplugdev[FILE_NAME_SIZE];
 };
 
 /* Build version */
 #define PROG    "multipath"
 
-#define VERSION_CODE 0x000005
-#define DATE_CODE    0x120903
+#define VERSION_CODE 0x000010
+#define DATE_CODE    0x0C1503
 
 #define MULTIPATH_VERSION(version)     \
        (version >> 16) & 0xFF,         \