Symbol: gpt
sbin/efi/gptsubr.c
145
get_map_widths(gpt_t gpt)
sbin/efi/gptsubr.c
153
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/efi/gptsubr.c
295
gpt_t gpt;
sbin/efi/gptsubr.c
298
gpt = gpt_open(dev, GPT_READONLY, 0, 0, 0, 0);
sbin/efi/gptsubr.c
300
if (gpt == NULL)
sbin/efi/gptsubr.c
303
if (map_find(gpt, MAP_TYPE_PRI_GPT_HDR) == NULL)
sbin/efi/gptsubr.c
306
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/efi/gptsubr.c
310
gpt_close(gpt);
sbin/efi/gptsubr.c
368
gpt_t gpt;
sbin/efi/gptsubr.c
383
gpt = gpt_open(dev, GPT_MODIFIED, verbose, 0, 0, 0);
sbin/efi/gptsubr.c
385
if (gpt == NULL)
sbin/efi/gptsubr.c
388
m = map_find(gpt, MAP_TYPE_MBR);
sbin/efi/gptsubr.c
401
if (gpt_write(gpt, m) == -1)
sbin/efi/gptsubr.c
411
gpt_close(gpt);
sbin/efi/gptsubr.c
418
gpt_t gpt;
sbin/efi/gptsubr.c
427
gpt = gpt_open(dev, GPT_READONLY, verbose, 0, 0, 0);
sbin/efi/gptsubr.c
429
if (gpt == NULL)
sbin/efi/gptsubr.c
432
if (map_find(gpt, MAP_TYPE_PRI_GPT_HDR) == NULL)
sbin/efi/gptsubr.c
435
w = get_map_widths(gpt);
sbin/efi/gptsubr.c
438
for (m = map_first(gpt); m != NULL; m = m->map_next)
sbin/efi/gptsubr.c
441
gpt_close(gpt);
sbin/efi/gptsubr.c
468
gpt_t gpt;
sbin/efi/gptsubr.c
551
gpt = gpt_open(parent, GPT_READONLY,
sbin/efi/gptsubr.c
554
if (gpt == NULL)
sbin/efi/gptsubr.c
557
if (map_find(gpt, MAP_TYPE_PRI_GPT_HDR) == NULL)
sbin/efi/gptsubr.c
563
w = get_map_widths(gpt);
sbin/efi/gptsubr.c
566
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/add.c
102
gpt_warnx(gpt, "index %u out of range (%u max)",
sbin/gpt/add.c
109
ent = gpt_ent_primary(gpt, i);
sbin/gpt/add.c
111
gpt_warnx(gpt, "Entry at index %u is not free", entry);
sbin/gpt/add.c
117
ent = gpt_ent_primary(gpt, i);
sbin/gpt/add.c
122
gpt_warnx(gpt, "No available table entries");
sbin/gpt/add.c
128
if (gpt_uuid_generate(gpt, ent->ent_guid) == -1) {
sbin/gpt/add.c
129
gpt_warnx(gpt, "Unable to make UUID");
sbin/gpt/add.c
134
alignsecs = alignment / gpt->secsz;
sbin/gpt/add.c
135
map = map_alloc(gpt, block, sectors, alignsecs);
sbin/gpt/add.c
137
gpt_warnx(gpt, "Not enough space available on "
sbin/gpt/add.c
142
map = map_alloc(gpt, block, sectors, 0);
sbin/gpt/add.c
144
gpt_warnx(gpt, "Not enough space available on device");
sbin/gpt/add.c
150
if (gpt_write_primary(gpt) == -1)
sbin/gpt/add.c
153
ent = gpt_ent_backup(gpt, i);
sbin/gpt/add.c
155
if (gpt_write_backup(gpt) == -1)
sbin/gpt/add.c
159
gpt_msg(gpt, "Partition %d added: %s %" PRIu64 " %" PRIu64, i + 1,
sbin/gpt/add.c
165
cmd_add(gpt_t gpt, int argc, char *argv[])
sbin/gpt/add.c
178
if (gpt_human_get(gpt, &block) == -1)
sbin/gpt/add.c
182
if (gpt_name_get(gpt, &name) == -1)
sbin/gpt/add.c
186
if (gpt_uuid_get(gpt, &type) == -1)
sbin/gpt/add.c
192
if (gpt_add_ais(gpt, &alignment, &entry, &size, ch)
sbin/gpt/add.c
211
if ((sectors = gpt_check_ais(gpt, alignment, ~0U, size)) == -1)
sbin/gpt/add.c
214
return add(gpt, alignment, block, sectors, size, entry, name, type);
sbin/gpt/add.c
86
add(gpt_t gpt, off_t alignment, off_t block, off_t sectors, off_t size __unused,
sbin/gpt/add.c
96
if ((hdr = gpt_hdr(gpt)) == NULL)
sbin/gpt/backup.c
121
gpt_warnx(gpt, "proplib failure");
sbin/gpt/backup.c
126
store_gpt(gpt_t gpt __unused, const struct gpt_hdr *hdr,
sbin/gpt/backup.c
148
store_tbl(gpt_t gpt, const map_t m, prop_dictionary_t *type_dict)
sbin/gpt/backup.c
169
m->map_size * gpt->secsz; i++, ent++) {
sbin/gpt/backup.c
205
backup(gpt_t gpt, const char *outfile)
sbin/gpt/backup.c
218
assert(gpt->secsz <= INT_MAX);
sbin/gpt/backup.c
220
(int)gpt->secsz));
sbin/gpt/backup.c
221
m = map_first(gpt);
sbin/gpt/backup.c
233
if (store_mbr(gpt, i, mbr, &mbr_array) == -1)
sbin/gpt/backup.c
246
if (store_gpt(gpt, m->map_data, &type_dict) == -1)
sbin/gpt/backup.c
254
if (store_tbl(gpt, m, &type_dict) == -1)
sbin/gpt/backup.c
268
gpt_warn(gpt, "Can't open `%s'", outfile);
sbin/gpt/backup.c
284
cmd_backup(gpt_t gpt, int argc, char *argv[])
sbin/gpt/backup.c
301
return backup(gpt, outfile);
sbin/gpt/backup.c
77
store_mbr(gpt_t gpt, unsigned int i, const struct mbr *mbr,
sbin/gpt/biosboot.c
114
gpt_warn(gpt, "Can't allocate memory for bootpath");
sbin/gpt/biosboot.c
118
if ((buf = malloc((size_t)gpt->secsz)) == NULL) {
sbin/gpt/biosboot.c
119
gpt_warn(gpt, "Can't allocate memory for sector");
sbin/gpt/biosboot.c
125
gpt_warn(gpt, "Can't open `%s'", bp);
sbin/gpt/biosboot.c
130
gpt_warnx(gpt, "The bootcode in `%s' does not match the"
sbin/gpt/biosboot.c
136
gpt_warn(gpt, "Error reading from `%s'", bp);
sbin/gpt/biosboot.c
153
set_bootable(gpt_t gpt, map_t map, map_t tbl, unsigned int i)
sbin/gpt/biosboot.c
168
return gpt_write_crc(gpt, map, tbl);
sbin/gpt/biosboot.c
172
biosboot(gpt_t gpt, off_t start, uint64_t size, u_int entry, uint8_t *label,
sbin/gpt/biosboot.c
184
if (gpt_hdr(gpt) == NULL)
sbin/gpt/biosboot.c
187
mbrmap = map_find(gpt, MAP_TYPE_PMBR);
sbin/gpt/biosboot.c
189
gpt_warnx(gpt, "No valid Protective MBR found");
sbin/gpt/biosboot.c
198
if ((bootcode = read_boot(gpt, bootpath)) == NULL) {
sbin/gpt/biosboot.c
199
gpt_warnx(gpt, "Error reading bootcode");
sbin/gpt/biosboot.c
213
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/biosboot.c
242
gpt_warnx(gpt, "No bootable partition");
sbin/gpt/biosboot.c
249
if (set_bootable(gpt, gpt->gpt, gpt->tbl, i) == -1)
sbin/gpt/biosboot.c
252
if (set_bootable(gpt, gpt->tpg, gpt->lbt, i) == -1)
sbin/gpt/biosboot.c
255
if (gpt_write(gpt, mbrmap) == -1) {
sbin/gpt/biosboot.c
256
gpt_warnx(gpt, "Cannot update Protective MBR");
sbin/gpt/biosboot.c
260
gpt_msg(gpt, "Partition %d marked as bootable", i + 1);
sbin/gpt/biosboot.c
265
cmd_biosboot(gpt_t gpt, int argc, char *argv[])
sbin/gpt/biosboot.c
271
gpt_t ngpt = gpt;
sbin/gpt/biosboot.c
285
if (gpt_name_get(gpt, &bootpath) == -1)
sbin/gpt/biosboot.c
289
if (gpt_uint_get(gpt, &entry) == -1)
sbin/gpt/biosboot.c
293
if (gpt_name_get(gpt, &label) == -1)
sbin/gpt/biosboot.c
297
if (gpt_human_get(gpt, &start) == -1)
sbin/gpt/biosboot.c
309
if ((gpt->sb.st_mode & S_IFMT) != S_IFREG &&
sbin/gpt/biosboot.c
310
ioctl(gpt->fd, DIOCGWEDGEINFO, &dkw) != -1) {
sbin/gpt/biosboot.c
316
ngpt = gpt_open(dkw.dkw_parent, gpt->flags, gpt->verbose,
sbin/gpt/biosboot.c
324
if (ngpt != gpt)
sbin/gpt/biosboot.c
330
if (ngpt != gpt)
sbin/gpt/biosboot.c
94
read_boot(gpt_t gpt, const char *bootpath)
sbin/gpt/create.c
100
gpt_warnx(gpt, "Error reading MBR");
sbin/gpt/create.c
107
map = map_add(gpt, 0LL, 1LL, MAP_TYPE_PMBR, mbr, 1);
sbin/gpt/create.c
108
if (gpt_write(gpt, map) == -1) {
sbin/gpt/create.c
109
gpt_warn(gpt, "Can't write PMBR");
sbin/gpt/create.c
114
if (gpt_create(gpt, last, parts, primary_only) == -1)
sbin/gpt/create.c
117
if (gpt_write_primary(gpt) == -1)
sbin/gpt/create.c
120
if (!primary_only && gpt_write_backup(gpt) == -1)
sbin/gpt/create.c
127
cmd_create(gpt_t gpt, int argc, char *argv[])
sbin/gpt/create.c
147
if (gpt_uint_get(gpt, &parts) == -1)
sbin/gpt/create.c
160
return create(gpt, parts, force, primary_only, active);
sbin/gpt/create.c
74
create(gpt_t gpt, u_int parts, int force, int primary_only, int active)
sbin/gpt/create.c
76
off_t last = gpt_last(gpt);
sbin/gpt/create.c
80
map = map_find(gpt, MAP_TYPE_MBR);
sbin/gpt/create.c
83
gpt_warnx(gpt, "Device contains a MBR");
sbin/gpt/create.c
93
if (map_find(gpt, MAP_TYPE_PMBR) == NULL) {
sbin/gpt/create.c
94
if (map_free(gpt, 0LL, 1LL) == 0) {
sbin/gpt/create.c
95
gpt_warnx(gpt, "No room for the PMBR");
sbin/gpt/create.c
98
mbr = gpt_read(gpt, 0LL, 1);
sbin/gpt/destroy.c
104
memset(pmbr->map_data, 0, gpt->secsz);
sbin/gpt/destroy.c
105
if (gpt_write(gpt, pmbr) == -1) {
sbin/gpt/destroy.c
106
gpt_warnx(gpt, "Error deleting PMBR");
sbin/gpt/destroy.c
115
cmd_destroy(gpt_t gpt, int argc, char *argv[])
sbin/gpt/destroy.c
135
return destroy(gpt, 0, recoverable);
sbin/gpt/destroy.c
69
destroy(gpt_t gpt, int force __unused, int recoverable)
sbin/gpt/destroy.c
73
pri_hdr = map_find(gpt, MAP_TYPE_PRI_GPT_HDR);
sbin/gpt/destroy.c
74
sec_hdr = map_find(gpt, MAP_TYPE_SEC_GPT_HDR);
sbin/gpt/destroy.c
75
pmbr = map_find(gpt, MAP_TYPE_PMBR);
sbin/gpt/destroy.c
78
gpt_warnx(gpt, "Device doesn't contain a GPT");
sbin/gpt/destroy.c
83
gpt_warnx(gpt, "Recoverability not possible");
sbin/gpt/destroy.c
88
memset(pri_hdr->map_data, 0, gpt->secsz);
sbin/gpt/destroy.c
89
if (gpt_write(gpt, pri_hdr) == -1) {
sbin/gpt/destroy.c
90
gpt_warnx(gpt, "Error writing primary header");
sbin/gpt/destroy.c
96
memset(sec_hdr->map_data, 0, gpt->secsz);
sbin/gpt/destroy.c
97
if (gpt_write(gpt, sec_hdr) == -1) {
sbin/gpt/destroy.c
98
gpt_warnx(gpt, "Error writing backup header");
sbin/gpt/gpt.c
1003
gpt_size_get(gpt_t gpt, off_t *size)
sbin/gpt/gpt.c
1015
*size = sectors * gpt->secsz;
sbin/gpt/gpt.c
1019
if (sectors % gpt->secsz) {
sbin/gpt/gpt.c
1020
gpt_warnx(gpt,
sbin/gpt/gpt.c
1022
gpt->secsz);
sbin/gpt/gpt.c
1030
if (human_num % gpt->secsz) {
sbin/gpt/gpt.c
1031
gpt_warnx(gpt, "Size must be a multiple of sector size (%u)",
sbin/gpt/gpt.c
1032
gpt->secsz);
sbin/gpt/gpt.c
1040
gpt_human_get(gpt_t gpt, off_t *human)
sbin/gpt/gpt.c
1045
gpt_warn(gpt, "Already set to %jd new `%s'", (intmax_t)*human,
sbin/gpt/gpt.c
1050
gpt_warn(gpt, "Bad number `%s'", optarg);
sbin/gpt/gpt.c
1055
gpt_warn(gpt, "Number `%s' < 1", optarg);
sbin/gpt/gpt.c
1062
gpt_add_find(gpt_t gpt, struct gpt_find *find, int ch)
sbin/gpt/gpt.c
1067
gpt_warn(gpt, "-a is already set");
sbin/gpt/gpt.c
1073
if (gpt_human_get(gpt, &find->block) == -1)
sbin/gpt/gpt.c
1077
if (gpt_uint_get(gpt, &find->entry) == -1)
sbin/gpt/gpt.c
1081
if (gpt_name_get(gpt, &find->label) == -1)
sbin/gpt/gpt.c
1085
if (gpt_size_get(gpt, &find->size) == -1)
sbin/gpt/gpt.c
1095
gpt_warn(gpt, "Unknown find option `%c'", ch);
sbin/gpt/gpt.c
1102
gpt_change_ent(gpt_t gpt, const struct gpt_find *find,
sbin/gpt/gpt.c
1115
if (gpt_hdr(gpt) == NULL)
sbin/gpt/gpt.c
1119
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/gpt.c
1131
ent = gpt_ent_primary(gpt, i);
sbin/gpt/gpt.c
1147
if (gpt_write_primary(gpt) == -1)
sbin/gpt/gpt.c
1150
ent = gpt_ent_backup(gpt, i);
sbin/gpt/gpt.c
1154
if (gpt_write_backup(gpt) == -1)
sbin/gpt/gpt.c
1157
gpt_msg(gpt, "Partition %d %s", m->map_index, find->msg);
sbin/gpt/gpt.c
1163
gpt_change_hdr(gpt_t gpt, const struct gpt_find *find,
sbin/gpt/gpt.c
1168
if ((hdr = gpt_hdr(gpt)) == NULL)
sbin/gpt/gpt.c
1174
if (gpt_write_primary(gpt) == -1)
sbin/gpt/gpt.c
1177
hdr = gpt->tpg->map_data;
sbin/gpt/gpt.c
1181
if (gpt_write_backup(gpt) == -1)
sbin/gpt/gpt.c
1184
gpt_msg(gpt, "Header %s", find->msg);
sbin/gpt/gpt.c
1190
gpt_add_ais(gpt_t gpt, off_t *alignment, u_int *entry, off_t *size, int ch)
sbin/gpt/gpt.c
1194
if (gpt_human_get(gpt, alignment) == -1)
sbin/gpt/gpt.c
1198
if (gpt_uint_get(gpt, entry) == -1)
sbin/gpt/gpt.c
1202
if (gpt_size_get(gpt, size) == -1)
sbin/gpt/gpt.c
1206
gpt_warn(gpt, "Unknown alignment/index/size option `%c'", ch);
sbin/gpt/gpt.c
1212
gpt_check_ais(gpt_t gpt, off_t alignment, u_int entry, off_t size)
sbin/gpt/gpt.c
1215
gpt_warnx(gpt, "Entry not specified");
sbin/gpt/gpt.c
1218
if (alignment % gpt->secsz != 0) {
sbin/gpt/gpt.c
1219
gpt_warnx(gpt, "Alignment (%#jx) must be a multiple of "
sbin/gpt/gpt.c
1220
"sector size (%#x)", (uintmax_t)alignment, gpt->secsz);
sbin/gpt/gpt.c
1224
if (size % gpt->secsz != 0) {
sbin/gpt/gpt.c
1225
gpt_warnx(gpt, "Size (%#jx) must be a multiple of "
sbin/gpt/gpt.c
1226
"sector size (%#x)", (uintmax_t)size, gpt->secsz);
sbin/gpt/gpt.c
1230
return size / gpt->secsz;
sbin/gpt/gpt.c
1272
gpt_attr_get(gpt_t gpt, uint64_t *attributes)
sbin/gpt/gpt.c
1285
gpt_warnx(gpt, "Unrecognized attribute `%s'", ptr);
sbin/gpt/gpt.c
1367
gpt_attr_update(gpt_t gpt, u_int entry, uint64_t set, uint64_t clr)
sbin/gpt/gpt.c
1374
gpt_warnx(gpt, "Nothing to set");
sbin/gpt/gpt.c
1378
if ((hdr = gpt_hdr(gpt)) == NULL)
sbin/gpt/gpt.c
1382
gpt_warnx(gpt, "Index %u out of range (%u max)",
sbin/gpt/gpt.c
1388
ent = gpt_ent_primary(gpt, i);
sbin/gpt/gpt.c
1390
gpt_warnx(gpt, "Entry at index %u is unused", entry);
sbin/gpt/gpt.c
1397
if (gpt_write_primary(gpt) == -1)
sbin/gpt/gpt.c
1400
ent = gpt_ent_backup(gpt, i);
sbin/gpt/gpt.c
1404
if (gpt_write_backup(gpt) == -1)
sbin/gpt/gpt.c
1406
gpt_msg(gpt, "Partition %d attributes updated", entry);
sbin/gpt/gpt.c
1411
gpt_scaled_uint_get(gpt_t gpt, u_int *entry)
sbin/gpt/gpt.c
1420
gpt_warnx(gpt, "Value too big '%s'", optarg);
sbin/gpt/gpt.c
1430
gpt_warnx(gpt, "Bad number `%s'", optarg);
sbin/gpt/gpt.c
1437
gpt_uint_get(gpt_t gpt, u_int *entry)
sbin/gpt/gpt.c
1448
gpt_warn(gpt, "Bad number `%s'", optarg);
sbin/gpt/gpt.c
1455
gpt_uuid_get(gpt_t gpt, gpt_uuid_t *uuid)
sbin/gpt/gpt.c
1460
gpt_warnx(gpt, "Can't parse uuid/type `%s'", optarg);
sbin/gpt/gpt.c
1467
gpt_name_get(gpt_t gpt, void *v)
sbin/gpt/gpt.c
1474
gpt_warn(gpt, "Can't copy string");
sbin/gpt/gpt.c
1498
gpt_add_hdr(gpt_t gpt, int type, off_t loc)
sbin/gpt/gpt.c
1506
t = &gpt->gpt;
sbin/gpt/gpt.c
1510
t = &gpt->tpg;
sbin/gpt/gpt.c
1514
gpt_warnx(gpt, "Unknown GPT header type %d", type);
sbin/gpt/gpt.c
1518
if ((p = calloc(1, gpt->secsz)) == NULL) {
sbin/gpt/gpt.c
1519
gpt_warn(gpt, "Error allocating %s GPT header", msg);
sbin/gpt/gpt.c
1523
*t = map_add(gpt, loc, 1LL, type, p, 1);
sbin/gpt/gpt.c
1525
gpt_warn(gpt, "Error adding %s GPT header", msg);
sbin/gpt/gpt.c
246
gpt_read(gpt_t gpt, off_t lba, size_t count)
sbin/gpt/gpt.c
251
count *= gpt->secsz;
sbin/gpt/gpt.c
256
ofs = lba * gpt->secsz;
sbin/gpt/gpt.c
257
if (lseek(gpt->fd, ofs, SEEK_SET) == ofs &&
sbin/gpt/gpt.c
258
read(gpt->fd, buf, count) == (ssize_t)count)
sbin/gpt/gpt.c
266
gpt_write(gpt_t gpt, map_t map)
sbin/gpt/gpt.c
271
if (gpt->flags & GPT_READONLY) {
sbin/gpt/gpt.c
272
gpt_warnx(gpt, "Readonly mode, no changes made");
sbin/gpt/gpt.c
275
count = (size_t)(map->map_size * gpt->secsz);
sbin/gpt/gpt.c
276
ofs = map->map_start * gpt->secsz;
sbin/gpt/gpt.c
277
if (lseek(gpt->fd, ofs, SEEK_SET) != ofs ||
sbin/gpt/gpt.c
278
write(gpt->fd, map->map_data, count) != (ssize_t)count)
sbin/gpt/gpt.c
280
gpt->flags |= GPT_MODIFIED;
sbin/gpt/gpt.c
285
gpt_mbr(gpt_t gpt, off_t lba, unsigned int *next_index, off_t ext_offset)
sbin/gpt/gpt.c
292
mbr = gpt_read(gpt, lba, 1);
sbin/gpt/gpt.c
294
gpt_warn(gpt, "Read failed");
sbin/gpt/gpt.c
299
if (gpt->verbose)
sbin/gpt/gpt.c
300
gpt_msg(gpt,
sbin/gpt/gpt.c
317
else if ((gpt->flags & GPT_HYBRID) == 0)
sbin/gpt/gpt.c
322
gpt_warnx(gpt, "Suspicious PMBR at sector %ju",
sbin/gpt/gpt.c
324
else if (gpt->verbose > 1)
sbin/gpt/gpt.c
325
gpt_msg(gpt, "PMBR at sector %ju", (uintmax_t)lba);
sbin/gpt/gpt.c
326
p = map_add(gpt, lba, 1LL, MAP_TYPE_PMBR, mbr, 1);
sbin/gpt/gpt.c
330
gpt_warnx(gpt, "Suspicious MBR at sector %ju", (uintmax_t)lba);
sbin/gpt/gpt.c
331
else if (gpt->verbose > 1)
sbin/gpt/gpt.c
332
gpt_msg(gpt, "MBR at sector %ju", (uintmax_t)lba);
sbin/gpt/gpt.c
334
p = map_add(gpt, lba, 1LL, MAP_TYPE_MBR, mbr, 1);
sbin/gpt/gpt.c
347
gpt_warnx(gpt, "Malformed MBR at sector %ju",
sbin/gpt/gpt.c
351
if (gpt->verbose > 2)
sbin/gpt/gpt.c
352
gpt_msg(gpt, "MBR part: flag=%#x type=%d, start=%ju, "
sbin/gpt/gpt.c
358
m = map_add(gpt, start, size, MAP_TYPE_MBR_PART, p, 0);
sbin/gpt/gpt.c
365
if (gpt_mbr(gpt, start, next_index,
sbin/gpt/gpt.c
380
gpt_gpt(gpt_t gpt, off_t lba, int found)
sbin/gpt/gpt.c
391
hdr = gpt_read(gpt, lba, 1);
sbin/gpt/gpt.c
393
gpt_warn(gpt, "Read failed");
sbin/gpt/gpt.c
403
if (gpt->verbose)
sbin/gpt/gpt.c
404
gpt_msg(gpt, "Bad CRC in GPT header at sector %ju",
sbin/gpt/gpt.c
410
blocks = tblsz / gpt->secsz + ((tblsz % gpt->secsz) ? 1 : 0);
sbin/gpt/gpt.c
413
p = gpt_read(gpt, (off_t)le64toh((uint64_t)hdr->hdr_lba_table), blocks);
sbin/gpt/gpt.c
416
if (gpt->verbose)
sbin/gpt/gpt.c
417
gpt_msg(gpt,
sbin/gpt/gpt.c
426
if (gpt->verbose)
sbin/gpt/gpt.c
427
gpt_msg(gpt, "Bad CRC in GPT table at sector %ju",
sbin/gpt/gpt.c
432
if (gpt->verbose > 1)
sbin/gpt/gpt.c
433
gpt_msg(gpt, "%s GPT at sector %ju",
sbin/gpt/gpt.c
436
m = map_add(gpt, lba, 1, (lba == 1)
sbin/gpt/gpt.c
441
m = map_add(gpt, (off_t)le64toh((uint64_t)hdr->hdr_lba_table),
sbin/gpt/gpt.c
457
if (gpt->verbose > 2) {
sbin/gpt/gpt.c
461
gpt_msg(gpt, "GPT partition: type=%s, start=%ju, "
sbin/gpt/gpt.c
466
m = map_add(gpt, (off_t)le64toh((uint64_t)ent->ent_lba_start),
sbin/gpt/gpt.c
488
gpt_t gpt;
sbin/gpt/gpt.c
491
if ((gpt = calloc(1, sizeof(*gpt))) == NULL) {
sbin/gpt/gpt.c
496
gpt->flags = flags;
sbin/gpt/gpt.c
497
gpt->verbose = verbose;
sbin/gpt/gpt.c
498
gpt->mediasz = mediasz;
sbin/gpt/gpt.c
499
gpt->secsz = secsz;
sbin/gpt/gpt.c
500
gpt->timestamp = timestamp;
sbin/gpt/gpt.c
501
gpt->uuidgen = 0;
sbin/gpt/gpt.c
503
mode = (gpt->flags & GPT_READONLY) ? O_RDONLY : O_RDWR|O_EXCL;
sbin/gpt/gpt.c
505
gpt->fd = opendisk(dev, mode, gpt->device_name,
sbin/gpt/gpt.c
506
sizeof(gpt->device_name), 0);
sbin/gpt/gpt.c
507
if (gpt->fd == -1 && !(gpt->flags & GPT_READONLY) && errno == EACCES) {
sbin/gpt/gpt.c
508
gpt->fd = opendisk(dev, O_RDONLY, gpt->device_name,
sbin/gpt/gpt.c
509
sizeof(gpt->device_name), 0);
sbin/gpt/gpt.c
510
if (gpt->fd != -1) {
sbin/gpt/gpt.c
511
gpt_warnx(gpt,
sbin/gpt/gpt.c
513
gpt->flags |= GPT_READONLY;
sbin/gpt/gpt.c
516
if (gpt->fd == -1 && !(gpt->flags & GPT_READONLY) && mediasz != 0 &&
sbin/gpt/gpt.c
518
strlcpy(gpt->device_name, dev, sizeof(gpt->device_name));
sbin/gpt/gpt.c
520
gpt->fd = open(dev, O_RDWR|O_EXCL|O_CREAT, 0644);
sbin/gpt/gpt.c
522
if (gpt->fd == -1) {
sbin/gpt/gpt.c
523
strlcpy(gpt->device_name, dev, sizeof(gpt->device_name));
sbin/gpt/gpt.c
524
gpt_warn(gpt, "Cannot open");
sbin/gpt/gpt.c
528
if (fstat(gpt->fd, &gpt->sb) == -1) {
sbin/gpt/gpt.c
529
gpt_warn(gpt, "Cannot stat");
sbin/gpt/gpt.c
533
if ((gpt->sb.st_mode & S_IFMT) != S_IFREG) {
sbin/gpt/gpt.c
534
if ((gpt->sb.st_mode & S_IFMT) != S_IFCHR &&
sbin/gpt/gpt.c
535
(gpt->sb.st_mode & S_IFMT) != S_IFBLK) {
sbin/gpt/gpt.c
536
gpt_warnx(gpt, "Not a device or plain file");
sbin/gpt/gpt.c
539
if (gpt->secsz == 0) {
sbin/gpt/gpt.c
541
if (ioctl(gpt->fd, DIOCGSECTORSIZE, &gpt->secsz) == -1) {
sbin/gpt/gpt.c
542
gpt_warn(gpt, "Cannot get sector size");
sbin/gpt/gpt.c
546
if (gpt->secsz == 0) {
sbin/gpt/gpt.c
547
gpt_warnx(gpt, "Sector size can't be 0");
sbin/gpt/gpt.c
551
if (gpt->mediasz == 0) {
sbin/gpt/gpt.c
553
if (ioctl(gpt->fd, DIOCGMEDIASIZE, &gpt->mediasz) == -1) {
sbin/gpt/gpt.c
554
gpt_warn(gpt, "Cannot get media size");
sbin/gpt/gpt.c
558
if (gpt->mediasz == 0) {
sbin/gpt/gpt.c
559
gpt_warnx(gpt, "Media size can't be 0");
sbin/gpt/gpt.c
564
gpt->flags |= GPT_FILE;
sbin/gpt/gpt.c
565
if (gpt->secsz == 0)
sbin/gpt/gpt.c
566
gpt->secsz = 512; /* Fixed size for files. */
sbin/gpt/gpt.c
567
if (gpt->mediasz == 0) {
sbin/gpt/gpt.c
568
if (gpt->sb.st_size % gpt->secsz) {
sbin/gpt/gpt.c
569
gpt_warnx(gpt,
sbin/gpt/gpt.c
572
(intmax_t)gpt->sb.st_size, gpt->secsz);
sbin/gpt/gpt.c
575
gpt->mediasz = gpt->sb.st_size;
sbin/gpt/gpt.c
577
gpt->flags |= GPT_NOSYNC;
sbin/gpt/gpt.c
586
devsz = gpt->mediasz / gpt->secsz;
sbin/gpt/gpt.c
588
gpt_warnx(gpt, "Need 6 sectors, we have %ju",
sbin/gpt/gpt.c
593
if (gpt->verbose) {
sbin/gpt/gpt.c
594
gpt_msg(gpt, "mediasize=%ju; sectorsize=%u; blocks=%ju",
sbin/gpt/gpt.c
595
(uintmax_t)gpt->mediasz, gpt->secsz, (uintmax_t)devsz);
sbin/gpt/gpt.c
598
if (map_init(gpt, devsz) == -1)
sbin/gpt/gpt.c
601
if (gpt->flags & GPT_FILE && gpt->sb.st_size == 0) {
sbin/gpt/gpt.c
602
if (gpt->flags & GPT_READONLY) {
sbin/gpt/gpt.c
603
gpt_warnx(gpt, "Cannot operate on empty file with -r");
sbin/gpt/gpt.c
607
gpt_warnx(gpt, "Need -m mediasz to use an empty file");
sbin/gpt/gpt.c
610
if (truncate(gpt->device_name, gpt->mediasz) == -1) {
sbin/gpt/gpt.c
611
gpt_warn(gpt, "truncate(%ju) failed",
sbin/gpt/gpt.c
612
(uintmax_t)gpt->mediasz);
sbin/gpt/gpt.c
618
if (gpt_mbr(gpt, 0LL, &idx, 0U) == -1)
sbin/gpt/gpt.c
620
if ((found = gpt_gpt(gpt, 1LL, 1)) == -1)
sbin/gpt/gpt.c
632
map = map_find(gpt, MAP_TYPE_PRI_GPT_HDR);
sbin/gpt/gpt.c
636
if (gpt_gpt(gpt, (off_t)lba, found) == -1)
sbin/gpt/gpt.c
640
if (gpt_gpt(gpt, devsz - 1LL, found) == -1)
sbin/gpt/gpt.c
644
return gpt;
sbin/gpt/gpt.c
647
gpt_warn(gpt, "No GPT found");
sbin/gpt/gpt.c
649
if (gpt->fd != -1)
sbin/gpt/gpt.c
650
close(gpt->fd);
sbin/gpt/gpt.c
651
free(gpt);
sbin/gpt/gpt.c
656
gpt_close(gpt_t gpt)
sbin/gpt/gpt.c
659
if (gpt == NULL)
sbin/gpt/gpt.c
662
if (!(gpt->flags & GPT_MODIFIED) || !(gpt->flags & GPT_SYNC))
sbin/gpt/gpt.c
665
if (!(gpt->flags & GPT_NOSYNC)) {
sbin/gpt/gpt.c
668
if (ioctl(gpt->fd, DIOCMWEDGES, &bits) == -1)
sbin/gpt/gpt.c
669
gpt_warn(gpt, "Can't update wedge information");
sbin/gpt/gpt.c
674
if (!(gpt->flags & GPT_FILE))
sbin/gpt/gpt.c
675
gpt_msg(gpt, "You need to run \"dkctl %s makewedges\""
sbin/gpt/gpt.c
676
" for the changes to take effect\n", gpt->device_name);
sbin/gpt/gpt.c
679
close(gpt->fd);
sbin/gpt/gpt.c
684
gpt_vwarnx(gpt_t gpt, const char *fmt, va_list ap, const char *e)
sbin/gpt/gpt.c
686
if (gpt && (gpt->flags & GPT_QUIET))
sbin/gpt/gpt.c
689
if (gpt)
sbin/gpt/gpt.c
690
fprintf(stderr, "%s: ", gpt->device_name);
sbin/gpt/gpt.c
699
gpt_warnx(gpt_t gpt, const char *fmt, ...)
sbin/gpt/gpt.c
704
gpt_vwarnx(gpt, fmt, ap, NULL);
sbin/gpt/gpt.c
709
gpt_warn(gpt_t gpt, const char *fmt, ...)
sbin/gpt/gpt.c
714
gpt_vwarnx(gpt, fmt, ap, strerror(errno));
sbin/gpt/gpt.c
719
gpt_msg(gpt_t gpt, const char *fmt, ...)
sbin/gpt/gpt.c
723
if (gpt && (gpt->flags & GPT_QUIET))
sbin/gpt/gpt.c
725
if (gpt)
sbin/gpt/gpt.c
726
printf("%s: ", gpt->device_name);
sbin/gpt/gpt.c
734
gpt_hdr(gpt_t gpt)
sbin/gpt/gpt.c
736
gpt->gpt = map_find(gpt, MAP_TYPE_PRI_GPT_HDR);
sbin/gpt/gpt.c
737
if (gpt->gpt == NULL) {
sbin/gpt/gpt.c
738
gpt_warnx(gpt, "No primary GPT header; run create or recover");
sbin/gpt/gpt.c
742
gpt->tpg = map_find(gpt, MAP_TYPE_SEC_GPT_HDR);
sbin/gpt/gpt.c
743
if (gpt->tpg == NULL) {
sbin/gpt/gpt.c
744
gpt_warnx(gpt, "No secondary GPT header; run recover");
sbin/gpt/gpt.c
748
gpt->tbl = map_find(gpt, MAP_TYPE_PRI_GPT_TBL);
sbin/gpt/gpt.c
749
gpt->lbt = map_find(gpt, MAP_TYPE_SEC_GPT_TBL);
sbin/gpt/gpt.c
750
if (gpt->tbl == NULL || gpt->lbt == NULL) {
sbin/gpt/gpt.c
751
gpt_warnx(gpt, "Corrupt maps, run recover");
sbin/gpt/gpt.c
755
return gpt->gpt->map_data;
sbin/gpt/gpt.c
759
gpt_write_crc(gpt_t gpt, map_t map, map_t tbl)
sbin/gpt/gpt.c
768
if (gpt->flags & GPT_READONLY)
sbin/gpt/gpt.c
771
if (gpt_write(gpt, map) == -1) {
sbin/gpt/gpt.c
772
gpt_warn(gpt, "Error writing crc map");
sbin/gpt/gpt.c
776
if (gpt_write(gpt, tbl) == -1) {
sbin/gpt/gpt.c
777
gpt_warn(gpt, "Error writing crc table");
sbin/gpt/gpt.c
785
gpt_write_primary(gpt_t gpt)
sbin/gpt/gpt.c
787
if (gpt->flags & GPT_READONLY) {
sbin/gpt/gpt.c
788
gpt_warnx(gpt, "Readonly mode, device unchanged");
sbin/gpt/gpt.c
791
return gpt_write_crc(gpt, gpt->gpt, gpt->tbl);
sbin/gpt/gpt.c
796
gpt_write_backup(gpt_t gpt)
sbin/gpt/gpt.c
798
return gpt_write_crc(gpt, gpt->tpg, gpt->lbt);
sbin/gpt/gpt.c
830
gpt_ent_primary(gpt_t gpt, unsigned int i)
sbin/gpt/gpt.c
832
return gpt_ent(gpt->gpt, gpt->tbl, i);
sbin/gpt/gpt.c
836
gpt_ent_backup(gpt_t gpt, unsigned int i)
sbin/gpt/gpt.c
838
return gpt_ent(gpt->tpg, gpt->lbt, i);
sbin/gpt/gpt.c
874
gpt_last(gpt_t gpt)
sbin/gpt/gpt.c
876
return gpt->mediasz / gpt->secsz - 1LL;
sbin/gpt/gpt.c
880
gpt_create(gpt_t gpt, off_t last, u_int parts, int primary_only)
sbin/gpt/gpt.c
889
if (map_find(gpt, MAP_TYPE_PRI_GPT_HDR) != NULL ||
sbin/gpt/gpt.c
890
map_find(gpt, MAP_TYPE_SEC_GPT_HDR) != NULL) {
sbin/gpt/gpt.c
891
gpt_warnx(gpt, "Device already contains a GPT, "
sbin/gpt/gpt.c
897
blocks = map_free(gpt, 1LL, 0LL);
sbin/gpt/gpt.c
899
gpt_warnx(gpt, "No room for the GPT header");
sbin/gpt/gpt.c
904
if ((uint64_t)(blocks - 1) * gpt->secsz >
sbin/gpt/gpt.c
906
blocks = (off_t)((parts * sizeof(struct gpt_ent)) / gpt->secsz);
sbin/gpt/gpt.c
907
if ((parts * sizeof(struct gpt_ent)) % gpt->secsz)
sbin/gpt/gpt.c
921
map = map_last(gpt);
sbin/gpt/gpt.c
923
gpt_warnx(gpt, "No room for the backup header");
sbin/gpt/gpt.c
930
gpt_warnx(gpt, "No room for the GPT table");
sbin/gpt/gpt.c
936
if (gpt_add_hdr(gpt, MAP_TYPE_PRI_GPT_HDR, 1) == -1)
sbin/gpt/gpt.c
939
if ((p = calloc((size_t)blocks, gpt->secsz)) == NULL) {
sbin/gpt/gpt.c
940
gpt_warnx(gpt, "Can't allocate the primary GPT table");
sbin/gpt/gpt.c
943
if ((gpt->tbl = map_add(gpt, 2LL, blocks,
sbin/gpt/gpt.c
946
gpt_warnx(gpt, "Can't add the primary GPT table");
sbin/gpt/gpt.c
950
hdr = gpt->gpt->map_data;
sbin/gpt/gpt.c
959
hdr->hdr_lba_self = htole64((uint64_t)gpt->gpt->map_start);
sbin/gpt/gpt.c
961
hdr->hdr_lba_start = htole64((uint64_t)(gpt->tbl->map_start + blocks));
sbin/gpt/gpt.c
963
if (gpt_uuid_generate(gpt, hdr->hdr_guid) == -1)
sbin/gpt/gpt.c
965
hdr->hdr_lba_table = htole64((uint64_t)(gpt->tbl->map_start));
sbin/gpt/gpt.c
966
hdr->hdr_entries = htole32((uint32_t)(((uint64_t)blocks * gpt->secsz) /
sbin/gpt/gpt.c
972
ent = gpt->tbl->map_data;
sbin/gpt/gpt.c
974
if (gpt_uuid_generate(gpt, ent[i].ent_guid) == -1)
sbin/gpt/gpt.c
984
if (gpt_add_hdr(gpt, MAP_TYPE_SEC_GPT_HDR, last) == -1)
sbin/gpt/gpt.c
987
if ((gpt->lbt = map_add(gpt, last - blocks, blocks,
sbin/gpt/gpt.c
988
MAP_TYPE_SEC_GPT_TBL, gpt->tbl->map_data, 0)) == NULL) {
sbin/gpt/gpt.c
989
gpt_warnx(gpt, "Can't add the secondary GPT table");
sbin/gpt/gpt.c
993
memcpy(gpt->tpg->map_data, gpt->gpt->map_data, gpt->secsz);
sbin/gpt/gpt.c
995
hdr = gpt->tpg->map_data;
sbin/gpt/gpt.c
996
hdr->hdr_lba_self = htole64((uint64_t)gpt->tpg->map_start);
sbin/gpt/gpt.c
997
hdr->hdr_lba_alt = htole64((uint64_t)gpt->gpt->map_start);
sbin/gpt/gpt.c
998
hdr->hdr_lba_table = htole64((uint64_t)gpt->lbt->map_start);
sbin/gpt/gpt.h
65
typedef struct gpt *gpt_t;
sbin/gpt/gpt_private.h
44
struct map *tbl, *lbt, *gpt, *tpg;
sbin/gpt/gpt_uuid.c
285
gpt_uuid_random(gpt_t gpt, struct dce_uuid *u, size_t n)
sbin/gpt/gpt_uuid.c
294
gpt_warn(gpt, "Can't open `/dev/urandom'");
sbin/gpt/gpt_uuid.c
300
gpt_warn(gpt, "Can't read `/dev/urandom'");
sbin/gpt/gpt_uuid.c
304
gpt_warnx(gpt, "EOF from /dev/urandom");
sbin/gpt/gpt_uuid.c
308
gpt_warnx(gpt, "read too much: %zd > %zu", nread, n);
sbin/gpt/gpt_uuid.c
332
gpt_uuid_tstamp(gpt_t gpt, struct dce_uuid *u, size_t l __unused)
sbin/gpt/gpt_uuid.c
337
if (gpt->timestamp < -12219292800 ||
sbin/gpt/gpt_uuid.c
338
gpt->timestamp > 103072857660)
sbin/gpt/gpt_uuid.c
345
x = (uint64_t)(gpt->timestamp + 12219292800) * 10000000;
sbin/gpt/gpt_uuid.c
348
x += gpt->uuidgen++;
sbin/gpt/gpt_uuid.c
371
gpt_uuid_generate(gpt_t gpt, gpt_uuid_t t)
sbin/gpt/gpt_uuid.c
376
if (gpt && (gpt->flags & GPT_TIMESTAMP))
sbin/gpt/gpt_uuid.c
377
rv = gpt_uuid_tstamp(gpt, &u, sizeof(u));
sbin/gpt/gpt_uuid.c
379
rv = gpt_uuid_random(gpt, &u, sizeof(u));
sbin/gpt/gpt_uuid.h
107
struct gpt;
sbin/gpt/gpt_uuid.h
108
int gpt_uuid_generate(struct gpt *, gpt_uuid_t);
sbin/gpt/header.c
105
cmd_header(gpt_t gpt, int argc, char *argv[] __unused)
sbin/gpt/header.c
110
return header(gpt);
sbin/gpt/header.c
71
header(gpt_t gpt)
sbin/gpt/header.c
78
gpt_show_num("Media Size", (uintmax_t)gpt->mediasz);
sbin/gpt/header.c
79
printf("Sector Size: %u\n", gpt->secsz);
sbin/gpt/header.c
82
(uintmax_t)(gpt->mediasz / gpt->secsz));
sbin/gpt/header.c
86
map = map_find(gpt, MAP_TYPE_PRI_GPT_HDR);
sbin/gpt/label.c
100
gpt_warn(gpt, "Can't copy string");
sbin/gpt/label.c
105
gpt_warn(gpt, "Can't label from `%s'", fn);
sbin/gpt/label.c
124
cmd_label(gpt_t gpt, int argc, char *argv[])
sbin/gpt/label.c
137
if (name_from_file(gpt, &name) == -1)
sbin/gpt/label.c
141
if (gpt_name_get(gpt, &name) == -1)
sbin/gpt/label.c
150
if (gpt_add_find(gpt, &find, ch) == -1)
sbin/gpt/label.c
161
return gpt_change_ent(gpt, &find, change, name);
sbin/gpt/label.c
78
name_from_file(gpt_t gpt, void *v)
sbin/gpt/label.c
93
gpt_warn(gpt, "Can't open `%s'", fn);
sbin/gpt/main.c
152
gpt_t gpt;
sbin/gpt/main.c
293
gpt = gpt_open(dev, flags | cmdsw[i]->flags,
sbin/gpt/main.c
295
if (gpt == NULL)
sbin/gpt/main.c
297
if (sectormult && mediasz == (uintmax_t)gpt->mediasz) {
sbin/gpt/main.c
298
if (mediasz / 512 > UINTMAX_MAX / gpt->secsz)
sbin/gpt/main.c
300
gpt->mediasz /= 512; /* UNHACK */
sbin/gpt/main.c
301
gpt->mediasz *= gpt->secsz;
sbin/gpt/main.c
308
gpt = NULL;
sbin/gpt/main.c
311
if ((*cmdsw[i]->fptr)(gpt, argc, argv) == -1)
sbin/gpt/main.c
314
if (gpt)
sbin/gpt/main.c
315
gpt_close(gpt);
sbin/gpt/map.c
104
for (n = gpt->mediamap; n; n = n->map_next)
sbin/gpt/map.c
109
n = gpt->mediamap;
sbin/gpt/map.c
113
if (!(gpt->flags & GPT_QUIET))
sbin/gpt/map.c
114
gpt_warnx(gpt, "Can't find map");
sbin/gpt/map.c
119
if (!(gpt->flags & GPT_QUIET))
sbin/gpt/map.c
120
gpt_warnx(gpt, "map entry doesn't fit media: "
sbin/gpt/map.c
131
if (!(gpt->flags & GPT_QUIET))
sbin/gpt/map.c
132
gpt_warnx(gpt,
sbin/gpt/map.c
146
gpt_warnx(gpt, "bogus map current=%s new=%s",
sbin/gpt/map.c
166
gpt->mediamap = m;
sbin/gpt/map.c
192
gpt->mediamap = p;
sbin/gpt/map.c
198
gpt_warn(gpt, "Can't create map");
sbin/gpt/map.c
203
map_alloc(gpt_t gpt, off_t start, off_t size, off_t alignment)
sbin/gpt/map.c
215
for (m = gpt->mediamap; m != NULL; m = m->map_next) {
sbin/gpt/map.c
240
return map_add(gpt, m->map_start + delta, size,
sbin/gpt/map.c
249
map_resize(gpt_t gpt, map_t m, off_t size, off_t alignment)
sbin/gpt/map.c
257
gpt_warnx(gpt, "negative size or alignment");
sbin/gpt/map.c
264
gpt_warnx(gpt, "Can't delete, next map is not found");
sbin/gpt/map.c
268
gpt_warnx(gpt, "Can't delete, next map is in use");
sbin/gpt/map.c
287
gpt_warnx(gpt, "Can't coalesce %ju <= %ju",
sbin/gpt/map.c
315
gpt_warn(gpt, "Can't create map");
sbin/gpt/map.c
331
gpt_warnx(gpt, "Can't expand map, no space after it");
sbin/gpt/map.c
335
gpt_warnx(gpt,
sbin/gpt/map.c
340
gpt_warnx(gpt,
sbin/gpt/map.c
360
map_find(gpt_t gpt, int type)
sbin/gpt/map.c
364
m = gpt->mediamap;
sbin/gpt/map.c
371
map_first(gpt_t gpt)
sbin/gpt/map.c
373
return gpt->mediamap;
sbin/gpt/map.c
377
map_last(gpt_t gpt)
sbin/gpt/map.c
381
m = gpt->mediamap;
sbin/gpt/map.c
388
map_free(gpt_t gpt, off_t start, off_t size)
sbin/gpt/map.c
392
m = gpt->mediamap;
sbin/gpt/map.c
404
map_init(gpt_t gpt, off_t size)
sbin/gpt/map.c
408
gpt->mediamap = map_create(0LL, size, MAP_TYPE_UNUSED);
sbin/gpt/map.c
409
if (gpt->mediamap == NULL) {
sbin/gpt/map.c
410
gpt_warn(gpt, "Can't create map");
sbin/gpt/map.c
413
gpt->lbawidth = snprintf(buf, sizeof(buf), "%ju", (uintmax_t)size);
sbin/gpt/map.c
414
if (gpt->lbawidth < 5)
sbin/gpt/map.c
415
gpt->lbawidth = 5;
sbin/gpt/map.c
97
map_add(gpt_t gpt, off_t start, off_t size, int type, void *data, int alloc)
sbin/gpt/map.h
54
struct gpt;
sbin/gpt/map.h
56
struct map *map_add(struct gpt *, off_t, off_t, int, void *, int);
sbin/gpt/map.h
57
struct map *map_alloc(struct gpt *, off_t, off_t, off_t);
sbin/gpt/map.h
58
struct map *map_find(struct gpt *, int);
sbin/gpt/map.h
59
struct map *map_first(struct gpt *);
sbin/gpt/map.h
60
struct map *map_last(struct gpt *);
sbin/gpt/map.h
61
off_t map_resize(struct gpt *, struct map *, off_t, off_t);
sbin/gpt/map.h
62
off_t map_free(struct gpt *, off_t, off_t);
sbin/gpt/map.h
63
int map_init(struct gpt *, off_t);
sbin/gpt/migrate.c
125
freebsd_fstype_to_gpt_type(gpt_t gpt, u_int i __unused, u_int fstype)
sbin/gpt/migrate.c
139
gpt_warnx(gpt, "Unknown FreeBSD partition (%d)", fstype);
sbin/gpt/migrate.c
145
netbsd_fstype_to_gpt_type(gpt_t gpt, u_int i, u_int fstype)
sbin/gpt/migrate.c
167
gpt_warnx(gpt, "Partition %u unknown type %s, "
sbin/gpt/migrate.c
174
migrate_disklabel(gpt_t gpt, off_t start, struct gpt_ent *ent,
sbin/gpt/migrate.c
183
buf = gpt_read(gpt, start + LABELSECTOR, 1);
sbin/gpt/migrate.c
185
gpt_warn(gpt, "Error reading label");
sbin/gpt/migrate.c
192
gpt_warnx(gpt, "MBR partition without disklabel");
sbin/gpt/migrate.c
208
if (gpt->verbose > 1)
sbin/gpt/migrate.c
209
gpt_msg(gpt, "rawofs=%ju", (uintmax_t)rawofs);
sbin/gpt/migrate.c
210
rawofs /= gpt->secsz;
sbin/gpt/migrate.c
213
if (gpt->verbose > 1)
sbin/gpt/migrate.c
214
gpt_msg(gpt, "Disklabel partition %u type %s", i,
sbin/gpt/migrate.c
217
type = (*convert)(gpt, i, dl->d_partitions[i].p_fstype);
sbin/gpt/migrate.c
225
le32toh(dl->d_secsize)) / gpt->secsz;
sbin/gpt/migrate.c
239
migrate(gpt_t gpt, u_int parts, int force, int slice, int active)
sbin/gpt/migrate.c
241
off_t last = gpt_last(gpt);
sbin/gpt/migrate.c
249
map = map_find(gpt, MAP_TYPE_MBR);
sbin/gpt/migrate.c
251
gpt_warnx(gpt, "No MBR in disk to convert");
sbin/gpt/migrate.c
257
if (gpt_create(gpt, last, parts, 0) == -1)
sbin/gpt/migrate.c
260
ent = gpt->tbl->map_data;
sbin/gpt/migrate.c
269
if (gpt->verbose > 1)
sbin/gpt/migrate.c
270
gpt_msg(gpt, "MBR partition %u type %s", i,
sbin/gpt/migrate.c
281
ent = migrate_disklabel(gpt, start, ent,
sbin/gpt/migrate.c
287
ent = migrate_disklabel(gpt, start, ent,
sbin/gpt/migrate.c
314
gpt_warnx(gpt, "unknown partition type (%d)",
sbin/gpt/migrate.c
327
if (gpt_write_primary(gpt) == -1)
sbin/gpt/migrate.c
330
if (gpt_write_backup(gpt) == -1)
sbin/gpt/migrate.c
338
if (gpt_write(gpt, map) == -1) {
sbin/gpt/migrate.c
339
gpt_warn(gpt, "Cant write PMBR");
sbin/gpt/migrate.c
346
cmd_migrate(gpt_t gpt, int argc, char *argv[])
sbin/gpt/migrate.c
364
if (gpt_uint_get(gpt, &parts) == -1)
sbin/gpt/migrate.c
378
return migrate(gpt, parts, force, slice, active);
sbin/gpt/recover.c
102
memcpy((*dgpt)->map_data, sgpt->map_data, gpt->secsz);
sbin/gpt/recover.c
109
if (gpt_write(gpt, *dgpt) == -1) {
sbin/gpt/recover.c
110
gpt_warnx(gpt, "Writing %s GPT header failed", name);
sbin/gpt/recover.c
113
gpt_msg(gpt, "Recovered %s GPT header from %s", name, origname);
sbin/gpt/recover.c
118
recover_gpt_tbl(gpt_t gpt, int type, off_t start)
sbin/gpt/recover.c
125
dtbl = &gpt->tbl;
sbin/gpt/recover.c
126
stbl = gpt->lbt;
sbin/gpt/recover.c
131
dtbl = &gpt->lbt;
sbin/gpt/recover.c
132
stbl = gpt->tbl;
sbin/gpt/recover.c
137
gpt_warn(gpt, "Bad table type %d", type);
sbin/gpt/recover.c
141
*dtbl = map_add(gpt, start, stbl->map_size, type, stbl->map_data, 0);
sbin/gpt/recover.c
143
gpt_warnx(gpt, "Adding %s GPT table failed", name);
sbin/gpt/recover.c
146
if (gpt_write(gpt, *dtbl) == -1) {
sbin/gpt/recover.c
147
gpt_warnx(gpt, "Writing %s GPT table failed", name);
sbin/gpt/recover.c
150
gpt_msg(gpt, "Recovered %s GPT table from %s", name, origname);
sbin/gpt/recover.c
155
recover(gpt_t gpt)
sbin/gpt/recover.c
157
off_t last = gpt_last(gpt);
sbin/gpt/recover.c
161
if (map_find(gpt, MAP_TYPE_MBR) != NULL) {
sbin/gpt/recover.c
162
gpt_warnx(gpt, "Device contains an MBR");
sbin/gpt/recover.c
166
gpt->gpt = map_find(gpt, MAP_TYPE_PRI_GPT_HDR);
sbin/gpt/recover.c
167
gpt->tpg = map_find(gpt, MAP_TYPE_SEC_GPT_HDR);
sbin/gpt/recover.c
168
gpt->tbl = map_find(gpt, MAP_TYPE_PRI_GPT_TBL);
sbin/gpt/recover.c
169
gpt->lbt = map_find(gpt, MAP_TYPE_SEC_GPT_TBL);
sbin/gpt/recover.c
171
if (gpt->gpt == NULL && gpt->tpg == NULL) {
sbin/gpt/recover.c
172
gpt_warnx(gpt, "No primary or secondary GPT headers, "
sbin/gpt/recover.c
176
if (gpt->tbl == NULL && gpt->lbt == NULL) {
sbin/gpt/recover.c
177
gpt_warnx(gpt, "No primary or secondary GPT tables, "
sbin/gpt/recover.c
182
if (gpt->gpt != NULL &&
sbin/gpt/recover.c
183
le64toh(((struct gpt_hdr *)(gpt->gpt->map_data))->hdr_lba_alt) !=
sbin/gpt/recover.c
185
gpt_warnx(gpt, "Media size has changed, please use "
sbin/gpt/recover.c
190
if (gpt->tbl != NULL && gpt->lbt == NULL) {
sbin/gpt/recover.c
191
if (recover_gpt_tbl(gpt, MAP_TYPE_SEC_GPT_TBL,
sbin/gpt/recover.c
192
last - gpt->tbl->map_size) == -1)
sbin/gpt/recover.c
194
} else if (gpt->tbl == NULL && gpt->lbt != NULL) {
sbin/gpt/recover.c
195
if (recover_gpt_tbl(gpt, MAP_TYPE_PRI_GPT_TBL, 2LL) == -1)
sbin/gpt/recover.c
199
if (gpt->gpt != NULL && gpt->tpg == NULL) {
sbin/gpt/recover.c
200
if (recover_gpt_hdr(gpt, MAP_TYPE_SEC_GPT_HDR, last) == -1)
sbin/gpt/recover.c
202
} else if (gpt->gpt == NULL && gpt->tpg != NULL) {
sbin/gpt/recover.c
203
if (recover_gpt_hdr(gpt, MAP_TYPE_PRI_GPT_HDR, 1LL) == -1)
sbin/gpt/recover.c
210
if (map_find(gpt, MAP_TYPE_PMBR) == NULL) {
sbin/gpt/recover.c
211
if (map_free(gpt, 0LL, 1LL) == 0) {
sbin/gpt/recover.c
212
gpt_warnx(gpt, "No room for the PMBR");
sbin/gpt/recover.c
215
mbr = gpt_read(gpt, 0LL, 1);
sbin/gpt/recover.c
217
gpt_warnx(gpt, "Error reading MBR");
sbin/gpt/recover.c
224
map = map_add(gpt, 0LL, 1LL, MAP_TYPE_PMBR, mbr, 1);
sbin/gpt/recover.c
225
if (gpt_write(gpt, map) == -1) {
sbin/gpt/recover.c
226
gpt_warn(gpt, "Can't write PMBR");
sbin/gpt/recover.c
229
gpt_msg(gpt,
sbin/gpt/recover.c
236
cmd_recover(gpt_t gpt, int argc, char *argv[])
sbin/gpt/recover.c
241
return recover(gpt);
sbin/gpt/recover.c
71
recover_gpt_hdr(gpt_t gpt, int type, off_t last)
sbin/gpt/recover.c
77
if (gpt_add_hdr(gpt, type, last) == -1)
sbin/gpt/recover.c
82
dgpt = &gpt->gpt;
sbin/gpt/recover.c
83
dtbl = gpt->tbl;
sbin/gpt/recover.c
84
sgpt = gpt->tpg;
sbin/gpt/recover.c
85
stbl = gpt->lbt;
sbin/gpt/recover.c
90
dgpt = &gpt->tpg;
sbin/gpt/recover.c
91
dtbl = gpt->lbt;
sbin/gpt/recover.c
92
sgpt = gpt->gpt;
sbin/gpt/recover.c
93
stbl = gpt->tbl;
sbin/gpt/recover.c
98
gpt_warn(gpt, "Bad table type %d", type);
sbin/gpt/remove.c
76
cmd_remove(gpt_t gpt, int argc, char *argv[])
sbin/gpt/remove.c
86
if (gpt_add_find(gpt, &find, ch) == -1)
sbin/gpt/remove.c
92
return gpt_change_ent(gpt, &find, change, NULL);
sbin/gpt/resize.c
109
gpt_warnx(gpt,
sbin/gpt/resize.c
115
newsize = map_resize(gpt, map, sectors, alignsecs);
sbin/gpt/resize.c
122
gpt_warnx(gpt,
sbin/gpt/resize.c
130
if (gpt_write_primary(gpt) == -1)
sbin/gpt/resize.c
133
ent = gpt_ent(gpt->gpt, gpt->lbt, i);
sbin/gpt/resize.c
136
if (gpt_write_backup(gpt) == -1)
sbin/gpt/resize.c
139
gpt_msg(gpt, "Partition %d resized: %" PRIu64 " %" PRIu64, entry,
sbin/gpt/resize.c
146
cmd_resize(gpt_t gpt, int argc, char *argv[])
sbin/gpt/resize.c
156
gpt_human_get(gpt, &start);
sbin/gpt/resize.c
159
else if (gpt_add_ais(gpt, &alignment, &entry, &size, ch) == -1)
sbin/gpt/resize.c
167
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/resize.c
178
if ((sectors = gpt_check_ais(gpt, alignment, entry, size)) == -1)
sbin/gpt/resize.c
181
return resize(gpt, entry, alignment, sectors, size, quiet);
sbin/gpt/resize.c
72
resize(gpt_t gpt, u_int entry, off_t alignment, off_t sectors,
sbin/gpt/resize.c
82
if (gpt_hdr(gpt) == NULL)
sbin/gpt/resize.c
86
ent = gpt_ent_primary(gpt, i);
sbin/gpt/resize.c
88
gpt_warnx(gpt, "Entry at index %u is unused", entry);
sbin/gpt/resize.c
92
alignsecs = alignment / gpt->secsz;
sbin/gpt/resize.c
94
for (map = map_first(gpt); map != NULL; map = map->map_next) {
sbin/gpt/resize.c
99
gpt_warnx(gpt, "Could not find map entry corresponding "
sbin/gpt/resizedisk.c
105
mbrmap = map_find(gpt, MAP_TYPE_PMBR);
sbin/gpt/resizedisk.c
107
gpt_warnx(gpt, "No valid PMBR found");
sbin/gpt/resizedisk.c
112
gpt->gpt = map_find(gpt, MAP_TYPE_PRI_GPT_HDR);
sbin/gpt/resizedisk.c
113
if (gpt->gpt == NULL) {
sbin/gpt/resizedisk.c
114
gpt_warnx(gpt, "No primary GPT header; run create or recover");
sbin/gpt/resizedisk.c
118
gpt->tbl = map_find(gpt, MAP_TYPE_PRI_GPT_TBL);
sbin/gpt/resizedisk.c
119
if (gpt->tbl == NULL) {
sbin/gpt/resizedisk.c
120
gpt_warnx(gpt, "No primary GPT table; Run recover");
sbin/gpt/resizedisk.c
124
hdr = gpt->gpt->map_data;
sbin/gpt/resizedisk.c
127
gpt->tpg = map_find(gpt, MAP_TYPE_SEC_GPT_HDR);
sbin/gpt/resizedisk.c
128
gpt->lbt = map_find(gpt, MAP_TYPE_SEC_GPT_TBL);
sbin/gpt/resizedisk.c
130
if (gpt->tpg == NULL || gpt->lbt == NULL)
sbin/gpt/resizedisk.c
131
gpt_warnx(gpt, "No secondary GPT table");
sbin/gpt/resizedisk.c
133
gpt_size = gpt->tbl->map_size;
sbin/gpt/resizedisk.c
136
gpt_warnx(gpt, "Device is already the specified size");
sbin/gpt/resizedisk.c
142
gpt_warnx(gpt, "Device hasn't changed size");
sbin/gpt/resizedisk.c
143
if (gpt->tpg != NULL && gpt->lbt != NULL)
sbin/gpt/resizedisk.c
147
for (ent = gpt->tbl->map_data; ent <
sbin/gpt/resizedisk.c
148
(struct gpt_ent *)((char *)gpt->tbl->map_data +
sbin/gpt/resizedisk.c
157
gpt_warnx(gpt, "Not enough space at %" PRIu64
sbin/gpt/resizedisk.c
163
gpt_warnx(gpt, "Not enough space for new secondary GPT table");
sbin/gpt/resizedisk.c
174
if (newloc > 0 && gpt->tpg != NULL && gpt->lbt != NULL) {
sbin/gpt/resizedisk.c
176
gpt_msg(gpt, "Moving secondary GPT header");
sbin/gpt/resizedisk.c
177
gpt->tpg->map_start = newloc;
sbin/gpt/resizedisk.c
178
gpt->lbt->map_start = newloc - gpt_size;
sbin/gpt/resizedisk.c
181
gpt_msg(gpt, "Creating new secondary GPT header");
sbin/gpt/resizedisk.c
187
if (gpt_add_hdr(gpt, MAP_TYPE_SEC_GPT_HDR, newloc) == -1)
sbin/gpt/resizedisk.c
190
gpt->lbt = map_add(gpt, newloc - gpt_size, gpt_size,
sbin/gpt/resizedisk.c
191
MAP_TYPE_SEC_GPT_TBL, gpt->tbl->map_data, 0);
sbin/gpt/resizedisk.c
192
if (gpt->lbt == NULL) {
sbin/gpt/resizedisk.c
193
gpt_warn(gpt, "Error adding secondary GPT table");
sbin/gpt/resizedisk.c
196
memcpy(gpt->tpg->map_data, gpt->gpt->map_data, gpt->secsz);
sbin/gpt/resizedisk.c
199
hdr = gpt->gpt->map_data;
sbin/gpt/resizedisk.c
200
hdr->hdr_lba_alt = htole64((uint64_t)gpt->tpg->map_start);
sbin/gpt/resizedisk.c
202
hdr->hdr_lba_end = htole64((uint64_t)(gpt->lbt->map_start - 1));
sbin/gpt/resizedisk.c
204
htole32(crc32(gpt->gpt->map_data, GPT_HDR_SIZE));
sbin/gpt/resizedisk.c
205
gpt_write(gpt, gpt->gpt);
sbin/gpt/resizedisk.c
207
hdr = gpt->tpg->map_data;
sbin/gpt/resizedisk.c
208
hdr->hdr_lba_self = htole64((uint64_t)gpt->tpg->map_start);
sbin/gpt/resizedisk.c
209
hdr->hdr_lba_alt = htole64((uint64_t)gpt->gpt->map_start);
sbin/gpt/resizedisk.c
210
hdr->hdr_lba_end = htole64((uint64_t)(gpt->lbt->map_start - 1));
sbin/gpt/resizedisk.c
211
hdr->hdr_lba_table = htole64((uint64_t)gpt->lbt->map_start);
sbin/gpt/resizedisk.c
213
if (gpt_write_backup(gpt) == -1)
sbin/gpt/resizedisk.c
220
gpt_warnx(gpt, "No valid PMBR partition found");
sbin/gpt/resizedisk.c
230
if (gpt_write(gpt, mbrmap) == -1) {
sbin/gpt/resizedisk.c
231
gpt_warnx(gpt, "Error writing PMBR");
sbin/gpt/resizedisk.c
239
cmd_resizedisk(gpt_t gpt, int argc, char *argv[])
sbin/gpt/resizedisk.c
242
off_t sector, size = gpt->mediasz;
sbin/gpt/resizedisk.c
248
if (gpt_add_ais(gpt, NULL, NULL, &size, ch) == -1)
sbin/gpt/resizedisk.c
262
if ((sector = gpt_check_ais(gpt, 0, (u_int)~0, size)) == -1)
sbin/gpt/resizedisk.c
266
gpt_warnx(gpt, "New size %ju too small", (uintmax_t)size);
sbin/gpt/resizedisk.c
270
return resizedisk(gpt, sector, size, quiet);
sbin/gpt/resizedisk.c
85
resizedisk(gpt_t gpt, off_t sector, off_t size __unused, bool quiet)
sbin/gpt/resizedisk.c
94
last = gpt->mediasz / gpt->secsz - 1;
sbin/gpt/resizedisk.c
99
gpt_warnx(gpt, "specified number of sectors %jd"
sbin/gpt/restore.c
131
restore_ent(gpt_t gpt, prop_dictionary_t gpt_dict, void *secbuf,
sbin/gpt/restore.c
141
gpt_warnx(gpt, "%s: not able to convert to an UUID", s);
sbin/gpt/restore.c
146
gpt_warnx(gpt, "%s: not able to convert to an UUID", s);
sbin/gpt/restore.c
165
gpt_warnx(gpt, "Entity index out of bounds %u > %u\n",
sbin/gpt/restore.c
169
memcpy((char *)secbuf + gpt->secsz + ((i - 1) * sizeof(ent)),
sbin/gpt/restore.c
175
restore(gpt_t gpt, const char *infile, int force)
sbin/gpt/restore.c
193
last = gpt->mediasz / gpt->secsz - 1LL;
sbin/gpt/restore.c
195
if (map_find(gpt, MAP_TYPE_PRI_GPT_HDR) != NULL ||
sbin/gpt/restore.c
196
map_find(gpt, MAP_TYPE_SEC_GPT_HDR) != NULL) {
sbin/gpt/restore.c
198
gpt_warnx(gpt, "Device contains a GPT");
sbin/gpt/restore.c
202
map = map_find(gpt, MAP_TYPE_MBR);
sbin/gpt/restore.c
205
gpt_warnx(gpt, "Device contains an MBR");
sbin/gpt/restore.c
215
gpt_warnx(gpt, "Unable to read/parse backup file");
sbin/gpt/restore.c
221
if (!prop_number_equals_signed(propnum, gpt->secsz)) {
sbin/gpt/restore.c
222
gpt_warnx(gpt, "Sector size does not match backup");
sbin/gpt/restore.c
233
gpt_warnx(gpt, "backup is not revision 1.0");
sbin/gpt/restore.c
241
gpt_size = (u_int)(entries * sizeof(struct gpt_ent) / gpt->secsz);
sbin/gpt/restore.c
242
if (gpt_size * sizeof(struct gpt_ent) % gpt->secsz)
sbin/gpt/restore.c
247
gpt_warnx(gpt, "%s: not able to convert to an UUID", s);
sbin/gpt/restore.c
262
gpt_warnx(gpt, "%s: not able to convert to an UUID", s);
sbin/gpt/restore.c
272
gpt_warnx(gpt, "Backup GPT doesn't fit");
sbin/gpt/restore.c
279
if ((secbuf = calloc(gpt_size + 1, gpt->secsz)) == NULL) {
sbin/gpt/restore.c
280
gpt_warn(gpt, "not enough memory to create a sector buffer");
sbin/gpt/restore.c
284
if (lseek(gpt->fd, 0LL, SEEK_SET) == -1) {
sbin/gpt/restore.c
285
gpt_warn(gpt, "Can't seek to beginning");
sbin/gpt/restore.c
289
if (write(gpt->fd, secbuf, gpt->secsz) != (ssize_t)gpt->secsz) {
sbin/gpt/restore.c
290
gpt_warn(gpt, "Error writing");
sbin/gpt/restore.c
294
if (lseek(gpt->fd, (lastdata + 1) * gpt->secsz, SEEK_SET) == -1) {
sbin/gpt/restore.c
295
gpt_warn(gpt, "Can't seek to end");
sbin/gpt/restore.c
299
if (write(gpt->fd, secbuf, gpt->secsz) != (ssize_t)gpt->secsz) {
sbin/gpt/restore.c
300
gpt_warn(gpt, "Error writing");
sbin/gpt/restore.c
317
if (restore_mbr(gpt, mbr, mbr_dict, last) == -1)
sbin/gpt/restore.c
323
if (lseek(gpt->fd, 0LL, SEEK_SET) == -1 ||
sbin/gpt/restore.c
324
write(gpt->fd, mbr, gpt->secsz) != (ssize_t)gpt->secsz) {
sbin/gpt/restore.c
325
gpt_warn(gpt, "Unable to seek/write MBR");
sbin/gpt/restore.c
333
if (restore_ent(gpt, gpt_dict, secbuf, gpt_size, entries) == -1)
sbin/gpt/restore.c
338
size_t len = gpt_size * gpt->secsz;
sbin/gpt/restore.c
339
if (lseek(gpt->fd, 2 * gpt->secsz, SEEK_SET) == -1 ||
sbin/gpt/restore.c
340
write(gpt->fd, (char *)secbuf + gpt->secsz, len) != (ssize_t) len) {
sbin/gpt/restore.c
341
gpt_warn(gpt, "Unable to write primary GPT");
sbin/gpt/restore.c
345
if (lseek(gpt->fd, (lastdata + 1) * gpt->secsz, SEEK_SET) == -1 ||
sbin/gpt/restore.c
346
write(gpt->fd, (char *)secbuf + gpt->secsz, len) != (ssize_t) len) {
sbin/gpt/restore.c
347
gpt_warn(gpt, "Unable to write secondary GPT");
sbin/gpt/restore.c
351
memset(secbuf, 0, gpt->secsz);
sbin/gpt/restore.c
364
hdr->hdr_crc_table = htole32(crc32((char *)secbuf + gpt->secsz, len));
sbin/gpt/restore.c
366
if (lseek(gpt->fd, gpt->secsz, SEEK_SET) == -1 ||
sbin/gpt/restore.c
367
write(gpt->fd, hdr, gpt->secsz) != (ssize_t)gpt->secsz) {
sbin/gpt/restore.c
368
gpt_warn(gpt, "Unable to write primary header");
sbin/gpt/restore.c
377
if (lseek(gpt->fd, last * gpt->secsz, SEEK_SET) == -1 ||
sbin/gpt/restore.c
378
write(gpt->fd, hdr, gpt->secsz) != (ssize_t)gpt->secsz) {
sbin/gpt/restore.c
379
gpt_warn(gpt, "Unable to write secondary header");
sbin/gpt/restore.c
391
cmd_restore(gpt_t gpt, int argc, char *argv[])
sbin/gpt/restore.c
413
return restore(gpt, infile, force);
sbin/gpt/restore.c
74
gpt_warnx(gpt, "proplib failure"); \
sbin/gpt/restore.c
79
restore_mbr(gpt_t gpt, struct mbr *mbr, prop_dictionary_t mbr_dict, off_t last)
sbin/gpt/set.c
104
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/set.c
115
if (gpt == NULL || argc != optind || (attributes != 0 && clear != 0))
sbin/gpt/set.c
118
return gpt_attr_update(gpt, entry, attributes, clear);
sbin/gpt/set.c
70
cmd_set(gpt_t gpt, int argc, char *argv[])
sbin/gpt/set.c
81
if (gpt == NULL || gpt_attr_get(gpt, &attributes) == -1)
sbin/gpt/set.c
85
if (gpt == NULL || gpt_human_get(gpt, &start) == -1)
sbin/gpt/set.c
89
if (gpt == NULL || gpt_uint_get(gpt, &entry) == -1)
sbin/gpt/show.c
132
parsable_label(gpt_t gpt, struct gpt_ent *ent)
sbin/gpt/show.c
154
print_part_type(gpt_t gpt, int map_type, int flags, void *map_data,
sbin/gpt/show.c
223
b = parsable_label(gpt, ent);
sbin/gpt/show.c
260
cvt_size(gpt_t gpt, uintmax_t sz, int xshow, char *b, unsigned int bs)
sbin/gpt/show.c
273
num = sz * gpt->secsz;
sbin/gpt/show.c
280
printf(FMT, gpt->lbawidth, sz);
sbin/gpt/show.c
342
show(gpt_t gpt, int xshow)
sbin/gpt/show.c
346
unsigned int w1 = (unsigned int)gpt->lbawidth + 2;
sbin/gpt/show.c
360
m = map_first(gpt);
sbin/gpt/show.c
364
p = cvt_size(gpt, (uintmax_t)m->map_start,
sbin/gpt/show.c
368
p = cvt_size(gpt, (uintmax_t)m->map_size,
sbin/gpt/show.c
394
m = map_first(gpt);
sbin/gpt/show.c
399
print_part_type(gpt, m->map_type, xshow, m->map_data,
sbin/gpt/show.c
408
p = cvt_size(gpt, (uintmax_t)m->map_start, xshow, szbuf, w1+1);
sbin/gpt/show.c
412
p = cvt_size(gpt, (uintmax_t)m->map_size, xshow, szbuf, w2+1);
sbin/gpt/show.c
424
print_part_type(gpt, m->map_type, xshow, m->map_data,
sbin/gpt/show.c
434
gpt_t gpt)
sbin/gpt/show.c
447
p = cvt_size(gpt, (uintmax_t)num, xshow,
sbin/gpt/show.c
464
show_parsable(gpt_t gpt, map_t m, struct gpt_ent *ent, int xshow)
sbin/gpt/show.c
472
if (gpt->verbose)
sbin/gpt/show.c
477
print_part_type(gpt, m->map_type, 0, m->map_data,
sbin/gpt/show.c
508
p = parsable_label(gpt, ent);
sbin/gpt/show.c
518
show_one(gpt_t gpt, unsigned int entry, int xshow)
sbin/gpt/show.c
525
for (m = map_first(gpt); m != NULL; m = m->map_next)
sbin/gpt/show.c
529
gpt_warnx(gpt, "Could not find index %d", entry);
sbin/gpt/show.c
535
return show_parsable(gpt, m, ent, xshow);
sbin/gpt/show.c
538
gpt_show_sec_num("Start", gpt->secsz, m->map_start, xshow, gpt);
sbin/gpt/show.c
539
gpt_show_sec_num("Size", gpt->secsz, m->map_size, xshow, gpt);
sbin/gpt/show.c
566
show_all(gpt_t gpt, int xshow)
sbin/gpt/show.c
576
m = map_first(gpt);
sbin/gpt/show.c
581
show_parsable(gpt, m, ent, xshow);
sbin/gpt/show.c
588
printf(" %*s", gpt->lbawidth, "start");
sbin/gpt/show.c
589
printf(" %*s", gpt->lbawidth, "size");
sbin/gpt/show.c
592
width = 2 * ((unsigned)gpt->lbawidth + 2) + 7;
sbin/gpt/show.c
595
printf(FMT, gpt->lbawidth, (uintmax_t)m->map_start);
sbin/gpt/show.c
596
printf(FMT, gpt->lbawidth, (uintmax_t)m->map_size);
sbin/gpt/show.c
601
print_part_type(gpt, m->map_type, 0, m->map_data,
sbin/gpt/show.c
645
(int64_t)(m->map_size * gpt->secsz),
sbin/gpt/show.c
651
(intmax_t)m->map_size * gpt->secsz,
sbin/gpt/show.c
655
p = cvt_size(gpt, (uintmax_t)m->map_size, xshow,
sbin/gpt/show.c
678
pr += (unsigned)print_part_type(gpt, m->map_type, 0,
sbin/gpt/show.c
683
p = cvt_size(gpt, (uintmax_t)m->map_size,
sbin/gpt/show.c
746
cmd_show(gpt_t gpt, int argc, char *argv[])
sbin/gpt/show.c
766
if (gpt_uint_get(gpt, &entry) == -1)
sbin/gpt/show.c
770
if (gpt_human_get(gpt, &start) == -1)
sbin/gpt/show.c
795
if (gpt_uint_get(gpt, &out_width) < 0)
sbin/gpt/show.c
830
if ((map_find(gpt, MAP_TYPE_PRI_GPT_HDR) == NULL) &&
sbin/gpt/show.c
831
! (gpt->flags & GPT_QUIET) )
sbin/gpt/show.c
835
return show_all(gpt, xshow);
sbin/gpt/show.c
838
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/show.c
849
return entry > 0 ? show_one(gpt, entry, xshow) : show(gpt, xshow);
sbin/gpt/type.c
103
if (gpt == NULL || gpt_add_find(gpt, &find, ch) == -1)
sbin/gpt/type.c
111
if (gpt == NULL || gpt_uuid_is_nil(newtype) || argc != optind)
sbin/gpt/type.c
114
return gpt_change_ent(gpt, &find, change, &newtype);
sbin/gpt/type.c
77
cmd_type(gpt_t gpt, int argc, char *argv[])
sbin/gpt/type.c
94
if (gpt == NULL || gpt_uuid_get(gpt, &newtype) == -1)
sbin/gpt/unset.c
101
for (m = map_first(gpt); m != NULL; m = m->map_next) {
sbin/gpt/unset.c
112
if (gpt == NULL || argc != optind)
sbin/gpt/unset.c
115
return gpt_attr_update(gpt, entry, 0, attributes);
sbin/gpt/unset.c
70
cmd_unset(gpt_t gpt, int argc, char *argv[])
sbin/gpt/unset.c
81
if (gpt == NULL || gpt_attr_get(gpt, &attributes) == -1)
sbin/gpt/unset.c
85
if (gpt == NULL || gpt_human_get(gpt, &start) == -1)
sbin/gpt/unset.c
89
if (gpt == NULL || gpt_uint_get(gpt, &entry) == -1)
sbin/gpt/uuid.c
100
cmd_uuid(gpt_t gpt, int argc, char *argv[])
sbin/gpt/uuid.c
107
if (gpt == NULL)
sbin/gpt/uuid.c
114
ctx.gpt = gpt;
sbin/gpt/uuid.c
129
if (gpt_add_find(gpt, &find, ch) == -1)
sbin/gpt/uuid.c
140
rc = gpt_change_ent(gpt, &find, change_ent, &ctx);
sbin/gpt/uuid.c
145
return gpt_change_hdr(gpt, &find, change_hdr, &ctx);
sbin/gpt/uuid.c
69
gpt_t gpt;
sbin/gpt/uuid.c
83
gpt_uuid_generate(ctx->gpt, uuidstore);
sbin/gpt/uuid.c
95
gpt_uuid_generate(ctx->gpt, uuidstore);
sys/stand/efiboot/efiblock.c
399
bpart->gpt.fstype = fstype;
sys/stand/efiboot/efiblock.c
400
bpart->gpt.ent = *ent;
sys/stand/efiboot/efiblock.c
402
bpart->gpt.ent.ent_lba_start += RF_PROTECTED_SECTORS;
sys/stand/efiboot/efiblock.c
403
bpart->gpt.ent.ent_lba_end -= RF_PROTECTED_SECTORS;
sys/stand/efiboot/efiblock.c
530
fstype = bpart->gpt.fstype;
sys/stand/efiboot/efiblock.c
604
if (bpart->gpt.ent.ent_name[0] == 0x0000) {
sys/stand/efiboot/efiblock.c
606
print_guid(bpart->gpt.ent.ent_guid);
sys/stand/efiboot/efiblock.c
609
Print(L"\"%s\"", bpart->gpt.ent.ent_name);
sys/stand/efiboot/efiblock.c
613
size = (le64toh(bpart->gpt.ent.ent_lba_end) - le64toh(bpart->gpt.ent.ent_lba_start)) * bdev->bio->Media->BlockSize;
sys/stand/efiboot/efiblock.c
620
printf("%s\n", fstypenames[bpart->gpt.fstype]);
sys/stand/efiboot/efiblock.c
698
off = ((EFI_LBA)dblk + le64toh(bpart->gpt.ent.ent_lba_start)) * bdev->bio->Media->BlockSize;
sys/stand/efiboot/efiblock.h
69
struct efi_block_part_gpt gpt;
sys/stand/efiboot/efifdt.c
427
if (bpart->gpt.ent.ent_name[0] == 0x0000) {
sys/stand/efiboot/efifdt.c
432
int rv = ucs2_to_utf8(bpart->gpt.ent.ent_name, &label);