*
* Home page of code is: http://smartmontools.sourceforge.net
*
- * Copyright (C) 2003-8 Bruce Allen <smartmontools-support@lists.sourceforge.net>
- * Copyright (C) 2003-8 Doug Gilbert <dougg@torque.net>
- * Copyright (C) 2008 Hank Wu <hank@areca.com.tw>
- * Copyright (C) 2008 Oliver Bock <brevilo@users.sourceforge.net>
- * Copyright (C) 2008-9 Christian Franke <smartmontools-support@lists.sourceforge.net>
- * Copyright (C) 2008 Jordan Hargrave <jordan_hargrave@dell.com>
+ * Copyright (C) 2003-10 Bruce Allen <smartmontools-support@lists.sourceforge.net>
+ * Copyright (C) 2003-10 Doug Gilbert <dgilbert@interlog.com>
+ * Copyright (C) 2008 Hank Wu <hank@areca.com.tw>
+ * Copyright (C) 2008 Oliver Bock <brevilo@users.sourceforge.net>
+ * Copyright (C) 2008-10 Christian Franke <smartmontools-support@lists.sourceforge.net>
+ * Copyright (C) 2008 Jordan Hargrave <jordan_hargrave@dell.com>
*
* Parts of this file are derived from code that was
*
#define ARGUSED(x) ((void)(x))
-const char *os_XXXX_c_cvsid="$Id: os_linux.cpp 3053 2010-01-28 20:05:33Z chrfranke $" \
+const char *os_XXXX_c_cvsid="$Id: os_linux.cpp 3098 2010-04-30 17:35:35Z chrfranke $" \
ATACMDS_H_CVSID CONFIG_H_CVSID INT64_H_CVSID OS_LINUX_H_CVSID SCSICMDS_H_CVSID UTILITY_H_CVSID;
/* for passing global control variables */
// look for nonexistent devices/ports
if ( in.in_regs.command == ATA_IDENTIFY_DEVICE
- && !nonempty((unsigned char *)in.buffer, in.size)) {
+ && !nonempty(in.buffer, in.size)) {
return set_err(ENODEV, "No drive on port %d", m_disknum);
}
if (scan_ata)
get_dev_list(devlist, "/dev/hd[a-t]", true, false, type, false);
- if (scan_scsi) // Try USB autodetection if no type specifed
- get_dev_list(devlist, "/dev/sd[a-z]", false, true, type, !*type);
+ if (scan_scsi) {
+ bool autodetect = !*type; // Try USB autodetection if no type specifed
+ get_dev_list(devlist, "/dev/sd[a-z]", false, true, type, autodetect);
+ // Support up to 104 devices
+ get_dev_list(devlist, "/dev/sd[a-c][a-z]", false, true, type, autodetect);
+ }
// if we found traditional links, we are done
if (devlist.size() > 0)
set_err(EINVAL, "Option -d cciss,N requires N to be a non-negative integer");
return 0;
}
- if (!(0 <= disknum && disknum <= 15)) {
- set_err(EINVAL, "Option -d cciss,N (N=%d) must have 0 <= N <= 15", disknum);
+ if (!(0 <= disknum && disknum <= 127)) {
+ set_err(EINVAL, "Option -d cciss,N (N=%d) must have 0 <= N <= 127", disknum);
return 0;
}
return new linux_cciss_device(this, name, disknum);