PDP11, VAX scsi systems: Migrate DEV_DISK devices using common autosize code

This commit is contained in:
Mark Pizzolato 2022-02-11 15:26:21 -08:00
parent 1196827c2d
commit 49b6e52d48
8 changed files with 43 additions and 50 deletions

View file

@ -87,11 +87,11 @@
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */ #define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */
#define UNIT_W_DTYPE 3 /* 3b disk type */ #define UNIT_W_DTYPE 3 /* 3b disk type */
#define UNIT_M_DTYPE 7 #define UNIT_M_DTYPE 7
#define UNIT_V_AUTO (UNIT_V_DTYPE + UNIT_W_DTYPE) /* autosize */ #define UNIT_V_UTS (UNIT_V_DTYPE + 1) /* Up to speed */
#define UNIT_V_UTS (UNIT_V_AUTO + 1) /* Up to speed */ #define UNIT_V_NOAUTO DKUF_V_NOAUTOSIZE /* noautosize */
#define UNIT_UTS (1u << UNIT_V_UTS) #define UNIT_UTS (1u << UNIT_V_UTS)
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE) #define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
#define UNIT_AUTO (1 << UNIT_V_AUTO) #define UNIT_NOAUTO (1 << UNIT_V_NOAUTO)
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE) #define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE)
/* Parameters in the unit descriptor */ /* Parameters in the unit descriptor */
@ -395,21 +395,21 @@ DIB rp_dib = {
}; };
UNIT rp_unit[] = { UNIT rp_unit[] = {
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }, UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) },
{ UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&rp_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) } UNIT_ROABLE+(RP06_DTYPE << UNIT_V_DTYPE), RP06_SIZE) }
}; };
@ -464,9 +464,9 @@ MTAB rp_mod[] = {
&rp_set_type, NULL, NULL, "Set RP07 Disk Type" }, &rp_set_type, NULL, NULL, "Set RP07 Disk Type" },
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL, { MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
NULL, &rp_show_type, NULL, "Display device type" }, NULL, &rp_show_type, NULL, "Display device type" },
{ UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE", { UNIT_NOAUTO, 0, "autosize", "AUTOSIZE",
NULL, NULL, NULL, "Set type based on file size at attach" }, NULL, NULL, NULL, "Set type based on file size at attach" },
{ UNIT_AUTO, 0, "noautosize", "NOAUTOSIZE", { UNIT_NOAUTO, UNIT_NOAUTO, "noautosize", "NOAUTOSIZE",
NULL, NULL, NULL, "Disable disk autosize on attach" }, NULL, NULL, NULL, "Disable disk autosize on attach" },
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}", { MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Display disk format" }, &sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Display disk format" },
@ -1152,7 +1152,7 @@ static const char *drives[] = {"RM03", "RP04", "RM80", "RP06", "RM05", "RP07", N
uptr->capac = drv_tab[GET_DTYPE (uptr->flags)].size; uptr->capac = drv_tab[GET_DTYPE (uptr->flags)].size;
r = sim_disk_attach_ex (uptr, cptr, RP_NUMWD * sizeof (d10), sizeof (d10), TRUE, DBG_DSK, r = sim_disk_attach_ex (uptr, cptr, RP_NUMWD * sizeof (d10), sizeof (d10), TRUE, DBG_DSK,
drv_tab[GET_DTYPE (uptr->flags)].name, drv_tab[GET_DTYPE (uptr->flags)].name,
0, 0, (uptr->flags & UNIT_AUTO) ? drives : NULL); 0, 0, (uptr->flags & UNIT_NOAUTO) ? NULL : drives);
if (r != SCPE_OK) if (r != SCPE_OK)
return r; return r;
sim_cancel (uptr); sim_cancel (uptr);

View file

@ -99,14 +99,13 @@ static struct drvtyp drv_tab[] = {
/* Flags in the unit flags word */ /* Flags in the unit flags word */
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */ #define UNIT_V_DTYPE (DKUF_V_UF + 0) /* disk type */
#define UNIT_V_AUTO (UNIT_V_DTYPE + 1) /* autosize */ #define UNIT_V_DUMMY (UNIT_V_DTYPE + 1) /* dummy flag */
#define UNIT_V_DUMMY (UNIT_V_AUTO + 1) /* dummy flag */
#define UNIT_DTYPE (1 << UNIT_V_DTYPE) #define UNIT_DTYPE (1 << UNIT_V_DTYPE)
#define UNIT_RK06 (0 << UNIT_V_DTYPE) #define UNIT_RK06 (0 << UNIT_V_DTYPE)
#define UNIT_RK07 (1 << UNIT_V_DTYPE) #define UNIT_RK07 (1 << UNIT_V_DTYPE)
#define UNIT_AUTO (1 << UNIT_V_AUTO)
#define UNIT_DUMMY (1 << UNIT_V_DUMMY) #define UNIT_DUMMY (1 << UNIT_V_DUMMY)
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & 1) #define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & 1)
#define UNIT_NOAUTO DKUF_NOAUTOSIZE
/* Parameters in the unit descriptor */ /* Parameters in the unit descriptor */
@ -603,21 +602,21 @@ DIB hk_dib = {
}; };
UNIT hk_unit[] = { UNIT hk_unit[] = {
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }, UNIT_ROABLE+UNIT_RK06, RK06_SIZE) },
{ UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_AUTO+ { UDATA (&hk_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_RK06, RK06_SIZE) } UNIT_ROABLE+UNIT_RK06, RK06_SIZE) }
}; };
@ -673,9 +672,9 @@ MTAB hk_mod[] = {
&hk_set_type, NULL, NULL, "Set RK07 Disk Type" }, &hk_set_type, NULL, NULL, "Set RK07 Disk Type" },
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL, { MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
NULL, &hk_show_type, NULL, "Display device type" }, NULL, &hk_show_type, NULL, "Display device type" },
{ UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE", { UNIT_NOAUTO, 0, "autosize", "AUTOSIZE",
NULL, NULL, NULL, "Set type based on file size at attach" }, NULL, NULL, NULL, "Set type based on file size at attach" },
{ UNIT_AUTO, 0, "noautosize", "NOAUTOSIZE", { UNIT_NOAUTO, UNIT_NOAUTO, "noautosize", "NOAUTOSIZE",
NULL, NULL, NULL, "Disable disk autosize on attach" }, NULL, NULL, NULL, "Disable disk autosize on attach" },
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}", { MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" }, &sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" },
@ -1510,7 +1509,7 @@ uptr->capac = HK_SIZE (uptr);
r = sim_disk_attach_ex (uptr, cptr, HK_NUMWD * sizeof (uint16), r = sim_disk_attach_ex (uptr, cptr, HK_NUMWD * sizeof (uint16),
sizeof (uint16), TRUE, 0, sizeof (uint16), TRUE, 0,
(uptr->capac == RK06_SIZE) ? "RK06" : "RK07", HK_NUMSC, 0, (uptr->capac == RK06_SIZE) ? "RK06" : "RK07", HK_NUMSC, 0,
(uptr->flags & UNIT_AUTO) ? drives : NULL); (uptr->flags & UNIT_NOAUTO) ? NULL : drives);
if (r != SCPE_OK) /* error? */ if (r != SCPE_OK) /* error? */
return r; return r;
drv = (uint32) (uptr - hk_dev.units); /* get drv number */ drv = (uint32) (uptr - hk_dev.units); /* get drv number */

