mirror of
https://github.com/akuker/RASCSI.git
synced 2024-12-22 15:30:09 +00:00
Refactoring
This commit is contained in:
parent
5880ddc05d
commit
3814c242a3
@ -844,7 +844,7 @@ void SASIDEV::CmdAssign()
|
||||
LOGTRACE("%s ASSIGN Command ", __PRETTY_FUNCTION__);
|
||||
|
||||
// Command processing on drive
|
||||
bool status = ctrl.device->Assign(ctrl.cmd);
|
||||
bool status = ctrl.device->CheckReady();
|
||||
if (!status) {
|
||||
// Failure (Error)
|
||||
Error();
|
||||
@ -868,7 +868,7 @@ void SASIDEV::CmdSpecify()
|
||||
LOGTRACE("%s SPECIFY Command ", __PRETTY_FUNCTION__);
|
||||
|
||||
// Command processing on drive
|
||||
bool status = ctrl.device->Assign(ctrl.cmd);
|
||||
bool status = ctrl.device->CheckReady();
|
||||
if (!status) {
|
||||
// Failure (Error)
|
||||
Error();
|
||||
|
@ -394,7 +394,7 @@ void Disk::Inquiry(SASIDEV *controller)
|
||||
|
||||
void Disk::ModeSelect6(SASIDEV *controller)
|
||||
{
|
||||
LOGTRACE("MODE SELECT (6) for unsupported page %d", ctrl->buffer[0]);
|
||||
LOGTRACE("MODE SELECT(6) for unsupported page %d", ctrl->buffer[0]);
|
||||
|
||||
ctrl->length = ModeSelectCheck6(ctrl->cmd);
|
||||
if (ctrl->length <= 0) {
|
||||
@ -407,7 +407,7 @@ void Disk::ModeSelect6(SASIDEV *controller)
|
||||
|
||||
void Disk::ModeSelect10(SASIDEV *controller)
|
||||
{
|
||||
LOGTRACE("MODE SELECT (10) for unsupported page %d", ctrl->buffer[0]);
|
||||
LOGTRACE("MODE SELECT(10) for unsupported page %d", ctrl->buffer[0]);
|
||||
|
||||
ctrl->length = ModeSelectCheck10(ctrl->cmd);
|
||||
if (ctrl->length <= 0) {
|
||||
@ -466,11 +466,14 @@ void Disk::SendDiagnostic(SASIDEV *controller)
|
||||
|
||||
void Disk::PreventAllowMediumRemoval(SASIDEV *controller)
|
||||
{
|
||||
if (!Removal(ctrl->cmd)) {
|
||||
if (!CheckReady()) {
|
||||
controller->Error();
|
||||
return;
|
||||
}
|
||||
|
||||
// Set Lock flag
|
||||
SetLocked(ctrl->cmd[4] & 0x01);
|
||||
|
||||
controller->Status();
|
||||
}
|
||||
|
||||
@ -1304,16 +1307,6 @@ void Disk::Seek10(SASIDEV *controller)
|
||||
Seek(controller);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ASSIGN
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
bool Disk::Assign(const DWORD* /*cdb*/)
|
||||
{
|
||||
return CheckReady();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// START STOP UNIT
|
||||
@ -1362,26 +1355,6 @@ bool Disk::SendDiag(const DWORD *cdb)
|
||||
return true;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// PREVENT/ALLOW MEDIUM REMOVAL
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
bool Disk::Removal(const DWORD *cdb)
|
||||
{
|
||||
ASSERT(cdb);
|
||||
|
||||
if (!CheckReady()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set Lock flag
|
||||
SetLocked(cdb[4] & 0x01);
|
||||
|
||||
// REMOVAL Success
|
||||
return true;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// READ CAPACITY
|
||||
@ -1558,7 +1531,7 @@ void Disk::Release10(SASIDEV *controller)
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Get start sector and sector count for a READ/WRITE(10/16) operation
|
||||
// Get start sector and sector count for a READ/WRITE operation
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
bool Disk::GetStartAndCount(SASIDEV *controller, uint64_t& start, uint32_t& count, access_mode mode)
|
||||
|
@ -120,10 +120,8 @@ public:
|
||||
virtual int Inquiry(const DWORD *cdb, BYTE *buf) = 0; // INQUIRY command
|
||||
virtual int WriteCheck(DWORD block); // WRITE check
|
||||
virtual bool Write(const DWORD *cdb, const BYTE *buf, DWORD block); // WRITE command
|
||||
bool Assign(const DWORD *cdb); // ASSIGN command
|
||||
bool StartStop(const DWORD *cdb); // START STOP UNIT command
|
||||
bool SendDiag(const DWORD *cdb); // SEND DIAGNOSTIC command
|
||||
bool Removal(const DWORD *cdb); // PREVENT/ALLOW MEDIUM REMOVAL command
|
||||
|
||||
virtual int Read(const DWORD *cdb, BYTE *buf, uint64_t block);
|
||||
int ReadDefectData10(const DWORD *cdb, BYTE *buf); // READ DEFECT DATA(10) command
|
||||
@ -141,6 +139,7 @@ public:
|
||||
uint64_t GetBlockCount() const;
|
||||
void SetBlockCount(uint32_t);
|
||||
bool GetStartAndCount(SASIDEV *, uint64_t&, uint32_t&, access_mode);
|
||||
bool CheckReady();
|
||||
|
||||
// TODO This method should not be called by SASIDEV
|
||||
virtual bool ModeSelect(const DWORD *cdb, const BYTE *buf, int length);
|
||||
@ -155,7 +154,6 @@ protected:
|
||||
int AddCDROM(bool change, BYTE *buf); // Add CD-ROM
|
||||
int AddCDDA(bool, BYTE *buf); // Add CD_DA
|
||||
virtual int AddVendor(int page, bool change, BYTE *buf); // Add vendor special info
|
||||
bool CheckReady(); // Check if ready
|
||||
virtual int RequestSense(const DWORD *cdb, BYTE *buf); // REQUEST SENSE command
|
||||
|
||||
// Internal data
|
||||
|
Loading…
Reference in New Issue
Block a user