Re-enable ds_subtype, and ds_name (included in #ifdef PC98).

Userland programs which access partition information require
ds_subtype and ds_name on PC98.
This commit is contained in:
kato 1997-01-16 05:27:10 +00:00
parent 52f682b582
commit d563ee4300
2 changed files with 14 additions and 0 deletions

View File

@ -300,6 +300,7 @@ reread_mbr:
sp->ds_offset = 0;
sp->ds_size = lp->d_secperunit;
sp->ds_type = DOSPTYP_386BSD;
sp->ds_subtype = 0xc4;
error = 0;
ssp->dss_nslices = BASE_SLICE + 1;
goto done;
@ -329,6 +330,7 @@ reread_mbr:
sp->ds_offset = 0;
sp->ds_size = lp->d_secperunit;
sp->ds_type = 0xa0; /* XXX */
sp->ds_subtype = 0x81; /* XXX */
error = 0;
ssp->dss_nslices = BASE_SLICE + 1;
goto done;
@ -491,6 +493,8 @@ reread_mbr:
sp->ds_offset = pc98_start;
sp->ds_size = pc98_size;
sp->ds_type = dp->dp_mid;
sp->ds_subtype = dp->dp_sid;
strncpy(sp->ds_name, dp->dp_name, 16);
#else
sp->ds_offset = mbr_offset + dp->dp_start;
sp->ds_size = dp->dp_size;
@ -627,6 +631,8 @@ extended(dname, dev, strat, lp, ssp, ext_offset, ext_size, base_ext_offset,
sp->ds_offset = ext_offset + pc98_start;
sp->ds_size = pc98_size;
sp->ds_type = dp->dp_mid;
sp->ds_subtype = dp->dp_sid;
strncpy(sp->ds_name, dp->dp_name, 16);
#else
sp->ds_offset = ext_offset + dp->dp_start;
sp->ds_size = dp->dp_size;

View File

@ -47,6 +47,10 @@ struct diskslice {
u_long ds_offset; /* starting sector */
u_long ds_size; /* number of sectors */
int ds_type; /* (foreign) slice type */
#ifdef PC98
int ds_subtype; /* sub slice type */
u_char ds_name[16]; /* slice name */
#endif
struct dkbad_intern *ds_bad; /* bad sector table, if any */
struct disklabel *ds_label; /* BSD label, if any */
void *ds_bdev; /* devfs token for whole slice */
@ -84,6 +88,10 @@ struct diskslice {
u_long ds_offset; /* starting sector */
u_long ds_size; /* number of sectors */
int ds_type; /* (foreign) slice type */
#ifdef PC98
int ds_subtype; /* sub slice type */
u_char ds_name[16]; /* slice name */
#endif
struct dkbad_intern *ds_bad; /* bad sector table, if any */
void *ds_date; /* Slice type specific data */
struct slice_switch *switch; /* switch table for type handler */