Lines Matching full:part
32 * partition := <part-id>
33 * <part-id> := <dev-id>,part_num
50 * <mtd-def> := <mtd-id>:<part-def>[,<part-def>...]
52 * <part-def> := <size>[@<offset>][<name>][<ro-flag>]
141 extern void jffs2_free_cache(struct part_info *part);
233 struct part_info *part; in index_partitions() local
252 part = mtd_part_info(current_mtd_dev, current_mtd_partnum); in index_partitions()
253 if (part) { in index_partitions()
254 env_set("mtddevname", part->name); in index_partitions()
256 debug("=> mtddevname %s\n", part->name); in index_partitions()
326 * @param part partition to validate
329 static int part_validate_eraseblock(struct mtdids *id, struct part_info *part) in part_validate_eraseblock() argument
339 part->sector_size = mtd->erasesize; in part_validate_eraseblock()
346 offset = part->offset; in part_validate_eraseblock()
350 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
354 size = part->size; in part_validate_eraseblock()
357 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
370 if (part->offset == start) in part_validate_eraseblock()
377 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
386 if ((part->offset + part->size) == start) in part_validate_eraseblock()
392 if ((part->offset + part->size) == start) in part_validate_eraseblock()
396 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
410 * part_validate_eraseblock() is called with the argument of part.
413 * @param part partition to validate
416 static int part_validate(struct mtdids *id, struct part_info *part) in part_validate() argument
418 if (part->size == SIZE_REMAINING) in part_validate()
419 part->size = id->size - part->offset; in part_validate()
421 if (part->offset > id->size) { in part_validate()
423 id->mtd_id, part->offset, id->size); in part_validate()
427 if ((part->offset + part->size) <= part->offset) { in part_validate()
429 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate()
433 if (part->offset + part->size > id->size) { in part_validate()
442 return part_validate_eraseblock(id, part); in part_validate()
449 * @param part partition to delete
452 static int part_del(struct mtd_device *dev, struct part_info *part) in part_del() argument
469 if (curr_pi == part) { in part_del()
472 } else if (part->offset <= curr_pi->offset) { in part_del()
479 list_del(&part->link); in part_del()
480 free(part); in part_del()
517 static int part_sort_add(struct mtd_device *dev, struct part_info *part) in part_sort_add() argument
523 part->dev = dev; in part_sort_add()
527 list_add(&part->link, &dev->parts); in part_sort_add()
533 new_pi = list_entry(&part->link, struct part_info, link); in part_sort_add()
552 list_add_tail(&part->link, entry); in part_sort_add()
567 list_add_tail(&part->link, &dev->parts); in part_sort_add()
577 * @param part partition to be added
580 static int part_add(struct mtd_device *dev, struct part_info *part) in part_add() argument
583 if (part_validate(dev->id, part) != 0) in part_add()
587 if (part_sort_add(dev, part) != 0) in part_add()
597 * @param partdef pointer to the partition definition string i.e. <part-def>
604 struct part_info *part; in part_parse() local
680 part = (struct part_info *)malloc(sizeof(struct part_info) + name_len); in part_parse()
681 if (!part) { in part_parse()
685 memset(part, 0, sizeof(struct part_info) + name_len); in part_parse()
686 part->size = size; in part_parse()
687 part->offset = offset; in part_parse()
688 part->mask_flags = mask_flags; in part_parse()
689 part->name = (char *)(part + 1); in part_parse()
693 strncpy(part->name, name, name_len - 1); in part_parse()
694 part->auto_name = 0; in part_parse()
697 snprintf(part->name, name_len, "0x%08llx@0x%08llx", size, offset); in part_parse()
698 part->auto_name = 1; in part_parse()
701 part->name[name_len - 1] = '\0'; in part_parse()
702 INIT_LIST_HEAD(&part->link); in part_parse()
705 part->name, part->size, in part_parse()
706 part->offset, part->mask_flags); in part_parse()
708 *retpart = part; in part_parse()
844 struct part_info *part; in device_parse() local
891 part = list_entry(dev->parts.prev, struct part_info, link); in device_parse()
892 offset = part->offset + part->size; in device_parse()
897 if ((part_parse(p, &p, &part) != 0) || (!part)) in device_parse()
901 if (part->offset == OFFSET_NOT_SPECIFIED) in device_parse()
902 part->offset = offset; in device_parse()
904 offset = part->offset; in device_parse()
907 if (part_validate(id, part) != 0) in device_parse()
910 offset += part->size; in device_parse()
913 list_add_tail(&part->link, &tmp_list); in device_parse()
953 part = list_entry(entry, struct part_info, link); in device_parse()
955 if (part_sort_add(dev, part) != 0) { in device_parse()
1089 struct part_info *part, *prev_part; in generate_mtdparts() local
1122 part = list_entry(pentry, struct part_info, link); in generate_mtdparts()
1123 size = part->size; in generate_mtdparts()
1124 offset = part->offset; in generate_mtdparts()
1140 (prev_part && ((prev_part->offset + prev_part->size) != part->offset))) { in generate_mtdparts()
1153 if(!part->auto_name) { in generate_mtdparts()
1154 len = strlen(part->name) + 2; in generate_mtdparts()
1159 memcpy(p, part->name, len - 2); in generate_mtdparts()
1166 if (part->mask_flags && MTD_WRITEABLE_CMD) { in generate_mtdparts()
1183 prev_part = part; in generate_mtdparts()
1232 * @param part the partition
1235 static uint64_t net_part_size(struct mtd_info *mtd, struct part_info *part) in net_part_size() argument
1240 return part->size; in net_part_size()
1242 for (i = 0; i < part->size; i += mtd->erasesize) { in net_part_size()
1243 if (!mtd->block_isbad(mtd, part->offset + i)) in net_part_size()
1254 struct part_info *part; local
1277 part = list_entry(pentry, struct part_info, link);
1278 net_size = net_part_size(mtd, part);
1279 size_note = part->size == net_size ? " " : " (!)";
1281 part_num, part->name, part->size,
1282 net_size, size_note, part->offset,
1283 part->mask_flags);
1291 part = list_entry(pentry, struct part_info, link);
1293 part_num, part->name, part->size,
1294 part->offset, part->mask_flags);
1310 struct part_info *part; local
1317 part = mtd_part_info(current_mtd_dev, current_mtd_partnum);
1318 if (part) {
1322 part->name, part->size, part->offset);
1348 * @param part pointer to requested partition (output)
1352 u8 *part_num, struct part_info **part) argument
1364 *part = list_entry(pentry, struct part_info, link);
1365 if (strcmp((*part)->name, id) == 0)
1373 *part = NULL;
1394 if ((*part = mtd_part_info(*dev, pnum)) == NULL) {
1415 struct part_info *part; local
1417 if (find_dev_and_part(id, &dev, &pnum, &part) == 0) {
1421 part->name, part->size, part->offset);
1423 if (part_del(dev, part) != 0)
1444 * @param part the partition
1448 static void spread_partition(struct mtd_info *mtd, struct part_info *part, argument
1454 mtd_get_len_incl_bad(mtd, part->offset, part->size, &net_size,
1463 mtd_get_len_incl_bad(mtd, part->offset + net_size,
1472 printf("truncated partition %s to %lld bytes\n", part->name,
1476 part->size = net_size + padding_size;
1477 *next_offset = part->offset + part->size;
1491 struct part_info *part; local
1505 part = list_entry(pentry, struct part_info, link);
1510 part_num, part->name, part->size,
1511 part->offset);
1513 if (cur_offs > part->offset)
1514 part->offset = cur_offs;
1516 spread_partition(mtd, part, &cur_offs);
1879 struct part_info *part; local
1899 part = list_entry(entry, struct part_info, link);
1902 return part;
1927 struct part_info *part; local
1938 if (find_dev_and_part(argv[1], &dev, &pnum, &part) != 0)
2064 /* mtdparts del part-id */
2066 debug("del: part-id = %s\n", argv[2]);
2083 "part-id\n"
2084 " - change active partition (e.g. part-id = nand0,1)"
2093 "mtdparts del part-id\n"
2094 " - delete partition (e.g. part-id = nand0,1)\n"
2114 "partition := <part-id>\n"
2115 "<part-id> := <dev-id>,part_num\n\n"
2124 "<mtd-def> := <mtd-id>:<part-def>[,<part-def>...]\n"
2126 "<part-def> := <size>[@<offset>][<name>][<ro-flag>]\n"