Lines Matching refs:parts
51 struct disk_partitions *parts; /* the partitions we edit */
75 static menu_ent *outer_fill_part_menu_opts(const struct disk_partitions *parts, size_t *cnt);
131 desc = info->parts->pscheme->get_part_type(m->cursel-1);
140 msg_prompt_win(info->parts->pscheme->new_type_prompt,
145 desc = info->parts->pscheme->create_custom_part_type(
168 desc = info->parts->pscheme->get_part_type(opt-1);
188 popt_cnt = info->parts->pscheme->get_part_types_count() + 2;
218 !marg->parts->pscheme->get_part_info(marg->parts, marg->cur_id,
221 marg->cur.start = getpartoff(marg->parts, marg->cur.start);
222 max_size = marg->parts->pscheme->max_free_space_at(marg->parts,
238 !marg->parts->pscheme->get_part_info(marg->parts, marg->cur_id,
241 marg->cur.size = getpartsize(marg->parts, pinfo.start,
257 menu_opts_reload(menudesc *m, const struct disk_partitions *parts)
262 part_menu_opts = outer_fill_part_menu_opts(parts, &new_num);
276 if (!marg->parts->pscheme->delete_partition(marg->parts, marg->cur_id,
325 switch (marg->parts->pscheme->custom_attributes[attr_no].type) {
327 marg->parts->pscheme->custom_attribute_toggle(
328 marg->parts, marg->cur_id, attr_no);
332 marg->parts->pscheme->format_custom_attribute(
333 marg->parts, marg->cur_id, attr_no, &marg->cur,
336 marg->parts->pscheme->custom_attributes[attr_no].label,
338 marg->parts->pscheme->custom_attribute_set_str(
339 marg->parts, marg->cur_id, attr_no, line);
370 fill_part_edit_menu_opts(struct disk_partitions *parts,
380 count = hdr_cnt + parts->pscheme->custom_attribute_count
397 for (i = 0; i < parts->pscheme->custom_attribute_count; i++) {
412 struct part_edit_info data = { .parts = pdata->av.arg,
420 opts = fill_part_edit_menu_opts(data.parts, true, ptn_edit_opts,
425 if (data.cur_id < data.parts->num_part)
426 data.parts->pscheme->get_part_info(data.parts, data.cur_id,
443 if (!data.cancelled && data.cur_id < data.parts->num_part)
444 if (!data.parts->pscheme->set_part_info(data.parts,
449 menu_opts_reload(m, data.parts);
450 m->cursel = data.parts->num_part > 0 ? 0 : 2;
462 struct disk_partitions *parts = pdata->av.arg;
475 if (!select_partitions(&selected, parts))
489 data.usage.parts = parts;
492 if (parts->num_part > 0) {
494 num_men = parts->num_part+1;
516 align = parts->pscheme->get_part_alignment(parts);
520 if (!parts->pscheme->get_part_info(parts, cid, &sinfo))
533 csrc = selected.selection[s].parts;
536 if (!parts->pscheme->adapt_foreign_part_info(
537 parts, &cinfo, csrc->pscheme, &sinfo))
539 size_t cnt = parts->pscheme->get_free_spaces(
540 parts, &space, 1, cinfo.size-align, align,
545 cid = parts->pscheme->add_partition(
546 parts, &cinfo, NULL);
550 parts->pscheme->get_part_info(parts, cid, &cinfo);
555 menu_opts_reload(menu, parts);
556 menu->cursel = parts->num_part+1;
557 if (parts->num_part == 0)
571 struct part_edit_info data = { .parts = pdata->av.arg,
580 opts = fill_part_edit_menu_opts(data.parts, false, ptn_add_opts,
585 ptn_alignment = data.parts->pscheme->get_part_alignment(data.parts);
589 data.cur.nat_type = data.parts->pscheme->
591 if (data.parts->pscheme->get_free_spaces(data.parts, &space, 1,
614 data.parts->pscheme->add_partition(data.parts, &data.cur, &err)
618 menu_opts_reload(m, data.parts);
619 m->cursel = data.parts->num_part+1;
620 if (data.parts->num_part == 0)
651 n < marg->parts->pscheme->custom_attribute_count; n++) {
653 marg->parts->pscheme->custom_attributes[n].label));
662 marg->parts->pscheme->format_custom_attribute(
663 marg->parts, marg->cur_id, attr_no, &marg->cur,
667 marg->parts->pscheme->custom_attributes[attr_no].label),
716 || marg->parts->pscheme->part_type_can_change == NULL
717 || marg->parts->pscheme->part_type_can_change(
718 marg->parts, marg->cur_id);
741 marg->parts->pscheme->custom_attribute_count; attr_no++) {
743 marg->parts->pscheme->custom_attribute_writable(
744 marg->parts, marg->cur_id, attr_no);
753 struct disk_partitions *parts = pdata->av.arg;
765 if (pno >= parts->num_part ||
766 !parts->pscheme->get_part_info(parts, pno, &info)) {
785 if (parts->pscheme->get_part_attr_str != NULL)
786 parts->pscheme->get_part_attr_str(parts, pno, astr,
795 for (size_t col = 0; col < parts->pscheme->edit_columns_count; col++) {
796 if (parts->pscheme->format_partition_table_str(parts, pno,
804 x += parts->pscheme->edit_columns[col].width + 1;
819 outer_fill_part_menu_opts(const struct disk_partitions *parts, size_t *cnt)
826 may_add = parts->pscheme->can_add_partition(parts);
827 num_opts = 3 + parts->num_part;
831 if (parts->num_part == 0)
842 for (op = opts, i = 0; i < parts->num_part && i < (num_opts-2);
849 if (parts->num_part == 0) {
899 struct disk_partitions *parts = pdata->av.arg;
906 parts->disk,
907 msg_string(parts->pscheme->name),
908 msg_string(parts->pscheme->short_name),
909 parts->pscheme->part_flag_desc ?
910 msg_string(parts->pscheme->part_flag_desc)
914 parts->disk_size / sizemult, multname);
916 parts->free_space / sizemult, multname);
917 args[0] = parts->disk;
935 for (size_t i = 0; i < parts->pscheme->edit_columns_count; i++) {
937 unsigned int w = parts->pscheme->edit_columns[i].width;
939 msg_string(parts->pscheme->edit_columns[i].title));
963 parts_use_wholedisk(struct disk_partitions *parts,
972 parts->pscheme->delete_all_partitions(parts);
973 align = parts->pscheme->get_part_alignment(parts);
979 if (parts->pscheme->get_free_spaces(parts, &space,
984 info.nat_type = parts->pscheme->
987 if (parts->pscheme->add_partition(parts, &info, NULL)
993 if (parts->pscheme->get_free_spaces(parts, &space, 1, 3*align,
1001 if (parts->pscheme->secondary_scheme != NULL)
1003 info.nat_type = parts->pscheme->get_generic_part_type(PT_root);
1004 nbsd = parts->pscheme->add_partition(parts, &info, NULL);
1009 if (!parts->pscheme->get_part_info(parts, nbsd, &info))
1012 if (parts->pscheme->secondary_scheme != NULL) {
1014 parts->pscheme->secondary_partitions(parts, info.start, true);
1049 ask_fullpart(struct disk_partitions *parts)
1058 args[0] = msg_string(pm->parts->pscheme->name);
1059 args[1] = msg_string(pm->parts->pscheme->short_name);
1067 if (parts->pscheme->guess_install_target != NULL &&
1068 parts->pscheme->guess_install_target(parts, &start, &size)) {
1113 verify_outer_parts(struct disk_partitions *parts, bool quiet)
1122 for (i = 0; i < parts->num_part; i++) {
1124 if (!parts->pscheme->get_part_info(parts, i, &info))
1145 if (!quiet || parts->pscheme->guess_install_target == NULL ||
1146 !parts->pscheme->guess_install_target(parts,
1150 msg_string(parts->pscheme->name),
1151 msg_string(parts->pscheme->short_name));
1154 msg_string(parts->pscheme->name),
1155 msg_string(parts->pscheme->short_name));
1157 return ask_reedit(parts);
1167 if (parts->pscheme->post_edit_verify)
1168 return parts->pscheme->post_edit_verify(parts, quiet);
1174 ask_outer_partsizes(struct disk_partitions *parts)
1184 part_menu_opts = outer_fill_part_menu_opts(parts, &num_opts);
1196 set_default_sizemult(parts->disk, MEG, parts->bytes_per_sector);
1200 data.av.arg = parts;
1208 j = verify_outer_parts(parts, false);
1223 clone_partition_data(parts,
1226 parts,
1246 edit_outer_parts(struct disk_partitions *parts)
1256 /* Make sure parts has been properly initialized */
1257 assert(parts && parts->pscheme);
1259 if (parts->pscheme->secondary_scheme == NULL)
1260 return 1; /* no outer parts */
1267 parts->pscheme->secondary_scheme;
1273 *prim_name = msg_string(parts->pscheme->name),
1274 *prim_short = msg_string(parts->pscheme->short_name),
1292 layout = ask_fullpart(parts);
1304 for (i = 0; i < parts->num_part; i++) {
1305 if (!parts->pscheme->get_part_info(parts, i, &info))
1328 if (!md_parts_use_wholedisk(parts)) {
1332 if (parts->pscheme->post_edit_verify) {
1334 parts->pscheme->post_edit_verify(parts, true) == 2;
1338 return ask_outer_partsizes(parts);
1340 return verify_outer_parts(parts, true) == 2;