gem5.git
16 years agostyle: Use the correct m5 style for things relating to interrupts.
Nathan Binkert [Tue, 21 Oct 2008 14:12:53 +0000 (07:12 -0700)]
style: Use the correct m5 style for things relating to interrupts.

16 years agoRegression: Add single and dual boot O3 regressions. They both take about 8 minutes...
Ali Saidi [Mon, 20 Oct 2008 23:00:07 +0000 (19:00 -0400)]
Regression: Add single and dual boot O3 regressions. They both take about 8 minutes to complete.

16 years agoO3CPU: Undo Gabe's changes to remove hwrei and simpalcheck from O3 CPU. Removing...
Ali Saidi [Mon, 20 Oct 2008 20:22:59 +0000 (16:22 -0400)]
O3CPU: Undo Gabe's changes to remove hwrei and simpalcheck from O3 CPU.  Removing hwrei causes
the instruction after the hwrei to be fetched before the ITB/DTB_CM register is updated in a call pal
call sys and thus the translation fails because the user is attempting to access a super page address.

Minimally, it seems as though some sort of fetch stall or refetch after a hwrei is required. I think
this works currently because the hwrei uses the exec context interface, and the o3 stalls when that occurs.

Additionally, these changes don't update the LOCK register and probably break ll/sc. Both o3 changes were
removed since a great deal of manual patching would be required to only remove the hwrei change.

16 years agoAutomated merge with ssh://daystrom.m5sim.org//z/repo/m5
Lisa Hsu [Mon, 20 Oct 2008 02:50:53 +0000 (22:50 -0400)]
Automated merge with ssh://daystrom.m5sim.org//z/repo/m5

16 years agoneed to add packet_access.hh in order to get tempalte definition
Nathan Binkert [Fri, 17 Oct 2008 05:22:47 +0000 (22:22 -0700)]
need to add packet_access.hh in order to get tempalte definition

16 years agoget rid of local variable that's only used in an assert so fast compiles
Nathan Binkert [Fri, 17 Oct 2008 05:22:17 +0000 (22:22 -0700)]
get rid of local variable that's only used in an assert so fast compiles

16 years agoAutomated merge with ssh://daystrom.m5sim.org//z/repo/m5
Lisa Hsu [Thu, 16 Oct 2008 18:16:26 +0000 (14:16 -0400)]
Automated merge with ssh://daystrom.m5sim.org//z/repo/m5

16 years agoThis function declaration isn't used anywhere.
Lisa Hsu [Tue, 14 Oct 2008 21:22:03 +0000 (17:22 -0400)]
This function declaration isn't used anywhere.
 HG: user: Lisa Hsu <hsul@eecs.umich.edu> HG: branch default HG: changed
src/mem/cache/cache.hh

16 years agoeventq: make python events actually work
Nathan Binkert [Tue, 14 Oct 2008 16:34:11 +0000 (09:34 -0700)]
eventq: make python events actually work

16 years agoeventq: revert code for unserializing events.
Nathan Binkert [Tue, 14 Oct 2008 16:33:52 +0000 (09:33 -0700)]
eventq: revert code for unserializing events.
Since I never implemented a proper solution, put it back to something that
at least works for now.  Once I add more event queues, I'll have to really
fix this though

16 years agoCPU: Explain why some code is commented out.
Gabe Black [Mon, 13 Oct 2008 06:52:02 +0000 (23:52 -0700)]
CPU: Explain why some code is commented out.

16 years agoGet rid of some commented out code.
Gabe Black [Mon, 13 Oct 2008 06:50:22 +0000 (23:50 -0700)]
Get rid of some commented out code.

16 years agoX86: Set the delayed commit flag in x86 microops appropriately.
Gabe Black [Mon, 13 Oct 2008 06:29:10 +0000 (23:29 -0700)]
X86: Set the delayed commit flag in x86 microops appropriately.

