aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/block/dasd_eckd.h
diff options
context:
space:
mode:
authorStefan Weinhuber <wein@de.ibm.com>2009-03-26 10:23:47 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-03-26 10:24:05 -0400
commitb44b0ab3bac16356f03e94b1b49ba9305710c445 (patch)
tree66dfc19e2164a6a30d19b958ccf4e4a5d210c8d8 /drivers/s390/block/dasd_eckd.h
parentf9a28f7bc5225af476f8d4bb669038da8801b7c4 (diff)
[S390] dasd: add large volume support
The dasd device driver will now support ECKD devices with more then 65520 cylinders. In the traditional ECKD adressing scheme each track is addressed by a 16-bit cylinder and 16-bit head number. The new addressing scheme makes use of the fact that the actual number of heads is never larger then 15, so 12 bits of the head number can be redefined to be part of the cylinder address. Signed-off-by: Stefan Weinhuber <wein@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block/dasd_eckd.h')
-rw-r--r--drivers/s390/block/dasd_eckd.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h
index 2476f87d21d0..eecfa776db15 100644
--- a/drivers/s390/block/dasd_eckd.h
+++ b/drivers/s390/block/dasd_eckd.h
@@ -48,6 +48,11 @@
48#define PSF_ORDER_PRSSD 0x18 48#define PSF_ORDER_PRSSD 0x18
49#define PSF_ORDER_SSC 0x1D 49#define PSF_ORDER_SSC 0x1D
50 50
51/*
52 * Size that is reportet for large volumes in the old 16-bit no_cyl field
53 */
54#define LV_COMPAT_CYL 0xFFFE
55
51/***************************************************************************** 56/*****************************************************************************
52 * SECTION: Type Definitions 57 * SECTION: Type Definitions
53 ****************************************************************************/ 58 ****************************************************************************/
@@ -228,7 +233,8 @@ struct dasd_eckd_characteristics {
228 __u8 factor7; 233 __u8 factor7;
229 __u8 factor8; 234 __u8 factor8;
230 __u8 reserved2[3]; 235 __u8 reserved2[3];
231 __u8 reserved3[10]; 236 __u8 reserved3[6];
237 __u32 long_no_cyl;
232} __attribute__ ((packed)); 238} __attribute__ ((packed));
233 239
234/* elements of the configuration data */ 240/* elements of the configuration data */
@@ -406,6 +412,7 @@ struct dasd_eckd_private {
406 int uses_cdl; 412 int uses_cdl;
407 struct attrib_data_t attrib; /* e.g. cache operations */ 413 struct attrib_data_t attrib; /* e.g. cache operations */
408 struct dasd_rssd_features features; 414 struct dasd_rssd_features features;
415 u32 real_cyl;
409 416
410 /* alias managemnet */ 417 /* alias managemnet */
411 struct dasd_uid uid; 418 struct dasd_uid uid;