Deleted Added
full compact
35c35
< * $FreeBSD: head/sys/geom/geom_sunlabel.c 113432 2003-04-13 09:02:06Z phk $
---
> * $FreeBSD: head/sys/geom/geom_sunlabel.c 113819 2003-04-21 19:54:11Z phk $
47a48
> #include <sys/sun_disklabel.h>
65a67
> struct sun_disklabel sl;
67,69c69,71
< /* The second last short is a magic number */
< if (be16dec(sec0 + 508) != 0xdabe)
< return (EBUSY);
---
> error = sunlabel_dec(sec0, &sl);
> if (error)
> return (error);
71,76c73
< /* The shortword parity of the entire thing must be even */
< u = 0;
< for (i = 0; i < 512; i += 2)
< u ^= be16dec(sec0 + i);
< if (u != 0)
< return(EBUSY);
---
> csize = sl.sl_ntracks * sl.sl_nsectors;
78,82c75,77
< csize = be16dec(sec0 + 436) * be16dec(sec0 + 438);
<
< for (i = 0; i < 8; i++) {
< v = be32dec(sec0 + 444 + i * 8);
< u = be32dec(sec0 + 448 + i * 8);
---
> for (i = 0; i < SUN_NPART; i++) {
> v = sl.sl_part[i].sdkp_cyloffset;
> u = sl.sl_part[i].sdkp_nsectors;
93,95c88,90
< for (i = 0; i < 8; i++) {
< v = be32dec(sec0 + 444 + i * 8);
< u = be32dec(sec0 + 448 + i * 8);
---
> for (i = 0; i < SUN_NPART; i++) {
> v = sl.sl_part[i].sdkp_cyloffset;
> u = sl.sl_part[i].sdkp_nsectors;
104,106c99,101
< ms->nalt = be16dec(sec0 + 434);
< ms->nheads = be16dec(sec0 + 436);
< ms->nsects = be16dec(sec0 + 438);
---
> ms->nalt = sl.sl_acylinders;
> ms->nheads = sl.sl_ntracks;
> ms->nsects = sl.sl_nsectors;
144c139
< int error, i, npart;
---
> int error, npart;
172,195d166
<
< if (bootverbose) {
< g_hexdump(buf, 128);
< for (i = 0; i < 8; i++) {
< printf("part %d %u %u\n", i,
< be32dec(buf + 444 + i * 8),
< be32dec(buf + 448 + i * 8));
< }
< printf("v_version = %d\n", be32dec(buf + 128));
< printf("v_nparts = %d\n", be16dec(buf + 140));
< for (i = 0; i < 8; i++) {
< printf("v_part[%d] = %d %d\n",
< i, be16dec(buf + 142 + i * 4),
< be16dec(buf + 144 + i * 4));
< }
< printf("v_sanity %x\n", be32dec(buf + 186));
< printf("v_version = %d\n", be32dec(buf + 128));
< printf("v_rpm %d\n", be16dec(buf + 420));
< printf("v_totalcyl %d\n", be16dec(buf + 422));
< printf("v_cyl %d\n", be16dec(buf + 432));
< printf("v_alt %d\n", be16dec(buf + 434));
< printf("v_head %d\n", be16dec(buf + 436));
< printf("v_sec %d\n", be16dec(buf + 438));
< }