16 years agoX86: Make the local APIC timer event generate an interrupt.
Gabe Black [Mon, 13 Oct 2008 06:28:49 +0000 (23:28 -0700)]
X86: Make the local APIC timer event generate an interrupt.

16 years agoX86: Implement the EOI register in the local APIC.
Gabe Black [Mon, 13 Oct 2008 06:28:11 +0000 (23:28 -0700)]
X86: Implement the EOI register in the local APIC.

16 years agoX86: Add some DPRINTFs to the local APIC.
Gabe Black [Mon, 13 Oct 2008 06:27:45 +0000 (23:27 -0700)]
X86: Add some DPRINTFs to the local APIC.

16 years agoX86: Make auto eoi mode work in the I8259 PIC.
Gabe Black [Mon, 13 Oct 2008 06:27:08 +0000 (23:27 -0700)]
X86: Make auto eoi mode work in the I8259 PIC.

16 years agoX86: Make non-specific EOI commands work.
Gabe Black [Mon, 13 Oct 2008 06:25:48 +0000 (23:25 -0700)]
X86: Make non-specific EOI commands work.

16 years agoX86: Make the I8259 PIC accept a specific EOI command.
Gabe Black [Mon, 13 Oct 2008 06:22:58 +0000 (23:22 -0700)]
X86: Make the I8259 PIC accept a specific EOI command.

16 years agoX86: Fix the segment setting code in IRET, and make it restore the flags.
Gabe Black [Mon, 13 Oct 2008 06:05:22 +0000 (23:05 -0700)]
X86: Fix the segment setting code in IRET, and make it restore the flags.

16 years agoX86: Panic when an unimplemented fault is invoked, rather than spinning forever
Gabe Black [Mon, 13 Oct 2008 06:00:28 +0000 (23:00 -0700)]
X86: Panic when an unimplemented fault is invoked, rather than spinning forever

16 years agoX86: Implement the swapgs instruction.
Gabe Black [Mon, 13 Oct 2008 06:00:07 +0000 (23:00 -0700)]
X86: Implement the swapgs instruction.

16 years agoX86: Add wrval/rdval microops for reading significant miscregs.
Gabe Black [Mon, 13 Oct 2008 05:55:55 +0000 (22:55 -0700)]
X86: Add wrval/rdval microops for reading significant miscregs.

16 years agoX86: Make the x86 interrupt fault kick off the interrupt microcode.
Gabe Black [Mon, 13 Oct 2008 05:42:10 +0000 (22:42 -0700)]
X86: Make the x86 interrupt fault kick off the interrupt microcode.

16 years agoX86: Implement entering an interrupt in microcode.
Gabe Black [Mon, 13 Oct 2008 05:42:03 +0000 (22:42 -0700)]
X86: Implement entering an interrupt in microcode.

16 years agoX86: Make sure register microops set fault rather than returning one.
Gabe Black [Mon, 13 Oct 2008 05:24:06 +0000 (22:24 -0700)]
X86: Make sure register microops set fault rather than returning one.

16 years agoX86: Implement an wrdh microop which loads bases/offsets from 16 byte descriptors.
Gabe Black [Mon, 13 Oct 2008 05:16:53 +0000 (22:16 -0700)]
X86: Implement an wrdh microop which loads bases/offsets from 16 byte descriptors.

16 years agoX86: Make the MicroPC type 16 bit.
Gabe Black [Mon, 13 Oct 2008 03:48:24 +0000 (20:48 -0700)]
X86: Make the MicroPC type 16 bit.

16 years agoX86: Implement local labels for the ROM that actually refer into the ROM.
Gabe Black [Mon, 13 Oct 2008 03:44:11 +0000 (20:44 -0700)]
X86: Implement local labels for the ROM that actually refer into the ROM.

16 years agoX86: Implement the chks check of interrupt gate target code segments.
Gabe Black [Mon, 13 Oct 2008 03:38:22 +0000 (20:38 -0700)]
X86: Implement the chks check of interrupt gate target code segments.

