Lines Matching refs:lp
75 parse_nextstep_label(struct next68k_disklabel *ondisk, struct disklabel *lp,
92 lp->d_magic = lp->d_magic2 = DISKMAGIC;
93 lp->d_type = DKTYPE_SCSI;
94 lp->d_subtype = 0;
95 if (sizeof(lp->d_typename) > sizeof(ondisk->cd_name))
96 lp->d_typename[sizeof (ondisk->cd_name)] = '\0';
97 memcpy(lp->d_typename, ondisk->cd_name,
98 uimin(sizeof (lp->d_typename), sizeof(ondisk->cd_name)));
99 if (sizeof(lp->d_packname) > sizeof(ondisk->cd_label))
100 lp->d_packname[sizeof (ondisk->cd_label)] = '\0';
101 memcpy(lp->d_packname, ondisk->cd_label,
102 uimin(sizeof(lp->d_packname), sizeof(ondisk->cd_label)));
103 if (lp->d_secsize == 0)
104 lp->d_secsize = ondisk->cd_secsize;
105 KASSERT(ondisk->cd_secsize >= lp->d_secsize);
106 lp->d_nsectors = ondisk->cd_nsectors;
107 lp->d_ntracks = ondisk->cd_ntracks;
108 lp->d_ncylinders = ondisk->cd_ncylinders;
110 lp->d_rpm = ondisk->cd_rpm;
111 lp->d_flags = ondisk->cd_flags;
113 lp->d_bbsize = NEXT68K_LABEL_SIZE;
114 lp->d_sbsize = SBLOCKSIZE;
116 lp->d_npartitions = nbp = 0;
119 lp->d_partitions[nbp].p_size =
121 (ondisk->cd_secsize / lp->d_secsize);
122 lp->d_partitions[nbp].p_offset =
125 (ondisk->cd_secsize / lp->d_secsize);
126 lp->d_partitions[nbp].p_fsize =
129 lp->d_partitions[nbp].p_fstype = FS_BSDFFS;
139 lp->d_partitions[nbp].p_fstype = t;
142 lp->d_partitions[nbp].p_frag =
146 lp->d_partitions[nbp].p_frag = 0;
147 lp->d_partitions[nbp].p_cpg =
149 lp->d_npartitions = nbp + 1;
158 if (lp->d_npartitions <= RAW_PART)
159 lp->d_npartitions = RAW_PART + 1;
161 lp->d_checksum = 0;
162 lp->d_checksum = dkcksum(lp);
168 build_nextstep_label(struct next68k_disklabel *ondisk, struct disklabel *lp)
181 ondisk->cd_secsize = lp->d_secsize;
191 KASSERT(ondisk->cd_secsize >= lp->d_secsize);
193 if (memcmp(ondisk->cd_name, lp->d_typename,
194 uimin(sizeof(lp->d_typename), sizeof(ondisk->cd_name))) &&
195 sizeof (ondisk->cd_name) > sizeof (lp->d_typename))
196 ondisk->cd_name[sizeof(lp->d_typename)] = '\0';
197 memcpy(ondisk->cd_name, lp->d_typename,
198 uimin(sizeof(lp->d_typename), sizeof(ondisk->cd_name)));
199 if (memcmp (lp->d_packname, ondisk->cd_label,
200 uimin(sizeof(lp->d_packname), sizeof(ondisk->cd_label))) &&
201 sizeof(ondisk->cd_label) > sizeof(lp->d_packname))
202 ondisk->cd_label[sizeof(lp->d_packname)] = '\0';
203 memcpy(ondisk->cd_label, lp->d_packname,
204 uimin(sizeof(lp->d_packname), sizeof(ondisk->cd_label)));
206 ondisk->cd_nsectors = lp->d_nsectors;
207 ondisk->cd_ntracks = lp->d_ntracks;
208 ondisk->cd_ncylinders = lp->d_ncylinders;
210 ondisk->cd_rpm = lp->d_rpm;
211 ondisk->cd_flags = lp->d_flags;
217 for (nbp = 0; nbp < lp->d_npartitions; nbp++) {
218 if (nbp != RAW_PART && lp->d_partitions[nbp].p_offset > 0 &&
219 lp->d_partitions[nbp].p_offset < front_porch)
220 front_porch = lp->d_partitions[nbp].p_offset;
223 (lp->d_partitions[nbp].p_size ==
225 (ondisk->cd_secsize / lp->d_secsize)) &&
226 (lp->d_partitions[nbp].p_offset ==
229 (ondisk->cd_secsize / lp->d_secsize)) &&
230 ((lp->d_partitions[nbp].p_fstype == FS_OTHER) ||
232 fstypenames[lp->d_partitions[nbp].p_fstype],
247 front_porch /= (ondisk->cd_secsize / lp->d_secsize);
255 if (nbp < lp->d_npartitions && lp->d_partitions[nbp].p_size) {
256 p->cp_size = lp->d_partitions[nbp].p_size /
257 (ondisk->cd_secsize / lp->d_secsize);
258 p->cp_offset = (lp->d_partitions[nbp].p_offset /
259 (ondisk->cd_secsize / lp->d_secsize)) -
261 p->cp_bsize = lp->d_partitions[nbp].p_frag
262 * lp->d_partitions[nbp].p_fsize;
263 p->cp_fsize = lp->d_partitions[nbp].p_fsize;
264 if (lp->d_partitions[nbp].p_fstype != FS_OTHER) {
267 fstypenames[lp->d_partitions[nbp].p_fstype],
274 p->cp_cpg = lp->d_partitions[nbp].p_cpg;
291 (ondisk->cd_secsize / lp->d_secsize);
293 (ondisk->cd_secsize / lp->d_secsize);
313 readdisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
322 if (lp->d_secsize == 0)
323 lp->d_secsize = DEV_BSIZE;
324 if (lp->d_secperunit == 0)
325 lp->d_secperunit = 0x1fffffff;
326 lp->d_npartitions = RAW_PART + 1;
328 lp->d_partitions[i].p_size = 0;
329 lp->d_partitions[i].p_offset = 0;
331 if (lp->d_partitions[i].p_size == 0)
332 lp->d_partitions[i].p_size = 0x1fffffff;
333 lp->d_partitions[i].p_offset = 0;
340 bp->b_cylinder = NEXT68K_LABEL_SECTOR / lp->d_secpercyl;
351 ((char *)bp->b_data + LABELSECTOR * lp->d_secsize + LABELOFFSET);
360 *lp = *dlp;
369 (struct next68k_disklabel *)bp->b_data, lp, osdep);
388 *lp = *dlp;
404 writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp,
415 if (lp->d_partitions[labelpart].p_offset != 0) {
416 if (lp->d_partitions[0].p_offset != 0)
430 bp->b_cylinder = NEXT68K_LABEL_SECTOR / lp->d_secpercyl;
432 build_nextstep_label((struct next68k_disklabel *)bp->b_data, lp);
437 ((char *)bp->b_data + LABELSECTOR * lp->d_secsize + LABELOFFSET);
438 *dlp = *lp;