diff --git a/src/emu/machine/scsi.c b/src/emu/machine/scsi.c index 33097caffb7..c00febc6a3a 100644 --- a/src/emu/machine/scsi.c +++ b/src/emu/machine/scsi.c @@ -7,57 +7,90 @@ void SCSIAllocInstance( const SCSIClass *scsiClass, SCSIInstance **instance, int 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 ) { - 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 ) { - instance->scsiClass->dispatch( SCSIOP_GET_DEVICE, instance, 0, device ); + if (instance) + { + instance->scsiClass->dispatch( SCSIOP_GET_DEVICE, instance, 0, device ); + } } 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 ) { - *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 ) { - 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 ) { - *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 ) { - 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 ) { - 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 ) { - 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 ) { - *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 )