Lines Matching +full:- +full:lp

51 static void bsdtocpulabel(struct disklabel *lp, struct cpu_disklabel *clp);
52 static void cputobsdlabel(struct disklabel *lp, struct cpu_disklabel *clp);
55 static void printlp(struct disklabel *lp, const char *str);
69 readdisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp, in readdisklabel() argument
76 bp = geteblk((int)lp->d_secsize); in readdisklabel()
79 bp->b_dev = dev; in readdisklabel()
80 bp->b_blkno = 0; /* contained in block 0 */ in readdisklabel()
81 bp->b_bcount = lp->d_secsize; in readdisklabel()
82 bp->b_flags |= B_READ; in readdisklabel()
83 bp->b_cylinder = 0; /* contained in block 0 */ in readdisklabel()
89 memcpy(clp, bp->b_data, sizeof (struct cpu_disklabel)); in readdisklabel()
94 if (msg || clp->magic1 != DISKMAGIC || clp->magic2 != DISKMAGIC) { in readdisklabel()
98 cputobsdlabel(lp, clp); in readdisklabel()
101 printlp(lp, "readdisklabel: bsd label"); in readdisklabel()
112 writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp, in writedisklabel() argument
120 printlp(lp, "writedisklabel: bsd label"); in writedisklabel()
125 * obtain buffer to read initial cpu_disklabel, for bootloader size :-) in writedisklabel()
127 bp = geteblk((int)lp->d_secsize); in writedisklabel()
130 bp->b_dev = dev; in writedisklabel()
131 bp->b_blkno = 0; /* contained in block 0 */ in writedisklabel()
132 bp->b_bcount = lp->d_secsize; in writedisklabel()
133 bp->b_flags |= B_READ; in writedisklabel()
134 bp->b_cylinder = 0; /* contained in block 0 */ in writedisklabel()
140 memcpy(clp, bp->b_data, sizeof(struct cpu_disklabel)); in writedisklabel()
149 bsdtocpulabel(lp, clp); in writedisklabel()
157 if (lp->d_magic == DISKMAGIC && lp->d_magic2 == DISKMAGIC && in writedisklabel()
158 dkcksum(lp) == 0) { in writedisklabel()
160 bp = geteblk((int)lp->d_secsize); in writedisklabel()
162 memcpy(bp->b_data, clp, sizeof(struct cpu_disklabel)); in writedisklabel()
167 bp->b_dev = dev; in writedisklabel()
168 bp->b_blkno = 0; /* contained in block 0 */ in writedisklabel()
169 bp->b_bcount = lp->d_secsize; in writedisklabel()
170 bp->b_flags |= B_WRITE; in writedisklabel()
171 bp->b_cylinder = 0; /* contained in block 0 */ in writedisklabel()
182 bsdtocpulabel(struct disklabel *lp, struct cpu_disklabel *clp) in bsdtocpulabel() argument
186 clp->magic1 = lp->d_magic; in bsdtocpulabel()
187 clp->type = lp->d_type; in bsdtocpulabel()
188 clp->subtype = lp->d_subtype; in bsdtocpulabel()
189 strncpy(clp->vid_vd, lp->d_typename, 16); in bsdtocpulabel()
190 strncpy(clp->packname, lp->d_packname, 16); in bsdtocpulabel()
191 clp->cfg_psm = lp->d_secsize; in bsdtocpulabel()
192 clp->cfg_spt = lp->d_nsectors; in bsdtocpulabel()
193 clp->cfg_trk = lp->d_ncylinders; /* trk is really num of cyl! */ in bsdtocpulabel()
194 clp->cfg_hds = lp->d_ntracks; in bsdtocpulabel()
196 clp->secpercyl = lp->d_secpercyl; in bsdtocpulabel()
197 clp->secperunit = lp->d_secperunit; in bsdtocpulabel()
198 clp->sparespertrack = lp->d_sparespertrack; in bsdtocpulabel()
199 clp->sparespercyl = lp->d_sparespercyl; in bsdtocpulabel()
200 clp->acylinders = lp->d_acylinders; in bsdtocpulabel()
201 clp->rpm = lp->d_rpm; in bsdtocpulabel()
203 clp->cfg_ilv = lp->d_interleave; in bsdtocpulabel()
204 clp->cfg_sof = lp->d_trackskew; in bsdtocpulabel()
205 clp->cylskew = lp->d_cylskew; in bsdtocpulabel()
206 clp->headswitch = lp->d_headswitch; in bsdtocpulabel()
209 if (lp->d_trkseek < 6) { in bsdtocpulabel()
210 clp->cfg_ssr = 0; in bsdtocpulabel()
211 } else if (lp->d_trkseek < 10) { in bsdtocpulabel()
212 clp->cfg_ssr = 1; in bsdtocpulabel()
213 } else if (lp->d_trkseek < 15) { in bsdtocpulabel()
214 clp->cfg_ssr = 2; in bsdtocpulabel()
215 } else if (lp->d_trkseek < 20) { in bsdtocpulabel()
216 clp->cfg_ssr = 3; in bsdtocpulabel()
218 clp->cfg_ssr = 4; in bsdtocpulabel()
221 clp->flags = lp->d_flags; in bsdtocpulabel()
223 clp->drivedata[i] = lp->d_drivedata[i]; in bsdtocpulabel()
225 clp->spare[i] = lp->d_spare[i]; in bsdtocpulabel()
227 clp->magic2 = lp->d_magic2; in bsdtocpulabel()
228 clp->checksum = lp->d_checksum; in bsdtocpulabel()
229 clp->partitions = lp->d_npartitions; in bsdtocpulabel()
230 clp->bbsize = lp->d_bbsize; in bsdtocpulabel()
231 clp->sbsize = lp->d_sbsize; in bsdtocpulabel()
232 clp->checksum = lp->d_checksum; in bsdtocpulabel()
234 memcpy(clp->vid_4, &lp->d_partitions[0], sizeof(struct partition) * 4); in bsdtocpulabel()
235 memset(clp->cfg_4, 0, sizeof(struct partition) * 12); in bsdtocpulabel()
236 memcpy(clp->cfg_4, &lp->d_partitions[4], sizeof(struct partition) in bsdtocpulabel()
237 * ((MAXPARTITIONS < 16) ? (MAXPARTITIONS - 4) : 12)); in bsdtocpulabel()
244 memcpy(clp->vid_id, VID_ID, sizeof(clp->vid_id)); in bsdtocpulabel()
245 clp->vid_oss = VID_OSS; in bsdtocpulabel()
246 clp->vid_osl = VID_OSL; in bsdtocpulabel()
247 clp->vid_osa_u = VID_OSAU; in bsdtocpulabel()
248 clp->vid_osa_l = VID_OSAL; in bsdtocpulabel()
249 clp->vid_cas = VID_CAS; in bsdtocpulabel()
250 clp->vid_cal = VID_CAL; in bsdtocpulabel()
251 memcpy(clp->vid_mot, VID_MOT, sizeof(clp->vid_mot)); in bsdtocpulabel()
252 clp->cfg_rec = CFG_REC; in bsdtocpulabel()
253 clp->cfg_psm = CFG_PSM; in bsdtocpulabel()
257 cputobsdlabel(struct disklabel *lp, struct cpu_disklabel *clp) in cputobsdlabel() argument
261 lp->d_magic = clp->magic1; in cputobsdlabel()
262 lp->d_type = clp->type; in cputobsdlabel()
263 lp->d_subtype = clp->subtype; in cputobsdlabel()
264 strncpy(lp->d_typename, clp->vid_vd, 16); in cputobsdlabel()
265 strncpy(lp->d_packname, clp->packname, 16); in cputobsdlabel()
266 lp->d_secsize = clp->cfg_psm; in cputobsdlabel()
267 lp->d_nsectors = clp->cfg_spt; in cputobsdlabel()
268 lp->d_ncylinders = clp->cfg_trk; /* trk is really num of cyl! */ in cputobsdlabel()
269 lp->d_ntracks = clp->cfg_hds; in cputobsdlabel()
271 lp->d_secpercyl = clp->secpercyl; in cputobsdlabel()
272 lp->d_secperunit = clp->secperunit; in cputobsdlabel()
273 lp->d_secpercyl = clp->secpercyl; in cputobsdlabel()
274 lp->d_secperunit = clp->secperunit; in cputobsdlabel()
275 lp->d_sparespertrack = clp->sparespertrack; in cputobsdlabel()
276 lp->d_sparespercyl = clp->sparespercyl; in cputobsdlabel()
277 lp->d_acylinders = clp->acylinders; in cputobsdlabel()
278 lp->d_rpm = clp->rpm; in cputobsdlabel()
279 lp->d_interleave = clp->cfg_ilv; in cputobsdlabel()
280 lp->d_trackskew = clp->cfg_sof; in cputobsdlabel()
281 lp->d_cylskew = clp->cylskew; in cputobsdlabel()
282 lp->d_headswitch = clp->headswitch; in cputobsdlabel()
285 switch (clp->cfg_ssr) { in cputobsdlabel()
287 lp->d_trkseek = 0; in cputobsdlabel()
290 lp->d_trkseek = 6; in cputobsdlabel()
293 lp->d_trkseek = 10; in cputobsdlabel()
296 lp->d_trkseek = 15; in cputobsdlabel()
299 lp->d_trkseek = 20; in cputobsdlabel()
302 lp->d_trkseek = 0; in cputobsdlabel()
304 lp->d_flags = clp->flags; in cputobsdlabel()
306 lp->d_drivedata[i] = clp->drivedata[i]; in cputobsdlabel()
308 lp->d_spare[i] = clp->spare[i]; in cputobsdlabel()
310 lp->d_magic2 = clp->magic2; in cputobsdlabel()
311 lp->d_checksum = clp->checksum; in cputobsdlabel()
312 lp->d_npartitions = clp->partitions; in cputobsdlabel()
313 lp->d_bbsize = clp->bbsize; in cputobsdlabel()
314 lp->d_sbsize = clp->sbsize; in cputobsdlabel()
316 memcpy(&lp->d_partitions[0], clp->vid_4, sizeof(struct partition) * 4); in cputobsdlabel()
317 memcpy(&lp->d_partitions[4], clp->cfg_4, sizeof(struct partition) in cputobsdlabel()
318 * ((MAXPARTITIONS < 16) ? (MAXPARTITIONS - 4) : 12)); in cputobsdlabel()
319 lp->d_checksum = 0; in cputobsdlabel()
320 lp->d_checksum = dkcksum(lp); in cputobsdlabel()
323 printlp(lp, "translated label read from disk\n"); in cputobsdlabel()
330 printlp(struct disklabel *lp, const char *str) in printlp() argument
335 printf("magic1 %x\n", lp->d_magic); in printlp()
336 printf("magic2 %x\n", lp->d_magic2); in printlp()
337 printf("typename %s\n", lp->d_typename); in printlp()
339 lp->d_secsize, lp->d_nsectors, lp->d_ntracks, lp->d_ncylinders); in printlp()
340 printf("Num partitions %x\n", lp->d_npartitions); in printlp()
341 for (i = 0; i < lp->d_npartitions; i++) { in printlp()
342 struct partition *part = &lp->d_partitions[i]; in printlp()
343 const char *fstyp = fstypenames[part->p_fstype]; in printlp()
346 'a' + i, part->p_size, part->p_offset, fstyp, in printlp()
347 part->p_frag, part->p_cpg); in printlp()
357 printf("magic1 %lx\n", clp->magic1); in printclp()
358 printf("magic2 %lx\n", clp->magic2); in printclp()
359 printf("typename %s\n", clp->vid_vd); in printclp()
361 clp->cfg_psm, clp->cfg_spt, clp->cfg_hds, clp->cfg_trk); in printclp()
362 printf("Num partitions %x\n", clp->partitions); in printclp()
363 maxp = clp->partitions < 16 ? clp->partitions : 16; in printclp()
369 part = (void *)&clp->vid_4[0]; in printclp()
372 part = (void *)&clp->cfg_4[0]; in printclp()
373 part = &part[i-4]; in printclp()
376 fstyp = fstypenames[part->p_fstype]; in printclp()
379 'a' + i, part->p_size, part->p_offset, fstyp, in printclp()
380 part->p_frag, part->p_cpg); in printclp()