summaryrefslogtreecommitdiff
path: root/dev/ide_disk.cc
diff options
context:
space:
mode:
authorAndrew Schultz <alschult@umich.edu>2004-05-06 15:21:07 -0400
committerAndrew Schultz <alschult@umich.edu>2004-05-06 15:21:07 -0400
commit4a5dcc37bfb26c152c195061fa70c7aa246b5ca6 (patch)
tree7c74980b640a7ffdca5bf601a0363c62b6b38257 /dev/ide_disk.cc
parent8538ffdb3682d71c90c33b92b436a2d9cbdc42c3 (diff)
downloadgem5-4a5dcc37bfb26c152c195061fa70c7aa246b5ca6.tar.xz
Whole mess'o'changes.. see individual files
arch/alpha/vtophys.cc: Removed buggy code that tries to fix PAL addresses (may cause problems while trying to debug in PAL code, but that should do this fix outside of vtophys) base/loader/symtab.cc: base/loader/symtab.hh: cpu/exetrace.cc: Changed InstExec traces to always print a symbol name dev/ide_ctrl.cc: dev/ide_disk.cc: Tabs dev/ide_disk.hh: Change buffer size dev/tsunami_pchip.cc: Fix translatePciToDma to support scatter gather mapping kern/linux/linux_system.cc: Force simulator to wait until remote debugger attaches (should be removed or turned on/off with a flag) --HG-- extra : convert_revision : 1d08aebe3f448c87a963dd613de3e2e0cff0d48d
Diffstat (limited to 'dev/ide_disk.cc')
-rw-r--r--dev/ide_disk.cc21
1 files changed, 14 insertions, 7 deletions
diff --git a/dev/ide_disk.cc b/dev/ide_disk.cc
index 77e809ee6..f4e73c833 100644
--- a/dev/ide_disk.cc
+++ b/dev/ide_disk.cc
@@ -55,8 +55,9 @@ using namespace std;
IdeDisk::IdeDisk(const string &name, DiskImage *img, PhysicalMemory *phys,
int id, int delay)
- : SimObject(name), ctrl(NULL), image(img), physmem(phys), dmaTransferEvent(this),
- dmaReadWaitEvent(this), dmaWriteWaitEvent(this), dmaPrdReadEvent(this),
+ : SimObject(name), ctrl(NULL), image(img), physmem(phys),
+ dmaTransferEvent(this), dmaReadWaitEvent(this),
+ dmaWriteWaitEvent(this), dmaPrdReadEvent(this),
dmaReadEvent(this), dmaWriteEvent(this)
{
diskDelay = (delay * ticksPerSecond / 1000) / image->size();
@@ -379,8 +380,9 @@ IdeDisk::dmaWriteDone()
}
// copy the data to memory
- Addr dmaAddr =
- ctrl->tsunami->pchip->translatePciToDma(curPrd.getBaseAddr());
+ Addr dmaAddr = ctrl->tsunami->pchip->
+ translatePciToDma(curPrd.getBaseAddr());
+
memcpy(physmem->dma_addr(dmaAddr, curPrd.getByteCount()),
(void *)dataBuffer, curPrd.getByteCount());
@@ -665,7 +667,9 @@ IdeDisk::updateState(DevAction_t action)
cmdReg.status |= STATUS_DRQ_BIT;
// put the first two bytes into the data register
- memcpy((void *)&cmdReg.data0, (void *)dataBuffer, sizeof(uint16_t));
+ memcpy((void *)&cmdReg.data0, (void *)dataBuffer,
+ sizeof(uint16_t));
+
// copy the data into the data buffer
if (curCommand == WIN_IDENTIFY)
memcpy((void *)dataBuffer, (void *)&driveID,
@@ -753,7 +757,9 @@ IdeDisk::updateState(DevAction_t action)
break;
case Transfer_Data_Out:
- if (action == ACT_DATA_WRITE_BYTE || action == ACT_DATA_WRITE_SHORT) {
+ if (action == ACT_DATA_WRITE_BYTE ||
+ action == ACT_DATA_WRITE_SHORT) {
+
if (action == ACT_DATA_READ_BYTE) {
panic("DEBUG: WRITING DATA ONE BYTE AT A TIME!\n");
} else {
@@ -863,7 +869,8 @@ END_INIT_SIM_OBJECT_PARAMS(IdeDisk)
CREATE_SIM_OBJECT(IdeDisk)
{
- return new IdeDisk(getInstanceName(), image, physmem, driveID, disk_delay);
+ return new IdeDisk(getInstanceName(), image, physmem, driveID,
+ disk_delay);
}
REGISTER_SIM_OBJECT("IdeDisk", IdeDisk)