summaryrefslogtreecommitdiffstats
path: root/sys/geom/part/g_part_gpt.c
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2016-04-26 15:38:17 +0000
committerpfg <pfg@FreeBSD.org>2016-04-26 15:38:17 +0000
commitfc01419148d065603607b1008d536431465f3bc3 (patch)
tree1bff72784c0591a61e4e16e97fae48d0614891dc /sys/geom/part/g_part_gpt.c
parent3a3f015eb3ae533a46cf30b5262d15cb4b5db097 (diff)
downloadFreeBSD-src-fc01419148d065603607b1008d536431465f3bc3.zip
FreeBSD-src-fc01419148d065603607b1008d536431465f3bc3.tar.gz
sys: extend use of the howmany() macro when available.
We have a howmany() macro in the <sys/param.h> header that is convenient to re-use as it makes things easier to read.
Diffstat (limited to 'sys/geom/part/g_part_gpt.c')
-rw-r--r--sys/geom/part/g_part_gpt.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/geom/part/g_part_gpt.c b/sys/geom/part/g_part_gpt.c
index 465bb5e..f9017ab 100644
--- a/sys/geom/part/g_part_gpt.c
+++ b/sys/geom/part/g_part_gpt.c
@@ -472,8 +472,7 @@ gpt_read_hdr(struct g_part_gpt_table *table, struct g_consumer *cp,
hdr->hdr_lba_table <= hdr->hdr_lba_end)
goto fail;
lba = hdr->hdr_lba_table +
- (hdr->hdr_entries * hdr->hdr_entsz + pp->sectorsize - 1) /
- pp->sectorsize - 1;
+ howmany(hdr->hdr_entries * hdr->hdr_entsz, pp->sectorsize) - 1;
if (lba >= last)
goto fail;
if (lba >= hdr->hdr_lba_start && lba <= hdr->hdr_lba_end)
@@ -515,7 +514,7 @@ gpt_read_tbl(struct g_part_gpt_table *table, struct g_consumer *cp,
table->state[elt] = GPT_STATE_MISSING;
tblsz = hdr->hdr_entries * hdr->hdr_entsz;
- sectors = (tblsz + pp->sectorsize - 1) / pp->sectorsize;
+ sectors = howmany(tblsz, pp->sectorsize);
buf = g_malloc(sectors * pp->sectorsize, M_WAITOK | M_ZERO);
for (idx = 0; idx < sectors; idx += MAXPHYS / pp->sectorsize) {
size = (sectors - idx > MAXPHYS / pp->sectorsize) ? MAXPHYS:
@@ -653,8 +652,8 @@ g_part_gpt_create(struct g_part_table *basetable, struct g_part_parms *gpp)
table = (struct g_part_gpt_table *)basetable;
pp = gpp->gpp_provider;
- tblsz = (basetable->gpt_entries * sizeof(struct gpt_ent) +
- pp->sectorsize - 1) / pp->sectorsize;
+ tblsz = howmany(basetable->gpt_entries * sizeof(struct gpt_ent),
+ pp->sectorsize);
if (pp->sectorsize < MBRSIZE ||
pp->mediasize < (3 + 2 * tblsz + basetable->gpt_entries) *
pp->sectorsize)
@@ -1134,8 +1133,8 @@ g_part_gpt_write(struct g_part_table *basetable, struct g_consumer *cp)
pp = cp->provider;
table = (struct g_part_gpt_table *)basetable;
- tblsz = (table->hdr->hdr_entries * table->hdr->hdr_entsz +
- pp->sectorsize - 1) / pp->sectorsize;
+ tblsz = howmany(table->hdr->hdr_entries * table->hdr->hdr_entsz,
+ pp->sectorsize);
/* Reconstruct the MBR from the GPT if under Boot Camp. */
if (table->bootcamp)
@@ -1239,8 +1238,8 @@ g_gpt_set_defaults(struct g_part_table *basetable, struct g_provider *pp)
table = (struct g_part_gpt_table *)basetable;
last = pp->mediasize / pp->sectorsize - 1;
- tblsz = (basetable->gpt_entries * sizeof(struct gpt_ent) +
- pp->sectorsize - 1) / pp->sectorsize;
+ tblsz = howmany(basetable->gpt_entries * sizeof(struct gpt_ent),
+ pp->sectorsize);
table->lba[GPT_ELT_PRIHDR] = 1;
table->lba[GPT_ELT_PRITBL] = 2;
OpenPOWER on IntegriCloud