View file

@ -129,10 +129,9 @@ static struct drvtyp drv_tab[] = {
/* Flags in the unit flags word */ /* Flags in the unit flags word */
#define UNIT_V_SWLK (DKUF_V_UF + 0) /* swre write lock */ #define UNIT_V_SWLK (DKUF_V_UF + 0) /* swre write lock */
#define UNIT_V_NOAUTO (UNIT_V_SWLK + 1) /* autosize */
#define UNIT_HWLK UNIT_WPRT #define UNIT_HWLK UNIT_WPRT
#define UNIT_SWLK (1u << UNIT_V_SWLK) #define UNIT_SWLK (1u << UNIT_V_SWLK)
#define UNIT_NOAUTO (1u << UNIT_V_NOAUTO) #define UNIT_NOAUTO DKUF_NOAUTOSIZE /* autosize disabled */
#define GET_DTYPE(x) (0) #define GET_DTYPE(x) (0)
/* Parameters in the unit descriptor */ /* Parameters in the unit descriptor */

View file

@ -133,15 +133,14 @@ static struct drvtyp drv_tab[] = {
/* Flags in the unit flags word */ /* Flags in the unit flags word */
#define UNIT_V_RL02 (DKUF_V_UF + 0) /* RL01 vs RL02 */ #define UNIT_V_RL02 (DKUF_V_UF + 0) /* RL01 vs RL02 */
#define UNIT_V_AUTO (UNIT_V_RL02 + 1) /* autosize enable */ #define UNIT_V_DUMMY (UNIT_V_RL02 + 1) /* dummy flag, for SET BADBLOCK */
#define UNIT_V_DUMMY (UNIT_V_AUTO + 1) /* dummy flag, for SET BADBLOCK */
#define UNIT_V_OFFL (UNIT_V_DUMMY + 1) /* unit off line */ #define UNIT_V_OFFL (UNIT_V_DUMMY + 1) /* unit off line */
#define UNIT_V_BRUSH (UNIT_V_OFFL + 1) /* unit has brushes */ #define UNIT_V_BRUSH (UNIT_V_OFFL + 1) /* unit has brushes */
#define UNIT_BRUSH (1u << UNIT_V_BRUSH) #define UNIT_BRUSH (1u << UNIT_V_BRUSH)
#define UNIT_OFFL (1u << UNIT_V_OFFL) #define UNIT_OFFL (1u << UNIT_V_OFFL)
#define UNIT_DUMMY (1u << UNIT_V_DUMMY) #define UNIT_DUMMY (1u << UNIT_V_DUMMY)
#define UNIT_RL02 (1u << UNIT_V_RL02) #define UNIT_RL02 (1u << UNIT_V_RL02)
#define UNIT_AUTO (1u << UNIT_V_AUTO) #define UNIT_NOAUTO DKUF_NOAUTOSIZE /* autosize disable */
#define GET_DTYPE(x) (((x) >> UNIT_V_RL02) & 1) #define GET_DTYPE(x) (((x) >> UNIT_V_RL02) & 1)
/* Parameters in the unit descriptor */ /* Parameters in the unit descriptor */
@ -313,14 +312,10 @@ static DIB rl_dib = {
1, IVCL (RL), VEC_AUTO, { NULL }, IOLN_RL }; 1, IVCL (RL), VEC_AUTO, { NULL }, IOLN_RL };
static UNIT rl_unit[] = { static UNIT rl_unit[] = {
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+ { UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) },
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) }, { UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) },
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+ { UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) },
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) }, { UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+UNIT_ROABLE, RL01_SIZE) }
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) },
{ UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+
UNIT_ROABLE+UNIT_AUTO, RL01_SIZE) }
}; };
static const REG rl_reg[] = { static const REG rl_reg[] = {
@ -383,9 +378,9 @@ static const MTAB rl_mod[] = {
&rl_set_type, NULL, NULL, "Set RL02 Disk Type" }, &rl_set_type, NULL, NULL, "Set RL02 Disk Type" },
{ MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL, { MTAB_XTD|MTAB_VUN, 0, "TYPE", NULL,
NULL, &rl_show_type, NULL, "Display device type" }, NULL, &rl_show_type, NULL, "Display device type" },
{ UNIT_AUTO, UNIT_AUTO, "autosize", "AUTOSIZE", { UNIT_NOAUTO, 0, "autosize", "AUTOSIZE",
NULL, NULL, NULL, "Set type based on file size at attach" }, NULL, NULL, NULL, "Set type based on file size at attach" },
{ UNIT_AUTO, 0, "noautosize", "NOAUTOSIZE", { UNIT_NOAUTO, UNIT_NOAUTO, "noautosize", "NOAUTOSIZE",
NULL, NULL, NULL, "Disable disk autosize on attach" }, NULL, NULL, NULL, "Disable disk autosize on attach" },
{ MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}", { MTAB_XTD|MTAB_VUN|MTAB_VALR, 0, "FORMAT", "FORMAT={AUTO|SIMH|VHD|RAW}",
&sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" }, &sim_disk_set_fmt, &sim_disk_show_fmt, NULL, "Set/Display disk format" },
@ -1033,7 +1028,7 @@ uptr->capac = (uptr->flags & UNIT_RL02)? RL02_SIZE: RL01_SIZE;
r = sim_disk_attach_ex (uptr, cptr, RL_NUMWD * sizeof (uint16), r = sim_disk_attach_ex (uptr, cptr, RL_NUMWD * sizeof (uint16),
sizeof (uint16), TRUE, 0, sizeof (uint16), TRUE, 0,
(uptr->capac == RL02_SIZE) ? "RL02" : "RL01", RL_NUMSC, 0, (uptr->capac == RL02_SIZE) ? "RL02" : "RL01", RL_NUMSC, 0,
(uptr->flags & UNIT_AUTO) ? drives : NULL); (uptr->flags & UNIT_NOAUTO) ? NULL : drives);
if (r != SCPE_OK) /* error? */ if (r != SCPE_OK) /* error? */
return r; return r;
/* /*

View file

@ -160,10 +160,9 @@ extern int32 MMR2;
#define UNIT_V_DTYPE (UNIT_V_ATP + 1) /* drive type */ #define UNIT_V_DTYPE (UNIT_V_ATP + 1) /* drive type */
#define UNIT_W_DTYPE 5 /* 5b drive type encode */ #define UNIT_W_DTYPE 5 /* 5b drive type encode */
#define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1) #define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1)
#define UNIT_V_NOAUTO (UNIT_V_DTYPE + UNIT_W_DTYPE) /* noautosize */
#define UNIT_ONL (1 << UNIT_V_ONL) #define UNIT_ONL (1 << UNIT_V_ONL)
#define UNIT_ATP (1 << UNIT_V_ATP) #define UNIT_ATP (1 << UNIT_V_ATP)
#define UNIT_NOAUTO (1 << UNIT_V_NOAUTO) #define UNIT_NOAUTO DKUF_NOAUTOSIZE /* noautosize */
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE) #define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
#define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE) #define GET_DTYPE(x) (((x) >> UNIT_V_DTYPE) & UNIT_M_DTYPE)
#define cpkt us9 /* current packet */ #define cpkt us9 /* current packet */

