128
if (c >= '0' && c <= '9')
130
if (c >= 'a' && c <= 'f')
132
if (c >= 'A' && c <= 'F')
120
137
static grub_err_t
121
138
grub_raid_open (const char *name, grub_disk_t disk)
123
140
struct grub_raid_array *array;
126
for (array = array_list; array != NULL; array = array->next)
143
if (grub_memcmp (name, "mduuid/", sizeof ("mduuid/") - 1) == 0)
128
if (!grub_strcmp (array->name, name))
129
if (grub_is_array_readable (array))
145
const char *uuidstr = name + sizeof ("mduuid/") - 1;
146
grub_size_t uuid_len = grub_strlen (uuidstr) / 2;
147
grub_uint8_t uuidbin[uuid_len];
149
for (i = 0; i < uuid_len; i++)
150
uuidbin[i] = ascii2hex (uuidstr[2 * i + 1])
151
| (ascii2hex (uuidstr[2 * i]) << 4);
153
for (array = array_list; array != NULL; array = array->next)
155
if (uuid_len == (unsigned) array->uuid_len
156
&& grub_memcmp (uuidbin, array->uuid, uuid_len) == 0)
157
if (grub_is_array_readable (array))
162
for (array = array_list; array != NULL; array = array->next)
164
if (!grub_strcmp (array->name, name))
165
if (grub_is_array_readable (array))
134
170
return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "unknown RAID device %s",
639
675
grub_dprintf ("raid", "Found array %s (%s)\n", array->name,
678
grub_util_info ("Found array %s (%s)", array->name,
642
682
/* Add our new array to the list. */
643
683
array->next = array_list;
696
736
struct grub_raid_array array;
697
737
grub_disk_addr_t start_sector;
699
grub_dprintf ("raid", "Scanning for RAID devices on disk %s\n", name);
739
grub_dprintf ("raid", "Scanning for %s RAID devices on disk %s\n",
740
grub_raid_list->name, name);
742
grub_util_info ("Scanning for %s RAID devices on disk %s",
743
grub_raid_list->name, name);
701
746
disk = grub_disk_open (name);