diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2011-01-29 09:08:50 +0000 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2011-01-29 09:08:50 +0000 |
commit | 4a7267d48fc112037242b56478640b006c2d92aa (patch) | |
tree | 7edc78bb2442764598a91d47ca39b638aaf3d9ec /libgphoto2_port/libgphoto2_port | |
parent | dbe7654e1b3f7d04520d38144d24437cec12d6bb (diff) | |
download | libgphoto2-4a7267d48fc112037242b56478640b006c2d92aa.tar.gz |
move sense handling here
do not print sense if unchanged
git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@13501 67ed7778-7388-44ab-90cf-0a291f65f57c
Diffstat (limited to 'libgphoto2_port/libgphoto2_port')
-rw-r--r-- | libgphoto2_port/libgphoto2_port/gphoto2-port.c | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/libgphoto2_port/libgphoto2_port/gphoto2-port.c b/libgphoto2_port/libgphoto2_port/gphoto2-port.c index c18a56bed..9b2b8d9b9 100644 --- a/libgphoto2_port/libgphoto2_port/gphoto2-port.c +++ b/libgphoto2_port/libgphoto2_port/gphoto2-port.c @@ -1149,9 +1149,33 @@ int gp_port_send_scsi_cmd (GPPort *port, int to_dev, retval = port->pc->ops->send_scsi_cmd (port, to_dev, cmd, cmd_size, sense, sense_size, data, data_size); - gp_log (GP_LOG_DEBUG, "gphoto2-port", "scsi cmd result: %d, sense:", - retval); - gp_log_data ("gphoto2-port", sense, sense_size); + gp_log (GP_LOG_DEBUG, "gphoto2-port", "scsi cmd result: %d", retval); + + if (sense[0] != 0) { + gp_log (GP_LOG_DEBUG, "gphoto2-port", "sense data:"); + gp_log_data ("gphoto2-port", sense, sense_size); + /* https://secure.wikimedia.org/wikipedia/en/wiki/Key_Code_Qualifier */ + gp_log(GP_LOG_DEBUG, "gphoto2-port","sense decided:"); + if ((sense[0]&0x7f)!=0x70) { + gp_log(GP_LOG_DEBUG, "gphoto2-port","\tInvalid header."); + } + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tCurrent command read filemark: %s",(sense[2]&0x80)?"yes":"no"); + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tEarly warning passed: %s",(sense[2]&0x40)?"yes":"no"); + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tIncorrect blocklengt: %s",(sense[2]&0x20)?"yes":"no"); + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tSense Key: %d",sense[2]&0xf); + if (sense[0]&0x80) + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tResidual Length: %d",sense[3]*0x1000000+sense[4]*0x10000+sense[5]*0x100+sense[6]); + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tAdditional Sense Length: %d",sense[7]); + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tAdditional Sense Code: %d",sense[12]); + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tAdditional Sense Code Qualifier: %d",sense[13]); + if (sense[15]&0x80) { + gp_log(GP_LOG_DEBUG, "gphoto2-port", "\tIllegal Param is in %s",(sense[15]&0x40)?"the CDB":"the Data Out Phase"); + if (sense[15]&0x8) { + gp_log(GP_LOG_DEBUG, "gphoto2-port", "Pointer at %d, bit %d",sense[16]*256+sense[17],sense[15]&0x7); + } + } + } + if (!to_dev && data_size) { gp_log (GP_LOG_DEBUG, "gphoto2-port", "scsi cmd data:"); gp_log_data ("gphoto2-port", data, data_size); |