Sophie

Sophie

distrib > Mandriva > 7.2 > i586 > media > main-src > by-pkgid > 5fd1c1a9e76d83bef94d83c33a15b734 > files > 3

lilo-0.21.5.1-4mdk.src.rpm

--- lilo-21.4.4/geometry.c.i2o	Tue Aug 22 12:38:05 2000
+++ lilo-21.4.4/geometry.c	Tue Aug 22 12:39:06 2000
@@ -114,7 +114,8 @@
       MAJOR(dev) == MAJOR_IDE3 || MAJOR(dev) == MAJOR_IDE4 ||
       MAJOR(dev) == MAJOR_IDE5 || MAJOR(dev) == MAJOR_IDE6 ||
       MAJOR(dev) == MAJOR_XT || MAJOR(dev) == MAJOR_SD ||
-      MAJOR(dev) == MAJOR_ESDI || MAJOR(dev) == MAJOR_DAC960;
+      MAJOR(dev) == MAJOR_ESDI || MAJOR(dev) == MAJOR_DAC960 ||
+      MAJOR(dev) == MAJOR_I2O;
 }
 
 
@@ -364,6 +365,16 @@
 	    geo->sectors = hdprm.sectors;
 	    geo->start = hdprm.start;
 	    break;
+	case MAJOR_I2O:
+	    geo->device = 0x80+last_dev(MAJOR_HD,64)+(MINOR(device) >> 4);
+	    if (ioctl(fd,HDIO_GETGEO,&hdprm) < 0)
+		die("geo_query_dev HDIO_GETGEO (dev 0x%04x): %s",device,
+		  strerror(errno));
+	    geo->heads = hdprm.heads;
+	    geo->cylinders = hdprm.cylinders;
+	    geo->sectors = hdprm.sectors;
+	    geo->start = hdprm.start;
+	    break;
 
 	default:
 	    die("Sorry, don't know how to handle device 0x%04x",device);
@@ -407,6 +418,8 @@
 	    return MINOR(device) >> 4 ? 0 : !last_dev(MAJOR_HD,64);
 	case MAJOR_DAC960:
 	    return MINOR(device) >> 3 ? 0 : !last_dev(MAJOR_HD,64);
+	case MAJOR_I2O:
+	    return MINOR(device) >> 4 ? 0 : !last_dev(MAJOR_HD,64);
 	default:
 	    return 1; /* user knows what (s)he's doing ... I hope */
     }
--- lilo-21.4.4/lilo.h.i2o	Tue Aug 22 12:38:05 2000
+++ lilo-21.4.4/lilo.h	Tue Aug 22 12:39:47 2000
@@ -43,6 +43,7 @@
 #define MAJOR_IDE5	55 /* IDE on fifth interface */
 #define MAJOR_IDE6	57 /* IDE on sixth interface */
 #define COMPAQ_SMART2_MAJOR	72 /* First Smart/2 Major */
+#define MAJOR_I2O	80 /* I2O based controller */
 #define COMPAQ_CISS_MAJOR      104 /* First CCISS Major */
 
 #define MAX_IMAGES      ((SECTOR_SIZE*2-2)/sizeof(IMAGE_DESCR))
--- lilo-21.4.4/partition.c.i2o	Tue Aug 22 12:38:05 2000
+++ lilo-21.4.4/partition.c	Tue Aug 22 12:38:05 2000
@@ -48,7 +48,7 @@
        MAJOR(dev_nr) != MAJOR_SD && MAJOR(dev_nr) != MAJOR_IDE2 &&
        MAJOR(dev_nr) != MAJOR_IDE3 && MAJOR(dev_nr) != MAJOR_IDE4 &&
        MAJOR(dev_nr) != MAJOR_IDE5 && MAJOR(dev_nr) != MAJOR_IDE6 &&
-      MAJOR(dev_nr) != MAJOR_DAC960)) return;
+      MAJOR(dev_nr) != MAJOR_DAC960) || MAJOR(dev_nr) != MAJOR_I2O) return;
     geo_get(&geo,dev_nr & ~PART_MASK,-1,1);
     fd = dev_open(&dev,dev_nr & ~PART_MASK,cfg_get_flag(cf_options,"fix-table")
       && !test ? O_RDWR : O_RDONLY);