[SCSI] Fixed case when no device exists (e.g. running the sys573 BIOS directly).

This commit is contained in:
R. Belmont 2008-03-22 03:55:23 +00:00
parent 3e246847b5
commit 20e3fa7eb1

View File

@ -6,59 +6,92 @@ void SCSIAllocInstance( const SCSIClass *scsiClass, SCSIInstance **instance, int
} }
void SCSIDeleteInstance( SCSIInstance *instance ) void SCSIDeleteInstance( SCSIInstance *instance )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_DELETE_INSTANCE, instance, 0, NULL ); instance->scsiClass->dispatch( SCSIOP_DELETE_INSTANCE, instance, 0, NULL );
} }
}
void SCSISetDevice( SCSIInstance *instance, void *device ) void SCSISetDevice( SCSIInstance *instance, void *device )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_SET_DEVICE, instance, 0, device ); instance->scsiClass->dispatch( SCSIOP_SET_DEVICE, instance, 0, device );
} }
}
void SCSIGetDevice( SCSIInstance *instance, void **device ) void SCSIGetDevice( SCSIInstance *instance, void **device )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_GET_DEVICE, instance, 0, device ); instance->scsiClass->dispatch( SCSIOP_GET_DEVICE, instance, 0, device );
} }
}
void SCSIReset( SCSIInstance *instance ) void SCSIReset( SCSIInstance *instance )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_RESET_DEVICE, instance, 0, NULL ); instance->scsiClass->dispatch( SCSIOP_RESET_DEVICE, instance, 0, NULL );
} }
}
void SCSIExecCommand( SCSIInstance *instance, int *resultLength ) void SCSIExecCommand( SCSIInstance *instance, int *resultLength )
{
if (instance)
{ {
*resultLength = instance->scsiClass->dispatch( SCSIOP_EXEC_COMMAND, instance, 0, NULL ); *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 )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_SET_COMMAND, instance, commandLength, command ); 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 )
{
if (instance)
{ {
*commandLength = instance->scsiClass->dispatch( SCSIOP_GET_COMMAND, instance, 0, command ); *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 )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_WRITE_DATA, instance, dataLength, data ); 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 )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_READ_DATA, instance, dataLength, data ); instance->scsiClass->dispatch( SCSIOP_READ_DATA, instance, dataLength, data );
} }
}
void SCSISetPhase( SCSIInstance *instance, int phase ) void SCSISetPhase( SCSIInstance *instance, int phase )
{
if (instance)
{ {
instance->scsiClass->dispatch( SCSIOP_SET_PHASE, instance, phase, NULL ); instance->scsiClass->dispatch( SCSIOP_SET_PHASE, instance, phase, NULL );
} }
}
void SCSIGetPhase( SCSIInstance *instance, int *phase ) void SCSIGetPhase( SCSIInstance *instance, int *phase )
{
if (instance)
{ {
*phase = instance->scsiClass->dispatch( SCSIOP_GET_PHASE, instance, 0, NULL ); *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 )
{ {