Added Cmd C8-CC

This commit is contained in:
akuker 2022-01-07 20:53:42 -06:00
parent d8594a5b03
commit 983b0257c9
3 changed files with 145 additions and 1 deletions

View File

@ -70,6 +70,11 @@ public:
eCmdReadCapacity16_ReadLong16 = 0x9E,
eCmdWriteLong16 = 0x9F,
eCmdReportLuns = 0xA0
eCmdUnknownPowerViewC8 = 0xC8,
eCmdUnknownPowerviewC9 = 0xC9,
eCmdUnknownPowerviewCA = 0xCA,
eCmdUnknownPowerviewCB = 0xCB,
eCmdUnknownPowerviewCC = 0xCC,
};
// Internal data definition

View File

@ -62,7 +62,11 @@ SCSIPowerView::SCSIPowerView() : Disk("SCPV")
// AddCommand(SCSIDEV::eCmdRetrieveStats, "RetrieveStats", &SCSIPowerView::RetrieveStatistics);
// AddCommand(SCSIDEV::eCmdSetIfaceMode, "SetIfaceMode", &SCSIPowerView::SetInterfaceMode);
// AddCommand(SCSIDEV::eCmdSetMcastAddr, "SetMcastAddr", &SCSIPowerView::SetMcastAddr);
// AddCommand(SCSIDEV::eCmdEnableInterface, "EnableInterface", &SCSIPowerView::EnableInterface);
AddCommand(SCSIDEV::eCmdUnknownPowerviewC8, "EnableInterface", &SCSIPowerView::UnknownCommandC8);
AddCommand(SCSIDEV::eCmdUnknownPowerviewC9, "EnableInterface", &SCSIPowerView::UnknownCommandC9);
AddCommand(SCSIDEV::eCmdUnknownPowerviewCA, "EnableInterface", &SCSIPowerView::UnknownCommandCA);
AddCommand(SCSIDEV::eCmdUnknownPowerviewCB, "EnableInterface", &SCSIPowerView::UnknownCommandCB);
AddCommand(SCSIDEV::eCmdUnknownPowerviewCC, "EnableInterface", &SCSIPowerView::UnknownCommandCC);
struct fb_var_screeninfo fbinfo;
struct fb_fix_screeninfo fbfixinfo;
@ -134,6 +138,134 @@ void SCSIPowerView::AddCommand(SCSIDEV::scsi_command opcode, const char* name, v
commands[opcode] = new command_t(name, execute);
}
//---------------------------------------------------------------------------
//
// Unknown Command C8
//
//---------------------------------------------------------------------------
void SCSIPowerView::UnknownCommandC8(SASIDEV *controller)
{
// Set transfer amount
ctrl->length = ctrl->cmd[6];
if (ctrl->length <= 0) {
// Failure (Error)
controller->Error();
return;
}
// Set next block
ctrl->blocks = 1;
ctrl->next = 1;
controller->DataOut();
}
//---------------------------------------------------------------------------
//
// Unknown Command C9
//
//---------------------------------------------------------------------------
void SCSIPowerView::UnknownCommandC9(SASIDEV *controller)
{
// Set transfer amount
ctrl->length = ctrl->cmd[6];
if (ctrl->length <= 0) {
// Failure (Error)
controller->Error();
return;
}
// Set next block
ctrl->blocks = 1;
ctrl->next = 1;
controller->DataOut();
}
//---------------------------------------------------------------------------
//
// Unknown Command CA
//
//---------------------------------------------------------------------------
void SCSIPowerView::UnknownCommandCA(SASIDEV *controller)
{
// Set transfer amount
ctrl->length = ctrl->cmd[6];
if (ctrl->length <= 0) {
// Failure (Error)
controller->Error();
return;
}
// Set next block
ctrl->blocks = 1;
ctrl->next = 1;
controller->DataOut();
}
//---------------------------------------------------------------------------
//
// Unknown Command CB
//
//---------------------------------------------------------------------------
void SCSIPowerView::UnknownCommandCB(SASIDEV *controller)
{
// Set transfer amount
ctrl->length = ctrl->cmd[6];
if (ctrl->length <= 0) {
// Failure (Error)
controller->Error();
return;
}
// Set next block
ctrl->blocks = 1;
ctrl->next = 1;
controller->DataOut();
}
//---------------------------------------------------------------------------
//
// Unknown Command CC
//
//---------------------------------------------------------------------------
void SCSIPowerView::UnknownCommandCC(SASIDEV *controller)
{
// Set transfer amount
ctrl->length = ctrl->cmd[6];
if (ctrl->length <= 0) {
// Failure (Error)
controller->Error();
return;
}
// Set next block
ctrl->blocks = 1;
ctrl->next = 1;
controller->DataOut();
}
bool SCSIPowerView::Dispatch(SCSIDEV *controller)
{
ctrl = controller->GetCtrl();

View File

@ -65,6 +65,13 @@ public:
// void SetMacAddr(const DWORD *cdb, BYTE *buffer); // Set MAC address
void UnknownCommandC8(SASIDEV *controller);
void UnknownCommandC9(SASIDEV *controller);
void UnknownCommandCA(SASIDEV *controller);
void UnknownCommandCB(SASIDEV *controller);
void UnknownCommandCC(SASIDEV *controller);
// void TestUnitReady(SASIDEV *) override;
// void Read6(SASIDEV *) override;
// void Write6(SASIDEV *) override;