Lines Matching refs:lp

300 fixlabel(struct disklabel *lp)
305 for (i = 0; i < lp->d_npartitions; i++) {
308 if (lp->d_partitions[i].p_size)
312 dp = &lp->d_partitions[0];
314 dp->p_size = lp->d_secperunit - dp->p_offset;
321 makelabel(const char *type, struct disklabel *lp)
331 *lp = *dp;
332 bzero(lp->d_packname, sizeof(lp->d_packname));
385 struct disklabel *lp = &lab;
393 lp->d_magic = DISKMAGIC;
394 lp->d_magic2 = DISKMAGIC;
395 lp->d_checksum = 0;
396 lp->d_checksum = dkcksum(lp);
403 lp);
551 display(FILE *f, const struct disklabel *lp)
556 if (lp == NULL)
557 lp = &lab;
561 if (lp->d_type < DKMAXTYPES)
562 fprintf(f, "type: %s\n", dktypenames[lp->d_type]);
564 fprintf(f, "type: %u\n", lp->d_type);
565 fprintf(f, "disk: %.*s\n", (int)sizeof(lp->d_typename),
566 lp->d_typename);
567 fprintf(f, "label: %.*s\n", (int)sizeof(lp->d_packname),
568 lp->d_packname);
570 if (lp->d_flags & D_REMOVABLE)
572 if (lp->d_flags & D_ECC)
574 if (lp->d_flags & D_BADSECT)
577 fprintf(f, "bytes/sector: %lu\n", (u_long)lp->d_secsize);
578 fprintf(f, "sectors/track: %lu\n", (u_long)lp->d_nsectors);
579 fprintf(f, "tracks/cylinder: %lu\n", (u_long)lp->d_ntracks);
580 fprintf(f, "sectors/cylinder: %lu\n", (u_long)lp->d_secpercyl);
581 fprintf(f, "cylinders: %lu\n", (u_long)lp->d_ncylinders);
582 fprintf(f, "sectors/unit: %lu\n", (u_long)lp->d_secperunit);
583 fprintf(f, "rpm: %u\n", lp->d_rpm);
584 fprintf(f, "interleave: %u\n", lp->d_interleave);
585 fprintf(f, "trackskew: %u\n", lp->d_trackskew);
586 fprintf(f, "cylinderskew: %u\n", lp->d_cylskew);
588 (u_long)lp->d_headswitch);
590 (u_long)lp->d_trkseek);
593 if (lp->d_drivedata[i])
598 fprintf(f, "%lu ", (u_long)lp->d_drivedata[j]);
601 fprintf(f, "%u partitions:\n", lp->d_npartitions);
604 pp = lp->d_partitions;
605 for (i = 0; i < lp->d_npartitions; i++, pp++) {
763 * and fill in lp.
766 getasciilabel(FILE *f, struct disklabel *lp)
776 makelabel("auto", lp);
780 lp->d_bbsize = BBSIZE; /* XXX */
781 lp->d_sbsize = 0; /* XXX */
802 lp->d_type = cpp - dktypenames;
815 lp->d_type = v;
834 lp->d_flags = v;
839 lp->d_drivedata[i++] = strtoul(cp, NULL, 10);
848 lp->d_npartitions = MAXPARTITIONS;
853 lp->d_npartitions = DEFPARTITIONS;
856 lp->d_npartitions = v;
862 strncpy(lp->d_typename, tp, sizeof (lp->d_typename));
866 strncpy(lp->d_packname, tp, sizeof (lp->d_packname));
877 lp->d_secsize = v;
892 lp->d_nsectors = v;
902 lp->d_secpercyl = v;
912 lp->d_ntracks = v;
922 lp->d_ncylinders = v;
932 lp->d_secperunit = v;
942 lp->d_rpm = v;
952 lp->d_interleave = v;
962 lp->d_trackskew = v;
972 lp->d_cylskew = v;
977 lp->d_headswitch = v;
982 lp->d_trkseek = v;
996 if (part >= lp->d_npartitions) {
999 lineno, 'a' + lp->d_npartitions - 1, cp);
1005 if (getasciipartspec(tp, lp, part, lineno) != 0) {
1010 errors += checklabel(lp);
1042 getasciipartspec(char *tp, struct disklabel *lp, int part, int lineno)
1049 pp = &lp->d_partitions[part];
1124 checklabel(struct disklabel *lp)
1136 if (lp == NULL)
1137 lp = &lab;
1141 if (lp->d_secsize == 0) {
1145 if (lp->d_nsectors == 0) {
1149 if (lp->d_ntracks == 0) {
1153 if (lp->d_ncylinders == 0) {
1157 if (lp->d_rpm == 0)
1159 if (lp->d_secpercyl == 0)
1160 lp->d_secpercyl = lp->d_nsectors * lp->d_ntracks;
1161 if (lp->d_secperunit == 0)
1162 lp->d_secperunit = lp->d_secpercyl * lp->d_ncylinders;
1163 if (lp->d_bbsize == 0) {
1166 } else if (lp->d_bbsize % lp->d_secsize)
1168 if (lp->d_npartitions > MAXPARTITIONS) {
1170 (u_long)lp->d_npartitions, MAXPARTITIONS);
1173 if (lp->d_npartitions < DEFPARTITIONS) {
1175 (u_long)lp->d_npartitions, DEFPARTITIONS);
1182 if (lp->d_secsize == 0)
1183 lp->d_secsize = vl->d_secsize;
1184 if (lp->d_nsectors == 0)
1185 lp->d_nsectors = vl->d_nsectors;
1186 if (lp->d_ntracks == 0)
1187 lp->d_ntracks = vl->d_ntracks;
1188 if (lp->d_ncylinders == 0)
1189 lp->d_ncylinders = vl->d_ncylinders;
1190 if (lp->d_rpm == 0)
1191 lp->d_rpm = vl->d_rpm;
1192 if (lp->d_interleave == 0)
1193 lp->d_interleave = vl->d_interleave;
1194 if (lp->d_secpercyl == 0)
1195 lp->d_secpercyl = vl->d_secpercyl;
1196 if (lp->d_secperunit == 0 ||
1197 lp->d_secperunit > vl->d_secperunit)
1198 lp->d_secperunit = vl->d_secperunit;
1199 if (lp->d_bbsize == 0)
1200 lp->d_bbsize = vl->d_bbsize;
1201 if (lp->d_npartitions < DEFPARTITIONS ||
1202 lp->d_npartitions > MAXPARTITIONS)
1203 lp->d_npartitions = vl->d_npartitions;
1212 for (i = 0; i < lp->d_npartitions; i++) {
1213 pp = &lp->d_partitions[i];
1217 pp->p_size = lp->d_secperunit;
1263 if (size % lp->d_secsize != 0)
1266 size /= lp->d_secsize;
1280 for (i = 0; i < lp->d_npartitions; i++) {
1281 pp = &lp->d_partitions[i];
1290 if (base_offset < lp->d_secperunit)
1291 free_space += lp->d_secperunit - base_offset;
1302 for (i = 0; i < lp->d_npartitions; i++) {
1303 pp = &lp->d_partitions[i];
1330 pp = &lp->d_partitions[i];
1340 current_offset = lp->d_secperunit;
1341 for (i = lp->d_npartitions - 1; i > hog_part; i--) {
1342 pp = &lp->d_partitions[i];
1359 lp->d_partitions[hog_part].p_size = 0;
1361 lp->d_partitions[hog_part].p_size = current_offset -
1363 total_size += lp->d_partitions[hog_part].p_size;
1370 for (i = 0; i < lp->d_npartitions; i++) {
1372 pp = &lp->d_partitions[i];
1408 for (i = 0; i < lp->d_npartitions; i++) {
1410 pp = &lp->d_partitions[i];
1415 if (pp->p_size % lp->d_secpercyl)
1418 if (pp->p_offset % lp->d_secpercyl)
1422 if (pp->p_offset > lp->d_secperunit) {
1427 if (pp->p_offset + pp->p_size > lp->d_secperunit) {
1438 if (pp->p_size != lp->d_secperunit)
1442 (pp->p_size != lp->d_secperunit)) {
1451 pp2 = &lp->d_partitions[j];
1466 for (; i < lp->d_npartitions; i++) {
1468 pp = &lp->d_partitions[i];