Lines Matching defs:partp
247 static void dos(struct dos_partition *partp);
266 struct dos_partition *partp;
352 partp = &mboot.parts[i];
354 if (partp->dp_start == 0 && partp->dp_size == 0)
357 printf("p %d 0x%02x %lu %lu\n", i + 1, partp->dp_typ,
358 (u_long)partp->dp_start, (u_long)partp->dp_size);
361 if (partp->dp_flag & 0x80)
373 partp = &mboot.parts[i];
374 if (partp->dp_start == 0 && partp->dp_size == 0)
377 (u_long) partp->dp_start,
378 (u_long) partp->dp_size, partp->dp_typ,
379 partp->dp_flag);
390 partp = &mboot.parts[0];
391 partp->dp_typ = DOSPTYP_386BSD;
392 partp->dp_flag = ACTIVE;
393 partp->dp_start = dos_sectors;
394 partp->dp_size = rounddown(disksecs, dos_cylsecs) -
396 dos(partp);
481 print_part(const struct dos_partition *partp)
485 if (!bcmp(partp, &mtpart, sizeof (struct dos_partition))) {
492 part_mb = partp->dp_size;
495 printf("sysid %d (%#04x),(%s)\n", partp->dp_typ, partp->dp_typ,
496 get_type(partp->dp_typ));
498 (u_long)partp->dp_start,
499 (u_long)partp->dp_size,
501 partp->dp_flag,
502 partp->dp_flag == ACTIVE ? " (active)" : "");
504 ,DPCYL(partp->dp_scyl, partp->dp_ssect)
505 ,partp->dp_shd
506 ,DPSECT(partp->dp_ssect)
507 ,DPCYL(partp->dp_ecyl, partp->dp_esect)
508 ,partp->dp_ehd
509 ,DPSECT(partp->dp_esect));
543 struct dos_partition *partp = &mboot.parts[0];
547 partp->dp_typ = DOSPTYP_386BSD;
548 partp->dp_flag = ACTIVE;
552 partp->dp_start = start;
553 partp->dp_size = rounddown(disksecs, dos_cylsecs) - start;
555 dos(partp);
561 struct dos_partition *partp = &mboot.parts[i - 1];
564 print_part(partp);
570 bzero(partp, sizeof (*partp));
574 print_part(partp);
579 Decimal("sysid (165=FreeBSD)", partp->dp_typ, tmp, 255);
580 Decimal("start", partp->dp_start, tmp, NO_DISK_SECTORS);
581 Decimal("size", partp->dp_size, tmp, NO_DISK_SECTORS);
582 if (!sanitize_partition(partp)) {
584 partp->dp_typ = 0;
590 tcyl = DPCYL(partp->dp_scyl,partp->dp_ssect);
591 thd = partp->dp_shd;
592 tsec = DPSECT(partp->dp_ssect);
596 partp->dp_scyl = DOSCYL(tcyl);
597 partp->dp_ssect = DOSSECT(tsec,tcyl);
598 partp->dp_shd = thd;
600 tcyl = DPCYL(partp->dp_ecyl,partp->dp_esect);
601 thd = partp->dp_ehd;
602 tsec = DPSECT(partp->dp_esect);
606 partp->dp_ecyl = DOSCYL(tcyl);
607 partp->dp_esect = DOSSECT(tsec,tcyl);
608 partp->dp_ehd = thd;
610 dos(partp);
612 print_part(partp);
633 struct dos_partition *partp = &mboot.parts[0];
638 if ((partp[i].dp_flag & ACTIVE) == 0)
663 partp[i].dp_flag = 0;
665 partp[active-1].dp_flag = ACTIVE;
699 dos(struct dos_partition *partp)
704 if (partp->dp_typ == 0 && partp->dp_start == 0 && partp->dp_size == 0) {
705 memcpy(partp, &mtpart, sizeof(*partp));
710 partp->dp_shd = partp->dp_start % dos_cylsecs / dos_sectors;
711 cy = partp->dp_start / dos_cylsecs;
712 sec = partp->dp_start % dos_sectors + 1;
713 partp->dp_scyl = DOSCYL(cy);
714 partp->dp_ssect = DOSSECT(sec, cy);
717 end = partp->dp_start + partp->dp_size - 1;
718 partp->dp_ehd = end % dos_cylsecs / dos_sectors;
721 partp->dp_ecyl = DOSCYL(cy);
722 partp->dp_esect = DOSSECT(sec, cy);
1136 struct dos_partition *partp;
1151 partp = &mboot.parts[partition - 1];
1152 bzero(partp, sizeof (*partp));
1153 partp->dp_typ = command->args[1].arg_val;
1157 partp->dp_start = dos_sectors;
1163 partp->dp_start = prev_partp->dp_start +
1166 if (partp->dp_start % dos_sectors != 0) {
1167 prev_head_boundary = rounddown(partp->dp_start,
1169 partp->dp_start = prev_head_boundary +
1173 partp->dp_start = str2sectors(command->args[2].arg_str);
1174 if (partp->dp_start == NO_DISK_SECTORS)
1178 partp->dp_start = command->args[2].arg_val;
1182 partp->dp_size = rounddown(disksecs, dos_cylsecs) -
1183 partp->dp_start;
1185 partp->dp_size = str2sectors(command->args[3].arg_str);
1186 if (partp->dp_size == NO_DISK_SECTORS)
1189 prev_cyl_boundary = rounddown(partp->dp_start + partp->dp_size,
1191 if (prev_cyl_boundary > partp->dp_start)
1192 partp->dp_size = prev_cyl_boundary - partp->dp_start;
1194 partp->dp_size = command->args[3].arg_val;
1196 max_end = partp->dp_start + partp->dp_size;
1198 if (partp->dp_typ == 0) {
1205 bzero(partp, sizeof(*partp));
1213 if (partp->dp_start % dos_sectors != 0) {
1214 prev_head_boundary = rounddown(partp->dp_start, dos_sectors);
1229 partition, (u_int)partp->dp_start,
1231 partp->dp_start = prev_head_boundary + dos_sectors;
1238 prev_cyl_boundary = rounddown(partp->dp_start + partp->dp_size,
1240 if (prev_cyl_boundary > partp->dp_start)
1241 adj_size = prev_cyl_boundary - partp->dp_start;
1248 if (adj_size != partp->dp_size) {
1252 partition, (u_int)partp->dp_size, (u_int)adj_size);
1253 partp->dp_size = adj_size;
1255 if (partp->dp_size == 0) {
1261 dos(partp);
1273 struct dos_partition *partp;
1292 partp = mboot.parts;
1294 partp[i].dp_flag = 0;
1295 partp[partition-1].dp_flag = ACTIVE;
1384 struct dos_partition *partp;
1388 partp = &mboot.parts[i];
1389 bzero(partp, sizeof(*partp));
1394 sanitize_partition(struct dos_partition *partp)
1399 start = partp->dp_start;
1400 size = partp->dp_size;
1404 if (start == 0 && partp->dp_typ == 0)
1456 /* Finally, commit any changes to partp and return. */
1457 if (start != partp->dp_start) {
1460 partp->dp_start = start;
1462 if (size != partp->dp_size) {
1464 partp->dp_size = size;