summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/src/DriveMgr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/Kernel/src/DriveMgr.cc')
-rw-r--r--dev/Kernel/src/DriveMgr.cc26
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);