Lines Matching refs:part
241 struct part *part;
251 part = calloc(1, sizeof(struct part));
252 if (part == NULL)
265 part->alias = malloc(len);
266 if (part->alias == NULL) {
270 strlcpy(part->alias, spec, len);
275 part->kind = PART_KIND_SIZE;
278 part->kind = PART_KIND_FILE;
281 part->kind = PART_KIND_PIPE;
289 part->contents = strdup(spec);
290 if (part->contents == NULL) {
295 spec = part->alias;
299 if (strlen(part->alias) == 0 || strlen(sep) == 0) {
303 part->label = strdup(sep);
304 if (part->label == NULL) {
310 part->index = nparts;
311 TAILQ_INSERT_TAIL(&partlist, part, link);
316 if (part->alias != NULL)
317 free(part->alias);
318 free(part);
404 struct part *part, *part2;
410 TAILQ_FOREACH(part, &partlist, link) {
411 start = part->block;
412 end = part->block + part->size;
414 part2 = TAILQ_NEXT(part, link);
439 struct part *part;
447 TAILQ_FOREACH(part, &partlist, link) {
448 error = scheme_check_part(part);
450 errc(EX_DATAERR, error, "partition %d", part->index+1);
455 TAILQ_FOREACH(part, &partlist, link) {
460 switch (part->kind) {
462 offset = part->contents;
480 part->block = scheme_metadata(SCHEME_META_PART_ABSOLUTE,
485 part->block = block;
490 "... ", part->index + 1, (long long)part->block);
493 switch (part->kind) {
495 fd = open(part->contents, O_RDONLY, 0);
503 fp = popen(part->contents, "r");
513 errc(EX_IOERR, error, "partition %d", part->index + 1);
514 part->size = (bytesize + secsz - 1) / secsz;
516 bytesize = part->size * secsz;
518 (long long)bytesize, (long long)part->size);
533 part->block + part->size);