16 years agoX86: Add a check type for interrupt gates.
Gabe Black [Mon, 13 Oct 2008 03:33:37 +0000 (20:33 -0700)]
X86: Add a check type for interrupt gates.

16 years agoX86: Fix chks checking the submode for stack segments.
Gabe Black [Mon, 13 Oct 2008 03:29:52 +0000 (20:29 -0700)]
X86: Fix chks checking the submode for stack segments.

16 years agoX86: Let segment manipulation microops be conditional.
Gabe Black [Mon, 13 Oct 2008 03:25:06 +0000 (20:25 -0700)]
X86: Let segment manipulation microops be conditional.

16 years agoX86: Let the microassembler know about the microcode only H segment.
Gabe Black [Mon, 13 Oct 2008 03:17:38 +0000 (20:17 -0700)]
X86: Let the microassembler know about the microcode only H segment.

16 years agoX86: Fix the rdbase microop
Gabe Black [Mon, 13 Oct 2008 03:07:46 +0000 (20:07 -0700)]
X86: Fix the rdbase microop

16 years agoX86: Don't fetch in the simple CPU if you're in the ROM.
Gabe Black [Mon, 13 Oct 2008 02:32:06 +0000 (19:32 -0700)]
X86: Don't fetch in the simple CPU if you're in the ROM.

16 years agoGet rid of old RegContext code.
Gabe Black [Mon, 13 Oct 2008 00:57:46 +0000 (17:57 -0700)]
Get rid of old RegContext code.

16 years agoX86: Create a handy way to access labels from the ROM in microcode.
Gabe Black [Mon, 13 Oct 2008 00:52:51 +0000 (17:52 -0700)]
X86: Create a handy way to access labels from the ROM in microcode.

16 years agoX86: Make X86's microcode ROM actually do something.
Gabe Black [Mon, 13 Oct 2008 00:48:44 +0000 (17:48 -0700)]
X86: Make X86's microcode ROM actually do something.

16 years agoCPU: Make the highest order bit in the micro pc determine if it's combinational or...
Gabe Black [Sun, 12 Oct 2008 23:59:55 +0000 (16:59 -0700)]
CPU: Make the highest order bit in the micro pc determine if it's combinational or from the ROM.

16 years agoCPU: Create a microcode ROM object in the CPU which is defined by the ISA.
Gabe Black [Sun, 12 Oct 2008 22:59:21 +0000 (15:59 -0700)]
CPU: Create a microcode ROM object in the CPU which is defined by the ISA.

16 years agoX86: Create an eret microop which returns from ROM to combinational decoding.
Gabe Black [Sun, 12 Oct 2008 22:53:04 +0000 (15:53 -0700)]
X86: Create an eret microop which returns from ROM to combinational decoding.

16 years agoX86: Make Br never report itself as the last microop.
Gabe Black [Sun, 12 Oct 2008 22:43:35 +0000 (15:43 -0700)]
X86: Make Br never report itself as the last microop.

16 years agoX86: Create a SeqOp class of microops and make Br one of them.
Gabe Black [Sun, 12 Oct 2008 22:33:17 +0000 (15:33 -0700)]
X86: Create a SeqOp class of microops and make Br one of them.

16 years agoX86: Update the stats for cpuid's new implementation
Gabe Black [Sun, 12 Oct 2008 22:31:37 +0000 (15:31 -0700)]
X86: Update the stats for cpuid's new implementation

16 years agoX86: Implement CPUID with a magical function instead of microcode.
Gabe Black [Sun, 12 Oct 2008 22:31:28 +0000 (15:31 -0700)]
X86: Implement CPUID with a magical function instead of microcode.

16 years agoX86: Fix the ordering of special physical address ranges.
Gabe Black [Sun, 12 Oct 2008 21:01:06 +0000 (14:01 -0700)]
X86: Fix the ordering of special physical address ranges.

