Staging: hv: storvsc: Consolidate all the wire protocol definitions
authorK. Y. Srinivasan <kys@microsoft.com>
Thu, 12 Jan 2012 20:38:08 +0000 (12:38 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Feb 2012 01:07:39 +0000 (17:07 -0800)
Consolidate all definitions that support communication with the host.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/hv/storvsc_drv.c

index 9ccc1c48bd3dfa480f217363cefca7459880d403..695ffc36e02deb3a1d526fdc086f6cf4cd1267fb 100644 (file)
 #include <scsi/scsi_devinfo.h>
 #include <scsi/scsi_dbg.h>
 
-
-/*
- * We setup a mempool to allocate request structures for this driver
- * on a per-lun basis. The following define specifies the number of
- * elements in the pool.
- */
-
-#define STORVSC_MIN_BUF_NR                             64
-static int storvsc_ringbuffer_size = (20 * PAGE_SIZE);
-
-module_param(storvsc_ringbuffer_size, int, S_IRUGO);
-MODULE_PARM_DESC(storvsc_ringbuffer_size, "Ring buffer size (bytes)");
-
-
 /*
- * Major/minor macros.  Minor version is in LSB, meaning that earlier flat
- * version numbers will be interpreted as "0.x" (i.e., 1 becomes 0.1).
+ * All wire protocol details (storage protocol between the guest and the host)
+ * are consolidated here.
+ *
+ * Begin protocol definitions.
  */
 
-static inline u16 storvsc_get_version(u8 major, u8 minor)
-{
-       u16 version;
-
-       version = ((major << 8) | minor);
-       return version;
-}
-
 /*
  * Version history:
  * V1 Beta: 0.1
@@ -207,18 +187,6 @@ struct vstor_packet {
 
 #define REQUEST_COMPLETION_FLAG        0x1
 
-#define STORVSC_MAX_IO_REQUESTS                                128
-
-/*
- * In Hyper-V, each port/path/target maps to 1 scsi host adapter.  In
- * reality, the path/target is not used (ie always set to 0) so our
- * scsi host adapter essentially has 1 bus with 1 target that contains
- * up to 256 luns.
- */
-#define STORVSC_MAX_LUNS_PER_TARGET                    64
-#define STORVSC_MAX_TARGETS                            1
-#define STORVSC_MAX_CHANNELS                           1
-
 /* Matches Windows-end */
 enum storvsc_request_type {
        WRITE_TYPE = 0,
@@ -235,6 +203,36 @@ enum storvsc_request_type {
 #define SRB_STATUS_SUCCESS     0x01
 #define SRB_STATUS_ERROR       0x04
 
+/*
+ * This is the end of Protocol specific defines.
+ */
+
+
+/*
+ * We setup a mempool to allocate request structures for this driver
+ * on a per-lun basis. The following define specifies the number of
+ * elements in the pool.
+ */
+
+#define STORVSC_MIN_BUF_NR                             64
+static int storvsc_ringbuffer_size = (20 * PAGE_SIZE);
+
+module_param(storvsc_ringbuffer_size, int, S_IRUGO);
+MODULE_PARM_DESC(storvsc_ringbuffer_size, "Ring buffer size (bytes)");
+
+#define STORVSC_MAX_IO_REQUESTS                                128
+
+/*
+ * In Hyper-V, each port/path/target maps to 1 scsi host adapter.  In
+ * reality, the path/target is not used (ie always set to 0) so our
+ * scsi host adapter essentially has 1 bus with 1 target that contains
+ * up to 256 luns.
+ */
+#define STORVSC_MAX_LUNS_PER_TARGET                    64
+#define STORVSC_MAX_TARGETS                            1
+#define STORVSC_MAX_CHANNELS                           1
+
+
 
 struct storvsc_cmd_request {
        struct list_head entry;
@@ -336,6 +334,19 @@ done:
        kfree(wrk);
 }
 
+/*
+ * Major/minor macros.  Minor version is in LSB, meaning that earlier flat
+ * version numbers will be interpreted as "0.x" (i.e., 1 becomes 0.1).
+ */
+
+static inline u16 storvsc_get_version(u8 major, u8 minor)
+{
+       u16 version;
+
+       version = ((major << 8) | minor);
+       return version;
+}
+
 /*
  * We can get incoming messages from the host that are not in response to
  * messages that we have sent out. An example of this would be messages