Module Name: src Committed By: martin Date: Sat Oct 10 18:49:27 UTC 2020
Modified Files: src/usr.sbin/sysinst: mbr.c Log Message: Use an install target hint to mark a new partition active. When compiled with BOOTSEL support, also name the new partition "NetBSD". To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/usr.sbin/sysinst/mbr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/sysinst/mbr.c diff -u src/usr.sbin/sysinst/mbr.c:1.34 src/usr.sbin/sysinst/mbr.c:1.35 --- src/usr.sbin/sysinst/mbr.c:1.34 Sat Oct 3 18:54:18 2020 +++ src/usr.sbin/sysinst/mbr.c Sat Oct 10 18:49:27 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: mbr.c,v 1.34 2020/10/03 18:54:18 martin Exp $ */ +/* $NetBSD: mbr.c,v 1.35 2020/10/10 18:49:27 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -1579,7 +1579,8 @@ mbr_part_attr_str(const struct disk_part static bool mbr_info_to_partitition(const struct disk_part_info *info, - struct mbr_partition *mp, uint sector, const char **err_msg) + struct mbr_partition *mp, uint sector, + struct mbr_info_t *mb, size_t index, const char **err_msg) { size_t pt = mbr_type_from_gen_desc(info->nat_type); if (info->start + info->size > UINT_MAX @@ -1591,6 +1592,12 @@ mbr_info_to_partitition(const struct dis mp->mbrp_start = info->start - sector; mp->mbrp_size = info->size; mp->mbrp_type = pt; + if (info->flags & PTI_INSTALL_TARGET) { + mp->mbrp_flag |= MBR_PFLAG_ACTIVE; +#ifdef BOOTSEL + strcpy(mb->mbrb.mbrbs_nametab[index], "NetBSD"); +#endif + } return true; } @@ -1771,7 +1778,7 @@ found: data.size = size; uint old_start = m->mbr.mbr_parts[i].mbrp_start; if (!mbr_info_to_partitition(&data, - &m->mbr.mbr_parts[i], m->sector, err_msg)) + &m->mbr.mbr_parts[i], m->sector, m, i, err_msg)) return false; if (data.flags & PTI_INSTALL_TARGET) parts->target = start; @@ -2262,7 +2269,7 @@ mbr_add_part(struct disk_partitions *arg /* empty slot, we can just use it */ newp = &m->mbr.mbr_parts[0]; mbr_info_to_partitition(&data, &m->mbr.mbr_parts[0], - m->sector, errmsg); + m->sector, m, 0, errmsg); if (data.last_mounted && m->last_mounted[0] && data.last_mounted != m->last_mounted[0]) { free(__UNCONST(m->last_mounted[0])); @@ -2316,7 +2323,7 @@ mbr_add_part(struct disk_partitions *arg newp = &new_mbr->mbr.mbr_parts[0]; mbr_info_to_partitition(&data, &new_mbr->mbr.mbr_parts[0], - new_mbr->sector, errmsg); + new_mbr->sector, new_mbr, 0, errmsg); if (data.last_mounted && m->last_mounted[0] && data.last_mounted != m->last_mounted[0]) { free(__UNCONST(m->last_mounted[0])); @@ -2335,7 +2342,7 @@ mbr_add_part(struct disk_partitions *arg newp = &new_mbr->mbr.mbr_parts[0]; mbr_info_to_partitition(&data, &new_mbr->mbr.mbr_parts[0], - new_mbr->sector, errmsg); + new_mbr->sector, new_mbr, 0, errmsg); if (data.last_mounted && m->last_mounted[0] && data.last_mounted != m->last_mounted[0]) { free(__UNCONST(m->last_mounted[0])); @@ -2399,7 +2406,7 @@ mbr_add_part(struct disk_partitions *arg if (data.start + data.size > start + size) data.size = start + size - data.start; mbr_info_to_partitition(&data, &m->mbr.mbr_parts[free_primary], - m->sector, errmsg); + m->sector, m, free_primary, errmsg); if (data.last_mounted && m->last_mounted[free_primary] && data.last_mounted != m->last_mounted[free_primary]) { free(__UNCONST(m->last_mounted[free_primary]));