16 years agoX86: Create a mechanism for the IO APIC to access I8259 vectors.
Gabe Black [Sun, 12 Oct 2008 20:54:57 +0000 (13:54 -0700)]
X86: Create a mechanism for the IO APIC to access I8259 vectors.

16 years agoX86: Actually use the extra vector bits we get from ICW2.
Gabe Black [Sun, 12 Oct 2008 20:51:48 +0000 (13:51 -0700)]
X86: Actually use the extra vector bits we get from ICW2.

16 years agoX86: Make the local APIC process interrupts and send them to the CPU.
Gabe Black [Sun, 12 Oct 2008 20:45:21 +0000 (13:45 -0700)]
X86: Make the local APIC process interrupts and send them to the CPU.

16 years agoX86: Make the local APIC handle interrupt messages from the IO APIC.
Gabe Black [Sun, 12 Oct 2008 20:44:24 +0000 (13:44 -0700)]
X86: Make the local APIC handle interrupt messages from the IO APIC.

16 years agoX86: Change the default value for the IO APIC redirection table.
Gabe Black [Sun, 12 Oct 2008 20:35:26 +0000 (13:35 -0700)]
X86: Change the default value for the IO APIC redirection table.

16 years agoX86: Make the bases for x86 fault class public.
Gabe Black [Sun, 12 Oct 2008 20:29:26 +0000 (13:29 -0700)]
X86: Make the bases for x86 fault class public.

16 years agoX86: Make APICs communicate through the memory system.
Gabe Black [Sun, 12 Oct 2008 20:28:54 +0000 (13:28 -0700)]
X86: Make APICs communicate through the memory system.

16 years agoCreate a message port for sending messages as apposed to reading/writing a memory...
Gabe Black [Sun, 12 Oct 2008 19:08:51 +0000 (12:08 -0700)]
Create a message port for sending messages as apposed to reading/writing a memory range.

16 years agoX86: Add a LocalApic trace flag.
Gabe Black [Sun, 12 Oct 2008 19:07:25 +0000 (12:07 -0700)]
X86: Add a LocalApic trace flag.

16 years agoX86: Make the local APIC accessible through the memory system directly, and make...
Gabe Black [Sun, 12 Oct 2008 18:08:00 +0000 (11:08 -0700)]
X86: Make the local APIC accessible through the memory system directly, and make the timer work.

16 years agoTurn Interrupts objects into SimObjects. Also, move local APIC state into x86's Inter...
Gabe Black [Sun, 12 Oct 2008 16:09:56 +0000 (09:09 -0700)]
Turn Interrupts objects into SimObjects. Also, move local APIC state into x86's Interrupts object.

16 years agoCPU: Eliminate the get_vec function.
Gabe Black [Sun, 12 Oct 2008 15:24:09 +0000 (08:24 -0700)]
CPU: Eliminate the get_vec function.

16 years agoCPU: Add a getInterruptController function
Gabe Black [Sat, 11 Oct 2008 23:13:58 +0000 (16:13 -0700)]
CPU: Add a getInterruptController function

16 years agoX86: Add entries for the IO APIC to the MP table.
Gabe Black [Sat, 11 Oct 2008 23:12:34 +0000 (16:12 -0700)]
X86: Add entries for the IO APIC to the MP table.

16 years agoX86: Create an IO APIC device.
Gabe Black [Sat, 11 Oct 2008 23:08:14 +0000 (16:08 -0700)]
X86: Create an IO APIC device.

16 years agoX86: Set up a mechanism for the I8254 timer to cause interrupts.
Gabe Black [Sat, 11 Oct 2008 22:15:34 +0000 (15:15 -0700)]
X86: Set up a mechanism for the I8254 timer to cause interrupts.

16 years agoX86: Add an Intel MP table to the simulation.
Gabe Black [Sat, 11 Oct 2008 22:14:37 +0000 (15:14 -0700)]
X86: Add an Intel MP table to the simulation.

