summaryrefslogtreecommitdiff
path: root/dev/ide_ctrl.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-06-23 17:55:54 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-06-23 17:55:54 -0400
commit17bfb1540e938406548202f3f1c941857f514c33 (patch)
tree6b39561099e011efbc9f59be4048b1cca4fa96a8 /dev/ide_ctrl.cc
parent231fac0a2b4ed7c882c6d83c279bf2a4d2083726 (diff)
parent06d8f0af5def68e395b58636d5e7d6ca69daa51f (diff)
downloadgem5-17bfb1540e938406548202f3f1c941857f514c33.tar.xz
Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-endian
--HG-- extra : convert_revision : d4938c6011173d3017f47fd592c4b5e4c8d543a3
Diffstat (limited to 'dev/ide_ctrl.cc')
-rw-r--r--dev/ide_ctrl.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/dev/ide_ctrl.cc b/dev/ide_ctrl.cc
index 46a0e8179..4805570d2 100644
--- a/dev/ide_ctrl.cc
+++ b/dev/ide_ctrl.cc
@@ -192,6 +192,22 @@ IdeController::getDisk(IdeDisk *diskPtr)
return -1;
}
+bool
+IdeController::isDiskSelected(IdeDisk *diskPtr)
+{
+ for (int i = 0; i < 4; i++) {
+ if ((long)diskPtr == (long)disks[i]) {
+ // is disk is on primary or secondary channel
+ int channel = i/2;
+ // is disk the master or slave
+ int devID = i%2;
+
+ return (dev[channel] == devID);
+ }
+ }
+ panic("Unable to find disk by pointer!!\n");
+}
+
////
// Command completion
////