mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
Fix build on FreeBSD >= 9.
Import commit d8f73a5 from upstream. The scsi_sense_data struct has changed in 9 after r225950, so compilation failed. Instead of accessing the struct fields manually, we now use scsi_extract_sense, which works fine in all our supported releases (there is no change in terms of functionality). Bump PORTREVISION. Aproved by: avilla (mentor, implicit)
This commit is contained in:
parent
d881ac750d
commit
8bcc0d1381
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=284801
2 changed files with 96 additions and 1 deletions
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
PORTNAME= k3b
|
PORTNAME= k3b
|
||||||
PORTVERSION= 2.0.2
|
PORTVERSION= 2.0.2
|
||||||
PORTREVISION= 2
|
PORTREVISION= 3
|
||||||
CATEGORIES= sysutils multimedia kde
|
CATEGORIES= sysutils multimedia kde
|
||||||
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION}
|
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
commit d8f73a5f66c6bbebac52a8b784affb106b188279
|
||||||
|
Author: Raphael Kubo da Costa <rakuco@FreeBSD.org>
|
||||||
|
Date: Fri Oct 28 00:16:58 2011 -0200
|
||||||
|
|
||||||
|
k3bscsicommand_bsd: Do not access the scsi_sense_data fields manually.
|
||||||
|
|
||||||
|
cam users are expected to retrieve those values with scsi_extract_sense
|
||||||
|
(or, since FreeBSD 9, scsi_extract_sense_len).
|
||||||
|
|
||||||
|
FreeBSD 9 has changed the scsi_sense_data struct, but everything works
|
||||||
|
fine in all supported releases if we just use scsi_extract_sense.
|
||||||
|
|
||||||
|
CCMAIL: michalm@jabster.pl
|
||||||
|
|
||||||
|
diff --git a/libk3bdevice/k3bscsicommand_bsd.cpp b/libk3bdevice/k3bscsicommand_bsd.cpp
|
||||||
|
index ce6508e..52eda04 100644
|
||||||
|
--- ./libk3bdevice/k3bscsicommand_bsd.cpp
|
||||||
|
+++ ./libk3bdevice/k3bscsicommand_bsd.cpp
|
||||||
|
@@ -103,16 +103,16 @@ int K3b::Device::ScsiCommand::transport( TransportDirection dir,
|
||||||
|
m_device->usageUnlock();
|
||||||
|
|
||||||
|
struct scsi_sense_data* senset = (struct scsi_sense_data*)sense;
|
||||||
|
- debugError( d->ccb.csio.cdb_io.cdb_bytes[0],
|
||||||
|
- senset->error_code & SSD_ERRCODE,
|
||||||
|
- senset->flags & SSD_KEY,
|
||||||
|
- senset->add_sense_code,
|
||||||
|
- senset->add_sense_code_qual );
|
||||||
|
+ int errorCode, senseKey, addSenseCode, addSenseCodeQual;
|
||||||
|
+ scsi_extract_sense( senset, &errorCode, &senseKey, &addSenseCode,
|
||||||
|
+ &addSenseCodeQual );
|
||||||
|
+ debugError( d->ccb.csio.cdb_io.cdb_bytes[0], errorCode, senseKey,
|
||||||
|
+ addSenseCode, addSenseCodeQual );
|
||||||
|
|
||||||
|
- int result = (((senset->error_code & SSD_ERRCODE)<<24) & 0xF000 |
|
||||||
|
- ((senset->flags & SSD_KEY)<<16) & 0x0F00 |
|
||||||
|
- (senset->add_sense_code<<8) & 0x00F0 |
|
||||||
|
- (senset->add_sense_code_qual) & 0x000F );
|
||||||
|
+ int result = ((errorCode<<24) & 0xF000 |
|
||||||
|
+ (senseKey<<16) & 0x0F00 |
|
||||||
|
+ (addSenseCode<<8) & 0x00F0 |
|
||||||
|
+ (addSenseCodeQual) & 0x000F );
|
||||||
|
|
||||||
|
return result ? result : ret;
|
||||||
|
}
|
||||||
|
@@ -152,11 +152,11 @@ int K3b::Device::ScsiCommand::transport( TransportDirection dir,
|
||||||
|
kDebug() << "(K3b::Device::ScsiCommand) transport failed (2): " << ret;
|
||||||
|
ret = -1;
|
||||||
|
struct scsi_sense_data* senset = (struct scsi_sense_data*)sense;
|
||||||
|
- debugError( d->ccb.csio.cdb_io.cdb_bytes[0],
|
||||||
|
- senset->error_code & SSD_ERRCODE,
|
||||||
|
- senset->flags & SSD_KEY,
|
||||||
|
- senset->add_sense_code,
|
||||||
|
- senset->add_sense_code_qual );
|
||||||
|
+ int errorCode, senseKey, addSenseCode, addSenseCodeQual;
|
||||||
|
+ scsi_extract_sense( senset, &errorCode, &senseKey, &addSenseCode,
|
||||||
|
+ &addSenseCodeQual );
|
||||||
|
+ debugError( d->ccb.csio.cdb_io.cdb_bytes[0], errorCode, senseKey,
|
||||||
|
+ addSenseCode, addSenseCodeQual );
|
||||||
|
|
||||||
|
if( needToClose )
|
||||||
|
m_device->close();
|
||||||
|
@@ -170,11 +170,11 @@ int K3b::Device::ScsiCommand::transport( TransportDirection dir,
|
||||||
|
errno=EIO,-1;
|
||||||
|
ret = -1;
|
||||||
|
struct scsi_sense_data* senset = (struct scsi_sense_data*)sense;
|
||||||
|
- debugError( d->ccb.csio.cdb_io.cdb_bytes[0],
|
||||||
|
- senset->error_code & SSD_ERRCODE,
|
||||||
|
- senset->flags & SSD_KEY,
|
||||||
|
- senset->add_sense_code,
|
||||||
|
- senset->add_sense_code_qual );
|
||||||
|
+ int errorCode, senseKey, addSenseCode, addSenseCodeQual;
|
||||||
|
+ scsi_extract_sense( senset, &errorCode, &senseKey, &addSenseCode,
|
||||||
|
+ &addSenseCodeQual );
|
||||||
|
+ debugError( d->ccb.csio.cdb_io.cdb_bytes[0], errorCode, senseKey,
|
||||||
|
+ addSenseCode, addSenseCodeQual );
|
||||||
|
|
||||||
|
if( needToClose )
|
||||||
|
m_device->close();
|
||||||
|
@@ -193,11 +193,11 @@ int K3b::Device::ScsiCommand::transport( TransportDirection dir,
|
||||||
|
else
|
||||||
|
CREAM_ON_ERRNO(((unsigned char *)&d->ccb.csio.sense_data));
|
||||||
|
struct scsi_sense_data* senset = (struct scsi_sense_data*)sense;
|
||||||
|
- debugError( d->ccb.csio.cdb_io.cdb_bytes[0],
|
||||||
|
- senset->error_code & SSD_ERRCODE,
|
||||||
|
- senset->flags & SSD_KEY,
|
||||||
|
- senset->add_sense_code,
|
||||||
|
- senset->add_sense_code_qual );
|
||||||
|
+ int errorCode, senseKey, addSenseCode, addSenseCodeQual;
|
||||||
|
+ scsi_extract_sense( senset, &errorCode, &senseKey, &addSenseCode,
|
||||||
|
+ &addSenseCodeQual );
|
||||||
|
+ debugError( d->ccb.csio.cdb_io.cdb_bytes[0], errorCode, senseKey,
|
||||||
|
+ addSenseCode, addSenseCodeQual );
|
||||||
|
|
||||||
|
if( needToClose )
|
||||||
|
m_device->close();
|
Loading…
Add table
Reference in a new issue