arch,cpu,dev,sim,mem: Collect System thread elements into a subclass.
authorGabe Black <gabeblack@google.com>
Thu, 6 Feb 2020 03:40:26 +0000 (19:40 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 9 Jun 2020 23:37:29 +0000 (23:37 +0000)
commit0dfa59f0bb0f0b8beb970debd3b6b992f1c37e65
tree461f405e929d9dbe3dfc1f45d28ba7fa8a89e750
parent5da62e633129bdbe913bd385c13fa2658706a29a
arch,cpu,dev,sim,mem: Collect System thread elements into a subclass.

The System class has a few different arrays of values which each
correspond to a thread of execution based on their position. This
change collects them together into a single class to make managing them
easier and less error prone. It also collects methods for manipulating
those threads as an API for that class.

This class acts as a collection point for thread based state which the
System class can look into to get at all its state. It also acts as an
interface for interacting with threads for other classes. This forces
external consumers to use the API instead of accessing the individual
arrays which improves consistency.

Change-Id: Idc4575c5a0b56fe75f5c497809ad91c22bfe26cc
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25144
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
50 files changed:
src/arch/arm/freebsd/fs_workload.cc
src/arch/arm/fs_workload.cc
src/arch/arm/isa.cc
src/arch/arm/isa/insts/misc.isa
src/arch/arm/kvm/gic.cc
src/arch/arm/linux/fs_workload.cc
src/arch/arm/linux/process.cc
src/arch/arm/process.cc
src/arch/arm/tlbi_op.hh
src/arch/mips/process.cc
src/arch/power/process.cc
src/arch/riscv/bare_metal/fs_workload.cc
src/arch/riscv/process.cc
src/arch/sparc/fs_workload.cc
src/arch/sparc/process.cc
src/arch/sparc/tlb.cc
src/arch/sparc/ua2005.cc
src/arch/x86/fs_workload.cc
src/arch/x86/interrupts.cc
src/arch/x86/linux/fs_workload.cc
src/arch/x86/process.cc
src/cpu/base.hh
src/cpu/intr_control.cc
src/cpu/kvm/vm.cc
src/cpu/o3/cpu.cc
src/dev/arm/a9scu.cc
src/dev/arm/fvp_base_pwr_ctrl.cc
src/dev/arm/generic_timer.cc
src/dev/arm/gic_v2.cc
src/dev/arm/gic_v2.hh
src/dev/arm/gic_v3.cc
src/dev/arm/gic_v3_cpu_interface.cc
src/dev/arm/gic_v3_distributor.cc
src/dev/arm/gic_v3_redistributor.cc
src/dev/arm/timer_cpulocal.cc
src/dev/arm/vgic.cc
src/dev/mips/malta_cchip.cc
src/dev/net/dist_iface.cc
src/dev/sparc/iob.cc
src/dev/x86/i82094aa.cc
src/kern/linux/linux.cc
src/mem/abstract_mem.cc
src/mem/cache/prefetch/queued.cc
src/sim/mem_state.cc
src/sim/process.cc
src/sim/pseudo_inst.cc
src/sim/syscall_emul.cc
src/sim/syscall_emul.hh
src/sim/system.cc
src/sim/system.hh