mirror of
https://github.com/simh/simh.git
synced 2026-02-01 06:13:34 +00:00
Remove the UNIT_RAW flag and deprecate the UNIT_TEXT flag (made the value 0).
This commit is contained in:
50
sim_disk.c
50
sim_disk.c
@@ -273,6 +273,7 @@ static void sim_vhd_disk_flush (FILE *f);
|
||||
static t_addr sim_vhd_disk_size (FILE *f);
|
||||
static t_stat sim_vhd_disk_rdsect (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectsread, t_seccnt sects);
|
||||
static t_stat sim_vhd_disk_wrsect (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectswritten, t_seccnt sects);
|
||||
static t_stat sim_vhd_disk_clearerr (UNIT *uptr);
|
||||
static t_stat sim_vhd_disk_set_dtype (FILE *f, const char *dtype);
|
||||
static const char *sim_vhd_disk_get_dtype (FILE *f);
|
||||
static t_stat sim_os_disk_implemented_raw (void);
|
||||
@@ -1121,7 +1122,8 @@ sim_disk_clr_async (uptr);
|
||||
if (uptr->io_flush)
|
||||
uptr->io_flush (uptr); /* flush buffered data */
|
||||
|
||||
uptr->flags = uptr->flags & ~(UNIT_ATT | UNIT_RO | UNIT_RAW);
|
||||
uptr->flags &= ~(UNIT_ATT | UNIT_RO);
|
||||
uptr->dynflags &= ~UNIT_NO_FIO;
|
||||
free (uptr->filename);
|
||||
uptr->filename = NULL;
|
||||
uptr->fileref = NULL;
|
||||
@@ -1206,6 +1208,39 @@ AIO_UPDATE_QUEUE;
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
t_stat sim_disk_perror (UNIT *uptr, const char *msg)
|
||||
{
|
||||
if (!(uptr->flags & UNIT_ATTABLE)) /* not attachable? */
|
||||
return SCPE_NOATT;
|
||||
switch (DK_GET_FMT (uptr)) { /* case on format */
|
||||
case DKUF_F_STD: /* SIMH format */
|
||||
case DKUF_F_VHD: /* VHD format */
|
||||
case DKUF_F_RAW: /* Raw Physical Disk Access */
|
||||
perror (msg);
|
||||
default:
|
||||
;
|
||||
}
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
t_stat sim_disk_clearerr (UNIT *uptr)
|
||||
{
|
||||
if (!(uptr->flags & UNIT_ATTABLE)) /* not attachable? */
|
||||
return SCPE_NOATT;
|
||||
switch (DK_GET_FMT (uptr)) { /* case on format */
|
||||
case DKUF_F_STD: /* SIMH format */
|
||||
clearerr (uptr->fileref);
|
||||
break;
|
||||
case DKUF_F_VHD: /* VHD format */
|
||||
sim_vhd_disk_clearerr (uptr);
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
|
||||
/* Factory bad block table creation routine
|
||||
|
||||
This routine writes a DEC standard 044 compliant bad block table on the
|
||||
@@ -1974,6 +2009,11 @@ static t_stat sim_vhd_disk_rdsect (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *
|
||||
return SCPE_IOERR;
|
||||
}
|
||||
|
||||
static t_stat sim_vhd_disk_clearerr (UNIT *uptr)
|
||||
{
|
||||
return SCPE_IOERR;
|
||||
}
|
||||
|
||||
static t_stat sim_vhd_disk_wrsect (UNIT *uptr, t_lba lba, uint8 *buf, t_seccnt *sectswritten, t_seccnt sects)
|
||||
{
|
||||
return SCPE_IOERR;
|
||||
@@ -3488,6 +3528,14 @@ struct disk_context *ctx = (struct disk_context *)uptr->disk_ctx;
|
||||
return ReadVirtualDiskSectors(hVHD, buf, sects, sectsread, ctx->sector_size, lba);
|
||||
}
|
||||
|
||||
static t_stat sim_vhd_disk_clearerr (UNIT *uptr)
|
||||
{
|
||||
VHDHANDLE hVHD = (VHDHANDLE)uptr->fileref;
|
||||
|
||||
clearerr (hVHD->File);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
static t_bool
|
||||
BufferIsZeros(void *Buffer, size_t BufferSize)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user