diff options
Diffstat (limited to 'dev/Kernel/src/DriveMgr.cc')
| -rw-r--r-- | dev/Kernel/src/DriveMgr.cc | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/dev/Kernel/src/DriveMgr.cc b/dev/Kernel/src/DriveMgr.cc index 544c0c26..ab966575 100644 --- a/dev/Kernel/src/DriveMgr.cc +++ b/dev/Kernel/src/DriveMgr.cc @@ -32,17 +32,6 @@ namespace Kernel return; } - if (pckt->fPacketDrive->fSectorSz == 0) - { -#ifdef __ATA_PIO__ - pckt->fPacketDrive->fSectorSz = kATASectorSize; -#elif defined(__AHCI__) - pckt->fPacketDrive->fSectorSz = kAHCISectorSize; -#else - pckt->fPacketDrive->fSectorSz = 512; -#endif - } - if (!StringBuilder::Equals("fs/detect-packet", pckt->fPacketMime) && pckt->fPacketDrive->fLbaStart > 0 && pckt->fPacketDrive->fLbaEnd > 0) { @@ -53,6 +42,8 @@ namespace Kernel } } + kcout << pckt->fPacketMime << endl; + #ifdef __AHCI__ drv_std_read(pckt->fPacketLba, (Char*)pckt->fPacketContent, pckt->fPacketDrive->fSectorSz, pckt->fPacketSize); #elif defined(__ATA_PIO__) || defined(__ATA_DMA__) @@ -70,15 +61,18 @@ namespace Kernel return; } - if (!StringBuilder::Equals("fs/detect-packet", pckt->fPacketMime)) + if (!StringBuilder::Equals("fs/detect-packet", pckt->fPacketMime) && + pckt->fPacketDrive->fLbaStart > 0 && pckt->fPacketDrive->fLbaEnd > 0) { - if (pckt->fPacketLba < pckt->fPacketDrive->fLbaStart) - return; - if (pckt->fPacketLba > pckt->fPacketDrive->fLbaEnd) + { + pckt->fPacketGood = NO; return; + } } + kcout << pckt->fPacketMime << endl; + #ifdef __AHCI__ drv_std_write(pckt->fPacketLba, (Char*)pckt->fPacketContent, pckt->fPacketDrive->fSectorSz, pckt->fPacketSize); #elif defined(__ATA_PIO__) || defined(__ATA_DMA__) @@ -197,7 +191,7 @@ namespace Kernel #elif defined(__AHCI__) trait.fSectorSz = kAHCISectorSize; #else - trait.fSectorSz = 512; + trait.fSectorSz = 512; #endif trait.fPacket.fPacketLba = kEPMBootBlockLba; trait.fPacket.fPacketSize = sizeof(EPM_PART_BLOCK); |
