+ /* number of interfaces */
+ if (read_u32(&pos, &len, &sysinfo->n_blockdevs))
+ goto out;
+
+ sysinfo->blockdevs = talloc_array(sysinfo, struct blockdev_info *,
+ sysinfo->n_blockdevs);
+
+ for (i = 0; i < sysinfo->n_blockdevs; i++) {
+ struct blockdev_info *bd_info = talloc(sysinfo,
+ struct blockdev_info);
+
+ if (read_string(bd_info, &pos, &len, &bd_info->name))
+ goto out;
+
+ if (read_string(bd_info, &pos, &len, &bd_info->uuid))
+ goto out;
+
+ if (read_string(bd_info, &pos, &len, &bd_info->mountpoint))
+ goto out;
+
+ sysinfo->blockdevs[i] = bd_info;
+ }