Lines Matching full:part

31  * partition  := <part-id>
32 * <part-id> := <dev-id>,part_num
49 * <mtd-def> := <mtd-id>:<part-def>[,<part-def>...]
51 * <part-def> := <size>[@<offset>][<name>][<ro-flag>]
140 extern void jffs2_free_cache(struct part_info *part);
232 struct part_info *part; in index_partitions() local
251 part = mtd_part_info(current_mtd_dev, current_mtd_partnum); in index_partitions()
252 if (part) { in index_partitions()
253 env_set("mtddevname", part->name); in index_partitions()
255 debug("=> mtddevname %s\n", part->name); in index_partitions()
325 * @param part partition to validate
328 static int part_validate_eraseblock(struct mtdids *id, struct part_info *part) in part_validate_eraseblock() argument
338 part->sector_size = mtd->erasesize; in part_validate_eraseblock()
345 offset = part->offset; in part_validate_eraseblock()
349 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
353 size = part->size; in part_validate_eraseblock()
356 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
369 if (part->offset == start) in part_validate_eraseblock()
376 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
385 if ((part->offset + part->size) == start) in part_validate_eraseblock()
391 if ((part->offset + part->size) == start) in part_validate_eraseblock()
395 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate_eraseblock()
409 * part_validate_eraseblock() is called with the argument of part.
412 * @param part partition to validate
415 static int part_validate(struct mtdids *id, struct part_info *part) in part_validate() argument
417 if (part->size == SIZE_REMAINING) in part_validate()
418 part->size = id->size - part->offset; in part_validate()
420 if (part->offset > id->size) { in part_validate()
422 id->mtd_id, part->offset, id->size); in part_validate()
426 if ((part->offset + part->size) <= part->offset) { in part_validate()
428 MTD_DEV_TYPE(id->type), id->num, part->name); in part_validate()
432 if (part->offset + part->size > id->size) { in part_validate()
441 return part_validate_eraseblock(id, part); in part_validate()
448 * @param part partition to delete
451 static int part_del(struct mtd_device *dev, struct part_info *part) in part_del() argument
468 if (curr_pi == part) { in part_del()
471 } else if (part->offset <= curr_pi->offset) { in part_del()
478 list_del(&part->link); in part_del()
479 free(part); in part_del()
516 static int part_sort_add(struct mtd_device *dev, struct part_info *part) in part_sort_add() argument
522 part->dev = dev; in part_sort_add()
526 list_add(&part->link, &dev->parts); in part_sort_add()
532 new_pi = list_entry(&part->link, struct part_info, link); in part_sort_add()
551 list_add_tail(&part->link, entry); in part_sort_add()
566 list_add_tail(&part->link, &dev->parts); in part_sort_add()
576 * @param part partition to be added
579 static int part_add(struct mtd_device *dev, struct part_info *part) in part_add() argument
582 if (part_validate(dev->id, part) != 0) in part_add()
586 if (part_sort_add(dev, part) != 0) in part_add()
596 * @param partdef pointer to the partition definition string i.e. <part-def>
603 struct part_info *part; in part_parse() local
679 part = (struct part_info *)malloc(sizeof(struct part_info) + name_len); in part_parse()
680 if (!part) { in part_parse()
684 memset(part, 0, sizeof(struct part_info) + name_len); in part_parse()
685 part->size = size; in part_parse()
686 part->offset = offset; in part_parse()
687 part->mask_flags = mask_flags; in part_parse()
688 part->name = (char *)(part + 1); in part_parse()
692 strncpy(part->name, name, name_len - 1); in part_parse()
693 part->auto_name = 0; in part_parse()
696 snprintf(part->name, name_len, "0x%08llx@0x%08llx", size, offset); in part_parse()
697 part->auto_name = 1; in part_parse()
700 part->name[name_len - 1] = '\0'; in part_parse()
701 INIT_LIST_HEAD(&part->link); in part_parse()
704 part->name, part->size, in part_parse()
705 part->offset, part->mask_flags); in part_parse()
707 *retpart = part; in part_parse()
843 struct part_info *part; in device_parse() local
890 part = list_entry(dev->parts.prev, struct part_info, link); in device_parse()
891 offset = part->offset + part->size; in device_parse()
896 if ((part_parse(p, &p, &part) != 0) || (!part)) in device_parse()
900 if (part->offset == OFFSET_NOT_SPECIFIED) in device_parse()
901 part->offset = offset; in device_parse()
903 offset = part->offset; in device_parse()
906 if (part_validate(id, part) != 0) in device_parse()
909 offset += part->size; in device_parse()
912 list_add_tail(&part->link, &tmp_list); in device_parse()
952 part = list_entry(entry, struct part_info, link); in device_parse()
954 if (part_sort_add(dev, part) != 0) { in device_parse()
1088 struct part_info *part, *prev_part; in generate_mtdparts() local
1118 part = list_entry(pentry, struct part_info, link); in generate_mtdparts()
1119 size = part->size; in generate_mtdparts()
1120 offset = part->offset; in generate_mtdparts()
1136 (prev_part && ((prev_part->offset + prev_part->size) != part->offset))) { in generate_mtdparts()
1149 if(!part->auto_name) { in generate_mtdparts()
1150 len = strlen(part->name) + 2; in generate_mtdparts()
1155 memcpy(p, part->name, len - 2); in generate_mtdparts()
1162 if (part->mask_flags && MTD_WRITEABLE_CMD) { in generate_mtdparts()
1179 prev_part = part; in generate_mtdparts()
1228 * @param part the partition
1231 static uint64_t net_part_size(struct mtd_info *mtd, struct part_info *part) in net_part_size() argument
1236 return part->size; in net_part_size()
1238 for (i = 0; i < part->size; i += mtd->erasesize) { in net_part_size()
1239 if (!mtd->block_isbad(mtd, part->offset + i)) in net_part_size()
1250 struct part_info *part; local
1273 part = list_entry(pentry, struct part_info, link);
1274 net_size = net_part_size(mtd, part);
1275 size_note = part->size == net_size ? " " : " (!)";
1277 part_num, part->name, part->size,
1278 net_size, size_note, part->offset,
1279 part->mask_flags);
1287 part = list_entry(pentry, struct part_info, link);
1289 part_num, part->name, part->size,
1290 part->offset, part->mask_flags);
1306 struct part_info *part; local
1313 part = mtd_part_info(current_mtd_dev, current_mtd_partnum);
1314 if (part) {
1318 part->name, part->size, part->offset);
1344 * @param part pointer to requested partition (output)
1348 u8 *part_num, struct part_info **part) argument
1360 *part = list_entry(pentry, struct part_info, link);
1361 if (strcmp((*part)->name, id) == 0)
1369 *part = NULL;
1390 if ((*part = mtd_part_info(*dev, pnum)) == NULL) {
1411 struct part_info *part; local
1413 if (find_dev_and_part(id, &dev, &pnum, &part) == 0) {
1417 part->name, part->size, part->offset);
1419 if (part_del(dev, part) != 0)
1440 * @param part the partition
1444 static void spread_partition(struct mtd_info *mtd, struct part_info *part, argument
1450 mtd_get_len_incl_bad(mtd, part->offset, part->size, &net_size,
1459 mtd_get_len_incl_bad(mtd, part->offset + net_size,
1468 printf("truncated partition %s to %lld bytes\n", part->name,
1472 part->size = net_size + padding_size;
1473 *next_offset = part->offset + part->size;
1487 struct part_info *part; local
1501 part = list_entry(pentry, struct part_info, link);
1506 part_num, part->name, part->size,
1507 part->offset);
1509 if (cur_offs > part->offset)
1510 part->offset = cur_offs;
1512 spread_partition(mtd, part, &cur_offs);
1873 struct part_info *part; local
1893 part = list_entry(entry, struct part_info, link);
1896 return part;
1921 struct part_info *part; local
1932 if (find_dev_and_part(argv[1], &dev, &pnum, &part) != 0)
2058 /* mtdparts del part-id */
2060 debug("del: part-id = %s\n", argv[2]);
2077 "part-id\n"
2078 " - change active partition (e.g. part-id = nand0,1)"
2087 "mtdparts del part-id\n"
2088 " - delete partition (e.g. part-id = nand0,1)\n"
2108 "partition := <part-id>\n"
2109 "<part-id> := <dev-id>,part_num\n\n"
2118 "<mtd-def> := <mtd-id>:<part-def>[,<part-def>...]\n"
2120 "<part-def> := <size>[@<offset>][<name>][<ro-flag>]\n"