Merge branch 'master' of rocky@git.sv.gnu.org:/srv/git/libcdio
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
/*
|
||||
$Id: aspi32.c,v 1.11 2008/04/21 18:30:21 karl Exp $
|
||||
|
||||
Copyright (C) 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
|
||||
Copyright (C) 2004, 2005, 2008, 2009 Rocky Bernstein <rocky@gnu.org>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -491,9 +489,10 @@ run_mmc_cmd_aspi( void *p_user_data, unsigned int i_timeout_ms,
|
||||
cdio_mmc_direction_t e_direction,
|
||||
unsigned int i_buf, /*in/out*/ void *p_buf )
|
||||
{
|
||||
const _img_private_t *p_env = p_user_data;
|
||||
_img_private_t *p_env = p_user_data;
|
||||
HANDLE hEvent;
|
||||
struct SRB_ExecSCSICmd ssc;
|
||||
int sense_size;
|
||||
|
||||
/* Create the transfer completion event */
|
||||
hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||
@@ -502,6 +501,7 @@ run_mmc_cmd_aspi( void *p_user_data, unsigned int i_timeout_ms,
|
||||
return 1;
|
||||
}
|
||||
|
||||
p_env->gen.scsi_mmc_sense_valid = 0;
|
||||
memset( &ssc, 0, sizeof( ssc ) );
|
||||
|
||||
ssc.SRB_Cmd = SC_EXEC_SCSI_CMD;
|
||||
@@ -536,10 +536,18 @@ run_mmc_cmd_aspi( void *p_user_data, unsigned int i_timeout_ms,
|
||||
/* check that the transfer went as planned */
|
||||
if( ssc.SRB_Status != SS_COMP ) {
|
||||
cdio_info("ASPI: %s", aspierror(ssc.SRB_Status));
|
||||
return 2;
|
||||
return DRIVER_OP_ERROR;
|
||||
} else {
|
||||
sense_size = ssc.SenseArea[7] + 8; /* SPC 4.5.3, Table 26:
|
||||
252 bytes legal,
|
||||
263 bytes possible */
|
||||
if (sense_size > SENSE_LEN)
|
||||
sense_size = SENSE_LEN;
|
||||
memcpy((void *) p_env->gen.scsi_mmc_sense, ssc.SenseArea, sense_size);
|
||||
p_env->gen.scsi_mmc_sense_valid = sense_size;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return DRIVER_OP_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user