16 years agoCPU: Eliminate the simPalCheck funciton.
Gabe Black [Sat, 11 Oct 2008 19:17:24 +0000 (12:17 -0700)]
CPU: Eliminate the simPalCheck funciton.

16 years agoCPU: Eliminate the hwrei function.
Gabe Black [Sat, 11 Oct 2008 09:27:21 +0000 (02:27 -0700)]
CPU: Eliminate the hwrei function.

16 years agoX86: Rename the PC device to Pc.
Gabe Black [Sat, 11 Oct 2008 09:23:40 +0000 (02:23 -0700)]
X86: Rename the PC device to Pc.

--HG--
rename : src/dev/x86/PC.py => src/dev/x86/Pc.py

16 years agoX86: Bring the South Bridge device into dev/x86 and get rid of south_bridge directory.
Gabe Black [Sat, 11 Oct 2008 09:21:44 +0000 (02:21 -0700)]
X86: Bring the South Bridge device into dev/x86 and get rid of south_bridge directory.

--HG--
rename : src/dev/x86/south_bridge/SouthBridge.py => src/dev/x86/SouthBridge.py
rename : src/dev/x86/south_bridge/south_bridge.cc => src/dev/x86/south_bridge.cc
rename : src/dev/x86/south_bridge/south_bridge.hh => src/dev/x86/south_bridge.hh

16 years agoX86: Change I8254 and PCSpeaker devices from subdevices to SimObjects and eliminate...
Gabe Black [Sat, 11 Oct 2008 09:16:11 +0000 (02:16 -0700)]
X86: Change I8254 and PCSpeaker devices from subdevices to SimObjects and eliminate subdevices.

--HG--
rename : src/dev/x86/south_bridge/i8254.cc => src/dev/x86/i8254.cc
rename : src/dev/x86/south_bridge/i8254.hh => src/dev/x86/i8254.hh
rename : src/dev/x86/south_bridge/speaker.cc => src/dev/x86/speaker.cc
rename : src/dev/x86/south_bridge/speaker.hh => src/dev/x86/speaker.hh

16 years agoDevices: Make the Intel8254Timer device only use pointers to its counters.
Gabe Black [Sat, 11 Oct 2008 08:49:39 +0000 (01:49 -0700)]
Devices: Make the Intel8254Timer device only use pointers to its counters.

16 years agoX86: Make the CMOS and I8259 devices use IntDev and IntPin.
Gabe Black [Sat, 11 Oct 2008 08:45:25 +0000 (01:45 -0700)]
X86: Make the CMOS and I8259 devices use IntDev and IntPin.

16 years agoX86: Create the IntDev and IntPin system.
Gabe Black [Sat, 11 Oct 2008 08:37:04 +0000 (01:37 -0700)]
X86: Create the IntDev and IntPin system.

The IntDev class is a base for anything that supports IntPins. IntPins allow
devices to generically trigger interrupts on a particular pin of an IntDev
device without having to know what the device is or what pin they're attached
to.

16 years agoX86: Hook the CMOS device to the I8259 PICs.
Gabe Black [Sat, 11 Oct 2008 08:31:32 +0000 (01:31 -0700)]
X86: Hook the CMOS device to the I8259 PICs.

16 years agoX86: Make the I8259 decipher the commands it's given, and add some of it's registers.
Gabe Black [Sat, 11 Oct 2008 08:28:35 +0000 (01:28 -0700)]
X86: Make the I8259 decipher the commands it's given, and add some of it's registers.

16 years agoX86: Change the I8259 from a subdevice into a real SimObject.
Gabe Black [Sat, 11 Oct 2008 08:22:20 +0000 (01:22 -0700)]
X86: Change the I8259 from a subdevice into a real SimObject.

--HG--
rename : src/dev/x86/south_bridge/i8259.cc => src/dev/x86/i8259.cc
rename : src/dev/x86/south_bridge/i8259.hh => src/dev/x86/i8259.hh

