Index: include/parted/device.h =================================================================== RCS file: /mnt/devel/CVS/parted/include/parted/device.h,v retrieving revision 1.1.1.3 diff -u -r1.1.1.3 device.h --- include/parted/device.h 2001/07/09 12:44:48 1.1.1.3 +++ include/parted/device.h 2001/08/10 19:30:54 @@ -30,7 +30,8 @@ PED_DEVICE_DAC960 = 3, PED_DEVICE_CPQARRAY = 4, PED_DEVICE_FILE = 5, - PED_DEVICE_ATARAID = 6 + PED_DEVICE_ATARAID = 6, + PED_DEVICE_I2O = 7 } PedDeviceType; typedef struct _PedDevice PedDevice; Index: libparted/device.c =================================================================== RCS file: /mnt/devel/CVS/parted/libparted/device.c,v retrieving revision 1.9 diff -u -r1.9 device.c --- libparted/device.c 2001/07/20 20:51:36 1.9 +++ libparted/device.c 2001/08/10 19:30:54 @@ -89,6 +89,14 @@ #define COMPAQ_SMART_MAJOR7 111 #define DAC960_MAJOR 48 #define ATARAID_MAJOR 114 +#define I2O_MAJOR1 80 +#define I2O_MAJOR2 81 +#define I2O_MAJOR3 82 +#define I2O_MAJOR4 83 +#define I2O_MAJOR5 84 +#define I2O_MAJOR6 85 +#define I2O_MAJOR7 86 +#define I2O_MAJOR8 87 #define SCSI_BLK_MAJOR(M) ( \ (M) == SCSI_DISK0_MAJOR \ @@ -226,7 +234,14 @@ || (COMPAQ_SMART_MAJOR <= major && major <= COMPAQ_SMART_MAJOR7)); } + static int +_is_i2o_major (int major) +{ + return (I2O_MAJOR1 <= major && major <= I2O_MAJOR8); +} + +static int device_probe_type (PedDevice* dev) { struct stat dev_stat; @@ -253,6 +268,8 @@ dev->type = PED_DEVICE_DAC960; } else if (dev_major == ATARAID_MAJOR && (dev_minor % 0x10 == 0)) { dev->type = PED_DEVICE_ATARAID; + } else if (_is_i2o_major (dev_major) && (dev_minor % 0x10 == 0)) { + dev->type = PED_DEVICE_I2O; } else if (_is_cpqarray_major (dev_major) && (dev_minor % 0x10 == 0)) { dev->type = PED_DEVICE_CPQARRAY; } else { @@ -616,6 +633,11 @@ goto error_free_dev; break; + case PED_DEVICE_I2O: + if (!init_generic (dev, _("I2O Controller"))) + goto error_free_dev; + break; + case PED_DEVICE_FILE: if (!init_file (dev)) goto error_free_dev; @@ -678,7 +700,8 @@ for (i = 0; i < 16; i++) { if (dev->type == PED_DEVICE_DAC960 - || dev->type == PED_DEVICE_CPQARRAY || dev->type == PED_DEVICE_ATARAID) + || dev->type == PED_DEVICE_CPQARRAY + || dev->type == PED_DEVICE_ATARAID) sprintf (name, "%sp%d", dev->path, i); else sprintf (name, "%s%d", dev->path, i); Index: libparted/disk.c =================================================================== RCS file: /mnt/devel/CVS/parted/libparted/disk.c,v retrieving revision 1.1.1.6 diff -u -r1.1.1.6 disk.c --- libparted/disk.c 2001/07/04 00:03:02 1.1.1.6 +++ libparted/disk.c 2001/08/10 19:30:54 @@ -876,7 +876,8 @@ FILE* proc_real_root_dev; if (part->geom.disk->dev->type == PED_DEVICE_DAC960 - || part->geom.disk->dev->type == PED_DEVICE_CPQARRAY) + || part->geom.disk->dev->type == PED_DEVICE_CPQARRAY + || part->geom.disk->dev->type == PED_DEVICE_ATARAID) sprintf (part_name, "%sp%d", part->geom.disk->dev->path, part->num); else @@ -959,7 +960,8 @@ goto error; if (part->geom.disk->dev->type == PED_DEVICE_DAC960 - || part->geom.disk->dev->type == PED_DEVICE_CPQARRAY) + || part->geom.disk->dev->type == PED_DEVICE_CPQARRAY + || part->geom.disk->dev->type == PED_DEVICE_ATARAID) sprintf (part_name, "%sp%d", part->geom.disk->dev->path, part->num); else