Lines 1-58
Link Here
|
1 |
|
|
|
2 |
$FreeBSD: ports/sysutils/smartmontools/files/patch-os__freebsd.cpp,v 1.5 2009/08/31 13:45:57 avl Exp $ |
3 |
|
4 |
--- os_freebsd.cpp.orig |
5 |
+++ os_freebsd.cpp |
6 |
@@ -272,7 +272,6 @@ |
7 |
} |
8 |
|
9 |
int highpoint_command_interface(__unused int fd, __unused smart_command_set command, __unused int select, __unused char *data) { |
10 |
-{ |
11 |
return -1; |
12 |
} |
13 |
|
14 |
@@ -341,6 +340,15 @@ |
15 |
request.count=512; |
16 |
copydata=1; |
17 |
break; |
18 |
+ case WRITE_LOG: |
19 |
+ memcpy(buff, data, 512); |
20 |
+ request.u.ata.feature=ATA_SMART_WRITE_LOG_SECTOR; |
21 |
+ request.u.ata.lba=select|(0xc24f<<8); |
22 |
+ request.u.ata.count=1; |
23 |
+ request.flags=ATA_CMD_WRITE; |
24 |
+ request.data=(char *)buff; |
25 |
+ request.count=512; |
26 |
+ break; |
27 |
case IDENTIFY: |
28 |
request.u.ata.command=ATA_IDENTIFY_DEVICE; |
29 |
request.flags=ATA_CMD_READ; |
30 |
@@ -525,7 +533,7 @@ |
31 |
return -1; |
32 |
} |
33 |
|
34 |
- if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { |
35 |
+ if (((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) && ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_SCSI_STATUS_ERROR)) { |
36 |
#if __FreeBSD_version > 500000 |
37 |
cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr); |
38 |
#endif |
39 |
@@ -924,6 +932,7 @@ |
40 |
static const char * fbsd_dev_prefix = "/dev/"; |
41 |
static const char * fbsd_dev_ata_disk_prefix = "ad"; |
42 |
static const char * fbsd_dev_scsi_disk_plus = "da"; |
43 |
+static const char * fbsd_dev_scsi_pass = "pass"; |
44 |
static const char * fbsd_dev_scsi_tape1 = "sa"; |
45 |
static const char * fbsd_dev_scsi_tape2 = "nsa"; |
46 |
static const char * fbsd_dev_scsi_tape3 = "esa"; |
47 |
@@ -960,6 +969,11 @@ |
48 |
return CONTROLLER_ATA; |
49 |
} |
50 |
|
51 |
+ // form /dev/pass* or pass* |
52 |
+ if (!strncmp(fbsd_dev_scsi_pass, dev_name, |
53 |
+ strlen(fbsd_dev_scsi_pass))) |
54 |
+ goto handlescsi; |
55 |
+ |
56 |
// form /dev/da* or da* |
57 |
if (!strncmp(fbsd_dev_scsi_disk_plus, dev_name, |
58 |
strlen(fbsd_dev_scsi_disk_plus))) |