16 years agoX86: Change the CMOS from a sub-device to a real SimObject
Gabe Black [Sat, 11 Oct 2008 08:13:11 +0000 (01:13 -0700)]
X86: Change the CMOS from a sub-device to a real SimObject

--HG--
rename : src/dev/x86/south_bridge/cmos.cc => src/dev/x86/cmos.cc
rename : src/dev/x86/south_bridge/cmos.hh => src/dev/x86/cmos.hh

16 years agoTLB: Make all tlbs derive from a common base class in both python and C++.
Gabe Black [Sat, 11 Oct 2008 06:47:42 +0000 (23:47 -0700)]
TLB: Make all tlbs derive from a common base class in both python and C++.

16 years agoX86: Create SimObjects in python and C++ to represent the ACPI system description...
Gabe Black [Sat, 11 Oct 2008 06:43:33 +0000 (23:43 -0700)]
X86: Create SimObjects in python and C++ to represent the ACPI system description tables.

16 years agoX86: Make the time on the RTC configurable.
Gabe Black [Sat, 11 Oct 2008 06:42:31 +0000 (23:42 -0700)]
X86: Make the time on the RTC configurable.

16 years agoX86: Create SimObjects in python and C++ to represent the Intel MP tables.
Gabe Black [Sat, 11 Oct 2008 06:39:53 +0000 (23:39 -0700)]
X86: Create SimObjects in python and C++ to represent the Intel MP tables.

16 years agocprintf: properly deal with pointer types
Nathan Binkert [Sat, 11 Oct 2008 04:45:35 +0000 (21:45 -0700)]
cprintf: properly deal with pointer types

16 years agoswig: Add in a %rename to allow the same name to appear in multiple namespaces.
Nathan Binkert [Sat, 11 Oct 2008 04:45:34 +0000 (21:45 -0700)]
swig: Add in a %rename to allow the same name to appear in multiple namespaces.

16 years agoRename the info function to inform to avoid likely name conflicts
Nathan Binkert [Fri, 10 Oct 2008 19:17:53 +0000 (12:17 -0700)]
Rename the info function to inform to avoid likely name conflicts

16 years agoautomerge
Nathan Binkert [Fri, 10 Oct 2008 17:38:53 +0000 (10:38 -0700)]
automerge

16 years agooutput: Make panic/fatal/warn more flexible so we can add some new ones.
Nathan Binkert [Fri, 10 Oct 2008 17:18:28 +0000 (10:18 -0700)]
output: Make panic/fatal/warn more flexible so we can add some new ones.
The major thrust of this change is to limit the amount of code
duplication surrounding the code for these functions.  This code also
adds two new message types called info and hack.  Info is meant to be
less harsh than warn so people don't get confused and start thinking
that the simulator is broken.  Hack is a way for people to add runtime
messages indicating that the simulator just executed a code "hack"
that should probably be fixed.  The benefit of knowing about these
code hacks is that it will let people know what sorts of inaccuracies
or potential bugs might be entering their experiments.  Finally, I've
added some flags to turn on and off these message types so command
line options can change them.

16 years agogdb: add a debugging function that enters the python interpreter.
Nathan Binkert [Fri, 10 Oct 2008 17:15:01 +0000 (10:15 -0700)]
gdb: add a debugging function that enters the python interpreter.

16 years agojobfile: Add support for dictionaries as jobfile options.
Nathan Binkert [Fri, 10 Oct 2008 17:15:01 +0000 (10:15 -0700)]
jobfile: Add support for dictionaries as jobfile options.
If the same dictionary option is seen in several options, those
dictionaries are composed.  If you define the same dictionary key in
multiple options, the system flags an error.
Also, clean up the jobfile code so that it is more debuggable.

16 years agopython: Add a utility for nested attribute dicts.
Nathan Binkert [Fri, 10 Oct 2008 17:15:00 +0000 (10:15 -0700)]
python: Add a utility for nested attribute dicts.
Change attrdict so that attributes that begin with an underscore don't
go into the dict.

