]>
Commit | Line | Data |
---|---|---|
77f1c55f MT |
1 | --- grub-0.95/lib/device.c.moreraid 2004-11-30 17:09:36.736099360 -0500 |
2 | +++ grub-0.95/lib/device.c 2004-11-30 17:12:17.319686944 -0500 | |
3 | @@ -544,6 +544,17 @@ | |
4 | } | |
5 | ||
6 | static void | |
7 | +get_cciss_disk_name (char * name, int controller, int drive) | |
8 | +{ | |
9 | + sprintf (name, "/dev/cciss/c%dd%d", controller, drive); | |
10 | +} | |
11 | + | |
12 | +static void | |
13 | +get_cpqarray_disk_name (char * name, int controller, int drive) | |
14 | +{ | |
15 | + sprintf (name, "/dev/ida/c%dd%d", controller, drive); | |
16 | +} | |
17 | +static void | |
18 | get_ataraid_disk_name (char *name, int unit) | |
19 | { | |
20 | sprintf (name, "/dev/ataraid/d%c", unit + '0'); | |
21 | @@ -920,7 +931,7 @@ | |
22 | ||
23 | for (controller = 0; controller < 8; controller++) | |
24 | { | |
25 | - for (drive = 0; drive < 15; drive++) | |
26 | + for (drive = 0; drive < 32; drive++) | |
27 | { | |
28 | char name[24]; | |
29 | ||
30 | @@ -940,6 +951,70 @@ | |
31 | } | |
32 | } | |
33 | #endif /* __linux__ */ | |
34 | + | |
35 | +#ifdef __linux__ | |
36 | + /* This is for cciss - we have | |
37 | + /dev/cciss/c<controller>d<logical drive>p<partition>. | |
38 | + | |
39 | + cciss driver currently supports up to 8 controllers, 16 logical | |
40 | + drives, and 7 partitions. */ | |
41 | + { | |
42 | + int controller, drive; | |
43 | + | |
44 | + for (controller = 0; controller < 8; controller++) | |
45 | + { | |
46 | + for (drive = 0; drive < 16; drive++) | |
47 | + { | |
48 | + char name[24]; | |
49 | + | |
50 | + get_cciss_disk_name (name, controller, drive); | |
51 | + if (check_device (name)) | |
52 | + { | |
53 | + (*map)[num_hd + 0x80] = strdup (name); | |
54 | + assert ((*map)[num_hd + 0x80]); | |
55 | + | |
56 | + /* If the device map file is opened, write the map. */ | |
57 | + if (fp) | |
58 | + fprintf (fp, "(hd%d)\t%s\n", num_hd, name); | |
59 | + | |
60 | + num_hd++; | |
61 | + } | |
62 | + } | |
63 | + } | |
64 | + } | |
65 | +#endif /* __linux__ */ | |
66 | + | |
67 | +#ifdef __linux__ | |
68 | + /* This is for cpqarray - we have | |
69 | + /dev/ida/c<controller>d<logical drive>p<partition>. | |
70 | + | |
71 | + cpqarray driver currently supports up to 8 controllers, 16 logical | |
72 | + drives, and 15 partitions. */ | |
73 | + { | |
74 | + int controller, drive; | |
75 | + | |
76 | + for (controller = 0; controller < 8; controller++) | |
77 | + { | |
78 | + for (drive = 0; drive < 15; drive++) | |
79 | + { | |
80 | + char name[24]; | |
81 | + | |
82 | + get_cpqarray_disk_name (name, controller, drive); | |
83 | + if (check_device (name)) | |
84 | + { | |
85 | + (*map)[num_hd + 0x80] = strdup (name); | |
86 | + assert ((*map)[num_hd + 0x80]); | |
87 | + | |
88 | + /* If the device map file is opened, write the map. */ | |
89 | + if (fp) | |
90 | + fprintf (fp, "(hd%d)\t%s\n", num_hd, name); | |
91 | + | |
92 | + num_hd++; | |
93 | + } | |
94 | + } | |
95 | + } | |
96 | + } | |
97 | +#endif /* __linux__ */ | |
98 | ||
99 | /* OK, close the device map file if opened. */ | |
100 | if (fp) |