mbr_part
const struct mbr_part *par = &mbr->mbr_part[i];
if (mbr->mbr_part[i].part_typ == MBR_PTYPE_UNUSED)
for (i = 0; i < __arraycount(mbr->mbr_part); i++)
if (mbr->mbr_part[i].part_typ == MBR_PTYPE_PMBR)
mbr->mbr_part[i].part_flag = active ? 0x80 : 0;
gpt_create_pmbr_part(mbr->mbr_part, last, active);
if (mbr->mbr_part[i].part_typ == MBR_PTYPE_UNUSED)
if (mbr->mbr_part[i].part_typ == MBR_PTYPE_PMBR)
if (mbr->mbr_part[i].part_typ == MBR_PTYPE_UNUSED ||
mbr->mbr_part[i].part_typ == MBR_PTYPE_PMBR)
start = le16toh(mbr->mbr_part[i].part_start_hi);
start = (start << 16) + le16toh(mbr->mbr_part[i].part_start_lo);
size = le16toh(mbr->mbr_part[i].part_size_hi);
size = (size << 16) + le16toh(mbr->mbr_part[i].part_size_lo);
"size=%ju", mbr->mbr_part[i].part_flag,
mbr->mbr_part[i].part_typ,
if (!MBR_IS_EXTENDED(mbr->mbr_part[i].part_typ)) {
gpt_create_pmbr_part(struct mbr_part *part, off_t last, int active)
void gpt_create_pmbr_part(struct mbr_part *, off_t, int);
struct mbr_part mbr_part[4];
start = le16toh(mbr->mbr_part[i].part_start_hi);
start = (start << 16) + le16toh(mbr->mbr_part[i].part_start_lo);
size = le16toh(mbr->mbr_part[i].part_size_hi);
size = (size << 16) + le16toh(mbr->mbr_part[i].part_size_lo);
mbrptypename(mbr->mbr_part[i].part_typ));
switch (mbr->mbr_part[i].part_typ) {
mbr->mbr_part[i].part_typ);
memset(mbr->mbr_part, 0, sizeof(mbr->mbr_part));
gpt_create_pmbr_part(mbr->mbr_part, last, active);
gpt_create_pmbr_part(mbr->mbr_part, last, 0);
if (mbr->mbr_part[0].part_typ == MBR_PTYPE_PMBR)
mbr->mbr_part[0].part_size_lo = htole16(0xffff);
mbr->mbr_part[0].part_size_hi = htole16(0xffff);
mbr->mbr_part[0].part_size_lo = htole16((uint16_t)last);
mbr->mbr_part[0].part_size_hi = htole16((uint16_t)((uint64_t)last >> 16));
mbr->mbr_part[0].part_size_lo = htole16(0xffff);
mbr->mbr_part[0].part_size_hi = htole16(0xffff);
mbr->mbr_part[0].part_size_lo = htole16((uint16_t)last);
mbr->mbr_part[0].part_size_hi = htole16(
struct mbr_part *part;
part = &mbr->mbr_part[i];
start = le16toh(mbr->mbr_part[i].part_start_hi);
le16toh(mbr->mbr_part[i].part_start_lo);
len += printf("%d%s", mbr->mbr_part[i].part_typ,
mbr->mbr_part[i].part_flag == 0x80 ?
if (mbr->mbr_part[0].part_typ == MBR_PTYPE_PMBR &&
mbr->mbr_part[0].part_flag == 0x80)
struct mbr_partition *mbr_part;
mbr_part = &mbr.mbr_parts[n];
size = le32toh(mbr_part->mbrp_size);
if (le32toh(mbr_part->mbrp_size) == 0) {
start = le32toh(mbr_part->mbrp_start);
n, mbr_part->mbrp_type, start, size);
if (mbr_part->mbrp_type == MBR_PTYPE_NETBSD && !has_label) {
struct mbr_partition *mbr_part;
mbr_part = &mbr.mbr_parts[n];
if (le32toh(mbr_part->mbrp_size) == 0)
if (mbr_part->mbrp_type == MBR_PTYPE_NETBSD) {
le32toh(mbr_part->mbrp_start),
le32toh(mbr_part->mbrp_size));