#27 Inquiry command is working

This commit is contained in:
akuker
2020-09-13 14:59:49 -05:00
parent 516d1848fa
commit 05dda11155
2 changed files with 33 additions and 9 deletions

View File

@@ -275,10 +275,10 @@ void FASTCALL SCSIDEV::Execute()
CmdRezero(); CmdRezero();
return; return;
// // Nuvolink reset statistics // Nuvolink reset statistics
// case eCmdResetStatistics: case eCmdResetStatistics:
// CmdResetStatistics(); CmdResetStatistics();
// return; return;
// REQUEST SENSE // REQUEST SENSE
case eCmdRequestSense: case eCmdRequestSense:
@@ -1150,6 +1150,18 @@ void FASTCALL SCSIDEV::CmdReadToc()
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void FASTCALL SCSIDEV::CmdMediaSense(){ void FASTCALL SCSIDEV::CmdMediaSense(){
ASSERT(this); ASSERT(this);
LOGTRACE("<%d> Received CmdMediaSense command for Nuvolink (%s)", this->GetID(), __PRETTY_FUNCTION__);
Status();
}
void FASTCALL SCSIDEV::CmdResetStatistics(){
DWORD lun;
ASSERT(this);
LOGTRACE("<%d> Received CmdResetStatistics command for Nuvolink (%s)", this->GetID(), __PRETTY_FUNCTION__);
Status(); Status();
} }
@@ -1157,12 +1169,14 @@ void FASTCALL SCSIDEV::CmdMediaSense(){
void FASTCALL SCSIDEV::CmdSendPacket(){ void FASTCALL SCSIDEV::CmdSendPacket(){
ASSERT(this); ASSERT(this);
LOGTRACE("<%d> Received CmdSendPacket command for Nuvolink (%s)", this->GetID(), __PRETTY_FUNCTION__);
Status(); Status();
} }
void FASTCALL SCSIDEV::CmdChangeMacAddr(){ void FASTCALL SCSIDEV::CmdChangeMacAddr(){
ASSERT(this); ASSERT(this);
LOGTRACE("<%d> Received CmdChangeMacAddr command for Nuvolink", this->GetID());
Status(); Status();
} }
@@ -1171,6 +1185,7 @@ void SCSIDEV::FASTCALL CmdSetMcastReg(){
DWORD lun; DWORD lun;
ASSERT(this); ASSERT(this);
LOGTRACE("<%d> Received CmdSetMcastReg command for Nuvolink", this->GetID());
Status(); Status();
} }
@@ -1363,7 +1378,9 @@ void FASTCALL SCSIDEV::CmdGetMessage10()
} }
// Error if not a host bridge // Error if not a host bridge
if (ctrl.unit[lun]->GetID() != MAKEID('S', 'C', 'B', 'R')) { if ((ctrl.unit[lun]->GetID() != MAKEID('S', 'C', 'B', 'R')) &&
(ctrl.unit[lun]->GetID() != MAKEID('S', 'C', 'N', 'L'))){
LOGWARN("Received a GetMessage10 command for a non-bridge unit");
Error(); Error();
return; return;
} }

View File

@@ -50,6 +50,11 @@ SCSINuvolink::SCSINuvolink() : Disk()
// TAP Driver Generation // TAP Driver Generation
tap = new CTapDriver(); tap = new CTapDriver();
m_bTapEnable = tap->Init(); m_bTapEnable = tap->Init();
if(!m_bTapEnable){
LOGERROR("Unable to open the TAP interface");
}else {
LOGINFO("Tap interface created")
}
// Generate MAC Address // Generate MAC Address
memset(mac_addr, 0x00, 6); memset(mac_addr, 0x00, 6);
@@ -61,6 +66,8 @@ SCSINuvolink::SCSINuvolink() : Disk()
// Packet reception flag OFF // Packet reception flag OFF
packet_enable = FALSE; packet_enable = FALSE;
#endif // RASCSI && !BAREMETAL #endif // RASCSI && !BAREMETAL
LOGTRACE("SCSINuvolink Constructor End");
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -88,8 +95,8 @@ SCSINuvolink::~SCSINuvolink()
int FASTCALL SCSINuvolink::Inquiry( int FASTCALL SCSINuvolink::Inquiry(
const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor) const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor)
{ {
char rev[32]; // char rev[32];
int size; // int size;
WORD extended_size=0; WORD extended_size=0;
DWORD junk_data=0; DWORD junk_data=0;
WORD junk_data_word=0; WORD junk_data_word=0;
@@ -144,8 +151,8 @@ int FASTCALL SCSINuvolink::Inquiry(
buf[2] = 0x02; buf[2] = 0x02;
/* SCSI 2 response type */ /* SCSI 2 response type */
buf[3] = 0x02; buf[3] = 0x02;
/* No additional length */ /* Length will be 92 (96 - 4 byte header)*/
buf[4] = 0; buf[4] = 92;
// Vendor name // Vendor name
memcpy(&buf[8], m_vendor_name, strlen( m_vendor_name)); memcpy(&buf[8], m_vendor_name, strlen( m_vendor_name));