+20191119 6.X.X
+ - Fix to prevent sending floppy geometry mode page when not configured as
+ a floppy (Thanks Landon Rodgers)
+ - Fix for VMS 5.5-2 Inquiry allocation lengths. Requires setting "vms" quirk
+ mode in the XML config (Thanks Landon Rodgers)
+
20191030 6.2.8
- Fix incorrect results from the self-test function.
S2S_CFG_QUIRKS_NONE = 0,
S2S_CFG_QUIRKS_APPLE = 1,
S2S_CFG_QUIRKS_OMTI = 2,
- S2S_CFG_QUIRKS_XEBEC = 4
+ S2S_CFG_QUIRKS_XEBEC = 4,
+ S2S_CFG_QUIRKS_VMS = 8
} S2S_CFG_QUIRKS;
typedef enum
// Copyright (C) 2013 Michael McMaster <michael@codesrc.com>\r
+// Copyright (C) 2019 Landon Rodgers <g.landon.rodgers@gmail.com>\r
//\r
// This file is part of SCSI2SD.\r
//\r
\r
if (scsiDev.phase == DATA_IN)\r
{\r
+ // VAX workaround\r
+ if (allocationLength == 255 &&\r
+ (scsiDev.target->cfg->quirks & S2S_CFG_QUIRKS_VMS))\r
+ {\r
+ allocationLength = 254;\r
+ }\r
+\r
// "real" hard drives send back exactly allocationLenth bytes, padded\r
// with zeroes. This only seems to happen for Inquiry responses, and not\r
// other commands that also supply an allocation length such as Mode Sense or\r
config.headsPerCylinder = fromLE16(config.headsPerCylinder);
const uint8_t* begin = reinterpret_cast<const uint8_t*>(&config);
+
return std::vector<uint8_t>(begin, begin + sizeof(config));
}
{
s << "xebec";
}
+ else if (config.quirks == S2S_CFG_QUIRKS_VMS)
+ {
+ s << "vms";
+ }
s <<
"</quirks>\n" <<
{
result.quirks |= S2S_CFG_QUIRKS_XEBEC;
}
+ else if (quirk == "vms")
+ {
+ result.quirks |= S2S_CFG_QUIRKS_VMS;
+ }
}
}
else if (child->GetName() == "deviceType")