uint8_t division[4];
};
-int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts);
+int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts, uint32_t disk_id);
#ifdef __cplusplus
}
};
struct ext4_mbr {
- uint8_t bootstrap[446];
+ uint8_t bootstrap[442];
+ uint32_t disk_id;
struct ext4_part_entry part_entry[4];
uint16_t signature;
};
return r;
}
-int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts)
+int ext4_mbr_write(struct ext4_blockdev *parent, struct ext4_mbr_parts *parts, uint32_t disk_id)
{
int r;
uint64_t disk_size = parent->part_size;
struct ext4_mbr *mbr = (void *)parent->bdif->ph_bbuf;
memset(mbr, 0, sizeof(struct ext4_mbr));
+ mbr->disk_id = disk_id;
uint32_t cyl_it = 0;
for (int i = 0; i < 4; ++i) {