mirror of
https://github.com/holub/mame
synced 2025-06-21 19:56:53 +03:00
[SCSI] Fixed case when no device exists (e.g. running the sys573 BIOS directly).
This commit is contained in:
parent
3e246847b5
commit
20e3fa7eb1
@ -7,57 +7,90 @@ void SCSIAllocInstance( const SCSIClass *scsiClass, SCSIInstance **instance, int
|
|||||||
|
|
||||||
void SCSIDeleteInstance( SCSIInstance *instance )
|
void SCSIDeleteInstance( SCSIInstance *instance )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_DELETE_INSTANCE, instance, 0, NULL );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_DELETE_INSTANCE, instance, 0, NULL );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSISetDevice( SCSIInstance *instance, void *device )
|
void SCSISetDevice( SCSIInstance *instance, void *device )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_SET_DEVICE, instance, 0, device );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_SET_DEVICE, instance, 0, device );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIGetDevice( SCSIInstance *instance, void **device )
|
void SCSIGetDevice( SCSIInstance *instance, void **device )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_GET_DEVICE, instance, 0, device );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_GET_DEVICE, instance, 0, device );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIReset( SCSIInstance *instance )
|
void SCSIReset( SCSIInstance *instance )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_RESET_DEVICE, instance, 0, NULL );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_RESET_DEVICE, instance, 0, NULL );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIExecCommand( SCSIInstance *instance, int *resultLength )
|
void SCSIExecCommand( SCSIInstance *instance, int *resultLength )
|
||||||
{
|
{
|
||||||
*resultLength = instance->scsiClass->dispatch( SCSIOP_EXEC_COMMAND, instance, 0, NULL );
|
if (instance)
|
||||||
|
{
|
||||||
|
*resultLength = instance->scsiClass->dispatch( SCSIOP_EXEC_COMMAND, instance, 0, NULL );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSISetCommand( SCSIInstance *instance, UINT8 *command, int commandLength )
|
void SCSISetCommand( SCSIInstance *instance, UINT8 *command, int commandLength )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_SET_COMMAND, instance, commandLength, command );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_SET_COMMAND, instance, commandLength, command );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIGetCommand( SCSIInstance *instance, UINT8 **command, int *commandLength )
|
void SCSIGetCommand( SCSIInstance *instance, UINT8 **command, int *commandLength )
|
||||||
{
|
{
|
||||||
*commandLength = instance->scsiClass->dispatch( SCSIOP_GET_COMMAND, instance, 0, command );
|
if (instance)
|
||||||
|
{
|
||||||
|
*commandLength = instance->scsiClass->dispatch( SCSIOP_GET_COMMAND, instance, 0, command );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIWriteData( SCSIInstance *instance, void *data, int dataLength )
|
void SCSIWriteData( SCSIInstance *instance, void *data, int dataLength )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_WRITE_DATA, instance, dataLength, data );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_WRITE_DATA, instance, dataLength, data );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIReadData( SCSIInstance *instance, void *data, int dataLength )
|
void SCSIReadData( SCSIInstance *instance, void *data, int dataLength )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_READ_DATA, instance, dataLength, data );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_READ_DATA, instance, dataLength, data );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSISetPhase( SCSIInstance *instance, int phase )
|
void SCSISetPhase( SCSIInstance *instance, int phase )
|
||||||
{
|
{
|
||||||
instance->scsiClass->dispatch( SCSIOP_SET_PHASE, instance, phase, NULL );
|
if (instance)
|
||||||
|
{
|
||||||
|
instance->scsiClass->dispatch( SCSIOP_SET_PHASE, instance, phase, NULL );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCSIGetPhase( SCSIInstance *instance, int *phase )
|
void SCSIGetPhase( SCSIInstance *instance, int *phase )
|
||||||
{
|
{
|
||||||
*phase = instance->scsiClass->dispatch( SCSIOP_GET_PHASE, instance, 0, NULL );
|
if (instance)
|
||||||
|
{
|
||||||
|
*phase = instance->scsiClass->dispatch( SCSIOP_GET_PHASE, instance, 0, NULL );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int SCSIBase( const SCSIClass *scsiClass, int operation, void *file, INT64 intparm, UINT8 *ptrparm )
|
int SCSIBase( const SCSIClass *scsiClass, int operation, void *file, INT64 intparm, UINT8 *ptrparm )
|
||||||
|
Loading…
Reference in New Issue
Block a user