16 years agomisc: remove #include <cassert> from misc.hh since not everyone needs it.
Nathan Binkert [Fri, 10 Oct 2008 17:15:00 +0000 (10:15 -0700)]
misc: remove #include <cassert> from misc.hh since not everyone needs it.

16 years agoX86: Turn SMBios structures into simobjects.
Gabe Black [Fri, 10 Oct 2008 10:50:51 +0000 (03:50 -0700)]
X86: Turn SMBios structures into simobjects.

16 years agoX86: Add a couple comments to the bios SConscript
Gabe Black [Fri, 10 Oct 2008 10:50:42 +0000 (03:50 -0700)]
X86: Add a couple comments to the bios SConscript

16 years agoX86: Split makeLinuxX86System into makeLinuxX86System and makeX86System.
Gabe Black [Fri, 10 Oct 2008 10:50:30 +0000 (03:50 -0700)]
X86: Split makeLinuxX86System into makeLinuxX86System and makeX86System.

16 years agoX86: Move the smbios objects into a folder for BIOS objects.
Gabe Black [Fri, 10 Oct 2008 10:50:18 +0000 (03:50 -0700)]
X86: Move the smbios objects into a folder for BIOS objects.

16 years agoX86: Fix compilation with new eventq API.
Gabe Black [Fri, 10 Oct 2008 10:50:07 +0000 (03:50 -0700)]
X86: Fix compilation with new eventq API.

16 years agoSimObjects: Clean up handling of C++ namespaces.
Nathan Binkert [Fri, 10 Oct 2008 05:19:39 +0000 (22:19 -0700)]
SimObjects: Clean up handling of C++ namespaces.
Make them easier to express by only having the cxx_type parameter which
has the full namespace name, and drop the cxx_namespace thing.
Add support for multiple levels of namespace.

16 years agorange_map: Add a method to find which range a single value falls into.
Nathan Binkert [Fri, 10 Oct 2008 05:19:38 +0000 (22:19 -0700)]
range_map: Add a method to find which range a single value falls into.

16 years agostyle: conform to M5 style.
Nathan Binkert [Thu, 9 Oct 2008 16:25:41 +0000 (09:25 -0700)]
style: conform to M5 style.

16 years agomem: Add a method for setting the time on a packet.
Nathan Binkert [Thu, 9 Oct 2008 11:58:24 +0000 (04:58 -0700)]
mem: Add a method for setting the time on a packet.

16 years agoeventq: convert all usage of events to use the new API.
Nathan Binkert [Thu, 9 Oct 2008 11:58:24 +0000 (04:58 -0700)]
eventq: convert all usage of events to use the new API.
For now, there is still a single global event queue, but this is
necessary for making the steps towards a parallelized m5.

16 years agoeventq: Major API change for the Event and EventQueue structures.
Nathan Binkert [Thu, 9 Oct 2008 11:58:23 +0000 (04:58 -0700)]
eventq: Major API change for the Event and EventQueue structures.

Since the early days of M5, an event needed to know which event queue
it was on, and that data was required at the time of construction of
the event object.  In the future parallelized M5, this sort of
requirement does not work well since the proper event queue will not
always be known at the time of construction of an event.  Now, events
are created, and the EventQueue itself has the schedule function,
e.g. eventq->schedule(event, when).  To simplify the syntax, I created
a class called EventManager which holds a pointer to an EventQueue and
provides the schedule interface that is a proxy for the EventQueue.
The intent is that objects that frequently schedule events can be
derived from EventManager and then they have the schedule interface.
SimObject and Port are examples of objects that will become
EventManagers.  The end result is that any SimObject can just call
schedule(event, when) and it will just call that SimObject's
eventq->schedule function.  Of course, some objects may have more than
one EventQueue, so this interface might not be perfect for those, but
they should be relatively few.