diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-04-28 12:25:24 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-04-28 12:25:24 +0000 |
commit | f05fe1da0b6b3fd3ee4d61944e3dd50b8df3de89 (patch) | |
tree | 3ebf67d33d1401d539373e522de8e4be8d88ad13 /xenolinux-2.4.21-pre4-sparse/arch/xeno | |
parent | e0766dd5d07a74c3c1e9bf0dfc7eceacb828db41 (diff) | |
download | xen-f05fe1da0b6b3fd3ee4d61944e3dd50b8df3de89.tar.gz xen-f05fe1da0b6b3fd3ee4d61944e3dd50b8df3de89.tar.bz2 xen-f05fe1da0b6b3fd3ee4d61944e3dd50b8df3de89.zip |
bitkeeper revision 1.184.2.1 (3ead1db4N8KP6Exqh2ZYWow_4jjA3A)
Many files:
IDE and SCSI devices are now accessed via /dev/hd? and /dev/sd? using the usual device numbers. XLIDE_MAJOR and XLSCSI_MAJOR have been removed, but XLVIRT_MAJOR remains (as do /dev/xvd?).
Diffstat (limited to 'xenolinux-2.4.21-pre4-sparse/arch/xeno')
5 files changed, 28 insertions, 21 deletions
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c index 1c8022375a..d96037aa28 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.c @@ -10,8 +10,6 @@ typedef unsigned char byte; /* from linux/ide.h */ -#define XLBLK_MAX 32 - #define XLBLK_RESPONSE_IRQ _EVENT_BLK_RESP #define DEBUG_IRQ _EVENT_DEBUG diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h index 3d219eeedc..e0b9cf6391 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_block.h @@ -35,12 +35,20 @@ #define DPRINTK_IOCTL(_f, _a...) ((void)0) #endif -/* IDE/SCSI have <= 32 partitions per device. VIRT has <= 16. */ -#define PARTN_SHIFT(_dev) ((MAJOR(_dev)==XLVIRT_MAJOR) ? 4 : 5) -#define XLIDE_PARTN_SHIFT 5 -#define XLSCSI_PARTN_SHIFT 5 +/* XL IDE and SCSI use same major/minor numbers as normal Linux devices. */ +#define XLIDE_MAJOR IDE0_MAJOR +#define XLSCSI_MAJOR SCSI_DISK0_MAJOR + +/* IDE has < 64 partitions per device. VIRT and SCSI have < 16. */ +#define PARTN_SHIFT(_dev) ((MAJOR(_dev)==IDE0_MAJOR) ? 6 : 4) +#define XLIDE_PARTN_SHIFT 6 +#define XLSCSI_PARTN_SHIFT 4 #define XLVIRT_PARTN_SHIFT 4 +#define XLIDE_DEVS_PER_MAJOR (256 >> XLIDE_PARTN_SHIFT) +#define XLSCSI_DEVS_PER_MAJOR (256 >> XLSCSI_PARTN_SHIFT) +#define XLVIRT_DEVS_PER_MAJOR (256 >> XLVIRT_PARTN_SHIFT) + /* * We have one of these per XL-IDE, XL-SCSI, and XL-VIRT device. * They hang in an array off the gendisk structure. We may end up putting diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c index f8ff9dd795..510a73805e 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_ide.c @@ -2,7 +2,6 @@ * xl_ide.c * * Xenolinux virtual IDE block-device driver. - * */ #include "xl_block.h" @@ -10,9 +9,8 @@ #define MAJOR_NR XLIDE_MAJOR #include <linux/blk.h> -/* We support up to 16 devices of up to 16 partitions each. */ #define XLIDE_MAX 256 -#define XLIDE_MAJOR_NAME "xhd" +#define XLIDE_MAJOR_NAME "hd" static int xlide_blksize_size[XLIDE_MAX]; static int xlide_hardsect_size[XLIDE_MAX]; static int xlide_max_sectors[XLIDE_MAX]; @@ -45,7 +43,9 @@ int xlide_init(xen_disk_info_t *xdi) units = 0; for ( i = 0; i < xdi->count; i++ ) if ( IS_IDE_XENDEV(xdi->disks[i].device) && - ((xdi->disks[i].device & XENDEV_IDX_MASK) < 16) ) units++; + ((xdi->disks[i].device & XENDEV_IDX_MASK) < + XLIDE_DEVS_PER_MAJOR) ) + units++; if ( units == 0 ) return 0; SET_MODULE_OWNER(&xlide_block_fops); @@ -112,8 +112,9 @@ int xlide_init(xen_disk_info_t *xdi) minor = disk << XLIDE_PARTN_SHIFT; - /* We can use the first 16 IDE devices. */ - if ( !IS_IDE_XENDEV(xdi->disks[i].device) || (disk >= 16) ) continue; + if ( !IS_IDE_XENDEV(xdi->disks[i].device) || + (disk >= XLIDE_DEVS_PER_MAJOR) ) + continue; ((xl_disk_t *)gd->real_devices)[disk].capacity = xdi->disks[i].capacity; diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c index 8daadf8791..f3d049238f 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c @@ -2,7 +2,6 @@ * xl_scsi.c * * Xenolinux virtual SCSI block-device driver. - * */ #include "xl_block.h" @@ -10,9 +9,8 @@ #define MAJOR_NR XLSCSI_MAJOR #include <linux/blk.h> -/* We support up to 16 devices of up to 16 partitions each. */ #define XLSCSI_MAX 256 -#define XLSCSI_MAJOR_NAME "xsd" +#define XLSCSI_MAJOR_NAME "sd" static int xlscsi_blksize_size[XLSCSI_MAX]; static int xlscsi_hardsect_size[XLSCSI_MAX]; static int xlscsi_max_sectors[XLSCSI_MAX]; @@ -45,7 +43,9 @@ int xlscsi_init(xen_disk_info_t *xdi) units = 0; for ( i = 0; i < xdi->count; i++ ) if ( IS_SCSI_XENDEV(xdi->disks[i].device) && - ((xdi->disks[i].device & XENDEV_IDX_MASK) < 16) ) units++; + ((xdi->disks[i].device & XENDEV_IDX_MASK) < + XLSCSI_DEVS_PER_MAJOR) ) + units++; if ( units == 0 ) return 0; SET_MODULE_OWNER(&xlscsi_block_fops); @@ -110,8 +110,9 @@ int xlscsi_init(xen_disk_info_t *xdi) { disk = xdi->disks[i].device & XENDEV_IDX_MASK; - /* We can use the first 16 IDE devices. */ - if ( !IS_SCSI_XENDEV(xdi->disks[i].device) || (disk >= 16) ) continue; + if ( !IS_SCSI_XENDEV(xdi->disks[i].device) || + (disk >= XLSCSI_DEVS_PER_MAJOR) ) + continue; ((xl_disk_t *)gd->real_devices)[disk].capacity = xdi->disks[i].capacity; diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c index 48848f9010..18b90ecbab 100644 --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_segment.c @@ -13,7 +13,6 @@ /* Copied from linux/ide.h */ typedef unsigned char byte; -/* We support up to 16 devices of up to 16 partitions each. */ #define XLVIRT_MAX 256 #define XLVIRT_MAJOR_NAME "xvd" static int xlseg_blksize_size[XLVIRT_MAX]; @@ -119,8 +118,8 @@ int __init xlseg_init(void) { disk = xdi->disks[i].device & XENDEV_IDX_MASK; - /* We can use the first 16 IDE devices. */ - if ( !IS_VIRTUAL_XENDEV(xdi->disks[i].device) || (disk >= 16) ) + if ( !IS_VIRTUAL_XENDEV(xdi->disks[i].device) || + (disk >= XLVIRT_DEVS_PER_MAJOR) ) continue; ((xl_disk_t *)gd->real_devices)[disk].capacity = |