summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-25 10:16:43 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-25 10:16:43 -0800
commit82288e7c3eea0fc62746d746e325c888a13c0a22 (patch)
treee9cfc318aa62981e344a45158ad00865e7404b0f
parent7462cb0842b9963d137cb578be6a0f7c619712d1 (diff)
downloadgem5-82288e7c3eea0fc62746d746e325c888a13c0a22.tar.xz
X86: Add makeAtomicResponse to the read/write functions of x86 devices.
-rw-r--r--src/arch/x86/interrupts.cc2
-rw-r--r--src/dev/x86/cmos.cc2
-rw-r--r--src/dev/x86/i8042.cc2
-rw-r--r--src/dev/x86/i82094aa.cc2
-rw-r--r--src/dev/x86/i8237.cc2
-rw-r--r--src/dev/x86/i8254.cc2
-rw-r--r--src/dev/x86/i8259.cc2
-rw-r--r--src/dev/x86/speaker.cc2
8 files changed, 16 insertions, 0 deletions
diff --git a/src/arch/x86/interrupts.cc b/src/arch/x86/interrupts.cc
index 29157b3f5..30c532c2b 100644
--- a/src/arch/x86/interrupts.cc
+++ b/src/arch/x86/interrupts.cc
@@ -221,6 +221,7 @@ X86ISA::Interrupts::read(PacketPtr pkt)
"Reading Local APIC register %d at offset %#x as %#x.\n",
reg, offset, val);
pkt->setData(((uint8_t *)&val) + (offset & mask(3)));
+ pkt->makeAtomicResponse();
return latency;
}
@@ -238,6 +239,7 @@ X86ISA::Interrupts::write(PacketPtr pkt)
"Writing Local APIC register %d at offset %#x as %#x.\n",
reg, offset, gtoh(val));
setReg(reg, gtoh(val));
+ pkt->makeAtomicResponse();
return latency;
}
void
diff --git a/src/dev/x86/cmos.cc b/src/dev/x86/cmos.cc
index 6bdc78a4b..e08c56e8c 100644
--- a/src/dev/x86/cmos.cc
+++ b/src/dev/x86/cmos.cc
@@ -56,6 +56,7 @@ X86ISA::Cmos::read(PacketPtr pkt)
default:
panic("Read from undefined CMOS port.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
@@ -74,6 +75,7 @@ X86ISA::Cmos::write(PacketPtr pkt)
default:
panic("Write to undefined CMOS port.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
diff --git a/src/dev/x86/i8042.cc b/src/dev/x86/i8042.cc
index 78ce307ae..afcbfdfb4 100644
--- a/src/dev/x86/i8042.cc
+++ b/src/dev/x86/i8042.cc
@@ -303,6 +303,7 @@ X86ISA::I8042::read(PacketPtr pkt)
} else {
panic("Read from unrecognized port %#x.\n", addr);
}
+ pkt->makeAtomicResponse();
return latency;
}
@@ -434,6 +435,7 @@ X86ISA::I8042::write(PacketPtr pkt)
} else {
panic("Write to unrecognized port %#x.\n", addr);
}
+ pkt->makeAtomicResponse();
return latency;
}
diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc
index 03944c190..d160fcb24 100644
--- a/src/dev/x86/i82094aa.cc
+++ b/src/dev/x86/i82094aa.cc
@@ -67,6 +67,7 @@ X86ISA::I82094AA::read(PacketPtr pkt)
default:
panic("Illegal read from I/O APIC.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
@@ -85,6 +86,7 @@ X86ISA::I82094AA::write(PacketPtr pkt)
default:
panic("Illegal write to I/O APIC.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
diff --git a/src/dev/x86/i8237.cc b/src/dev/x86/i8237.cc
index 5afe6b91a..f6ea9d75f 100644
--- a/src/dev/x86/i8237.cc
+++ b/src/dev/x86/i8237.cc
@@ -63,6 +63,7 @@ X86ISA::I8237::read(PacketPtr pkt)
default:
panic("Read from undefined i8237 register %d.\n", offset);
}
+ pkt->makeAtomicResponse();
return latency;
}
@@ -120,6 +121,7 @@ X86ISA::I8237::write(PacketPtr pkt)
default:
panic("Write to undefined i8254 register.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
diff --git a/src/dev/x86/i8254.cc b/src/dev/x86/i8254.cc
index 4f37eebad..5eb28844a 100644
--- a/src/dev/x86/i8254.cc
+++ b/src/dev/x86/i8254.cc
@@ -56,6 +56,7 @@ X86ISA::I8254::read(PacketPtr pkt)
} else {
panic("Read from undefined i8254 register.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
@@ -71,6 +72,7 @@ X86ISA::I8254::write(PacketPtr pkt)
} else {
panic("Write to undefined i8254 register.\n");
}
+ pkt->makeAtomicResponse();
return latency;
}
diff --git a/src/dev/x86/i8259.cc b/src/dev/x86/i8259.cc
index f9e0a0c93..b868295eb 100644
--- a/src/dev/x86/i8259.cc
+++ b/src/dev/x86/i8259.cc
@@ -65,6 +65,7 @@ X86ISA::I8259::read(PacketPtr pkt)
pkt->set(IMR);
break;
}
+ pkt->makeAtomicResponse();
return latency;
}
@@ -210,6 +211,7 @@ X86ISA::I8259::write(PacketPtr pkt)
}
break;
}
+ pkt->makeAtomicResponse();
return latency;
}
diff --git a/src/dev/x86/speaker.cc b/src/dev/x86/speaker.cc
index 25014d0c6..c6eb9db9e 100644
--- a/src/dev/x86/speaker.cc
+++ b/src/dev/x86/speaker.cc
@@ -47,6 +47,7 @@ X86ISA::Speaker::read(PacketPtr pkt)
controlVal.speaker ? "on" : "off",
controlVal.timer ? "on" : "off");
pkt->set((uint8_t)controlVal);
+ pkt->makeAtomicResponse();
return latency;
}
@@ -67,6 +68,7 @@ X86ISA::Speaker::write(PacketPtr pkt)
controlVal.speaker = val.speaker;
DPRINTF(PcSpeaker, "Writing to speaker device: gate %s, speaker %s.\n",
controlVal.gate ? "on" : "off", controlVal.speaker ? "on" : "off");
+ pkt->makeAtomicResponse();
return latency;
}