View file

@ -229,9 +229,8 @@
#define UNIT_V_DTYPE (DKUF_V_UF + 0) /* drive type */ #define UNIT_V_DTYPE (DKUF_V_UF + 0) /* drive type */
#define UNIT_W_DTYPE 3 /* 3b drive type encode */ #define UNIT_W_DTYPE 3 /* 3b drive type encode */
#define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1) #define UNIT_M_DTYPE ((1u << UNIT_W_DTYPE) - 1)
#define UNIT_V_NOAUTO (UNIT_V_DTYPE + UNIT_W_DTYPE) /* noautosize */
#define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE) #define UNIT_DTYPE (UNIT_M_DTYPE << UNIT_V_DTYPE)
#define UNIT_NOAUTO (1 << UNIT_V_NOAUTO) #define UNIT_NOAUTO DKUF_NOAUTOSIZE
struct drvtyp { struct drvtyp {
int32 sect; /* sectors */ int32 sect; /* sectors */

View file

@ -48,10 +48,12 @@ typedef uint32 t_lba; /* disk logical block ad
#define DKUF_F_STD 1 /* SIMH format */ #define DKUF_F_STD 1 /* SIMH format */
#define DKUF_F_RAW 2 /* Raw Physical Disk Access */ #define DKUF_F_RAW 2 /* Raw Physical Disk Access */
#define DKUF_F_VHD 3 /* VHD format */ #define DKUF_F_VHD 3 /* VHD format */
#define DKUF_V_UF (DKUF_V_FMT + DKUF_W_FMT) #define DKUF_V_NOAUTOSIZE (DKUF_V_FMT + DKUF_W_FMT) /* Don't Autosize disk option */
#define DKUF_V_UF (DKUF_V_NOAUTOSIZE + 1)
#define DKUF_WLK UNIT_WLK #define DKUF_WLK UNIT_WLK
#define DKUF_FMT (DKUF_M_FMT << DKUF_V_FMT) #define DKUF_FMT (DKUF_M_FMT << DKUF_V_FMT)
#define DKUF_WRP (DKUF_WLK | UNIT_RO) #define DKUF_WRP (DKUF_WLK | UNIT_RO)
#define DKUF_NOAUTOSIZE (1 << DKUF_V_NOAUTOSIZE)
#define DK_F_STD (DKUF_F_STD << DKUF_V_FMT) #define DK_F_STD (DKUF_F_STD << DKUF_V_FMT)
#define DK_F_RAW (DKUF_F_RAW << DKUF_V_FMT) #define DK_F_RAW (DKUF_F_RAW << DKUF_V_FMT)

View file

@ -70,7 +70,7 @@
#define SCSI_V_NOAUTO ((DKUF_V_UF > MTUF_V_UF) ? DKUF_V_UF : MTUF_V_UF)/* noautosize */ #define SCSI_V_NOAUTO ((DKUF_V_UF > MTUF_V_UF) ? DKUF_V_UF : MTUF_V_UF)/* noautosize */
#define SCSI_V_UF (SCSI_V_NOAUTO + 1) #define SCSI_V_UF (SCSI_V_NOAUTO + 1)
#define SCSI_WLK (UNIT_WLK|UNIT_RO) /* hwre write lock */ #define SCSI_WLK (UNIT_WLK|UNIT_RO) /* hwre write lock */
#define SCSI_NOAUTO (1 << SCSI_V_NOAUTO) #define SCSI_NOAUTO DKUF_NOAUTOSIZE
struct scsi_dev_t { struct scsi_dev_t {